NetBSD on PS3: Difference between revisions
m (None.) |
mNo edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Category:OtherOS]] | |||
* Ok, here i will start porting NetBSD to PS3 OtherOS++. | * Ok, here i will start porting NetBSD to PS3 OtherOS++. | ||
* It would be cool to have another BSD on PS3. | * It would be cool to have another BSD on PS3. | ||
Line 150: | Line 152: | ||
http://www.teamten.com/lawrence/291.paper.pdf | http://www.teamten.com/lawrence/291.paper.pdf | ||
{{BSD}}<noinclude>[[Category:Main]]</noinclude> |
Latest revision as of 01:41, 3 February 2014
- 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[edit | edit source]
- 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[edit | edit source]
I must say the toolchain is really super done. Linux really sucks in comparison with NetBSD or FreeBSD regarding toolchain and cross-compiling.
- 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
===> 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[edit | edit source]
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.
- 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[edit | edit source]
- 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++[edit | edit source]
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[edit | edit source]
Links[edit | edit source]
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
|