summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKyle McMartin <kyle@redhat.com>2013-06-16 08:31:18 -0400
committerKyle McMartin <kyle@redhat.com>2013-06-16 15:29:14 -0400
commit575de6c9a6d4f8210b41bbfa4e0f482da91d959b (patch)
tree25ca74910d463d2b72da5c64f4cfe081bca17044
parent3e75bb64f8424bfb2e6e50baeb92121548de1f2a (diff)
downloadkernel-575de6c9a6d4f8210b41bbfa4e0f482da91d959b.tar.gz
kernel-575de6c9a6d4f8210b41bbfa4e0f482da91d959b.tar.xz
kernel-575de6c9a6d4f8210b41bbfa4e0f482da91d959b.zip
Add initial arm64 support
Based on a working config by Paul Whalen. The generated config ends up being the same, so hopefully this marks the first ARMv8 Fedora kernel. Signed-off-by: Kyle McMartin <kyle@redhat.com>
-rw-r--r--Makefile.config22
-rw-r--r--arm64-makefile-vdso_install.patch15
-rw-r--r--config-arm-generic43
-rw-r--r--config-arm64495
-rw-r--r--config-armv7-generic45
-rw-r--r--kernel.spec46
6 files changed, 611 insertions, 55 deletions
diff --git a/Makefile.config b/Makefile.config
index 41c66082..cfaf6747 100644
--- a/Makefile.config
+++ b/Makefile.config
@@ -9,11 +9,12 @@ CONFIGFILES = \
$(CFG)-i686-PAE.config $(CFG)-i686-PAEdebug.config \
$(CFG)-x86_64.config $(CFG)-x86_64-debug.config \
$(CFG)-s390x.config \
- $(CFG)-armv7hl.config $(CFG)-armv7hl-lpae.config\
+ $(CFG)-armv7hl.config $(CFG)-armv7hl-lpae.config \
+ $(CFG)-aarch64.config \
$(CFG)-ppc.config $(CFG)-ppc-smp.config \
$(CFG)-ppc64.config $(CFG)-ppc64p7.config $(CFG)-ppc64-debug.config
-PLATFORMS = x86 x86_64 powerpc powerpc32 powerpc64 s390x arm
+PLATFORMS = x86 x86_64 powerpc powerpc32 powerpc64 s390x arm arm64
TEMPFILES = $(addprefix temp-, $(addsuffix -generic, $(PLATFORMS)))
configs: $(CONFIGFILES)
@@ -31,7 +32,10 @@ temp-generic: config-generic
temp-debug-generic: config-generic
cat config-generic config-debug > temp-debug-generic
-temp-armv7-generic: config-armv7-generic temp-generic
+temp-arm-generic: config-arm-generic temp-generic
+ perl merge.pl $^ > $@
+
+temp-armv7-generic: config-armv7-generic temp-arm-generic
perl merge.pl $^ > $@
temp-armv7: config-armv7 temp-armv7-generic
@@ -40,6 +44,15 @@ temp-armv7: config-armv7 temp-armv7-generic
temp-armv7-lpae: config-armv7-lpae temp-armv7-generic
perl merge.pl $^ > $@
+temp-arm-debug-generic: temp-arm-generic temp-debug-generic
+ perl merge.pl $^ > $@
+
+temp-arm64: config-arm64 temp-arm-generic
+ perl merge.pl $^ > $@
+
+temp-arm64-debug: config-arm64 temp-arm-debug-generic
+ perl merge.pl $^ > $@
+
temp-x86-32: config-x86-32-generic config-x86-generic
perl merge.pl $^ > $@
@@ -109,6 +122,9 @@ $(CFG)-armv7hl.config: /dev/null temp-armv7
$(CFG)-armv7hl-lpae.config: /dev/null temp-armv7-lpae
perl merge.pl $^ arm > $@
+$(CFG)-aarch64.config: /dev/null temp-arm64
+ perl merge.pl $^ arm64 > $@
+
$(CFG)-ppc.config: /dev/null temp-powerpc32-generic
perl merge.pl $^ powerpc > $@
diff --git a/arm64-makefile-vdso_install.patch b/arm64-makefile-vdso_install.patch
new file mode 100644
index 00000000..f7b4d122
--- /dev/null
+++ b/arm64-makefile-vdso_install.patch
@@ -0,0 +1,15 @@
+diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
+index c95c5cb..b6ccf8a 100644
+--- a/arch/arm64/Makefile
++++ b/arch/arm64/Makefile
+@@ -60,6 +60,10 @@ zinstall install: vmlinux
+ dtbs: scripts
+ $(Q)$(MAKE) $(build)=$(boot)/dts dtbs
+
++PHONY += vdso_install
++vdso_install:
++ $(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso $@
++
+ # We use MRPROPER_FILES and CLEAN_FILES now
+ archclean:
+ $(Q)$(MAKE) $(clean)=$(boot)
diff --git a/config-arm-generic b/config-arm-generic
new file mode 100644
index 00000000..efce6543
--- /dev/null
+++ b/config-arm-generic
@@ -0,0 +1,43 @@
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_ARM_AMBA=y
+CONFIG_ARM_ARCH_TIMER=y
+# CONFIG_ARM_DT_BL_CPUFREQ is not set
+CONFIG_ARM_GIC=y
+# CONFIG_ASYMMETRIC_KEY_TYPE is not set
+CONFIG_BACKLIGHT_PWM=m
+# CONFIG_COMMON_CLK_DEBUG is not set
+CONFIG_COMMON_CLK=y
+CONFIG_DMA_OF=y
+CONFIG_DTC=y
+CONFIG_EARLY_PRINTK=y
+CONFIG_ETHERNET=y
+CONFIG_FB_SSD1307=m
+CONFIG_GENERIC_GPIO=y
+CONFIG_GPIOLIB=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_HW_PERF_EVENTS=y
+# CONFIG_I2C_NOMADIK is not set
+CONFIG_INPUT_PWM_BEEPER=m
+# CONFIG_IRQ_DOMAIN_DEBUG is not set
+# CONFIG_LEDS_RENESAS_TPU is not set
+CONFIG_MMC_ARMMMCI=y
+# CONFIG_MMC_SDHCI_PXAV2 is not set
+# CONFIG_MMC_SDHCI_PXAV3 is not set
+CONFIG_MMC=y
+CONFIG_NFS_FS=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NO_HZ=y
+CONFIG_OF_DEVICE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_IRQ=y
+# CONFIG_OF_SELFTEST is not set
+CONFIG_OF=y
+CONFIG_PERF_EVENTS=y
+# CONFIG_PID_IN_CONTEXTIDR is not set
+CONFIG_PWM=y
+CONFIG_RCU_FANOUT_LEAF=16
+# CONFIG_RTC_DRV_SNVS is not set
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_SERIAL_AMBA_PL011=y
+
+# CONFIG_CRYPTO_TEST is not set
diff --git a/config-arm64 b/config-arm64
new file mode 100644
index 00000000..8bac9093
--- /dev/null
+++ b/config-arm64
@@ -0,0 +1,495 @@
+CONFIG_64BIT=y
+CONFIG_AIO=y
+# CONFIG_ALWAYS_USE_PERSISTENT_CLOCK is not set
+# CONFIG_AMBA_PL08X is not set
+CONFIG_ANON_INODES=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
+CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_VEXPRESS=y
+CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_ARM64_64K_PAGES=y
+CONFIG_ARM64=y
+# CONFIG_ARM_DT_BL_CPUFREQ is not set
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_ASYNC_XOR=m
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K_HW=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_AUDIT_GENERIC=y
+CONFIG_AVERAGE=y
+CONFIG_B43_LEDS=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43_PIO=y
+CONFIG_B43_SSB=y
+CONFIG_BASE_FULL=y
+CONFIG_BASE_SMALL=0
+CONFIG_BCMA_POSSIBLE=y
+# CONFIG_BINARY_PRINTF is not set
+CONFIG_BITREVERSE=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLOCK=y
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+CONFIG_BQL=y
+CONFIG_BRCMUTIL=m
+CONFIG_BUG=y
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_CMDLINE="console=ttyAMA0"
+# CONFIG_CMDLINE_FORCE is not set
+CONFIG_COMMON_CLK_SI5351=y
+CONFIG_COMMON_CLK_VERSATILE=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_COREDUMP=y
+CONFIG_CPU_RMAP=y
+# CONFIG_CRC32_BIT is not set
+# CONFIG_CRC32_SARWATE is not set
+# CONFIG_CRC32_SLICEBY4 is not set
+CONFIG_CRC32_SLICEBY8=y
+CONFIG_CRC32=y
+CONFIG_CRC_T10DIF=y
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_AEAD=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
+CONFIG_CRYPTO_CAST_COMMON=m
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_PCOMP2=y
+CONFIG_CRYPTO_PCOMP=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_RNG=y
+CONFIG_CRYPTO_SEQIV=y
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_USER_API=y
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CUSE=y
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
+# CONFIG_DEBUG_BLK_CGROUP is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_CREDENTIALS is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DEFAULT_CUBIC=y
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_DEFAULT_IOSCHED="cfq"
+# CONFIG_DEFAULT_NOOP is not set
+# CONFIG_DEFAULT_RENO is not set
+# CONFIG_DEFAULT_SECURITY_DAC is not set
+CONFIG_DEFAULT_SECURITY="selinux"
+CONFIG_DEFAULT_SECURITY_SELINUX=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+# CONFIG_DETECT_HUNG_TASK is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_DMADEVICES_DEBUG is not set
+CONFIG_DMA_SHARED_BUFFER=y
+CONFIG_DM_BIO_PRISON=m
+CONFIG_DM_BUFIO=m
+CONFIG_DM_PERSISTENT_DATA=m
+CONFIG_DNS_RESOLVER=y
+CONFIG_DQL=y
+# CONFIG_DRBD_FAULT_INJECTION is not set
+# CONFIG_DVB_DUMMY_FE is not set
+CONFIG_ELF_CORE=y
+CONFIG_EVENTFD=y
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_FAT_FS=y
+# CONFIG_FAULT_INJECTION is not set
+CONFIG_FB_ARMCLCD=y
+# CONFIG_FB_BACKLIGHT is not set
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_DDC is not set
+CONFIG_FB_DEFERRED_IO=y
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_SVGALIB is not set
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_WMT_GE_ROPS is not set
+CONFIG_FIB_RULES=y
+CONFIG_FILE_LOCKING=y
+CONFIG_FONT_8x16=y
+CONFIG_FONT_8x8=y
+CONFIG_FREEZER=y
+CONFIG_FS_POSIX_ACL=y
+# CONFIG_FTRACE is not set
+CONFIG_FUSE_FS=y
+CONFIG_GARP=m
+CONFIG_GENERIC_ACL=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+# CONFIG_GENERIC_CPU_DEVICES is not set
+CONFIG_GENERIC_CSUM=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_IO=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+# CONFIG_GIGASET_DUMMYLL is not set
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GPIO_ADNP is not set
+CONFIG_GPIO_DEVRES=y
+# CONFIG_GPIO_GENERIC_PLATFORM is not set
+# CONFIG_GPIO_MCP23S08 is not set
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_HAS_DMA=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAVE_64BIT_ALIGNED_ACCESS=y
+# CONFIG_HAVE_AOUT is not set
+CONFIG_HAVE_ARCH_PFN_VALID=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_DEBUG_BUGVERBOSE=y
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_HAVE_NET_DSA=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_HDMI=y
+CONFIG_HID_APPLE=m
+CONFIG_HID_MAGICMOUSE=m
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_HVC_DRIVER=y
+# CONFIG_HWMON is not set
+# CONFIG_HW_RANDOM is not set
+CONFIG_HZ=100
+CONFIG_I2C_BOARDINFO=y
+# CONFIG_I2C_PXA_PCI is not set
+CONFIG_I2C_SI4713=m
+CONFIG_I2C_SMBUS=m
+# CONFIG_I2C_VERSATILE is not set
+CONFIG_IKCONFIG_PROC=y
+CONFIG_IKCONFIG=y
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET_DCCP_DIAG=m
+CONFIG_INET_TCP_DIAG=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+CONFIG_INLINE_READ_UNLOCK=y
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+CONFIG_INLINE_WRITE_UNLOCK=y
+CONFIG_IOMMU_HELPER=y
+# CONFIG_IOMMU_SUPPORT is not set
+# CONFIG_IOSCHED_DEADLINE is not set
+CONFIG_IP_DCCP_TFRC_LIB=y
+CONFIG_IP_ROUTE_CLASSID=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IP_VS_NFCT=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IRQCHIP=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_WORK=y
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_LEDS_LP55XX_COMMON=m
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_LOCKD=y
+# CONFIG_LOCK_STAT is not set
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_LRU_CACHE=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_MAC80211_HAS_RC=y
+# CONFIG_MAC80211_MESSAGE_TRACING is not set
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+CONFIG_MAC80211_RC_MINSTREL_HT=y
+# CONFIG_MDIO_BUS_MUX_GPIO is not set
+# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
+CONFIG_MEDIA_COMMON_OPTIONS=y
+CONFIG_MEDIA_TUNER=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC4000=m
+CONFIG_MEDIA_TUNER_XC5000=m
+# CONFIG_MEMCG_SWAP_ENABLED is not set
+CONFIG_MFD_CORE=m
+# CONFIG_MFD_TMIO is not set
+CONFIG_MFD_WL1273_CORE=m
+CONFIG_MII=y
+# CONFIG_MISC_FILESYSTEMS is not set
+CONFIG_MM_OWNER=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODULES_USE_ELF_RELA=y
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_CYPRESS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MRP=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_OF_PARTS=m
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+# CONFIG_NET_CADENCE is not set
+CONFIG_NET_CORE=y
+CONFIG_NET_DSA_MV88E6XXX=m
+CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y
+CONFIG_NET_DSA_TAG_DSA=y
+CONFIG_NET_DSA_TAG_EDSA=y
+CONFIG_NET_DSA_TAG_TRAILER=y
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_NETMAP=m
+CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
+CONFIG_NETPOLL=y
+CONFIG_NET_SCH_FIFO=y
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NF_CONNTRACK_BROADCAST=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_NF_CONNTRACK_LABELS=y
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NFS_ACL_SUPPORT=y
+CONFIG_NFS_COMMON=y
+CONFIG_NFS_DEBUG=y
+# CONFIG_NFSD_FAULT_INJECTION is not set
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFS_USE_KERNEL_DNS=y
+CONFIG_NLATTR=y
+CONFIG_NO_BOOTMEM=y
+CONFIG_NO_IOPORT=y
+CONFIG_NR_CPUS=4
+CONFIG_OF_ADDRESS=y
+# CONFIG_OF_DISPLAY_TIMING is not set
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_I2C=m
+CONFIG_OF_MDIO=y
+CONFIG_OF_MTD=y
+CONFIG_OF_NET=y
+# CONFIG_OF_VIDEOMODE is not set
+CONFIG_ORE=m
+CONFIG_P54_LEDS=y
+CONFIG_PADATA=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_PANIC_ON_OOPS_VALUE=0
+# CONFIG_PARPORT is not set
+# CONFIG_PARPORT_GSC is not set
+CONFIG_PERF_USE_VMALLOC=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+# CONFIG_PL330_DMA is not set
+CONFIG_PNFS_FILE_LAYOUT=m
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+# CONFIG_POWER_RESET_GPIO is not set
+CONFIG_POWER_RESET_VEXPRESS=y
+CONFIG_PPP_BSDCOMP=m
+# CONFIG_PREEMPT_RCU is not set
+CONFIG_PRINTK=y
+# CONFIG_PROC_DEVICETREE is not set
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_PROC_SYSCTL=y
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_TREE=y
+CONFIG_RAID6_PQ=m
+CONFIG_RCU_FANOUT=64
+CONFIG_RCU_STALL_COMMON=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_GZIP=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_LZO=y
+CONFIG_RD_XZ=y
+CONFIG_REGMAP_I2C=m
+CONFIG_REGMAP=y
+# CONFIG_RFKILL_GPIO is not set
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_RPS=y
+# CONFIG_RTC_DRV_PL030 is not set
+# CONFIG_RTC_DRV_PL031 is not set
+CONFIG_RTC_LIB=y
+# CONFIG_RTLWIFI_DEBUG is not set
+CONFIG_RT_MUTEXES=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_SCHED_DEBUG is not set
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_MOD=y
+CONFIG_SCSI_NETLINK=y
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_SERIAL_8250_DMA=y
+# CONFIG_SERIAL_AMBA_PL010 is not set
+CONFIG_SERIAL_OF_PLATFORM=m
+CONFIG_SERIO_AMBAKMI=y
+# CONFIG_SERIO_I8042 is not set
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_SERPORT is not set
+CONFIG_SHMEM=y
+CONFIG_SIGNALFD=y
+CONFIG_SLABINFO=y
+# CONFIG_SLAB is not set
+CONFIG_SLHC=m
+# CONFIG_SLUB_DEBUG_ON is not set
+CONFIG_SLUB_DEBUG=y
+CONFIG_SMC91X=y
+CONFIG_SND_DEBUG=y
+# CONFIG_SND_EMU10K1_SEQ is not set
+CONFIG_SND_HRTIMER=m
+CONFIG_SND=m
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_MPU401_UART=m
+# CONFIG_SND_OPL3_LIB_SEQ is not set
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+CONFIG_SND_PCM=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_XRUN_DEBUG=y
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_RAWMIDI_SEQ=m
+# CONFIG_SND_SBAWE_SEQ is not set
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_VERBOSE_PRINTK=y
+CONFIG_SOUND_OSS_CORE=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_SPARSEMEM=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_POSSIBLE=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_STACKTRACE_SUPPORT=y
+# CONFIG_STMMAC_CHAINED is not set
+CONFIG_STMMAC_RING=y
+CONFIG_STOP_MACHINE=y
+CONFIG_STP=m
+CONFIG_SUNRPC_BACKCHANNEL=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_SUNRPC=y
+CONFIG_SWIOTLB=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_SYSFS=y
+# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_TEST_LIST_SORT is not set
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH=y
+# CONFIG_THERMAL is not set
+CONFIG_TICK_CPU_ACCOUNTING=y
+CONFIG_TICK_ONESHOT=y
+CONFIG_TIMERFD=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_TRACING_SUPPORT=y
+# CONFIG_TREE_RCU_TRACE is not set
+CONFIG_TREE_RCU=y
+# CONFIG_TTPCI_EEPROM is not set
+CONFIG_TTY=y
+CONFIG_UDF_NLS=y
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+# CONFIG_USB_ARCH_HAS_HCD is not set
+# CONFIG_USB_ARCH_HAS_OHCI is not set
+# CONFIG_USB_ARCH_HAS_XHCI is not set
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_VEXPRESS_CONFIG=y
+CONFIG_VFAT_FS=y
+# CONFIG_VGA_CONSOLE is not set
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_IR_I2C=m
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIRTIO_BLK=y
+CONFIG_VIRTIO_MMIO=y
+CONFIG_VIRTIO=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WIZNET_BUS_ANY=y
+# CONFIG_WIZNET_BUS_DIRECT is not set
+# CONFIG_WIZNET_BUS_INDIRECT is not set
+CONFIG_XFRM_ALGO=y
+CONFIG_XFRM_IPCOMP=m
+CONFIG_XOR_BLOCKS=m
+CONFIG_XPS=y
+# CONFIG_XZ_DEC_BCJ is not set
+CONFIG_ZONE_DMA32=y
+CONFIG_ZONE_DMA_FLAG=0
diff --git a/config-armv7-generic b/config-armv7-generic
index ff4acebe..227fbbc6 100644
--- a/config-armv7-generic
+++ b/config-armv7-generic
@@ -18,7 +18,6 @@ CONFIG_NEON=y
CONFIG_ARM_UNWIND=y
CONFIG_ARM_THUMB=y
CONFIG_ARM_THUMBEE=y
-CONFIG_ARM_GIC=y
CONFIG_ARM_ASM_UNIFIED=y
CONFIG_ARM_CPU_TOPOLOGY=y
CONFIG_ARM_DMA_MEM_BUFFERABLE=y
@@ -27,13 +26,11 @@ CONFIG_CACHE_L2X0=y
CONFIG_CACHE_PL310=y
CONFIG_HIGHPTE=y
CONFIG_AUTO_ZRELADDR=y
-CONFIG_EARLY_PRINTK=y
CONFIG_ATAGS=y
CONFIG_ATAGS_PROC=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_XZ_DEC_ARMTHUMB=y
-CONFIG_ARM_ARCH_TIMER=y
CONFIG_ARCH_HAS_TICK_BROADCAST=y
CONFIG_ALWAYS_USE_PERSISTENT_CLOCK=y
@@ -87,7 +84,6 @@ CONFIG_SCHED_MC=y
CONFIG_SCHED_SMT=y
CONFIG_RCU_FANOUT=32
-CONFIG_RCU_FANOUT_LEAF=16
# 2013/04/19 - disable due to stability issues in 3.9 for the moment
# CONFIG_CPU_IDLE is not set
@@ -96,14 +92,10 @@ CONFIG_RCU_FANOUT_LEAF=16
# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set
# CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set
-# CONFIG_ARM_DT_BL_CPUFREQ is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
CONFIG_LSM_MMAP_MIN_ADDR=32768
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-
CONFIG_SECCOMP=y
CONFIG_STRICT_DEVMEM=y
@@ -116,7 +108,6 @@ CONFIG_SUSPEND=y
CONFIG_ARM_CPU_SUSPEND=y
CONFIG_LOCAL_TIMERS=y
-CONFIG_HW_PERF_EVENTS=y
CONFIG_UACCESS_WITH_MEMCPY=y
CONFIG_CC_STACKPROTECTOR=y
@@ -125,30 +116,19 @@ CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
# Root as NFS, different from mainline
-CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_ISO8859_1=y
CONFIG_LBDAF=y
-CONFIG_COMMON_CLK=y
-
# Device tree
-CONFIG_DTC=y
-CONFIG_OF=y
CONFIG_USE_OF=y
-CONFIG_OF_DEVICE=y
-CONFIG_OF_IRQ=y
-CONFIG_DMA_OF=y
CONFIG_ARM_ATAG_DTB_COMPAT=y
CONFIG_ARM_APPENDED_DTB=y
CONFIG_PROC_DEVICETREE=y
-# CONFIG_OF_SELFTEST is not set
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_OF_PCI=y
CONFIG_OF_PCI_IRQ=y
-CONFIG_OF_GPIO=y
CONFIG_I2C_MUX_PINCTRL=m
CONFIG_OF_MDIO=m
@@ -156,14 +136,11 @@ CONFIG_OF_DISPLAY_TIMING=y
CONFIG_OF_VIDEOMODE=y
# General vexpress ARM drivers
-CONFIG_ARM_AMBA=y
CONFIG_ARM_TIMER_SP804=y
CONFIG_SERIO_AMBAKMI=m
CONFIG_SERIAL_AMBA_PL010=y
CONFIG_SERIAL_AMBA_PL010_CONSOLE=y
-CONFIG_SERIAL_AMBA_PL011=y
-CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
CONFIG_SERIAL_8250_DW=y
CONFIG_SERIAL_MRST_MAX3110=m
@@ -211,8 +188,6 @@ CONFIG_PINCTRL_SINGLE=m
# GPIO
CONFIG_GPIO_GENERIC_PLATFORM=m
CONFIG_EXTCON_GPIO=m
-CONFIG_GENERIC_GPIO=y
-CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
# CONFIG_GPIO_EM is not set
CONFIG_GPIO_ADNP=m
CONFIG_GPIO_MCP23S08=m
@@ -223,7 +198,6 @@ CONFIG_INPUT_GPIO_TILT_POLLED=m
CONFIG_MDIO_BUS_MUX_GPIO=m
CONFIG_MDIO_BUS_MUX_MMIOREG=m
CONFIG_LEDS_GPIO=m
-CONFIG_GPIOLIB=y
CONFIG_GPIO_MAX7301=m
CONFIG_GPIO_MC33880=m
CONFIG_GPIO_74X164=m
@@ -279,8 +253,6 @@ CONFIG_EEPROM_AT25=m
CONFIG_EEPROM_93XX46=m
# MMC/SD
-CONFIG_MMC=y
-CONFIG_MMC_ARMMMCI=y
CONFIG_MMC_SPI=m
CONFIG_MMC_DW=m
CONFIG_MMC_DW_PLTFM=m
@@ -304,11 +276,6 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
# CONFIG_SND_ATMEL_SOC is not set
# Displays
-CONFIG_FB_SSD1307=m
-
-# PWM
-CONFIG_PWM=y
-CONFIG_BACKLIGHT_PWM=m
# RTC
CONFIG_RTC_DRV_M41T93=m
@@ -372,7 +339,6 @@ CONFIG_LCD_LMS501KF03=m
CONFIG_LCD_HX8357=m
# Input
-CONFIG_INPUT_PWM_BEEPER=m
CONFIG_INPUT_GP2A=m
CONFIG_INPUT_ARIZONA_HAPTICS=m
CONFIG_INPUT_MC13783_PWRBUTTON=m
@@ -432,27 +398,20 @@ CONFIG_UBIFS_FS_ZLIB=y
# CONFIG_UBIFS_FS_DEBUG is not set
# Should be in generic
-CONFIG_ETHERNET=y
CONFIG_BPF_JIT=y
# CONFIG_NET_VENDOR_BROADCOM is not set
# CONFIG_NET_VENDOR_CIRRUS is not set
# CONFIG_NET_VENDOR_MICROCHIP is not set
# CONFIG_PATA_PLATFORM is not set
-CONFIG_PERF_EVENTS=y
-# CONFIG_RTC_DRV_SNVS is not set
# CONFIG_DRM_EXYNOS is not set
# CONFIG_DRM_TILCDC is not set
# CONFIG_DRM_IMX is not set
-# CONFIG_MMC_SDHCI_PXAV3 is not set
-# CONFIG_MMC_SDHCI_PXAV2 is not set
# CONFIG_CS89x0 is not set
# CONFIG_DM9000 is not set
# CONFIG_HW_RANDOM_ATMEL is not set
# CONFIG_HW_RANDOM_EXYNOS is not set
-# CONFIG_I2C_NOMADIK is not set
-# CONFIG_LEDS_RENESAS_TPU is not set
# CONFIG_MFD_T7L66XB is not set
# CONFIG_MFD_TC6387XB is not set
# CONFIG_TI_DAC7512 is not set
@@ -462,8 +421,6 @@ CONFIG_PERF_EVENTS=y
# CONFIG_ARM_CHARLCD is not set
# CONFIG_MTD_AFS_PARTS is not set
# CONFIG_IP_PNP_RARP is not set
-# CONFIG_ASYMMETRIC_KEY_TYPE is not set
-# CONFIG_PID_IN_CONTEXTIDR is not set
# CONFIG_DEPRECATED_PARAM_STRUCT is not set
# CONFIG_LATTICE_ECP3_CONFIG is not set
# CONFIG_M25PXX_USE_FAST_READ is not set
@@ -492,9 +449,7 @@ CONFIG_PERF_EVENTS=y
# CONFIG_MLX4_EN is not set
# Debug options. We need to deal with them at some point like x86
-# CONFIG_COMMON_CLK_DEBUG is not set
# CONFIG_DEBUG_USER is not set
# CONFIG_DEBUG_LL is not set
-# CONFIG_IRQ_DOMAIN_DEBUG is not set
# CONFIG_DEBUG_PINCTRL is not set
# CONFIG_ARM_DT_BL_CPUFREQ is not set
diff --git a/kernel.spec b/kernel.spec
index bcff42f0..71fe323d 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -285,7 +285,7 @@ Summary: The Linux kernel
%if %{with_vdso_install}
# These arches install vdso/ directories.
-%define vdso_arches %{all_x86} x86_64 ppc ppc64 ppc64p7 s390 s390x
+%define vdso_arches %{all_x86} x86_64 ppc ppc64 ppc64p7 s390 s390x aarch64
%endif
# Overrides for generic default options
@@ -391,6 +391,15 @@ Summary: The Linux kernel
%endif
%endif
+%ifarch aarch64
+%define all_arch_configs kernel-%{version}-arm64.config
+%define asmarch arm64
+%define hdrarch arm64
+%define make_target Image.gz
+%define kernel_image arch/arm64/boot/Image.gz
+%define image_install_path boot
+%endif
+
# Should make listnewconfig fail if there's config options
# printed out?
%if %{nopatches}%{using_upstream_branch}
@@ -424,7 +433,7 @@ Summary: The Linux kernel
%endif
# Architectures we build tools/cpupower on
-%define cpupowerarchs %{ix86} x86_64 ppc ppc64 ppc64p7 %{arm}
+%define cpupowerarchs %{ix86} x86_64 ppc ppc64 ppc64p7 %{arm} aarch64
#
# Three sets of minimum package version requirements in the form of Conflicts:
@@ -499,7 +508,7 @@ Version: %{rpmversion}
Release: %{pkg_release}
# DO NOT CHANGE THE 'ExclusiveArch' LINE TO TEMPORARILY EXCLUDE AN ARCHITECTURE BUILD.
# SET %%nobuildarches (ABOVE) INSTEAD
-ExclusiveArch: noarch %{all_x86} x86_64 ppc ppc64 ppc64p7 s390 s390x %{arm}
+ExclusiveArch: noarch %{all_x86} x86_64 ppc ppc64 ppc64p7 s390 s390x %{arm} aarch64
ExclusiveOS: Linux
%kernel_reqprovconf
@@ -574,10 +583,14 @@ Source54: config-powerpc64p7
Source70: config-s390x
+Source100: config-arm-generic
+
# Unified ARM kernels
-Source100: config-armv7-generic
-Source101: config-armv7
-Source102: config-armv7-lpae
+Source101: config-armv7-generic
+Source102: config-armv7
+Source103: config-armv7-lpae
+
+Source110: config-arm64
# This file is intentionally left empty in the stock kernel. Its a nicety
# added for those wanting to do custom rebuilds with altered config opts.
@@ -701,6 +714,9 @@ Patch14010: lis3-improve-handling-of-null-rate.patch
Patch15000: nowatchdog-on-virt.patch
+# ARM64
+
+Patch16000: arm64-makefile-vdso_install.patch
# ARM
@@ -1323,6 +1339,9 @@ ApplyPatch debug-bad-pte-modules.patch
# Architecture patches
# x86(-64)
+# ARM64
+ApplyPatch arm64-makefile-vdso_install.patch
+
#
# ARM
#
@@ -2291,11 +2310,24 @@ fi
# ||----w |
# || ||
%changelog
+* Fri Jun 14 2013 Kyle McMartin <kyle@redhat.com>
+- ARM64 support (config-arm64)
+ Split out some config-armv7-generic options common between 32-bit and 64-bit
+ ARM into a new config-arm-generic, and use that as a base for
+ both.
+ Buildable in rawhide, and F-19 by installing {gcc,binutils}-aarch64-linux-gnu
+ and running:
+ rpmbuild --rebuild --target $ARCH --with cross --without perf \
+ --without tools --without debuginfo --define "_arch aarch64" \
+ --define "_build_arch aarch64" \
+ --define "__strip /usr/bin/aarch64-linux-gnu-strip" kernel*.src.rpm
+ As rpm in F-19 doesn't have aarch64-linux macros yet.
+
* Thu Jun 13 2013 Kyle McMartin <kyle@redhat.com>
- Introduce infrastructure for cross-compiling Fedora kernels. Intended to
assist building for secondary architectures like ppc64, s390x, and arm.
To use, create an .src.rpm using "fedpkg srpm" and then run
- "rpmbuild --rebuild --with cross --without perf --without tools \
+ "rpmbuild --rebuild --target t --with cross --without perf --without tools \
kernel*.src.rpm" to cross compile. This requires binutils and gcc
packages named like %_target_cpu, which all but powerpc64 currently provides
in rawhide/F-19. Can't (currently) cross compile perf or kernel-tools, since