Files
codezero/config/cml/arm.cml
Bahadir Balban f7acdc116d Configuration can now extract container attributes and store in container class.
Configuration symbols are stored as container class attributes
CML2 arm.cml has richer container parameters, lma, vma, type etc.
2009-09-13 01:12:20 +03:00

204 lines
5.7 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_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'
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
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'
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
CONFIG_CONT0_PHYS_START@
CONFIG_CONT0_PHYS_END@
CONFIG_CONT0_VIRT_START@
CONFIG_CONT0_VIRT_END@
menu cont1_menu
container1_type
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?