diff --git a/config/cml/arm.ruleset b/config/cml/arm.ruleset index 7beefae..6b00220 100644 --- a/config/cml/arm.ruleset +++ b/config/cml/arm.ruleset @@ -53,12 +53,6 @@ choices arm_subarch_type SUBARCH_V7 default SUBARCH_V5 -choices arm_cpu_type - CPU_ARM926 - CPU_ARM1136 - CPU_ARM11MPCORE - CPU_CORTEXA8 - default CPU_ARM926 choices arm_platform_type PLATFORM_EB @@ -68,6 +62,13 @@ choices arm_platform_type PLATFORM_PBA8 default PLATFORM_PB926 +choices arm_cpu_type + CPU_ARM926 + CPU_ARM1136 + CPU_ARM11MPCORE + CPU_CORTEXA8 + default CPU_ARM926 + ############# # MENUS # ############# diff --git a/config/cml/container_ruleset.template b/config/cml/container_ruleset.template index 5ed8945..7ec22fa 100644 --- a/config/cml/container_ruleset.template +++ b/config/cml/container_ruleset.template @@ -148,8 +148,8 @@ when CONT%(cn)d_TYPE_POSIX==y suppress cont%(cn)d_linux_pager_params symbols cont%(cn)d_menu 'Container %(cn)d Parameters' -cont%(cn)d_physmem_list 'Container %(cn)d Physical Memory Regions' -cont%(cn)d_virtmem_list 'Container %(cn)d Virtual Memory Regions' +cont%(cn)d_physmem_list 'Container %(cn)d Physical Memory Regions (Memory Capabilities)' +cont%(cn)d_virtmem_list 'Container %(cn)d Virtual Memory Regions (Memory Capabilities)' container%(cn)d_type 'Container %(cn)d Type' container%(cn)d_options 'Container %(cn)d Options' @@ -201,7 +201,138 @@ menu cont%(cn)d_physmem_list CONT%(cn)d_PHYS3_START@ CONT%(cn)d_PHYS3_END@ -# Options for custom capabilities +# +# Settings for Custom Capabilities +# +choices cont%(cn)d_cap0_type + CONT%(cn)d_CAP0_IPC_TYPE + CONT%(cn)d_CAP0_TCTRL_TYPE + CONT%(cn)d_CAP0_EXREGS_TYPE + CONT%(cn)d_CAP0_CAP_TYPE + default CONT%(cn)d_CAP0_IPC_TYPE + +choices cont%(cn)d_cap1_type + CONT%(cn)d_CAP1_IPC_TYPE + CONT%(cn)d_CAP1_TCTRL_TYPE + CONT%(cn)d_CAP1_EXREGS_TYPE + CONT%(cn)d_CAP1_CAP_TYPE + default CONT%(cn)d_CAP1_IPC_TYPE + +choices cont%(cn)d_cap2_type + CONT%(cn)d_CAP2_IPC_TYPE + CONT%(cn)d_CAP2_TCTRL_TYPE + CONT%(cn)d_CAP2_EXREGS_TYPE + CONT%(cn)d_CAP2_CAP_TYPE + default CONT%(cn)d_CAP2_IPC_TYPE + +choices cont%(cn)d_cap3_type + CONT%(cn)d_CAP3_IPC_TYPE + CONT%(cn)d_CAP3_TCTRL_TYPE + CONT%(cn)d_CAP3_EXREGS_TYPE + CONT%(cn)d_CAP3_CAP_TYPE + default CONT%(cn)d_CAP3_IPC_TYPE + + +menu cont%(cn)d_capability0 + cont%(cn)d_cap0_type + CONT%(cn)d_CAP0_TARGET_CURRENT_CONT + CONT%(cn)d_CAP0_TARGET_CURRENT_PAGER_SPACE + CONT%(cn)d_CAP0_TARGET_ANOTHER_CONT + CONT%(cn)d_CAP0_TARGET_ANOTHER_PAGER + CONT%(cn)d_CAP0_TARGET% + +menu cont%(cn)d_capability1 + cont%(cn)d_cap1_type + CONT%(cn)d_CAP1_TARGET_CURRENT_CONT + CONT%(cn)d_CAP1_TARGET_CURRENT_PAGER_SPACE + CONT%(cn)d_CAP1_TARGET_ANOTHER_CONT + CONT%(cn)d_CAP1_TARGET_ANOTHER_PAGER + CONT%(cn)d_CAP1_TARGET% + +menu cont%(cn)d_capability2 + cont%(cn)d_cap2_type + CONT%(cn)d_CAP2_TARGET_CURRENT_CONT + CONT%(cn)d_CAP2_TARGET_CURRENT_PAGER_SPACE + CONT%(cn)d_CAP2_TARGET_ANOTHER_CONT + CONT%(cn)d_CAP2_TARGET_ANOTHER_PAGER + CONT%(cn)d_CAP2_TARGET% + +menu cont%(cn)d_capability3 + cont%(cn)d_cap3_type + CONT%(cn)d_CAP3_TARGET_CURRENT_CONT + CONT%(cn)d_CAP3_TARGET_CURRENT_PAGER_SPACE + CONT%(cn)d_CAP3_TARGET_ANOTHER_CONT + CONT%(cn)d_CAP3_TARGET_ANOTHER_PAGER + CONT%(cn)d_CAP3_TARGET% + +choicegroup CONT%(cn)d_CAP0_TARGET_CURRENT_CONT + CONT%(cn)d_CAP0_TARGET_ANOTHER_CONT + CONT%(cn)d_CAP0_TARGET_CURRENT_PAGER_SPACE + CONT%(cn)d_CAP0_TARGET_ANOTHER_PAGER + default CONT%(cn)d_CAP0_TARGET_CURRENT_CONT from y + +choicegroup CONT%(cn)d_CAP1_TARGET_CURRENT_CONT + CONT%(cn)d_CAP1_TARGET_ANOTHER_CONT + CONT%(cn)d_CAP1_TARGET_CURRENT_PAGER_SPACE + CONT%(cn)d_CAP1_TARGET_ANOTHER_PAGER + default CONT%(cn)d_CAP1_TARGET_CURRENT_CONT from y + +choicegroup CONT%(cn)d_CAP2_TARGET_CURRENT_CONT + CONT%(cn)d_CAP2_TARGET_ANOTHER_CONT + CONT%(cn)d_CAP2_TARGET_CURRENT_PAGER_SPACE + CONT%(cn)d_CAP2_TARGET_ANOTHER_PAGER + default CONT%(cn)d_CAP2_TARGET_CURRENT_CONT from y + +choicegroup CONT%(cn)d_CAP3_TARGET_CURRENT_CONT + CONT%(cn)d_CAP3_TARGET_ANOTHER_CONT + CONT%(cn)d_CAP3_TARGET_CURRENT_PAGER_SPACE + CONT%(cn)d_CAP3_TARGET_ANOTHER_PAGER + default CONT%(cn)d_CAP3_TARGET_CURRENT_CONT from y + +when CONT%(cn)d_CAP0_IPC_TYPE == n + suppress CONT%(cn)d_CAP0_TARGET_ANOTHER_CONT + CONT%(cn)d_CAP0_TARGET_ANOTHER_PAGER + CONT%(cn)d_CAP0_TARGET + +when CONT%(cn)d_CAP0_TARGET_CURRENT_CONT or + CONT%(cn)d_CAP0_TARGET_CURRENT_PAGER_SPACE + suppress CONT%(cn)d_CAP0_TARGET + +when CONT%(cn)d_CAP1_IPC_TYPE == n + suppress CONT%(cn)d_CAP1_TARGET_ANOTHER_CONT + CONT%(cn)d_CAP1_TARGET_ANOTHER_PAGER + CONT%(cn)d_CAP1_TARGET + +when CONT%(cn)d_CAP1_TARGET_CURRENT_CONT or + CONT%(cn)d_CAP1_TARGET_CURRENT_PAGER_SPACE + suppress CONT%(cn)d_CAP1_TARGET + +when CONT%(cn)d_CAP2_IPC_TYPE == n + suppress CONT%(cn)d_CAP2_TARGET_ANOTHER_CONT + CONT%(cn)d_CAP2_TARGET_ANOTHER_PAGER + CONT%(cn)d_CAP2_TARGET + +when CONT%(cn)d_CAP2_TARGET_CURRENT_CONT or + CONT%(cn)d_CAP2_TARGET_CURRENT_PAGER_SPACE + suppress CONT%(cn)d_CAP2_TARGET + + +when CONT%(cn)d_CAP3_IPC_TYPE == n + suppress CONT%(cn)d_CAP3_TARGET_ANOTHER_CONT + CONT%(cn)d_CAP3_TARGET_ANOTHER_PAGER + CONT%(cn)d_CAP3_TARGET + +when CONT%(cn)d_CAP3_TARGET_CURRENT_CONT or + CONT%(cn)d_CAP3_TARGET_CURRENT_PAGER_SPACE + suppress CONT%(cn)d_CAP3_TARGET + + +default CONT%(cn)d_CAP0_TARGET from 0 +default CONT%(cn)d_CAP1_TARGET from 0 +default CONT%(cn)d_CAP2_TARGET from 0 +default CONT%(cn)d_CAP3_TARGET from 0 + +# Symbols for Custom Capabilities symbols cont%(cn)d_cap0_type 'Capability Operation Type' CONT%(cn)d_CAP0_IPC_TYPE 'IPC Capability' @@ -214,35 +345,6 @@ CONT%(cn)d_CAP0_TARGET_ANOTHER_CONT 'Capability Targets Another Container' CONT%(cn)d_CAP0_TARGET_ANOTHER_PAGER 'Capability Targets Another Container`s Pager' CONT%(cn)d_CAP0_TARGET 'Enter Container ID' -choices cont%(cn)d_cap0_type - CONT%(cn)d_CAP0_IPC_TYPE - CONT%(cn)d_CAP0_TCTRL_TYPE - CONT%(cn)d_CAP0_EXREGS_TYPE - CONT%(cn)d_CAP0_CAP_TYPE - default CONT%(cn)d_CAP0_IPC_TYPE - -menu cont%(cn)d_capability0 - cont%(cn)d_cap0_type - CONT%(cn)d_CAP0_TARGET_CURRENT_CONT - CONT%(cn)d_CAP0_TARGET_CURRENT_PAGER_SPACE - CONT%(cn)d_CAP0_TARGET_ANOTHER_CONT - CONT%(cn)d_CAP0_TARGET_ANOTHER_PAGER - CONT%(cn)d_CAP0_TARGET% - -choicegroup CONT%(cn)d_CAP0_TARGET_CURRENT_CONT - CONT%(cn)d_CAP0_TARGET_ANOTHER_CONT - CONT%(cn)d_CAP0_TARGET_CURRENT_PAGER_SPACE - CONT%(cn)d_CAP0_TARGET_ANOTHER_PAGER - default CONT%(cn)d_CAP0_TARGET_CURRENT_CONT from y - -when CONT%(cn)d_CAP0_IPC_TYPE == n - suppress CONT%(cn)d_CAP0_TARGET_ANOTHER_CONT - CONT%(cn)d_CAP0_TARGET_ANOTHER_PAGER - CONT%(cn)d_CAP0_TARGET - -default CONT%(cn)d_CAP0_TARGET from 0 - -symbols cont%(cn)d_cap1_type 'Capability Operation Type' CONT%(cn)d_CAP1_IPC_TYPE 'IPC Capability' CONT%(cn)d_CAP1_TCTRL_TYPE 'Thread Control Capability' @@ -254,89 +356,30 @@ CONT%(cn)d_CAP1_TARGET_CURRENT_PAGER_SPACE 'Capability Targets Current Pager`s S CONT%(cn)d_CAP1_TARGET_ANOTHER_PAGER 'Capability Targets Another Container`s Pager' CONT%(cn)d_CAP1_TARGET 'Enter Container ID' -choices cont%(cn)d_cap1_type - CONT%(cn)d_CAP1_IPC_TYPE - CONT%(cn)d_CAP1_TCTRL_TYPE - CONT%(cn)d_CAP1_EXREGS_TYPE - CONT%(cn)d_CAP1_CAP_TYPE - default CONT%(cn)d_CAP1_IPC_TYPE +cont%(cn)d_cap2_type 'Capability Operation Type' +CONT%(cn)d_CAP2_IPC_TYPE 'IPC Capability' +CONT%(cn)d_CAP2_TCTRL_TYPE 'Thread Control Capability' +CONT%(cn)d_CAP2_EXREGS_TYPE 'Exchange Registers Capability' +CONT%(cn)d_CAP2_CAP_TYPE 'Capability Control Capability' +CONT%(cn)d_CAP2_TARGET_CURRENT_CONT 'Capability Targets Current Container' +CONT%(cn)d_CAP2_TARGET_ANOTHER_CONT 'Capability Targets Another Container' +CONT%(cn)d_CAP2_TARGET_CURRENT_PAGER_SPACE 'Capability Targets Current Pager`s Space' +CONT%(cn)d_CAP2_TARGET_ANOTHER_PAGER 'Capability Targets Another Container`s Pager' +CONT%(cn)d_CAP2_TARGET 'Enter Container ID' -menu cont%(cn)d_capability1 - cont%(cn)d_cap1_type - CONT%(cn)d_CAP1_TARGET_CURRENT_CONT - CONT%(cn)d_CAP1_TARGET_CURRENT_PAGER_SPACE - CONT%(cn)d_CAP1_TARGET_ANOTHER_CONT - CONT%(cn)d_CAP1_TARGET_ANOTHER_PAGER - CONT%(cn)d_CAP1_TARGET% +cont%(cn)d_cap3_type 'Capability Operation Type' +CONT%(cn)d_CAP3_IPC_TYPE 'IPC Capability' +CONT%(cn)d_CAP3_TCTRL_TYPE 'Thread Control Capability' +CONT%(cn)d_CAP3_EXREGS_TYPE 'Exchange Registers Capability' +CONT%(cn)d_CAP3_CAP_TYPE 'Capability Control Capability' +CONT%(cn)d_CAP3_TARGET_CURRENT_CONT 'Capability Targets Current Container' +CONT%(cn)d_CAP3_TARGET_ANOTHER_CONT 'Capability Targets Another Container' +CONT%(cn)d_CAP3_TARGET_CURRENT_PAGER_SPACE 'Capability Targets Current Pager`s Space' +CONT%(cn)d_CAP3_TARGET_ANOTHER_PAGER 'Capability Targets Another Container`s Pager' +CONT%(cn)d_CAP3_TARGET 'Enter Container ID' -choicegroup CONT%(cn)d_CAP1_TARGET_CURRENT_CONT - CONT%(cn)d_CAP1_TARGET_ANOTHER_CONT - CONT%(cn)d_CAP1_TARGET_CURRENT_PAGER_SPACE - CONT%(cn)d_CAP1_TARGET_ANOTHER_PAGER - default CONT%(cn)d_CAP1_TARGET_CURRENT_CONT from y - -when CONT%(cn)d_CAP1_TARGET_CURRENT_CONT == y suppress CONT%(cn)d_CAP1_TARGET -when CONT%(cn)d_CAP1_TARGET_CURRENT_PAGER_SPACE == y suppress CONT%(cn)d_CAP1_TARGET -when CONT%(cn)d_CAP1_IPC_TYPE == n suppress CONT%(cn)d_CAP1_TARGET_ANOTHER_CONT CONT%(cn)d_CAP1_TARGET_ANOTHER_PAGER -default CONT%(cn)d_CAP1_TARGET from 1 - -symbols -CONT%(cn)d_THREADPOOL_SIZE 'Number of Threads' -CONT%(cn)d_SPACEPOOL_SIZE 'Number of Address Spaces' -CONT%(cn)d_MAPPOOL_SIZE 'Number of PMD Mappings (E.g. Middle-level Page Tables)' -CONT%(cn)d_MUTEXPOOL_SIZE 'Number of Userspace Mutexes' -CONT%(cn)d_CAPPOOL_SIZE 'Number of Capabilities (Created at run-time via Split, Replicate)' -CONT%(cn)d_THREADPOOL_USE 'Create this Capability' -CONT%(cn)d_SPACEPOOL_USE 'Create this Capability' -CONT%(cn)d_MAPPOOL_USE 'Create this Capability' -CONT%(cn)d_MUTEXPOOL_USE 'Create this Capability' -CONT%(cn)d_CAPPOOL_USE 'Create this Capability' - -cont%(cn)d_cap_threadpool 'Container %(cn)d Thread Pool Capability' -cont%(cn)d_cap_spacepool 'Container %(cn)d Space Pool Capability' -cont%(cn)d_cap_mutexpool 'Container %(cn)d Mutex Pool Capability' -cont%(cn)d_cap_mappool 'Container %(cn)d Map Pool Capability' -cont%(cn)d_cap_cappool 'Container %(cn)d Capability Pool Capability' -cont%(cn)d_cap_tctrl 'Container %(cn)d Thread Control Capability' -cont%(cn)d_cap_exregs 'Container %(cn)d Exchange Registers Capability' -cont%(cn)d_cap_ipc 'Container %(cn)d IPC Capability' -cont%(cn)d_capability0 'Container %(cn)d Custom Capability 0 Parameters' -cont%(cn)d_capability1 'Container %(cn)d Custom Capability 1 Parameters' - -cont%(cn)d_capability_list 'Container %(cn)d Capability List' - -default CONT%(cn)d_THREADPOOL_SIZE from 64 -default CONT%(cn)d_SPACEPOOL_SIZE from 64 -default CONT%(cn)d_MAPPOOL_SIZE from 800 -default CONT%(cn)d_MUTEXPOOL_SIZE from 100 -default CONT%(cn)d_CAPPOOL_SIZE from 32 - -default CONT%(cn)d_THREADPOOL_USE from y -default CONT%(cn)d_SPACEPOOL_USE from y -default CONT%(cn)d_MAPPOOL_USE from y -default CONT%(cn)d_MUTEXPOOL_USE from y -default CONT%(cn)d_CAPPOOL_USE from y - -when CONT%(cn)d_THREADPOOL_USE == n suppress CONT%(cn)d_THREADPOOL_SIZE -when CONT%(cn)d_SPACEPOOL_USE == n suppress CONT%(cn)d_SPACEPOOL_SIZE -when CONT%(cn)d_MAPPOOL_USE == n suppress CONT%(cn)d_MAPPOOL_SIZE -when CONT%(cn)d_MUTEXPOOL_USE == n suppress CONT%(cn)d_MUTEXPOOL_SIZE -when CONT%(cn)d_CAPPOOL_USE == n suppress CONT%(cn)d_CAPPOOL_SIZE - -when CONT%(cn)d_IPC_USE == n - suppress CONT%(cn)d_IPC_TARGET_CURRENT_CONT - CONT%(cn)d_IPC_TARGET_CURRENT_PAGER_SPACE - CONT%(cn)d_IPC_TARGET_ANOTHER_CONT - CONT%(cn)d_IPC_TARGET_ANOTHER_PAGER - -when CONT%(cn)d_EXREGS_USE == n - suppress CONT%(cn)d_EXREGS_TARGET_CURRENT_CONT - CONT%(cn)d_EXREGS_TARGET_CURRENT_PAGER_SPACE - -when CONT%(cn)d_TCTRL_USE == n - suppress CONT%(cn)d_TCTRL_TARGET_CURRENT_CONT - CONT%(cn)d_TCTRL_TARGET_CURRENT_PAGER_SPACE +# Symbols for Generic Capabilities symbols CONT%(cn)d_TCTRL_USE 'Create this Capability' CONT%(cn)d_TCTRL_TARGET_CURRENT_CONT 'Capability Targets Current Container' @@ -353,11 +396,77 @@ CONT%(cn)d_IPC_TARGET_ANOTHER_CONT 'Capability Targets Another Container' CONT%(cn)d_IPC_TARGET_ANOTHER_PAGER 'Capability Targets Another Container`s Pager' CONT%(cn)d_IPC_TARGET 'Enter Container ID' +symbols +CONT%(cn)d_THREADPOOL_SIZE 'Number of Threads' +CONT%(cn)d_SPACEPOOL_SIZE 'Number of Address Spaces' +CONT%(cn)d_MAPPOOL_SIZE 'Number of PMD Mappings (E.g. Middle-level Page Tables)' +CONT%(cn)d_MUTEXPOOL_SIZE 'Number of Userspace Mutexes' +CONT%(cn)d_CAPPOOL_SIZE 'Number of Capabilities (Created at run-time via Split, Replicate)' +CONT%(cn)d_THREADPOOL_USE 'Enable this Capability' +CONT%(cn)d_SPACEPOOL_USE 'Enable this Capability' +CONT%(cn)d_MAPPOOL_USE 'Enable this Capability' +CONT%(cn)d_MUTEXPOOL_USE 'Enable this Capability' +CONT%(cn)d_CAPPOOL_USE 'Enable this Capability' + +cont%(cn)d_cap_threadpool 'Container %(cn)d Thread Pool Capability' +cont%(cn)d_cap_spacepool 'Container %(cn)d Space Pool Capability' +cont%(cn)d_cap_mutexpool 'Container %(cn)d Mutex Pool Capability' +cont%(cn)d_cap_mappool 'Container %(cn)d Map Pool Capability' +cont%(cn)d_cap_cappool 'Container %(cn)d Capability Pool Capability' +cont%(cn)d_cap_tctrl 'Container %(cn)d Thread Control Capability' +cont%(cn)d_cap_exregs 'Container %(cn)d Exchange Registers Capability' +cont%(cn)d_cap_ipc 'Container %(cn)d IPC Capability' +cont%(cn)d_capability0 'Container %(cn)d Custom Capability 0 Parameters' +cont%(cn)d_capability1 'Container %(cn)d Custom Capability 1 Parameters' +cont%(cn)d_capability2 'Container %(cn)d Custom Capability 1 Parameters' +cont%(cn)d_capability3 'Container %(cn)d Custom Capability 1 Parameters' + +cont%(cn)d_capability_list 'Container %(cn)d Capability List' + +default CONT%(cn)d_THREADPOOL_SIZE from 64 +default CONT%(cn)d_SPACEPOOL_SIZE from 64 +default CONT%(cn)d_MAPPOOL_SIZE from 800 +default CONT%(cn)d_MUTEXPOOL_SIZE from 100 +default CONT%(cn)d_CAPPOOL_SIZE from 32 + +default CONT%(cn)d_THREADPOOL_USE from y +default CONT%(cn)d_SPACEPOOL_USE from y +default CONT%(cn)d_MAPPOOL_USE from y +default CONT%(cn)d_MUTEXPOOL_USE from y +default CONT%(cn)d_CAPPOOL_USE from y + +# Use Rules for Generic Capabilities +when CONT%(cn)d_THREADPOOL_USE == n + suppress CONT%(cn)d_THREADPOOL_SIZE +when CONT%(cn)d_SPACEPOOL_USE == n + suppress CONT%(cn)d_SPACEPOOL_SIZE +when CONT%(cn)d_MAPPOOL_USE == n + suppress CONT%(cn)d_MAPPOOL_SIZE +when CONT%(cn)d_MUTEXPOOL_USE == n + suppress CONT%(cn)d_MUTEXPOOL_SIZE +when CONT%(cn)d_CAPPOOL_USE == n + suppress CONT%(cn)d_CAPPOOL_SIZE + +when CONT%(cn)d_IPC_USE == n + suppress CONT%(cn)d_IPC_TARGET_CURRENT_CONT + CONT%(cn)d_IPC_TARGET_CURRENT_PAGER_SPACE + CONT%(cn)d_IPC_TARGET_ANOTHER_CONT + CONT%(cn)d_IPC_TARGET_ANOTHER_PAGER + +when CONT%(cn)d_EXREGS_USE == n + suppress CONT%(cn)d_EXREGS_TARGET_CURRENT_CONT + CONT%(cn)d_EXREGS_TARGET_CURRENT_PAGER_SPACE + +when CONT%(cn)d_TCTRL_USE == n + suppress CONT%(cn)d_TCTRL_TARGET_CURRENT_CONT + CONT%(cn)d_TCTRL_TARGET_CURRENT_PAGER_SPACE + default CONT%(cn)d_TCTRL_USE from y default CONT%(cn)d_EXREGS_USE from y default CONT%(cn)d_IPC_USE from y default CONT%(cn)d_IPC_TARGET from 0 +# Capability Menus menu cont%(cn)d_cap_tctrl CONT%(cn)d_TCTRL_USE CONT%(cn)d_TCTRL_TARGET_CURRENT_CONT @@ -407,6 +516,8 @@ menu cont%(cn)d_capability_list cont%(cn)d_cap_ipc cont%(cn)d_capability0 cont%(cn)d_capability1 + cont%(cn)d_capability2 + cont%(cn)d_capability3 menu container%(cn)d_options CONT%(cn)d_OPT_NAME$