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>