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