From de17203c855d17916e167d2889e3141f3f69dbb7 Mon Sep 17 00:00:00 2001 From: Zoltan Herpai Date: Thu, 4 Jul 2013 22:25:26 +0000 Subject: [PATCH] imx23: bump kernel to 3.10 - fix BOARDNAME - add profile for Olinuxino boards - prep image Makefile for u-boot inclusion, separate out bootlet build - update kernel config to reflect updated chipidea requirements - update rtc/watchdog config Signed-off-by: Zoltan HERPAI SVN-Revision: 37175 --- target/linux/imx23/Makefile | 11 ++- target/linux/imx23/config-default | 54 +++++++++---- target/linux/imx23/image/Makefile | 28 ++++--- target/linux/imx23/modules.mk | 27 +++++-- .../linux/imx23/patches/100-imx23-i2c.patch | 77 ------------------- target/linux/imx23/profiles/01-olinuxino.mk | 18 +++++ 6 files changed, 101 insertions(+), 114 deletions(-) delete mode 100644 target/linux/imx23/patches/100-imx23-i2c.patch create mode 100644 target/linux/imx23/profiles/01-olinuxino.mk diff --git a/target/linux/imx23/Makefile b/target/linux/imx23/Makefile index 0315b273ae..c9c5bb92d7 100644 --- a/target/linux/imx23/Makefile +++ b/target/linux/imx23/Makefile @@ -8,21 +8,20 @@ include $(TOPDIR)/rules.mk ARCH:=arm BOARD:=imx23 -BOARDNAME:=Olinuxino i.MX233 +BOARDNAME:=Freescale i.MX23 series FEATURES:=ext4 rtc usb gpio CFLAGS:=-Os -pipe -march=armv5te -mtune=arm926ej-s -fno-caller-saves MAINTAINER:=Zoltan HERPAI -LINUX_VERSION:=3.9.8 +LINUX_VERSION:=3.10 KERNELNAME:="zImage dtbs" -DEPENDS:=+imx-bootlets +#DEPENDS:=+imx-bootlets define Target/Description - Support for Olimex Olinuxino boards + Support for Freescale i.MX233-based boards endef include $(INCLUDE_DIR)/target.mk -DEFAULT_PACKAGES += dnsmasq imx-bootlets kmod-usb-chipidea kmod-usb-net kmod-usb-net-smsc95xx \ - kmod-wdt-stmp3xxx kmod-gpio-mcp23s08 kmod-leds-gpio kmod-ledtrig-heartbeat +DEFAULT_PACKAGES += kmod-wdt-stmp3xxx $(eval $(call BuildTarget)) diff --git a/target/linux/imx23/config-default b/target/linux/imx23/config-default index 3185b872bf..6b780554d4 100644 --- a/target/linux/imx23/config-default +++ b/target/linux/imx23/config-default @@ -4,6 +4,14 @@ CONFIG_ALIGNMENT_TRAP=y CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y +CONFIG_ARCH_MULTIPLATFORM=y +CONFIG_ARCH_MULTI_CPU_AUTO=y +# CONFIG_ARCH_MULTI_V4 is not set +# CONFIG_ARCH_MULTI_V4T is not set +CONFIG_ARCH_MULTI_V4_V5=y +CONFIG_ARCH_MULTI_V5=y +# CONFIG_ARCH_MULTI_V6 is not set +# CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_MXS=y # CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set CONFIG_ARCH_NR_GPIO=0 @@ -12,21 +20,24 @@ CONFIG_ARCH_REQUIRE_GPIOLIB=y # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +# CONFIG_ARCH_WM8505 is not set CONFIG_ARM=y CONFIG_ARM_AMBA=y CONFIG_ARM_APPENDED_DTB=y # CONFIG_ARM_ATAG_DTB_COMPAT is not set -# CONFIG_ARM_CPU_SUSPEND is not set +CONFIG_ARM_CPU_SUSPEND=y CONFIG_ARM_L1_CACHE_SHIFT=5 CONFIG_ARM_NR_BANKS=8 CONFIG_ARM_PATCH_PHYS_VIRT=y # CONFIG_ARM_SP805_WATCHDOG is not set CONFIG_ARM_THUMB=y CONFIG_ATAGS=y +CONFIG_AUTO_ZRELADDR=y # CONFIG_CACHE_L2X0 is not set CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_CLKDEV_LOOKUP=y CONFIG_CLKSRC_MMIO=y +CONFIG_CLKSRC_OF=y CONFIG_CLONE_BACKWARDS=y CONFIG_CMDLINE="console=ttyAMA0,115200 root=/dev/mmcblk0p2 rw rootwait" CONFIG_CMDLINE_FROM_BOOTLOADER=y @@ -42,7 +53,11 @@ CONFIG_CPU_CP15=y CONFIG_CPU_CP15_MMU=y # CONFIG_CPU_DCACHE_WRITETHROUGH is not set # CONFIG_CPU_ICACHE_DISABLE is not set +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y CONFIG_CPU_PABRT_LEGACY=y +CONFIG_CPU_PM=y CONFIG_CPU_TLB_V4WBI=y CONFIG_CPU_USE_DOMAINS=y CONFIG_CRC16=y @@ -66,7 +81,7 @@ CONFIG_GENERIC_ATOMIC64=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y -CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y CONFIG_GENERIC_IO=y CONFIG_GENERIC_IRQ_CHIP=y CONFIG_GENERIC_IRQ_SHOW=y @@ -93,6 +108,7 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_BPF_JIT=y CONFIG_HAVE_CLK=y CONFIG_HAVE_CLK_PREPARE=y +CONFIG_HAVE_CONTEXT_TRACKING=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_HAVE_DEBUG_KMEMLEAK=y CONFIG_HAVE_DMA_API_DEBUG=y @@ -104,6 +120,7 @@ CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_HAVE_GENERIC_HARDIRQS=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_LZO=y @@ -118,10 +135,12 @@ CONFIG_HAVE_PWM=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_UID16=y +CONFIG_HZ_PERIODIC=y CONFIG_I2C=y CONFIG_I2C_ALGOBIT=y CONFIG_I2C_ALGOPCA=y CONFIG_I2C_ALGOPCF=y +# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set CONFIG_I2C_BOARDINFO=y CONFIG_I2C_CHARDEV=y CONFIG_I2C_COMPAT=y @@ -144,7 +163,6 @@ CONFIG_KTIME_SCALAR=y # CONFIG_LEDS_REGULATOR is not set CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y -CONFIG_MACH_MXS_DT=y CONFIG_MDIO_BOARDINFO=y CONFIG_MMC=y CONFIG_MMC_BLOCK=y @@ -157,12 +175,11 @@ CONFIG_MXS_DMA=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_PER_CPU_KM=y # CONFIG_NET_DMA is not set -CONFIG_NET_VENDOR_WIZNET=y +# CONFIG_NET_IP_TUNNEL is not set CONFIG_NLS=y CONFIG_OF=y CONFIG_OF_ADDRESS=y CONFIG_OF_DEVICE=y -# CONFIG_OF_DISPLAY_TIMING is not set CONFIG_OF_EARLY_FLATTREE=y CONFIG_OF_FLATTREE=y CONFIG_OF_GPIO=y @@ -171,7 +188,6 @@ CONFIG_OF_IRQ=y CONFIG_OF_MDIO=y CONFIG_OF_MTD=y CONFIG_OF_NET=y -# CONFIG_OF_VIDEOMODE is not set CONFIG_OLD_SIGACTION=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_PAGEFLAGS_EXTENDED=y @@ -200,46 +216,54 @@ CONFIG_REGMAP_I2C=y CONFIG_REGMAP_SPI=y CONFIG_REGULATOR=y CONFIG_REGULATOR_DEBUG=y +# CONFIG_REGULATOR_DUMMY is not set CONFIG_REGULATOR_FIXED_VOLTAGE=y CONFIG_REGULATOR_GPIO=y +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +# CONFIG_RFKILL_REGULATOR is not set CONFIG_RTC_CLASS=y -# CONFIG_RTC_DRV_RX4581 is not set -CONFIG_RTC_DRV_STMP=y +# CONFIG_RTC_DRV_STMP is not set +# CONFIG_SAMSUNG_USB2PHY is not set +# CONFIG_SAMSUNG_USB3PHY is not set +# CONFIG_SAMSUNG_USBPHY is not set CONFIG_SCHED_HRTICK=y # CONFIG_SCSI_DMA is not set -# CONFIG_SERIAL_AMBA_PL010 is not set +CONFIG_SERIAL_AMBA_PL010=y +CONFIG_SERIAL_AMBA_PL010_CONSOLE=y CONFIG_SERIAL_AMBA_PL011=y CONFIG_SERIAL_AMBA_PL011_CONSOLE=y CONFIG_SERIAL_MXS_AUART=y -# CONFIG_SERIAL_MXS_AUART_CONSOLE is not set +CONFIG_SERIAL_MXS_AUART_CONSOLE=y CONFIG_SMSC_PHY=y CONFIG_SOC_IMX23=y CONFIG_SOC_IMX28=y CONFIG_SPARSE_IRQ=y CONFIG_SPI=y CONFIG_SPI_MASTER=y -CONFIG_SPI_MXS=y +# CONFIG_SPI_MXS is not set CONFIG_SPLIT_PTLOCK_CPUS=999999 -# CONFIG_STMP3XXX_RTC_WATCHDOG is not set CONFIG_STMP_DEVICE=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y +# CONFIG_TEGRA_HOST1X is not set CONFIG_TICK_CPU_ACCOUNTING=y CONFIG_UID16=y CONFIG_UIDGID_CONVERTED=y # CONFIG_UIDGID_STRICT_TYPE_CHECKS is not set +CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" CONFIG_USB=y # CONFIG_USB_ARCH_HAS_OHCI is not set # CONFIG_USB_ARCH_HAS_XHCI is not set CONFIG_USB_COMMON=y -# CONFIG_USB_EHCI_HCD is not set +CONFIG_USB_EHCI_HCD=y +# CONFIG_USB_EHCI_HCD_PLATFORM is not set # CONFIG_USB_MXS_PHY is not set +CONFIG_USB_OTG=y +CONFIG_USB_PHY=y CONFIG_USB_SUPPORT=y CONFIG_USE_OF=y CONFIG_VECTORS_BASE=0xffff0000 # CONFIG_VFP is not set CONFIG_WATCHDOG_CORE=y -# CONFIG_WIZNET_W5100 is not set -# CONFIG_WIZNET_W5300 is not set CONFIG_XZ_DEC_ARM=y CONFIG_XZ_DEC_BCJ=y CONFIG_ZBOOT_ROM_BSS=0 diff --git a/target/linux/imx23/image/Makefile b/target/linux/imx23/image/Makefile index fb84265f1d..3aeb21bf3c 100644 --- a/target/linux/imx23/image/Makefile +++ b/target/linux/imx23/image/Makefile @@ -4,21 +4,31 @@ # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # + include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/image.mk +define Image/BuildKernel/olinuxino-bootlet + cat $(LINUX_DIR)/arch/arm/boot/zImage $(LINUX_DIR)/arch/arm/boot/dts/imx23-olinuxino.dtb > $(STAGING_DIR)/zImage_dtb + (cd $(STAGING_DIR); \ + $(STAGING_DIR)/../host/bin/elftosb -z -c ./linux_prebuilt.db -o linux.sb; \ + dd if=/dev/zero of=sd_mmc_bootstream.raw bs=512 count=4; \ + dd if=linux.sb of=$(BIN_DIR)/openwrt-imx23-sbImage ibs=512 seek=4; \ + ) +endef + +define Image/BuildKernel + + ifeq ($(CONFIG_PACKAGE_imx-bootlets),y) + $(call Image/BuildKernel/olinuxino-bootlet) + endif + +endef + define Image/Build $(call Image/Build/$(1)) dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/$(IMG_PREFIX)-root.$(1) bs=128k conv=sync endef -define Image/BuildKernel - cat $(LINUX_DIR)/arch/arm/boot/zImage $(LINUX_DIR)/arch/arm/boot/dts/imx23-olinuxino.dtb > $(STAGING_DIR)/zImage_dtb - (cd $(STAGING_DIR); \ - ../host/bin/elftosb -z -c ./linux_prebuilt.db -o linux.sb \ - dd if=/dev/zero of=sd_mmc_bootstream.raw bs=512 count=4; \ - dd if=linux.sb of=$(BIN_DIR)/openwrt-imx23-sbImage ibs=512 seek=4; \ - ) -endef - $(eval $(call BuildImage)) + diff --git a/target/linux/imx23/modules.mk b/target/linux/imx23/modules.mk index 91faf513a0..1e27e415ac 100644 --- a/target/linux/imx23/modules.mk +++ b/target/linux/imx23/modules.mk @@ -4,13 +4,27 @@ # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. +define KernelPackage/rtc-stmp3xxx + SUBMENU:=$(OTHER_MENU) + TITLE:=STMP3xxx SoC built-in RTC support + DEPENDS:=@(TARGET_imx23) + $(call AddDepends/rtc) + KCONFIG:=\ + CONFIG_RTC_CLASS=y \ + CONFIG_RTC_DRV_STMP=m + FILES:=$(LINUX_DIR)/drivers/rtc/rtc-stmp3xxx.ko + AUTOLOAD:=$(call AutoLoad,50,rtc-stmp3xxx) +endef + +$(eval $(call KernelPackage,rtc-stmp3xxx)) + define KernelPackage/wdt-stmp3xxx SUBMENU:=$(OTHER_MENU) TITLE:=STMP3xxx Watchdog timer - DEPENDS:=@(TARGET_imx23) + DEPENDS:=kmod-rtc-stmp3xxx KCONFIG:=CONFIG_STMP3XXX_RTC_WATCHDOG FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/stmp3xxx_rtc_wdt.ko - AUTOLOAD:=$(call AutoLoad,50,stmp3xxx_rtc_wdt) + AUTOLOAD:=$(call AutoLoad,51,stmp3xxx_rtc_wdt) endef define KernelPackage/wdt-stmp3xxx/description @@ -18,9 +32,9 @@ define KernelPackage/wdt-stmp3xxx/description endef $(eval $(call KernelPackage,wdt-stmp3xxx)) + define KernelPackage/usb-chipidea TITLE:=Support for ChipIdea controllers - DEPENDS:=+kmod-usb2 +kmod-usb-mxs-phy KCONFIG:= \ CONFIG_USB_CHIPIDEA \ CONFIG_USB_CHIPIDEA_HOST=y \ @@ -40,11 +54,11 @@ $(eval $(call KernelPackage,usb-chipidea,1)) define KernelPackage/usb-mxs-phy TITLE:=Support for Freescale MXS USB PHY controllers - DEPENDS:=+kmod-usb2 + DEPENDS:=+kmod-usb-chipidea KCONFIG:= \ CONFIG_USB_MXS_PHY - FILES:=$(LINUX_DIR)/drivers/usb/otg/mxs-phy.ko - AUTOLOAD:=$(call AutoLoad,50,mxs-phy,1) + FILES:=$(LINUX_DIR)/drivers/usb/phy/phy-mxs-usb.ko + AUTOLOAD:=$(call AutoLoad,50,phy-mxs-usb,1) $(call AddDepends/usb) endef @@ -68,4 +82,3 @@ endef $(eval $(call KernelPackage,usb-net-smsc95xx)) - diff --git a/target/linux/imx23/patches/100-imx23-i2c.patch b/target/linux/imx23/patches/100-imx23-i2c.patch deleted file mode 100644 index 2a3fa1e3c1..0000000000 --- a/target/linux/imx23/patches/100-imx23-i2c.patch +++ /dev/null @@ -1,77 +0,0 @@ ---- a/arch/arm/boot/dts/imx23.dtsi -+++ b/arch/arm/boot/dts/imx23.dtsi -@@ -292,8 +292,42 @@ - fsl,voltage = <1>; - fsl,pull-up = <1>; - }; -- }; - -+ i2c0_pins_a: i2c0@0 { -+ reg = <0>; -+ fsl,pinmux-ids = < -+ 0x01e0 /* MX23_PAD_I2C_SCL__I2C_SCL */ -+ 0x01f0 /* MX23_PAD_I2C_SDA__I2C_SDA */ -+ >; -+ fsl,drive-strength = <1>; -+ fsl,voltage = <1>; -+ fsl,pull-up = <1>; -+ }; -+ -+ i2c1_pins_a: i2c1@0 { -+ reg = <0>; -+ fsl,pinmux-ids = < -+ 0x1171 /* MX23_PAD_LCD_ENABLE__I2C_SCL */ -+ 0x1181 /* MX23_PAD_LCD_HSYNC__I2C_SDA */ -+ >; -+ fsl,drive-strength = <1>; -+ fsl,voltage = <1>; -+ fsl,pull-up = <1>; -+ }; -+ -+ i2c2_pins_a: i2c2@0 { -+ reg = <0>; -+ fsl,pinmux-ids = < -+ 0x2031 /* MX23_PAD_SSP1_DATA1__I2C_SCL */ -+ 0x2041 /* MX23_PAD_SSP1_DATA2__I2C_SDA */ -+ >; -+ fsl,drive-strength = <1>; -+ fsl,voltage = <1>; -+ fsl,pull-up = <1>; -+ }; -+ -+ }; -+ - digctl@8001c000 { - reg = <0x8001c000 2000>; - status = "disabled"; -@@ -402,8 +436,14 @@ - status = "disabled"; - }; - -- i2c@80058000 { -+ i2c0: i2c@80058000 { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ compatible = "fsl,imx28-i2c"; - reg = <0x80058000 0x2000>; -+ interrupts = <27 26>; -+ clock-frequency = <100000>; -+ fsl,i2c-dma-channel = <3>; - status = "disabled"; - }; - ---- a/arch/arm/boot/dts/imx23-olinuxino.dts -+++ b/arch/arm/boot/dts/imx23-olinuxino.dts -@@ -68,6 +68,12 @@ - }; - - apbx@80040000 { -+ i2c0: i2c@80058000 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c1_pins_a>; -+ status = "okay"; -+ }; -+ - duart: serial@80070000 { - pinctrl-names = "default"; - pinctrl-0 = <&duart_pins_a>; diff --git a/target/linux/imx23/profiles/01-olinuxino.mk b/target/linux/imx23/profiles/01-olinuxino.mk new file mode 100644 index 0000000000..45986531ad --- /dev/null +++ b/target/linux/imx23/profiles/01-olinuxino.mk @@ -0,0 +1,18 @@ +# +# Copyright (C) 2012 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Profile/olinuxino + NAME:=Olimex Olinuxino boards + PACKAGES += imx-bootlets kmod-usb-mxs-phy kmod-usb-net kmod-usb-net-smsc95xx \ + kmod-gpio-mcp23s08 kmod-leds-gpio kmod-ledtrig-heartbeat kmod-rtc-stmp3xxx +endef + +define Profile/olinuxino/Description + Olimex Olinuxino boards +endef +$(eval $(call Profile,olinuxino)) +