Re: gptzfsboot error using HP Smart Array P410i Controller

2013-01-10 Thread John Baldwin
On Wednesday, January 09, 2013 05:57:06 PM Palle Girgensohn wrote:
 Palle Girgensohn skrev:
  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 @ 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?
 
 Hi,
 
 This is still happening with 9.2-RELEASE on a HP DL 380 G5:

Presumably 9.1?

 gptzfsboot: error 1 lba 32
 gptzfsboot: error 1 lba 1
 gptzfsboot: No ZFS pools located, can't boot
 
 Andriy suggested the latest sys/boot/i386/common/edd.h@243024 from head,
 but unfortunately it makes no difference.
 
 The printf hack above still works fine though.

Do you have avg's most recent commit to edd.h to pack various structures?  I'm 
not sure that made it into 9.1.

-- 
John Baldwin
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2013-01-10 Thread Palle Girgensohn


10 jan 2013 kl. 18:15 skrev John Baldwin j...@freebsd.org:

 On Wednesday, January 09, 2013 05:57:06 PM Palle Girgensohn wrote:
 Palle Girgensohn skrev:
 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.origFri Sep 23 18:03:26 2011 --- zfsboot.cFri 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 @ 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?
 
 Hi,
 
 This is still happening with 9.2-RELEASE on a HP DL 380 G5:
 
 Presumably 9.1?
 
 gptzfsboot: error 1 lba 32
 gptzfsboot: error 1 lba 1
 gptzfsboot: No ZFS pools located, can't boot
 
 Andriy suggested the latest sys/boot/i386/common/edd.h@243024 from head,
 but unfortunately it makes no difference.
 
 The printf hack above still works fine though.
 
 Do you have avg's most recent commit to edd.h to pack various structures?  
 I'm 
 not sure that made it into 9.1.
 

9.1, of course, sorry! :-)

Yes, I've built a fresh gptzfsboot  using 9.1 + edd.h from head (with _packed 
keywords added). 
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2013-01-09 Thread Palle Girgensohn
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Yes, this work like a charm. Super! Booted with no problems. Well done!

Palle

Andriy Gapon skrev:
 Guys,
 
 if you still have the hardware and use FreeBSD, could you please try
 r243025?
 
 http://svnweb.freebsd.org/base?view=revisionrevision=243025
 
-BEGIN PGP SIGNATURE-
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJQ7dc2AAoJEIhV+7FrxBJDttEIAMUsq/pmv9ZNPGQ7lk2vFVtk
sP3TyqSj08q7aLJvURbCcOc20vUZp/TlirSrN8tL1h4O9HnPUdTQNIxlAN5ylrsi
QkpDgK2kSM/ybOjWaFe0Olz3s/+47XJKfOEJsN8qLsmChnO7RUnjmJxz1HWCqWMf
eNg7UnNOKZq0SyiZLDG8zF44Q0iU09voCFSAN/kXQl0YtxGbqt+HuI68w9cThRSr
+jZmGYrnxHQxdqBagAoUU3mMLh9oGRhRLbfd5noXzJ3JWc+ljpjMt/3/YwZj5IcF
BUydnCy9uiUepyAQSKFsJ97WsgeWwYxFOEWuWn/6ar3Shsoy5+9E/4d57AD9J5c=
=AkUA
-END PGP SIGNATURE-
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2013-01-09 Thread Palle Girgensohn
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

This was for an HP DL380 G5, by the way.

I'll try it on a G6 later as well, I reckon the outcome will be similar.

Palle

Andriy Gapon skrev:
 Guys,
 
 if you still have the hardware and use FreeBSD, could you please try
 r243025?
 
 http://svnweb.freebsd.org/base?view=revisionrevision=243025
 
-BEGIN PGP SIGNATURE-
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJQ7dlvAAoJEIhV+7FrxBJDyRIH/0ieSUwN9Ev8hsYIniCRtFMH
79QqQI0XmnASgNh+TXxQABOGUQ1SFUqi2sDsOv+lyPGGS5RIWIzy9GGr91+LlwJu
bLexZqXCIzWjZwpJsIba2wF41Iwc7EDGy6cA28n+O3pfqfazewgvPWWIpcEJ/Rng
sUTQOozZUhblNmvlcsdVpRw1i9QYhivy1d3Yj10AzDfioKXdvRT1d5//BmJ1aEh+
I9+JpG7c8geMLQ+z/mER8tbTg7/Sm+7qwAjM8bFg1lBdDKYryHC8d/nO4XFSE2IO
DCrJRmoe8bormQWZVh4gP16phVm7cFWFXBn3JsRqJYYDrDMnm+LT4AXL/1v5BKY=
=CBpm
-END PGP SIGNATURE-
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2013-01-09 Thread Palle Girgensohn
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Sorry, jumped the gun here... it booted first time, now it is back at
the same fail prompt...

gptzfsboot: error 1 lba 32
gptzfsboot: error 1 lba 1
gptzfsboot: No ZFS pools located, can't boot


Andriy Gapon skrev:
 Guys,
 
 if you still have the hardware and use FreeBSD, could you please try
 r243025?
 
 http://svnweb.freebsd.org/base?view=revisionrevision=243025
 
-BEGIN PGP SIGNATURE-
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJQ7doaAAoJEIhV+7FrxBJDRd0IAIaufFeA6TkvVv8ytwtoKyac
M1d/181hq92PXjGKkqPsP7HB2z3c7Op9zMURh6yia0fUrP68ryw6YVrT22cksNAU
W8WXvhXb80cGw9JKT6lerkqFezex8SInnxjKEiEs93ZRRS98nN2aasu+G5DUCaLK
Fag/QUVJsTfriVpSy8RywKj3AVo2CN6qAoiT/wg+jg7Oqf/QkY9/0cxcrQtrjUJ6
2DTkHs6G3IfHUDmZGpfvlkBwJmbgc90dCC1F/BWsH2MTICcHxEZS8oVliaIgkCWp
wSazAX0x0aYONnYVzIkeJvh/a1ahuVlAatlnuw0IcwPfc/h6wfYZgFIan40DUnY=
=13n2
-END PGP SIGNATURE-
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2013-01-09 Thread Palle Girgensohn
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Palle Girgensohn skrev:
 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 @ 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?

Hi,

This is still happening with 9.2-RELEASE on a HP DL 380 G5:

gptzfsboot: error 1 lba 32
gptzfsboot: error 1 lba 1
gptzfsboot: No ZFS pools located, can't boot

Andriy suggested the latest sys/boot/i386/common/edd.h@243024 from head,
but unfortunately it makes no difference.

The printf hack above still works fine though.

Palle




-BEGIN PGP SIGNATURE-
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJQ7fXCAAoJEIhV+7FrxBJDKKsIALihEN7Ohc2w/d1bCHM0JkPg
JdLSQzKa96YBH29vhWbhLpxAd/x/Vkis0H5Kv96e2M9Bg6aiWGXZuChlyzEu8ZBQ
+q6hqXYcAQJEYzP2n9jWOCcYelYVmmtyLgKLtbx5GQeYkCdS98Icad9cOKWPZYDN
D2aMslLdCVS99RJrvMvtNj3X5roafRfQAXDoTXng/c1VpV1YoXmhHcLPVP2jGP8v
F29Vl5K/24d+CHA3HkUqi7WJ4xyodJSPOpjXtSyLs0mMEMPTY9E9kcp+OFj1JXh4
fnEK3wFIT1g7lpYQK9SF3bHJxu6o9sb67jKYynkMhP6jsCpLMkLMRWuseA22d+0=
=3gJo
-END PGP SIGNATURE-
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2012-11-14 Thread Andriy Gapon

Guys,

if you still have the hardware and use FreeBSD, could you please try r243025?

http://svnweb.freebsd.org/base?view=revisionrevision=243025

-- 
Andriy Gapon
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2012-11-14 Thread Palle Girgensohn
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Thanks,

We can chack it out, we are about to reinstall a machine. Migth be a HP
DL380 *G6* though, does that matter?

Andriy Gapon skrev:
 Guys,
 
 if you still have the hardware and use FreeBSD, could you please try
 r243025?
 
 http://svnweb.freebsd.org/base?view=revisionrevision=243025
 
-BEGIN PGP SIGNATURE-
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJQo3zPAAoJEIhV+7FrxBJD/gkH/R3n0mpEssT7bqmMH4lDcOTc
MmYtQSxpBDRY2Ldvq/BmaRthtmg67K0Hq3iXzQOnUnmXDqQp2wJSUsCjHOto838e
6JpO9gVqxmVXmQWAMEhCt5n60RBhgrGdnIfGlOIZSTp+jiB5KAo8FHFBHCPoq/yB
2fcqOdraoKQXWij5TAnNnyfVl08E7VubL3zj/AMB2hcHSNnX3A5GxGOiCvLGLRnR
6xNt9T/Kyc0VF/G/AGYbbKcu91LcvSpcCje8VGvWkGZUgTblUUKfGmBEHE5X5Oz6
FCGP9fdwzIx3P3zRKVJqTnoxNYPJXIuy1YEitKPL5r3jA6GQAlFDKk7y6BX6Yvk=
=gXAy
-END PGP SIGNATURE-
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2012-11-14 Thread Björn Larsson
Hi Andriy, 

I still have the HW and will test this next week. 

Thanks, 

Björn

Skickat från min iPhone

14 nov 2012 kl. 12:13 skrev Palle Girgensohn gir...@freebsd.org:

 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 Thanks,
 
 We can chack it out, we are about to reinstall a machine. Migth be a HP
 DL380 *G6* though, does that matter?
 
 Andriy Gapon skrev:
 Guys,
 
 if you still have the hardware and use FreeBSD, could you please try
 r243025?
 
 http://svnweb.freebsd.org/base?view=revisionrevision=243025
 -BEGIN PGP SIGNATURE-
 Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
 Comment: GPGTools - http://gpgtools.org
 Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
 
 iQEcBAEBAgAGBQJQo3zPAAoJEIhV+7FrxBJD/gkH/R3n0mpEssT7bqmMH4lDcOTc
 MmYtQSxpBDRY2Ldvq/BmaRthtmg67K0Hq3iXzQOnUnmXDqQp2wJSUsCjHOto838e
 6JpO9gVqxmVXmQWAMEhCt5n60RBhgrGdnIfGlOIZSTp+jiB5KAo8FHFBHCPoq/yB
 2fcqOdraoKQXWij5TAnNnyfVl08E7VubL3zj/AMB2hcHSNnX3A5GxGOiCvLGLRnR
 6xNt9T/Kyc0VF/G/AGYbbKcu91LcvSpcCje8VGvWkGZUgTblUUKfGmBEHE5X5Oz6
 FCGP9fdwzIx3P3zRKVJqTnoxNYPJXIuy1YEitKPL5r3jA6GQAlFDKk7y6BX6Yvk=
 =gXAy
 -END PGP SIGNATURE-
___
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

Re: gptzfsboot error using HP Smart Array P410i Controller

2012-03-05 Thread John Baldwin
On Saturday, March 03, 2012 7:06:14 pm Christoph Hoffmann wrote:
 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?

Hmm, this fix should be in 9.0, so I don't have an explanation for why booting
on 9.0 would still be broken.

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

-- 
John Baldwin
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2012-03-05 Thread Palle Girgensohn




5 mar 2012 kl. 18:39 skrev John Baldwin j...@freebsd.org:

 On Saturday, March 03, 2012 7:06:14 pm Christoph Hoffmann wrote:
 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?
 
 Hmm, this fix should be in 9.0, so I don't have an explanation for why booting
 on 9.0 would still be broken.


Ok, that's odd. I tried 9.0, it does fail, and the printf actually makes it 
work. 

Palle
 
 
 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.origFri Sep 23 18:03:26 2011
 --- zfsboot.cFri 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 @ 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@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/freebsd-current
 To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org
 
 ___
 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
 ___
 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
 
 
 
 -- 
 John Baldwin
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2012-03-05 Thread John Baldwin
On Monday, March 05, 2012 2:35:59 pm Palle Girgensohn wrote:
 
 5 mar 2012 kl. 18:39 skrev John Baldwin j...@freebsd.org:
 
  On Saturday, March 03, 2012 7:06:14 pm Christoph Hoffmann wrote:
  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?
  
  Hmm, this fix should be in 9.0, so I don't have an explanation for why 
  booting
  on 9.0 would still be broken.
 
 
 Ok, that's odd. I tried 9.0, it does fail, and the printf actually makes it 
 work. 

Can you try editing sys/boot/i386/common/drv.c and adding some additional 
padding after
the edd_params?  Perhaps the BIOS is assuming it always gets the full thing 
even if
we pass in a 1.1-sized structure.  Just try putting a edd_params_v4 structure 
after the
normal one.

 Palle
  
  
  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.origFri Sep 23 18:03:26 2011
  --- zfsboot.cFri 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 @ 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@freebsd.org mailing list
  http://lists.freebsd.org/mailman/listinfo/freebsd-current
  To unsubscribe, send any mail to 
  freebsd-current-unsubscr...@freebsd.org
  
  ___
  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
  ___
  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
  
  
  
  -- 
  John Baldwin
 

-- 
John Baldwin
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2012-03-05 Thread Palle Girgensohn

5 mar 2012 kl. 22:16 skrev John Baldwin j...@freebsd.org:

 On Monday, March 05, 2012 2:35:59 pm Palle Girgensohn wrote:
 
 5 mar 2012 kl. 18:39 skrev John Baldwin j...@freebsd.org:
 
 On Saturday, March 03, 2012 7:06:14 pm Christoph Hoffmann wrote:
 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?
 
 Hmm, this fix should be in 9.0, so I don't have an explanation for why 
 booting
 on 9.0 would still be broken.
 
 
 Ok, that's odd. I tried 9.0, it does fail, and the printf actually makes it 
 work. 
 
 Can you try editing sys/boot/i386/common/drv.c and adding some additional 
 padding after
 the edd_params?  Perhaps the BIOS is assuming it always gets the full thing 
 even if
 we pass in a 1.1-sized structure.  Just try putting a edd_params_v4 structure 
 after the
 normal one.

Yes, I'll try that. It might take a couple of days, since I'm in the a quite 
busy the next day or two, but I will check it out. 

Cheers,
Palle


 
 Palle
 
 
 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.origFri Sep 23 18:03:26 2011
 --- zfsboot.cFri 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 @ 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@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/freebsd-current
 To unsubscribe, send any mail to 
 freebsd-current-unsubscr...@freebsd.org
 
 ___
 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
 ___
 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
 
 
 
 -- 
 John Baldwin
 
 
 -- 
 John Baldwin
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2012-03-03 Thread Christoph Hoffmann
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.cFri 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 @ 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@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/freebsd-current
 To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org
 
 ___
 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
 ___
 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



Re: gptzfsboot error using HP Smart Array P410i Controller

2012-03-01 Thread Palle Girgensohn
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.origFri 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 @ 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@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/freebsd-current
 To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org
 
 ___
 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
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-10-13 Thread Andriy Gapon
on 13/10/2011 00:33 Christoph Hoffmann said the following:
 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.origFri 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 @ 2.53GHz
 QPI Speed: 5.8 GT/s.

Can you try the latest code in head?
I've removed all the optimization/pessimization compiler flags for gpt/zfs boot
blocks that at times seemed to do more harm than good.

-- 
Andriy Gapon
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-10-13 Thread Daniel Kalchev



On 13.10.11 00:33, Christoph Hoffmann wrote:

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 @ 2.53GHz
QPI Speed: 5.8 GT/s.


For me, this happens on

CPU: Intel(R) Xeon(R) CPU   E5620  @ 2.40GHz (2400.10-MHz 
K8-class CPU)


On HP DL360 G7

I try to boot -stable.

Daniel

___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-10-12 Thread Christoph Hoffmann
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 @ 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@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/freebsd-current
 To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org

___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-10-11 Thread Daniel Kalchev
Has this issue been resolved somehow? Sane method to build gptzfsboot 
that will run on HP's P410i?


Daniel
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-08-22 Thread Christoph Hoffmann
Hello Everybody,

As per Dimitry request, please find set of gzip'ed zfsboot.s files (61223 
bytes).
 
Due to size of the attachments which exceeded 200 KB, the original message 
has been rejected. 

Thank you very much indeed for your help and I am sorry of this spam. 

Regards,

Christoph


--
Christoph Hoffmann

On Aug 22, 2011, at 12:23 PM, Christoph Hoffmann wrote:

 Hello Dimitry,
 
 Please find attached zfsboot.s files. 
 
 Thank you very much indeed for your help.
 
 Best Regards,
 
 Christoph
 
 zfsboot.s.orig-orderzfsboot.s.re-ordered
 
 --
 Christoph Hoffmann
 
 On Aug 21, 2011, at 12:03 AM, Dimitry Andric wrote:
 
 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
 

___
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

Re: gptzfsboot error using HP Smart Array P410i Controller

2011-08-20 Thread Dimitry Andric

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


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-08-18 Thread Christoph Hoffmann
Hello John,

Thank you very much indeed for the hints.

I am under the impression that we are facing a problem with synchronisation 
of CPU local caches. I also wasn't able to find any problem with memory 
allocation.

This box is equipped with:

1 Processor(s) detected, 4 total cores enabled, Hyperthreading is enabled   
Proc 1: Intel(R) Xeon(R) CPU E5630 @ 2.53GHz
QPI Speed: 5.8 GT/s 

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.

Any comments will be appreciated.

Best Regards,

Christoph

--
Christoph Hoffmann

On Aug 16, 2011, at 9:15 PM, John Baldwin wrote:

 On Tuesday, August 16, 2011 1:46:48 pm Christoph Hoffmann wrote:
 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
 
 Hmm, I am really at a loss for what is trashing 'dsk'.  You could
 possibly try adjusting bios_getmem() to force it to use
 high_heap_size from bios_extmem (that is at the bottom of the
 function) perhaps.  However, that is mostly a bit of a guess that
 some part of your BIOS is randomly zero'ing dsk.
 
 I'm at a loss as to how the assignments to bootinfo would trash
 'dsk'. :(
 
 -- 
 John Baldwin
 ___
 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

___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-08-18 Thread John Baldwin
On Thursday, August 18, 2011 12:30:24 pm Christoph Hoffmann wrote:
 Hello John,
 
 Thank you very much indeed for the hints.
 
 I am under the impression that we are facing a problem with synchronisation 
 of CPU local caches. I also wasn't able to find any problem with memory 
 allocation.
 
 This box is equipped with:
 
 1 Processor(s) detected, 4 total cores enabled, Hyperthreading is enabled 
   
 Proc 1: Intel(R) Xeon(R) CPU E5630 @ 2.53GHz  
   
 QPI Speed: 5.8 GT/s   
   
 
 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);

What if you leave the order as-is but just change this one line to use 
PTOV(ARGS) directly here instead of 'dsk-drive'?

-- 
John Baldwin
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-08-18 Thread Christoph Hoffmann
John, 

Unfortunately not, as we is still need 4 additional instructions or some sort 
of memory 
barrier [ like mb() in Tru64 :) ] .

Regards,

Christoph

--
Christoph Hoffmann

On Aug 18, 2011, at 7:10 PM, John Baldwin wrote:

 On Thursday, August 18, 2011 12:30:24 pm Christoph Hoffmann wrote:
 Hello John,
 
 Thank you very much indeed for the hints.
 
 I am under the impression that we are facing a problem with synchronisation 
 of CPU local caches. I also wasn't able to find any problem with memory 
 allocation.
 
 This box is equipped with:
 
 1 Processor(s) detected, 4 total cores enabled, Hyperthreading is enabled

 Proc 1: Intel(R) Xeon(R) CPU E5630 @ 2.53GHz 

 QPI Speed: 5.8 GT/s  

 
 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);
 
 What if you leave the order as-is but just change this one line to use 
 PTOV(ARGS) directly here instead of 'dsk-drive'?
 
 -- 
 John Baldwin
 ___
 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

___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-08-18 Thread Test Rat
Christoph Hoffmann christoph_hoffm...@me.com writes:

 Hello,

 The initial reboot followed the installation of ZFS-only version 5/28 system
 reports error:

 Attempting Boot From Hard Drive (C:)
 gptzfsboot: error 1 lba 32
 gptzfsboot: error 1 lba 1
 gptzfsboot: No ZFS pools located, can't boot

The bug may be unrelated but try clang patches, too.

  http://lists.freebsd.org/pipermail/freebsd-current/2011-August/026263.html
  http://lists.freebsd.org/pipermail/freebsd-current/2011-August/026338.html
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-08-18 Thread Christoph Hoffmann
Hello,

Thank you very much for your information.

Even with both of them being implemented, I still have to re-order 
the zfsboot.c main() function to get it working.

Regards,

Christoph

--
Christoph Hoffmann

On Aug 18, 2011, at 8:04 PM, Test Rat wrote:

 Christoph Hoffmann christoph_hoffm...@me.com writes:
 
 Hello,
 
 The initial reboot followed the installation of ZFS-only version 5/28 system
 reports error:
 
 Attempting Boot From Hard Drive (C:)
 gptzfsboot: error 1 lba 32
 gptzfsboot: error 1 lba 1
 gptzfsboot: No ZFS pools located, can't boot
 
 The bug may be unrelated but try clang patches, too.
 
  http://lists.freebsd.org/pipermail/freebsd-current/2011-August/026263.html
  http://lists.freebsd.org/pipermail/freebsd-current/2011-August/026338.html
 ___
 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

___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-08-18 Thread John Baldwin
On Thursday, August 18, 2011 1:49:18 pm Christoph Hoffmann wrote:
 John, 
 
 Unfortunately not, as we is still need 4 additional instructions or some 
sort of memory 
 barrier [ like mb() in Tru64 :) ] .

Well, x86 CPUs generally don't need memory barriers assuming the compiler
hasn't done something invalid, especially for opertions that are only on a 
single CPU.  However, if the compiler was broken presumably zfsboot would be 
broken everywhere.

-- 
John Baldwin
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-08-16 Thread Christoph Hoffmann
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.

Best Regards,

Christoph

--
Christoph Hoffmann

On Aug 15, 2011, at 6:12 PM, John Baldwin wrote:

 On Friday, August 05, 2011 10:08:27 am Christoph Hoffmann wrote:
 Hello Everyone,
 
 Despite the BIOS information about the nonexistent floppy, the zfsboot.c 
 code 
 will prevent to boot from the first HDD if a floppy is given as a first 
 available device.
 
 The drive 0x0 (floppy) will be probed before the code below and an error 
 occurs:
 […]
 gptzfsboot: error 1 lba 32   

 gptzfsboot: error 1 lba 1

 […]
 
 The continue statement will skip the rest of the iteration because  
 if ((i | DRV_HARD) == *(uint8_t *)PTOV(ARGS)) 
 is true if the drive equals 0x80. As a result we do not call probe_drive()
 for this drive.
 
 But that shouldn't happen if ARGS has a drive number of 0.  (In that case 
 0x80 
 != 0x0, so it shouldn't match.)
 
 This shows that PTOV(ARGS) actually has a %dl value of 0x80 which is correct. 
  
 The question is how your initial 'dsk' ended up using 0x0 instead of 0x80.
 Note that your 'type' is 0, so that means that it was ok initially (TYPE_AD 
 is 
 0):
 
dsk-drive = *(uint8_t *)PTOV(ARGS);
dsk-type = dsk-drive  DRV_HARD ? TYPE_AD : TYPE_FD;
 
 Somewhere between where 'dsk' is initalized in main() and before 
 probe_drive() 
 is called in main() for 'dsk', 'dsk-drive' is getting clobbered.  Can you 
 add 
 some additional printfs to nail down where that is happening?
 
 -- 
 John Baldwin
 ___
 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

___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-08-16 Thread John Baldwin
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-unsubscr...@freebsd.org


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-08-16 Thread Christoph Hoffmann
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=0x30; dsk=0x0; bootinfo=0x8714--- the malloc() is 
next.
474: high_heap_size=0x30; 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=0x30; 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-unsubscr...@freebsd.org

___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-08-16 Thread John Baldwin
On Tuesday, August 16, 2011 10:41:50 am 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=0x30; dsk=0x0; bootinfo=0x8714--- the malloc() 
 is next.
 474: high_heap_size=0x30; 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=0x30; 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

Hmm, so the entire 'dsk' structure gets zero'd it seems.  What if you force
high_heap_size to 0?

-- 
John Baldwin
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-08-16 Thread Christoph Hoffmann
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=0x30; dsk=0x0; bootinfo=0x8714--- the malloc() 
 is next.
 474: high_heap_size=0x30; 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=0x30; 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-unsubscr...@freebsd.org
 
 ___
 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

___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-08-16 Thread John Baldwin
On Tuesday, August 16, 2011 1:46:48 pm Christoph Hoffmann wrote:
 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

Hmm, I am really at a loss for what is trashing 'dsk'.  You could
possibly try adjusting bios_getmem() to force it to use
high_heap_size from bios_extmem (that is at the bottom of the
function) perhaps.  However, that is mostly a bit of a guess that
some part of your BIOS is randomly zero'ing dsk.

I'm at a loss as to how the assignments to bootinfo would trash
'dsk'. :(

-- 
John Baldwin
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-08-15 Thread John Baldwin
On Sunday, August 07, 2011 5:59:31 pm Xin LI wrote:
 On 08/01/11 06:07, Christoph Hoffmann wrote:
  Hello,
 
  The initial reboot followed the installation of ZFS-only version 5/28
  system reports error:
 
  Attempting Boot From Hard Drive (C:)
   gptzfsboot: error 1 lba 32
   gptzfsboot: error 1 lba 1
   gptzfsboot: No ZFS pools located, can't boot
 
  The same installation procedure on older ProLiant with Compaq Smart
  Array 5i do not cause any problems.
 
 Looks like for some reason the drive number (%dl) didn't get passed
 through ARGS (by pmbr.s).

MBR boot loaders aren't defined to do that.  They pass %dl directly via the 
register.  For gptboot and gptzfsboot, sys/boot/i386/gptboot/gptldr.S 
already stores the saved value of %dl in MEM_ARG.

-- 
John Baldwin
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-08-15 Thread John Baldwin
On Friday, August 05, 2011 10:08:27 am Christoph Hoffmann wrote:
 Hello Everyone,
 
 Despite the BIOS information about the nonexistent floppy, the zfsboot.c 
code 
 will prevent to boot from the first HDD if a floppy is given as a first 
available device.
 
 The drive 0x0 (floppy) will be probed before the code below and an error 
occurs:
 […]
 gptzfsboot: error 1 lba 32
   
 gptzfsboot: error 1 lba 1 
   
 […]
 
 The continue statement will skip the rest of the iteration because  
  if ((i | DRV_HARD) == *(uint8_t *)PTOV(ARGS)) 
 is true if the drive equals 0x80. As a result we do not call probe_drive()
 for this drive.

But that shouldn't happen if ARGS has a drive number of 0.  (In that case 0x80 
!= 0x0, so it shouldn't match.)

This shows that PTOV(ARGS) actually has a %dl value of 0x80 which is correct.  
The question is how your initial 'dsk' ended up using 0x0 instead of 0x80.
Note that your 'type' is 0, so that means that it was ok initially (TYPE_AD is 
0):

dsk-drive = *(uint8_t *)PTOV(ARGS);
dsk-type = dsk-drive  DRV_HARD ? TYPE_AD : TYPE_FD;

Somewhere between where 'dsk' is initalized in main() and before probe_drive() 
is called in main() for 'dsk', 'dsk-drive' is getting clobbered.  Can you add 
some additional printfs to nail down where that is happening?

-- 
John Baldwin
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-08-07 Thread Xin LI
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

On 08/01/11 06:07, Christoph Hoffmann wrote:
 Hello,
 
 The initial reboot followed the installation of ZFS-only version 5/28
 system reports error:
 
 Attempting Boot From Hard Drive (C:)
  gptzfsboot: error 1 lba 32
  gptzfsboot: error 1 lba 1
  gptzfsboot: No ZFS pools located, can't boot
 
 The same installation procedure on older ProLiant with Compaq Smart
 Array 5i do not cause any problems.

Looks like for some reason the drive number (%dl) didn't get passed
through ARGS (by pmbr.s).

Note that we shouldn't really pass the whole %dx here, as pmbr.s have
different understanding of %dh.  You may want to add a xor %dh, %dh
before the store line but after the main.2 label.

Please let us know if this helps or not.  Thanks in advance!

Cheers,
- -- 
Xin LI delp...@delphij.nethttps://www.delphij.net/
FreeBSD - The Power to Serve!   Live free or die
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.18 (FreeBSD)

iQEcBAEBCAAGBQJOPwrDAAoJEATO+BI/yjfBIJ0IALzzDN/b0vfGLyqH8XgQSsqz
YDU3bxSRBVBcuZ76II0gOSaFZrWaH+bRcfjE/LNmS26TTWir67UVsoFk5gCaYkl+
L1oe76o5ISrp3Tr/mGNyKv/TN1WHeo8I0ExABfJUNw0NHIhXivtJMb7NLOJl5eed
/XfgYzHw8zAlnjbF7ZfMElEjjKUqTLl3VyHth+3KsUsK+zrZcU4gLzBHh7JnR31p
NvtyLxyMsQQTHKiaDtGVPGOgUPsDfTHdmAI77fgE26W6Z6FqCqV+xdEOuc+g5tRi
kC28HPUSijoX44vkDYp4B57988JUGauoJrKkTZ4L2LAh918ZAvuFhgRgtUpiHLY=
=O02h
-END PGP SIGNATURE-
Index: sys/boot/i386/pmbr/pmbr.s
===
--- sys/boot/i386/pmbr/pmbr.s   (revision 224700)
+++ sys/boot/i386/pmbr/pmbr.s   (working copy)
@@ -36,6 +36,7 @@
 
.set LOAD,0x7c00# Load address
.set EXEC,0x600 # Execution address
+   .set ARG,0x900  # Arguments
.set MAGIC,0xaa55   # Magic: bootable
.set SECSIZE,0x200  # Size of a single disk sector
.set DISKSIG,440# Disk signature offset
@@ -93,7 +94,8 @@ main.1:   movb $0x80,%dl  # Assume drive 
0x80
 #
 # Load the primary GPT header from LBA 1 and verify signature.
 #
-main.2:movw $GPT_ADDR,%bx
+main.2:mov %dx,ARG # Save drive number
+   movw $GPT_ADDR,%bx
movw $lba,%si
call read
cmpl $GPT_SIG_0,GPT_ADDR+GPT_SIG
___
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

Re: gptzfsboot error using HP Smart Array P410i Controller

2011-08-05 Thread John Baldwin
On Thursday, August 04, 2011 3:26:49 pm Christoph Hoffmann wrote:
 Hello Everyone,
 
 The system will successfully boot only if the OS installation is laying on
 the second drive or higher (0x81 and more).

Are you using clang?  If so, you should try either using GCC or using this 
patch with clang as a workaround from the previous thread on zfsboot issues:

Index: sys/boot/i386/zfsboot/Makefile
===
--- sys/boot/i386/zfsboot/Makefile  (revision 224653)
+++ sys/boot/i386/zfsboot/Makefile  (working copy)
@@ -20,7 +20,6 @@
-fomit-frame-pointer \
-fno-unit-at-a-time \
-mno-align-long-strings \
-   -mrtd \
-DBOOT2 \
-DSIOPRT=${BOOT_COMCONSOLE_PORT} \
-DSIOFMT=${B2SIOFMT} \
Index: sys/boot/i386/gptzfsboot/Makefile
===
--- sys/boot/i386/gptzfsboot/Makefile   (revision 224653)
+++ sys/boot/i386/gptzfsboot/Makefile   (working copy)
@@ -22,7 +22,6 @@
-fomit-frame-pointer \
-fno-unit-at-a-time \
-mno-align-long-strings \
-   -mrtd \
-DGPT -DBOOT2 \
-DSIOPRT=${BOOT_COMCONSOLE_PORT} \
-DSIOFMT=${B2SIOFMT} \

-- 
John Baldwin
___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-08-05 Thread Christoph Hoffmann
Hello John,

No, I and not using clang.

My problem persists even I apply the patch. 

As a workaround I have to put OS on second LUN presented by the 
P410i Controller.

Regards,

Christoph

--
Christoph Hoffmann


On Aug 5, 2011, at 1:37 PM, John Baldwin wrote:

 On Thursday, August 04, 2011 3:26:49 pm Christoph Hoffmann wrote:
 Hello Everyone,
 
 The system will successfully boot only if the OS installation is laying on
 the second drive or higher (0x81 and more).
 
 Are you using clang?  If so, you should try either using GCC or using this 
 patch with clang as a workaround from the previous thread on zfsboot issues:
 
 Index: sys/boot/i386/zfsboot/Makefile
 ===
 --- sys/boot/i386/zfsboot/Makefile  (revision 224653)
 +++ sys/boot/i386/zfsboot/Makefile  (working copy)
 @@ -20,7 +20,6 @@
-fomit-frame-pointer \
-fno-unit-at-a-time \
-mno-align-long-strings \
 -   -mrtd \
-DBOOT2 \
-DSIOPRT=${BOOT_COMCONSOLE_PORT} \
-DSIOFMT=${B2SIOFMT} \
 Index: sys/boot/i386/gptzfsboot/Makefile
 ===
 --- sys/boot/i386/gptzfsboot/Makefile   (revision 224653)
 +++ sys/boot/i386/gptzfsboot/Makefile   (working copy)
 @@ -22,7 +22,6 @@
-fomit-frame-pointer \
-fno-unit-at-a-time \
-mno-align-long-strings \
 -   -mrtd \
-DGPT -DBOOT2 \
-DSIOPRT=${BOOT_COMCONSOLE_PORT} \
-DSIOFMT=${B2SIOFMT} \
 
 -- 
 John Baldwin
 ___
 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

___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-08-05 Thread Christoph Hoffmann
Hello Everyone,

Despite the BIOS information about the nonexistent floppy, the zfsboot.c code 
will prevent to boot from the first HDD if a floppy is given as a first 
available device.

The drive 0x0 (floppy) will be probed before the code below and an error occurs:
[…]
gptzfsboot: error 1 lba 32  
gptzfsboot: error 1 lba 1   
[…]

The continue statement will skip the rest of the iteration because  
 if ((i | DRV_HARD) == *(uint8_t *)PTOV(ARGS)) 
is true if the drive equals 0x80. As a result we do not call probe_drive()
for this drive.

Eliminating
 if ((i | DRV_HARD) == *(uint8_t *)PTOV(ARGS))  
continue;
would help.

Any comments will be appreciated.

Best Regards,

Christoph

i386/zfsboot/zfsboot.c

int
main(void)
{
[…]
/*
 * Probe the rest of the drives that the bios knows about. This
 * will find any other available pools and it may fill in missing
 * vdevs for the boot pool.
 */
for (i = 0; i  *(unsigned char *)PTOV(BIOS_NUMDRIVES); i++) {
 if ((i | DRV_HARD) == *(uint8_t *)PTOV(ARGS))  
continue;

if (!int13probe(i | DRV_HARD))
break;
[…]
probe_drive(dsk, NULL);
}
[…]



On Aug 5, 2011, at 1:47 PM, Christoph Hoffmann wrote:

 Hello John,
 
 No, I and not using clang.
 
 My problem persists even I apply the patch. 
 
 As a workaround I have to put OS on second LUN presented by the 
 P410i Controller.
 
 Regards,
 
 Christoph
 
 --
 Christoph Hoffmann
 
 
 On Aug 5, 2011, at 1:37 PM, John Baldwin wrote:
 
 On Thursday, August 04, 2011 3:26:49 pm Christoph Hoffmann wrote:
 Hello Everyone,
 
 The system will successfully boot only if the OS installation is laying on
 the second drive or higher (0x81 and more).
 
 Are you using clang?  If so, you should try either using GCC or using this 
 patch with clang as a workaround from the previous thread on zfsboot issues:
 
 Index: sys/boot/i386/zfsboot/Makefile
 ===
 --- sys/boot/i386/zfsboot/Makefile  (revision 224653)
 +++ sys/boot/i386/zfsboot/Makefile  (working copy)
 @@ -20,7 +20,6 @@
   -fomit-frame-pointer \
   -fno-unit-at-a-time \
   -mno-align-long-strings \
 -   -mrtd \
   -DBOOT2 \
   -DSIOPRT=${BOOT_COMCONSOLE_PORT} \
   -DSIOFMT=${B2SIOFMT} \
 Index: sys/boot/i386/gptzfsboot/Makefile
 ===
 --- sys/boot/i386/gptzfsboot/Makefile   (revision 224653)
 +++ sys/boot/i386/gptzfsboot/Makefile   (working copy)
 @@ -22,7 +22,6 @@
   -fomit-frame-pointer \
   -fno-unit-at-a-time \
   -mno-align-long-strings \
 -   -mrtd \
   -DGPT -DBOOT2 \
   -DSIOPRT=${BOOT_COMCONSOLE_PORT} \
   -DSIOFMT=${B2SIOFMT} \
 
 -- 
 John Baldwin
 ___
 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
 
 ___
 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

___
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


Re: gptzfsboot error using HP Smart Array P410i Controller

2011-08-04 Thread Christoph Hoffmann
Hello Everyone,

The system will successfully boot only if the OS installation is laying on
the second drive or higher (0x81 and more).

Attempting Boot From CD-ROM 
Attempting Boot From Hard Drive (C:)
probe_drive(): drive 0x0: type 0: unit 0: slice 0: part 0:   -- 0x0 instead of 
0x80 ?  
gptzfsboot: error 1 lba 32  
gptzfsboot: error 1 lba 1   
probe_drive(): drive 0x81: type 0: unit 1: slice 0: part 0:  -- already 0x81, 
0x80 is missing   

BTX loader 1.00  BTX version is 1.02
Console: internal video/keyboard
BIOS drive A: is disk0
BIOS drive C: is disk1
BIOS drive D: is disk2
BIOS 637kB/3658940kB available memory

FreeBSD/x86 ZFS enabled bootstrap loader, Revision 1.1
[…]

Even there is no floppy drive on this system, BIOS will report it as drive A.
This will be mapped as 0x80 and gptzfsboot reports error. Next drive to probe
will be 0x81 after zfsboot increments it in line 500. 

Any comments would be appreciated.

Best regards,

Christoph


On Aug 1, 2011, at 3:07 PM, Christoph Hoffmann wrote:

 Hello,
 
 The initial reboot followed the installation of ZFS-only version 5/28 system 
 reports error:
 
 Attempting Boot From Hard Drive (C:)  
   
 gptzfsboot: error 1 lba 32
   
 gptzfsboot: error 1 lba 1 
   
 gptzfsboot: No ZFS pools located, can't boot
 
 The same installation procedure on older ProLiant with Compaq Smart Array 5i
 do not cause any problems.
 
 The system has been installed based on FreeBSD 8.2-20110731-SNAP i386 802510.
 The P410i Controller presents two units, and the disk da0 has been 
 partitioned as follow:
 
 gpart destroy -F /dev/da0
 dd if=/dev/zero of=/dev/da0 bs=1024 count=1
 gpart create -s GPT /dev/da0
 gpart add -b 32K -s 64K -t freebsd-boot -l disk0boot /dev/da0
 gpart add -s  30G -t freebsd-zfs  -l disk0 /dev/da0
 gpart add -s   4G -t freebsd-swap -l swap0 /dev/da0
 gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 /dev/da0
 gpart set -a bootme -i 1 /dev/da0
 
 Early experimentation show the following footprint:
 
 Attempting Boot From CD-ROM   
   
 Attempting Boot From Hard Drive (C:)  
   
 probe_drive(360): drive 0x0: type 0: unit 0: slice 0: part 0:  -- 
 dsk.drive=0 instead of 0x80 ?
 vdev_probe(): off=16384, sizeof(vdev_phys_t)=114688
 vdev_read_phys(): reading 114688 bytes at 0x4000 to-- *buf is 
 empty 
 gptzfsboot: error 1 lba 32 -- why lba is 
 not zero ? 
 drvsize(): packet.count=16, off=0, seg=8192, lba=32   
   
 drvsize(): dsk-drive=0, type=0, unit=0, slice=0, part=0, init=0, start=0
 vdev_read_phys(): rc from vdev-v_phys_read =4294967295-- -1 

 gptzfsboot: error 1 lba 1 
   
 drvsize(): packet.count=1, off=0, seg=8704, lba=1 
   
 drvsize(): dsk-drive=0, type=0, unit=0, slice=0, part=0, init=0, start=0 
   
 main(): retun from probe_drive(): spa_name=: kname=: drive=0: 
   
 probe_drive(360): drive 0x81: type 0: unit 1: slice 0: part 0:  -- disk da1 
 is empty 
 vdev_probe(): off=16384, sizeof(vdev_phys_t)=114688   
   
 vdev_read_phys(): reading 114688 bytes at 0x4000 to-- *buf is empty  
  
 vdev_read_phys(): rc from vdev-v_phys_read =0
   
 probe_drive(390): drive 0x81: type 0: unit 1: slice 0: part 0:
   
 main(): spa_name=, kname=,drive=129:  -- da1 (0x81) do not 
 contain any ZFS informations 
 gptzfsboot: No ZFS pools located, can't boot  
 
 Best regards,
 
 Christoph
 
 ___
 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

___
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