#
af63ede7 |
|
08-Mar-2013 |
François Revol <revol@free.fr> |
U-Boot: PPC: Implement Book-E MMU support in bootloader Unlike Classic PPC, Book-E CPUs do not have hardware page-table walk, rather only a limited set of software-managed TLBs. Also, translation is never disabled even when page-faulting. The Linux Book-E port pins part of the RAM in one or more TLBs, and allocates kernel memory from it for the kernel itself and exception vectors, as well as page tables. cf. http://kernel.org/doc/ols/2003/ols2003-pages-340-350.pdf We take a similar approach, but instead of using a tree-like page directory we reserve a large part of this mapped range for an hashed page table similar to the Classic one, to later allow factoring code out. The kernel and boot modules will also be allocated there, and the rest should be used as SLAB areas. Note doing so will not allow implementing proper permissions for the areas allocated there since they are all handled by a single TLB. Also note Book-E does not standardize the MMU implementation itself. For now only AMCC440 type MMU is supported. This will need to be cleaned up later on.
|
#
af63ede7a1fd24b4713800cdc7aabb7ae3e09a55 |
|
08-Mar-2013 |
François Revol <revol@free.fr> |
U-Boot: PPC: Implement Book-E MMU support in bootloader Unlike Classic PPC, Book-E CPUs do not have hardware page-table walk, rather only a limited set of software-managed TLBs. Also, translation is never disabled even when page-faulting. The Linux Book-E port pins part of the RAM in one or more TLBs, and allocates kernel memory from it for the kernel itself and exception vectors, as well as page tables. cf. http://kernel.org/doc/ols/2003/ols2003-pages-340-350.pdf We take a similar approach, but instead of using a tree-like page directory we reserve a large part of this mapped range for an hashed page table similar to the Classic one, to later allow factoring code out. The kernel and boot modules will also be allocated there, and the rest should be used as SLAB areas. Note doing so will not allow implementing proper permissions for the areas allocated there since they are all handled by a single TLB. Also note Book-E does not standardize the MMU implementation itself. For now only AMCC440 type MMU is supported. This will need to be cleaned up later on.
|