Files
codezero/config/cml/arm.cml
Bahadir Balban 10d2d7269f 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.
2009-09-26 16:39:04 +03:00

144 lines
3.4 KiB
Plaintext

start main_menu
#############
# SYMBOLS #
#############
symbols
ARCH_ARM 'ARM'
arm_cpu_type 'ARM Processor Type'
CPU_ARM1136 'ARM1136 - To be added'
CPU_ARM11MPCORE 'ARM11 MPCore - To be added'
CPU_ARM926 'ARM926EJ-S'
CPU_CORTEXA8 'ARM Cortex-A8 - Not supported'
arm_subarch_type 'ARM Architecture Family'
SUBARCH_V5 'ARM v5 Architecture'
SUBARCH_V6 'ARM v6 Architecture, To be added'
SUBARCH_V7 'ARM v7 Architecture, To be added'
arm_platform_type 'ARM Platform Type'
PLATFORM_EB 'Realview EB Platform, Unsupported yet'
PLATFORM_AB926 'Versatile AB926 Platform, Unsupported yet'
PLATFORM_PB926 'Versatile PB926 Platform'
PLATFORM_PB11MPCORE 'Realview PB11MPCore Platform'
PLATFORM_PBA8 'Realview PB-A8 Platform'
DRIVER_UART_PL011 'ARM UART Primecell driver PL011'
DRIVER_TIMER_SP804 'ARM Dual Timer Primecell driver SP804'
DRIVER_IRQ_PL190 'ARM Vectored Interrupt Controller PL190'
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'
containers_menu 'Container Setup'
arch_type 'Main architecture'
CONTAINERS 'Number of containers'
#############
# CHOICES #
#############
choices arch_type
ARCH_ARM
default ARCH_ARM
choices arm_subarch_type
SUBARCH_V5
SUBARCH_V6
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
PLATFORM_AB926
PLATFORM_PB926
PLATFORM_PB11MPCORE
PLATFORM_PBA8
default PLATFORM_PB926
#############
# MENUS #
#############
menu arm_cpu_menu
arm_cpu_type
menu arm_platform_menu
arm_platform_type
menu drivers_menu
DRIVER_UART_PL011
DRIVER_TIMER_SP804
DRIVER_IRQ_PL190
DRIVER_IRQ_GIC
menu arm_menu
arm_subarch_type
arm_cpu_menu
arm_platform_menu
drivers_menu
menu main_menu
arch_type
arm_menu
CONTAINERS%
containers_menu
#############
# RULES #
#############
#Platform rules:
unless SUBARCH_V5 suppress PLATFORM_PB926
unless SUBARCH_V5 suppress PLATFORM_AB926
unless SUBARCH_V6 suppress PLATFORM_PB11MPCORE
unless SUBARCH_V7 suppress PLATFORM_PBA8
#CPU rules:
unless SUBARCH_V5 suppress CPU_ARM926
unless SUBARCH_V6 suppress CPU_ARM1136
unless SUBARCH_V6 suppress CPU_ARM11MPCORE
unless SUBARCH_V7 suppress 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 SUBARCH_V5 suppress PLATFORM_PB926
unless ARCH_ARM suppress arm_menu
unless PLATFORM_PB926 or PLATFORM_AB926 suppress DRIVER_IRQ_PL190
unless PLATFORM_EB suppress CPU_ARM1136
unless PLATFORM_EB or PLATFORM_PBA8 or PLATFORM_PB11MPCORE suppress DRIVER_IRQ_GIC
default DRIVER_UART_PL011 from y
default DRIVER_TIMER_SP804 from y
default DRIVER_IRQ_PL190 from y
default DRIVER_IRQ_GIC from y
prefix CONFIG_
# 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?
# Important note on derived symbols
# DO NOT place any declaration for derived symbols like normal symbols,
# otherwise the derivation will be silently ignored, and you will be left
# wondering why.