FreeBSD/Arm Port

This page is to allow people to check the progress of my port of the FreeBSD operating system to the ARM platform. I will try to keep it updated along the way. My current development platform is a Netwinder 275. I was told by a few peoples that these units are very hard to get so I may change to a more available one before I'm finished.

To compile the kernel, I'm using a patched version arm-elf/gcc295 port. The patch is needed to make gcc creates valid shared objects and is for the gcc/config/arm/elf.h file.

If you have any further questions, you can reach me at or on the Free/ARM mailing list.


5 March 2002(tarball)
Major cleanup of the early initialization (mostly mmu related). This was taken from the NetBSD acorn32 machdep initialization. The pmap module is now out of sync but I beleive that it will be easier to fix with this new initialization scheme.

6 February 2002(tarball)
Bring up the code in sync with current. I must have missed a something during the update as the kernel is now dying trying to map an address that is way beyond the end of the kva. pmap_growkernel should take care of extending it but as it's not coded yet... Well, at least it compiles :)

4 November 2001(tarball)
I'm still wondering if I was on crack when I first did the initial page table creation. It's a wonder it worked at all. This should be a little better even if there are still some parts I'm not happy with. With this the kernel is able to go all the way to start_init where it dies trying to write some bytes in init's user space with 'subyte'.

23 October 2001(tarball)
First implementation of cpu_switch. With this, the kernel is now calling init_main where it dies. There is a problem in the pmap module, I didn't allocate contiguous memory for the page dir (4 pages). This still remains to be fixed.

24 September 2001(tarball)
Flesh out cpu_fork and fix proc0kstack allocation. Add a file that is required to compile and that I had forgotten to include in the previous shapshots.

15 September 2001(tarball)
Add support for post-KSE kernel.

13 September 2001(tarball)
This snapshot includes the code to probe the pci bus on the footbridge. It's quite embryonic at the moment and I'm not sure I really like the way I choose to implement this. This is against a pre-KSE tree.

4 September 2001
I'm now able to probe the pci bus on the footbridge. The code is still quite a mess so I'll clean it up a bit before posting it.

13 August 2001(tarball)
First snapshot. This snapshots gets to the point where it panics trying to initialize the network subsystem. There is no support for the footbridge yet, though I'm currently working on that.

Last Updated: 4 November 2001