# HG changeset patch # User Mark Miller # Date 1239096476 18000 # Node ID a71b8cec9cd5f86b7684c33dec6c7ef7b7021b49 # Parent a8854df93e153dd7ea9645161cfc289e66238d86 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. diff -r a8854df93e15 -r a71b8cec9cd5 sources/patches/linux-2.6.29-armv6-armv7-for-versatilepb.patch --- /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 diff -r a8854df93e15 -r a71b8cec9cd5 sources/targets/armv5l/details --- 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() diff -r a8854df93e15 -r a71b8cec9cd5 sources/targets/armv5l/miniconfig-linux --- 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 diff -r a8854df93e15 -r a71b8cec9cd5 sources/targets/armv6l/details --- /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 +} diff -r a8854df93e15 -r a71b8cec9cd5 sources/targets/armv6l/miniconfig-linux --- /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 diff -r a8854df93e15 -r a71b8cec9cd5 sources/targets/armv6l/miniconfig-uClibc --- /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