From 534352f358b444bf67c24181516d90d4ca59ed46 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Fri, 9 Dec 2011 13:29:38 -0600 Subject: [PATCH] iadd support for building highbank, imx and kirkwood kernel images on arm --- Makefile.config | 26 ++++++++++++++ config-arm-highbank | 3 ++ config-arm-imx | 75 +++++++++++++++++++++++++++++++++++++++ config-arm-kirkwood | 43 ++++++++++++++++++++++ kernel.spec | 61 ++++++++++++++++++++++++++++++- pci-fix-ats-compile.patch | 26 ++++++++++++++ 6 files changed, 233 insertions(+), 1 deletion(-) create mode 100644 config-arm-highbank create mode 100644 config-arm-imx create mode 100644 config-arm-kirkwood create mode 100644 pci-fix-ats-compile.patch diff --git a/Makefile.config b/Makefile.config index df66aad19..331aa46b9 100644 --- a/Makefile.config +++ b/Makefile.config @@ -10,7 +10,9 @@ CONFIGFILES = \ $(CFG)-x86_64.config $(CFG)-x86_64-debug.config \ $(CFG)-s390x.config \ $(CFG)-arm.config $(CFG)-armv5tel.config \ + $(CFG)-armv5tel-kirkwood.config $(CFG)-armv7l-imx.config \ $(CFG)-armv7l-omap.config $(CFG)-armv7l-tegra.config \ + $(CFG)-armv7hl-imx.config $(CFG)-armv7hl-highbank.config \ $(CFG)-armv7hl-omap.config $(CFG)-armv7hl-tegra.config \ $(CFG)-ppc.config $(CFG)-ppc-smp.config \ $(CFG)-sparc64.config \ @@ -43,6 +45,15 @@ temp-armv7l-omap-generic: config-arm-omap-generic temp-arm-generic temp-armv7l-tegra: config-arm-tegra temp-arm-generic perl merge.pl $^ > $@ +temp-armv5tel-kirkwood: config-arm-kirkwood temp-arm-generic + perl merge.pl $^ > $@ + +temp-armv7l-imx: config-arm-imx temp-arm-generic + perl merge.pl $^ > $@ + +temp-armv7l-highbank: config-arm-highbank temp-arm-generic + perl merge.pl $^ > $@ + temp-x86-32: config-x86-32-generic config-x86-generic perl merge.pl $^ > $@ @@ -112,12 +123,27 @@ kernel-$(VERSION)-arm.config: /dev/null temp-arm-generic kernel-$(VERSION)-armv5tel.config: /dev/null temp-arm-generic perl merge.pl $^ arm > $@ +kernel-$(VERSION)-armv5tel-kirkwood.config: /dev/null temp-armv5tel-kirkwood + perl merge.pl $^ arm > $@ + +kernel-$(VERSION)-armv7l-imx.config: /dev/null temp-armv7l-imx + perl merge.pl $^ arm > $@ + +kernel-$(VERSION)-armv7l-highbank.config: /dev/null temp-armv7l-highbank + perl merge.pl $^ arm > $@ + kernel-$(VERSION)-armv7l-omap.config: /dev/null temp-armv7l-omap-generic perl merge.pl $^ arm > $@ kernel-$(VERSION)-armv7l-tegra.config: /dev/null temp-armv7l-tegra perl merge.pl $^ arm > $@ +kernel-$(VERSION)-armv7hl-imx.config: /dev/null temp-armv7l-imx + perl merge.pl $^ arm > $@ + +kernel-$(VERSION)-armv7hl-highbank.config: /dev/null temp-armv7l-highbank + perl merge.pl $^ arm > $@ + kernel-$(VERSION)-armv7hl-omap.config: /dev/null temp-armv7l-omap-generic perl merge.pl $^ arm > $@ diff --git a/config-arm-highbank b/config-arm-highbank new file mode 100644 index 000000000..18fc0c4cc --- /dev/null +++ b/config-arm-highbank @@ -0,0 +1,3 @@ +ONFIG_ARCH_HIGHBANK=y +CONFIG_VFP=y +CONFIG_NEON=y diff --git a/config-arm-imx b/config-arm-imx new file mode 100644 index 000000000..a491b8cab --- /dev/null +++ b/config-arm-imx @@ -0,0 +1,75 @@ +CONFIG_ARCH_MXC=y +CONFIG_ARCH_MX51=y +CONFIG_MACH_MX51_BABBAGE=y +CONFIG_MACH_MX51_3DS=y +CONFIG_MACH_EUKREA_CPUIMX51=y +CONFIG_VFP=y +CONFIG_NEON=y + +CONFIG_MACH_MX31ADS=y +CONFIG_MACH_MX31LILLY=y +CONFIG_MACH_MX31LITE=y +CONFIG_MACH_PCM037=y +CONFIG_MACH_MX31_3DS=y +CONFIG_MACH_MX31MOBOARD=y +CONFIG_MACH_QONG=y +CONFIG_MACH_ARMADILLO5X0=y +CONFIG_MACH_KZM_ARM11_01=y +CONFIG_MACH_BUG=y +CONFIG_MACH_PCM043=y +CONFIG_MACH_MX35_3DS=y +CONFIG_MACH_EUKREA_CPUIMX35=y +CONFIG_MACH_VPR200=y +CONFIG_SOC_IMX6Q=y +CONFIG_MXC_IRQ_PRIOR=y +CONFIG_MXC_PWM=m +CONFIG_MXC_DEBUG_BOARD=y +# CONFIG_CPU_BPREDICT_DISABLE is not set +# CONFIG_CACHE_L2X0 is not set +CONFIG_ARM_DMA_MEM_BUFFERABLE=y +CONFIG_ARM_ERRATA_411920=y +CONFIG_PL310_ERRATA_588369=y +CONFIG_PL310_ERRATA_727915=y +CONFIG_ARM_ERRATA_364296=y +CONFIG_HW_PERF_EVENTS=y +CONFIG_RFKILL_GPIO=m +CONFIG_PATA_IMX=m +CONFIG_ETHERNET=y +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_NET_VENDOR_FREESCALE=y +CONFIG_FEC=y +CONFIG_KEYBOARD_IMX=m +CONFIG_SERIAL_IMX=y +CONFIG_HW_RANDOM_MXC_RNGA=m +CONFIG_I2C_IMX=m +CONFIG_GPIO_GENERIC_PLATFORM=y +CONFIG_GPIO_MCP23S08=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_PLL=m +CONFIG_SND_IMX_SOC=m +CONFIG_USB_EHCI_MXC=y +CONFIG_USB_IMX21_HCD=m +CONFIG_MMC_SDHCI_ESDHC_IMX=m +CONFIG_MMC_MXC=m +CONFIG_RTC_MXC=m + +CONFIG_BACKLIGHT_PWM=m +CONFIG_LEDS_PWM=m + +CONFIG_MACH_PCM037_EET=y +# CONFIG_MACH_MX31_3DS_MXC_NAND_USE_BBT is not set +CONFIG_MXC_USE_EPIT=y +CONFIG_ARM_THUMBEE=y +CONFIG_ARM_ERRATA_430973=y +CONFIG_ARM_ERRATA_458693=y +CONFIG_ARM_ERRATA_460075=y +CONFIG_ARM_ERRATA_743622=y +CONFIG_ARM_ERRATA_754322=y +CONFIG_CAN_FLEXCAN=m +CONFIG_MTD_NAND_MXC=m +CONFIG_INPUT_PWM_BEEPER=m +CONFIG_SERIAL_IMX_CONSOLE=y +CONFIG_IMX2_WDT=m +CONFIG_SND_SOC_PHYCORE_AC97=m +CONFIG_SND_SOC_EUKREA_TLV320=m + diff --git a/config-arm-kirkwood b/config-arm-kirkwood new file mode 100644 index 000000000..6aa045cd9 --- /dev/null +++ b/config-arm-kirkwood @@ -0,0 +1,43 @@ +CONFIG_ARCH_KIRKWOOD=y +CONFIG_MACH_DB88F6281_BP=y +CONFIG_MACH_RD88F6192_NAS=y +CONFIG_MACH_RD88F6281=y +CONFIG_MACH_MV88F6281GTW_GE=y +CONFIG_MACH_SHEEVAPLUG=y +CONFIG_MACH_ESATA_SHEEVAPLUG=y +CONFIG_MACH_GURUPLUG=y +CONFIG_MACH_DOCKSTAR=y +CONFIG_MACH_TS219=y +CONFIG_MACH_TS41X=y +CONFIG_MACH_OPENRD_BASE=y +CONFIG_MACH_OPENRD_CLIENT=y +CONFIG_MACH_OPENRD_ULTIMATE=y +CONFIG_MACH_NETSPACE_V2=y +CONFIG_MACH_INETSPACE_V2=y +CONFIG_MACH_NETSPACE_MAX_V2=y +CONFIG_MACH_D2NET_V2=y +CONFIG_MACH_NET2BIG_V2=y +CONFIG_MACH_NET5BIG_V2=y +CONFIG_MACH_T5325=y +# CONFIG_CPU_FEROCEON_OLD_ID is not set + + +CONFIG_CACHE_FEROCEON_L2=y +CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH=y +CONFIG_MTD_NAND_ORION=m +CONFIG_MV643XX_ETH=m +CONFIG_I2C_MV64XXX=m +CONFIG_GPIO_GENERIC_PLATFORM=y +CONFIG_GPIO_MCP23S08=m +CONFIG_ORION_WATCHDOG=m +CONFIG_SND_KIRKWOOD_SOC=m +CONFIG_SND_KIRKWOOD_SOC_OPENRD=m +CONFIG_SND_KIRKWOOD_SOC_T5325=m +CONFIG_MMC_MVSDIO=m +CONFIG_LEDS_NS2=m +CONFIG_LEDS_NETXBIG=m +CONFIG_RTC_DRV_MV=m +CONFIG_MV_XOR=y +CONFIG_CRYPTO_DEV_MV_CESA=m + + diff --git a/kernel.spec b/kernel.spec index 933a1f1f1..00261c4cd 100644 --- a/kernel.spec +++ b/kernel.spec @@ -128,6 +128,12 @@ Summary: The Linux kernel %define with_omap %{?_without_omap: 0} %{?!_without_omap: 1} # kernel-tegra (only valid for arm) %define with_tegra %{?_without_tegra: 0} %{?!_without_tegra: 1} +# kernel-kirkwood (only valid for arm) +%define with_kirkwood %{?_without_kirkwood: 0} %{?!_without_kirkwood: 1} +# kernel-imx (only valid for arm) +%define with_imx %{?_without_imx: 0} %{?!_without_imx: 1} +# kernel-highbank (only valid for arm) +%define with_highbank %{?_without_highbank: 0} %{?!_without_highbank: 1} # # Additional options for user-friendly one-off kernel building: # @@ -258,10 +264,17 @@ Summary: The Linux kernel %define with_pae 0 %endif -# kernel-tegra and omap is only built on armv7 hard and softfp +# kernel-tegra, omap, imx and highbank are only built on armv7 hard and softfp %ifnarch armv7hl armv7l %define with_tegra 0 %define with_omap 0 +%define with_imx 0 +%define with_highbank 0 +%endif + +# kernel-kirkwood is only built for armv5 +%ifnarch armv5tel +%define with_kirkwood 0 %endif # if requested, only build base kernel @@ -583,6 +596,9 @@ Source90: config-sparc64-generic Source100: config-arm-generic Source110: config-arm-omap-generic Source111: config-arm-tegra +Source112: config-arm-kirkwood +Source113: config-arm-imx +Source114: config-arm-highbank Source200: config-backports @@ -716,6 +732,7 @@ Patch20000: utrace.patch # Flattened devicetree support Patch21000: arm-omap-dt-compat.patch Patch21001: arm-smsc-support-reading-mac-address-from-device-tree.patch +Patch21002: pci-fix-ats-compile.patch Patch21080: sysfs-msi-irq-per-device.patch @@ -1001,6 +1018,23 @@ This variant of the kernel has numerous debugging options enabled. It should only be installed when trying to gather additional information on kernel bugs, as some of these options impact performance noticably. +%define variant_summary The Linux kernel compiled for marvell kirkwood boards +%kernel_variant_package kirkwood +%description kirkwood +This package includes a version of the Linux kernel with support for +marvell kirkwood based systems, i.e., guruplug, sheevaplug + +%define variant_summary The Linux kernel compiled for freescale boards +%kernel_variant_package imx +%description imx +This package includes a version of the Linux kernel with support for +freescale based systems, i.e., efika smartbook. + +%define variant_summary The Linux kernel compiled for Calxeda boards +%kernel_variant_package highbank +%description highbank +This package includes a version of the Linux kernel with support for +Calxeda based systems, i.e., HP arm servers. %define variant_summary The Linux kernel compiled for TI-OMAP boards %kernel_variant_package omap @@ -1279,6 +1313,7 @@ ApplyPatch linux-2.6-i386-nx-emulation.patch # ApplyPatch arm-omap-dt-compat.patch ApplyPatch arm-smsc-support-reading-mac-address-from-device-tree.patch +ApplyPatch pci-fix-ats-compile.patch # # bugfixes to drivers and filesystems @@ -1806,6 +1841,18 @@ BuildKernel %make_target %kernel_image PAEdebug BuildKernel %make_target %kernel_image PAE %endif +%if %{with_kirkwood} +BuildKernel %make_target %kernel_image kirkwood +%endif + +%if %{with_imx} +BuildKernel %make_target %kernel_image imx +%endif + +%if %{with_highbank} +BuildKernel %make_target %kernel_image highbank +%endif + %if %{with_omap} BuildKernel %make_target %kernel_image omap %endif @@ -2071,6 +2118,15 @@ fi}\ %kernel_variant_post -v PAEdebug -r (kernel|kernel-smp) %kernel_variant_preun PAEdebug +%kernel_variant_preun kirkwood +%kernel_variant_post -v kirkwood + +%kernel_variant_preun imx +%kernel_variant_post -v imx + +%kernel_variant_preun highbank +%kernel_variant_post -v highbank + %kernel_variant_preun omap %kernel_variant_post -v omap @@ -2207,6 +2263,9 @@ fi %kernel_variant_files %{with_debug} debug %kernel_variant_files %{with_pae} PAE %kernel_variant_files %{with_pae_debug} PAEdebug +%kernel_variant_files %{with_kirkwood} kirkwood +%kernel_variant_files %{with_imx} imx +%kernel_variant_files %{with_highbank} highbank %kernel_variant_files %{with_omap} omap %kernel_variant_files %{with_tegra} tegra diff --git a/pci-fix-ats-compile.patch b/pci-fix-ats-compile.patch new file mode 100644 index 000000000..1dcb7e967 --- /dev/null +++ b/pci-fix-ats-compile.patch @@ -0,0 +1,26 @@ +I get this compile failure on parisc: + +drivers/pci/ats.c: In function 'ats_alloc_one': +drivers/pci/ats.c:29: error: implicit declaration of function 'kzalloc' +drivers/pci/ats.c:29: warning: assignment makes pointer from integer without a cast +drivers/pci/ats.c: In function 'ats_free_one': +drivers/pci/ats.c:45: error: implicit declaration of function 'kfree' + +Because ats.c is missing linux/slab.h as an include. This patch fixes it + +Signed-off-by: James Bottomley + +--- + +diff --git a/drivers/pci/ats.c b/drivers/pci/ats.c +index 7ec56fb..b0dd08e 100644 +--- a/drivers/pci/ats.c ++++ b/drivers/pci/ats.c +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + + #include "pci.h" +