mirror of
https://github.com/drasko/codezero.git
synced 2026-03-15 00:31:50 +01:00
CML2 rule file is autogenerated from arm.cml and the containers template
Container rules are too many and repetitive for each container. With this change, the cml file is autogenerated from a container template cml and the architecture cml, e.g. arm.cml. -c option determines the number of containers. See build.py -h for more.
This commit is contained in:
168
config/cml/container.template.cml
Normal file
168
config/cml/container.template.cml
Normal file
@@ -0,0 +1,168 @@
|
||||
symbols
|
||||
CONT%d_TYPE_LINUX 'Linux Container'
|
||||
CONT%d_TYPE_BARE 'Bare Container'
|
||||
CONT%d_TYPE_C0_POSIX 'Codezero POSIX Services Container (mm0, fs0 microkernel services)'
|
||||
CONT%d_OPT_DIRNAME 'Containers directory name under conts'
|
||||
|
||||
CONT%d_PHYSMEM_REGIONS 'Container %d number of physical regions'
|
||||
CONT%d_PHYS0_START 'Container %d physical start address'
|
||||
CONT%d_PHYS0_END 'Container %d physical end address'
|
||||
CONT%d_PHYS1_START 'Container %d physical start address'
|
||||
CONT%d_PHYS1_END 'Container %d physical end address'
|
||||
CONT%d_PHYS2_START 'Container %d physical start address'
|
||||
CONT%d_PHYS2_END 'Container %d physical end address'
|
||||
CONT%d_PHYS3_START 'Container %d physical start address'
|
||||
CONT%d_PHYS3_END 'Container %d physical end address'
|
||||
|
||||
CONT%d_VIRTMEM_REGIONS 'Container %d number of virtual regions'
|
||||
CONT%d_VIRT0_START 'Container %d virtual start address'
|
||||
CONT%d_VIRT0_END 'Container %d virtual end address'
|
||||
CONT%d_VIRT1_START 'Container %d virtual start address'
|
||||
CONT%d_VIRT1_END 'Container %d virtual end address'
|
||||
CONT%d_VIRT2_START 'Container %d virtual start address'
|
||||
CONT%d_VIRT2_END 'Container %d virtual end address'
|
||||
CONT%d_VIRT3_START 'Container %d virtual start address'
|
||||
CONT%d_VIRT3_END 'Container %d virtual end address'
|
||||
CONT%d_VIRT4_START 'Container %d virtual start address'
|
||||
CONT%d_VIRT4_END 'Container %d virtual end address'
|
||||
CONT%d_VIRT5_START 'Container %d virtual start address'
|
||||
CONT%d_VIRT5_END 'Container %d virtual end address'
|
||||
|
||||
CONT%d_PAGER_LMA 'Container %d Pager LMA'
|
||||
CONT%d_PAGER_VMA 'Container %d Pager VMA'
|
||||
CONT%d_PAGER_SIZE 'Container %d Pager Initial map size (Optional)'
|
||||
CONT%d_LINUX_PAGE_OFFSET 'Container %d Linux PAGE_OFFSET parameter'
|
||||
CONT%d_LINUX_TEXT_OFFSET 'Container %d Linux TEXT_OFFSET parameter'
|
||||
CONT%d_LINUX_PHYS_OFFSET 'Container %d Linux PHYS_OFFSET parameter'
|
||||
CONT%d_LINUX_MAPSIZE 'Container %d Linux Initial kernel map size parameter'
|
||||
|
||||
default CONT%d_PAGER_LMA from 0x0
|
||||
default CONT%d_PAGER_VMA from 0x0
|
||||
default CONT%d_PAGER_SIZE from 0x0
|
||||
default CONT%d_LINUX_PAGE_OFFSET from 0x0
|
||||
default CONT%d_LINUX_TEXT_OFFSET from 0x0
|
||||
default CONT%d_LINUX_PHYS_OFFSET from 0x0
|
||||
default CONT%d_LINUX_MAPSIZE from 0x0
|
||||
|
||||
default CONT%d_VIRTMEM_REGIONS from 1
|
||||
default CONT%d_PHYSMEM_REGIONS from 1
|
||||
|
||||
# Define limits on virtual and physical memory regions of a _single_ container 0. Too much code!
|
||||
when CONT%d_VIRTMEM_REGIONS < 2 suppress CONT%d_VIRT1_START CONT%d_VIRT1_END
|
||||
when CONT%d_VIRTMEM_REGIONS < 2 suppress CONT%d_VIRT2_START CONT%d_VIRT2_END
|
||||
when CONT%d_VIRTMEM_REGIONS < 2 suppress CONT%d_VIRT3_START CONT%d_VIRT3_END
|
||||
when CONT%d_VIRTMEM_REGIONS < 2 suppress CONT%d_VIRT4_START CONT%d_VIRT4_END
|
||||
when CONT%d_VIRTMEM_REGIONS < 2 suppress CONT%d_VIRT5_START CONT%d_VIRT5_END
|
||||
|
||||
when CONT%d_VIRTMEM_REGIONS < 3 suppress CONT%d_VIRT2_START CONT%d_VIRT2_END
|
||||
when CONT%d_VIRTMEM_REGIONS < 3 suppress CONT%d_VIRT3_START CONT%d_VIRT3_END
|
||||
when CONT%d_VIRTMEM_REGIONS < 3 suppress CONT%d_VIRT4_START CONT%d_VIRT4_END
|
||||
when CONT%d_VIRTMEM_REGIONS < 3 suppress CONT%d_VIRT5_START CONT%d_VIRT5_END
|
||||
|
||||
when CONT%d_VIRTMEM_REGIONS < 4 suppress CONT%d_VIRT3_START CONT%d_VIRT3_END
|
||||
when CONT%d_VIRTMEM_REGIONS < 4 suppress CONT%d_VIRT4_START CONT%d_VIRT4_END
|
||||
when CONT%d_VIRTMEM_REGIONS < 4 suppress CONT%d_VIRT5_START CONT%d_VIRT5_END
|
||||
|
||||
when CONT%d_VIRTMEM_REGIONS < 5 suppress CONT%d_VIRT4_START CONT%d_VIRT4_END
|
||||
when CONT%d_VIRTMEM_REGIONS < 5 suppress CONT%d_VIRT5_START CONT%d_VIRT5_END
|
||||
|
||||
when CONT%d_VIRTMEM_REGIONS < 6 suppress CONT%d_VIRT5_START CONT%d_VIRT5_END
|
||||
|
||||
when CONT%d_PHYSMEM_REGIONS < 2 suppress CONT%d_PHYS1_START CONT%d_PHYS1_END
|
||||
when CONT%d_PHYSMEM_REGIONS < 2 suppress CONT%d_PHYS2_START CONT%d_PHYS2_END
|
||||
when CONT%d_PHYSMEM_REGIONS < 2 suppress CONT%d_PHYS3_START CONT%d_PHYS3_END
|
||||
when CONT%d_PHYSMEM_REGIONS < 3 suppress CONT%d_PHYS2_START CONT%d_PHYS2_END
|
||||
when CONT%d_PHYSMEM_REGIONS < 3 suppress CONT%d_PHYS3_START CONT%d_PHYS3_END
|
||||
when CONT%d_PHYSMEM_REGIONS < 4 suppress CONT%d_PHYS3_START CONT%d_PHYS3_END
|
||||
|
||||
default CONT%d_PHYS0_START from 0x0
|
||||
default CONT%d_PHYS0_END from 0x0
|
||||
default CONT%d_PHYS1_START from 0x0
|
||||
default CONT%d_PHYS1_END from 0x0
|
||||
default CONT%d_PHYS2_START from 0x0
|
||||
default CONT%d_PHYS2_END from 0x0
|
||||
default CONT%d_PHYS3_START from 0x0
|
||||
default CONT%d_PHYS3_END from 0x0
|
||||
|
||||
default CONT%d_VIRT0_START from 0x0
|
||||
default CONT%d_VIRT0_END from 0x0
|
||||
default CONT%d_VIRT1_START from 0x0
|
||||
default CONT%d_VIRT1_END from 0x0
|
||||
default CONT%d_VIRT2_START from 0x0
|
||||
default CONT%d_VIRT2_END from 0x0
|
||||
default CONT%d_VIRT3_START from 0x0
|
||||
default CONT%d_VIRT3_END from 0x0
|
||||
default CONT%d_VIRT4_START from 0x0
|
||||
default CONT%d_VIRT4_END from 0x0
|
||||
default CONT%d_VIRT5_START from 0x0
|
||||
default CONT%d_VIRT5_END from 0x0
|
||||
|
||||
default CONT%d_OPT_DIRNAME from (CONT%d_TYPE_LINUX==y) ? "linux" : ((CONT%d_TYPE_BARE==y) ? "bare%d" : "noname")
|
||||
|
||||
when CONT%d_TYPE_LINUX==y suppress cont%d_bare_pager_params
|
||||
when CONT%d_TYPE_BARE==y suppress cont%d_linux_pager_params
|
||||
|
||||
symbols
|
||||
cont%d_menu 'Container %d Parameters'
|
||||
cont%d_physmem_list 'Container %d physical memory regions'
|
||||
cont%d_virtmem_list 'Container %d Virtual memory regions'
|
||||
container%d_type 'Container %d Type'
|
||||
container%d_options 'Container %d Options'
|
||||
|
||||
cont%d_linux_pager_params 'Container %d Pager parameters'
|
||||
cont%d_bare_pager_params 'Container %d Pager parameters'
|
||||
|
||||
menu cont%d_bare_pager_params
|
||||
CONT%d_PAGER_LMA@
|
||||
CONT%d_PAGER_VMA@
|
||||
CONT%d_PAGER_SIZE@
|
||||
|
||||
menu cont%d_linux_pager_params
|
||||
CONT%d_LINUX_PAGE_OFFSET@
|
||||
CONT%d_LINUX_TEXT_OFFSET@
|
||||
CONT%d_LINUX_PHYS_OFFSET@
|
||||
CONT%d_LINUX_MAPSIZE@
|
||||
|
||||
menu cont%d_virtmem_list
|
||||
CONT%d_VIRTMEM_REGIONS%
|
||||
CONT%d_VIRT0_START@
|
||||
CONT%d_VIRT0_END@
|
||||
CONT%d_VIRT1_START@
|
||||
CONT%d_VIRT1_END@
|
||||
CONT%d_VIRT2_START@
|
||||
CONT%d_VIRT2_END@
|
||||
CONT%d_VIRT3_START@
|
||||
CONT%d_VIRT3_END@
|
||||
CONT%d_VIRT4_START@
|
||||
CONT%d_VIRT4_END@
|
||||
CONT%d_VIRT5_START@
|
||||
CONT%d_VIRT5_END@
|
||||
|
||||
menu cont%d_physmem_list
|
||||
CONT%d_PHYSMEM_REGIONS%
|
||||
CONT%d_PHYS0_START@
|
||||
CONT%d_PHYS0_END@
|
||||
CONT%d_PHYS1_START@
|
||||
CONT%d_PHYS1_END@
|
||||
CONT%d_PHYS2_START@
|
||||
CONT%d_PHYS2_END@
|
||||
CONT%d_PHYS3_START@
|
||||
CONT%d_PHYS3_END@
|
||||
|
||||
menu container%d_options
|
||||
CONT%d_OPT_DIRNAME$
|
||||
cont%d_linux_pager_params
|
||||
cont%d_bare_pager_params
|
||||
cont%d_physmem_list
|
||||
cont%d_virtmem_list
|
||||
|
||||
choices container%d_type
|
||||
CONT%d_TYPE_LINUX
|
||||
CONT%d_TYPE_BARE
|
||||
CONT%d_TYPE_C0_POSIX
|
||||
default CONT%d_TYPE_BARE
|
||||
|
||||
menu cont%d_menu
|
||||
container%d_type
|
||||
container%d_options
|
||||
|
||||
Reference in New Issue
Block a user