On 2011-08-18 18:30, Christoph Hoffmann wrote: ...
Changing the order of execution in zfsboot.c main() function to[…] int main(void) { […] bios_getmem(); if (high_heap_size> 0) { […] bootinfo.bi_version = BOOTINFO_VERSION; bootinfo.bi_size = sizeof(bootinfo); bootinfo.bi_basemem = bios_basemem / 1024; bootinfo.bi_extmem = bios_extmem / 1024; bootinfo.bi_memsizes_valid++; /* bootinfo.bi_bios_dev = dsk->drive; */ bootinfo.bi_bios_dev = *(uint8_t *)PTOV(ARGS); dsk = malloc(sizeof(struct dsk)); dsk->drive = *(uint8_t *)PTOV(ARGS); dsk->type = dsk->drive& DRV_HARD ? TYPE_AD : TYPE_FD; dsk->unit = dsk->drive& DRV_MASK; dsk->slice = *(uint8_t *)PTOV(ARGS + 1) + 1; dsk->part = 0; dsk->start = 0; dsk->init = 0; bootdev = MAKEBOOTDEV(dev_maj[dsk->type], dsk->slice, dsk->unit, dsk->part), […] fixes the problem.
Can you please use -save-temps to save the intermediate zfsboot.s files, both before and after you change this order, then post them here? It's easiest to just do: DEBUG_FLAGS=-save-temps make -C /usr/src/sys/boot/i386/gptzfsboot clean all then save /usr/obj/usr/src/sys/boot/i386/gptzfsboot/zfsboot.s somewhere. _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "[email protected]"
