X-Git-Url: http://git.ozlabs.org/?p=yaboot.git;a=blobdiff_plain;f=second%2Fyaboot.c;h=a292c7396e7053f422dd351ddf3f04217e9afc7f;hp=7b7bcdb208e7ba4e70d54bec88b93dd9e34eef5d;hb=2ad0d7649e5042cad43a16b4a03bf53f39948316;hpb=678d83ff8608534ece0f1e912eddedef4f0bb67a diff --git a/second/yaboot.c b/second/yaboot.c index 7b7bcdb..a292c73 100644 --- a/second/yaboot.c +++ b/second/yaboot.c @@ -1,38 +1,45 @@ -/* Yaboot - secondary boot loader for Linux on ppc. - - Copyright (C) 1999 Benjamin Herrenschmidt - - portions based on poof - - Copyright (C) 1999 Marius Vollmer - - portions based on quik - - Copyright (C) 1996 Paul Mackerras. - - Because this program is derived from the corresponding file in the - silo-0.64 distribution, it is also - - Copyright (C) 1996 Pete A. Zaitcev - 1996 Maurizio Plaza - 1996 David S. Miller - 1996 Miguel de Icaza - 1996 Jakub Jelinek - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ +/* + * Yaboot - secondary boot loader for Linux on PowerPC. + * + * Copyright (C) 2001 Ethan Benson + * + * Copyright (C) 1999, 2000, 2001 Benjamin Herrenschmidt + * + * IBM CHRP support + * + * Copyright (C) 2001 Peter Bergner + * + * portions based on poof + * + * Copyright (C) 1999 Marius Vollmer + * + * portions based on quik + * + * Copyright (C) 1996 Paul Mackerras. + * + * Because this program is derived from the corresponding file in the + * silo-0.64 distribution, it is also + * + * Copyright (C) 1996 Pete A. Zaitcev + * 1996 Maurizio Plaza + * 1996 David S. Miller + * 1996 Miguel de Icaza + * 1996 Jakub Jelinek + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ #include "stdarg.h" #include "string.h" @@ -542,8 +549,9 @@ void check_password(char *str) { int i; + prom_printf("\n%s", str); for (i = 0; i < 3; i++) { - prom_printf ("\n%sassword: ", str); + prom_printf ("\nPassword: "); passwdbuff[0] = 0; cmdedit ((void (*)(void)) 0, 1); prom_printf ("\n"); @@ -558,11 +566,15 @@ void check_password(char *str) if (!strcmp (password, passwdbuff)) return; #endif /* USE_MD5_PASSWORDS */ - if (i < 2) - prom_printf ("Password incorrect. Please try again..."); + if (i < 2) { + prom_sleep(1); + prom_printf ("Incorrect password. Try again."); + } } - prom_printf ("Seems like you don't know the access password. Go away!\n"); - prom_sleep(3); + prom_printf(" ___________________\n< Permission denied >\n -------------------\n" + " \\ ^__^\n \\ (oo)\\_______\n (__)\\ )\\/\\\n" + " ||----w |\n || ||\n"); + prom_sleep(4); prom_interpret("reset-all"); } @@ -694,15 +706,18 @@ int get_params(struct boot_param_t* params) restricted = 1; if (label) { if (params->args && password && restricted) - check_password ("To specify image arguments you must enter the p"); + check_password ("To specify arguments for this image " + "you must enter the password."); else if (password && !restricted) - check_password ("P"); + check_password ("This image is restricted."); } params->args = make_params(label, params->args); } } if (!strcmp (imagename, "help")) { + /* FIXME: defdevice shouldn't need to be reset all over the place */ + if(!defdevice) defdevice = boot.dev; prom_printf( "\nPress the tab key for a list of defined images.\n" "The label marked with a \"*\" is is the default image, " @@ -723,13 +738,13 @@ int get_params(struct boot_param_t* params) if (!strcmp (imagename, "halt")) { if (password) - check_password ("P"); + check_password ("Restricted command."); prom_pause(); return 0; } if (!strcmp (imagename, "bye")) { if (password) { - check_password ("P"); + check_password ("Restricted command."); return 1; } return 1; @@ -738,7 +753,7 @@ int get_params(struct boot_param_t* params) if (imagename[0] == '$') { /* forth command string */ if (password) - check_password ("P"); + check_password ("OpenFirmware commands are restricted."); prom_interpret(imagename+1); return 0; } @@ -746,7 +761,7 @@ int get_params(struct boot_param_t* params) strncpy(imagepath, imagename, 1024); if (!label && password) - check_password ("To boot a custom image you must enter the p"); + check_password ("To boot a custom image you must enter the password."); if (!parse_device_path(imagepath, defdevice, defpart, "/vmlinux", ¶ms->kernel)) {