Files
codezero/config/cml/arm.ruleset
2009-11-14 18:18:24 +02:00

147 lines
3.5 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'
main_menu 'Codezero Microkernel Configurator'
arm_menu 'ARM Architecture Configuration'
arm_cpu_menu 'ARM CPU type'
arm_platform_menu 'ARM Platform Type'
toolchain_menu 'Toolchain Prefix'
containers_menu 'Container Setup'
arch_type 'Main architecture'
TOOLCHAIN_KERNEL 'Toolchain prefix for kernel'
TOOLCHAIN_USER 'Toolchain prefix for userspace'
CONTAINERS 'Number of containers'
CAPABILITIES 'Enable capability checking'
#############
# CHOICES #
#############
choices arch_type
ARCH_ARM
default ARCH_ARM
choices arm_subarch_type
SUBARCH_V5
SUBARCH_V6
SUBARCH_V7
default SUBARCH_V5
choices arm_platform_type
PLATFORM_EB
PLATFORM_AB926
PLATFORM_PB926
PLATFORM_PB11MPCORE
PLATFORM_PBA8
default PLATFORM_PB926
choices arm_cpu_type
CPU_ARM926
CPU_ARM1136
CPU_ARM11MPCORE
CPU_CORTEXA8
default CPU_ARM926
#############
# MENUS #
#############
menu arm_cpu_menu
arm_cpu_type
menu arm_platform_menu
arm_platform_type
menu arm_menu
arm_subarch_type
arm_cpu_menu
arm_platform_menu
menu toolchain_menu
TOOLCHAIN_KERNEL$
TOOLCHAIN_USER$
menu main_menu
arch_type
arm_menu
toolchain_menu
CONTAINERS%
containers_menu
#############`
# RULES #
#############
#Capability/Container rules:
default CAPABILITIES from y
default CONTAINERS from 1
#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_EB suppress CPU_ARM1136
derive DRIVER_UART_PL011 from SUBARCH_V5 or SUBARCH_V6 or SUBARCH_V7
derive DRIVER_TIMER_SP804 from SUBARCH_V5 or SUBARCH_V6 or SUBARCH_V7
derive DRIVER_IRQ_PL190 from PLATFORM_PB926 or PLATFORM_AB926
derive DRIVER_IRQ_GIC from PLATFORM_PB11MPCORE or PLATFORM_PBA8 or PLATFORM_EB
# Toolchains:
default TOOLCHAIN_KERNEL from 'arm-none-eabi-'
default TOOLCHAIN_USER from 'arm-none-linux-gnueabi-'
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.