diff options
Diffstat (limited to 'config')
-rw-r--r-- | config/arch/arm.in | 42 | ||||
-rw-r--r-- | config/libc.in | 17 | ||||
-rw-r--r-- | config/libc/newlib.in | 41 | ||||
-rw-r--r-- | config/libc/none.in | 14 | ||||
-rw-r--r-- | config/target.in | 10 |
5 files changed, 106 insertions, 18 deletions
diff --git a/config/arch/arm.in b/config/arch/arm.in index f1b0c8f..6daa603 100644 --- a/config/arch/arm.in +++ b/config/arch/arm.in @@ -1,7 +1,8 @@ # ARM specific configuration file config ARCH_arm - select ARCH_USE_MMU + select ARCH_SUPPORTS_BOTH_MMU + select ARCH_DEFAULT_HAS_MMU select ARCH_SUPPORTS_BOTH_ENDIAN select ARCH_DEFAULT_LE select ARCH_SUPPORT_ARCH @@ -12,6 +13,45 @@ config ARCH_arm The ARM architecture, as defined by: http://www.arm.com/ +config ARCH_ARM_MODE + string + default "arm" if ARCH_ARM_MODE_ARM + default "thumb" if ARCH_ARM_MODE_THUMB + +choice + bool + prompt "Default instruction set mode" + default ARCH_ARM_MODE_ARM + +config ARCH_ARM_MODE_ARM + bool + prompt "arm" + help + Defaults to emitting instructions in the ARM mode. + +config ARCH_ARM_MODE_THUMB + bool + prompt "thumb (EXPERIMENTAL)" + depends on EXPERIMENTAL + help + Defaults to emitting instructions in the THUMB mode. + +endchoice + +config ARCH_ARM_INTERWORKING + bool + prompt "Use Thumb-interworking (READ HELP)" + default n + depends on EXPERIMENTAL + help + Excerpt from the gcc manual: + + > Generate code which supports calling between the ARM and Thumb + > instruction sets. Without this option the two instruction sets + > cannot be reliably used inside one program. The default is + > [not to use interwork], since slightly larger code is generated + > when [interwork] is specified. + config ARCH_ARM_EABI bool prompt "Use EABI" diff --git a/config/libc.in b/config/libc.in index 30e39e5..42fe272 100644 --- a/config/libc.in +++ b/config/libc.in @@ -1,11 +1,9 @@ # C library options +menu "C-library" + config LIBC string - default "newlib" if BARE_METAL && ARCH_avr32 && EXPERIMENTAL - default "none" if BARE_METAL - -menu "C-library" config LIBC_VERSION string @@ -23,8 +21,6 @@ config LIBC_VERSION source config.gen/libc.in -comment "Common C library options" - config LIBC_SUPPORT_NPTL bool default n @@ -37,7 +33,12 @@ config THREADS string default "nptl" if THREADS_NPTL default "linuxthreads" if THREADS_LINUXTHREADS - default "none" if THREADS_NONE + default "none" if THREADS_NONE || LIBC_none +# No C library, no threads! + +if ! LIBC_none + +comment "Common C library options" choice bool @@ -62,4 +63,6 @@ config THREADS_NONE endchoice +endif # ! LIBC_none + endmenu diff --git a/config/libc/newlib.in b/config/libc/newlib.in index e952278..446cb4d 100644 --- a/config/libc/newlib.in +++ b/config/libc/newlib.in @@ -1,14 +1,14 @@ # newlib options -# depends on EXPERIMENTAL +# depends on EXPERIMENTAL && BARE_METAL config LIBC_newlib help - Newlib is a C library intended for use on embedded systems. It is a - conglomeration of several library parts, all under free software - licenses that make them easily usable on embedded products. Newlib - is only available in source form. It can be compiled for a wide - array of processors, and will usually work on any architecture with - the addition of a few low-level routines. + Newlib is a C library intended for use on embedded systems. It is a + conglomeration of several library parts, all under free software + licenses that make them easily usable on embedded products. Newlib + is only available in source form. It can be compiled for a wide + array of processors, and will usually work on any architecture with + the addition of a few low-level routines. choice bool @@ -16,25 +16,46 @@ choice # Don't remove next line # CT_INSERT_VERSION_BELOW -config NEWLIB_V_1_17_0 +config LIBC_NEWLIB_V_1_17_0 bool prompt "1.17.0" +config LIBC_NEWLIB_CVS + bool + prompt "Use CVS snapshot" + help + The newlib "team" rolls new releases about once a year (december). + This is quite a long time between releases, in case code was fixed. + + Saying 'Y' here will allow you to use the bleeding-edge code from + the CVS repository. This may or may not fix your issues, may or may + not build, may or may not crash your machine, may or may not withdraw + money from your bank account, may or may not date your girlfriend, + may or may not resurect Elvis... :-) + + In a word: use the CVS snapshot at your own risk! + endchoice config LIBC_VERSION string + prompt "use CVS tag" if LIBC_NEWLIB_CVS # Don't remove next line # CT_INSERT_VERSION_STRING_BELOW - default "1.17.0" if NEWLIB_V_1_17_0 + default "1.17.0" if LIBC_NEWLIB_V_1_17_0 + help + Enter the tag you want to use. + Leave empty to use the 'head' of the repository. + +comment "Architecture specific options" config ATMEL_AVR32_HEADERS bool prompt "Install Atmel AVR32 headers" + depends on ARCH_avr32 default y help Install Atmel AVR32 headers for native AVR32 development. Most AVR32 MCU devices are supported. If you do native AVR32 development you want to say 'Y' here. - diff --git a/config/libc/none.in b/config/libc/none.in new file mode 100644 index 0000000..9507007 --- /dev/null +++ b/config/libc/none.in @@ -0,0 +1,14 @@ +# Dummy config file to not use a C library *at all* +# depends on BARE_METAL + +config LIBC_none + help + Do not use a C library. + + This is usefull if your project is self-contained, does not rely on + an external C library, and provides all the necessary bits. + + Most probably usefull to bootloaders, as they generally don't depend + on the C library. + + If unsure: do *not* choose that, and use another option in the choice. diff --git a/config/target.in b/config/target.in index 4734a34..ab6efe3 100644 --- a/config/target.in +++ b/config/target.in @@ -52,6 +52,16 @@ config ARCH_USE_MMU prompt "Use the MMU" if ARCH_SUPPORTS_BOTH_MMU default n if ! ARCH_DEFAULT_HAS_MMU default y if ARCH_DEFAULT_HAS_MMU + help + If your architecture has an MMU and you want to use it, + say 'Y' here. + + OTOH, if you don't want to use the MMU, or your arch + lacks an MMU, say 'N' here. + + Note that some architectures (eg. ARM) has variants that + lacks an MMU (eg. ARM Cortex-M3), while other variants + have one (eg. ARM Cortex-A8). #-------------------------------------- config ARCH_SUPPORTS_BOTH_ENDIAN |