imx23: add new target for i.MX233-based boards
authorZoltan Herpai <wigyori@uid0.hu>
Thu, 27 Jun 2013 10:12:03 +0000 (10:12 +0000)
committerZoltan Herpai <wigyori@uid0.hu>
Thu, 27 Jun 2013 10:12:03 +0000 (10:12 +0000)
Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
SVN-Revision: 37038

target/linux/imx23/Makefile [new file with mode: 0644]
target/linux/imx23/base-files/etc/inittab [new file with mode: 0644]
target/linux/imx23/config-default [new file with mode: 0644]
target/linux/imx23/image/Makefile [new file with mode: 0644]
target/linux/imx23/modules.mk [new file with mode: 0644]
target/linux/imx23/patches/100-imx23-i2c.patch [new file with mode: 0644]

diff --git a/target/linux/imx23/Makefile b/target/linux/imx23/Makefile
new file mode 100644 (file)
index 0000000..4aacb49
--- /dev/null
@@ -0,0 +1,28 @@
+#
+# Copyright (C) 2013 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+include $(TOPDIR)/rules.mk
+
+ARCH:=arm
+BOARD:=imx23
+BOARDNAME:=Olinuxino i.MX233
+FEATURES:=ext4 rtc usb gpio
+CFLAGS:=-Os -pipe -march=armv5te -mtune=arm926ej-s -fno-caller-saves
+MAINTAINER:=Zoltan HERPAI <wigyori@uid0.hu>
+LINUX_VERSION:=3.9.4
+KERNELNAME:="zImage dtbs"
+DEPENDS:=+imx-bootlets
+
+define Target/Description
+       Support for Olimex Olinuxino 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
+
+$(eval $(call BuildTarget))
diff --git a/target/linux/imx23/base-files/etc/inittab b/target/linux/imx23/base-files/etc/inittab
new file mode 100644 (file)
index 0000000..09359b7
--- /dev/null
@@ -0,0 +1,3 @@
+::sysinit:/etc/init.d/rcS S boot
+::shutdown:/etc/init.d/rcS K shutdown
+ttyAMA0::askfirst:/bin/ash --login
diff --git a/target/linux/imx23/config-default b/target/linux/imx23/config-default
new file mode 100644 (file)
index 0000000..3185b87
--- /dev/null
@@ -0,0 +1,247 @@
+CONFIG_ALIGNMENT_TRAP=y
+# CONFIG_AMBA_PL08X is not set
+# CONFIG_APM_EMULATION is not set
+CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
+CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
+CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
+CONFIG_ARCH_MXS=y
+# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
+CONFIG_ARCH_NR_GPIO=0
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
+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_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_CACHE_L2X0 is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_CLKSRC_MMIO=y
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_CMDLINE="console=ttyAMA0,115200 root=/dev/mmcblk0p2 rw rootwait"
+CONFIG_CMDLINE_FROM_BOOTLOADER=y
+CONFIG_COMMON_CLK=y
+CONFIG_COREDUMP=y
+CONFIG_CPU_32v5=y
+CONFIG_CPU_ABRT_EV5TJ=y
+CONFIG_CPU_ARM926T=y
+# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_COPY_V4WB=y
+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_PABRT_LEGACY=y
+CONFIG_CPU_TLB_V4WBI=y
+CONFIG_CPU_USE_DOMAINS=y
+CONFIG_CRC16=y
+CONFIG_CROSS_MEMORY_ATTACH=y
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
+# CONFIG_DEBUG_PINCTRL is not set
+# CONFIG_DEBUG_USER is not set
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DMADEVICES=y
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_OF=y
+CONFIG_DTC=y
+CONFIG_EXT4_FS=y
+CONFIG_FEC=y
+CONFIG_FRAME_POINTER=y
+CONFIG_FS_MBCACHE=y
+CONFIG_GENERIC_ATOMIC64=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_IO=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_DEVRES=y
+CONFIG_GPIO_GENERIC=y
+CONFIG_GPIO_MXS=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_HAS_DMA=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
+CONFIG_HAVE_AOUT=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_HAVE_ARCH_PFN_VALID=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
+CONFIG_HAVE_BPF_JIT=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_HAVE_NET_DSA=y
+CONFIG_HAVE_OPROFILE=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_HAVE_PROC_CPU=y
+CONFIG_HAVE_PWM=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_UID16=y
+CONFIG_I2C=y
+CONFIG_I2C_ALGOBIT=y
+CONFIG_I2C_ALGOPCA=y
+CONFIG_I2C_ALGOPCF=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_DEBUG_ALGO=y
+CONFIG_I2C_DEBUG_BUS=y
+CONFIG_I2C_DEBUG_CORE=y
+CONFIG_I2C_MUX=y
+# CONFIG_I2C_MUX_GPIO is not set
+# CONFIG_I2C_MUX_PCA9541 is not set
+# CONFIG_I2C_MUX_PCA954x is not set
+CONFIG_I2C_MUX_PINCTRL=y
+CONFIG_I2C_MXS=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_IRQCHIP=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_WORK=y
+# CONFIG_ISDN is not set
+CONFIG_JBD2=y
+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
+CONFIG_MMC_MXS=y
+CONFIG_MODULES_USE_ELF_REL=y
+CONFIG_MTD_OF_PARTS=y
+# CONFIG_MTD_PHYSMAP_OF is not set
+CONFIG_MULTI_IRQ_HANDLER=y
+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_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
+CONFIG_OF_I2C=y
+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
+CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_PCI_SYSCALL is not set
+CONFIG_PERF_USE_VMALLOC=y
+CONFIG_PHYLIB=y
+CONFIG_PINCONF=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX23=y
+CONFIG_PINCTRL_IMX28=y
+CONFIG_PINCTRL_MXS=y
+# CONFIG_PINCTRL_SINGLE is not set
+CONFIG_PINMUX=y
+# CONFIG_PL330_DMA is not set
+CONFIG_PM=y
+CONFIG_PM_CLK=y
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_RUNTIME=y
+CONFIG_PPS=y
+# CONFIG_PREEMPT_RCU is not set
+CONFIG_PTP_1588_CLOCK=y
+# CONFIG_RCU_STALL_COMMON is not set
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_SPI=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_DEBUG=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_GPIO=y
+CONFIG_RTC_CLASS=y
+# CONFIG_RTC_DRV_RX4581 is not set
+CONFIG_RTC_DRV_STMP=y
+CONFIG_SCHED_HRTICK=y
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SERIAL_AMBA_PL010 is not set
+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_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_SPLIT_PTLOCK_CPUS=999999
+# CONFIG_STMP3XXX_RTC_WATCHDOG is not set
+CONFIG_STMP_DEVICE=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_TICK_CPU_ACCOUNTING=y
+CONFIG_UID16=y
+CONFIG_UIDGID_CONVERTED=y
+# CONFIG_UIDGID_STRICT_TYPE_CHECKS is not set
+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_MXS_PHY is not set
+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
+CONFIG_ZBOOT_ROM_TEXT=0
+CONFIG_ZONE_DMA_FLAG=0
diff --git a/target/linux/imx23/image/Makefile b/target/linux/imx23/image/Makefile
new file mode 100644 (file)
index 0000000..fb84265
--- /dev/null
@@ -0,0 +1,24 @@
+#
+# Copyright (C) 2013 OpenWrt.org
+#
+# 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/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
new file mode 100644 (file)
index 0000000..91faf51
--- /dev/null
@@ -0,0 +1,71 @@
+#
+# Copyright (C) 2013 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+
+define KernelPackage/wdt-stmp3xxx
+    SUBMENU:=$(OTHER_MENU)
+    TITLE:=STMP3xxx Watchdog timer
+    DEPENDS:=@(TARGET_imx23)
+    KCONFIG:=CONFIG_STMP3XXX_RTC_WATCHDOG
+    FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/stmp3xxx_rtc_wdt.ko
+    AUTOLOAD:=$(call AutoLoad,50,stmp3xxx_rtc_wdt)
+endef
+
+define KernelPackage/wdt-stmp3xxx/description
+    Kernel module for STMP3xxx watchdog timer.
+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 \
+       CONFIG_USB_CHIPIDEA_DEBUG=y
+    FILES:=\
+       $(LINUX_DIR)/drivers/usb/chipidea/ci_hdrc.ko \
+       $(LINUX_DIR)/drivers/usb/chipidea/ci13xxx_imx.ko
+    AUTOLOAD:=$(call AutoLoad,51,ci_hdrc ci13xxx_imx,1)
+    $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-chipidea/description
+    Kernel support for USB ChipIdea controllers
+endef
+
+$(eval $(call KernelPackage,usb-chipidea,1))
+
+define KernelPackage/usb-mxs-phy
+    TITLE:=Support for Freescale MXS USB PHY controllers
+    DEPENDS:=+kmod-usb2
+    KCONFIG:= \
+       CONFIG_USB_MXS_PHY
+       FILES:=$(LINUX_DIR)/drivers/usb/otg/mxs-phy.ko
+    AUTOLOAD:=$(call AutoLoad,50,mxs-phy,1)
+    $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-mxs-phy/description
+    Kernel support for Freescale MXS USB PHY controllers
+endef
+
+$(eval $(call KernelPackage,usb-mxs-phy,1))
+
+define KernelPackage/usb-net-smsc95xx
+    TITLE:=SMSC95xx USB/2.0 Ethernet driver
+    KCONFIG:=CONFIG_USB_NET_SMSC95XX
+    FILES:=$(LINUX_DIR)/drivers/net/usb/smsc95xx.ko
+    AUTOLOAD:=$(call AutoLoad,64,smsc95xx)
+    $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-smsc95xx/description
+    Kernel support for SMSC95xx USB/2.0 Ethernet driver
+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
new file mode 100644 (file)
index 0000000..096d0ac
--- /dev/null
@@ -0,0 +1,79 @@
+diff -ruN linux-3.8.11.orig/arch/arm/boot/dts/imx23.dtsi linux-3.8.11/arch/arm/boot/dts/imx23.dtsi
+--- linux-3.8.11.orig/arch/arm/boot/dts/imx23.dtsi     2013-05-01 18:56:10.000000000 +0200
++++ linux-3.8.11/arch/arm/boot/dts/imx23.dtsi  2013-05-07 01:17:33.000000000 +0200
+@@ -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";
+@@ -400,8 +434,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";
+                       };
+diff -ruN linux-3.8.11.orig/arch/arm/boot/dts/imx23-olinuxino.dts linux-3.8.11/arch/arm/boot/dts/imx23-olinuxino.dts
+--- linux-3.8.11.orig/arch/arm/boot/dts/imx23-olinuxino.dts    2013-05-01 18:56:10.000000000 +0200
++++ linux-3.8.11/arch/arm/boot/dts/imx23-olinuxino.dts 2013-05-07 01:16:41.000000000 +0200
+@@ -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>;