From owner-freebsd-sparc64@FreeBSD.ORG Sun Jul 22 22:13:19 2012 Return-Path: Delivered-To: freebsd-sparc64@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 97870106566C for ; Sun, 22 Jul 2012 22:13:19 +0000 (UTC) (envelope-from peter@rulingia.com) Received: from vps.rulingia.com (host-122-100-2-194.octopus.com.au [122.100.2.194]) by mx1.freebsd.org (Postfix) with ESMTP id 2A4228FC19 for ; Sun, 22 Jul 2012 22:13:18 +0000 (UTC) Received: from server.rulingia.com (c220-239-247-45.belrs5.nsw.optusnet.com.au [220.239.247.45]) by vps.rulingia.com (8.14.5/8.14.5) with ESMTP id q6MMDIsW009937 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 23 Jul 2012 08:13:18 +1000 (EST) (envelope-from peter@rulingia.com) X-Bogosity: Ham, spamicity=0.000000 Received: from server.rulingia.com (localhost.rulingia.com [127.0.0.1]) by server.rulingia.com (8.14.5/8.14.5) with ESMTP id q6MMDCdC008025 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Mon, 23 Jul 2012 08:13:12 +1000 (EST) (envelope-from peter@server.rulingia.com) Received: (from peter@localhost) by server.rulingia.com (8.14.5/8.14.5/Submit) id q6MMDCok008024 for freebsd-sparc64@freebsd.org; Mon, 23 Jul 2012 08:13:12 +1000 (EST) (envelope-from peter) Date: Mon, 23 Jul 2012 08:13:12 +1000 From: Peter Jeremy To: freebsd-sparc64@freebsd.org Message-ID: <20120722221312.GB7791@server.rulingia.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="oC1+HKm2/end4ao3" Content-Disposition: inline X-PGP-Key: http://www.rulingia.com/keys/peter.pgp User-Agent: Mutt/1.5.21 (2010-09-15) Subject: FP Exception handling on SPARC X-BeenThere: freebsd-sparc64@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the Sparc List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Jul 2012 22:13:19 -0000 --oC1+HKm2/end4ao3 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable I've been doing some experiments on mixing NaNs using x87, SSE, sparc64 on FreeBSD, Solaris/SPARC and Linux/ARM. My conclusion is that there is no standardisation between the FPUs (and the base gcc also evaluates constant expressions differently to the target FPU). However, I've also noticed that FreeBSD/sparc64 and SunStudio on Solaris10/SPARC also give different results. Should we modify the FreeBSD/sparc64 FP exception handling code to match Solaris? --=20 Peter Jeremy --oC1+HKm2/end4ao3 Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iEYEARECAAYFAlAMevgACgkQ/opHv/APuIfd8ACgm5EDlesGNSWnHVgaJyqqVx+/ kSIAn1N9MoRaA7Vc+iwou/9i3oqDE5hi =IKAn -----END PGP SIGNATURE----- --oC1+HKm2/end4ao3-- From owner-freebsd-sparc64@FreeBSD.ORG Mon Jul 23 11:07:25 2012 Return-Path: Delivered-To: freebsd-sparc64@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6D9311065674 for ; Mon, 23 Jul 2012 11:07:25 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 56FE78FC21 for ; Mon, 23 Jul 2012 11:07:25 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q6NB7PUs090152 for ; Mon, 23 Jul 2012 11:07:25 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q6NB7OJc090150 for freebsd-sparc64@FreeBSD.org; Mon, 23 Jul 2012 11:07:24 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 23 Jul 2012 11:07:24 GMT Message-Id: <201207231107.q6NB7OJc090150@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: gnats set sender to owner-bugmaster@FreeBSD.org using -f From: FreeBSD bugmaster To: freebsd-sparc64@FreeBSD.org Cc: Subject: Current problem reports assigned to freebsd-sparc64@FreeBSD.org X-BeenThere: freebsd-sparc64@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the Sparc List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jul 2012 11:07:25 -0000 Note: to view an individual PR, use: http://www.freebsd.org/cgi/query-pr.cgi?pr=(number). The following is a listing of current problems submitted by FreeBSD users. These represent problem reports covering all versions including experimental development code and obsolete releases. S Tracker Resp. Description -------------------------------------------------------------------------------- o sparc/169669 sparc64 Something seems broken in sparc64 TLS or lang/lua o sparc/164227 sparc64 [boot] Can't boot 9.0-RELEASE/sparc64 on Blade 1500 s sparc/164226 sparc64 [cd] Data corruption on 9.0-RELEASE when reading from o sparc/162513 sparc64 mpt(4), mptutil(8) reports variable, erroneous drive i o sparc/141918 sparc64 [ehci] ehci_interrupt: unrecoverable error, controller s sparc/139134 sparc64 kernel output corruption s sparc/107087 sparc64 [hang] system is hung during boot from CD o sparc/105048 sparc64 [trm] trm(4) panics on sparc64 o sparc/104428 sparc64 [nullfs] nullfs panics on E4500 (but not E420) o sparc/71729 sparc64 printf in kernel thread causes panic on SPARC 10 problems total. From owner-freebsd-sparc64@FreeBSD.ORG Thu Jul 26 21:27:57 2012 Return-Path: Delivered-To: sparc64@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8B753106566B; Thu, 26 Jul 2012 21:27:57 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id 5931B8FC08; Thu, 26 Jul 2012 21:27:57 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q6QLRpNG092109; Thu, 26 Jul 2012 17:27:51 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q6QLRppx092108; Thu, 26 Jul 2012 21:27:51 GMT (envelope-from tinderbox@freebsd.org) Date: Thu, 26 Jul 2012 21:27:51 GMT Message-Id: <201207262127.q6QLRppx092108@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on sparc64/sparc64 X-BeenThere: freebsd-sparc64@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Porting FreeBSD to the Sparc List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Jul 2012 21:27:57 -0000 TB --- 2012-07-26 20:18:04 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-07-26 20:18:04 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-07-26 20:18:04 - starting HEAD tinderbox run for sparc64/sparc64 TB --- 2012-07-26 20:18:04 - cleaning the object tree TB --- 2012-07-26 20:18:04 - cvsupping the source tree TB --- 2012-07-26 20:18:04 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/sparc64/sparc64/supfile TB --- 2012-07-26 20:18:50 - building world TB --- 2012-07-26 20:18:50 - CROSS_BUILD_TESTING=YES TB --- 2012-07-26 20:18:50 - MAKEOBJDIRPREFIX=/obj TB --- 2012-07-26 20:18:50 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-07-26 20:18:50 - SRCCONF=/dev/null TB --- 2012-07-26 20:18:50 - TARGET=sparc64 TB --- 2012-07-26 20:18:50 - TARGET_ARCH=sparc64 TB --- 2012-07-26 20:18:50 - TZ=UTC TB --- 2012-07-26 20:18:50 - __MAKE_CONF=/dev/null TB --- 2012-07-26 20:18:50 - cd /src TB --- 2012-07-26 20:18:50 - /usr/bin/make -B buildworld >>> World build started on Thu Jul 26 20:18:51 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Thu Jul 26 21:21:17 UTC 2012 TB --- 2012-07-26 21:21:17 - generating LINT kernel config TB --- 2012-07-26 21:21:17 - cd /src/sys/sparc64/conf TB --- 2012-07-26 21:21:17 - /usr/bin/make -B LINT TB --- 2012-07-26 21:21:17 - cd /src/sys/sparc64/conf TB --- 2012-07-26 21:21:17 - /usr/sbin/config -m LINT TB --- 2012-07-26 21:21:17 - building LINT kernel TB --- 2012-07-26 21:21:17 - CROSS_BUILD_TESTING=YES TB --- 2012-07-26 21:21:17 - MAKEOBJDIRPREFIX=/obj TB --- 2012-07-26 21:21:17 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-07-26 21:21:17 - SRCCONF=/dev/null TB --- 2012-07-26 21:21:17 - TARGET=sparc64 TB --- 2012-07-26 21:21:17 - TARGET_ARCH=sparc64 TB --- 2012-07-26 21:21:17 - TZ=UTC TB --- 2012-07-26 21:21:17 - __MAKE_CONF=/dev/null TB --- 2012-07-26 21:21:17 - cd /src TB --- 2012-07-26 21:21:17 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Thu Jul 26 21:21:17 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -Werror /src/sys/dev/mxge/mxge_eth_z8e.c cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -Werror /src/sys/dev/mxge/mxge_ethp_z8e.c cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -Werror /src/sys/dev/mxge/mxge_rss_eth_z8e.c cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -Werror /src/sys/dev/mxge/mxge_rss_ethp_z8e.c cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -Werror /src/sys/dev/my/if_my.c cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -Werror /src/sys/dev/netmap/netmap.c {standard input}: Assembler messages: {standard input}:6869: Error: Unknown opcode: `prefetcht0' *** Error code 1 Stop in /obj/sparc64.sparc64/src/sys/LINT. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-07-26 21:27:51 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-07-26 21:27:51 - ERROR: failed to build LINT kernel TB --- 2012-07-26 21:27:51 - 3310.72 user 589.32 system 4187.39 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-sparc64-sparc64.full From owner-freebsd-sparc64@FreeBSD.ORG Fri Jul 27 18:26:00 2012 Return-Path: Delivered-To: freebsd-sparc64@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B9BA51065674 for ; Fri, 27 Jul 2012 18:26:00 +0000 (UTC) (envelope-from marius@alchemy.franken.de) Received: from alchemy.franken.de (alchemy.franken.de [194.94.249.214]) by mx1.freebsd.org (Postfix) with ESMTP id 373128FC16 for ; Fri, 27 Jul 2012 18:26:00 +0000 (UTC) Received: from alchemy.franken.de (localhost [127.0.0.1]) by alchemy.franken.de (8.14.4/8.14.4/ALCHEMY.FRANKEN.DE) with ESMTP id q6RIPwXv001450; Fri, 27 Jul 2012 20:25:58 +0200 (CEST) (envelope-from marius@alchemy.franken.de) Received: (from marius@localhost) by alchemy.franken.de (8.14.4/8.14.4/Submit) id q6RIPwp4001449; Fri, 27 Jul 2012 20:25:58 +0200 (CEST) (envelope-from marius) Date: Fri, 27 Jul 2012 20:25:58 +0200 From: Marius Strobl To: Kurt Lidl Message-ID: <20120727182558.GH58433@alchemy.franken.de> References: <20120708025435.GA12487@pix.net> <20120709140019.GA67276@alchemy.franken.de> <20120710165433.GA98707@pix.net> <20120712172208.GA47484@pix.net> <20120713195807.GU63893@alchemy.franken.de> <20120714004335.GD92944@pix.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20120714004335.GD92944@pix.net> User-Agent: Mutt/1.4.2.3i Cc: freebsd-sparc64@freebsd.org Subject: Re: zfs booting feedback X-BeenThere: freebsd-sparc64@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the Sparc List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Jul 2012 18:26:00 -0000 On Fri, Jul 13, 2012 at 08:43:35PM -0400, Kurt Lidl wrote: > On Fri, Jul 13, 2012 at 09:58:07PM +0200, Marius Strobl wrote: > > On Thu, Jul 12, 2012 at 01:22:08PM -0400, Kurt Lidl wrote: > > > On Thu, Jul 12, 2012 at 03:02:56PM +0800, Gavin Mu wrote: > > > > On Wed, Jul 11, 2012 at 12:54 AM, Kurt Lidl wrote: > > > > > > > > > On Mon, Jul 09, 2012 at 04:00:19PM +0200, Marius Strobl wrote: > > > > > > On Sat, Jul 07, 2012 at 10:54:35PM -0400, Kurt Lidl wrote: > > > > > > > I built a full 9.0-stable distribution on Friday night, and got to play > > > > > > > with installing it on a spare Netra T1-105 today. Mostly I was > > > > > > > interested in testing out the integrated ZFS boot support that > > > > > > > was commited recently. > > > > > > > > > > > > > > First of all -- it works! Thanks very much to all who made it > > > > > possible! > > > > > > > > > > > > > > After working through a couple of nits in my script that installs it > > > > > all, > > > > > > > I've got a fully functioning, ZFS-only sparc64 machine. Nice. > > > > > > > > > > > > > > The zfsboot bootblock's warning about not being able to open > > > > > non-existant > > > > > > > devices are pretty extranous, but other than that, it seems to > > > > > function OK. > > > > > > > > > > > > That's more or less a cosmetic problem for now; there's no standard > > > > > > Open Firmware method allowing to test whether the device corresponding > > > > > > to a (automatically) created device alias actually exists short of > > > > > > trying to open it, with OFW causing at least the "Drive not ready" > > > > > > part on its own. There are some Sun specific extensions to the > > > > > > default methods whose names sound like they could be of some help > > > > > > here. I haven't gotten around to actually test whether this is the > > > > > > case or whether they actually exist in all OFW implementations of > > > > > > all sun4u models. > > > > > > If the aliases were artificially created via the `nvalias` command > > > > > > ("disk9" sounds a bit unusual for the automatically created ones) > > > > > > you can get rid of the none existing ones via `nvunalias` (needs > > > > > > a `reset-all` or power-cycle to take effect). > > > > > > > > > > All the disks that were probed were part of the normally > > > > > defined devices on the machine. I only have two devices defined > > > > > in my nvramrc: > > > > > > > > > > ok nvramrc type > > > > > devalias rootdisk /pci@1f,0/pci@1,1/scsi@2/disk@0,0 > > > > > devalias rootmirror /pci@1f,0/pci@1,1/scsi@2/disk@1,0 > > > > > > > > > > And I have the system configured to boot from "rootdisk rootmirror". > > > > > > > > > > Here's the full output of a 'devalias' from the prom on the machine: > > > > > > > > > > ok devalias > > > > > cdrom1 /pci@1f,0/pci@1,1/scsi@2/disk@6,0:f > > > > > cdrom /pci@1f,0/pci@1/pci@1/ide@e/cdrom@2:f > > > > > ide-disk /pci@1f,0/pci@1/pci@1/ide@e/disk@0:f > > > > > ide-cdrom /pci@1f,0/pci@1/pci@1/ide@e/cdrom@2:f > > > > > ide /pci@1f,0/pci@1/pci@1/ide@e > > > > > rootmirror /pci@1f,0/pci@1,1/scsi@2/disk@1,0 > > > > > rootdisk /pci@1f,0/pci@1,1/scsi@2/disk@0,0 > > > > > userprom2 /pci@1f,0/pci@1,1/ebus@1/flashprom@10,800000 > > > > > userprom1 /pci@1f,0/pci@1,1/ebus@1/flashprom@10,400000 > > > > > i2c-cs2 /pci@1f,0/pci@1,1/ebus@1/i2c@14,100000 > > > > > i2c /pci@1f,0/pci@1,1/ebus@1/i2c@14,600000 > > > > > systemprom /pci@1f,0/pci@1,1/ebus@1/flashprom@10,0 > > > > > pcic /pci@1f,0/pci@1/pci@1 > > > > > pcib /pci@1f,0/pci@1,1 > > > > > pcia /pci@1f,0/pci@1 > > > > > ebus /pci@1f,0/pci@1,1/ebus@1 > > > > > net2 /pci@1f,0/pci@1,1/network@3,1 > > > > > net /pci@1f,0/pci@1,1/network@1,1 > > > > > floppy /pci@1f,0/pci@1,1/ebus@1/fdthree > > > > > disk /pci@1f,0/pci@1,1/scsi@2/disk@0,0 > > > > > cdrom /pci@1f,0/pci@1,1/scsi@2/disk@6,0:f > > > > > tape /pci@1f,0/pci@1,1/scsi@2/tape@4,0 > > > > > tape1 /pci@1f,0/pci@1,1/scsi@2/tape@5,0 > > > > > tape0 /pci@1f,0/pci@1,1/scsi@2/tape@4,0 > > > > > diskf /pci@1f,0/pci@1,1/scsi@2/disk@f,0 > > > > > diske /pci@1f,0/pci@1,1/scsi@2/disk@e,0 > > > > > diskd /pci@1f,0/pci@1,1/scsi@2/disk@d,0 > > > > > diskc /pci@1f,0/pci@1,1/scsi@2/disk@c,0 > > > > > diskb /pci@1f,0/pci@1,1/scsi@2/disk@b,0 > > > > > diska /pci@1f,0/pci@1,1/scsi@2/disk@a,0 > > > > > disk9 /pci@1f,0/pci@1,1/scsi@2/disk@9,0 > > > > > disk8 /pci@1f,0/pci@1,1/scsi@2/disk@8,0 > > > > > disk7 /pci@1f,0/pci@1,1/scsi@2/disk@7,0 > > > > > disk6 /pci@1f,0/pci@1,1/scsi@2/disk@6,0 > > > > > disk5 /pci@1f,0/pci@1,1/scsi@2/disk@5,0 > > > > > disk4 /pci@1f,0/pci@1,1/scsi@2/disk@4,0 > > > > > disk3 /pci@1f,0/pci@1,1/scsi@2/disk@3,0 > > > > > disk2 /pci@1f,0/pci@1,1/scsi@2/disk@2,0 > > > > > disk1 /pci@1f,0/pci@1,1/scsi@2/disk@1,0 > > > > > disk0 /pci@1f,0/pci@1,1/scsi@2/disk@0,0 > > > > > scsi /pci@1f,0/pci@1,1/scsi@2 > > > > > ttyb /pci@1f,0/pci@1,1/ebus@1/su@14,3602f8 > > > > > ttya /pci@1f,0/pci@1,1/ebus@1/su@14,3803f8 > > > > > ttyd /pci@1f,0/pci@1,1/ebus@1/se@14,400000:b > > > > > ttyc /pci@1f,0/pci@1,1/ebus@1/se@14,400000:a > > > > > > > > > > As you can see, the devices disk0..diskf exist, but something in the > > > > > boot code "only" probes the first 10 devices. It's certainly not > > > > > attempting to opening *all* the disk devices listed by 'devalias'. > > > > > > > > > > It looks like from the code in .../sys/boot/sparc64/loader/main.c > > > > > that the first MAXDEV (==31) disk devices are probed (well, whatever > > > > > disk%d is an alias to, I suppose) and the vtoc's > > > > > loaded and examined for zfs partitions. > > > > > > > > > > oops, I think I assumed that the disk name should be disk9, disk10, > > > > disk11, instead of disk9, diska, diskb... > > > > Is there any standards to name those disks? > > > > > > I do not really know. The above 'devalias' output is the same on > > > the two netra-T1 105s that I tested. I looked on my SunFire V240, > > > and it has many fewer entries: > > > > > > {1} ok devalias > > > usb /pci@1e,600000/ide@d/disk > > > xnet2 /pci@1d,700000/pci@1/SUNW,hme@0,1:dhcp, > > > xnet1 /pci@1e,600000/pci@3/SUNW,hme@0,1:dhcp, > > > xnet /pci@1e,600000/pci@2/SUNW,hme@0,1:dhcp, > > > net3 /pci@1d,700000/network@2,1 > > > net2 /pci@1d,700000/network@2 > > > net1 /pci@1f,700000/network@2,1 > > > net /pci@1f,700000/network@2 > > > cdrom /pci@1e,600000/ide@d/cdrom@0,0:f > > > ide /pci@1e,600000/ide@d > > > disk3 /pci@1c,600000/scsi@2/disk@3,0 > > > disk2 /pci@1c,600000/scsi@2/disk@2,0 > > > disk1 /pci@1c,600000/scsi@2/disk@1,0 > > > disk0 /pci@1c,600000/scsi@2/disk@0,0 > > > disk /pci@1c,600000/scsi@2/disk@0,0 > > > scsi /pci@1c,600000/scsi@2 > > > sc-control /pci@1e,600000/isa@7/rmc-comm@0,3e8 > > > ttyb /pci@1e,600000/isa@7/serial@0,2e8 > > > ttya /pci@1e,600000/isa@7/serial@0,3f8 > > > name aliases > > > > > > I would argue that what the loader ought to be looking at the > > > devices/devalias entries values for the "boot-device" property. > > > > > > That way, if I wanted to boot from something like a zmirror of > > > disk2 and disk3 on my sunfire, I would just set the > > > "boot-device" to be "disk2 disk3", and the zfs boot code would > > > just try to interate through those devices, rather than going > > > from 0..31 and trying disk%d... > > > > > > If I had valid boot-code on disk0 and disk2, and I set the > > > "boot-device" to "disk2 disk3", I think current code will do > > > this: > > > - prom load "zfsboot" block off disk2 > > > - zfsboot block loads in the zfsloader binary from current disk (disk2) > > > - which then probes disk0, disk1 .... and finally boots > > > the kernel from the first freebsd-zfs partition that it finds > > > on any of those disks. > > > > > > I think this is wrong, as there could be some data-only zfs > > > partition on disk0, which doesn't have a kernel to boot from... > > > > > > Also, one other thing to keep in mind that the boot-device propery > > > can be a devalias entry or just a straight-up device specifier, > > > like this: > > > > > > /pci@1c,600000/scsi@2/disk@0,0:a > > > > > > (That's what I have on my SunFire, for various arcane reasons...) > > > > > > I guess we also have to worry when someone breaks into the prom > > > and says "boot disk4", and that user input should override the > > > "boot-device" settings in the prom. > > > > > > > What's currently implemented in the sparc64 ZFS loader resembles > > how the x86 version works as close as possible, i.e. basically > > trying to detect ZFS pools on all disks available via the firmware > > (i.e. BIOS in the x86 case). The current approach may not be > > ideal for sparc64, but before inventing yet another one it would > > be great if someone could check how this is done in (Open)Solaris, > > either by digging up the relevant documentation or by actually > > giving it a try. > > The "diskroot" and "diskmirror" devaliases that I have on the netra-T1 > date back to the time when I ran Solaris 9 with disk mirroring > (remember DiskSuite?) on this machine. That's when/how I learned about > using "boot-device" with a space seperated list of things to probe > and boot from. > > I continued doing exactly the same thing for Solaris 10 - first with > DiskSuite, and later when they introduced ZFS booting, the same thing > continued on. > Okay, in r238851, I've changed the sparc64 ZFS loader to no longer try to detect providers based on diskN aliases but to only probe disks listed in the boot-device environment variable. I've a pre-ACK from re@ for merging this change in time for 9.1. Marius