From 61e41b5fed760f304c14354a1475455ceebea58b Mon Sep 17 00:00:00 2001 From: Bahadir Balban Date: Tue, 20 Oct 2009 21:16:04 +0300 Subject: [PATCH] Removed memory access permissions from configuration for simplicity Access permission bits are required eventually but currently are not a critical concern and yet they complicate configuration. For sake of simplicity they are removed to be added later on when absolutely needed. --- config/cml/container_ruleset.template | 346 +++--------------------- scripts/kernel/generate_kernel_cinfo.py | 13 +- 2 files changed, 48 insertions(+), 311 deletions(-) diff --git a/config/cml/container_ruleset.template b/config/cml/container_ruleset.template index b0fc567..f8cbaed 100644 --- a/config/cml/container_ruleset.template +++ b/config/cml/container_ruleset.template @@ -14,277 +14,6 @@ CONT%(cn)d_PHYS2_END 'Container %(cn)d Physical Region 2 End Address' CONT%(cn)d_PHYS3_START 'Container %(cn)d Physical Region 3 Start Address' CONT%(cn)d_PHYS3_END 'Container %(cn)d Physical Region 3 End Address' -cont%(cn)d_phys0_caps 'Container %(cn)d Physical Region 0 Memory Capabilities' -cont%(cn)d_phys1_caps 'Container %(cn)d Physical Region 1 Memory Capabilities' -cont%(cn)d_phys2_caps 'Container %(cn)d Physical Region 2 Memory Capabilities' -cont%(cn)d_phys3_caps 'Container %(cn)d Physical Region 3 Memory Capabilities' - -cont%(cn)d_virt0_caps 'Container %(cn)d Virtual Region 0 Memory Capabilities' -cont%(cn)d_virt1_caps 'Container %(cn)d Virtual Region 1 Memory Capabilities' -cont%(cn)d_virt2_caps 'Container %(cn)d Virtual Region 2 Memory Capabilities' -cont%(cn)d_virt3_caps 'Container %(cn)d Virtual Region 3 Memory Capabilities' -cont%(cn)d_virt4_caps 'Container %(cn)d Virtual Region 4 Memory Capabilities' -cont%(cn)d_virt5_caps 'Container %(cn)d Virtual Region 5 Memory Capabilities' - -CONT%(cn)d_PHYS0_CAP_MAP_READ 'Read Permission' -CONT%(cn)d_PHYS0_CAP_MAP_WRITE 'Write Permission' -CONT%(cn)d_PHYS0_CAP_MAP_EXEC 'Exec Permission' -CONT%(cn)d_PHYS0_CAP_MAP_UNMAP 'Unmap Permission' - -CONT%(cn)d_PHYS1_CAP_MAP_READ 'Read Permission' -CONT%(cn)d_PHYS1_CAP_MAP_WRITE 'Write Permission' -CONT%(cn)d_PHYS1_CAP_MAP_EXEC 'Exec Permission' -CONT%(cn)d_PHYS1_CAP_MAP_UNMAP 'Unmap Permission' - -CONT%(cn)d_PHYS2_CAP_MAP_READ 'Read Permission' -CONT%(cn)d_PHYS2_CAP_MAP_WRITE 'Write Permission' -CONT%(cn)d_PHYS2_CAP_MAP_EXEC 'Exec Permission' -CONT%(cn)d_PHYS2_CAP_MAP_UNMAP 'Unmap Permission' - -CONT%(cn)d_PHYS3_CAP_MAP_READ 'Read Permission' -CONT%(cn)d_PHYS3_CAP_MAP_WRITE 'Write Permission' -CONT%(cn)d_PHYS3_CAP_MAP_EXEC 'Exec Permission' -CONT%(cn)d_PHYS3_CAP_MAP_UNMAP 'Unmap Permission' - -CONT%(cn)d_VIRT0_CAP_MAP_UTCB 'Mappable as UTCB permission' -CONT%(cn)d_VIRT0_CAP_MAP_READ 'Read Permission' -CONT%(cn)d_VIRT0_CAP_MAP_WRITE 'Write Permission' -CONT%(cn)d_VIRT0_CAP_MAP_EXEC 'Exec Permission' -CONT%(cn)d_VIRT0_CAP_MAP_UNMAP 'Unmap Permission' - -CONT%(cn)d_VIRT1_CAP_MAP_UTCB 'Mappable as UTCB permission' -CONT%(cn)d_VIRT1_CAP_MAP_READ 'Read Permission' -CONT%(cn)d_VIRT1_CAP_MAP_WRITE 'Write Permission' -CONT%(cn)d_VIRT1_CAP_MAP_EXEC 'Exec permission' -CONT%(cn)d_VIRT1_CAP_MAP_UNMAP 'Unmap permission' - -CONT%(cn)d_VIRT2_CAP_MAP_UTCB 'Mappable as UTCB permission' -CONT%(cn)d_VIRT2_CAP_MAP_READ 'Read Permission' -CONT%(cn)d_VIRT2_CAP_MAP_WRITE 'Write Permission' -CONT%(cn)d_VIRT2_CAP_MAP_EXEC 'Exec Permission' -CONT%(cn)d_VIRT2_CAP_MAP_UNMAP 'Unmap Permission' - -CONT%(cn)d_VIRT3_CAP_MAP_UTCB 'Mappable as UTCB permission' -CONT%(cn)d_VIRT3_CAP_MAP_READ 'Read Permission' -CONT%(cn)d_VIRT3_CAP_MAP_WRITE 'Write Permission' -CONT%(cn)d_VIRT3_CAP_MAP_EXEC 'Exec Permission' -CONT%(cn)d_VIRT3_CAP_MAP_UNMAP 'Unmap Permission' - -CONT%(cn)d_VIRT4_CAP_MAP_UTCB 'Mappable as UTCB permission' -CONT%(cn)d_VIRT4_CAP_MAP_READ 'Read Permission' -CONT%(cn)d_VIRT4_CAP_MAP_WRITE 'Write Permission' -CONT%(cn)d_VIRT4_CAP_MAP_EXEC 'Exec Permission' -CONT%(cn)d_VIRT4_CAP_MAP_UNMAP 'Unmap Permission' - -CONT%(cn)d_VIRT5_CAP_MAP_UTCB 'Mappable as UTCB permission' -CONT%(cn)d_VIRT5_CAP_MAP_READ 'Read Permission' -CONT%(cn)d_VIRT5_CAP_MAP_WRITE 'Write Permission' -CONT%(cn)d_VIRT5_CAP_MAP_EXEC 'Exec Permission' -CONT%(cn)d_VIRT5_CAP_MAP_UNMAP 'Unmap Permission' - -# -# These are real 0, 1 values derived from corresponding #define #undef -# boolean pairs. Having real 0 and 1 values is more useful since we can -# directly set/unset capability words in bitwise. -# -derive CONT%(cn)d_PHYS0_CAP_MAP_READ_ from (CONT%(cn)d_PHYS0_CAP_MAP_READ == y) ? 1 : 0 -derive CONT%(cn)d_PHYS0_CAP_MAP_WRITE_ from (CONT%(cn)d_PHYS0_CAP_MAP_WRITE == y) ? 1 : 0 -derive CONT%(cn)d_PHYS0_CAP_MAP_EXEC_ from (CONT%(cn)d_PHYS0_CAP_MAP_EXEC == y) ? 1 : 0 -derive CONT%(cn)d_PHYS0_CAP_MAP_UNMAP_ from (CONT%(cn)d_PHYS0_CAP_MAP_UNMAP == y) ? 1 : 0 - -derive CONT%(cn)d_PHYS1_CAP_MAP_READ_ from (CONT%(cn)d_PHYS1_CAP_MAP_READ == y) ? 1 : 0 -derive CONT%(cn)d_PHYS1_CAP_MAP_WRITE_ from (CONT%(cn)d_PHYS1_CAP_MAP_WRITE == y) ? 1 : 0 -derive CONT%(cn)d_PHYS1_CAP_MAP_EXEC_ from (CONT%(cn)d_PHYS1_CAP_MAP_EXEC == y) ? 1 : 0 -derive CONT%(cn)d_PHYS1_CAP_MAP_UNMAP_ from (CONT%(cn)d_PHYS1_CAP_MAP_UNMAP == y) ? 1 : 0 - -derive CONT%(cn)d_PHYS2_CAP_MAP_READ_ from (CONT%(cn)d_PHYS2_CAP_MAP_READ == y) ? 1 : 0 -derive CONT%(cn)d_PHYS2_CAP_MAP_WRITE_ from (CONT%(cn)d_PHYS2_CAP_MAP_WRITE == y) ? 1 : 0 -derive CONT%(cn)d_PHYS2_CAP_MAP_EXEC_ from (CONT%(cn)d_PHYS2_CAP_MAP_EXEC == y) ? 1 : 0 -derive CONT%(cn)d_PHYS2_CAP_MAP_UNMAP_ from (CONT%(cn)d_PHYS2_CAP_MAP_UNMAP == y) ? 1 : 0 - -derive CONT%(cn)d_PHYS3_CAP_MAP_READ_ from (CONT%(cn)d_PHYS3_CAP_MAP_READ == y) ? 1 : 0 -derive CONT%(cn)d_PHYS3_CAP_MAP_WRITE_ from (CONT%(cn)d_PHYS3_CAP_MAP_WRITE == y) ? 1 : 0 -derive CONT%(cn)d_PHYS3_CAP_MAP_EXEC_ from (CONT%(cn)d_PHYS3_CAP_MAP_EXEC == y) ? 1 : 0 -derive CONT%(cn)d_PHYS3_CAP_MAP_UNMAP_ from (CONT%(cn)d_PHYS3_CAP_MAP_UNMAP == y) ? 1 : 0 - -derive CONT%(cn)d_VIRT0_CAP_MAP_UTCB_ from (CONT%(cn)d_VIRT0_CAP_MAP_UTCB == y) ? 1 : 0 -derive CONT%(cn)d_VIRT0_CAP_MAP_READ_ from (CONT%(cn)d_VIRT0_CAP_MAP_READ == y) ? 1 : 0 -derive CONT%(cn)d_VIRT0_CAP_MAP_WRITE_ from (CONT%(cn)d_VIRT0_CAP_MAP_WRITE == y) ? 1 : 0 -derive CONT%(cn)d_VIRT0_CAP_MAP_EXEC_ from (CONT%(cn)d_VIRT0_CAP_MAP_EXEC == y) ? 1 : 0 -derive CONT%(cn)d_VIRT0_CAP_MAP_UNMAP_ from (CONT%(cn)d_VIRT0_CAP_MAP_UNMAP == y) ? 1 : 0 - -derive CONT%(cn)d_VIRT1_CAP_MAP_UTCB_ from (CONT%(cn)d_VIRT1_CAP_MAP_UTCB == y) ? 1 : 0 -derive CONT%(cn)d_VIRT1_CAP_MAP_READ_ from (CONT%(cn)d_VIRT1_CAP_MAP_READ == y) ? 1 : 0 -derive CONT%(cn)d_VIRT1_CAP_MAP_WRITE_ from (CONT%(cn)d_VIRT1_CAP_MAP_WRITE == y) ? 1 : 0 -derive CONT%(cn)d_VIRT1_CAP_MAP_EXEC_ from (CONT%(cn)d_VIRT1_CAP_MAP_EXEC == y) ? 1 : 0 -derive CONT%(cn)d_VIRT1_CAP_MAP_UNMAP_ from (CONT%(cn)d_VIRT1_CAP_MAP_UNMAP == y) ? 1 : 0 - -derive CONT%(cn)d_VIRT2_CAP_MAP_UTCB_ from (CONT%(cn)d_VIRT2_CAP_MAP_UTCB == y) ? 1 : 0 -derive CONT%(cn)d_VIRT2_CAP_MAP_READ_ from (CONT%(cn)d_VIRT2_CAP_MAP_READ == y) ? 1 : 0 -derive CONT%(cn)d_VIRT2_CAP_MAP_WRITE_ from (CONT%(cn)d_VIRT2_CAP_MAP_WRITE == y) ? 1 : 0 -derive CONT%(cn)d_VIRT2_CAP_MAP_EXEC_ from (CONT%(cn)d_VIRT2_CAP_MAP_EXEC == y) ? 1 : 0 -derive CONT%(cn)d_VIRT2_CAP_MAP_UNMAP_ from (CONT%(cn)d_VIRT2_CAP_MAP_UNMAP == y) ? 1 : 0 - -derive CONT%(cn)d_VIRT3_CAP_MAP_UTCB_ from (CONT%(cn)d_VIRT3_CAP_MAP_UTCB == y) ? 1 : 0 -derive CONT%(cn)d_VIRT3_CAP_MAP_READ_ from (CONT%(cn)d_VIRT3_CAP_MAP_READ == y) ? 1 : 0 -derive CONT%(cn)d_VIRT3_CAP_MAP_WRITE_ from (CONT%(cn)d_VIRT3_CAP_MAP_WRITE == y) ? 1 : 0 -derive CONT%(cn)d_VIRT3_CAP_MAP_EXEC_ from (CONT%(cn)d_VIRT3_CAP_MAP_EXEC == y) ? 1 : 0 -derive CONT%(cn)d_VIRT3_CAP_MAP_UNMAP_ from (CONT%(cn)d_VIRT3_CAP_MAP_UNMAP == y) ? 1 : 0 - -derive CONT%(cn)d_VIRT4_CAP_MAP_UTCB_ from (CONT%(cn)d_VIRT4_CAP_MAP_UTCB == y) ? 1 : 0 -derive CONT%(cn)d_VIRT4_CAP_MAP_READ_ from (CONT%(cn)d_VIRT4_CAP_MAP_READ == y) ? 1 : 0 -derive CONT%(cn)d_VIRT4_CAP_MAP_WRITE_ from (CONT%(cn)d_VIRT4_CAP_MAP_WRITE == y) ? 1 : 0 -derive CONT%(cn)d_VIRT4_CAP_MAP_EXEC_ from (CONT%(cn)d_VIRT4_CAP_MAP_EXEC == y) ? 1 : 0 -derive CONT%(cn)d_VIRT4_CAP_MAP_UNMAP_ from (CONT%(cn)d_VIRT4_CAP_MAP_UNMAP == y) ? 1 : 0 - -derive CONT%(cn)d_VIRT5_CAP_MAP_UTCB_ from (CONT%(cn)d_VIRT5_CAP_MAP_UTCB == y) ? 1 : 0 -derive CONT%(cn)d_VIRT5_CAP_MAP_READ_ from (CONT%(cn)d_VIRT5_CAP_MAP_READ == y) ? 1 : 0 -derive CONT%(cn)d_VIRT5_CAP_MAP_WRITE_ from (CONT%(cn)d_VIRT5_CAP_MAP_WRITE == y) ? 1 : 0 -derive CONT%(cn)d_VIRT5_CAP_MAP_EXEC_ from (CONT%(cn)d_VIRT5_CAP_MAP_EXEC == y) ? 1 : 0 -derive CONT%(cn)d_VIRT5_CAP_MAP_UNMAP_ from (CONT%(cn)d_VIRT5_CAP_MAP_UNMAP == y) ? 1 : 0 - -default CONT%(cn)d_PHYS0_CAP_MAP_READ from y -default CONT%(cn)d_PHYS0_CAP_MAP_WRITE from y -default CONT%(cn)d_PHYS0_CAP_MAP_EXEC from y -default CONT%(cn)d_PHYS0_CAP_MAP_UNMAP from y - -default CONT%(cn)d_PHYS1_CAP_MAP_READ from y -default CONT%(cn)d_PHYS1_CAP_MAP_WRITE from y -default CONT%(cn)d_PHYS1_CAP_MAP_EXEC from y -default CONT%(cn)d_PHYS1_CAP_MAP_UNMAP from y - -default CONT%(cn)d_PHYS2_CAP_MAP_READ from y -default CONT%(cn)d_PHYS2_CAP_MAP_WRITE from y -default CONT%(cn)d_PHYS2_CAP_MAP_EXEC from y -default CONT%(cn)d_PHYS2_CAP_MAP_UNMAP from y - -default CONT%(cn)d_PHYS3_CAP_MAP_READ from y -default CONT%(cn)d_PHYS3_CAP_MAP_WRITE from y -default CONT%(cn)d_PHYS3_CAP_MAP_EXEC from y -default CONT%(cn)d_PHYS3_CAP_MAP_UNMAP from y - -default CONT%(cn)d_VIRT0_CAP_MAP_UTCB from n -default CONT%(cn)d_VIRT0_CAP_MAP_READ from y -default CONT%(cn)d_VIRT0_CAP_MAP_WRITE from y -default CONT%(cn)d_VIRT0_CAP_MAP_EXEC from y -default CONT%(cn)d_VIRT0_CAP_MAP_UNMAP from y - -default CONT%(cn)d_VIRT1_CAP_MAP_UTCB from n -default CONT%(cn)d_VIRT1_CAP_MAP_READ from y -default CONT%(cn)d_VIRT1_CAP_MAP_WRITE from y -default CONT%(cn)d_VIRT1_CAP_MAP_EXEC from y -default CONT%(cn)d_VIRT1_CAP_MAP_UNMAP from y - -default CONT%(cn)d_VIRT2_CAP_MAP_UTCB from n -default CONT%(cn)d_VIRT2_CAP_MAP_READ from y -default CONT%(cn)d_VIRT2_CAP_MAP_WRITE from y -default CONT%(cn)d_VIRT2_CAP_MAP_EXEC from y -default CONT%(cn)d_VIRT2_CAP_MAP_UNMAP from y - -default CONT%(cn)d_VIRT3_CAP_MAP_UTCB from n -default CONT%(cn)d_VIRT3_CAP_MAP_READ from y -default CONT%(cn)d_VIRT3_CAP_MAP_WRITE from y -default CONT%(cn)d_VIRT3_CAP_MAP_EXEC from y -default CONT%(cn)d_VIRT3_CAP_MAP_UNMAP from y - -default CONT%(cn)d_VIRT4_CAP_MAP_UTCB from n -default CONT%(cn)d_VIRT4_CAP_MAP_READ from y -default CONT%(cn)d_VIRT4_CAP_MAP_WRITE from y -default CONT%(cn)d_VIRT4_CAP_MAP_EXEC from y -default CONT%(cn)d_VIRT4_CAP_MAP_UNMAP from y - -default CONT%(cn)d_VIRT5_CAP_MAP_UTCB from n -default CONT%(cn)d_VIRT5_CAP_MAP_READ from y -default CONT%(cn)d_VIRT5_CAP_MAP_WRITE from y -default CONT%(cn)d_VIRT5_CAP_MAP_EXEC from y -default CONT%(cn)d_VIRT5_CAP_MAP_UNMAP from y - -menu cont%(cn)d_phys0_caps - CONT%(cn)d_PHYS0_START@ - CONT%(cn)d_PHYS0_END@ - CONT%(cn)d_PHYS0_CAP_MAP_READ - CONT%(cn)d_PHYS0_CAP_MAP_WRITE - CONT%(cn)d_PHYS0_CAP_MAP_EXEC - CONT%(cn)d_PHYS0_CAP_MAP_UNMAP - -menu cont%(cn)d_phys1_caps - CONT%(cn)d_PHYS1_START@ - CONT%(cn)d_PHYS1_END@ - CONT%(cn)d_PHYS1_CAP_MAP_READ - CONT%(cn)d_PHYS1_CAP_MAP_WRITE - CONT%(cn)d_PHYS1_CAP_MAP_EXEC - CONT%(cn)d_PHYS1_CAP_MAP_UNMAP - -menu cont%(cn)d_phys2_caps - CONT%(cn)d_PHYS2_START@ - CONT%(cn)d_PHYS2_END@ - CONT%(cn)d_PHYS2_CAP_MAP_READ - CONT%(cn)d_PHYS2_CAP_MAP_WRITE - CONT%(cn)d_PHYS2_CAP_MAP_EXEC - CONT%(cn)d_PHYS2_CAP_MAP_UNMAP - -menu cont%(cn)d_phys3_caps - CONT%(cn)d_PHYS3_START@ - CONT%(cn)d_PHYS3_END@ - CONT%(cn)d_PHYS3_CAP_MAP_READ - CONT%(cn)d_PHYS3_CAP_MAP_WRITE - CONT%(cn)d_PHYS3_CAP_MAP_EXEC - CONT%(cn)d_PHYS3_CAP_MAP_UNMAP - -menu cont%(cn)d_virt0_caps - CONT%(cn)d_VIRT0_START@ - CONT%(cn)d_VIRT0_END@ - CONT%(cn)d_VIRT0_CAP_MAP_UTCB - CONT%(cn)d_VIRT0_CAP_MAP_READ - CONT%(cn)d_VIRT0_CAP_MAP_WRITE - CONT%(cn)d_VIRT0_CAP_MAP_EXEC - CONT%(cn)d_VIRT0_CAP_MAP_UNMAP - -menu cont%(cn)d_virt1_caps - CONT%(cn)d_VIRT1_START@ - CONT%(cn)d_VIRT1_END@ - CONT%(cn)d_VIRT1_CAP_MAP_UTCB - CONT%(cn)d_VIRT1_CAP_MAP_READ - CONT%(cn)d_VIRT1_CAP_MAP_WRITE - CONT%(cn)d_VIRT1_CAP_MAP_EXEC - CONT%(cn)d_VIRT1_CAP_MAP_UNMAP - -menu cont%(cn)d_virt2_caps - CONT%(cn)d_VIRT2_START@ - CONT%(cn)d_VIRT2_END@ - CONT%(cn)d_VIRT2_CAP_MAP_UTCB - CONT%(cn)d_VIRT2_CAP_MAP_READ - CONT%(cn)d_VIRT2_CAP_MAP_WRITE - CONT%(cn)d_VIRT2_CAP_MAP_EXEC - CONT%(cn)d_VIRT2_CAP_MAP_UNMAP - -menu cont%(cn)d_virt3_caps - CONT%(cn)d_VIRT3_START@ - CONT%(cn)d_VIRT3_END@ - CONT%(cn)d_VIRT3_CAP_MAP_UTCB - CONT%(cn)d_VIRT3_CAP_MAP_READ - CONT%(cn)d_VIRT3_CAP_MAP_WRITE - CONT%(cn)d_VIRT3_CAP_MAP_EXEC - CONT%(cn)d_VIRT3_CAP_MAP_UNMAP - -menu cont%(cn)d_virt4_caps - CONT%(cn)d_VIRT4_START@ - CONT%(cn)d_VIRT4_END@ - CONT%(cn)d_VIRT4_CAP_MAP_UTCB - CONT%(cn)d_VIRT4_CAP_MAP_READ - CONT%(cn)d_VIRT4_CAP_MAP_WRITE - CONT%(cn)d_VIRT4_CAP_MAP_EXEC - CONT%(cn)d_VIRT4_CAP_MAP_UNMAP - -menu cont%(cn)d_virt5_caps - CONT%(cn)d_VIRT5_START@ - CONT%(cn)d_VIRT5_END@ - CONT%(cn)d_VIRT5_CAP_MAP_UTCB - CONT%(cn)d_VIRT5_CAP_MAP_READ - CONT%(cn)d_VIRT5_CAP_MAP_WRITE - CONT%(cn)d_VIRT5_CAP_MAP_EXEC - CONT%(cn)d_VIRT5_CAP_MAP_UNMAP - symbols CONT%(cn)d_VIRTMEM_REGIONS 'Container %(cn)d Number of Virtual Regions' @@ -333,32 +62,35 @@ default CONT%(cn)d_VIRTMEM_REGIONS from 1 default CONT%(cn)d_PHYSMEM_REGIONS from 1 # Define limits on virtual and physical memory regions of a _single_ container 0. Too much code! -when CONT%(cn)d_VIRTMEM_REGIONS < 2 suppress cont%(cn)d_virt1_caps -when CONT%(cn)d_VIRTMEM_REGIONS < 2 suppress cont%(cn)d_virt2_caps -when CONT%(cn)d_VIRTMEM_REGIONS < 2 suppress cont%(cn)d_virt3_caps -when CONT%(cn)d_VIRTMEM_REGIONS < 2 suppress cont%(cn)d_virt4_caps -when CONT%(cn)d_VIRTMEM_REGIONS < 2 suppress cont%(cn)d_virt5_caps +when CONT%(cn)d_VIRTMEM_REGIONS < 2 suppress CONT%(cn)d_VIRT1_START CONT%(cn)d_VIRT1_END +when CONT%(cn)d_VIRTMEM_REGIONS < 2 suppress CONT%(cn)d_VIRT2_START CONT%(cn)d_VIRT2_END +when CONT%(cn)d_VIRTMEM_REGIONS < 2 suppress CONT%(cn)d_VIRT3_START CONT%(cn)d_VIRT3_END +when CONT%(cn)d_VIRTMEM_REGIONS < 2 suppress CONT%(cn)d_VIRT4_START CONT%(cn)d_VIRT4_END +when CONT%(cn)d_VIRTMEM_REGIONS < 2 suppress CONT%(cn)d_VIRT5_START CONT%(cn)d_VIRT5_END -when CONT%(cn)d_VIRTMEM_REGIONS < 3 suppress cont%(cn)d_virt2_caps -when CONT%(cn)d_VIRTMEM_REGIONS < 3 suppress cont%(cn)d_virt3_caps -when CONT%(cn)d_VIRTMEM_REGIONS < 3 suppress cont%(cn)d_virt4_caps -when CONT%(cn)d_VIRTMEM_REGIONS < 3 suppress cont%(cn)d_virt5_caps +when CONT%(cn)d_VIRTMEM_REGIONS < 3 suppress CONT%(cn)d_VIRT2_START CONT%(cn)d_VIRT2_END +when CONT%(cn)d_VIRTMEM_REGIONS < 3 suppress CONT%(cn)d_VIRT3_START CONT%(cn)d_VIRT3_END +when CONT%(cn)d_VIRTMEM_REGIONS < 3 suppress CONT%(cn)d_VIRT4_START CONT%(cn)d_VIRT4_END +when CONT%(cn)d_VIRTMEM_REGIONS < 3 suppress CONT%(cn)d_VIRT5_START CONT%(cn)d_VIRT5_END -when CONT%(cn)d_VIRTMEM_REGIONS < 4 suppress cont%(cn)d_virt3_caps -when CONT%(cn)d_VIRTMEM_REGIONS < 4 suppress cont%(cn)d_virt4_caps -when CONT%(cn)d_VIRTMEM_REGIONS < 4 suppress cont%(cn)d_virt5_caps +when CONT%(cn)d_VIRTMEM_REGIONS < 4 suppress CONT%(cn)d_VIRT3_START CONT%(cn)d_VIRT3_END +when CONT%(cn)d_VIRTMEM_REGIONS < 4 suppress CONT%(cn)d_VIRT4_START CONT%(cn)d_VIRT4_END +when CONT%(cn)d_VIRTMEM_REGIONS < 4 suppress CONT%(cn)d_VIRT5_START CONT%(cn)d_VIRT5_END -when CONT%(cn)d_VIRTMEM_REGIONS < 5 suppress cont%(cn)d_virt4_caps -when CONT%(cn)d_VIRTMEM_REGIONS < 5 suppress cont%(cn)d_virt5_caps +when CONT%(cn)d_VIRTMEM_REGIONS < 5 suppress CONT%(cn)d_VIRT4_START CONT%(cn)d_VIRT4_END +when CONT%(cn)d_VIRTMEM_REGIONS < 5 suppress CONT%(cn)d_VIRT5_START CONT%(cn)d_VIRT5_END -when CONT%(cn)d_VIRTMEM_REGIONS < 6 suppress cont%(cn)d_virt5_caps +when CONT%(cn)d_VIRTMEM_REGIONS < 6 suppress CONT%(cn)d_VIRT5_START CONT%(cn)d_VIRT5_END -when CONT%(cn)d_PHYSMEM_REGIONS < 2 suppress cont%(cn)d_phys1_caps -when CONT%(cn)d_PHYSMEM_REGIONS < 2 suppress cont%(cn)d_phys2_caps -when CONT%(cn)d_PHYSMEM_REGIONS < 2 suppress cont%(cn)d_phys3_caps -when CONT%(cn)d_PHYSMEM_REGIONS < 3 suppress cont%(cn)d_phys2_caps -when CONT%(cn)d_PHYSMEM_REGIONS < 3 suppress cont%(cn)d_phys3_caps -when CONT%(cn)d_PHYSMEM_REGIONS < 4 suppress cont%(cn)d_phys3_caps + +when CONT%(cn)d_PHYSMEM_REGIONS < 2 suppress CONT%(cn)d_PHYS1_START CONT%(cn)d_PHYS1_END +when CONT%(cn)d_PHYSMEM_REGIONS < 2 suppress CONT%(cn)d_PHYS2_START CONT%(cn)d_PHYS2_END +when CONT%(cn)d_PHYSMEM_REGIONS < 2 suppress CONT%(cn)d_PHYS3_START CONT%(cn)d_PHYS3_END + +when CONT%(cn)d_PHYSMEM_REGIONS < 3 suppress CONT%(cn)d_PHYS2_START CONT%(cn)d_PHYS2_END +when CONT%(cn)d_PHYSMEM_REGIONS < 3 suppress CONT%(cn)d_PHYS3_START CONT%(cn)d_PHYS3_END + +when CONT%(cn)d_PHYSMEM_REGIONS < 4 suppress CONT%(cn)d_PHYS3_START CONT%(cn)d_PHYS3_END default CONT%(cn)d_PHYS0_START from 0x0 default CONT%(cn)d_PHYS0_END from 0x0 @@ -420,19 +152,29 @@ menu cont%(cn)d_linux_pager_params menu cont%(cn)d_virtmem_list CONT%(cn)d_VIRTMEM_REGIONS% - cont%(cn)d_virt0_caps - cont%(cn)d_virt1_caps - cont%(cn)d_virt2_caps - cont%(cn)d_virt3_caps - cont%(cn)d_virt4_caps - cont%(cn)d_virt5_caps + CONT%(cn)d_VIRT0_START@ + CONT%(cn)d_VIRT0_END@ + CONT%(cn)d_VIRT1_START@ + CONT%(cn)d_VIRT1_END@ + CONT%(cn)d_VIRT2_START@ + CONT%(cn)d_VIRT2_END@ + CONT%(cn)d_VIRT3_START@ + CONT%(cn)d_VIRT3_END@ + CONT%(cn)d_VIRT4_START@ + CONT%(cn)d_VIRT4_END@ + CONT%(cn)d_VIRT5_START@ + CONT%(cn)d_VIRT5_END@ menu cont%(cn)d_physmem_list CONT%(cn)d_PHYSMEM_REGIONS% - cont%(cn)d_phys0_caps - cont%(cn)d_phys1_caps - cont%(cn)d_phys2_caps - cont%(cn)d_phys3_caps + CONT%(cn)d_PHYS0_START@ + CONT%(cn)d_PHYS0_END@ + CONT%(cn)d_PHYS1_START@ + CONT%(cn)d_PHYS1_END@ + CONT%(cn)d_PHYS2_START@ + CONT%(cn)d_PHYS2_END@ + CONT%(cn)d_PHYS3_START@ + CONT%(cn)d_PHYS3_END@ menu container%(cn)d_options CONT%(cn)d_OPT_NAME$ diff --git a/scripts/kernel/generate_kernel_cinfo.py b/scripts/kernel/generate_kernel_cinfo.py index 9d852b3..1a2e41a 100755 --- a/scripts/kernel/generate_kernel_cinfo.py +++ b/scripts/kernel/generate_kernel_cinfo.py @@ -76,11 +76,8 @@ cap_virtmem = \ ''' \t\t\t[%(capidx)d] = { \t\t\t\t.type = CAP_TYPE_MAP | CAP_RTYPE_VIRTMEM, -\t\t\t\t.access = (CONFIG_CONT%(cn)d_VIRT%(vn)d_CAP_MAP_READ_ << CAP_MAP_READ_BIT) | -\t\t\t\t (CONFIG_CONT%(cn)d_VIRT%(vn)d_CAP_MAP_WRITE_ << CAP_MAP_WRITE_BIT) | -\t\t\t\t (CONFIG_CONT%(cn)d_VIRT%(vn)d_CAP_MAP_EXEC_ << CAP_MAP_EXEC_BIT) | -\t\t\t\t (CONFIG_CONT%(cn)d_VIRT%(vn)d_CAP_MAP_UNMAP_ << CAP_MAP_UNMAP_BIT) | -\t\t\t\t (CONFIG_CONT%(cn)d_VIRT%(vn)d_CAP_MAP_UTCB_ << CAP_MAP_UTCB_BIT), +\t\t\t\t.access = CAP_MAP_READ | CAP_MAP_WRITE | CAP_MAP_EXEC +\t\t\t\t\t| CAP_MAP_CACHED | CAP_MAP_UNCACHED | CAP_MAP_UNMAP | CAP_MAP_UTCB, \t\t\t\t.start = __pfn(CONFIG_CONT%(cn)d_VIRT%(vn)d_START), \t\t\t\t.end = __pfn(CONFIG_CONT%(cn)d_VIRT%(vn)d_END), \t\t\t\t.size = __pfn(CONFIG_CONT%(cn)d_VIRT%(vn)d_END - CONFIG_CONT%(cn)d_VIRT%(vn)d_START), @@ -91,10 +88,8 @@ cap_physmem = \ ''' \t\t\t[%(capidx)d] = { \t\t\t\t.type = CAP_TYPE_MAP | CAP_RTYPE_PHYSMEM, -\t\t\t\t.access = (CONFIG_CONT%(cn)d_PHYS%(pn)d_CAP_MAP_READ_ << CAP_MAP_READ_BIT) | -\t\t\t\t (CONFIG_CONT%(cn)d_PHYS%(pn)d_CAP_MAP_WRITE_ << CAP_MAP_WRITE_BIT) | -\t\t\t\t (CONFIG_CONT%(cn)d_PHYS%(pn)d_CAP_MAP_EXEC_ << CAP_MAP_EXEC_BIT) | -\t\t\t\t (CONFIG_CONT%(cn)d_PHYS%(pn)d_CAP_MAP_UNMAP_ << CAP_MAP_UNMAP_BIT), +\t\t\t\t.access = CAP_MAP_READ | CAP_MAP_WRITE | CAP_MAP_EXEC | +\t\t\t\t\tCAP_MAP_CACHED | CAP_MAP_UNCACHED | CAP_MAP_UNMAP | CAP_MAP_UTCB, \t\t\t\t.start = __pfn(CONFIG_CONT%(cn)d_PHYS%(pn)d_START), \t\t\t\t.end = __pfn(CONFIG_CONT%(cn)d_PHYS%(pn)d_END), \t\t\t\t.size = __pfn(CONFIG_CONT%(cn)d_PHYS%(pn)d_END - CONFIG_CONT%(cn)d_PHYS%(pn)d_START),