diff options
| author | Sergey Lapin <slapin@ossfans.org> | 2010-04-12 20:40:33 +0400 |
|---|---|---|
| committer | Sergey Lapin <slapin@ossfans.org> | 2010-04-12 20:50:42 +0400 |
| commit | 4561bbd8376440fd1e6504c8032d83a908ad3334 (patch) | |
| tree | ff0c35d16ca889edf31f5fa546e43630cae32d4f | |
| parent | c6d01532bf022188091cdf6f58350e6312a05176 (diff) | |
afeb9260: move to recent kernel
10 files changed, 2259 insertions, 1 deletions
diff --git a/recipes/linux/linux-2.6.33/afeb9260/0001-RS-485-mode-of-USART1.patch b/recipes/linux/linux-2.6.33/afeb9260/0001-RS-485-mode-of-USART1.patch new file mode 100644 index 0000000000..615dcef731 --- /dev/null +++ b/recipes/linux/linux-2.6.33/afeb9260/0001-RS-485-mode-of-USART1.patch @@ -0,0 +1,41 @@ +From 6bb4f6fe73eea7cbf730a83471b33f95a8a924a9 Mon Sep 17 00:00:00 2001 +From: Sergey Lapin <slapin@ossfans.org> +Date: Fri, 4 Jul 2008 01:53:23 +0400 +Subject: [PATCH 1/7] RS-485 mode of USART1 + +Signed-off-by: Sergey Lapin <slapin@ossfans.org> +--- + drivers/serial/atmel_serial.c | 9 ++++++++- + 1 files changed, 8 insertions(+), 1 deletions(-) + +diff --git a/drivers/serial/atmel_serial.c b/drivers/serial/atmel_serial.c +index 9d948bc..426a146 100644 +--- a/drivers/serial/atmel_serial.c ++++ b/drivers/serial/atmel_serial.c +@@ -234,8 +234,12 @@ static void atmel_set_mctrl(struct uart_port *port, u_int mctrl) + mode = UART_GET_MR(port) & ~ATMEL_US_CHMODE; + if (mctrl & TIOCM_LOOP) + mode |= ATMEL_US_CHMODE_LOC_LOOP; +- else ++ else { ++ if (port->mapbase == AT91SAM9260_BASE_US1) ++ mode |= ATMEL_US_USMODE_RS485; ++ + mode |= ATMEL_US_CHMODE_NORMAL; ++ } + UART_PUT_MR(port, mode); + } + +@@ -1115,6 +1119,9 @@ static void atmel_set_termios(struct uart_port *port, struct ktermios *termios, + /* disable receiver and transmitter */ + UART_PUT_CR(port, ATMEL_US_TXDIS | ATMEL_US_RXDIS); + ++ if (port->mapbase == AT91SAM9260_BASE_US1) ++ mode |= ATMEL_US_USMODE_RS485; ++ + /* set the parity, stop bits and data size */ + UART_PUT_MR(port, mode); + +-- +1.6.3.3 + diff --git a/recipes/linux/linux-2.6.33/afeb9260/0002-SRAM-for-ethernet-TX-patch.patch b/recipes/linux/linux-2.6.33/afeb9260/0002-SRAM-for-ethernet-TX-patch.patch new file mode 100644 index 0000000000..40fba211cb --- /dev/null +++ b/recipes/linux/linux-2.6.33/afeb9260/0002-SRAM-for-ethernet-TX-patch.patch @@ -0,0 +1,26 @@ +From f09b357be5b607c4de984bf182eb7a13c270b1ce Mon Sep 17 00:00:00 2001 +From: Sergey Lapin <slapin@ossfans.org> +Date: Wed, 13 Aug 2008 12:54:50 +0400 +Subject: [PATCH 2/7] SRAM for ethernet TX patch + + +Signed-off-by: Sergey Lapin <slapin@ossfans.org> +--- + arch/arm/configs/afeb9260_defconfig | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/configs/afeb9260_defconfig b/arch/arm/configs/afeb9260_defconfig +index 64fe7f1..ed97bf7 100644 +--- a/arch/arm/configs/afeb9260_defconfig ++++ b/arch/arm/configs/afeb9260_defconfig +@@ -581,6 +581,7 @@ CONFIG_PHYLIB=y + CONFIG_NET_ETHERNET=y + CONFIG_MII=y + CONFIG_MACB=y ++CONFIG_MACB_TX_SRAM=y + # CONFIG_AX88796 is not set + # CONFIG_SMC91X is not set + # CONFIG_DM9000 is not set +-- +1.6.3.3 + diff --git a/recipes/linux/linux-2.6.33/afeb9260/0003-SRAM-TX-buffers-implementation-from-atmel-to-fix-TX-.patch b/recipes/linux/linux-2.6.33/afeb9260/0003-SRAM-TX-buffers-implementation-from-atmel-to-fix-TX-.patch new file mode 100644 index 0000000000..c4ef76d454 --- /dev/null +++ b/recipes/linux/linux-2.6.33/afeb9260/0003-SRAM-TX-buffers-implementation-from-atmel-to-fix-TX-.patch @@ -0,0 +1,302 @@ +From 757c3aef9b18e22c35c96982c45e3536dd9f5313 Mon Sep 17 00:00:00 2001 +From: Sergey Lapin <slapin@ossfans.org> +Date: Sat, 30 May 2009 16:04:30 +0400 +Subject: [PATCH 3/7] SRAM TX buffers implementation from atmel to fix TX underrun errors + +Signed-off-by: Sergey Lapin <slapin@ossfans.org> +--- + arch/arm/mach-at91/at91sam9260_devices.c | 7 ++ + drivers/net/Kconfig | 6 ++ + drivers/net/macb.c | 107 ++++++++++++++++++++++-------- + drivers/net/macb.h | 7 ++- + 4 files changed, 98 insertions(+), 29 deletions(-) + +diff --git a/arch/arm/mach-at91/at91sam9260_devices.c b/arch/arm/mach-at91/at91sam9260_devices.c +index 07eb7b0..6c25a68 100644 +--- a/arch/arm/mach-at91/at91sam9260_devices.c ++++ b/arch/arm/mach-at91/at91sam9260_devices.c +@@ -141,6 +141,13 @@ static struct resource eth_resources[] = { + .end = AT91SAM9260_ID_EMAC, + .flags = IORESOURCE_IRQ, + }, ++#if defined(CONFIG_MACB_TX_SRAM) ++ [2] = { ++ .start = AT91SAM9260_SRAM1_BASE, ++ .end = AT91SAM9260_SRAM1_BASE + AT91SAM9260_SRAM1_SIZE - 1, ++ .flags = IORESOURCE_MEM, ++ }, ++#endif + }; + + static struct platform_device at91sam9260_eth_device = { +diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig +index dd9a09c..0af557f 100644 +--- a/drivers/net/Kconfig ++++ b/drivers/net/Kconfig +@@ -218,6 +218,12 @@ config MACB + To compile this driver as a module, choose M here: the module + will be called macb. + ++config MACB_TX_SRAM ++ bool "Use internal SRAM for EMAC (Ethernet) transmit buffers" ++ depends on (ARCH_AT91SAM9263 || ARCH_AT91SAM9260) && MACB ++ help ++ Select this if you are using internal SRAM for EMAC transmit buffers. ++ + source "drivers/net/arm/Kconfig" + + config AX88796 +diff --git a/drivers/net/macb.c b/drivers/net/macb.c +index 1d0d4d9..64839ad 100644 +--- a/drivers/net/macb.c ++++ b/drivers/net/macb.c +@@ -33,22 +33,27 @@ + /* Make the IP header word-aligned (the ethernet header is 14 bytes) */ + #define RX_OFFSET 2 + +-#define TX_RING_SIZE 128 +-#define DEF_TX_RING_PENDING (TX_RING_SIZE - 1) +-#define TX_RING_BYTES (sizeof(struct dma_desc) * TX_RING_SIZE) ++#define TX_MAX_PKT_SIZE 1536 ++#define TX_DEFAULT_RING_SIZE 128 ++#define DEF_TX_RING_PENDING(bp) ((bp)->tx_ring_size - 1) ++ ++#define TX_RING_BYTES(bp) (sizeof(struct dma_desc) * \ ++ (bp)->tx_ring_size) + + #define TX_RING_GAP(bp) \ +- (TX_RING_SIZE - (bp)->tx_pending) ++ ((bp)->tx_ring_size - (bp)->tx_pending) ++ + #define TX_BUFFS_AVAIL(bp) \ + (((bp)->tx_tail <= (bp)->tx_head) ? \ + (bp)->tx_tail + (bp)->tx_pending - (bp)->tx_head : \ + (bp)->tx_tail - (bp)->tx_head - TX_RING_GAP(bp)) +-#define NEXT_TX(n) (((n) + 1) & (TX_RING_SIZE - 1)) + +-#define NEXT_RX(n) (((n) + 1) & (RX_RING_SIZE - 1)) ++#define NEXT_TX(bp, n) (((n) + 1) % ((bp)->tx_ring_size)) ++#define NEXT_RX(n) (((n) + 1) % (RX_RING_SIZE)) ++ + + /* minimum number of free TX descriptors before waking up TX process */ +-#define MACB_TX_WAKEUP_THRESH (TX_RING_SIZE / 4) ++#define MACB_TX_WAKEUP_THRESH(bp) ((bp)->tx_ring_size / 4) + + #define MACB_RX_INT_FLAGS (MACB_BIT(RCOMP) | MACB_BIT(RXUBR) \ + | MACB_BIT(ISR_ROVR)) +@@ -329,11 +334,11 @@ static void macb_tx(struct macb *bp) + head = bp->tx_head; + + /*Mark all the buffer as used to avoid sending a lost buffer*/ +- for (i = 0; i < TX_RING_SIZE; i++) ++ for (i = 0; i < bp->tx_ring_size; i++) + bp->tx_ring[i].ctrl = MACB_BIT(TX_USED); + + /* free transmit buffer in upper layer*/ +- for (tail = bp->tx_tail; tail != head; tail = NEXT_TX(tail)) { ++ for (tail = bp->tx_tail; tail != head; tail = NEXT_TX(bp, tail)) { + struct ring_info *rp = &bp->tx_skb[tail]; + struct sk_buff *skb = rp->skb; + +@@ -363,7 +368,7 @@ static void macb_tx(struct macb *bp) + return; + + head = bp->tx_head; +- for (tail = bp->tx_tail; tail != head; tail = NEXT_TX(tail)) { ++ for (tail = bp->tx_tail; tail != head; tail = NEXT_TX(bp, tail)) { + struct ring_info *rp = &bp->tx_skb[tail]; + struct sk_buff *skb = rp->skb; + u32 bufstat; +@@ -388,7 +393,7 @@ static void macb_tx(struct macb *bp) + + bp->tx_tail = tail; + if (netif_queue_stopped(bp->dev) && +- TX_BUFFS_AVAIL(bp) > MACB_TX_WAKEUP_THRESH) ++ TX_BUFFS_AVAIL(bp) > MACB_TX_WAKEUP_THRESH(bp)) + netif_wake_queue(bp->dev); + } + +@@ -651,8 +656,15 @@ static int macb_start_xmit(struct sk_buff *skb, struct net_device *dev) + + entry = bp->tx_head; + dev_dbg(&bp->pdev->dev, "Allocated ring entry %u\n", entry); +- mapping = dma_map_single(&bp->pdev->dev, skb->data, ++ if (bp->smem_start) { ++ mapping = bp->tx_ring[entry].addr; ++ memcpy(bp->tx_buffers + entry * TX_MAX_PKT_SIZE, ++ skb->data, len); ++ } else { ++ mapping = dma_map_single(&bp->pdev->dev, skb->data, + len, DMA_TO_DEVICE); ++ bp->tx_ring[entry].addr = mapping; ++ } + bp->tx_skb[entry].skb = skb; + bp->tx_skb[entry].mapping = mapping; + dev_dbg(&bp->pdev->dev, "Mapped skb data %p to DMA addr %08lx\n", +@@ -660,14 +672,13 @@ static int macb_start_xmit(struct sk_buff *skb, struct net_device *dev) + + ctrl = MACB_BF(TX_FRMLEN, len); + ctrl |= MACB_BIT(TX_LAST); +- if (entry == (TX_RING_SIZE - 1)) ++ if (entry == (bp->tx_ring_size - 1)) + ctrl |= MACB_BIT(TX_WRAP); + +- bp->tx_ring[entry].addr = mapping; + bp->tx_ring[entry].ctrl = ctrl; + wmb(); + +- entry = NEXT_TX(entry); ++ entry = NEXT_TX(bp, entry); + bp->tx_head = entry; + + macb_writel(bp, NCR, macb_readl(bp, NCR) | MACB_BIT(TSTART)); +@@ -694,7 +705,8 @@ static void macb_free_consistent(struct macb *bp) + bp->rx_ring = NULL; + } + if (bp->tx_ring) { +- dma_free_coherent(&bp->pdev->dev, TX_RING_BYTES, ++ if (!bp->smem_start) ++ dma_free_coherent(&bp->pdev->dev, TX_RING_BYTES(bp), + bp->tx_ring, bp->tx_ring_dma); + bp->tx_ring = NULL; + } +@@ -704,13 +716,16 @@ static void macb_free_consistent(struct macb *bp) + bp->rx_buffers, bp->rx_buffers_dma); + bp->rx_buffers = NULL; + } ++ ++ if (bp->smem_start && bp->tx_ring_dma) ++ release_mem_region(bp->tx_ring_dma, bp->smem_size); + } + + static int macb_alloc_consistent(struct macb *bp) + { + int size; + +- size = TX_RING_SIZE * sizeof(struct ring_info); ++ size = bp->tx_ring_size * sizeof(struct ring_info); + bp->tx_skb = kmalloc(size, GFP_KERNEL); + if (!bp->tx_skb) + goto out_err; +@@ -724,14 +739,30 @@ static int macb_alloc_consistent(struct macb *bp) + "Allocated RX ring of %d bytes at %08lx (mapped %p)\n", + size, (unsigned long)bp->rx_ring_dma, bp->rx_ring); + +- size = TX_RING_BYTES; +- bp->tx_ring = dma_alloc_coherent(&bp->pdev->dev, size, ++ if (bp->smem_start) { ++ if (request_mem_region(bp->smem_start, ++ bp->smem_size, "macb")) { ++ bp->tx_ring_dma = bp->smem_start; ++ } ++ bp->tx_ring = ioremap(bp->tx_ring_dma, bp->smem_size); ++ if (bp->tx_ring) { ++ bp->tx_buffers_dma = bp->tx_ring_dma + ++ TX_RING_BYTES(bp); ++ bp->tx_buffers = (char *) bp->tx_ring + ++ TX_RING_BYTES(bp); ++ } ++ } ++ ++ if (!bp->tx_ring) { ++ size = TX_RING_BYTES(bp); ++ bp->tx_ring = dma_alloc_coherent(&bp->pdev->dev, size, + &bp->tx_ring_dma, GFP_KERNEL); +- if (!bp->tx_ring) +- goto out_err; +- dev_dbg(&bp->pdev->dev, +- "Allocated TX ring of %d bytes at %08lx (mapped %p)\n", +- size, (unsigned long)bp->tx_ring_dma, bp->tx_ring); ++ if (!bp->tx_ring) ++ goto out_err; ++ dev_dbg(&bp->pdev->dev, ++ "Allocated TX ring of %d bytes at %08lx (mapped %p)\n", ++ size, (unsigned long)bp->tx_ring_dma, bp->tx_ring); ++ } + + size = RX_RING_SIZE * RX_BUFFER_SIZE; + bp->rx_buffers = dma_alloc_coherent(&bp->pdev->dev, size, +@@ -762,11 +793,14 @@ static void macb_init_rings(struct macb *bp) + } + bp->rx_ring[RX_RING_SIZE - 1].addr |= MACB_BIT(RX_WRAP); + +- for (i = 0; i < TX_RING_SIZE; i++) { +- bp->tx_ring[i].addr = 0; ++ for (i = 0; i < bp->tx_ring_size; i++) { ++ bp->tx_ring[i].addr = (bp->smem_start) ? ++ bp->tx_buffers_dma + i * TX_MAX_PKT_SIZE : 0; + bp->tx_ring[i].ctrl = MACB_BIT(TX_USED); ++ bp->tx_ring[i].addr = (u32) (bp->tx_buffers_dma + ++ (i * TX_MAX_PKT_SIZE)); + } +- bp->tx_ring[TX_RING_SIZE - 1].ctrl |= MACB_BIT(TX_WRAP); ++ bp->tx_ring[bp->tx_ring_size - 1].ctrl |= MACB_BIT(TX_WRAP); + + bp->rx_tail = bp->tx_head = bp->tx_tail = 0; + } +@@ -1119,6 +1153,7 @@ static int __init macb_probe(struct platform_device *pdev) + { + struct eth_platform_data *pdata; + struct resource *regs; ++ struct resource *smem; + struct net_device *dev; + struct macb *bp; + struct phy_device *phydev; +@@ -1224,7 +1259,23 @@ static int __init macb_probe(struct platform_device *pdev) + macb_writel(bp, USRIO, MACB_BIT(MII)); + #endif + +- bp->tx_pending = DEF_TX_RING_PENDING; ++ /* Check mem region for TX buffers */ ++ smem = platform_get_resource(pdev, IORESOURCE_MEM, 1); ++ if (smem) { ++ bp->smem_start = smem->start; ++ bp->smem_size = smem->end - smem->start + 1; ++ bp->tx_ring_size = bp->smem_size / (TX_MAX_PKT_SIZE + ++ sizeof(struct dma_desc)); ++ } ++ ++ /* if ring_size == 0 then mem is too ++ small and use standard memory */ ++ if (!bp->tx_ring_size) { ++ bp->smem_start = 0; ++ bp->tx_ring_size = TX_DEFAULT_RING_SIZE; ++ } ++ ++ bp->tx_pending = DEF_TX_RING_PENDING(bp); + + err = register_netdev(dev); + if (err) { +diff --git a/drivers/net/macb.h b/drivers/net/macb.h +index d3212f6..57f31ad 100644 +--- a/drivers/net/macb.h ++++ b/drivers/net/macb.h +@@ -364,11 +364,15 @@ struct macb { + unsigned int rx_tail; + struct dma_desc *rx_ring; + void *rx_buffers; +- ++ void *tx_buffers; ++ unsigned int tx_ring_size; + unsigned int tx_head, tx_tail; + struct dma_desc *tx_ring; + struct ring_info *tx_skb; + ++ unsigned int smem_start; ++ unsigned int smem_size; ++ + spinlock_t lock; + struct platform_device *pdev; + struct clk *pclk; +@@ -381,6 +385,7 @@ struct macb { + dma_addr_t rx_ring_dma; + dma_addr_t tx_ring_dma; + dma_addr_t rx_buffers_dma; ++ dma_addr_t tx_buffers_dma; + + unsigned int rx_pending, tx_pending; + +-- +1.6.3.3 + diff --git a/recipes/linux/linux-2.6.33/afeb9260/0004-Disallowing-non-power-of-2-ring-size-proper-resource.patch b/recipes/linux/linux-2.6.33/afeb9260/0004-Disallowing-non-power-of-2-ring-size-proper-resource.patch new file mode 100644 index 0000000000..ffcaccc266 --- /dev/null +++ b/recipes/linux/linux-2.6.33/afeb9260/0004-Disallowing-non-power-of-2-ring-size-proper-resource.patch @@ -0,0 +1,36 @@ +From 8fd2a68e8e2eb235ce5ea9fe9e5adc22999f9161 Mon Sep 17 00:00:00 2001 +From: Sergey Lapin <slapin@ossfans.org> +Date: Thu, 4 Jun 2009 10:43:48 +0400 +Subject: [PATCH 4/7] Disallowing non-power-of-2 ring size, proper resource usage + + +Signed-off-by: Sergey Lapin <slapin@ossfans.org> +--- + drivers/net/macb.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/net/macb.c b/drivers/net/macb.c +index 64839ad..220c66a 100644 +--- a/drivers/net/macb.c ++++ b/drivers/net/macb.c +@@ -49,7 +49,7 @@ + (bp)->tx_tail - (bp)->tx_head - TX_RING_GAP(bp)) + + #define NEXT_TX(bp, n) (((n) + 1) % ((bp)->tx_ring_size)) +-#define NEXT_RX(n) (((n) + 1) % (RX_RING_SIZE)) ++#define NEXT_RX(n) (((n) + 1) & (RX_RING_SIZE - 1)) + + + /* minimum number of free TX descriptors before waking up TX process */ +@@ -1263,7 +1263,7 @@ static int __init macb_probe(struct platform_device *pdev) + smem = platform_get_resource(pdev, IORESOURCE_MEM, 1); + if (smem) { + bp->smem_start = smem->start; +- bp->smem_size = smem->end - smem->start + 1; ++ bp->smem_size = resource_size(smem); + bp->tx_ring_size = bp->smem_size / (TX_MAX_PKT_SIZE + + sizeof(struct dma_desc)); + } +-- +1.6.3.3 + diff --git a/recipes/linux/linux-2.6.33/afeb9260/0005-Add-missing-header-file.patch b/recipes/linux/linux-2.6.33/afeb9260/0005-Add-missing-header-file.patch new file mode 100644 index 0000000000..8c0a79ec23 --- /dev/null +++ b/recipes/linux/linux-2.6.33/afeb9260/0005-Add-missing-header-file.patch @@ -0,0 +1,26 @@ +From 068b604f7fbe84e6ea51c1f45ca530d863fce8ea Mon Sep 17 00:00:00 2001 +From: Sergey Lapin <slapin@ossfans.org> +Date: Fri, 7 Aug 2009 22:44:35 +0400 +Subject: [PATCH 5/7] Add missing header file + + +Signed-off-by: Sergey Lapin <slapin@ossfans.org> +--- + arch/arm/mach-at91/board-afeb-9260v1.c | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/mach-at91/board-afeb-9260v1.c b/arch/arm/mach-at91/board-afeb-9260v1.c +index 50667be..f1e314f 100644 +--- a/arch/arm/mach-at91/board-afeb-9260v1.c ++++ b/arch/arm/mach-at91/board-afeb-9260v1.c +@@ -32,6 +32,7 @@ + #include <linux/spi/spi.h> + #include <linux/clk.h> + #include <linux/dma-mapping.h> ++#include <linux/mtd/mtd.h> + + #include <mach/hardware.h> + #include <asm/setup.h> +-- +1.6.3.3 + diff --git a/recipes/linux/linux-2.6.33/afeb9260/0006-Enable-SPI1.patch b/recipes/linux/linux-2.6.33/afeb9260/0006-Enable-SPI1.patch new file mode 100644 index 0000000000..838c695118 --- /dev/null +++ b/recipes/linux/linux-2.6.33/afeb9260/0006-Enable-SPI1.patch @@ -0,0 +1,32 @@ +From 2129eba0028cf71128aef04d4f8294ab87cc978b Mon Sep 17 00:00:00 2001 +From: Sergey Lapin <slapin@ossfans.org> +Date: Fri, 7 Aug 2009 22:45:29 +0400 +Subject: [PATCH 6/7] Enable SPI1 + + +Signed-off-by: Sergey Lapin <slapin@ossfans.org> +--- + arch/arm/mach-at91/board-afeb-9260v1.c | 7 +++++++ + 1 files changed, 7 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/mach-at91/board-afeb-9260v1.c b/arch/arm/mach-at91/board-afeb-9260v1.c +index f1e314f..12aa493 100644 +--- a/arch/arm/mach-at91/board-afeb-9260v1.c ++++ b/arch/arm/mach-at91/board-afeb-9260v1.c +@@ -104,6 +104,13 @@ static struct spi_board_info afeb9260_spi_devices[] = { + .max_speed_hz = 15 * 1000 * 1000, + .bus_num = 0, + }, ++ { /* DataFlash chip */ ++ .modalias = "spidev", ++ .chip_select = 0, ++ .max_speed_hz = 500 * 1000, ++ .mode = SPI_CPHA, ++ .bus_num = 1, ++ }, + }; + + +-- +1.6.3.3 + diff --git a/recipes/linux/linux-2.6.33/afeb9260/0007-Adding-4th-serial-port.patch b/recipes/linux/linux-2.6.33/afeb9260/0007-Adding-4th-serial-port.patch new file mode 100644 index 0000000000..918805fb9e --- /dev/null +++ b/recipes/linux/linux-2.6.33/afeb9260/0007-Adding-4th-serial-port.patch @@ -0,0 +1,27 @@ +From c0044d3806f0fcf081ef65cb8480c9e6652e45df Mon Sep 17 00:00:00 2001 +From: Sergey Lapin <slapin@ossfans.org> +Date: Thu, 8 Apr 2010 19:55:38 +0400 +Subject: [PATCH 7/7] Adding 4th serial port + + +Signed-off-by: Sergey Lapin <slapin@ossfans.org> +--- + arch/arm/mach-at91/board-afeb-9260v1.c | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/mach-at91/board-afeb-9260v1.c b/arch/arm/mach-at91/board-afeb-9260v1.c +index 12aa493..4e1d395 100644 +--- a/arch/arm/mach-at91/board-afeb-9260v1.c ++++ b/arch/arm/mach-at91/board-afeb-9260v1.c +@@ -67,6 +67,8 @@ static void __init afeb9260_map_io(void) + at91_register_uart(AT91SAM9260_ID_US1, 2, + ATMEL_UART_CTS | ATMEL_UART_RTS); + ++ at91_register_uart(AT91SAM9260_ID_US2, 3, 0); ++ + /* set serial console to ttyS0 (ie, DBGU) */ + at91_set_serial_console(0); + } +-- +1.6.3.3 + diff --git a/recipes/linux/linux-2.6.33/afeb9260/defconfig b/recipes/linux/linux-2.6.33/afeb9260/defconfig new file mode 100644 index 0000000000..e732b2b971 --- /dev/null +++ b/recipes/linux/linux-2.6.33/afeb9260/defconfig @@ -0,0 +1,1756 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.33-rc6 +# Sat Feb 6 04:18:21 2010 +# +CONFIG_ARM=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_TIME=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_HAVE_LATENCYTOP_SUPPORT=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" +CONFIG_CONSTRUCTORS=y + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZO=y +CONFIG_KERNEL_GZIP=y +# CONFIG_KERNEL_BZIP2 is not set +# CONFIG_KERNEL_LZMA is not set +# CONFIG_KERNEL_LZO is not set +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set +# CONFIG_AUDIT is not set + +# +# RCU Subsystem +# +CONFIG_TREE_RCU=y +# CONFIG_TREE_PREEMPT_RCU is not set +# CONFIG_TINY_RCU is not set +# CONFIG_RCU_TRACE is not set +CONFIG_RCU_FANOUT=32 +# CONFIG_RCU_FANOUT_EXACT is not set +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_GROUP_SCHED is not set +# CONFIG_CGROUPS is not set +CONFIG_SYSFS_DEPRECATED=y +CONFIG_SYSFS_DEPRECATED_V2=y +# CONFIG_RELAY is not set +CONFIG_NAMESPACES=y +# CONFIG_UTS_NS is not set +# CONFIG_IPC_NS is not set +# CONFIG_USER_NS is not set +# CONFIG_PID_NS is not set +# CONFIG_NET_NS is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +CONFIG_RD_LZO=y +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +# CONFIG_EMBEDDED is not set +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y + +# +# Kernel Performance Events And Counters +# +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_COMPAT_BRK=y +CONFIG_SLAB=y +# CONFIG_SLUB is not set +# CONFIG_SLOB is not set +# CONFIG_PROFILING is not set +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_CLK=y + +# +# GCOV-based kernel profiling +# +# CONFIG_SLOW_WORK is not set +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_LOAD is not set +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_BLOCK=y +CONFIG_LBDAF=y +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_BLK_DEV_INTEGRITY is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +# CONFIG_IOSCHED_DEADLINE is not set +# CONFIG_IOSCHED_CFQ is not set +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_CFQ is not set +CONFIG_DEFAULT_NOOP=y +CONFIG_DEFAULT_IOSCHED="noop" +# CONFIG_INLINE_SPIN_TRYLOCK is not set +# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK is not set +# CONFIG_INLINE_SPIN_LOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK_IRQ is not set +# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set +# CONFIG_INLINE_SPIN_UNLOCK is not set +# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set +# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_READ_TRYLOCK is not set +# CONFIG_INLINE_READ_LOCK is not set +# CONFIG_INLINE_READ_LOCK_BH is not set +# CONFIG_INLINE_READ_LOCK_IRQ is not set +# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set +# CONFIG_INLINE_READ_UNLOCK is not set +# CONFIG_INLINE_READ_UNLOCK_BH is not set +# CONFIG_INLINE_READ_UNLOCK_IRQ is not set +# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_WRITE_TRYLOCK is not set +# CONFIG_INLINE_WRITE_LOCK is not set +# CONFIG_INLINE_WRITE_LOCK_BH is not set +# CONFIG_INLINE_WRITE_LOCK_IRQ is not set +# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set +# CONFIG_INLINE_WRITE_UNLOCK is not set +# CONFIG_INLINE_WRITE_UNLOCK_BH is not set +# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set +# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set +# CONFIG_MUTEX_SPIN_ON_OWNER is not set +# CONFIG_FREEZER is not set + +# +# System Type +# +CONFIG_MMU=y +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +CONFIG_ARCH_AT91=y +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_GEMINI is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_STMP3XXX is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_NOMADIK is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X 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_DOVE is not set +# CONFIG_ARCH_KIRKWOOD is not set +# CONFIG_ARCH_LOKI is not set +# CONFIG_ARCH_MV78XX0 is not set +# CONFIG_ARCH_ORION5X is not set +# CONFIG_ARCH_MMP is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_W90X900 is not set +# CONFIG_ARCH_PNX4008 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_MSM is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_S3C64XX is not set +# CONFIG_ARCH_S5PC1XX is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_U300 is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_OMAP is not set +# CONFIG_ARCH_BCMRING is not set +# CONFIG_ARCH_U8500 is not set +CONFIG_HAVE_AT91_USART3=y +CONFIG_HAVE_AT91_USART4=y +CONFIG_HAVE_AT91_USART5=y + +# +# Atmel AT91 System-on-Chip +# +# CONFIG_ARCH_AT91RM9200 is not set +CONFIG_ARCH_AT91SAM9260=y +# CONFIG_ARCH_AT91SAM9261 is not set +# CONFIG_ARCH_AT91SAM9G10 is not set +# CONFIG_ARCH_AT91SAM9263 is not set +# CONFIG_ARCH_AT91SAM9RL is not set +# CONFIG_ARCH_AT91SAM9G20 is not set +# CONFIG_ARCH_AT91SAM9G45 is not set +# CONFIG_ARCH_AT91CAP9 is not set +# CONFIG_ARCH_AT91X40 is not set +CONFIG_AT91_PMC_UNIT=y + +# +# AT91SAM9260 Variants +# +# CONFIG_ARCH_AT91SAM9260_SAM9XE is not set + +# +# AT91SAM9260 / AT91SAM9XE Board Type +# +# CONFIG_MACH_AT91SAM9260EK is not set +# CONFIG_MACH_CAM60 is not set +# CONFIG_MACH_SAM9_L9260 is not set +CONFIG_MACH_AFEB9260=y +# CONFIG_MACH_USB_A9260 is not set +# CONFIG_MACH_QIL_A9260 is not set +# CONFIG_MACH_CPU9260 is not set + +# +# AT91 Board Options +# + +# +# AT91 Feature Selections +# +CONFIG_AT91_PROGRAMMABLE_CLOCKS=y +CONFIG_AT91_TIMER_HZ=100 +CONFIG_AT91_EARLY_DBGU=y +# CONFIG_AT91_EARLY_USART0 is not set +# CONFIG_AT91_EARLY_USART1 is not set +# CONFIG_AT91_EARLY_USART2 is not set +# CONFIG_AT91_EARLY_USART3 is not set +# CONFIG_AT91_EARLY_USART4 is not set +# CONFIG_AT91_EARLY_USART5 is not set + +# +# Processor Type +# +CONFIG_CPU_ARM926T=y +CONFIG_CPU_32v5=y +CONFIG_CPU_ABRT_EV5TJ=y +CONFIG_CPU_PABRT_LEGACY=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_COPY_V4WB=y +CONFIG_CPU_TLB_V4WBI=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +CONFIG_ARM_THUMB=y +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_WRITETHROUGH is not set +# CONFIG_CPU_CACHE_ROUND_ROBIN is not set +CONFIG_ARM_L1_CACHE_SHIFT=5 + +# +# Bus support +# +# CONFIG_PCI_SYSCALL is not set +# CONFIG_ARCH_SUPPORTS_MSI is not set +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +# CONFIG_NO_HZ is not set +# CONFIG_HIGH_RES_TIMERS is not set +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_1G is not set +CONFIG_PAGE_OFFSET=0xC0000000 +# CONFIG_PREEMPT_NONE is not set +# CONFIG_PREEMPT_VOLUNTARY is not set +CONFIG_PREEMPT=y +CONFIG_HZ=100 +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +# CONFIG_HIGHMEM is not set +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_SPLIT_PTLOCK_CPUS=999999 +# CONFIG_PHYS_ADDR_T_64BIT is not set +CONFIG_ZONE_DMA_FLAG=0 +CONFIG_VIRT_TO_BUS=y +# CONFIG_KSM is not set +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +# CONFIG_LEDS is not set +CONFIG_ALIGNMENT_TRAP=y +# CONFIG_UACCESS_WITH_MEMCPY is not set + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw" +# CONFIG_XIP_KERNEL is not set +# CONFIG_KEXEC is not set + +# +# CPU Power Management +# +# CONFIG_CPU_IDLE is not set + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_FASTFPE is not set +# CONFIG_VFP is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_HAVE_AOUT=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set + +# +# Power management options +# +# CONFIG_PM is not set +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_MMAP is not set +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +# CONFIG_IP_MULTICAST is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_PNP=y +# CONFIG_IP_PNP_DHCP is not set +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set +# CONFIG_INET_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +# CONFIG_IPV6 is not set +# CONFIG_NETWORK_SECMARK is not set +# CONFIG_NETFILTER is not set +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_RDS is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_NET_DSA is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_PHONET is not set +# CONFIG_IEEE802154 is not set +# CONFIG_NET_SCHED is not set +# CONFIG_DCB is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_CAN is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set +# CONFIG_AF_RXRPC is not set +CONFIG_WIRELESS=y +# CONFIG_CFG80211 is not set +# CONFIG_LIB80211 is not set + +# +# CFG80211 needs to be enabled for MAC80211 +# +# CONFIG_WIMAX is not set +# CONFIG_RFKILL is not set +# CONFIG_NET_9P is not set + +# +# Device Drivers +# < |
