To reduce static bloat like one structure for short descriptor and one for long descriptor format, paging code should be merged.
Previously determined via runtime the switch between short descriptor and long descriptor format has to be done via preprocessor statement, where short descriptor is used as default.
Target would be to reduce necessary size of the kernel. Currently there are static variable sets for short descriptors initial mmu setup and long descriptors initial mmu setup. With the revise only one of those two static variable sets should remain in code depending on configuration.
Things to be done
[ ] Add define for long descriptor set per platform
[ ] Merge code for long descriptor and short descriptor into one by using define
[ ] Reduce static variables within initial virtual memory init to one by using define
[ ] Move mmu code from arch/arm/v7 to arch/arm
[ ] Add support for arm v6 mmu to moved code
[ ] Check and add proper cachability / sharability to long descriptor and short descriptor modes
[ ] Check and fix slow short descriptor mode compared to long descriptor mode
Required testing
[ ] Check serial gdb stub with real hardware ( short descriptor without caches )
[ ] Check serial gdb stub with real hardware ( short descriptor with caches )
[ ] Check serial gdb stub with real hardware ( long descriptor without caches )
[ ] Check serial gdb stub with real hardware ( long descriptor with caches )
To reduce static bloat like one structure for short descriptor and one for long descriptor format, paging code should be merged.
Previously determined via runtime the switch between short descriptor and long descriptor format has to be done via preprocessor statement, where short descriptor is used as default.
Target would be to reduce necessary size of the kernel. Currently there are static variable sets for short descriptors initial mmu setup and long descriptors initial mmu setup. With the revise only one of those two static variable sets should remain in code depending on configuration.
Things to be done
long descriptor
set per platformlong descriptor
andshort descriptor
into one by using definearch/arm/v7
toarch/arm
Required testing