OpenBSD Journal

New Hardware Platform: socppc

Contributed by merdely on from the system-on-chips-and-salsa dept.

Mark Kettenis (kettenis@) let's us know about a new hardware platform for OpenBSD:

Folks following source-changes@ may have noticed already: OpenBSD gained support for a new hardware platform. A little over two weeks ago I got myself a Thecus N1200. This is a little single-dist NAS box, that sets itself apart from most other devices in the market in that it has lots of extension possibilities. It has 128MB of RAM, a gigabit Ethernet port, an integrated 4-port fast Ethernet switch, two USB ports, an e-SATA port and a mini-PCI slot. My board already had a header for the serial port, so it's not necessary to solder one on yourself. Unlike the Thecus N2100 (which is ARM-based and supported by OpenBSD/armish), this little box is built around the Freescale MPC8347 System-on-Chip [SoC] platform, and has an e300 PowerPC core. So after a few days of hacking, OpenBSD/socppc was born.

The new platform is binary compatible with OpenBSD/macppc. Which is one of the reasons why the platform was brought up in such a short timespan. Once I had a running kernel, I simply used the OpenBSD/macppc sets to get the little box multiuser. The fact that the box comes with a half-decent firmware (Das U-Boot), also helped quite a bit. So far I've written drivers for the on-chip interrupt controller, on-chip serial ports, on-chip USB controller, on-chip I2C controller, on-board PCI controller (so the on-board SATA controller works too). The biggest missing chunk is support for the on-chip gigabit Ethernet controllers. But working USB means that this isn't a show-stopper (and support for those Ethernet controllers is almost finished anyway).

It should be fairly easy to add support for other systems that use Freescale SoC processors. Thecus makes a three-disk box (The Thecus N3200) that is architecturally very similar to the N1200, which might just run with the current OpenBSD/socppc kernel. But other devices based on the MPC82XX (G2 core), MPC83XX (e300 core) and MPC86XX (e600 core) should be able to run OpenBSD/socppc with a little effort. So far I've been able to identify the Synology DS-101g+ and DS-106/106e/106j as potential targets (all built around an MPC8241 processor). I haven't seen any devices with the 'E' variants of the Freescale SoC processors yet (e.g. the MPC8315E and MPC8349E). Devices with those chips would be extremely interesting since they have on-chip crypto support.

[ using 221172 bytes of bsd ELF symbol table ]
Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California.  All rights reserved.
Copyright (c) 1995-2008 OpenBSD. All rights reserved.  http://www.OpenBSD.org

OpenBSD 4.3-current (GENERIC) #136: Mon May 19 19:27:58 CEST 2008
    kettenis@socppc.openbsd.org:/usr/src/sys/arch/socppc/compile/GENERIC
real mem = 134217728 (128MB)
avail mem = 125235200 (119MB)
mainbus0 at root
cpu0 at mainbus0: 8347
obio0 at mainbus0
ipic0 at obio0 offset 0x00700
sociic0 at obio0 offset 0x03000 ivec 14
iic0 at sociic0
ricohrtc0 at iic0 addr 0x32: RICOH RS5C372[AB] Real-time Clock
fintek0 at iic0 addr 0x2e: F75375 rev 1.5
sociic1 at obio0 offset 0x03100 ivec 15
iic1 at sociic1
com0 at obio0 offset 0x04500 ivec 9: st16650, no working fifo
com0: console
com1 at obio0 offset 0x04600 ivec 10: st16650, no working fifo
tsec0 at obio0 offset 0x24000 ivec 32: address 00:14:fd:14:5c:42
rgephy0 at tsec0 phy 17: RTL8169S/8110S PHY, rev. 2
tsec1 at obio0 offset 0x25000 ivec 35: address 00:14:fd:15:5c:43
tsec1: no PHY found!
socpcic0 at obio0 offset 0x08300
pci0 at socpcic0 bus 0
"Freescale MPC8347 PBGA" rev 0x11 at pci0 dev 0 function 0 not configured
pciide0 at pci0 dev 16 function 0 "CMD Technology SiI3512 SATA" rev 0x01: DMA
pciide0: using ivec 20 for native-PCI interrupt
pciide0: port 0: device present, speed: 1.5Gb/s
wd0 at pciide0 channel 0 drive 0: 
wd0: 16-sector PIO, LBA48, 152627MB, 312581808 sectors
wd0(pciide0:0:0): using BIOS timings, Ultra-DMA mode 6
socpcic1 at obio0 offset 0x08380
pci1 at socpcic1 bus 0
"Freescale MPC8347 PBGA" rev 0x11 at pci1 dev 0 function 0 not configured
ehci0 at obio0 offset 0x22100 ivec 39
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 "Freescale EHCI root hub" rev 2.00/1.00 addr 1
rum0 at uhub0 port 2 "Ralink 802.11 bg WLAN" rev 2.00/0.01 addr 2
rum0: MAC/BBP RT2573 (rev 0x2573a), RF RT2528, address 00:0c:f6:22:be:f0
softraid0 at root
root on wd0a swap on wd0b dump on wd0b

Thank you, Mark, for taking the time to write something up for OpenBSD/socppc right in the middle of hacking.

(Comments are closed)


Comments
  1. By Motley Fool (MotleyFool) motleyfool@dieselrepower.org on

    Hey, I think I may have found a replacement for the Plextor landisk boxes I run.

    I assume the serial port header pin definition is easy to find?

    thanks and keep up the good work

    Comments
    1. By Mark Kettenis (82.92.89.47) on

      > Hey, I think I may have found a replacement for the Plextor landisk boxes I run.
      >
      > I assume the serial port header pin definition is easy to find?

      You can use the same cable as for the Thecus 2100, for which the pin definition is documented in INSTALL.armish. And when you realize pin 9 (and pin 10) are unused, it becomes obvious how to attach the cable to the board. It will of course be documented in INSTALL.socppc once snapshots are made available.

      Comments
      1. By Brynet (Brynet) on

        > > Hey, I think I may have found a replacement for the Plextor landisk boxes I run.
        > >
        > > I assume the serial port header pin definition is easy to find?
        >
        > You can use the same cable as for the Thecus 2100, for which the pin definition is documented in INSTALL.armish. And when you realize pin 9 (and pin 10) are unused, it becomes obvious how to attach the cable to the board. It will of course be documented in INSTALL.socppc once snapshots are made available.
        >

        This is cool :)

        When will there be a socppc.html?

  2. By Leonardo Rodrigues (201.47.169.253) on

    Great job =)

    A bit off-topic here, but is it a _silent_ NAS?
    I'm considering buying one of these toys to act as a home server, and noise is an issue.

    Comments
    1. By dingo (70.8.73.189) dingo@1984.ws on http://1984.ws

      > Great job =)
      >
      > A bit off-topic here, but is it a _silent_ NAS?
      > I'm considering buying one of these toys to act as a home server, and noise is an issue.

      I go CF<->IDE for this

      Comments
      1. By Anonymous Coward (24.37.242.64) on

        > > Great job =)
        > >
        > > A bit off-topic here, but is it a _silent_ NAS?
        > > I'm considering buying one of these toys to act as a home server, and noise is an issue.
        >
        > I go CF<->IDE for this

        How big is your CF? =)

    2. By _ml (192.193.216.219) lashkar@yahoo.com on

      The fan is very noisy and flimsy.
      I am on my 2nd fan now.
      You can hear the fan 10 feet away just fine.

      -ml

  3. By Jason Crawford (X-rayS) jason@purebsd.net on

    If only I could get my favorite OS running on my PS3. I think it would be pretty cool to get yet another PPC platform going, plus it would be cool to offload some crypto onto an SPU or two. But alas, I am currently stuck with YellowDog (not touching Fedora). While I know a lot about the CBE (yay SPU SIMD assembly), definitely don't know enough about the PS3 bootstrapping process to get OpenBSD booted, spent the better part of a weekend trying.

  4. By -ml (199.67.138.83) lashkar@yahoo.com on

    Interested to see how far did you get... I have a n1200 that I am eager to make good use of .

    thx

Latest Articles

Credits

Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original deadly.org with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]