Apple PowerMac G5 Quad - FreeBSD

More info on main page.

This machine is tested with (runs) FreeBSD / ppc.

FreeBSD is installed on drive ad0, which is sliced up as this:

ad0s2 - 800k - Apple_Bootstrap - boot partition, contains bootcode
ad0s3 -  74G - FreeBSD-UFS - FreeBSD 8.2-release
ad0s4 -   4G - FreeBSD-swap - FreeBSD swap partition
ad0s5 - 800k - apple-bootstrap - boot partition
ad0s6 -  74G - freebsd-ufs - FreeBSD 9.0 current

Work log

2011-03-27: ad0s6 - Finally, after many hours, making and installing world finished. The machine now runs an update FreeBSD 9.0-current on ad0s6. dmesg output: normal, verbose.

root@kg-g5# uname -a
FreeBSD kg-g5.kg4.no 9.0-CURRENT FreeBSD 9.0-CURRENT #0: Sun Mar 27 01:52:37 CET 2011     root@kg-g5.kg4.no:/usr/obj/usr/src/sys/GENERIC  powerpc

2011-03-26: ad0s6 - booting manually (breaking into boot, unload kernel, set currdev=/ht@0,f2000000/pci@9/k2-sata-root@c/k2-sata@0/disk@0:6, load /boot/kernel/kernel, boot), trying to upgrade the machine via csup. To avoid panics, I am turning off ntpd, then setting sysctl machdep.disable_rtc_set=1. Now running csup. Now making world, which takes a looong time...

2011-03-24: ad0s3 - sound is through the snd_ai2s module, which gives this:

root@kg-g5# cat /dev/sndstat
FreeBSD Audio Driver (newpcm: 32bit 2009061500/powerpc)
Installed devices:
pcm0: <Apple I2S Audio Controller> (play) default
root@kg-g5# tail /var/log/messages
Mar 24 22:00:00 kg-g5 newsyslog[1374]: logfile turned over due to size>100K
Mar 24 22:01:03 kg-g5 kernel: aoagpio1: [ITHREAD]
Mar 24 22:01:03 kg-g5 kernel: aoagpio4: [ITHREAD]
Mar 24 22:01:03 kg-g5 kernel: pcm0: <Apple I2S Audio Controller> mem 0x10000-0x10fff,0x8000-0x80ff,0x8100-0x81ff irq 28,11,12,30,15,16 on macio0
Mar 24 22:01:03 kg-g5 kernel: pcm0: [ITHREAD]

I also added loading of snd_ai2s to /boot/loader.conf:

root@kg-g5# more /boot/loader.conf
snd_ai2s_load="YES"

2011-03-24: ad0s3 - upgraded to FreeBSD 8.2-stable, using csup and make world. dmesg output: normal, verbose.

root@kg-g5# uname -a
FreeBSD kg-g5.kg4.no 8.2-STABLE FreeBSD 8.2-STABLE #1: Thu Mar 24 20:05:45 CET 2011     root@kg-g5.kg4.no:/usr/obj/usr/src/sys/GENERIC  powerpc

2011-03-21: ad0s3 - building a new kernel. I want a SMP kernel, and I am using this kernel config file:

root@kg-g5# more /sys/powerpc/conf/G5
#
# G5    - GENERIC kernel, plus SMP
#       based on
# GENERIC -- Generic kernel configuration file for FreeBSD/powerpc
#
include GENERIC

ident   G5-GENERIC

options SMP

Really simple stuff. (Notes to self: the file really lives at /root/kernels/G5, and is linked into the conf directory). Making the new kernel

cd /usr/src
make buildkernel KERNCONF=G5
make installkernel KERNCONF=G5

just in case the build fails. Build went ok, but upon booting the new kernel I get this:

avail memory = 1996509184 (1904 MB)
SMP: cpu2: skipped -- ID out of range
SMP: cpu3: skipped -- ID out of range
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
cpu0: dev=ff89d680 (BSP)
cpu1: dev=ff89eb70
panic: Built bad topology at 0x866aec. CPU mask 0xF != 0x3
cpuid = 0
KDB stack backtrace:
#0 0x309040 at panic+0x1a4
#1 0x3503ac at smp_topo+0x12c
#2 0x3335e8 at sched_setup+0x48
#3 0x2af9cc at mi_startup+0x134
#4 0x100198 at btext+0x98

and there it hangs. Ouch. Later: I found out through the freebsd-ppc mailing list that SMP isn't in 8.2 yet. Ok.

2011-03-20: Ok, let's restore what we backed up. First we add some partitions:

root@kg-g5# gpart add -s 800k -t apple-boot ad0
ad0s5 added
root@kg-g5# gpart bootcode -p /boot/boot1.hfs -i 4 ad0

I'll use this to boot the next one, if possible.

root@kg-g5# gpart add -s 74G -t freebsd-ufs ad0
ad0s6 added

Then it is time to newfs it:

root@kg-g5# newfs /dev/ad0s6
/dev/ad0s6: 75776.0MB (155189248 sectors) block size 16384, fragment size 2048
    using 413 cylinder groups of 183.72MB, 11758 blks, 23552 inodes.
super-block backups (for fsck -b #) at:
 160, 376416, 752672, 1128928, 1505184, 1881440, 2257696, 2633952, 3010208, 3386464, 3762720, 4138976, 4515232, 4891488,
 5267744, 5644000, 6020256, 6396512, 6772768, 7149024, 7525280, 7901536, 8277792, 8654048, 9030304, 9406560, 9782816, 10159072,
 10535328, 10911584, 11287840, 11664096, 12040352, 12416608, 12792864, 13169120, 13545376, 13921632, 14297888, 14674144,
 15050400, 15426656, 15802912, 16179168, 16555424, 16931680, 17307936, 17684192, 18060448, 18436704, 18812960, 19189216,
 19565472, 19941728, 20317984, 20694240, 21070496, 21446752, 21823008, 22199264, 22575520, 22951776, 23328032, 23704288,
 24080544, 24456800, 24833056, 25209312, 25585568, 25961824, 26338080, 26714336, 27090592, 27466848, 27843104, 28219360,
 28595616, 28971872, 29348128, 29724384, 30100640, 30476896, 30853152, 31229408, 31605664, 31981920, 32358176, 32734432,
 33110688, 33486944, 33863200, 34239456, 34615712, 34991968, 35368224, 35744480, 36120736, 36496992, 36873248, 37249504,
 37625760, 38002016, 38378272, 38754528, 39130784, 39507040, 39883296, 40259552, 40635808, 41012064, 41388320, 41764576,
 42140832, 42517088, 42893344, 43269600, 43645856, 44022112, 44398368, 44774624, 45150880, 45527136, 45903392, 46279648,
 46655904, 47032160, 47408416, 47784672, 48160928, 48537184, 48913440, 49289696, 49665952, 50042208, 50418464, 50794720,
 51170976, 51547232, 51923488, 52299744, 52676000, 53052256, 53428512, 53804768, 54181024, 54557280, 54933536, 55309792,
 55686048, 56062304, 56438560, 56814816, 57191072, 57567328, 57943584, 58319840, 58696096, 59072352, 59448608, 59824864,
 60201120, 60577376, 60953632, 61329888, 61706144, 62082400, 62458656, 62834912, 63211168, 63587424, 63963680, 64339936,
 64716192, 65092448, 65468704, 65844960, 66221216, 66597472, 66973728, 67349984, 67726240, 68102496, 68478752, 68855008,
 69231264, 69607520, 69983776, 70360032, 70736288, 71112544, 71488800, 71865056, 72241312, 72617568, 72993824, 73370080,
 73746336, 74122592, 74498848, 74875104, 75251360, 75627616, 76003872, 76380128, 76756384, 77132640, 77508896, 77885152,
 78261408, 78637664, 79013920, 79390176, 79766432, 80142688, 80518944, 80895200, 81271456, 81647712, 82023968, 82400224,
 82776480, 83152736, 83528992, 83905248, 84281504, 84657760, 85034016, 85410272, 85786528, 86162784, 86539040, 86915296,
 87291552, 87667808, 88044064, 88420320, 88796576, 89172832, 89549088, 89925344, 90301600, 90677856, 91054112, 91430368,
 91806624, 92182880, 92559136, 92935392, 93311648, 93687904, 94064160, 94440416, 94816672, 95192928, 95569184, 95945440,
 96321696, 96697952, 97074208, 97450464, 97826720, 98202976, 98579232, 98955488, 99331744, 99708000, 100084256, 100460512,
 100836768, 101213024, 101589280, 101965536, 102341792, 102718048, 103094304, 103470560, 103846816, 104223072, 104599328,
 104975584, 105351840, 105728096, 106104352, 106480608, 106856864, 107233120, 107609376, 107985632, 108361888, 108738144,
 109114400, 109490656, 109866912, 110243168, 110619424, 110995680, 111371936, 111748192, 112124448, 112500704, 112876960,
 113253216, 113629472, 114005728, 114381984, 114758240, 115134496, 115510752, 115887008, 116263264, 116639520, 117015776,
 117392032, 117768288, 118144544, 118520800, 118897056, 119273312, 119649568, 120025824, 120402080, 120778336, 121154592,
 121530848, 121907104, 122283360, 122659616, 123035872, 123412128, 123788384, 124164640, 124540896, 124917152, 125293408,
 125669664, 126045920, 126422176, 126798432, 127174688, 127550944, 127927200, 128303456, 128679712, 129055968, 129432224,
 129808480, 130184736, 130560992, 130937248, 131313504, 131689760, 132066016, 132442272, 132818528, 133194784, 133571040,
 133947296, 134323552, 134699808, 135076064, 135452320, 135828576, 136204832, 136581088, 136957344, 137333600, 137709856,
 138086112, 138462368, 138838624, 139214880, 139591136, 139967392, 140343648, 140719904, 141096160, 141472416, 141848672,
 142224928, 142601184, 142977440, 143353696, 143729952, 144106208, 144482464, 144858720, 145234976, 145611232, 145987488,
 146363744, 146740000, 147116256, 147492512, 147868768, 148245024, 148621280, 148997536, 149373792, 149750048, 150126304,
 150502560, 150878816, 151255072, 151631328, 152007584, 152383840, 152760096, 153136352, 153512608, 153888864, 154265120,
 154641376, 155017632

Ok, ok already. On with the restore (I had previously copied the dump file to the machine):

root@kg-g5# mount /dev/ad0s6 /mnt
root@kg-g5# cd /mnt
root@kg-g5# gzcat /tmp/g5-root-dump2.gz | restore -rf -
warning: ./.snap: File exists
expected next file 7371777, got 10
root@kg-g5#

That was it. Let's try to verify it:

root@kg-g5# cd
root@kg-g5# umount /mnt
root@kg-g5# fsck -y /dev/ad0s6
fsck: Could not determine filesystem type

Huh? Let's try it another way:

root@kg-g5# mount /dev/ad0s6 /mnt
root@kg-g5# fsck /mnt
fsck: Could not determine filesystem type

Oh well, since it can be mounted, it should be good. And indeed it is good. I had to boot it manually, by breaking into the boot prompt (before the kernel boots) and entering

set currdev=/ht......disk@0:6
unload kernel
load kernel
boot

to get the right kernel to boot (currdev was ...disk@0:3 initially, which I guessed was ad0s3). Of course I forgot to modify /etc/fstab on that slice (ad0s6), so the first time it mounted ad0s3 as root partition. But it didn't crash, and that was easily enough fixed. After that, manually changing load device (currdev) works.

2011-03-20: thermal monitoring - I renamed my "fancontrol" to thermald, put it into /usr/local/bin and made a little script for starting in /usr/local/etc/rc.d/thermald. Tested, and appears to work well.

2011-03-20: reinstall time. I booted from the FreeBSD 8.2-release CD for powerpc, started a shell and did:

# gpart delete -i 3 ad0
ad0s4 deleted
# gpart delete -i 2 ad0
ad0s3 deleted
Then I made new ones:
# gpart add -s 74G -t freebsd-ufs ad0
ad0s3 added
# gpart add -s 4 G -t freebsd-swap ad0
ad0s4 added

Unfortunately, sysinstall still saw the old partitions, so I had to reboot to get the new ones visible. After the reboot, the installation worked nicely. dmesg output: normal, verbose. First step after installation was to get my "fancontrol" program compiled and set up, to quiet those load fans. Seems to work nicely.

2011-03-20: using dump for backup:

root@kg-g5# dump -C16 -0af - /dev/ad0s3 | gzip -2 | ssh -c blowfish tingo@v2 dd of=/var/tmp/g5-root-dump.gz
  DUMP: WARNING: should use -L when dumping live read-write filesystems!
  DUMP: Date of this level 0 dump: Sun Mar 20 16:03:45 2011
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/ad0s3 (/) to standard output
  DUMP: mapping (Pass I) [regular files]
  DUMP: Cache 16 MB, blocksize = 65536
Password:
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 1176099 tape blocks.
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: DUMP: 1172383 tape blocks
  DUMP: finished in 186 seconds, throughput 6303 KBytes/sec
  DUMP: DUMP IS DONE
639856+2 records in
639856+1 records out
327606535 bytes transferred in 202.457124 secs (1618153 bytes/sec)
root@kg-g5#

Should have used -L, oh well. Here is one with -L:

root@kg-g5# dump -C16 -0aLf - /dev/ad0s3 | gzip -2 | ssh -c blowfish tingo@v2 dd of=/var/tmp/g5-root-dump2.gz
Password:
  DUMP: Date of this level 0 dump: Sun Mar 20 16:16:47 2011
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping snapshot of /dev/ad0s3 (/) to standard output
  DUMP: mapping (Pass I) [regular files]
  DUMP: Cache 16 MB, blocksize = 65536
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 1176101 tape blocks.
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: DUMP: 1172384 tape blocks
  DUMP: finished in 185 seconds, throughput 6337 KBytes/sec
  DUMP: DUMP IS DONE
639857+2 records in
639857+1 records out
327606856 bytes transferred in 799.990385 secs (409513 bytes/sec)

The snapshot took quite a long time to generate.

2011-03-20: documenting drives and stuff. The machine has two drives, one for OS X and one for FreeBSD. OS X hard drive:

root@kg-g5# dmesg | grep ad1
ad1: 239372MB <Maxtor 6L250M0 BANC1G10> at ata3-master UDMA100 SATA 1.5Gb/s
root@kg-g5# gpart show ad1
=>        5  490234747  ad1  APM  (234G)
          5     262203       - free -  (128M)
     262208  489972528    2  apple-hfs  (234G)
  490234736         16       - free -  (8.0K)

FreeBSD hard drive (320 GB):

root@kg-g5# dmesg | grep ^ad0
ad0: 305245MB <SAMSUNG HD322HJ 1AG01113> at ata2-master UDMA100 SATA 1.5Gb/s
root@kg-g5# gpart show ad0
=>       18  625142430  ad0  APM  (298G)
         18       1600    1  apple-boot  (800K)
       1618  616562688    2  freebsd-ufs  (294G)
  616564306    8388608    3  freebsd-swap  (4.0G)
  624952914     189534       - free -  (93M)

FreeBSD disk usage:

tingo@kg-g5$ df -h
Filesystem    Size    Used   Avail Capacity  Mounted on
/dev/ad0s3    285G    1.1G    261G     0%    /
devfs         1.0K    1.0K      0B   100%    /dev

FreeBSD swap:

root@kg-g5# swapinfo
Device          1K-blocks     Used    Avail Capacity
/dev/ad0s4        4194304        0  4194304     0%

Obviously, I'll need to change this if I want to have several FreeBSD versions on it. fstab:

root@kg-g5# more /etc/fstab
# Device        Mountpoint      FStype  Options Dump    Pass#
/dev/ad0s3      /       ufs     rw      1       1
/dev/ad0s4      none    swap    sw      0       0

That's it.

2011-03-13: As always, people on the mailing lists (in this case, the freebsd-ppc mailing list) has the answers: temperatures are read from the dev.smusat driver:

tingo@kg-g5$ sysctl dev.smusat
dev.smusat.0.%desc: SMU Satellite Sensors
dev.smusat.0.%driver: smusat
dev.smusat.0.%location: addr=0xb0
dev.smusat.0.%pnpinfo: name=sat compat=smu-sat
dev.smusat.0.%parent: iicbus2
dev.smusat.0.cpu_a0_vcore: 1
dev.smusat.0.cpu_a1_vcore: 1
dev.smusat.0.cpu_a0_diode_temp: 37
dev.smusat.0.cpu_a1_diode_temp: 45
dev.smusat.0.cpu_a0_core_current: 21
dev.smusat.0.cpu_a1_core_current: 33
dev.smusat.1.%desc: SMU Satellite Sensors
dev.smusat.1.%driver: smusat
dev.smusat.1.%location: addr=0xb2
dev.smusat.1.%pnpinfo: name=sat compat=smu-sat
dev.smusat.1.%parent: iicbus2
dev.smusat.1.cpu_b0_vcore: 1
dev.smusat.1.cpu_b1_vcore: 1
dev.smusat.1.cpu_b0_diode_temp: 44
dev.smusat.1.cpu_b1_diode_temp: 45
dev.smusat.1.cpu_b0_core_current: 33
dev.smusat.1.cpu_b1_core_current: 34

and fans are controlled with the dev.smu.0.fans controller:

tingo@kg-g5$ sysctl dev.smu.0.fans
dev.smu.0.fans.drive_bay_a_intake.minrpm: 1000
dev.smu.0.fans.drive_bay_a_intake.maxrpm: 4000
dev.smu.0.fans.drive_bay_a_intake.rpm: 3997
dev.smu.0.fans.backside.minrpm: 1100
dev.smu.0.fans.backside.maxrpm: 3000
dev.smu.0.fans.backside.rpm: 3003
dev.smu.0.fans.cpu_a_intake.minrpm: 485
dev.smu.0.fans.cpu_a_intake.maxrpm: 3200
dev.smu.0.fans.cpu_a_intake.rpm: 3198
dev.smu.0.fans.cpu_b_intake.minrpm: 485
dev.smu.0.fans.cpu_b_intake.maxrpm: 3200
dev.smu.0.fans.cpu_b_intake.rpm: 3200
dev.smu.0.fans.cpu_a_exhaust.minrpm: 500
dev.smu.0.fans.cpu_a_exhaust.maxrpm: 3200
dev.smu.0.fans.cpu_a_exhaust.rpm: 3197
dev.smu.0.fans.cpu_b_exhaust.minrpm: 500
dev.smu.0.fans.cpu_b_exhaust.maxrpm: 3200
dev.smu.0.fans.cpu_b_exhaust.rpm: 3199
dev.smu.0.fans.cpu_a_pump.minrpm: 1250
dev.smu.0.fans.cpu_a_pump.maxrpm: 3600
dev.smu.0.fans.cpu_a_pump.rpm: 3662
dev.smu.0.fans.cpu_b_pump.minrpm: 1250
dev.smu.0.fans.cpu_b_pump.maxrpm: 3600
dev.smu.0.fans.cpu_b_pump.rpm: 3615
dev.smu.0.fans.expansion_slots_intake.minrpm: 1560
dev.smu.0.fans.expansion_slots_intake.maxrpm: 4500
dev.smu.0.fans.expansion_slots_intake.rpm: 4479

now I only need to control them. Luckily, Nathan Whitehorn sent a link to the program he usea on his dual core G5: powermac112-fancontrol.c. I adapted that by adding in more fans, and called it powermac112-fancontrol-ti.c, and if that one is running, my fans quiet down.

2011-03-12: it seems like this machine has a different fan controller, it doesn't grok the fcu driver:

root@kg-g5# sysctl dev.fcu
sysctl: unknown oid 'dev.fcu'

and the fans are full on. It has a SMU unit:

root@kg-g5# sysctl dev.smu
dev.smu.0.%desc: Apple System Management Unit
dev.smu.0.%driver: smu
dev.smu.0.%pnpinfo: name=smu compat=smu
dev.smu.0.%parent: nexus0
dev.smu.0.fans.drive_bay_a_intake.minrpm: 1000
dev.smu.0.fans.drive_bay_a_intake.maxrpm: 4000
dev.smu.0.fans.drive_bay_a_intake.rpm: 4001
dev.smu.0.fans.backside.minrpm: 1100
dev.smu.0.fans.backside.maxrpm: 3000
dev.smu.0.fans.backside.rpm: 3000
dev.smu.0.fans.cpu_a_intake.minrpm: 485
dev.smu.0.fans.cpu_a_intake.maxrpm: 3200
dev.smu.0.fans.cpu_a_intake.rpm: 3192
dev.smu.0.fans.cpu_b_intake.minrpm: 485
dev.smu.0.fans.cpu_b_intake.maxrpm: 3200
dev.smu.0.fans.cpu_b_intake.rpm: 3197
dev.smu.0.fans.cpu_a_exhaust.minrpm: 500
dev.smu.0.fans.cpu_a_exhaust.maxrpm: 3200
dev.smu.0.fans.cpu_a_exhaust.rpm: 3201
dev.smu.0.fans.cpu_b_exhaust.minrpm: 500
dev.smu.0.fans.cpu_b_exhaust.maxrpm: 3200
dev.smu.0.fans.cpu_b_exhaust.rpm: 3199
dev.smu.0.fans.cpu_a_pump.minrpm: 1250
dev.smu.0.fans.cpu_a_pump.maxrpm: 3600
dev.smu.0.fans.cpu_a_pump.rpm: 3594
dev.smu.0.fans.cpu_b_pump.minrpm: 1250
dev.smu.0.fans.cpu_b_pump.maxrpm: 3600
dev.smu.0.fans.cpu_b_pump.rpm: 3637
dev.smu.0.fans.expansion_slots_intake.minrpm: 1560
dev.smu.0.fans.expansion_slots_intake.maxrpm: 4500
dev.smu.0.fans.expansion_slots_intake.rpm: 4505
dev.smu.0.sensors.slots_power: 17216
dev.smu.0.target_temp: 55
dev.smu.0.critical_temp: 90
dev.smu.0.server_mode: 1

But reading it doesn't quiet the fans.

2011-03-12: I took the Samsung hard drive out of the other g5, put it into this machine, fixed the fstab (I used the bsdinstall livecd for that; the drive is now ad0, it used to be ad1), and booted FreeBSD from it:

tingo@kg-g5$ uname -a
FreeBSD kg-g5.kg4.no 9.0-CURRENT FreeBSD 9.0-CURRENT #119 r217462M: Sat Jan 15 16:
@comporellon.tachypleus.net:/usr/obj/powerpc.powerpc/usr/src/sys/GENERIC  powerpc

dmesg output: normal, verbose. Output from some commands: ofwdump -ap output, ofwdump -pr / output, pci info:

root@kg-g5# pciconf -lv
vgapci0@pci0:10:0:0:    class=0x030000 card=0x001010de chip=0x014110de rev=0xa2 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'NVIDIA GeForce 6600 (NV43)'
    class      = display
    subclass   = VGA
pcib2@pci1:0:1:0:    class=0x060400 card=0x00000000 chip=0x01301166 rev=0xa3 hdr=0x01
    vendor     = 'ServerWorks (Was: Reliance Computer Corp)'
    device     = 'HT1000 PCI-X bridge'
    class      = bridge
    subclass   = PCI-PCI
pcib3@pci1:0:2:0:    class=0x060400 card=0x00000000 chip=0x01301166 rev=0xa3 hdr=0x01
    vendor     = 'ServerWorks (Was: Reliance Computer Corp)'
    device     = 'HT1000 PCI-X bridge'
    class      = bridge
    subclass   = PCI-PCI
pcib4@pci1:0:3:0:    class=0x060400 card=0x00000000 chip=0x01321166 rev=0xa3 hdr=0x01
    vendor     = 'ServerWorks (Was: Reliance Computer Corp)'
    device     = 'HT1000 PCIe bridge'
    class      = bridge
    subclass   = PCI-PCI
pcib5@pci1:0:4:0:    class=0x060400 card=0x00000000 chip=0x01321166 rev=0xa3 hdr=0x01
    vendor     = 'ServerWorks (Was: Reliance Computer Corp)'
    device     = 'HT1000 PCIe bridge'
    class      = bridge
    subclass   = PCI-PCI
pcib6@pci1:0:5:0:    class=0x060400 card=0x00000000 chip=0x01321166 rev=0xa3 hdr=0x01
    vendor     = 'ServerWorks (Was: Reliance Computer Corp)'
    device     = 'HT1000 PCIe bridge'
    class      = bridge
    subclass   = PCI-PCI
pcib7@pci1:0:6:0:    class=0x060400 card=0x00000000 chip=0x01321166 rev=0xa3 hdr=0x01
    vendor     = 'ServerWorks (Was: Reliance Computer Corp)'
    device     = 'HT1000 PCIe bridge'
    class      = bridge
    subclass   = PCI-PCI
pcib8@pci1:0:7:0:    class=0x060400 card=0x00000000 chip=0x0053106b rev=0x00 hdr=0x01
    vendor     = 'Apple Computer Inc'
    device     = 'PCI Bridge (Shasta)'
    class      = bridge
    subclass   = PCI-PCI
pcib9@pci1:0:8:0:    class=0x060400 card=0x00000000 chip=0x0054106b rev=0x00 hdr=0x01
    vendor     = 'Apple Computer Inc'
    device     = 'PCI Bridge (Shasta)'
    class      = bridge
    subclass   = PCI-PCI
pcib10@pci1:0:9:0:    class=0x060400 card=0x00000000 chip=0x0055106b rev=0x00 hdr=0x01
    vendor     = 'Apple Computer Inc'
    device     = 'PCI Bridge (Shasta)'
    class      = bridge
    subclass   = PCI-PCI
bge0@pci1:5:4:0:    class=0x020000 card=0x0085106b chip=0x166a14e4 rev=0x03 hdr=0x00
    vendor     = 'Broadcom Corporation'
    device     = 'Broadcom NetXtreme Gigabit Ethernet 5780 (BCM5780)'
    class      = network
    subclass   = ethernet
bge1@pci1:5:4:1:    class=0x020000 card=0x0085106b chip=0x166a14e4 rev=0x03 hdr=0x00
    vendor     = 'Broadcom Corporation'
    device     = 'Broadcom NetXtreme Gigabit Ethernet 5780 (BCM5780)'
    class      = network
    subclass   = ethernet
gem0@pci1:2:15:0:    class=0x020000 card=0x00000000 chip=0x0051106b rev=0x00 hdr=0x00
    vendor     = 'Apple Computer Inc'
    device     = 'Sungem ethernet controler (Shasta)'
    class      = network
    subclass   = ethernet
macio0@pci1:1:7:0:    class=0xff0000 card=0x00000000 chip=0x004f106b rev=0x00 hdr=0x00
    vendor     = 'Apple Computer Inc'
    device     = 'Mac I/O controler (Shasta)'
ohci0@pci1:1:11:0:    class=0x0c0310 card=0x00351033 chip=0x00351033 rev=0x43 hdr=0x00
    vendor     = 'NEC Electronics Hong Kong'
    device     = 'Dual OHCI controllers plus Single EHCI controller (udp9210)'
    class      = serial bus
    subclass   = USB
ohci1@pci1:1:11:1:    class=0x0c0310 card=0x00351033 chip=0x00351033 rev=0x43 hdr=0x00
    vendor     = 'NEC Electronics Hong Kong'
    device     = 'Dual OHCI controllers plus Single EHCI controller (udp9210)'
    class      = serial bus
    subclass   = USB
ehci0@pci1:1:11:2:    class=0x0c0320 card=0x00e01033 chip=0x00e01033 rev=0x04 hdr=0x00
    vendor     = 'NEC Electronics Hong Kong'
    device     = 'uPD720100A/101 USB 2.0 Enhanced Host Controller'
    class      = serial bus
    subclass   = USB
atapci0@pci1:3:12:0:    class=0x01018f card=0x02401166 chip=0x02401166 rev=0x00 hdr=0x00
    vendor     = 'ServerWorks (Was: Reliance Computer Corp)'
    device     = 'K2 SATA'
    class      = mass storage
    subclass   = ATA
ata0@pci1:3:13:0:    class=0xff0000 card=0x00000000 chip=0x0050106b rev=0x00 hdr=0x00
    vendor     = 'Apple Computer Inc'
    device     = 'IDE controler (Shasta)'
fwohci0@pci1:3:14:0:    class=0x0c0010 card=0x5811106b chip=0x0052106b rev=0x00 hdr=0x00
    vendor     = 'Apple Computer Inc'
    device     = 'Firewire controler (Shasta)'
    class      = serial bus
    subclass   = FireWire
root@kg-g5#

usbconfig output:

root@kg-g5# usbconfig
ugen0.1: <OHCI root HUB NEC> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=SAVE
ugen1.1: <OHCI root HUB NEC> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=SAVE
ugen2.1: <EHCI root HUB NEC> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE
ugen1.2: <Hub in Apple Extended USB Keyboard Mitsumi Electric> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=SAVE
ugen1.3: <product 0x310b vendor 0x04b3> at usbus1, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON
ugen1.4: <Apple Extended USB Keyboard Mitsumi Electric> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
root@kg-g5#
Unknown device at ugen1.3:
root@kg-g5# usbconfig -u 1 -a 3 dump_device_desc
ugen1.3: <product 0x310b vendor 0x04b3> at usbus1, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON

  bLength = 0x0012
  bDescriptorType = 0x0001
  bcdUSB = 0x0200
  bDeviceClass = 0x0000
  bDeviceSubClass = 0x0000
  bDeviceProtocol = 0x0000
  bMaxPacketSize0 = 0x0008
  idVendor = 0x04b3
  idProduct = 0x310b
  bcdDevice = 0x0110
  iManufacturer = 0x0000  <no string>
  iProduct = 0x0000  <no string>
  iSerialNumber = 0x0000  <no string>
  bNumConfigurations = 0x0001

Not much more there.

root@kg-g5# usbconfig -u 1 -a 3 dump_curr_config_desc
ugen1.3: <product 0x310b vendor 0x04b3> at usbus1, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON


 Configuration index 0

    bLength = 0x0009
    bDescriptorType = 0x0002
    wTotalLength = 0x0022
    bNumInterfaces = 0x0001
    bConfigurationValue = 0x0001
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x00a0
    bMaxPower = 0x0032

    Interface 0
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0000
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0001
      bInterfaceClass = 0x0003
      bInterfaceSubClass = 0x0001
      bInterfaceProtocol = 0x0002
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x21
      bDescriptorSubType = 0x00
       RAW dump:
       0x00 | 0x09, 0x21, 0x00, 0x01, 0x00, 0x01, 0x22, 0x34,
       0x08 | 0x00

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0004
        bInterval = 0x000a
        bRefresh = 0x0000
        bSynchAddress = 0x0000

and that was the config.

2011-03-12: I tried the bsdinstall-powerpc64-20110308 image, it wouldn't boot with "C", but from Open Firmware (Cmd-Opt-O-F) I could boot it with

boot cd:,\BOOT\LOADER.;1 cd:0

a bit cumbersome, but it works. It booted straight to the menu, I selected LiveCD, then did ifconfig bge0 up, dhclient bge0. Network ok. Everything on the root file system is mounted read-only, so I didn't mess around trying to fix dns etc, I just lived with it. Getting a dmesg off the machine:

dmesg > /tmp/somefile.txt
scp /tmp/somefile.txt user@ip-address:~/directory/somefile.txt

dmesg output is here: normal.

2011-03-11: I booted FreeBSD 8.2-release from a CD made from the FreeBSD-8.2-RELEASE-powerpc-disc1.iso image. I held down the Alt (Option) key, the boot selector came up, and i selected the CD, it booted into sysinstall after letting me choose keyboard layout. Cool! From the sound of the fans, it doesn't look like the fcu driver is included in FreeBSD 8.2-release.