Date: Sat, 29 Dec 2001 12:04:28 -0800 From: Jamey Wood <Jamey.Wood@Sun.COM> To: freebsd-sparc@freebsd.org Subject: Re: compiling a sparc64 kernel? Message-ID: <1710517c0b.17c0b17105@smi.sun.com>
next in thread | raw e-mail | index | archive | help
> > 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1710517c0b.17c0b17105>
