Grand Unified Kernel
The aim of this project is to produce a single kernel binary that can run on multiple machines. There are multiple benefits to doing this:
- Adding new platforms should become easier as no board/platform level code should be required.
- The amount of board/platform level code we need to maintain will be reduced significantly.
- The number of kernel binaries that need to be built & tested can be reduced significantly.
- Distributions will be able to include a kernel binary built for a given architecture revision that will run on any board with a CPU implementing that architecture revision.
|Convert SEAD3 to DT||Submitted (Paul)||UARTs|
|Genericise memory layout||In Progress (Paul)||Genericise PAGE_OFFSET, PHYS_OFFSET, HIGHMEM_START|
|Genericise MIPS64 xkphys/CAC_BASE CCA|
|Genericise EVA segment mapping|
|Allow EVA kernels to run on non-EVA systems|
|Allow XPA kernels to run on non-XPA systems|
|Add generic platform||In Progress (Paul)||Optional board callbacks based on DT compatible string|
|Remove board callbacks piecemeal|
|Add Boston board||In Progress (Paul)|
|Convert Malta to DT||In Progress (Paul)||UARTs|
|System controllers & PCI (gt64120, bonito & MSC)|
|Convert Malta to generic platform||TODO|
|Convert pistachio to generic platform||TODO|
|Convert xilfpga/MIPSfpga to generic platform||TODO|
|Genericise cpu_has_* macros (allow kernels to build for specific platforms or multiple platforms)||Thinking about it (Paul)|
|Convert ingenic (jz4740,jz4780) to generic platform||TODO|
|Run (conservatively) on unrecognised MIPSr6 CPUs||Thinking about it (Paul)|