mirror of
https://github.com/drasko/codezero.git
synced 2026-01-26 01:33:21 +01:00
Resolved CML2 language issues such that now default parameters for containers can be set by expressions on their type.
218 lines
6.3 KiB
Plaintext
218 lines
6.3 KiB
Plaintext
start main_menu
|
|
|
|
#############
|
|
# SYMBOLS #
|
|
#############
|
|
symbols
|
|
|
|
CONFIG_ARCH_ARM 'ARM'
|
|
|
|
arm_cpu_type 'ARM Processor Type'
|
|
CONFIG_CPU_ARM1136 'ARM1136 - To be added'
|
|
CONFIG_CPU_ARM11MPCORE 'ARM11 MPCore - To be added'
|
|
CONFIG_CPU_ARM926 'ARM926EJ-S'
|
|
CONFIG_CPU_CORTEXA8 'ARM Cortex-A8 - Not supported'
|
|
|
|
arm_subarch_type 'ARM Architecture Family'
|
|
CONFIG_SUBARCH_V5 'ARM v5 Architecture'
|
|
CONFIG_SUBARCH_V6 'ARM v6 Architecture, To be added'
|
|
CONFIG_SUBARCH_V7 'ARM v7 Architecture, To be added'
|
|
|
|
arm_platform_type 'ARM Platform Type'
|
|
CONFIG_PLATFORM_EB 'Realview EB Platform, Unsupported yet'
|
|
CONFIG_PLATFORM_AB926 'Versatile AB926 Platform, Unsupported yet'
|
|
CONFIG_PLATFORM_PB926 'Versatile PB926 Platform'
|
|
CONFIG_PLATFORM_PB11MPCORE 'Realview PB11MPCore Platform'
|
|
CONFIG_PLATFORM_PBA8 'Realview PB-A8 Platform'
|
|
|
|
CONFIG_DRIVER_UART_PL011 'ARM UART Primecell driver PL011'
|
|
CONFIG_DRIVER_TIMER_SP804 'ARM Dual Timer Primecell driver SP804'
|
|
CONFIG_DRIVER_IRQ_PL190 'ARM Vectored Interrupt Controller PL190'
|
|
CONFIG_DRIVER_IRQ_GIC 'ARM Generic Interrupt Controller GIC'
|
|
|
|
main_menu 'Codezero Microkernel Configurator'
|
|
arm_menu 'ARM Architecture Configuration'
|
|
arm_cpu_menu 'ARM CPU type'
|
|
arm_platform_menu 'ARM Platform Type'
|
|
drivers_menu 'Platform Drivers'
|
|
arch_type 'Main architecture'
|
|
|
|
#############
|
|
# CHOICES #
|
|
#############
|
|
|
|
choices arch_type
|
|
CONFIG_ARCH_ARM
|
|
default CONFIG_ARCH_ARM
|
|
|
|
choices arm_subarch_type
|
|
CONFIG_SUBARCH_V5
|
|
CONFIG_SUBARCH_V6
|
|
CONFIG_SUBARCH_V7
|
|
default CONFIG_SUBARCH_V5
|
|
|
|
choices arm_cpu_type
|
|
CONFIG_CPU_ARM926
|
|
CONFIG_CPU_ARM1136
|
|
CONFIG_CPU_ARM11MPCORE
|
|
CONFIG_CPU_CORTEXA8
|
|
default CONFIG_CPU_ARM926
|
|
|
|
choices arm_platform_type
|
|
CONFIG_PLATFORM_EB
|
|
CONFIG_PLATFORM_AB926
|
|
CONFIG_PLATFORM_PB926
|
|
CONFIG_PLATFORM_PB11MPCORE
|
|
CONFIG_PLATFORM_PBA8
|
|
default CONFIG_PLATFORM_PB926
|
|
|
|
#############
|
|
# MENUS #
|
|
#############
|
|
|
|
menu arm_cpu_menu
|
|
arm_cpu_type
|
|
|
|
menu arm_platform_menu
|
|
arm_platform_type
|
|
|
|
menu drivers_menu
|
|
CONFIG_DRIVER_UART_PL011
|
|
CONFIG_DRIVER_TIMER_SP804
|
|
CONFIG_DRIVER_IRQ_PL190
|
|
CONFIG_DRIVER_IRQ_GIC
|
|
|
|
menu arm_menu
|
|
arm_subarch_type
|
|
arm_cpu_menu
|
|
arm_platform_menu
|
|
drivers_menu
|
|
|
|
menu main_menu
|
|
arch_type
|
|
arm_menu
|
|
CONFIG_CONTAINERS%
|
|
containers_menu
|
|
|
|
#############
|
|
# RULES #
|
|
#############
|
|
|
|
#Platform rules:
|
|
unless CONFIG_SUBARCH_V5 suppress CONFIG_PLATFORM_PB926
|
|
unless CONFIG_SUBARCH_V5 suppress CONFIG_PLATFORM_AB926
|
|
unless CONFIG_SUBARCH_V6 suppress CONFIG_PLATFORM_PB11MPCORE
|
|
unless CONFIG_SUBARCH_V7 suppress CONFIG_PLATFORM_PBA8
|
|
|
|
#CPU rules:
|
|
unless CONFIG_SUBARCH_V5 suppress CONFIG_CPU_ARM926
|
|
unless CONFIG_SUBARCH_V6 suppress CONFIG_CPU_ARM1136
|
|
unless CONFIG_SUBARCH_V6 suppress CONFIG_CPU_ARM11MPCORE
|
|
unless CONFIG_SUBARCH_V7 suppress CONFIG_CPU_CORTEXA8
|
|
|
|
# NOTE: Unlike menus, choices dont take { sym } model of visibility
|
|
# dependencies. Instead, a choice symbol is declared in a menu, and
|
|
# suppress statement is used to make sym visible, instead of a
|
|
# { sym } model under the choices. (See manual for { sym } usage).
|
|
|
|
unless CONFIG_SUBARCH_V5 suppress CONFIG_PLATFORM_PB926
|
|
unless CONFIG_ARCH_ARM suppress arm_menu
|
|
unless CONFIG_PLATFORM_PB926 or CONFIG_PLATFORM_AB926 suppress CONFIG_DRIVER_IRQ_PL190
|
|
unless CONFIG_PLATFORM_EB suppress CONFIG_CPU_ARM1136
|
|
unless CONFIG_PLATFORM_EB or CONFIG_PLATFORM_PBA8 or CONFIG_PLATFORM_PB11MPCORE suppress CONFIG_DRIVER_IRQ_GIC
|
|
default CONFIG_DRIVER_UART_PL011 from y
|
|
default CONFIG_DRIVER_TIMER_SP804 from y
|
|
default CONFIG_DRIVER_IRQ_PL190 from y
|
|
default CONFIG_DRIVER_IRQ_GIC from y
|
|
|
|
# Container Rules
|
|
symbols
|
|
CONFIG_CONTAINERS 'Number of containers'
|
|
CONFIG_CONT0_TYPE_LINUX 'Linux Container'
|
|
CONFIG_CONT0_TYPE_BARE 'Bare Container'
|
|
CONFIG_CONT0_TYPE_C0_POSIX 'Codezero POSIX Services Container (mm0, fs0 microkernel services)'
|
|
CONFIG_CONT0_PHYS_START 'Container 0 physical start address'
|
|
CONFIG_CONT0_PHYS_END 'Container 0 physical end address'
|
|
CONFIG_CONT0_VIRT_START 'Container 0 virtual start address'
|
|
CONFIG_CONT0_VIRT_END 'Container 0 virtual end address'
|
|
CONFIG_CONT0_OPT_DIRNAME 'Containers directory name under conts'
|
|
|
|
CONFIG_CONT1_TYPE_LINUX 'Linux Container'
|
|
CONFIG_CONT1_TYPE_BARE 'Bare Container'
|
|
CONFIG_CONT1_TYPE_C0_POSIX 'Codezero POSIX Services Container (mm0, fs0 microkernel services)'
|
|
CONFIG_CONT1_PHYS_START 'Container 1 physical start address'
|
|
CONFIG_CONT1_PHYS_END 'Container 1 physical end address'
|
|
CONFIG_CONT1_VIRT_START 'Container 1 virtual start address'
|
|
CONFIG_CONT1_VIRT_END 'Container 1 virtual end address'
|
|
CONFIG_CONT1_OPT_DIRNAME 'Containers directory name under conts'
|
|
|
|
default CONFIG_CONTAINERS from 2
|
|
default CONFIG_CONT0_PHYS_START from 0x40000
|
|
default CONFIG_CONT0_PHYS_END from 0x1000000
|
|
default CONFIG_CONT0_VIRT_START from 0x0
|
|
default CONFIG_CONT0_VIRT_END from 0x0
|
|
|
|
default CONFIG_CONT1_PHYS_START from 0x1000000
|
|
default CONFIG_CONT1_PHYS_END from 0x2000000
|
|
default CONFIG_CONT1_VIRT_START from 0
|
|
default CONFIG_CONT1_VIRT_END from 0
|
|
|
|
default CONFIG_CONT0_OPT_DIRNAME from (CONFIG_CONT0_TYPE_LINUX==y) ? "Linux" : ((CONFIG_CONT0_TYPE_BARE==y) ? "Bare" : "Noname")
|
|
default CONFIG_CONT1_OPT_DIRNAME from (CONFIG_CONT1_TYPE_LINUX==y) ? "Linux" : ((CONFIG_CONT1_TYPE_BARE==y) ? "Bare" : "Noname")
|
|
|
|
unless CONFIG_CONTAINERS > 1 suppress cont1_menu
|
|
|
|
symbols
|
|
containers_menu 'Configure Containers'
|
|
cont0_menu 'Container 0 Parameters'
|
|
cont1_menu 'Container 1 Parameters'
|
|
container0_type 'Container 0 Type'
|
|
container1_type 'Container 1 Type'
|
|
container0_options 'Container 0 Options'
|
|
container1_options 'Container 1 Options'
|
|
|
|
menu container0_options
|
|
CONFIG_CONT0_OPT_DIRNAME$
|
|
|
|
menu container1_options
|
|
CONFIG_CONT1_OPT_DIRNAME$
|
|
|
|
choices container0_type
|
|
CONFIG_CONT0_TYPE_LINUX
|
|
CONFIG_CONT0_TYPE_BARE
|
|
CONFIG_CONT0_TYPE_C0_POSIX
|
|
default CONFIG_CONT0_TYPE_LINUX
|
|
|
|
choices container1_type
|
|
CONFIG_CONT1_TYPE_LINUX
|
|
CONFIG_CONT1_TYPE_BARE
|
|
CONFIG_CONT1_TYPE_C0_POSIX
|
|
default CONFIG_CONT1_TYPE_LINUX
|
|
|
|
menu cont0_menu
|
|
container0_type
|
|
container0_options
|
|
CONFIG_CONT0_PHYS_START@
|
|
CONFIG_CONT0_PHYS_END@
|
|
CONFIG_CONT0_VIRT_START@
|
|
CONFIG_CONT0_VIRT_END@
|
|
|
|
menu cont1_menu
|
|
container1_type
|
|
container1_options
|
|
CONFIG_CONT1_PHYS_START@
|
|
CONFIG_CONT1_PHYS_END@
|
|
CONFIG_CONT1_VIRT_START@
|
|
CONFIG_CONT1_VIRT_END@
|
|
|
|
menu containers_menu
|
|
cont0_menu
|
|
cont1_menu
|
|
|
|
|
|
# Checklist for correct CML2
|
|
# 1) Have you defined a prompt for each menu, choice_type?
|
|
# 2) Have you defined a default for each symbol?
|
|
# 3) Have you put 'symbols' keyword before each symbol, menu and choice?
|
|
|