Date: Wed, 18 Nov 1998 13:21:35 +0530 (IST) From: Kapil Chowksey <kchowksey@hss.hns.com> To: freebsd-sparc@FreeBSD.ORG Subject: for a change, some code Message-ID: <199811180751.NAA29623@tarang.hss.hns.com>
next in thread | raw e-mail | index | archive | help
List,
A while ago, I wrote some bootup code for freebsd/sparc64. It contains
the following :
1. A serial console driver (for zs chip)
2. A PROM CIF library
3. generation of hardclock() using ultrasparc's `tick_cmpr'
ASR.
4. RAM probing code which puts this info into `phys_avail'
array expected by machine independent vm code.
5. A pmap_bootstrap() and corresponding DTLB miss handler.
(no dirty bit and reference bit support yet) I have some
ideas about a fast optimised pmap for sun4u that can be
better than solaris or netbsd's TSB based approach.
6. panic()
7. support for linker sets.
8. identification of CPU.
All this code is written from-scratch and I can upload it to some ftp
server if someone cares. But pragmatism calls for borrowing
netbsd/sparc64 code.
Here's an output from the kernel booting up on an ultra 1 :
ok 4000 dload /tftpboot/kernel.aout
Boot device: /sbus/qec/be:,|tftpboot|kernel.aout File and args:
36400
ok go
prom_init: prom_stdout = 0xfffe8700
prom_init: prom_root = 0xf0029588
zs0: zsnode = 0xf005a174
zs0: mapped at = 0xfffd8000
cninit: best_cp is 0x436460
zs0: zscninit() 0xfffd8004
CPU: UltraSparc-I (manuf=0x17, impl=0x10), MAXTL=5, MAXWIN = 7
prom ttable at 0xf0000000
my ttable at 0x428000
pil = 0xd, tick = 0x8000000652bf3efe, tick_cmpr = 0xfffffffffffff261
pil = 0xd, tick = 0x00000006536e4002, tick_cmpr = 0x0000000653840c4f
(0x0000000000000000, 0x0000000007efe000)
(0x0000000007f00000, 0x0000000007f36000)
(locked) va 00000000:fffd8000 -> pa 000001ff:f1100000
firstphys = 0x438000, avail_start = 0x38000
PD1 = 0x0000000000438000, SELF1 = 0x8000000000038037, SELF2 = 0x800000000003a037
firstphys = 0x43c000, avail_start = 0x3c000
i = 0: va(0x0000000000900000) -> pa(0x0000000007f00000)
OFS=0, 1, 80
PD2 = 0x000000000043c000, data = 0x800000000003c037
PT = 0x000000000043e000, data = 0x800000000003e037
data = 0x8000000007f00037
i = 1: va(0x0000000000902000) -> pa(0x0000000007f02000)
OFS=0, 1, 81
data = 0x8000000007f02037
i = 2: va(0x0000000000904000) -> pa(0x0000000007f04000)
OFS=0, 1, 82
data = 0x8000000007f04037
i = 3: va(0x0000000000906000) -> pa(0x0000000007f06000)
OFS=0, 1, 83
data = 0x8000000007f06037
i = 4: va(0x0000000000908000) -> pa(0x0000000007f08000)
OFS=0, 1, 84
data = 0x8000000007f08037
ptbase is 0x0000000000036000
current translations of 0000000000900000:
preparing for a miss ... 0x0000000000000000
dtlb miss handler wrote these translations:
va 00000000:00900000 -> pa 00000000:07f00000
current translations of 0000000000902000:
preparing for a miss ... 0x0000000000000000
dtlb miss handler wrote these translations:
va 00000000:00902000 -> pa 00000000:07f02000
current translations of 0000000000904000:
preparing for a miss ... 0x0000000000000000
dtlb miss handler wrote these translations:
va 00000000:00904000 -> pa 00000000:07f04000
current translations of 0000000000906000:
preparing for a miss ... 0x0000000000000000
dtlb miss handler wrote these translations:
va 00000000:00906000 -> pa 00000000:07f06000
current translations of 0000000000908000:
preparing for a miss ... 0x0000000000000000
dtlb miss handler wrote these translations:
va 00000000:00908000 -> pa 00000000:07f08000
current translations of 000000000090a000:
preparing for a miss ... panic: tl=1, tt=068, tpc=0x0000000000430b08
tstate=0000004400001602
%g1 = 0x0000000000000030
%g2 = 0x000000000090a000
%g3 = 0x0000000000000000
%g4 = 0xfffffffe00000000
%g5 = 0x800000000003e037
%g6 = 0x0000000000036000
%g7 = 0x0000000000000414
Program terminated
ok
All this is sun4u specific code. I am of the opinion that sun4u must
be a different archiecture from sun4[c,m,] etc. as far as code
organisation is concerned. Device drivers can be shared but not trap
handling, and pmap.
So, if anyone wants first hand knowledge about the sun4u boot
sequence, compilers, sbus etc.; I will be willing to help.
--
Kapil Chowksey Viva GNU !
kchowksey@hss.hns.com
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?199811180751.NAA29623>
