armadeus-commitlog Mailing List for armadeus (Page 100)
Brought to you by:
sszy
You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(43) |
Feb
(8) |
Mar
(7) |
Apr
(8) |
May
(14) |
Jun
(6) |
Jul
(4) |
Aug
(17) |
Sep
(18) |
Oct
(19) |
Nov
(52) |
Dec
(30) |
| 2008 |
Jan
(6) |
Feb
(6) |
Mar
(15) |
Apr
(22) |
May
(13) |
Jun
(11) |
Jul
(41) |
Aug
(10) |
Sep
(14) |
Oct
(21) |
Nov
(4) |
Dec
(66) |
| 2009 |
Jan
(67) |
Feb
(57) |
Mar
(90) |
Apr
(54) |
May
(64) |
Jun
(76) |
Jul
(14) |
Aug
(18) |
Sep
(18) |
Oct
(20) |
Nov
(15) |
Dec
(36) |
| 2010 |
Jan
(28) |
Feb
(25) |
Mar
(32) |
Apr
(23) |
May
(22) |
Jun
(62) |
Jul
(36) |
Aug
(16) |
Sep
(12) |
Oct
(20) |
Nov
(44) |
Dec
(25) |
| 2011 |
Jan
(36) |
Feb
(49) |
Mar
(28) |
Apr
(38) |
May
(26) |
Jun
(52) |
Jul
(33) |
Aug
(32) |
Sep
(19) |
Oct
(26) |
Nov
(13) |
Dec
(32) |
| 2012 |
Jan
(38) |
Feb
(34) |
Mar
(91) |
Apr
(35) |
May
(31) |
Jun
(72) |
Jul
(23) |
Aug
(13) |
Sep
(33) |
Oct
(47) |
Nov
(18) |
Dec
(22) |
| 2013 |
Jan
(31) |
Feb
(22) |
Mar
(26) |
Apr
(11) |
May
(38) |
Jun
(15) |
Jul
(37) |
Aug
(68) |
Sep
(34) |
Oct
(11) |
Nov
(26) |
Dec
(31) |
| 2014 |
Jan
(60) |
Feb
(55) |
Mar
(21) |
Apr
(31) |
May
(17) |
Jun
(35) |
Jul
(24) |
Aug
(17) |
Sep
(11) |
Oct
(23) |
Nov
(10) |
Dec
(23) |
| 2015 |
Jan
(15) |
Feb
(34) |
Mar
(46) |
Apr
(23) |
May
(12) |
Jun
(14) |
Jul
(18) |
Aug
(22) |
Sep
(6) |
Oct
(2) |
Nov
(1) |
Dec
(6) |
| 2016 |
Jan
(5) |
Feb
(7) |
Mar
(10) |
Apr
(10) |
May
(17) |
Jun
(6) |
Jul
(4) |
Aug
(6) |
Sep
(22) |
Oct
(8) |
Nov
(9) |
Dec
(5) |
| 2017 |
Jan
(11) |
Feb
(12) |
Mar
(27) |
Apr
(9) |
May
(1) |
Jun
(5) |
Jul
(11) |
Aug
(10) |
Sep
(6) |
Oct
(10) |
Nov
(4) |
Dec
(6) |
| 2018 |
Jan
(6) |
Feb
(13) |
Mar
(9) |
Apr
(7) |
May
(10) |
Jun
(9) |
Jul
(21) |
Aug
(13) |
Sep
(10) |
Oct
(4) |
Nov
(6) |
Dec
(1) |
| 2019 |
Jan
(6) |
Feb
(2) |
Mar
(5) |
Apr
(6) |
May
(19) |
Jun
(14) |
Jul
(18) |
Aug
(3) |
Sep
(5) |
Oct
(7) |
Nov
(8) |
Dec
(4) |
| 2020 |
Jan
(10) |
Feb
(3) |
Mar
(9) |
Apr
(7) |
May
(2) |
Jun
(18) |
Jul
(3) |
Aug
|
Sep
|
Oct
(7) |
Nov
|
Dec
(1) |
| 2021 |
Jan
(9) |
Feb
(6) |
Mar
(4) |
Apr
(11) |
May
(7) |
Jun
(5) |
Jul
(2) |
Aug
(4) |
Sep
(10) |
Oct
(9) |
Nov
(5) |
Dec
|
| 2022 |
Jan
(2) |
Feb
(12) |
Mar
(3) |
Apr
(5) |
May
(1) |
Jun
(3) |
Jul
(2) |
Aug
(1) |
Sep
(4) |
Oct
(4) |
Nov
(1) |
Dec
(3) |
| 2023 |
Jan
(5) |
Feb
(3) |
Mar
(3) |
Apr
(2) |
May
(1) |
Jun
(3) |
Jul
(3) |
Aug
(2) |
Sep
(1) |
Oct
(1) |
Nov
|
Dec
(4) |
| 2024 |
Jan
(2) |
Feb
(3) |
Mar
(8) |
Apr
(4) |
May
(1) |
Jun
(13) |
Jul
(7) |
Aug
(1) |
Sep
(6) |
Oct
(5) |
Nov
(11) |
Dec
(7) |
| 2025 |
Jan
(3) |
Feb
(1) |
Mar
(6) |
Apr
(4) |
May
(4) |
Jun
(1) |
Jul
(1) |
Aug
(7) |
Sep
(4) |
Oct
(4) |
Nov
(4) |
Dec
(1) |
| 2026 |
Jan
(3) |
Feb
(7) |
Mar
(3) |
Apr
(1) |
May
(6) |
Jun
(3) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Julien B a. A. <ar...@us...> - 2011-01-03 15:03:45
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 293f7fa6dec6b0421ca1a368138e201579e9c794 (commit)
via 6141a31584449b2991d2b0a5f7001856db4390a0 (commit)
from 11a2f51b711f128402004086f2d7607225ca7046 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 293f7fa6dec6b0421ca1a368138e201579e9c794
Merge: 6141a31584449b2991d2b0a5f7001856db4390a0 11a2f51b711f128402004086f2d7607225ca7046
Author: Julien Boibessot <jul...@ar...>
Date: Mon Jan 3 16:03:21 2011 +0100
Merge branch 'master' of ssh://artemys@armadeus.git.sourceforge.net/gitroot/armadeus/armadeus
commit 6141a31584449b2991d2b0a5f7001856db4390a0
Author: Julien Boibessot <jul...@ar...>
Date: Mon Jan 3 16:03:00 2011 +0100
[LINUX] 2.6.28-alpha: APF51, cleanup USB code in platform support file
-----------------------------------------------------------------------
Summary of changes:
.../armadeus/apf51/apf51-linux-2.6.38.config | 26 +++--
.../2.6.38/400-armadeus-add_apf51_module.patch | 111 +-------------------
.../408-armadeus-add_apf51-dev_baseboard.patch | 22 +++-
3 files changed, 38 insertions(+), 121 deletions(-)
diff --git a/buildroot/target/device/armadeus/apf51/apf51-linux-2.6.38.config b/buildroot/target/device/armadeus/apf51/apf51-linux-2.6.38.config
index e472ecc..f42da2c 100644
--- a/buildroot/target/device/armadeus/apf51/apf51-linux-2.6.38.config
+++ b/buildroot/target/device/armadeus/apf51/apf51-linux-2.6.38.config
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux/arm 2.6.37-rc4 Kernel Configuration
-# Wed Dec 29 09:45:32 2010
+# Mon Jan 3 15:56:42 2011
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -968,6 +968,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
CONFIG_TOUCHSCREEN_WM831X=m
+# CONFIG_TOUCHSCREEN_WM97XX is not set
# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
# CONFIG_TOUCHSCREEN_TSC2007 is not set
@@ -1149,6 +1150,7 @@ CONFIG_WM831X_POWER=m
# CONFIG_BATTERY_BQ20Z75 is not set
# CONFIG_BATTERY_BQ27x00 is not set
# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_CHARGER_ISP1704 is not set
CONFIG_HWMON=m
# CONFIG_HWMON_VID is not set
# CONFIG_HWMON_DEBUG_CHIP is not set
@@ -1262,6 +1264,7 @@ CONFIG_MFD_CORE=y
# CONFIG_HTC_EGPIO is not set
# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_I2CPLD is not set
+# CONFIG_UCB1400_CORE is not set
# CONFIG_TPS65010 is not set
# CONFIG_TPS6507X is not set
# CONFIG_TWL4030_CORE is not set
@@ -1373,6 +1376,7 @@ CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
+CONFIG_SND_JACK=y
# CONFIG_SND_SEQUENCER is not set
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
@@ -1395,14 +1399,16 @@ CONFIG_SND_DRIVERS=y
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set
-CONFIG_SND_ARM=y
-CONFIG_SND_SPI=y
-CONFIG_SND_USB=y
-# CONFIG_SND_USB_AUDIO is not set
-# CONFIG_SND_USB_UA101 is not set
-# CONFIG_SND_USB_CAIAQ is not set
-# CONFIG_SND_SOC is not set
+# CONFIG_SND_ARM is not set
+# CONFIG_SND_SPI is not set
+# CONFIG_SND_USB is not set
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_AC97_BUS=y
+CONFIG_SND_IMX_SOC=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+# CONFIG_SND_SOC_ALL_CODECS is not set
# CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=m
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HIDRAW is not set
@@ -1591,12 +1597,14 @@ CONFIG_USB_ETH_RNDIS=y
# CONFIG_USB_G_MULTI is not set
# CONFIG_USB_G_HID is not set
# CONFIG_USB_G_DBGP is not set
+# CONFIG_USB_G_WEBCAM is not set
#
# OTG and related infrastructure
#
+CONFIG_USB_OTG_UTILS=y
# CONFIG_USB_GPIO_VBUS is not set
-# CONFIG_USB_ULPI is not set
+CONFIG_USB_ULPI=y
# CONFIG_NOP_USB_XCEIV is not set
CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/400-armadeus-add_apf51_module.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/400-armadeus-add_apf51_module.patch
index 23ff79b..fedb4e2 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/400-armadeus-add_apf51_module.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/400-armadeus-add_apf51_module.patch
@@ -1,7 +1,7 @@
Index: linux-2.6.38-alpha/arch/arm/mach-mx5/Kconfig
===================================================================
--- linux-2.6.38-alpha.orig/arch/arm/mach-mx5/Kconfig 2010-12-30 21:07:06.000000000 +0100
-+++ linux-2.6.38-alpha/arch/arm/mach-mx5/Kconfig 2010-12-31 17:35:40.000000000 +0100
++++ linux-2.6.38-alpha/arch/arm/mach-mx5/Kconfig 2011-01-03 15:56:23.000000000 +0100
@@ -101,4 +101,17 @@
Include support for Genesi Efika MX nettop. This includes specific
configurations for the board and its peripherals.
@@ -23,7 +23,7 @@ Index: linux-2.6.38-alpha/arch/arm/mach-mx5/Kconfig
Index: linux-2.6.38-alpha/arch/arm/mach-mx5/Makefile
===================================================================
--- linux-2.6.38-alpha.orig/arch/arm/mach-mx5/Makefile 2010-12-30 21:06:56.000000000 +0100
-+++ linux-2.6.38-alpha/arch/arm/mach-mx5/Makefile 2010-12-31 17:35:39.000000000 +0100
++++ linux-2.6.38-alpha/arch/arm/mach-mx5/Makefile 2011-01-03 15:56:23.000000000 +0100
@@ -6,6 +6,7 @@
obj-y := cpu.o mm.o clock-mx51-mx53.o devices.o
@@ -35,8 +35,8 @@ Index: linux-2.6.38-alpha/arch/arm/mach-mx5/Makefile
Index: linux-2.6.38-alpha/arch/arm/mach-mx5/board-apf51.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.38-alpha/arch/arm/mach-mx5/board-apf51.c 2010-12-31 16:14:49.000000000 +0100
-@@ -0,0 +1,522 @@
++++ linux-2.6.38-alpha/arch/arm/mach-mx5/board-apf51.c 2011-01-03 12:01:21.000000000 +0100
+@@ -0,0 +1,421 @@
+/*
+ * Support for APF51 System On Module
+ * Copyright (C) 2010 Armadeus Systems
@@ -215,115 +215,16 @@ Index: linux-2.6.38-alpha/arch/arm/mach-mx5/board-apf51.c
+ return 0;
+}
+
-+/* ULPI register addresses */
-+#define ULPI_VID_LOW 0x00 /* Vendor ID low */
-+#define ULPI_VID_HIGH 0x01 /* Vendor ID high */
-+#define ULPI_PID_LOW 0x02 /* Product ID low */
-+#define ULPI_PID_HIGH 0x03 /* Product ID high */
-+#define ULPI_FCNCTL 0x04 /* Function Control */
-+#define ULPI_ITFCTL 0x07 /* Interface Control */
-+#define ULPI_OTGCTL 0x0A /* OTG Control */
-+
-+/* 1504 Function Control Register bits */
-+#define RESET (1 << 5) /* Reset */
-+
-+/* 1504 OTG Control Register bits */
-+#define USE_EXT_VBUS_IND (1 << 7) /* Use ext. Vbus indicator */
-+#define DRV_VBUS_EXT (1 << 6) /* Drive Vbus external */
-+#define DRV_VBUS (1 << 5) /* Drive Vbus */
-+#define CHRG_VBUS (1 << 4) /* Charge Vbus */
-+#define DISCHRG_VBUS (1 << 3) /* Discharge Vbus */
-+#define DM_PULL_DOWN (1 << 2) /* enable DM Pull Down */
-+#define DP_PULL_DOWN (1 << 1) /* enable DP Pull Down */
-+#define ID_PULL_UP (1 << 0) /* enable ID Pull Up */
-+
-+
-+/* ?? Preferably use stuff from drivers/usb/otg/ulpi.c ?? */
-+static int usb3320_init(struct otg_transceiver *otg)
-+{
-+ int vid, pid;
-+
-+ printk("*** %s ***\n", __func__);
-+
-+ vid = otg->io_ops->read(otg, ULPI_VID_HIGH) << 8;
-+ vid = vid | otg->io_ops->read(otg, ULPI_VID_LOW);
-+
-+ pid = otg->io_ops->read(otg, ULPI_PID_HIGH) << 8;
-+ pid = pid | otg->io_ops->read(otg, ULPI_PID_LOW);
-+
-+ pr_info("ULPI OTG (%s) Vendor ID 0x%x Product ID 0x%x\n", otg->label, vid, pid);
-+ if (vid != 0x424 || pid != 0x07) {
-+ pr_err("No USB3320 found\n");
-+ return -1;
-+ }
-+
-+ return 0;
-+}
-+
-+/* ?? Preferably use stuff from drivers/usb/otg/ulpi.c ?? */
-+static int usb3320_set_vbus(struct otg_transceiver *otg, bool enabled)
-+{
-+ int ret = 0;
-+ int reg;
-+
-+ printk("*** %s: %d\n", __func__, enabled);
-+
-+ if (enabled) {
-+ /* force disconnection of the DM/DP signals. This
-+ avoid powering the connected device through these lines */
-+ reg = otg->io_ops->read(otg, ULPI_FCNCTL);
-+ reg |= RESET;
-+ otg->io_ops->write(otg, reg, ULPI_FCNCTL);
-+ mdelay(10); /* wait until the supply is really down */
-+ reg = otg->io_ops->read(otg, ULPI_FCNCTL);
-+ reg &= ~RESET;
-+ otg->io_ops->write(otg, reg, ULPI_FCNCTL);
-+ mdelay(1);
-+
-+ reg = otg->io_ops->read(otg, ULPI_OTGCTL);
-+ reg |= DRV_VBUS_EXT | /* enable external Vbus */
-+ DRV_VBUS | /* enable internal Vbus */
-+ USE_EXT_VBUS_IND | /* use external indicator */
-+ CHRG_VBUS; /* charge Vbus */
-+ otg->io_ops->write(otg, reg, ULPI_OTGCTL);
-+ } else {
-+ reg = otg->io_ops->read(otg, ULPI_OTGCTL);
-+ reg &= ~(DRV_VBUS_EXT | /* disable external Vbus */
-+ DRV_VBUS); /* disable internal Vbus */
-+ reg |= USE_EXT_VBUS_IND | /* use external indicator */
-+ DISCHRG_VBUS; /* discharge Vbus */
-+ otg->io_ops->write(otg, reg, ULPI_OTGCTL);
-+ }
-+
-+ return ret;
-+}
-+
-+/* ?? Preferably use otg_ulpi_create from drivers/usb/otg/ulpi.c ?? */
-+struct otg_transceiver usb3320_1 = {
-+ .io_ops = &mxc_ulpi_access_ops,
-+ .init = usb3320_init,
-+ .set_vbus = usb3320_set_vbus,
-+};
-+
+static struct mxc_usbh_platform_data usbh1_config = {
+ .init = initialize_usbh1_port,
+ .portsc = MXC_EHCI_MODE_ULPI,
+ .flags = (MXC_EHCI_POWER_PINS_ENABLED | MXC_EHCI_ITC_NO_THRESHOLD),
-+ .otg = &usb3320_1,
-+};
-+
-+/* ?? Preferably use otg_ulpi_create from drivers/usb/otg/ulpi.c ?? */
-+struct otg_transceiver usb3320_2 = {
-+ .io_ops = &mxc_ulpi_access_ops,
-+ .init = usb3320_init,
-+ .set_vbus = usb3320_set_vbus,
+};
+
+static struct mxc_usbh_platform_data usbh2_config = {
+ .init = initialize_usbh2_port,
+ .portsc = MXC_EHCI_MODE_ULPI,
+ .flags = (MXC_EHCI_POWER_PINS_ENABLED | MXC_EHCI_ITC_NO_THRESHOLD),
-+ .otg = &usb3320_2,
+};
+
+#define APF51_USBH1_STP (0*32 + 27) /* GPIO_1_27 */
@@ -364,9 +265,9 @@ Index: linux-2.6.38-alpha/arch/arm/mach-mx5/board-apf51.c
+ return 0;
+}
+
++
+/* OTG port with i.MX51 internal PHY */
+#define MX51_USB_PLL_DIV_19_2_MHZ 0x01
-+#define MX51_USB_PLL_DIV_24_MHZ 0x02
+
+/* This function is board specific as the bit mask for the plldiv will also
+be different for other Freescale SoCs, thus a common bitmask is not
@@ -386,10 +287,8 @@ Index: linux-2.6.38-alpha/arch/arm/mach-mx5/board-apf51.c
+ v = __raw_readl(usbother_base + MXC_USB_PHY_CTR_FUNC2_OFFSET);
+ v &= ~MX5_USB_UTMI_PHYCTRL1_PLLDIV_MASK;
+ v |= MX51_USB_PLL_DIV_19_2_MHZ;
-+// v |= MX51_USB_PLL_DIV_24_MHZ;
+ __raw_writel(v, usbother_base + MXC_USB_PHY_CTR_FUNC2_OFFSET);
+ iounmap(usb_base);
-+ printk("**** initialize_otg_port 19,2\n");
+
+ return 0;
+}
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/408-armadeus-add_apf51-dev_baseboard.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/408-armadeus-add_apf51-dev_baseboard.patch
index 350b245..baea1fc 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/408-armadeus-add_apf51-dev_baseboard.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/408-armadeus-add_apf51-dev_baseboard.patch
@@ -4,9 +4,17 @@ Signed-off-by: Julien Boibessot <jul...@ar...>
Index: linux-2.6.38-alpha/arch/arm/mach-mx5/Kconfig
===================================================================
---- linux-2.6.38-alpha.orig/arch/arm/mach-mx5/Kconfig 2010-12-30 21:07:06.000000000 +0100
-+++ linux-2.6.38-alpha/arch/arm/mach-mx5/Kconfig 2010-12-30 21:07:06.000000000 +0100
-@@ -114,4 +114,22 @@
+--- linux-2.6.38-alpha.orig/arch/arm/mach-mx5/Kconfig 2011-01-03 15:49:17.000000000 +0100
++++ linux-2.6.38-alpha/arch/arm/mach-mx5/Kconfig 2011-01-03 15:56:12.000000000 +0100
+@@ -106,12 +106,30 @@
+ select SOC_IMX51
+ select IMX_HAVE_PLATFORM_IMX_UART
+ select IMX_HAVE_PLATFORM_IMX_I2C
+- select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
+ select IMX_HAVE_PLATFORM_MXC_NAND
+- select IMX_HAVE_PLATFORM_SPI_IMX
+ select MXC_ULPI
+ help
Include support for Armadeus Systems APF51 System On Module. This
includes specific configurations for the board and its peripherals.
@@ -23,6 +31,8 @@ Index: linux-2.6.38-alpha/arch/arm/mach-mx5/Kconfig
+ bool
+ select MACH_APF51_HAS_BASEBOARD
+ select IMX_HAVE_PLATFORM_IMX_IPUV3
++ select IMX_HAVE_PLATFORM_SPI_IMX
++ select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
+ help
+ This selects the APF51Dev as baseboard and adds board's specific
+ devices.
@@ -31,8 +41,8 @@ Index: linux-2.6.38-alpha/arch/arm/mach-mx5/Kconfig
endif
Index: linux-2.6.38-alpha/arch/arm/mach-mx5/Makefile
===================================================================
---- linux-2.6.38-alpha.orig/arch/arm/mach-mx5/Makefile 2010-12-30 21:07:06.000000000 +0100
-+++ linux-2.6.38-alpha/arch/arm/mach-mx5/Makefile 2010-12-30 21:07:06.000000000 +0100
+--- linux-2.6.38-alpha.orig/arch/arm/mach-mx5/Makefile 2011-01-03 15:49:17.000000000 +0100
++++ linux-2.6.38-alpha/arch/arm/mach-mx5/Makefile 2011-01-03 15:49:27.000000000 +0100
@@ -7,6 +7,7 @@
obj-$(CONFIG_CPU_FREQ_IMX) += cpu_op-mx51.o
@@ -44,7 +54,7 @@ Index: linux-2.6.38-alpha/arch/arm/mach-mx5/Makefile
Index: linux-2.6.38-alpha/arch/arm/mach-mx5/apf51-dev-baseboard.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.38-alpha/arch/arm/mach-mx5/apf51-dev-baseboard.c 2010-12-31 16:23:43.000000000 +0100
++++ linux-2.6.38-alpha/arch/arm/mach-mx5/apf51-dev-baseboard.c 2011-01-03 15:49:27.000000000 +0100
@@ -0,0 +1,184 @@
+ /*
+ * Support for APF51's PROTO development baseboard
hooks/post-receive
--
armadeus
|
|
From: jscheer <js...@us...> - 2011-01-03 13:22:16
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 11a2f51b711f128402004086f2d7607225ca7046 (commit)
from da5448085049781ba34238a9fb6ee5052909f730 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 11a2f51b711f128402004086f2d7607225ca7046
Author: Jeremie Scheer <jer...@ar...>
Date: Mon Jan 3 14:21:54 2011 +0100
[BUILDROOT] Correct Qt configuration options for MySQL module to specify libraries and headers directories.
[BUILDROOT] Convert MySQL Makefile to old-style post-install hook : BR variables aren't recognized in new-style hooks.
-----------------------------------------------------------------------
Summary of changes:
...-qt-full_integration_with_cross_compiling.patch | 24 ++++++++++++-----
...061-mysql_client-reduce_installation_size.patch | 22 ++++++++++------
...-qt-full_integration_with_cross_compiling.patch | 27 ++++++++++++++------
3 files changed, 50 insertions(+), 23 deletions(-)
diff --git a/patches/buildroot/132-qt-full_integration_with_cross_compiling.patch b/patches/buildroot/132-qt-full_integration_with_cross_compiling.patch
index 8b76ea6..cd89cd1 100644
--- a/patches/buildroot/132-qt-full_integration_with_cross_compiling.patch
+++ b/patches/buildroot/132-qt-full_integration_with_cross_compiling.patch
@@ -5,8 +5,8 @@ Signed-off-by: Jérémie Scheer <jer...@ar...>
Index: buildroot/package/qtopia4/Config.in
===================================================================
---- buildroot.orig/package/qtopia4/Config.in 2010-10-11 09:38:44.000000000 +0200
-+++ buildroot/package/qtopia4/Config.in 2010-10-11 09:49:36.000000000 +0200
+--- buildroot.orig/package/qtopia4/Config.in 2011-01-03 10:48:45.000000000 +0100
++++ buildroot/package/qtopia4/Config.in 2011-01-03 10:48:45.000000000 +0100
@@ -325,4 +325,14 @@
Build the Qt Script Tools module.
if unsure, say n.
@@ -24,8 +24,8 @@ Index: buildroot/package/qtopia4/Config.in
endif # BR2_PACKAGE_QT
Index: buildroot/package/qtopia4/qtopia4.mk
===================================================================
---- buildroot.orig/package/qtopia4/qtopia4.mk 2010-10-11 09:38:44.000000000 +0200
-+++ buildroot/package/qtopia4/qtopia4.mk 2010-10-11 16:36:12.000000000 +0200
+--- buildroot.orig/package/qtopia4/qtopia4.mk 2011-01-03 10:48:45.000000000 +0100
++++ buildroot/package/qtopia4/qtopia4.mk 2011-01-03 10:52:31.000000000 +0100
@@ -17,6 +17,7 @@
QT_SITE:=http://get.qt.nokia.com/qt/source
QT_CAT:=$(ZCAT)
@@ -34,7 +34,17 @@ Index: buildroot/package/qtopia4/qtopia4.mk
QT_CONFIGURE:=#empty
-@@ -345,6 +346,14 @@
+@@ -291,7 +292,8 @@
+ QT_CONFIGURE+= -qt-sql-ibase
+ endif
+ ifeq ($(BR2_PACKAGE_QT_MYSQL),y)
+-QT_CONFIGURE+= -qt-sql-mysql
++QT_CONFIGURE+= -qt-sql-mysql -mysql_config $(STAGING_DIR)/usr/bin/mysql_config
++QT_DEP_LIBS+=mysql_client
+ endif
+ ifeq ($(BR2_PACKAGE_QT_ODBC),y)
+ QT_CONFIGURE+= -qt-sql-odbc
+@@ -345,6 +347,14 @@
QT_CONFIGURE+= -no-stl
endif
@@ -49,7 +59,7 @@ Index: buildroot/package/qtopia4/qtopia4.mk
# ccache and precompiled headers don't play well together
ifeq ($(BR2_CCACHE),y)
QT_CONFIGURE += -no-pch
-@@ -483,11 +492,11 @@
+@@ -483,11 +493,11 @@
-no-accessibility \
-no-separate-debug-info \
-prefix /usr \
@@ -63,7 +73,7 @@ Index: buildroot/package/qtopia4/qtopia4.mk
)
touch $@
-@@ -560,8 +569,19 @@
+@@ -560,8 +570,19 @@
cp -dpf $(STAGING_DIR)/usr/lib/libQtScriptTools.so.* $(TARGET_DIR)/usr/lib/
endif
diff --git a/patches/buildroot/2010.11/061-mysql_client-reduce_installation_size.patch b/patches/buildroot/2010.11/061-mysql_client-reduce_installation_size.patch
index a12c71f..d6cacd9 100644
--- a/patches/buildroot/2010.11/061-mysql_client-reduce_installation_size.patch
+++ b/patches/buildroot/2010.11/061-mysql_client-reduce_installation_size.patch
@@ -5,8 +5,8 @@ Signed-off-by: Fabien Marteau <fab...@ar...>
Index: buildroot/package/mysql_client/Config.in
===================================================================
---- buildroot.orig/package/mysql_client/Config.in 2010-10-18 23:01:17.000000000 +0200
-+++ buildroot/package/mysql_client/Config.in 2010-10-18 23:03:16.000000000 +0200
+--- buildroot.orig/package/mysql_client/Config.in 2011-01-03 14:00:29.000000000 +0100
++++ buildroot/package/mysql_client/Config.in 2011-01-03 14:00:39.000000000 +0100
@@ -8,3 +8,20 @@
comment "Mysql client requires a toolchain with C++ support enabled"
@@ -30,12 +30,16 @@ Index: buildroot/package/mysql_client/Config.in
+endif
Index: buildroot/package/mysql_client/mysql_client.mk
===================================================================
---- buildroot.orig/package/mysql_client/mysql_client.mk 2010-10-18 23:01:24.000000000 +0200
-+++ buildroot/package/mysql_client/mysql_client.mk 2010-10-18 23:04:49.000000000 +0200
-@@ -34,6 +34,17 @@
+--- buildroot.orig/package/mysql_client/mysql_client.mk 2011-01-03 14:00:29.000000000 +0100
++++ buildroot/package/mysql_client/mysql_client.mk 2011-01-03 14:02:16.000000000 +0100
+@@ -32,10 +32,20 @@
+ --enable-thread-safe-client \
+ $(ENABLE_DEBUG)
- define MYSQL_CLIENT_REMOVE_TEST_PROGS
+-define MYSQL_CLIENT_REMOVE_TEST_PROGS
++$(MYSQL_CLIENT_HOOK_POST_INSTALL):
rm -rf $(TARGET_DIR)/usr/mysql-test $(TARGET_DIR)/usr/sql-bench
+-endef
+ifeq ($(BR2_PACKAGE_MYSQL_CLIENT_SHRINK),y)
+ rm -rf $(TARGET_DIR)/usr/bin/mysql_client_test
+ rm -rf $(TARGET_DIR)/usr/bin/mysql_waitpid
@@ -47,6 +51,8 @@ Index: buildroot/package/mysql_client/mysql_client.mk
+ rm -rf $(TARGET_DIR)/usr/bin/myisamlog
+ rm -rf $(TARGET_DIR)/usr/bin/my_print_defaults
+endif
- endef
++
+
+-MYSQL_CLIENT_POST_INSTALL_TARGET_HOOKS += MYSQL_CLIENT_REMOVE_TEST_PROGS
- MYSQL_CLIENT_POST_INSTALL_TARGET_HOOKS += MYSQL_CLIENT_REMOVE_TEST_PROGS
+ $(eval $(call AUTOTARGETS,package,mysql_client))
diff --git a/patches/buildroot/2010.11/132-qt-full_integration_with_cross_compiling.patch b/patches/buildroot/2010.11/132-qt-full_integration_with_cross_compiling.patch
index 077eb7e..298e23f 100644
--- a/patches/buildroot/2010.11/132-qt-full_integration_with_cross_compiling.patch
+++ b/patches/buildroot/2010.11/132-qt-full_integration_with_cross_compiling.patch
@@ -4,8 +4,8 @@ Signed-off-by: Jérémie Scheer <jer...@ar...>
Index: buildroot/package/qt/Config.in
===================================================================
---- buildroot.orig/package/qt/Config.in 2010-10-19 14:08:55.000000000 +0200
-+++ buildroot/package/qt/Config.in 2010-10-19 14:11:11.000000000 +0200
+--- buildroot.orig/package/qt/Config.in 2010-11-08 10:24:59.000000000 +0100
++++ buildroot/package/qt/Config.in 2011-01-03 11:00:22.000000000 +0100
@@ -17,7 +17,12 @@
If unsure, say N.
@@ -22,9 +22,9 @@ Index: buildroot/package/qt/Config.in
Index: buildroot/package/qt/qt.mk
===================================================================
---- buildroot.orig/package/qt/qt.mk 2010-10-19 14:11:35.000000000 +0200
-+++ buildroot/package/qt/qt.mk 2010-10-19 15:02:41.000000000 +0200
-@@ -49,10 +49,16 @@
+--- buildroot.orig/package/qt/qt.mk 2010-11-08 10:24:59.000000000 +0100
++++ buildroot/package/qt/qt.mk 2011-01-03 11:03:20.000000000 +0100
+@@ -49,11 +49,17 @@
endif
ifeq ($(BR2_PACKAGE_QT_DEMOS),y)
@@ -33,13 +33,24 @@ Index: buildroot/package/qt/qt.mk
else
-QT_CONFIGURE+= -nomake examples -nomake demos
+QT_CONFIGURE+= -nomake demos
- endif
++endif
+ifeq ($(BR2_PACKAGE_QT_EXAMPLES),y)
+QT_CONFIGURE+= -examplesdir $(TARGET_DIR)/usr/share/qt/examples
+else
+QT_CONFIGURE+= -nomake examples
-+endif
-+
+ endif
++
# ensure glib is built first if enabled for Qt's glib support
ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
+ QT_DEP_LIBS+=libglib2
+@@ -279,8 +285,7 @@
+ QT_CONFIGURE+= -qt-sql-ibase
+ endif
+ ifeq ($(BR2_PACKAGE_QT_MYSQL),y)
+-QT_CONFIGURE+= -qt-sql-mysql -I $(STAGING_DIR)/usr/include/mysql -L $(STAGING_DIR)/usr/lib/mysql
+-
++QT_CONFIGURE+= -qt-sql-mysql -mysql_config $(STAGING_DIR)/usr/bin/mysql_config
+ QT_DEP_LIBS+=mysql_client
+ endif
+ ifeq ($(BR2_PACKAGE_QT_ODBC),y)
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2010-12-31 16:50:31
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via da5448085049781ba34238a9fb6ee5052909f730 (commit)
via b6806d48eb00ff4e8d3cd726463cb1fee1df9ad1 (commit)
via 54d970d8d2bf6c110b9170d9c56b43e07232f0f0 (commit)
from 243e4dad6ab78b9d390d4b4ebfac760c37888e23 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit da5448085049781ba34238a9fb6ee5052909f730
Author: Julien Boibessot <jul...@ar...>
Date: Fri Dec 31 17:49:36 2010 +0100
[LINUX] 2.6.38: improves APF51 support (OTG, LCD, SPI)
commit b6806d48eb00ff4e8d3cd726463cb1fee1df9ad1
Author: Julien Boibessot <jul...@ar...>
Date: Fri Dec 31 17:47:10 2010 +0100
[LINUX] 2.6.38-alpha: adds v2 version of pengutronix ipuv3 patches (part 2: patches renaming)
commit 54d970d8d2bf6c110b9170d9c56b43e07232f0f0
Author: Julien Boibessot <jul...@ar...>
Date: Fri Dec 31 17:41:31 2010 +0100
[LINUX] 2.6.38-alpha: adds v2 version of pengutronix ipuv3 patches
-----------------------------------------------------------------------
Summary of changes:
...engutronix-1-iMX51-add_ipu_clock_support.patch} | 6 +-
...2-20-pengutronix-2-iMX51-rename_IPU_irqs.patch} | 4 -
...-20-pengutronix-3-Add_a_mfd_IPUv3_driver.patch} | 344 +++++++++++++-------
...pengutronix-4-fb-export_fb_mode_fb_table.patch} | 1 -
...engutronix-5-Add_iMX5_framebuffer_driver.patch} | 174 ++++++++---
...ngutronix-6-iMX51-Add_IPU_device_support.patch} | 58 ++--
...7-iMX51-Allow_to_increase_max_zone_order.patch} | 0
...ease_dma_consistent_size_for_IPU_support.patch} | 11 +-
...-9-iMX51-babbage_add_framebuffer_support.patch} | 18 +-
.../2.6.38/400-armadeus-add_apf51_module.patch | 110 +++++--
.../408-armadeus-add_apf51-dev_baseboard.patch | 135 +++++---
11 files changed, 581 insertions(+), 280 deletions(-)
rename buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/{001-2010-12-10-pengutronix-1-iMX51-add_ipu_clock_support.patch => 001-2010-12-20-pengutronix-1-iMX51-add_ipu_clock_support.patch} (96%)
rename buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/{001-2010-12-10-pengutronix-2-iMX51-rename_IPU_irqs.patch => 001-2010-12-20-pengutronix-2-iMX51-rename_IPU_irqs.patch} (98%)
rename buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/{001-2010-12-10-pengutronix-3-Add_a_mfd_IPUv3_driver.patch => 001-2010-12-20-pengutronix-3-Add_a_mfd_IPUv3_driver.patch} (95%)
rename buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/{001-2010-12-10-pengutronix-4-fb-export_fb_mode_fb_table.patch => 001-2010-12-20-pengutronix-4-fb-export_fb_mode_fb_table.patch} (99%)
rename buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/{001-2010-12-10-pengutronix-5-Add_iMX5_framebuffer_driver.patch => 001-2010-12-20-pengutronix-5-Add_iMX5_framebuffer_driver.patch} (84%)
rename buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/{001-2010-12-10-pengutronix-6-iMX51-Add_IPU_device_support.patch => 001-2010-12-20-pengutronix-6-iMX51-Add_IPU_device_support.patch} (61%)
rename buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/{001-2010-12-10-pengutronix-7-iMX51-Allow_to_increase_max_zone_order.patch => 001-2010-12-20-pengutronix-7-iMX51-Allow_to_increase_max_zone_order.patch} (100%)
rename buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/{001-2010-12-10-pengutronix-8-iMX51-increase_dma_consistent_size_for_IPU_support.patch => 001-2010-12-20-pengutronix-8-iMX51-increase_dma_consistent_size_for_IPU_support.patch} (72%)
rename buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/{001-2010-12-10-pengutronix-9-iMX51-babbage_add_framebuffer_support.patch => 001-2010-12-20-pengutronix-9-iMX51-babbage_add_framebuffer_support.patch} (90%)
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-1-iMX51-add_ipu_clock_support.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-1-iMX51-add_ipu_clock_support.patch
similarity index 96%
rename from buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-1-iMX51-add_ipu_clock_support.patch
rename to buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-1-iMX51-add_ipu_clock_support.patch
index 845c858..4b1856b 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-1-iMX51-add_ipu_clock_support.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-1-iMX51-add_ipu_clock_support.patch
@@ -17,7 +17,7 @@ index 9fc65bb..f550d02 100644
#define MAX_DPLL_WAIT_TRIES 1000 /* 1000 * udelay(1) = 1ms */
-@@ -679,6 +682,19 @@ static unsigned long clk_emi_slow_get_rate(struct clk *clk)
+@@ -688,6 +691,19 @@ static unsigned long clk_emi_slow_get_rate(struct clk *clk)
return clk_get_rate(clk->parent) / div;
}
@@ -37,7 +37,7 @@ index 9fc65bb..f550d02 100644
/* External high frequency clock */
static struct clk ckih_clk = {
.get_rate = get_high_reference_clock_rate,
-@@ -819,6 +835,109 @@ static struct clk emi_slow_clk = {
+@@ -846,6 +862,109 @@ static struct clk emi_slow_clk = {
.get_rate = clk_emi_slow_get_rate,
};
@@ -147,7 +147,7 @@ index 9fc65bb..f550d02 100644
#define DEFINE_CLOCK_CCGR(name, i, er, es, pfx, p, s) \
static struct clk name = { \
.id = i, \
-@@ -1046,6 +1165,23 @@ DEFINE_CLOCK_FULL(esdhc2_ipg_clk, 1, MXC_CCM_CCGR3, MXC_CCM_CCGRx_CG2_OFFSET,
+@@ -1077,6 +1196,23 @@ DEFINE_CLOCK_FULL(esdhc2_ipg_clk, 1, MXC_CCM_CCGR3, MXC_CCM_CCGRx_CG2_OFFSET,
DEFINE_CLOCK_MAX(esdhc2_clk, 1, MXC_CCM_CCGR3, MXC_CCM_CCGRx_CG3_OFFSET,
clk_esdhc2, &pll2_sw_clk, &esdhc2_ipg_clk);
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-2-iMX51-rename_IPU_irqs.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-2-iMX51-rename_IPU_irqs.patch
similarity index 98%
rename from buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-2-iMX51-rename_IPU_irqs.patch
rename to buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-2-iMX51-rename_IPU_irqs.patch
index 23d237c..f7e6edb 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-2-iMX51-rename_IPU_irqs.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-2-iMX51-rename_IPU_irqs.patch
@@ -1,4 +1,3 @@
-
Signed-off-by: Sascha Hauer <s....@pe...>
---
arch/arm/plat-mxc/include/mach/mx51.h | 4 ++--
@@ -19,6 +18,3 @@ index fa3a2a5..873807f 100644
#define MX51_MXC_INT_GPU 12
#define MX51_MXC_INT_RESV13 13
#define MX51_MXC_INT_USB_H1 14
---
-1.7.2.3
-
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-3-Add_a_mfd_IPUv3_driver.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-3-Add_a_mfd_IPUv3_driver.patch
similarity index 95%
rename from buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-3-Add_a_mfd_IPUv3_driver.patch
rename to buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-3-Add_a_mfd_IPUv3_driver.patch
index 5aa97cc..68429d6 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-3-Add_a_mfd_IPUv3_driver.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-3-Add_a_mfd_IPUv3_driver.patch
@@ -28,19 +28,19 @@ So expect more files to come in this directory.
Signed-off-by: Sascha Hauer <s....@pe...>
---
- arch/arm/plat-mxc/include/mach/ipu-v3.h | 48 +++
+ arch/arm/plat-mxc/include/mach/ipu-v3.h | 49 +++
drivers/mfd/Kconfig | 7 +
drivers/mfd/Makefile | 1 +
drivers/mfd/imx-ipu-v3/Makefile | 3 +
- drivers/mfd/imx-ipu-v3/ipu-common.c | 661 +++++++++++++++++++++++++++++++
- drivers/mfd/imx-ipu-v3/ipu-cpmem.c | 608 ++++++++++++++++++++++++++++
- drivers/mfd/imx-ipu-v3/ipu-dc.c | 362 +++++++++++++++++
- drivers/mfd/imx-ipu-v3/ipu-di.c | 507 ++++++++++++++++++++++++
- drivers/mfd/imx-ipu-v3/ipu-dmfc.c | 343 ++++++++++++++++
- drivers/mfd/imx-ipu-v3/ipu-dp.c | 468 ++++++++++++++++++++++
- drivers/mfd/imx-ipu-v3/ipu-prv.h | 214 ++++++++++
- include/linux/mfd/imx-ipu-v3.h | 218 ++++++++++
- 12 files changed, 3440 insertions(+), 0 deletions(-)
+ drivers/mfd/imx-ipu-v3/ipu-common.c | 708 +++++++++++++++++++++++++++++++
+ drivers/mfd/imx-ipu-v3/ipu-cpmem.c | 612 ++++++++++++++++++++++++++
+ drivers/mfd/imx-ipu-v3/ipu-dc.c | 364 ++++++++++++++++
+ drivers/mfd/imx-ipu-v3/ipu-di.c | 550 ++++++++++++++++++++++++
+ drivers/mfd/imx-ipu-v3/ipu-dmfc.c | 355 ++++++++++++++++
+ drivers/mfd/imx-ipu-v3/ipu-dp.c | 476 +++++++++++++++++++++
+ drivers/mfd/imx-ipu-v3/ipu-prv.h | 216 ++++++++++
+ include/linux/mfd/imx-ipu-v3.h | 219 ++++++++++
+ 12 files changed, 3560 insertions(+), 0 deletions(-)
create mode 100644 arch/arm/plat-mxc/include/mach/ipu-v3.h
create mode 100644 drivers/mfd/imx-ipu-v3/Makefile
create mode 100644 drivers/mfd/imx-ipu-v3/ipu-common.c
@@ -54,10 +54,10 @@ Signed-off-by: Sascha Hauer <s....@pe...>
diff --git a/arch/arm/plat-mxc/include/mach/ipu-v3.h b/arch/arm/plat-mxc/include/mach/ipu-v3.h
new file mode 100644
-index 0000000..0a6c3e8
+index 0000000..f8900b9
--- /dev/null
+++ b/arch/arm/plat-mxc/include/mach/ipu-v3.h
-@@ -0,0 +1,48 @@
+@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2010 Sascha Hauer <s....@pe...>
+ *
@@ -97,12 +97,13 @@ index 0000000..0a6c3e8
+ int ipu_channel_fg;
+ int dc_channel;
+ int dp_channel;
++ int display;
+};
+
+struct imx_ipuv3_platform_data {
+ int rev;
-+ struct ipuv3_fb_platform_data *fb0_platform_data;
-+ struct ipuv3_fb_platform_data *fb1_platform_data;
++ struct ipuv3_fb_platform_data *fb_head0_platform_data;
++ struct ipuv3_fb_platform_data *fb_head1_platform_data;
+};
+
+#endif /* __MACH_IPU_V3_H_ */
@@ -128,7 +129,7 @@ diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
index f54b365..7873b13 100644
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
-@@ -76,3 +76,4 @@ obj-$(CONFIG_MFD_JANZ_CMODIO) += janz-cmodio.o
+@@ -81,3 +81,4 @@ obj-$(CONFIG_MFD_JANZ_CMODIO) += janz-cmodio.o
obj-$(CONFIG_MFD_JZ4740_ADC) += jz4740-adc.o
obj-$(CONFIG_MFD_TPS6586X) += tps6586x.o
obj-$(CONFIG_MFD_VX855) += vx855.o
@@ -144,10 +145,10 @@ index 0000000..ff70fe8
+imx-ipu-v3-objs := ipu-common.o ipu-dc.o ipu-di.o ipu-dp.o ipu-dmfc.o ipu-cpmem.o
diff --git a/drivers/mfd/imx-ipu-v3/ipu-common.c b/drivers/mfd/imx-ipu-v3/ipu-common.c
new file mode 100644
-index 0000000..e6edb88
+index 0000000..d96245f
--- /dev/null
+++ b/drivers/mfd/imx-ipu-v3/ipu-common.c
-@@ -0,0 +1,661 @@
+@@ -0,0 +1,708 @@
+/*
+ * Copyright (c) 2010 Sascha Hauer <s....@pe...>
+ * Copyright (C) 2005-2009 Freescale Semiconductor, Inc.
@@ -184,9 +185,12 @@ index 0000000..e6edb88
+static struct device *ipu_dev;
+
+static DEFINE_SPINLOCK(ipu_lock);
++static DEFINE_MUTEX(ipu_channel_lock);
+void __iomem *ipu_cm_reg;
+void __iomem *ipu_idmac_reg;
+
++static int ipu_use_count;
++
+static struct ipu_channel channels[64];
+
+struct ipu_channel *ipu_idmac_get(unsigned num)
@@ -198,15 +202,20 @@ index 0000000..e6edb88
+ if (num > 63)
+ return ERR_PTR(-ENODEV);
+
++ mutex_lock(&ipu_channel_lock);
++
+ channel = &channels[num];
+
-+ if (channel->busy)
-+ return ERR_PTR(-EBUSY);
++ if (channel->busy) {
++ channel = ERR_PTR(-EBUSY);
++ goto out;
++ }
+
+ channel->busy = 1;
+ channel->num = num;
+
-+ clk_enable(ipu_clk);
++out:
++ mutex_unlock(&ipu_channel_lock);
+
+ return channel;
+}
@@ -216,8 +225,11 @@ index 0000000..e6edb88
+{
+ dev_dbg(ipu_dev, "%s %d\n", __func__, channel->num);
+
-+ clk_disable(ipu_clk);
++ mutex_lock(&ipu_channel_lock);
++
+ channel->busy = 0;
++
++ mutex_unlock(&ipu_channel_lock);
+}
+EXPORT_SYMBOL(ipu_idmac_put);
+
@@ -239,31 +251,6 @@ index 0000000..e6edb88
+}
+EXPORT_SYMBOL(ipu_idmac_set_double_buffer);
+
-+void ipu_uninit_channel(struct ipu_channel *channel)
-+{
-+ unsigned long lock_flags;
-+ u32 val;
-+
-+ /* Make sure channel is disabled */
-+
-+ if (idmac_idma_is_set(IDMAC_CHA_EN, channel->num)) {
-+ dev_err(ipu_dev,
-+ "Channel %d is not disabled, disable first\n",
-+ channel->num);
-+ return;
-+ }
-+
-+ spin_lock_irqsave(&ipu_lock, lock_flags);
-+
-+ /* Reset the double buffer */
-+ val = ipu_cm_read(IPU_CHA_DB_MODE_SEL(channel->num));
-+ val &= ~idma_mask(channel->num);
-+ ipu_cm_write(val, IPU_CHA_DB_MODE_SEL(channel->num));
-+
-+ spin_unlock_irqrestore(&ipu_lock, lock_flags);
-+}
-+EXPORT_SYMBOL(ipu_uninit_channel);
-+
+int ipu_module_enable(u32 mask)
+{
+ unsigned long lock_flags;
@@ -299,12 +286,17 @@ index 0000000..e6edb88
+void ipu_idmac_select_buffer(struct ipu_channel *channel, u32 buf_num)
+{
+ unsigned int chno = channel->num;
++ unsigned long flags;
++
++ spin_lock_irqsave(&ipu_lock, flags);
+
+ /* Mark buffer as ready. */
+ if (buf_num == 0)
+ ipu_cm_write(idma_mask(chno), IPU_CHA_BUF0_RDY(chno));
+ else
+ ipu_cm_write(idma_mask(chno), IPU_CHA_BUF1_RDY(chno));
++
++ spin_unlock_irqrestore(&ipu_lock, flags);
+}
+EXPORT_SYMBOL(ipu_idmac_select_buffer);
+
@@ -313,6 +305,8 @@ index 0000000..e6edb88
+ u32 val;
+ unsigned long flags;
+
++ ipu_get();
++
+ spin_lock_irqsave(&ipu_lock, flags);
+
+ val = ipu_idmac_read(IDMAC_CHA_EN(channel->num));
@@ -351,8 +345,15 @@ index 0000000..e6edb88
+
+ ipu_cm_write(0x0, IPU_GPR); /* write one to set */
+
++ /* Reset the double buffer */
++ val = ipu_cm_read(IPU_CHA_DB_MODE_SEL(channel->num));
++ val &= ~idma_mask(channel->num);
++ ipu_cm_write(val, IPU_CHA_DB_MODE_SEL(channel->num));
++
+ spin_unlock_irqrestore(&ipu_lock, flags);
+
++ ipu_put();
++
+ return 0;
+}
+EXPORT_SYMBOL(ipu_idmac_disable_channel);
@@ -434,6 +435,8 @@ index 0000000..e6edb88
+ bitmap_zero(handler.ipu_irqs, IPU_IRQ_COUNT);
+ bitmap_set(handler.ipu_irqs, interrupt, 1);
+
++ ipu_cm_write(1 << (interrupt % 32), IPU_INT_STAT(interrupt / 32 + 1));
++
+ handler.handler = ipu_completion_handler;
+ handler.context = &completion;
+ ipu_irq_add_handler(&handler);
@@ -445,6 +448,8 @@ index 0000000..e6edb88
+
+ if (ret > 0)
+ ret = 0;
++ else
++ ret = -ETIMEDOUT;
+
+ return ret;
+}
@@ -611,6 +616,35 @@ index 0000000..e6edb88
+ return ret;
+}
+
++void ipu_get(void)
++{
++ mutex_lock(&ipu_channel_lock);
++
++ ipu_use_count++;
++
++ if (ipu_use_count == 1)
++ clk_enable(ipu_clk);
++
++ mutex_unlock(&ipu_channel_lock);
++}
++
++void ipu_put(void)
++{
++ mutex_lock(&ipu_channel_lock);
++
++ ipu_use_count--;
++
++ if (ipu_use_count == 0)
++ clk_disable(ipu_clk);
++
++ if (ipu_use_count < 0) {
++ dev_err(ipu_dev, "ipu use count < 0\n");
++ ipu_use_count = 0;
++ }
++
++ mutex_unlock(&ipu_channel_lock);
++}
++
+static void ipu_submodules_exit(struct platform_device *pdev,
+ unsigned long ipu_base)
+{
@@ -638,30 +672,31 @@ index 0000000..e6edb88
+static int ipu_add_client_devices(struct platform_device *pdev)
+{
+ struct imx_ipuv3_platform_data *plat_data = pdev->dev.platform_data;
++ struct ipuv3_fb_platform_data *fbdata;
+
-+ if (plat_data->fb0_platform_data) {
-+ plat_data->fb0_platform_data->ipu_channel_bg =
++ fbdata = plat_data->fb_head0_platform_data;
++ if (fbdata) {
++ fbdata->ipu_channel_bg =
+ MX51_IPU_CHANNEL_MEM_BG_SYNC;
-+ plat_data->fb0_platform_data->ipu_channel_fg =
++ fbdata->ipu_channel_fg =
+ MX51_IPU_CHANNEL_MEM_FG_SYNC;
-+ plat_data->fb0_platform_data->dc_channel = 5;
-+ plat_data->fb0_platform_data->dp_channel = IPU_DP_FLOW_SYNC;
++ fbdata->dc_channel = 5;
++ fbdata->dp_channel = IPU_DP_FLOW_SYNC;
+
+ ipu_add_subdevice_pdata(pdev, "imx-ipuv3-fb", 0,
-+ plat_data->fb0_platform_data,
-+ sizeof(struct ipuv3_fb_platform_data));
++ fbdata, sizeof(*fbdata));
+ }
+
-+ if (plat_data->fb1_platform_data) {
-+ plat_data->fb1_platform_data->ipu_channel_bg =
++ fbdata = plat_data->fb_head1_platform_data;
++ if (fbdata) {
++ fbdata->ipu_channel_bg =
+ MX51_IPU_CHANNEL_MEM_DC_SYNC;
-+ plat_data->fb1_platform_data->ipu_channel_fg = -1;
-+ plat_data->fb1_platform_data->dc_channel = 1;
-+ plat_data->fb1_platform_data->dp_channel = -1;
++ fbdata->ipu_channel_fg = -1;
++ fbdata->dc_channel = 1;
++ fbdata->dp_channel = -1;
+
+ ipu_add_subdevice_pdata(pdev, "imx-ipuv3-fb", 1,
-+ plat_data->fb1_platform_data,
-+ sizeof(struct ipuv3_fb_platform_data));
++ fbdata, sizeof(*fbdata));
+ }
+
+ return 0;
@@ -673,6 +708,10 @@ index 0000000..e6edb88
+ unsigned long ipu_base;
+ int ret, irq1, irq2;
+
++ /* There can be only one */
++ if (ipu_dev)
++ return -EBUSY;
++
+ spin_lock_init(&ipu_lock);
+
+ ipu_dev = &pdev->dev;
@@ -709,7 +748,7 @@ index 0000000..e6edb88
+ goto failed_clk_get;
+ }
+
-+ clk_enable(ipu_clk);
++ ipu_get();
+
+ ret = request_irq(irq1, ipu_irq_handler, IRQF_DISABLED, pdev->name,
+ &pdev->dev);
@@ -740,6 +779,8 @@ index 0000000..e6edb88
+ goto failed_add_clients;
+ }
+
++ ipu_put();
++
+ return 0;
+
+failed_add_clients:
@@ -748,6 +789,7 @@ index 0000000..e6edb88
+ free_irq(irq2, &pdev->dev);
+failed_request_irq2:
+ free_irq(irq1, &pdev->dev);
++ ipu_put();
+failed_request_irq1:
+ clk_put(ipu_clk);
+failed_clk_get:
@@ -775,11 +817,17 @@ index 0000000..e6edb88
+ ipu_submodules_exit(pdev, ipu_base);
+ free_irq(irq2, &pdev->dev);
+ free_irq(irq1, &pdev->dev);
-+ clk_disable(ipu_clk);
-+ clk_put(ipu_clk);
+ iounmap(ipu_idmac_reg);
+ iounmap(ipu_cm_reg);
+
++ if (ipu_use_count != 0) {
++ dev_err(ipu_dev, "unbalanced use count: %d\n", ipu_use_count);
++ clk_disable(ipu_clk);
++ }
++
++ clk_put(ipu_clk);
++ ipu_dev = NULL;
++
+ return 0;
+}
+
@@ -811,10 +859,10 @@ index 0000000..e6edb88
+MODULE_LICENSE("GPL");
diff --git a/drivers/mfd/imx-ipu-v3/ipu-cpmem.c b/drivers/mfd/imx-ipu-v3/ipu-cpmem.c
new file mode 100644
-index 0000000..587b487
+index 0000000..faff5ee
--- /dev/null
+++ b/drivers/mfd/imx-ipu-v3/ipu-cpmem.c
-@@ -0,0 +1,608 @@
+@@ -0,0 +1,612 @@
+/*
+ * Copyright (c) 2010 Sascha Hauer <s....@pe...>
+ * Copyright (C) 2005-2009 Freescale Semiconductor, Inc.
@@ -1366,7 +1414,7 @@ index 0000000..587b487
+ dma_addr_t phyaddr_0, dma_addr_t phyaddr_1,
+ u32 u, u32 v, bool interlaced)
+{
-+ int ret;
++ int ret = 0;
+ u32 dma_chan = channel->num;
+
+ if (stride < width * ipu_bytes_per_pixel(pixel_fmt))
@@ -1378,11 +1426,13 @@ index 0000000..587b487
+ return -EINVAL;
+ }
+
++ ipu_get();
++
+ /* Build parameter memory data for DMA channel */
+ ret = ipu_ch_param_init(dma_chan, pixel_fmt, width, height, stride, u, v, 0,
+ phyaddr_0, phyaddr_1);
+ if (ret)
-+ return ret;
++ goto out;
+
+ if (rot_mode)
+ ipu_ch_param_set_rotation(dma_chan, rot_mode);
@@ -1394,8 +1444,10 @@ index 0000000..587b487
+ ipu_ch_param_set_high_priority(dma_chan);
+
+ ipu_ch_param_dump(dma_chan);
++out:
++ ipu_put();
+
-+ return 0;
++ return ret;
+}
+EXPORT_SYMBOL(ipu_idmac_init_channel_buffer);
+
@@ -1425,10 +1477,10 @@ index 0000000..587b487
+}
diff --git a/drivers/mfd/imx-ipu-v3/ipu-dc.c b/drivers/mfd/imx-ipu-v3/ipu-dc.c
new file mode 100644
-index 0000000..23ba5d7
+index 0000000..b8c601e
--- /dev/null
+++ b/drivers/mfd/imx-ipu-v3/ipu-dc.c
-@@ -0,0 +1,362 @@
+@@ -0,0 +1,364 @@
+/*
+ * Copyright (c) 2010 Sascha Hauer <s....@pe...>
+ * Copyright (C) 2005-2009 Freescale Semiconductor, Inc.
@@ -1447,10 +1499,8 @@ index 0000000..23ba5d7
+#include <linux/types.h>
+#include <linux/errno.h>
+#include <linux/delay.h>
-+#include <linux/spinlock.h>
+#include <linux/io.h>
+#include <linux/mfd/imx-ipu-v3.h>
-+#include <asm/atomic.h>
+
+#include "ipu-prv.h"
+
@@ -1576,6 +1626,8 @@ index 0000000..23ba5d7
+ return -EINVAL;
+ }
+
++ ipu_get();
++
+ if (interlaced) {
+ ipu_dc_link_event(dc_chan, DC_EVT_NL, 0, 3);
+ ipu_dc_link_event(dc_chan, DC_EVT_EOL, 0, 2);
@@ -1625,6 +1677,8 @@ index 0000000..23ba5d7
+
+ ipu_module_enable(IPU_CONF_DC_EN);
+
++ ipu_put();
++
+ return 0;
+}
+EXPORT_SYMBOL(ipu_dc_init_sync);
@@ -1793,10 +1847,10 @@ index 0000000..23ba5d7
+}
diff --git a/drivers/mfd/imx-ipu-v3/ipu-di.c b/drivers/mfd/imx-ipu-v3/ipu-di.c
new file mode 100644
-index 0000000..73ebd51
+index 0000000..62e3d01
--- /dev/null
+++ b/drivers/mfd/imx-ipu-v3/ipu-di.c
-@@ -0,0 +1,507 @@
+@@ -0,0 +1,550 @@
+/*
+ * Copyright (c) 2010 Sascha Hauer <s....@pe...>
+ * Copyright (C) 2005-2009 Freescale Semiconductor, Inc.
@@ -1814,11 +1868,10 @@ index 0000000..73ebd51
+
+#include <linux/types.h>
+#include <linux/errno.h>
-+#include <linux/delay.h>
+#include <linux/io.h>
++#include <linux/err.h>
+#include <linux/mfd/imx-ipu-v3.h>
+#include <linux/platform_device.h>
-+#include <asm/atomic.h>
+
+#include "ipu-prv.h"
+
@@ -1833,6 +1886,8 @@ index 0000000..73ebd51
+ struct clk *clk;
+ struct clk *ipu_clk;
+ bool external_clk;
++ bool inuse;
++ bool initialized;
+};
+
+static struct ipu_di dis[2];
@@ -2123,9 +2178,8 @@ index 0000000..73ebd51
+ ipu_di_sync_config(di, cfg, ARRAY_SIZE(cfg));
+}
+
-+int ipu_di_init_sync_panel(int disp, u32 pixel_clk, struct ipu_di_signal_cfg *sig)
++int ipu_di_init_sync_panel(struct ipu_di *di, u32 pixel_clk, struct ipu_di_signal_cfg *sig)
+{
-+ struct ipu_di *di = &dis[disp];
+ u32 reg;
+ u32 disp_gen, di_gen, vsync_cnt;
+ u32 div;
@@ -2133,10 +2187,7 @@ index 0000000..73ebd51
+ struct clk *di_clk;
+
+ dev_dbg(ipu_dev, "disp %d: panel size = %d x %d\n",
-+ disp, sig->width, sig->height);
-+
-+ if (disp > 1)
-+ return -EINVAL;
++ di->id, sig->width, sig->height);
+
+ if ((sig->v_sync_width == 0) || (sig->h_sync_width == 0))
+ return -EINVAL;
@@ -2145,6 +2196,7 @@ index 0000000..73ebd51
+ v_total = sig->height + sig->v_sync_width + sig->v_start_width + sig->v_end_width;
+
+ mutex_lock(&di_mutex);
++ ipu_get();
+
+ /* Init clocking */
+ if (sig->ext_clk) {
@@ -2165,7 +2217,7 @@ index 0000000..73ebd51
+ div = 0x10;
+
+ disp_gen = ipu_cm_read(IPU_DISP_GEN);
-+ disp_gen &= disp ? ~DI1_COUNTER_RELEASE : ~DI0_COUNTER_RELEASE;
++ disp_gen &= di->id ? ~DI1_COUNTER_RELEASE : ~DI0_COUNTER_RELEASE;
+ ipu_cm_write(disp_gen, IPU_DISP_GEN);
+
+ ipu_di_write(di, div, DI_BS_CLKGEN0);
@@ -2222,19 +2274,20 @@ index 0000000..73ebd51
+
+ ipu_di_write(di, reg, DI_POL);
+
++ ipu_put();
+ mutex_unlock(&di_mutex);
+
+ return 0;
+}
+EXPORT_SYMBOL(ipu_di_init_sync_panel);
+
-+int ipu_di_enable(int disp)
++int ipu_di_enable(struct ipu_di *di)
+{
-+ struct ipu_di *di = &dis[disp];
+ u32 reg;
+
++ ipu_get();
+ reg = ipu_cm_read(IPU_DISP_GEN);
-+ if (disp)
++ if (di->id)
+ reg |= DI1_COUNTER_RELEASE;
+ else
+ reg |= DI0_COUNTER_RELEASE;
@@ -2249,18 +2302,18 @@ index 0000000..73ebd51
+}
+EXPORT_SYMBOL(ipu_di_enable);
+
-+int ipu_di_disable(int disp)
++int ipu_di_disable(struct ipu_di *di)
+{
-+ struct ipu_di *di = &dis[disp];
+ u32 reg;
+
+ ipu_module_disable(di->module);
++ ipu_put();
+
+ if (di->external_clk)
+ clk_disable(di->clk);
+
+ reg = ipu_cm_read(IPU_DISP_GEN);
-+ if (disp)
++ if (di->id)
+ reg &= ~DI1_COUNTER_RELEASE;
+ else
+ reg &= ~DI0_COUNTER_RELEASE;
@@ -2270,6 +2323,47 @@ index 0000000..73ebd51
+}
+EXPORT_SYMBOL(ipu_di_disable);
+
++static DEFINE_MUTEX(ipu_di_lock);
++
++struct ipu_di *ipu_di_get(int disp)
++{
++ struct ipu_di *di;
++
++ if (disp > 1)
++ return ERR_PTR(-EINVAL);
++
++ di = &dis[disp];
++
++ mutex_lock(&ipu_di_lock);
++
++ if (!di->initialized) {
++ di = ERR_PTR(-ENOSYS);
++ goto out;
++ }
++
++ if (di->inuse) {
++ di = ERR_PTR(-EBUSY);
++ goto out;
++ }
++
++ di->inuse = true;
++out:
++ mutex_unlock(&ipu_di_lock);
++
++ return di;
++}
++EXPORT_SYMBOL(ipu_di_get);
++
++void ipu_di_put(struct ipu_di *di)
++{
++ mutex_lock(&ipu_di_lock);
++
++ di->inuse = false;
++
++ mutex_unlock(&ipu_di_lock);
++}
++EXPORT_SYMBOL(ipu_di_put);
++
+int ipu_di_init(struct platform_device *pdev, int id, unsigned long base,
+ u32 module, struct clk *ipu_clk)
+{
@@ -2290,6 +2384,8 @@ index 0000000..73ebd51
+ dis[id].id = id;
+ dis[id].ipu_clk = ipu_clk;
+ dis[id].base = ioremap(base, PAGE_SIZE);
++ dis[id].initialized = true;
++ dis[id].inuse = false;
+ if (!dis[id].base)
+ return -ENOMEM;
+
@@ -2303,13 +2399,14 @@ index 0000000..73ebd51
+{
+ clk_put(dis[id].clk);
+ iounmap(dis[id].base);
++ dis[id].initialized = false;
+}
diff --git a/drivers/mfd/imx-ipu-v3/ipu-dmfc.c b/drivers/mfd/imx-ipu-v3/ipu-dmfc.c
new file mode 100644
-index 0000000..25782a7
+index 0000000..3d47a76
--- /dev/null
+++ b/drivers/mfd/imx-ipu-v3/ipu-dmfc.c
-@@ -0,0 +1,343 @@
+@@ -0,0 +1,355 @@
+/*
+ * Copyright (c) 2010 Sascha Hauer <s....@pe...>
+ * Copyright (C) 2005-2009 Freescale Semiconductor, Inc.
@@ -2327,7 +2424,6 @@ index 0000000..25782a7
+
+#include <linux/types.h>
+#include <linux/errno.h>
-+#include <linux/delay.h>
+#include <linux/io.h>
+#include <linux/mfd/imx-ipu-v3.h>
+
@@ -2421,6 +2517,7 @@ index 0000000..25782a7
+int ipu_dmfc_enable_channel(struct dmfc_channel *dmfc)
+{
+ mutex_lock(&dmfc_mutex);
++ ipu_get();
+
+ if (!dmfc_use_count)
+ ipu_module_enable(IPU_CONF_DMFC_EN);
@@ -2445,6 +2542,7 @@ index 0000000..25782a7
+ if (dmfc_use_count < 0)
+ dmfc_use_count = 0;
+
++ ipu_put();
+ mutex_unlock(&dmfc_mutex);
+}
+EXPORT_SYMBOL(ipu_dmfc_disable_channel);
@@ -2562,27 +2660,34 @@ index 0000000..25782a7
+ unsigned long bandwidth_pixel_per_second)
+{
+ int slots = dmfc_bandwidth_to_slots(bandwidth_pixel_per_second);
-+ int segment = 0;
++ int segment = 0, ret = 0;
+
+ dev_dbg(ipu_dev, "dmfc: trying to allocate %ldMpixel/s for IPU channel %d\n",
+ bandwidth_pixel_per_second / 1000000, dmfc->ipu_channel);
+
+ ipu_dmfc_free_bandwidth(dmfc);
+
++ ipu_get();
+ mutex_lock(&dmfc_mutex);
+
-+ if (slots > 8)
-+ return -EBUSY;
++ if (slots > 8) {
++ ret = -EBUSY;
++ goto out;
++ }
+
+ segment = dmfc_find_slots(slots);
-+ if (segment < 0)
-+ return -EBUSY;
++ if (segment < 0) {
++ ret = -EBUSY;
++ goto out;
++ }
+
+ ipu_dmfc_setup_channel(dmfc, slots, segment);
+
++out:
++ ipu_put();
+ mutex_unlock(&dmfc_mutex);
+
-+ return 0;
++ return ret;
+}
+EXPORT_SYMBOL(ipu_dmfc_alloc_bandwidth);
+
@@ -2590,6 +2695,8 @@ index 0000000..25782a7
+{
+ u32 dmfc_gen1;
+
++ ipu_get();
++
+ dmfc_gen1 = readl(dmfc_regs + DMFC_GENERAL1);
+
+ if ((dmfc->slots * 64 * 4) / width > dmfc->max_fifo_lines)
@@ -2599,6 +2706,8 @@ index 0000000..25782a7
+
+ writel(dmfc_gen1, dmfc_regs + DMFC_GENERAL1);
+
++ ipu_put();
++
+ return 0;
+}
+EXPORT_SYMBOL(ipu_dmfc_init_channel);
@@ -2655,10 +2764,10 @@ index 0000000..25782a7
+}
diff --git a/drivers/mfd/imx-ipu-v3/ipu-dp.c b/drivers/mfd/imx-ipu-v3/ipu-dp.c
new file mode 100644
-index 0000000..505107d
+index 0000000..57a7fec
--- /dev/null
+++ b/drivers/mfd/imx-ipu-v3/ipu-dp.c
-@@ -0,0 +1,468 @@
+@@ -0,0 +1,476 @@
+/*
+ * Copyright (c) 2010 Sascha Hauer <s....@pe...>
+ * Copyright (C) 2005-2009 Freescale Semiconductor, Inc.
@@ -2676,11 +2785,9 @@ index 0000000..505107d
+
+#include <linux/types.h>
+#include <linux/errno.h>
-+#include <linux/delay.h>
+#include <linux/io.h>
+#include <linux/mfd/imx-ipu-v3.h>
+#include <linux/err.h>
-+#include <asm/atomic.h>
+
+#include "ipu-prv.h"
+
@@ -2970,6 +3077,8 @@ index 0000000..505107d
+ enum csc_type_t *csc_type;
+ u32 reg;
+
++ ipu_get();
++
+ if (bg)
+ csc_type = &bg_csc_type;
+ else
@@ -3021,6 +3130,8 @@ index 0000000..505107d
+
+ __ipu_dp_csc_setup(dp->flow, dp_csc_array[bg_csc_type][fg_csc_type], true);
+
++ ipu_put();
++
+ return 0;
+}
+EXPORT_SYMBOL(ipu_dp_setup_channel);
@@ -3028,6 +3139,7 @@ index 0000000..505107d
+int ipu_dp_enable_channel(struct ipu_dp *dp)
+{
+ mutex_lock(&dp_mutex);
++ ipu_get();
+
+ if (!dp_use_count)
+ ipu_module_enable(IPU_CONF_DP_EN);
@@ -3052,6 +3164,7 @@ index 0000000..505107d
+ if (dp_use_count < 0)
+ dp_use_count = 0;
+
++ ipu_put();
+ mutex_unlock(&dp_mutex);
+}
+EXPORT_SYMBOL(ipu_dp_disable_channel);
@@ -3074,6 +3187,8 @@ index 0000000..505107d
+{
+ u32 reg, csc;
+
++ ipu_get();
++
+ reg = __raw_readl(DP_COM_CONF(DP_SYNC));
+ csc = reg & DP_COM_CONF_CSC_DEF_MASK;
+ if (csc == DP_COM_CONF_CSC_DEF_FG)
@@ -3084,6 +3199,8 @@ index 0000000..505107d
+
+ reg = ipu_cm_read(IPU_SRM_PRI2) | 0x8;
+ ipu_cm_write(reg, IPU_SRM_PRI2);
++
++ ipu_put();
+}
+EXPORT_SYMBOL(ipu_dp_disable_fg);
+
@@ -3129,10 +3246,10 @@ index 0000000..505107d
+}
diff --git a/drivers/mfd/imx-ipu-v3/ipu-prv.h b/drivers/mfd/imx-ipu-v3/ipu-prv.h
new file mode 100644
-index 0000000..9d54ad0
+index 0000000..339b554
--- /dev/null
+++ b/drivers/mfd/imx-ipu-v3/ipu-prv.h
-@@ -0,0 +1,214 @@
+@@ -0,0 +1,216 @@
+/*
+ * Copyright (c) 2010 Sascha Hauer <s....@pe...>
+ * Copyright (C) 2005-2009 Freescale Semiconductor, Inc.
@@ -3153,7 +3270,6 @@ index 0000000..9d54ad0
+#include <linux/types.h>
+#include <linux/device.h>
+#include <linux/clk.h>
-+#include <linux/interrupt.h>
+#include <linux/platform_device.h>
+#include <mach/hardware.h>
+
@@ -3346,13 +3462,16 @@ index 0000000..9d54ad0
+int ipu_cpmem_init(struct platform_device *pdev, unsigned long base);
+void ipu_cpmem_exit(struct platform_device *pdev);
+
++void ipu_get(void);
++void ipu_put(void);
++
+#endif /* __IPU_PRV_H__ */
diff --git a/include/linux/mfd/imx-ipu-v3.h b/include/linux/mfd/imx-ipu-v3.h
new file mode 100644
-index 0000000..0288c51
+index 0000000..7243360
--- /dev/null
+++ b/include/linux/mfd/imx-ipu-v3.h
-@@ -0,0 +1,218 @@
+@@ -0,0 +1,219 @@
+/*
+ * Copyright 2005-2009 Freescale Semiconductor, Inc.
+ *
@@ -3367,10 +3486,8 @@ index 0000000..0288c51
+#ifndef __ASM_ARCH_IPU_H__
+#define __ASM_ARCH_IPU_H__
+
-+#include <linux/slab.h>
+#include <linux/types.h>
+#include <linux/videodev2.h>
-+#include <linux/interrupt.h>
+#include <linux/bitmap.h>
+
+/*
@@ -3533,9 +3650,12 @@ index 0000000..0288c51
+/*
+ * IPU Display Interface (di) functions
+ */
-+int ipu_di_disable(int disp);
-+int ipu_di_enable(int disp);
-+int ipu_di_init_sync_panel(int disp, u32 pixel_clk,
++struct ipu_di;
++struct ipu_di *ipu_di_get(int disp);
++void ipu_di_put(struct ipu_di *);
++int ipu_di_disable(struct ipu_di *);
++int ipu_di_enable(struct ipu_di *);
++int ipu_di_init_sync_panel(struct ipu_di *, u32 pixel_clk,
+ struct ipu_di_signal_cfg *sig);
+
+/*
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-4-fb-export_fb_mode_fb_table.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-4-fb-export_fb_mode_fb_table.patch
similarity index 99%
rename from buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-4-fb-export_fb_mode_fb_table.patch
rename to buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-4-fb-export_fb_mode_fb_table.patch
index 429cd50..449243c 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-4-fb-export_fb_mode_fb_table.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-4-fb-export_fb_mode_fb_table.patch
@@ -48,4 +48,3 @@ index d1631d3..e006172 100644
struct fb_videomode mode;
--
1.7.2.3
-
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-5-Add_iMX5_framebuffer_driver.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-5-Add_iMX5_framebuffer_driver.patch
similarity index 84%
rename from buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-5-Add_iMX5_framebuffer_driver.patch
rename to buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-5-Add_iMX5_framebuffer_driver.patch
index cbdd73c..9fe3f46 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-5-Add_iMX5_framebuffer_driver.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-5-Add_iMX5_framebuffer_driver.patch
@@ -10,8 +10,8 @@ Signed-off-by: Sascha Hauer <s....@pe...>
---
drivers/video/Kconfig | 11 +
drivers/video/Makefile | 1 +
- drivers/video/mx5fb.c | 846 ++++++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 858 insertions(+), 0 deletions(-)
+ drivers/video/mx5fb.c | 934 ++++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 946 insertions(+), 0 deletions(-)
create mode 100644 drivers/video/mx5fb.c
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
@@ -50,10 +50,10 @@ index 485e8ed..ad408d2 100644
# the test framebuffer is last
diff --git a/drivers/video/mx5fb.c b/drivers/video/mx5fb.c
new file mode 100644
-index 0000000..fd9baf4
+index 0000000..f7824c9
--- /dev/null
+++ b/drivers/video/mx5fb.c
-@@ -0,0 +1,846 @@
+@@ -0,0 +1,934 @@
+/*
+ * Copyright 2004-2009 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
@@ -64,7 +64,7 @@ index 0000000..fd9baf4
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ *
-+ * Framebuffer Framebuffer Driver for SDC and ADC.
++ * Framebuffer Framebuffer Driver for SDC
+ */
+
+#include <linux/module.h>
@@ -89,7 +89,7 @@ index 0000000..fd9baf4
+ int ipu_channel_num;
+ struct ipu_channel *ipu_ch;
+ int dc;
-+ int ipu_di;
++ int di_no;
+ u32 ipu_di_pix_fmt;
+ u32 ipu_in_pix_fmt;
+
@@ -97,9 +97,14 @@ index 0000000..fd9baf4
+
+ struct ipu_dp *dp;
+ struct dmfc_channel *dmfc;
++ struct ipu_di *di;
+ struct fb_info *slave;
+ struct fb_info *master;
+ bool enabled;
++
++ /* overlay specific fields */
++ bool blank_state;
++ int ovlxres, ovlyres;
+};
+
+static int imx_ipu_fb_set_fix(struct fb_info *info)
@@ -163,7 +168,7 @@ index 0000000..fd9baf4
+ if (mxc_fbi->enabled)
+ return;
+
-+ ipu_di_enable(mxc_fbi->ipu_di);
++ ipu_di_enable(mxc_fbi->di);
+ ipu_dmfc_enable_channel(mxc_fbi->dmfc);
+ ipu_idmac_enable_channel(mxc_fbi->ipu_ch);
+ ipu_dc_enable_channel(mxc_fbi->dc);
@@ -182,7 +187,7 @@ index 0000000..fd9baf4
+ ipu_dc_disable_channel(mxc_fbi->dc);
+ ipu_idmac_disable_channel(mxc_fbi->ipu_ch);
+ ipu_dmfc_disable_channel(mxc_fbi->dmfc);
-+ ipu_di_disable(mxc_fbi->ipu_di);
++ ipu_di_disable(mxc_fbi->di);
+
+ mxc_fbi->enabled = 0;
+}
@@ -223,8 +228,6 @@ index 0000000..fd9baf4
+
+ fbi->fix.line_length = var->xres_virtual * var->bits_per_pixel / 8;
+
-+ var->yres_virtual = var->yres;
-+
+ ret = imx_ipu_fb_map_video_memory(fbi);
+ if (ret)
+ return ret;
@@ -279,7 +282,7 @@ index 0000000..fd9baf4
+ }
+ }
+
-+ ret = ipu_dc_init_sync(mxc_fbi->dc, mxc_fbi->ipu_di, interlaced,
++ ret = ipu_dc_init_sync(mxc_fbi->dc, mxc_fbi->di_no, interlaced,
+ out_pixel_fmt, fbi->var.xres);
+ if (ret) {
+ dev_dbg(fbi->device, "initializing display controller failed with %d\n",
@@ -287,7 +290,7 @@ index 0000000..fd9baf4
+ return ret;
+ }
+
-+ ret = ipu_di_init_sync_panel(mxc_fbi->ipu_di,
++ ret = ipu_di_init_sync_panel(mxc_fbi->di,
+ PICOS2KHZ(var->pixclock) * 1000UL,
+ &sig_cfg);
+ if (ret) {
@@ -469,8 +472,13 @@ index 0000000..fd9baf4
+ return ret;
+}
+
++static void imx_ipu_fb_enable_overlay(struct fb_info *fbi);
++static void imx_ipu_fb_disable_overlay(struct fb_info *fbi);
++
+static int imx_ipu_fb_blank(int blank, struct fb_info *info)
+{
++ struct imx_ipu_fb_info *mxc_fbi = info->par;
++
+ dev_dbg(info->device, "blank = %d\n", blank);
+
+ switch (blank) {
@@ -478,10 +486,14 @@ index 0000000..fd9baf4
+ case FB_BLANK_VSYNC_SUSPEND:
+ case FB_BLANK_HSYNC_SUSPEND:
+ case FB_BLANK_NORMAL:
++ if (mxc_fbi->slave)
++ imx_ipu_fb_disable_overlay(mxc_fbi->slave);
+ imx_ipu_fb_disable(info);
+ break;
+ case FB_BLANK_UNBLANK:
+ imx_ipu_fb_enable(info);
++ if (mxc_fbi->slave)
++ imx_ipu_fb_enable_overlay(mxc_fbi->slave);
+ break;
+ }
+
@@ -530,24 +542,67 @@ index 0000000..fd9baf4
+/*
+ * Overlay functions
+ */
-+static int imx_ipu_fb_enable_overlay(struct fb_info *fbi)
++static void imx_ipu_fb_enable_overlay(struct fb_info *fbi)
+{
+ struct imx_ipu_fb_info *mxc_fbi = fbi->par;
+
++ /*
++ * This function is called unconditionally from imx_ipu_fb_blank to
++ * enable/disable the overlay when the background is (un)blanked. So
++ * we decide upon blank_state whether we should actually enable the
++ * overlay.
++ */
++ if (!mxc_fbi->blank_state)
++ return;
++
++ if (mxc_fbi->enabled)
++ return;
++
+ ipu_dmfc_enable_channel(mxc_fbi->dmfc);
+ ipu_idmac_enable_channel(mxc_fbi->ipu_ch);
+ ipu_dp_enable_fg(mxc_fbi->dp);
-+
-+ return 0;
++ mxc_fbi->enabled = 1;
++ ipu_dp_set_color_key(mxc_fbi->dp, 1, 0x434343);
+}
+
-+static int imx_ipu_fb_disable_overlay(struct fb_info *fbi)
++static void imx_ipu_fb_disable_overlay(struct fb_info *fbi)
+{
+ struct imx_ipu_fb_info *mxc_fbi = fbi->par;
+
++ if (!mxc_fbi->enabled)
++ return;
++
+ ipu_dp_disable_fg(mxc_fbi->dp);
++ ipu_wait_for_interrupt(451, 100);
+ ipu_idmac_disable_channel(mxc_fbi->ipu_ch);
+ ipu_dmfc_disable_channel(mxc_fbi->dmfc);
++ mxc_fbi->enabled = 0;
++}
++
++#define NONSTD_TO_XPOS(x) (((x) >> 0) & 0xfff)
++#define NONSTD_TO_YPOS(x) (((x) >> 12) & 0xfff)
++#define NONSTD_TO_ALPHA(x) (((x) >> 24) & 0xff)
++
++static int imx_ipu_fb_check_var_overlay(struct fb_var_screeninfo *var,
++ struct fb_info *info)
++{
++ struct imx_ipu_fb_info *mxc_fbi = info->par;
++ struct fb_info *fbi_master = mxc_fbi->master;
++ struct fb_var_screeninfo *var_master = &fbi_master->var;
++ int ret;
++ static int xpos, ypos;
++
++ xpos = NONSTD_TO_XPOS(var->nonstd);
++ ypos = NONSTD_TO_YPOS(var->nonstd);
++
++ ret = imx_ipu_fb_check_var(var, info);
++ if (ret)
++ return ret;
++
++ if (var->xres + xpos > var_master->xres)
++ return -EINVAL;
++ if (var->yres + ypos > var_master->yres)
++ return -EINVAL;
+
+ return 0;
+}
@@ -557,32 +612,49 @@ index 0000000..fd9baf4
+ struct imx_ipu_fb_info *mxc_fbi = fbi->par;
+ struct fb_var_screeninfo *var = &fbi->var;
+ struct fb_info *fbi_master = mxc_fbi->master;
++ struct imx_ipu_fb_info *mxc_fbi_master = fbi_master->par;
+ struct fb_var_screeninfo *var_master = &fbi_master->var;
+ int ret;
+ int interlaced = 0;
+ int enabled = mxc_fbi->enabled;
++ int xpos, ypos, alpha;
++ int resolution_change;
+
+ dev_dbg(fbi->device, "Reconfiguring framebuffer %dx%d-%d\n",
+ fbi->var.xres, fbi->var.yres, fbi->var.bits_per_pixel);
+
-+ if (enabled)
++ resolution_change = mxc_fbi->ovlxres != var->xres ||
++ mxc_fbi->ovlyres != var->yres;
++
++ if (enabled && resolution_change)
+ imx_ipu_fb_disable_overlay(fbi);
+
+ fbi->fix.line_length = var->xres_virtual *
+ var->bits_per_pixel / 8;
+
-+ ret = imx_ipu_fb_map_video_memory(fbi);
-+ if (ret)
-+ return ret;
++ xpos = NONSTD_TO_XPOS(var->nonstd);
++ ypos = NONSTD_TO_YPOS(var->nonstd);
++ alpha = NONSTD_TO_ALPHA(var->nonstd);
++
++ if (resolution_change) {
++ ret = imx_ipu_fb_map_video_memory(fbi);
++ if (ret)
++ return ret;
++ }
++
++ if (!resolution_change && enabled)
++ ipu_wait_for_interrupt(IPU_IRQ_EOF(mxc_fbi_master->ipu_channel_num), 100);
+
-+ ipu_dp_set_window_pos(mxc_fbi->dp, 64, 64);
++ ipu_dp_set_window_pos(mxc_fbi->dp, xpos, ypos);
++ ipu_dp_set_global_alpha(mxc_fbi->dp, 1, alpha, 1);
+
+ var->xoffset = var->yoffset = 0;
+
-+ if (var->vmode & FB_VMODE_INTERLACED)
-+ interlaced = 1;
++ if (resolution_change) {
++ if (var->vmode & FB_VMODE_INTERLACED)
++ interlaced = 1;
+
-+ ret = ipu_idmac_init_channel_buffer(mxc_fbi->ipu_ch,
++ ret = ipu_idmac_init_channel_buffer(mxc_fbi->ipu_ch,
+ mxc_fbi->ipu_in_pix_fmt,
+ var->xres, var->yres,
+ fbi->fix.line_length,
@@ -590,27 +662,30 @@ index 0000000..fd9baf4
+ fbi->fix.smem_start,
+ 0,
+ 0, 0, interlaced);
-+ if (ret) {
-+ dev_dbg(fbi->device, "init channel buffer failed with %d\n",
++ if (ret) {
++ dev_dbg(fbi->device, "init channel buffer failed with %d\n",
+ ret);
-+ return ret;
-+ }
++ return ret;
++ }
+
-+ ret = ipu_dmfc_init_channel(mxc_fbi->dmfc, var->xres);
-+ if (ret) {
-+ dev_dbg(fbi->device, "initializing dmfc channel failed with %d\n",
++ ret = ipu_dmfc_init_channel(mxc_fbi->dmfc, var->xres);
++ if (ret) {
++ dev_dbg(fbi->device, "initializing dmfc channel failed with %d\n",
+ ret);
-+ return ret;
-+ }
++ return ret;
++ }
+
-+ ret = ipu_dmfc_alloc_bandwidth(mxc_fbi->dmfc, calc_bandwidth(var, calc_vref(var_master)));
-+ if (ret) {
-+ dev_dbg(fbi->device, "allocating dmfc bandwidth failed with %d\n",
++ ret = ipu_dmfc_alloc_bandwidth(mxc_fbi->dmfc, calc_bandwidth(var, calc_vref(var_master)));
++ if (ret) {
++ dev_dbg(fbi->device, "allocating dmfc bandwidth failed with %d\n",
+ ret);
-+ return ret;
++ return ret;
++ }
++ mxc_fbi->ovlxres = var->xres;
++ mxc_fbi->ovlyres = var->yres;
+ }
+
-+ if (enabled)
++ if (enabled && resolution_change)
+ imx_ipu_fb_enable_overlay(fbi);
+
+ return ret;
@@ -618,6 +693,8 @@ index 0000000..fd9baf4
+
+static int imx_ipu_fb_blank_overlay(int blank, struct fb_info *fbi)
+{
++ struct imx_ipu_fb_info *mxc_fbi = fbi->par;
++
+ dev_dbg(fbi->device, "blank = %d\n", blank);
+
+ switch (blank) {
@@ -625,9 +702,11 @@ index 0000000..fd9baf4
+ case FB_BLANK_VSYNC_SUSPEND:
+ case FB_BLANK_HSYNC_SUSPEND:
+ case FB_BLANK_NORMAL:
++ mxc_fbi->blank_state = 0;
+ imx_ipu_fb_disable_overlay(fbi);
+ break;
+ case FB_BLANK_UNBLANK:
++ mxc_fbi->blank_state = 1;
+ imx_ipu_fb_enable_overlay(fbi);
+ break;
+ }
@@ -638,7 +717,7 @@ index 0000000..fd9baf4
+static struct fb_ops imx_ipu_fb_overlay_ops = {
+ .owner = THIS_MODULE,
+ .fb_set_par = imx_ipu_fb_set_par_overlay,
-+ .fb_check_var = imx_ipu_fb_check_var,
++ .fb_check_var = imx_ipu_fb_check_var_overlay,
+ .fb_setcolreg = imx_ipu_fb_setcolreg,
+ .fb_pan_display = imx_ipu_fb_pan_display,
+ .fb_fillrect = cfb_fillrect,
@@ -685,7 +764,7 @@ index 0000000..fd9baf4
+ ovl_mxc_fbi = ovlfbi->par;
+ ovl_mxc_fbi->ipu_ch = ipu_idmac_get(ipu_channel);
+ ovl_mxc_fbi->dmfc = ipu_dmfc_get(ipu_channel);
-+ ovl_mxc_fbi->ipu_di = -1;
++ ovl_mxc_fbi->di = NULL;
+ ovl_mxc_fbi->dp = mxc_fbi_master->dp;
+ ovl_mxc_fbi->master = fbi_master;
+ mxc_fbi_master->slave = ovlfbi;
@@ -703,8 +782,8 @@ index 0000000..fd9baf4
+ return ret;
+ }
+
-+ ipu_dp_set_global_alpha(ovl_mxc_fbi->dp, 1, 0x80, 1);
-+ ipu_dp_set_color_key(ovl_mxc_fbi->dp, 0, 0);
++ ipu_dp_set_global_alpha(ovl_mxc_fbi->dp, 0, 0, 1);
++ ipu_dp_set_color_key(ovl_mxc_fbi->dp, 1, 0x434343);
+
+ imx_ipu_fb_set_par_overlay(ovlfbi);
+
@@ -780,7 +859,7 @@ index 0000000..fd9baf4
+ mxc_fbi->ipu_channel_num = plat_data->ipu_channel_bg;
+ mxc_fbi->dc = plat_data->dc_channel;
+ mxc_fbi->ipu_di_pix_fmt = plat_data->interface_pix_fmt;
-+ mxc_fbi->ipu_di = pdev->id;
++ mxc_fbi->di_no = plat_data->display;
+
+ mxc_fbi->ipu_ch = ipu_idmac_get(plat_data->ipu_channel_bg);
+ if (IS_ERR(mxc_fbi->ipu_ch)) {
@@ -802,6 +881,12 @@ index 0000000..fd9baf4
+ }
+ }
+
++ mxc_fbi->di = ipu_di_get(plat_data->display);
++ if (IS_ERR(mxc_fbi->di)) {
++ ret = PTR_ERR(mxc_fbi->di);
++ goto failed_request_di;
++ }
++
+ fbi->var.yres_virtual = fbi->var.yres;
+
+ INIT_LIST_HEAD(&fbi->modelist);
@@ -832,6 +917,8 @@ index 0000000..fd9baf4
+ return 0;
+
+failed_register:
++ ipu_di_put(mxc_fbi->di);
++failed_request_di:
+ if (plat_data->dp_channel >= 0)
+ ipu_dp_put(mxc_fbi->dp);
+failed_request_dp:
@@ -868,6 +955,7 @@ index 0000000..fd9baf4
+ ipu_dp_put(mxc_fbi->dp);
+ ipu_dmfc_free_bandwidth(mxc_fbi->dmfc);
+ ipu_dmfc_put(mxc_fbi->dmfc);
++ ipu_di_put(mxc_fbi->di);
+ ipu_idmac_put(mxc_fbi->ipu_ch);
+
+ framebuffer_release(fbi);
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-6-iMX51-Add_IPU_device_support.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-6-iMX51-Add_IPU_device_support.patch
similarity index 61%
rename from buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-6-iMX51-Add_IPU_device_support.patch
rename to buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-6-iMX51-Add_IPU_device_support.patch
index 93dadee..59251fb 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-6-iMX51-Add_IPU_device_support.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-6-iMX51-Add_IPU_device_support.patch
@@ -8,11 +8,11 @@ Signed-off-by: Sascha Hauer <s....@pe...>
5 files changed, 66 insertions(+), 0 deletions(-)
create mode 100644 arch/arm/plat-mxc/devices/platform-imx_ipuv3.c
-Index: linux-2.6.36/arch/arm/mach-mx5/devices-imx51.h
-===================================================================
---- linux-2.6.36.orig/arch/arm/mach-mx5/devices-imx51.h 2010-12-13 14:50:32.000000000 +0100
-+++ linux-2.6.36/arch/arm/mach-mx5/devices-imx51.h 2010-12-13 14:50:32.000000000 +0100
-@@ -43,3 +43,7 @@
+diff --git a/arch/arm/mach-mx5/devices-imx51.h b/arch/arm/mach-mx5/devices-imx51.h
+index 6302e46..851c114 100644
+--- a/arch/arm/mach-mx5/devices-imx51.h
++++ b/arch/arm/mach-mx5/devices-imx51.h
+@@ -47,3 +47,7 @@ extern const struct imx_spi_imx_data imx51_ecspi_data[] __initconst;
extern const struct imx_imx2_wdt_data imx51_imx2_wdt_data[] __initconst;
#define imx51_add_imx2_wdt(id, pdata) \
imx_add_imx2_wdt(&imx51_imx2_wdt_data[id])
@@ -20,11 +20,11 @@ Index: linux-2.6.36/arch/arm/mach-mx5/devices-imx51.h
+extern const struct imx_ipuv3_data imx51_ipuv3_data __initconst;
+#define imx51_add_ipuv3(pdata) \
+ imx_add_ipuv3(&imx51_ipuv3_data, pdata)
-Index: linux-2.6.36/arch/arm/plat-mxc/devices/Kconfig
-===================================================================
---- linux-2.6.36.orig/arch/arm/plat-mxc/devices/Kconfig 2010-12-13 14:50:32.000000000 +0100
-+++ linux-2.6.36/arch/arm/plat-mxc/devices/Kconfig 2010-12-13 14:50:32.000000000 +0100
-@@ -63,3 +63,7 @@
+diff --git a/arch/arm/plat-mxc/devices/Kconfig b/arch/arm/plat-mxc/devices/Kconfig
+index 2537166..262d9c5 100644
+--- a/arch/arm/plat-mxc/devices/Kconfig
++++ b/arch/arm/plat-mxc/devices/Kconfig
+@@ -71,3 +71,7 @@ config IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
config IMX_HAVE_PLATFORM_SPI_IMX
bool
@@ -32,19 +32,20 @@ Index: linux-2.6.36/arch/arm/plat-mxc/devices/Kconfig
+config IMX_HAVE_PLATFORM_IMX_IPUV3
+ bool
+
-Index: linux-2.6.36/arch/arm/plat-mxc/devices/Makefile
-===================================================================
---- linux-2.6.36.orig/arch/arm/plat-mxc/devices/Makefile 2010-12-13 14:50:32.000000000 +0100
-+++ linux-2.6.36/arch/arm/plat-mxc/devices/Makefile 2010-12-13 14:50:32.000000000 +0100
-@@ -20,3 +20,4 @@
+diff --git a/arch/arm/plat-mxc/devices/Makefile b/arch/arm/plat-mxc/devices/Makefile
+index 75cd2ec..0a6be0a 100644
+--- a/arch/arm/plat-mxc/devices/Makefile
++++ b/arch/arm/plat-mxc/devices/Makefile
+@@ -22,3 +22,4 @@ obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_RNGA) += platform-mxc_rnga.o
obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_W1) += platform-mxc_w1.o
obj-$(CONFIG_IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX) += platform-sdhci-esdhc-imx.o
obj-$(CONFIG_IMX_HAVE_PLATFORM_SPI_IMX) += platform-spi_imx.o
+obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_IPUV3) += platform-imx_ipuv3.o
-Index: linux-2.6.36/arch/arm/plat-mxc/devices/platform-imx_ipuv3.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.36/arch/arm/plat-mxc/devices/platform-imx_ipuv3.c 2010-12-13 15:56:30.000000000 +0100
+diff --git a/arch/arm/plat-mxc/devices/platform-imx_ipuv3.c b/arch/arm/plat-mxc/devices/platform-imx_ipuv3.c
+new file mode 100644
+index 0000000..2c6b913
+--- /dev/null
++++ b/arch/arm/plat-mxc/devices/platform-imx_ipuv3.c
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2010 Pengutronix
@@ -64,10 +65,10 @@ Index: linux-2.6.36/arch/arm/plat-mxc/devices/platform-imx_ipuv3.c
+ .irq = soc ## _INT_IPU_SYN, \
+ }
+
-+//#ifdef CONFIG_SOC_IMX51
++#ifdef CONFIG_SOC_IMX51
+const struct imx_ipuv3_data imx51_ipuv3_data __initconst =
+ imx51_ipuv3_data_entry_single(MX51);
-+//#endif /* ifdef CONFIG_SOC_IMX35 */
++#endif /* ifdef CONFIG_SOC_IMX35 */
+
+struct platform_device *__init imx_add_ipuv3(
+ const struct imx_ipuv3_data *data,
@@ -76,7 +77,7 @@ Index: linux-2.6.36/arch/arm/plat-mxc/devices/platform-imx_ipuv3.c
+ struct resource res[] = {
+ {
+ .start = data->iobase,
-+ .end = data->iobase + SZ_4K - 1,
++ .end = data->iobase + SZ_512M - 1,
+ .flags = IORESOURCE_MEM,
+ }, {
+ .start = data->irq_err,
@@ -93,11 +94,11 @@ Index: linux-2.6.36/arch/arm/plat-mxc/devices/platform-imx_ipuv3.c
+ res, ARRAY_SIZE(res), pdata, sizeof(*pdata));
+}
+
-Index: linux-2.6.36/arch/arm/plat-mxc/include/mach/devices-common.h
-===================================================================
---- linux-2.6.36.orig/arch/arm/plat-mxc/include/mach/devices-common.h 2010-12-13 14:50:32.000000000 +0100
-+++ linux-2.6.36/arch/arm/plat-mxc/include/mach/devices-common.h 2010-12-13 14:50:32.000000000 +0100
-@@ -245,3 +245,13 @@
+diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h
+index 8658c9c..8f5197f 100644
+--- a/arch/arm/plat-mxc/include/mach/devices-common.h
++++ b/arch/arm/plat-mxc/include/mach/devices-common.h
+@@ -264,3 +264,13 @@ struct imx_spi_imx_data {
struct platform_device *__init imx_add_spi_imx(
const struct imx_spi_imx_data *data,
const struct spi_imx_master *pdata);
@@ -111,3 +112,6 @@ Index: linux-2.6.36/arch/arm/plat-mxc/include/mach/devices-common.h
+struct platform_device *__init imx_add_ipuv3(
+ const struct imx_ipuv3_data *data,
+ const struct imx_ipuv3_platform_data *pdata);
+--
+1.7.2.3
+
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-7-iMX51-Allow_to_increase_max_zone_order.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-7-iMX51-Allow_to_increase_max_zone_order.patch
similarity index 100%
rename from buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-7-iMX51-Allow_to_increase_max_zone_order.patch
rename to buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-7-iMX51-Allow_to_increase_max_zone_order.patch
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-8-iMX51-increase_dma_consistent_size_for_IPU_support.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-8-iMX51-increase_dma_consistent_size_for_IPU_support.patch
similarity index 72%
rename from buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-8-iMX51-increase_dma_consistent_size_for_IPU_support.patch
rename to buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-8-iMX51-increase_dma_consistent_size_for_IPU_support.patch
index 6bb389a..94115e7 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-8-iMX51-increase_dma_consistent_size_for_IPU_support.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-8-iMX51-increase_dma_consistent_size_for_IPU_support.patch
@@ -1,18 +1,19 @@
Signed-off-by: Sascha Hauer <s....@pe...>
---
- arch/arm/plat-mxc/include/mach/memory.h | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
+ arch/arm/plat-mxc/include/mach/memory.h | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/arch/arm/plat-mxc/include/mach/memory.h b/arch/arm/plat-mxc/include/mach/memory.h
-index 9a9a000..a8152db 100644
+index 9a9a000..987b42a 100644
--- a/arch/arm/plat-mxc/include/mach/memory.h
+++ b/arch/arm/plat-mxc/include/mach/memory.h
-@@ -40,7 +40,7 @@
+@@ -40,7 +40,8 @@
# endif
#endif
-#if defined(CONFIG_MX3_VIDEO)
-+#if defined(CONFIG_MX3_VIDEO) || defined(CONFIG_MFD_IMX_IPU_V3)
++#if defined(CONFIG_MX3_VIDEO) || defined(CONFIG_MFD_IMX_IPU_V3) || \
++ defined(CONFIG_MFD_IMX_IPU_V3_MODULE)
/*
* Increase size of DMA-consistent memory region.
* This is required for mx3 camera driver to capture at least two QXGA frames.
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-9-iMX51-babbage_add_framebuffer_support.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-9-iMX51-babbage_add_framebuffer_support.patch
similarity index 90%
rename from buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-9-iMX51-babbage_add_framebuffer_support.patch
rename to buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-9-iMX51-babbage_add_framebuffer_support.patch
index a13bf98..93f438e 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-9-iMX51-babbage_add_framebuffer_support.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-20-pengutronix-9-iMX51-babbage_add_framebuffer_support.patch
@@ -17,7 +17,7 @@ index 5011f42..2a936b7 100644
Include support for MX51 Babbage platform, also known as MX51EVK in
u-boot. This includes specific configurations for the board and its
diff --git a/arch/arm/mach-mx5/board-mx51_babbage.c b/arch/arm/mach-mx5/board-mx51_babbage.c
-index a896f84..169c48c 100644
+index 368a315..6c1576c 100644
--- a/arch/arm/mach-mx5/board-mx51_babbage.c
+++ b/arch/arm/mach-mx5/board-mx51_babbage.c
@@ -22,11 +22,13 @@
@@ -34,7 +34,7 @@ index a896f84..169c48c 100644
#include <asm/irq.h>
#include <asm/setup.h>
-@@ -147,6 +149,41 @@ static iomux_v3_cfg_t mx51babbage_pads[] = {
+@@ -158,6 +160,41 @@ static iomux_v3_cfg_t mx51babbage_pads[] = {
MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK,
MX51_PAD_CSPI1_SS0__GPIO_4_24,
MX51_PAD_CSPI1_SS1__GPIO_4_25,
@@ -76,29 +76,31 @@ index a896f84..169c48c 100644
};
/* Serial ports */
-@@ -310,6 +347,21 @@ static const struct spi_imx_master mx51_babbage_spi_pdata __initconst = {
+@@ -346,6 +383,23 @@ static const struct spi_imx_master mx51_babbage_spi_pdata __initconst = {
.num_chipselect = ARRAY_SIZE(mx51_babbage_spi_cs),
};
+static struct ipuv3_fb_platform_data babbage_fb0_data = {
+ .interface_pix_fmt = IPU_PIX_FMT_RGB24,
+ .flags = IMX_IPU_FB_USE_MODEDB | IMX_IPU_FB_USE_OVERLAY,
++ .display = 0,
+};
+
+static struct ipuv3_fb_platform_data babbage_fb1_data = {
+ .interface_pix_fmt = IPU_PIX_FMT_RGB565,
+ .flags = IMX_IPU_FB_USE_MODEDB,
++ .display = 1,
+};
+
+static struct imx_ipuv3_platform_data ipu_data = {
-+ .fb0_platform_data = &babbage_fb0_data,
-+ .fb1_platform_data = &babbage_fb1_data,
++ .fb_head0_platform_data = &babbage_fb0_data,
++ .fb_head1_platform_data = &babbage_fb1_data,
+};
+
/*
* Board specific initialization.
*/
-@@ -351,6 +403,28 @@ static void __init mxc_board_init(void)
+@@ -392,6 +446,26 @@ static void __init mxc_board_init(void)
ARRAY_SIZE(mx51_babbage_spi_board_info));
imx51_add_ecspi(0, &mx51_babbage_spi_pdata);
imx51_add_imx2_wdt(0, NULL);
@@ -113,12 +115,10 @@ index a896f84..169c48c 100644
+ gpio_direction_input(GPIO_DVI_DETECT);
+ /* DVI Reset - Assert for i2c disabled mode */
+ gpio_request(GPIO_DVI_RESET, "dvi reset");
-+ gpio_set_value(GPIO_DVI_RESET, 0);
+ gpio_direction_output(GPIO_DVI_RESET, 0);
+ /* DVI Power-down */
+ gpio_request(GPIO_DVI_PWRDN, "dvi pwdn");
-+ gpio_direction_output(GPIO_DVI_PWRDN, 0);
-+ gpio_set_value(GPIO_DVI_PWRDN, 1);
++ gpio_direction_output(GPIO_DVI_PWRDN, 1);
+
+ gpio_request(GPIO_DVI_I2C, "dvi i2c");
+ gpio_direction_output(GPIO_DVI_I2C, 0);
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/400-armadeus-add_apf51_module.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/400-armadeus-add_apf51_module.patch
index 5568549..23ff79b 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/400-armadeus-add_apf51_module.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/400-armadeus-add_apf51_module.patch
@@ -1,7 +1,7 @@
Index: linux-2.6.38-alpha/arch/arm/mach-mx5/Kconfig
===================================================================
---- linux-2.6.38-alpha.orig/arch/arm/mach-mx5/Kconfig 2010-12-29 10:34:58.000000000 +0100
-+++ linux-2.6.38-alpha/arch/arm/mach-mx5/Kconfig 2010-12-29 10:35:03.000000000 +0100
+--- linux-2.6.38-alpha.orig/arch/arm/mach-mx5/Kconfig 2010-12-30 21:07:06.000000000 +0100
++++ linux-2.6.38-alpha/arch/arm/mach-mx5/Kconfig 2010-12-31 17:35:40.000000000 +0100
@@ -101,4 +101,17 @@
Include support for Genesi Efika MX nettop. This includes specific
configurations for the board and its peripherals.
@@ -22,8 +22,8 @@ Index: linux-2.6.38-alpha/arch/arm/mach-mx5/Kconfig
endif
Index: linux-2.6.38-alpha/arch/arm/mach-mx5/Makefile
===================================================================
---- linux-2.6.38-alpha.orig/arch/arm/mach-mx5/Makefile 2010-12-29 10:33:53.000000000 +0100
-+++ linux-2.6.38-alpha/arch/arm/mach-mx5/Makefile 2010-12-29 10:35:03.000000000 +0100
+--- linux-2.6.38-alpha.orig/arch/arm/mach-mx5/Makefile 2010-12-30 21:06:56.000000000 +0100
++++ linux-2.6.38-alpha/arch/arm/mach-mx5/Makefile 2010-12-31 17:35:39.000000000 +0100
@@ -6,6 +6,7 @@
obj-y := cpu.o mm.o clock-mx51-mx53.o devices.o
@@ -35,13 +35,15 @@ Index: linux-2.6.38-alpha/arch/arm/mach-mx5/Makefile
Index: linux-2.6.38-alpha/arch/arm/mach-mx5/board-apf51.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.38-alpha/arch/arm/mach-mx5/board-apf51.c 2010-12-29 10:35:03.000000000 +0100
-@@ -0,0 +1,474 @@
++++ linux-2.6.38-alpha/arch/arm/mach-mx5/board-apf51.c 2010-12-31 16:14:49.000000000 +0100
+@@ -0,0 +1,522 @@
+/*
-+ * Copyright 2010 Armadeus Systems
++ * Support for APF51 System On Module
++ * Copyright (C) 2010 Armadeus Systems
+ *
+ * Based on code which is:
-+ * Copyright 2008-2009 Freescale Semiconductor, Inc. All Rights Reserved.
++ * Copyright 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
++ * Copyright (C) 2009-2010 Amit Kucheria <ami...@ca...>
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
@@ -150,10 +152,6 @@ Index: linux-2.6.38-alpha/arch/arm/mach-mx5/board-apf51.c
+ MX51_PAD_GPIO_1_4__GPIO_1_4,
+ /* WM8311 TOUCH_EOC */
+ MX51_PAD_GPIO_1_6__GPIO_1_6,
-+
-+ /* Debug PINS */
-+/* MX51_PAD_GPIO_1_2__GPIO_1_2,
-+ MX51_PAD_GPIO_1_3__GPIO_1_3,*/
+};
+
+/* Serial ports */
@@ -164,7 +162,6 @@ Index: linux-2.6.38-alpha/arch/arm/mach-mx5/board-apf51.c
+
+static inline void apf51_init_imx_uart(void)
+{
-+ //mxc_register_device(&mxc_uart_device1, &uart_pdata);
+ imx51_add_imx_uart(1, &uart_pdata);
+}
+#else /* !SERIAL_IMX */
@@ -367,6 +364,64 @@ Index: linux-2.6.38-alpha/arch/arm/mach-mx5/board-apf51.c
+ return 0;
+}
+
++/* OTG port with i.MX51 internal PHY */
++#define MX51_USB_PLL_DIV_19_2_MHZ 0x01
++#define MX51_USB_PLL_DIV_24_MHZ 0x02
++
++/* This function is board specific as the bit mask for the plldiv will also
++be different for other Freescale SoCs, thus a common bitmask is not
++possible and cannot get place in /plat-mxc/ehci.c.*/
++static int initialize_otg_port(struct platform_device *pdev)
++{
++ u32 v;
++ void __iomem *usb_base;
++ void __iomem *usbother_base;
++
++ usb_base = ioremap(MX51_OTG_BASE_ADDR, SZ_4K);
++ if (!usb_base)
++ return -ENOMEM;
++ usbother_base = usb_base + MX5_USBOTHER_REGS_OFFSET;
++
++ /* Set the PHY clock to ...
[truncated message content] |
|
From: Julien B a. A. <ar...@us...> - 2010-12-30 09:53:51
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 243e4dad6ab78b9d390d4b4ebfac760c37888e23 (commit)
via 074862f44547e6e0eaa7251d23bc61d71d89cdd3 (commit)
via e225ad86ef674f277a1cec4d3ff4f3934cf76d75 (commit)
via 98ec4c66b5514b98c69b32fdf4323a8fb7c67255 (commit)
via b59129465c3a96abbc7d0789ea3c78e78af3445a (commit)
via f60052d3101398a5ed0938dda62218463ec66d9f (commit)
from 3ae0fa607fc883713ec34f0bd65dd0e61c18a13d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 243e4dad6ab78b9d390d4b4ebfac760c37888e23
Merge: 074862f44547e6e0eaa7251d23bc61d71d89cdd3 3ae0fa607fc883713ec34f0bd65dd0e61c18a13d
Author: Julien Boibessot <jul...@ar...>
Date: Thu Dec 30 10:53:21 2010 +0100
Merge branch 'master' of ssh://artemys@armadeus.git.sourceforge.net/gitroot/armadeus/armadeus
commit 074862f44547e6e0eaa7251d23bc61d71d89cdd3
Author: Julien Boibessot <jul...@ar...>
Date: Thu Dec 30 10:35:09 2010 +0100
Fixes patches/buildroot/2010.11/cleanup_buildroot.sh
commit e225ad86ef674f277a1cec4d3ff4f3934cf76d75
Merge: 98ec4c66b5514b98c69b32fdf4323a8fb7c67255 d0a58cec1516ad347ee9200292cb0bd40e9dd83d
Author: Julien Boibessot <jul...@ar...>
Date: Thu Dec 30 09:54:27 2010 +0100
Merge branch 'master' of ssh://artemys@armadeus.git.sourceforge.net/gitroot/armadeus/armadeus
commit 98ec4c66b5514b98c69b32fdf4323a8fb7c67255
Author: Julien Boibessot <jul...@ar...>
Date: Thu Dec 30 09:36:20 2010 +0100
[LINUX] 2.6.38: Add (preliminary) APF51 support.
commit b59129465c3a96abbc7d0789ea3c78e78af3445a
Author: Julien Boibessot <jul...@ar...>
Date: Wed Dec 29 11:04:21 2010 +0100
[U-BOOT] apf51: use mxc_nand instead of mxc_nand.0 as boot params
commit f60052d3101398a5ed0938dda62218463ec66d9f
Author: Julien Boibessot <jul...@ar...>
Date: Tue Dec 28 11:56:13 2010 +0100
[TEST] imxregs: i.MX51, adds I2C registers (not working (16 bits accesses))
-----------------------------------------------------------------------
Summary of changes:
buildroot/configs/apf51_defconfig | 19 +-
.../armadeus/apf51/apf51-linux-2.6.38-alpha.config | 1 +
...nux-2.6.36.config => apf51-linux-2.6.38.config} | 122 +-
.../device/armadeus/apf51/apf51-u-boot-2010.03.h | 2 +-
.../armadeus/linux/kernel-patches/2.6.38-alpha | 1 +
...pengutronix-1-iMX51-add_ipu_clock_support.patch | 187 +
...12-10-pengutronix-2-iMX51-rename_IPU_irqs.patch | 24 +
...2-10-pengutronix-3-Add_a_mfd_IPUv3_driver.patch | 3576 ++++++++++++++++++++
...-pengutronix-4-fb-export_fb_mode_fb_table.patch | 51 +
...pengutronix-5-Add_iMX5_framebuffer_driver.patch | 905 +++++
...engutronix-6-iMX51-Add_IPU_device_support.patch | 113 +
...-7-iMX51-Allow_to_increase_max_zone_order.patch | 28 +
...rease_dma_consistent_size_for_IPU_support.patch | 21 +
...x-9-iMX51-babbage_add_framebuffer_support.patch | 132 +
.../400-armadeus-add_apf51_module.patch | 234 ++-
.../2.6.38/401-armadeus-fix_clock_tree.patch | 68 +
.../402-armadeus-add_nand_device.to_check} | 29 -
.../2.6.38/403-armadeus-set-uart2-debug.patch | 17 +
.../404-armadeus-fix_nand_ecc_oob.patch | 36 +-
...deus-iomux-mx51-add_USBH2_pins_definition.patch | 14 +-
...ct_some_mx5_regiter_settings_and_comments.patch | 8 +-
...-mx5-devices-add_USBH2_to_list_of_devices.patch | 49 +-
.../408-armadeus-add_apf51-dev_baseboard.patch | 187 +
...adeus-iomux-mx51-add_I2C2_pins_definition.patch | 22 +
patches/buildroot/2010.11/cleanup_buildroot.sh | 1 +
target/linux/debug/imxregs/imx51regs.h | 14 +
26 files changed, 5697 insertions(+), 164 deletions(-)
create mode 120000 buildroot/target/device/armadeus/apf51/apf51-linux-2.6.38-alpha.config
copy buildroot/target/device/armadeus/apf51/{apf51-linux-2.6.36.config => apf51-linux-2.6.38.config} (94%)
create mode 120000 buildroot/target/device/armadeus/linux/kernel-patches/2.6.38-alpha
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-1-iMX51-add_ipu_clock_support.patch
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-2-iMX51-rename_IPU_irqs.patch
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-3-Add_a_mfd_IPUv3_driver.patch
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-4-fb-export_fb_mode_fb_table.patch
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-5-Add_iMX5_framebuffer_driver.patch
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-6-iMX51-Add_IPU_device_support.patch
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-7-iMX51-Allow_to_increase_max_zone_order.patch
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-8-iMX51-increase_dma_consistent_size_for_IPU_support.patch
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-9-iMX51-babbage_add_framebuffer_support.patch
copy buildroot/target/device/armadeus/linux/kernel-patches/{2.6.36 => 2.6.38}/400-armadeus-add_apf51_module.patch (61%)
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/401-armadeus-fix_clock_tree.patch
copy buildroot/target/device/armadeus/linux/kernel-patches/{2.6.36/402-armadeus-add_nand_device.patch => 2.6.38/402-armadeus-add_nand_device.to_check} (86%)
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/403-armadeus-set-uart2-debug.patch
copy buildroot/target/device/armadeus/linux/kernel-patches/{2.6.36 => 2.6.38}/404-armadeus-fix_nand_ecc_oob.patch (71%)
copy buildroot/target/device/armadeus/linux/kernel-patches/{2.6.36 => 2.6.38}/405-armadeus-iomux-mx51-add_USBH2_pins_definition.patch (90%)
copy buildroot/target/device/armadeus/linux/kernel-patches/{2.6.36 => 2.6.38}/406-armadeus-plat-mxc-ehci-correct_some_mx5_regiter_settings_and_comments.patch (83%)
copy buildroot/target/device/armadeus/linux/kernel-patches/{2.6.36 => 2.6.38}/407-armadeus-mx5-devices-add_USBH2_to_list_of_devices.patch (71%)
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/408-armadeus-add_apf51-dev_baseboard.patch
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/409-armadeus-iomux-mx51-add_I2C2_pins_definition.patch
diff --git a/buildroot/configs/apf51_defconfig b/buildroot/configs/apf51_defconfig
index 1d86404..13f9a17 100644
--- a/buildroot/configs/apf51_defconfig
+++ b/buildroot/configs/apf51_defconfig
@@ -1,6 +1,6 @@
#
# Automatically generated make config: don't edit
-# Mon Nov 1 17:03:11 2010
+# Tue Dec 28 18:08:43 2010
#
BR2_HAVE_DOT_CONFIG=y
BR2_VERSION="2010.11-git"
@@ -133,9 +133,9 @@ BR2_TOOLCHAIN_BUILDROOT=y
#
# Kernel Header Options
#
-# BR2_KERNEL_HEADERS_2_6_33 is not set
# BR2_KERNEL_HEADERS_2_6_34 is not set
# BR2_KERNEL_HEADERS_2_6_35 is not set
+# BR2_KERNEL_HEADERS_2_6_36 is not set
BR2_KERNEL_HEADERS_VERSION=y
# BR2_KERNEL_HEADERS_SNAP is not set
BR2_DEFAULT_KERNEL_VERSION="2.6.29.6"
@@ -166,10 +166,12 @@ BR2_EXTRA_BINUTILS_CONFIG_OPTIONS=""
# BR2_GCC_VERSION_4_2_4 is not set
# BR2_GCC_VERSION_4_3_X is not set
BR2_GCC_VERSION_4_4_X=y
+# BR2_GCC_VERSION_4_5_X is not set
# BR2_GCC_VERSION_SNAP is not set
BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE=y
BR2_GCC_VERSION="4.4.5"
BR2_EXTRA_GCC_CONFIG_OPTIONS=""
+# BR2_GCC_CROSS_OBJC is not set
# BR2_GCC_CROSS_FORTRAN is not set
# BR2_INSTALL_OBJC is not set
# BR2_INSTALL_FORTRAN is not set
@@ -244,6 +246,7 @@ BR2_PACKAGE_FPGAREGS=y
BR2_PACKAGE_IMXREGS=y
# BR2_PACKAGE_IMXSSI is not set
BR2_PACKAGE_MAX5821CTRL=y
+# BR2_PACKAGE_ARMADEUS_PPS_TEST_SCRIPTS is not set
# BR2_PACKAGE_ARMADEUS_TESTSUITE is not set
#
@@ -350,6 +353,7 @@ BR2_PACKAGE_STRACE=y
# BR2_PACKAGE_LIBGMP is not set
# BR2_PACKAGE_GPERF is not set
# BR2_PACKAGE_MAKE is not set
+# BR2_PACKAGE_LIBMPC is not set
# BR2_PACKAGE_LIBMPFR is not set
# BR2_PACKAGE_LIBTOOL is not set
# BR2_PACKAGE_M4 is not set
@@ -451,6 +455,7 @@ BR2_PACKAGE_STRACE=y
BR2_PACKAGE_I2C_TOOLS=y
# BR2_PACKAGE_INPUT_TOOLS is not set
# BR2_PACKAGE_IOSTAT is not set
+# BR2_PACKAGE_KBD is not set
# BR2_PACKAGE_LCD4LINUX is not set
# BR2_PACKAGE_LM_SENSORS is not set
# BR2_PACKAGE_LVM2 is not set
@@ -502,6 +507,7 @@ BR2_PACKAGE_MTD_UBIUPDATEVOL=y
# BR2_PACKAGE_NTFS_3G is not set
# BR2_PACKAGE_NTFSPROGS is not set
# BR2_PACKAGE_PCIUTILS is not set
+# BR2_PACKAGE_RNG_TOOLS is not set
# BR2_PACKAGE_SETSERIAL is not set
# BR2_PACKAGE_SMARTMONTOOLS is not set
# BR2_PACKAGE_SQUASHFS is not set
@@ -612,6 +618,7 @@ BR2_PACKAGE_TSLIB=y
#
# Other
#
+# BR2_PACKAGE_ARGP_STANDALONE is not set
# BR2_PACKAGE_LIBATOMIC_OPS is not set
# BR2_PACKAGE_LIBCAP is not set
# BR2_PACKAGE_LIBDAEMON is not set
@@ -696,6 +703,7 @@ BR2_PACKAGE_NTP=y
# BR2_PACKAGE_NTP_NTPDC is not set
# BR2_PACKAGE_NTP_NTPQ is not set
# BR2_PACKAGE_NTP_TICKADJ is not set
+# BR2_PACKAGE_NUTTCP is not set
# BR2_PACKAGE_OLSR is not set
# BR2_PACKAGE_OPENNTPD is not set
# BR2_PACKAGE_OPENOBEX is not set
@@ -727,6 +735,7 @@ BR2_PACKAGE_PORTMAP=y
# BR2_PACKAGE_VTUN is not set
# BR2_PACKAGE_WEBIF is not set
BR2_PACKAGE_WIRELESS_TOOLS=y
+# BR2_PACKAGE_WIRELESS_TOOLS_LIB is not set
# BR2_PACKAGE_WPA_SUPPLICANT is not set
#
@@ -835,12 +844,12 @@ BR2_TARGET_UBOOT_COPYTO=""
# Kernel
#
BR2_LINUX_KERNEL=y
-# BR2_LINUX_KERNEL_2_6_35 is not set
+# BR2_LINUX_KERNEL_2_6_36 is not set
# BR2_LINUX_KERNEL_SAME_AS_HEADERS is not set
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
# BR2_LINUX_KERNEL_CUSTOM_TARBALL is not set
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="2.6.36"
-BR2_LINUX_KERNEL_VERSION="2.6.36"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="2.6.38-alpha"
+BR2_LINUX_KERNEL_VERSION="2.6.38-alpha"
BR2_LINUX_KERNEL_PATCH="$(LINUX26_PATCH_DIR)"
# BR2_LINUX_KERNEL_USE_DEFCONFIG is not set
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
diff --git a/buildroot/target/device/armadeus/apf51/apf51-linux-2.6.38-alpha.config b/buildroot/target/device/armadeus/apf51/apf51-linux-2.6.38-alpha.config
new file mode 120000
index 0000000..7ff682f
--- /dev/null
+++ b/buildroot/target/device/armadeus/apf51/apf51-linux-2.6.38-alpha.config
@@ -0,0 +1 @@
+apf51-linux-2.6.38.config
\ No newline at end of file
diff --git a/buildroot/target/device/armadeus/apf51/apf51-linux-2.6.36.config b/buildroot/target/device/armadeus/apf51/apf51-linux-2.6.38.config
similarity index 94%
copy from buildroot/target/device/armadeus/apf51/apf51-linux-2.6.36.config
copy to buildroot/target/device/armadeus/apf51/apf51-linux-2.6.38.config
index 3c76717..e472ecc 100644
--- a/buildroot/target/device/armadeus/apf51/apf51-linux-2.6.36.config
+++ b/buildroot/target/device/armadeus/apf51/apf51-linux-2.6.38.config
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.36
-# Wed Dec 1 17:27:05 2010
+# Linux/arm 2.6.37-rc4 Kernel Configuration
+# Wed Dec 29 09:45:32 2010
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -17,6 +17,7 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_NEED_DMA_MAP_STATE=y
@@ -25,6 +26,8 @@ CONFIG_ARM_L1_CACHE_SHIFT_6=y
CONFIG_VECTORS_BASE=0xffff0000
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_CONSTRUCTORS=y
+CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
#
# General setup
@@ -50,13 +53,16 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not set
+# CONFIG_HAVE_GENERIC_HARDIRQS is not set
+# CONFIG_SPARSE_IRQ is not set
#
# RCU Subsystem
#
-CONFIG_TREE_RCU=y
-# CONFIG_TREE_PREEMPT_RCU is not set
+CONFIG_TREE_PREEMPT_RCU=y
# CONFIG_TINY_RCU is not set
+# CONFIG_TINY_PREEMPT_RCU is not set
+CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_TRACE is not set
CONFIG_RCU_FANOUT=32
# CONFIG_RCU_FANOUT_EXACT is not set
@@ -64,9 +70,9 @@ CONFIG_RCU_FANOUT=32
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_CGROUPS is not set
-# CONFIG_SYSFS_DEPRECATED_V2 is not set
-# CONFIG_RELAY is not set
# CONFIG_NAMESPACES is not set
+# CONFIG_SYSFS_DEPRECATED is not set
+# CONFIG_RELAY is not set
# CONFIG_BLK_DEV_INITRD is not set
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
@@ -109,6 +115,7 @@ CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_CLK=y
+CONFIG_HAVE_HW_BREAKPOINT=y
#
# GCOV-based kernel profiling
@@ -216,12 +223,13 @@ CONFIG_ARCH_MXC=y
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_S3C64XX is not set
-# CONFIG_ARCH_S5P6440 is not set
+# CONFIG_ARCH_S5P64X0 is not set
# CONFIG_ARCH_S5P6442 is not set
# CONFIG_ARCH_S5PC100 is not set
# CONFIG_ARCH_S5PV210 is not set
# CONFIG_ARCH_S5PV310 is not set
# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_TCC_926 is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_U300 is not set
# CONFIG_ARCH_U8500 is not set
@@ -229,6 +237,14 @@ CONFIG_ARCH_MXC=y
# CONFIG_ARCH_DAVINCI is not set
# CONFIG_ARCH_OMAP is not set
# CONFIG_PLAT_SPEAR is not set
+CONFIG_IMX_HAVE_PLATFORM_FEC=y
+CONFIG_IMX_HAVE_PLATFORM_GPIO_KEYS=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_I2C=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_UART=y
+CONFIG_IMX_HAVE_PLATFORM_MXC_NAND=y
+CONFIG_IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX=y
+CONFIG_IMX_HAVE_PLATFORM_SPI_IMX=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_IPUV3=y
#
# Freescale MXC Implementations
@@ -240,6 +256,7 @@ CONFIG_ARCH_MXC=y
# CONFIG_ARCH_MXC91231 is not set
CONFIG_ARCH_MX5=y
CONFIG_ARCH_MX51=y
+CONFIG_SOC_IMX51=y
#
# MX5 platforms:
@@ -247,6 +264,8 @@ CONFIG_ARCH_MX51=y
# CONFIG_MACH_MX51_BABBAGE is not set
# CONFIG_MACH_MX51_3DS is not set
# CONFIG_MACH_EUKREA_CPUIMX51 is not set
+# CONFIG_MACH_EUKREA_CPUIMX51SD is not set
+# CONFIG_MACH_MX51_EFIKAMX is not set
CONFIG_MACH_APF51=y
CONFIG_MACH_APF51_HAS_BASEBOARD=y
CONFIG_MACH_APF51_DEV=y
@@ -256,6 +275,7 @@ CONFIG_MXC_TZIC=y
# CONFIG_MXC_DEBUG_BOARD is not set
CONFIG_MXC_ULPI=y
CONFIG_ARCH_MXC_IOMUX_V3=y
+CONFIG_ARCH_MXC_AUDMUX_V2=y
#
# Processor Type
@@ -332,9 +352,11 @@ CONFIG_ZONE_DMA_FLAG=0
CONFIG_VIRT_TO_BUS=y
# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_NEED_PER_CPU_KM=y
CONFIG_FORCE_MAX_ZONEORDER=11
CONFIG_ALIGNMENT_TRAP=y
# CONFIG_UACCESS_WITH_MEMCPY is not set
+# CONFIG_SECCOMP is not set
# CONFIG_CC_STACKPROTECTOR is not set
# CONFIG_DEPRECATED_PARAM_STRUCT is not set
@@ -351,6 +373,7 @@ CONFIG_CMDLINE=""
#
# CPU Power Management
#
+# CONFIG_CPU_FREQ is not set
CONFIG_CPU_IDLE=y
CONFIG_CPU_IDLE_GOV_LADDER=y
CONFIG_CPU_IDLE_GOV_MENU=y
@@ -416,7 +439,7 @@ CONFIG_IP_PNP=y
# CONFIG_IP_PNP_BOOTP is not set
# CONFIG_IP_PNP_RARP is not set
# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE is not set
+# CONFIG_NET_IPGRE_DEMUX is not set
# CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
@@ -546,6 +569,7 @@ CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
# CONFIG_CAIF is not set
+# CONFIG_CEPH_LIB is not set
#
# Device Drivers
@@ -675,13 +699,18 @@ CONFIG_BLK_DEV=y
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
# CONFIG_MG_DISK is not set
+# CONFIG_BLK_DEV_RBD is not set
CONFIG_MISC_DEVICES=y
# CONFIG_AD525X_DPOT is not set
# CONFIG_ICS932S401 is not set
# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_APDS9802ALS is not set
# CONFIG_ISL29003 is not set
+# CONFIG_ISL29020 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_SENSORS_BH1780 is not set
+# CONFIG_SENSORS_BH1770 is not set
+# CONFIG_SENSORS_APDS990X is not set
# CONFIG_HMC6352 is not set
# CONFIG_DS1682 is not set
# CONFIG_TI_DAC7512 is not set
@@ -697,6 +726,10 @@ CONFIG_EEPROM_AT25=y
# CONFIG_EEPROM_MAX6875 is not set
# CONFIG_EEPROM_93CX6 is not set
# CONFIG_IWMC3200TOP is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
@@ -733,6 +766,7 @@ CONFIG_SCSI_WAIT_SCAN=m
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_ATTRS is not set
# CONFIG_SCSI_SAS_LIBSAS is not set
# CONFIG_SCSI_SRP_ATTRS is not set
CONFIG_SCSI_LOWLEVEL=y
@@ -752,6 +786,7 @@ CONFIG_NETDEVICES=y
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_VETH is not set
+CONFIG_MII=y
CONFIG_PHYLIB=y
#
@@ -765,6 +800,7 @@ CONFIG_PHYLIB=y
# CONFIG_VITESSE_PHY is not set
CONFIG_SMSC_PHY=y
# CONFIG_BROADCOM_PHY is not set
+# CONFIG_BCM63XX_PHY is not set
# CONFIG_ICPLUS_PHY is not set
# CONFIG_REALTEK_PHY is not set
# CONFIG_NATIONAL_PHY is not set
@@ -774,7 +810,6 @@ CONFIG_SMSC_PHY=y
# CONFIG_FIXED_PHY is not set
# CONFIG_MDIO_BITBANG is not set
CONFIG_NET_ETHERNET=y
-CONFIG_MII=y
# CONFIG_AX88796 is not set
# CONFIG_SMC91X is not set
# CONFIG_DM9000 is not set
@@ -825,6 +860,7 @@ CONFIG_RT2X00_LIB=m
CONFIG_RT2X00_LIB_FIRMWARE=y
CONFIG_RT2X00_LIB_CRYPTO=y
# CONFIG_RT2X00_DEBUG is not set
+# CONFIG_WL1251 is not set
# CONFIG_WL12XX is not set
CONFIG_ZD1211RW=m
# CONFIG_ZD1211RW_DEBUG is not set
@@ -914,6 +950,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_ADS7846 is not set
# CONFIG_TOUCHSCREEN_AD7877 is not set
# CONFIG_TOUCHSCREEN_AD7879 is not set
+# CONFIG_TOUCHSCREEN_BU21013 is not set
# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
# CONFIG_TOUCHSCREEN_DYNAPRO is not set
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
@@ -930,6 +967,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_QT602240 is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+CONFIG_TOUCHSCREEN_WM831X=m
# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
# CONFIG_TOUCHSCREEN_TSC2007 is not set
@@ -957,6 +995,7 @@ CONFIG_SERIO_SERPORT=y
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
# CONFIG_SERIO_ALTERA_PS2 is not set
+# CONFIG_SERIO_PS2MULT is not set
# CONFIG_GAMEPORT is not set
#
@@ -991,6 +1030,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
# CONFIG_LEGACY_PTYS is not set
+# CONFIG_TTY_PRINTK is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_R3964 is not set
@@ -1013,7 +1053,7 @@ CONFIG_I2C_HELPER_AUTO=y
#
# CONFIG_I2C_DESIGNWARE is not set
# CONFIG_I2C_GPIO is not set
-# CONFIG_I2C_IMX is not set
+CONFIG_I2C_IMX=y
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PCA_PLATFORM is not set
# CONFIG_I2C_SIMTEC is not set
@@ -1034,7 +1074,6 @@ CONFIG_I2C_HELPER_AUTO=y
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
CONFIG_SPI=y
-# CONFIG_SPI_DEBUG is not set
CONFIG_SPI_MASTER=y
#
@@ -1042,6 +1081,8 @@ CONFIG_SPI_MASTER=y
#
CONFIG_SPI_BITBANG=y
# CONFIG_SPI_GPIO is not set
+CONFIG_SPI_IMX_VER_0_7=y
+CONFIG_SPI_IMX_VER_2_3=y
CONFIG_SPI_IMX=y
# CONFIG_SPI_XILINX is not set
# CONFIG_SPI_DESIGNWARE is not set
@@ -1049,7 +1090,7 @@ CONFIG_SPI_IMX=y
#
# SPI Protocol Masters
#
-# CONFIG_SPI_SPIDEV is not set
+CONFIG_SPI_SPIDEV=m
# CONFIG_SPI_TLE62X0 is not set
#
@@ -1058,13 +1099,14 @@ CONFIG_SPI_IMX=y
# CONFIG_PPS is not set
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
-# CONFIG_DEBUG_GPIO is not set
# CONFIG_GPIO_SYSFS is not set
#
# Memory mapped GPIO expanders:
#
+# CONFIG_GPIO_BASIC_MMIO is not set
# CONFIG_GPIO_IT8761E is not set
+# CONFIG_GPIO_VX855 is not set
#
# I2C GPIO expanders:
@@ -1087,6 +1129,7 @@ CONFIG_GPIOLIB=y
# CONFIG_GPIO_MAX7301 is not set
# CONFIG_GPIO_MCP23S08 is not set
# CONFIG_GPIO_MC33880 is not set
+# CONFIG_GPIO_74X164 is not set
#
# AC97 GPIO expanders:
@@ -1102,8 +1145,8 @@ CONFIG_POWER_SUPPLY=m
CONFIG_WM831X_BACKUP=m
CONFIG_WM831X_POWER=m
# CONFIG_TEST_POWER is not set
-# CONFIG_BATTERY_DS2760 is not set
# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_BQ20Z75 is not set
# CONFIG_BATTERY_BQ27x00 is not set
# CONFIG_BATTERY_MAX17040 is not set
CONFIG_HWMON=m
@@ -1135,6 +1178,7 @@ CONFIG_HWMON=m
# CONFIG_SENSORS_G760A is not set
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_GPIO_FAN is not set
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_JC42 is not set
# CONFIG_SENSORS_LM63 is not set
@@ -1152,6 +1196,7 @@ CONFIG_HWMON=m
# CONFIG_SENSORS_LM93 is not set
# CONFIG_SENSORS_LTC4215 is not set
# CONFIG_SENSORS_LTC4245 is not set
+# CONFIG_SENSORS_LTC4261 is not set
# CONFIG_SENSORS_LM95241 is not set
# CONFIG_SENSORS_MAX1111 is not set
# CONFIG_SENSORS_MAX1619 is not set
@@ -1179,11 +1224,12 @@ CONFIG_HWMON=m
# CONFIG_SENSORS_W83791D is not set
# CONFIG_SENSORS_W83792D is not set
# CONFIG_SENSORS_W83793 is not set
+# CONFIG_SENSORS_W83795 is not set
# CONFIG_SENSORS_W83L785TS is not set
# CONFIG_SENSORS_W83L786NG is not set
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
-# CONFIG_SENSORS_WM831X is not set
+CONFIG_SENSORS_WM831X=m
# CONFIG_SENSORS_LIS3_SPI is not set
# CONFIG_SENSORS_LIS3_I2C is not set
# CONFIG_THERMAL is not set
@@ -1231,14 +1277,16 @@ CONFIG_MFD_CORE=y
# CONFIG_MFD_MAX8998 is not set
# CONFIG_MFD_WM8400 is not set
CONFIG_MFD_WM831X=y
+CONFIG_MFD_WM831X_I2C=y
+# CONFIG_MFD_WM831X_SPI is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_WM8994 is not set
# CONFIG_MFD_PCF50633 is not set
-# CONFIG_MFD_MC13783 is not set
+# CONFIG_MFD_MC13XXX is not set
# CONFIG_ABX500_CORE is not set
# CONFIG_EZX_PCAP is not set
-# CONFIG_AB8500_CORE is not set
# CONFIG_MFD_TPS6586X is not set
+CONFIG_MFD_IMX_IPU_V3=y
# CONFIG_REGULATOR is not set
# CONFIG_MEDIA_SUPPORT is not set
@@ -1252,9 +1300,9 @@ CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FB_DDC is not set
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
-# CONFIG_FB_CFB_FILLRECT is not set
-# CONFIG_FB_CFB_COPYAREA is not set
-# CONFIG_FB_CFB_IMAGEBLIT is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
# CONFIG_FB_SYS_FILLRECT is not set
# CONFIG_FB_SYS_COPYAREA is not set
@@ -1264,7 +1312,7 @@ CONFIG_FB=y
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
-# CONFIG_FB_MODE_HELPERS is not set
+CONFIG_FB_MODE_HELPERS=y
# CONFIG_FB_TILEBLITTING is not set
#
@@ -1275,6 +1323,7 @@ CONFIG_FB=y
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
+CONFIG_FB_MX5=y
# CONFIG_FB_BROADSHEET is not set
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=m
@@ -1342,6 +1391,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_EMU10K1_SEQ is not set
CONFIG_SND_DRIVERS=y
# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_ALOOP is not set
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set
@@ -1382,6 +1432,8 @@ CONFIG_USB_HID=y
# CONFIG_HID_ELECOM is not set
# CONFIG_HID_EZKEY is not set
# CONFIG_HID_KYE is not set
+# CONFIG_HID_UCLOGIC is not set
+# CONFIG_HID_WALTOP is not set
# CONFIG_HID_GYRATION is not set
# CONFIG_HID_TWINHAN is not set
# CONFIG_HID_KENSINGTON is not set
@@ -1398,6 +1450,7 @@ CONFIG_USB_HID=y
# CONFIG_HID_QUANTA is not set
# CONFIG_HID_ROCCAT is not set
# CONFIG_HID_ROCCAT_KONE is not set
+# CONFIG_HID_ROCCAT_PYRA is not set
# CONFIG_HID_SAMSUNG is not set
# CONFIG_HID_SONY is not set
# CONFIG_HID_STANTUM is not set
@@ -1474,6 +1527,7 @@ CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_ONETOUCH is not set
# CONFIG_USB_STORAGE_KARMA is not set
# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
+# CONFIG_USB_UAS is not set
# CONFIG_USB_LIBUSUAL is not set
#
@@ -1509,6 +1563,7 @@ CONFIG_USB_STORAGE=y
# CONFIG_USB_IOWARRIOR is not set
# CONFIG_USB_TEST is not set
# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_YUREX is not set
CONFIG_USB_GADGET=y
CONFIG_USB_GADGET_DEBUG_FILES=y
# CONFIG_USB_GADGET_DEBUG_FS is not set
@@ -1551,6 +1606,7 @@ CONFIG_MMC=y
# MMC/SD/SDIO Card Drivers
#
CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_BLOCK_BOUNCE=y
# CONFIG_SDIO_UART is not set
# CONFIG_MMC_TEST is not set
@@ -1558,9 +1614,13 @@ CONFIG_MMC_BLOCK_BOUNCE=y
#
# MMC/SD/SDIO Host Controller Drivers
#
-# CONFIG_MMC_SDHCI is not set
-CONFIG_MMC_MXC=y
-# CONFIG_MMC_SPI is not set
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_IO_ACCESSORS=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_ESDHC_IMX=y
+# CONFIG_MMC_MXC is not set
+CONFIG_MMC_SPI=m
+# CONFIG_MMC_USHC is not set
# CONFIG_MEMSTICK is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_ACCESSIBILITY is not set
@@ -1669,8 +1729,9 @@ CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
CONFIG_INOTIFY_USER=y
+# CONFIG_FANOTIFY is not set
# CONFIG_QUOTA is not set
-CONFIG_AUTOFS_FS=y
+# CONFIG_QUOTACTL is not set
CONFIG_AUTOFS4_FS=y
# CONFIG_FUSE_FS is not set
@@ -1758,6 +1819,7 @@ CONFIG_NFS_V4=y
CONFIG_ROOT_NFS=y
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_NEW_IDMAPPER is not set
# CONFIG_NFSD is not set
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
@@ -1765,8 +1827,6 @@ CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
CONFIG_SUNRPC_GSS=y
CONFIG_RPCSEC_GSS_KRB5=y
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-# CONFIG_SMB_FS is not set
# CONFIG_CEPH_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
@@ -1850,12 +1910,16 @@ CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_KERNEL is not set
# CONFIG_HARDLOCKUP_DETECTOR is not set
+CONFIG_BKL=y
+# CONFIG_SPARSE_RCU_POINTER is not set
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_MEMORY_INIT is not set
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
# CONFIG_LKDTM is not set
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_RING_BUFFER=y
CONFIG_RING_BUFFER_ALLOW_SWAP=y
CONFIG_TRACING_SUPPORT=y
@@ -1864,6 +1928,7 @@ CONFIG_TRACING_SUPPORT=y
# CONFIG_ATOMIC64_SELFTEST is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_STRICT_DEVMEM is not set
CONFIG_ARM_UNWIND=y
# CONFIG_DEBUG_USER is not set
# CONFIG_OC_ETM is not set
@@ -1873,6 +1938,7 @@ CONFIG_ARM_UNWIND=y
#
CONFIG_KEYS=y
# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
# CONFIG_SECURITY is not set
# CONFIG_SECURITYFS is not set
CONFIG_DEFAULT_SECURITY_DAC=y
@@ -1988,7 +2054,7 @@ CONFIG_CRC16=y
# CONFIG_CRC_T10DIF is not set
CONFIG_CRC_ITU_T=m
CONFIG_CRC32=y
-# CONFIG_CRC7 is not set
+CONFIG_CRC7=m
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
diff --git a/buildroot/target/device/armadeus/apf51/apf51-u-boot-2010.03.h b/buildroot/target/device/armadeus/apf51/apf51-u-boot-2010.03.h
index 34d6fc3..917a45f 100644
--- a/buildroot/target/device/armadeus/apf51/apf51-u-boot-2010.03.h
+++ b/buildroot/target/device/armadeus/apf51/apf51-u-boot-2010.03.h
@@ -125,7 +125,7 @@
CONFIG_CONSOLE " root=/dev/mtdblock4 rootfstype=jffs2 " MTDPARTS_DEFAULT
#define CONFIG_CONSOLE "console=ttymxc1,"MK_STR(CONFIG_BAUDRATE)
-#define CONFIG_MTDMAP "mxc_nand.0"
+#define CONFIG_MTDMAP "mxc_nand"
#define MTDIDS_DEFAULT "nand0=" CONFIG_MTDMAP
#define MTDPARTS_DEFAULT "mtdparts=" CONFIG_MTDMAP ":1M(U-boot)ro," \
"1M(U-boot_env),1M(firmware)," \
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38-alpha b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38-alpha
new file mode 120000
index 0000000..b7e1c10
--- /dev/null
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38-alpha
@@ -0,0 +1 @@
+2.6.38
\ No newline at end of file
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-1-iMX51-add_ipu_clock_support.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-1-iMX51-add_ipu_clock_support.patch
new file mode 100644
index 0000000..845c858
--- /dev/null
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-1-iMX51-add_ipu_clock_support.patch
@@ -0,0 +1,187 @@
+Signed-off-by: Sascha Hauer <s....@pe...>
+---
+ arch/arm/mach-mx5/clock-mx51-mx53.c | 140 +++++++++++++++++++++++++++++++++++
+ 1 files changed, 140 insertions(+), 0 deletions(-)
+
+diff --git a/arch/arm/mach-mx5/clock-mx51-mx53.c b/arch/arm/mach-mx5/clock-mx51-mx53.c
+index 9fc65bb..f550d02 100644
+--- a/arch/arm/mach-mx5/clock-mx51-mx53.c
++++ b/arch/arm/mach-mx5/clock-mx51-mx53.c
+@@ -39,6 +39,9 @@ static struct clk periph_apm_clk;
+ static struct clk ahb_clk;
+ static struct clk ipg_clk;
+ static struct clk usboh3_clk;
++static struct clk emi_fast_clk;
++static struct clk ipu_clk;
++static struct clk mipi_hsc1_clk;
+
+ #define MAX_DPLL_WAIT_TRIES 1000 /* 1000 * udelay(1) = 1ms */
+
+@@ -679,6 +682,19 @@ static unsigned long clk_emi_slow_get_rate(struct clk *clk)
+ return clk_get_rate(clk->parent) / div;
+ }
+
++static unsigned long _clk_ddr_hf_get_rate(struct clk *clk)
++{
++ unsigned long rate;
++ u32 reg, div;
++
++ reg = __raw_readl(MXC_CCM_CBCDR);
++ div = ((reg & MXC_CCM_CBCDR_DDR_PODF_MASK) >>
++ MXC_CCM_CBCDR_DDR_PODF_OFFSET) + 1;
++ rate = clk_get_rate(clk->parent) / div;
++
++ return rate;
++}
++
+ /* External high frequency clock */
+ static struct clk ckih_clk = {
+ .get_rate = get_high_reference_clock_rate,
+@@ -819,6 +835,109 @@ static struct clk emi_slow_clk = {
+ .get_rate = clk_emi_slow_get_rate,
+ };
+
++static int clk_ipu_enable(struct clk *clk)
++{
++ u32 reg;
++
++ _clk_ccgr_enable(clk);
++
++ /* Enable handshake with IPU when certain clock rates are changed */
++ reg = __raw_readl(MXC_CCM_CCDR);
++ reg &= ~MXC_CCM_CCDR_IPU_HS_MASK;
++ __raw_writel(reg, MXC_CCM_CCDR);
++
++ /* Enable handshake with IPU when LPM is entered */
++ reg = __raw_readl(MXC_CCM_CLPCR);
++ reg &= ~MXC_CCM_CLPCR_BYPASS_IPU_LPM_HS;
++ __raw_writel(reg, MXC_CCM_CLPCR);
++
++ return 0;
++}
++
++static void clk_ipu_disable(struct clk *clk)
++{
++ u32 reg;
++
++ _clk_ccgr_disable(clk);
++
++ /* Disable handshake with IPU whe dividers are changed */
++ reg = __raw_readl(MXC_CCM_CCDR);
++ reg |= MXC_CCM_CCDR_IPU_HS_MASK;
++ __raw_writel(reg, MXC_CCM_CCDR);
++
++ /* Disable handshake with IPU when LPM is entered */
++ reg = __raw_readl(MXC_CCM_CLPCR);
++ reg |= MXC_CCM_CLPCR_BYPASS_IPU_LPM_HS;
++ __raw_writel(reg, MXC_CCM_CLPCR);
++}
++
++static struct clk ahbmux1_clk = {
++ .parent = &ahb_clk,
++ .secondary = &ahb_max_clk,
++ .enable_reg = MXC_CCM_CCGR0,
++ .enable_shift = MXC_CCM_CCGRx_CG8_OFFSET,
++ .enable = _clk_ccgr_enable,
++ .disable = _clk_ccgr_disable_inwait,
++};
++
++static struct clk ipu_sec_clk = {
++ .parent = &emi_fast_clk,
++ .secondary = &ahbmux1_clk,
++};
++
++static struct clk ddr_hf_clk = {
++ .parent = &pll1_sw_clk,
++ .get_rate = _clk_ddr_hf_get_rate,
++};
++
++static struct clk ddr_clk = {
++ .parent = &ddr_hf_clk,
++};
++
++/* clock definitions for MIPI HSC unit which has been removed
++ * from documentation, but not from hardware
++ */
++static int _clk_hsc_enable(struct clk *clk)
++{
++ u32 reg;
++
++ _clk_ccgr_enable(clk);
++ /* Handshake with IPU when certain clock rates are changed. */
++ reg = __raw_readl(MXC_CCM_CCDR);
++ reg &= ~MXC_CCM_CCDR_HSC_HS_MASK;
++ __raw_writel(reg, MXC_CCM_CCDR);
++
++ reg = __raw_readl(MXC_CCM_CLPCR);
++ reg &= ~MXC_CCM_CLPCR_BYPASS_HSC_LPM_HS;
++ __raw_writel(reg, MXC_CCM_CLPCR);
++
++ return 0;
++}
++
++static void _clk_hsc_disable(struct clk *clk)
++{
++ u32 reg;
++
++ _clk_ccgr_disable(clk);
++ /* No handshake with HSC as its not enabled. */
++ reg = __raw_readl(MXC_CCM_CCDR);
++ reg |= MXC_CCM_CCDR_HSC_HS_MASK;
++ __raw_writel(reg, MXC_CCM_CCDR);
++
++ reg = __raw_readl(MXC_CCM_CLPCR);
++ reg |= MXC_CCM_CLPCR_BYPASS_HSC_LPM_HS;
++ __raw_writel(reg, MXC_CCM_CLPCR);
++}
++
++static struct clk mipi_hsp_clk = {
++ .parent = &ipu_clk,
++ .enable_reg = MXC_CCM_CCGR4,
++ .enable_shift = MXC_CCM_CCGRx_CG6_OFFSET,
++ .enable = _clk_hsc_enable,
++ .disable = _clk_hsc_disable,
++ .secondary = &mipi_hsc1_clk,
++};
++
+ #define DEFINE_CLOCK_CCGR(name, i, er, es, pfx, p, s) \
+ static struct clk name = { \
+ .id = i, \
+@@ -1046,6 +1165,23 @@ DEFINE_CLOCK_FULL(esdhc2_ipg_clk, 1, MXC_CCM_CCGR3, MXC_CCM_CCGRx_CG2_OFFSET,
+ DEFINE_CLOCK_MAX(esdhc2_clk, 1, MXC_CCM_CCGR3, MXC_CCM_CCGRx_CG3_OFFSET,
+ clk_esdhc2, &pll2_sw_clk, &esdhc2_ipg_clk);
+
++DEFINE_CLOCK(mipi_esc_clk, 0, MXC_CCM_CCGR4, MXC_CCM_CCGRx_CG5_OFFSET, NULL, NULL, NULL, &pll2_sw_clk);
++DEFINE_CLOCK(mipi_hsc2_clk, 0, MXC_CCM_CCGR4, MXC_CCM_CCGRx_CG4_OFFSET, NULL, NULL, &mipi_esc_clk, &pll2_sw_clk);
++DEFINE_CLOCK(mipi_hsc1_clk, 0, MXC_CCM_CCGR4, MXC_CCM_CCGRx_CG3_OFFSET, NULL, NULL, &mipi_hsc2_clk, &pll2_sw_clk);
++
++/* IPU */
++DEFINE_CLOCK_FULL(ipu_clk, 0, MXC_CCM_CCGR5, MXC_CCM_CCGRx_CG5_OFFSET,
++ NULL, NULL, clk_ipu_enable, clk_ipu_disable, &ahb_clk, &ipu_sec_clk);
++
++DEFINE_CLOCK_FULL(emi_fast_clk, 0, MXC_CCM_CCGR5, MXC_CCM_CCGRx_CG7_OFFSET,
++ NULL, NULL, _clk_ccgr_enable, _clk_ccgr_disable_inwait,
++ &ddr_clk, NULL);
++
++DEFINE_CLOCK(ipu_di0_clk, 0, MXC_CCM_CCGR6, MXC_CCM_CCGRx_CG5_OFFSET,
++ NULL, NULL, &pll3_sw_clk, NULL);
++DEFINE_CLOCK(ipu_di1_clk, 0, MXC_CCM_CCGR6, MXC_CCM_CCGRx_CG6_OFFSET,
++ NULL, NULL, &pll3_sw_clk, NULL);
++
+ #define _REGISTER_CLOCK(d, n, c) \
+ { \
+ .dev_id = d, \
+@@ -1117,6 +1253,10 @@ static struct clk_lookup mx51_lookups[] = {
+ _REGISTER_CLOCK(NULL, "iim_clk", iim_clk)
+ _REGISTER_CLOCK("imx2-wdt.0", NULL, dummy_clk)
+ _REGISTER_CLOCK("imx2-wdt.1", NULL, dummy_clk)
++ _REGISTER_CLOCK(NULL, "mipi_hsp", mipi_hsp_clk)
++ _REGISTER_CLOCK("imx-ipuv3", NULL, ipu_clk)
++ _REGISTER_CLOCK("imx-ipuv3", "di0", ipu_di0_clk)
++ _REGISTER_CLOCK("imx-ipuv3", "di1", ipu_di1_clk)
+ };
+
+ static struct clk_lookup mx53_lookups[] = {
+--
+1.7.2.3
+
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-2-iMX51-rename_IPU_irqs.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-2-iMX51-rename_IPU_irqs.patch
new file mode 100644
index 0000000..23d237c
--- /dev/null
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-2-iMX51-rename_IPU_irqs.patch
@@ -0,0 +1,24 @@
+
+Signed-off-by: Sascha Hauer <s....@pe...>
+---
+ arch/arm/plat-mxc/include/mach/mx51.h | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/plat-mxc/include/mach/mx51.h b/arch/arm/plat-mxc/include/mach/mx51.h
+index fa3a2a5..873807f 100644
+--- a/arch/arm/plat-mxc/include/mach/mx51.h
++++ b/arch/arm/plat-mxc/include/mach/mx51.h
+@@ -251,8 +251,8 @@
+ #define MX51_MXC_INT_IOMUX 7
+ #define MX51_INT_NFC 8
+ #define MX51_MXC_INT_VPU 9
+-#define MX51_MXC_INT_IPU_ERR 10
+-#define MX51_MXC_INT_IPU_SYN 11
++#define MX51_INT_IPU_ERR 10
++#define MX51_INT_IPU_SYN 11
+ #define MX51_MXC_INT_GPU 12
+ #define MX51_MXC_INT_RESV13 13
+ #define MX51_MXC_INT_USB_H1 14
+--
+1.7.2.3
+
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-3-Add_a_mfd_IPUv3_driver.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-3-Add_a_mfd_IPUv3_driver.patch
new file mode 100644
index 0000000..5aa97cc
--- /dev/null
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/001-2010-12-10-pengutronix-3-Add_a_mfd_IPUv3_driver.patch
@@ -0,0 +1,3576 @@
+The IPU is the Image Processing Unit found on i.MX50/51/53 SoCs. It
+features several units for image processing, this patch adds support
+for the units needed for Framebuffer support, namely:
+
+- Display Controller (dc)
+- Display Interface (di)
+- Display Multi Fifo Controller (dmfc)
+- Display Processor (dp)
+- Image DMA Controller (idmac)
+
+This patch is based on the Freescale driver, but follows a different
+approach. The Freescale code implements logical idmac channels and
+the handling of the subunits is hidden in common idmac code pathes
+in big switch/case statements. This patch instead just provides code
+and resource management for the different subunits. The user, in this
+case the framebuffer driver, decides how the different units play
+together.
+
+The IPU has other units missing in this patch:
+
+- CMOS Sensor Interface (csi)
+- Video Deinterlacer (vdi)
+- Sensor Multi FIFO Controler (smfc)
+- Image Converter (ic)
+- Image Rotator (irt)
+
+So expect more files to come in this directory.
+
+Signed-off-by: Sascha Hauer <s....@pe...>
+---
+ arch/arm/plat-mxc/include/mach/ipu-v3.h | 48 +++
+ drivers/mfd/Kconfig | 7 +
+ drivers/mfd/Makefile | 1 +
+ drivers/mfd/imx-ipu-v3/Makefile | 3 +
+ drivers/mfd/imx-ipu-v3/ipu-common.c | 661 +++++++++++++++++++++++++++++++
+ drivers/mfd/imx-ipu-v3/ipu-cpmem.c | 608 ++++++++++++++++++++++++++++
+ drivers/mfd/imx-ipu-v3/ipu-dc.c | 362 +++++++++++++++++
+ drivers/mfd/imx-ipu-v3/ipu-di.c | 507 ++++++++++++++++++++++++
+ drivers/mfd/imx-ipu-v3/ipu-dmfc.c | 343 ++++++++++++++++
+ drivers/mfd/imx-ipu-v3/ipu-dp.c | 468 ++++++++++++++++++++++
+ drivers/mfd/imx-ipu-v3/ipu-prv.h | 214 ++++++++++
+ include/linux/mfd/imx-ipu-v3.h | 218 ++++++++++
+ 12 files changed, 3440 insertions(+), 0 deletions(-)
+ create mode 100644 arch/arm/plat-mxc/include/mach/ipu-v3.h
+ create mode 100644 drivers/mfd/imx-ipu-v3/Makefile
+ create mode 100644 drivers/mfd/imx-ipu-v3/ipu-common.c
+ create mode 100644 drivers/mfd/imx-ipu-v3/ipu-cpmem.c
+ create mode 100644 drivers/mfd/imx-ipu-v3/ipu-dc.c
+ create mode 100644 drivers/mfd/imx-ipu-v3/ipu-di.c
+ create mode 100644 drivers/mfd/imx-ipu-v3/ipu-dmfc.c
+ create mode 100644 drivers/mfd/imx-ipu-v3/ipu-dp.c
+ create mode 100644 drivers/mfd/imx-ipu-v3/ipu-prv.h
+ create mode 100644 include/linux/mfd/imx-ipu-v3.h
+
+diff --git a/arch/arm/plat-mxc/include/mach/ipu-v3.h b/arch/arm/plat-mxc/include/mach/ipu-v3.h
+new file mode 100644
+index 0000000..0a6c3e8
+--- /dev/null
++++ b/arch/arm/plat-mxc/include/mach/ipu-v3.h
+@@ -0,0 +1,48 @@
++/*
++ * Copyright (c) 2010 Sascha Hauer <s....@pe...>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful, but
++ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
++ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++ * for more details.
++ */
++
++#ifndef __MACH_IPU_V3_H_
++#define __MACH_IPU_V3_H_
++
++/* IPU specific extensions to struct fb_videomode flag field */
++#define FB_SYNC_OE_LOW_ACT (1 << 8)
++#define FB_SYNC_CLK_LAT_FALL (1 << 9)
++#define FB_SYNC_DATA_INVERT (1 << 10)
++#define FB_SYNC_CLK_IDLE_EN (1 << 11)
++#define FB_SYNC_SHARP_MODE (1 << 12)
++#define FB_SYNC_SWAP_RGB (1 << 13)
++
++struct ipuv3_fb_platform_data {
++ const struct fb_videomode *modes;
++ int num_modes;
++ char *mode_str;
++ u32 interface_pix_fmt;
++
++#define IMX_IPU_FB_USE_MODEDB (1 << 0)
++#define IMX_IPU_FB_USE_OVERLAY (1 << 1)
++ unsigned long flags;
++
++ int ipu_channel_bg;
++ int ipu_channel_fg;
++ int dc_channel;
++ int dp_channel;
++};
++
++struct imx_ipuv3_platform_data {
++ int rev;
++ struct ipuv3_fb_platform_data *fb0_platform_data;
++ struct ipuv3_fb_platform_data *fb1_platform_data;
++};
++
++#endif /* __MACH_IPU_V3_H_ */
+diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
+index 3a1493b..3c81879 100644
+--- a/drivers/mfd/Kconfig
++++ b/drivers/mfd/Kconfig
+@@ -606,6 +606,13 @@ config MFD_VX855
+ VIA VX855/VX875 south bridge. You will need to enable the vx855_spi
+ and/or vx855_gpio drivers for this to do anything useful.
+
++config MFD_IMX_IPU_V3
++ tristate "Support the Image Processing Unit (IPU) found on the i.MX51"
++ depends on ARCH_MX51
++ select MFD_CORE
++ help
++ Say yes here to support the IPU on i.MX51.
++
+ endif # MFD_SUPPORT
+
+ menu "Multimedia Capabilities Port drivers"
+diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
+index f54b365..7873b13 100644
+--- a/drivers/mfd/Makefile
++++ b/drivers/mfd/Makefile
+@@ -76,3 +76,4 @@ obj-$(CONFIG_MFD_JANZ_CMODIO) += janz-cmodio.o
+ obj-$(CONFIG_MFD_JZ4740_ADC) += jz4740-adc.o
+ obj-$(CONFIG_MFD_TPS6586X) += tps6586x.o
+ obj-$(CONFIG_MFD_VX855) += vx855.o
++obj-$(CONFIG_MFD_IMX_IPU_V3) += imx-ipu-v3/
+diff --git a/drivers/mfd/imx-ipu-v3/Makefile b/drivers/mfd/imx-ipu-v3/Makefile
+new file mode 100644
+index 0000000..ff70fe8
+--- /dev/null
++++ b/drivers/mfd/imx-ipu-v3/Makefile
+@@ -0,0 +1,3 @@
++obj-$(CONFIG_MFD_IMX_IPU_V3) += imx-ipu-v3.o
++
++imx-ipu-v3-objs := ipu-common.o ipu-dc.o ipu-di.o ipu-dp.o ipu-dmfc.o ipu-cpmem.o
+diff --git a/drivers/mfd/imx-ipu-v3/ipu-common.c b/drivers/mfd/imx-ipu-v3/ipu-common.c
+new file mode 100644
+index 0000000..e6edb88
+--- /dev/null
++++ b/drivers/mfd/imx-ipu-v3/ipu-common.c
+@@ -0,0 +1,661 @@
++/*
++ * Copyright (c) 2010 Sascha Hauer <s....@pe...>
++ * Copyright (C) 2005-2009 Freescale Semiconductor, Inc.
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful, but
++ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
++ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++ * for more details.
++ */
++
++#include <linux/types.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/err.h>
++#include <linux/spinlock.h>
++#include <linux/delay.h>
++#include <linux/interrupt.h>
++#include <linux/io.h>
++#include <linux/mfd/imx-ipu-v3.h>
++#include <linux/clk.h>
++#include <linux/list.h>
++#include <mach/common.h>
++#include <linux/mfd/core.h>
++#include <mach/ipu-v3.h>
++
++#include "ipu-prv.h"
++
++static struct clk *ipu_clk;
++static struct device *ipu_dev;
++
++static DEFINE_SPINLOCK(ipu_lock);
++void __iomem *ipu_cm_reg;
++void __iomem *ipu_idmac_reg;
++
++static struct ipu_channel channels[64];
++
++struct ipu_channel *ipu_idmac_get(unsigned num)
++{
++ struct ipu_channel *channel;
++
++ dev_dbg(ipu_dev, "%s %d\n", __func__, num);
++
++ if (num > 63)
++ return ERR_PTR(-ENODEV);
++
++ channel = &channels[num];
++
++ if (channel->busy)
++ return ERR_PTR(-EBUSY);
++
++ channel->busy = 1;
++ channel->num = num;
++
++ clk_enable(ipu_clk);
++
++ return channel;
++}
++EXPORT_SYMBOL(ipu_idmac_get);
++
++void ipu_idmac_put(struct ipu_channel *channel)
++{
++ dev_dbg(ipu_dev, "%s %d\n", __func__, channel->num);
++
++ clk_disable(ipu_clk);
++ channel->busy = 0;
++}
++EXPORT_SYMBOL(ipu_idmac_put);
++
++void ipu_idmac_set_double_buffer(struct ipu_channel *channel, bool doublebuffer)
++{
++ unsigned long flags;
++ u32 reg;
++
++ spin_lock_irqsave(&ipu_lock, flags);
++
++ reg = ipu_cm_read(IPU_CHA_DB_MODE_SEL(channel->num));
++ if (doublebuffer)
++ reg |= idma_mask(channel->num);
++ else
++ reg &= ~idma_mask(channel->num);
++ ipu_cm_write(reg, IPU_CHA_DB_MODE_SEL(channel->num));
++
++ spin_unlock_irqrestore(&ipu_lock, flags);
++}
++EXPORT_SYMBOL(ipu_idmac_set_double_buffer);
++
++void ipu_uninit_channel(struct ipu_channel *channel)
++{
++ unsigned long lock_flags;
++ u32 val;
++
++ /* Make sure channel is disabled */
++
++ if (idmac_idma_is_set(IDMAC_CHA_EN, channel->num)) {
++ dev_err(ipu_dev,
++ "Channel %d is not disabled, disable first\n",
++ channel->num);
++ return;
++ }
++
++ spin_lock_irqsave(&ipu_lock, lock_flags);
++
++ /* Reset the double buffer */
++ val = ipu_cm_read(IPU_CHA_DB_MODE_SEL(channel->num));
++ val &= ~idma_mask(channel->num);
++ ipu_cm_write(val, IPU_CHA_DB_MODE_SEL(channel->num));
++
++ spin_unlock_irqrestore(&ipu_lock, lock_flags);
++}
++EXPORT_SYMBOL(ipu_uninit_channel);
++
++int ipu_module_enable(u32 mask)
++{
++ unsigned long lock_flags;
++ u32 ipu_conf;
++
++ spin_lock_irqsave(&ipu_lock, lock_flags);
++
++ ipu_conf = ipu_cm_read(IPU_CONF);
++ ipu_conf |= mask;
++ ipu_cm_write(ipu_conf, IPU_CONF);
++
++ spin_unlock_irqrestore(&ipu_lock, lock_flags);
++
++ return 0;
++}
++
++int ipu_module_disable(u32 mask)
++{
++ unsigned long lock_flags;
++ u32 ipu_conf;
++
++ spin_lock_irqsave(&ipu_lock, lock_flags);
++
++ ipu_conf = ipu_cm_read(IPU_CONF);
++ ipu_conf &= ~mask;
++ ipu_cm_write(ipu_conf, IPU_CONF);
++
++ spin_unlock_irqrestore(&ipu_lock, lock_flags);
++
++ return 0;
++}
++
++void ipu_idmac_select_buffer(struct ipu_channel *channel, u32 buf_num)
++{
++ unsigned int chno = channel->num;
++
++ /* Mark buffer as ready. */
++ if (buf_num == 0)
++ ipu_cm_write(idma_mask(chno), IPU_CHA_BUF0_RDY(chno));
++ else
++ ipu_cm_write(idma_mask(chno), IPU_CHA_BUF1_RDY(chno));
++}
++EXPORT_SYMBOL(ipu_idmac_select_buffer);
++
++int ipu_idmac_enable_channel(struct ipu_channel *channel)
++{
++ u32 val;
++ unsigned long flags;
++
++ spin_lock_irqsave(&ipu_lock, flags);
++
++ val = ipu_idmac_read(IDMAC_CHA_EN(channel->num));
++ val |= idma_mask(channel->num);
++ ipu_idmac_write(val, IDMAC_CHA_EN(channel->num));
++
++ spin_unlock_irqrestore(&ipu_lock, flags);
++
++ return 0;
++}
++EXPORT_SYMBOL(ipu_idmac_enable_channel);
++
++int ipu_idmac_disable_channel(struct ipu_channel *channel)
++{
++ u32 val;
++ unsigned long flags;
++
++ spin_lock_irqsave(&ipu_lock, flags);
++
++ /* Disable DMA channel(s) */
++ val = ipu_idmac_read(IDMAC_CHA_EN(channel->num));
++ val &= ~idma_mask(channel->num);
++ ipu_idmac_write(val, IDMAC_CHA_EN(channel->num));
++
++ /* Set channel buffers NOT to be ready */
++ ipu_cm_write(0xf0000000, IPU_GPR); /* write one to clear */
++
++ if (ipu_idma_is_set(IPU_CHA_BUF0_RDY, channel->num)) {
++ ipu_cm_write(idma_mask(channel->num),
++ IPU_CHA_BUF0_RDY(channel->num));
++ }
++ if (ipu_idma_is_set(IPU_CHA_BUF1_RDY, channel->num)) {
++ ipu_cm_write(idma_mask(channel->num),
++ IPU_CHA_BUF1_RDY(channel->num));
++ }
++
++ ipu_cm_write(0x0, IPU_GPR); /* write one to set */
++
++ spin_unlock_irqrestore(&ipu_lock, flags);
++
++ return 0;
++}
++EXPORT_SYMBOL(ipu_idmac_disable_channel);
++
++static LIST_HEAD(ipu_irq_handlers);
++
++static void ipu_irq_update_irq_mask(void)
++{
++ struct ipu_irq_handler *handler;
++ int i;
++
++ DECLARE_IPU_IRQ_BITMAP(irqs);
++
++ bitmap_zero(irqs, IPU_IRQ_COUNT);
++
++ list_for_each_entry(handler, &ipu_irq_handlers, list)
++ bitmap_or(irqs, irqs, handler->ipu_irqs, IPU_IRQ_COUNT);
++
++ for (i = 0; i < BITS_TO_LONGS(IPU_IRQ_COUNT); i++)
++ ipu_cm_write(irqs[i], IPU_INT_CTRL(i + 1));
++}
++
++int ipu_irq_add_handler(struct ipu_irq_handler *ipuirq)
++{
++ unsigned long flags;
++
++ spin_lock_irqsave(&ipu_lock, flags);
++
++ list_add_tail(&ipuirq->list, &ipu_irq_handlers);
++ ipu_irq_update_irq_mask();
++
++ spin_unlock_irqrestore(&ipu_lock, flags);
++ return 0;
++}
++EXPORT_SYMBOL(ipu_irq_add_handler);
++
++void ipu_irq_remove_handler(struct ipu_irq_handler *handler)
++{
++ unsigned long flags;
++
++ spin_lock_irqsave(&ipu_lock, flags);
++
++ list_del(&handler->list);
++ ipu_irq_update_irq_mask();
++
++ spin_unlock_irqrestore(&ipu_lock, flags);
++}
++EXPORT_SYMBOL(ipu_irq_remove_handler);
++
++int ipu_irq_update_handler(struct ipu_irq_handler *handler,
++ unsigned long *bitmap)
++{
++ unsigned long flags;
++
++ spin_lock_irqsave(&ipu_lock, flags);
++
++ bitmap_copy(handler->ipu_irqs, bitmap, IPU_IRQ_COUNT);
++ ipu_irq_update_irq_mask();
++
++ spin_unlock_irqrestore(&ipu_lock, flags);
++
++ return 0;
++}
++EXPORT_SYMBOL(ipu_irq_update_handler);
++
++static void ipu_completion_handler(unsigned long *bitmask, void *context)
++{
++ struct completion *completion = context;
++
++ complete(completion);
++}
++
++int ipu_wait_for_interrupt(int interrupt, int timeout_ms)
++{
++ struct ipu_irq_handler handler;
++ DECLARE_COMPLETION_ONSTACK(completion);
++ int ret;
++
++ bitmap_zero(handler.ipu_irqs, IPU_IRQ_COUNT);
++ bitmap_set(handler.ipu_irqs, interrupt, 1);
++
++ handler.handler = ipu_completion_handler;
++ handler.context = &completion;
++ ipu_irq_add_handler(&handler);
++
++ ret = wait_for_completion_timeout(&completion,
++ msecs_to_jiffies(timeout_ms));
++
++ ipu_irq_remove_handler(&handler);
++
++ if (ret > 0)
++ ret = 0;
++
++ return ret;
++}
++EXPORT_SYMBOL(ipu_wait_for_interrupt);
++
++static irqreturn_t ipu_irq_handler(int irq, void *desc)
++{
++ DECLARE_IPU_IRQ_BITMAP(status);
++ struct ipu_irq_handler *handler;
++ int i;
++
++ for (i = 0; i < BITS_TO_LONGS(IPU_IRQ_COUNT); i++) {
++ status[i] = ipu_cm_read(IPU_INT_STAT(i + 1));
++ ipu_cm_write(status[i], IPU_INT_STAT(i + 1));
++ }
++
++ list_for_each_entry(handler, &ipu_irq_handlers, list) {
++ DECLARE_IPU_IRQ_BITMAP(tmp);
++ if (bitmap_and(tmp, status, handler->ipu_irqs, IPU_IRQ_COUNT))
++ handler->handler(tmp, handler->context);
++ }
++
++ return IRQ_HANDLED;
++}
++
++ipu_color_space_t format_to_colorspace(u32 fmt)
++{
++ switch (fmt) {
++ case IPU_PIX_FMT_RGB666:
++ case IPU_PIX_FMT_RGB565:
++ case IPU_PIX_FMT_BGR24:
++ case IPU_PIX_FMT_RGB24:
++ case IPU_PIX_FMT_BGR32:
++ case IPU_PIX_FMT_BGRA32:
++ case IPU_PIX_FMT_RGB32:
++ case IPU_PIX_FMT_RGBA32:
++ case IPU_PIX_FMT_ABGR32:
++ case IPU_PIX_FMT_LVDS666:
++ case IPU_PIX_FMT_LVDS888:
++ return RGB;
++
++ default:
++ return YCbCr;
++ }
++}
++
++static int ipu_reset(void)
++{
++ int timeout = 10000;
++ u32 val;
++
++ /* hard reset the IPU */
++ val = readl(MX51_IO_ADDRESS(MX51_SRC_BASE_ADDR));
++ val |= 1 << 3;
++ writel(val, MX51_IO_ADDRESS(MX51_SRC_BASE_ADDR));
++
++ ipu_cm_write(0x807FFFFF, IPU_MEM_RST);
++
++ while (ipu_cm_read(IPU_MEM_RST) & 0x80000000) {
++ if (!timeout--)
++ return -ETIME;
++ udelay(100);
++ }
++
++ return 0;
++}
++
++/*
++ * The MIPI HSC unit has been removed from the i.MX51 Reference Manual by
++ * the Freescale marketing division. However this did not remove the
++ * hardware from the chip which still needs to be configured...
++ */
++static int __devinit ipu_mipi_setup(void)
++{
++ struct clk *hsc_clk;
++ void __iomem *hsc_addr;
++ int ret = 0;
++
++ hsc_addr = ioremap(MX51_MIPI_HSC_BASE_ADDR, PAGE_SIZE);
++ if (!hsc_addr)
++ return -ENOMEM;
++
++ hsc_clk = clk_get_sys(NULL, "mipi_hsp");
++ if (IS_ERR(hsc_clk)) {
++ ret = PTR_ERR(hsc_clk);
++ goto unmap;
++ }
++ clk_enable(hsc_clk);
++
++ /* setup MIPI module to legacy mode */
++ __raw_writel(0xF00, hsc_addr);
++
++ /* CSI mode: reserved; DI control mode: legacy (from Freescale BSP) */
++ __raw_writel(__raw_readl(hsc_addr + 0x800) | 0x30ff,
++ hsc_addr + 0x800);
++
++ clk_disable(hsc_clk);
++ clk_put(hsc_clk);
++unmap:
++ iounmap(hsc_addr);
++
++ return ret;
++}
++
++static int ipu_submodules_init(struct platform_device *pdev,
++ unsigned long ipu_base, struct clk *ipu_clk)
++{
++ char *unit;
++ int ret;
++
++ ret = ipu_di_init(pdev, 0, ipu_base + IPU_DI0_REG_BASE,
++ IPU_CONF_DI0_EN, ipu_clk);
++ if (ret) {
++ unit = "di0";
++ goto err_di_0;
++ }
++
++ ret = ipu_di_init(pdev, 1, ipu_base + IPU_DI1_REG_BASE,
++ IPU_CONF_DI1_EN, ipu_clk);
++ if (ret) {
++ unit = "di1";
++ goto err_di_1;
++ }
++
++ ret = ipu_dc_init(pdev, ipu_base + IPU_DC_REG_BASE,
++ ipu_base + IPU_DC_TMPL_REG_BASE);
++ if (ret) {
++ unit = "dc_template";
++ goto err_dc;
++ }
++
++ ret = ipu_dmfc_init(pdev, ipu_base + IPU_DMFC_REG_BASE, ipu_clk);
++ if (ret) {
++ unit = "dmfc";
++ goto err_dmfc;
++ }
++
++ ret = ipu_dp_init(pdev, ipu_base + IPU_SRM_REG_BASE);
++ if (ret) {
++ unit = "dp";
++ goto err_dp;
++ }
++
++ ret = ipu_cpmem_init(pdev, ipu_base + IPU_CPMEM_REG_BASE);
++ if (ret) {
++ unit = "cpmem";
++ goto err_cpmem;
++ }
++
++ return 0;
++
++err_cpmem:
++ ipu_dp_exit(pdev);
++err_dp:
++ ipu_dmfc_exit(pdev);
++err_dmfc:
++ ipu_dc_exit(pdev);
++err_dc:
++ ipu_di_exit(pdev, 1);
++err_di_1:
++ ipu_di_exit(pdev, 0);
++err_di_0:
++ dev_err(&pdev->dev, "init %s failed with %d\n", unit, ret);
++ return ret;
++}
++
++static void ipu_submodules_exit(struct platform_device *pdev,
++ unsigned long ipu_base)
++{
++ ipu_cpmem_exit(pdev);
++ ipu_dp_exit(pdev);
++ ipu_dmfc_exit(pdev);
++ ipu_dc_exit(pdev);
++ ipu_di_exit(pdev, 1);
++ ipu_di_exit(pdev, 0);
++}
++
++static int ipu_add_subdevice_pdata(struct platform_device *pdev,
++ const char *name, int id, void *pdata, size_t pdata_size)
++{
++ struct mfd_cell cell = {
++ .platform_data = pdata,
++ .data_size = pdata_size,
++ };
++
++ cell.name = name;
++
++ return mfd_add_devices(&pdev->dev, id, &cell, 1, NULL, 0);
++}
++
++static int ipu_add_client_devices(struct platform_device *pdev)
++{
++ struct imx_ipuv3_platform_data *plat_data = pdev->dev.platform_data;
++
++ if (plat_data->fb0_platform_data) {
++ plat_data->fb0_platform_data->ipu_channel_bg =
++ MX51_IPU_CHANNEL_MEM_BG_SYNC;
++ plat_data->fb0_platform_data->ipu_channel_fg =
++ MX51_IPU_CHANNEL_MEM_FG_SYNC;
++ plat_data->fb0_platform_data->dc_channel = 5;
++ plat_data->fb0_platform_data->dp_channel = IPU_DP_FLOW_SYNC;
++
++ ipu_add_subdevice_pdata(pdev, "imx-ipuv3-fb", 0,
++ plat_data->fb0_platform_data,
++ sizeof(struct ipuv3_fb_platform_data));
++ }
++
++ if (plat_data->fb1_platform_data) {
++ plat_data->fb1_platform_data->ipu_channel_bg =
++ MX51_IPU_CHANNEL_MEM_DC_SYNC;
++ plat_data->fb1_platform_data->ipu_channel_fg = -1;
++ plat_data->fb1_platform_data->dc_channel = 1;
++ plat_data->fb1_platform_data->dp_channel = -1;
++
++ ipu_add_subdevice_pdata(pdev, "imx-ipuv3-fb", 1,
++ plat_data->fb1_platform_data,
++ sizeof(struct ipuv3_fb_platform_data));
++ }
++
++ return 0;
++}
++
++static int __devinit ipu_probe(struct platform_device *pdev)
++{
++ struct resource *res;
++ unsigned long ipu_base;
++ int ret, irq1, irq2;
++
++ spin_lock_init(&ipu_lock);
++
++ ipu_dev = &pdev->dev;
++
++ irq1 = platform_get_irq(pdev, 0);
++ irq2 = platform_get_irq(pdev, 1);
++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++
++ if (!res || irq1 < 0 || irq2 < 0)
++ return -ENODEV;
++
++ ipu_base = res->start;
++
++ ipu_cm_reg = ioremap(ipu_base + IPU_CM_REG_BASE, PAGE_SIZE);
++ if (!ipu_cm_reg) {
++ ret = -ENOMEM;
++ goto failed_ioremap1;
++ }
++
++ ipu_idmac_reg = ioremap(ipu_base + IPU_IDMAC_REG_BASE, PAGE_SIZE);
++ if (!ipu_idmac_reg) {
++ ret = -ENOMEM;
++ goto failed_ioremap2;
++ }
++
++ ret = ipu_mipi_setup();
++ if (ret)
++ goto failed_mipi_setup;
++
++ ipu_clk = clk_get(&pdev->dev, "ipu");
++ if (IS_ERR(ipu_clk)) {
++ ret = PTR_ERR(ipu_clk);
++ dev_err(&pdev->dev, "clk_get failed with %d", ret);
++ goto failed_clk_get;
++ }
++
++ clk_enable(ipu_clk);
++
++ ret = request_irq(irq1, ipu_irq_handler, IRQF_DISABLED, pdev->name,
++ &pdev->dev);
++ if (ret) {
++ dev_err(&pdev->dev, "request irq %d failed with: %d\n", irq1, ret);
++ goto failed_request_irq1;
++ }
++
++ ret = request_irq(irq2, ipu_irq_handler, IRQF_DISABLED, pdev->name,
++ &pdev->dev);
++ if (ret) {
++ dev_err(&pdev->dev, "request irq %d failed with: %d\n", irq2, ret);
++ goto failed_request_irq2;
++ }
++
++ ipu_reset();
++
++ ret = ipu_submodules_init(pdev, ipu_base, ipu_clk);
++ if (ret)
++ goto failed_submodules_init;
++
++ /* Set sync refresh channels as high priority */
++ ipu_idmac_write(0x18800000, IDMAC_CHA_PRI(0));
++
++ ret = ipu_add_client_devices(pdev);
++ if (ret) {
++ dev_err(&pdev->dev, "adding client devices failed with %d\n", ret);
++ goto failed_add_clients;
++ }
++
++ return 0;
++
++failed_add_clients:
++ ipu_submodules_exit(pdev, ipu_base);
++failed_submodules_init:
++ free_irq(irq2, &pdev->dev);
++failed_request_irq2:
++ free_irq(irq1, &pdev->dev);
++failed_request_irq1:
++ clk_put(ipu_clk);
++failed_clk_get:
++failed_mipi_setup:
++ iounmap(ipu_idmac_reg);
++failed_ioremap2:
++ iounmap(ipu_cm_reg);
++failed_ioremap1:
++
++ return ret;
++}
++
++static int __devexit ipu_remove(struct platform_device *pdev)
++{
++ struct resource *res;
++ unsigned long ipu_base;
++ int irq1, irq2;
++
++ irq1 = platform_get_irq(pdev, 0);
++ irq2 = platform_get_irq(pdev, 1);
++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ ipu_base = res->start;
++
++ mfd_remove_devices(&pdev->dev);
++ ipu_submodules_exit(pdev, ipu_base);
++ free_irq(irq2, &pdev->dev);
++ free_irq(irq1, &pdev->dev);
++ clk_disable(ipu_clk);
++ clk_put(ipu_clk);
++ iounmap(ipu_idmac_reg);
++ iounmap(ipu_cm_reg);
++
++ return 0;
++}
++
++static struct platform_driver mxcipu_driver = {
++ .driver = {
++ .name = "imx-ipuv3",
++ },
++ .probe = ipu_probe,
++ .remove = __devexit_p(ipu_remove),
++};
++
++static int __init ipu_gen_init(void)
++{
++ int32_t ret;
++
++ ret = platform_driver_register(&mxcipu_driver);
++ return 0;
++}
++subsys_initcall(ipu_gen_init);
++
++static void __exit ipu_gen_uninit(void)
++{
++ platform_driver_unregister(&mxcipu_driver);
++}
++module_exit(ipu_gen_uninit);
++
++MODULE_DESCRIPTION("i.MX IPU v3 driver");
++MODULE_AUTHOR("Sascha Hauer <s....@pe...>");
++MODULE_LICENSE("GPL");
+diff --git a/drivers/mfd/imx-ipu-v3/ipu-cpmem.c b/drivers/mfd/imx-ipu-v3/ipu-cpmem.c
+new file mode 100644
+index 0000000..587b487
+--- /dev/null
++++ b/drivers/mfd/imx-ipu-v3/ipu-cpmem.c
+@@ -0,0 +1,608 @@
++/*
++ * Copyright (c) 2010 Sascha Hauer <s....@pe...>
++ * Copyright (C) 2005-2009 Freescale Semiconductor, Inc.
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful, but
++ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
++ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++ * for more details.
++ */
++
++#include <linux/kernel.h>
++#include <linux/device.h>
++#include <linux/mfd/imx-ipu-v3.h>
++#include <linux/types.h>
++#include <linux/bitrev.h>
++#include <linux/io.h>
++
++#include "ipu-prv.h"
++
++#define __F(word, ofs, size) ((((word) * 160 + (ofs)) << 8) | (size))
++
++#define IPU_FIELD_XV __F(0, 0, 10)
++#define IPU_FIELD_YV __F(0, 10, 9)
++#define IPU_FIELD_XB __F(0, 19, 13)
++#define IPU_FIELD_YB __F(0, 32, 12)
++#define IPU_FIELD_NSB_B __F(0, 44, 1)
++#define IPU_FIELD_CF __F(0, 45, 1)
++#define IPU_FIELD_UBO __F(0, 46, 22)
++#define IPU_FIELD_VBO __F(0, 68, 22)
++#define IPU_FIELD_IOX __F(0, 90, 4)
++#define IPU_FIELD_RDRW __F(0, 94, 1)
++#define IPU_FIELD_SO __F(0, 113, 1)
++#define IPU_FIELD_BNDM __F(0, 114, 3)
++#define IPU_FIELD_BM __F(0, 117, 2)
++#define IPU_FIELD_ROT __F(0, 119, 1)
++#define IPU_FIELD_HF __F(0, 120, 1)
++#define IPU_FIELD_VF __F(0, 121, 1)
++#define IPU_FIELD_THE __F(0, 122, 1)
++#define IPU_FIELD_CAP __F(0, 123, 1)
++#define IPU_FIELD_CAE __F(0, 124, 1)
++#define IPU_FIELD_FW __F(0, 125, 13)
++#define IPU_FIELD_FH __F(0, 138, 12)
++#define IPU_FIELD_EBA0 __F(1, 0, 29)
++#define IPU_FIELD_EBA1 __F(1, 29, 29)
++#define IPU_FIELD_ILO __F(1, 58, 20)
++#define IPU_FIELD_NPB __F(1, 78, 7)
++#define IPU_FIELD_PFS __F(1, 85, 4)
++#define IPU_FIELD_ALU __F(1, 89, 1)
++#define IPU_FIELD_ALBM __F(1, 90, 3)
++#define IPU_FIELD_ID __F(1, 93, 2)
++#define IPU_FIELD_TH __F(1, 95, 7)
++#define IPU_FIELD_SLY __F(1, 102, 14)
++#define IPU_FIELD_WID3 __F(1, 125, 3)
++#define IPU_FIELD_SLUV __F(1, 128, 14)
++#define IPU_FIELD_CRE __F(1, 149, 1)
++
++#define IPU_FIELD_XV __F(0, 0, 10)
++#define IPU_FI...
[truncated message content] |
|
From: Fabien M <fa...@us...> - 2010-12-30 09:15:27
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 3ae0fa607fc883713ec34f0bd65dd0e61c18a13d (commit)
via a1de2a89faf851952ea179ae2183a93c7aa88787 (commit)
via 6189cb96efadda889335d99004c83405ee835021 (commit)
via 91b91f222f254addc3198493627d9479ee737639 (commit)
from d0a58cec1516ad347ee9200292cb0bd40e9dd83d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 3ae0fa607fc883713ec34f0bd65dd0e61c18a13d
Merge: a1de2a89faf851952ea179ae2183a93c7aa88787 d0a58cec1516ad347ee9200292cb0bd40e9dd83d
Author: Fabien Marteau <fab...@ar...>
Date: Thu Dec 30 10:14:41 2010 +0100
Merge branch 'master' of ssh://armadeus.git.sourceforge.net/gitroot/armadeus/armadeus
commit a1de2a89faf851952ea179ae2183a93c7aa88787
Author: Fabien Marteau <fab...@ar...>
Date: Thu Dec 30 10:13:37 2010 +0100
[linux][as5011] switch to threaded irq
commit 6189cb96efadda889335d99004c83405ee835021
Author: Fabien Marteau <fab...@ar...>
Date: Thu Dec 30 10:00:30 2010 +0100
[linux] Fix I2C_M_NOSTART bug in i2c-imx driver
commit 91b91f222f254addc3198493627d9479ee737639
Author: Fabien Marteau <fab...@ar...>
Date: Tue Dec 14 18:12:53 2010 +0100
[linux] Fix mangling capability bug in i2c-imx driver
-----------------------------------------------------------------------
Summary of changes:
...ing_mangling_capability_on_i2c_imx_driver.patch | 164 ++++++++++++++------
...us-joystick-adding_as5011_joystick_driver.patch | 131 ++++++++--------
2 files changed, 181 insertions(+), 114 deletions(-)
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/358-armadeus-imx-adding_mangling_capability_on_i2c_imx_driver.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/358-armadeus-imx-adding_mangling_capability_on_i2c_imx_driver.patch
index 2b5c280..bec8298 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/358-armadeus-imx-adding_mangling_capability_on_i2c_imx_driver.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/358-armadeus-imx-adding_mangling_capability_on_i2c_imx_driver.patch
@@ -1,69 +1,127 @@
Index: linux-2.6.36/drivers/i2c/busses/i2c-imx.c
===================================================================
--- linux-2.6.36.orig/drivers/i2c/busses/i2c-imx.c 2010-10-20 22:30:22.000000000 +0200
-+++ linux-2.6.36/drivers/i2c/busses/i2c-imx.c 2010-12-13 11:34:17.000000000 +0100
-@@ -304,12 +304,15 @@
- __func__, msgs->addr << 1);
++++ linux-2.6.36/drivers/i2c/busses/i2c-imx.c 2010-12-29 18:36:16.000000000 +0100
+@@ -34,7 +34,6 @@
- /* write slave address */
+ /** Includes *******************************************************************
+ *******************************************************************************/
+-
+ #include <linux/init.h>
+ #include <linux/kernel.h>
+ #include <linux/module.h>
+@@ -214,10 +213,12 @@
+ static void i2c_imx_stop(struct imx_i2c_struct *i2c_imx)
+ {
+ unsigned int temp = 0;
++ int ret;
++
+
+ if (!i2c_imx->stopped) {
+ /* Stop I2C transaction */
+- dev_dbg(&i2c_imx->adapter.dev, "<%s>\n", __func__);
++ dev_dbg(&i2c_imx->adapter.dev, "<%s>***\n", __func__);
+ temp = readb(i2c_imx->base + IMX_I2C_I2CR);
+ temp &= ~(I2CR_MSTA | I2CR_MTX);
+ writeb(temp, i2c_imx->base + IMX_I2C_I2CR);
+@@ -231,7 +232,9 @@
+ }
+
+ if (!i2c_imx->stopped) {
+- i2c_imx_bus_busy(i2c_imx, 0);
++
++ ret = i2c_imx_bus_busy(i2c_imx, 0);
++
+ i2c_imx->stopped = 1;
+ }
+
+@@ -300,17 +303,27 @@
+ {
+ int i, result;
+
+- dev_dbg(&i2c_imx->adapter.dev, "<%s> write slave address: addr=0x%x\n",
+- __func__, msgs->addr << 1);
++ if ( (msgs->flags & I2C_M_NOSTART) == 0) {
++ /* write slave address */
++ if (msgs->flags & I2C_M_REV_DIR_ADDR) {
++ dev_dbg(&i2c_imx->adapter.dev,
++ "<%s> write slave address: addr=0x%x\n",
++ __func__, msgs->addr << 1 | 0x01);
++ writeb((msgs->addr << 1) | 0x01, i2c_imx->base + IMX_I2C_I2DR);
++ } else {
++ dev_dbg(&i2c_imx->adapter.dev,
++ "<%s> write slave address: addr=0x%x\n",
++ __func__, msgs->addr << 1);
++ writeb((msgs->addr << 1), i2c_imx->base + IMX_I2C_I2DR);
++ }
++ result = i2c_imx_trx_complete(i2c_imx);
++ if (result)
++ return result;
++ result = i2c_imx_acked(i2c_imx);
++ if (result != 0)
++ return result;
++ }
+
+- /* write slave address */
- writeb(msgs->addr << 1, i2c_imx->base + IMX_I2C_I2DR);
-+ if (msgs->flags & I2C_M_REV_DIR_ADDR)
-+ writeb((msgs->addr << 1) | 0x01, i2c_imx->base + IMX_I2C_I2DR);
-+ else
-+ writeb((msgs->addr << 1), i2c_imx->base + IMX_I2C_I2DR);
- result = i2c_imx_trx_complete(i2c_imx);
- if (result)
- return result;
- result = i2c_imx_acked(i2c_imx);
+- result = i2c_imx_trx_complete(i2c_imx);
- if (result)
-+ if ( (result != 0) && ((msgs[0].flags & I2C_M_IGNORE_NAK) == 0))
- return result;
+- return result;
+- result = i2c_imx_acked(i2c_imx);
+- if (result)
+- return result;
dev_dbg(&i2c_imx->adapter.dev, "<%s> write data\n", __func__);
-@@ -323,7 +326,7 @@
+ /* write data */
+@@ -323,7 +336,7 @@
if (result)
return result;
result = i2c_imx_acked(i2c_imx);
- if (result)
-+ if ( (result != 0) && ((msgs[i].flags & I2C_M_IGNORE_NAK) == 0))
++ if ( (result != 0) && ((msgs[0].flags & I2C_M_IGNORE_NAK) == 0))
return result;
}
return 0;
-@@ -339,12 +342,15 @@
- __func__, (msgs->addr << 1) | 0x01);
+@@ -334,18 +347,26 @@
+ int i, result;
+ unsigned int temp;
- /* write slave address */
+- dev_dbg(&i2c_imx->adapter.dev,
+- "<%s> write slave address: addr=0x%x\n",
+- __func__, (msgs->addr << 1) | 0x01);
+-
+- /* write slave address */
- writeb((msgs->addr << 1) | 0x01, i2c_imx->base + IMX_I2C_I2DR);
-+ if (msgs->flags & I2C_M_REV_DIR_ADDR)
-+ writeb((msgs->addr << 1), i2c_imx->base + IMX_I2C_I2DR);
-+ else
-+ writeb((msgs->addr << 1) | 0x01, i2c_imx->base + IMX_I2C_I2DR);
- result = i2c_imx_trx_complete(i2c_imx);
- if (result)
- return result;
- result = i2c_imx_acked(i2c_imx);
+- result = i2c_imx_trx_complete(i2c_imx);
+- if (result)
+- return result;
+- result = i2c_imx_acked(i2c_imx);
- if (result)
-+ if ( (result != 0) && ((msgs[0].flags & I2C_M_IGNORE_NAK) == 0))
- return result;
+- return result;
++ if ( (msgs->flags & I2C_M_NOSTART) == 0) {
++ /* write slave address */
++ if (msgs->flags & I2C_M_REV_DIR_ADDR) {
++ dev_dbg(&i2c_imx->adapter.dev,
++ "<%s> write slave address: addr=0x%x\n",
++ __func__, (msgs->addr << 1));
++ writeb((msgs->addr << 1), i2c_imx->base + IMX_I2C_I2DR);
++ } else {
++ dev_dbg(&i2c_imx->adapter.dev,
++ "<%s> write slave address: addr=0x%x\n",
++ __func__, (msgs->addr << 1) | 0x01);
++ writeb((msgs->addr << 1) | 0x01, i2c_imx->base + IMX_I2C_I2DR);
++ }
++ result = i2c_imx_trx_complete(i2c_imx);
++ if (result)
++ return result;
++ result = i2c_imx_acked(i2c_imx);
++ if (result != 0)
++ return result;
++ }
dev_dbg(&i2c_imx->adapter.dev, "<%s> setup bus\n", __func__);
-@@ -354,6 +360,7 @@
- temp &= ~I2CR_MTX;
- if (msgs->len - 1)
- temp &= ~I2CR_TXAK;
-+ if (msgs->flags & I2C_M_NO_RD_ACK) temp |= I2CR_TXAK;
- writeb(temp, i2c_imx->base + IMX_I2C_I2CR);
- readb(i2c_imx->base + IMX_I2C_I2DR); /* dummy read */
-@@ -371,6 +378,7 @@
- "<%s> clear MSTA\n", __func__);
- temp = readb(i2c_imx->base + IMX_I2C_I2CR);
- temp &= ~(I2CR_MSTA | I2CR_MTX);
-+ if (msgs->flags & I2C_M_NO_RD_ACK) temp |= I2CR_TXAK;
- writeb(temp, i2c_imx->base + IMX_I2C_I2CR);
- i2c_imx_bus_busy(i2c_imx, 0);
- i2c_imx->stopped = 1;
-@@ -405,7 +413,7 @@
+@@ -405,7 +426,7 @@
/* read/write data */
for (i = 0; i < num; i++) {
@@ -72,7 +130,21 @@ Index: linux-2.6.36/drivers/i2c/busses/i2c-imx.c
dev_dbg(&i2c_imx->adapter.dev,
"<%s> repeated start\n", __func__);
temp = readb(i2c_imx->base + IMX_I2C_I2CR);
-@@ -454,7 +462,7 @@
+@@ -435,9 +456,13 @@
+ (temp & I2SR_RXAK ? 1 : 0));
+ #endif
+ if (msgs[i].flags & I2C_M_RD)
++ {
+ result = i2c_imx_read(i2c_imx, &msgs[i]);
++ }
+ else
++ {
+ result = i2c_imx_write(i2c_imx, &msgs[i]);
++ }
+ if (result)
+ goto fail0;
+ }
+@@ -454,7 +479,7 @@
static u32 i2c_imx_func(struct i2c_adapter *adapter)
{
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/359-armadeus-joystick-adding_as5011_joystick_driver.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/359-armadeus-joystick-adding_as5011_joystick_driver.patch
index 958dd72..28e6d8a 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/359-armadeus-joystick-adding_as5011_joystick_driver.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/359-armadeus-joystick-adding_as5011_joystick_driver.patch
@@ -5,8 +5,8 @@ Signed-off-by: Fabien Marteau <fab...@ar...>
Index: linux-2.6.36/drivers/input/joystick/as5011.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.36/drivers/input/joystick/as5011.c 2010-11-25 17:47:25.000000000 +0100
-@@ -0,0 +1,427 @@
++++ linux-2.6.36/drivers/input/joystick/as5011.c 2010-12-30 10:12:13.000000000 +0100
+@@ -0,0 +1,418 @@
+/*
+ * Copyright (c) 2010 Fabien Marteau <fab...@ar...>
+ *
@@ -33,7 +33,6 @@ Index: linux-2.6.36/drivers/input/joystick/as5011.c
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * TODO:
-+ * - Use threaded IRQ instead of Hard IRQ
+ * - Manage power mode
+ */
+
@@ -57,6 +56,7 @@ Index: linux-2.6.36/drivers/input/joystick/as5011.c
+#include <linux/input.h>
+#include <linux/gpio.h>
+#include <linux/workqueue.h>
++#include <linux/delay.h>
+
+#include <linux/as5011.h>
+#define DRIVER_DESC "Driver for Austria Microsystems AS5011 joystick"
@@ -90,21 +90,20 @@ Index: linux-2.6.36/drivers/input/joystick/as5011.c
+ (struct as5011_platform_data *)dev_id;
+ int ret;
+
++ mutex_lock(&plat_dat->button_lock);
+ ret = gpio_get_value(plat_dat->button_gpio);
+ if (ret)
+ input_report_key(plat_dat->input_dev, BTN_JOYSTICK, 0);
+ else
+ input_report_key(plat_dat->input_dev, BTN_JOYSTICK, 1);
+ input_sync(plat_dat->input_dev);
++ mutex_unlock(&plat_dat->button_lock);
++
+ return IRQ_HANDLED;
+}
+
-+static void as5011_update_axes(struct work_struct *work)
++static void as5011_update_axes(struct as5011_platform_data *plat_dat)
+{
-+ struct as5011_platform_data *plat_dat =
-+ container_of(work,
-+ struct as5011_platform_data,
-+ update_axes_work);
+ signed char x, y;
+
+ x = as5011_i2c_read(plat_dat->i2c_client, AS5011_X_RES_INT);
@@ -119,7 +118,9 @@ Index: linux-2.6.36/drivers/input/joystick/as5011.c
+ struct as5011_platform_data *plat_dat =
+ (struct as5011_platform_data *)dev_id;
+
-+ queue_work(plat_dat->workqueue, &plat_dat->update_axes_work);
++ mutex_lock(&plat_dat->update_lock);
++ as5011_update_axes(plat_dat);
++ mutex_unlock(&plat_dat->update_lock);
+
+ return IRQ_HANDLED;
+}
@@ -134,12 +135,14 @@ Index: linux-2.6.36/drivers/input/joystick/as5011.c
+{
+ int ret;
+ uint8_t data[2] = { aRegAddr, aValue };
++
+ struct i2c_msg msg = { client->addr,
+ I2C_M_IGNORE_NAK,
+ 2,
+ (uint8_t *)data };
+
+ ret = i2c_transfer(client->adapter, &msg, 1);
++
+ if (ret < 0)
+ return ret;
+ return 1;
@@ -163,7 +166,6 @@ Index: linux-2.6.36/drivers/input/joystick/as5011.c
+ data[0] = aRegAddr;
+ msg_set[0] = msg1;
+ msg_set[1] = msg2;
-+
+ ret = i2c_transfer(client->adapter, msg_set, 2);
+ if (ret < 0)
+ return ret;
@@ -183,34 +185,22 @@ Index: linux-2.6.36/drivers/input/joystick/as5011.c
+ plat_dat->num = g_num;
+ g_num++;
+
-+ scnprintf(plat_dat->workqueue_name,
-+ SIZE_NAME,
-+ "as5011_%d_workqueue", plat_dat->num);
-+ plat_dat->workqueue =
-+ create_singlethread_workqueue(plat_dat->workqueue_name);
-+ if (plat_dat->workqueue == NULL) {
-+ dev_err(&client->dev, "Failed to create workqueue\n");
-+ retval = -EINVAL;
-+ goto err_out;
-+ }
-+
-+ INIT_WORK(&plat_dat->update_axes_work, as5011_update_axes);
-+
+ if (!i2c_check_functionality(client->adapter,
+ I2C_FUNC_PROTOCOL_MANGLING)) {
+ dev_err(&client->dev,
+ "i2c bus does not support protocol mangling, as5011 can't work\n");
+ retval = -ENODEV;
-+ goto err_destroy_worqueue;
++ goto err_out;
+ }
+ plat_dat->i2c_client = client;
+
++
+ plat_dat->input_dev = input_allocate_device();
+ if (plat_dat->input_dev == NULL) {
+ dev_err(&client->dev,
+ "not enough memory for input devices structure\n");
+ retval = -ENOMEM;
-+ goto err_destroy_worqueue;
++ goto err_out;
+ }
+
+ plat_dat->input_dev->name = "Austria Microsystem as5011 joystick";
@@ -247,11 +237,10 @@ Index: linux-2.6.36/drivers/input/joystick/as5011.c
+ "as5011_%d_button",
+ plat_dat->num);
+
-+ retval = request_irq( plat_dat->button_irq,
-+ button_interrupt,
-+ 0,
-+ plat_dat->button_irq_name,
-+ (void *)plat_dat);
++ retval = request_threaded_irq( plat_dat->button_irq,
++ NULL, button_interrupt,
++ 0, plat_dat->button_irq_name,
++ (void *)plat_dat);
+ if (retval < 0) {
+ dev_err(&client->dev, "Can't allocate irq %d\n",
+ plat_dat->button_irq);
@@ -259,33 +248,11 @@ Index: linux-2.6.36/drivers/input/joystick/as5011.c
+ goto err_free_button_irq_name;
+ }
+
-+ plat_dat->int_irq_name = kmalloc(SIZE_NAME, GFP_KERNEL);
-+ if (plat_dat->int_irq_name == NULL) {
-+ dev_err(&client->dev,
-+ "not enough memory for input devices int irq name\n");
-+ retval = -ENOMEM;
-+ goto err_free_irq_button_interrupt;
-+ }
-+
-+ scnprintf(plat_dat->int_irq_name,
-+ SIZE_NAME,
-+ "as5011_%d_int",
-+ plat_dat->num);
-+
-+ if (request_irq(plat_dat->int_irq, as5011_int_interrupt,
-+ 0, plat_dat->int_irq_name, (void *)plat_dat)) {
-+ dev_err(&client->dev, "Can't allocate int irq %d\n",
-+ plat_dat->int_irq);
-+ retval = -EBUSY;
-+ goto err_free_int_irq_name;
-+ }
-+
-+
+ if (plat_dat->init_gpio != NULL) {
+ retval = plat_dat->init_gpio();
+ if (retval < 0) {
+ dev_err(&client->dev, "Failed to init gpios\n");
-+ goto err_free_irq_int;
++ goto err_free_irq_button_interrupt;
+ }
+ }
+
@@ -299,6 +266,8 @@ Index: linux-2.6.36/drivers/input/joystick/as5011.c
+ goto err_exit_gpio;
+ }
+
++ mdelay(10);
++
+ retval = as5011_i2c_write(plat_dat->i2c_client,
+ AS5011_CTRL1,
+ AS5011_CTRL1_LP_PULSED |
@@ -357,36 +326,59 @@ Index: linux-2.6.36/drivers/input/joystick/as5011.c
+ goto err_exit_gpio;
+ }
+
++ /* request irq */
++ plat_dat->int_irq_name = kmalloc(SIZE_NAME, GFP_KERNEL);
++ if (plat_dat->int_irq_name == NULL) {
++ dev_err(&client->dev,
++ "not enough memory for input devices int irq name\n");
++ retval = -ENOMEM;
++ goto err_exit_gpio;
++ }
++
+
+ /* to free irq gpio in chip*/
+ as5011_i2c_read(plat_dat->i2c_client, AS5011_X_RES_INT);
+
++ /* initialize mutex */
++ mutex_init(&plat_dat->update_lock);
++ mutex_init(&plat_dat->button_lock);
++
++ scnprintf(plat_dat->int_irq_name,
++ SIZE_NAME,
++ "as5011_%d_int",
++ plat_dat->num);
++
++ if (request_threaded_irq(plat_dat->int_irq, NULL,
++ as5011_int_interrupt,
++ 0, plat_dat->int_irq_name, (void *)plat_dat)) {
++ dev_err(&client->dev, "Can't allocate int irq %d\n",
++ plat_dat->int_irq);
++ retval = -EBUSY;
++ goto err_free_int_irq_name;
++ }
++
+ retval = input_register_device(plat_dat->input_dev);
+ if (retval) {
+ dev_err(&client->dev, "Failed to register device\n");
-+ goto err_exit_gpio;
++ goto err_free_irq_int;
+ }
+
+ return 0;
+
+ /* Error management */
-+err_unregister_input_dev:
-+ input_unregister_device(plat_dat->input_dev);
-+err_exit_gpio:
-+ if (plat_dat->exit_gpio != NULL)
-+ plat_dat->exit_gpio();
+err_free_irq_int:
+ free_irq(plat_dat->int_irq, as5011_int_interrupt);
+err_free_int_irq_name:
+ kfree(plat_dat->int_irq_name);
++err_exit_gpio:
++ if (plat_dat->exit_gpio != NULL)
++ plat_dat->exit_gpio();
+err_free_irq_button_interrupt:
+ free_irq(plat_dat->button_irq, button_interrupt);
+err_free_button_irq_name:
+ kfree(plat_dat->button_irq_name);
+err_input_free_device:
+ input_free_device(plat_dat->input_dev);
-+err_destroy_worqueue:
-+ destroy_workqueue(plat_dat->workqueue);
+err_out:
+ return retval;
+}
@@ -394,7 +386,6 @@ Index: linux-2.6.36/drivers/input/joystick/as5011.c
+{
+ struct as5011_platform_data *plat_dat = client->dev.platform_data;
+
-+ destroy_workqueue(plat_dat->workqueue);
+ input_unregister_device(plat_dat->input_dev);
+ free_irq(plat_dat->button_irq, plat_dat);
+ free_irq(plat_dat->int_irq, plat_dat);
@@ -436,8 +427,8 @@ Index: linux-2.6.36/drivers/input/joystick/as5011.c
+module_exit(as5011_exit);
Index: linux-2.6.36/drivers/input/joystick/Kconfig
===================================================================
---- linux-2.6.36.orig/drivers/input/joystick/Kconfig 2010-10-20 22:30:22.000000000 +0200
-+++ linux-2.6.36/drivers/input/joystick/Kconfig 2010-11-25 17:47:25.000000000 +0100
+--- linux-2.6.36.orig/drivers/input/joystick/Kconfig 2010-12-30 09:55:59.000000000 +0100
++++ linux-2.6.36/drivers/input/joystick/Kconfig 2010-12-30 09:56:09.000000000 +0100
@@ -255,6 +255,15 @@
To compile this driver as a module, choose M here: the
module will be called amijoy.
@@ -456,8 +447,8 @@ Index: linux-2.6.36/drivers/input/joystick/Kconfig
select GAMEPORT
Index: linux-2.6.36/drivers/input/joystick/Makefile
===================================================================
---- linux-2.6.36.orig/drivers/input/joystick/Makefile 2010-10-20 22:30:22.000000000 +0200
-+++ linux-2.6.36/drivers/input/joystick/Makefile 2010-11-25 17:47:25.000000000 +0100
+--- linux-2.6.36.orig/drivers/input/joystick/Makefile 2010-12-30 09:55:59.000000000 +0100
++++ linux-2.6.36/drivers/input/joystick/Makefile 2010-12-30 09:56:09.000000000 +0100
@@ -7,6 +7,7 @@
obj-$(CONFIG_JOYSTICK_A3D) += a3d.o
obj-$(CONFIG_JOYSTICK_ADI) += adi.o
@@ -469,8 +460,8 @@ Index: linux-2.6.36/drivers/input/joystick/Makefile
Index: linux-2.6.36/include/linux/as5011.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.36/include/linux/as5011.h 2010-11-25 17:47:25.000000000 +0100
-@@ -0,0 +1,72 @@
++++ linux-2.6.36/include/linux/as5011.h 2010-12-30 09:56:09.000000000 +0100
+@@ -0,0 +1,76 @@
+#ifndef _AS5011_H
+#define _AS5011_H
+
@@ -482,6 +473,8 @@ Index: linux-2.6.36/include/linux/as5011.h
+ * the Free Software Foundation.
+ */
+
++#include <linux/mutex.h>
++
+#define AS5011_MAX_NAME_LENGTH 64
+#define AS5011_MAX_CNAME_LENGTH 16
+#define AS5011_MAX_PHYS_LENGTH 64
@@ -540,6 +533,8 @@ Index: linux-2.6.36/include/linux/as5011.h
+ char workqueue_name[AS5011_MAX_NAME_LENGTH];
+ struct workqueue_struct *workqueue;
+ struct work_struct update_axes_work;
++ struct mutex update_lock;
++ struct mutex button_lock;
+};
+
+#endif /* _AS5011_H */
hooks/post-receive
--
armadeus
|
|
From: Gwenhael <gwe...@us...> - 2010-12-23 11:39:11
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via d0a58cec1516ad347ee9200292cb0bd40e9dd83d (commit)
via bc14a99508e76fb1116fc2c0e6551debfbebb138 (commit)
from 48b5a8bb52b7eef44cf8d5b12cf7310686da85a6 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit d0a58cec1516ad347ee9200292cb0bd40e9dd83d
Merge: bc14a99508e76fb1116fc2c0e6551debfbebb138 48b5a8bb52b7eef44cf8d5b12cf7310686da85a6
Author: gwenhael <gw...@tr...>
Date: Thu Dec 23 12:45:01 2010 +0100
Merge branch 'master' of ssh://armadeus.git.sourceforge.net/gitroot/armadeus/armadeus
commit bc14a99508e76fb1116fc2c0e6551debfbebb138
Author: gwenhael <gw...@tr...>
Date: Thu Dec 23 12:44:31 2010 +0100
first commit for apf9328 support, CSI,SSI and FPGA not available. RTC not being tested
-----------------------------------------------------------------------
Summary of changes:
.../{2.6.29 => 2.6.36}/021-armadeus-apf9328.patch | 851 ++++++++++----------
1 files changed, 423 insertions(+), 428 deletions(-)
copy buildroot/target/device/armadeus/linux/kernel-patches/{2.6.29 => 2.6.36}/021-armadeus-apf9328.patch (65%)
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/021-armadeus-apf9328.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/021-armadeus-apf9328.patch
similarity index 65%
copy from buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/021-armadeus-apf9328.patch
copy to buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/021-armadeus-apf9328.patch
index d558383..fc89aa5 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/021-armadeus-apf9328.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/021-armadeus-apf9328.patch
@@ -1,11 +1,6 @@
-PATCH AUTOMATICALLY GENERATED
-DON'T EDIT IT OR YOUR MODIFICATIONS WILL BE LOST
-(Take a look at armadeus/target/linux/ directory to know how to generate it)
-Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328.c
-===================================================================
---- /dev/null
-+++ linux-2.6.29.6/arch/arm/mach-imx/apf9328.c
-@@ -0,0 +1,627 @@
+--- /dev/null 2010-11-28 19:42:11.148000001 +0100
++++ b/arch/arm/mach-imx/apf9328.c 2010-12-19 11:31:56.000000000 +0100
+@@ -0,0 +1,588 @@
+/*
+ * linux/arch/arm/mach-imx/apf9328.c
+ *
@@ -27,12 +22,16 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328.c
+ *
+ */
+
++#include <asm/mach/arch.h>
++#include <asm/mach/time.h>
++#include <mach/common.h>
+#include <linux/device.h>
+#include <linux/platform_device.h>
+#include <linux/mtd/physmap.h>
+#include <linux/init.h>
+#include <linux/interrupt.h>
+#include <linux/serial_8250.h>
++#include <linux/serial.h>
+#include <linux/spi/spi.h>
+
+#include <asm/system.h>
@@ -43,23 +42,29 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328.c
+
+#include <asm/mach/map.h>
+#include <asm/mach-types.h>
-+#include <asm/mach/arch.h>
++#include <mach/gpio.h>
+#include <mach/imx-uart.h>
+#include <mach/mmc.h>
+#include <mach/usb.h>
-+#include <mach/spi_imx.h>
-+#include <mach/imx-regs.h> /* imx_gpio_mode() */
++#include <mach/spi.h>
++#include <mach/mx1.h> /* mxc_gpio_mode() */
+#include <linux/spi/max1027.h>
-+#include <mach/imx_ssi.h>
-+#include <mach/dma.h>
++#include <mach/ssi.h>
++#include <mach/dma-mx1-mx2.h>
+#include "../../../drivers/armadeus/pwm/pwm.h"
+#include <linux/dm9000.h>
++#include <mach/iomux-v1.h>
++#include <mach/iomux-mx1.h>
++#include <mach/board-apf9328.h>
+#ifdef CONFIG_MACH_APF9328_FPGA
+#include "../plat-mxc/include/mach/fpga.h" /* To be removed when MX1 arch is fully integrated */
+#endif
+#include <mach/imxfb.h>
-+#include "generic.h"
++#include "devices-imx1.h"
++#include "devices.h"
+
++#define IMX_FB_VIRT 0xF1000000
++#define IMX_FB_SIZE (256*1024)
+#ifdef CONFIG_ARMADEUS_MAX1027_MODULE
+#define CONFIG_ARMADEUS_MAX1027 1
+#endif
@@ -75,7 +80,18 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328.c
+#ifdef CONFIG_ARMADEUS_PWM_DRIVER_MODULE
+#define CONFIG_PWM
+#endif
++#ifdef CONFIG_ARMADEUS_PWM_DRIVER
++#define CONFIG_PWM
++#endif
++
+
++static int apf9328_pins[] = {
++/* SPI0 */
++ PC14_PF_SPI1_SCLK,
++ PC16_PF_SPI1_MISO,
++ PC17_PF_SPI1_MOSI,
++};
++
+
+/*
+ * APF9328 has a DM9000 Ethernet controller
@@ -94,7 +110,7 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328.c
+ [2] = {
+ .start = (APF9328_ETH_IRQ),
+ .end = (APF9328_ETH_IRQ),
-+ .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWEDGE,
++ .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL,
+ },
+};
+
@@ -110,8 +126,7 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328.c
+ .dev = { .platform_data = &dm9000_setup, },
+};
+
-+
-+#ifdef CONFIG_PWM
++#ifdef CONFIG_MXC_PWM
+static struct resource pwm_resources[] = {
+ [0] = {
+ .start = 0x00208000,
@@ -119,8 +134,8 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328.c
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
-+ .start = (PWM_INT),
-+ .end = (PWM_INT),
++ .start = (MX1_PWM_INT),
++ .end = (MX1_PWM_INT),
+ .flags = IORESOURCE_IRQ,
+ },
+};
@@ -128,9 +143,7 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328.c
+static int apf9328_pwm_0_init(void)
+{
+ /* Init Port PA[2] : PWMO*/
-+ DDIR(0) |= 0x00000002;
-+ GIUS(0) &= ~0x00000002;
-+ GPR(0) &= ~0x00000002;
++ mxc_gpio_mode(PA2_PF_PWM0);
+ return 0;
+}
+
@@ -153,28 +166,26 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328.c
+ .platform_data = &apf9328_pwm_0_data,
+ }
+};
-+#endif /* CONFIG_PWM */
-+
++#endif /* CONFIG_MXC_PWM */
+
+#ifdef CONFIG_USB_GADGET_IMX
+static int apf9328_udc_0_init(struct device * dev)
+{
-+ imx_gpio_mode(PC3_PF_SSI_RXFS);
-+ imx_gpio_mode(PB20_PF_USBD_AFE);
-+ imx_gpio_mode(PB21_PF_USBD_OE);
-+ imx_gpio_mode(PB22_PF_USBD_RCV);
-+ imx_gpio_mode(PB23_PF_USBD_SUSPND);
-+ imx_gpio_mode(PB24_PF_USBD_VP);
-+ imx_gpio_mode(PB25_PF_USBD_VM);
-+ imx_gpio_mode(PB26_PF_USBD_VPO);
-+ imx_gpio_mode(PB27_PF_USBD_VMO);
++ mxc_gpio_mode(PC3_PF_SSI_RXFS);
++ mxc_gpio_mode(PB20_PF_USBD_AFE);
++ mxc_gpio_mode(PB21_PF_USBD_OE);
++ mxc_gpio_mode(PB22_PF_USBD_RCV);
++ mxc_gpio_mode(PB23_PF_USBD_SUSPND);
++ mxc_gpio_mode(PB24_PF_USBD_VP);
++ mxc_gpio_mode(PB25_PF_USBD_VM);
++ mxc_gpio_mode(PB26_PF_USBD_VPO);
++ mxc_gpio_mode(PB27_PF_USBD_VMO);
+
+ return 0;
+}
+
-+static int apf9328_udc_0_exit(struct device * dev)
++static void apf9328_udc_0_exit(struct device * dev)
+{
-+ return 0;
+}
+
+static struct imxusb_platform_data apf9328_udc_0_data = {
@@ -183,21 +194,22 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328.c
+};
+#endif /* CONFIG_USB_GADGET_IMX */
+
-+
++// TBD GGM
++#if 0
+#if defined(CONFIG_SND_IMX_PCM) || defined(CONFIG_SND_IMX_PCM_MODULE)
+int apf9328_ssi_gpio_init(struct platform_device *pdev)
+{
+ /* Activate SSI on PortC */
-+ imx_gpio_mode(PC3_PF_SSI_RXFS);
++ mxc_gpio_mode(PC3_PF_SSI_RXFS);
+ FMCR &= ~(SSI_RXFS_SEL);
-+ imx_gpio_mode(PC4_PF_SSI_RXCLK);
++ mxc_gpio_mode(PC4_PF_SSI_RXCLK);
+ FMCR &= ~(SSI_RXCLK_SEL);
-+ imx_gpio_mode(PC5_PF_SSI_RXDAT);
++ mxc_gpio_mode(PC5_PF_SSI_RXDAT);
+ FMCR &= ~(SSI_RXDAT_SEL);
-+ imx_gpio_mode(PC6_PF_SSI_TXDAT);
-+ imx_gpio_mode(PC7_PF_SSI_TXFS);
++ mxc_gpio_mode(PC6_PF_SSI_TXDAT);
++ mxc_gpio_mode(PC7_PF_SSI_TXFS);
+ FMCR &= ~(SSI_TXFS_SEL);
-+ imx_gpio_mode(PC8_PF_SSI_TXCLK);
++ mxc_gpio_mode(PC8_PF_SSI_TXCLK);
+ FMCR &= ~(SSI_TXCLK_SEL);
+
+ printk("SSI pins configured\n");
@@ -259,133 +271,80 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328.c
+};
+
+#endif /* defined(CONFIG_SND_IMX_PCM) || defined(CONFIG_SND_IMX_PCM_MODULE) */
-+
++#endif
+
+/* --- SERIAL RESSOURCE --- */
-+static struct imxuart_platform_data uart1_pdata = {
-+ .flags = 0,
++static int mxc_uart0_pins[] = {
++ PC9_PF_UART1_CTS,
++ PC10_PF_UART1_RTS,
++ PC11_PF_UART1_TXD,
++ PC12_PF_UART1_RXD
+};
+
-+static struct resource imx_uart1_resources[] = {
-+ [0] = {
-+ .start = 0x00206000,
-+ .end = 0x002060FF,
-+ .flags = IORESOURCE_MEM,
-+ },
-+ [1] = {
-+ .start = (UART1_MINT_RX),
-+ .end = (UART1_MINT_RX),
-+ .flags = IORESOURCE_IRQ,
-+ },
-+ [2] = {
-+ .start = (UART1_MINT_TX),
-+ .end = (UART1_MINT_TX),
-+ .flags = IORESOURCE_IRQ,
-+ },
-+};
++static int uart_mxc_port0_init(struct platform_device *pdev)
++{
++ return mxc_gpio_setup_multiple_pins(mxc_uart0_pins, ARRAY_SIZE(mxc_uart0_pins), "UART1");
++}
+
-+static struct platform_device imx_uart1_device = {
-+ .name = "imx-uart",
-+ .id = 0,
-+ .num_resources = ARRAY_SIZE(imx_uart1_resources),
-+ .resource = imx_uart1_resources,
-+ .dev = {
-+ .platform_data = &uart1_pdata,
-+ }
-+};
++static void uart_mxc_port0_exit(struct platform_device *pdev)
++{
++ mxc_gpio_release_multiple_pins(mxc_uart0_pins, ARRAY_SIZE(mxc_uart0_pins));
++}
+
-+static struct imxuart_platform_data uart2_pdata = {
-+ .flags = IMXUART_HAVE_RTSCTS,
++static struct imxuart_platform_data uart0_pdata = {
++ .init = uart_mxc_port0_init,
++ .exit = uart_mxc_port0_exit,
++ .flags = 0,
+};
+
-+static struct resource imx_uart2_resources[] = {
-+ [0] = {
-+ .start = 0x00207000,
-+ .end = 0x002070FF,
-+ .flags = IORESOURCE_MEM,
-+ },
-+ [1] = {
-+ .start = (UART2_MINT_RX),
-+ .end = (UART2_MINT_RX),
-+ .flags = IORESOURCE_IRQ,
-+ },
-+ [2] = {
-+ .start = (UART2_MINT_TX),
-+ .end = (UART2_MINT_TX),
-+ .flags = IORESOURCE_IRQ,
-+ },
-+ [3] = {
-+ .start = UART2_MINT_RTS,
-+ .end = UART2_MINT_RTS,
-+ .flags = IORESOURCE_IRQ,
-+ },
++static int mxc_uart1_pins[] = {
++ PB28_PF_UART2_CTS,
++ PB29_PF_UART2_RTS,
++ PB30_PF_UART2_TXD,
++ PB31_PF_UART2_RXD
+};
+
-+static struct platform_device imx_uart2_device = {
-+ .name = "imx-uart",
-+ .id = 1,
-+ .num_resources = ARRAY_SIZE(imx_uart2_resources),
-+ .resource = imx_uart2_resources,
-+ .dev = {
-+ .platform_data = &uart2_pdata,
-+ }
++static int uart_mxc_port1_init(struct platform_device *pdev)
++{
++ return mxc_gpio_setup_multiple_pins(mxc_uart1_pins, ARRAY_SIZE(mxc_uart1_pins), "UART2");
++}
++
++static void uart_mxc_port1_exit(struct platform_device *pdev)
++{
++ mxc_gpio_release_multiple_pins(mxc_uart1_pins, ARRAY_SIZE(mxc_uart1_pins));
++}
++
++static struct imxuart_platform_data uart1_pdata = {
++ .init = uart_mxc_port1_init,
++ .exit = uart_mxc_port1_exit,
++ .flags = IMXUART_HAVE_RTSCTS,
+};
+
+#ifdef CONFIG_SPI_IMX
-+static struct resource imx_spi1_resource[] = {
-+ [0] = {
-+ .start = 0x00213000,
-+ .end = 0x00213fff,
-+ .flags = IORESOURCE_MEM,
-+ },
-+ [1] = {
-+ .start = CSPI_INT,
-+ .end = CSPI_INT,
-+ .flags = IORESOURCE_IRQ,
-+ }
-+};
++#define SPIDEV_CS (GPIO_PORTB + 18)
++#define MAX1027_CS (GPIO_PORTC + 15)
+
-+static struct spi_imx_master imx_spi1_master_info = {
-+ .num_chipselect = 2,
-+ .enable_dma = 0,
++static int apf9328_spi1_cs[] = {
++ MAX1027_CS,
++ SPIDEV_CS,
+};
+
-+static struct platform_device imx_spi1 = {
-+ .name = "spi_imx",
-+ .id = 1,
-+ .resource = imx_spi1_resource,
-+ .num_resources = ARRAY_SIZE(imx_spi1_resource),
-+ .dev = {
-+ .platform_data = &imx_spi1_master_info,
-+ },
++static const struct spi_imx_master imx_spi1_master_info = {
++ .chipselect = apf9328_spi1_cs,
++ .num_chipselect = ARRAY_SIZE(apf9328_spi1_cs),
+};
+
-+static struct resource imx_spi2_resource[] = {
-+ [0] = {
-+ .start = 0x00219000,
-+ .end = 0x00219fff,
-+ .flags = IORESOURCE_MEM,
-+ },
-+ [1] = {
-+ .start = SPI2_INT,
-+ .end = SPI2_INT,
-+ .flags = IORESOURCE_IRQ,
-+ }
-+};
++#define MCP251X_CS (GPIO_PORTB + 19)
++#define TSC2102_CS (GPIO_PORTB + 17)
+
-+static struct spi_imx_master imx_spi2_master_info = {
-+ .num_chipselect = 2,
-+ .enable_dma = 0,
++static int apf9328_spi2_cs[] = {
++ TSC2102_CS,
++ MCP251X_CS,
+};
+
-+static struct platform_device imx_spi2 = {
-+ .name = "spi_imx",
-+ .id = 2,
-+ .resource = imx_spi2_resource,
-+ .num_resources = ARRAY_SIZE(imx_spi2_resource),
-+ .dev = {
-+ .platform_data = &imx_spi2_master_info,
-+ },
++static const struct spi_imx_master imx_spi2_master_info = {
++ .chipselect = apf9328_spi2_cs,
++ .num_chipselect = ARRAY_SIZE(apf9328_spi2_cs),
+};
+#endif /* CONFIG_SPI_IMX */
+
@@ -394,28 +353,13 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328.c
+ */
+#ifdef CONFIG_ARMADEUS_MAX1027
+#define IMX_SPI1_SS_PIN 15
-+#define IMX_SPI1_SS (1<<15)
-+#define MAX1027_EOC_INT 13
-+#define MAX1027_CNVST 14
++#define MAX1027_EOC_INT (GPIO_PORTA | 13)
++#define MAX1027_CNVST (GPIO_PORTA | 14)
+
+static int max1027_init(struct spi_device *spi)
+{
-+ /* SPI1 GPIOs */
-+ imx_gpio_mode(PC14_PF_SPI1_SCLK);
-+ imx_gpio_mode(PC16_PF_SPI1_MISO);
-+ imx_gpio_mode(PC17_PF_SPI1_MOSI);
-+
-+ /* configure CNVST */
-+ DR(0) |= 1 << MAX1027_CNVST; /* Initializes it High */
-+ imx_gpio_mode(GPIO_PORTA | MAX1027_CNVST | GPIO_OUT | GPIO_GIUS | GPIO_DR);
-+
-+ /* configure EOC */
-+ imx_gpio_mode(GPIO_PORTA | MAX1027_EOC_INT | GPIO_IN | GPIO_GIUS);
-+
-+ /* SPI CSn is used as chip select but in GPIO mode */
-+ DR(2) |= IMX_SPI1_SS;
-+ imx_gpio_mode(GPIO_PORTC | IMX_SPI1_SS_PIN | GPIO_OUT | GPIO_GIUS | GPIO_DR);
-+
++ mxc_gpio_mode(MAX1027_EOC_INT | GPIO_IN | GPIO_GPIO);
++ mxc_gpio_mode(MAX1027_CNVST | GPIO_OUT | GPIO_GPIO);
+ return 0;
+}
+
@@ -424,18 +368,6 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328.c
+ return 0;
+}
+
-+static void max1027_cs(u32 command)
-+{
-+ if (command == SPI_CS_DEASSERT)
-+ DR(2) |= IMX_SPI1_SS;
-+ else
-+ DR(2) &= ~IMX_SPI1_SS;
-+}
-+
-+static struct spi_imx_chip max1027_hw = {
-+ .cs_control = max1027_cs,
-+};
-+
+static struct max1027_config apf9328_max1027_config = {
+ .conv = MAX1027_CONV_DEFAULT,
+ .setup = MAX1027_SETUP_DEFAULT,
@@ -451,9 +383,8 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328.c
+static struct spi_board_info spi_board_info[] __initdata = {
+{
+ .modalias = "max1027",
-+ .controller_data= &max1027_hw,
+ .max_speed_hz = 8000000,
-+ .bus_num = 1, /* SPI1 */
++ .bus_num = 0, /* SPI1 */
+ .chip_select = 0,
+ .mode = 0,
+ .irq = IRQ_GPIOA(MAX1027_EOC_INT),
@@ -484,8 +415,8 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328.c
+ * The APF9328 can have up to 32MB NOR Flash
+ */
+static struct resource flash_resource = {
-+ .start = IMX_CS0_PHYS,
-+ .end = IMX_CS0_PHYS + (32 * 1024 * 1024) - 1,
++ .start = MX1_CS0_PHYS,
++ .end = MX1_CS0_PHYS + (32 * 1024 * 1024) - 1,
+ .flags = IORESOURCE_MEM,
+};
+
@@ -535,15 +466,33 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328.c
+};
+#endif /* CONFIG_MACH_APF9328_FPGA */
+
++#ifdef CONFIG_I2C_IMX
++static int mxc_i2c_pins[] = {
++ PA15_PF_I2C_SDA,
++ PA16_PF_I2C_SCL,
++};
++
++static int apf9328_i2c_init(struct platform_device *pdev)
++{
++ return mxc_gpio_setup_multiple_pins(mxc_i2c_pins,
++ ARRAY_SIZE(mxc_i2c_pins), "I2C");
++}
++
++static int apf9328_i2c_exit(struct platform_device *pdev)
++{
++ mxc_gpio_release_multiple_pins(mxc_i2c_pins, ARRAY_SIZE(mxc_i2c_pins));
++ return 0;
++}
++
++static const struct imxi2c_platform_data apf9328_i2c_data __initconst = {
++ .bitrate = 100000,
++ .init = apf9328_i2c_init,
++ .exit = apf9328_i2c_exit,
++};
++#endif /* CONFIG_I2C_IMX */
+
+static struct platform_device *devices[] __initdata = {
-+ &imx_uart1_device,
-+ &imx_uart2_device,
+ &dm9000x_device,
-+#ifdef CONFIG_SPI_IMX
-+ &imx_spi1,
-+ &imx_spi2,
-+#endif
+#ifdef CONFIG_PWM
+ &imx_pwm_device,
+#endif
@@ -563,22 +512,31 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328.c
+{
+ printk("--- Registering APF9328 ressources\n");
+
-+ /* Initializes serial port 1/console GPIOs */
-+ imx_gpio_mode(PC9_PF_UART1_CTS);
-+ imx_gpio_mode(PC10_PF_UART1_RTS);
-+ imx_gpio_mode(PC11_PF_UART1_TXD);
-+ imx_gpio_mode(PC12_PF_UART1_RXD);
++ mxc_gpio_setup_multiple_pins(apf9328_pins,
++ ARRAY_SIZE(apf9328_pins), "apf9328");
+
-+#ifdef CONFIG_USB_GADGET_IMX
-+ set_imx_usb_info(&apf9328_udc_0_data);
-+#endif
+
-+ platform_add_devices(devices, ARRAY_SIZE(devices));
++ imx1_add_imx_uart0(&uart0_pdata); /* console */
++ imx1_add_imx_uart1(&uart1_pdata);
+
++#ifdef CONFIG_SPI_IMX
++#if defined (CONFIG_ARMADEUS_MAX1027) || defined (CONFIG_SPIDEV)
++ mxc_gpio_mode(GPIO_PORTC | IMX_SPI1_SS_PIN | GPIO_OUT | GPIO_GPIO);
++ mxc_gpio_mode(GPIO_PORTA | 4 | GPIO_GPIO | GPIO_OUT);
++#endif
++ imx1_add_spi_imx0(&imx_spi1_master_info);
++ imx1_add_spi_imx1(&imx_spi2_master_info);
+#if defined (CONFIG_ARMADEUS_MAX1027)
+ spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info));
+#endif
-+
++#endif
++#ifdef CONFIG_I2C_IMX
++ imx1_add_i2c_imx(&apf9328_i2c_data);
++#endif
++#ifdef CONFIG_USB_GADGET_IMX
++ mxc_register_device(&imx_usb_device, &apf9328_udc_0_data);
++#endif
++ platform_add_devices(devices, ARRAY_SIZE(devices));
+ apf9328_baseboard_init();
+
+ printk("--- APF9328 ressources registered\n");
@@ -588,56 +546,52 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328.c
+ * Register here the memory addresses we want to access from our drivers and
+ * which are not already registered in generic.c
+ */
-+#ifdef CONFIG_FB_IMX
-+#define IMX_FB_PHYS (0x0C000000 - 0x40000)
-+#endif
+
+static struct map_desc apf9328_io_desc[] __initdata = {
-+#ifdef CONFIG_FB_IMX
-+ {
-+ .virtual = IMX_FB_VIRT,
-+ .pfn = __phys_to_pfn(IMX_FB_PHYS),
-+ .length = IMX_FB_SIZE,
-+ .type = MT_DEVICE
-+ },
-+#endif
+#ifdef CONFIG_MACH_APF9328_FPGA
+ /* FPGA Memory mapping */
-+ {.virtual = IMX_CS1_VIRT, .pfn = __phys_to_pfn(IMX_CS1_PHYS), .length = IMX_CS1_SIZE, .type = MT_DEVICE},
++ {.virtual = MX1_CS1_VIRT, .pfn = __phys_to_pfn(MX1_CS1_PHYS), .length = MX1_CS1_SIZE, .type = MT_DEVICE},
+#endif
+};
+
+void __init apf9328_map_io(void)
+{
-+ imx_map_io();
++ mx1_map_io();
+ iotable_init(apf9328_io_desc, ARRAY_SIZE(apf9328_io_desc));
++
+}
+
+static void __init apf9328_init_irq(void)
+{
+ /* Init generic IRQs */
-+ imx_init_irq();
++ mx1_init_irq();
+
+ /* Init our custom IRQs (DM9000) */
++
++ mxc_gpio_mode(GPIO_PORTB | 14 | GPIO_IN | GPIO_GPIO);
+ set_irq_type(APF9328_ETH_IRQ, IRQF_TRIGGER_FALLING);
+}
-+
++static void __init apf9328_timer_init(void)
++{
++ mx1_clocks_init(32768);
++}
++static struct sys_timer apf9328_timer = {
++ .init = apf9328_timer_init,
++};
+
+MACHINE_START(APF9328, "Armadeus APF9328")
+ /* Maintainer: Julien Boibessot, Armadeus */
-+ .phys_io = 0x00200000,
-+ .io_pg_offst = ((0xe0200000) >> 18) & 0xfffc,
-+ .boot_params = 0x08000100,
++ .phys_io = MX1_IO_BASE_ADDR,
++ .io_pg_offst = (MX1_IO_BASE_ADDR_VIRT >> 18) & 0xfffc,
++ .boot_params = MX1_PHYS_OFFSET + 0x100,
+ .map_io = apf9328_map_io,
+ .init_irq = apf9328_init_irq,
-+ .timer = &imx_timer,
++ .timer = &apf9328_timer,
+ .init_machine = apf9328_init,
+MACHINE_END
-Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328_lcd_config.h
-===================================================================
---- /dev/null
-+++ linux-2.6.29.6/arch/arm/mach-imx/apf9328_lcd_config.h
-@@ -0,0 +1,301 @@
+--- /dev/null 2010-11-28 19:42:11.148000001 +0100
++++ b/arch/arm/mach-imx/apf9328_lcd_config.h 2010-12-19 11:20:34.000000000 +0100
+@@ -0,0 +1,355 @@
+/*
+ *
+ * Armadeus LCD configuration file
@@ -654,12 +608,14 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328_lcd_config.h
+
+#ifdef CONFIG_FB_IMX
+
-+#include <mach/imxfb.h>
+#include <linux/delay.h>
+#include <mach/gpio.h>
++#include <linux/fb.h>
+
-+#ifdef CONFIG_ARCH_IMX
-+#define LCDC_BASE_ADDR IMX_LCDC_BASE
++#ifdef CONFIG_ARCH_MX1
++#include <mach/mx1.h>
++#define LCDC_BASE_ADDR MX1_LCDC_BASE_ADDR
++#define IO_ADDRESS MX1_IO_ADDRESS
+#endif
+#define LCDISR_EOF (1 << 1)
+
@@ -679,7 +635,7 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328_lcd_config.h
+
+#ifdef CONFIG_MACH_APF9328
+static int apf9328_fb_init(struct platform_device *pdev);
-+static int apf9328_fb_exit(struct platform_device *pdev);
++static void apf9328_fb_exit(struct platform_device *pdev);
+#endif
+
+/*
@@ -688,7 +644,7 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328_lcd_config.h
+static void apf_lcd_power(int on)
+{
+ u32 isr;
-+
++ printk("apf_lcd_power\n");
+ pr_debug("%s: %s\n", __func__, on ? "on":"off");
+ isr = 0;
+#ifdef CONFIG_FB_IMX_OPTREX_F51900_CSTN
@@ -704,8 +660,10 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328_lcd_config.h
+ enabling the display */
+ /* Waits end of current frame */
+ isr = readl(IO_ADDRESS(LCDC_BASE_ADDR) + 0x40);
++ printk("isr %08x\n", isr);
+ do {
+ isr = readl(IO_ADDRESS(LCDC_BASE_ADDR) + 0x40);
++ printk("isr %08x\n", isr);
+ udelay(1000);
+ pr_debug("%08x\n", isr);
+ } while ((isr & LCDISR_EOF) == 0);
@@ -736,9 +694,11 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328_lcd_config.h
+ pr_debug("%s: %s\n", __func__, on ? "on":"off");
+
+ pwmr = readl(IO_ADDRESS(LCDC_BASE_ADDR) + 0x2c);
++ printk("pwmr %08x\n", pwmr);
++
+#ifdef CONFIG_MACH_APF9328
+ if (pwmr)
-+ imx_gpio_mode(PD11_PF_CONTRAST);
++ mxc_gpio_mode(PD11_PF_CONTRAST);
+#endif
+ if (on) {
+ pwmr |= PWMR_CC_EN;
@@ -747,101 +707,121 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328_lcd_config.h
+ }
+ writel(pwmr, IO_ADDRESS(LCDC_BASE_ADDR) + 0x2c);
+}
++static struct imx_fb_videomode mde[] = {
++ [0]={
++#ifdef CONFIG_FB_IMX_SHARP_LQ043_TFT
++ .mode = {
++ .name = "Sharp-LQ043",
++ .refresh = 60,
++ .xres = 480,
++ .yres = 272,
++ .pixclock = 125000, /* picoS -> ~8MHz */
++ .left_margin = 3, /* should be 2 but i.MX doesn't support it */
++ .right_margin = 2,
++ .upper_margin = 3,
++ .lower_margin = 2,
++ .hsync_len = 41,
++ .vsync_len = 10,
++ },
++ .pcr = PCR_TFT | PCR_COLOR | PCR_PBSIZ_8 | PCR_BPIX_16 | PCR_FLMPOL | PCR_LPPOL |
++ PCR_CLKPOL | PCR_SCLKIDLE | PCR_SCLK_SEL | PCR_PCD(5),
++ .bpp = 16,
++#elif CONFIG_FB_IMX_MICROTIPS_MTF_T035_TFT
++ .mode = {
++ .name = "Microtips-T035",
++ .refresh = 60,
++ .xres = 320,
++ .yres = 240,
++ .pixclock = 156250, /* picoS -> ~6.4MHz */
++ .left_margin = 4,
++ .upper_margin = 20,
++ .right_margin = 69,
++ .lower_margin = 20,
++ .hsync_len = 31,
++ .vsync_len = 3,
++ },
++ .pcr = PCR_TFT | PCR_COLOR | PCR_PBSIZ_8 | PCR_BPIX_16 | PCR_FLMPOL | PCR_LPPOL |
++ PCR_SCLKIDLE | PCR_SCLK_SEL | PCR_PCD(7),
++ .bpp = 16,
++#elif CONFIG_FB_IMX_SHARP_LQ057_TFT
++ .mode = {
++ .name = "Sharp-LQ057",
++ .refresh = 60,
++ .xres = 320,
++ .yres = 240,
++ .pixclock = 158730, /* picoS -> ~6.3MHz */
++ .left_margin = 9,
++ .upper_margin = 0,
++ .right_margin = 27,
++ .lower_margin = 7,
++ .hsync_len = 9,
++ .vsync_len = 2,
++ },
++ .bpp = 16,
++ .pcr = PCR_TFT | PCR_COLOR | PCR_PBSIZ_8 | PCR_BPIX_16 | /*PCR_CLKPOL |*/
++ PCR_SCLKIDLE | PCR_SCLK_SEL | PCR_PCD(9),
++#elif CONFIG_FB_IMX_OPTREX_F51900_CSTN
++ .mode = {
++ .name = "Optrex-F51900",
++ .refresh = 60,
++ .xres = 320,
++ .yres = 240,
++ .pixclock = 62500,
++ .left_margin = 2,
++ .upper_margin = 2,
++ .right_margin = 2,
++ .lower_margin = 2,
++ .hsync_len = 2,
++ .vsync_len = 2,
++ },
++ .bpp = 8,
++ .pcr = PCR_COLOR | PCR_PBSIZ_8 | PCR_BPIX_8 | PCR_ACD(5) |
++ PCR_END_BYTE_SWAP | PCR_PCD(3),
++#elif CONFIG_FB_IMX_MOTOROLA_A910_TFT
++ .mode = {
++ .name = "Motorola-A910",
++ .refresh = 60,
++ .xres = 240,
++ .yres = 320,
++ .pixclock = 158730, /* picoS -> ~6.3MHz */
++ .left_margin = 9,
++ .upper_margin = 2,
++ .right_margin = 27,
++ .lower_margin = 4,
++ .hsync_len = 9,
++ .vsync_len = 2,
++ },
++ .bpp = 16,
++ .pcr = PCR_TFT | PCR_COLOR | PCR_PBSIZ_8 | PCR_BPIX_16 | PCR_CLKPOL |
++ PCR_SCLKIDLE | PCR_SCLK_SEL | PCR_PCD(9),
++#endif
++ },
++};
+
+#ifdef CONFIG_MACH_APF9328
+static struct imx_fb_platform_data apf9328_fb_info /*__initdata*/ = {
-+#elif CONFIG_MACH_APF27
-+static struct imx_fb_platform_data apf27_fb_data = {
+#endif
++ .mode = mde,
++ .num_modes = ARRAY_SIZE(mde),
+#ifdef CONFIG_FB_IMX_SHARP_LQ043_TFT
-+ .pixclock = 125000, /* picoS -> ~8MHz */
-+ .bpp = 16,
-+ .xres = 480,
-+ .yres = 272,
-+
-+ .hsync_len = 41,
-+ .vsync_len = 10,
-+ .left_margin = 3, /* should be 2 but i.MX doesn't support it */
-+ .upper_margin = 3,
-+ .right_margin = 2,
-+ .lower_margin = 2,
-+
-+ .pcr = PCR_TFT | PCR_COLOR | PCR_PBSIZ_8 | PCR_BPIX_16 | PCR_FLMPOL | PCR_LPPOL |
-+ PCR_CLKPOL | PCR_SCLKIDLE | PCR_SCLK_SEL | PCR_PCD(5),
+ .pwmr = 0x000003ff, /* Contrast with PWM @ Pixel clock / 256, max width by default */
+ .dmacr = DEFAULT_DMA_SETTINGS,
+ .backlight_power= apf_lcd_backlight_power,
+ .lcd_power = apf_lcd_power,
+#elif CONFIG_FB_IMX_MICROTIPS_MTF_T035_TFT
-+ .pixclock = 156250, /* picoS -> ~6.4MHz */
-+ .bpp = 16,
-+ .xres = 320,
-+ .yres = 240,
-+
-+ .hsync_len = 31,
-+ .vsync_len = 3,
-+ .left_margin = 4,
-+ .upper_margin = 20,
-+ .right_margin = 69,
-+ .lower_margin = 20,
-+
-+ .pcr = PCR_TFT | PCR_COLOR | PCR_PBSIZ_8 | PCR_BPIX_16 | PCR_FLMPOL | PCR_LPPOL |
-+ PCR_SCLKIDLE | PCR_SCLK_SEL | PCR_PCD(7),
+ .pwmr = 0x00000150, /* Contrast with PWM @ Line Pulse / 256, medium width by default */
+ .dmacr = DEFAULT_DMA_SETTINGS,
+ .backlight_power= apf_lcd_backlight_power,
+ .lcd_power = apf_lcd_power,
+#elif CONFIG_FB_IMX_SHARP_LQ057_TFT
-+ .pixclock = 158730, /* picoS -> ~6.3MHz */
-+ .bpp = 16,
-+ .xres = 320,
-+ .yres = 240,
-+
-+ .hsync_len = 9,
-+ .vsync_len = 2,
-+ .left_margin = 9,
-+ .upper_margin = 0,
-+ .right_margin = 27,
-+ .lower_margin = 7,
-+
-+ .pcr = PCR_TFT | PCR_COLOR | PCR_PBSIZ_8 | PCR_BPIX_16 | /*PCR_CLKPOL |*/
-+ PCR_SCLKIDLE | PCR_SCLK_SEL | PCR_PCD(9),
+ .pwmr = 0, /* No contrast management */
+ .dmacr = DEFAULT_DMA_SETTINGS,
+ .lcd_power = apf_lcd_power,
+#elif CONFIG_FB_IMX_OPTREX_F51900_CSTN
-+ .pixclock = 62500,
-+ .bpp = 8,
-+ .xres = 320,
-+ .yres = 240,
-+
-+ .hsync_len = 2,
-+ .vsync_len = 2,
-+ .left_margin = 2,
-+ .upper_margin = 2,
-+ .right_margin = 2,
-+ .lower_margin = 2,
-+
-+ .pcr = PCR_COLOR | PCR_PBSIZ_8 | PCR_BPIX_8 | PCR_ACD(5) |
-+ PCR_END_BYTE_SWAP | PCR_PCD(3),
+ .dmacr = DEFAULT_DMA_SETTINGS,
+ .pwmr = 0, /* No contrast management */
+ .lcd_power = apf_lcd_power,
+#elif CONFIG_FB_IMX_MOTOROLA_A910_TFT
-+ .pixclock = 158730, /* picoS -> ~6.3MHz */
-+ .bpp = 16,
-+ .xres = 240,
-+ .yres = 320,
-+
-+ .hsync_len = 9,
-+ .vsync_len = 2,
-+ .left_margin = 9,
-+ .upper_margin = 2,
-+ .right_margin = 27,
-+ .lower_margin = 4,
-+
-+ .pcr = PCR_TFT | PCR_COLOR | PCR_PBSIZ_8 | PCR_BPIX_16 | PCR_CLKPOL |
-+ PCR_SCLKIDLE | PCR_SCLK_SEL | PCR_PCD(9),
+ .dmacr = DEFAULT_DMA_SETTINGS,
+ .pwmr = 0, /* No contrast management */
+ .lcd_power = apf_lcd_power,
@@ -856,7 +836,32 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328_lcd_config.h
+ .exit = apf27_fb_exit,
+#endif
+};
++static struct resource imxfb_resources[] = {
++ [0] = {
++ .start = MX1_LCDC_BASE_ADDR,
++ .end = MX1_LCDC_BASE_ADDR +0xFF,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = MX1_LCDC_INT,
++ .end = MX1_LCDC_INT,
++ .flags = IORESOURCE_IRQ,
++ },
++};
+
++static u64 fb_dma_mask = ~(u64)0;
++
++static struct platform_device imxfb_device = {
++ .name = "imx-fb",
++ .id = 0,
++ .dev = {
++ //.platform_data = &apf9328_fb_info,
++ .dma_mask = &fb_dma_mask,
++ .coherent_dma_mask = 0xffffffff,
++ },
++ .num_resources = ARRAY_SIZE(imxfb_resources),
++ .resource = imxfb_resources,
++};
+/*
+ * Configure all GPIOs needed by LCDs
+ */
@@ -865,85 +870,86 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328_lcd_config.h
+{
+ struct imx_fb_platform_data *fb_inf = &apf9328_fb_info;
+ int width;
-+
++ printk("apf9328_fb_init\n");
+ pr_debug("%s\n", __func__);
+
+#ifdef CONFIG_FB_IMX_OPTREX_F51900_CSTN
+ gpio_set_value(OPTREX_F51900_POWER_DOWN, 1); /* Initializes it High */
-+ imx_gpio_mode(OPTREX_F51900_POWER_DOWN | GPIO_OUT | GPIO_DR);
++ mxc_gpio_mode(OPTREX_F51900_POWER_DOWN | GPIO_OUT | GPIO_DR);
+#endif
+#ifdef CONFIG_FB_IMX_SHARP_LQ043_TFT
+ /* ACD_OE (SHARP_LQ043_POWER_DOWN) used as power down signal */
+ gpio_set_value(SHARP_LQ043_POWER_DOWN, 0); /* Initializes it Low */
-+ imx_gpio_mode(SHARP_LQ043_POWER_DOWN | GPIO_OUT | GPIO_GIUS | GPIO_DR);
++ mxc_gpio_mode(SHARP_LQ043_POWER_DOWN | GPIO_OUT | GPIO_GPIO);//1<<16 | 3<<10);
+#else
+ /* otherwise use ACD_OE as standard LCD controller signal */
-+ imx_gpio_mode(PD12_PF_ACD_OE);
++ mxc_gpio_mode(PD12_PF_ACD_OE);
+#endif
+
-+ if (fb_inf->pcr & PCR_TFT)
++ if (fb_inf->mode->pcr & PCR_TFT)
+ width = 16;
+ else
-+ width = 1 << ((fb_inf->pcr >> 28) & 0x3);
++ width = 1 << ((fb_inf->mode->pcr >> 28) & 0x3);
+
+ switch (width) {
+ case 16:
-+ imx_gpio_mode(PD30_PF_LD15);
-+ imx_gpio_mode(PD29_PF_LD14);
-+ imx_gpio_mode(PD28_PF_LD13);
-+ imx_gpio_mode(PD27_PF_LD12);
-+ imx_gpio_mode(PD26_PF_LD11);
-+ imx_gpio_mode(PD25_PF_LD10);
-+ imx_gpio_mode(PD24_PF_LD9);
-+ imx_gpio_mode(PD23_PF_LD8);
++ mxc_gpio_mode(PD30_PF_LD15);
++ mxc_gpio_mode(PD29_PF_LD14);
++ mxc_gpio_mode(PD28_PF_LD13);
++ mxc_gpio_mode(PD27_PF_LD12);
++ mxc_gpio_mode(PD26_PF_LD11);
++ mxc_gpio_mode(PD25_PF_LD10);
++ mxc_gpio_mode(PD24_PF_LD9);
++ mxc_gpio_mode(PD23_PF_LD8);
+ case 8:
-+ imx_gpio_mode(PD22_PF_LD7);
-+ imx_gpio_mode(PD21_PF_LD6);
-+ imx_gpio_mode(PD20_PF_LD5);
-+ imx_gpio_mode(PD19_PF_LD4);
++ mxc_gpio_mode(PD22_PF_LD7);
++ mxc_gpio_mode(PD21_PF_LD6);
++ mxc_gpio_mode(PD20_PF_LD5);
++ mxc_gpio_mode(PD19_PF_LD4);
+ case 4:
-+ imx_gpio_mode(PD18_PF_LD3);
-+ imx_gpio_mode(PD17_PF_LD2);
++ mxc_gpio_mode(PD18_PF_LD3);
++ mxc_gpio_mode(PD17_PF_LD2);
+ case 2:
-+ imx_gpio_mode(PD16_PF_LD1);
++ mxc_gpio_mode(PD16_PF_LD1);
+ case 1:
-+ imx_gpio_mode(PD15_PF_LD0);
++ mxc_gpio_mode(PD15_PF_LD0);
+ }
+
-+ imx_gpio_mode(PD6_PF_LSCLK);
-+ imx_gpio_mode(PD14_PF_FLM_VSYNC);
-+ imx_gpio_mode(PD13_PF_LP_HSYNC);
++ mxc_gpio_mode(PD6_PF_LSCLK);
++ mxc_gpio_mode(PD14_PF_FLM_VSYNC);
++ mxc_gpio_mode(PD13_PF_LP_HSYNC);
+
+ /* Sharp's HR TFT displays specific */
-+ if (fb_inf->pcr & PCR_SHARP) {
-+ imx_gpio_mode(PD7_PF_REV);
-+ imx_gpio_mode(PD8_PF_CLS);
-+ imx_gpio_mode(PD9_PF_PS);
-+ imx_gpio_mode(PD10_PF_SPL_SPR);
++ if (fb_inf->mode->pcr & PCR_SHARP) {
++ mxc_gpio_mode(PD7_PF_REV);
++ mxc_gpio_mode(PD8_PF_CLS);
++ mxc_gpio_mode(PD9_PF_PS);
++ mxc_gpio_mode(PD10_PF_SPL_SPR);
+ }
+
-+ gpio_set_value(CONTRAST_LINE, 0); /* Initializes it Low */
+ /* GPIO Function for CONTRAST pin */
-+ imx_gpio_mode(CONTRAST_LINE | GPIO_OUT | GPIO_GIUS | GPIO_DR);
++ gpio_set_value(CONTRAST_LINE, 0); /* Initializes it Low */
++ mxc_gpio_mode(CONTRAST_LINE | GPIO_OUT /*| GPIO_GPIO*/ | 1<<16 | 3<<10);
+
+ return 0;
+}
+
-+static int apf9328_fb_exit(struct platform_device *pdev)
++static void apf9328_fb_exit(struct platform_device *pdev)
+{
+ /* TO BE DONE */
-+ return 0;
++}
++static void apf9328_init_lcd(void)
++{
++ mxc_register_device(&imxfb_device, &apf9328_fb_info);
+}
+#endif /* CONFIG_MACH_APF9328 */
+
+#endif /* CONFIG_FB_IMX */
+
+#endif /* APF_LCD_CONFIG_H */
-Index: linux-2.6.29.6/arch/arm/mach-imx/include/mach/apf9328.h
-===================================================================
---- /dev/null
-+++ linux-2.6.29.6/arch/arm/mach-imx/include/mach/apf9328.h
-@@ -0,0 +1,68 @@
+--- /dev/null 2010-11-28 19:42:11.148000001 +0100
++++ b/arch/arm/plat-mxc/include/mach/board-apf9328.h 2010-12-19 11:20:34.000000000 +0100
+@@ -0,0 +1,71 @@
+/*
+ * linux/include/asm-arm/arch-imx/apf9328.h
+ *
@@ -973,12 +979,15 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/include/mach/apf9328.h
+/* ------------------------------------------------------------------------ */
+
+/* Ethernet */
++#define IMX_CS4_VIRT 0xed000000
++#define IMX_CS0_VIRT 0xe8000000
++#define IMX_CS1_VIRT 0xea000000
+#define APF9328_ETH_VIRT ( IMX_CS4_VIRT + 0x00C00000 )
-+#define APF9328_ETH_PHYS ( IMX_CS4_PHYS + 0x00C00000 )
++#define APF9328_ETH_PHYS ( MX1_CS4_PHYS + 0x00C00000 )
+#define APF9328_ETH_IRQ ( IRQ_GPIOB(14) )
+
+/* FLASH */
-+#define APF9328_FLASH_PHYS IMX_CS0_PHYS
++#define APF9328_FLASH_PHYS MX1_CS0_PHYS
+#ifdef CONFIG_IMX_APF9328_FLASH_8MB
+# define APF9328_FLASH_SIZE 0x00800000
+#endif
@@ -993,7 +1002,7 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/include/mach/apf9328.h
+#define ARMADEUS_FPGA_IRQ ( APF9328_FPGA_IRQ )
+
+#define APF9328_FPGA_VIRT ( IMX_CS1_VIRT )
-+#define APF9328_FPGA_PHYS ( IMX_CS1_PHYS )
++#define APF9328_FPGA_PHYS ( MX1_CS1_PHYS )
+#define APF9328_FPGA_IRQ ( IRQ_GPIOA(1) )
+
+#define CLK32 32768
@@ -1012,11 +1021,9 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/include/mach/apf9328.h
+#endif
+
+#endif /* __ASM_ARCH_APF9328_H */
-Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328-dev.c
-===================================================================
---- /dev/null
-+++ linux-2.6.29.6/arch/arm/mach-imx/apf9328-dev.c
-@@ -0,0 +1,338 @@
+--- /dev/null 2010-11-28 19:42:11.148000001 +0100
++++ b/arch/arm/mach-imx/apf9328-dev.c 2010-12-19 11:34:40.000000000 +0100
+@@ -0,0 +1,326 @@
+/*
+ * linux/arch/arm/mach-imx/apf9328-dev.c
+ * Declares hardware present on APF9328_DevLight or DevFull boards
@@ -1045,8 +1052,10 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328-dev.c
+#include <linux/interrupt.h>
+#include <linux/spi/spi.h>
+#include <linux/spi/spidev.h>
++#include <mach/common.h>
++#include <mach/gpio.h>
+#include <linux/spi/tsc2102.h>
-+#include "../../../drivers/net/can/mcp251x.h"
++#include <linux/can/platform/mcp251x.h>
+
+#include <asm/system.h>
+#include <mach/hardware.h>
@@ -1060,14 +1069,18 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328-dev.c
+#include <mach/imx-uart.h>
+#include <mach/mmc.h>
+#include <mach/usb.h>
-+#include <mach/spi_imx.h>
-+#include <mach/imx-regs.h> /* imx_gpio_mode() */
++#include <mach/spi.h>
++#include <mach/mx1.h> /* mxc_gpio_mode() */
+#include <mach/gpio.h>
-+#include <mach/imx-alsa.h>
-+#include <linux/usb/isp116x.h>
-+#include <mach/imx_ssi.h>
-+
-+#include "generic.h"
++//#include <mach/imx-alsa.h>
++//#include <linux/usb/isp116x.h>
++#include <linux/usb/isp1760.h>
++#include <mach/ssi.h>
++#include <mach/iomux-mx1.h>
++#include <mach/iomux-v1.h>
++#include "devices.h"
++#include <mach/imxfb.h>
++//#include "generic.h"
+
+
+#ifdef CONFIG_SPI_TSC2102_MODULE
@@ -1082,14 +1095,16 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328-dev.c
+#ifdef CONFIG_SPI_SPIDEV_MODULE
+#define CONFIG_SPI_SPIDEV 1
+#endif
-+
++#ifdef CONFIG_MMC_IMX_MODULE
++#define CONFIG_MMC_IMX 1
++#endif
+
+
+/*
+ * APF9328_DevFull board has an ISP1761 USB Host controller
+ */
+#ifdef CONFIG_ARMADEUS_ISP1761
-+#define ISP1761_BASE IMX_CS3_PHYS
++#define ISP1761_BASE MX1_CS3_PHYS
+#define ISP1761_GPIO_IRQ (GPIO_PORTC | 10)
+#define ISP1761_IRQ (IRQ_GPIOC(10))
+
@@ -1123,41 +1138,25 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328-dev.c
+#ifdef CONFIG_SPI_TSC2102
+#define TSC2102_CS_GPIOB 17
+#define TSC2102_INT_GPIOD 8
-+
++#define SPI2_RXD_SEL (1<<8)
++#define FMCR MX1_IO_ADDRESS(MX1_SCM_BASE_ADDR)+4
+static int tsc2102_init_gpio(void)
+{
+ /* Activate SPI2 port ---- */
-+ /* PortB 17 is used as chip select (in GPIO mode) */
-+ DR(1) |= 1 << TSC2102_CS_GPIOB; /* Initializes it High */
-+ imx_gpio_mode(GPIO_PORTB | TSC2102_CS_GPIOB | GPIO_OUT | GPIO_GIUS | GPIO_DR);
+ /* Configure SPI2 outputs */
-+ imx_gpio_mode(PD7_AIN_SPI2_SCLK);
-+ imx_gpio_mode(PD10_AIN_SPI2_TXD);
-+ imx_gpio_mode(PD9_AOUT_SPI2_RXD);
-+ FMCR |= SPI2_RXD_SEL; /* RX is AOUT on PORTD */
++ mxc_gpio_mode(PD7_AIN_SPI2_SCLK);
++ mxc_gpio_mode(PD10_AIN_SPI2_TXD);
++ mxc_gpio_mode(PD9_AOUT_SPI2_RXD);
++ __raw_writel(__raw_readl(FMCR)|SPI2_RXD_SEL,FMCR);
+
+ /* PortD 8 is used as PINTDAV interrupt */
++ mxc_gpio_mode(GPIO_PORTD | TSC2102_INT_GPIOD | GPIO_IN | GPIO_GPIO);
+ set_irq_type(IRQ_GPIOD(TSC2102_INT_GPIOD), IRQF_TRIGGER_FALLING);
-+ imx_gpio_mode(GPIO_PORTD | TSC2102_INT_GPIOD | GPIO_IN | GPIO_GIUS);
+
+ printk("TSC2102 GPIOs initialized\n");
+ return 0;
+}
+
-+/* Chip select command for TSC2102 */
-+static void tsc2102_cs(u32 command)
-+{
-+ /* PortB 19 is used as chip select */
-+ if (command == SPI_CS_DEASSERT)
-+ DR(1) |= 1<< TSC2102_CS_GPIOB;
-+ else
-+ DR(1) &= ~(1<< TSC2102_CS_GPIOB);
-+}
-+
-+static struct spi_imx_chip tsc2102_hw = {
-+ .cs_control = tsc2102_cs,
-+};
-+
+static struct tsc210x_config apf9328_tsc2102_config = {
+ .use_internal = 1, /* -> use internal voltage reference */
+ .monitor = TSC_BAT1 | TSC_AUX | TSC_TEMP,
@@ -1190,6 +1189,7 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328-dev.c
+#define CAN_MPC251X_INT_GPIOC 13
+
+/* Chip select command for MCP251X */
++#if 0
+static void mcp251X_cs(u32 command)
+{
+ /* PortB 19 is used as chip select */
@@ -1202,28 +1202,30 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328-dev.c
+static struct spi_imx_chip mcp251X_hw = {
+ .cs_control = mcp251X_cs,
+};
-+
++#endif
+static void mcp251X_init_gpio(void)
+{
++#if 0
+ /* PortB 19 is used as chip select (in GPIO mode) */
+ DR(1) |= 1 << CAN_MPC251X_CS_GPIOB; /* Initializes it High */
-+ imx_gpio_mode(GPIO_PORTB | CAN_MPC251X_CS_GPIOB | GPIO_OUT | GPIO_GIUS | GPIO_DR);
++ mxc_gpio_mode(GPIO_PORTB | CAN_MPC251X_CS_GPIOB | GPIO_OUT | GPIO_GIUS | GPIO_DR);
+
+ /* PortC 13 is used as CAN interrupt */
+ set_irq_type(IRQ_GPIOC(CAN_MPC251X_INT_GPIOC), IRQF_TRIGGER_FALLING);
-+ imx_gpio_mode(GPIO_PORTC | CAN_MPC251X_INT_GPIOC | GPIO_IN | GPIO_GIUS);
++ mxc_gpio_mode(GPIO_PORTC | CAN_MPC251X_INT_GPIOC | GPIO_IN | GPIO_GIUS);
+
+ /* Configure SPI2 outputs */
-+ imx_gpio_mode(PD7_AIN_SPI2_SCLK);
-+ imx_gpio_mode(PD10_AIN_SPI2_TXD);
-+ imx_gpio_mode(PD9_AOUT_SPI2_RXD);
++ mxc_gpio_mode(PD7_AIN_SPI2_SCLK);
++ mxc_gpio_mode(PD10_AIN_SPI2_TXD);
++ mxc_gpio_mode(PD9_AOUT_SPI2_RXD);
+ FMCR |= SPI2_RXD_SEL; /* RX is AOUT on PORTD */
++#endif
+}
-+
+static struct mcp251x_platform_data apf9328_mcp251x_config = {
+ .oscillator_frequency = 16000000,
++ .model = CAN_MCP251X_MCP2515,
+ .board_specific_setup = NULL,
-+ .device_reset = NULL,
++ //.device_reset = NULL,
+ .transceiver_enable = NULL,
+};
+
@@ -1233,36 +1235,11 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328-dev.c
+ * APF9328 CONFIG SPIDEV
+ */
+#ifdef CONFIG_SPI_SPIDEV
-+#define SPIDEV_CS_GPIOB 18
-+
+static int spidev_init_gpio(void)
+{
-+ /* SPI1 GPIOs */
-+ imx_gpio_mode(PC14_PF_SPI1_SCLK);
-+ imx_gpio_mode(PC16_PF_SPI1_MISO);
-+ imx_gpio_mode(PC17_PF_SPI1_MOSI);
-+
-+ /* PortB 18 is used as chip select (in GPIO mode) */
-+ DR(1) |= 1 << SPIDEV_CS_GPIOB; /* Initializes it High */
-+ imx_gpio_mode(GPIO_PORTB | SPIDEV_CS_GPIOB | GPIO_OUT | GPIO_GIUS | GPIO_DR);
-+
+ return 0;
+}
+
-+/* Chip select command for spidev */
-+static void spidev_cs(u32 command)
-+{
-+ /* PortB 18 is used as chip select */
-+ if (command == SPI_CS_DEASSERT)
-+ DR(1) |= 1<< SPIDEV_CS_GPIOB;
-+ else
-+ DR(1) &= ~(1<< SPIDEV_CS_GPIOB);
-+}
-+
-+static struct spi_imx_chip spidev_hw = {
-+ .cs_control = spidev_cs,
-+};
-+
+static struct spidev_platform_data apf9328_spidev_config = {
+ .init = spidev_init_gpio,
+};
@@ -1274,9 +1251,9 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328-dev.c
+#ifdef CONFIG_SPI_TSC2102
+{
+ .modalias = "tsc210x",
-+ .controller_data= &tsc2102_hw,
++// .controller_data= &tsc2102_hw,
+ .max_speed_hz = 8000000,
-+ .bus_num = 2, /* SPI2 */
++ .bus_num = 1, /* SPI2 */
+ .irq = IRQ_GPIOD(TSC2102_INT_GPIOD),
+ .chip_select = 0,
+ .mode = 0,
@@ -1287,8 +1264,8 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328-dev.c
+{
+ .modalias = "mcp251x",
+ .max_speed_hz = 8000000, /* 8MHz */
-+ .controller_data= &mcp251X_hw,
-+ .bus_num = 2,
++ //.controller_data= &mcp251X_hw,
++ .bus_num = 1,
+ .mode = SPI_MODE_0,
+ .chip_select = 1,
+ .irq = IRQ_GPIOC( CAN_MPC251X_INT_GPIOC ),
@@ -1298,9 +1275,8 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328-dev.c
+#ifdef CONFIG_SPI_SPIDEV
+{
+ .modalias = "spidev",
-+ .controller_data = &spidev_hw,
+ .max_speed_hz = 8000000, /* 8MHz */
-+ .bus_num = 1, /* SPI1 */
++ .bus_num = 0, /* SPI1 */
+ .mode = SPI_MODE_0,
+ .chip_select = 1,
+ .platform_data = &apf9328_spidev_config,
@@ -1308,6 +1284,18 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328-dev.c
+#endif /* CONFIG_SPI_SPIDEV */
+};
+
++#ifdef CONFIG_I2C
++static struct i2c_board_info apf9328_i2c_devices_bus0[] = {
++ [0] = {
++ .type = "ds1374",
++ .flags = 0, /* FIXME */
++ .addr = 0x68,
++ .platform_data = NULL,
++ .irq = 0,
++ },
++};
++#endif
++
+/*
+ * You may connect several types of LCD on these boards
+ */
@@ -1316,7 +1304,6 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328-dev.c
+#include "apf9328_lcd_config.h"
+#endif
+
-+
+static struct platform_device *devices[] __initdata = {
+#if defined(CONFIG_SND_IMX_TSC2102) || defined(CONFIG_SND_IMX_TSC2102_MODULE)
+ &tsc2102_alsa_device,
@@ -1324,31 +1311,39 @@ Index: linux-2.6.29.6/arch/arm/mach-imx/apf9328-dev.c
+#ifdef CONFIG_ARMADEUS_ISP1761
+ &devfull_isp1761_device,
+#endif
++#ifdef CONFIG_MMC_IMX
++ &imx_mmc_device,
++#endif
+};
+
+void __init apf9328_baseboard_init(void)
+{
+ printk(" Registering APF9328_Dev ressources:");
-+
+ /* Initializes serial port 2 GPIOs */
-+ imx_gpio_mode(PB30_PF_UART2_TXD);
-+ imx_gpio_mode(PB31_PF_UART2_RXD);
-+ imx_gpio_mode(PB28_PF_UART2_CTS);
-+ imx_gpio_mode(PB29_PF_UART2_RTS);
++ mxc_gpio_mode(PB30_PF_UART2_TXD);
++ mxc_gpio_mode(PB31_PF_UART2_RXD);
++ mxc_gpio_mode(PB28_PF_UART2_CTS);
++ mxc_gpio_mode(PB29_PF_UART2_RTS);
+
+#ifdef CONFIG_FB_IMX
-+ set_imx_fb_info(&apf9328_fb_info);
++ apf9328_init_lcd();
+#endif
+#ifdef CONFIG_CAN_MCP251X
+ mcp251X_init_gpio();
+#endif
++#ifdef CONFIG_I2C
++ i2c_register_board_info(0,apf9328_i2c_devices_bus0,
++ ARRAY_SIZE(apf9328_i2c_devices_bus0));
++#endif
+#ifdef CONFIG_ARMADEUS_ISP1761
++ mxc_gpio_mode(ISP1761_GPIO_IRQ | GPIO_IN | GPIO_GPIO);
+ set_irq_type(ISP1761_IRQ, IRQF_TRIGGER_FALLING);
-+ imx_gpio_mode(ISP1761_GPIO_IRQ | GPIO_IN | GPIO_GIUS);
+#endif
+ platform_add_devices(devices, ARRAY_SIZE(devices));
+
+#if defined (CONFIG_SPI_TSC2102) || defined (CONFIG_CAN_MCP251X) || defined(CONFIG_SPI_SPIDEV)
++ mxc_gpio_mode(GPIO_PORTB | 19 | GPIO_GPIO | GPIO_OUT);
++ mxc_gpio_mode(GPIO_PORTB | 17 | GPIO_GPIO | GPIO_OUT);
+ spi_register_board_info(spi_dev_board_info, ARRAY_SIZE(spi_dev_board_info));
+#endif
+
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2010-12-22 17:43:22
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 48b5a8bb52b7eef44cf8d5b12cf7310686da85a6 (commit)
via 83be7b510ef8c0a51a170d0ec7adb0baadff895c (commit)
via 6aa56844feea0e4186655dc92dd0533972bf5fe6 (commit)
from ec17fb6ec59b1f27493a5ad9a176d4dabffe2030 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 48b5a8bb52b7eef44cf8d5b12cf7310686da85a6
Merge: 83be7b510ef8c0a51a170d0ec7adb0baadff895c ec17fb6ec59b1f27493a5ad9a176d4dabffe2030
Author: Julien Boibessot <jul...@ar...>
Date: Wed Dec 22 18:41:10 2010 +0100
Merge branch 'master' of ssh://artemys@armadeus.git.sourceforge.net/gitroot/armadeus/armadeus
commit 83be7b510ef8c0a51a170d0ec7adb0baadff895c
Author: Julien Boibessot <jul...@ar...>
Date: Wed Dec 22 18:40:10 2010 +0100
[LINUX] [2.6.36] Convert patches 290, 291 & 319 from 2.6.29
commit 6aa56844feea0e4186655dc92dd0533972bf5fe6
Author: Julien Boibessot <jul...@ar...>
Date: Wed Dec 22 14:54:18 2010 +0100
[LINUX] [2.6.36): refresh patches 074 & 282
-----------------------------------------------------------------------
Summary of changes:
...chscreen-add_driver_to_linux_build_system.patch | 12 ++++----
...-apf27-armadeus-add_apf27_to_build_system.patch | 12 ++++----
...omux-add_correct_directions_to_SPI2_gpios.patch | 25 ++++++++++++++++
...291-apf27-armadeus-add_mach_board-apf27_h.patch | 16 +++++-----
...deus-soc_camera_add_ov96xx_sensors_driver.patch | 30 ++++++++++----------
5 files changed, 60 insertions(+), 35 deletions(-)
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/290-armadeus-mx2-iomux-add_correct_directions_to_SPI2_gpios.patch
copy buildroot/target/device/armadeus/linux/kernel-patches/{2.6.29 => 2.6.36}/291-apf27-armadeus-add_mach_board-apf27_h.patch (81%)
copy buildroot/target/device/armadeus/linux/kernel-patches/{2.6.29 => 2.6.36}/319-armadeus-soc_camera_add_ov96xx_sensors_driver.patch (98%)
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/074-armadeus-tsc2102-touchscreen-add_driver_to_linux_build_system.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/074-armadeus-tsc2102-touchscreen-add_driver_to_linux_build_system.patch
index 008194f..3c5c787 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/074-armadeus-tsc2102-touchscreen-add_driver_to_linux_build_system.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/074-armadeus-tsc2102-touchscreen-add_driver_to_linux_build_system.patch
@@ -1,8 +1,8 @@
Index: linux-2.6.36/drivers/input/touchscreen/Kconfig
===================================================================
---- a/drivers/input/touchscreen/Kconfig 2009-03-24 00:12:14.000000000 +0100
-+++ b/drivers/input/touchscreen/Kconfig 2009-03-30 11:14:08.000000000 +0200
-@@ -242,6 +242,20 @@
+--- linux-2.6.36.orig/drivers/input/touchscreen/Kconfig 2010-12-22 14:32:51.000000000 +0100
++++ linux-2.6.36/drivers/input/touchscreen/Kconfig 2010-12-22 14:33:05.000000000 +0100
+@@ -364,6 +364,20 @@
To compile this driver as a module, choose M here: the
module will be called atmel_tsadcc.
@@ -25,9 +25,9 @@ Index: linux-2.6.36/drivers/input/touchscreen/Kconfig
depends on AC97_BUS
Index: linux-2.6.36/drivers/input/touchscreen/Makefile
===================================================================
---- a/drivers/input/touchscreen/Makefile 2009-03-24 00:12:14.000000000 +0100
-+++ b/drivers/input/touchscreen/Makefile 2009-03-30 11:15:35.000000000 +0200
-@@ -25,6 +25,7 @@
+--- linux-2.6.36.orig/drivers/input/touchscreen/Makefile 2010-12-22 14:32:51.000000000 +0100
++++ linux-2.6.36/drivers/input/touchscreen/Makefile 2010-12-22 14:33:05.000000000 +0100
+@@ -40,6 +40,7 @@
obj-$(CONFIG_TOUCHSCREEN_TOUCHIT213) += touchit213.o
obj-$(CONFIG_TOUCHSCREEN_TOUCHRIGHT) += touchright.o
obj-$(CONFIG_TOUCHSCREEN_TOUCHWIN) += touchwin.o
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/282-apf27-armadeus-add_apf27_to_build_system.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/282-apf27-armadeus-add_apf27_to_build_system.patch
index 82ef489..5aeebdd 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/282-apf27-armadeus-add_apf27_to_build_system.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/282-apf27-armadeus-add_apf27_to_build_system.patch
@@ -1,8 +1,8 @@
Index: linux-2.6.36/arch/arm/mach-imx/Kconfig
===================================================================
---- linux-2.6.36.orig/arch/arm/mach-imx/Kconfig 2010-10-20 22:30:22.000000000 +0200
-+++ linux-2.6.36/arch/arm/mach-imx/Kconfig 2010-11-25 15:52:28.000000000 +0100
-@@ -191,4 +191,115 @@
+--- linux-2.6.36.orig/arch/arm/mach-imx/Kconfig 2010-12-22 14:33:04.000000000 +0100
++++ linux-2.6.36/arch/arm/mach-imx/Kconfig 2010-12-22 14:33:05.000000000 +0100
+@@ -241,4 +241,115 @@
Include support for i-MXT (aka td60) platform. This
includes specific configurations for the module and its peripherals.
@@ -120,9 +120,9 @@ Index: linux-2.6.36/arch/arm/mach-imx/Kconfig
endif
Index: linux-2.6.36/arch/arm/mach-imx/Makefile
===================================================================
---- linux-2.6.36.orig/arch/arm/mach-imx/Makefile 2010-10-20 22:30:22.000000000 +0200
-+++ linux-2.6.36/arch/arm/mach-imx/Makefile 2010-11-25 15:29:44.000000000 +0100
-@@ -31,3 +31,7 @@
+--- linux-2.6.36.orig/arch/arm/mach-imx/Makefile 2010-12-22 14:33:04.000000000 +0100
++++ linux-2.6.36/arch/arm/mach-imx/Makefile 2010-12-22 14:33:05.000000000 +0100
+@@ -33,3 +33,7 @@
obj-$(CONFIG_MACH_EUKREA_MBIMX27_BASEBOARD) += eukrea_mbimx27-baseboard.o
obj-$(CONFIG_MACH_PCA100) += mach-pca100.o
obj-$(CONFIG_MACH_MXT_TD60) += mach-mxt_td60.o
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/290-armadeus-mx2-iomux-add_correct_directions_to_SPI2_gpios.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/290-armadeus-mx2-iomux-add_correct_directions_to_SPI2_gpios.patch
new file mode 100644
index 0000000..24f047e
--- /dev/null
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/290-armadeus-mx2-iomux-add_correct_directions_to_SPI2_gpios.patch
@@ -0,0 +1,25 @@
+Signed-off-by: Julien Boibessot <jul...@ar...>
+
+Index: linux-2.6.36/arch/arm/plat-mxc/include/mach/iomux-mx2x.h
+===================================================================
+--- linux-2.6.36.orig/arch/arm/plat-mxc/include/mach/iomux-mx2x.h 2010-12-22 09:12:47.000000000 +0100
++++ linux-2.6.36/arch/arm/plat-mxc/include/mach/iomux-mx2x.h 2010-12-22 09:16:41.000000000 +0100
+@@ -90,12 +90,12 @@
+ #define PC31_PF_SSI3_CLK (GPIO_PORTC | GPIO_PF | GPIO_IN | 31)
+ #define PD17_PF_I2C_DATA (GPIO_PORTD | GPIO_PF | GPIO_OUT | 17)
+ #define PD18_PF_I2C_CLK (GPIO_PORTD | GPIO_PF | GPIO_OUT | 18)
+-#define PD19_PF_CSPI2_SS2 (GPIO_PORTD | GPIO_PF | 19)
+-#define PD20_PF_CSPI2_SS1 (GPIO_PORTD | GPIO_PF | 20)
+-#define PD21_PF_CSPI2_SS0 (GPIO_PORTD | GPIO_PF | 21)
+-#define PD22_PF_CSPI2_SCLK (GPIO_PORTD | GPIO_PF | 22)
+-#define PD23_PF_CSPI2_MISO (GPIO_PORTD | GPIO_PF | 23)
+-#define PD24_PF_CSPI2_MOSI (GPIO_PORTD | GPIO_PF | 24)
++#define PD19_PF_CSPI2_SS2 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 19)
++#define PD20_PF_CSPI2_SS1 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 20)
++#define PD21_PF_CSPI2_SS0 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 21)
++#define PD22_PF_CSPI2_SCLK (GPIO_PORTD | GPIO_PF | GPIO_OUT | 22)
++#define PD23_PF_CSPI2_MISO (GPIO_PORTD | GPIO_PF | GPIO_IN | 23)
++#define PD24_PF_CSPI2_MOSI (GPIO_PORTD | GPIO_PF | GPIO_OUT | 24)
+ #define PD25_PF_CSPI1_RDY (GPIO_PORTD | GPIO_PF | GPIO_OUT | 25)
+ #define PD26_PF_CSPI1_SS2 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 26)
+ #define PD27_PF_CSPI1_SS1 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 27)
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/291-apf27-armadeus-add_mach_board-apf27_h.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/291-apf27-armadeus-add_mach_board-apf27_h.patch
similarity index 81%
copy from buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/291-apf27-armadeus-add_mach_board-apf27_h.patch
copy to buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/291-apf27-armadeus-add_mach_board-apf27_h.patch
index 7ce02f9..47a72c6 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/291-apf27-armadeus-add_mach_board-apf27_h.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/291-apf27-armadeus-add_mach_board-apf27_h.patch
@@ -1,10 +1,12 @@
-Index: linux-2.6.29/arch/arm/plat-mxc/include/mach/board-apf27.h
+Signed-off-by: Julien Boibessot <jul...@ar...>
+
+Index: linux-2.6.36/arch/arm/plat-mxc/include/mach/board-apf27.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.29/arch/arm/plat-mxc/include/mach/board-apf27.h 2009-04-14 18:34:53.000000000 +0200
-@@ -0,0 +1,45 @@
++++ linux-2.6.36/arch/arm/plat-mxc/include/mach/board-apf27.h 2010-12-22 14:32:20.000000000 +0100
+@@ -0,0 +1,43 @@
+/*
-+ * Copyright (C) 2008 Armadeus Systems
++ * Copyright (C) 2008-2010 Armadeus Systems
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
@@ -24,10 +26,9 @@ Index: linux-2.6.29/arch/arm/plat-mxc/include/mach/board-apf27.h
+#ifndef __ASM_ARCH_MXC_BOARD_APF27_H__
+#define __ASM_ARCH_MXC_BOARD_APF27_H__
+
++#include <mach/iomux-mx27.h>
+
-+#include <mach/iomux-mx1-mx2.h>
-+
-+/* mandatory for CONFIG_LL_DEBUG */
++/* mandatory (?) for CONFIG_LL_DEBUG */
+#define MXC_LL_UART_PADDR UART1_BASE_ADDR
+#define MXC_LL_UART_VADDR AIPI_IO_ADDRESS(UART1_BASE_ADDR)
+
@@ -46,5 +47,4 @@ Index: linux-2.6.29/arch/arm/plat-mxc/include/mach/board-apf27.h
+#define APF27_FPGA_IRQ (IRQ_GPIOF(12))
+#define ARMADEUS_FPGA_IRQ (APF27_FPGA_IRQ)
+
-+
+#endif /* __ASM_ARCH_MXC_BOARD_APF27_H__ */
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/319-armadeus-soc_camera_add_ov96xx_sensors_driver.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/319-armadeus-soc_camera_add_ov96xx_sensors_driver.patch
similarity index 98%
copy from buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/319-armadeus-soc_camera_add_ov96xx_sensors_driver.patch
copy to buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/319-armadeus-soc_camera_add_ov96xx_sensors_driver.patch
index 30bd4c2..90c6486 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/319-armadeus-soc_camera_add_ov96xx_sensors_driver.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/319-armadeus-soc_camera_add_ov96xx_sensors_driver.patch
@@ -4,13 +4,13 @@ Based on work from Trilok Soni <son...@gm...> on ov9640 driver for OMAP
Signed-off-by: Julien boibessot <jul...@ar...>
-Index: linux-2.6.29.6/drivers/media/video/Kconfig
+Index: linux-2.6.36/drivers/media/video/Kconfig
===================================================================
---- linux-2.6.29.6.orig/drivers/media/video/Kconfig 2010-07-01 16:25:15.000000000 +0200
-+++ linux-2.6.29.6/drivers/media/video/Kconfig 2010-07-27 17:11:53.000000000 +0200
-@@ -789,6 +789,13 @@
- help
- This is a ov772x camera driver
+--- linux-2.6.36.orig/drivers/media/video/Kconfig 2010-12-21 14:37:57.000000000 +0100
++++ linux-2.6.36/drivers/media/video/Kconfig 2010-12-22 10:08:27.000000000 +0100
+@@ -880,6 +880,13 @@
+ ---help---
+ This is a v4l2 driver for the i.MX3x Camera Sensor Interface
+config SOC_CAMERA_OV96XX
+ tristate "ov96xx support"
@@ -22,22 +22,22 @@ Index: linux-2.6.29.6/drivers/media/video/Kconfig
config VIDEO_PXA27x
tristate "PXA27x Quick Capture Interface driver"
depends on VIDEO_DEV && PXA27x && SOC_CAMERA
-Index: linux-2.6.29.6/drivers/media/video/Makefile
+Index: linux-2.6.36/drivers/media/video/Makefile
===================================================================
---- linux-2.6.29.6.orig/drivers/media/video/Makefile 2010-07-01 16:25:15.000000000 +0200
-+++ linux-2.6.29.6/drivers/media/video/Makefile 2010-07-27 17:11:53.000000000 +0200
-@@ -145,6 +145,7 @@
- obj-$(CONFIG_SOC_CAMERA_MT9T031) += mt9t031.o
+--- linux-2.6.36.orig/drivers/media/video/Makefile 2010-12-21 14:37:57.000000000 +0100
++++ linux-2.6.36/drivers/media/video/Makefile 2010-12-22 10:08:27.000000000 +0100
+@@ -81,6 +81,7 @@
+ obj-$(CONFIG_SOC_CAMERA_MT9T112) += mt9t112.o
obj-$(CONFIG_SOC_CAMERA_MT9V022) += mt9v022.o
obj-$(CONFIG_SOC_CAMERA_OV772X) += ov772x.o
+obj-$(CONFIG_SOC_CAMERA_OV96XX) += ov96xx.o
- obj-$(CONFIG_SOC_CAMERA_PLATFORM) += soc_camera_platform.o
+ obj-$(CONFIG_SOC_CAMERA_OV9640) += ov9640.o
+ obj-$(CONFIG_SOC_CAMERA_RJ54N1) += rj54n1cb0c.o
obj-$(CONFIG_SOC_CAMERA_TW9910) += tw9910.o
-
-Index: linux-2.6.29.6/drivers/media/video/ov96xx.c
+Index: linux-2.6.36/drivers/media/video/ov96xx.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.29.6/drivers/media/video/ov96xx.c 2010-07-27 17:01:32.000000000 +0200
++++ linux-2.6.36/drivers/media/video/ov96xx.c 2010-12-22 10:08:27.000000000 +0100
@@ -0,0 +1,1672 @@
+/*
+ * drivers/media/video/ov96xx.c
hooks/post-receive
--
armadeus
|
|
From: jscheer <js...@us...> - 2010-12-22 09:52:47
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via ec17fb6ec59b1f27493a5ad9a176d4dabffe2030 (commit)
from b6627815e4653e31795571c789823dc09477b2d1 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit ec17fb6ec59b1f27493a5ad9a176d4dabffe2030
Author: Jeremie Scheer <jer...@ar...>
Date: Wed Dec 22 10:52:28 2010 +0100
[TEST] Fill GPL license year in PPS' test scripts.
[TEST] Put command to run PPS' S80 gpios and IPSec config file to the top of the files.
-----------------------------------------------------------------------
Summary of changes:
target/pps/configs/ipsec-tools.conf | 6 +++---
target/pps/configs/wpa_supplicant/networkConfig | 2 +-
target/pps/init/S80gpios | 5 +++--
target/pps/scripts/init_boa.sh | 2 +-
target/pps/scripts/init_wpa.sh | 2 +-
target/pps/scripts/install.sh | 2 +-
target/pps/scripts/reset_wi2wi.sh | 2 +-
target/pps/scripts/stop_wpa.sh | 2 +-
target/pps/scripts/test_bridge.sh | 2 +-
target/pps/scripts/test_ether_gadget.sh | 2 +-
target/pps/scripts/test_ether_smsc95xx.sh | 2 +-
target/pps/scripts/test_ipsec.sh | 2 +-
target/pps/scripts/test_ssh_tunnel.sh | 2 +-
target/pps/scripts/test_wifi.sh | 2 +-
target/pps/www/index.html | 2 +-
15 files changed, 19 insertions(+), 18 deletions(-)
diff --git a/target/pps/configs/ipsec-tools.conf b/target/pps/configs/ipsec-tools.conf
index 8e98d69..595b0f8 100644
--- a/target/pps/configs/ipsec-tools.conf
+++ b/target/pps/configs/ipsec-tools.conf
@@ -1,7 +1,9 @@
+#!/usr/sbin/setkey -f
+
#
# THE ARMADEUS PROJECT
#
-# Copyright (C) year The armadeus systems team [Jérémie Scheer]
+# Copyright (C) 2010 The armadeus systems team [Jérémie Scheer]
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -18,8 +20,6 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
-#!/usr/sbin/setkey -f
-
# NOTE: Do not use this file if you use racoon with racoon-tool
# utility. racoon-tool will setup SAs and SPDs automatically using
# /etc/racoon/racoon-tool.conf configuration.
diff --git a/target/pps/configs/wpa_supplicant/networkConfig b/target/pps/configs/wpa_supplicant/networkConfig
index a54ca2a..cd387a3 100644
--- a/target/pps/configs/wpa_supplicant/networkConfig
+++ b/target/pps/configs/wpa_supplicant/networkConfig
@@ -1,7 +1,7 @@
#
# THE ARMADEUS PROJECT
#
-# Copyright (C) year The armadeus systems team [Jérémie Scheer]
+# Copyright (C) 2010 The armadeus systems team [Jérémie Scheer]
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/target/pps/init/S80gpios b/target/pps/init/S80gpios
index cd16dba..db4d844 100755
--- a/target/pps/init/S80gpios
+++ b/target/pps/init/S80gpios
@@ -1,7 +1,9 @@
+#!/bin/sh
+
#
# THE ARMADEUS PROJECT
#
-# Copyright (C) year The armadeus systems team [Jérémie Scheer]
+# Copyright (C) 2010 The armadeus systems team [Jérémie Scheer]
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -18,7 +20,6 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
-#!/bin/sh
#
# Script used to configure user space usable GPIOs on PPS
#
diff --git a/target/pps/scripts/init_boa.sh b/target/pps/scripts/init_boa.sh
index 9e40a71..d102d51 100644
--- a/target/pps/scripts/init_boa.sh
+++ b/target/pps/scripts/init_boa.sh
@@ -1,7 +1,7 @@
#
# THE ARMADEUS PROJECT
#
-# Copyright (C) year The armadeus systems team [Jérémie Scheer]
+# Copyright (C) 2010 The armadeus systems team [Jérémie Scheer]
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/target/pps/scripts/init_wpa.sh b/target/pps/scripts/init_wpa.sh
index c3637f5..6a65574 100644
--- a/target/pps/scripts/init_wpa.sh
+++ b/target/pps/scripts/init_wpa.sh
@@ -1,7 +1,7 @@
#
# THE ARMADEUS PROJECT
#
-# Copyright (C) year The armadeus systems team [Jérémie Scheer]
+# Copyright (C) 2010 The armadeus systems team [Jérémie Scheer]
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/target/pps/scripts/install.sh b/target/pps/scripts/install.sh
index 6bce6a2..1b4f28a 100755
--- a/target/pps/scripts/install.sh
+++ b/target/pps/scripts/install.sh
@@ -1,7 +1,7 @@
#
# THE ARMADEUS PROJECT
#
-# Copyright (C) year The armadeus systems team [Jérémie Scheer]
+# Copyright (C) 2010 The armadeus systems team [Jérémie Scheer]
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/target/pps/scripts/reset_wi2wi.sh b/target/pps/scripts/reset_wi2wi.sh
index 08fed6f..f2bf7d8 100644
--- a/target/pps/scripts/reset_wi2wi.sh
+++ b/target/pps/scripts/reset_wi2wi.sh
@@ -1,7 +1,7 @@
#
# THE ARMADEUS PROJECT
#
-# Copyright (C) year The armadeus systems team [Jérémie Scheer]
+# Copyright (C) 2010 The armadeus systems team [Jérémie Scheer]
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/target/pps/scripts/stop_wpa.sh b/target/pps/scripts/stop_wpa.sh
index 24a406e..9ef54a0 100644
--- a/target/pps/scripts/stop_wpa.sh
+++ b/target/pps/scripts/stop_wpa.sh
@@ -1,7 +1,7 @@
#
# THE ARMADEUS PROJECT
#
-# Copyright (C) year The armadeus systems team [Jérémie Scheer]
+# Copyright (C) 2010 The armadeus systems team [Jérémie Scheer]
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/target/pps/scripts/test_bridge.sh b/target/pps/scripts/test_bridge.sh
index e5cedd3..0ba4429 100644
--- a/target/pps/scripts/test_bridge.sh
+++ b/target/pps/scripts/test_bridge.sh
@@ -1,7 +1,7 @@
#
# THE ARMADEUS PROJECT
#
-# Copyright (C) year The armadeus systems team [Jérémie Scheer]
+# Copyright (C) 2010 The armadeus systems team [Jérémie Scheer]
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/target/pps/scripts/test_ether_gadget.sh b/target/pps/scripts/test_ether_gadget.sh
index e2c3a4f..a00be05 100644
--- a/target/pps/scripts/test_ether_gadget.sh
+++ b/target/pps/scripts/test_ether_gadget.sh
@@ -1,7 +1,7 @@
#
# THE ARMADEUS PROJECT
#
-# Copyright (C) year The armadeus systems team [Jérémie Scheer]
+# Copyright (C) 2010 The armadeus systems team [Jérémie Scheer]
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/target/pps/scripts/test_ether_smsc95xx.sh b/target/pps/scripts/test_ether_smsc95xx.sh
index 8745f99..fd324bc 100644
--- a/target/pps/scripts/test_ether_smsc95xx.sh
+++ b/target/pps/scripts/test_ether_smsc95xx.sh
@@ -1,7 +1,7 @@
#
# THE ARMADEUS PROJECT
#
-# Copyright (C) year The armadeus systems team [Jérémie Scheer]
+# Copyright (C) 2010 The armadeus systems team [Jérémie Scheer]
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/target/pps/scripts/test_ipsec.sh b/target/pps/scripts/test_ipsec.sh
index 98d9aa5..bbed72d 100644
--- a/target/pps/scripts/test_ipsec.sh
+++ b/target/pps/scripts/test_ipsec.sh
@@ -1,7 +1,7 @@
#
# THE ARMADEUS PROJECT
#
-# Copyright (C) year The armadeus systems team [Jérémie Scheer]
+# Copyright (C) 2010 The armadeus systems team [Jérémie Scheer]
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/target/pps/scripts/test_ssh_tunnel.sh b/target/pps/scripts/test_ssh_tunnel.sh
index 1b9dabc..32b70bc 100644
--- a/target/pps/scripts/test_ssh_tunnel.sh
+++ b/target/pps/scripts/test_ssh_tunnel.sh
@@ -1,7 +1,7 @@
#
# THE ARMADEUS PROJECT
#
-# Copyright (C) year The armadeus systems team [Jérémie Scheer]
+# Copyright (C) 2010 The armadeus systems team [Jérémie Scheer]
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/target/pps/scripts/test_wifi.sh b/target/pps/scripts/test_wifi.sh
index 9b9c5c5..93e4324 100644
--- a/target/pps/scripts/test_wifi.sh
+++ b/target/pps/scripts/test_wifi.sh
@@ -1,7 +1,7 @@
#
# THE ARMADEUS PROJECT
#
-# Copyright (C) year The armadeus systems team [Jérémie Scheer]
+# Copyright (C) 2010 The armadeus systems team [Jérémie Scheer]
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/target/pps/www/index.html b/target/pps/www/index.html
index 65cf71c..0d4b5e8 100644
--- a/target/pps/www/index.html
+++ b/target/pps/www/index.html
@@ -1,7 +1,7 @@
<!--
THE ARMADEUS PROJECT
- Copyright (C) year The armadeus systems team [Jérémie Scheer]
+ Copyright (C) 2010 The armadeus systems team [Jérémie Scheer]
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
hooks/post-receive
--
armadeus
|
|
From: jscheer <js...@us...> - 2010-12-21 16:49:22
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via b6627815e4653e31795571c789823dc09477b2d1 (commit)
from f20c526fa0a0845f1a7c0ae2901f57dbde7fbe52 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit b6627815e4653e31795571c789823dc09477b2d1
Author: Jeremie Scheer <jer...@ar...>
Date: Tue Dec 21 17:49:00 2010 +0100
[BUILDROOT] Bump flex, IPSec and IPTables versions with patches 137, 138 and 139 to make them work together and along with Linux 2.6.29.
[TEST] Add PPS' test scripts for bridged connection, OpenSSH tunnel and IPSec.
[TEST] Add IPSec configuration file to rootfs for PPS' IPSec test script.
[BUILDROOT] Needed packages for OpenSSH, IPSec and IPTables set in PPS' Buildroot config file.
[LINUX] Needed modules and drivers for OpenSSH, IPSec and IPTables set in PPS' Linux config file.
-----------------------------------------------------------------------
Summary of changes:
buildroot/configs/pps_defconfig | 25 +++-
.../device/armadeus/pps/pps-linux-2.6.29.config | 130 ++++++++++++++++----
buildroot/target/device/armadeus/pps/pps_defconfig | 21 ++--
patches/buildroot/137-flex-bump_version.patch | 55 ++++++++
...bump_version_and_disable_security_context.patch | 26 ++++
patches/buildroot/139-iptables-bump_version.patch | 50 ++++++++
.../buildroot/2010.11/137-flex-bump_version.patch | 45 +++++++
.../2010.11/138-ipsec-tools-bump_version.patch | 21 +++
target/pps/configs/ipsec-tools.conf | 59 +++++++++
.../pps/scripts/{test_wifi.sh => test_bridge.sh} | 28 +++--
target/pps/scripts/test_ipsec.sh | 83 +++++++++++++
target/pps/scripts/test_ssh_tunnel.sh | 55 ++++++++
12 files changed, 549 insertions(+), 49 deletions(-)
create mode 100644 patches/buildroot/137-flex-bump_version.patch
create mode 100644 patches/buildroot/138-ipsec-tools-bump_version_and_disable_security_context.patch
create mode 100644 patches/buildroot/139-iptables-bump_version.patch
create mode 100644 patches/buildroot/2010.11/137-flex-bump_version.patch
create mode 100644 patches/buildroot/2010.11/138-ipsec-tools-bump_version.patch
create mode 100644 target/pps/configs/ipsec-tools.conf
copy target/pps/scripts/{test_wifi.sh => test_bridge.sh} (65%)
create mode 100644 target/pps/scripts/test_ipsec.sh
create mode 100644 target/pps/scripts/test_ssh_tunnel.sh
diff --git a/buildroot/configs/pps_defconfig b/buildroot/configs/pps_defconfig
index 8c3fd88..4c102cb 100644
--- a/buildroot/configs/pps_defconfig
+++ b/buildroot/configs/pps_defconfig
@@ -232,7 +232,7 @@ BR2_BUSYBOX_VERSION_1_16_X=y
BR2_BUSYBOX_VERSION="1.16.2"
BR2_PACKAGE_BUSYBOX_FULLINSTALL=y
BR2_PACKAGE_BUSYBOX_CONFIG="target/device/armadeus/busybox-$(BR2_BUSYBOX_VERSION).config"
-# BR2_PACKAGE_BUSYBOX_SHOW_OTHERS is not set
+BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
# BR2_PACKAGE_CUSTOMIZE is not set
#
@@ -309,13 +309,15 @@ BR2_PACKAGE_STRACE=y
# BR2_PACKAGE_CVS is not set
# BR2_PACKAGE_DISTCC is not set
# BR2_PACKAGE_FAKEROOT is not set
-# BR2_PACKAGE_FLEX is not set
+BR2_PACKAGE_FLEX=y
+BR2_PACKAGE_FLEX_LIBFL=y
#
# native toolchain needs development files in target filesystem
#
-# BR2_PACKAGE_GETTEXT is not set
-# BR2_PACKAGE_LIBINTL is not set
+BR2_PACKAGE_GETTEXT=y
+# BR2_PACKAGE_GETTEXT_STATIC is not set
+BR2_PACKAGE_LIBINTL=y
# BR2_PACKAGE_LIBGMP is not set
# BR2_PACKAGE_GPERF is not set
# BR2_PACKAGE_MAKE is not set
@@ -644,6 +646,7 @@ BR2_PACKAGE_NCURSES=y
# BR2_PACKAGE_ARGUS is not set
# BR2_PACKAGE_AVAHI is not set
# BR2_PACKAGE_AXEL is not set
+BR2_PACKAGE_BOA=y
# BR2_PACKAGE_BIND is not set
# BR2_PACKAGE_BLUEZ_LIBS is not set
@@ -651,7 +654,7 @@ BR2_PACKAGE_NCURSES=y
# bluez-utils not available (need dbus)
#
# BR2_PACKAGE_BMON is not set
-# BR2_PACKAGE_BRIDGE is not set
+BR2_PACKAGE_BRIDGE=y
# BR2_PACKAGE_CTORRENT is not set
# BR2_PACKAGE_CUPS is not set
# BR2_PACKAGE_DNSMASQ is not set
@@ -661,8 +664,16 @@ BR2_PACKAGE_ETHTOOL=y
# BR2_PACKAGE_IFPLUGD is not set
# BR2_PACKAGE_IPERF is not set
# BR2_PACKAGE_IPROUTE2 is not set
-# BR2_PACKAGE_IPSEC_TOOLS is not set
-# BR2_PACKAGE_IPTABLES is not set
+BR2_PACKAGE_IPSEC_TOOLS=y
+BR2_PACKAGE_IPSEC_TOOLS_ADMINPORT=y
+# BR2_PACKAGE_IPSEC_TOOLS_NATT is not set
+BR2_PACKAGE_IPSEC_TOOLS_FRAG=y
+BR2_PACKAGE_IPSEC_TOOLS_STATS=y
+# BR2_PACKAGE_IPSEC_TOOLS_READLINE is not set
+BR2_PACKAGE_IPSEC_SECCTX_DISABLE=y
+# BR2_PACKAGE_IPSEC_SECCTX_ENABLE is not set
+# BR2_PACKAGE_IPSEC_SECCTX_KERNEL is not set
+BR2_PACKAGE_IPTABLES=y
# BR2_PACKAGE_IW is not set
# BR2_PACKAGE_KISMET is not set
# BR2_PACKAGE_L2TP is not set
diff --git a/buildroot/target/device/armadeus/pps/pps-linux-2.6.29.config b/buildroot/target/device/armadeus/pps/pps-linux-2.6.29.config
index a2aa565..966293e 100644
--- a/buildroot/target/device/armadeus/pps/pps-linux-2.6.29.config
+++ b/buildroot/target/device/armadeus/pps/pps-linux-2.6.29.config
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.29.6
-# Thu Nov 4 14:57:42 2010
+# Wed Dec 15 14:32:09 2010
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -319,15 +319,22 @@ CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
+CONFIG_XFRM_USER=y
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_XFRM_STATISTICS is not set
-# CONFIG_NET_KEY is not set
+CONFIG_XFRM_IPCOMP=y
+CONFIG_NET_KEY=y
+# CONFIG_NET_KEY_MIGRATE is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
-# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_ASK_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE is not set
CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_MULTIPLE_TABLES is not set
+# CONFIG_IP_ROUTE_MULTIPATH is not set
+# CONFIG_IP_ROUTE_VERBOSE is not set
CONFIG_IP_PNP=y
# CONFIG_IP_PNP_DHCP is not set
# CONFIG_IP_PNP_BOOTP is not set
@@ -337,14 +344,14 @@ CONFIG_IP_PNP=y
# CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
-# CONFIG_INET_AH is not set
-# CONFIG_INET_ESP is not set
-# CONFIG_INET_IPCOMP is not set
-# CONFIG_INET_XFRM_TUNNEL is not set
+CONFIG_INET_AH=y
+CONFIG_INET_ESP=y
+CONFIG_INET_IPCOMP=y
+CONFIG_INET_XFRM_TUNNEL=y
CONFIG_INET_TUNNEL=y
-# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_BEET is not set
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+CONFIG_INET_XFRM_MODE_BEET=y
# CONFIG_INET_LRO is not set
# CONFIG_INET_DIAG is not set
# CONFIG_TCP_CONG_ADVANCED is not set
@@ -371,15 +378,89 @@ CONFIG_IPV6_NDISC_NODETYPE=y
# CONFIG_IPV6_MULTIPLE_TABLES is not set
# CONFIG_IPV6_MROUTE is not set
# CONFIG_NETWORK_SECMARK is not set
-# CONFIG_NETFILTER is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# Core Netfilter Configuration
+#
+# CONFIG_NETFILTER_NETLINK_QUEUE is not set
+# CONFIG_NETFILTER_NETLINK_LOG is not set
+# CONFIG_NF_CONNTRACK is not set
+CONFIG_NETFILTER_XTABLES=y
+# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
+# CONFIG_NETFILTER_XT_TARGET_MARK is not set
+# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
+# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
+# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
+# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
+# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
+# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
+# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
+# CONFIG_NETFILTER_XT_MATCH_ESP is not set
+# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
+# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
+# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_MAC is not set
+# CONFIG_NETFILTER_XT_MATCH_MARK is not set
+# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
+# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
+# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
+# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
+# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
+# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
+# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
+# CONFIG_NETFILTER_XT_MATCH_REALM is not set
+# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
+# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
+# CONFIG_NETFILTER_XT_MATCH_STRING is not set
+# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
+# CONFIG_NETFILTER_XT_MATCH_TIME is not set
+# CONFIG_NETFILTER_XT_MATCH_U32 is not set
+# CONFIG_IP_VS is not set
+
+#
+# IP: Netfilter Configuration
+#
+# CONFIG_NF_DEFRAG_IPV4 is not set
+# CONFIG_NF_CONNTRACK_IPV4 is not set
+# CONFIG_IP_NF_QUEUE is not set
+CONFIG_IP_NF_IPTABLES=m
+# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
+# CONFIG_IP_NF_MATCH_AH is not set
+# CONFIG_IP_NF_MATCH_ECN is not set
+# CONFIG_IP_NF_MATCH_TTL is not set
+CONFIG_IP_NF_FILTER=m
+# CONFIG_IP_NF_TARGET_REJECT is not set
+# CONFIG_IP_NF_TARGET_LOG is not set
+# CONFIG_IP_NF_TARGET_ULOG is not set
+# CONFIG_IP_NF_MANGLE is not set
+# CONFIG_IP_NF_RAW is not set
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+# CONFIG_IP_NF_ARP_MANGLE is not set
+
+#
+# IPv6: Netfilter Configuration
+#
+# CONFIG_IP6_NF_QUEUE is not set
+# CONFIG_IP6_NF_IPTABLES is not set
+# CONFIG_BRIDGE_NF_EBTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
-# CONFIG_BRIDGE is not set
+CONFIG_STP=y
+CONFIG_BRIDGE=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
+CONFIG_LLC=y
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
@@ -1154,6 +1235,7 @@ CONFIG_SND_USB=y
# CONFIG_SND_SOC is not set
# CONFIG_SOUND_PRIME is not set
# CONFIG_HID_SUPPORT is not set
+CONFIG_HID=m
CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
# CONFIG_USB_ARCH_HAS_OHCI is not set
@@ -1656,32 +1738,34 @@ CONFIG_CRYPTO=y
# CONFIG_CRYPTO_FIPS is not set
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=y
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_BLKCIPHER2=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
-# CONFIG_CRYPTO_GF128MUL is not set
-# CONFIG_CRYPTO_NULL is not set
+CONFIG_CRYPTO_GF128MUL=y
+CONFIG_CRYPTO_NULL=y
# CONFIG_CRYPTO_CRYPTD is not set
-# CONFIG_CRYPTO_AUTHENC is not set
+CONFIG_CRYPTO_AUTHENC=y
# CONFIG_CRYPTO_TEST is not set
#
# Authenticated Encryption with Associated Data
#
-# CONFIG_CRYPTO_CCM is not set
-# CONFIG_CRYPTO_GCM is not set
-# CONFIG_CRYPTO_SEQIV is not set
+CONFIG_CRYPTO_CCM=y
+CONFIG_CRYPTO_GCM=y
+CONFIG_CRYPTO_SEQIV=y
#
# Block modes
#
CONFIG_CRYPTO_CBC=y
-# CONFIG_CRYPTO_CTR is not set
+CONFIG_CRYPTO_CTR=y
# CONFIG_CRYPTO_CTS is not set
CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_LRW is not set
@@ -1691,7 +1775,7 @@ CONFIG_CRYPTO_ECB=m
#
# Hash modes
#
-# CONFIG_CRYPTO_HMAC is not set
+CONFIG_CRYPTO_HMAC=y
# CONFIG_CRYPTO_XCBC is not set
#
@@ -1705,7 +1789,7 @@ CONFIG_CRYPTO_MD5=y
# CONFIG_CRYPTO_RMD160 is not set
# CONFIG_CRYPTO_RMD256 is not set
# CONFIG_CRYPTO_RMD320 is not set
-# CONFIG_CRYPTO_SHA1 is not set
+CONFIG_CRYPTO_SHA1=y
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_TGR192 is not set
@@ -1714,7 +1798,7 @@ CONFIG_CRYPTO_MD5=y
#
# Ciphers
#
-CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_AES=y
# CONFIG_CRYPTO_ANUBIS is not set
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_BLOWFISH is not set
diff --git a/buildroot/target/device/armadeus/pps/pps_defconfig b/buildroot/target/device/armadeus/pps/pps_defconfig
index 04470d2..586df38 100644
--- a/buildroot/target/device/armadeus/pps/pps_defconfig
+++ b/buildroot/target/device/armadeus/pps/pps_defconfig
@@ -1,6 +1,6 @@
#
# Automatically generated make config: don't edit
-# Fri Nov 5 16:15:18 2010
+# Wed Dec 8 16:35:18 2010
#
BR2_HAVE_DOT_CONFIG=y
BR2_VERSION="0.10.0-svn"
@@ -301,7 +301,8 @@ BR2_PACKAGE_BUSYBOX_HIDE_OTHERS=y
#
# The minimum needed to build a uClibc development system
#
-# BR2_PACKAGE_FLEX is not set
+BR2_PACKAGE_FLEX=y
+BR2_PACKAGE_FLEX_LIBFL=y
# BR2_PACKAGE_GCC_TARGET is not set
# BR2_PACKAGE_MAKE is not set
@@ -401,7 +402,7 @@ BR2_PACKAGE_BOA=y
#
# bluez-utils not available (need dbus)
#
-# BR2_PACKAGE_BRIDGE is not set
+BR2_PACKAGE_BRIDGE=y
# BR2_PACKAGE_DNSMASQ is not set
# BR2_PACKAGE_DROPBEAR is not set
BR2_PACKAGE_ETHTOOL=y
@@ -410,11 +411,15 @@ BR2_PACKAGE_ETHTOOL=y
# BR2_PACKAGE_IRDA_UTILS is not set
# BR2_PACKAGE_IPERF is not set
# BR2_PACKAGE_IPROUTE2 is not set
-
-#
-# ipsec-tools - disabled (requires openssl, flex and the flex library (libfl.a) )
-#
-# BR2_PACKAGE_IPTABLES is not set
+BR2_PACKAGE_IPSEC_TOOLS=y
+BR2_PACKAGE_IPSEC_TOOLS_ADMINPORT=y
+# BR2_PACKAGE_IPSEC_TOOLS_NATT is not set
+BR2_PACKAGE_IPSEC_TOOLS_FRAG=y
+BR2_PACKAGE_IPSEC_TOOLS_STATS=y
+BR2_PACKAGE_IPSEC_TOOLS_IPV6=y
+# BR2_PACKAGE_IPSEC_TOOLS_READLINE is not set
+BR2_PACKAGE_IPSEC_TOOLS_LIBS=y
+BR2_PACKAGE_IPTABLES=y
# BR2_PACKAGE_KISMET is not set
# BR2_PACKAGE_L2TP is not set
# BR2_PACKAGE_LIBCGI is not set
diff --git a/patches/buildroot/137-flex-bump_version.patch b/patches/buildroot/137-flex-bump_version.patch
new file mode 100644
index 0000000..8327ff1
--- /dev/null
+++ b/patches/buildroot/137-flex-bump_version.patch
@@ -0,0 +1,55 @@
+Version 2.5.33 of Flex and patch 11 are no more available, so change
+the software and patch version.
+
+Signed-off-by: Jérémie Scheer <jer...@ar...>
+
+Index: buildroot/package/flex/flex.mk
+===================================================================
+--- buildroot.orig/package/flex/flex.mk 2008-11-03 09:15:27.000000000 +0100
++++ buildroot/package/flex/flex.mk 2010-12-13 16:05:57.000000000 +0100
+@@ -3,8 +3,8 @@
+ # flex
+ #
+ #############################################################
+-FLEX_VERSION:=2.5.33
+-FLEX_PATCH_VERSION:=11
++FLEX_VERSION:=2.5.35
++FLEX_PATCH_VERSION:=10
+ FLEX_SOURCE:=flex_$(FLEX_VERSION).orig.tar.gz
+ FLEX_PATCH:=flex_$(FLEX_VERSION)-$(FLEX_PATCH_VERSION).diff.gz
+ FLEX_SITE:=$(BR2_DEBIAN_MIRROR)/debian/pool/main/f/flex
+@@ -29,6 +29,7 @@
+ toolchain/patch-kernel.sh $(FLEX_DIR) $(FLEX_DIR)/debian/patches \*.patch; \
+ fi
+ endif
++ toolchain/patch-kernel.sh $(FLEX_DIR) package/flex/ flex-$(FLEX_VERSION)-\*.patch
+ $(CONFIG_UPDATE) $(FLEX_DIR)
+ touch $@
+
+Index: buildroot/package/flex/flex-2.5.35-undefine_rpl_malloc_and_realloc.patch
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ buildroot/package/flex/flex-2.5.35-undefine_rpl_malloc_and_realloc.patch 2010-12-16 15:32:55.000000000 +0100
+@@ -0,0 +1,22 @@
++This patch may be unnecessary depending on the toolchain used to compile flex.
++
++--- flex-2.5.35/configure.orig 2010-11-26 17:39:28.000000000 +0100
+++++ flex-2.5.35/configure 2010-11-26 17:40:00.000000000 +0100
++@@ -9169,7 +9169,7 @@
++
++
++ cat >>confdefs.h <<\_ACEOF
++-#define malloc rpl_malloc
+++/* #define malloc rpl_malloc */
++ _ACEOF
++
++ fi
++@@ -9399,7 +9399,7 @@
++
++
++ cat >>confdefs.h <<\_ACEOF
++-#define realloc rpl_realloc
+++/* #define realloc rpl_realloc */
++ _ACEOF
++
++ fi
diff --git a/patches/buildroot/138-ipsec-tools-bump_version_and_disable_security_context.patch b/patches/buildroot/138-ipsec-tools-bump_version_and_disable_security_context.patch
new file mode 100644
index 0000000..537837c
--- /dev/null
+++ b/patches/buildroot/138-ipsec-tools-bump_version_and_disable_security_context.patch
@@ -0,0 +1,26 @@
+Bump IPSec-Tools to version 0.8-alpha201022 to make it work with Linux Kernel 2.6.29 and
+disable security context.
+
+Signed-off-by: Jérémie Scheer <jer...@ar...>
+
+Index: buildroot/package/ipsec-tools/ipsec-tools.mk
+===================================================================
+--- buildroot.orig/package/ipsec-tools/ipsec-tools.mk 2010-12-10 16:51:06.000000000 +0100
++++ buildroot/package/ipsec-tools/ipsec-tools.mk 2010-12-10 16:51:38.000000000 +0100
+@@ -4,7 +4,7 @@
+ #
+ #############################################################
+
+-IPSEC_TOOLS_VERSION:=0.6.7
++IPSEC_TOOLS_VERSION:=0.8-alpha20101022
+ IPSEC_TOOLS_SOURCE:=ipsec-tools-$(IPSEC_TOOLS_VERSION).tar.bz2
+ IPSEC_TOOLS_CAT:=$(BZCAT)
+ IPSEC_TOOLS_DIR:=$(BUILD_DIR)/ipsec-tools-$(IPSEC_TOOLS_VERSION)
+@@ -81,6 +81,7 @@
+ --without-libpam \
+ --disable-gssapi \
+ --with-kernel-headers=$(STAGING_DIR)/usr/include \
++ --enable-security-context=no \
+ $(IPSEC_TOOLS_CONFIG_FLAGS) \
+ )
+ # simpler than patching that cruft..
diff --git a/patches/buildroot/139-iptables-bump_version.patch b/patches/buildroot/139-iptables-bump_version.patch
new file mode 100644
index 0000000..d5163fe
--- /dev/null
+++ b/patches/buildroot/139-iptables-bump_version.patch
@@ -0,0 +1,50 @@
+Bump iptables version to 1.4.7 to make it work with Linux Kernel 2.6.29
+
+Signed-off-by: Jérémie Scheer <jer...@ar...>
+
+Index: buildroot/package/iptables/iptables.mk
+===================================================================
+--- buildroot.orig/package/iptables/iptables.mk 2010-12-16 15:30:53.000000000 +0100
++++ buildroot/package/iptables/iptables.mk 2010-12-16 17:00:46.000000000 +0100
+@@ -3,16 +3,35 @@
+ # iptables
+ #
+ #############################################################
+-IPTABLES_VERSION = 1.4.1
++IPTABLES_VERSION = 1.4.7
+ IPTABLES_SOURCE = iptables-$(IPTABLES_VERSION).tar.bz2
+ IPTABLES_SITE = http://ftp.netfilter.org/pub/iptables
+
+-IPTABLES_CONF_OPT = --libexecdir=/usr/lib
+-IPTABLES_INSTALL_TARGET = YES
++IPTABLES_CONF_OPT = --libexecdir=/usr/lib --with-kernel=$(LINUX_HEADERS_DIR)
++ifneq ($(BR2_INET_IPV6),y)
++IPTABLES_CONF_OPT += --disable-ipv6
++endif
+
+ IPTABLES_AUTORECONF = YES
+-IPTABLES_DEPENDENCIES =
+-IPTABLES_CONFIGURE_OPT = --with-kernel=$(LINUX_HEADERS_DIR)
+-IPTABLES_MAKE_OPT = GLIB_GENMARSHAL=/usr/bin/glib-genmarshal GLIB_MKENUMS=/usr/bin
++IPTABLES_LIBTOOL_PATCH = NO
+
+ $(eval $(call AUTOTARGETS,package,iptables))
++
++$(IPTABLES_HOOK_POST_INSTALL): $(IPTABLES_TARGET_INSTALL_TARGET)
++ ln -sf iptables-multi $(TARGET_DIR)/usr/sbin/iptables
++ ln -sf iptables-multi $(TARGET_DIR)/usr/sbin/iptables-save
++ ln -sf iptables-multi $(TARGET_DIR)/usr/sbin/iptables-restore
++ifeq ($(BR2_INET_IPV6),y)
++ ln -sf ip6tables-multi $(TARGET_DIR)/usr/sbin/ip6tables
++ ln -sf ip6tables-multi $(TARGET_DIR)/usr/sbin/ip6tables-save
++ ln -sf ip6tables-multi $(TARGET_DIR)/usr/sbin/ip6tables-restore
++endif
++ touch $@
++
++$(IPTABLES_TARGET_UNINSTALL):
++ $(call MESSAGE,"Uninstalling")
++ rm -f $(TARGET_DIR)/usr/bin/iptables-xml
++ rm -f $(TARGET_DIR)/usr/sbin/iptables* $(TARGET_DIR)/usr/sbin/ip6tables*
++ rm -rf $(TARGET_DIR)/usr/lib/xtables
++ rm -f $(IPTABLES_TARGET_INSTALL_TARGET) $(IPTABLES_HOOK_POST_INSTALL)
++
diff --git a/patches/buildroot/2010.11/137-flex-bump_version.patch b/patches/buildroot/2010.11/137-flex-bump_version.patch
new file mode 100644
index 0000000..a1b145c
--- /dev/null
+++ b/patches/buildroot/2010.11/137-flex-bump_version.patch
@@ -0,0 +1,45 @@
+Version 9.1 of Flex patch is no more available, so upgrade it.
+
+Signed-off-by: Jérémie Scheer <jer...@ar...>
+---
+
+Index: buildroot/package/flex/flex-2.5.35-undefine_rpl_malloc_and_realloc.patch
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ buildroot/package/flex/flex-2.5.35-undefine_rpl_malloc_and_realloc.patch 2010-11-26 17:50:52.000000000 +0100
+@@ -0,0 +1,22 @@
++This patch may be unnecessary depending on the toolchain used to compile flex.
++
++--- flex-2.5.35/configure.orig 2010-11-26 17:39:28.000000000 +0100
+++++ flex-2.5.35/configure 2010-11-26 17:40:00.000000000 +0100
++@@ -9169,7 +9169,7 @@
++
++
++ cat >>confdefs.h <<\_ACEOF
++-#define malloc rpl_malloc
+++/* #define malloc rpl_malloc */
++ _ACEOF
++
++ fi
++@@ -9399,7 +9399,7 @@
++
++
++ cat >>confdefs.h <<\_ACEOF
++-#define realloc rpl_realloc
+++/* #define realloc rpl_realloc */
++ _ACEOF
++
++ fi
+Index: buildroot/package/flex/flex.mk
+===================================================================
+--- buildroot.orig/package/flex/flex.mk 2010-11-26 17:22:56.000000000 +0100
++++ buildroot/package/flex/flex.mk 2010-11-26 17:34:09.000000000 +0100
+@@ -4,7 +4,7 @@
+ #
+ #############################################################
+ FLEX_VERSION:=2.5.35
+-FLEX_PATCH_VERSION:=9.1
++FLEX_PATCH_VERSION:=10
+ FLEX_SOURCE:=flex_$(FLEX_VERSION).orig.tar.gz
+ FLEX_PATCH:=flex_$(FLEX_VERSION)-$(FLEX_PATCH_VERSION).diff.gz
+ FLEX_SITE:=$(BR2_DEBIAN_MIRROR)/debian/pool/main/f/flex
diff --git a/patches/buildroot/2010.11/138-ipsec-tools-bump_version.patch b/patches/buildroot/2010.11/138-ipsec-tools-bump_version.patch
new file mode 100644
index 0000000..e330df7
--- /dev/null
+++ b/patches/buildroot/2010.11/138-ipsec-tools-bump_version.patch
@@ -0,0 +1,21 @@
+Bump IPSec-Tools to version 0.8-alpha201022 to make it work with Linux Kernel 2.6.29 and
+disable security context.
+
+Signed-off-by: Jérémie Scheer <jer...@ar...>
+
+Index: buildroot/package/ipsec-tools/ipsec-tools.mk
+===================================================================
+--- buildroot.orig/package/ipsec-tools/ipsec-tools.mk 2010-12-10 17:21:15.000000000 +0100
++++ buildroot/package/ipsec-tools/ipsec-tools.mk 2010-12-10 17:27:01.000000000 +0100
+@@ -4,9 +4,9 @@
+ #
+ #############################################################
+
+-IPSEC_TOOLS_VERSION = 0.7.3
++IPSEC_TOOLS_VERSION = 0.8-alpha20101022
+ IPSEC_TOOLS_SOURCE = ipsec-tools-$(IPSEC_TOOLS_VERSION).tar.bz2
+-IPSEC_TOOLS_SITE = http://ftp.sunet.se/pub/NetBSD/misc/ipsec-tools/0.7/
++IPSEC_TOOLS_SITE = http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/ipsec-tools/
+ IPSEC_TOOLS_INSTALL_STAGING = YES
+ IPSEC_TOOLS_MAKE = $(MAKE1)
+ IPSEC_TOOLS_DEPENDENCIES = openssl flex host-flex
diff --git a/target/pps/configs/ipsec-tools.conf b/target/pps/configs/ipsec-tools.conf
new file mode 100644
index 0000000..8e98d69
--- /dev/null
+++ b/target/pps/configs/ipsec-tools.conf
@@ -0,0 +1,59 @@
+#
+# THE ARMADEUS PROJECT
+#
+# Copyright (C) year The armadeus systems team [Jérémie Scheer]
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
+#!/usr/sbin/setkey -f
+
+# NOTE: Do not use this file if you use racoon with racoon-tool
+# utility. racoon-tool will setup SAs and SPDs automatically using
+# /etc/racoon/racoon-tool.conf configuration.
+#
+
+## Flush the SAD and SPD
+#
+flush;
+spdflush;
+
+# Attention: Use this keys only for testing purposes!
+# Generate your own keys!
+
+# AH SAs using 128 bit long keys
+add 192.168.0.225 192.168.0.208 ah 0x200 -A hmac-md5
+ 0xc0291ff014dccdd03874d9e8e4cdf3e6;
+
+add 192.168.0.208 192.168.0.225 ah 0x300 -A hmac-md5
+ 0x96358c90783bbfa3d7b196ceabe0536b;
+
+# ESP SAs using 192 bit long keys (168 + 24 parity)
+
+add 192.168.0.225 192.168.0.208 esp 0x201 -E 3des-cbc
+ 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831;
+add 192.168.0.208 192.168.0.225 esp 0x301 -E 3des-cbc
+ 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df;
+
+
+# Security policies
+spdadd 192.168.0.225 192.168.0.208 any -P in ipsec
+ esp/transport//require
+ ah/transport//require;
+
+spdadd 192.168.0.208 192.168.0.225 any -P out ipsec
+ esp/transport//require
+ ah/transport//require;
+
diff --git a/target/pps/scripts/test_wifi.sh b/target/pps/scripts/test_bridge.sh
similarity index 65%
copy from target/pps/scripts/test_wifi.sh
copy to target/pps/scripts/test_bridge.sh
index 9b9c5c5..e5cedd3 100644
--- a/target/pps/scripts/test_wifi.sh
+++ b/target/pps/scripts/test_bridge.sh
@@ -18,17 +18,23 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
-modprobe libertas_sdio
+# stop active interfaces if any:
+ ifconfig usb0 down 2>/dev/null
+ ifconfig eth0 down 2>/dev/null
+ ifconfig eth1 down 2>/dev/null
+ ifconfig usb1 down 2>/dev/null
-# shutdown other ports
-ifconfig usb0 down 2>/dev/null
-ifconfig eth0 down 2>/dev/null
-ifconfig usb1 down 2>/dev/null
+ modprobe smsc95xx
+ brctl addbr br0
+ brctl addif br0 eth0
+ brctl addif br0 usb0
-ifconfig eth1 up
-iwconfig eth1 mode managed essid armadeus key restricted 93d7-e853-22e8-8784-0b4a-629c-ab
+ ifconfig eth0 0.0.0.0
+ ifconfig usb0 0.0.0.0
+ ifconfig br0 up
+ ifconfig eth0 up
+ ifconfig usb0 up
+ #if you want you can add bridge device himself:
+
+ ifconfig br0 192.168.0.208 netmask 255.255.255.0
-
-ifconfig eth1 192.168.0.251
-sleep 1
-echo -e "\nTo check the wifi port, please browse on 192.168.0.251\n"
diff --git a/target/pps/scripts/test_ipsec.sh b/target/pps/scripts/test_ipsec.sh
new file mode 100644
index 0000000..98d9aa5
--- /dev/null
+++ b/target/pps/scripts/test_ipsec.sh
@@ -0,0 +1,83 @@
+#
+# THE ARMADEUS PROJECT
+#
+# Copyright (C) year The armadeus systems team [Jérémie Scheer]
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
+if [ -f /etc/ipsec-tools.conf ]; then
+
+ #****** 1: definition *****
+
+ #dont forget to edit the file /etc/ipsec-tools.conf on the system with this address
+ export IPADDR=
+
+ if [ "$IPADDR" != "" ]; then
+
+ #****** 2:create connection (PPS Ethernet port) ****
+ ifconfig usb0 down 2>/dev/null
+ ifconfig eth1 down 2>/dev/null
+ ifconfig usb1 down 2>/dev/null
+
+ ifconfig eth0 $IPADDR
+
+ #****** 3:securize the connection with IPSec ****
+ setkey -f /etc/ipsec-tools.conf
+
+ if [ $? -eq 0 ]; then
+ echo -e "\nHere are the keys you just set with IPSec:\n"
+ setkey -D
+
+ echo -e "\nNow you can test the IPSec securized connection by activating it on your host PC:\n- First you have to put on your host PC in the directory /etc/ the file ipsec-tools.conf.\n- Then you can run IPSec with the command: sudo /etc/init.d/setkey start\n- On your system, you can run a telnet toward your host PC\n- Check with Wireshark on your host PC that you can't see the protocol TELNET and your password in the datagrams.\n"
+ fi
+ else
+ echo -e '\nThe variable IPADDR is not initialized. \nYou have to fill this variable in the file /usr/local/pps/scripts/test_ipsec.sh\n'
+ fi
+else
+ echo -e '\nThe file /etc/ipsec-tools.conf doesnt exist.\nYou have to create this file and fill it with the correct datas, like this:\n
+ ## Flush the SAD and SPD
+ #
+ flush;
+ spdflush;
+
+ # Attention: Use this keys only for testing purposes!
+ # Generate your own keys!
+
+ # AH SAs using 128 bit long keys
+ add 192.168.0.225 192.168.0.208 ah 0x200 -A hmac-md5
+ 0xc0291ff014dccdd03874d9e8e4cdf3e6;
+
+ add 192.168.0.208 192.168.0.225 ah 0x300 -A hmac-md5
+ 0x96358c90783bbfa3d7b196ceabe0536b;
+
+ # ESP SAs using 192 bit long keys (168 + 24 parity)
+
+ add 192.168.0.225 192.168.0.208 esp 0x201 -E 3des-cbc
+ 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831;
+ add 192.168.0.208 192.168.0.225 esp 0x301 -E 3des-cbc
+ 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df;
+
+
+ # Security policies
+ spdadd 192.168.0.225 192.168.0.208 any -P out ipsec
+ esp/transport//require
+ ah/transport//require;
+
+ spdadd 192.168.0.208 192.168.0.225 any -P in ipsec
+ esp/transport//require
+ ah/transport//require;\n'
+fi
+
diff --git a/target/pps/scripts/test_ssh_tunnel.sh b/target/pps/scripts/test_ssh_tunnel.sh
new file mode 100644
index 0000000..1b9dabc
--- /dev/null
+++ b/target/pps/scripts/test_ssh_tunnel.sh
@@ -0,0 +1,55 @@
+#
+# THE ARMADEUS PROJECT
+#
+# Copyright (C) year The armadeus systems team [Jérémie Scheer]
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
+#****** 1: definition *****
+
+export USERNAME=
+export HOSTNAME=
+#dont forget to add the tunnel port to the file /etc/ssh/sshd_config on your Host PC.
+export PORTNAME= #(configure firewall and NAT for this port if necessary)
+# define tunnel id (port;standard value should be 23; avoid it because NAT config may be already used for ssh )
+export TELNETPORT=
+
+if [ "$USERNAME" != "" -a "$HOSTNAME" != "" -a "$PORTNAME" != "" -a "$TELNETPORT" != "" ]; then
+ # ****** 2: Activate the connection interface (PPS Ethernet port) *****
+ ifconfig usb0 down 2>/dev/null
+ ifconfig eth1 down 2>/dev/null
+ ifconfig usb1 down 2>/dev/null
+
+ ifconfig eth0 192.168.0.208
+
+ # ****** 2: create the ssh tunnel (check first if exists !!!)*****
+
+ ps -eaf |grep "ssh -fN -L $TELNETPORT:localhost:$TELNETPORT -C $USERNAME@$HOSTNAME -p $PORTNAME" | grep -vq "grep"
+ [ $? -eq 1 ] && ssh -fN -L $TELNETPORT:localhost:$TELNETPORT -C $USERNAME@$HOSTNAME -p $PORTNAME ;
+
+ # *** 3: start telnet (if tunnel exist!!) : !! NOTE: host name is localhost !!! ***
+
+ ps -eaf |grep "ssh -fN -L $TELNETPORT:localhost:$TELNETPORT -C $USERNAME@$HOSTNAME -p $PORTNAME" | grep -vq "grep"
+ res=$?
+
+ [ $res -eq 0 ] && echo -e "\nSSH tunnel is created on localhost, port 23. Now connecting to host $HOSTNAME with telnet.\n You can check if the tunnel is properly encrypting the datas with Wireshark: you must not see the protocol TELNET or your password in the datagrams.\n"
+ [ $res -eq 0 ] && telnet -l $USERNAME localhost
+else
+ echo -e "\nOne or many of the variables USERNAME, HOSTNAME, PORTNAME and TELNETPORT are not initialized. \nYou have to fill these variables in the file /usr/local/pps/scripts/test_ssh_tunnel.sh\n"
+fi
+
+
+
hooks/post-receive
--
armadeus
|
|
From: jscheer <js...@us...> - 2010-12-21 16:15:53
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via f20c526fa0a0845f1a7c0ae2901f57dbde7fbe52 (commit)
from ec77fee42b05d11b6342650c8f970166bfe0fea3 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit f20c526fa0a0845f1a7c0ae2901f57dbde7fbe52
Author: Jeremie Scheer <jer...@ar...>
Date: Tue Dec 21 17:15:12 2010 +0100
[ROOTFS] Add GPL license to PPS init file S80gpios.
[TEST] Add correct indentations and carriage returns to PPS test script init_wpa.sh.
[U-BOOT] Change Buildroot 2010's U-boot config file with correct rootfs image name.
-----------------------------------------------------------------------
Summary of changes:
.../device/armadeus/pps/apf27-u-boot-1.3.4.h | 2 +-
target/pps/init/S80gpios | 20 ++++++++
target/pps/scripts/init_wpa.sh | 49 +++++++++-----------
3 files changed, 43 insertions(+), 28 deletions(-)
diff --git a/buildroot/target/device/armadeus/pps/apf27-u-boot-1.3.4.h b/buildroot/target/device/armadeus/pps/apf27-u-boot-1.3.4.h
index 3b47270..e63208f 100644
--- a/buildroot/target/device/armadeus/pps/apf27-u-boot-1.3.4.h
+++ b/buildroot/target/device/armadeus/pps/apf27-u-boot-1.3.4.h
@@ -203,7 +203,7 @@
"download_kernel=tftpboot ${loadaddr} " \
" ${serverpath}${board_name}-linux.bin\0" \
"download_rootfs=tftpboot ${loadaddr} " \
- " ${serverpath}${board_name}-rootfs.arm.ubi\0" \
+ " ${serverpath}${board_name}-rootfs.ubi\0" \
"update_uboot=run download_uboot flash_uboot\0" \
"update_kernel=run download_kernel flash_kernel\0" \
"update_rootfs=run download_rootfs flash_rootfs\0" \
diff --git a/target/pps/init/S80gpios b/target/pps/init/S80gpios
index c760395..cd16dba 100755
--- a/target/pps/init/S80gpios
+++ b/target/pps/init/S80gpios
@@ -1,3 +1,23 @@
+#
+# THE ARMADEUS PROJECT
+#
+# Copyright (C) year The armadeus systems team [Jérémie Scheer]
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
#!/bin/sh
#
# Script used to configure user space usable GPIOs on PPS
diff --git a/target/pps/scripts/init_wpa.sh b/target/pps/scripts/init_wpa.sh
index 1d31d96..c3637f5 100644
--- a/target/pps/scripts/init_wpa.sh
+++ b/target/pps/scripts/init_wpa.sh
@@ -24,8 +24,9 @@ source /etc/wpa_supplicant/networkConfig
if [ "$SSID" != "" -a "$PSK" != "" ]; then
-#create WPA configuration
-mkdir -p /etc/wpa_supplicant/
+ #create WPA configuration
+ mkdir -p /etc/wpa_supplicant/
+
echo "ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
network={
@@ -37,43 +38,37 @@ pairwise=TKIP
psk=\"$PSK\"
}" > /etc/wpa_supplicant/wpa_supplicant.conf
-#Hardware reset of wi2wi chip
-sh /usr/local/pps/scripts/reset_wi2wi.sh
+ #Hardware reset of wi2wi chip
+ sh /usr/local/pps/scripts/reset_wi2wi.sh
-#Load mmc and libertas modules
-modprobe mxcmmc
-sleep 1
-modprobe libertas_sdio
+ #Load mmc and libertas modules
+ modprobe mxcmmc
+ sleep 1
+ modprobe libertas_sdio
-# shutdown other ports
-ifconfig usb0 down 2>/dev/null
-ifconfig eth0 down 2>/dev/null
-ifconfig usb1 down 2>/dev/null
+ # shutdown other ports
+ ifconfig usb0 down 2>/dev/null
+ ifconfig eth0 down 2>/dev/null
+ ifconfig usb1 down 2>/dev/null
-#Execute Wpa Supplicant
-ifconfig eth1 up
-wpa_supplicant -ieth1 -c /etc/wpa_supplicant/wpa_supplicant.conf -Dwext -B dhclient
+ #Execute Wpa Supplicant
+ ifconfig eth1 up
+ wpa_supplicant -ieth1 -c /etc/wpa_supplicant/wpa_supplicant.conf -Dwext -B dhclient
-ifconfig eth1 192.168.0.251
-sleep 1
-echo -e "\nTo check the wifi port (eth1), please enter the command \"ping 192.168.0.251\" on the host PC\n"
-echo -e "\nTo restart the WPA Supplicant, before entering the command \"sh init_wpa.sh\", or to stop it, run \"sh stop_wpa.sh\"\n"
+ ifconfig eth1 192.168.0.251
+ sleep 1
+ echo -e "\nTo check the wifi port (eth1), please enter the command \"ping 192.168.0.251\" on the host PC\n"
+ echo -e "\nTo restart the WPA Supplicant, before entering the command \"sh init_wpa.sh\", or to stop it, run \"sh stop_wpa.sh\"\n"
else #[ "$SSID" != "" -a "$PSK" != "" ]; print usage
-echo -e '\nThe variables $SSID and $PSK are not initialized in /etc/wpa_supplicant/networkConfig.
-To correctly run WPA Supplicant, you must fill these variables in like this:
-export SSID=mon_ssid
-export PSK=ma_passphrase\n'
+ echo -e '\nThe variables SSID and PSK are not initialized in /etc/wpa_supplicant/networkConfig.\nTo correctly run WPA Supplicant, you must fill these variables in like this:\nexport SSID=mon_ssid\nexport PSK=ma_passphrase\n'
fi
else #[ -f /etc/wpa_supplicant/networkConfig ]; print usage
-echo -e '\nThe file /etc/wpa_supplicant/networkConfig doesnt exist.
-To correctly run WPA Supplicant, you have to create this file and declare the variables $SSID and $PSK like this:
-export SSID=mon_ssid
-export PSK=ma_passphrase\n'
+ echo -e '\nThe file /etc/wpa_supplicant/networkConfig doesnt exist.\nTo correctly run WPA Supplicant, you have to create this file and declare the variables SSID and PSK like this:\nexport SSID=mon_ssid\nexport PSK=ma_passphrase\n'
fi
hooks/post-receive
--
armadeus
|
|
From: Fabien M <fa...@us...> - 2010-12-21 13:37:40
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via ec77fee42b05d11b6342650c8f970166bfe0fea3 (commit)
from 07ed9485bdc112a0e01b1ae8b80dbfda7bbdd4c1 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit ec77fee42b05d11b6342650c8f970166bfe0fea3
Author: Fabien Marteau <fab...@ar...>
Date: Tue Dec 21 14:37:13 2010 +0100
[u-boot] suppress useless mtest16 fonction
-----------------------------------------------------------------------
Summary of changes:
.../u-boot-2010.03-411-memtest_16bits_access.patch | 398 --------------------
1 files changed, 0 insertions(+), 398 deletions(-)
delete mode 100644 buildroot/target/u-boot/u-boot-2010.03-411-memtest_16bits_access.patch
diff --git a/buildroot/target/u-boot/u-boot-2010.03-411-memtest_16bits_access.patch b/buildroot/target/u-boot/u-boot-2010.03-411-memtest_16bits_access.patch
deleted file mode 100644
index 6d03409..0000000
--- a/buildroot/target/u-boot/u-boot-2010.03-411-memtest_16bits_access.patch
+++ /dev/null
@@ -1,398 +0,0 @@
-Index: u-boot-2010.03/common/cmd_mem.c
-===================================================================
---- u-boot-2010.03.orig/common/cmd_mem.c 2010-12-20 17:52:41.000000000 +0100
-+++ u-boot-2010.03/common/cmd_mem.c 2010-12-20 18:17:30.000000000 +0100
-@@ -26,7 +26,6 @@
- *
- * Copied from FADS ROM, Dan Malek (dm...@jl...)
- */
--
- #include <common.h>
- #include <command.h>
- #ifdef CONFIG_HAS_DATAFLASH
-@@ -977,6 +976,362 @@
- }
-
-
-+/*
-+ * Perform a memory test. A more complete alternative test can be
-+ * configured using CONFIG_SYS_ALT_MEMTEST. The complete test loops until
-+ * interrupted by ctrl-c or by a failure of one of the sub-tests.
-+ */
-+int do_mem_mtest16 (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-+{
-+ vu_short *addr, *start, *end;
-+ ushort val;
-+ ushort readback;
-+ ushort errs = 0;
-+ int iterations = 1;
-+ int iteration_limit;
-+
-+#if defined(CONFIG_SYS_ALT_MEMTEST)
-+ vu_short len;
-+ vu_short offset;
-+ vu_short test_offset;
-+ vu_short pattern;
-+ vu_short temp;
-+ vu_short anti_pattern;
-+ vu_short num_words;
-+#if defined(CONFIG_SYS_MEMTEST_SCRATCH)
-+ vu_short *dummy = (vu_long*)CONFIG_SYS_MEMTEST_SCRATCH;
-+#else
-+ vu_short *dummy = 0; /* yes, this is address 0x0, not NULL */
-+#endif
-+ int j;
-+
-+ static const ushort bitpattern[] = {
-+ 0x0001, /* single bit */
-+ 0x0003, /* two adjacent bits */
-+ 0x0007, /* three adjacent bits */
-+ 0x000F, /* four adjacent bits */
-+ 0x0005, /* two non-adjacent bits */
-+ 0x0015, /* three non-adjacent bits */
-+ 0x0055, /* four non-adjacent bits */
-+ 0xaaaa, /* alternating 1/0 */
-+ };
-+#else
-+ ulong incr;
-+ ushort pattern;
-+#endif
-+
-+ if (argc > 1)
-+ start = (ulong *)simple_strtoul(argv[1], NULL, 16);
-+ else
-+ start = (ulong *)CONFIG_SYS_MEMTEST_START;
-+
-+ if (argc > 2)
-+ end = (ulong *)simple_strtoul(argv[2], NULL, 16);
-+ else
-+ end = (ulong *)(CONFIG_SYS_MEMTEST_END);
-+
-+ if (argc > 3)
-+ pattern = (ulong)simple_strtoul(argv[3], NULL, 16);
-+ else
-+ pattern = 0;
-+
-+ if (argc > 4)
-+ iteration_limit = (ulong)simple_strtoul(argv[4], NULL, 16);
-+ else
-+ iteration_limit = 0;
-+
-+#if defined(CONFIG_SYS_ALT_MEMTEST)
-+ printf ("Testing %04x ... %04x:\n", (uint)start, (uint)end);
-+ PRINTF("%s:%d: start 0x%p end 0x%p\n",
-+ __FUNCTION__, __LINE__, start, end);
-+
-+ for (;;) {
-+ if (ctrlc()) {
-+ putc ('\n');
-+ return 1;
-+ }
-+
-+
-+ if (iteration_limit && iterations > iteration_limit) {
-+ printf("Tested %d iteration(s) with %lu errors.\n",
-+ iterations-1, errs);
-+ return errs != 0;
-+ }
-+
-+ printf("Iteration: %6d\r", iterations);
-+ PRINTF("\n");
-+ iterations++;
-+
-+ /*
-+ * Data line test: write a pattern to the first
-+ * location, write the 1's complement to a 'parking'
-+ * address (changes the state of the data bus so a
-+ * floating bus doen't give a false OK), and then
-+ * read the value back. Note that we read it back
-+ * into a variable because the next time we read it,
-+ * it might be right (been there, tough to explain to
-+ * the quality guys why it prints a failure when the
-+ * "is" and "should be" are obviously the same in the
-+ * error message).
-+ *
-+ * Rather than exhaustively testing, we test some
-+ * patterns by shifting '1' bits through a field of
-+ * '0's and '0' bits through a field of '1's (i.e.
-+ * pattern and ~pattern).
-+ */
-+ addr = start;
-+ for (j = 0; j < sizeof(bitpattern)/sizeof(bitpattern[0]); j++) {
-+ val = bitpattern[j];
-+ for(; val != 0; val <<= 1) {
-+ *addr = val;
-+ *dummy = ~val; /* clear the test data off of the bus */
-+ readback = *addr;
-+ if(readback != val) {
-+ printf ("FAILURE (data line): "
-+ "expected %04x, actual %04x\n",
-+ val, readback);
-+ errs++;
-+ if (ctrlc()) {
-+ putc ('\n');
-+ return 1;
-+ }
-+ }
-+ *addr = ~val;
-+ *dummy = val;
-+ readback = *addr;
-+ if(readback != ~val) {
-+ printf ("FAILURE (data line): "
-+ "Is %04x, should be %04x\n",
-+ readback, ~val);
-+ errs++;
-+ if (ctrlc()) {
-+ putc ('\n');
-+ return 1;
-+ }
-+ }
-+ }
-+ }
-+
-+ /*
-+ * Based on code whose Original Author and Copyright
-+ * information follows: Copyright (c) 1998 by Michael
-+ * Barr. This software is placed into the public
-+ * domain and may be used for any purpose. However,
-+ * this notice must not be changed or removed and no
-+ * warranty is either expressed or implied by its
-+ * publication or distribution.
-+ */
-+
-+ /*
-+ * Address line test
-+ *
-+ * Description: Test the address bus wiring in a
-+ * memory region by performing a walking
-+ * 1's test on the relevant bits of the
-+ * address and checking for aliasing.
-+ * This test will find single-bit
-+ * address failures such as stuck -high,
-+ * stuck-low, and shorted pins. The base
-+ * address and size of the region are
-+ * selected by the caller.
-+ *
-+ * Notes: For best results, the selected base
-+ * address should have enough LSB 0's to
-+ * guarantee single address bit changes.
-+ * For example, to test a 64-Kbyte
-+ * region, select a base address on a
-+ * 64-Kbyte boundary. Also, select the
-+ * region size as a power-of-two if at
-+ * all possible.
-+ *
-+ * Returns: 0 if the test succeeds, 1 if the test fails.
-+ */
-+ len = ((ulong)end - (ulong)start)/sizeof(vu_long);
-+ pattern = (vu_long) 0xaaaaaaaa;
-+ anti_pattern = (vu_long) 0x55555555;
-+
-+ PRINTF("%s:%d: length = 0x%.4x\n",
-+ __FUNCTION__, __LINE__,
-+ len);
-+ /*
-+ * Write the default pattern at each of the
-+ * power-of-two offsets.
-+ */
-+ for (offset = 1; offset < len; offset <<= 1) {
-+ start[offset] = pattern;
-+ }
-+
-+ /*
-+ * Check for address bits stuck high.
-+ */
-+ test_offset = 0;
-+ start[test_offset] = anti_pattern;
-+
-+ for (offset = 1; offset < len; offset <<= 1) {
-+ temp = start[offset];
-+ if (temp != pattern) {
-+ printf ("\nFAILURE: Address bit stuck high @ 0x%.4x:"
-+ " expected 0x%.4x, actual 0x%.4x\n",
-+ (ulong)&start[offset], pattern, temp);
-+ errs++;
-+ if (ctrlc()) {
-+ putc ('\n');
-+ return 1;
-+ }
-+ }
-+ }
-+ start[test_offset] = pattern;
-+ WATCHDOG_RESET();
-+
-+ /*
-+ * Check for addr bits stuck low or shorted.
-+ */
-+ for (test_offset = 1; test_offset < len; test_offset <<= 1) {
-+ start[test_offset] = anti_pattern;
-+
-+ for (offset = 1; offset < len; offset <<= 1) {
-+ temp = start[offset];
-+ if ((temp != pattern) && (offset != test_offset)) {
-+ printf ("\nFAILURE: Address bit stuck low or shorted @"
-+ " 0x%.4x: expected 0x%.4x, actual 0x%.4x\n",
-+ (ulong)&start[offset], pattern, temp);
-+ errs++;
-+ if (ctrlc()) {
-+ putc ('\n');
-+ return 1;
-+ }
-+ }
-+ }
-+ start[test_offset] = pattern;
-+ }
-+
-+ /*
-+ * Description: Test the integrity of a physical
-+ * memory device by performing an
-+ * increment/decrement test over the
-+ * entire region. In the process every
-+ * storage bit in the device is tested
-+ * as a zero and a one. The base address
-+ * and the size of the region are
-+ * selected by the caller.
-+ *
-+ * Returns: 0 if the test succeeds, 1 if the test fails.
-+ */
-+ num_words = ((ulong)end - (ulong)start)/sizeof(vu_long) + 1;
-+
-+ /*
-+ * Fill memory with a known pattern.
-+ */
-+ for (pattern = 1, offset = 0; offset < num_words; pattern++, offset++) {
-+ WATCHDOG_RESET();
-+ start[offset] = pattern;
-+ }
-+
-+ /*
-+ * Check each location and invert it for the second pass.
-+ */
-+ for (pattern = 1, offset = 0; offset < num_words; pattern++, offset++) {
-+ WATCHDOG_RESET();
-+ temp = start[offset];
-+ if (temp != pattern) {
-+ printf ("\nFAILURE (read/write) @ 0x%.4x:"
-+ " expected 0x%.4x, actual 0x%.4x)\n",
-+ (ulong)&start[offset], pattern, temp);
-+ errs++;
-+ if (ctrlc()) {
-+ putc ('\n');
-+ return 1;
-+ }
-+ }
-+
-+ anti_pattern = ~pattern;
-+ start[offset] = anti_pattern;
-+ }
-+
-+ /*
-+ * Check each location for the inverted pattern and zero it.
-+ */
-+ for (pattern = 1, offset = 0; offset < num_words; pattern++, offset++) {
-+ WATCHDOG_RESET();
-+ anti_pattern = ~pattern;
-+ temp = start[offset];
-+ if (temp != anti_pattern) {
-+ printf ("\nFAILURE (read/write): @ 0x%.4x:"
-+ " expected 0x%.4x, actual 0x%.4x)\n",
-+ (ulong)&start[offset], anti_pattern, temp);
-+ errs++;
-+ if (ctrlc()) {
-+ putc ('\n');
-+ return 1;
-+ }
-+ }
-+ start[offset] = 0;
-+ }
-+ }
-+
-+#else /* The original, quickie test */
-+ incr = 1;
-+ for (;;) {
-+ if (ctrlc()) {
-+ putc ('\n');
-+ return 1;
-+ }
-+
-+ if (iteration_limit && iterations > iteration_limit) {
-+ printf("Tested %d iteration(s) with %lu errors.\n",
-+ iterations-1, errs);
-+ return errs != 0;
-+ }
-+ ++iterations;
-+
-+ printf ("\rPattern %04X Writing..."
-+ "%12s"
-+ "\b\b\b\b\b\b\b\b\b\b",
-+ pattern, "");
-+
-+ for (addr=start,val=pattern; addr<end; addr++) {
-+ WATCHDOG_RESET();
-+ *addr = val;
-+ val += incr;
-+ }
-+
-+ puts ("Reading...");
-+
-+ for (addr=start,val=pattern; addr<end; addr++) {
-+ WATCHDOG_RESET();
-+ readback = *addr;
-+ if (readback != val) {
-+ printf ("\nMem error @ 0x%08X: "
-+ "found %04X, expected %04X\n",
-+ (uint)addr, readback, val);
-+ errs++;
-+ if (ctrlc()) {
-+ putc ('\n');
-+ return 1;
-+ }
-+ }
-+ val += incr;
-+ }
-+
-+ /*
-+ * Flip the pattern each time to make lots of zeros and
-+ * then, the next time, lots of ones. We decrement
-+ * the "negative" patterns and increment the "positive"
-+ * patterns to preserve this feature.
-+ */
-+ if(pattern & 0x80000000) {
-+ pattern = -pattern; /* complement & increment */
-+ }
-+ else {
-+ pattern = ~pattern;
-+ }
-+ incr = -incr;
-+ }
-+#endif
-+ return 0; /* not reached */
-+}
-+
-+
- /* Modify memory.
- *
- * Syntax:
-@@ -1035,7 +1390,7 @@
- * the next value. A non-converted value exits.
- */
- do {
-- printf("%08lx:", addr);
-+ printf("%04x:", addr);
- if (size == 4)
- printf(" %08x", *((uint *)addr));
- else if (size == 2)
-@@ -1333,6 +1688,13 @@
- "[start [end [pattern [iterations]]]]"
- );
-
-+U_BOOT_CMD(
-+ mtest16, 5, 1, do_mem_mtest16,
-+ "simple RAM read/write 16 bits test",
-+ "[start [end [pattern [iterations]]]]"
-+);
-+
-+
- #ifdef CONFIG_MX_CYCLIC
- U_BOOT_CMD(
- mdc, 4, 1, do_mem_mdc,
hooks/post-receive
--
armadeus
|
|
From: Fabien M <fa...@us...> - 2010-12-21 13:25:22
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 07ed9485bdc112a0e01b1ae8b80dbfda7bbdd4c1 (commit)
from 4d6a3c36c47b62b77ba893b4174e97082c55fa0e (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 07ed9485bdc112a0e01b1ae8b80dbfda7bbdd4c1
Author: Fabien Marteau <fab...@ar...>
Date: Tue Dec 21 14:24:53 2010 +0100
[u-boot] cleaning apf51 patch, suppressing trailling white space and replace multiple space by TAB
-----------------------------------------------------------------------
Summary of changes:
.../target/u-boot/u-boot-2010.03-401-apf51.patch | 456 ++++++++++----------
1 files changed, 228 insertions(+), 228 deletions(-)
diff --git a/buildroot/target/u-boot/u-boot-2010.03-401-apf51.patch b/buildroot/target/u-boot/u-boot-2010.03-401-apf51.patch
index 1c6e715..2d05d0f 100644
--- a/buildroot/target/u-boot/u-boot-2010.03-401-apf51.patch
+++ b/buildroot/target/u-boot/u-boot-2010.03-401-apf51.patch
@@ -1296,7 +1296,7 @@ Index: u-boot-2010.03/Makefile
Index: u-boot-2010.03/board/armadeus/apf51/fpga.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ u-boot-2010.03/board/armadeus/apf51/fpga.h 2010-12-20 17:49:14.000000000 +0100
++++ u-boot-2010.03/board/armadeus/apf51/fpga.h 2010-12-21 14:20:49.000000000 +0100
@@ -0,0 +1,39 @@
+/*
+ * (C) Copyright 2002-2010
@@ -1336,100 +1336,100 @@ Index: u-boot-2010.03/board/armadeus/apf51/fpga.h
+extern int fpga_wdata_fn ( unsigned char data, int cookie );
+extern int fpga_abort_fn (int cookie);
+extern int fpga_post_fn (int cookie);
-+extern int fpga_busy_fn (int cookie);
++extern int fpga_busy_fn (int cookie);
Index: u-boot-2010.03/board/armadeus/apf51/fpga.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ u-boot-2010.03/board/armadeus/apf51/fpga.c 2010-12-21 12:42:04.000000000 +0100
++++ u-boot-2010.03/board/armadeus/apf51/fpga.c 2010-12-21 14:14:55.000000000 +0100
@@ -0,0 +1,270 @@
-+ /*
-+ * (C) Copyright 2002-2010
-+ * Nicolas Colombain <nic...@ar...>
-+ * Rich Ireland, Enterasys Networks, rir...@en....
-+ * Keith Outwater, kei...@mv....
-+ *
-+ * See file CREDITS for list of people who contributed to this
-+ * project.
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
-+ * the License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ */
-+ #include <common.h>
-+
-+ #if defined(CONFIG_FPGA)
-+
-+ #include <asm/arch/imx-regs.h>
-+ #include <asm/arch/asm-offsets.h>
-+ #include <asm/io.h>
-+ #include <command.h>
-+ #include <config.h>
-+ #include <asm/arch/iomux.h>
-+ #include "fpga.h"
-+ #include <spartan3.h>
-+
-+ #ifdef FPGA_DEBUG
-+ #define PRINTF(fmt,args...) printf (fmt ,##args)
-+ #else
-+ #define PRINTF(fmt,args...)
-+ #endif
-+
-+ extern void imx_gpio_pin_set(unsigned int pin, int value);
-+ extern void imx_gpio_pin_cfg_dir(unsigned int pin, int dir);
-+ extern int imx_gpio_pin_get(unsigned int pin);
-+
-+ u32 temp_clk; /* use to restore the emi_clk_sel after donwload */
-+ u32 temp_rcr1;
-+ u32 temp_wcr1;
-+
-+ /* Note that these are pointers to code that is in Flash. They will be
-+ * relocated at runtime.
-+ * Spartan2 code is used to download our Spartan 6 :) code is compatible.
-+ * Just take care about the file size
++/*
++ * (C) Copyright 2002-2010
++ * Nicolas Colombain <nic...@ar...>
++ * Rich Ireland, Enterasys Networks, rir...@en....
++ * Keith Outwater, kei...@mv....
++ *
++ * See file CREDITS for list of people who contributed to this
++ * project.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ * MA 02111-1307 USA
++ *
++ */
++#include <common.h>
++
++#if defined(CONFIG_FPGA)
++
++#include <asm/arch/imx-regs.h>
++#include <asm/arch/asm-offsets.h>
++#include <asm/io.h>
++#include <command.h>
++#include <config.h>
++#include <asm/arch/iomux.h>
++#include "fpga.h"
++#include <spartan3.h>
++
++#ifdef FPGA_DEBUG
++#define PRINTF(fmt,args...) printf (fmt ,##args)
++#else
++#define PRINTF(fmt,args...)
++#endif
++
++extern void imx_gpio_pin_set(unsigned int pin, int value);
++extern void imx_gpio_pin_cfg_dir(unsigned int pin, int dir);
++extern int imx_gpio_pin_get(unsigned int pin);
++
++u32 temp_clk; /* use to restore the emi_clk_sel after donwload */
++u32 temp_rcr1;
++u32 temp_wcr1;
++
++/* Note that these are pointers to code that is in Flash. They will be
++ * relocated at runtime.
++ * Spartan2 code is used to download our Spartan 6 :) code is compatible.
++ * Just take care about the file size
++*/
++Xilinx_Spartan3_Slave_Parallel_fns fpga_fns = {
++ fpga_pre_fn,
++ fpga_pgm_fn,
++ fpga_init_fn,
++ NULL,
++ fpga_done_fn,
++ fpga_clk_fn,
++ fpga_cs_fn,
++ fpga_wr_fn,
++ fpga_rdata_fn,
++ fpga_wdata_fn,
++ fpga_busy_fn,
++ fpga_abort_fn,
++ fpga_post_fn,
++};
++
++Xilinx_desc fpga[CONFIG_FPGA_COUNT] = {
++ {Xilinx_Spartan3,
++ slave_parallel,
++ 3713568l/8,
++ (void *) &fpga_fns,
++ 0}
++};
++
++/*
++ *
+ */
-+ Xilinx_Spartan3_Slave_Parallel_fns fpga_fns = {
-+ fpga_pre_fn,
-+ fpga_pgm_fn,
-+ fpga_init_fn,
-+ NULL,
-+ fpga_done_fn,
-+ fpga_clk_fn,
-+ fpga_cs_fn,
-+ fpga_wr_fn,
-+ fpga_rdata_fn,
-+ fpga_wdata_fn,
-+ fpga_busy_fn,
-+ fpga_abort_fn,
-+ fpga_post_fn,
-+ };
-+
-+ Xilinx_desc fpga[CONFIG_FPGA_COUNT] = {
-+ {Xilinx_Spartan3,
-+ slave_parallel,
-+ 3713568l/8,
-+ (void *) &fpga_fns,
-+ 0}
-+ };
-+
-+ /*
-+ *
-+ */
-+ int
-+ fpga_pre_fn (int cookie)
-+ {
-+ #define EMI_CLK_SEL 1<<26
++int
++fpga_pre_fn (int cookie)
++{
++#define EMI_CLK_SEL 1<<26
+
+ /* change emi_clk_sel to ensure blck smaller than 50MHz */
+ temp_clk = __REG(CCM_BASE_ADDR + CLKCTL_CBCDR);
@@ -1441,174 +1441,174 @@ Index: u-boot-2010.03/board/armadeus/apf51/fpga.c
+ temp_wcr1 = __REG(CONFIG_CS1WCR1_ADDR);
+ __REG(CONFIG_CS1WCR1_ADDR) = 0x01000008;
+
-+ /* FPGA PROG */
-+ imx_gpio_pin_set(CONFIG_SYS_FPGA_PRG, 1);
-+ imx_gpio_pin_cfg_dir(CONFIG_SYS_FPGA_PRG, 1);
++ /* FPGA PROG */
++ imx_gpio_pin_set(CONFIG_SYS_FPGA_PRG, 1);
++ imx_gpio_pin_cfg_dir(CONFIG_SYS_FPGA_PRG, 1);
+
+ /* FPGA PWR */
-+ imx_gpio_pin_set(CONFIG_SYS_FPGA_PWR, 1);
++ imx_gpio_pin_set(CONFIG_SYS_FPGA_PWR, 1);
+ imx_gpio_pin_cfg_dir(CONFIG_SYS_FPGA_PWR, 1);
+
+ printf("Enable fpga power\n");
+
+ /* FPGA SUSPEND */
-+ imx_gpio_pin_set(CONFIG_SYS_FPGA_SUSPEND, 1);
-+ imx_gpio_pin_cfg_dir(CONFIG_SYS_FPGA_SUSPEND, 1);
++ imx_gpio_pin_set(CONFIG_SYS_FPGA_SUSPEND, 1);
++ imx_gpio_pin_cfg_dir(CONFIG_SYS_FPGA_SUSPEND, 1);
+
+ /* FPGA DONE */
+ imx_gpio_pin_cfg_dir(CONFIG_SYS_FPGA_DONE, 0);
+
+ /* FPGA INIT# */
-+ imx_gpio_pin_cfg_dir(CONFIG_SYS_FPGA_INIT, 0);
++ imx_gpio_pin_cfg_dir(CONFIG_SYS_FPGA_INIT, 0);
+
+ return cookie;
-+ }
-+
-+ /*
-+ * Set the FPGA's active-low program line to the specified level
-+ */
-+ int
-+ fpga_pgm_fn (int assert, int flush, int cookie)
-+ {
-+ PRINTF ("%s:%d: FPGA PROGRAM %s\n", __FUNCTION__, __LINE__,
-+ assert?"high":"low");
-+ imx_gpio_pin_set( CONFIG_SYS_FPGA_PRG, !assert);
-+ return assert;
-+ }
-+
-+ /*
-+ * Set the FPGA's active-high clock line to the specified level
-+ */
-+ int
-+ fpga_clk_fn (int assert_clk, int flush, int cookie)
-+ {
-+ return assert_clk;
-+ }
-+
-+ /*
-+ * Test the state of the active-low FPGA INIT line. Return 1 on INIT
-+ * asserted (low).
-+ */
-+ int
-+ fpga_init_fn (int cookie)
-+ {
-+ int value;
-+ PRINTF ("%s:%d: INIT check... \n", __FUNCTION__, __LINE__);
-+ value = imx_gpio_pin_get(CONFIG_SYS_FPGA_INIT);
-+ PRINTF ("init value read %x\n",value);
++}
++
++/*
++ * Set the FPGA's active-low program line to the specified level
++ */
++int
++fpga_pgm_fn (int assert, int flush, int cookie)
++{
++ PRINTF ("%s:%d: FPGA PROGRAM %s\n", __FUNCTION__, __LINE__,
++ assert?"high":"low");
++ imx_gpio_pin_set( CONFIG_SYS_FPGA_PRG, !assert);
++ return assert;
++}
++
++/*
++ * Set the FPGA's active-high clock line to the specified level
++ */
++int
++fpga_clk_fn (int assert_clk, int flush, int cookie)
++{
++ return assert_clk;
++}
++
++/*
++ * Test the state of the active-low FPGA INIT line. Return 1 on INIT
++ * asserted (low).
++ */
++int
++fpga_init_fn (int cookie)
++{
++ int value;
++ PRINTF ("%s:%d: INIT check... \n", __FUNCTION__, __LINE__);
++ value = imx_gpio_pin_get(CONFIG_SYS_FPGA_INIT);
++ PRINTF ("init value read %x\n",value);
+ if (value)
+ return 0;
+ return 1;
-+ }
-+
-+ /*
-+ * Test the state of the active-high FPGA DONE pin
-+ */
-+ int
-+ fpga_done_fn (int cookie)
-+ {
++}
++
++/*
++ * Test the state of the active-high FPGA DONE pin
++ */
++int
++fpga_done_fn (int cookie)
++{
+ int value;
+ value = imx_gpio_pin_get(CONFIG_SYS_FPGA_DONE);
-+ PRINTF ("%s:%d: DONE check... %s", __FUNCTION__, __LINE__,
-+ value?"high":"low");
-+ return(value?FPGA_SUCCESS:FPGA_FAIL);
-+ }
-+
-+ /*
-+ * Set the FPGA's wr line to the specified level
-+ */
-+ int
-+ fpga_wr_fn (int assert_write, int flush, int cookie)
-+ {
-+ return assert_write;
-+ }
-+
-+ int
-+ fpga_cs_fn (int assert_cs, int flush, int cookie)
-+ {
-+ return assert_cs;
-+ }
-+
-+ int
-+ fpga_rdata_fn ( unsigned char *data, int cookie )
-+ {
-+ PRINTF ("%s:%d: FPGA READ DATA %02X \n", __FUNCTION__, __LINE__,
-+ *((char*)CONFIG_SYS_FPGA_RDATA));
-+ *data = (unsigned char)((*((unsigned short*)CONFIG_SYS_FPGA_RDATA))&0x00FF);
-+ return *data;
-+ }
-+
-+ int
-+ fpga_wdata_fn ( unsigned char data, int cookie )
-+ {
-+ PRINTF ("%s:%d: FPGA WRITE DATA %02X \n", __FUNCTION__, __LINE__,
-+ data);
++ PRINTF ("%s:%d: DONE check... %s", __FUNCTION__, __LINE__,
++ value?"high":"low");
++ return(value?FPGA_SUCCESS:FPGA_FAIL);
++}
++
++/*
++ * Set the FPGA's wr line to the specified level
++ */
++int
++fpga_wr_fn (int assert_write, int flush, int cookie)
++{
++ return assert_write;
++}
++
++int
++fpga_cs_fn (int assert_cs, int flush, int cookie)
++{
++ return assert_cs;
++}
++
++int
++fpga_rdata_fn ( unsigned char *data, int cookie )
++{
++ PRINTF ("%s:%d: FPGA READ DATA %02X \n", __FUNCTION__, __LINE__,
++ *((char*)CONFIG_SYS_FPGA_RDATA));
++ *data = (unsigned char)((*((unsigned short*)CONFIG_SYS_FPGA_RDATA))&0x00FF);
++ return *data;
++}
++
++int
++fpga_wdata_fn ( unsigned char data, int cookie )
++{
++ PRINTF ("%s:%d: FPGA WRITE DATA %02X \n", __FUNCTION__, __LINE__,
++ data);
+ static u32 temp;
+ static u32 index = 0;
+
+ switch( index++ ){
+ case 0: temp = data << 8; break;
+ case 1: temp = temp + data; break;
-+ case 2: temp = temp + (data << 24); break;
-+ default:
-+ *((volatile unsigned long*)CONFIG_SYS_FPGA_WDATA) = temp + (data << 16);
-+ index = 0;
++ case 2: temp = temp + (data << 24); break;
++ default:
++ *((volatile unsigned long*)CONFIG_SYS_FPGA_WDATA) = temp + (data << 16);
++ index = 0;
+ break;
+ }
+
-+ return data;
-+ }
-+
-+ int
-+ fpga_abort_fn ( int cookie )
-+ {
-+ return cookie;
-+ }
-+
-+
-+ int
-+ fpga_busy_fn ( int cookie )
-+ {
-+ return 1;
-+ }
-+
-+ int
-+ fpga_post_fn (int cookie)
-+ {
-+ PRINTF ("%s:%d: FPGA POST \n", __FUNCTION__, __LINE__);
++ return data;
++}
++
++int
++fpga_abort_fn ( int cookie )
++{
++ return cookie;
++}
++
++
++int
++fpga_busy_fn ( int cookie )
++{
++ return 1;
++}
++
++int
++fpga_post_fn (int cookie)
++{
++ PRINTF ("%s:%d: FPGA POST \n", __FUNCTION__, __LINE__);
+ /* restore emi_clk_sel */
+ __REG(CCM_BASE_ADDR + CLKCTL_CBCDR) = temp_clk;
+ __REG(CONFIG_CS1RCR1_ADDR) = temp_rcr1;
+ __REG(CONFIG_CS1WCR1_ADDR) = temp_wcr1;
-+ return cookie;
-+ }
-+
-+ /*
-+ * Initialize the fpga. Return 1 on success, 0 on failure.
-+ */
-+ int
-+ APF51_init_fpga (u_char * buffer, size_t size)
-+ {
-+ char *autoload = getenv ("firmware_autoload");
-+
-+ int i,lout=0;
-+
++ return cookie;
++}
++
++/*
++ * Initialize the fpga. Return 1 on success, 0 on failure.
++ */
++int
++APF51_init_fpga (u_char * buffer, size_t size)
++{
++ char *autoload = getenv ("firmware_autoload");
++
++ int i,lout=0;
++
+ fpga_init();
-+
-+ for (i = 0; i < CONFIG_FPGA_COUNT; i++) {
-+ PRINTF ("%s:%d: Adding fpga %d\n", __FUNCTION__, __LINE__, i);
-+ fpga_add (fpga_xilinx, &fpga[i]);
-+ }
-+
-+ if ((size >= fpga[0].size) && ( autoload ) && (0 == strcmp(autoload, "1"))) {
-+ if (FPGA_SUCCESS != fpga_load( 0, (void *)buffer, size )) {
-+ lout = 1;
-+ printf("Firmware download failed!\n");
-+ }
-+ else
-+ printf("Firmware successfully programmed\n");
-+ }
-+ return lout;
-+ }
-+
-+ #endif /* CONFIG_FPGA */
++
++ for (i = 0; i < CONFIG_FPGA_COUNT; i++) {
++ PRINTF ("%s:%d: Adding fpga %d\n", __FUNCTION__, __LINE__, i);
++ fpga_add (fpga_xilinx, &fpga[i]);
++ }
++
++ if ((size >= fpga[0].size) && ( autoload ) && (0 == strcmp(autoload, "1"))) {
++ if (FPGA_SUCCESS != fpga_load( 0, (void *)buffer, size )) {
++ lout = 1;
++ printf("Firmware download failed!\n");
++ }
++ else
++ printf("Firmware successfully programmed\n");
++ }
++ return lout;
++}
++
++#endif /* CONFIG_FPGA */
hooks/post-receive
--
armadeus
|
|
From: Fabien M <fa...@us...> - 2010-12-21 12:58:55
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 4d6a3c36c47b62b77ba893b4174e97082c55fa0e (commit)
from 8e56d58ed2dc8ee75a5b6796889f8bcfb610bd61 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 4d6a3c36c47b62b77ba893b4174e97082c55fa0e
Author: Fabien Marteau <fab...@ar...>
Date: Tue Dec 21 13:58:33 2010 +0100
[u-boot] update apf51.h for weim registers configuration
-----------------------------------------------------------------------
Summary of changes:
.../device/armadeus/apf51/apf51-u-boot-2010.03.h | 110 ++++++++++++++++++++
1 files changed, 110 insertions(+), 0 deletions(-)
diff --git a/buildroot/target/device/armadeus/apf51/apf51-u-boot-2010.03.h b/buildroot/target/device/armadeus/apf51/apf51-u-boot-2010.03.h
index a428a38..34d6fc3 100644
--- a/buildroot/target/device/armadeus/apf51/apf51-u-boot-2010.03.h
+++ b/buildroot/target/device/armadeus/apf51/apf51-u-boot-2010.03.h
@@ -591,6 +591,116 @@
#define CONFIG_SYS_FPGA_DONE MX51_PIN_CSI2_D13
#define CONFIG_SYS_FPGA_SUSPEND MX51_PIN_DISPB2_SER_DIO
+#define CONFIG_FPGA_GCR1_VALUE 0x019100bf
+#define CONFIG_FPGA_GCR2_VALUE 0x00000000
+
+#define CONFIG_FPGA_RCR1_VALUE 0x04000010
+#define CONFIG_FPGA_RCR2_VALUE 0x00000000
+
+#define CONFIG_FPGA_WCR1_VALUE 0x03000008
+#define CONFIG_FPGA_WCR2_VALUE 0x00000000
+
+
+/*-----------------------------------------------------------------------
+ * WEIM - EIM
+ */
+/* Addresses */
+#define CONFIG_WCR_ADDR (WEIM_BASE_ADDR + 0X90)
+#define CONFIG_WIAR_ADDR (WEIM_BASE_ADDR + 0X94)
+#define CONFIG_EAR_ADDR (WEIM_BASE_ADDR + 0x98)
+
+#define CONFIG_CS1GCR1_ADDR (WEIM_BASE_ADDR + 0x18)
+#define CONFIG_CS2GCR1_ADDR (WEIM_BASE_ADDR + 0x30)
+#define CONFIG_CS3GCR1_ADDR (WEIM_BASE_ADDR + 0x48)
+#define CONFIG_CS4GCR1_ADDR (WEIM_BASE_ADDR + 0x60)
+#define CONFIG_CS5GCR1_ADDR (WEIM_BASE_ADDR + 0x78)
+
+#define CONFIG_CS1GCR2_ADDR (WEIM_BASE_ADDR + 0x1C)
+#define CONFIG_CS2GCR2_ADDR (WEIM_BASE_ADDR + 0x34)
+#define CONFIG_CS3GCR2_ADDR (WEIM_BASE_ADDR + 0x4C)
+#define CONFIG_CS4GCR2_ADDR (WEIM_BASE_ADDR + 0x64)
+#define CONFIG_CS5GCR2_ADDR (WEIM_BASE_ADDR + 0x7C)
+
+#define CONFIG_CS1RCR1_ADDR (WEIM_BASE_ADDR + 0x20)
+#define CONFIG_CS2RCR1_ADDR (WEIM_BASE_ADDR + 0x38)
+#define CONFIG_CS3RCR1_ADDR (WEIM_BASE_ADDR + 0x50)
+#define CONFIG_CS4RCR1_ADDR (WEIM_BASE_ADDR + 0x68)
+#define CONFIG_CS5RCR1_ADDR (WEIM_BASE_ADDR + 0x80)
+
+#define CONFIG_CS1RCR2_ADDR (WEIM_BASE_ADDR + 0x24)
+#define CONFIG_CS2RCR2_ADDR (WEIM_BASE_ADDR + 0x3C)
+#define CONFIG_CS3RCR2_ADDR (WEIM_BASE_ADDR + 0x54)
+#define CONFIG_CS4RCR2_ADDR (WEIM_BASE_ADDR + 0x6C)
+#define CONFIG_CS5RCR2_ADDR (WEIM_BASE_ADDR + 0x84)
+
+#define CONFIG_CS1WCR1_ADDR (WEIM_BASE_ADDR + 0x28)
+#define CONFIG_CS2WCR1_ADDR (WEIM_BASE_ADDR + 0x40)
+#define CONFIG_CS3WCR1_ADDR (WEIM_BASE_ADDR + 0x58)
+#define CONFIG_CS4WCR1_ADDR (WEIM_BASE_ADDR + 0x70)
+#define CONFIG_CS5WCR1_ADDR (WEIM_BASE_ADDR + 0x88)
+
+#define CONFIG_CS1WCR2_ADDR (WEIM_BASE_ADDR + 0x2C)
+#define CONFIG_CS2WCR2_ADDR (WEIM_BASE_ADDR + 0x44)
+#define CONFIG_CS3WCR2_ADDR (WEIM_BASE_ADDR + 0x5C)
+#define CONFIG_CS4WCR2_ADDR (WEIM_BASE_ADDR + 0x74)
+#define CONFIG_CS5WCR2_ADDR (WEIM_BASE_ADDR + 0x8C)
+
+/* Values */
+ /* force BCLK free run */
+#define CONFIG_WCR_VALUE 0x00000021
+#define CONFIG_WIAR_VALUE 0x00000010
+
+/* CS1 */
+#define CONFIG_CS1GCR1_VALUE CONFIG_FPGA_GCR1_VALUE
+#define CONFIG_CS1GCR2_VALUE CONFIG_FPGA_GCR2_VALUE
+
+#define CONFIG_CS1RCR1_VALUE CONFIG_FPGA_RCR1_VALUE
+#define CONFIG_CS1RCR2_VALUE CONFIG_FPGA_RCR2_VALUE
+
+#define CONFIG_CS1WCR1_VALUE CONFIG_FPGA_WCR1_VALUE
+#define CONFIG_CS1WCR2_VALUE CONFIG_FPGA_WCR2_VALUE
+
+/* CS2 */
+#define CONFIG_CS2GCR1_VALUE 0x00010080
+#define CONFIG_CS2GCR2_VALUE 0x00000000
+
+#define CONFIG_CS2RCR1_VALUE 0x00000000
+#define CONFIG_CS2RCR2_VALUE 0x00000000
+
+#define CONFIG_CS2WCR1_VALUE 0x00000000
+#define CONFIG_CS2WCR2_VALUE 0x00000000
+
+/* CS3 */
+#define CONFIG_CS3GCR1_VALUE 0x00010080
+#define CONFIG_CS3GCR2_VALUE 0x00000000
+
+#define CONFIG_CS3RCR1_VALUE 0x00000000
+#define CONFIG_CS3RCR2_VALUE 0x00000000
+
+#define CONFIG_CS3WCR1_VALUE 0x00000000
+#define CONFIG_CS3WCR2_VALUE 0x00000000
+
+/* CS4 */
+#define CONFIG_CS4GCR1_VALUE 0x00010080
+#define CONFIG_CS4GCR2_VALUE 0x00000000
+
+#define CONFIG_CS4RCR1_VALUE 0x00000000
+#define CONFIG_CS4RCR2_VALUE 0x00000000
+
+#define CONFIG_CS4WCR1_VALUE 0x00000000
+#define CONFIG_CS4WCR2_VALUE 0x00000000
+
+/* CS5 */
+#define CONFIG_CS5GCR1_VALUE 0x00010080
+#define CONFIG_CS5GCR2_VALUE 0x00000000
+
+#define CONFIG_CS5RCR1_VALUE 0x00000000
+#define CONFIG_CS5RCR2_VALUE 0x00000000
+
+#define CONFIG_CS5WCR1_VALUE 0x00000000
+#define CONFIG_CS5WCR2_VALUE 0x00000000
+
+
/**
* I2C Configs TODO TODO TODO TODO
*/
hooks/post-receive
--
armadeus
|
|
From: Fabien M <fa...@us...> - 2010-12-21 11:46:24
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 8e56d58ed2dc8ee75a5b6796889f8bcfb610bd61 (commit)
via 68598e131042cb337cf4fc7e89456ac64246a60d (commit)
via 03eed9afacc69da17139a82ab3e1bf8b4542d9d8 (commit)
from a82afb1dd6619624a8ad120f3ea601f02ad58676 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 8e56d58ed2dc8ee75a5b6796889f8bcfb610bd61
Merge: 68598e131042cb337cf4fc7e89456ac64246a60d a82afb1dd6619624a8ad120f3ea601f02ad58676
Author: Fabien Marteau <fab...@ar...>
Date: Tue Dec 21 12:45:55 2010 +0100
Merge branch 'master' of ssh://armadeus.git.sourceforge.net/gitroot/armadeus/armadeus
commit 68598e131042cb337cf4fc7e89456ac64246a60d
Author: Fabien Marteau <fab...@ar...>
Date: Tue Dec 21 12:45:34 2010 +0100
[u-boot] Configure WEIM chip select register at boot time
commit 03eed9afacc69da17139a82ab3e1bf8b4542d9d8
Author: Fabien Marteau <fab...@ar...>
Date: Tue Dec 21 09:44:25 2010 +0100
[u-boot] Adding 16bits access memory test program : mtest16
-----------------------------------------------------------------------
Summary of changes:
.../target/u-boot/u-boot-2010.03-401-apf51.patch | 141 +++++---
.../u-boot-2010.03-411-memtest_16bits_access.patch | 398 ++++++++++++++++++++
2 files changed, 493 insertions(+), 46 deletions(-)
create mode 100644 buildroot/target/u-boot/u-boot-2010.03-411-memtest_16bits_access.patch
diff --git a/buildroot/target/u-boot/u-boot-2010.03-401-apf51.patch b/buildroot/target/u-boot/u-boot-2010.03-401-apf51.patch
index 623ca70..1c6e715 100644
--- a/buildroot/target/u-boot/u-boot-2010.03-401-apf51.patch
+++ b/buildroot/target/u-boot/u-boot-2010.03-401-apf51.patch
@@ -1,9 +1,10 @@
-diff -purN u-boot-2010.03-ref/board/armadeus/apf51/apf51.c u-boot-2010.03/board/armadeus/apf51/apf51.c
---- u-boot-2010.03-ref/board/armadeus/apf51/apf51.c 1970-01-01 01:00:00.000000000 +0100
-+++ u-boot-2010.03/board/armadeus/apf51/apf51.c 2010-11-10 00:45:59.000000000 +0100
-@@ -0,0 +1,1071 @@
+Index: u-boot-2010.03/board/armadeus/apf51/apf51.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ u-boot-2010.03/board/armadeus/apf51/apf51.c 2010-12-21 12:15:00.000000000 +0100
+@@ -0,0 +1,1102 @@
+/*
-+ * (C) Copyright 2010 Eric Jarrige, Armadeus Project
++ * (C) Copyright 2010 Eric Jarrige, Armadeus Project
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
@@ -342,6 +343,48 @@ diff -purN u-boot-2010.03-ref/board/armadeus/apf51/apf51.c u-boot-2010.03/board/
+// missing in DS mxc_request_iomux(MX51_PIN_EIM_BCLK, IOMUX_CONFIG_ALT0);
+// missing in DS mxc_request_iomux(MX51_PIN_EIM_RW , IOMUX_CONFIG_ALT0);
+
++ /*
++ * Configure Register for each chip select
++ */
++ __REG(CONFIG_WCR_ADDR) = CONFIG_WCR_VALUE;
++ __REG(CONFIG_WIAR_ADDR) = CONFIG_WIAR_VALUE;
++
++ __REG(CONFIG_CS1GCR1_ADDR) = CONFIG_CS1GCR1_VALUE;
++ __REG(CONFIG_CS2GCR1_ADDR) = CONFIG_CS2GCR1_VALUE;
++ __REG(CONFIG_CS3GCR1_ADDR) = CONFIG_CS3GCR1_VALUE;
++ __REG(CONFIG_CS4GCR1_ADDR) = CONFIG_CS4GCR1_VALUE;
++ __REG(CONFIG_CS5GCR1_ADDR) = CONFIG_CS5GCR1_VALUE;
++
++ __REG(CONFIG_CS1GCR2_ADDR) = CONFIG_CS1GCR2_VALUE;
++ __REG(CONFIG_CS2GCR2_ADDR) = CONFIG_CS2GCR2_VALUE;
++ __REG(CONFIG_CS3GCR2_ADDR) = CONFIG_CS3GCR2_VALUE;
++ __REG(CONFIG_CS4GCR2_ADDR) = CONFIG_CS4GCR2_VALUE;
++ __REG(CONFIG_CS5GCR2_ADDR) = CONFIG_CS5GCR2_VALUE;
++
++ __REG(CONFIG_CS1RCR1_ADDR) = CONFIG_CS1RCR1_VALUE;
++ __REG(CONFIG_CS2RCR1_ADDR) = CONFIG_CS2RCR1_VALUE;
++ __REG(CONFIG_CS3RCR1_ADDR) = CONFIG_CS3RCR1_VALUE;
++ __REG(CONFIG_CS4RCR1_ADDR) = CONFIG_CS4RCR1_VALUE;
++ __REG(CONFIG_CS5RCR1_ADDR) = CONFIG_CS5RCR1_VALUE;
++
++ __REG(CONFIG_CS1RCR2_ADDR) = CONFIG_CS1RCR2_VALUE;
++ __REG(CONFIG_CS2RCR2_ADDR) = CONFIG_CS2RCR2_VALUE;
++ __REG(CONFIG_CS3RCR2_ADDR) = CONFIG_CS3RCR2_VALUE;
++ __REG(CONFIG_CS4RCR2_ADDR) = CONFIG_CS4RCR2_VALUE;
++ __REG(CONFIG_CS5RCR2_ADDR) = CONFIG_CS5RCR2_VALUE;
++
++ __REG(CONFIG_CS1WCR1_ADDR) = CONFIG_CS1WCR1_VALUE;
++ __REG(CONFIG_CS2WCR1_ADDR) = CONFIG_CS2WCR1_VALUE;
++ __REG(CONFIG_CS3WCR1_ADDR) = CONFIG_CS3WCR1_VALUE;
++ __REG(CONFIG_CS4WCR1_ADDR) = CONFIG_CS4WCR1_VALUE;
++ __REG(CONFIG_CS5WCR1_ADDR) = CONFIG_CS5WCR1_VALUE;
++
++ __REG(CONFIG_CS1WCR2_ADDR) = CONFIG_CS1WCR2_VALUE;
++ __REG(CONFIG_CS2WCR2_ADDR) = CONFIG_CS2WCR2_VALUE;
++ __REG(CONFIG_CS3WCR2_ADDR) = CONFIG_CS3WCR2_VALUE;
++ __REG(CONFIG_CS4WCR2_ADDR) = CONFIG_CS4WCR2_VALUE;
++ __REG(CONFIG_CS5WCR2_ADDR) = CONFIG_CS5WCR2_VALUE;
++
+}
+
+void setup_keypad(void)
@@ -431,17 +474,6 @@ diff -purN u-boot-2010.03-ref/board/armadeus/apf51/apf51.c u-boot-2010.03/board/
+ mxc_request_iomux(CONFIG_SYS_FPGA_INIT, IOMUX_CONFIG_ALT3);
+ mxc_iomux_set_pad(CONFIG_SYS_FPGA_INIT, GPIO_PAD_CFG);
+
-+ #define CS1GCR1 0x18
-+ #define CS1WCR1 0x28
-+ #define WCR 0x90
-+
-+ /* set 16bits bus size, muxed synchronous mode */
-+ __REG(WEIM_BASE_ADDR + CS1GCR1) = 0x019100bf;
-+ /* adjust CS1 timings */
-+ __REG(WEIM_BASE_ADDR + CS1WCR1) = 0x01000008; /* full speed write */
-+
-+ /* force BCLK free run */
-+ __REG(WEIM_BASE_ADDR + WCR) = 0x00000021;
+}
+
+void setup_display(void)
@@ -1073,15 +1105,17 @@ diff -purN u-boot-2010.03-ref/board/armadeus/apf51/apf51.c u-boot-2010.03/board/
+);
+
+
-diff -purN u-boot-2010.03-ref/board/armadeus/apf51/config.mk u-boot-2010.03/board/armadeus/apf51/config.mk
---- u-boot-2010.03-ref/board/armadeus/apf51/config.mk 1970-01-01 01:00:00.000000000 +0100
-+++ u-boot-2010.03/board/armadeus/apf51/config.mk 2010-09-16 22:55:20.000000000 +0200
+Index: u-boot-2010.03/board/armadeus/apf51/config.mk
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ u-boot-2010.03/board/armadeus/apf51/config.mk 2010-12-20 17:49:14.000000000 +0100
@@ -0,0 +1,2 @@
+LDSCRIPT := $(SRCTREE)/board/$(BOARDDIR)/u-boot.lds
+TEXT_BASE = 0x9FF00000
-diff -purN u-boot-2010.03-ref/board/armadeus/apf51/Makefile u-boot-2010.03/board/armadeus/apf51/Makefile
---- u-boot-2010.03-ref/board/armadeus/apf51/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ u-boot-2010.03/board/armadeus/apf51/Makefile 2010-09-16 19:04:20.000000000 +0200
+Index: u-boot-2010.03/board/armadeus/apf51/Makefile
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ u-boot-2010.03/board/armadeus/apf51/Makefile 2010-12-20 17:49:14.000000000 +0100
@@ -0,0 +1,50 @@
+#
+# Copyright (C) 2007, Guennadi Liakhovetski <lg...@de...>
@@ -1133,9 +1167,10 @@ diff -purN u-boot-2010.03-ref/board/armadeus/apf51/Makefile u-boot-2010.03/board
+sinclude $(obj).depend
+
+#########################################################################
-diff -purN u-boot-2010.03-ref/board/armadeus/apf51/u-boot.lds u-boot-2010.03/board/armadeus/apf51/u-boot.lds
---- u-boot-2010.03-ref/board/armadeus/apf51/u-boot.lds 1970-01-01 01:00:00.000000000 +0100
-+++ u-boot-2010.03/board/armadeus/apf51/u-boot.lds 2010-09-16 22:10:12.000000000 +0200
+Index: u-boot-2010.03/board/armadeus/apf51/u-boot.lds
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ u-boot-2010.03/board/armadeus/apf51/u-boot.lds 2010-12-20 17:49:14.000000000 +0100
@@ -0,0 +1,64 @@
+/*
+ * January 2004 - Changed to support H4 device
@@ -1201,10 +1236,11 @@ diff -purN u-boot-2010.03-ref/board/armadeus/apf51/u-boot.lds u-boot-2010.03/boa
+ .bss : { *(.bss) }
+ _end = .;
+}
-diff -purN u-boot-2010.03-ref/include/asm-arm/mach-types.h u-boot-2010.03/include/asm-arm/mach-types.h
---- u-boot-2010.03-ref/include/asm-arm/mach-types.h 2010-03-31 23:54:39.000000000 +0200
-+++ u-boot-2010.03/include/asm-arm/mach-types.h 2010-05-24 22:38:29.000000000 +0200
-@@ -2699,6 +2699,7 @@ extern unsigned int __machine_arch_type;
+Index: u-boot-2010.03/include/asm-arm/mach-types.h
+===================================================================
+--- u-boot-2010.03.orig/include/asm-arm/mach-types.h 2010-03-31 23:54:39.000000000 +0200
++++ u-boot-2010.03/include/asm-arm/mach-types.h 2010-12-20 17:49:14.000000000 +0100
+@@ -2699,6 +2699,7 @@
#define MACH_TYPE_MX53_EVK 2716
#define MACH_TYPE_IGEP0030 2717
#define MACH_TYPE_AXELL_H40_H50_CTRL 2718
@@ -1212,7 +1248,7 @@ diff -purN u-boot-2010.03-ref/include/asm-arm/mach-types.h u-boot-2010.03/includ
#ifdef CONFIG_ARCH_EBSA110
# ifdef machine_arch_type
-@@ -34944,6 +34945,18 @@ extern unsigned int __machine_arch_type;
+@@ -34944,6 +34945,18 @@
# define machine_is_axell_h40_h50_ctrl() (0)
#endif
@@ -1231,10 +1267,11 @@ diff -purN u-boot-2010.03-ref/include/asm-arm/mach-types.h u-boot-2010.03/includ
/*
* These have not yet been registered
*/
-diff -purN u-boot-2010.03-ref/MAKEALL u-boot-2010.03/MAKEALL
---- u-boot-2010.03-ref/MAKEALL 2010-09-16 23:11:51.000000000 +0200
-+++ u-boot-2010.03/MAKEALL 2010-05-16 11:05:33.000000000 +0200
-@@ -549,6 +549,7 @@ LIST_ARM9=" \
+Index: u-boot-2010.03/MAKEALL
+===================================================================
+--- u-boot-2010.03.orig/MAKEALL 2010-12-20 17:49:13.000000000 +0100
++++ u-boot-2010.03/MAKEALL 2010-12-20 17:49:14.000000000 +0100
+@@ -549,6 +549,7 @@
ap946es \
ap966 \
apf27 \
@@ -1242,10 +1279,11 @@ diff -purN u-boot-2010.03-ref/MAKEALL u-boot-2010.03/MAKEALL
cp920t \
cp922_XA10 \
cp926ejs \
-diff -purN u-boot-2010.03-ref/Makefile u-boot-2010.03/Makefile
---- u-boot-2010.03-ref/Makefile 2010-09-16 23:11:51.000000000 +0200
-+++ u-boot-2010.03/Makefile 2010-05-16 11:10:10.000000000 +0200
-@@ -2735,6 +2735,9 @@ afeb9260_config: unconfig
+Index: u-boot-2010.03/Makefile
+===================================================================
+--- u-boot-2010.03.orig/Makefile 2010-12-20 17:49:13.000000000 +0100
++++ u-boot-2010.03/Makefile 2010-12-20 17:49:14.000000000 +0100
+@@ -2735,6 +2735,9 @@
apf27_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm926ejs apf27 armadeus mx27
@@ -1255,9 +1293,10 @@ diff -purN u-boot-2010.03-ref/Makefile u-boot-2010.03/Makefile
at91cap9adk_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm926ejs at91cap9adk atmel at91
-diff -purN u-boot-2010.03-ref/board/armadeus/apf51/fpga.h u-boot-2010.03/board/armadeus/apf51/fpga.h
---- u-boot-2010.03-ref/board/armadeus/apf51/fpga.h 1970-01-01 01:00:00.000000000 +0100
-+++ u-boot-2010.03/board/armadeus/apf51/fpga.h 2010-09-16 22:10:12.000000000 +0200
+Index: u-boot-2010.03/board/armadeus/apf51/fpga.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ u-boot-2010.03/board/armadeus/apf51/fpga.h 2010-12-20 17:49:14.000000000 +0100
@@ -0,0 +1,39 @@
+/*
+ * (C) Copyright 2002-2010
@@ -1298,10 +1337,11 @@ diff -purN u-boot-2010.03-ref/board/armadeus/apf51/fpga.h u-boot-2010.03/board/a
+extern int fpga_abort_fn (int cookie);
+extern int fpga_post_fn (int cookie);
+extern int fpga_busy_fn (int cookie);
-diff -purN u-boot-2010.03-ref/board/armadeus/apf51/fpga.c u-boot-2010.03/board/armadeus/apf51/fpga.c
---- u-boot-2010.03-ref/board/armadeus/apf51/fpga.c 1970-01-01 01:00:00.000000000 +0100
-+++ u-boot-2010.03/board/armadeus/apf51/fpga.c 2010-09-16 22:10:12.000000000 +0200
-@@ -0,0 +1,261 @@
+Index: u-boot-2010.03/board/armadeus/apf51/fpga.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ u-boot-2010.03/board/armadeus/apf51/fpga.c 2010-12-21 12:42:04.000000000 +0100
+@@ -0,0 +1,270 @@
+ /*
+ * (C) Copyright 2002-2010
+ * Nicolas Colombain <nic...@ar...>
@@ -1351,6 +1391,8 @@ diff -purN u-boot-2010.03-ref/board/armadeus/apf51/fpga.c u-boot-2010.03/board/a
+ extern int imx_gpio_pin_get(unsigned int pin);
+
+ u32 temp_clk; /* use to restore the emi_clk_sel after donwload */
++ u32 temp_rcr1;
++ u32 temp_wcr1;
+
+ /* Note that these are pointers to code that is in Flash. They will be
+ * relocated at runtime.
@@ -1393,6 +1435,12 @@ diff -purN u-boot-2010.03-ref/board/armadeus/apf51/fpga.c u-boot-2010.03/board/a
+ temp_clk = __REG(CCM_BASE_ADDR + CLKCTL_CBCDR);
+ __REG(CCM_BASE_ADDR + CLKCTL_CBCDR) = temp_clk | EMI_CLK_SEL;
+
++ temp_rcr1 = __REG(CONFIG_CS1RCR1_ADDR);
++ __REG(CONFIG_CS1RCR1_ADDR) = 0x01000010;
++
++ temp_wcr1 = __REG(CONFIG_CS1WCR1_ADDR);
++ __REG(CONFIG_CS1WCR1_ADDR) = 0x01000008;
++
+ /* FPGA PROG */
+ imx_gpio_pin_set(CONFIG_SYS_FPGA_PRG, 1);
+ imx_gpio_pin_cfg_dir(CONFIG_SYS_FPGA_PRG, 1);
@@ -1530,7 +1578,8 @@ diff -purN u-boot-2010.03-ref/board/armadeus/apf51/fpga.c u-boot-2010.03/board/a
+ PRINTF ("%s:%d: FPGA POST \n", __FUNCTION__, __LINE__);
+ /* restore emi_clk_sel */
+ __REG(CCM_BASE_ADDR + CLKCTL_CBCDR) = temp_clk;
-+
++ __REG(CONFIG_CS1RCR1_ADDR) = temp_rcr1;
++ __REG(CONFIG_CS1WCR1_ADDR) = temp_wcr1;
+ return cookie;
+ }
+
diff --git a/buildroot/target/u-boot/u-boot-2010.03-411-memtest_16bits_access.patch b/buildroot/target/u-boot/u-boot-2010.03-411-memtest_16bits_access.patch
new file mode 100644
index 0000000..6d03409
--- /dev/null
+++ b/buildroot/target/u-boot/u-boot-2010.03-411-memtest_16bits_access.patch
@@ -0,0 +1,398 @@
+Index: u-boot-2010.03/common/cmd_mem.c
+===================================================================
+--- u-boot-2010.03.orig/common/cmd_mem.c 2010-12-20 17:52:41.000000000 +0100
++++ u-boot-2010.03/common/cmd_mem.c 2010-12-20 18:17:30.000000000 +0100
+@@ -26,7 +26,6 @@
+ *
+ * Copied from FADS ROM, Dan Malek (dm...@jl...)
+ */
+-
+ #include <common.h>
+ #include <command.h>
+ #ifdef CONFIG_HAS_DATAFLASH
+@@ -977,6 +976,362 @@
+ }
+
+
++/*
++ * Perform a memory test. A more complete alternative test can be
++ * configured using CONFIG_SYS_ALT_MEMTEST. The complete test loops until
++ * interrupted by ctrl-c or by a failure of one of the sub-tests.
++ */
++int do_mem_mtest16 (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
++{
++ vu_short *addr, *start, *end;
++ ushort val;
++ ushort readback;
++ ushort errs = 0;
++ int iterations = 1;
++ int iteration_limit;
++
++#if defined(CONFIG_SYS_ALT_MEMTEST)
++ vu_short len;
++ vu_short offset;
++ vu_short test_offset;
++ vu_short pattern;
++ vu_short temp;
++ vu_short anti_pattern;
++ vu_short num_words;
++#if defined(CONFIG_SYS_MEMTEST_SCRATCH)
++ vu_short *dummy = (vu_long*)CONFIG_SYS_MEMTEST_SCRATCH;
++#else
++ vu_short *dummy = 0; /* yes, this is address 0x0, not NULL */
++#endif
++ int j;
++
++ static const ushort bitpattern[] = {
++ 0x0001, /* single bit */
++ 0x0003, /* two adjacent bits */
++ 0x0007, /* three adjacent bits */
++ 0x000F, /* four adjacent bits */
++ 0x0005, /* two non-adjacent bits */
++ 0x0015, /* three non-adjacent bits */
++ 0x0055, /* four non-adjacent bits */
++ 0xaaaa, /* alternating 1/0 */
++ };
++#else
++ ulong incr;
++ ushort pattern;
++#endif
++
++ if (argc > 1)
++ start = (ulong *)simple_strtoul(argv[1], NULL, 16);
++ else
++ start = (ulong *)CONFIG_SYS_MEMTEST_START;
++
++ if (argc > 2)
++ end = (ulong *)simple_strtoul(argv[2], NULL, 16);
++ else
++ end = (ulong *)(CONFIG_SYS_MEMTEST_END);
++
++ if (argc > 3)
++ pattern = (ulong)simple_strtoul(argv[3], NULL, 16);
++ else
++ pattern = 0;
++
++ if (argc > 4)
++ iteration_limit = (ulong)simple_strtoul(argv[4], NULL, 16);
++ else
++ iteration_limit = 0;
++
++#if defined(CONFIG_SYS_ALT_MEMTEST)
++ printf ("Testing %04x ... %04x:\n", (uint)start, (uint)end);
++ PRINTF("%s:%d: start 0x%p end 0x%p\n",
++ __FUNCTION__, __LINE__, start, end);
++
++ for (;;) {
++ if (ctrlc()) {
++ putc ('\n');
++ return 1;
++ }
++
++
++ if (iteration_limit && iterations > iteration_limit) {
++ printf("Tested %d iteration(s) with %lu errors.\n",
++ iterations-1, errs);
++ return errs != 0;
++ }
++
++ printf("Iteration: %6d\r", iterations);
++ PRINTF("\n");
++ iterations++;
++
++ /*
++ * Data line test: write a pattern to the first
++ * location, write the 1's complement to a 'parking'
++ * address (changes the state of the data bus so a
++ * floating bus doen't give a false OK), and then
++ * read the value back. Note that we read it back
++ * into a variable because the next time we read it,
++ * it might be right (been there, tough to explain to
++ * the quality guys why it prints a failure when the
++ * "is" and "should be" are obviously the same in the
++ * error message).
++ *
++ * Rather than exhaustively testing, we test some
++ * patterns by shifting '1' bits through a field of
++ * '0's and '0' bits through a field of '1's (i.e.
++ * pattern and ~pattern).
++ */
++ addr = start;
++ for (j = 0; j < sizeof(bitpattern)/sizeof(bitpattern[0]); j++) {
++ val = bitpattern[j];
++ for(; val != 0; val <<= 1) {
++ *addr = val;
++ *dummy = ~val; /* clear the test data off of the bus */
++ readback = *addr;
++ if(readback != val) {
++ printf ("FAILURE (data line): "
++ "expected %04x, actual %04x\n",
++ val, readback);
++ errs++;
++ if (ctrlc()) {
++ putc ('\n');
++ return 1;
++ }
++ }
++ *addr = ~val;
++ *dummy = val;
++ readback = *addr;
++ if(readback != ~val) {
++ printf ("FAILURE (data line): "
++ "Is %04x, should be %04x\n",
++ readback, ~val);
++ errs++;
++ if (ctrlc()) {
++ putc ('\n');
++ return 1;
++ }
++ }
++ }
++ }
++
++ /*
++ * Based on code whose Original Author and Copyright
++ * information follows: Copyright (c) 1998 by Michael
++ * Barr. This software is placed into the public
++ * domain and may be used for any purpose. However,
++ * this notice must not be changed or removed and no
++ * warranty is either expressed or implied by its
++ * publication or distribution.
++ */
++
++ /*
++ * Address line test
++ *
++ * Description: Test the address bus wiring in a
++ * memory region by performing a walking
++ * 1's test on the relevant bits of the
++ * address and checking for aliasing.
++ * This test will find single-bit
++ * address failures such as stuck -high,
++ * stuck-low, and shorted pins. The base
++ * address and size of the region are
++ * selected by the caller.
++ *
++ * Notes: For best results, the selected base
++ * address should have enough LSB 0's to
++ * guarantee single address bit changes.
++ * For example, to test a 64-Kbyte
++ * region, select a base address on a
++ * 64-Kbyte boundary. Also, select the
++ * region size as a power-of-two if at
++ * all possible.
++ *
++ * Returns: 0 if the test succeeds, 1 if the test fails.
++ */
++ len = ((ulong)end - (ulong)start)/sizeof(vu_long);
++ pattern = (vu_long) 0xaaaaaaaa;
++ anti_pattern = (vu_long) 0x55555555;
++
++ PRINTF("%s:%d: length = 0x%.4x\n",
++ __FUNCTION__, __LINE__,
++ len);
++ /*
++ * Write the default pattern at each of the
++ * power-of-two offsets.
++ */
++ for (offset = 1; offset < len; offset <<= 1) {
++ start[offset] = pattern;
++ }
++
++ /*
++ * Check for address bits stuck high.
++ */
++ test_offset = 0;
++ start[test_offset] = anti_pattern;
++
++ for (offset = 1; offset < len; offset <<= 1) {
++ temp = start[offset];
++ if (temp != pattern) {
++ printf ("\nFAILURE: Address bit stuck high @ 0x%.4x:"
++ " expected 0x%.4x, actual 0x%.4x\n",
++ (ulong)&start[offset], pattern, temp);
++ errs++;
++ if (ctrlc()) {
++ putc ('\n');
++ return 1;
++ }
++ }
++ }
++ start[test_offset] = pattern;
++ WATCHDOG_RESET();
++
++ /*
++ * Check for addr bits stuck low or shorted.
++ */
++ for (test_offset = 1; test_offset < len; test_offset <<= 1) {
++ start[test_offset] = anti_pattern;
++
++ for (offset = 1; offset < len; offset <<= 1) {
++ temp = start[offset];
++ if ((temp != pattern) && (offset != test_offset)) {
++ printf ("\nFAILURE: Address bit stuck low or shorted @"
++ " 0x%.4x: expected 0x%.4x, actual 0x%.4x\n",
++ (ulong)&start[offset], pattern, temp);
++ errs++;
++ if (ctrlc()) {
++ putc ('\n');
++ return 1;
++ }
++ }
++ }
++ start[test_offset] = pattern;
++ }
++
++ /*
++ * Description: Test the integrity of a physical
++ * memory device by performing an
++ * increment/decrement test over the
++ * entire region. In the process every
++ * storage bit in the device is tested
++ * as a zero and a one. The base address
++ * and the size of the region are
++ * selected by the caller.
++ *
++ * Returns: 0 if the test succeeds, 1 if the test fails.
++ */
++ num_words = ((ulong)end - (ulong)start)/sizeof(vu_long) + 1;
++
++ /*
++ * Fill memory with a known pattern.
++ */
++ for (pattern = 1, offset = 0; offset < num_words; pattern++, offset++) {
++ WATCHDOG_RESET();
++ start[offset] = pattern;
++ }
++
++ /*
++ * Check each location and invert it for the second pass.
++ */
++ for (pattern = 1, offset = 0; offset < num_words; pattern++, offset++) {
++ WATCHDOG_RESET();
++ temp = start[offset];
++ if (temp != pattern) {
++ printf ("\nFAILURE (read/write) @ 0x%.4x:"
++ " expected 0x%.4x, actual 0x%.4x)\n",
++ (ulong)&start[offset], pattern, temp);
++ errs++;
++ if (ctrlc()) {
++ putc ('\n');
++ return 1;
++ }
++ }
++
++ anti_pattern = ~pattern;
++ start[offset] = anti_pattern;
++ }
++
++ /*
++ * Check each location for the inverted pattern and zero it.
++ */
++ for (pattern = 1, offset = 0; offset < num_words; pattern++, offset++) {
++ WATCHDOG_RESET();
++ anti_pattern = ~pattern;
++ temp = start[offset];
++ if (temp != anti_pattern) {
++ printf ("\nFAILURE (read/write): @ 0x%.4x:"
++ " expected 0x%.4x, actual 0x%.4x)\n",
++ (ulong)&start[offset], anti_pattern, temp);
++ errs++;
++ if (ctrlc()) {
++ putc ('\n');
++ return 1;
++ }
++ }
++ start[offset] = 0;
++ }
++ }
++
++#else /* The original, quickie test */
++ incr = 1;
++ for (;;) {
++ if (ctrlc()) {
++ putc ('\n');
++ return 1;
++ }
++
++ if (iteration_limit && iterations > iteration_limit) {
++ printf("Tested %d iteration(s) with %lu errors.\n",
++ iterations-1, errs);
++ return errs != 0;
++ }
++ ++iterations;
++
++ printf ("\rPattern %04X Writing..."
++ "%12s"
++ "\b\b\b\b\b\b\b\b\b\b",
++ pattern, "");
++
++ for (addr=start,val=pattern; addr<end; addr++) {
++ WATCHDOG_RESET();
++ *addr = val;
++ val += incr;
++ }
++
++ puts ("Reading...");
++
++ for (addr=start,val=pattern; addr<end; addr++) {
++ WATCHDOG_RESET();
++ readback = *addr;
++ if (readback != val) {
++ printf ("\nMem error @ 0x%08X: "
++ "found %04X, expected %04X\n",
++ (uint)addr, readback, val);
++ errs++;
++ if (ctrlc()) {
++ putc ('\n');
++ return 1;
++ }
++ }
++ val += incr;
++ }
++
++ /*
++ * Flip the pattern each time to make lots of zeros and
++ * then, the next time, lots of ones. We decrement
++ * the "negative" patterns and increment the "positive"
++ * patterns to preserve this feature.
++ */
++ if(pattern & 0x80000000) {
++ pattern = -pattern; /* complement & increment */
++ }
++ else {
++ pattern = ~pattern;
++ }
++ incr = -incr;
++ }
++#endif
++ return 0; /* not reached */
++}
++
++
+ /* Modify memory.
+ *
+ * Syntax:
+@@ -1035,7 +1390,7 @@
+ * the next value. A non-converted value exits.
+ */
+ do {
+- printf("%08lx:", addr);
++ printf("%04x:", addr);
+ if (size == 4)
+ printf(" %08x", *((uint *)addr));
+ else if (size == 2)
+@@ -1333,6 +1688,13 @@
+ "[start [end [pattern [iterations]]]]"
+ );
+
++U_BOOT_CMD(
++ mtest16, 5, 1, do_mem_mtest16,
++ "simple RAM read/write 16 bits test",
++ "[start [end [pattern [iterations]]]]"
++);
++
++
+ #ifdef CONFIG_MX_CYCLIC
+ U_BOOT_CMD(
+ mdc, 4, 1, do_mem_mdc,
hooks/post-receive
--
armadeus
|
|
From: Gwenhael <gwe...@us...> - 2010-12-18 08:54:26
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via a82afb1dd6619624a8ad120f3ea601f02ad58676 (commit)
via c3c3e221430b98e6ff34d98e6dbb72cfd08ffd3a (commit)
via 8c4c9fd0938d05522c08368674d650fc376384f2 (commit)
via 4f15b5166c14545e74ca1961cf27cfadc08b3c23 (commit)
from ff5bb7ff3b94909a3c7a89884618042420f9cff2 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit a82afb1dd6619624a8ad120f3ea601f02ad58676
Merge: c3c3e221430b98e6ff34d98e6dbb72cfd08ffd3a ff5bb7ff3b94909a3c7a89884618042420f9cff2
Author: gwenhael <gw...@tr...>
Date: Sat Dec 18 09:57:02 2010 +0100
Merge branch 'master' of ssh://armadeus.git.sourceforge.net/gitroot/armadeus/armadeus
commit c3c3e221430b98e6ff34d98e6dbb72cfd08ffd3a
Author: gwenhael <gw...@tr...>
Date: Sat Dec 18 09:56:16 2010 +0100
[LINUX] 2.6.36: adapt patch 074-armadeus-tsc2102-touchscreen.patch from 2.6.29
commit 8c4c9fd0938d05522c08368674d650fc376384f2
Author: gwenhael <gw...@tr...>
Date: Sat Dec 18 09:55:14 2010 +0100
[LINUX] 2.6.36: imx_udc: allows to get usb clock
commit 4f15b5166c14545e74ca1961cf27cfadc08b3c23
Author: gwenhael <gw...@tr...>
Date: Sat Dec 18 09:52:34 2010 +0100
[LINUX] 2.6.36: import patches 037, 038, 063, 073, 074-armadeus-tsc2102-touchscreen-add_driver_to_linux_build_system.patch from 2.6.29
-----------------------------------------------------------------------
Summary of changes:
.../030-armadeus-imx_udc-change_clk_get.patch | 12 +++++++++
...7-armadeus-imx_udc-add_printk_when_probed.patch | 8 +++---
...s-imx_udc-prevent_crash_after_soft_reboot.patch | 10 +++---
.../063-armadeus-max1027-add_max1027_include.patch | 8 +++---
.../{2.6.29 => 2.6.36}/073-armadeus-tsc2102.patch | 13 +++------
...02_integrate_driver_to_linux_build_system.patch | 27 ++++++++++++++++++++
...chscreen-add_driver_to_linux_build_system.patch | 12 ++++----
.../074-armadeus-tsc2102-touchscreen.patch | 15 ++++++-----
8 files changed, 71 insertions(+), 34 deletions(-)
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/030-armadeus-imx_udc-change_clk_get.patch
copy buildroot/target/device/armadeus/linux/kernel-patches/{2.6.29 => 2.6.36}/037-armadeus-imx_udc-add_printk_when_probed.patch (66%)
copy buildroot/target/device/armadeus/linux/kernel-patches/{2.6.29 => 2.6.36}/038-armadeus-imx_udc-prevent_crash_after_soft_reboot.patch (70%)
copy buildroot/target/device/armadeus/linux/kernel-patches/{2.6.29 => 2.6.36}/063-armadeus-max1027-add_max1027_include.patch (91%)
copy buildroot/target/device/armadeus/linux/kernel-patches/{2.6.29 => 2.6.36}/073-armadeus-tsc2102.patch (98%)
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/073-armadeus-tsc2102_integrate_driver_to_linux_build_system.patch
copy buildroot/target/device/armadeus/linux/kernel-patches/{2.6.29 => 2.6.36}/074-armadeus-tsc2102-touchscreen-add_driver_to_linux_build_system.patch (71%)
copy buildroot/target/device/armadeus/linux/kernel-patches/{2.6.27.13 => 2.6.36}/074-armadeus-tsc2102-touchscreen.patch (88%)
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/030-armadeus-imx_udc-change_clk_get.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/030-armadeus-imx_udc-change_clk_get.patch
new file mode 100644
index 0000000..7d63721
--- /dev/null
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/030-armadeus-imx_udc-change_clk_get.patch
@@ -0,0 +1,12 @@
+The usb clock is now register with device name.
+--- a/drivers/usb/gadget/imx_udc.c 2010-10-20 22:30:22.000000000 +0200
++++ b/drivers/usb/gadget/imx_udc.c 2010-12-05 11:19:47.000000000 +0100
+@@ -1438,7 +1438,7 @@
+ goto fail1;
+ }
+
+- clk = clk_get(NULL, "usbd_clk");
++ clk = clk_get(&pdev->dev, NULL);
+ if (IS_ERR(clk)) {
+ ret = PTR_ERR(clk);
+ dev_err(&pdev->dev, "can't get USB clock\n");
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/037-armadeus-imx_udc-add_printk_when_probed.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/037-armadeus-imx_udc-add_printk_when_probed.patch
similarity index 66%
copy from buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/037-armadeus-imx_udc-add_printk_when_probed.patch
copy to buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/037-armadeus-imx_udc-add_printk_when_probed.patch
index 27d6f52..419b742 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/037-armadeus-imx_udc-add_printk_when_probed.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/037-armadeus-imx_udc-add_printk_when_probed.patch
@@ -2,11 +2,11 @@ Needed by Armadeus UDC test to know if driver is up or not.
Signed-off-by: Julien Boibessot <jul...@ar...>
-Index: linux-2.6.29/drivers/usb/gadget/imx_udc.c
+Index: linux-2.6.36/drivers/usb/gadget/imx_udc.c
===================================================================
---- linux-2.6.29.orig/drivers/usb/gadget/imx_udc.c 2009-05-18 16:42:45.000000000 +0200
-+++ linux-2.6.29/drivers/usb/gadget/imx_udc.c 2009-05-18 16:42:51.000000000 +0200
-@@ -1486,6 +1486,7 @@
+--- linux-2.6.36.orig/drivers/usb/gadget/imx_udc.c 2009-05-18 16:42:45.000000000 +0200
++++ linux-2.6.36/drivers/usb/gadget/imx_udc.c 2009-05-18 16:42:51.000000000 +0200
+@@ -1498,6 +1498,7 @@
imx_usb->timer.function = handle_config;
imx_usb->timer.data = (unsigned long)imx_usb;
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/038-armadeus-imx_udc-prevent_crash_after_soft_reboot.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/038-armadeus-imx_udc-prevent_crash_after_soft_reboot.patch
similarity index 70%
copy from buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/038-armadeus-imx_udc-prevent_crash_after_soft_reboot.patch
copy to buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/038-armadeus-imx_udc-prevent_crash_after_soft_reboot.patch
index 4ea125b..4ef6bcf 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/038-armadeus-imx_udc-prevent_crash_after_soft_reboot.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/038-armadeus-imx_udc-prevent_crash_after_soft_reboot.patch
@@ -5,11 +5,11 @@ So this patch moves imx_usb->base definition at the right place.
Signed-off-by: Julien Boibessot <jul...@ar...>
-Index: linux-2.6.29.4/drivers/usb/gadget/imx_udc.c
+Index: linux-2.6.36/drivers/usb/gadget/imx_udc.c
===================================================================
---- linux-2.6.29.4.orig/drivers/usb/gadget/imx_udc.c 2009-06-26 21:31:29.000000000 +0200
-+++ linux-2.6.29.4/drivers/usb/gadget/imx_udc.c 2009-06-26 21:32:24.000000000 +0200
-@@ -1455,6 +1455,7 @@
+--- linux-2.6.36.orig/drivers/usb/gadget/imx_udc.c 2009-06-26 21:31:29.000000000 +0200
++++ linux-2.6.36/drivers/usb/gadget/imx_udc.c 2009-06-26 21:32:24.000000000 +0200
+@@ -1467,6 +1467,7 @@
}
}
@@ -17,7 +17,7 @@ Index: linux-2.6.29.4/drivers/usb/gadget/imx_udc.c
for (i = 0; i < IMX_USB_NB_EP + 1; i++) {
ret = request_irq(imx_usb->usbd_int[i], intr_handler(i),
IRQF_DISABLED, driver_name, imx_usb);
-@@ -1468,7 +1469,6 @@
+@@ -1480,7 +1481,6 @@
}
imx_usb->res = res;
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/063-armadeus-max1027-add_max1027_include.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/063-armadeus-max1027-add_max1027_include.patch
similarity index 91%
copy from buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/063-armadeus-max1027-add_max1027_include.patch
copy to buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/063-armadeus-max1027-add_max1027_include.patch
index 8597057..9dafb8a 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/063-armadeus-max1027-add_max1027_include.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/063-armadeus-max1027-add_max1027_include.patch
@@ -1,7 +1,7 @@
-Index: linux-2.6.29.6/include/linux/spi/max1027.h
+Index: linux-2.6.36/include/linux/spi/max1027.h
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.29.6/include/linux/spi/max1027.h 2010-03-11 16:42:01.000000000 +0100
+--- /dev/null 2010-11-28 19:42:11.148000001 +0100
++++ b/include/linux/spi/max1027.h 2010-12-18 09:13:38.000000000 +0100
@@ -0,0 +1,71 @@
+/*
+ * include/linux/spi/max1027.h
@@ -67,7 +67,7 @@ Index: linux-2.6.29.6/include/linux/spi/max1027.h
+ u8 conv; /* initial conversion register value*/
+ u8 setup; /* initial setup register value */
+ u8 avg; /* initial average register value */
-+ int cnvst_pin; /*gpio to start conversion. -1 for software start */
++ int cnvst_pin; /*gpio to start conversion. -1 for software start */
+ int (*init)(struct spi_device *spi);
+ int (*exit)(struct spi_device *spi);
+};
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/073-armadeus-tsc2102.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/073-armadeus-tsc2102.patch
similarity index 98%
copy from buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/073-armadeus-tsc2102.patch
copy to buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/073-armadeus-tsc2102.patch
index 9c15479..99c1745 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/073-armadeus-tsc2102.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/073-armadeus-tsc2102.patch
@@ -1,10 +1,7 @@
-PATCH AUTOMATICALLY GENERATED
-DON'T EDIT IT OR YOUR MODIFICATIONS WILL BE LOST
-(Take a look at armadeus/target/linux/ directory to know how to generate it)
-Index: linux-2.6.29.6/include/linux/spi/tsc2102.h
+Index: linux-2.6.36/include/linux/spi/tsc2102.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.29.6/include/linux/spi/tsc2102.h 2010-05-31 11:02:34.000000000 +0200
++++ linux-2.6.36/include/linux/spi/tsc2102.h 2010-05-31 11:02:34.000000000 +0200
@@ -0,0 +1,306 @@
+/*
+ * include/linux/spi/tsc2102.h
@@ -312,10 +309,10 @@ Index: linux-2.6.29.6/include/linux/spi/tsc2102.h
+};
+
+#endif /* __LINUX_SPI_TSC2102_H */
-Index: linux-2.6.29.6/drivers/spi/tsc2102.c
+Index: linux-2.6.36/drivers/spi/tsc2102.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.29.6/drivers/spi/tsc2102.c 2010-05-31 13:50:30.000000000 +0200
++++ linux-2.6.36/drivers/spi/tsc2102.c 2010-05-31 13:50:30.000000000 +0200
@@ -0,0 +1,1311 @@
+/*
+ * drivers/spi/tsc2102.c
@@ -1428,7 +1425,7 @@ Index: linux-2.6.29.6/drivers/spi/tsc2102.c
+ pdata->init();
+
+#ifdef CONFIG_TSC_SLAVE
-+ tsc.bclk_ck = clk_get(0, "bclk"); TODO add clock mechanism to i.MX ???
++ tsc.bclk_ck = clk_get(0, "bclk"); //TODO add clock mechanism to i.MX ???
+ if (!tsc.bclk_ck) {
+ printk(KERN_ERR "Unable to get the clock BCLK\n");
+ err = -EPERM;
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/073-armadeus-tsc2102_integrate_driver_to_linux_build_system.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/073-armadeus-tsc2102_integrate_driver_to_linux_build_system.patch
new file mode 100644
index 0000000..1fa3c8a
--- /dev/null
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/073-armadeus-tsc2102_integrate_driver_to_linux_build_system.patch
@@ -0,0 +1,27 @@
+--- a/drivers/spi/Kconfig 2010-12-07 13:15:03.000000000 +0100
++++ b/drivers/spi/Kconfig 2010-12-07 13:14:38.000000000 +0100
+@@ -379,6 +379,14 @@
+ sysfs interface, with each line presented as a kind of GPIO
+ exposing both switch control and diagnostic feedback.
+
++config SPI_TSC2102
++ depends on SPI_MASTER
++ depends on HWMON = n || HWMON
++ tristate "TSC2102 codec support"
++ ---help---
++ Say Y here if you want support for the TSC2102 chip. It
++ will be needed for the touchscreen driver on some boards.
++
+ #
+ # Add new SPI protocol masters in alphabetical order above this line
+ #
+--- a/drivers/spi/Makefile 2010-12-07 13:15:11.000000000 +0100
++++ b/drivers/spi/Makefile 2010-12-07 13:15:27.000000000 +0100
+@@ -57,6 +57,7 @@
+ # SPI protocol drivers (device/link on bus)
+ obj-$(CONFIG_SPI_SPIDEV) += spidev.o
+ obj-$(CONFIG_SPI_TLE62X0) += tle62x0.o
++obj-$(CONFIG_SPI_TSC2102) += tsc2102.o
+ # ... add above this line ...
+
+ # SPI slave controller drivers (upstream link)
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/074-armadeus-tsc2102-touchscreen-add_driver_to_linux_build_system.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/074-armadeus-tsc2102-touchscreen-add_driver_to_linux_build_system.patch
similarity index 71%
copy from buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/074-armadeus-tsc2102-touchscreen-add_driver_to_linux_build_system.patch
copy to buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/074-armadeus-tsc2102-touchscreen-add_driver_to_linux_build_system.patch
index ae7187f..008194f 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/074-armadeus-tsc2102-touchscreen-add_driver_to_linux_build_system.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/074-armadeus-tsc2102-touchscreen-add_driver_to_linux_build_system.patch
@@ -1,7 +1,7 @@
-Index: linux-2.6.29/drivers/input/touchscreen/Kconfig
+Index: linux-2.6.36/drivers/input/touchscreen/Kconfig
===================================================================
---- linux-2.6.29.orig/drivers/input/touchscreen/Kconfig 2009-03-24 00:12:14.000000000 +0100
-+++ linux-2.6.29/drivers/input/touchscreen/Kconfig 2009-03-30 11:14:08.000000000 +0200
+--- a/drivers/input/touchscreen/Kconfig 2009-03-24 00:12:14.000000000 +0100
++++ b/drivers/input/touchscreen/Kconfig 2009-03-30 11:14:08.000000000 +0200
@@ -242,6 +242,20 @@
To compile this driver as a module, choose M here: the
module will be called atmel_tsadcc.
@@ -23,10 +23,10 @@ Index: linux-2.6.29/drivers/input/touchscreen/Kconfig
config TOUCHSCREEN_UCB1400
tristate "Philips UCB1400 touchscreen"
depends on AC97_BUS
-Index: linux-2.6.29/drivers/input/touchscreen/Makefile
+Index: linux-2.6.36/drivers/input/touchscreen/Makefile
===================================================================
---- linux-2.6.29.orig/drivers/input/touchscreen/Makefile 2009-03-24 00:12:14.000000000 +0100
-+++ linux-2.6.29/drivers/input/touchscreen/Makefile 2009-03-30 11:15:35.000000000 +0200
+--- a/drivers/input/touchscreen/Makefile 2009-03-24 00:12:14.000000000 +0100
++++ b/drivers/input/touchscreen/Makefile 2009-03-30 11:15:35.000000000 +0200
@@ -25,6 +25,7 @@
obj-$(CONFIG_TOUCHSCREEN_TOUCHIT213) += touchit213.o
obj-$(CONFIG_TOUCHSCREEN_TOUCHRIGHT) += touchright.o
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.27.13/074-armadeus-tsc2102-touchscreen.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/074-armadeus-tsc2102-touchscreen.patch
similarity index 88%
copy from buildroot/target/device/armadeus/linux/kernel-patches/2.6.27.13/074-armadeus-tsc2102-touchscreen.patch
copy to buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/074-armadeus-tsc2102-touchscreen.patch
index 3fc4c68..a396f84 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.27.13/074-armadeus-tsc2102-touchscreen.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/074-armadeus-tsc2102-touchscreen.patch
@@ -1,9 +1,6 @@
-PATCH AUTOMATICALLY GENERATED
-DON'T EDIT IT OR YOUR MODIFICATIONS WILL BE LOST
-(Take a look at armadeus/target/linux/ directory to know how to generate it)
---- linux-2.6.27.13.original/drivers/input/touchscreen/tsc2102_ts.c
-+++ linux-2.6.27.13.mod/drivers/input/touchscreen/tsc2102_ts.c
-@@ -0,0 +1,156 @@
+--- /dev/null 2010-11-28 19:42:11.148000001 +0100
++++ b/drivers/input/touchscreen/tsc2102_ts.c 2010-12-13 07:41:34.000000000 +0100
+@@ -0,0 +1,160 @@
+/*
+ * input/touchscreen/tsc2102_ts.c
+ *
@@ -37,6 +34,7 @@ DON'T EDIT IT OR YOUR MODIFICATIONS WILL BE LOST
+#include <linux/spi/tsc2102.h>
+
+#define DRIVER_NAME "TSC210x Touchscreen"
++#define TSC2102_TS_MAXVAL ((1 << 12) - 1)
+
+struct input_dev *dev;
+
@@ -92,7 +90,10 @@ DON'T EDIT IT OR YOUR MODIFICATIONS WILL BE LOST
+ dev->dev.parent = &pdev->dev;
+ dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
+ dev->keybit[BIT_WORD(BTN_TOUCH)] |= BIT_MASK(BTN_TOUCH);
-+ dev->absbit[0] = BIT_MASK(ABS_X) | BIT_MASK(ABS_Y) | BIT_MASK(ABS_PRESSURE);
++ //dev->absbit[0] = BIT_MASK(ABS_X) | BIT_MASK(ABS_Y) | BIT_MASK(ABS_PRESSURE);
++ input_set_abs_params(dev, ABS_X, 0, TSC2102_TS_MAXVAL, 0, 0);
++ input_set_abs_params(dev, ABS_Y, 0, TSC2102_TS_MAXVAL, 0, 0);
++ input_set_abs_params(dev, ABS_PRESSURE, 0, TSC2102_TS_MAXVAL, 0, 0);
+ status = input_register_device(dev);
+ if (status) {
+ printk(KERN_INFO "Unable to register TSC210x as input device !\n");
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2010-12-16 16:15:53
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via ff5bb7ff3b94909a3c7a89884618042420f9cff2 (commit)
via c3f87acb96c12152b1d25a6b5bf3283b20149934 (commit)
via 19e27e03f2af402c2bc6422d5a16da163d8e21ec (commit)
from cfd43e2f11202dc4ff4605a55467468f93e2fb06 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit ff5bb7ff3b94909a3c7a89884618042420f9cff2
Merge: c3f87acb96c12152b1d25a6b5bf3283b20149934 cfd43e2f11202dc4ff4605a55467468f93e2fb06
Author: Julien Boibessot <jul...@ar...>
Date: Thu Dec 16 17:15:20 2010 +0100
Merge branch 'master' of ssh://artemys@armadeus.git.sourceforge.net/gitroot/armadeus/armadeus
commit c3f87acb96c12152b1d25a6b5bf3283b20149934
Author: Julien Boibessot <jul...@ar...>
Date: Sun Dec 12 20:20:36 2010 +0100
[DEBUG] Correct imxregs compilation
commit 19e27e03f2af402c2bc6422d5a16da163d8e21ec
Author: Julien Boibessot <jul...@ar...>
Date: Sun Dec 12 20:08:25 2010 +0100
Indentation
-----------------------------------------------------------------------
Summary of changes:
target/linux/debug/imxregs/Makefile | 4 ++--
target/linux/modules/as1531_platform/Kconfig | 14 +++++++-------
target/linux/modules/as1531_platform/as1531_plat.c | 11 +++++------
3 files changed, 14 insertions(+), 15 deletions(-)
diff --git a/target/linux/debug/imxregs/Makefile b/target/linux/debug/imxregs/Makefile
index ede99ad..bba1f0f 100644
--- a/target/linux/debug/imxregs/Makefile
+++ b/target/linux/debug/imxregs/Makefile
@@ -1,10 +1,10 @@
CC=arm-linux-gcc
-EXECS:= imxregs imx27regs imx51regs
+EXECS:= imxlregs imx27regs imx51regs
all: $(EXECS)
-imxregs: imxregs.c imxregs.h definitions.h
+imxlregs: imxregs.c imxregs.h definitions.h
$(CC) imxregs.c -o $@
imx27regs: imxregs.c imx27regs.h definitions.h
diff --git a/target/linux/modules/as1531_platform/Kconfig b/target/linux/modules/as1531_platform/Kconfig
index 2b06294..179722a 100644
--- a/target/linux/modules/as1531_platform/Kconfig
+++ b/target/linux/modules/as1531_platform/Kconfig
@@ -2,10 +2,10 @@
#
config ARMADEUS_AS1531_PLAT
- tristate "AS1531 platform data"
- default n
- depends on ARMADEUS_DRIVERS
- select SENSORS_AS1531
- ---help---
- Specific platform data for as1531 plugged on apf27-Dev board
- on SPI3.
+ tristate "AS1531 platform data"
+ default n
+ depends on ARMADEUS_DRIVERS
+ select SENSORS_AS1531
+ ---help---
+ Specific platform data for as1531 plugged on apf27-Dev board
+ on SPI3.
diff --git a/target/linux/modules/as1531_platform/as1531_plat.c b/target/linux/modules/as1531_platform/as1531_plat.c
index 7300f57..4f1ea8c 100644
--- a/target/linux/modules/as1531_platform/as1531_plat.c
+++ b/target/linux/modules/as1531_platform/as1531_plat.c
@@ -86,10 +86,9 @@ static struct spi_board_info spi_as1531_board[] = {
};
-static int __init init_as1531_plat(void)
+static int __init as1531_plat_init(void)
{
- if (as1531_init_gpio() < 0)
- {
+ if (as1531_init_gpio() < 0) {
printk(KERN_ERR "Can't initialize gpio CS for as1531 spi\n");
return -1;
}
@@ -107,14 +106,14 @@ register_error:
return -1;
}
-static void __exit exit_as1531_plat(void)
+static void __exit as1531_plat_exit(void)
{
spi_unregister_device(as1531_spi_dev);
as1531_exit_gpio();
}
-module_init(init_as1531_plat);
-module_exit(exit_as1531_plat);
+module_init(as1531_plat_init);
+module_exit(as1531_plat_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Fabien Marteau <fab...@ar...>");
hooks/post-receive
--
armadeus
|
|
From: Gwenhael <gwe...@us...> - 2010-12-16 13:03:19
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via cfd43e2f11202dc4ff4605a55467468f93e2fb06 (commit)
via 73666a64fdc49d039e291d0b52b3599cfa46f31a (commit)
from eaa875b217a6d63e1947261a524d282a75ddca8c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit cfd43e2f11202dc4ff4605a55467468f93e2fb06
Author: gwenhael <gw...@tr...>
Date: Thu Dec 16 14:06:00 2010 +0100
[LINUX] 2.6.36: adapt patches 029 et 030 from 2.6.29
commit 73666a64fdc49d039e291d0b52b3599cfa46f31a
Author: gwenhael <gw...@tr...>
Date: Thu Dec 16 14:05:31 2010 +0100
[LINUX] 2.6.36: import patches 023, 024, 050, 072, 098 from 2.6.29
-----------------------------------------------------------------------
Summary of changes:
.../023-armadeus-fblcd-kconfig.patch | 16 +----
...s-apf9328-add_board_to_linux_build_system.patch | 77 ++++++++++++++++++++
.../029-armadeus-add_csi_and_spi_registers.patch | 49 +++++++++++++
.../2.6.36/030-armadeus-imx-devices.patch | 72 ++++++++++++++++++
...50-armadeus-add_custom_drivers_to_kconfig.patch | 20 +++++
...madeus-add_backlight_machinfo_to_imxfb_h.patch} | 8 +-
...announce_imx_is_supporting_scatter_gather.patch | 12 +++
7 files changed, 237 insertions(+), 17 deletions(-)
copy buildroot/target/device/armadeus/linux/kernel-patches/{2.6.29 => 2.6.36}/023-armadeus-fblcd-kconfig.patch (80%)
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/024-armadeus-apf9328-add_board_to_linux_build_system.patch
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/029-armadeus-add_csi_and_spi_registers.patch
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/030-armadeus-imx-devices.patch
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/050-armadeus-add_custom_drivers_to_kconfig.patch
copy buildroot/target/device/armadeus/linux/kernel-patches/{2.6.27.13/297-apf27-armadeus-add_backlight_machinfo_to_plat_mxc_imxfb_h.patch => 2.6.36/072-armadeus-add_backlight_machinfo_to_imxfb_h.patch} (50%)
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/098-armadeus-imx-dma-announce_imx_is_supporting_scatter_gather.patch
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/023-armadeus-fblcd-kconfig.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/023-armadeus-fblcd-kconfig.patch
similarity index 80%
copy from buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/023-armadeus-fblcd-kconfig.patch
copy to buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/023-armadeus-fblcd-kconfig.patch
index d48188a..9abc9db 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.29/023-armadeus-fblcd-kconfig.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/023-armadeus-fblcd-kconfig.patch
@@ -1,16 +1,6 @@
-Index: linux-2.6.29.6/drivers/video/Kconfig
-===================================================================
---- linux-2.6.29.6.orig/drivers/video/Kconfig 2009-03-24 00:12:14.000000000 +0100
-+++ linux-2.6.29.6/drivers/video/Kconfig 2009-10-19 15:29:06.000000000 +0200
-@@ -395,6 +395,7 @@
- If you plan to use the LCD display with your SA-1100 system, say
- Y here.
-
-+
- config FB_IMX
- tristate "Motorola i.MX LCD support"
- depends on FB && ARM && ARCH_IMX
-@@ -402,6 +403,80 @@
+--- a/drivers/video/Kconfig 2010-10-20 22:30:22.000000000 +0200
++++ b/drivers/video/Kconfig 2010-12-16 12:46:56.000000000 +0100
+@@ -410,6 +410,80 @@
select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/024-armadeus-apf9328-add_board_to_linux_build_system.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/024-armadeus-apf9328-add_board_to_linux_build_system.patch
new file mode 100644
index 0000000..7ea85e4
--- /dev/null
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/024-armadeus-apf9328-add_board_to_linux_build_system.patch
@@ -0,0 +1,77 @@
+--- a/arch/arm/mach-imx/Kconfig 2010-11-29 07:34:56.000000000 +0100
++++ b/arch/arm/mach-imx/Kconfig 2010-11-27 14:51:34.000000000 +0100
+@@ -13,6 +13,9 @@
+ config MACH_MXLADS
+ bool
+
++choice
++ prompt "Development board selection"
++
+ config ARCH_MX1ADS
+ bool "MX1ADS platform"
+ select MACH_MXLADS
+@@ -27,6 +30,53 @@
+ help
+ Say Y here if you are using a Synertronixx scb9328 board
+
++config MACH_APF9328
++ bool "APF9328"
++ depends on ARCH_MX1
++ select IMX_HAVE_PLATFORM_IMX_UART
++ select IMX_HAVE_PLATFORM_IMX_I2C
++ select IMX_HAVE_PLATFORM_SPI_IMX
++ select HAVE_FB_IMX
++ select SERIAL_IMX_UART1
++ help
++ Say Yes here if you are using the Armadeus APF9328 development board
++
++endchoice
++
++config MACH_APF9328_FPGA
++ bool "Board has a FPGA"
++ depends on MACH_APF9328
++ help
++ Select this if your APF9328 has an onboard FPGA
++
++choice
++ prompt "Flash available on board"
++ depends on MACH_APF9328
++ default IMX_APF9328_FLASH_16MB
++
++config IMX_APF9328_FLASH_8MB
++ bool "8MB"
++
++config IMX_APF9328_FLASH_16MB
++ bool "16MB"
++
++endchoice
++
++choice
++ prompt "Baseboard"
++ depends on MACH_APF9328
++ default MACH_APF9328_DEV
++
++config MACH_APF9328_DEV
++ prompt "DevLight/DevFull"
++ bool
++ help
++ This selects the APF9328_DevLight/DevFull as baseboard. You have
++ to manually activates the devices you want to use if you have a
++ DevFull.
++
++endchoice
++
+ endif
+
+ if ARCH_MX2
+--- a/arch/arm/mach-imx/Makefile 2010-11-29 07:34:56.000000000 +0100
++++ b/arch/arm/mach-imx/Makefile 2010-11-22 18:41:14.000000000 +0100
+@@ -18,6 +18,8 @@
+ obj-$(CONFIG_MX1_VIDEO) += mx1-camera-fiq.o mx1-camera-fiq-ksym.o
+
+ obj-$(CONFIG_ARCH_MX1ADS) += mach-mx1ads.o
++obj-$(CONFIG_MACH_APF9328) += apf9328.o
++obj-$(CONFIG_MACH_APF9328_DEV) += apf9328-dev.o
+ obj-$(CONFIG_MACH_SCB9328) += mach-scb9328.o
+
+ obj-$(CONFIG_MACH_MX21ADS) += mach-mx21ads.o
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/029-armadeus-add_csi_and_spi_registers.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/029-armadeus-add_csi_and_spi_registers.patch
new file mode 100644
index 0000000..d4dc5d3
--- /dev/null
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/029-armadeus-add_csi_and_spi_registers.patch
@@ -0,0 +1,49 @@
+--- linux-2.6.36/drivers/spi/spi_imx.c 2010-10-20 22:30:22.000000000 +0200
++++ linux-2.6.36.new/drivers/spi/spi_imx.c 2010-11-29 08:00:31.000000000 +0100
+@@ -43,6 +43,9 @@
+ #define MXC_CSPITXDATA 0x04
+ #define MXC_CSPICTRL 0x08
+ #define MXC_CSPIINT 0x0c
++#define MXC_TEST 0x10
++#define MXC_PERIOD 0x14
++#define MXC_DMA 0x18
+ #define MXC_RESET 0x1c
+
+ #define MX3_CSPISTAT 0x14
+--- linux-2.6.36/drivers/media/video/mx1_camera.c 2010-10-20 22:30:22.000000000 +0200
++++ linux-2.6.36.new/drivers/media/video/mx1_camera.c 2010-11-29 08:04:20.000000000 +0100
+@@ -50,9 +50,13 @@
+ * CSI registers
+ */
+ #define CSICR1 0x00 /* CSI Control Register 1 */
++#define CSICR2 0x04 /* CSI Control Register 2 */
+ #define CSISR 0x08 /* CSI Status Register */
++#define CSISTATR 0x0C
+ #define CSIRXR 0x10 /* CSI RxFIFO Register */
+
++#define CSICR1_RXOR_INTEN (1 << 24)
++#define CSICR1_RXFF_INTEN (1 << 18)
+ #define CSICR1_RXFF_LEVEL(x) (((x) & 0x3) << 19)
+ #define CSICR1_SOF_POL (1 << 17)
+ #define CSICR1_SOF_INTEN (1 << 16)
+@@ -60,8 +64,10 @@
+ #define CSICR1_MCLKEN (1 << 9)
+ #define CSICR1_FCC (1 << 8)
+ #define CSICR1_BIG_ENDIAN (1 << 7)
++#define CSICR1_CLR_STATINFO (1 << 6)
+ #define CSICR1_CLR_RXFIFO (1 << 5)
+ #define CSICR1_GCLK_MODE (1 << 4)
++#define CSICR1_INV_DATA (1 << 3)
+ #define CSICR1_DATA_POL (1 << 2)
+ #define CSICR1_REDGE (1 << 1)
+ #define CSICR1_EN (1 << 0)
+--- a/arch/arm/plat-mxc/include/mach/mx1.h 2010-11-29 09:20:02.000000000 +0100
++++ b/arch/arm/plat-mxc/include/mach/mx1.h 2010-11-29 09:20:19.000000000 +0100
+@@ -109,6 +109,7 @@
+ #define MX1_PWM_INT 34
+ #define MX1_SDHC_INT 35
+ #define MX1_INT_I2C 39
++#define MX1_SPI2_INT 40
+ #define MX1_CSPI_INT 41
+ #define MX1_SSI_TX_INT 42
+ #define MX1_SSI_TX_ERR_INT 43
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/030-armadeus-imx-devices.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/030-armadeus-imx-devices.patch
new file mode 100644
index 0000000..164bce2
--- /dev/null
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/030-armadeus-imx-devices.patch
@@ -0,0 +1,72 @@
+--- a/arch/arm/mach-imx/devices.h 2010-10-20 22:30:22.000000000 +0200
++++ b/arch/arm/mach-imx/devices.h 2010-11-22 18:44:10.000000000 +0100
+@@ -3,6 +3,7 @@
+ extern struct platform_device imx_rtc_device;
+ extern struct platform_device imx_wdt_device;
+ extern struct platform_device imx_usb_device;
++extern struct platform_device imx_mmc_device;
+ #endif
+
+ #if defined(CONFIG_MACH_MX21) || defined(CONFIG_MACH_MX27)
+--- a/arch/arm/mach-imx/devices.c 2010-10-20 22:30:22.000000000 +0200
++++ b/arch/arm/mach-imx/devices.c 2010-12-02 18:20:38.000000000 +0100
+@@ -45,6 +45,7 @@
+ #include "devices.h"
+
+ #if defined(CONFIG_ARCH_MX1)
++#include <mach/mx1.h>
+ static struct resource imx1_camera_resources[] = {
+ {
+ .start = 0x00224000,
+@@ -184,6 +185,37 @@
+ {
+ return mxc_gpio_init(imx_gpio_ports, ARRAY_SIZE(imx_gpio_ports));
+ }
++
++static struct resource imx_mmc_resources[] = {
++ [0] = {
++ .start = 0x00214000,
++ .end = 0x002140FF,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = (MX1_SDHC_INT),
++ .end = (MX1_SDHC_INT),
++ .flags = IORESOURCE_IRQ,
++ },
++ [2] = {
++ .start = MX1_DMA_REQ_SDHC,
++ .end = MX1_DMA_REQ_SDHC,
++ .flags = IORESOURCE_DMA,
++ },
++};
++static u64 imxmmmc_dmamask = 0xffffffffUL;
++
++struct platform_device imx_mmc_device = {
++ .name = "imx-mmc",
++ .id = 0,
++ .dev = {
++ .dma_mask = &imxmmmc_dmamask,
++ .coherent_dma_mask = 0xffffffff,
++ },
++ .num_resources = ARRAY_SIZE(imx_mmc_resources),
++ .resource = imx_mmc_resources,
++};
++
+ #endif
+
+ #if defined(CONFIG_MACH_MX21) || defined(CONFIG_MACH_MX27)
+--- a/arch/arm/mach-imx/devices-imx1.h 2010-10-20 22:30:22.000000000 +0200
++++ b/arch/arm/mach-imx/devices-imx1.h 2010-11-22 18:41:14.000000000 +0100
+@@ -15,4 +15,10 @@
+ #define imx1_add_imx_uart0(pdata) \
+ imx_add_imx_uart_3irq(0, MX1_UART1_BASE_ADDR, 0xd0, MX1_INT_UART1RX, MX1_INT_UART1TX, MX1_INT_UART1RTS, pdata)
+ #define imx1_add_imx_uart1(pdata) \
+- imx_add_imx_uart_3irq(0, MX1_UART2_BASE_ADDR, 0xd0, MX1_INT_UART2RX, MX1_INT_UART2TX, MX1_INT_UART2RTS, pdata)
++ imx_add_imx_uart_3irq(1, MX1_UART2_BASE_ADDR, 0xd0, MX1_INT_UART2RX, MX1_INT_UART2TX, MX1_INT_UART2RTS, pdata)
++
++#define imx1_add_spi_imx0(pdata) \
++ imx_add_spi_imx(0, MX1_SPI1_BASE_ADDR, SZ_4K, MX1_CSPI_INT, pdata)
++#define imx1_add_spi_imx1(pdata) \
++ imx_add_spi_imx(1, MX1_SPI2_BASE_ADDR, SZ_4K, MX1_SPI2_INT, pdata)
++
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/050-armadeus-add_custom_drivers_to_kconfig.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/050-armadeus-add_custom_drivers_to_kconfig.patch
new file mode 100644
index 0000000..2d257bb
--- /dev/null
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/050-armadeus-add_custom_drivers_to_kconfig.patch
@@ -0,0 +1,20 @@
+This patch adds the possibility to have custom Armadeus drivers built in kernel or compiled as modules
+
+--- a/drivers/usb/Kconfig 2010-10-20 22:30:22.000000000 +0200
++++ b/drivers/usb/Kconfig 2010-11-11 16:02:03.000000000 +0100
+@@ -163,3 +163,5 @@
+ source "drivers/usb/otg/Kconfig"
+
+ endif # USB_SUPPORT
++
++source "drivers/armadeus/Kconfig"
+--- a/drivers/Makefile 2010-10-20 22:30:22.000000000 +0200
++++ b/drivers/Makefile 2010-11-11 16:02:29.000000000 +0100
+@@ -109,6 +109,7 @@
+ obj-$(CONFIG_HID) += hid/
+ obj-$(CONFIG_PPC_PS3) += ps3/
+ obj-$(CONFIG_OF) += of/
++obj-$(CONFIG_ARMADEUS_DRIVERS) += armadeus/
+ obj-$(CONFIG_SSB) += ssb/
+ obj-$(CONFIG_VHOST_NET) += vhost/
+ obj-$(CONFIG_VLYNQ) += vlynq/
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.27.13/297-apf27-armadeus-add_backlight_machinfo_to_plat_mxc_imxfb_h.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/072-armadeus-add_backlight_machinfo_to_imxfb_h.patch
similarity index 50%
copy from buildroot/target/device/armadeus/linux/kernel-patches/2.6.27.13/297-apf27-armadeus-add_backlight_machinfo_to_plat_mxc_imxfb_h.patch
copy to buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/072-armadeus-add_backlight_machinfo_to_imxfb_h.patch
index 765d9f0..e0459ed 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.27.13/297-apf27-armadeus-add_backlight_machinfo_to_plat_mxc_imxfb_h.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/072-armadeus-add_backlight_machinfo_to_imxfb_h.patch
@@ -1,6 +1,6 @@
---- linux-2.6.27.2.original/arch/arm/plat-mxc/include/mach/imxfb.h 2008-12-19 16:20:18.000000000 +0100
-+++ linux-2.6.27.2.mod/arch/arm/plat-mxc/include/mach/imxfb.h 2008-12-19 16:18:44.000000000 +0100
-@@ -83,3 +83,13 @@
+--- a/arch/arm/plat-mxc/include/mach/imxfb.h 2010-11-06 18:56:13.000000000 +0100
++++ b/arch/arm/plat-mxc/include/mach/imxfb.h 2010-11-06 18:56:47.000000000 +0100
+@@ -79,3 +79,13 @@
};
void set_imx_fb_info(struct imx_fb_platform_data *);
@@ -9,7 +9,7 @@
+struct imxbl_machinfo {
+ int max_intensity;
+ int default_intensity;
-+ int limit_mask; // When battery is low
++ int limit_mask; /* When battery is low */
+ void (*set_bl_intensity)(int intensity);
+};
+extern void imxbl_limit_intensity(int limit);
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/098-armadeus-imx-dma-announce_imx_is_supporting_scatter_gather.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/098-armadeus-imx-dma-announce_imx_is_supporting_scatter_gather.patch
new file mode 100644
index 0000000..303ef62
--- /dev/null
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/098-armadeus-imx-dma-announce_imx_is_supporting_scatter_gather.patch
@@ -0,0 +1,12 @@
+--- a/arch/arm/plat-mxc/include/mach/hardware.h 2010-10-20 22:30:22.000000000 +0200
++++ b/arch/arm/plat-mxc/include/mach/hardware.h 2010-11-15 08:07:52.000000000 +0100
+@@ -48,6 +48,9 @@
+ #endif
+
+ #ifdef CONFIG_ARCH_MX1
++/* the DMA code supports SG list chaining */
++#define ARCH_HAS_SG_CHAIN
++
+ # include <mach/mx1.h>
+ #endif
+
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2010-12-14 08:45:54
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via eaa875b217a6d63e1947261a524d282a75ddca8c (commit)
via d80cb5e7dd42793606a90a495b244fd9b3a56038 (commit)
from 8ee94381d0788e9cb242c9f0dead9864bc0f5adc (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit eaa875b217a6d63e1947261a524d282a75ddca8c
Merge: d80cb5e7dd42793606a90a495b244fd9b3a56038 8ee94381d0788e9cb242c9f0dead9864bc0f5adc
Author: Julien Boibessot <jul...@ar...>
Date: Tue Dec 14 09:45:13 2010 +0100
Merge branch 'master' of ssh://artemys@armadeus.git.sourceforge.net/gitroot/armadeus/armadeus
commit d80cb5e7dd42793606a90a495b244fd9b3a56038
Author: Julien Boibessot <jul...@ar...>
Date: Tue Dec 14 09:44:26 2010 +0100
[BUILDROOT] [2010.11] Add support for latest 2010.11 BR release (thanks krem)
-----------------------------------------------------------------------
Summary of changes:
Makefile | 7 +---
.../2010.11/076-ubi-add_ubi_image_support.patch | 12 ++++----
...078-sdl-add_patch_for_paths_in_sdl_config.patch | 20 -------------
.../buildroot/2010.11/081-adds_quake_package.patch | 29 +++++++++++--------
.../buildroot/2010.11/107-games-add_wolf4sdl.patch | 12 ++++----
.../2010.11/125-opentyrian-add_package.patch | 14 +++++-----
...ffs2-add_board_name_to_binary_rootfs_name.patch | 16 +++++-----
7 files changed, 46 insertions(+), 64 deletions(-)
delete mode 100644 patches/buildroot/2010.11/078-sdl-add_patch_for_paths_in_sdl_config.patch
diff --git a/Makefile b/Makefile
index 7a0e099..bf52991 100644
--- a/Makefile
+++ b/Makefile
@@ -33,12 +33,9 @@ BUILDROOT_SITE:=http://downloads.sourceforge.net/armadeus
BUILDROOT_PATCH_DIR:=$(ARMADEUS_TOPDIR)/patches/buildroot
ARMADEUS_CONFIG_DIR:=$(BUILDROOT_DIR)/target/device/armadeus
else
-#BUILDROOT_VERSION:=2010.11
-#BUILDROOT_SITE:=http://buildroot.uclibc.org/downloads
-#BUILDROOT_PATCH_DIR:=$(ARMADEUS_TOPDIR)/patches/buildroot/$(BUILDROOT_VERSION)
-BUILDROOT_VERSION:=2010.11-rc1
+BUILDROOT_VERSION:=2010.11
BUILDROOT_SITE:=http://buildroot.uclibc.org/downloads
-BUILDROOT_PATCH_DIR:=$(ARMADEUS_TOPDIR)/patches/buildroot/2010.11
+BUILDROOT_PATCH_DIR:=$(ARMADEUS_TOPDIR)/patches/buildroot/$(BUILDROOT_VERSION)
ARMADEUS_CONFIG_DIR:=$(BUILDROOT_DIR)/configs
endif
#--- End of user conf (don't touch anything below unless you know what you're doing !! ;-) )
diff --git a/patches/buildroot/2010.11/076-ubi-add_ubi_image_support.patch b/patches/buildroot/2010.11/076-ubi-add_ubi_image_support.patch
index b96ea72..c18d277 100644
--- a/patches/buildroot/2010.11/076-ubi-add_ubi_image_support.patch
+++ b/patches/buildroot/2010.11/076-ubi-add_ubi_image_support.patch
@@ -6,7 +6,7 @@ Signed-off-by: Julien Boibessot <jul...@ar...>
Index: buildroot/fs/ubi/Config.in
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ buildroot/fs/ubi/Config.in 2010-11-01 19:43:55.000000000 +0100
++++ buildroot/fs/ubi/Config.in 2010-12-14 08:27:38.000000000 +0100
@@ -0,0 +1,22 @@
+config BR2_TARGET_ROOTFS_UBI
+ depends on BR2_TARGET_ROOTFS_UBIFS
@@ -33,7 +33,7 @@ Index: buildroot/fs/ubi/Config.in
Index: buildroot/fs/ubi/ubi.mk
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ buildroot/fs/ubi/ubi.mk 2010-11-09 14:56:46.000000000 +0100
++++ buildroot/fs/ubi/ubi.mk 2010-12-14 08:44:21.000000000 +0100
@@ -0,0 +1,24 @@
+#############################################################
+#
@@ -48,7 +48,7 @@ Index: buildroot/fs/ubi/ubi.mk
+endif
+
+
-+ROOTFS_UBI_DEPENDENCIES = ubifs-root
++ROOTFS_UBI_DEPENDENCIES = rootfs-ubifs
+
+define ROOTFS_UBI_CMD
+ cp fs/ubi/ubinize.cfg . ;\
@@ -62,7 +62,7 @@ Index: buildroot/fs/ubi/ubi.mk
Index: buildroot/fs/ubi/ubinize.cfg
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ buildroot/fs/ubi/ubinize.cfg 2010-11-01 19:43:55.000000000 +0100
++++ buildroot/fs/ubi/ubinize.cfg 2010-12-14 08:27:38.000000000 +0100
@@ -0,0 +1,7 @@
+[ubifs]
+mode=ubi
@@ -73,8 +73,8 @@ Index: buildroot/fs/ubi/ubinize.cfg
+vol_flags=autoresize
Index: buildroot/fs/ubifs/Config.in
===================================================================
---- buildroot.orig/fs/ubifs/Config.in 2010-11-01 19:39:39.000000000 +0100
-+++ buildroot/fs/ubifs/Config.in 2010-11-01 19:43:55.000000000 +0100
+--- buildroot.orig/fs/ubifs/Config.in 2010-11-30 16:52:43.000000000 +0100
++++ buildroot/fs/ubifs/Config.in 2010-12-14 08:27:38.000000000 +0100
@@ -77,3 +77,5 @@
endchoice
diff --git a/patches/buildroot/2010.11/078-sdl-add_patch_for_paths_in_sdl_config.patch b/patches/buildroot/2010.11/078-sdl-add_patch_for_paths_in_sdl_config.patch
deleted file mode 100644
index 33f8b66..0000000
--- a/patches/buildroot/2010.11/078-sdl-add_patch_for_paths_in_sdl_config.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Index: buildroot/package/sdl/sdl-1.2.11-z-sdl-config-paths.patch
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ buildroot/package/sdl/sdl-1.2.11-z-sdl-config-paths.patch 2010-06-18 11:04:32.000000000 +0200
-@@ -0,0 +1,15 @@
-+--- SDL-1.2.11.org/sdl-config.in 2007-11-17 16:43:59.000000000 +0100
-++++ SDL-1.2.11/sdl-config.in 2007-11-17 16:45:31.000000000 +0100
-+@@ -41,10 +41,10 @@
-+ echo @SDL_VERSION@
-+ ;;
-+ --cflags)
-+- echo -I@includedir@/SDL @SDL_CFLAGS@
-++ echo -I$STAGING_DIR/include/SDL @SDL_CFLAGS@
-+ ;;
-+ @ENABLE_SHARED_TRUE@ --libs)
-+-@ENABLE_SHARED_TRUE@ echo -L@libdir@ @SDL_RLD_FLAGS@ @SDL_LIBS@
-++@ENABLE_SHARED_TRUE@ echo -L$STAGING_DIR/lib @SDL_RLD_FLAGS@ @SDL_LIBS@
-+ @ENABLE_SHARED_TRUE@ ;;
-+ @ENABLE_STATIC_TRUE@@ENABLE_SHARED_TRUE@ --static-libs)
-+ @ENABLE_STATIC_TRUE@@ENABLE_SHARED_FALSE@ --libs|--static-libs)
diff --git a/patches/buildroot/2010.11/081-adds_quake_package.patch b/patches/buildroot/2010.11/081-adds_quake_package.patch
index 8018478..c90bf77 100644
--- a/patches/buildroot/2010.11/081-adds_quake_package.patch
+++ b/patches/buildroot/2010.11/081-adds_quake_package.patch
@@ -16,8 +16,8 @@ Signed-off-by: Julien Boibessot <jul...@ar...>
Index: buildroot/package/games/sdlquake/sdlquake.mk
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ buildroot/package/games/sdlquake/sdlquake.mk 2010-06-23 14:11:31.000000000 +0200
-@@ -0,0 +1,31 @@
++++ buildroot/package/games/sdlquake/sdlquake.mk 2010-12-14 08:48:47.000000000 +0100
+@@ -0,0 +1,36 @@
+#############################################################
+#
+# Quake 1 (SDL_Port)
@@ -31,10 +31,15 @@ Index: buildroot/package/games/sdlquake/sdlquake.mk
+SDLQUAKE_INSTALL_STAGING = NO
+SDLQUAKE_INSTALL_TARGET = YES
+
-+SDLQUAKE_CONF_OPT = --target=$(GNU_TARGET_NAME) --host=$(GNU_TARGET_NAME) \
-+ --build=$(GNU_HOST_NAME) --prefix=/usr --sysconfdir=/etc
++SDLQUAKE_CONF_OPT = \
++ --target=$(GNU_TARGET_NAME) \
++ --host=$(GNU_TARGET_NAME) \
++ --build=$(GNU_HOST_NAME) \
++ --with-sdl-prefix=$(STAGING_DIR)/usr \
++ --prefix=/usr \
++ --sysconfdir=/etc
+
-+SDLQUAKE_DEPENDENCIES = uclibc sdl sdl_mixer SDL_net
++SDLQUAKE_DEPENDENCIES = sdl sdl_mixer SDL_net
+
+$(eval $(call AUTOTARGETS,package/games,sdlquake))
+
@@ -52,7 +57,7 @@ Index: buildroot/package/games/sdlquake/sdlquake.mk
Index: buildroot/package/games/sdlquake/sdlquake-1.0.9-no-x86-asm.patch.arm
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ buildroot/package/games/sdlquake/sdlquake-1.0.9-no-x86-asm.patch.arm 2010-06-23 14:11:31.000000000 +0200
++++ buildroot/package/games/sdlquake/sdlquake-1.0.9-no-x86-asm.patch.arm 2010-12-14 08:27:38.000000000 +0100
@@ -0,0 +1,35 @@
+--- /tmp/Makefile.am 2008-08-11 20:31:09.000000000 +0200
++++ sdlquake-1.0.9/Makefile.am 2008-08-11 20:55:00.263198000 +0200
@@ -92,7 +97,7 @@ Index: buildroot/package/games/sdlquake/sdlquake-1.0.9-no-x86-asm.patch.arm
Index: buildroot/package/games/sdlquake/Config.in
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ buildroot/package/games/sdlquake/Config.in 2010-06-23 14:11:31.000000000 +0200
++++ buildroot/package/games/sdlquake/Config.in 2010-12-14 08:27:38.000000000 +0100
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_SDLQUAKE
+ bool "sdlquake"
@@ -107,7 +112,7 @@ Index: buildroot/package/games/sdlquake/Config.in
Index: buildroot/package/games/quake-pak/quake-pak.mk
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ buildroot/package/games/quake-pak/quake-pak.mk 2010-06-23 14:11:31.000000000 +0200
++++ buildroot/package/games/quake-pak/quake-pak.mk 2010-12-14 08:27:38.000000000 +0100
@@ -0,0 +1,34 @@
+#############################################################
+#
@@ -146,7 +151,7 @@ Index: buildroot/package/games/quake-pak/quake-pak.mk
Index: buildroot/package/games/quake-pak/Config.in
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ buildroot/package/games/quake-pak/Config.in 2010-06-23 14:11:31.000000000 +0200
++++ buildroot/package/games/quake-pak/Config.in 2010-12-14 08:27:38.000000000 +0100
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_QUAKE_PAK
+ bool "shareware Quake PAK/WAD file"
@@ -157,9 +162,9 @@ Index: buildroot/package/games/quake-pak/Config.in
+ The file will be placed in the /usr/share/games/quake/ directory.
Index: buildroot/package/Config.in
===================================================================
---- buildroot.orig/package/Config.in 2010-06-23 14:11:22.000000000 +0200
-+++ buildroot/package/Config.in 2010-06-23 14:11:31.000000000 +0200
-@@ -82,8 +82,10 @@
+--- buildroot.orig/package/Config.in 2010-12-14 08:27:38.000000000 +0100
++++ buildroot/package/Config.in 2010-12-14 08:55:59.000000000 +0100
+@@ -83,8 +83,10 @@
source "package/games/gnuchess/Config.in"
source "package/games/magiccube4d/Config.in"
source "package/games/prboom/Config.in"
diff --git a/patches/buildroot/2010.11/107-games-add_wolf4sdl.patch b/patches/buildroot/2010.11/107-games-add_wolf4sdl.patch
index 7b9e6c3..d865b3a 100644
--- a/patches/buildroot/2010.11/107-games-add_wolf4sdl.patch
+++ b/patches/buildroot/2010.11/107-games-add_wolf4sdl.patch
@@ -5,7 +5,7 @@ Signed-off-by: Julien Boibessot <jul...@ar...>
Index: buildroot/package/games/wolf4sdl/Config.in
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ buildroot/package/games/wolf4sdl/Config.in 2010-06-23 14:13:01.000000000 +0200
++++ buildroot/package/games/wolf4sdl/Config.in 2010-12-14 08:27:39.000000000 +0100
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_WOLF4SDL
+ bool "Wolf4SDL"
@@ -21,7 +21,7 @@ Index: buildroot/package/games/wolf4sdl/Config.in
Index: buildroot/package/games/wolf4sdl/wolf4sdl.mk
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ buildroot/package/games/wolf4sdl/wolf4sdl.mk 2010-06-23 14:13:01.000000000 +0200
++++ buildroot/package/games/wolf4sdl/wolf4sdl.mk 2010-12-14 08:46:25.000000000 +0100
@@ -0,0 +1,55 @@
+#############################################################
+#
@@ -51,7 +51,7 @@ Index: buildroot/package/games/wolf4sdl/wolf4sdl.mk
+ touch $@
+
+$(WOLF4SDL_DIR)/wolf3d: $(WOLF4SDL_DIR)/.unpacked
-+ $(MAKE) CC=$(TARGET_CC) CXX=$(TARGET_CXX) PREFIX=$(TARGET_DIR)/usr/local \
++ $(MAKE) CC="$(TARGET_CC)" CXX="$(TARGET_CXX)" PREFIX=$(TARGET_DIR)/usr/local \
+ SDL_CONFIG=$(STAGING_DIR)/usr/bin/sdl-config \
+ -C $(WOLF4SDL_DIR)
+
@@ -80,9 +80,9 @@ Index: buildroot/package/games/wolf4sdl/wolf4sdl.mk
+endif
Index: buildroot/package/Config.in
===================================================================
---- buildroot.orig/package/Config.in 2010-06-23 14:12:57.000000000 +0200
-+++ buildroot/package/Config.in 2010-06-23 14:13:01.000000000 +0200
-@@ -86,6 +86,7 @@
+--- buildroot.orig/package/Config.in 2010-12-14 08:27:39.000000000 +0100
++++ buildroot/package/Config.in 2010-12-14 08:55:49.000000000 +0100
+@@ -87,6 +87,7 @@
source "package/games/doom-wad/Config.in"
source "package/games/rubix/Config.in"
source "package/games/sdlquake/Config.in"
diff --git a/patches/buildroot/2010.11/125-opentyrian-add_package.patch b/patches/buildroot/2010.11/125-opentyrian-add_package.patch
index 632f007..55285f8 100644
--- a/patches/buildroot/2010.11/125-opentyrian-add_package.patch
+++ b/patches/buildroot/2010.11/125-opentyrian-add_package.patch
@@ -1,19 +1,19 @@
Index: buildroot/package/Config.in
===================================================================
---- buildroot.orig/package/Config.in 2010-06-29 11:21:25.000000000 +0200
-+++ buildroot/package/Config.in 2010-06-29 11:21:25.000000000 +0200
+--- buildroot.orig/package/Config.in 2010-12-14 08:27:39.000000000 +0100
++++ buildroot/package/Config.in 2010-12-14 08:55:39.000000000 +0100
@@ -83,6 +83,7 @@
+ source "package/e-uae/Config.in"
source "package/games/gnuchess/Config.in"
- source "package/games/lxdoom/Config.in"
source "package/games/magiccube4d/Config.in"
+source "package/opentyrian/Config.in"
source "package/games/prboom/Config.in"
source "package/games/quake-pak/Config.in"
- source "package/games/rubix/Config.in"
+ source "package/games/doom-wad/Config.in"
Index: buildroot/package/opentyrian/Config.in
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ buildroot/package/opentyrian/Config.in 2010-06-29 11:21:25.000000000 +0200
++++ buildroot/package/opentyrian/Config.in 2010-12-14 08:27:39.000000000 +0100
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_OPENTYRIAN
+ bool "OpenTyrian"
@@ -29,7 +29,7 @@ Index: buildroot/package/opentyrian/Config.in
Index: buildroot/package/opentyrian/opentyrian.mk
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ buildroot/package/opentyrian/opentyrian.mk 2010-07-04 18:03:01.000000000 +0200
++++ buildroot/package/opentyrian/opentyrian.mk 2010-12-14 08:47:18.000000000 +0100
@@ -0,0 +1,50 @@
+#############################################################
+#
@@ -59,7 +59,7 @@ Index: buildroot/package/opentyrian/opentyrian.mk
+
+define OPENTYRIAN_BUILD_CMDS
+ $(MAKE) PLATFORM=UNIX \
-+ CC=$(TARGET_CC) \
++ CC="$(TARGET_CC)" \
+ STRIP="$(STRIPCMD) $(STRIP_STRIP_UNNEEDED)" \
+ SDL_CONFIG=$(STAGING_DIR)/usr/bin/sdl-config \
+ -C $(OPENTYRIAN_DIR) \
diff --git a/patches/buildroot/2010.11/134-jffs2-add_board_name_to_binary_rootfs_name.patch b/patches/buildroot/2010.11/134-jffs2-add_board_name_to_binary_rootfs_name.patch
index 985a48b..82cc473 100644
--- a/patches/buildroot/2010.11/134-jffs2-add_board_name_to_binary_rootfs_name.patch
+++ b/patches/buildroot/2010.11/134-jffs2-add_board_name_to_binary_rootfs_name.patch
@@ -12,19 +12,19 @@ Index: buildroot/fs/common.mk
define ROOTFS_TARGET_INTERNAL
--$(BINARIES_DIR)/rootfs.$(1): $(ROOTFS_$(2)_DEPENDENCIES) host-fakeroot host-makedevs $(if $(BR2_TARGET_ROOTFS_$(2)_LZMA),host-lzma)
+-$(BINARIES_DIR)/rootfs.$(1): $(ROOTFS_$(2)_DEPENDENCIES)
- @$(call MESSAGE,"Generating root filesystem image rootfs.$(1)")
-+$(BINARIES_DIR)/$(BR2_BOARD_NAME)-rootfs.arm.$(1): $(ROOTFS_$(2)_DEPENDENCIES) host-fakeroot host-makedevs $(if $(BR2_TARGET_ROOTFS_$(2)_LZMA),host-lzma)
-+ @$(call MESSAGE,"Generating root filesystem image $(BR2_BOARD_NAME)-rootfs.arm.$(1)")
++$(BINARIES_DIR)/$(BR2_BOARD_NAME)-rootfs.$(1): $(ROOTFS_$(2)_DEPENDENCIES)
++ @$(call MESSAGE,"Generating root filesystem image $(BR2_BOARD_NAME)-rootfs.$(1)")
$(foreach hook,$(ROOTFS_$(2)_PRE_GEN_HOOKS),$(call $(hook))$(sep))
rm -f $(FAKEROOT_SCRIPT)
touch $(BUILD_DIR)/.fakeroot.00000
@@ -64,7 +64,7 @@
- $(1)-root-show-depends:
- @echo $(ROOTFS_$(2)_DEPENDENCIES) host-fakeroot host-makedevs $(if $(BR2_TARGET_ROOTFS_$(2)_LZMA),host-lzma)
+ rootfs-$(1)-show-depends:
+ @echo $(ROOTFS_$(2)_DEPENDENCIES)
--$(1)-root: $(BINARIES_DIR)/rootfs.$(1) $(ROOTFS_$(2)_POST_TARGETS)
-+$(1)-root: $(BINARIES_DIR)/$(BR2_BOARD_NAME)-rootfs.arm.$(1) $(ROOTFS_$(2)_POST_TARGETS)
+-rootfs-$(1): $(BINARIES_DIR)/rootfs.$(1) $(ROOTFS_$(2)_POST_TARGETS)
++rootfs-$(1): $(BINARIES_DIR)/$(BR2_BOARD_NAME)-rootfs.$(1) $(ROOTFS_$(2)_POST_TARGETS)
ifeq ($$(BR2_TARGET_ROOTFS_$(2)),y)
- TARGETS += $(1)-root
+ TARGETS += rootfs-$(1)
hooks/post-receive
--
armadeus
|
|
From: Fabien M <fa...@us...> - 2010-12-13 11:15:08
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 8ee94381d0788e9cb242c9f0dead9864bc0f5adc (commit)
via 1bdbe5fcc2bdc503e43af74468aaf0a0034f25d2 (commit)
via b259a44be9179ea45cb7b39417c863e11c04935d (commit)
via 05a302115b359ca0cf85a40bd4fbd276dd172e69 (commit)
from 7e202a6e1025065f9648249abc0d5fbfabe610c0 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 8ee94381d0788e9cb242c9f0dead9864bc0f5adc
Merge: 1bdbe5fcc2bdc503e43af74468aaf0a0034f25d2 7e202a6e1025065f9648249abc0d5fbfabe610c0
Author: Fabien Marteau <fab...@ar...>
Date: Mon Dec 13 12:14:42 2010 +0100
Merge branch 'master' of ssh://armadeus.git.sourceforge.net/gitroot/armadeus/armadeus
commit 1bdbe5fcc2bdc503e43af74468aaf0a0034f25d2
Author: Fabien Marteau <fab...@ar...>
Date: Mon Dec 13 11:35:30 2010 +0100
[linux] Adding mangling capability on i2c-imx Part 3: adding mangling capability flag
commit b259a44be9179ea45cb7b39417c863e11c04935d
Author: Fabien Marteau <fab...@ar...>
Date: Mon Dec 13 11:13:53 2010 +0100
[linux] Adding mangling capability on i2c-imx Part 2
commit 05a302115b359ca0cf85a40bd4fbd276dd172e69
Author: Fabien Marteau <fab...@ar...>
Date: Fri Dec 10 18:25:32 2010 +0100
[linux][i2c-imx]Â Adding mangling capability part1: ignore Ack
-----------------------------------------------------------------------
Summary of changes:
...ing_mangling_capability_on_i2c_imx_driver.patch | 83 ++++++++++++++++++++
1 files changed, 83 insertions(+), 0 deletions(-)
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/358-armadeus-imx-adding_mangling_capability_on_i2c_imx_driver.patch
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/358-armadeus-imx-adding_mangling_capability_on_i2c_imx_driver.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/358-armadeus-imx-adding_mangling_capability_on_i2c_imx_driver.patch
new file mode 100644
index 0000000..2b5c280
--- /dev/null
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/358-armadeus-imx-adding_mangling_capability_on_i2c_imx_driver.patch
@@ -0,0 +1,83 @@
+Index: linux-2.6.36/drivers/i2c/busses/i2c-imx.c
+===================================================================
+--- linux-2.6.36.orig/drivers/i2c/busses/i2c-imx.c 2010-10-20 22:30:22.000000000 +0200
++++ linux-2.6.36/drivers/i2c/busses/i2c-imx.c 2010-12-13 11:34:17.000000000 +0100
+@@ -304,12 +304,15 @@
+ __func__, msgs->addr << 1);
+
+ /* write slave address */
+- writeb(msgs->addr << 1, i2c_imx->base + IMX_I2C_I2DR);
++ if (msgs->flags & I2C_M_REV_DIR_ADDR)
++ writeb((msgs->addr << 1) | 0x01, i2c_imx->base + IMX_I2C_I2DR);
++ else
++ writeb((msgs->addr << 1), i2c_imx->base + IMX_I2C_I2DR);
+ result = i2c_imx_trx_complete(i2c_imx);
+ if (result)
+ return result;
+ result = i2c_imx_acked(i2c_imx);
+- if (result)
++ if ( (result != 0) && ((msgs[0].flags & I2C_M_IGNORE_NAK) == 0))
+ return result;
+ dev_dbg(&i2c_imx->adapter.dev, "<%s> write data\n", __func__);
+
+@@ -323,7 +326,7 @@
+ if (result)
+ return result;
+ result = i2c_imx_acked(i2c_imx);
+- if (result)
++ if ( (result != 0) && ((msgs[i].flags & I2C_M_IGNORE_NAK) == 0))
+ return result;
+ }
+ return 0;
+@@ -339,12 +342,15 @@
+ __func__, (msgs->addr << 1) | 0x01);
+
+ /* write slave address */
+- writeb((msgs->addr << 1) | 0x01, i2c_imx->base + IMX_I2C_I2DR);
++ if (msgs->flags & I2C_M_REV_DIR_ADDR)
++ writeb((msgs->addr << 1), i2c_imx->base + IMX_I2C_I2DR);
++ else
++ writeb((msgs->addr << 1) | 0x01, i2c_imx->base + IMX_I2C_I2DR);
+ result = i2c_imx_trx_complete(i2c_imx);
+ if (result)
+ return result;
+ result = i2c_imx_acked(i2c_imx);
+- if (result)
++ if ( (result != 0) && ((msgs[0].flags & I2C_M_IGNORE_NAK) == 0))
+ return result;
+
+ dev_dbg(&i2c_imx->adapter.dev, "<%s> setup bus\n", __func__);
+@@ -354,6 +360,7 @@
+ temp &= ~I2CR_MTX;
+ if (msgs->len - 1)
+ temp &= ~I2CR_TXAK;
++ if (msgs->flags & I2C_M_NO_RD_ACK) temp |= I2CR_TXAK;
+ writeb(temp, i2c_imx->base + IMX_I2C_I2CR);
+ readb(i2c_imx->base + IMX_I2C_I2DR); /* dummy read */
+
+@@ -371,6 +378,7 @@
+ "<%s> clear MSTA\n", __func__);
+ temp = readb(i2c_imx->base + IMX_I2C_I2CR);
+ temp &= ~(I2CR_MSTA | I2CR_MTX);
++ if (msgs->flags & I2C_M_NO_RD_ACK) temp |= I2CR_TXAK;
+ writeb(temp, i2c_imx->base + IMX_I2C_I2CR);
+ i2c_imx_bus_busy(i2c_imx, 0);
+ i2c_imx->stopped = 1;
+@@ -405,7 +413,7 @@
+
+ /* read/write data */
+ for (i = 0; i < num; i++) {
+- if (i) {
++ if (i && ((msgs[i].flags & I2C_M_NOSTART)==0)) {
+ dev_dbg(&i2c_imx->adapter.dev,
+ "<%s> repeated start\n", __func__);
+ temp = readb(i2c_imx->base + IMX_I2C_I2CR);
+@@ -454,7 +462,7 @@
+
+ static u32 i2c_imx_func(struct i2c_adapter *adapter)
+ {
+- return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL;
++ return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL | I2C_FUNC_PROTOCOL_MANGLING;
+ }
+
+ static struct i2c_algorithm i2c_imx_algo = {
hooks/post-receive
--
armadeus
|
|
From: jscheer <js...@us...> - 2010-12-09 17:00:14
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 7e202a6e1025065f9648249abc0d5fbfabe610c0 (commit)
from 4734c80434d06f1f79c42780064265f9c0684807 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 7e202a6e1025065f9648249abc0d5fbfabe610c0
Author: Jeremie Scheer <jer...@ar...>
Date: Thu Dec 9 17:59:45 2010 +0100
[ROOTFS] Correct file indentations and remove useless aliases in PPS' /etc/profile.
-----------------------------------------------------------------------
Summary of changes:
target/pps/configs/profile | 16 +++++-----------
1 files changed, 5 insertions(+), 11 deletions(-)
diff --git a/target/pps/configs/profile b/target/pps/configs/profile
index df1edc2..7f0c13a 100644
--- a/target/pps/configs/profile
+++ b/target/pps/configs/profile
@@ -18,11 +18,11 @@ if [ "$PS1" ]; then
alias ls='/bin/ls --color=tty -F'
export LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.png=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:';
else
- if [ "`id -u`" -eq 0 ]; then
- export PS1='# '
- else
- export PS1='$ '
- fi
+ if [ "`id -u`" -eq 0 ]; then
+ export PS1='# '
+ else
+ export PS1='$ '
+ fi
fi
export USER=`id -un`
@@ -38,12 +38,6 @@ if [ "$PS1" ]; then
### Some aliases
alias ps2='ps facux '
alias ps1='ps faxo "%U %t %p %a" '
- alias af='ps af'
alias cls='clear'
alias df='df -h'
- alias indent='indent -bad -bap -bbo -nbc -br -brs -c33 -cd33 -ncdb -ce -ci4 -cli0 -cp33 -cs -d0 -di1 -nfc1 -nfca -hnl -i4 -ip0 -l75 -lp -npcs -npsl -nsc -nsob -nss -ts4 '
- #alias bc='bc -l'
- alias minicom='minicom -c on'
- alias calc='calc -Cd '
- alias bc='calc -Cd '
fi;
hooks/post-receive
--
armadeus
|
|
From: Nicolas <th...@us...> - 2010-12-06 14:57:49
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 4734c80434d06f1f79c42780064265f9c0684807 (commit)
from 292a8849deefbda6b2b4d4c54fee31c603ae3f21 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 4734c80434d06f1f79c42780064265f9c0684807
Author: nicolas colombain <nic...@ar...>
Date: Mon Dec 6 15:57:32 2010 +0100
[LINUX] apf51: avoid using nand bad block marker in free oob
-----------------------------------------------------------------------
Summary of changes:
.../2.6.36/404-armadeus-fix_nand_ecc_oob.patch | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/404-armadeus-fix_nand_ecc_oob.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/404-armadeus-fix_nand_ecc_oob.patch
index 42619a9..e0d2bcd 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/404-armadeus-fix_nand_ecc_oob.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.36/404-armadeus-fix_nand_ecc_oob.patch
@@ -12,14 +12,14 @@ Index: linux-2.6.36/drivers/mtd/nand/mxc_nand.c
+/* OOB description for V3 and 2048 byte pages with 64 byte OOB */
+static struct nand_ecclayout nandv3_hw_eccoob_largepage = {
-+ .eccbytes = 4 * 8,
++ .eccbytes = 8,
+ .eccpos = {
+ 8, 9, 10, 11, 12, 13, 14, 15,
-+ 72, 73, 74, 75, 76, 77, 78, 79,
-+ 136, 137, 138, 139, 140, 141, 142, 143,
-+ 200, 201, 202, 203, 204, 205, 206, 207
+ },
-+ .oobfree = { {16, 56}, {80, 56}, {144, 56}, {208, 48} },
++ .oobfree = {
++ {2, 5},
++ {16, 48}
++ },
+};
+
static u_char nand_verify_buf[2048];
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2010-12-06 14:20:49
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 292a8849deefbda6b2b4d4c54fee31c603ae3f21 (commit)
via feecac88d30b7315f2423656c21b655a780e490f (commit)
from ae37a1338709079ad182c6a5e254905a9d905510 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 292a8849deefbda6b2b4d4c54fee31c603ae3f21
Merge: feecac88d30b7315f2423656c21b655a780e490f ae37a1338709079ad182c6a5e254905a9d905510
Author: Julien Boibessot <jul...@ar...>
Date: Mon Dec 6 15:19:51 2010 +0100
Merge branch 'master' of ssh://artemys@armadeus.git.sourceforge.net/gitroot/armadeus/armadeus
commit feecac88d30b7315f2423656c21b655a780e490f
Author: Julien Boibessot <jul...@ar...>
Date: Mon Dec 6 15:19:27 2010 +0100
[TOOLS] imxregs: add support for i.MX51 (only CCM & GPT1 accesses are currently implemented)
-----------------------------------------------------------------------
Summary of changes:
buildroot/package/armadeus/imxregs/imxregs.mk | 10 +---
target/linux/debug/imxregs/Makefile | 8 ++-
target/linux/debug/imxregs/imx51regs.h | 75 +++++++++++++++++++++++++
target/linux/debug/imxregs/imxregs.c | 4 +-
4 files changed, 85 insertions(+), 12 deletions(-)
create mode 100644 target/linux/debug/imxregs/imx51regs.h
diff --git a/buildroot/package/armadeus/imxregs/imxregs.mk b/buildroot/package/armadeus/imxregs/imxregs.mk
index a2137b2..0cabce1 100644
--- a/buildroot/package/armadeus/imxregs/imxregs.mk
+++ b/buildroot/package/armadeus/imxregs/imxregs.mk
@@ -9,15 +9,7 @@ IMXREGS_SOURCE:=$(TOPDIR)/../target/linux/debug/imxregs/
IMXREGS_DIR:=$(BUILD_DIR)/imxregs-$(IMXREGS_VER)
IMXREGS_CAT:=zcat
CPU_NAME=$(call qstrip,$(BR2_CPU_NAME))
-ifeq ($(CPU_NAME),imx27)
-IMXREGS_BINARY:=imx27regs
-else
- ifeq ($(CPU_NAME),imxl)
- IMXREGS_BINARY:=imxregs
- else
- IMXREGS_BINARY:=unknown_arch
- endif
-endif
+IMXREGS_BINARY:=$(CPU_NAME)regs
IMXREGS_TARGET_BINARY:=usr/bin/imxregs
$(IMXREGS_DIR)/imxregs.c:
diff --git a/target/linux/debug/imxregs/Makefile b/target/linux/debug/imxregs/Makefile
index 5ca78a1..ede99ad 100644
--- a/target/linux/debug/imxregs/Makefile
+++ b/target/linux/debug/imxregs/Makefile
@@ -1,7 +1,8 @@
CC=arm-linux-gcc
+EXECS:= imxregs imx27regs imx51regs
-all: imxregs imx27regs
+all: $(EXECS)
imxregs: imxregs.c imxregs.h definitions.h
$(CC) imxregs.c -o $@
@@ -9,6 +10,9 @@ imxregs: imxregs.c imxregs.h definitions.h
imx27regs: imxregs.c imx27regs.h definitions.h
$(CC) -DIMX27 imxregs.c -o $@
+imx51regs: imxregs.c imx51regs.h definitions.h
+ $(CC) -DIMX51 imxregs.c -o $@
+
clean:
rm -f *.o
- rm -f imxregs imx27regs
+ rm -f $(EXECS)
diff --git a/target/linux/debug/imxregs/imx51regs.h b/target/linux/debug/imxregs/imx51regs.h
new file mode 100644
index 0000000..c085f1a
--- /dev/null
+++ b/target/linux/debug/imxregs/imx51regs.h
@@ -0,0 +1,75 @@
+/*
+ * imx51regs.h - i.MX51 registers definition
+ *
+ * Copyright (C) 2010 armadeus systems
+ * Derivated from pxaregs (c) Copyright 2002 by M&N Logistik-Loesungen Online GmbH
+ * Author: Julien Boibessot
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+#include "definitions.h"
+
+#define IMX_TYPE "i.MX51"
+
+static struct reg_info regs[] =
+{
+/* CCM */
+{ "CCR", 0x73fd4000, 0, 0xffffffff, 'x', "CCM Control Register" },
+{ "CCDR", 0x73fd4004, 0, 0xffffffff, 'x', "CCM Control Divider Register" },
+{ "CSR", 0x73fd4008, 0, 0xffffffff, 'x', "CCM Status Register" },
+{ "CCSR", 0x73fd400c, 0, 0xffffffff, 'x', "CCM Clock Switcher Register" },
+{ "CACRR", 0x73fd4010, 0, 0xffffffff, 'x', "CCM Arm Clock Root Register" },
+{ "CBCDR", 0x73fd4014, 0, 0xffffffff, 'x', "CCM Bus Clock Divider Register" },
+{ "CBCMR", 0x73fd4018, 0, 0xffffffff, 'x', "CCM Bus Clock Multiplexer Register" },
+{ "CSCMR1", 0x73fd401c, 0, 0xffffffff, 'x', "CCM Serial Clock Multiplexer Register 1" },
+{ "CSCMR2", 0x73fd4020, 0, 0xffffffff, 'x', "CCM Serial Clock Multiplexer Register 2" },
+{ "CSCDR1", 0x73fd4024, 0, 0xffffffff, 'x', "CCM Serial Clock Divider Register" },
+{ "CS1CDR", 0x73fd4028, 0, 0xffffffff, 'x', "CCM SSI1 Clock Divider Register" },
+{ "CS2CDR", 0x73fd402c, 0, 0xffffffff, 'x', "CCM SSI2 Clock Divider Register" },
+{ "CDCDR", 0x73fd4030, 0, 0xffffffff, 'x', "CCM DI Clock Divider Register" },
+{ "CSCDR2", 0x73fd4038, 0, 0xffffffff, 'x', "CCM Serial Clock Divider Register" },
+{ "CSCDR3", 0x73fd403c, 0, 0xffffffff, 'x', "CCM Serial Clock Divider Register" },
+{ "CSCDR4", 0x73fd4040, 0, 0xffffffff, 'x', "CCM Serial Clock Divider Register" },
+{ "CWDR", 0x73fd4044, 0, 0xffffffff, 'x', "CCM Wakeup Detector Register" },
+{ "CDHIPR", 0x73fd4048, 0, 0xffffffff, 'x', "CCM Divider Handshake In-Process Register" },
+{ "CDCR", 0x73fd404c, 0, 0xffffffff, 'x', "CCM DVFS Control Register" },
+{ "CTOR", 0x73fd4050, 0, 0xffffffff, 'x', "CCM Testing Observability Register" },
+{ "CLPCR", 0x73fd4054, 0, 0xffffffff, 'x', "CCM Low Power Control Register" },
+{ "CISR", 0x73fd4058, 0, 0xffffffff, 'x', "CCM Interrupt Status Register" },
+{ "CIMR", 0x73fd405c, 0, 0xffffffff, 'x', "CCM Interrupt Mask Register" },
+{ "CCOSR", 0x73fd4060, 0, 0xffffffff, 'x', "CCM Clock Output Source Register" },
+{ "CGPR", 0x73fd4064, 0, 0xffffffff, 'x', "CCM General Purpose Register" },
+{ "CCGR0", 0x73fd4068, 0, 0xffffffff, 'x', "CCM Clock Gating Register 0" },
+{ "CCGR1", 0x73fd406c, 0, 0xffffffff, 'x', "CCM Clock Gating Register 1" },
+{ "CCGR2", 0x73fd4070, 0, 0xffffffff, 'x', "CCM Clock Gating Register 2" },
+{ "CCGR3", 0x73fd4074, 0, 0xffffffff, 'x', "CCM Clock Gating Register 3" },
+{ "CCGR4", 0x73fd4078, 0, 0xffffffff, 'x', "CCM Clock Gating Register 4" },
+{ "CCGR5", 0x73fd407c, 0, 0xffffffff, 'x', "CCM Clock Gating Register 5" },
+{ "CCGR6", 0x73fd4080, 0, 0xffffffff, 'x', "CCM Clock Gating Register 6" },
+{ "CMEOR", 0x73fd4084, 0, 0xffffffff, 'x', "CCM Module Enable Override Register" },
+/* GPT */
+{ "GPTCR_1", 0x73fa0000, 0, 0xffffffff, 'x', "GPT1 Control Register" },
+{ "GPTPR_1", 0x73fa0004, 0, 0xffffffff, 'x', "GPT1 Prescaler Register" },
+{ "GPTSR_1", 0x73fa0008, 0, 0xffffffff, 'x', "GPT1 Status Register" },
+{ "GPTIR_1", 0x73fa000c, 0, 0xffffffff, 'x', "GPT1 Interrupt Register" },
+{ "GPTOCR1_1", 0x73fa0010, 0, 0xffffffff, 'x', "GPT1 Output Compare Register 1" },
+{ "GPTOCR2_1", 0x73fa0014, 0, 0xffffffff, 'x', "GPT1 Output Compare Register 2" },
+{ "GPTOCR3_1", 0x73fa0018, 0, 0xffffffff, 'x', "GPT1 Output Compare Register 3" },
+{ "GPTICR1_1", 0x73fa001c, 0, 0xffffffff, 'x', "GPT1 Input capture Register 1" },
+{ "GPTICR2_1", 0x73fa0020, 0, 0xffffffff, 'x', "GPT1 Input capture Register 2" },
+{ "GPTCNT_1", 0x73fa0024, 0, 0xffffffff, 'x', "GPT1 Counter Register" },
+};
diff --git a/target/linux/debug/imxregs/imxregs.c b/target/linux/debug/imxregs/imxregs.c
index 659df83..dedcf87 100644
--- a/target/linux/debug/imxregs/imxregs.c
+++ b/target/linux/debug/imxregs/imxregs.c
@@ -31,8 +31,10 @@
#include <fcntl.h>
#include <ctype.h>
-#ifdef IMX27
+#if defined(IMX27)
#include "imx27regs.h"
+#elif defined(IMX51)
+#include "imx51regs.h"
#else
#include "imxregs.h"
#endif
hooks/post-receive
--
armadeus
|
|
From: Nicolas <th...@us...> - 2010-12-06 13:38:05
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via ae37a1338709079ad182c6a5e254905a9d905510 (commit)
from 9c22e76d25397855e9ad1b827fa4a669440f3b77 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit ae37a1338709079ad182c6a5e254905a9d905510
Author: nicolas colombain <nic...@ar...>
Date: Mon Dec 6 14:37:46 2010 +0100
[U-BOOT] APF51: remove cleanmarker when using UBI images
-----------------------------------------------------------------------
Summary of changes:
.../device/armadeus/apf51/apf51-u-boot-2010.03.h | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/buildroot/target/device/armadeus/apf51/apf51-u-boot-2010.03.h b/buildroot/target/device/armadeus/apf51/apf51-u-boot-2010.03.h
index a62d1ba..a428a38 100644
--- a/buildroot/target/device/armadeus/apf51/apf51-u-boot-2010.03.h
+++ b/buildroot/target/device/armadeus/apf51/apf51-u-boot-2010.03.h
@@ -198,7 +198,7 @@
"then echo Flashing of kernel succeed;" \
"else echo Flashing of kernel failed;" \
"fi\0" \
- "flash_rootfs=nand erase clean ${rootfs_offset} ${rootfs_len};" \
+ "flash_rootfs=nand erase ${rootfs_offset} ${rootfs_len};" \
"if nand write.jffs2 ${fileaddr} ${rootfs_offset} ${filesize};"\
"then echo Flashing of rootfs succeed;" \
"else echo Flashing of rootfs failed;" \
@@ -508,7 +508,7 @@
#define CONFIG_ENV_IS_IN_NAND 1
#define CONFIG_ENV_OFFSET 0x00100000 /* NAND offset address for now*/
#define CONFIG_ENV_SIZE 0x00020000 /* 128kB */
-#define CONFIG_ENV_RANGE 0X00100000 /* 1MB ( 8 flash blocks ) */
+#define CONFIG_ENV_RANGE 0x00100000 /* 1MB ( 8 flash blocks ) */
#define CONFIG_ENV_OVERWRITE 1 /* env is writable now */
#define CONFIG_FIRMWARE_OFFSET 0x00200000
#define CONFIG_FIRMWARE_LEN 0x00100000 /* 1MB ( 8 flash blocks ) */
hooks/post-receive
--
armadeus
|
|
From: Nicolas <th...@us...> - 2010-12-06 13:34:50
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 9c22e76d25397855e9ad1b827fa4a669440f3b77 (commit)
from 18c5217b822262214d1f1f36fdd1ae326dac0db5 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 9c22e76d25397855e9ad1b827fa4a669440f3b77
Author: nicolas colombain <nic...@ar...>
Date: Mon Dec 6 14:34:19 2010 +0100
[U-BOOT] fix apf51 nand unlock and nand oob
-----------------------------------------------------------------------
Summary of changes:
.../u-boot/u-boot-2010.03-407-imx51-nand.patch | 11 +++++++----
1 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/buildroot/target/u-boot/u-boot-2010.03-407-imx51-nand.patch b/buildroot/target/u-boot/u-boot-2010.03-407-imx51-nand.patch
index dd67a8b..f677e71 100644
--- a/buildroot/target/u-boot/u-boot-2010.03-407-imx51-nand.patch
+++ b/buildroot/target/u-boot/u-boot-2010.03-407-imx51-nand.patch
@@ -12,7 +12,7 @@ diff -purN u-boot-2010.03-ref/drivers/mtd/nand/Makefile u-boot-2010.03/drivers/m
diff -purN u-boot-2010.03-ref/drivers/mtd/nand/mx51_nand.c u-boot-2010.03/drivers/mtd/nand/mx51_nand.c
--- u-boot-2010.03-ref/drivers/mtd/nand/mx51_nand.c 2010-09-16 23:11:51.000000000 +0200
+++ u-boot-2010.03/drivers/mtd/nand/mx51_nand.c 2010-09-16 05:34:54.000000000 +0200
-@@ -0,0 +1,976 @@
+@@ -0,0 +1,979 @@
+/*
+ * Copyright (C) 2010 Eric Jarrige <jo...@ar...>
+ * Copyright 2004-2007 Freescale Semiconductor, Inc.
@@ -177,7 +177,10 @@ diff -purN u-boot-2010.03-ref/drivers/mtd/nand/mx51_nand.c u-boot-2010.03/driver
+ .eccpos = {
+ 8, 9, 10, 11, 12, 13, 14, 15,
+ },
-+ .oobfree = { {0, 8}, {16, 48} },
++ .oobfree = {
++ {.offset = 2, .length = 5},
++ {.offset = 16, .length = 48}
++ },
+};
+
+
@@ -825,7 +828,7 @@ diff -purN u-boot-2010.03-ref/drivers/mtd/nand/mx51_nand.c u-boot-2010.03/driver
+ return;
+ case NAND_CMD_UNLOCK2:{
+ int temp = readl(NFC_WRPROT_UNLOCK_BLK_ADD0) & 0x0000FFFF;
-+ writel((page_addr>>6) & temp , NFC_WRPROT_UNLOCK_BLK_ADD0);
++ writel(((page_addr>>6)<<16) | temp , NFC_WRPROT_UNLOCK_BLK_ADD0);
+ /* Unlock Block Command for given address range */
+ writel(0x84 , NFC_WRPROT);
+ }
@@ -897,7 +900,7 @@ diff -purN u-boot-2010.03-ref/drivers/mtd/nand/mx51_nand.c u-boot-2010.03/driver
+{
+ if (host->pagesize_2k){
+ NFC_SET_SPAS(0x20); /* set spare to 64bytes */
-+ writel(0x7020A139, NFC_CONFIG2); /* set 2k page and 64bytes spare */
++ writel(0x7020A0B9, NFC_CONFIG2); /* set 2k page and 64bytes spare */
+ }
+}
+
hooks/post-receive
--
armadeus
|
|
From: jscheer <js...@us...> - 2010-12-03 10:46:28
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 18c5217b822262214d1f1f36fdd1ae326dac0db5 (commit)
from c0ff4d1a914607a628db6bdd4caea35363c229f4 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 18c5217b822262214d1f1f36fdd1ae326dac0db5
Author: Jeremie Scheer <jer...@ar...>
Date: Fri Dec 3 11:45:46 2010 +0100
[ROOTFS] Add PPS scripts path in PATH in /etc/profile when compiling a PPS board.
[ROOTFS] Use generic script gpio_helpers.sh in PPS' S80gpios file to initialize GPIOs.
-----------------------------------------------------------------------
Summary of changes:
.../etc => target/pps/configs}/profile | 24 +++++++------
target/pps/init/S80gpios | 34 +-------------------
target/pps/scripts/init_wpa.sh | 2 +-
3 files changed, 15 insertions(+), 45 deletions(-)
copy {buildroot/target/device/armadeus/rootfs/target_skeleton/etc => target/pps/configs}/profile (74%)
diff --git a/buildroot/target/device/armadeus/rootfs/target_skeleton/etc/profile b/target/pps/configs/profile
similarity index 74%
copy from buildroot/target/device/armadeus/rootfs/target_skeleton/etc/profile
copy to target/pps/configs/profile
index 417ec26..df1edc2 100644
--- a/buildroot/target/device/armadeus/rootfs/target_skeleton/etc/profile
+++ b/target/pps/configs/profile
@@ -6,7 +6,8 @@ export PATH=\
/usr/bin:\
/usr/sbin:\
/usr/bin/X11:\
-/usr/local/bin
+/usr/local/bin:\
+/usr/local/pps/scripts
# If running interactively, then:
if [ "$PS1" ]; then
@@ -17,11 +18,11 @@ if [ "$PS1" ]; then
alias ls='/bin/ls --color=tty -F'
export LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.png=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:';
else
- if [ "`id -u`" -eq 0 ]; then
- export PS1='# '
- else
- export PS1='$ '
- fi
+ if [ "`id -u`" -eq 0 ]; then
+ export PS1='# '
+ else
+ export PS1='$ '
+ fi
fi
export USER=`id -un`
@@ -33,15 +34,16 @@ if [ "$PS1" ]; then
export EDITOR='/bin/vi'
export INPUTRC=/etc/inputrc
export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
- # For Tslib:
- export TSLIB_TSDEVICE=/dev/input/event0
- export TSLIB_TSEVENTTYPE=INPUT
- export TSLIB_CONFFILE=/etc/ts.conf
- export TSLIB_CALIBFILE=/etc/pointercal
### Some aliases
alias ps2='ps facux '
alias ps1='ps faxo "%U %t %p %a" '
+ alias af='ps af'
alias cls='clear'
alias df='df -h'
+ alias indent='indent -bad -bap -bbo -nbc -br -brs -c33 -cd33 -ncdb -ce -ci4 -cli0 -cp33 -cs -d0 -di1 -nfc1 -nfca -hnl -i4 -ip0 -l75 -lp -npcs -npsl -nsc -nsob -nss -ts4 '
+ #alias bc='bc -l'
+ alias minicom='minicom -c on'
+ alias calc='calc -Cd '
+ alias bc='calc -Cd '
fi;
diff --git a/target/pps/init/S80gpios b/target/pps/init/S80gpios
index bf33950..c760395 100755
--- a/target/pps/init/S80gpios
+++ b/target/pps/init/S80gpios
@@ -6,39 +6,7 @@
# Fabien Marteau <fab...@ar...>
#
-GPIO_DEV_DIR=/dev/gpio
-
-setbit()
-{
- PORT=$1
- NB=$2
- VAL=$3
- cat $PORT | sed "s/[0-1]\([0-1]\{$NB\}\)$/$VAL\1/" > $PORT
-}
-
-gpio_set_value()
-{
- GPIO=$1
- VALUE=$2
- if [ "$VALUE" == "1" ]; then
- echo -ne "\x01" > $GPIO_DEV_DIR/$GPIO
- else
- echo -ne "\x00" > $GPIO_DEV_DIR/$GPIO
- fi
-}
-
-# Sets $1 as GPIO; $2 == 1 -> outpout, 0 -> input
-gpio_mode()
-{
- GPIO=`echo $1 | cut -c 3-4`
- VALUE=$2
- PORT=`echo $1 | cut -c 2`
- PORT_DIR="/proc/driver/gpio/port"$PORT"dir"
- PORT_MODE="/proc/driver/gpio/port"$PORT"mode"
-
- setbit $PORT_MODE $GPIO 1
- setbit $PORT_DIR $GPIO $VALUE
-}
+source /usr/bin/gpio_helpers.sh
case "$1" in
start)
diff --git a/target/pps/scripts/init_wpa.sh b/target/pps/scripts/init_wpa.sh
index 65fbb81..1d31d96 100644
--- a/target/pps/scripts/init_wpa.sh
+++ b/target/pps/scripts/init_wpa.sh
@@ -38,7 +38,7 @@ psk=\"$PSK\"
}" > /etc/wpa_supplicant/wpa_supplicant.conf
#Hardware reset of wi2wi chip
-sh reset_wi2wi.sh
+sh /usr/local/pps/scripts/reset_wi2wi.sh
#Load mmc and libertas modules
modprobe mxcmmc
hooks/post-receive
--
armadeus
|