Brandon Bennett bennetb@gmail.com writes:
Are all versions based on FreeBSD 4.11? Are newer versions still affected?
Newer versions should be based on 6.1 but there are a lot of changes. I haven't had a chance to test with something newer yet.
Sorry for the delay due to vacation...
I just confirmed the issue running
"JUNOS 11.1R3.5 built 2011-06-25 00:17:21 UTC"
which is as new as it officially gets at the moment. I don't think the FreeBSD version really matters. I believe the issue is related to the "platform_early_bootinit", whatever that is, which is Juniper specific code. I assume they are checking the SMBIOS for some data which is present on the real hardware, and this check triggers the crash.
From the 11.1R3.5 boot:
Hit [Enter] to boot immediately, or space bar for command prompt. Booting [/kernel]... platform_early_bootinit: M/T Series Early Boot Initialization kernel trap 12 with interrupts disabled
Fatal trap 12: page fault while in kernel mode fault virtual address = 0xbff3fffc fault code = supervisor write, page not present instruction pointer = 0x20:0xc0a22377 stac
Fatal trap 30: reserved (unknown) fault while in kernel mode instruction pointer = 0x20:0xc09f4e66 stack pointer = 0x28:0xc1021a00 frame pointer = 0x28:0xc1021a10 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, IOPL = 0 current process = 0 () trap number = 30 dog: ERROR - reset of uninitialized watchdog panic: reserved (unknown) fault (null)(c0c4f4a0,c0c4f4a0,c0be3672,c1021948,a) at 0xc0a14867 (null)(c0be3672,1e,c10219c0,1,1) at 0xc05a723e (null)(a,0,a,ffff7fff,ffffffff) at 0xc0a289dd (null)(c10219c0) at 0xc0a29921 (null)(0,c021b4b,3030000,c0c22a00,c0c54400) at 0xc0a15e7b (null)(c0c22a00,63,5,c1021bac,63) at 0xc09f50c2 (null)(63,10,1000000,1,c0bbe530) at 0xc05e66f3 (null)(63,c1021bac,c0be340e,3f8,1002580) at 0xc05c7ca5 (null)(c0bbe52c,c05c7c45,c1021bac,a,c1021bcc) at 0xc05c7df5 (null)(c0bbe52c,28,c1021cc4,c0be33fe,a) at 0xc05c8f73 (null)(c0c4d0a0,c1021c84,c1021c38,c05c8f73,c0bbe604) at 0xc0a287da (null)(c0bbe604,c,0,0,0) at 0xc0a28c2a (null)(c1021c84) at 0xc0a296e8 (null)(cffffef0,ffffef0,4,c00e0000,c00e0000) at 0xc0a15e7b (null)(0,c0bc71c6,4,10,0) at 0xc0a0f7df (null)(c0be5837,c1021d34,c1021d30,a,c1021d54) at 0xc0a0f8ed (null)(c0bc1e40,c0b6f924,c1021d84,c0a1e5a9,80) at 0xc0b3a694 (null)(80,c0a15ec0,f,3,20) at 0xc0b3ad7b (null)(1026000) at 0xc0a1e5a9 (null)() at 0xc04aa67d dog: ERROR - reset of uninitialized watchdog dog: ERROR - reset of uninitialized watchdog Uptime: 1s
Also confirmed that 11.1R3.5 is working with SeaBIOS modified as follows:
diff --git a/src/smbios.c b/src/smbios.c index 8df0f2d..c96deb5 100644 --- a/src/smbios.c +++ b/src/smbios.c @@ -17,7 +17,7 @@ smbios_entry_point_init(u16 max_structure_size, u16 number_of_structures) { struct smbios_entry_point *ep = malloc_fseg(sizeof(*ep)); - void *finaltable = malloc_high(structure_table_length); + void *finaltable = malloc_fseg(structure_table_length); if (!ep || !finaltable) { warn_noalloc(); free(ep);
Bjørn