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_BARE 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?