Port-powerpc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

IBM 43P-150 support



Hello,

a little while ago I finally got my hands on an IBM 43P-150, and today
I got it to run NetBSD well enough to be useful. I'll commit the
necessary changes in the next few days.
Here's what needed attention:
- the BAT-mapping code in ofppc/machdep.c maps too much. We want PCI
  memory and IO space, which is 0x80000000 - 0xfec00000, no more. Care
  must be taken to *not* BAT-map anything beyond 0xff000000, but we do
  want 0xf0000000 - 0xfeffffff since that's where IBM OF likes to put
  BARs and the PCI IO space lives there too.
- the pckbd driver does not attach, it randomly fails the selftest in
  pckbc_isa.c. Longer timeout, some changes to delay() from
  evbppc/nintendo, and matching the keyboard controller's node name (
  '8042' ) got it going.
- the 43P-150 has a prepivr, so we need options PIC_PREPIVR
- options PCI_NETBSD_CONFIGURE may move the graphics card's BARs around
  which will mess up the early console
- IBM's OpenFirmware configures PCI cards on the primary bus but does
  not enable them, so the ohci card I stuck in there would not attach
  because memory space access was disabled. Simply enabling it made it
  work.
- PICs cascaded to the openpic were registered with the wrong polarity,
  see PR60640. I committed the fix earlier today.
- IBM OF doesn't seem to configure devices on the secondary PCI bus at
  all
- the onboard audio thing is an ad1848, we have support in the kernel
  but only as a component used by other drivers
- the ISA bus code should use OpenFirmware to find and attach devices

That being said, getting it to boot was quite easy - netbooting works
the same as on macppc or sparc64, and booting from disk only needs a
FAT partition with ofwboot in it, so you can 'boot disk:,\ofwboot',
which will find the NetBSD disklabel and load a kernel from an ffs1
partition. I *think* libsa supports ffs2 but that didn't work with
-current from a few days ago.

Here's some dmesg pr0n:

[     1.000000] NetBSD 11.99.8 (GENERIC) #64: Sun Sep  6 11:29:39 EDT 2026
[     1.000000]         ml@paddy:/disk/build/obj_ofppc/sys/arch/ofppc/compile/GENERIC
[     1.000000] Model: IBM,7043-150
[     1.000000] total memory = 640 MB
[     1.000000] avail memory = 609 MB
[     1.000000] timecounter: Timecounters tick every 10.000 msec
[     1.000000] bootpath: /pci@80000000/scsi@10/sd@6,0/netbsd
[     1.000000] mainbus0 (root)
[     1.000000] rtas0 at mainbus0: version 1, entry @pa 0x6db6dc
[     1.000000] cpu0 at mainbus0: 604e (rev 1.2), ID 0 (primary)
[     1.000000] cpu0: HID0 0xc001c086<EMCP,DBP,NHR,ICE,DCE,SGE,BHT,NOPDST>, powersave: 1
[     1.000000] cpu0: 374.06 MHz
[     1.000000] cpu0: L1 I-cache 32 KB 32B/line, D-cache 32 KB 32B/line
[     1.000000] cpu0: L2 cache 1 MB 32B/line
[     1.000000] ofwpci0 at mainbus0
[     1.000000] io base=0x0 offset=0xfe000000 limit=0xc00000
[     1.000000] mem base=0x80000000 offset=0x0 limit=0xfe000000
[     1.000000] prepivr at 0xab41b000
[     1.000000] Found openpic at fbec0000
[     1.000000] OpenPIC Version 1.1: Supports 4 CPUs and 16 interrupt sources.
[     1.000000] pci0 at ofwpci0 bus 0: OFW method configuration space access
[     1.000000] pci0: i/o space, memory space enabled
[     1.000000] pchb0 at pci0 dev 0 function 0
[     1.000000] pchb0: vendor 1057 product 0002 (rev. 0x40)
[     1.000000] pchb0: L2 cache: 1M, internally controlled write-back mode
[     1.000000] pcib0 at pci0 dev 11 function 0: vendor 10ad product 0565 (rev. 0x10)
[     1.000000] pcib0:
[     1.000000] vendor 10ad product 0105 (IDE mass storage, interface 0x8f, revision 0x05) at pci0 dev 11 function 1 not configured
[     1.000000] pcn0 at pci0 dev 12 function 0: AMD PCnet-PCI Ethernet
[     1.000000] pcn0: Am79c971 PCnet-FAST rev 6, Ethernet address 00:04:ac:17:c5:ed
[     1.000000] pcn0: interrupting at irq 22
[     1.000000] nsphy0 at pcn0 phy 1: DP83840 10/100 media interface, rev. 1
[     1.000000] nsphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
[     1.000000] ukphy0 at pcn0 phy 31: OUI 0x000058, model 0x0001, rev. 1
[     1.000000] ukphy0: 10baseT, 10baseT-FDX, auto
[     1.000000] vendor 1014 product 0046 (undefined, subclass 0x00) at pci0 dev 13 function 0 not configured
[     1.000000] esiop0 at pci0 dev 16 function 0: Symbios Logic 53c875 (ultra-wide scsi)
[     1.000000] esiop0: using on-board RAM
[     1.000000] esiop0: interrupting at irq 23
[     1.000000] scsibus0 at esiop0: 16 targets, 8 luns per target
[     1.000000] machfb0 at pci0 dev 18 function 0: vendor 1002 product 4752 (rev. 0x27)
[     1.000000] machfb0: using MMIO aperture
[     1.000000] machfb0: 16 MB aperture at 0xfc000000, 4 KB registers at 0xfbe9e000
[     1.000000] machfb0: 128 KB ROM at 0xfbea0000
[     1.000000] machfb0: 8192 KB SGRAM 114.992 MHz, maximum RAMDAC clock 230 MHz
[     1.000000] machfb0: found composite sync disabled
[     1.000000] machfb0: initial resolution 1280x1024 at 8 bpp
[     1.000000] wsdisplay0 at machfb0 kbdmux 1: console (default, vt100 emulation)
[     1.000000] wsmux1: connecting to wsdisplay0
[     1.000000] direct rendering for machfb0 unsupported
[     1.000000] ohci0 at pci0 dev 22 function 0: vendor 1045 product c861 (rev. 0x10)
[     1.000000] csr: 02800140
[     1.000000] ohci0: autoconfiguration error: memory access is disabled
[     1.000000] ohci0: interrupting at irq 17
[     1.000000] ohci0: OHCI version 1.0, legacy support
[     1.000000] usb0 at ohci0: USB revision 1.0
[     1.000000] ppb0 at pci0 dev 23 function 0: vendor 1014 product 0022 (rev. 0x01)
[     1.000000] pci1 at ppb0 bus 1
[     1.000000] pci1: i/o space, memory space enabled
[     1.000000] isa0 at pcib0
[     1.000000] com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, 16-byte FIFO
[     1.000000] com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, 16-byte FIFO
[     1.000000] pckbc0 at isa0 port 0x60-0x64
[     1.000000] pckbd0 at pckbc0 (kbd slot)
[     1.000000] pckbc0: using irq 1 for kbd slot
[     1.000000] wskbd0 at pckbd0: console keyboard, using wsdisplay0
[     1.000000] attimer0 at isa0 port 0x40-0x43
[     1.000000] pcppi0 at isa0 port 0x61
[     1.000000] fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
[     1.000000] attimer0: attached to pcppi0
[     1.000000] vmmask 39800000 schedmask 39800000 highmask 7f800000
[     1.000000] WARNING: system needs entropy for security; see entropy(7)
[     1.000000] timecounter: Timecounter "mftb" frequency 20781582 Hz quality 100
[     1.000061] timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
[     1.000061] scsibus0: waiting 2 seconds for devices to settle...
[     1.023547] uhub0 at usb0: NetBSD (0x0000) OHCI root hub (0x0000), class 9/0, rev 1.00/1.00, addr 1
[     1.023547] uhub0: 2 ports with 2 removable, self powered
[     1.023547] fd0 at fdc0 drive 0: 1.44MB, 80 cyl, 2 head, 18 sec
[     2.623509] uhidev0 at uhub0 port 1 configuration 1 interface 0
[     2.623509] uhidev0: Logitech (0x046d) USB Trackball (0xc408), rev 1.10/14.00, addr 2, iclass 3/1
[     2.643523] ums0 at uhidev0: 5 buttons
[     2.643523] wsmouse0 at ums0 mux 0
[     3.743511] uhidev1 at uhub0 port 2 configuration 1 interface 0
[     3.743511] uhidev1: USB (0xc0f4) usb keyboard (0x07c0), rev 1.10/1.10, addr 3, iclass 3/1
[     3.763524] ukbd0 at uhidev1
[     3.763524] wskbd1 at ukbd0 mux 1
[     3.763524] wskbd1: connecting to wsdisplay0
[     3.763524] uhidev2 at uhub0 port 2 configuration 1 interface 1
[     3.763524] uhidev2: USB (0xc0f4) usb keyboard (0x07c0), rev 1.10/1.10, addr 3, iclass 3/0
[     3.793530] uhidev2: 2 report ids
[     3.793530] uhid0 at uhidev2 reportid 1: input=2, output=0, feature=0
[     3.793530] uhid1 at uhidev2 reportid 2: input=1, output=0, feature=0
[     3.883509] cd0 at scsibus0 target 3 lun 0: <IBM, CDRM00203\000\000\000\000\000!K, 1_05> cdrom removable
[     3.883509] cd0: sync (50.00ns offset 15), 16-bit (40.000MB/s) transfers
[    14.463514] sd0 at scsibus0 target 6 lun 0: <IBM, DCAS-34330W, S65A> disk fixed
[    14.523514] sd0: 4134 MB, 8205 cyl, 6 head, 171 sec, 512 bytes/sect x 8467200 sectors
[    14.623518] sd0: sync (50.00ns offset 15), 16-bit (40.000MB/s) transfers, tagged queueing
[    17.003516] WARNING: 1 error while detecting hardware; check system log.
[    17.003516] boot device: sd0
[    17.003516] root on sd0a dumps on sd0b
[    17.043520] root file system type: ffs
[    17.043520] kern.module.path=/stand/ofppc/11.99.8/modules
[    19.423561] entropy: best effort

have fun
Michael


Home | Main Index | Thread Index | Old Index