Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Jun 2011 16:50:14 +0200
From:      Henri Hennebert <hlh@restart.be>
To:        John Baldwin <jhb@freebsd.org>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: ZFS boot inside on the second partition inside a slice
Message-ID:  <4E00AFA6.4050305@restart.be>
In-Reply-To: <201106210901.27338.jhb@freebsd.org>
References:  <BANLkTi=drd8vY84_4jqDZTFK%2Bsq=n0Kx9g@mail.gmail.com> <201106200951.47449.jhb@freebsd.org> <4E00699A.7010403@restart.be> <201106210901.27338.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 06/21/2011 15:01, John Baldwin wrote:
> Index: zfsldr.S
> ===================================================================
> --- zfsldr.S	(revision 223339)
> +++ zfsldr.S	(working copy)
> @@ -234,9 +234,12 @@ nread.1:	xor %ecx,%ecx			# Get
>   		callw read			# Read from disk
>   		lea 0x10(%bp),%sp		# Clear stack
>   		jnc return			# If success, return
> -		mov $msg_read,%si		# Otherwise, set the error
> -						#  message and fall through to
> -						#  the error routine
> +		mov %ah,%al			# Format
> +		mov $read_err,%di		#  error
> +		call hex8			#  code
> +		mov $msg_read,%si		# Set the error message and
> +						#  fall through to the error
> +						#  routine
>   /*
>    * Print out the error message pointed to by %ds:(%si) followed
>    * by a prompt, wait for a keypress, and then reboot the machine.
> @@ -296,12 +299,28 @@ read.1:		mov $msg_chs,%si
>   		jmp error
>   msg_chs:	.asciz "CHS not supported"
>
> +/*
> + * Convert AL to hex, saving the result to [EDI].
> + */
> +hex8:		push %ax			# Save
> +		shrb $0x4,%al			# Do upper
> +		call hex8.1			#  4
> +		pop %ax				# Restore
> +hex8.1: 	andb $0xf,%al			# Get lower 4
> +		cmpb $0xa,%al			# Convert
> +		sbbb $0x69,%al			#  to hex
> +		das				#  digit
> +		orb $0x20,%al			# To lower case
> +		stosb				# Save char
> +		ret				# (Recursive)
> +
>   /* Messages */
>
> -msg_read:	.asciz "Read"
> -msg_part:	.asciz "Boot"
> +msg_read:	.ascii "Read error: "
> +read_err:	.asciz "XX"
> +msg_part:	.asciz "Boot error"
>
> -prompt: 	.asciz " error\r\n"
> +prompt: 	.asciz "\r\n"
>
>   		.org PRT_OFF,0x90
>
I get

Read error: 01

Henri




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4E00AFA6.4050305>