[PATCH 0/4] libmm: support for memory management hardware
Gedare Bloom
gedare at rtems.org
Thu Oct 11 19:10:19 UTC 2012
This patch series adds support for handling memory management
hardware such as MMUs/MPUs. This work is the result of 3 GSOC
efforts with contributions from Aanjhan Ranganathan, Quanming Shi,
and Hesham Al-Matary as student coders, and Thomas Doerfler,
Peter Dufault, and Gedare Bloom as primary mentors. These specific
patches are my (Gedare) revisions to the last pull request from
Hesham's GSOC2012 project. My revisions were mainly stylistic.
These patches add the high-level interface as a new library in cpukit
called libmm, with CPU-specific support in libcpu, and BSP-specific
support in libbsp. We modelled this multi-layer software architecture
after the cache manager, and intend to allow maximum sharing of BSP
code for handling memory management hardware.
The patches add:
1) cpukit API and libcpu glue code
2) test cases
3) powerpc/psim support
4) arm/gumstix support
Currently supported BSPs are:
* powerpc/psim
* arm/gumstix
I tested the patch series with psim, but not gumstix (or other BSPs).
Additional code review and testing is required and appreciated.
Hesham AL-Matary (4):
libmm: new library for memory management hardware
testsuites: add test cases for libmm
powerpc: add support for libmm for powerpc with psim bsp
arm: add support for libmm for arm with gumstix bsp
c/src/lib/libbsp/powerpc/psim/startup/bspstart.c | 8 +-
c/src/lib/libbsp/powerpc/psim/startup/device-tree | 2 +-
c/src/lib/libcpu/Makefile.am | 1 +
c/src/lib/libcpu/arm/Makefile.am | 10 +-
c/src/lib/libcpu/arm/preinstall.am | 8 +
c/src/lib/libcpu/arm/shared/arm920/mmu_support.c | 365 ++++++++++++++++++++
c/src/lib/libcpu/arm/shared/arm920/mmu_support.h | 95 +++++
c/src/lib/libcpu/powerpc/Makefile.am | 9 +-
c/src/lib/libcpu/powerpc/mpc6xx/mmu/mmu_support.c | 287 +++++++++++++++
c/src/lib/libcpu/powerpc/mpc6xx/mmu/mmu_support.h | 98 ++++++
c/src/lib/libcpu/powerpc/mpc6xx/mmu/pagetable_.c | 189 ++++++++++
c/src/lib/libcpu/powerpc/preinstall.am | 8 +
c/src/lib/libcpu/shared/include/memorymanagement.h | 51 +++
.../libcpu/shared/src/memorymanagement_manager.c | 72 ++++
c/src/lib/libcpu/shared/src/no_memorymanagement.c | 51 +++
cpukit/Makefile.am | 4 +
cpukit/configure.ac | 1 +
cpukit/libmm/Makefile.am | 7 +
cpukit/libmm/libmm.c | 200 +++++++++++
cpukit/libmm/libmm.h | 137 ++++++++
cpukit/preinstall.am | 4 +
cpukit/sapi/include/confdefs.h | 10 +
cpukit/wrapup/Makefile.am | 1 +
testsuites/libtests/Makefile.am | 1 +
testsuites/libtests/configure.ac | 2 +
testsuites/libtests/mmtest1/Makefile.am | 17 +
testsuites/libtests/mmtest1/init.c | 215 ++++++++++++
testsuites/libtests/mmtest1/mmtests.scn | 30 ++
testsuites/libtests/mmtest1/system.h | 39 ++
testsuites/libtests/mmtest2/Makefile.am | 17 +
testsuites/libtests/mmtest2/init.c | 148 ++++++++
testsuites/libtests/mmtest2/mmtest2.scn | 24 ++
testsuites/libtests/mmtest2/system.h | 38 ++
33 files changed, 2141 insertions(+), 8 deletions(-)
create mode 100644 c/src/lib/libcpu/arm/shared/arm920/mmu_support.c
create mode 100644 c/src/lib/libcpu/arm/shared/arm920/mmu_support.h
create mode 100644 c/src/lib/libcpu/powerpc/mpc6xx/mmu/mmu_support.c
create mode 100644 c/src/lib/libcpu/powerpc/mpc6xx/mmu/mmu_support.h
create mode 100644 c/src/lib/libcpu/powerpc/mpc6xx/mmu/pagetable_.c
create mode 100644 c/src/lib/libcpu/shared/include/memorymanagement.h
create mode 100644 c/src/lib/libcpu/shared/src/memorymanagement_manager.c
create mode 100644 c/src/lib/libcpu/shared/src/no_memorymanagement.c
create mode 100644 cpukit/libmm/Makefile.am
create mode 100644 cpukit/libmm/libmm.c
create mode 100644 cpukit/libmm/libmm.h
create mode 100644 testsuites/libtests/mmtest1/Makefile.am
create mode 100644 testsuites/libtests/mmtest1/init.c
create mode 100644 testsuites/libtests/mmtest1/mmtests.scn
create mode 100644 testsuites/libtests/mmtest1/system.h
create mode 100644 testsuites/libtests/mmtest2/Makefile.am
create mode 100644 testsuites/libtests/mmtest2/init.c
create mode 100644 testsuites/libtests/mmtest2/mmtest2.scn
create mode 100644 testsuites/libtests/mmtest2/system.h
More information about the devel
mailing list