On Tue, Jan 08, 2008 at 04:54:29PM -0700, Marc Jones wrote: > How about this? > Marc > > -- > Marc Jones > Senior Firmware Engineer > (970) 226-9684 Office > mailto:[EMAIL PROTECTED] > http://www.amd.com/embeddedprocessors
> Add hlt() back into the die() function and update the comments. > > Signed-off-by: Marc Jones <[EMAIL PROTECTED]> Acked-by: Peter Stuge <[EMAIL PROTECTED]> > > > Index: LinuxBIOSv3/lib/console.c > =================================================================== > --- LinuxBIOSv3.orig/lib/console.c 2008-01-08 16:32:28.000000000 -0700 > +++ LinuxBIOSv3/lib/console.c 2008-01-08 16:48:52.000000000 -0700 > @@ -83,30 +83,37 @@ > } > > /** > - * Halt and loop due to a fatal error. > - * There have been several iterations of this function. > + * Halt and loop due to a fatal error. > + * There have been several iterations of this function. > * The first simply did a hlt(). Doing a hlt() can make jtag debugging > - * very difficult as one can not break into a hlt instruction on some CPUs. > - * Second was to do a console_tx_byte of a NULL character. > - * A number of concerns were raised about doing this idea. > - * Third idea was to do an inb from port 0x80, the POST port. That design > - * makes us very CPU-specific. > + * very difficult as one can not break into a hlt instruction on some CPUs. > + * Second was to do a console_tx_byte of a NULL character. > + * A number of concerns were raised about doing this idea. > + * Third idea was to do an inb from port 0x80, the POST port. That design > + * makes us very CPU-specific. > * The fourth idea was just POSTING the same > - * code over and over. That would erase the most recent POST code, > - * hindering diagnosis. > + * code over and over. That would erase the most recent POST code, > + * hindering diagnosis. > * > - * For now, for lack of a good alternative, > - * we will continue to call console_tx_byte. We call with a NULL since > - * it will clear any FIFOs in the path and won't clutter up the output, > - * since NULL doesn't print a visible character on most terminal > - * emulators. > + * For now, for lack of a better alternative, > + * we will call console_tx_byte ten times and then halt. > + * Some CPU JTAG debbuggers might have problems but it is the right thing > + * to do. We call with a NULL since it will clear any FIFOs in the path and > + * won't clutter up the output, since NULL doesn't print a visible character > + * on most terminal emulators. > * > * @param str A string to print for the error > * > */ > void die(const char *str) > { > + int i; > + > printk(BIOS_EMERG, str); > - while (1) > - console_tx_byte(0, (void *)0); > + > + while (1) { > + for (i = 0; i < 10; i++) > + console_tx_byte(0, (void *)0); > + hlt(); > + } > } -- linuxbios mailing list linuxbios@linuxbios.org http://www.linuxbios.org/mailman/listinfo/linuxbios