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>