Subject: Re: Problems booting 2.0 CD on E450
To: Ben Harris <bjh21@netbsd.org>
From: Andrey Petrov <petrov@netbsd.org>
List: port-sparc64
Date: 02/03/2005 11:25:08
On Thu, Feb 03, 2005 at 05:00:31PM +0000, Ben Harris wrote:
> I happen to have a spare Enterprise 450 lying around, so I tried booting 
> from the 2.0 sparc64cd.iso.  This is what happened:
> 
> Sun Enterprise 450 (3 X UltraSPARC-II 296MHz), No Keyboard
> OpenBoot 3.22, 2048 MB memory installed, Serial #8932416.
> Ethernet address 8:0:20:88:4c:40, Host ID: 80884c40.
> 
> {1} ok boot cdrom
> Boot device: /pci@1f,4000/scsi@2/disk@6,0:f  File and args:
> NetBSD IEEE 1275 Bootblock
> ..>> NetBSD/sparc64 OpenFirmware Boot, Revision 1.7
> >>(builds@build, Thu Dec  2 02:33:41 UTC 2004)
> devopen: getdisklabel sez no disk label
> devopen: search_label sez no disk label
> loadfile: reading header
> elf64_exec: Booting /pci@1f,4000/scsi@2/disk@6,0:f/netbsd
> 4879848@0x1000000+5406424@0x1800000+2982184@0x1d27ed8
> symbols @ 0xfefec380 133 start=0x1000000
> chain: calling OF_chain(800000, cbb8, 1000000, fff7fa80, 18)
> Fast Data Access MMU Miss
> {1} ok
> 
> Is this expected?
> 

Yes, this is known, you should have more luck with -current.
Or you can patch 2.0 (and me should request the pull-up).

Also, somewhat strange that you boot processor 1 (not 0), though I don't expect that
to be a problem.

diff -u -p -r1.23 -r1.25
--- src/sys/arch/sparc64/sparc64/ofw_machdep.c	2004/03/21 15:09:25	1.23 netbsd-2-0-RELEASE
+++ src/sys/arch/sparc64/sparc64/ofw_machdep.c	2004/06/18 12:51:39	1.25 HEAD
@@ -507,12 +507,14 @@ prom_get_msgbuf(len, align)
 	int rooth;
 	int is_e250 = 1;
 
-	/* E250s tend to have buggy PROMs that break on test-method */
+	/* E250s and E450s tend to have buggy PROMs that break on test-method */
+	/* XXX - need to find the reason why this breaks someday */
 	if ((rooth = OF_finddevice("/")) != -1) {
 		char name[80];
 
 		if ((OF_getprop(rooth, "name", &name, sizeof(name))) != -1) {
-			if (strcmp(name, "SUNW,Ultra-250")) 
+			if (strcmp(name, "SUNW,Ultra-250")
+			    && strcmp(name, "SUNW,Ultra-4")) 
 				is_e250 = 0;
 		} else prom_printf("prom_get_msgbuf: cannot get \"name\"\r\n");
 	} else prom_printf("prom_get_msgbuf: cannot open root device \r\n");