Hi,
I'm trying to run coreboot on an ASUS A8V-E Deluxe. It stops with a
SIGILL after saying the following (tail of the log I got over serial):
POST: 0x9d
Adding CBMEM entry as no. 5
Writing high table forward entry at 0x00000500
Wrote coreboot table at: 00000500, 0x10 bytes, checksum efdf
New low_table_end: 0x00000528
Now going to write high coreboot table at 0x3ffed000
rom_table_end = 0x3ffed000
Adjust low_table_end from 0x00000528 to 0x00001000
Adjust rom_table_end from 0x3ffed000 to 0x3fff0000
$S04#b7
I don't know much about programming but I ran gdb to take a look:
(gdb) target remote /dev/ttyS0
Remote debugging using /dev/ttyS0
unpack_lb64 (value=...) at src/include/boot/coreboot_tables.h:54
54 result = value.hi;
(gdb) info program
Debugging a target over a serial line.
Program stopped at 0x1127be.
It stopped with signal SIGILL, Illegal instruction.
(gdb) x/i $pc
=> 0x1127be <lb_cleanup_memory_ranges+79>: movd 0xc(%eax),%xmm0
(gdb) bt full
#0 unpack_lb64 (value=...) at src/include/boot/coreboot_tables.h:54
result = <optimized out>
#1 lb_cleanup_memory_ranges (mem=0x3ffed018) at
src/arch/x86/boot/coreboot_table.c:413
entry_start = 4967675138670599
entries = 2
i = 0
j = <optimized out>
#2 0x0011306b in build_lb_mem (head=0x3ffed000) at
src/arch/x86/boot/coreboot_table.c:574
No locals.
#3 write_coreboot_table (low_table_start=0, low_table_end=<optimized
out>, rom_table_start=1073610752, rom_table_end=<optimized out>) at
src/arch/x86/boot/coreboot_table.c:650
head = 0x3ffed000
mem = 0x3ffed018
#4 0x00104c51 in write_tables () at src/arch/x86/boot/tables.c:214
new_high_table_pointer = <optimized out>
rom_table_end = 984143
high_table_pointer = 1073664000
__func__ = "write_tables"
#5 0x00105623 in hardwaremain (boot_complete=0) at
src/boot/hardwaremain.c:143
lb_mem = <optimized out>
#6 0x00100099 in _text () at src/arch/x86/lib/c_start.S:82
No locals.
Does this say that 'movd 0xc(%eax),%xmm0' is an Illegal Instruction?
"Google says" it's an MMX instruction, but how can that be a problem
when my Athlon64 3500+ is definitely MMX capable? Does MMX have to be
initialized which probably didn't happen?
I would try to compile coreboot without MMX but I don't know how.
Disabling CONFIG_MMX has no effect on the coreboot code, right?
Thanks is advance for any help on this. I just hope it's not an issue
because of a stupid mistake by me ;) It's the first time I try to use
coreboot.