diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2010-12-30 22:45:29 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2010-12-30 22:45:29 +0100 |
commit | 220a96f9926788ed531717f78e44fdf1e7ab3b34 (patch) | |
tree | 406f65eea71fabd8cf66c2bd1108ec63f8c349ee /target/foxg20/patches | |
parent | 38af8185ea05a1c5d1abb32a68a025e3b4afa4d6 (diff) |
rework architecture / embedded systems concept
Make configuration of new targets cheap.
Just add a new file in target/arch/sys-enabled/foo.
See other files for syntax. While doing runtime tests
with the new infrastructure I've updated a lot of other
stuff:
- gcc 4.5.2
- uClibc 0.9.32-rc1 (NPTL)
- strongswan, php, miredo, parted, util-linux-ng, e2fsprogs
I promise, this is the last big fat commit this year ;)
Diffstat (limited to 'target/foxg20/patches')
-rw-r--r-- | target/foxg20/patches/foxg20.patch | 471 |
1 files changed, 0 insertions, 471 deletions
diff --git a/target/foxg20/patches/foxg20.patch b/target/foxg20/patches/foxg20.patch deleted file mode 100644 index d564c71fb..000000000 --- a/target/foxg20/patches/foxg20.patch +++ /dev/null @@ -1,471 +0,0 @@ -diff -Nur linux-2.6.34.orig/arch/arm/include/asm/setup.h linux-2.6.34/arch/arm/include/asm/setup.h ---- linux-2.6.34.orig/arch/arm/include/asm/setup.h 2010-05-16 23:17:36.000000000 +0200 -+++ linux-2.6.34/arch/arm/include/asm/setup.h 2010-05-25 20:26:06.083473207 +0200 -@@ -18,6 +18,8 @@ - - #define COMMAND_LINE_SIZE 1024 - -+const char *get_system_type(void); -+ - /* The list ends with an ATAG_NONE node. */ - #define ATAG_NONE 0x00000000 - -diff -Nur linux-2.6.34.orig/arch/arm/Kconfig linux-2.6.34/arch/arm/Kconfig ---- linux-2.6.34.orig/arch/arm/Kconfig 2010-05-16 23:17:36.000000000 +0200 -+++ linux-2.6.34/arch/arm/Kconfig 2010-05-25 20:26:06.103473096 +0200 -@@ -20,6 +20,8 @@ - select HAVE_FUNCTION_TRACER if (!XIP_KERNEL) - select HAVE_GENERIC_DMA_COHERENT - select HAVE_KERNEL_GZIP -+ select HAVE_KERNEL_BZIP2 -+ select HAVE_KERNEL_LZMA - select HAVE_KERNEL_LZO - select HAVE_PERF_EVENTS - select PERF_USE_VMALLOC -diff -Nur linux-2.6.34.orig/arch/arm/kernel/setup.c linux-2.6.34/arch/arm/kernel/setup.c ---- linux-2.6.34.orig/arch/arm/kernel/setup.c 2010-05-16 23:17:36.000000000 +0200 -+++ linux-2.6.34/arch/arm/kernel/setup.c 2010-05-25 20:26:06.150978830 +0200 -@@ -790,8 +790,12 @@ - - static int c_show(struct seq_file *m, void *v) - { -+ unsigned long n = (unsigned long) v - 1; - int i; - -+ if (n == 0) -+ seq_printf(m, "system type\t\t: %s\n", get_system_type()); -+ - seq_printf(m, "Processor\t: %s rev %d (%s)\n", - cpu_name, read_cpuid_id() & 15, elf_platform); - -diff -Nur linux-2.6.34.orig/arch/arm/mach-at91/at91sam9260_devices.c linux-2.6.34/arch/arm/mach-at91/at91sam9260_devices.c ---- linux-2.6.34.orig/arch/arm/mach-at91/at91sam9260_devices.c 2010-05-16 23:17:36.000000000 +0200 -+++ linux-2.6.34/arch/arm/mach-at91/at91sam9260_devices.c 2010-05-25 20:26:06.190979002 +0200 -@@ -454,7 +454,15 @@ - .sda_is_open_drain = 1, - .scl_pin = AT91_PIN_PA24, - .scl_is_open_drain = 1, -+#if defined(CONFIG_MACH_FOXG20) -+ /* Some I2C devices are limited to 100 kHz and i2c-gpio.h -+ * says "frequency is (500 / udelay) kHz" so 5 is best (and is -+ * used in i2c-gpio.c) -+ */ -+ .udelay = 5, /* ~100 kHz */ -+#else - .udelay = 2, /* ~100 kHz */ -+#endif - }; - - static struct platform_device at91sam9260_twi_device = { -diff -Nur linux-2.6.34.orig/arch/arm/mach-at91/board-foxg20.c linux-2.6.34/arch/arm/mach-at91/board-foxg20.c ---- linux-2.6.34.orig/arch/arm/mach-at91/board-foxg20.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.34/arch/arm/mach-at91/board-foxg20.c 2010-05-25 20:26:06.230978938 +0200 -@@ -0,0 +1,376 @@ -+/* -+ * Copyright (C) 2005 SAN People -+ * Copyright (C) 2008 Atmel -+ * Copyright (C) 2010 Lee McLoughlin - lee@lmmrtech.com -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+ */ -+ -+#include <linux/types.h> -+#include <linux/init.h> -+#include <linux/mm.h> -+#include <linux/module.h> -+#include <linux/platform_device.h> -+#include <linux/spi/spi.h> -+#include <linux/spi/at73c213.h> -+#include <linux/gpio_keys.h> -+#include <linux/input.h> -+#include <linux/clk.h> -+#include <linux/w1-gpio.h> -+ -+#include <mach/hardware.h> -+#include <asm/setup.h> -+#include <asm/mach-types.h> -+#include <asm/irq.h> -+ -+#include <asm/mach/arch.h> -+#include <asm/mach/map.h> -+#include <asm/mach/irq.h> -+ -+#include <mach/board.h> -+#include <mach/gpio.h> -+#include <mach/at91sam9_smc.h> -+ -+#include "sam9_smc.h" -+#include "generic.h" -+ -+/* -+ * The FOX hardware comes as the "Netus" board with just the cpu, ram, -+ * dataflash and two header connectors. This is plugged into the Fox board -+ * which provides the ethernet, usb, rtc, leds, switch, ... -+ * Other version of the Fox board are planned which could contain -+ * both NAND and sound (WM8731). -+ * -+ * By default USART4 and USART5 are not enabled (freeing up those pins -+ * for general use) -+ * -+ * Note: Enabling the NAND without a NAND device present doesn't cause -+ * any issues as on boot the probe will fail. -+ */ -+/* #define FOXG20_NAND */ -+/* #define FOXG20_WM8731 */ -+/* #define FOX_USART4 */ -+/* #define FOX_USART5 */ -+ -+const char *get_system_type(void) -+{ -+ return "FoxBoard FOXG20"; -+} -+ -+static void __init foxg20_map_io(void) -+{ -+ /* Initialize processor: 18.432 MHz crystal */ -+ at91sam9260_initialize(18432000); -+ -+ /* DBGU on ttyS0. (Rx & Tx only) */ -+ at91_register_uart(0, 0, 0); -+ -+ /* USART0 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */ -+ at91_register_uart(AT91SAM9260_ID_US0, 1, ATMEL_UART_CTS | ATMEL_UART_RTS -+ | ATMEL_UART_DTR | ATMEL_UART_DSR | ATMEL_UART_DCD -+ | ATMEL_UART_RI); -+ -+ /* USART1 on ttyS2. (Rx, Tx, RTS, CTS) */ -+ at91_register_uart(AT91SAM9260_ID_US1, 2, ATMEL_UART_CTS | ATMEL_UART_RTS); -+ -+ /* USART2 on ttyS3. (Rx & Tx only) */ -+ at91_register_uart(AT91SAM9260_ID_US2, 3, 0); -+ -+ /* USART3 on ttyS4. (Rx, Tx, RTS, CTS) */ -+ at91_register_uart(AT91SAM9260_ID_US3, 4, ATMEL_UART_CTS | ATMEL_UART_RTS); -+ -+#if defined(FOX_USART4) -+ /* USART4 on ttyS5. (Rx & Tx only) */ -+ at91_register_uart(AT91SAM9260_ID_US4, 5, 0); -+#endif -+ -+#if defined(FOX_USART5) -+ /* USART5 on ttyS6. (Rx & Tx only) */ -+ at91_register_uart(AT91SAM9260_ID_US5, 6, 0); -+#endif -+ -+ /* set serial console to ttyS0 (ie, DBGU) */ -+ at91_set_serial_console(0); -+} -+ -+static void __init foxg20_init_irq(void) -+{ -+ at91sam9260_init_interrupts(NULL); -+} -+ -+ -+/* -+ * USB Host port -+ */ -+static struct at91_usbh_data __initdata foxg20_usbh_data = { -+ .ports = 2, -+}; -+ -+/* -+ * USB Device port -+ */ -+static struct at91_udc_data __initdata foxg20_udc_data = { -+ .vbus_pin = AT91_PIN_PC6, -+ .pullup_pin = 0, /* pull-up driven by UDC */ -+}; -+ -+ -+/* -+ * SPI devices. -+ */ -+static struct spi_board_info foxg20_spi_devices[] = { -+#if !defined(CONFIG_MMC_AT91) -+ { -+ .modalias = "mtd_dataflash", -+ .chip_select = 1, -+ .max_speed_hz = 15 * 1000 * 1000, -+ .bus_num = 0, -+ }, -+#endif -+}; -+ -+ -+/* -+ * MACB Ethernet device -+ */ -+static struct at91_eth_data __initdata foxg20_macb_data = { -+ .phy_irq_pin = AT91_PIN_PA7, -+ .is_rmii = 1, -+}; -+ -+ -+#ifdef FOXG20_NAND -+/* The Fox doesn't have NAND memory */ -+/* -+ * NAND flash -+ */ -+static struct mtd_partition __initdata foxg20_nand_partition[] = { -+ { -+ .name = "Bootstrap", -+ .offset = 0, -+ .size = 4 * SZ_1M, -+ }, -+ { -+ .name = "Partition 1", -+ .offset = MTDPART_OFS_NXTBLK, -+ .size = 60 * SZ_1M, -+ }, -+ { -+ .name = "Partition 2", -+ .offset = MTDPART_OFS_NXTBLK, -+ .size = MTDPART_SIZ_FULL, -+ }, -+}; -+ -+static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) -+{ -+ *num_partitions = ARRAY_SIZE(foxg20_nand_partition); -+ return foxg20_nand_partition; -+} -+ -+/* det_pin is not connected */ -+static struct atmel_nand_data __initdata foxg20_nand_data = { -+ .ale = 21, -+ .cle = 22, -+ .rdy_pin = AT91_PIN_PC13, -+ .enable_pin = AT91_PIN_PC14, -+ .partition_info = nand_partitions, -+#if defined(CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16) -+ .bus_width_16 = 1, -+#else -+ .bus_width_16 = 0, -+#endif -+}; -+ -+static struct sam9_smc_config __initdata foxg20_nand_smc_config = { -+ .ncs_read_setup = 0, -+ .nrd_setup = 2, -+ .ncs_write_setup = 0, -+ .nwe_setup = 2, -+ -+ .ncs_read_pulse = 4, -+ .nrd_pulse = 4, -+ .ncs_write_pulse = 4, -+ .nwe_pulse = 4, -+ -+ .read_cycle = 7, -+ .write_cycle = 7, -+ -+ .mode = AT91_SMC_READMODE | AT91_SMC_WRITEMODE | AT91_SMC_EXNWMODE_DISABLE, -+ .tdf_cycles = 3, -+}; -+ -+static void __init foxg20_add_device_nand(void) -+{ -+ /* setup bus-width (8 or 16) */ -+ if (foxg20_nand_data.bus_width_16) -+ foxg20_nand_smc_config.mode |= AT91_SMC_DBW_16; -+ else -+ foxg20_nand_smc_config.mode |= AT91_SMC_DBW_8; -+ -+ /* configure chip-select 3 (NAND) */ -+ sam9_smc_configure(3, &foxg20_nand_smc_config); -+ -+ at91_add_device_nand(&foxg20_nand_data); -+} -+#endif -+ -+ -+/* -+ * MCI (SD/MMC) -+ * det_pin, wp_pin and vcc_pin are not connected -+ */ -+static struct at91_mmc_data __initdata foxg20_mmc_data = { -+ .slot_b = 1, -+ .wire4 = 1, -+}; -+ -+ -+/* -+ * LEDs -+ */ -+static struct gpio_led foxg20_leds[] = { -+ { /* user led, red */ -+ .name = "user_led", -+ .gpio = AT91_PIN_PC7, -+ .active_low = 0, -+ .default_trigger = "heartbeat", -+ }, -+}; -+ -+ -+/* -+ * GPIO Buttons -+ */ -+#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) -+static struct gpio_keys_button foxg20_buttons[] = { -+ { -+ .gpio = AT91_PIN_PC4, -+ .code = BTN_1, -+ .desc = "Button 1", -+ .active_low = 1, -+ .wakeup = 1, -+ }, -+}; -+ -+static struct gpio_keys_platform_data foxg20_button_data = { -+ .buttons = foxg20_buttons, -+ .nbuttons = ARRAY_SIZE(foxg20_buttons), -+}; -+ -+static struct platform_device foxg20_button_device = { -+ .name = "gpio-keys", -+ .id = -1, -+ .num_resources = 0, -+ .dev = { -+ .platform_data = &foxg20_button_data, -+ } -+}; -+ -+static void __init foxg20_add_device_buttons(void) -+{ -+ at91_set_gpio_input(AT91_PIN_PC4, 1); /* btn1 */ -+ at91_set_deglitch(AT91_PIN_PC4, 1); -+ -+ platform_device_register(&foxg20_button_device); -+} -+#else -+static void __init foxg20_add_device_buttons(void) {} -+#endif -+ -+ -+#if !defined(FOXG20_WM8731) -+#if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE) -+static struct w1_gpio_platform_data w1_gpio_pdata = { -+ /* If you choose to use a pin other than PB16 it needs to be 3.3V */ -+ .pin = AT91_PIN_PB16, -+ .is_open_drain = 1, -+}; -+ -+static struct platform_device w1_device = { -+ .name = "w1-gpio", -+ .id = -1, -+ .dev.platform_data = &w1_gpio_pdata, -+}; -+ -+static void __init at91_add_device_w1(void) -+{ -+ at91_set_GPIO_periph(w1_gpio_pdata.pin, 1); -+ at91_set_multi_drive(w1_gpio_pdata.pin, 1); -+ platform_device_register(&w1_device); -+} -+ -+#endif -+#endif -+ -+ -+static struct i2c_board_info __initdata foxg20_i2c_devices[] = { -+ { -+ I2C_BOARD_INFO("24c512", 0x50), -+#ifdef FOXG20_WM8731 -+ I2C_BOARD_INFO("wm8731", 0x1b), -+#endif -+ }, -+}; -+ -+ -+static void __init foxg20_board_init(void) -+{ -+ /* Serial */ -+ at91_add_device_serial(); -+ /* USB Host */ -+ at91_add_device_usbh(&foxg20_usbh_data); -+ /* USB Device */ -+ at91_add_device_udc(&foxg20_udc_data); -+ /* SPI */ -+ at91_add_device_spi(foxg20_spi_devices, ARRAY_SIZE(foxg20_spi_devices)); -+#ifdef FOXG20_NAND -+ /* The Fox doesn't have NAND memory */ -+ /* NAND */ -+ foxg20_add_device_nand(); -+#endif -+ /* Ethernet */ -+ at91_add_device_eth(&foxg20_macb_data); -+ /* MMC */ -+ at91_add_device_mmc(0, &foxg20_mmc_data); -+ /* I2C */ -+ at91_add_device_i2c(foxg20_i2c_devices, ARRAY_SIZE(foxg20_i2c_devices)); -+ /* LEDs */ -+ at91_gpio_leds(foxg20_leds, ARRAY_SIZE(foxg20_leds)); -+ /* Push Buttons */ -+ foxg20_add_device_buttons(); -+#ifdef FOXG20_WM8731 -+ /* The Fox doesn't have this sound chip */ -+ /* PCK0 provides MCLK to the WM8731 */ -+ at91_set_B_periph(AT91_PIN_PC1, 0); -+ /* SSC (for WM8731) */ -+ at91_add_device_ssc(AT91SAM9260_ID_SSC, ATMEL_SSC_TX); -+#else -+#if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE) -+ at91_add_device_w1(); -+#endif -+#endif -+} -+ -+MACHINE_START(AT91SAM9G20EK, "Acme Systems FOXG20") -+ /* Maintainer: Lee McLoughlin */ -+ .phys_io = AT91_BASE_SYS, -+ .io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc, -+ .boot_params = AT91_SDRAM_BASE + 0x100, -+ .timer = &at91sam926x_timer, -+ .map_io = foxg20_map_io, -+ .init_irq = foxg20_init_irq, -+ .init_machine = foxg20_board_init, -+MACHINE_END -diff -Nur linux-2.6.34.orig/arch/arm/mach-at91/Kconfig linux-2.6.34/arch/arm/mach-at91/Kconfig ---- linux-2.6.34.orig/arch/arm/mach-at91/Kconfig 2010-05-16 23:17:36.000000000 +0200 -+++ linux-2.6.34/arch/arm/mach-at91/Kconfig 2010-05-25 20:26:06.270978491 +0200 -@@ -360,6 +360,15 @@ - Select this if you are using a Eukrea Electromatique's - CPU9G20 Board <http://www.eukrea.com/> - -+config MACH_FOXG20 -+ bool "Acme Systems FOX G20" -+ select HAVE_AT91_DATAFLASH_CARD -+ select HAVE_NAND_ATMEL_BUSWIDTH_16 -+ depends on ARCH_AT91SAM9G20 -+ help -+ Select this if you are using Acme Systems -+ FOX Board G20 <http://netus.acmesystems.it> -+ - endif - - # ---------------------------------------------------------- -diff -Nur linux-2.6.34.orig/arch/arm/mach-at91/Makefile linux-2.6.34/arch/arm/mach-at91/Makefile ---- linux-2.6.34.orig/arch/arm/mach-at91/Makefile 2010-05-16 23:17:36.000000000 +0200 -+++ linux-2.6.34/arch/arm/mach-at91/Makefile 2010-05-25 20:26:06.310978635 +0200 -@@ -67,6 +67,9 @@ - # AT91SAM9G45 board-specific support - obj-$(CONFIG_MACH_AT91SAM9G45EKES) += board-sam9m10g45ek.o - -+# FOXG20 board-specific support -+obj-$(CONFIG_MACH_FOXG20) += board-foxg20.o -+ - # AT91CAP9 board-specific support - obj-$(CONFIG_MACH_AT91CAP9ADK) += board-cap9adk.o - |