This is an old revision of the document!
FreeBSD/mips TODO
| Item | Status | Contact |
| n32 support | Working in a branch, needs to be merged | WarnerLosh |
| n64 support | Item for n64 building only. | WarnerLosh |
| Migrate to Cavium Octeon SDK SE | Planning stages | WarnerLosh |
| 64-bit pmap fixes | Planning stages | WarnerLosh |
| super pages for MIPS | Planning stages | WarnerLosh |
| Create mips binutils port in /usr/ports | Preliminary work done, needs more testing and integration | WarnerLosh |
| Create mips gcc port in /usr/ports | Started, doesn't work yet, issues with building libgcc as part of the port | WarnerLosh |
| Enable external tools more easily | Some support for external toolchain in tree, due to clang work, more work needed to expand that work to include binutils | WarnerLosh |
| Bring up SMP on Cavium | Planning stages | WarnerLosh |
| Cleanup conflicting code bases | Lots of code has come into this port from a multiplicity of sources, leaving behind many vestiges of this work. The code needs to be consolidated around certain themes. Discussions for this have taken place, and some cleanup had been done, but more is needed. | WarnerLosh |
| Support Cavium SE coexistance | Cavium SDK SE allows partitioning of the cores so different programs/OSes can run on the different ones. FreeBSD should allow this. It needs to allocate memory using the proper APIs. | WarnerLosh |
| Move rgmx driver to Cavium SDK SE | planning stages | WarnerLosh |
| Port pmc code to more MIPS cores | mips24k is done, others in progress, still others needed | George |
| Finish au1xxx port | Initial port in tree, much work is needed. NetBSD code could be a good base | WarnerLosh |
| Cleanup CPU_xxx usage in the tree | Almost all CPUs are configured as CPU_MIPS4k, which is wrong. They should migrate to the appropriate CPU_xxx (CNMIPS64, MIPS24K, etc). Also, TARGET_OCTEON should migrate to CPU_CNMIPS64. | WarnerLosh |
| n64 kernel | builds, needs pmap support, and lots of TLC | WarnerLosh |
| QEMU with NIC support | There's only limited support for qemu with a NIC in the tree right now. This needs to be well tested so we can create 'virtual machines' running on fast x86 processors for easier development | WarnerLosh |
| Octeon USB support | planning stages | WarnerLosh |
| uboot support for executive callbacks for /boot/loader | planning stages | WarnerLosh |
| Support for packet engine (POW) on Octeon | Planning stages | WarnerLosh |
| Improved binutils in the base to compile /rescue properly | Likely needs to move binutils to 2.17 or 2.17.50.0.17 (last gplv2 of the redhat binutils fork | WarnerLosh |
| TARGET_BIG_ENDIAN must die –> Moving to mipsel, mipseb, mips64el and mips64eb | Work pending review | WarnerLosh |
| Support for the longsoon2 | wish list item | WarnerLosh |
| Mips16 support | wish list itme | WarnerLosh |
| Multilib build support | Need to hack the FreeBSD build system to allow for multilibs to be built and installed in the right place for o32, n32 and n64 | WarnerLosh |
| Add support for controlling switches attached to PHY | wish list item, generally true for all embedded work | WarnerLosh |
| Adopt the flattened device tree stuff to the MIPS platform | wish list item, work in progress on other platforms | WarnerLosh |
| Flash file system | wish list item, generally needed for embedded platforms | WarnerLosh |
| Shrink the mips kernel | Kernel is kinda beefy right now, need to shrink it down a bit | WarnerLosh |
| Push FreeBSD gcc changes for mips upstream | wish list item | WarnerLosh |
| Push FreeBSD binutils changes for mips upstream | wish list item | WarnerLosh |
| Push FreeBSD gcc changes for mips upstream | wish list item | WarnerLosh |
| PCI bus enumeration improvements | wish list item: freebsd needs to be able to allocate memory for PCI busses more generically. Also I/O space as well as bus numbering. Very important to embedded where nobody else is around to do that for us. | WarnerLosh |
| NanoBSD conifguraiton for the RouterStation or similar device | wish list item | WarnerLosh |
| FreeBSD /usr/port of Cavium's pci booting tools so we can put cavium offload boards into x86 boxes and debug that way | wish list item | WarnerLosh |
| Provide better separation between SoC, CPU and board | preliminary doodles posted, but really need someone to drive this. NetBSD has a std.foo hierarchy that seems to work well. We should look at adopting it not only for FreeBSD/mips, but all platforms. | WarnerLosh |
| AR71xx CPUs need workaround for AR5212-based cards | patch published, need to commit | WarnerLosh |
| USB stack needs better awareness for cache-line size | hacks for one SoC published, but a more general solution is needed | WarnerLosh |
| Better support for threads for CPUs with thread support | sched_ule is better about threads and locality than sched_bsd, but other parts of the system need better thread awareness and support. Efficient use of the threading units needs to improve. | WarnerLosh |
| Add support for the Octeon PCI bus | wish list item | WarnerLosh |
| Add support for Octeon as a PCI bus device | wish list item | WarnerLosh |
| Launch simple executive images from FreeBSD on Octeon | wish list item | WarnerLosh |
| Build the kernel on Linux | wish list item. Also, this one is a general item for FreeBSD | WarnerLosh |
Pick one and code.