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.
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"