revival of NetBSD/sandpoint
"Toru Nishimura" <[email protected]> Wed, 12 Dec 2007 12:38:35 +0900
| Newsgroups | gmane.os.netbsd.ports.sandpoint,gmane.os.netbsd.ports.powerpc |
|---|---|
| Message-ID | <000301c83c70$7deb8590$1718a8c0@tpad3> |
NetBSD/sandpoint has revived. It's up and running on AmPro EnCorePP1 board in mult-user mode. It was found that the source of whole issue was i8259 interrupt handling. Tim Rightnour made a fix around there and brought refreshing improvement for this port. Without the fix the initial inquery of /bin/sh path can not take any console input. http://mail-index.netbsd.org/source-changes/2007/12/11/0070.html This port needs more work to iron out some stability issue during heavy load, however, overall efforts should be done easier since standard working NetBSD environment is now available for deep kernel debugging. Due to the very low profile of HW popularity the significance of this port is limited. During this development efforts, we made LIBSA ELF bootloader by NFS. It's known useful combined with Moto DINK32 and PPCboot (popular U-Boot predecessor) to make possible a solid and comfortable development cycle. The byproduct should be a good vihecle to bring up any NetBSD porting. It can become a self-standing complete bootloader when IDE block device driver is added. This revival was made possible by innovative work by Micrel Lorenz and Tim Rightnour. The "extensible PIC framework," which is found in powerpc/pic/ directory, is so versatile and has very large significance. Using this framework powerpc can be easily adapted for new interrupt controller schemes. Examples out of my head are; - Freescale MPC8349/8315 family the interrupt controller, now called IPIC, has a different design from original OpenPIC standard. - Tundra Semiconductor Tsi109/110 descendents of Moto MPC107/108 system controller and have OpenPIC-like extended interrupt design. powerpc/pic totally eliminated agonizing extintr.c adaption. All to do is to make and add new pic_xxx.c in powerpc/pic/ directory. The following is a complete boot sequence from EnCorePP1 PPCboot cmd line; PPCBoot 1.1.4 (Sep 26 2003-12:44:23), (SW04794B,A) CPU: MPC8245 Revision 16.20 at 300 MHz: 16 kB I-Cache 16 kB D-Cache Board: Encore PP1 Local Bus at 100 MHz DRAM: 128 MB Relocating 7f00000 to 7ebbfa8 FLASH: 2 MB *** Warning - bad CRC, using default environment PCI: scanning bus for PCI devices ...OK In: serial Out: serial Err: serial IDE: Bus 0: Status 0x60 Error (no IRQ) dev 0 blk 0: status 0x20 Error (no IRQ) dev 1 blk 0: status 0x20 Hit any key to stop autoboot: 0 No load address provided => dhcp ENET Addr: 0:40:53:6:cd:c6 ..BOOTP broadcast 0 BOOTP FILENAME: DHCP Bootfile: netboot.bin DEFAULT: DHCP Bootfile: netboot.bin DEFAULT: netboot.bin DHCP client bound to address 192.168.24.61 ARP broadcast 1 TFTP from server 192.168.24.24; our IP address is 192.168.24.61 Filename 'netboot.bin'. Load address: 0x1000000 Loading: ############ done Bytes transferred = 60632 (ecd8 hex) => go 1000000 ## Starting application at 0x01000000 ... >> NetBSD/sandpoint Boot, Revision 1.1 >> ([email protected], Wed Dec 12 11:28:23 JST 2007) Encore PP1, 128MB SDRAM, 8086.1209 NIC 00:25:00 00:00:00: chip 1057.0006 card ffff.ffff rev 12 class 06.00.00 hdr 00 mem base 80000000 size 1000 00:22:00: chip 1106.0686 card 0000.0000 rev 40 class 06.01.00 hdr 80 00:22:01: chip 1106.0571 card 0000.0000 rev 06 class 01.01.8f hdr 00 i/o base 1000 size 10 i/o base 1010 size 10 i/o base 1020 size 10 i/o base 1030 size 10 i/o base 1040 size 10 00:22:02: chip 1106.3038 card 0925.1234 rev 1a class 0c.03.00 hdr 00 i/o base 1060 size 20 00:22:03: chip 1106.3038 card 0925.1234 rev 1a class 0c.03.00 hdr 00 i/o base 1080 size 20 00:22:04: chip 1106.3057 card 0000.0000 rev 40 class 00.00.00 hdr 00 00:22:05: chip 1106.3058 card 0000.0000 rev 50 class 04.01.00 hdr 00 i/o base 1100 size 100 i/o base 1200 size 10 i/o base 1210 size 10 00:25:00: chip 8086.1209 card 0040.5300 rev 09 class 02.00.00 hdr 00 mem base 80001000 size 1000 i/o base 1240 size 40 mem base 80020000 size 20000 pin C -> irq 5, level pin D -> irq 11, level MAC address 00:40:53:06:cd:c6, PHY 1 (02a8.0154) Try NFS load /netbsd 2221184+170848 [140032+134958]=0x28b5dc entry=0x00090000, ssym=0x002d7fe0, esym=0x0031b5dc Stopped in pid 0.1 (system) at netbsd:cpu_Debugger+0x10: lwz r0, r1, 0x14 db> c 00:00:00 0x78 = fc000000 Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 The NetBSD Foundation, Inc. All rights reserved. Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. NetBSD 4.99.41 (ENCPP1) #28: Wed Dec 12 10:19:57 JST 2007 [email protected]:/store/HEAD/usr/src/sys/arch/sandpoint/compile/ENCPP1 total memory = 128 MB avail memory = 121 MB OpenPIC Version 1.2: Supports 1 CPUs and 26 interrupt sources. timecounter: Timecounters tick every 10.000 msec mainbus0 (root) cpu0 at mainbus0: 8245 (Revision 1.4), ID 0 (primary) cpu0: HID0 90c000<DOZE,DPM,ICE,DCE>, powersave: 1 eumb0 at mainbus0 com2 at eumb0: ns16550a, working fifo ociic0 at eumb0 pci0 at mainbus0 bus 0 pci0: i/o space, memory space enabled pchb0 at pci0 dev 0 function 0 pchb0: Motorola MPC8245 "Kahlua II" Host Bridge (rev. 0x12) pcib0 at pci0 dev 22 function 0: VIA Technologies VT82C686A PCI-ISA Bridge (rev. 0x40) pcib0: PIRQ[0-3] not used viaide0 at pci0 dev 22 function 1 viaide0: VIA Technologies VT82C686A (Apollo KX133) ATA100 controller viaide0: bus-master DMA support present viaide0: primary channel configured to compatibility mode viaide0: primary channel interrupting at irq 14 atabus0 at viaide0 channel 0 viaide0: secondary channel configured to compatibility mode viaide0: secondary channel ignored (disabled) VIA Technologies VT82C686A SMBus Controller (miscellaneous prehistoric, revision 0x40) at pci0 dev 22 function 4 not configured fxp0 at pci0 dev 25 function 0: i82559S Ethernet, rev 9 line 25, pin A = EPIC 2 fxp0: interrupting at irq 18 fxp0: May need receiver lock-up workaround fxp0: Ethernet address 00:40:53:06:cd:c6 inphy0 at fxp0 phy 1: i82555 10/100 media interface, rev. 4 inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto isa0 at pcib0 com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo com0: console com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo pckbc0 at isa0 port 0x60-0x64 attimer0 at isa0 port 0x40-0x43: AT Timer pcppi0 at isa0 port 0x61 midi0 at pcppi0: PC speaker (CPU-intensive output) mcclock0 at isa0 port 0x70-0x71: mc146818 compatible time-of-day clock pcppi0: attached to attimer0 biomask 8000018 netmask 8000018 ttymask 8000018 timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0 timecounter: Timecounter "mftb" frequency 25000000 Hz quality 100 boot device: fxp0 root on fxp0 nfs_boot: trying BOOTP nfs_boot: BOOTP next-server: 192.168.24.24 nfs_boot: my_name=encpp1.local nfs_boot: my_domain=local nfs_boot: my_addr=192.168.24.61 nfs_boot: my_mask=255.255.255.0 nfs_boot: gateway=192.168.24.1 root on 192.168.24.24:/store/exports/powerpc root file system type: nfs mc146818_gettime: timeout WARNING: preposterous TOD clock time WARNING: using filesystem time WARNING: CHECK AND RESET THE DATE! Enter pathname of shell or RETURN for /bin/sh: Terminal type? [unknown] Terminal type is unknown. We recommend creating a non-root account and using su(1) for root access. encpp1#