From 220a96f9926788ed531717f78e44fdf1e7ab3b34 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 30 Dec 2010 22:45:29 +0100 Subject: rework architecture / embedded systems concept Make configuration of new targets cheap. Just add a new file in target/arch/sys-enabled/foo. See other files for syntax. While doing runtime tests with the new infrastructure I've updated a lot of other stuff: - gcc 4.5.2 - uClibc 0.9.32-rc1 (NPTL) - strongswan, php, miredo, parted, util-linux-ng, e2fsprogs I promise, this is the last big fat commit this year ;) --- target/config/Config.in | 417 ++++++++++++++++++++++++++++++++++ target/config/Config.in.adk | 81 +++++++ target/config/Config.in.arch | 3 + target/config/Config.in.arch.choice | 95 ++++++++ target/config/Config.in.arch.default | 60 +++++ target/config/Config.in.runtime | 61 +++++ target/config/Config.in.system | 13 ++ target/config/Config.in.system.choice | 13 ++ 8 files changed, 743 insertions(+) create mode 100644 target/config/Config.in create mode 100644 target/config/Config.in.adk create mode 100644 target/config/Config.in.arch create mode 100644 target/config/Config.in.arch.choice create mode 100644 target/config/Config.in.arch.default create mode 100644 target/config/Config.in.runtime create mode 100644 target/config/Config.in.system create mode 100644 target/config/Config.in.system.choice (limited to 'target/config') diff --git a/target/config/Config.in b/target/config/Config.in new file mode 100644 index 000000000..77b48c71a --- /dev/null +++ b/target/config/Config.in @@ -0,0 +1,417 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +source "target/config/Config.in.arch" +source "target/config/Config.in.system" + +# hardware features +config ADK_TARGET_WITH_USB + boolean + +config ADK_TARGET_WITH_PCI + boolean + +config ADK_TARGET_WITH_SSB + boolean + +config ADK_TARGET_WITH_MINIPCI + boolean + +config ADK_TARGET_WITH_VGA + boolean + +config ADK_TARGET_WITH_CF + boolean + +config ADK_TARGET_WITH_MMC + boolean + +config ADK_TARGET_WITH_NAND + boolean + +config ADK_TARGET_WITH_MTD + boolean + +config ADK_TARGET_WITH_GEODE_CRYPTO + boolean + +config ADK_TARGET_WITH_HDD + boolean + +config ADK_TARGET_WITH_SATA + boolean + +config ADK_TARGET_WITH_INPUT + boolean + +config ADK_TARGET_WITH_LEDS + boolean + +config ADK_TARGET_WITH_PP + boolean + +config ADK_TARGET_WITH_CARDBUS + boolean + +config ADK_TARGET_WITH_RTC + boolean + +config ADK_TARGET_WITH_WATCHDOG + boolean + +config ADK_TARGET_WITH_DSL + boolean + +config ADK_TARGET_WITH_USB_BOOT + boolean + +# global features +config ADK_TOOLCHAIN_ONLY + boolean + +config ADK_TARGET_NO_FPU + boolean + +config ADK_EABI + boolean + +config ADK_LINUX_64 + boolean + +config ADK_HARDWARE_QEMU + boolean + +# cpu features +config ADK_TARGET_CPU_WITH_VT + boolean + +config ADK_TARGET_CPU_WITH_MMX + boolean + +config ADK_TARGET_CPU_WITH_MMXEXT + boolean + +config ADK_TARGET_CPU_WITH_SSE + boolean + +config ADK_TARGET_CPU_WITH_SSE2 + boolean + +config ADK_TARGET_CPU_WITH_3DNOW + boolean + +config ADK_TARGET_CPU_WITH_3DNOWEXT + boolean + +# cpu configuration +config ADK_CPU_SPARC_V8 + boolean + +config ADK_CPU_SPARC_V9 + boolean + +config ADK_CPU_I486 + boolean + +config ADK_CPU_I586 + boolean + +config ADK_CPU_I686 + boolean + +config ADK_CPU_GEODE + boolean + +config ADK_CPU_PENTIUM_M + boolean + +config ADK_CPU_AMDFAM10 + select ADK_TARGET_CPU_WITH_VT + boolean + +config ADK_CPU_LOONGSON2F + boolean + +config ADK_CPU_ARMV5 + boolean + +config ADK_TARGET_CPU_ARCH + string + default "i486" if ADK_CPU_I486 + default "i586" if ADK_CPU_I586 + default "i686" if ADK_CPU_I686 + default "i586" if ADK_CPU_GEODE + default "i686" if ADK_CPU_PENTIUM_M + +config ADK_TARGET_CFLAGS + string + default "-march=geode" if ADK_CPU_GEODE + default "-march=i486" if ADK_CPU_I486 + default "-march=i586" if ADK_CPU_I586 + default "-march=i686" if ADK_CPU_I686 + default "-march=pentium-m" if ADK_CPU_PENTIUM_M + default "-march=amdfam10" if ADK_CPU_AMDFAM10 + default "-mcpu=v8" if ADK_CPU_SPARC_V8 + default "-mcpu=v9" if ADK_CPU_SPARC_V9 + default "-march=loongson2f" if ADK_CPU_LOONGSON2F + default "-march=armv5te -mtune=arm926ej-s" if ADK_CPU_ARMV5 + +config ADK_TARGET_CMDLINE + string + default "console=ttyS0,38400" if ADK_TARGET_SYSTEM_PCENGINES_WRAP + default "console=ttyS0,115200 console=tty0 irqpoll geodewdt.nowayout=1" if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C + default "console=ttyS0,115200 console=tty0" if ADK_TARGET_SYSTEM_IBM_X40 + default "console=ttyS0,115200" + +# c library +config ADK_uclibc + tristate + +config ADK_eglibc + tristate + +config ADK_glibc + tristate + +config ADK_libc + tristate + +config ADK_TARGET_LIBC + string + default "uclibc" if ADK_uclibc + default "eglibc" if ADK_eglibc + default "glibc" if ADK_glibc + default "libc" if ADK_libc + +source "target/linux/config/Config.in.kernel" + +choice +prompt "Target C library" +depends on !ADK_CHOOSE_TARGET_SYSTEM && !ADK_CHOOSE_TARGET_ARCH +config ADK_TARGET_LIB_UCLIBC + bool "uClibc embedded C library" + depends on \ + !ADK_TARGET_SYSTEM_LEMOTE_YEELONG && \ + !ADK_LINUX_SPARC64 && \ + !ADK_LINUX_SPARC && \ + !ADK_LINUX_PPC64 + select ADK_uclibc + help + http://uclibc.org + +config ADK_TARGET_LIB_EGLIBC + bool "Embedded GNU C library" + select ADK_eglibc + depends on \ + ADK_LINUX_ARM || \ + ADK_LINUX_ARMEB || \ + ADK_LINUX_MIPS || \ + ADK_LINUX_MIPSEL || \ + ADK_LINUX_MIPS64 || \ + ADK_LINUX_MIPS64EL || \ + ADK_LINUX_PPC || \ + ADK_LINUX_PPC64 || \ + ADK_LINUX_SPARC || \ + ADK_LINUX_SPARC64 || \ + ADK_LINUX_X86 || \ + ADK_LINUX_X86_64 + help + http://www.eglibc.org + +config ADK_TARGET_LIB_GLIBC + bool "GNU C library" + select ADK_glibc + depends on \ + ADK_LINUX_ARM || \ + ADK_LINUX_ARMEB || \ + ADK_LINUX_MIPS || \ + ADK_LINUX_MIPSEL || \ + ADK_LINUX_MIPS64 || \ + ADK_LINUX_MIPS64EL || \ + ADK_LINUX_PPC || \ + ADK_LINUX_PPC64 || \ + ADK_LINUX_SPARC || \ + ADK_LINUX_SPARC64 || \ + ADK_LINUX_X86 || \ + ADK_LINUX_X86_64 + help + http://www.gnu.org/libc + +endchoice + +config ADK_TARGET_SUFFIX + string + default "gnueabi" if (ADK_TARGET_LIB_GLIBC || ADK_TARGET_LIB_EGLIBC) && ADK_EABI + default "gnu" if (ADK_TARGET_LIB_GLIBC || ADK_TARGET_LIB_EGLIBC) && !ADK_EABI + default "uclibcgnueabi" if ADK_TARGET_LIB_UCLIBC && ADK_EABI + default "uclibc" if ADK_TARGET_LIB_UCLIBC && !ADK_EABI + +choice +prompt "Target firmware type" +depends on !ADK_CHOOSE_TARGET_SYSTEM && !ADK_CHOOSE_TARGET_ARCH && !ADK_TOOLCHAIN_ONLY +default ADK_TARGET_ROOTFS_ARCHIVE + +config ADK_TARGET_ROOTFS_INITRAMFS + bool "initramfs filesystem" + depends on \ + ADK_LINUX_PPC || \ + ADK_LINUX_SPARC || \ + ADK_LINUX_X86 || \ + ADK_LINUX_X86_64 || \ + ADK_LINUX_NATIVE + select ADK_KERNEL_BLK_DEV_INITRD + help + create an read-only initramfs system. + +config ADK_TARGET_ROOTFS_INITRAMFS_PIGGYBACK + bool "initramfs filesystem included into kernel image" + select ADK_LINUX_INITRAMFS_BUILTIN + depends on \ + ADK_LINUX_PPC || \ + ADK_LINUX_SPARC || \ + ADK_LINUX_X86 || \ + ADK_LINUX_X86_64 || \ + ADK_LINUX_NATIVE + help + create an read-only initramfs system. + +config ADK_TARGET_ROOTFS_SQUASHFS + bool "Compressed read-only root filesystem (squashfs)" + select ADK_KERNEL_SQUASHFS + depends on ADK_TARGET_WITH_MTD + help + highly compressed read-only filesystem for MTD flash systems. + +config ADK_TARGET_ROOTFS_YAFFS + bool "YAFFS2 root filesystem (NAND)" + select ADK_KERNEL_MISC_FILESYSTEMS + select ADK_KERNEL_YAFFS_FS + select ADK_KERNEL_YAFFS_YAFFS2 + select ADK_KERNEL_YAFFS_AUTO_YAFFS2 + depends on ADK_TARGET_WITH_NAND + help + Root filesystem on NAND flash with YAFFS2. + +config ADK_TARGET_ROOTFS_NFSROOT + bool "NFS root" + select ADK_KERNEL_NETWORK_FILESYSTEMS + select ADK_KERNEL_SUNRPC + select ADK_KERNEL_NFS_FS + select ADK_KERNEL_NFS_V3 + select ADK_KERNEL_ROOT_NFS + select ADK_KERNEL_NFS_COMMON + select ADK_KERNEL_IP_PNP + select ADK_KERNEL_IP_PNP_DHCP + help + Root filesystem mounted via NFS. (DHCP) + +config ADK_TARGET_ROOTFS_USB + bool "Boot from USB stick" + select ADK_KERNEL_NLS + select ADK_KERNEL_SCSI + select ADK_KERNEL_BLK_DEV_SD + select ADK_KERNEL_USB + select ADK_KERNEL_USB_EHCI_HCD + select ADK_KERNEL_USB_UHCI_HCD + select ADK_KERNEL_USB_STORAGE + select ADK_KERNEL_EXT2_FS + depends on ADK_TARGET_WITH_USB_BOOT + help + Boot system from USB stick. + +config ADK_TARGET_ROOTFS_CF + bool "read-write filesystem for compact flash" + depends on ADK_TARGET_WITH_CF + select ADK_KERNEL_EXT2_FS + select ADK_KERNEL_SCSI + help + Use this option if you have a compact flash based system. + (ext2 filesystem is used.) + +config ADK_TARGET_ROOTFS_MMC + bool "read-write filesystem for mmc/sdcard" + depends on ADK_TARGET_WITH_MMC + select ADK_KERNEL_EXT2_FS + select ADK_KERNEL_SCSI + help + Use this option if you have a MMC/SDCARD based system. + (ext2 filesystem is used.) + +config ADK_TARGET_ROOTFS_ARCHIVE + bool "Archive usable for different filesystems" + depends on ADK_HARDWARE_QEMU + help + Use this option if your root filesystem is ext2/ext3/ext4/xfs. + +endchoice + +choice +prompt "Root filesystem type" +depends on ADK_TARGET_ROOTFS_ARCHIVE +default ADK_TARGET_ROOT_EXT2_FS + +config ADK_TARGET_ROOT_EXT2 + boolean + prompt "EXT2 filesystem" + select ADK_KERNEL_EXT2_FS + help + Compile EXT2 filesystem into kernel and use it as root filesystem. + +config ADK_TARGET_ROOT_EXT3 + boolean + prompt "EXT3 filesystem" + select ADK_KERNEL_EXT3_FS + help + Compile EXT3 filesystem into kernel and use it as root filesystem. + +config ADK_TARGET_ROOT_EXT4 + boolean + prompt "EXT4 filesystem" + select ADK_KERNEL_EXT4_FS + help + Compile EXT4 filesystem into kernel and use it as root filesystem. + +config ADK_TARGET_ROOT_XFS + boolean + prompt "XFS filesystem" + select ADK_KERNEL_XFS_FS + help + Compile XFS filesystem into kernel and use it as root filesystem. + +endchoice + +config ADK_TARGET_ROOTFS + string + default "xfs" if ADK_TARGET_ROOT_XFS + default "ext2" if ADK_TARGET_ROOT_EXT2 + default "ext3" if ADK_TARGET_ROOT_EXT3 + default "ext4" if ADK_TARGET_ROOT_EXT4 + help + +config ADK_PACKAGE_SUFFIX + string + default "ipk" if ADK_TARGET_PACKAGE_IPKG + default "tar.gz" if ADK_TARGET_PACKAGE_TGZ + help + +choice +prompt "Target package format" +default ADK_TARGET_PACKAGE_IPKG +depends on !ADK_CHOOSE_TARGET_SYSTEM && !ADK_CHOOSE_TARGET_ARCH + +config ADK_TARGET_PACKAGE_IPKG + boolean + prompt "ipkg" + select BUSYBOX_IPKG + help + Create ipkg packages and use ipkg package management on the target. + +config ADK_TARGET_PACKAGE_TGZ + boolean + prompt "tar archive" + help + Create compressed tar archives of packages. + Pre- and post install scripts will be executed in the target + directory. There will be no package manager installed onto the target. + +endchoice diff --git a/target/config/Config.in.adk b/target/config/Config.in.adk new file mode 100644 index 000000000..18d4a2023 --- /dev/null +++ b/target/config/Config.in.adk @@ -0,0 +1,81 @@ +menu "Global settings" + +config ADK_VENDOR + string "vendor name" + default "openadk" + help + Vendor string is used for toolchain. + +config ADK_HOST + string "webserver for packages and distfiles" + default "www.openadk.org" + help + Configure host for IPKG package management. + +config ADK_DEBUG + bool "Compile applications with debug support by default" + default n + help + All packages and libc will be compiled and packaged with debug information. + Mostly useful for NFS root or big USB/CF or hard disk setups. + +config ADK_STATIC + bool "Link applications statically by default" + default n + help + Useful for toolchain only target devices. + +config ADK_MAKE_JOBS + int + default 1 if ! ADK_MAKE_PARALLEL + +config ADK_MAKE_PARALLEL + prompt "Enable parallel building of packages" + boolean + +config ADK_MAKE_JOBS + prompt "How many jobs to use" + int + default 2 + depends on ADK_MAKE_PARALLEL + help + The number specified here will be passed to make as N in '-jN' + +config ADK_TARGET_IP + prompt "Set target ip address for make check" + string + default "127.0.0.1" + help + +choice +prompt "Hostsystem (do not change!)" +config ADK_HOST_LINUX + prompt "Linux" + boolean + +config ADK_HOST_FREEBSD + prompt "FreeBSD" + boolean + +config ADK_HOST_MIRBSD + prompt "MirBSD" + boolean + +config ADK_HOST_OPENBSD + prompt "OpenBSD" + boolean + +config ADK_HOST_NETBSD + prompt "NetBSD" + boolean + +config ADK_HOST_DARWIN + prompt "Darwin" + boolean + +config ADK_HOST_CYGWIN + prompt "Cygwin" + boolean + +endchoice +endmenu diff --git a/target/config/Config.in.arch b/target/config/Config.in.arch new file mode 100644 index 000000000..592d973f2 --- /dev/null +++ b/target/config/Config.in.arch @@ -0,0 +1,3 @@ +source "target/config/Config.in.arch.default" +config ADK_LINUX_ARM + bool diff --git a/target/config/Config.in.arch.choice b/target/config/Config.in.arch.choice new file mode 100644 index 000000000..5e9566981 --- /dev/null +++ b/target/config/Config.in.arch.choice @@ -0,0 +1,95 @@ +choice +prompt "Target architecture" + +config ADK_CHOOSE_TARGET_ARCH + bool "Choose target architecture" + +config ADK_LINUX_NATIVE + bool "native build" + select ADK_libc + select ADK_native + depends on ADK_HOST_LINUX + help + Make a native build. Use host tools. + No toolchain will be created. + +config ADK_LINUX_ARM + bool "arm system (little endian)" + select ADK_arm + help + Support for arm little endian systems. + +config ADK_LINUX_ARMEB + bool "armeb system (big endian)" + select ADK_armeb + help + Support for arm big endian systems. + +config ADK_LINUX_CRIS + bool "cris system" + select ADK_cris + help + Support for cris systems. + +config ADK_LINUX_MIPS + bool "mips system (big endian)" + select ADK_mips + help + Support for mips big endian systems. + +config ADK_LINUX_MIPSEL + bool "mipsel system (little endian)" + select ADK_mipsel + help + Support for mips little endian systems. + +config ADK_LINUX_MIPS64 + bool "mips64 system (big endian)" + select ADK_mips64 + help + Support for mips64 big endian systems. + +config ADK_LINUX_MIPS64EL + bool "mips64el system (little endian)" + select ADK_mips64el + help + Support for mips64 little endian systems. + +config ADK_LINUX_PPC + bool "ppc system" + select ADK_ppc + help + Support for powerpc systems. + +config ADK_LINUX_PPC64 + bool "ppc64 system" + select ADK_ppc64 + help + Support for powerpc64 systems. + +config ADK_LINUX_SPARC + bool "sparc system" + select ADK_sparc + help + Support for sparc systems. + +config ADK_LINUX_SPARC64 + bool "sparc64 system" + select ADK_sparc64 + help + Support for sparc64 systems. + +config ADK_LINUX_X86 + bool "x86 system" + select ADK_x86 + help + Support for x86 systems. + +config ADK_LINUX_X86_64 + bool "x86_64 system" + select ADK_x86_64 + help + Support for x86_64/amd64 systems. + +endchoice + diff --git a/target/config/Config.in.arch.default b/target/config/Config.in.arch.default new file mode 100644 index 000000000..235cebe9d --- /dev/null +++ b/target/config/Config.in.arch.default @@ -0,0 +1,60 @@ +# target architectures +config ADK_native + bool + +config ADK_arm + bool + +config ADK_armeb + bool + +config ADK_cris + bool + +config ADK_mips + bool + +config ADK_mipsel + bool + +config ADK_mips64 + bool + +config ADK_mips64el + bool + +config ADK_ppc + bool + +config ADK_ppc64 + bool + +config ADK_sparc + bool + +config ADK_sparc64 + bool + +config ADK_x86_64 + bool + +config ADK_x86 + bool + +config ADK_TARGET_ARCH + string + default "arm" if ADK_arm + default "armeb" if ADK_armeb + default "cris" if ADK_cris + default "mips" if ADK_mips + default "mipsel" if ADK_mipsel + default "mips64" if ADK_mips64 + default "mips64el" if ADK_mips64el + default "ppc" if ADK_ppc + default "ppc64" if ADK_ppc64 + default "sparc" if ADK_sparc + default "sparc64" if ADK_sparc64 + default "x86" if ADK_x86 + default "x86_64" if ADK_x86_64 + default "native" if ADK_native + diff --git a/target/config/Config.in.runtime b/target/config/Config.in.runtime new file mode 100644 index 000000000..080c15135 --- /dev/null +++ b/target/config/Config.in.runtime @@ -0,0 +1,61 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +config ADK_RUNTIME_HOSTNAME + string "hostname for the embedded system" + default "localhost" + help + Set your target hostname. + +config ADK_RUNTIME_SSH_PUBKEY + string "SSH public key (root user only)" + default "" + help + Paste your generated SSH public key here and it will be embedded into + the built image, so you can use it to login instantly. + +config ADK_RUNTIME_PASSWORD + string "root password for the embedded system" + default "linux123" + help + Predefine the root password enabled in the built image. + +config ADK_RUNTIME_TIMEZONE + string "timezone for the embedded system" + default "Europe/Berlin" + help + Predefine the timezone for the embedded system. + +config ADK_RUNTIME_KBD_LAYOUT + string "keyboard layout for the embedded system" + default "" + depends on ADK_TARGET_WITH_INPUT + help + Predefine the keyboard layout for the embedded system. + +choice +prompt "Console output on embedded system" +default ADK_RUNTIME_CONSOLE_BOTH if ADK_TARGET_WITH_VGA +default ADK_RUNTIME_CONSOLE_SERIAL + +config ADK_RUNTIME_CONSOLE_VGA + bool "console output on VGA" + help + Start getty on VGA console. (tty1-tty6) + +config ADK_RUNTIME_CONSOLE_SERIAL + bool "console output on serial" + help + Start getty on serial console. (ttyS0) + +config ADK_RUNTIME_CONSOLE_BOTH + bool "console output on console and serial" + help + Start getty on VGA console and serial device. + +endchoice + +config ADK_RUNTIME_CONSOLE_SERIAL_SPEED + string + default "38400" if ADK_TARGET_SYSTEM_PCENGINES_WRAP + default "115200" diff --git a/target/config/Config.in.system b/target/config/Config.in.system new file mode 100644 index 000000000..7fa27a44b --- /dev/null +++ b/target/config/Config.in.system @@ -0,0 +1,13 @@ +source "target/config/Config.in.system.default" +comment "Architecture: arm" +comment "System: toolchain" + +config ADK_TARGET_SYSTEM_TOOLCHAIN_ARM + boolean + select ADK_LINUX_ARM + select ADK_arm + select ADK_toolchain + select ADK_TOOLCHAIN_ONLY + select ADK_EABI + select ADK_TARGET_NO_FPU + default y diff --git a/target/config/Config.in.system.choice b/target/config/Config.in.system.choice new file mode 100644 index 000000000..59b8a7bb7 --- /dev/null +++ b/target/config/Config.in.system.choice @@ -0,0 +1,13 @@ +source "target/arm/Config.in" +source "target/armeb/Config.in" +source "target/cris/Config.in" +source "target/mips/Config.in" +source "target/mipsel/Config.in" +source "target/mips64/Config.in" +source "target/mips64el/Config.in" +source "target/ppc/Config.in" +source "target/ppc64/Config.in" +source "target/sparc/Config.in" +source "target/sparc64/Config.in" +source "target/x86/Config.in" +source "target/x86_64/Config.in" -- cgit v1.2.3