diff --git a/config/cml/arm.cml b/config/cml/arm.cml index 7676ca3..052a1a0 100644 --- a/config/cml/arm.cml +++ b/config/cml/arm.cml @@ -133,6 +133,7 @@ CONFIG_CONT0_TYPE_BARE 'Bare Container' CONFIG_CONT0_TYPE_C0_POSIX 'Codezero POSIX Services Container (mm0, fs0 microkernel services)' CONFIG_CONT0_OPT_DIRNAME 'Containers directory name under conts' +CONFIG_CONT0_PHYSMEM_REGIONS 'Container 0 number of physical regions' CONFIG_CONT0_PHYS0_START 'Container 0 physical start address' CONFIG_CONT0_PHYS0_END 'Container 0 physical end address' CONFIG_CONT0_PHYS1_START 'Container 0 physical start address' @@ -142,6 +143,7 @@ CONFIG_CONT0_PHYS2_END 'Container 0 physical end address' CONFIG_CONT0_PHYS3_START 'Container 0 physical start address' CONFIG_CONT0_PHYS3_END 'Container 0 physical end address' +CONFIG_CONT0_VIRTMEM_REGIONS 'Container 0 number of virtual regions' CONFIG_CONT0_VIRT0_START 'Container 0 virtual start address' CONFIG_CONT0_VIRT0_END 'Container 0 virtual end address' CONFIG_CONT0_VIRT1_START 'Container 0 virtual start address' @@ -161,27 +163,29 @@ CONFIG_CONT1_TYPE_BARE 'Bare Container' CONFIG_CONT1_TYPE_C0_POSIX 'Codezero POSIX Services Container (mm0, fs0 microkernel services)' CONFIG_CONT1_OPT_DIRNAME 'Containers directory name under conts' -CONFIG_CONT1_PHYS0_START 'Container 0 physical start address' -CONFIG_CONT1_PHYS0_END 'Container 0 physical end address' -CONFIG_CONT1_PHYS1_START 'Container 0 physical start address' -CONFIG_CONT1_PHYS1_END 'Container 0 physical end address' -CONFIG_CONT1_PHYS2_START 'Container 0 physical start address' -CONFIG_CONT1_PHYS2_END 'Container 0 physical end address' -CONFIG_CONT1_PHYS3_START 'Container 0 physical start address' -CONFIG_CONT1_PHYS3_END 'Container 0 physical end address' +CONFIG_CONT1_PHYSMEM_REGIONS 'Container 1 number of physical regions' +CONFIG_CONT1_PHYS0_START 'Container 1 physical start address' +CONFIG_CONT1_PHYS0_END 'Container 1 physical end address' +CONFIG_CONT1_PHYS1_START 'Container 1 physical start address' +CONFIG_CONT1_PHYS1_END 'Container 1 physical end address' +CONFIG_CONT1_PHYS2_START 'Container 1 physical start address' +CONFIG_CONT1_PHYS2_END 'Container 1 physical end address' +CONFIG_CONT1_PHYS3_START 'Container 1 physical start address' +CONFIG_CONT1_PHYS3_END 'Container 1 physical end address' -CONFIG_CONT1_VIRT0_START 'Container 0 virtual start address' -CONFIG_CONT1_VIRT0_END 'Container 0 virtual end address' -CONFIG_CONT1_VIRT1_START 'Container 0 virtual start address' -CONFIG_CONT1_VIRT1_END 'Container 0 virtual end address' -CONFIG_CONT1_VIRT2_START 'Container 0 virtual start address' -CONFIG_CONT1_VIRT2_END 'Container 0 virtual end address' -CONFIG_CONT1_VIRT3_START 'Container 0 virtual start address' -CONFIG_CONT1_VIRT3_END 'Container 0 virtual end address' -CONFIG_CONT1_VIRT4_START 'Container 0 virtual start address' -CONFIG_CONT1_VIRT4_END 'Container 0 virtual end address' -CONFIG_CONT1_VIRT5_START 'Container 0 virtual start address' -CONFIG_CONT1_VIRT5_END 'Container 0 virtual end address' +CONFIG_CONT1_VIRTMEM_REGIONS 'Container 1 number of virtual regions' +CONFIG_CONT1_VIRT0_START 'Container 1 virtual start address' +CONFIG_CONT1_VIRT0_END 'Container 1 virtual end address' +CONFIG_CONT1_VIRT1_START 'Container 1 virtual start address' +CONFIG_CONT1_VIRT1_END 'Container 1 virtual end address' +CONFIG_CONT1_VIRT2_START 'Container 1 virtual start address' +CONFIG_CONT1_VIRT2_END 'Container 1 virtual end address' +CONFIG_CONT1_VIRT3_START 'Container 1 virtual start address' +CONFIG_CONT1_VIRT3_END 'Container 1 virtual end address' +CONFIG_CONT1_VIRT4_START 'Container 1 virtual start address' +CONFIG_CONT1_VIRT4_END 'Container 1 virtual end address' +CONFIG_CONT1_VIRT5_START 'Container 1 virtual start address' +CONFIG_CONT1_VIRT5_END 'Container 1 virtual end address' CONFIG_CONT0_PAGER_LMA 'Container 0 Pager LMA' CONFIG_CONT0_PAGER_VMA 'Container 0 Pager VMA' @@ -194,7 +198,7 @@ CONFIG_CONT1_PAGER_LMA 'Container 1 Pager LMA' CONFIG_CONT1_PAGER_VMA 'Container 1 Pager VMA' CONFIG_CONT1_PAGER_SIZE 'Container 1 Pager Initial map size (Optional)' CONFIG_CONT1_LINUX_PAGE_OFFSET 'Container 1 Linux PAGE_OFFSET parameter' -CONFIG_CONT1_LINUX_TEXT_OFFSET 'Container 1 Linux TEXT_OFFSET parameter' +CONFIG_CONT1_LINUX_TEXT_OFFSET 'Container 1 Linux TEXT_OFFSET parameter' CONFIG_CONT1_LINUX_PHYS_OFFSET 'Container 1 Linux PHYS_OFFSET parameter' default CONFIG_CONT0_PAGER_LMA from 0x0 @@ -212,6 +216,73 @@ default CONFIG_CONT1_LINUX_TEXT_OFFSET from 0x0 default CONFIG_CONT1_LINUX_PHYS_OFFSET from 0x0 default CONFIG_CONTAINERS from 2 + +default CONFIG_CONT0_VIRTMEM_REGIONS from 1 +default CONFIG_CONT0_PHYSMEM_REGIONS from 1 +default CONFIG_CONT1_VIRTMEM_REGIONS from 1 +default CONFIG_CONT1_PHYSMEM_REGIONS from 1 + +# Define limits on virtual and physical memory regions of a _single_ container 0. Too much code! +when CONFIG_CONT0_VIRTMEM_REGIONS < 2 suppress CONFIG_CONT0_VIRT1_START CONFIG_CONT0_VIRT1_END +when CONFIG_CONT0_VIRTMEM_REGIONS < 2 suppress CONFIG_CONT0_VIRT2_START CONFIG_CONT0_VIRT2_END +when CONFIG_CONT0_VIRTMEM_REGIONS < 2 suppress CONFIG_CONT0_VIRT3_START CONFIG_CONT0_VIRT3_END +when CONFIG_CONT0_VIRTMEM_REGIONS < 2 suppress CONFIG_CONT0_VIRT4_START CONFIG_CONT0_VIRT4_END +when CONFIG_CONT0_VIRTMEM_REGIONS < 2 suppress CONFIG_CONT0_VIRT5_START CONFIG_CONT0_VIRT5_END + +when CONFIG_CONT0_VIRTMEM_REGIONS < 3 suppress CONFIG_CONT0_VIRT2_START CONFIG_CONT0_VIRT2_END +when CONFIG_CONT0_VIRTMEM_REGIONS < 3 suppress CONFIG_CONT0_VIRT3_START CONFIG_CONT0_VIRT3_END +when CONFIG_CONT0_VIRTMEM_REGIONS < 3 suppress CONFIG_CONT0_VIRT4_START CONFIG_CONT0_VIRT4_END +when CONFIG_CONT0_VIRTMEM_REGIONS < 3 suppress CONFIG_CONT0_VIRT5_START CONFIG_CONT0_VIRT5_END + +when CONFIG_CONT0_VIRTMEM_REGIONS < 4 suppress CONFIG_CONT0_VIRT3_START CONFIG_CONT0_VIRT3_END +when CONFIG_CONT0_VIRTMEM_REGIONS < 4 suppress CONFIG_CONT0_VIRT4_START CONFIG_CONT0_VIRT4_END +when CONFIG_CONT0_VIRTMEM_REGIONS < 4 suppress CONFIG_CONT0_VIRT5_START CONFIG_CONT0_VIRT5_END + +when CONFIG_CONT0_VIRTMEM_REGIONS < 5 suppress CONFIG_CONT0_VIRT4_START CONFIG_CONT0_VIRT4_END +when CONFIG_CONT0_VIRTMEM_REGIONS < 5 suppress CONFIG_CONT0_VIRT5_START CONFIG_CONT0_VIRT5_END + +when CONFIG_CONT0_VIRTMEM_REGIONS < 6 suppress CONFIG_CONT0_VIRT5_START CONFIG_CONT0_VIRT5_END + +when CONFIG_CONT0_PHYSMEM_REGIONS < 2 suppress CONFIG_CONT0_PHYS1_START CONFIG_CONT0_PHYS1_END +when CONFIG_CONT0_PHYSMEM_REGIONS < 2 suppress CONFIG_CONT0_PHYS2_START CONFIG_CONT0_PHYS2_END +when CONFIG_CONT0_PHYSMEM_REGIONS < 2 suppress CONFIG_CONT0_PHYS3_START CONFIG_CONT0_PHYS3_END +when CONFIG_CONT0_PHYSMEM_REGIONS < 3 suppress CONFIG_CONT0_PHYS2_START CONFIG_CONT0_PHYS2_END +when CONFIG_CONT0_PHYSMEM_REGIONS < 3 suppress CONFIG_CONT0_PHYS3_START CONFIG_CONT0_PHYS3_END +when CONFIG_CONT0_PHYSMEM_REGIONS < 4 suppress CONFIG_CONT0_PHYS3_START CONFIG_CONT0_PHYS3_END + + +# Define limits on virtual and physical memory regions of a _single_ container 0. Too much code! +when CONFIG_CONT1_VIRTMEM_REGIONS < 2 suppress CONFIG_CONT1_VIRT1_START CONFIG_CONT1_VIRT1_END +when CONFIG_CONT1_VIRTMEM_REGIONS < 2 suppress CONFIG_CONT1_VIRT2_START CONFIG_CONT1_VIRT2_END +when CONFIG_CONT1_VIRTMEM_REGIONS < 2 suppress CONFIG_CONT1_VIRT3_START CONFIG_CONT1_VIRT3_END +when CONFIG_CONT1_VIRTMEM_REGIONS < 2 suppress CONFIG_CONT1_VIRT4_START CONFIG_CONT1_VIRT4_END +when CONFIG_CONT1_VIRTMEM_REGIONS < 2 suppress CONFIG_CONT1_VIRT5_START CONFIG_CONT1_VIRT5_END + +when CONFIG_CONT1_VIRTMEM_REGIONS < 3 suppress CONFIG_CONT1_VIRT2_START CONFIG_CONT1_VIRT2_END +when CONFIG_CONT1_VIRTMEM_REGIONS < 3 suppress CONFIG_CONT1_VIRT3_START CONFIG_CONT1_VIRT3_END +when CONFIG_CONT1_VIRTMEM_REGIONS < 3 suppress CONFIG_CONT1_VIRT4_START CONFIG_CONT1_VIRT4_END +when CONFIG_CONT1_VIRTMEM_REGIONS < 3 suppress CONFIG_CONT1_VIRT5_START CONFIG_CONT1_VIRT5_END + +when CONFIG_CONT1_VIRTMEM_REGIONS < 4 suppress CONFIG_CONT1_VIRT3_START CONFIG_CONT1_VIRT3_END +when CONFIG_CONT1_VIRTMEM_REGIONS < 4 suppress CONFIG_CONT1_VIRT4_START CONFIG_CONT1_VIRT4_END +when CONFIG_CONT1_VIRTMEM_REGIONS < 4 suppress CONFIG_CONT1_VIRT5_START CONFIG_CONT1_VIRT5_END + +when CONFIG_CONT1_VIRTMEM_REGIONS < 5 suppress CONFIG_CONT1_VIRT4_START CONFIG_CONT1_VIRT4_END +when CONFIG_CONT1_VIRTMEM_REGIONS < 5 suppress CONFIG_CONT1_VIRT5_START CONFIG_CONT1_VIRT5_END + +when CONFIG_CONT1_VIRTMEM_REGIONS < 6 suppress CONFIG_CONT1_VIRT5_START CONFIG_CONT1_VIRT5_END + +when CONFIG_CONT1_PHYSMEM_REGIONS < 2 suppress CONFIG_CONT1_PHYS1_START CONFIG_CONT1_PHYS1_END +when CONFIG_CONT1_PHYSMEM_REGIONS < 2 suppress CONFIG_CONT1_PHYS2_START CONFIG_CONT1_PHYS2_END +when CONFIG_CONT1_PHYSMEM_REGIONS < 2 suppress CONFIG_CONT1_PHYS3_START CONFIG_CONT1_PHYS3_END +when CONFIG_CONT1_PHYSMEM_REGIONS < 3 suppress CONFIG_CONT1_PHYS2_START CONFIG_CONT1_PHYS2_END +when CONFIG_CONT1_PHYSMEM_REGIONS < 3 suppress CONFIG_CONT1_PHYS3_START CONFIG_CONT1_PHYS3_END +when CONFIG_CONT1_PHYSMEM_REGIONS < 4 suppress CONFIG_CONT1_PHYS3_START CONFIG_CONT1_PHYS3_END + + + + + default CONFIG_CONT0_PHYS0_START from 0x0 default CONFIG_CONT0_PHYS0_END from 0x0 default CONFIG_CONT0_PHYS1_START from 0x0 @@ -306,6 +377,7 @@ menu cont1_linux_pager_params CONFIG_CONT1_LINUX_PHYS_OFFSET@ menu cont0_physmem_list + CONFIG_CONT0_PHYSMEM_REGIONS% CONFIG_CONT0_PHYS0_START@ CONFIG_CONT0_PHYS0_END@ CONFIG_CONT0_PHYS1_START@ @@ -316,6 +388,7 @@ menu cont0_physmem_list CONFIG_CONT0_PHYS3_END@ menu cont1_physmem_list + CONFIG_CONT1_PHYSMEM_REGIONS% CONFIG_CONT1_PHYS0_START@ CONFIG_CONT1_PHYS0_END@ CONFIG_CONT1_PHYS1_START@ @@ -326,6 +399,7 @@ menu cont1_physmem_list CONFIG_CONT1_PHYS3_END@ menu cont0_virtmem_list + CONFIG_CONT0_VIRTMEM_REGIONS% CONFIG_CONT0_VIRT0_START@ CONFIG_CONT0_VIRT0_END@ CONFIG_CONT0_VIRT1_START@ @@ -340,6 +414,7 @@ menu cont0_virtmem_list CONFIG_CONT0_VIRT5_END@ menu cont1_virtmem_list + CONFIG_CONT1_VIRTMEM_REGIONS% CONFIG_CONT1_VIRT0_START@ CONFIG_CONT1_VIRT0_END@ CONFIG_CONT1_VIRT1_START@