changeset 703:a71b8cec9cd5

Added ARMv6L support. Required patching the Linux Kernel because circa 2.6.27 they changed how you selected processors for certain ARM boards, making it so you couldn't have a VersatilePB board with an ARMv6-capable processor. QEMU however can do that, so patched that out. Also got rid of extra crud for GCC Flags for ARMv5 that weren't necessary.
author Mark Miller <mark@mirell.org>
date Tue, 07 Apr 2009 04:27:56 -0500
parents a8854df93e15
children efed8b9f43c3
files sources/patches/linux-2.6.29-armv6-armv7-for-versatilepb.patch sources/targets/armv5l/details sources/targets/armv5l/miniconfig-linux sources/targets/armv6l/details sources/targets/armv6l/miniconfig-linux sources/targets/armv6l/miniconfig-uClibc
diffstat 6 files changed, 222 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sources/patches/linux-2.6.29-armv6-armv7-for-versatilepb.patch	Tue Apr 07 04:27:56 2009 -0500
@@ -0,0 +1,58 @@
+diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig
+index c781f30..95096af 100644
+--- a/arch/arm/mach-versatile/Kconfig
++++ b/arch/arm/mach-versatile/Kconfig
+@@ -3,14 +3,12 @@ menu "Versatile platform type"
+ 
+ config ARCH_VERSATILE_PB
+ 	bool "Support Versatile/PB platform"
+-	select CPU_ARM926T
+ 	default y
+ 	help
+ 	  Include support for the ARM(R) Versatile/PB platform.
+ 
+ config MACH_VERSATILE_AB
+ 	bool "Support Versatile/AB platform"
+-	select CPU_ARM926T
+ 	help
+ 	  Include support for the ARM(R) Versatile/AP platform.
+ 
+diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
+index 2097956..2a64c95 100644
+--- a/arch/arm/mm/Kconfig
++++ b/arch/arm/mm/Kconfig
+@@ -170,7 +170,7 @@ config CPU_ARM925T
+ 
+ # ARM926T
+ config CPU_ARM926T
+-	bool "Support ARM926T processor" if ARCH_INTEGRATOR || MACH_REALVIEW_EB
++	bool "Support ARM926T processor" if ARCH_INTEGRATOR || MACH_REALVIEW_EB || ARCH_VERSATILE_PB || ARCH_VERSATILE_AB
+ 	select CPU_32v5
+ 	select CPU_ABRT_EV5TJ
+ 	select CPU_PABRT_NOIFAR
+@@ -178,6 +178,7 @@ config CPU_ARM926T
+ 	select CPU_CP15_MMU
+ 	select CPU_COPY_V4WB if MMU
+ 	select CPU_TLB_V4WBI if MMU
++	depends on !CPU_V6 && !CPU_V7
+ 	help
+ 	  This is a variant of the ARM920.  It has slightly different
+ 	  instruction sequences for cache and TLB operations.  Curiously,
+@@ -391,7 +392,7 @@ config CPU_FEROCEON_OLD_ID
+ 
+ # ARMv6
+ config CPU_V6
+-	bool "Support ARM V6 processor" if ARCH_INTEGRATOR || MACH_REALVIEW_EB
++	bool "Support ARM V6 processor" if ARCH_INTEGRATOR || MACH_REALVIEW_EB || ARCH_VERSATILE_PB || ARCH_VERSATILE_AB
+ 	select CPU_32v6
+ 	select CPU_ABRT_EV6
+ 	select CPU_PABRT_NOIFAR
+@@ -416,7 +417,7 @@ config CPU_32v6K
+ 
+ # ARMv7
+ config CPU_V7
+-	bool "Support ARM V7 processor" if ARCH_INTEGRATOR || MACH_REALVIEW_EB
++	bool "Support ARM V7 processor" if ARCH_INTEGRATOR || MACH_REALVIEW_EB || ARCH_VERSATILE_PB || ARCH_VERSATILE_AB
+ 	select CPU_32v6K
+ 	select CPU_32v7
+ 	select CPU_ABRT_EV7
--- a/sources/targets/armv5l/details	Mon Apr 06 23:21:13 2009 -0500
+++ b/sources/targets/armv5l/details	Tue Apr 07 04:27:56 2009 -0500
@@ -4,7 +4,7 @@
 
 KARCH=arm
 KERNEL_PATH=arch/${KARCH}/boot/zImage
-GCC_FLAGS="--with-mabi=aapcs-linux --with-mfloat-abi=soft --with-mfp=vfp --with-meabi=4 --disable-sjlj-exceptions"
+GCC_FLAGS="--with-march=armv5 --with-mfloat-abi=soft --with-mfp=vfp --disable-sjlj-exceptions"
 BINUTILS_FLAGS=
 QEMU_TEST=$KARCH
 
@@ -14,7 +14,7 @@
 CONSOLE=ttyAMA0
 
 # Gentoo from Scratch
-GFS_CHOST="armv5l-softfloat-linux-uclibcgnueabi"
+GFS_CHOST="armv5l-unknown-linux-gnueabi"
 GFS_ARCH="arm"
 
 emulator_command()
--- a/sources/targets/armv5l/miniconfig-linux	Mon Apr 06 23:21:13 2009 -0500
+++ b/sources/targets/armv5l/miniconfig-linux	Tue Apr 07 04:27:56 2009 -0500
@@ -14,6 +14,7 @@
 CONFIG_IOSCHED_CFQ=y
 CONFIG_ARCH_VERSATILE_PB=y
 CONFIG_MACH_VERSATILE_AB=y
+CONFIG_CPU_ARM926T=y
 CONFIG_ARM_THUMB=y
 CONFIG_PCI=y
 CONFIG_PCI_LEGACY=y
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sources/targets/armv6l/details	Tue Apr 07 04:27:56 2009 -0500
@@ -0,0 +1,22 @@
+# ARMv6 with vector floating point (vfp).
+
+KARCH=arm
+KERNEL_PATH=arch/${KARCH}/boot/zImage
+GCC_FLAGS="--with-arch=armv6 --with-mfloat-abi=soft --with-mfp=vfp --disable-sjlj-exceptions" 
+BINUTILS_FLAGS=
+QEMU_TEST=$KARCH
+
+CROSS_TARGET="armv6l-unknown-linux-gnueabi"
+
+ROOT=sda
+CONSOLE=ttyAMA0
+
+# Gentoo from Scratch
+GFS_CHOST="armv6l-unknown-linux-gnueabi"
+GFS_ARCH="arm"
+
+emulator_command()
+{
+  echo qemu-system-arm -M versatilepb -cpu arm1136 $(qemu_defaults "$@") \
+    -net nic,model=rtl8139 -net user
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sources/targets/armv6l/miniconfig-linux	Tue Apr 07 04:27:56 2009 -0500
@@ -0,0 +1,64 @@
+CONFIG_EXPERIMENTAL=y
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_COMPAT_BRK=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_ARCH_VERSATILE_PB=y
+CONFIG_CPU_V6=y
+CONFIG_ARM_THUMB=y
+CONFIG_PCI=y
+CONFIG_PCI_LEGACY=y
+CONFIG_AEABI=y
+CONFIG_UNEVICTABLE_LRU=y
+CONFIG_CMDLINE="mem=128M console=ttyAMA0"
+CONFIG_VFP=y
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_MISC=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_SCSI=y
+CONFIG_SCSI_PROC_FS=y
+CONFIG_BLK_DEV_SD=y
+CONFIG_BLK_DEV_SR=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_SCSI_SYM53C8XX_2=y
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_NETDEVICES=y
+CONFIG_TUN=y
+CONFIG_NET_ETHERNET=y
+CONFIG_NET_PCI=y
+CONFIG_8139CP=y
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_HW_RANDOM=y
+CONFIG_HWMON=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_DRV_PL031=y
+CONFIG_EXT2_FS=y
+CONFIG_EXT3_FS=y
+CONFIG_TMPFS=y
+CONFIG_FILE_LOCKING=y
+CONFIG_MISC_FILESYSTEMS=y
+CONFIG_SQUASHFS=y
+CONFIG_MAGIC_SYSRQ=y
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sources/targets/armv6l/miniconfig-uClibc	Tue Apr 07 04:27:56 2009 -0500
@@ -0,0 +1,75 @@
+TARGET_arm=y
+CONFIG_ARM_EABI=y
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+DO_C99_MATH=y
+UCLIBC_HAS_FENV=y
+DOPIC=y
+HAVE_SHARED=y
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+LDSO_BASE_FILENAME="ld-uClibc.so"
+UCLIBC_STATIC_LDCONFIG=y
+LDSO_RUNPATH=y
+UCLIBC_CTOR_DTOR=y
+UCLIBC_HAS_THREADS=y
+LINUXTHREADS_OLD=y
+UCLIBC_HAS_SYSLOG=y
+UCLIBC_HAS_LFS=y
+MALLOC=y
+MALLOC_GLIBC_COMPAT=y
+UCLIBC_DYNAMIC_ATEXIT=y
+UCLIBC_SUSV3_LEGACY=y
+UCLIBC_SUSV3_LEGACY_MACROS=y
+UCLIBC_HAS_SHADOW=y
+UCLIBC_HAS_PTY=y
+ASSUME_DEVPTS=y
+UNIX98PTY_ONLY=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_LINUX_MODULE_24=y
+UCLIBC_LINUX_SPECIFIC=y
+UCLIBC_HAS_GNU_ERROR=y
+UCLIBC_BSD_SPECIFIC=y
+UCLIBC_HAS_BSD_ERR=y
+UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL=y
+UCLIBC_NTP_LEGACY=y
+UCLIBC_SV4_DEPRECATED=y
+UCLIBC_HAS_ADVANCED_REALTIME=y
+UCLIBC_HAS_EPOLL=y
+UCLIBC_HAS_XATTR=y
+UCLIBC_HAS_PROFILING=y
+UCLIBC_HAS_CRYPT_IMPL=y
+UCLIBC_HAS_NETWORK_SUPPORT=y
+UCLIBC_HAS_IPV4=y
+UCLIBC_HAS_IPV6=y
+UCLIBC_HAS_RPC=y
+UCLIBC_HAS_FULL_RPC=y
+UCLIBC_HAS_REENTRANT_RPC=y
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+UCLIBC_HAS_WCHAR=y
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+UCLIBC_HAS_GNU_GETOPT=y
+UCLIBC_HAS_GNU_GETSUBOPT=y
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_REGEX_OLD=y
+UCLIBC_HAS_FNMATCH=y
+UCLIBC_HAS_FNMATCH_OLD=y
+UCLIBC_HAS_GLOB=y
+UCLIBC_HAS_GNU_GLOB=y
+UCLIBC_BUILD_RELRO=y
+UCLIBC_BUILD_NOEXECSTACK=y
+DOSTRIP=y