Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Aug 2011 19:46:48 +0200
From:      Christoph Hoffmann <christoph_hoffmann@me.com>
To:        Christoph Hoffmann <christoph_hoffmann@me.com>
Cc:        freebsd-current@freebsd.org
Subject:   Re: gptzfsboot error  using HP Smart Array P410i Controller
Message-ID:  <9B96176A-7550-4B60-8F4D-0B667EEF7A15@me.com>
In-Reply-To: <DA5CE78B-5AAB-4DFC-B9EE-BFCF45AFC16F@me.com>
References:  <E040B3A9-9B62-4545-ADC9-5CE3A9217024@me.com> <201108151212.07874.jhb@freebsd.org> <7BD5F062-A7B0-4D05-989F-F23C9353E7D8@me.com> <201108160948.07719.jhb@freebsd.org> <DA5CE78B-5AAB-4DFC-B9EE-BFCF45AFC16F@me.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Setting high_heap_size to zero ends with an error:

Attempting Boot From CD-ROM
Attempting Boot From Hard Drive (C:)
474: high_heap_size=0x0; dsk=0x1a000; &bootinfo=0x8694
malloc failure

--
Christoph Hoffmann

On Aug 16, 2011, at 4:41 PM, Christoph Hoffmann wrote:

> Hello John,
> 
> First with printf() before  
>   dsk = malloc(sizeof(struct dsk));  
> 
> Attempting Boot From CD-ROM
> Attempting Boot From Hard Drive (C:)
> 464: high_heap_size=0x300000; dsk=0x0; &bootinfo=0x8714    <--- the malloc() is next.
> 474: high_heap_size=0x300000; dsk=0xdf325000; &bootinfo=0x8714
> probe_drive(): drive 0x80: type 0: unit 0: slice 1: part 0:
> probe_drive(): drive 0x81: type 0: unit 1: slice 0: part 0:
> 
> BTX loader 1.00  BTX version is 1.02
> Consoles: internal video/keyboard
> BIOS drive A: is disk0
> BIOS drive C: is disk1
> BIOS drive D: is disk2
> 
> 
> and now without printf() at line 464
> 
> 
> Attempting Boot From CD-ROM
> Attempting Boot From Hard Drive (C:)
> 474: high_heap_size=0x300000; dsk=0xdf325000; &bootinfo=0x86b4
> probe_drive(): drive 0x0: type 0: unit 0: slice 0: part 0:
> gptzfsboot: error 1 lba 32
> gptzfsboot: error 1 lba 1
> probe_drive(): drive 0x81: type 0: unit 1: slice 0: part 0:
> gptzfsboot: No ZFS pools located, can't boot
> 
> 
> Regards,
> 
> Christoph
> 
> --
> Christoph Hoffmann
> 
> On Aug 16, 2011, at 3:48 PM, John Baldwin wrote:
> 
>> On Tuesday, August 16, 2011 9:14:08 am Christoph Hoffmann wrote:
>>> Hello John,
>>> 
>>> Thank you very much indeed for your reply.
>>> 
>>> The pmbr.s passes the ARGS set to 0x900 to main() in zfsboot.c and
>>> *(uint8_t *)PTOV(ARGS)) is 0x80. 
>>> 
>>> In zfsboot.c main(), before the line
>>> bootinfo.bi_version = BOOTINFO_VERSION;
>>> gets executed we still keep the right value of the dsk->drive and just after
>>> the execution, the dsk->drive is equal to zero.
>>> 
>>> Adding
>>>  printf("hello\n");
>>> before
>>>  dsk = malloc(sizeof(struct dsk));
>>> keeps the dsk->drive value assigned to 0x80 and the box will boot.
>>> 
>>> Any comments will be appreciated.
>> 
>> That is odd indeed.  Can you print out a few things:
>> 
>> 1) if high_heap_size is > 0
>> 
>> 2) the value of 'dsk' and '&bootinfo' (try this both with a printf
>>  before the first call to malloc() and without).
>> 
>> -- 
>> John Baldwin
>> _______________________________________________
>> freebsd-current@freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-current
>> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
> 
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9B96176A-7550-4B60-8F4D-0B667EEF7A15>