The Raspberry Pi emulation is not working yet. This page contains preliminary instructions for how to start debugging NetBSD, FreeBSD, or HelenOS.
This doesn't work yet.
Starting point for development:
See http://wiki.netbsd.org/ports/evbarm/raspberry_pi/ for more info on NetBSD.
To start debugging/development:
http://nyftp.netbsd.org/pub/NetBSD-daily/HEAD/201310032210Z/evbarm/binary/kernel/netbsd-RPI.gz
TODO: Everything.
GXemul> u <kernel_text> c00081e0: e10f1000 mrs r1,CPSR c00081e4: e166f001 msr SPSR_sx,r1 c00081e8: e28f1048 add r1,pc,#0x48 c00081ec: e8912106 ldmia r1,{r1,r2,r8,sp} c00081f0: ee0d8f90 mcr 15,0,r8,cr13,cr0,4 It starts up in kernel_text, which is in NetBSD usr/src/sys/arch/arm/arm32/locore.S: ENTRY_NP(kernel_text) ASENTRY_NP(start) mrs r1, cpsr /* fetch CPSR value */ msr spsr_sx, r1 /* set SPSR[23:8] to known value */ adr r1, .Lstart ldmia r1, {r1, r2, r8, sp} /* Set initial stack and */ #if defined(TPIDRPRW_IS_CURCPU) || defined(TPIDRPRW_IS_CURLWP) mcr p15, 0, r8, c13, c0, 4 #endif #if defined(TPIDRPRW_IS_CURLWP) ldr r8, [r8, #L_CPU] /* r8 needs curcpu in it */ #endif mov r4, #0 #ifdef _ARM_ARCH_DWORD_OK mov r5, #0 #endif
Also useful for testing:
https://github.com/raspberrypi/firmware/blob/master/boot/kernel.img gxemul -tvK -E rpi 0x00000000:kernel.img
Dummy mode so far.
FreeBSD sd card image:
http://www.db.net/downloads/bsd-pi-250580M.img.xz # Extract the kernel from the second (2) slice' first partition (a): mdconfig -a -t vnode -f bsd-pi-250580M.img mount /dev/md0s2a /mnt/ cp /mnt/boot/kernel/kernel* . umount /mnt mdconfig -d -u 0 gxemul -tK -E rpi kernel
The Raspberry Pi mode in GXemul is just a dummy so far.
These instructions are used as a reminder for me when I wish to experiment with the HelenOS kernel:
http://www.helenos.org/releases/HelenOS-0.7.2-arm32-raspberrypi.bin
gxemul -VE rpi -tv 0x8000:0x40:0x8000:HelenOS-0.7.2-arm32-raspberrypi.bin