svn@coreboot.org wrote:
Author: hailfinger Date: 2009-10-15 01:51:05 +0200 (Thu, 15 Oct 2009) New Revision: 4776
Modified: trunk/coreboot-v2/src/arch/i386/lib/cbfs_and_run.c Log: cbfs_and_run_core() did not check the return code of cbfs_load_stage() and jumped to (void*)-1 on error. Die properly instead. I didn't use die() because that caused a linker error.
Signed-off-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net Acked-by: Myles Watson mylesgw@gmail.com
Modified: trunk/coreboot-v2/src/arch/i386/lib/cbfs_and_run.c
--- trunk/coreboot-v2/src/arch/i386/lib/cbfs_and_run.c 2009-10-14 20:49:49 UTC (rev 4775) +++ trunk/coreboot-v2/src/arch/i386/lib/cbfs_and_run.c 2009-10-14 23:51:05 UTC (rev 4776) @@ -11,6 +11,11 @@ u8 *dst; print_debug("Jumping to image.\r\n"); dst = cbfs_load_stage(filename);
- if (dst == (void *) -1) {
/* We should use die() here. */
print_emerg("Loading stage failed!\n");
for (;;);
- }
Can we do for (;;) asm("hlt"); instead?
Stefan Reinauer wrote:
- if (dst == (void *) -1) {
/* We should use die() here. */
print_emerg("Loading stage failed!\n");
for (;;);
- }
Can we do for (;;) asm("hlt"); instead?
Can we not get die() to work?
//Peter
On Thu, Oct 15, 2009 at 10:51 AM, Peter Stuge peter@stuge.se wrote:
Stefan Reinauer wrote:
- if (dst == (void *) -1) {
/* We should use die() here. */
print_emerg("Loading stage failed!\n");
for (;;);
- }
Can we do for (;;) asm("hlt"); instead?
Can we not get die() to work?
I think it's related to the fact that we have lots of printk variants, since die() calls printk. I think die would need to be implemented for each of these.
It's cause is similar to the cause of the LOGLEVEL problems.
Thanks, Myles