Announcement

Collapse
No announcement yet.

PS3 NetBSD Port in Development by Gitbrew for OtherOS++ CFW

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • PS3 NetBSD Port in Development by Gitbrew for OtherOS++ CFW

    PS3 NetBSD Port in Development by Gitbrew for OtherOS++ CFW

    PlayStation 3 developer Glevand of Gitbrew has started work on porting NetBSD to the PS3 OtherOS++ (CFW) Custom Firmware.

    * 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="[email protected]:/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.
    Code:
    # kexec -l boot.elf
    # reboot
    Compiling User-Space

    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/...n/linden_html/

    * UVM: http://www.usenix.org/event/usenix99...nor/cranor.pdf

    * ftp://ftp.gcu-squad.org/pub/books/netbsd-io-2002.pdf

    * http://www.atmnis.com/~proger/openky...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
    The Hackmaster
Working...
X