From owner-freebsd-sparc Sat Dec 29 12: 7: 2 2001 Delivered-To: freebsd-sparc@freebsd.org Received: from patan.sun.com (patan.Sun.COM [192.18.98.43]) by hub.freebsd.org (Postfix) with ESMTP id 7184137B416 for ; Sat, 29 Dec 2001 12:06:59 -0800 (PST) Received: from esunmail ([129.147.58.121]) by patan.sun.com (8.9.3+Sun/8.9.3) with ESMTP id NAA15060 for ; Sat, 29 Dec 2001 13:06:40 -0700 (MST) Received: from smi.sun.com ([127.0.0.1]) by esunmail.central.sun.com (iPlanet Messaging Server 5.1 (built Sep 5 2001)) with ESMTP id <0GP4004PWFRGD3@esunmail.central.sun.com> for freebsd-sparc@freebsd.org; Sat, 29 Dec 2001 13:04:28 -0700 (MST) Received: from [192.18.102.130] by esunmail.central.sun.com (mshttpd); Sat, 29 Dec 2001 12:04:28 -0800 Date: Sat, 29 Dec 2001 12:04:28 -0800 From: Jamey Wood Subject: Re: compiling a sparc64 kernel? To: freebsd-sparc@freebsd.org Message-id: <1710517c0b.17c0b17105@smi.sun.com> MIME-version: 1.0 X-Mailer: iPlanet Webmail Content-type: text/plain; charset=us-ascii Content-language: en Content-transfer-encoding: 7BIT Content-disposition: inline X-Accept-Language: en Sender: owner-freebsd-sparc@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org > > Setting pil to 14 does get me all the way to a mountroot prompt: > > Ok, cool. This is a stopgap at best, I mostly wanted to see what > was going on. Thomas would like you to try the patch he posted > as well, which may print a stray interrupt message. Revert the > above change first. With just Thomas's patch (and _not_ setting pil to 14), I get: Booting [/kernel]... calling autoload nothing to autoload yet. post autoload jumping to kernel entry at 0xc0028000. sparc64_init: mdp=0xc01ba000 kmdp=0xc01ba000 boothowto=0 envp=0xc01b8000 end=0x0 Copyri RED State Exception TL=0000.0000.0000.0005 TT=0000.0000.0000.0080 TPC=0000.0000.c002.4200 TnPC=0000.0000.c002.4204 TSTATE=0000.0000.5000.1507 TL=0000.0000.0000.0004 TT=0000.0000.0000.0010 TPC=0000.0000.c002.4d18 TnPC=0000.0000.c002.4d1c TSTATE=0000.0000.5004.1407 TL=0000.0000.0000.0003 TT=0000.0000.0000.0068 TPC=0000.0000.c002.8798 TnPC=0000.0000.c002.879c TSTATE=0000.0000.5000.1507 TL=0000.0000.0000.0002 TT=0000.0000.0000.0010 TPC=0000.0000.c00d.80c0 TnPC=0000.0000.c00d.80c4 TSTATE=0000.0000.5000.1606 TL=0000.0000.0000.0001 TT=0000.0000.0000.004e TPC=0000.0000.c00d.7bb4 TnPC=0000.0000.c00d.7bb8 TSTATE=0000.00a5.0000.1605 > > It looks like the probe > > should work by looking for "counter-timer" in the OFW? > > Yes, that's the timer chip. What I think you should do is use > whatever means necessary to disable the timer early while the > kernel is still running on the openfirmware trap table. Right > around the tick_stop() in sparc64_init(). You'll need to find > the physical address of the timer's registers by traversing the > openfirmware device tree and fiddle them using stxa() with asi > ASI_PHYS_BYPASS_EC_WITH_EBIT. Look at how the nexus device does > it in nexus_probe() (sparc64/sparc64/nexus.c). The timerreg.h > header from netbsd seems to have definitions for the timer registers > (timerreg_4u). From what I've read in comments it seems that there > are 2, one of which is enabled by the firmware. Thanks. I'll try to play around with this. > We'd also like to see the properties of the timer openfirmware > device node and of the sbus node itself. From the ok prompt do > "cd /" and then "ls" and then navigate through the devices using > "cd" until you find it, and then do ".properties". Here's that output: ok pwd /counter-timer@1f,3c00 ok .properties address fffc7c00 fffc5860 fffc3060 interrupts 000007f0 000007f1 reg 000001fe 00003c00 00000000 00000020 000001fe 00003860 00000000 00000010 000001fe 00003060 00000000 00000010 name counter-timer --Jamey To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-sparc" in the body of the message