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

Reply via email to