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.
On Fri, 2012-07-06 at 13:10 +0200, Michael Büchler wrote:
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):
I was able to get around this by using gcc-4.4.6 instead of gcc-4.6.2. In detail:
The SIGILL occured with this version of gcc: $ gcc --version gcc (Gentoo 4.6.2 p1.4, pie-0.5.0) 4.6.2
It doesn't happen on this version of gcc (I get to FILO at least): $ gcc --version gcc (Gentoo 4.4.6-r1 p1.0, pie-0.4.5) 4.4.6
So I guess gcc-4.6.2 is the culprit? I didn't test a newer version like 4.6.3 or 4.7.1.
It's working for me now so as a user I will just accept that I have to use gcc-4.4.6, but please tell me if I can help fixing this issue.
On Fri, 2012-07-06 at 13:10 +0200, Michael Büchler wrote:
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):
I was able to get around this by using gcc-4.4.6 instead of gcc-4.6.2. In detail:
The SIGILL occured with this version of gcc: $ gcc --version gcc (Gentoo 4.6.2 p1.4, pie-0.5.0) 4.6.2
It doesn't happen on this version of gcc (I get to FILO at least): $ gcc --version gcc (Gentoo 4.4.6-r1 p1.0, pie-0.4.5) 4.4.6
So I guess gcc-4.6.2 is the culprit? I didn't test a newer version like 4.6.3 or 4.7.1.
It's working for me now so as a user I will just accept that I have to use gcc-4.4.6, but please tell me if I can help fixing this issue.
2012/7/6 Michael Büchler mbuechler.3@gmail.com:
On Fri, 2012-07-06 at 13:10 +0200, Michael Büchler wrote:
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):
I was able to get around this by using gcc-4.4.6 instead of gcc-4.6.2. In detail:
The SIGILL occured with this version of gcc: $ gcc --version gcc (Gentoo 4.6.2 p1.4, pie-0.5.0) 4.6.2
It doesn't happen on this version of gcc (I get to FILO at least): $ gcc --version gcc (Gentoo 4.4.6-r1 p1.0, pie-0.4.5) 4.4.6
So I guess gcc-4.6.2 is the culprit? I didn't test a newer version like 4.6.3 or 4.7.1.
You should retry with crossgcc: sh util/crossgcc/buildgcc, remove .xconfig before you run make menuconfig.
It's working for me now so as a user I will just accept that I have to use gcc-4.4.6, but please tell me if I can help fixing this issue.
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Am 06.07.2012 18:00, schrieb Michael Büchler:
It's working for me now so as a user I will just accept that I have to use gcc-4.4.6, but please tell me if I can help fixing this issue.
We were once considering to restrict the code to 486 level, ie. -mcpu=486. That should avoid such issues.
Patrick