gptzfsboot error using HP Smart Array P410i Controller

Dimitry Andric dim at FreeBSD.org
Sat Aug 20 22:03:24 UTC 2011


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.



More information about the freebsd-current mailing list