PS3 NetBSD Port in Development by Gitbrew for OtherOS++ CFW
Updater Error Fix releases, and now PlayStation 3 developer Glevand of Gitbrew has started work on porting NetBSD to the PS3 OtherOS++ (CFW) Custom Firmware.
To quote on the progress thus far: PS3: NetBSD
Ok, here i will start porting NetBSD to PS3 OtherOS++.
It would be cool to have another BSD on PS3.
Special thanks to Makoto Fujiwara and Tsubai Masanari for porting NetBSD to PS3.
Any help is welcome. Come on BSD fans, let us run NetBSD on PS3.
It is still work in progress and i'm not able to run NetBSD on PS3 yet.
Obtaining Source Code
Code:
# cd /usr
# export CVS_RSH="ssh"
# export CVSROOT="anoncvs@anoncvs.NetBSD.org:/cvsroot"
# cvs checkout -A -P src
# ftp ftp://nandra.segv.jp/pub/NetBSD/ps3/ps3-111111.tar.gz
Building the Toolchain
I must say the toolchain is really super done.
Linux really sucks in comparison with NetBSD or FreeBSD regarding toolchain and cross-compiling.
Code:
# cd /usr/src
# mv sys/arch/powerpc ~
# tar xvzf ps3-111111.tar.gz
# patch -p0 < build.sh.patch
# patch -p0 < elf_machdep.h.patch
# mkdir /usr/obj
# cd tools
# sh ./mkheaderlist.sh
# cd ..
# ./build.sh -m ps3 -a powerpc64 tools
Code:
===> Tools built to /usr/src/obj/tooldir.NetBSD-5.1-amd64
===> build.sh ended: Sat Jan 7 15:34:30 CET 2012
===> Summary of results:
build.sh command: ./build.sh -m ps3 -a powerpc64 tools
build.sh started: Sat Jan 7 15:23:22 CET 2012
NetBSD version: 5.99.59
MACHINE: ps3
MACHINE_ARCH: powerpc64
Build platform: NetBSD 5.1 amd64
HOST_SH: /bin/sh
No $TOOLDIR/bin/nbmake, needs building.
Bootstrapping nbmake
TOOLDIR path: /usr/src/obj/tooldir.NetBSD-5.1-amd64
DESTDIR path: /usr/src/obj/destdir.ps3
RELEASEDIR path: /usr/src/obj/releasedir
Created /usr/src/obj/tooldir.NetBSD-5.1-amd64/bin/nbmake
Updated makewrapper: /usr/src/obj/tooldir.NetBSD-5.1-amd64/bin/nbmake-ps3
Tools built to /usr/src/obj/tooldir.NetBSD-5.1-amd64
build.sh ended: Sat Jan 7 15:34:30 CET 2012 Compiling Kernel
Modify Tsubai Masanari's source code to use current powerpc infrastructure of NetBSD else no chance that NetBSD will accept our port.
Tsubai Masanari's source code uses powerpc64 arch which is NOT present in NetBSD source. Everything is in powerpc arch.
Currently, NetBSD supports 64bit PowerPC arch only in 64bit bridge mode, that means 32bit kernel and user-space.
64bit bridge mode won't work on CELL cpu. It is not supported.
Code:
# cd /usr/src
# patch -p0 < PS3.patch
# patch -p0 < cpu.h.patch
# patch -p0 < pio.h.patch
# patch -p0 < cpu_counter.h.patch
# patch -p0 < spr.h.patch
# patch -p0 < altivec.c.patch
# patch -p0 < cpufunc.h.patch
# patch -p0 < powerpc_machdep.c.patch
# patch -p0 < cpu_970.c.patch
# patch -p0 < fpu.c.patch
# patch -p0 < trap.c.patch
# patch -p0 < ps3pic.c.patch
# patch -p0 < vuart.c.patch
# patch -p0 < clock.c.patch
# patch -p0 < extintr.c.patch
# patch -p0 < machdep.c.patch
# patch -p0 < pmap.h.patch
# patch -p0 < pmap.c.patch
# patch -p0 < ps3av_cmd.c.patch
# patch -p0 < if_gelic.c.patch
# cd sys/arch/ps3/conf
# /usr/obj/tooldir.NetBSD-5.1-amd64/bin/nbconfig PS3
# cd ../compile/PS3
# export PATH=/usr/obj/tooldir.NetBSD-5.1-amd64/bin:$PATH
# /usr/obj/tooldir.NetBSD-5.1-amd64/bin/nbmake-ps3 depend
# /usr/obj/tooldir.NetBSD-5.1-amd64/bin/nbmake-ps3 NOGCCERROR=1
# file netbsd
netbsd: ELF 64-bit MSB executable, 64-bit PowerPC or cisco 7500, version 1 (SYSV), statically linked, for NetBSD 5.99.59, not stripped
Compiling Loader
Code:
# cd /usr/src
# patch -p0 < Makefile.patch
# patch -p0 < start.S.patch
# patch -p0 < boot.c.patch
# patch -p0 < gelic.c.patch
# patch -p0 < devopen.c.patch
# cd sys/arch/ps3/stand/boot
# /usr/obj/tooldir.NetBSD-5.1-amd64/bin/nbmake-ps3 depend
# /usr/obj/tooldir.NetBSD-5.1-amd64/bin/nbmake-ps3 NOGCCERROR=1 LIBCRT0= LIBC= LIBCRTBEGIN= LIBCRTEND=
# file boot.elf
boot.elf: ELF 64-bit MSB executable, 64-bit PowerPC or cisco 7500, version 1 (SYSV), statically linked, not stripped
Booting with Petitboot on OtherOS++
Bootloader doesn't work yet but it looks very promising. I can run code in loader already.
# kexec -l boot.elf
# reboot
Compiling User-Space
Links
Source
Dont know if this is posted because i couldnt find anything related.