MIPS port
Boards
Download
svn co svn://svn.freebsd.org/base/projects/mips
View project history: http://svn.freebsd.org/viewvc/base/projects/mips/
Build
Use something like this script:
setenv SRCROOT /home/gonzo/FreeBSD/svn/mips
setenv TARGET mips
setenv TARGET_ARCH mips
setenv TARGET_CPUTYPE mips32
setenv KERNCONF MALTA
setenv MAKEOBJDIRPREFIX /home/gonzo/FreeBSD/obj/mips
set NFSROOT=/home/gonzo/FreeBSD/nfsroot
set TFTPBOOT=/tftpboot
set MAKEFLAGS=(-DWITHOUT_CDDL \
-DWITHOUT_GAMES \
-DWITHOUT_DOCS \
-DWITHOUT_KERBEROS \
-DWITHOUT_ACPI \
-DWITHOUT_KERBEROS \
-DWITHOUT_RESCUE \
-DWITHOUT_MAN \
-DWITHOUT_PROFILE \
-DWITHOUT_BSNMP \
-DWITHOUT_NIS \
-DWITHOUT_IPX \
-DWITHOUT_ATM)
cd ${SRCROOT}
make ${MAKEFLAGS} kernel-toolchain
make ${MAKEFLAGS} buildkernel
make ${MAKEFLAGS} DESTDIR=${TFTPBOOT} installkernel
make ${MAKEFLAGS} buildworld
sudo -E make DESTDIR=${NFSROOT} ${MAKEFLAGS} installworld
sudo -E make DESTDIR=${NFSROOT} ${MAKEFLAGS} distribution
Boot
There is no ready-for-use firmware yet so you'll need either netboot your board and mount root over NFS. Or build disk image for emulator (like gxemul)
Netboot
TBD:
- Setup isc-dhcpd and add entry for board (config courtesy of Andrew Thompson)
subnet 192.168.10.1 netmask 255.255.255.0 {
deny unknown-clients;
option routers 192.168.10.1;
next-server 192.168.10.196;
filename "kernel";
option root-path "10.0.1.196:/src/nfsroot";
}
host mips {
hardware ethernet 00:15:6d:c1:28:2e;
fixed-address 192.168.;
}- Enable tftpd in inetd.conf, modify -s parameter to point to directory with MIPS kernels and restart inetd
- Add $DESTDIR entry to /etc/exports (TBD)
- Add root fs to $DESTDIR/etc/fstab (TBD)
- Enable mountd/nfsd and start them (TBD)
GXEmul
- Add line for root fs to $DESTDIR/etc/fstab
- Build proper image using makefs tool (sysutils/makefs):
makefs mips.img $DESTDIR
- Boot gxemul:
gxemul -e malta -d i:/path/to/mips.img -C 4Kc -d /path/to/kernel
Related articles
Cavium Simulator -- How to run the Cavium Network Simulator on FreeBSD with a FreeBSD kernel