diff options
Diffstat (limited to 'packages/linux')
36 files changed, 966 insertions, 607 deletions
diff --git a/packages/linux/compulab-pxa270-2.6.22/defconfig b/packages/linux/compulab-pxa270-2.6.22/defconfig index a6966d2dad..63bc69533f 100644 --- a/packages/linux/compulab-pxa270-2.6.22/defconfig +++ b/packages/linux/compulab-pxa270-2.6.22/defconfig @@ -220,7 +220,7 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="console=ttyS1,38400 monitor=8 bpp=16 mem=64M mtdparts=physmap-flash.0:256k(boot)ro,0x180000(kernel),-(root);cm-x270-nand:64m(app),-(data)" +CONFIG_CMDLINE="console=ttyS1,38400 monitor=8 bpp=16 mem=64M mtdparts=physmap-flash.0:256k(boot)ro,0x180000(kernel),-(root);cm-x270-nand:64m(app),-(data) rdinit=/sbin/init root=mtd3 rootfstype=jffs2" # CONFIG_XIP_KERNEL is not set # CONFIG_KEXEC is not set diff --git a/packages/linux/compulab-pxa270_2.6.22.bb b/packages/linux/compulab-pxa270_2.6.22.bb index 963a8cf39f..86a7626d8a 100644 --- a/packages/linux/compulab-pxa270_2.6.22.bb +++ b/packages/linux/compulab-pxa270_2.6.22.bb @@ -3,7 +3,7 @@ require linux.inc SECTION = "kernel" DESCRIPTION = "Linux kernel for the Compulab PXA270 system" LICENSE = "GPL" -PR = "r0" +PR = "r1" SRC_URI = "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \ file://0001-cm-x270-base2.patch;patch=1 \ @@ -30,6 +30,8 @@ S = "${WORKDIR}/linux-${PV}" COMPATIBLE_HOST = 'arm.*-linux' COMPATIBLE_MACHINE = "compulab-pxa270" +CMDLINE = "console=${CMX270_CONSOLE_SERIAL_PORT},38400 monitor=8 bpp=16 mem=64M mtdparts=physmap-flash.0:256k(boot)ro,0x180000(kernel),-(root);cm-x270-nand:64m(app),-(data) rdinit=/sbin/init root=mtd3 rootfstype=jffs2" + inherit kernel inherit package diff --git a/packages/linux/ixp4xx-kernel.inc b/packages/linux/ixp4xx-kernel.inc index 92bc34c987..af5f78b918 100644 --- a/packages/linux/ixp4xx-kernel.inc +++ b/packages/linux/ixp4xx-kernel.inc @@ -213,6 +213,7 @@ do_configure_prepend() { # Kernel module dependencies +DEPENDS += "zd1211-firmware" RDEPENDS_kernel-module-zd1211rw += "zd1211-firmware" diff --git a/packages/linux/linux-2.6.21/gumstix-pxa270-mmc.patch b/packages/linux/linux-2.6.21/gumstix-pxa270-mmc.patch new file mode 100644 index 0000000000..59d97809d1 --- /dev/null +++ b/packages/linux/linux-2.6.21/gumstix-pxa270-mmc.patch @@ -0,0 +1,33 @@ +Index: linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c +=================================================================== +--- linux-2.6.21gum.orig/arch/arm/mach-pxa/gumstix.c ++++ linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c +@@ -33,8 +33,9 @@ + + static struct pxamci_platform_data gumstix_mci_platform_data; + +-static int gumstix_mci_init(struct device *dev, irqreturn_t (*gumstix_detect_int)(int, void *, struct pt_regs *), void *data) ++static int gumstix_mci_init(struct device *dev, irq_handler_t gumstix_detect_int, void *data) + { ++#ifndef CONFIG_ARCH_GUMSTIX_VERDEX + int err; + + pxa_gpio_mode(GPIO6_MMCCLK_MD); +@@ -55,6 +56,17 @@ static int gumstix_mci_init(struct devic + } + + err = set_irq_type(GUMSTIX_IRQ_GPIO_nSD_DETECT, IRQT_BOTHEDGE); ++#else ++ // Setup GPIOs for MMC on the 120-pin connector ++ // There is no card detect on a uSD connector so no interrupt to register ++ // There is no WP detect GPIO line either ++ pxa_gpio_mode(GPIO92_MMCDAT0_MD); ++ pxa_gpio_mode(GPIO112_MMCCMD_MD); ++ pxa_gpio_mode(GPIO110_MMCDAT2_MD); ++ pxa_gpio_mode(GPIO111_MMCDAT3_MD); ++ pxa_gpio_mode(GPIO109_MMCDAT1_MD); ++ pxa_gpio_mode(GPIO32_MMCCLK_MD); ++#endif + + return 0; + } diff --git a/packages/linux/linux-2.6.21/gumstix-verdex/defconfig b/packages/linux/linux-2.6.21/gumstix-verdex/defconfig index 9107cd0d7c..c6d5480089 100644 --- a/packages/linux/linux-2.6.21/gumstix-verdex/defconfig +++ b/packages/linux/linux-2.6.21/gumstix-verdex/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.21 -# Thu Sep 13 14:49:02 2007 +# Wed Oct 3 16:35:16 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -828,7 +828,8 @@ CONFIG_MII=m CONFIG_SMC91X=m CONFIG_SMC91X_GUMSTIX=m # CONFIG_DM9000 is not set -# CONFIG_SMC911X is not set +CONFIG_SMC911X=m +CONFIG_SMC911X_GUMSTIX=m # # Ethernet (1000 Mbit) diff --git a/packages/linux/linux-2.6.21/mmc-card-detect.patch b/packages/linux/linux-2.6.21/mmc-card-detect.patch index 9a853b4df8..26dd970e3b 100644 --- a/packages/linux/linux-2.6.21/mmc-card-detect.patch +++ b/packages/linux/linux-2.6.21/mmc-card-detect.patch @@ -2,7 +2,7 @@ Index: linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c =================================================================== --- linux-2.6.21gum.orig/arch/arm/mach-pxa/gumstix.c +++ linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c -@@ -29,19 +29,51 @@ +@@ -29,19 +29,55 @@ #include "generic.h" @@ -38,9 +38,13 @@ Index: linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c +static int gumstix_mci_get_ro(struct device *dev) +{ ++#ifdef CONFIG_ARCH_GUMSTIX_VERDEX ++ return 0; // microSD is always writable on verdex ++#else + int ro; + ro = GPLR(GUMSTIX_GPIO_nSD_WP) & GPIO_bit(GUMSTIX_GPIO_nSD_WP); + return ro; ++#endif +} + +static void gumstix_mci_exit(struct device *dev, void *data) diff --git a/packages/linux/linux-2.6.21/pxafb-18bpp-mode.patch b/packages/linux/linux-2.6.21/pxafb-18bpp-mode.patch index 3643b402e5..c9849d22f4 100644 --- a/packages/linux/linux-2.6.21/pxafb-18bpp-mode.patch +++ b/packages/linux/linux-2.6.21/pxafb-18bpp-mode.patch @@ -154,7 +154,7 @@ Index: linux-2.6.21gum/drivers/video/pxafb.c case '-': namelen = i; if (!bpp_specified && !yres_specified) { -@@ -1227,6 +1268,18 @@ static int __init pxafb_parse_options(st +@@ -1227,12 +1268,29 @@ static int __init pxafb_parse_options(st } if (bpp_specified) switch (bpp) { @@ -173,6 +173,17 @@ Index: linux-2.6.21gum/drivers/video/pxafb.c case 1: case 2: case 4: + case 8: + case 16: + inf->modes[0].bpp = bpp; ++ if(nonstd_specified) { ++ dev_err(dev, "Depth %d requires nonstd to *not* be specified\n",bpp); ++ } else { ++ inf->modes[0].nonstd = 0; ++ } + dev_info(dev, "overriding bit depth: %d\n", bpp); + break; + default: Index: linux-2.6.21gum/include/asm-arm/arch-pxa/pxa-regs.h =================================================================== --- linux-2.6.21gum.orig/include/asm-arm/arch-pxa/pxa-regs.h @@ -217,7 +228,7 @@ Index: linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c =================================================================== --- linux-2.6.21gum.orig/arch/arm/mach-pxa/gumstix.c +++ linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c -@@ -100,7 +100,8 @@ static struct pxafb_mode_info gumstix_fb +@@ -116,7 +116,8 @@ static struct pxafb_mode_info gumstix_fb .pixclock = 110000, .xres = 480, .yres = 272, @@ -227,7 +238,7 @@ Index: linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c .hsync_len = 41, .left_margin = 2, .right_margin = 2, -@@ -139,7 +140,8 @@ static struct pxafb_mode_info gumstix_fb +@@ -144,7 +145,8 @@ static struct pxafb_mode_info gumstix_fb .vsync_len = 10, // VLW from datasheet: 10 typ .upper_margin = 2, // VBP - VLW from datasheet: 12 - 10 = 2 .lower_margin = 4, // VFP from datasheet: 4 typ diff --git a/packages/linux/linux-2.6.21/pxafb-definition.patch b/packages/linux/linux-2.6.21/pxafb-definition.patch index 2a782c6143..56369fd788 100644 --- a/packages/linux/linux-2.6.21/pxafb-definition.patch +++ b/packages/linux/linux-2.6.21/pxafb-definition.patch @@ -10,10 +10,26 @@ Index: linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c #include <asm/arch/gumstix.h> #include "generic.h" -@@ -86,6 +87,95 @@ static struct platform_device gum_audio_ +@@ -86,6 +87,89 @@ static struct platform_device gum_audio_ .id = -1, }; ++ ++#if defined(CONFIG_FB_PXA_SHARP_LQ043_PSP) || defined(CONFIG_FB_PXA_SAMSUNG_LTE430WQ_F0C) ++static void gumstix_lcd_backlight(int on_or_off) ++{ ++ if(on_or_off) ++ { ++ pxa_gpio_mode(17 | GPIO_IN); ++ } else { ++ GPCR(17) = GPIO_bit(17); ++ pxa_gpio_mode(17 | GPIO_OUT); ++ GPCR(17) = GPIO_bit(17); ++ } ++} ++#endif ++ ++ +#ifdef CONFIG_FB_PXA_ALPS_CDOLLAR +static struct pxafb_mode_info gumstix_fb_mode = { + .pixclock = 300000, @@ -50,17 +66,6 @@ Index: linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c + .sync = 0, // Hsync and Vsync both active low +}; + -+static void gumstix_lcd_backlight(int on_or_off) -+{ -+ pxa_gpio_mode(17 | GPIO_OUT); -+ if(on_or_off) -+ { -+ GPSR(17) = GPIO_bit(17); -+ } else { -+ GPCR(17) = GPIO_bit(17); -+ } -+} -+ +static struct pxafb_mach_info gumstix_fb_info = { + .modes = &gumstix_fb_mode, + .num_modes = 1, @@ -83,17 +88,6 @@ Index: linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c + .sync = 0, // Hsync and Vsync both active low +}; + -+static void gumstix_lcd_backlight(int on_or_off) -+{ -+ pxa_gpio_mode(17 | GPIO_OUT); -+ if(on_or_off) -+ { -+ GPSR(17) = GPIO_bit(17); -+ } else { -+ GPCR(17) = GPIO_bit(17); -+ } -+} -+ +static struct pxafb_mach_info gumstix_fb_info = { + .modes = &gumstix_fb_mode, + .num_modes = 1, @@ -106,7 +100,7 @@ Index: linux-2.6.21gum/arch/arm/mach-pxa/gumstix.c static struct platform_device *devices[] __initdata = { &gum_audio_device, }; -@@ -94,6 +184,9 @@ static void __init gumstix_init(void) +@@ -94,6 +178,9 @@ static void __init gumstix_init(void) { pxa_set_mci_info(&gumstix_mci_platform_data); pxa_set_udc_info(&gumstix_udc_info); diff --git a/packages/linux/linux-2.6.21/smc911x-fixup.patch b/packages/linux/linux-2.6.21/smc911x-fixup.patch new file mode 100644 index 0000000000..c0b7574d3a --- /dev/null +++ b/packages/linux/linux-2.6.21/smc911x-fixup.patch @@ -0,0 +1,392 @@ +Index: linux-2.6.21gum/drivers/net/smc911x.c +=================================================================== +--- linux-2.6.21gum.orig/drivers/net/smc911x.c ++++ linux-2.6.21gum/drivers/net/smc911x.c +@@ -76,6 +76,7 @@ static const char version[] = + #include <linux/etherdevice.h> + #include <linux/skbuff.h> + ++#include <linux/irq.h> + #include <asm/io.h> + #include <asm/irq.h> + +@@ -303,14 +304,14 @@ static void smc911x_reset(struct net_dev + SMC_SET_AFC_CFG(lp->afc_cfg); + + +- /* Set to LED outputs */ +- SMC_SET_GPIO_CFG(0x70070000); ++ /* Set to LED outputs and configure EEPROM pins as GP outputs */ ++ SMC_SET_GPIO_CFG(GPIO_CFG_LED1_EN_ | GPIO_CFG_LED2_EN_ | 1 << 20); + + /* +- * Deassert IRQ for 1*10us for edge type interrupts ++ * Deassert IRQ for 22*10us for edge type interrupts + * and drive IRQ pin push-pull + */ +- SMC_SET_IRQ_CFG( (1 << 24) | INT_CFG_IRQ_EN_ | INT_CFG_IRQ_TYPE_ ); ++ SMC_SET_IRQ_CFG( (22 << 24) | INT_CFG_IRQ_EN_ | INT_CFG_IRQ_TYPE_ ); + + /* clear anything saved */ + if (lp->pending_tx_skb != NULL) { +@@ -413,7 +414,7 @@ static inline void smc911x_drop_pkt(stru + if (fifo_count <= 4) { + /* Manually dump the packet data */ + while (fifo_count--) +- SMC_GET_RX_FIFO(); ++ (void)SMC_GET_RX_FIFO(); + } else { + /* Fast forward through the bad packet */ + SMC_SET_RX_DP_CTRL(RX_DP_CTRL_FFWD_BUSY_); +@@ -499,7 +500,7 @@ static inline void smc911x_rcv(struct n + SMC_SET_RX_CFG(RX_CFG_RX_END_ALGN4_ | ((2<<8) & RX_CFG_RXDOFF_)); + SMC_PULL_DATA(data, pkt_len+2+3); + +- DBG(SMC_DEBUG_PKTS, "%s: Received packet\n", dev->name,); ++ DBG(SMC_DEBUG_PKTS, "%s: Received packet\n", dev->name); + PRINT_PKT(data, ((pkt_len - 4) <= 64) ? pkt_len - 4 : 64); + dev->last_rx = jiffies; + skb->dev = dev; +@@ -900,6 +901,7 @@ static void smc911x_phy_powerdown(struct + unsigned long ioaddr = dev->base_addr; + unsigned int bmcr; + ++ DBG(SMC_DEBUG_FUNC, "%s: --> %s\n", dev->name, __FUNCTION__); + /* Enter Link Disable state */ + SMC_GET_PHY_BMCR(phy, bmcr); + bmcr |= BMCR_PDOWN; +@@ -925,6 +927,7 @@ static void smc911x_phy_check_media(stru + + if (mii_check_media(&lp->mii, netif_msg_link(lp), init)) { + /* duplex state has changed */ ++ DBG(SMC_DEBUG_MISC, "%s: duplex state has changed\n", dev->name); + SMC_GET_PHY_BMCR(phyaddr, bmcr); + SMC_GET_MAC_CR(cr); + if (lp->mii.full_duplex) { +@@ -960,6 +963,7 @@ static void smc911x_phy_configure(struct + int my_phy_caps; /* My PHY capabilities */ + int my_ad_caps; /* My Advertised capabilities */ + int status; ++ int bmcr; + unsigned long flags; + + DBG(SMC_DEBUG_FUNC, "%s: --> %s()\n", dev->name, __FUNCTION__); +@@ -1033,9 +1037,12 @@ static void smc911x_phy_configure(struct + + DBG(SMC_DEBUG_MISC, "%s: phy caps=0x%04x\n", dev->name, my_phy_caps); + DBG(SMC_DEBUG_MISC, "%s: phy advertised caps=0x%04x\n", dev->name, my_ad_caps); ++ DBG(SMC_DEBUG_MISC, "%s: phy advertised readback caps=0x%04x\n", dev->name, status); + + /* Restart auto-negotiation process in order to advertise my caps */ +- SMC_SET_PHY_BMCR(phyaddr, BMCR_ANENABLE | BMCR_ANRESTART); ++ SMC_GET_PHY_BMCR(phyaddr, bmcr); ++ bmcr |= BMCR_ANENABLE | BMCR_ANRESTART; ++ SMC_SET_PHY_BMCR(phyaddr, bmcr); + + smc911x_phy_check_media(dev, 1); + +@@ -1888,6 +1895,39 @@ static int __init smc911x_findirq(unsign + return probe_irq_off(cookie); + } + ++static inline unsigned int is_gumstix_oui(u8 *addr) ++{ ++ return (addr[0] == 0x00 && addr[1] == 0x15 && addr[2] == 0xC9); ++} ++ ++/** ++ * gen_serial_ether_addr - Generate software assigned Ethernet address ++ * based on the system_serial number ++ * @addr: Pointer to a six-byte array containing the Ethernet address ++ * ++ * Generate an Ethernet address (MAC) that is not multicast ++ * and has the local assigned bit set, keyed on the system_serial ++ */ ++static inline void gen_serial_ether_addr(u8 *addr) ++{ ++ static u8 ether_serial_digit = 0; ++ addr [0] = system_serial_high >> 8; ++ addr [1] = system_serial_high; ++ addr [2] = system_serial_low >> 24; ++ addr [3] = system_serial_low >> 16; ++ addr [4] = system_serial_low >> 8; ++ addr [5] = (system_serial_low & 0xc0) | /* top bits are from system serial */ ++ (1 << 4) | /* 2 bits identify interface type 1=ether, 2=usb, 3&4 undef */ ++ ((ether_serial_digit++) & 0x0f); /* 15 possible interfaces of each type */ ++ ++ if(!is_gumstix_oui(addr)) ++ { ++ addr [0] &= 0xfe; /* clear multicast bit */ ++ addr [0] |= 0x02; /* set local assignment bit (IEEE802) */ ++ } ++} ++ ++ + /* + * Function: smc911x_probe(unsigned long ioaddr) + * +@@ -2116,15 +2156,13 @@ static int __init smc911x_probe(struct n + #endif + printk("\n"); + if (!is_valid_ether_addr(dev->dev_addr)) { +- printk("%s: Invalid ethernet MAC address. Please " +- "set using ifconfig\n", dev->name); +- } else { +- /* Print the Ethernet address */ +- printk("%s: Ethernet addr: ", dev->name); +- for (i = 0; i < 5; i++) +- printk("%2.2x:", dev->dev_addr[i]); +- printk("%2.2x\n", dev->dev_addr[5]); ++ gen_serial_ether_addr(dev->dev_addr); + } ++ /* Print the Ethernet address */ ++ printk("%s: Ethernet addr: ", dev->name); ++ for (i = 0; i < 5; i++) ++ printk("%2.2x:", dev->dev_addr[i]); ++ printk("%2.2x\n", dev->dev_addr[5]); + + if (lp->phy_type == 0) { + PRINTK("%s: No PHY found\n", dev->name); +@@ -2300,8 +2338,15 @@ static struct platform_driver smc911x_dr + }, + }; + ++#ifdef CONFIG_ARCH_GUMSTIX ++extern void gumstix_smc911x_load(void); ++#endif ++ + static int __init smc911x_init(void) + { ++#ifdef CONFIG_ARCH_GUMSTIX ++ gumstix_smc911x_load(); ++#endif + return platform_driver_register(&smc911x_driver); + } + +Index: linux-2.6.21gum/drivers/net/gumstix-smc911x.c +=================================================================== +--- /dev/null ++++ linux-2.6.21gum/drivers/net/gumstix-smc911x.c +@@ -0,0 +1,148 @@ ++/* ++ * Gumstix SMC911x chip intialization driver ++ * ++ * Author: Craig Hughes ++ * Created: December 9, 2004 ++ * Copyright: (C) 2004 Craig Hughes ++ * ++ * 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. ++ * ++ */ ++ ++#include <linux/module.h> ++#include <linux/ioport.h> ++#include <linux/device.h> ++#include <linux/platform_device.h> ++#include <linux/delay.h> ++ ++#include <asm/hardware.h> ++#include <asm/arch/pxa-regs.h> ++#include <asm/delay.h> ++ ++#include <asm/arch/gumstix.h> ++ ++#define SMC_DEBUG 9 ++#include <asm/io.h> ++#include "smc911x.h" ++ ++static struct resource gumstix_smc911x0_resources[] = { ++ [0] = { ++ .name = "smc911x-regs", ++ .start = PXA_CS1_PHYS, ++ .end = PXA_CS1_PHYS + 0x000fffff, ++ .flags = IORESOURCE_MEM, ++ }, ++ [1] = { ++ .start = GUMSTIX_ETH0_IRQ, ++ .end = GUMSTIX_ETH0_IRQ, ++ .flags = IORESOURCE_IRQ, ++ }, ++}; ++ ++static struct resource gumstix_smc911x1_resources[] = { ++ [0] = { ++ .name = "smc911x-regs", ++ .start = PXA_CS2_PHYS, ++ .end = PXA_CS2_PHYS + 0x000fffff, ++ .flags = IORESOURCE_MEM, ++ }, ++ [1] = { ++ .start = GUMSTIX_ETH1_IRQ, ++ .end = GUMSTIX_ETH1_IRQ, ++ .flags = IORESOURCE_IRQ, ++ }, ++}; ++ ++static struct platform_device gumstix_smc911x0_device = { ++ .name = "smc911x", ++ .id = 0, ++ .num_resources = ARRAY_SIZE(gumstix_smc911x0_resources), ++ .resource = gumstix_smc911x0_resources, ++}; ++ ++static struct platform_device gumstix_smc911x1_device = { ++ .name = "smc911x", ++ .id = 1, ++ .num_resources = ARRAY_SIZE(gumstix_smc911x1_resources), ++ .resource = gumstix_smc911x1_resources, ++}; ++ ++static struct platform_device *smc911x_devices[] = { ++ &gumstix_smc911x0_device, ++ &gumstix_smc911x1_device, ++}; ++ ++/* First we're going to test if there's a 2nd SMC911x, and if not, then we'll free up those resources and the GPIO lines ++ * that it would otherwise use. We have no choice but to probe by doing: ++ * Set nCS2 to CS2 mode ++ * Set the reset line to GPIO out mode, and pull it high, then drop it low (to trigger reset) ++ * Read from the memory space to check for the sentinel sequence identifying a likely SMC911x device ++ */ ++int __init gumstix_smc911x_init(void) ++{ ++ unsigned int val, num_devices=ARRAY_SIZE(smc911x_devices); ++ void *ioaddr; ++ ++ /* Set up nPWE */ ++ pxa_gpio_mode(GPIO49_nPWE_MD); ++ ++ pxa_gpio_mode(GPIO78_nCS_2_MD); ++ // If either if statement fails, then we'll drop out and turn_off_eth1, ++ // if both succeed, then we'll skip that and just proceed with 2 cards ++ if(request_mem_region(gumstix_smc911x1_resources[1].start, SMC911X_IO_EXTENT, "smc911x probe")) ++ { ++ ioaddr = ioremap(gumstix_smc911x1_resources[1].start, SMC911X_IO_EXTENT); ++ val = SMC_GET_PN(); ++ iounmap(ioaddr); ++ release_mem_region(gumstix_smc911x1_resources[1].start, SMC911X_IO_EXTENT); ++ if (CHIP_9115 == val || ++ CHIP_9116 == val || ++ CHIP_9117 == val || ++ CHIP_9118 == val ) { ++ goto proceed; ++ } ++ } ++ ++turn_off_eth1: ++ // This is apparently not an SMC911x ++ // So, let's decrement the number of devices to request, and reset the GPIO lines to GPIO IN mode ++ num_devices--; ++ smc911x_devices[1] = NULL; ++ pxa_gpio_mode(78 | GPIO_IN); ++ ++proceed: ++ pxa_gpio_mode(GPIO15_nCS_1_MD); ++ ++ if(smc911x_devices[1]) pxa_gpio_mode(GPIO_GUMSTIX_ETH1_RST_MD); ++ pxa_gpio_mode(GPIO_GUMSTIX_ETH0_RST_MD); ++ ++ if(smc911x_devices[1]) GPCR(GPIO_GUMSTIX_ETH1_RST) = GPIO_bit(GPIO_GUMSTIX_ETH1_RST); ++ GPCR(GPIO_GUMSTIX_ETH0_RST) = GPIO_bit(GPIO_GUMSTIX_ETH0_RST); ++ msleep(500); // Hold RESET for at least 200µ ++ ++ if(smc911x_devices[1]) GPSR(GPIO_GUMSTIX_ETH1_RST) = GPIO_bit(GPIO_GUMSTIX_ETH1_RST); ++ GPSR(GPIO_GUMSTIX_ETH0_RST) = GPIO_bit(GPIO_GUMSTIX_ETH0_RST); ++ msleep(50); ++ ++ return platform_add_devices(smc911x_devices, num_devices); ++} ++ ++void __exit gumstix_smc911x_exit(void) ++{ ++ if(smc911x_devices[1] != NULL) platform_device_unregister(&gumstix_smc911x1_device); ++ platform_device_unregister(&gumstix_smc911x0_device); ++} ++ ++void gumstix_smc911x_load(void) {} ++EXPORT_SYMBOL(gumstix_smc911x_load); ++ ++module_init(gumstix_smc911x_init); ++module_exit(gumstix_smc911x_exit); ++ ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Craig Hughes <craig@gumstix.com>"); ++MODULE_DESCRIPTION("Gumstix board SMC911x chip initialization driver"); ++MODULE_VERSION("1:0.1"); +Index: linux-2.6.21gum/drivers/net/Kconfig +=================================================================== +--- linux-2.6.21gum.orig/drivers/net/Kconfig ++++ linux-2.6.21gum/drivers/net/Kconfig +@@ -897,6 +897,13 @@ config SMC911X + called smc911x. If you want to compile it as a module, say M + here and read <file:Documentation/modules.txt> + ++config SMC911X_GUMSTIX ++ tristate ++ default m if SMC911X=m ++ default y if SMC911X=y ++ depends on SMC911X && ARCH_GUMSTIX ++ ++ + config NET_VENDOR_RACAL + bool "Racal-Interlan (Micom) NI cards" + depends on NET_ETHERNET && ISA +Index: linux-2.6.21gum/drivers/net/Makefile +=================================================================== +--- linux-2.6.21gum.orig/drivers/net/Makefile ++++ linux-2.6.21gum/drivers/net/Makefile +@@ -201,6 +201,7 @@ obj-$(CONFIG_PASEMI_MAC) += pasemi_mac.o + obj-$(CONFIG_MACB) += macb.o + + obj-$(CONFIG_SMC91X_GUMSTIX) += gumstix-smc91x.o ++obj-$(CONFIG_SMC911X_GUMSTIX) += gumstix-smc911x.o + obj-$(CONFIG_ARM) += arm/ + obj-$(CONFIG_DEV_APPLETALK) += appletalk/ + obj-$(CONFIG_TR) += tokenring/ +Index: linux-2.6.21gum/include/asm-arm/arch-pxa/gumstix.h +=================================================================== +--- linux-2.6.21gum.orig/include/asm-arm/arch-pxa/gumstix.h ++++ linux-2.6.21gum/include/asm-arm/arch-pxa/gumstix.h +@@ -52,7 +52,7 @@ + #define GPIO_GUMSTIX_ETH0_RST 80 + #define GPIO_GUMSTIX_ETH0 36 + #else +-#define GPIO_GUMSTIX_ETH0_RST 32 ++#define GPIO_GUMSTIX_ETH0_RST 107 + #define GPIO_GUMSTIX_ETH0 99 + #endif + #define GPIO_GUMSTIX_ETH1_RST 52 +Index: linux-2.6.21gum/drivers/net/smc911x.h +=================================================================== +--- linux-2.6.21gum.orig/drivers/net/smc911x.h ++++ linux-2.6.21gum/drivers/net/smc911x.h +@@ -33,7 +33,9 @@ + * Use the DMA feature on PXA chips + */ + #ifdef CONFIG_ARCH_PXA ++#ifndef CONFIG_SMC911X_GUMSTIX + #define SMC_USE_PXA_DMA 1 ++#endif + #define SMC_USE_16BIT 0 + #define SMC_USE_32BIT 1 + #endif +@@ -46,13 +48,13 @@ + #if SMC_USE_16BIT + #define SMC_inb(a, r) readb((a) + (r)) + #define SMC_inw(a, r) readw((a) + (r)) +-#define SMC_inl(a, r) ((SMC_inw(a, r) & 0xFFFF)+(SMC_inw(a+2, r)<<16)) ++#define SMC_inl(a, r) ((SMC_inw(a, r) & 0xFFFF)+(SMC_inw((a)+2, r)<<16)) + #define SMC_outb(v, a, r) writeb(v, (a) + (r)) + #define SMC_outw(v, a, r) writew(v, (a) + (r)) + #define SMC_outl(v, a, r) \ + do{ \ +- writel(v & 0xFFFF, (a) + (r)); \ +- writel(v >> 16, (a) + (r) + 2); \ ++ writel((v) & 0xFFFF, (a) + (r)); \ ++ writel((v) >> 16, (a) + (r) + 2); \ + } while (0) + #define SMC_insl(a, r, p, l) readsw((short*)((a) + (r)), p, l*2) + #define SMC_outsl(a, r, p, l) writesw((short*)((a) + (r)), p, l*2) diff --git a/packages/linux/linux-davinci/binutils-buildid-arm.patch b/packages/linux/linux-davinci/binutils-buildid-arm.patch new file mode 100644 index 0000000000..edd224f4dd --- /dev/null +++ b/packages/linux/linux-davinci/binutils-buildid-arm.patch @@ -0,0 +1,12 @@ +diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S +index 5ff5406..538fcb5 100644 +--- a/arch/arm/kernel/vmlinux.lds.S ++++ b/arch/arm/kernel/vmlinux.lds.S +@@ -94,6 +94,7 @@ SECTIONS + TEXT_TEXT + SCHED_TEXT + LOCK_TEXT ++ *(.note.*) + #ifdef CONFIG_MMU + *(.fixup) + #endif diff --git a/packages/linux/linux-davinci/davinci-dvevm/defconfig b/packages/linux/linux-davinci/davinci-dvevm/defconfig index 02df8e79d9..e64431a1b6 100644 --- a/packages/linux/linux-davinci/davinci-dvevm/defconfig +++ b/packages/linux/linux-davinci/davinci-dvevm/defconfig @@ -1,13 +1,13 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21-omap1 -# Sun Aug 12 17:15:12 2007 +# Linux kernel version: 2.6.23-rc2-davinci1 +# Fri Aug 17 20:43:45 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y CONFIG_GENERIC_GPIO=y -# CONFIG_GENERIC_TIME is not set -# CONFIG_GENERIC_CLOCKEVENTS is not set +CONFIG_GENERIC_TIME=y +CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_MMU=y # CONFIG_NO_IOPORT is not set CONFIG_GENERIC_HARDIRQS=y @@ -26,26 +26,20 @@ CONFIG_VECTORS_BASE=0xffff0000 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" # -# Code maturity level options +# General setup # CONFIG_EXPERIMENTAL=y CONFIG_BROKEN_ON_SMP=y -CONFIG_LOCK_KERNEL=y CONFIG_INIT_ENV_ARG_LIMIT=32 - -# -# General setup -# CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y # CONFIG_SWAP is not set CONFIG_SYSVIPC=y -# CONFIG_IPC_NS is not set CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y # CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_TASKSTATS is not set -# CONFIG_UTS_NS is not set +# CONFIG_USER_NS is not set # CONFIG_AUDIT is not set CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y @@ -67,34 +61,30 @@ CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y +CONFIG_ANON_INODES=y CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_VM_EVENT_COUNTERS=y -CONFIG_SLUB_DEBUG=y CONFIG_SLAB=y # CONFIG_SLUB is not set # CONFIG_SLOB is not set CONFIG_RT_MUTEXES=y # CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 - -# -# Loadable module support -# CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODVERSIONS=y # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_KMOD=y - -# -# Block layer -# CONFIG_BLOCK=y # CONFIG_LBD is not set # CONFIG_BLK_DEV_IO_TRACE is not set # CONFIG_LSF is not set +# CONFIG_BLK_DEV_BSG is not set # # IO Schedulers @@ -126,14 +116,16 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" # CONFIG_ARCH_NETX is not set # CONFIG_ARCH_H720X is not set # CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP13XX is not set # CONFIG_ARCH_IOP32X is not set # CONFIG_ARCH_IOP33X is not set -# CONFIG_ARCH_IOP13XX is not set -# CONFIG_ARCH_IXP4XX is not set -# CONFIG_ARCH_IXP2000 is not set # CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_KS8695 is not set # CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_MXC is not set # CONFIG_ARCH_PNX4008 is not set # CONFIG_ARCH_PXA is not set # CONFIG_ARCH_RPC is not set @@ -141,8 +133,17 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" # CONFIG_ARCH_S3C2410 is not set # CONFIG_ARCH_SHARK is not set # CONFIG_ARCH_LH7A40X is not set -# CONFIG_ARCH_OMAP is not set CONFIG_ARCH_DAVINCI=y +# CONFIG_ARCH_OMAP is not set +# CONFIG_MACH_OMAP_APOLLON_PLUS is not set + +# +# Boot options +# + +# +# Power management +# # # TI DaVinci Implementations @@ -172,6 +173,7 @@ CONFIG_CPU_32=y CONFIG_CPU_ARM926T=y CONFIG_CPU_32v5=y CONFIG_CPU_ABRT_EV5TJ=y +CONFIG_CPU_PABRT_NOIFAR=y CONFIG_CPU_CACHE_VIVT=y CONFIG_CPU_COPY_V4WB=y CONFIG_CPU_TLB_V4WBI=y @@ -191,6 +193,7 @@ CONFIG_ARM_THUMB=y # # Bus support # +# CONFIG_PCI_SYSCALL is not set # CONFIG_ARCH_SUPPORTS_MSI is not set # @@ -202,11 +205,11 @@ CONFIG_ARM_THUMB=y # Kernel Features # # CONFIG_TICK_ONESHOT is not set -CONFIG_PREEMPT=y -# CONFIG_NO_IDLE_HZ is not set +# CONFIG_NO_HZ is not set +# CONFIG_HIGH_RES_TIMERS is not set +# CONFIG_PREEMPT is not set CONFIG_HZ=100 -CONFIG_AEABI=y -CONFIG_OABI_COMPAT=y +# CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y @@ -218,8 +221,9 @@ CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_SPLIT_PTLOCK_CPUS=4096 # CONFIG_RESOURCES_64BIT is not set CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y CONFIG_LEDS=y -# CONFIG_LEDS_TIMER is not set # CONFIG_LEDS_CPU is not set CONFIG_ALIGNMENT_TRAP=y @@ -239,8 +243,7 @@ CONFIG_CMDLINE="" # # At least one emulation must be selected # -CONFIG_FPE_NWFPE=y -# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_NWFPE is not set # CONFIG_FPE_FASTFPE is not set # CONFIG_VFP is not set @@ -250,6 +253,7 @@ CONFIG_FPE_NWFPE=y CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_AOUT is not set # CONFIG_BINFMT_MISC is not set +# CONFIG_ARTHUR is not set # # Power management options @@ -298,10 +302,6 @@ CONFIG_INET_TCP_DIAG=y CONFIG_TCP_CONG_CUBIC=y CONFIG_DEFAULT_TCP_CONG="cubic" # CONFIG_TCP_MD5SIG is not set - -# -# IP: Virtual Server Configuration -# # CONFIG_IP_VS is not set CONFIG_IPV6=m # CONFIG_IPV6_PRIVACY is not set @@ -344,20 +344,8 @@ CONFIG_NETFILTER=y # # CONFIG_IP6_NF_QUEUE is not set # CONFIG_IP6_NF_IPTABLES is not set - -# -# DCCP Configuration (EXPERIMENTAL) -# # CONFIG_IP_DCCP is not set - -# -# SCTP Configuration (EXPERIMENTAL) -# # CONFIG_IP_SCTP is not set - -# -# TIPC Configuration (EXPERIMENTAL) -# # CONFIG_TIPC is not set # CONFIG_ATM is not set # CONFIG_BRIDGE is not set @@ -393,6 +381,7 @@ CONFIG_NETFILTER=y # CONFIG_MAC80211 is not set # CONFIG_IEEE80211 is not set # CONFIG_RFKILL is not set +# CONFIG_NET_9P is not set # # Device Drivers @@ -405,10 +394,6 @@ CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y # CONFIG_FW_LOADER is not set # CONFIG_SYS_HYPERVISOR is not set - -# -# Connector - unified userspace <-> kernelspace linker -# # CONFIG_CONNECTOR is not set CONFIG_MTD=y # CONFIG_MTD_DEBUG is not set @@ -494,20 +479,8 @@ CONFIG_MTD_NAND_IDS=y # UBI - Unsorted block images # # CONFIG_MTD_UBI is not set - -# -# Parallel port support -# # CONFIG_PARPORT is not set - -# -# Plug and Play support -# -# CONFIG_PNPACPI is not set - -# -# Block devices -# +CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=m # CONFIG_BLK_DEV_CRYPTOLOOP is not set @@ -519,10 +492,6 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set - -# -# ATA/ATAPI/MFM/RLL support -# CONFIG_IDE=y CONFIG_IDE_MAX_HWIFS=4 CONFIG_BLK_DEV_IDE=y @@ -584,6 +553,7 @@ CONFIG_BLK_DEV_IDEDMA=y # # CONFIG_RAID_ATTRS is not set CONFIG_SCSI=m +CONFIG_SCSI_DMA=y # CONFIG_SCSI_TGT is not set # CONFIG_SCSI_NETLINK is not set CONFIG_SCSI_PROC_FS=y @@ -613,74 +583,28 @@ 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 - -# -# SCSI low-level drivers -# +CONFIG_SCSI_LOWLEVEL=y # CONFIG_ISCSI_TCP is not set # CONFIG_SCSI_DEBUG is not set -# CONFIG_SCSI_ESP_CORE is not set - -# -# Serial ATA (prod) and Parallel ATA (experimental) drivers -# # CONFIG_ATA is not set - -# -# Multi-device support (RAID and LVM) -# # CONFIG_MD is not set - -# -# Fusion MPT device support -# -# CONFIG_FUSION is not set - -# -# IEEE 1394 (FireWire) support -# - -# -# I2O device support -# - -# -# Network device support -# CONFIG_NETDEVICES=y +# CONFIG_NETDEVICES_MULTIQUEUE is not set # CONFIG_DUMMY is not set # CONFIG_BONDING is not set +# CONFIG_MACVLAN is not set # CONFIG_EQUALIZER is not set CONFIG_TUN=m - -# -# PHY device support -# # CONFIG_PHYLIB is not set - -# -# Ethernet (10 or 100Mbit) -# CONFIG_NET_ETHERNET=y # CONFIG_MII is not set -CONFIG_TI_DAVINCI_EMAC=y +# CONFIG_AX88796 is not set # CONFIG_SMC91X is not set +CONFIG_TI_DAVINCI_EMAC=y # CONFIG_DM9000 is not set - -# -# Ethernet (1000 Mbit) -# - -# -# Ethernet (10000 Mbit) -# -CONFIG_MLX4_DEBUG=y - -# -# Token Ring devices -# +CONFIG_NETDEV_1000=y +CONFIG_NETDEV_10000=y # # Wireless LAN @@ -697,10 +621,6 @@ CONFIG_MLX4_DEBUG=y # CONFIG_USB_RTL8150 is not set # CONFIG_USB_USBNET_MII is not set # CONFIG_USB_USBNET is not set - -# -# Wan interfaces -# # CONFIG_WAN is not set CONFIG_PPP=m # CONFIG_PPP_MULTILINK is not set @@ -711,6 +631,7 @@ CONFIG_PPP_DEFLATE=m # CONFIG_PPP_BSDCOMP is not set # CONFIG_PPP_MPPE is not set # CONFIG_PPPOE is not set +# CONFIG_PPPOL2TP is not set # CONFIG_SLIP is not set CONFIG_SLHC=m # CONFIG_SHAPER is not set @@ -718,10 +639,6 @@ CONFIG_NETCONSOLE=y CONFIG_NETPOLL=y CONFIG_NETPOLL_TRAP=y CONFIG_NET_POLL_CONTROLLER=y - -# -# ISDN subsystem -# # CONFIG_ISDN is not set # @@ -729,6 +646,7 @@ CONFIG_NET_POLL_CONTROLLER=y # CONFIG_INPUT=y # CONFIG_INPUT_FF_MEMLESS is not set +# CONFIG_INPUT_POLLDEV is not set # # Userland interfaces @@ -794,26 +712,13 @@ CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=256 - -# -# IPMI -# # CONFIG_IPMI_HANDLER is not set - -# -# Watchdog Cards -# # CONFIG_WATCHDOG is not set CONFIG_HW_RANDOM=y # CONFIG_NVRAM is not set CONFIG_DAVINCI_RTC=y -# CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_RAW_DRIVER is not set - -# -# TPM devices -# # CONFIG_TCG_TPM is not set CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y @@ -833,6 +738,7 @@ CONFIG_I2C_CHARDEV=y # CONFIG_I2C_OCORES is not set # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_TAOS_EVM is not set # CONFIG_I2C_STUB is not set # CONFIG_I2C_TINY_USB is not set CONFIG_I2C_DAVINCI=y @@ -842,13 +748,16 @@ CONFIG_I2C_DAVINCI=y # # CONFIG_SENSORS_DS1337 is not set # CONFIG_SENSORS_DS1374 is not set +# CONFIG_DS1682 is not set # CONFIG_SENSORS_EEPROM is not set # CONFIG_SENSORS_PCF8574 is not set # CONFIG_SENSORS_PCA9539 is not set # CONFIG_SENSORS_PCF8591 is not set CONFIG_SENSORS_TLV320AIC23=y -# CONFIG_SENSORS_MAX6875 is not set CONFIG_SENSORS_TLV320AIC33=y +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_SENSORS_TSL2550 is not set +CONFIG_GPIOEXPANDER_DAVINCI=y # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set @@ -859,14 +768,11 @@ CONFIG_SENSORS_TLV320AIC33=y # # CONFIG_SPI is not set # CONFIG_SPI_MASTER is not set - -# -# Dallas's 1-wire bus -# # CONFIG_W1 is not set CONFIG_HWMON=y # CONFIG_HWMON_VID is not set # CONFIG_SENSORS_ABITUGURU is not set +# CONFIG_SENSORS_ABITUGURU3 is not set # CONFIG_SENSORS_AD7418 is not set # CONFIG_SENSORS_ADM1021 is not set # CONFIG_SENSORS_ADM1025 is not set @@ -893,13 +799,16 @@ CONFIG_HWMON=y # CONFIG_SENSORS_LM87 is not set # CONFIG_SENSORS_LM90 is not set # CONFIG_SENSORS_LM92 is not set +# CONFIG_SENSORS_LM93 is not set # CONFIG_SENSORS_MAX1619 is not set # CONFIG_SENSORS_MAX6650 is not set # CONFIG_SENSORS_PC87360 is not set # CONFIG_SENSORS_PC87427 is not set +# CONFIG_SENSORS_DME1737 is not set # CONFIG_SENSORS_SMSC47M1 is not set # CONFIG_SENSORS_SMSC47M192 is not set # CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_THMC50 is not set # CONFIG_SENSORS_VT1211 is not set # CONFIG_SENSORS_W83781D is not set # CONFIG_SENSORS_W83791D is not set @@ -909,57 +818,33 @@ CONFIG_HWMON=y # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set # CONFIG_HWMON_DEBUG_CHIP is not set - -# -# Misc devices -# -# CONFIG_BLINK is not set +CONFIG_MISC_DEVICES=y +# CONFIG_EEPROM_93CX6 is not set # # Multifunction device drivers # # CONFIG_MFD_SM501 is not set - -# -# LED devices -# # CONFIG_NEW_LEDS is not set # -# LED drivers -# - -# -# LED Triggers -# - -# # Multimedia devices # CONFIG_VIDEO_DEV=y CONFIG_VIDEO_V4L1=y CONFIG_VIDEO_V4L1_COMPAT=y CONFIG_VIDEO_V4L2=y - -# -# Video Capture Adapters -# - -# -# Video Capture Adapters -# +CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_ADV_DEBUG is not set CONFIG_VIDEO_HELPER_CHIPS_AUTO=y +# CONFIG_VIDEO_TVP5146 is not set # CONFIG_VIDEO_CPIA is not set # CONFIG_VIDEO_CPIA2 is not set # CONFIG_VIDEO_SAA5246A is not set # CONFIG_VIDEO_SAA5249 is not set # CONFIG_TUNER_3036 is not set -# CONFIG_VIDEO_IVTV is not set - -# -# V4L USB devices -# +# CONFIG_TUNER_TEA5761 is not set +CONFIG_V4L_USB_DRIVERS=y # CONFIG_VIDEO_PVRUSB2 is not set # CONFIG_VIDEO_EM28XX is not set # CONFIG_VIDEO_USBVISION is not set @@ -977,17 +862,11 @@ CONFIG_VIDEO_HELPER_CHIPS_AUTO=y # CONFIG_USB_ZC0301 is not set # CONFIG_USB_PWC is not set # CONFIG_USB_ZR364XX is not set - -# -# Radio Adapters -# +CONFIG_RADIO_ADAPTERS=y # CONFIG_RADIO_TEA5761 is not set # CONFIG_USB_DSBR is not set - -# -# Digital Video Broadcasting Devices -# -# CONFIG_DVB is not set +# CONFIG_DVB_CORE is not set +CONFIG_DAB=y # CONFIG_USB_DABUSB is not set # @@ -1000,6 +879,7 @@ CONFIG_VIDEO_HELPER_CHIPS_AUTO=y # # CONFIG_DISPLAY_SUPPORT is not set # CONFIG_VGASTATE is not set +CONFIG_VIDEO_OUTPUT_CONTROL=m CONFIG_FB=y CONFIG_FIRMWARE_EDID=y # CONFIG_FB_DDC is not set @@ -1030,6 +910,7 @@ CONFIG_FB_DAVINCI=y # CONFIG_VGA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set # CONFIG_FONTS is not set CONFIG_FONT_8x8=y @@ -1053,7 +934,6 @@ CONFIG_SOUND=y # Open Sound System # CONFIG_SOUND_PRIME=y -# CONFIG_OSS_OBSOLETE is not set # CONFIG_SOUND_MSNDCLAS is not set # CONFIG_SOUND_MSNDPIN is not set CONFIG_SOUND_DAVINCI=y @@ -1064,10 +944,7 @@ CONFIG_SOUND_DAVINCI_AIC33=y # # CONFIG_MONOSTEREO_DIFFJACK is not set CONFIG_MONOSTEREO_SAMEJACK=y - -# -# HID Devices -# +CONFIG_HID_SUPPORT=y CONFIG_HID=y # CONFIG_HID_DEBUG is not set @@ -1084,10 +961,7 @@ CONFIG_USB_HID=m # # CONFIG_USB_KBD is not set # CONFIG_USB_MOUSE is not set - -# -# USB support -# +CONFIG_USB_SUPPORT=y CONFIG_USB_ARCH_HAS_HCD=y # CONFIG_USB_ARCH_HAS_OHCI is not set # CONFIG_USB_ARCH_HAS_EHCI is not set @@ -1098,7 +972,7 @@ CONFIG_USB=m # Miscellaneous USB options # CONFIG_USB_DEVICEFS=y -# CONFIG_USB_DEVICE_CLASS is not set +CONFIG_USB_DEVICE_CLASS=y # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_OTG is not set @@ -1107,6 +981,7 @@ CONFIG_USB_DEVICEFS=y # # CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set CONFIG_USB_MUSB_HDRC=m CONFIG_USB_MUSB_SOC=y @@ -1197,12 +1072,15 @@ CONFIG_USB_MON=y CONFIG_USB_GADGET=m # CONFIG_USB_GADGET_DEBUG_FILES is not set CONFIG_USB_GADGET_SELECTED=y +# CONFIG_USB_GADGET_AMD5536UDC is not set # CONFIG_USB_GADGET_FSL_USB2 is not set # CONFIG_USB_GADGET_NET2280 is not set # CONFIG_USB_GADGET_PXA2XX is not set +# CONFIG_USB_GADGET_M66592 is not set # CONFIG_USB_GADGET_GOKU is not set # CONFIG_USB_GADGET_LH7A40X is not set # CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_S3C2410 is not set # CONFIG_USB_GADGET_AT91 is not set # CONFIG_USB_GADGET_DUMMY_HCD is not set CONFIG_USB_GADGET_DUALSPEED=y @@ -1222,17 +1100,27 @@ CONFIG_MMC=y # MMC/SD Card Drivers # CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_BOUNCE=y # # MMC/SD Host Controller Drivers # # CONFIG_MMC_DAVINCI is not set +CONFIG_RTC_LIB=y +# CONFIG_RTC_CLASS is not set # -# Real Time Clock +# DMA Engine support +# +# CONFIG_DMA_ENGINE is not set + +# +# DMA Clients +# + +# +# DMA Devices # -CONFIG_RTC_LIB=y -# CONFIG_RTC_CLASS is not set # # File systems @@ -1350,7 +1238,6 @@ CONFIG_SMB_FS=m # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set -# CONFIG_9P_FS is not set # # Partition Types @@ -1447,10 +1334,6 @@ CONFIG_FRAME_POINTER=y # # CONFIG_KEYS is not set # CONFIG_SECURITY is not set - -# -# Cryptographic options -# # CONFIG_CRYPTO is not set # @@ -1459,7 +1342,9 @@ CONFIG_FRAME_POINTER=y CONFIG_BITREVERSE=y CONFIG_CRC_CCITT=m # CONFIG_CRC16 is not set +# CONFIG_CRC_ITU_T is not set CONFIG_CRC32=y +# CONFIG_CRC7 is not set # CONFIG_LIBCRC32C is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff --git a/packages/linux/linux-davinci_2.6.x+git-davinci.bb b/packages/linux/linux-davinci_2.6.x+git-davinci.bb index b4dcabedd7..0381716253 100644 --- a/packages/linux/linux-davinci_2.6.x+git-davinci.bb +++ b/packages/linux/linux-davinci_2.6.x+git-davinci.bb @@ -6,6 +6,7 @@ PR = "r1" COMPATIBLE_MACHINE = "davinci-dvevm" SRC_URI = "git://source.mvista.com/git/linux-davinci-2.6.git;protocol=git \ + file://binutils-buildid-arm.patch;patch=1 \ file://defconfig" S = "${WORKDIR}/git" diff --git a/packages/linux/linux-ezx-2.6.21/a1200/defconfig b/packages/linux/linux-ezx-2.6.21/a1200/defconfig index b40f2f6eba..074d70244b 100755 --- a/packages/linux/linux-ezx-2.6.21/a1200/defconfig +++ b/packages/linux/linux-ezx-2.6.21/a1200/defconfig @@ -45,7 +45,7 @@ CONFIG_SYSVIPC_SYSCTL=y # CONFIG_TASKSTATS is not set # CONFIG_UTS_NS is not set # CONFIG_AUDIT is not set -# CONFIG_IKCONFIG is not set +CONFIG_IKCONFIG=y # CONFIG_SYSFS_DEPRECATED is not set # CONFIG_RELAY is not set # CONFIG_BLK_DEV_INITRD is not set @@ -1003,7 +1003,7 @@ CONFIG_VIDEO_HELPER_CHIPS_AUTO=y CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_LCD_CLASS_DEVICE=m -CONFIG_BACKLIGHT_EZX=y +CONFIG_BACKLIGHT_EZX=N CONFIG_FB=y # CONFIG_FIRMWARE_EDID is not set # CONFIG_FB_DDC is not set @@ -1313,12 +1313,12 @@ CONFIG_RTC_DRV_SA1100=m # # File systems # -CONFIG_EXT2_FS=m +CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y CONFIG_EXT2_FS_SECURITY=y # CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=y +CONFIG_EXT3_FS=m CONFIG_EXT3_FS_XATTR=y CONFIG_EXT3_FS_POSIX_ACL=y CONFIG_EXT3_FS_SECURITY=y diff --git a/packages/linux/linux-ezx-2.6.21/a780/defconfig b/packages/linux/linux-ezx-2.6.21/a780/defconfig index f79aaa7e7d..30f9f72174 100755 --- a/packages/linux/linux-ezx-2.6.21/a780/defconfig +++ b/packages/linux/linux-ezx-2.6.21/a780/defconfig @@ -45,7 +45,7 @@ CONFIG_SYSVIPC_SYSCTL=y # CONFIG_TASKSTATS is not set # CONFIG_UTS_NS is not set # CONFIG_AUDIT is not set -# CONFIG_IKCONFIG is not set +CONFIG_IKCONFIG=y # CONFIG_SYSFS_DEPRECATED is not set # CONFIG_RELAY is not set # CONFIG_BLK_DEV_INITRD is not set @@ -1317,12 +1317,12 @@ CONFIG_RTC_DRV_SA1100=m # # File systems # -CONFIG_EXT2_FS=m +CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y CONFIG_EXT2_FS_SECURITY=y # CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=y +CONFIG_EXT3_FS=m CONFIG_EXT3_FS_XATTR=y CONFIG_EXT3_FS_POSIX_ACL=y CONFIG_EXT3_FS_SECURITY=y diff --git a/packages/linux/linux-ezx-2.6.21/e680/defconfig b/packages/linux/linux-ezx-2.6.21/e680/defconfig index 94947cceb3..9a30ce673f 100755 --- a/packages/linux/linux-ezx-2.6.21/e680/defconfig +++ b/packages/linux/linux-ezx-2.6.21/e680/defconfig @@ -45,7 +45,7 @@ CONFIG_SYSVIPC_SYSCTL=y # CONFIG_TASKSTATS is not set # CONFIG_UTS_NS is not set # CONFIG_AUDIT is not set -# CONFIG_IKCONFIG is not set +CONFIG_IKCONFIG=y # CONFIG_SYSFS_DEPRECATED is not set # CONFIG_RELAY is not set # CONFIG_BLK_DEV_INITRD is not set @@ -1311,12 +1311,12 @@ CONFIG_RTC_DRV_SA1100=m # # File systems # -CONFIG_EXT2_FS=m +CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y CONFIG_EXT2_FS_SECURITY=y # CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=y +CONFIG_EXT3_FS=n CONFIG_EXT3_FS_XATTR=y CONFIG_EXT3_FS_POSIX_ACL=y CONFIG_EXT3_FS_SECURITY=y diff --git a/packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch b/packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch index e6146058a0..77aec1c629 100644 --- a/packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch @@ -1,73 +1,15 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-21 21:38:52.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-21 21:48:23.000000000 -0300 -@@ -25,6 +25,7 @@ - #include <asm/arch/mmc.h> - - #include "generic.h" -+#include "ezx-eoc.h" - - extern void ezx_lcd_power(int, struct fb_var_screeninfo *); - extern void ezx_backlight_power(int); -@@ -203,8 +204,65 @@ +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-24 20:14:54.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-24 20:15:18.000000000 -0300 +@@ -203,8 +203,15 @@ }, }; + -+/* EOC */ -+static const unsigned int tab_init_eoc_reg[][2] = -+{ -+ {POWER_IC_REG_EOC_INT_MASK, 0x00000FEF}, -+ {POWER_IC_REG_EOC_POWER_CONTROL_0, 0x00000C00}, -+ {POWER_IC_REG_EOC_POWER_CONTROL_1, 0x0000000C}, -+ {POWER_IC_REG_EOC_CONN_CONTROL, 0x00021044}, -+}; -+ -+static void dump_eoc_registers(void) -+{ -+ int i, val = 0; -+ -+ printk("========DUMP EOC=========\n"); -+ for (i = 0; i < POWER_IC_REG_EOC_NUM; i++) { -+ eoc_reg_read(i, &val); -+ printk("eoc_registers[%d] = 0x%08X\n", i, val); -+ } -+ printk("========END DUMP=========\n"); -+} -+ -+/* -+ * FIXME: The same about the PCAP driver applies here. -+ * This is the initial state only. -+ * Which bits does the change to USB/UART/AUDIO mode? -+ * I think that this is causing the crash on pxa27x-udc -+ * you are setting the 'port connected' bit, and thats why -+ * you are getting interrupts early. -+ * --WM -+ */ -+ -+static int __init a1200_eoc_init(void) -+{ -+ int i; -+ -+ for (i = 0; i < sizeof(tab_init_eoc_reg)/sizeof(unsigned int)/2; i++) -+ { -+ eoc_reg_write(tab_init_eoc_reg[i][0], tab_init_eoc_reg[i][1]); -+ } -+ dump_eoc_registers(); -+ return 0; -+} -+ -+static struct ezx_eoc_platform_data a1200_eoc_platform_data = { -+ .init = a1200_eoc_init, -+}; -+ +struct platform_device a1200_eoc_device = { + .name = "ezx-eoc", + .id = -1, -+ .dev = { -+ .platform_data = &a1200_eoc_platform_data, -+ }, +}; + static struct platform_device *devices[] __initdata = { diff --git a/packages/linux/linux-ezx-2.6.21/patches/a1200-flip.patch b/packages/linux/linux-ezx-2.6.21/patches/a1200-flip.patch new file mode 100644 index 0000000000..fc51773205 --- /dev/null +++ b/packages/linux/linux-ezx-2.6.21/patches/a1200-flip.patch @@ -0,0 +1,47 @@ +Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c +=================================================================== +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-25 02:00:53.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-25 02:01:06.000000000 -0300 +@@ -16,6 +16,7 @@ + #include <linux/mmc/host.h> + #include <linux/irq.h> + #include <linux/input.h> ++#include <linux/gpio_keys.h> + + #include <asm/mach-types.h> + #include <asm/mach/arch.h> +@@ -292,11 +293,34 @@ + .num_resources = ARRAY_SIZE(pcap_ts_resources), + .resource = pcap_ts_resources, + }; ++/* Flip */ ++#undef GPIO_FLIP_PIN ++#define GPIO_FLIP_PIN 15 /* FIXME */ ++static struct gpio_keys_button a1200flip_buttons[] = { ++ [0] = { ++ .keycode = KEY_SLEEP, ++ .gpio = GPIO_FLIP_PIN, ++ .desc = "A1200 flip", ++ }, ++}; ++ ++static struct gpio_keys_platform_data a1200flip_platform_data = { ++ .buttons = a1200flip_buttons, ++ .nbuttons = 1, ++}; ++static struct platform_device a1200flip_device = { ++ .name = "gpio-keys", ++ .id = -1, ++ .dev = { ++ .platform_data = &a1200flip_platform_data, ++ }, ++}; + + static struct platform_device *devices[] __initdata = { + &a1200_pcap_device, + &a1200_eoc_device, + &pcap_ts_device, ++ &a1200flip_device, + }; + + static void __init a1200_init(void) diff --git a/packages/linux/linux-ezx-2.6.21/patches/a1200-kbd.patch b/packages/linux/linux-ezx-2.6.21/patches/a1200-kbd.patch new file mode 100644 index 0000000000..5771f6d359 --- /dev/null +++ b/packages/linux/linux-ezx-2.6.21/patches/a1200-kbd.patch @@ -0,0 +1,98 @@ +Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c +=================================================================== +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-25 00:03:01.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-25 02:00:40.000000000 -0300 +@@ -15,6 +15,7 @@ + #include <linux/fb.h> + #include <linux/mmc/host.h> + #include <linux/irq.h> ++#include <linux/input.h> + + #include <asm/mach-types.h> + #include <asm/mach/arch.h> +@@ -23,11 +24,13 @@ + #include <asm/arch/ezx.h> + #include <asm/arch/ezx-pcap.h> + #include <asm/arch/mmc.h> ++#include <asm/arch/kbd.h> + + #include "generic.h" + + extern void ezx_lcd_power(int, struct fb_var_screeninfo *); + extern void ezx_backlight_power(int); ++extern void __init pxa_set_kbd_info(struct pxakbd_platform_data *); + + #ifdef CONFIG_EZX_PCAP + extern int ezx_pcap_mmcsd_power(int); +@@ -209,6 +212,63 @@ + .id = -1, + }; + ++/* Keypad */ ++static unsigned char a1200_keycode[] = { ++ /* row 0 */ ++ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, ++ /* row 1 */ ++ KEY_RIGHT, KEY_DOWN, KEY_KPENTER, KEY_UP, KEY_LEFT, ++ /* row 2 */ ++ KEY_PAGEDOWN, KEY_CAMERA, KEY_RECORD, KEY_HOME, KEY_PAGEUP, ++ /* row 3 */ ++ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, ++ /* row 4 */ ++ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, ++ /* row 5 */ ++ KEY_RESERVED, KEY_RESERVED, KEY_MENU, KEY_RESERVED, KEY_RESERVED, ++}; ++/* ++static unsigned char a1200_direct_keycode[] = { ++ KEY_CAMERA, ++}; ++*/ ++ ++static int a1200_kbd_init(void) ++{ ++ pxa_gpio_mode(100 | GPIO_ALT_FN_1_IN); /* KP_MKIN<0> */ ++ pxa_gpio_mode(101 | GPIO_ALT_FN_1_IN); /* KP_MKIN<1> */ ++ pxa_gpio_mode(102 | GPIO_ALT_FN_1_IN); /* KP_MKIN<2> */ ++ pxa_gpio_mode(97 | GPIO_ALT_FN_3_IN); /* KP_MKIN<3> */ ++ pxa_gpio_mode(98 | GPIO_ALT_FN_3_IN); /* KP_MKIN<4> */ ++ pxa_gpio_mode(103 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<0> */ ++ pxa_gpio_mode(104 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<1> */ ++ pxa_gpio_mode(105 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<2> */ ++ pxa_gpio_mode(106 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<3> */ ++ pxa_gpio_mode(107 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<4> */ ++ pxa_gpio_mode(108 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<5> */ ++ ++ PKWR = 0xEC000; ++ PGSR3 |= 0x1F80; ++ return 0; ++} ++ ++static struct pxakbd_platform_data a1200_kbd_platform_data = { ++ .init = &a1200_kbd_init, ++ .scan_interval = HZ/40, ++ .matrix = { ++ .keycode = a1200_keycode, ++ .cols = 6, ++ .rows = 5, ++ }, ++/* ++ .direct = { ++ .keycode = a1200_direct_keycode, ++ .num = 1, ++ }, ++*/ ++}; ++ ++ + static struct platform_device *devices[] __initdata = { + &a1200_pcap_device, + &a1200_eoc_device, +@@ -218,6 +278,7 @@ + { + set_pxa_fb_info(&a1200_fb_info); + pxa_set_mci_info(&a1200_mci_platform_data); ++ pxa_set_kbd_info(&a1200_kbd_platform_data); + + platform_add_devices(devices, ARRAY_SIZE(devices)); + } diff --git a/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch b/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch index 2327257507..bf328cd931 100755 --- a/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch @@ -1,11 +1,11 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-21 21:50:31.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-21 21:51:06.000000000 -0300 -@@ -260,9 +260,34 @@ - }, +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-25 02:00:40.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-25 02:00:53.000000000 -0300 +@@ -269,9 +269,34 @@ }; + +/* PCAP_TS */ +struct resource pcap_ts_resources[] = { + [0] = { diff --git a/packages/linux/linux-ezx-2.6.21/patches/e6-eoc.patch b/packages/linux/linux-ezx-2.6.21/patches/e6-eoc.patch index f6e152c735..3824079c15 100644 --- a/packages/linux/linux-ezx-2.6.21/patches/e6-eoc.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/e6-eoc.patch @@ -1,73 +1,15 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e6.c 2007-09-21 21:38:52.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-09-21 21:49:42.000000000 -0300 -@@ -25,6 +25,7 @@ - #include <asm/arch/mmc.h> - - #include "generic.h" -+#include "ezx-eoc.h" - - extern void ezx_lcd_power(int, struct fb_var_screeninfo *); - extern void ezx_backlight_power(int); -@@ -203,8 +204,65 @@ +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e6.c 2007-09-24 20:14:54.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-09-24 20:15:18.000000000 -0300 +@@ -203,8 +203,15 @@ }, }; + -+/* EOC */ -+static const unsigned int tab_init_eoc_reg[][2] = -+{ -+ {POWER_IC_REG_EOC_INT_MASK, 0x00000FEF}, -+ {POWER_IC_REG_EOC_POWER_CONTROL_0, 0x00000C00}, -+ {POWER_IC_REG_EOC_POWER_CONTROL_1, 0x0000000C}, -+ {POWER_IC_REG_EOC_CONN_CONTROL, 0x00021044}, -+}; -+ -+static void dump_eoc_registers(void) -+{ -+ int i, val = 0; -+ -+ printk("========DUMP EOC=========\n"); -+ for (i = 0; i < POWER_IC_REG_EOC_NUM; i++) { -+ eoc_reg_read(i, &val); -+ printk("eoc_registers[%d] = 0x%08X\n", i, val); -+ } -+ printk("========END DUMP=========\n"); -+} -+ -+/* -+ * FIXME: The same about the PCAP driver applies here. -+ * This is the initial state only. -+ * Which bits does the change to USB/UART/AUDIO mode? -+ * I think that this is causing the crash on pxa27x-udc -+ * you are setting the 'port connected' bit, and thats why -+ * you are getting interrupts early. -+ * --WM -+ */ -+ -+static int __init e6_eoc_init(void) -+{ -+ int i; -+ -+ for (i = 0; i < sizeof(tab_init_eoc_reg)/sizeof(unsigned int)/2; i++) -+ { -+ eoc_reg_write(tab_init_eoc_reg[i][0], tab_init_eoc_reg[i][1]); -+ } -+ dump_eoc_registers(); -+ return 0; -+} -+ -+static struct ezx_eoc_platform_data e6_eoc_platform_data = { -+ .init = e6_eoc_init, -+}; -+ +struct platform_device e6_eoc_device = { + .name = "ezx-eoc", + .id = -1, -+ .dev = { -+ .platform_data = &e6_eoc_platform_data, -+ }, +}; + static struct platform_device *devices[] __initdata = { diff --git a/packages/linux/linux-ezx-2.6.21/patches/e6-ts.patch b/packages/linux/linux-ezx-2.6.21/patches/e6-ts.patch index a39b782300..ad4a52eeec 100644 --- a/packages/linux/linux-ezx-2.6.21/patches/e6-ts.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/e6-ts.patch @@ -1,9 +1,9 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e6.c 2007-09-21 21:50:31.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-09-21 21:51:40.000000000 -0300 -@@ -260,9 +260,34 @@ - }, +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e6.c 2007-09-25 00:03:01.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-09-25 02:00:58.000000000 -0300 +@@ -209,9 +209,34 @@ + .id = -1, }; +/* PCAP_TS */ diff --git a/packages/linux/linux-ezx-2.6.21/patches/ezx-core.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-core.patch index 653e814fb4..711a8a467b 100755 --- a/packages/linux/linux-ezx-2.6.21/patches/ezx-core.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-core.patch @@ -1,7 +1,7 @@ Index: linux-2.6.21/arch/arm/boot/compressed/head-xscale.S =================================================================== ---- linux-2.6.21.orig/arch/arm/boot/compressed/head-xscale.S 2007-06-28 16:51:44.000000000 -0300 -+++ linux-2.6.21/arch/arm/boot/compressed/head-xscale.S 2007-06-28 16:51:50.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/boot/compressed/head-xscale.S 2007-09-23 13:27:06.000000000 -0300 ++++ linux-2.6.21/arch/arm/boot/compressed/head-xscale.S 2007-09-23 13:27:19.000000000 -0300 @@ -53,3 +53,6 @@ str r1, [r0, #0x18] #endif @@ -11,8 +11,8 @@ Index: linux-2.6.21/arch/arm/boot/compressed/head-xscale.S +#endif Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-06-28 16:51:44.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-06-28 20:54:54.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-09-23 13:27:06.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-09-23 13:27:19.000000000 -0300 @@ -37,6 +37,10 @@ bool "Keith und Koep Trizeps4 DIMM-Module" select PXA27x @@ -68,8 +68,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig endif Index: linux-2.6.21/arch/arm/mach-pxa/Makefile =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-06-28 16:51:44.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-06-28 20:54:54.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-09-23 13:27:06.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-09-23 13:27:19.000000000 -0300 @@ -18,6 +18,12 @@ obj-$(CONFIG_MACH_AKITA) += akita-ioexp.o obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o @@ -86,7 +86,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Makefile Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-06-28 20:54:54.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-09-23 13:27:19.000000000 -0300 @@ -0,0 +1,118 @@ +/* + * ezx.c - Common code for EZX platform. @@ -209,7 +209,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c Index: linux-2.6.21/include/asm-arm/arch-pxa/ezx.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/include/asm-arm/arch-pxa/ezx.h 2007-06-28 16:51:50.000000000 -0300 ++++ linux-2.6.21/include/asm-arm/arch-pxa/ezx.h 2007-09-23 13:27:19.000000000 -0300 @@ -0,0 +1,225 @@ +/* + * linux/include/asm-arm/arch-pxa/ezx.h @@ -438,9 +438,9 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/ezx.h + Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h =================================================================== ---- linux-2.6.21.orig/include/asm-arm/arch-pxa/pxa-regs.h 2007-06-28 16:51:44.000000000 -0300 -+++ linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h 2007-06-28 18:18:49.000000000 -0300 -@@ -849,6 +849,8 @@ +--- linux-2.6.21.orig/include/asm-arm/arch-pxa/pxa-regs.h 2007-09-23 13:27:13.000000000 -0300 ++++ linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h 2007-09-23 13:27:19.000000000 -0300 +@@ -856,6 +856,8 @@ #define UP2OCR_HXOE (1 << 17) /* Host Port 2 Transceiver Output Enable */ #define UP2OCR_SEOS (1 << 24) /* Single-Ended Output Select */ @@ -449,7 +449,7 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h #define UDCCSN(x) __REG2(0x40600100, (x) << 2) #define UDCCSR0 __REG(0x40600100) /* UDC Control/Status register - Endpoint 0 */ #define UDCCSR0_SA (1 << 7) /* Setup Active */ -@@ -1252,6 +1254,7 @@ +@@ -1259,6 +1261,7 @@ #define GPIO33_nCS_5 33 /* chip select 5 */ #define GPIO34_FFRXD 34 /* FFUART receive */ #define GPIO34_MMCCS0 34 /* MMC Chip Select 0 */ @@ -457,7 +457,7 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h #define GPIO35_FFCTS 35 /* FFUART Clear to send */ #define GPIO36_FFDCD 36 /* FFUART Data carrier detect */ #define GPIO37_FFDSR 37 /* FFUART data set ready */ -@@ -1365,6 +1368,7 @@ +@@ -1372,6 +1375,7 @@ #define GPIO18_RDY_MD (18 | GPIO_ALT_FN_1_IN) #define GPIO19_DREQ1_MD (19 | GPIO_ALT_FN_1_IN) #define GPIO20_DREQ0_MD (20 | GPIO_ALT_FN_1_IN) @@ -465,7 +465,7 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h #define GPIO23_SCLK_MD (23 | GPIO_ALT_FN_2_OUT) #define GPIO24_SFRM_MD (24 | GPIO_ALT_FN_2_OUT) #define GPIO25_STXD_MD (25 | GPIO_ALT_FN_2_OUT) -@@ -1375,23 +1379,33 @@ +@@ -1382,23 +1386,33 @@ #define GPIO28_BITCLK_OUT_I2S_MD (28 | GPIO_ALT_FN_1_OUT) #define GPIO29_SDATA_IN_AC97_MD (29 | GPIO_ALT_FN_1_IN) #define GPIO29_SDATA_IN_I2S_MD (29 | GPIO_ALT_FN_2_IN) @@ -499,7 +499,7 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h #define GPIO41_FFRTS_MD (41 | GPIO_ALT_FN_2_OUT) #define GPIO42_BTRXD_MD (42 | GPIO_ALT_FN_1_IN) #define GPIO42_HWRXD_MD (42 | GPIO_ALT_FN_3_IN) -@@ -1416,13 +1430,17 @@ +@@ -1423,13 +1437,17 @@ #define GPIO51_HWRTS_MD (51 | GPIO_ALT_FN_1_OUT) #define GPIO51_nPIOW_MD (51 | GPIO_ALT_FN_2_OUT) #define GPIO52_nPCE_1_MD (52 | GPIO_ALT_FN_2_OUT) @@ -517,7 +517,7 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h #define GPIO57_nIOIS16_MD (57 | GPIO_ALT_FN_1_IN) #define GPIO58_LDD_0_MD (58 | GPIO_ALT_FN_2_OUT) #define GPIO59_LDD_1_MD (59 | GPIO_ALT_FN_2_OUT) -@@ -1458,13 +1476,19 @@ +@@ -1465,13 +1483,19 @@ #define GPIO80_nCS_4_MD (80 | GPIO_ALT_FN_2_OUT) #define GPIO81_NSSP_CLK_OUT (81 | GPIO_ALT_FN_1_OUT) #define GPIO81_NSSP_CLK_IN (81 | GPIO_ALT_FN_1_IN) @@ -537,7 +537,7 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h #define GPIO92_MMCDAT0_MD (92 | GPIO_ALT_FN_1_OUT) #define GPIO102_nPCE_1_MD (102 | GPIO_ALT_FN_1_OUT) #define GPIO104_pSKTSEL_MD (104 | GPIO_ALT_FN_1_OUT) -@@ -1476,6 +1500,7 @@ +@@ -1483,6 +1507,7 @@ #define GPIO112_MMCCMD_MD (112 | GPIO_ALT_FN_1_OUT) #define GPIO113_I2S_SYSCLK_MD (113 | GPIO_ALT_FN_1_OUT) #define GPIO113_AC97_RESET_N_MD (113 | GPIO_ALT_FN_2_OUT) @@ -545,7 +545,7 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h #define GPIO117_I2CSCL_MD (117 | GPIO_ALT_FN_1_IN) #define GPIO118_I2CSDA_MD (118 | GPIO_ALT_FN_1_IN) -@@ -1491,6 +1516,7 @@ +@@ -1498,6 +1523,7 @@ #define PFER __REG(0x40F00014) /* Power Manager GPIO Falling-Edge Detect Enable Register */ #define PEDR __REG(0x40F00018) /* Power Manager GPIO Edge Detect Status Register */ #define PCFR __REG(0x40F0001C) /* Power Manager General Configuration Register */ @@ -555,8 +555,8 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h #define PGSR2 __REG(0x40F00028) /* Power Manager GPIO Sleep State Register for GP[84-64] */ Index: linux-2.6.21/arch/arm/boot/compressed/head.S =================================================================== ---- linux-2.6.21.orig/arch/arm/boot/compressed/head.S 2007-06-28 16:51:44.000000000 -0300 -+++ linux-2.6.21/arch/arm/boot/compressed/head.S 2007-06-28 16:51:50.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/boot/compressed/head.S 2007-09-23 13:27:06.000000000 -0300 ++++ linux-2.6.21/arch/arm/boot/compressed/head.S 2007-09-23 13:27:19.000000000 -0300 @@ -117,6 +117,9 @@ mov r0, r0 .endr @@ -569,8 +569,8 @@ Index: linux-2.6.21/arch/arm/boot/compressed/head.S .word start @ absolute load/run zImage address Index: linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h =================================================================== ---- linux-2.6.21.orig/include/asm-arm/arch-pxa/uncompress.h 2007-06-28 16:51:44.000000000 -0300 -+++ linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h 2007-06-28 16:51:50.000000000 -0300 +--- linux-2.6.21.orig/include/asm-arm/arch-pxa/uncompress.h 2007-09-23 13:27:06.000000000 -0300 ++++ linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h 2007-09-23 13:27:19.000000000 -0300 @@ -14,14 +14,14 @@ #define STUART ((volatile unsigned long *)0x40700000) #define HWUART ((volatile unsigned long *)0x41600000) @@ -591,8 +591,8 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h /* Index: linux-2.6.21/arch/arm/mm/init.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mm/init.c 2007-06-28 16:51:44.000000000 -0300 -+++ linux-2.6.21/arch/arm/mm/init.c 2007-06-28 16:51:50.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mm/init.c 2007-09-23 13:27:07.000000000 -0300 ++++ linux-2.6.21/arch/arm/mm/init.c 2007-09-23 13:27:19.000000000 -0300 @@ -241,6 +241,10 @@ */ reserve_bootmem_node(pgdat, boot_pfn << PAGE_SHIFT, @@ -607,7 +607,7 @@ Index: linux-2.6.21/arch/arm/mm/init.c Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-06-28 20:53:01.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-09-23 13:27:19.000000000 -0300 @@ -0,0 +1,88 @@ +/* + * ezx-a780.c - Code specific to A780 GSM Phone. @@ -700,7 +700,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c 2007-06-28 20:54:24.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c 2007-09-23 13:27:19.000000000 -0300 @@ -0,0 +1,70 @@ +/* + * ezx-e2.c - Code specific to E2 GSM Phone. @@ -748,7 +748,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c + .num_modes = 1, + .lccr0 = 0x022008B8, + .lccr3 = 0xC130FF13, -+ .pxafb_backlight_power = ezx_backlight_power, ++ .pxafb_backlight_power = &ezx_backlight_power, + .pxafb_lcd_power = &ezx_lcd_power, +}; + @@ -766,7 +766,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c + /* Maintainer: OpenEZX Team (www.openezx.org) */ + .phys_io = 0x40000000, + .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc, -+ .boot_params = 0xa0000100, ++ .boot_params = 0xa0000200, + .map_io = pxa_map_io, + .init_irq = pxa_init_irq, + .timer = &pxa_timer, @@ -775,7 +775,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-06-28 20:53:29.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-09-23 13:27:19.000000000 -0300 @@ -0,0 +1,87 @@ +/* + * ezx-e680.c - Code specific to E680 GSM Phone. @@ -867,7 +867,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-06-28 20:53:48.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-23 13:27:19.000000000 -0300 @@ -0,0 +1,70 @@ +/* + * ezx-a1200.c - Code specific to A1200 GSM Phone. @@ -915,7 +915,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c + .num_modes = 1, + .lccr0 = 0x022008B8, + .lccr3 = 0xC130FF13, -+ .pxafb_backlight_power = ezx_backlight_power, ++ .pxafb_backlight_power = &ezx_backlight_power, + .pxafb_lcd_power = &ezx_lcd_power, +}; + @@ -933,7 +933,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c + /* Maintainer: OpenEZX Team (www.openezx.org) */ + .phys_io = 0x40000000, + .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc, -+ .boot_params = 0xa0000100, ++ .boot_params = 0xa0000200, + .map_io = pxa_map_io, + .init_irq = pxa_init_irq, + .timer = &pxa_timer, @@ -942,7 +942,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-06-28 20:54:07.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-09-23 13:27:19.000000000 -0300 @@ -0,0 +1,70 @@ +/* + * ezx-e6.c - Code specific to E6 GSM Phone. @@ -990,7 +990,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c + .num_modes = 1, + .lccr0 = 0x022008B8, + .lccr3 = 0xC130FF13, -+ .pxafb_backlight_power = ezx_backlight_power, ++ .pxafb_backlight_power = &ezx_backlight_power, + .pxafb_lcd_power = &ezx_lcd_power, +}; + @@ -1008,7 +1008,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c + /* Maintainer: OpenEZX Team (www.openezx.org) */ + .phys_io = 0x40000000, + .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc, -+ .boot_params = 0xa0000100, ++ .boot_params = 0xa0000200, + .map_io = pxa_map_io, + .init_irq = pxa_init_irq, + .timer = &pxa_timer, diff --git a/packages/linux/linux-ezx-2.6.21/patches/ezx-eoc.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-eoc.patch index 77c79fd107..bf93ebc854 100644 --- a/packages/linux/linux-ezx-2.6.21/patches/ezx-eoc.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-eoc.patch @@ -1,8 +1,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c 2007-09-11 20:14:33.000000000 -0300 -@@ -0,0 +1,267 @@ ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c 2007-09-24 23:40:45.000000000 -0300 +@@ -0,0 +1,260 @@ +/* + * EZX EOC Driver for Motorola EZX phones + * @@ -21,8 +21,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c +#include <asm/arch/hardware.h> +#include <asm/arch/pxa-regs.h> +#include <asm/arch/ezx.h> -+ -+#include "ezx-eoc.h" ++#include <asm/arch/udc.h> + +#if 1 +#define EOC_DBG printk @@ -30,25 +29,23 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c +#define EOC_DBG(x, args...) +#endif + ++#define REG_INT_STATUS 32 ++#define REG_INT_MASK 33 ++#define REG_INT_SENSE 34 ++#define REG_POWER_CONTROL_0 35 ++#define REG_POWER_CONTROL_1 36 ++#define REG_CONN_CONTROL 37 ++ +#define EOC_REG_ADDR_SIZE 1 +#define EOC_REG_DATA_SIZE 3 ++#define EOC_FUNC_NOTHING 0 ++#define EOC_FUNC_USB_NET 1 + -+struct ezx_eoc_platform_data *pdata; -+static int eoc_func = EOC_FUNC_USB_NET; +static const char eoc_i2c_driver_name[] = "ezx-eoc"; -+ -+/* Addresses to scan */ -+static unsigned short normal_i2c[] = { -+ 0x17, /* Address for version 2.0 and above */ -+ // 0x7C, /* Address for versions prior too 2.0 */ -+ I2C_CLIENT_END -+}; -+ -+/* I2C Magic */ -+I2C_CLIENT_INSMOD; ++static int eoc_func = EOC_FUNC_USB_NET; ++static struct pxa2xx_udc_mach_info ezx_udc_info; + +static int ezx_eoc_attach_adapter(struct i2c_adapter *adapter); -+static int ezx_eoc_detect(struct i2c_adapter *adapter, int address, int kind); +static int ezx_eoc_detach_client(struct i2c_client *client); + +static struct i2c_client *eoc_i2c_client = NULL; @@ -57,82 +54,68 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c + .driver = { + .name = (char *)eoc_i2c_driver_name, + }, -+ .id = I2C_DRIVERID_EEPROM, + .attach_adapter = ezx_eoc_attach_adapter, + .detach_client = ezx_eoc_detach_client, +}; + +int eoc_reg_read(int reg, unsigned int *reg_value) +{ -+ unsigned char reg_num = reg; -+ unsigned char value[EOC_REG_DATA_SIZE]; -+ int retval; -+ -+ struct i2c_msg msgs[2] = -+ { -+ { 0, 0, EOC_REG_ADDR_SIZE, ®_num }, -+ { 0, I2C_M_RD, EOC_REG_DATA_SIZE, value } -+ }; -+ -+ /* check if we have initialized */ /*not necessary --WM -+ if (eoc_i2c_client == NULL) -+ { -+ EOC_DBG("eoc_reg_read: not initialized\n"); -+ return -EINVAL; -+ } -+*/ -+ msgs[0].addr = msgs[1].addr = eoc_i2c_client->addr; -+ -+ /* transfer message to client */ -+ retval = i2c_transfer(eoc_i2c_client->adapter, msgs, 2); -+ if (retval >= 0) -+ { -+ *reg_value = (value[2] << 0); -+ *reg_value |= (value[1] << 8); -+ *reg_value |= (value[0] << 16); -+ } -+ return retval; ++ unsigned char reg_num = reg; ++ unsigned char value[EOC_REG_DATA_SIZE]; ++ int retval; ++ ++ struct i2c_msg msgs[2] = ++ { ++ { eoc_i2c_client->addr, 0, EOC_REG_ADDR_SIZE, ®_num }, ++ { eoc_i2c_client->addr, I2C_M_RD, EOC_REG_DATA_SIZE, value } ++ }; ++ ++ /* transfer message to client */ ++ retval = i2c_transfer(eoc_i2c_client->adapter, msgs, 2); ++ if (retval < 0) ++ return retval; ++ ++ *reg_value = (value[2] << 0); ++ *reg_value |= (value[1] << 8); ++ *reg_value |= (value[0] << 16); ++ return 0; +} -+EXPORT_SYMBOL_GPL(eoc_reg_read); + +int eoc_reg_write(int reg, unsigned int reg_value) +{ -+ unsigned char value[EOC_REG_ADDR_SIZE + EOC_REG_DATA_SIZE]; -+ int retval; -+ -+ /* check if we have initialized */ /*not necessary --WM -+ if (eoc_i2c_client == NULL) -+ { -+ EOC_DBG("eoc_reg_write: not initialized\n"); -+ return -EINVAL; -+ } -+*/ -+ /* Copy the data into a buffer into the correct format */ -+ value[0] = reg; -+ value[1] = (reg_value >> 16) & 0xFF; -+ value[2] = (reg_value >> 8) & 0xFF; -+ value[3] = (reg_value >> 0) & 0xFF; -+ -+ /* Write the data to the EOC */ -+ retval = i2c_master_send (eoc_i2c_client, value, EOC_REG_ADDR_SIZE + EOC_REG_DATA_SIZE); -+ -+ return retval; ++ unsigned char value[EOC_REG_ADDR_SIZE + EOC_REG_DATA_SIZE]; ++ int retval; ++ ++ /* Copy the data into a buffer into the correct format */ ++ value[0] = reg; ++ value[1] = (reg_value >> 16) & 0xFF; ++ value[2] = (reg_value >> 8) & 0xFF; ++ value[3] = (reg_value >> 0) & 0xFF; ++ ++ /* Write the data to the EOC */ ++ retval = i2c_master_send (eoc_i2c_client, value, EOC_REG_ADDR_SIZE + EOC_REG_DATA_SIZE); ++ if (retval < 0) ++ return retval; ++ return 0; +} -+EXPORT_SYMBOL_GPL(eoc_reg_write); + +static void eoc_switch_to_usb(void) +{ ++ EOC_DBG("EOC: Switching to USB\n"); + pxa_gpio_mode(GPIO34_USB_P2_2_MD); + pxa_gpio_mode(GPIO35_USB_P2_1_MD); + pxa_gpio_mode(GPIO36_USB_P2_4_MD); + pxa_gpio_mode(GPIO39_USB_P2_6_MD); + pxa_gpio_mode(GPIO40_USB_P2_5_MD); + pxa_gpio_mode(GPIO53_USB_P2_3_MD); -+ EOC_DBG("ALEX;*********************************************emu_switch_to_usb;\n"); ++ UP2OCR = 0x02000000; ++ /* FIXME change eoc bits to USB */ ++ +} + +static void eoc_switch_to_nothing(void) +{ ++ EOC_DBG("EOC: Switching do disconnected\n"); + pxa_gpio_mode(GPIO34_TXENB | GPIO_OUT); + set_GPIO(GPIO34_TXENB); + pxa_gpio_mode(GPIO35_XRXD | GPIO_IN); @@ -140,6 +123,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c + pxa_gpio_mode(GPIO39_VPOUT | GPIO_IN); + pxa_gpio_mode(GPIO40_VPIN | GPIO_IN); + pxa_gpio_mode(GPIO53_VMIN | GPIO_IN); ++ /* FIXME disconnect mini usb port */ +} + +static void eoc_switch_to_default(void) @@ -154,73 +138,56 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c + } +} + -+ +static int ezx_eoc_attach_adapter(struct i2c_adapter *adapter) +{ -+ return i2c_probe(adapter, &addr_data, ezx_eoc_detect); -+} -+ -+/* This function is called by i2c_probe */ -+static int ezx_eoc_detect(struct i2c_adapter *adapter, int address, int kind) -+{ -+ struct i2c_client *new_client; + int err = 0; ++ EOC_DBG(">>>>attach adapter enter\n"); ++ ++ if (eoc_i2c_client != NULL) { ++ EOC_DBG(">>>>already loaded!!!\n"); ++ return 0; ++ } + -+ if (!(new_client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL))) ++ if (!(eoc_i2c_client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL))) + return -ENOMEM; + -+ new_client->addr = address; -+ new_client->adapter = adapter; -+ new_client->driver = &eoc_i2c_driver; -+ new_client->flags = 0; -+ strlcpy(new_client->name, eoc_i2c_driver_name, I2C_NAME_SIZE); ++ eoc_i2c_client->addr = 0x17; ++ eoc_i2c_client->adapter = adapter; ++ eoc_i2c_client->driver = &eoc_i2c_driver; ++ eoc_i2c_client->flags = 0; ++ strlcpy(eoc_i2c_client->name, eoc_i2c_driver_name, I2C_NAME_SIZE); + -+ if ((err = i2c_attach_client(new_client))) { -+ kfree(new_client); ++ if ((err = i2c_attach_client(eoc_i2c_client))) { ++ kfree(eoc_i2c_client); ++ eoc_i2c_client = NULL; + return err; + } -+ -+ eoc_i2c_client = new_client; -+ -+ if (pdata && pdata->init) -+ pdata->init(); ++ eoc_reg_write(REG_INT_MASK, 0x0000FEF); ++ eoc_reg_write(REG_POWER_CONTROL_0, 0x0000C00); ++ eoc_reg_write(REG_POWER_CONTROL_1, 0x000000C); ++ eoc_reg_write(REG_CONN_CONTROL,0x0021044); + + eoc_switch_to_default(); -+ ++ EOC_DBG(">>>>attach adapter exit\n"); + return 0; ++ +} + +static int ezx_eoc_detach_client(struct i2c_client *client) +{ -+ int err; -+ -+ err = i2c_detach_client(client); -+ if (err) -+ return err; -+ -+ return 0; ++ return i2c_detach_client(client); +} + +static int __init ezx_eoc_probe(struct platform_device *dev) +{ + int ret; + -+ pdata = dev->dev.platform_data; -+ + ret = i2c_add_driver(&eoc_i2c_driver); + if (ret != 0) + return -EINVAL; -+ -+ /* -+ * I think we should save platform_data and call init and eoc_switch -+ * from ezx_eoc_detect, after client is setup. -+ * And there is no need for all the "check if initialised" checks if -+ * you assure that you only call read/write after the client is set. -+ * Probably, this was causing the crash on i2c-core too. -+ * --WM -+ */ -+ -+ /* FIXME: should set udc_info here -WM */ ++ ++ pxa_set_udc_info(&ezx_udc_info); ++ + return 0; +} + @@ -241,6 +208,34 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c + return 0; +} + ++/* USB Device Controller */ ++static int udc_connected_status; ++static void ezx_udc_command(int cmd) ++{ ++ switch (cmd) { ++ case PXA2XX_UDC_CMD_DISCONNECT: ++ printk(KERN_NOTICE "USB cmd disconnect\n"); ++// ezx_pcap_bit_set(PCAP_BIT_BUSCTRL_USB_PU,0); ++ udc_connected_status = 0; ++ break; ++ case PXA2XX_UDC_CMD_CONNECT: ++ printk(KERN_NOTICE "USB cmd connect\n"); ++// ezx_pcap_bit_set(PCAP_BIT_BUSCTRL_USB_PU,1); ++ udc_connected_status = 1; ++ break; ++ } ++} ++ ++static int ezx_udc_is_connected(void) ++{ ++ return udc_connected_status; ++} ++ ++static struct pxa2xx_udc_mach_info ezx_udc_info __initdata = { ++ .udc_is_connected = ezx_udc_is_connected, ++ .udc_command = ezx_udc_command, ++}; ++ +static struct platform_driver ezx_eoc_driver = { + .probe = ezx_eoc_probe, + .remove = ezx_eoc_remove, @@ -266,52 +261,12 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c +MODULE_DESCRIPTION("EZX EOC I2C driver"); +MODULE_LICENSE("GPL"); + -+/* doesnt module_init work?? -WM */ -+/*late_initcall(ezx_eoc_init);*/ +module_init(ezx_eoc_init); +module_exit(ezx_eoc_exit); -Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.h 2007-09-09 21:46:27.000000000 -0300 -@@ -0,0 +1,33 @@ -+/* -+ * linux/arch/arm/mach-pxa/ezx-eoc.h -+ * -+ * Copyright (C) Alex Zhang <celeber2@gmail.com> -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ */ -+ -+#ifndef __EZX_EOC_H__ -+#define __EZX_EOC_H__ -+ -+enum { -+ POWER_IC_REG_EOC_INT_STATUS, -+ POWER_IC_REG_EOC_INT_MASK, -+ POWER_IC_REG_EOC_INT_SENSE, -+ POWER_IC_REG_EOC_POWER_CONTROL_0, -+ POWER_IC_REG_EOC_POWER_CONTROL_1, -+ POWER_IC_REG_EOC_CONN_CONTROL, -+ POWER_IC_REG_EOC_NUM -+}; -+ -+enum { -+ EOC_FUNC_NOTHING, -+ EOC_FUNC_USB_NET, -+}; -+ -+struct ezx_eoc_platform_data { -+ int (*init)(void); -+}; -+ -+#endif /* __EZX_EOC_H__ */ Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-09-09 21:46:27.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-09-09 21:46:27.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-09-24 20:15:00.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-09-24 20:15:16.000000000 -0300 @@ -108,6 +108,12 @@ config EZX_PCAP bool "PCAP Support" @@ -327,8 +282,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig depends on EZX_PCAP Index: linux-2.6.21/arch/arm/mach-pxa/Makefile =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-09-09 21:46:27.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-09-09 21:46:27.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-09-24 20:15:00.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-09-24 20:15:16.000000000 -0300 @@ -27,6 +27,7 @@ obj-$(CONFIG_EZX_BP) += ezx-bp.o obj-$(CONFIG_EZX_PCAP) += ezx-pcap.o diff --git a/packages/linux/linux-ezx-2.6.21/patches/index.html b/packages/linux/linux-ezx-2.6.21/patches/index.html index bbbb40d590..6cd7a62548 100644 --- a/packages/linux/linux-ezx-2.6.21/patches/index.html +++ b/packages/linux/linux-ezx-2.6.21/patches/index.html @@ -1,10 +1,12 @@ -<html><head><title>Revision 2059: /trunk/src/kernel-2.6/patches</title></head> +<html><head><title>Revision 2064: /trunk/src/kernel-2.6/patches</title></head> <body> - <h2>Revision 2059: /trunk/src/kernel-2.6/patches</h2> + <h2>Revision 2064: /trunk/src/kernel-2.6/patches</h2> <ul> <li><a href="../">..</a></li> <li><a href="Makefile.OpenEZX">Makefile.OpenEZX</a></li> <li><a href="a1200-eoc.patch">a1200-eoc.patch</a></li> + <li><a href="a1200-flip.patch">a1200-flip.patch</a></li> + <li><a href="a1200-kbd.patch">a1200-kbd.patch</a></li> <li><a href="a1200-mci.patch">a1200-mci.patch</a></li> <li><a href="a1200-pcap.patch">a1200-pcap.patch</a></li> <li><a href="a1200-ts.patch">a1200-ts.patch</a></li> @@ -46,7 +48,6 @@ <li><a href="ezx-pcap.patch">ezx-pcap.patch</a></li> <li><a href="ezx-pm.patch">ezx-pm.patch</a></li> <li><a href="ezx-serial-bug-workaround.patch">ezx-serial-bug-workaround.patch</a></li> - <li><a href="i2c-core-fix-a1200.patch">i2c-core-fix-a1200.patch</a></li> <li><a href="mtdfix.patch">mtdfix.patch</a></li> <li><a href="mux-fix-init-errorpath.patch">mux-fix-init-errorpath.patch</a></li> <li><a href="mux-fix-makefile.patch">mux-fix-makefile.patch</a></li> @@ -64,6 +65,7 @@ <li><a href="pxa-kbd.patch">pxa-kbd.patch</a></li> <li><a href="pxa27x-udc-fix-a1200.patch">pxa27x-udc-fix-a1200.patch</a></li> <li><a href="pxa27x-udc-support.2.patch">pxa27x-udc-support.2.patch</a></li> + <li><a href="pxa27x_overlay-r5.patch">pxa27x_overlay-r5.patch</a></li> <li><a href="series">series</a></li> </ul> <hr noshade><em>Powered by <a href="http://subversion.tigris.org/">Subversion</a> version 1.1.4 (r13838).</em> diff --git a/packages/linux/linux-ezx-2.6.21/patches/pxa27x-udc-fix-a1200.patch b/packages/linux/linux-ezx-2.6.21/patches/pxa27x-udc-fix-a1200.patch index 9ee87ff903..1dd6edd7c3 100644 --- a/packages/linux/linux-ezx-2.6.21/patches/pxa27x-udc-fix-a1200.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/pxa27x-udc-fix-a1200.patch @@ -1,7 +1,8 @@ +This hack hardcodes pxa27x-udc to ether_gadget. This is just a temp workaround. Index: linux-2.6.21/drivers/usb/gadget/ether.c =================================================================== ---- linux-2.6.21.orig/drivers/usb/gadget/ether.c 2007-08-20 22:05:12.000000000 +0800 -+++ linux-2.6.21/drivers/usb/gadget/ether.c 2007-08-20 22:06:25.000000000 +0800 +--- linux-2.6.21.orig/drivers/usb/gadget/ether.c 2007-09-23 09:32:51.000000000 -0300 ++++ linux-2.6.21/drivers/usb/gadget/ether.c 2007-09-23 09:32:52.000000000 -0300 @@ -2697,10 +2697,16 @@ MODULE_LICENSE ("GPL"); @@ -22,8 +23,8 @@ Index: linux-2.6.21/drivers/usb/gadget/ether.c static void __exit cleanup (void) Index: linux-2.6.21/drivers/usb/gadget/pxa27x_udc.c =================================================================== ---- linux-2.6.21.orig/drivers/usb/gadget/pxa27x_udc.c 2007-08-20 22:07:31.000000000 +0800 -+++ linux-2.6.21/drivers/usb/gadget/pxa27x_udc.c 2007-08-20 22:07:47.000000000 +0800 +--- linux-2.6.21.orig/drivers/usb/gadget/pxa27x_udc.c 2007-09-23 09:32:51.000000000 -0300 ++++ linux-2.6.21/drivers/usb/gadget/pxa27x_udc.c 2007-09-23 09:32:52.000000000 -0300 @@ -2227,6 +2227,8 @@ udc_init_ep(udc); udc_reinit(udc); diff --git a/packages/linux/linux-ezx-2.6.21/patches/series b/packages/linux/linux-ezx-2.6.21/patches/series index aa95fcbc78..99f95a6c07 100755 --- a/packages/linux/linux-ezx-2.6.21/patches/series +++ b/packages/linux/linux-ezx-2.6.21/patches/series @@ -1,5 +1,6 @@ patch-2.6.21.4 mtdfix.patch +pxa27x_overlay-r5.patch ezx-core.patch # ezx-core TODO: should be ezx-common @@ -42,6 +43,7 @@ ezx-emu.patch a780-emu.patch e680-emu.patch +pxa27x-udc-fix-a1200.patch #(see ezx-a1200.c) ezx-eoc.patch a1200-eoc.patch e6-eoc.patch @@ -53,6 +55,7 @@ ezx-serial-bug-workaround.patch pxa-kbd.patch a780-kbd.patch e680-kbd.patch +a1200-kbd.patch pcap-ts.patch a780-ts.patch @@ -64,6 +67,7 @@ ezx-backlight.patch a780-flip.patch e680-locksw.patch +a1200-flip.patch a780-leds.patch e680-leds.patch @@ -97,7 +101,6 @@ ezx-asoc.patch # pxa-ohci, ts0710_mux, ts0710_mux_usb, ezx-bp # the folowing break too much stuff on other phones. -# i2c-core-fix-a1200.patch (see ezx-eoc.c) -# pxa27x-udc-fix-a1200.patch (see ezx-a1200.c) # incomplete + diff --git a/packages/linux/linux-ezx-2.6.21/rokre2/defconfig b/packages/linux/linux-ezx-2.6.21/rokre2/defconfig index 8d0f391c08..7e22a3c371 100755 --- a/packages/linux/linux-ezx-2.6.21/rokre2/defconfig +++ b/packages/linux/linux-ezx-2.6.21/rokre2/defconfig @@ -45,7 +45,7 @@ CONFIG_SYSVIPC_SYSCTL=y # CONFIG_TASKSTATS is not set # CONFIG_UTS_NS is not set # CONFIG_AUDIT is not set -# CONFIG_IKCONFIG is not set +CONFIG_IKCONFIG=y # CONFIG_SYSFS_DEPRECATED is not set # CONFIG_RELAY is not set # CONFIG_BLK_DEV_INITRD is not set @@ -1310,12 +1310,12 @@ CONFIG_RTC_DRV_SA1100=m # # File systems # -CONFIG_EXT2_FS=m +CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y CONFIG_EXT2_FS_SECURITY=y # CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=y +CONFIG_EXT3_FS=m CONFIG_EXT3_FS_XATTR=y CONFIG_EXT3_FS_POSIX_ACL=y CONFIG_EXT3_FS_SECURITY=y diff --git a/packages/linux/linux-ezx-2.6.21/rokre6/defconfig b/packages/linux/linux-ezx-2.6.21/rokre6/defconfig index 6351d3a45b..8201825d75 100755 --- a/packages/linux/linux-ezx-2.6.21/rokre6/defconfig +++ b/packages/linux/linux-ezx-2.6.21/rokre6/defconfig @@ -45,7 +45,7 @@ CONFIG_SYSVIPC_SYSCTL=y # CONFIG_TASKSTATS is not set # CONFIG_UTS_NS is not set # CONFIG_AUDIT is not set -# CONFIG_IKCONFIG is not set +CONFIG_IKCONFIG=y # CONFIG_SYSFS_DEPRECATED is not set # CONFIG_RELAY is not set # CONFIG_BLK_DEV_INITRD is not set @@ -1003,7 +1003,7 @@ CONFIG_VIDEO_HELPER_CHIPS_AUTO=y CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_LCD_CLASS_DEVICE=m -CONFIG_BACKLIGHT_EZX=y +CONFIG_BACKLIGHT_EZX=N CONFIG_FB=y # CONFIG_FIRMWARE_EDID is not set # CONFIG_FB_DDC is not set @@ -1313,12 +1313,12 @@ CONFIG_RTC_DRV_SA1100=m # # File systems # -CONFIG_EXT2_FS=m +CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y CONFIG_EXT2_FS_SECURITY=y # CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=y +CONFIG_EXT3_FS=n CONFIG_EXT3_FS_XATTR=y CONFIG_EXT3_FS_POSIX_ACL=y CONFIG_EXT3_FS_SECURITY=y diff --git a/packages/linux/linux-ezx_2.6.21.bb b/packages/linux/linux-ezx_2.6.21.bb index 5d0096f2b7..db561a7f0d 100644 --- a/packages/linux/linux-ezx_2.6.21.bb +++ b/packages/linux/linux-ezx_2.6.21.bb @@ -2,7 +2,7 @@ DESCRIPTION = "2.6 Linux Development Kernel for the Motorola GSM phones A780 and AUTHOR = "The OpenEZX Team <openezx-devel@lists.openezx.org>" HOMEPAGE = "http://www.openezx.org" EZX = "ezxdev" -PR = "${EZX}-r20" +PR = "${EZX}-r23" require linux.inc @@ -47,6 +47,7 @@ SRC_URI = " \ file://patches/pxa-kbd.patch;patch=1 \ file://patches/a780-kbd.patch;patch=1 \ file://patches/e680-kbd.patch;patch=1 \ + file://patches/a1200-kbd.patch;patch=1 \ file://patches/pcap-ts.patch;patch=1 \ file://patches/a780-ts.patch;patch=1 \ file://patches/e680-ts.patch;patch=1 \ @@ -54,6 +55,7 @@ SRC_URI = " \ file://patches/e6-ts.patch;patch=1 \ file://patches/a780-flip.patch;patch=1 \ file://patches/e680-locksw.patch;patch=1 \ + file://patches/a1200-flip.patch;patch=1 \ file://patches/a780-leds.patch;patch=1 \ file://patches/e680-leds.patch;patch=1 \ file://patches/a780-vibrator.patch;patch=1 \ @@ -70,15 +72,11 @@ SRC_URI = " \ file://patches/asoc-fix-loopback.patch;patch=1 \ file://patches/ezx-asoc.patch;patch=1 \ file://patches/mtdfix.patch;patch=1 \ + file://patches/ezx-backlight.patch;patch=1 \ file://defconfig \ \ " -BACKLIGHTPATCH = " file://patches/ezx-backlight.patch;patch=1 " -BACKLIGHTPATCH_rokre6 = "" - -SRC_URI += "${BACKLIGHTPATCH}" - S = "${WORKDIR}/linux-${PV}" @@ -94,7 +92,7 @@ COMPATIBLE_MACHINE = '(a780|e680|a1200|rorkre2|rokre6)' #CMDLINE_CON = "console=ttyS2,115200n8 console=tty1 " CMDLINE_CON = "console=tty1 " -CMDLINE_ROOT = "root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5" +CMDLINE_ROOT = "root=/dev/mmcblk0p2 rootfstype=ext2 rootdelay=5" CMDLINE_NFSROOT = "root=/dev/nfs rootfstype=nfs nfsroot=192.168.0.200:/export/ezx-image rootdelay=5 " # Uncomment to enable dyntick #CMDLINE_OTHER = "dyntick=enable" diff --git a/packages/linux/linux-handhelds-2.6.inc b/packages/linux/linux-handhelds-2.6.inc index b2a71a84be..47c32a4a24 100644 --- a/packages/linux/linux-handhelds-2.6.inc +++ b/packages/linux/linux-handhelds-2.6.inc @@ -60,8 +60,42 @@ do_deploy() { # format: # name file md5sumfile destination echo "${MACHINE}-kernel-${DATETIME} ${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME} - kernel" >> ${DEPLOY_DIR_IMAGE}/reflash.ctl + gen_haret_startup } do_deploy[dirs] = "${S}" addtask deploy before do_package after do_install + + +gen_haret_startup() { + cat >${DEPLOY_DIR_IMAGE}/startup.txt <<EOF +# This is startup file for HaRET, Linux bootloader for WinCE +# http://handhelds.org/wiki/HaRET + +set kernel "${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}" + +# Boot choices. Uncomment 'set' statements in exactly one section + +## Choice 1 - Boot from SD/MMC card +# Have 2 partition on a card: +# 1st - FAT with HaRET executable, this file and zImage above +# 2nd - EXT2 with rootfs tarball extracted +set cmdline "root=/dev/mmcblk0p2 rootdelay=10 console=ttyS0,115200n8 console=tty0" + +## Choice 2 - Boot from CD card, setup like above +#set cmdline "root=/dev/hda2 rootdelay=10 console=ttyS0,115200n8 console=tty0" + +## Choice 3 - Boot rootfs image as initramfs (works only for smaller images) +# have a cpio.gz file below together with zImage, no EXT2 partition required +#set initrd "<image>.rootfs.cpio.gz" +#set cmdline "rdinit=/sbin/init console=ttyS0,115200n8 console=tty0" + +## Choice 4 - Boot via NFS over USB networking (must be kernel-builtin) +# 192.168.x.x - Server address (the other side) +# 192.168.x.x - Handheld's address +#set cmdline "root=/dev/nfs nfsroot=192.168.x.x:<nfs_path> ip=192.168.y.y:192.168.x.x:192.168.x.x:255.255.255.0:pda:usb0 console=ttyS0,115200n8 console=tty0" + +bootlinux +EOF +} diff --git a/packages/linux/linux-openmoko/defconfig-2.6.22.5-fic-gta01 b/packages/linux/linux-openmoko/defconfig-2.6.22.5-fic-gta01 index 1d12b6ec36..7aa23df77c 100644 --- a/packages/linux/linux-openmoko/defconfig-2.6.22.5-fic-gta01 +++ b/packages/linux/linux-openmoko/defconfig-2.6.22.5-fic-gta01 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.22.1 -# Thu Jul 26 22:01:38 2007 +# Linux kernel version: 2.6.22.5 +# Wed Oct 3 13:55:25 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -200,11 +200,12 @@ CONFIG_ARCH_S3C2440=y CONFIG_SMDK2440_CPU2440=y CONFIG_MACH_HXD8=y CONFIG_MACH_NEO1973_GTA02=y +CONFIG_CPU_S3C2442=y # # S3C2442 Machines # -# CONFIG_SMDK2440_CPU2442 is not set +CONFIG_SMDK2440_CPU2442=y # # S3C2443 Machines @@ -282,6 +283,7 @@ CONFIG_KEXEC=y # At least one emulation must be selected # CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set # CONFIG_FPE_FASTFPE is not set # @@ -1196,9 +1198,6 @@ CONFIG_FONT_6x11=y # CONFIG_FONT_SUN12x22 is not set # CONFIG_FONT_10x18 is not set # CONFIG_LOGO is not set -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set -# CONFIG_LOGO_LINUX_CLUT224 is not set # # Sound @@ -1586,7 +1585,7 @@ CONFIG_CONFIGFS_FS=m # CONFIG_EFS_FS is not set CONFIG_YAFFS_FS=y CONFIG_YAFFS_YAFFS1=y -# CONFIG_YAFFS_DOES_ECC is not set +CONFIG_YAFFS_9BYTE_TAGS=y CONFIG_YAFFS_YAFFS2=y CONFIG_YAFFS_AUTO_YAFFS2=y # CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set diff --git a/packages/linux/linux-openmoko/defconfig-2.6.22.5-fic-gta02 b/packages/linux/linux-openmoko/defconfig-2.6.22.5-fic-gta02 index 1d12b6ec36..7aa23df77c 100644 --- a/packages/linux/linux-openmoko/defconfig-2.6.22.5-fic-gta02 +++ b/packages/linux/linux-openmoko/defconfig-2.6.22.5-fic-gta02 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.22.1 -# Thu Jul 26 22:01:38 2007 +# Linux kernel version: 2.6.22.5 +# Wed Oct 3 13:55:25 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -200,11 +200,12 @@ CONFIG_ARCH_S3C2440=y CONFIG_SMDK2440_CPU2440=y CONFIG_MACH_HXD8=y CONFIG_MACH_NEO1973_GTA02=y +CONFIG_CPU_S3C2442=y # # S3C2442 Machines # -# CONFIG_SMDK2440_CPU2442 is not set +CONFIG_SMDK2440_CPU2442=y # # S3C2443 Machines @@ -282,6 +283,7 @@ CONFIG_KEXEC=y # At least one emulation must be selected # CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set # CONFIG_FPE_FASTFPE is not set # @@ -1196,9 +1198,6 @@ CONFIG_FONT_6x11=y # CONFIG_FONT_SUN12x22 is not set # CONFIG_FONT_10x18 is not set # CONFIG_LOGO is not set -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set -# CONFIG_LOGO_LINUX_CLUT224 is not set # # Sound @@ -1586,7 +1585,7 @@ CONFIG_CONFIGFS_FS=m # CONFIG_EFS_FS is not set CONFIG_YAFFS_FS=y CONFIG_YAFFS_YAFFS1=y -# CONFIG_YAFFS_DOES_ECC is not set +CONFIG_YAFFS_9BYTE_TAGS=y CONFIG_YAFFS_YAFFS2=y CONFIG_YAFFS_AUTO_YAFFS2=y # CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set diff --git a/packages/linux/linux-openmoko_2.6.22.5.bb b/packages/linux/linux-openmoko_2.6.22.5.bb index e4608a7565..290f475130 100644 --- a/packages/linux/linux-openmoko_2.6.22.5.bb +++ b/packages/linux/linux-openmoko_2.6.22.5.bb @@ -8,4 +8,4 @@ SRC_URI += "file://fix-EVIOCGRAB-semantics-2.6.22.5.patch;patch=1" VANILLA_VERSION = "2.6.22.5" MOKOR = "moko11+svnr${SRCREV}" PV = "${VANILLA_VERSION}-${MOKOR}" -PR = "r2" +PR = "r3" diff --git a/packages/linux/linux-rp_2.6.22.bb b/packages/linux/linux-rp_2.6.22.bb index b36189d9fb..50ee894ee9 100644 --- a/packages/linux/linux-rp_2.6.22.bb +++ b/packages/linux/linux-rp_2.6.22.bb @@ -1,6 +1,6 @@ require linux-rp.inc -PR = "r9" +PR = "r10" # Handy URLs # git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;tag=ef7d1b244fa6c94fb76d5f787b8629df64ea4046 @@ -37,6 +37,7 @@ SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.tar.bz2 \ ${RPSRC}/poodle_pm-r4.patch;patch=1 \ ${RPSRC}/pxa27x_overlay-r5.patch;patch=1 \ ${RPSRC}/w100_extaccel-r1.patch;patch=1 \ + ${RPSRC}/w100_extmem-r1.patch;patch=1 \ file://hostap-monitor-mode.patch;patch=1 \ file://serial-add-support-for-non-standard-xtals-to-16c950-driver.patch;patch=1 \ ${RPSRC}/logo_oh-r0.patch.bz2;patch=1;status=unmergable \ diff --git a/packages/linux/linux.inc b/packages/linux/linux.inc index 7579481005..41b0c13179 100644 --- a/packages/linux/linux.inc +++ b/packages/linux/linux.inc @@ -40,7 +40,7 @@ do_configure_prepend() { # # oabi / eabi support # - if [ "${TARGET_OS}" == "linux-gnueabi" -o "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then + if [ "${TARGET_OS}" = "linux-gnueabi" -o "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then echo "CONFIG_AEABI=y" >> ${S}/.config echo "CONFIG_OABI_COMPAT=y" >> ${S}/.config else diff --git a/packages/linux/linux_2.6.21.bb b/packages/linux/linux_2.6.21.bb index 0848bcd71a..2ef35ef4c0 100644 --- a/packages/linux/linux_2.6.21.bb +++ b/packages/linux/linux_2.6.21.bb @@ -69,7 +69,9 @@ GUMSTIX_PATCHES = "\ file://uImage-in-own-partition.patch;patch=1 \ file://pxa-regs-fixup.patch;patch=1 \ file://gumstix-fb-logo.patch;patch=1 \ + file://gumstix-pxa270-mmc.patch;patch=1 \ file://pxafb-18bpp-mode.patch;patch=1 \ + file://smc911x-fixup.patch;patch=1 \ " SRC_URI_append_gumstix-verdex = "${GUMSTIX_PATCHES}" |