summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/arch/arm.in42
-rw-r--r--config/libc.in17
-rw-r--r--config/libc/newlib.in41
-rw-r--r--config/libc/none.in14
-rw-r--r--config/target.in10
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