Differences between revisions 57 and 59 (spanning 2 versions)
Revision 57 as of 2016-07-10 22:05:15
Size: 6924
Editor: ?AdamBorowski
Comment: keyring, chroot-in-qemu copypasta
Revision 59 as of 2016-09-26 23:11:10
Size: 7048
Editor: ?AdrianGlaubitz
Comment: Update name of current porter.
Deletions are marked like this. Additions are marked like this.
Line 95: Line 95:
# debootstrap --no-check-gpg unstable rootfs-powerpcspe http://ftp.ports.debian.org/debian-ports/ # apt install debian-ports-archive-keyring
# debootstrap --keyring=/usr/share/keyrings/debian-ports-archive-keyring.gpg unstable rootfs-powerpcspe http://ftp.ports.debian.org/debian-ports/
Line 97: Line 98:
Instead of --no-check-gpg, it's better to grab the key from debian-ports-archive-keyring.
Line 104: Line 104:
# debootstrap --foreign --arch=powerpcspe --no-check-gpg unstable rootfs-powerpcspe http://ftp.ports.debian.org/debian-ports/ # apt install debian-ports-archive-keyring
# debootstrap --keyring=/usr/share/keyrings/debian-ports-archive-keyring.gpg
--foreign --arch=powerpcspe unstable rootfs-powerpcspe http://ftp.ports.debian.org/debian-ports/
Line 137: Line 138:
 * [[RolandStigge|Roland Stigge]] (currently active porter)  * [[RolandStigge|Roland Stigge]]
 * John Paul Adrian Glaubitz
(currently active porter)

Maintainer's Note on IBM Cell and PS3 systems

"PowerPC SPE" refers to the "Signal Processing Engine" hardware present on low-power 32-bit ?FreeScale and IBM "e500" cores. If you wish to run Debian on a PS3 or other IBM-Cell-based system, you should instead use the standard powerpc port. The "SPE" in the "powerpcspe" architecture does not refer to the "Synergistic Processing Element" units on IBM Cell microprocessors, although both are PowerPC variants. See also http://lists.debian.org/debian-devel/2011/06/msg00592.html

Current status

The powerpcspe port is currently at ~90% source package (for arch:powerpcspe) completeness, as you will find on the status pages. You can use a regular mirror from the Debian Ports mirror network, e.g.:

deb http://ftp.ports.debian.org/debian-ports/ unstable main
deb http://ftp.ports.debian.org/debian-ports/ unreleased main

Not all porting efforts are integrated into Debian unstable yet, therefore the "unreleased" distribution of Debian Ports needs to be used additionally.

Experimental packages are available from:

deb http://ftp.ports.debian.org/debian-ports/ experimental main

QEMU

It is supported by qemu, both -system and -user, although you need to manually specify the CPU:

export QEMU_CPU=e500v2

The env var needs to be present whenever a process started by qemu-user is run. As you probably want to use binfmt (package qemu-user-static, copy qemu-ppc-static into /usr/bin/ inside the chroot before debootstrapping), this means exporting it whenever you run debootstrap or chroot.

Current 'powerpcspe' bug list

PowerpcSPE specific type-handling

Repositories and Build Status

Hosting for the unofficial PowerPCSPE port is graciously provided by the wonderful people at Debian ports. In particular we'd like to thank Aurelien Jarno for his help getting everything set up.

Latest Statistics

Architecture summary

The 'powerpcspe' architecture is a binary-incompatible variant of the PowerPC/POWER designed and supported by FreeScale and IBM. It is also known under the trade names "e500"/"MPC8500" and "e200"/"MPC5xx".

Additional information can be found at:

Supported CPUs

The following CPUs are supported by Debian's powerpcspe/e500v2 port:

  • MPC8548
  • P1011/P1020
  • P2020

The following CPUs are known to not working with this port:

  • MPC8540 (for this one, you can use Debian's regular powerpc port with activated FPU emulation in the kernel)

Instruction set

In particular, the 'powerpcspe' architecture lacks the classic FPU with dedicated FPRs found on most other PowerPC systems. It is replaced with a set of "SPE" instructions which perform floating-point operations on the integer registers.

In an unfortunate choice of architecture design, the instructions used for the "SPE" operations overlap with those for the Altivec unit on most other modern PowerPC cores.

Chipset details

The "e500v2"-series chips have 64-bit GPRs, where the high 32-bits are accessible only via the special "SPE" instructions, allowing them to make efficient use of the "double" datatype.

The relatively rare "e500v1"-series chips have only 32-bit GPRs, and require software traps and emulation to support native "double".

The "e200z3" and "e200z6" chips have no support for floating point at all, but with software traps and emulation are binary-compatible with the "e500"-series chips.

GCC/EGLIBC considerations

The Debian port to this architecture specifically chooses to optimize for the higher-end chips (e500v2), as most of the others are targeted at automotive applications or no longer in production.

Full support for the e500v2 requires the following options to GCC's "configure":

  •  --with-cpu=8548 

  •  --enable-e500_double 

  •  --with-long-double-128 

  •  --without-fp  (FPU support has to be disabled manually)

Please note that the  --with-long-double-128  is desired to match the behavior of long double on other PowerPC-based platforms. (Otherwise long double is exactly the same as double).

Installing the port

Installation can be done with debootstrap:

# apt install debian-ports-archive-keyring
# debootstrap --keyring=/usr/share/keyrings/debian-ports-archive-keyring.gpg unstable rootfs-powerpcspe http://ftp.ports.debian.org/debian-ports/

An intermediate repository is provided, because debootstrap doesn't accept sources from multiple distributions like here with sources from unstable and unreleased. As the repository at antcom.de is a bit outdated, you should apt-get dist-upgrade after bootstrapping.

Or, to cross-bootstrap, do:

# apt install debian-ports-archive-keyring
# debootstrap --keyring=/usr/share/keyrings/debian-ports-archive-keyring.gpg --foreign --arch=powerpcspe unstable rootfs-powerpcspe http://ftp.ports.debian.org/debian-ports/

Afterwards, on the target, chroot to this directory and finish the installation with:

# /debootstrap/debootstrap --second-stage
  • if you need a console on ttyS0:
    • edit etc/inittab and add a line like T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100

    • make sure /dev/ttyS0 exist. Either install udev or use the following command mknod ttyS0 c 4 64

  • edit etc/apt/sources.list and enter a mirror from here which is close to you.

Installing in QEMU

If you don't have the hardware and want a porting chroot, run the following:

TARGET=powerpcspe   #name the chroot here
apt-get -y install debian-ports-archive-keyring qemu-user-static
btrfs subv create "$TARGET" || mkdir "$TARGET"
mkdir -p "$TARGET/usr/bin"
cp -p /usr/bin/qemu-ppc-static "$TARGET/usr/bin/"
QEMU_CPU=e500v2 debootstrap --arch=powerpcspe \
    --keyring=/usr/share/keyrings/debian-ports-archive-keyring.gpg \
    unstable "$TARGET" http://ftp.ports.debian.org/debian-ports/

Porters

During the last several years, the following people have been working on this port:

  • Sebastian Andrzej Siewior
  • Kyle Moffett
  • Roland Stigge

  • John Paul Adrian Glaubitz (currently active porter)

Final notes

At this time the 'powerpcspe' architecture port is still very much an unofficial port. While we hope that will change in the future, it is entirely possible that the embedded niche of the processor will make such an official Debian port problematic.


CategoryPorts