gptzfsboot error using HP Smart Array P410i Controller

Xin LI delphij at delphij.net
Sun Aug 7 21:59:44 UTC 2011


-----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 <delphij at delphij.net>	https://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-----
-------------- next part --------------
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


More information about the freebsd-current mailing list