Re: gptzfsboot error using HP Smart Array P410i Controller

From: Christoph Hoffmann <christoph_hoffmann_at_me.com>
Date: Sun, 04 Mar 2012 01:06:14 +0100
Hello,

I think this bug has been fix by John Baldwin (see below) after he found that HP
implemented 'e09127r3 EDD-4 Hybrid MBR boot code annex' dated
4 January 2010. 

Maybe John could shade some light on it?

Regards,

Christoph

Author: jhb
Date: Wed Nov  9 18:26:19 2011
New Revision: 227400
URL: 
http://svn.freebsd.org/changeset/base/227400

Log:
  MFC 226748:
  - Add a new header for the x86 boot code that defines various structures
    and constants related to the BIOS Enhanced Disk Drive Specification.
  - Use this header instead of magic numbers and various duplicate structure
    definitions for doing I/O.
  - Use an actual structure for the request to fetch drive parameters in
    drvsize() rather than a gross hack of a char array with some magic
    size.  While here, change drvsize() to only pass the 1.1 version of
    the structure and not request device path information.  If we want
    device path information you have to set the length of the device
    path information as an input (along with probably checking the actual
    EDD version to see which size one should use as the device path
    information is variable-length).  This fixes data smashing problems
    from passing an EDD 3 structure to BIOSes supporting EDD 4.
  
  Approved by:	re (kib)

--
Christoph Hoffmann

On Mar 1, 2012, at 10:39 PM, Palle Girgensohn wrote:

> Hi!
> 
> This is still happening with FreeBSD 9.0-RELEASE, as I have just
> discovered. The hack works like a charm, but seems kind of odd... :)
> 
> Any progress in getting a "real" fix into the repository? Any risks with
> the hack - is it likely to believe that it will suddenly or sporadically
> fail?
> 
> Cheers,
> Palle
> 
> Christoph Hoffmann skrev:
>> Hello Daniel,
>> 
>> Last time I checked up on the issue was on the 23rd of September,
>> it was not fixed then.
>> I was able to to boot from drive 0x80 after adding:
>> 
>> *** zfsboot.c.orig	Fri Sep 23 18:03:26 2011
>> --- zfsboot.c	Fri Sep 23 18:47:44 2011
>> ***************
>> *** 459,464 ****
>> --- 459,465 ----
>> 	heap_end = (char *) PTOV(bios_basemem);
>>  }
>> 
>> + 	printf("Hello! I am a hack.\n");
>>  dsk = malloc(sizeof(struct dsk));
>>  dsk->drive = *(uint8_t *)PTOV(ARGS);
>>  dsk->type = dsk->drive & DRV_HARD ? TYPE_AD : TYPE_FD;
>> 
>> I am inclined to think that this is related to the way how we compile this code, 
>> especially when run on the following particular processor:
>> 
>> 1 Processor(s) detected, 4 total cores enabled, Hyperthreading is enabled
>> Proc 1: Intel(R) Xeon(R) CPU E5630 _at_ 2.53GHz
>> QPI Speed: 5.8 GT/s.
>> 
>> 
>> Regards,
>> 
>> Christoph
>> 
>> 
>> On Oct 11, 2011, at 3:16 PM, Daniel Kalchev wrote:
>> 
>>> Has this issue been resolved somehow? Sane method to build gptzfsboot that will run on HP's P410i?
>>> 
>>> Daniel
>>> _______________________________________________
>>> freebsd-current_at_freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-current
>>> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>> 
>> _______________________________________________
>> freebsd-current_at_freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-current
>> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
Received on Sun Mar 04 2012 - 00:06:29 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:24 UTC