It's been a few months since their NoPDRM and PS3 NAND Brick or PUP Updater Error Fix releases, and now PlayStation 3 developer Glevand of Gitbrew has started work on porting http://www.netbsd.org/ to the PS3 OtherOS++ (CFW) Custom Firmware.
To quote on the progress thus far: PS3: NetBSDObtaining Source Code
- 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.
Building the ToolchainCode:# 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
- 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 toolsCompiling KernelCode:===> 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
- 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.
Compiling LoaderCode:# 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 strippedBooting with Petitboot on OtherOS++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
- Bootloader doesn't work yet but it looks very promising. I can run code in loader already.
Compiling User-SpaceCode:# kexec -l boot.elf # reboot
Links
- Why NetBSD and NOT Linux: http://www.embeddedarm.com/~joff/
- http://www.ki.nu/hardware/ps3/
- ftp://nandra.segv.jp/pub/NetBSD/ps3/
- http://www.netbsd.org/docs/guide/en/chap-fetch.html
- http://www.usenix.org/events/bsdcon/full_papers/linden/linden_html/
- UVM: http://www.usenix.org/event/usenix99/full_papers/cranor/cranor.pdf
- ftp://ftp.gcu-squad.org/pub/books/netbsd-io-2002.pdf
- http://www.atmnis.com/~proger/openkyiv/openkyiv2009_proger_sys.pdf
- http://www.netbsd.org/docs/kernel/bus_dma.pdf
- http://maxim.int.ru/bookshelf/osdi99.pdf
- http://gentiane.org/~miod/software/openbsd/solbourne
- http://www.teamten.com/lawrence/291.paper.pdf
More PlayStation 3 News...
13250 HeyManHRU
13207 PS3 News
11287 elser1
11119 oVERSoLDiER
9248 GrandpaHomer
8578 Tidusnake666
7968 saviour07
7340 condorstrike
7258 deank
6858 OGroteKoning
24951 PS3 News
5279 Starlight
2965 HeyManHRU
2173 CJPC
2123 elser1
1818 cfwprophet
1756 her0
1570 oVERSoLDiER
1291 GrandpaHomer
1080 barrybarryk






