Grand Unified Kernel

From LinuxMIPS
Revision as of 22:02, 9 August 2016 by Ralf (talk | contribs) (Tasks: Use colored background for readability. colored letters on the usual background color can be virtually unreadable.)
Jump to: navigation, search

Aim

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.

Tasks

Essential tasks
Convert SEAD3 to DT Submitted (Paul) UARTs
Parallel Flash
LEDs
LCD Display
USB
Ethernet
Interrupt Controllers
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
Parallel Flash
RTC
Interrupt Controllers
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)