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' 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_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 # ############# #Capability rules: default CAPABILITIES from y #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.