]> git.sur5r.net Git - u-boot/blobdiff - arch/mips/Kconfig
MIPS: replace $(CPU) with Kconfig symbols
[u-boot] / arch / mips / Kconfig
index 5bf0df4ff1d9609e25f918f75aaa1ffed2cdb73b..d87cbb4637dc319167b7b3cb49156b1226f1d0af 100644 (file)
@@ -2,29 +2,53 @@ menu "MIPS architecture"
        depends on MIPS
 
 config SYS_ARCH
-       string
        default "mips"
 
+config SYS_CPU
+       default "mips32" if CPU_MIPS32_R1 || CPU_MIPS32_R2
+       default "mips64" if CPU_MIPS64_R1 || CPU_MIPS64_R2
+
+config USE_PRIVATE_LIBGCC
+       default y
+
 choice
        prompt "Target select"
 
 config TARGET_QEMU_MIPS
        bool "Support qemu-mips"
+       select SUPPORTS_BIG_ENDIAN
+       select SUPPORTS_LITTLE_ENDIAN
+       select SUPPORTS_CPU_MIPS32_R1
+       select SUPPORTS_CPU_MIPS32_R2
+       select SUPPORTS_CPU_MIPS64_R1
+       select SUPPORTS_CPU_MIPS64_R2
 
 config TARGET_MALTA
        bool "Support malta"
+       select SUPPORTS_BIG_ENDIAN
+       select SUPPORTS_LITTLE_ENDIAN
+       select SUPPORTS_CPU_MIPS32_R1
+       select SUPPORTS_CPU_MIPS32_R2
 
 config TARGET_VCT
        bool "Support vct"
+       select SUPPORTS_BIG_ENDIAN
+       select SUPPORTS_CPU_MIPS32_R1
+       select SUPPORTS_CPU_MIPS32_R2
 
 config TARGET_DBAU1X00
        bool "Support dbau1x00"
+       select SUPPORTS_BIG_ENDIAN
+       select SUPPORTS_LITTLE_ENDIAN
+       select SUPPORTS_CPU_MIPS32_R1
+       select SUPPORTS_CPU_MIPS32_R2
 
 config TARGET_PB1X00
        bool "Support pb1x00"
+       select SUPPORTS_LITTLE_ENDIAN
+       select SUPPORTS_CPU_MIPS32_R1
+       select SUPPORTS_CPU_MIPS32_R2
 
-config TARGET_QEMU_MIPS64
-       bool "Support qemu-mips64"
 
 endchoice
 
@@ -34,4 +58,129 @@ source "board/micronas/vct/Kconfig"
 source "board/pb1x00/Kconfig"
 source "board/qemu-mips/Kconfig"
 
+if MIPS
+
+choice
+       prompt "Endianness selection"
+       help
+         Some MIPS boards can be configured for either little or big endian
+         byte order. These modes require different U-Boot images. In general there
+         is one preferred byteorder for a particular system but some systems are
+         just as commonly used in the one or the other endianness.
+
+config SYS_BIG_ENDIAN
+       bool "Big endian"
+       depends on SUPPORTS_BIG_ENDIAN
+
+config SYS_LITTLE_ENDIAN
+       bool "Little endian"
+       depends on SUPPORTS_LITTLE_ENDIAN
+
+endchoice
+
+choice
+       prompt "CPU selection"
+       default CPU_MIPS32_R2
+
+config CPU_MIPS32_R1
+       bool "MIPS32 Release 1"
+       depends on SUPPORTS_CPU_MIPS32_R1
+       select 32BIT
+       help
+         Choose this option to build an U-Boot for release 1 or later of the
+         MIPS32 architecture.
+
+config CPU_MIPS32_R2
+       bool "MIPS32 Release 2"
+       depends on SUPPORTS_CPU_MIPS32_R2
+       select 32BIT
+       help
+         Choose this option to build an U-Boot for release 2 or later of the
+         MIPS32 architecture.
+
+config CPU_MIPS64_R1
+       bool "MIPS64 Release 1"
+       depends on SUPPORTS_CPU_MIPS64_R1
+       select 64BIT
+       help
+         Choose this option to build a kernel for release 1 or later of the
+         MIPS64 architecture.
+
+config CPU_MIPS64_R2
+       bool "MIPS64 Release 2"
+       depends on SUPPORTS_CPU_MIPS64_R2
+       select 64BIT
+       help
+         Choose this option to build a kernel for release 2 or later of the
+         MIPS64 architecture.
+
+endchoice
+
+menu "OS boot interface"
+
+config MIPS_BOOT_CMDLINE_LEGACY
+       bool "Hand over legacy command line to Linux kernel"
+       default y
+       help
+         Enable this option if you want U-Boot to hand over the Yamon-style
+         command line to the kernel. All bootargs will be prepared as argc/argv
+         compatible list. The argument count (argc) is stored in register $a0.
+         The address of the argument list (argv) is stored in register $a1.
+
+config MIPS_BOOT_ENV_LEGACY
+       bool "Hand over legacy environment to Linux kernel"
+       default y
+       help
+         Enable this option if you want U-Boot to hand over the Yamon-style
+         environment to the kernel. Information like memory size, initrd
+         address and size will be prepared as zero-terminated key/value list.
+         The address of the enviroment is stored in register $a2.
+
+config MIPS_BOOT_FDT
+       bool "Hand over a flattened device tree to Linux kernel (INCOMPLETE)"
+       default n
+       help
+         Enable this option if you want U-Boot to hand over a flattened
+         device tree to the kernel.
+
+         Note: the final hand over to the kernel is not yet implemented. After
+               the community agreed on the MIPS boot interface for device trees,
+               the corresponding code will be added.
+
+endmenu
+
+config SUPPORTS_BIG_ENDIAN
+       bool
+
+config SUPPORTS_LITTLE_ENDIAN
+       bool
+
+config SUPPORTS_CPU_MIPS32_R1
+       bool
+
+config SUPPORTS_CPU_MIPS32_R2
+       bool
+
+config SUPPORTS_CPU_MIPS64_R1
+       bool
+
+config SUPPORTS_CPU_MIPS64_R2
+       bool
+
+config CPU_MIPS32
+       bool
+       default y if CPU_MIPS32_R1 || CPU_MIPS32_R2
+
+config CPU_MIPS64
+       bool
+       default y if CPU_MIPS64_R1 || CPU_MIPS64_R2
+
+config 32BIT
+       bool
+
+config 64BIT
+       bool
+
+endif
+
 endmenu