]> git.sur5r.net Git - u-boot/commitdiff
Merge branch 'master' of git://git.denx.de/u-boot-mips
authorTom Rini <trini@konsulko.com>
Wed, 8 Jul 2015 21:14:02 +0000 (17:14 -0400)
committerTom Rini <trini@konsulko.com>
Wed, 8 Jul 2015 21:14:02 +0000 (17:14 -0400)
49 files changed:
arch/Kconfig
arch/arm/Kconfig
arch/arm/cpu/armv7/mx6/Kconfig
arch/arm/cpu/armv7/mx6/soc.c
arch/arm/cpu/armv7/start.S
arch/arm/cpu/armv7/sunxi/board.c
arch/arm/cpu/armv7/sunxi/rsb.c
arch/arm/dts/Makefile
arch/arm/dts/sun8i-a23-a33.dtsi
arch/arm/dts/sun8i-a33-ippo-q8h-v1.2-lcd1024x600.dts [deleted file]
arch/arm/dts/sun8i-a33-ippo-q8h-v1.2.dts [new file with mode: 0644]
arch/arm/dts/sun8i-a33-sinlinx-sina33.dts [new file with mode: 0644]
arch/arm/dts/sun8i-a33.dtsi
arch/arm/imx-common/timer.c
arch/arm/include/asm/arch-mx5/imx-regs.h
arch/arm/include/asm/arch-mx6/imx-regs.h
arch/arm/include/asm/arch-mx6/sys_proto.h
arch/arm/include/asm/arch-sunxi/gpio.h
arch/arm/include/asm/u-boot.h
arch/arm/lib/_ashldi3.S
arch/arm/lib/_ashrdi3.S
arch/arm/lib/_divsi3.S
arch/arm/lib/_lshrdi3.S
arch/arm/lib/_modsi3.S
arch/arm/lib/_udivsi3.S
arch/arm/lib/_umodsi3.S
board/quipos/cairo/MAINTAINERS [new file with mode: 0644]
board/solidrun/mx6cuboxi/mx6cuboxi.c
board/sunxi/MAINTAINERS
board/ti/am43xx/MAINTAINERS
board/ti/dra7xx/mux_data.h
board/tqc/tqma6/Kconfig
board/vscom/baltos/MAINTAINERS [new file with mode: 0644]
configs/Ippo_q8h_v1_2_a33_1024x600_defconfig
configs/Sinlinx_SinA33_defconfig [new file with mode: 0644]
configs/tbs2910_defconfig
configs/tqma6q_mba6_mmc_defconfig
configs/tqma6q_mba6_spi_defconfig
configs/tqma6s_mba6_mmc_defconfig
configs/tqma6s_mba6_spi_defconfig
drivers/gpio/lpc32xx_gpio.c
drivers/net/designware.c
drivers/serial/arm_dcc.c
include/configs/colibri_vf.h
include/configs/mx6_common.h
include/configs/mx6cuboxi.h
include/configs/novena.h
include/configs/tbs2910.h
include/configs/tqma6.h

index 96db5c5088b6b6e0906a7b5dedc11bcf3ab5830d..afa1d6c2d782e00282d14e7838f578ef1b8cd4f7 100644 (file)
@@ -18,7 +18,7 @@ config ARC
 
 config ARM
        bool "ARM architecture"
-       select HAVE_PRIVATE_LIBGCC
+       select HAVE_PRIVATE_LIBGCC if !ARM64
        select HAVE_GENERIC_BOARD
        select SUPPORT_OF_CONTROL
 
index 192d9cf3f078d0beb0bdf7ae397af98c484ba02f..9908b430d62df47462cb31f318129fc054fc176b 100644 (file)
@@ -589,10 +589,6 @@ config TARGET_TBS2910
        bool "Support tbs2910"
        select CPU_V7
 
-config TARGET_TQMA6
-       bool "TQ Systems TQMa6 board"
-       select CPU_V7
-
 config TARGET_OT1200
        bool "Bachmann OT1200"
        select CPU_V7
@@ -976,7 +972,6 @@ source "board/ti/ti816x/Kconfig"
 source "board/timll/devkit3250/Kconfig"
 source "board/toradex/colibri_pxa270/Kconfig"
 source "board/toradex/colibri_vf/Kconfig"
-source "board/tqc/tqma6/Kconfig"
 source "board/trizepsiv/Kconfig"
 source "board/ttcontrol/vision2/Kconfig"
 source "board/udoo/Kconfig"
index 1282be3418c332a2ab166e0d9bd52ec11ac8008c..10908c4c4a295d1b2da47422aaa5056a6887abb0 100644 (file)
@@ -33,11 +33,16 @@ config TARGET_SECOMX6
        bool "Support secomx6 boards"
        select CPU_V7
 
+config TARGET_TQMA6
+       bool "TQ Systems TQMa6 board"
+       select CPU_V7
+
 endchoice
 
 config SYS_SOC
        default "mx6"
 
 source "board/seco/Kconfig"
+source "board/tqc/tqma6/Kconfig"
 
 endif
index b21bd03a8aac99a50bbdf9b2be6f3b2fda4b9d60..29de6243dc98fb05eeddc7fde4772e08a94fa6a2 100644 (file)
@@ -62,6 +62,7 @@ u32 get_cpu_rev(void)
        struct anatop_regs *anatop = (struct anatop_regs *)ANATOP_BASE_ADDR;
        u32 reg = readl(&anatop->digprog_sololite);
        u32 type = ((reg >> 16) & 0xff);
+       u32 major;
 
        if (type != MXC_CPU_MX6SL) {
                reg = readl(&anatop->digprog);
@@ -79,8 +80,9 @@ u32 get_cpu_rev(void)
                }
 
        }
+       major = ((reg >> 8) & 0xff);
        reg &= 0xff;            /* mx6 silicon revision */
-       return (type << 12) | (reg + 0x10);
+       return (type << 12) | (reg + (0x10 * (major + 1)));
 }
 
 /*
index 5ed0f45a26614159328928fbdeac84f692f54d71..1c7e6f01f9414c09bac40a5a4d81381d98bae4c5 100644 (file)
  *
  * Startup Code (reset vector)
  *
- * do important init only if we don't start from memory!
- * setup Memory and board specific bits prior to relocation.
- * relocate armboot to ram
- * setup stack
+ * Do important init only if we don't start from memory!
+ * Setup memory and board specific bits prior to relocation.
+ * Relocate armboot to ram. Setup stack.
  *
  *************************************************************************/
 
index 03443629bcd10fda335c75be2c19e1fc1ac43575..5f39aa07cfb03dc66c35cc8b973f14ee49aeeda1 100644 (file)
@@ -45,11 +45,11 @@ static int gpio_init(void)
        sunxi_gpio_set_cfgpin(SUNXI_GPB(23), SUNXI_GPIO_INPUT);
 #endif
 #if defined(CONFIG_MACH_SUN8I)
-       sunxi_gpio_set_cfgpin(SUNXI_GPF(2), SUN8I_GPF_UART0_TX);
-       sunxi_gpio_set_cfgpin(SUNXI_GPF(4), SUN8I_GPF_UART0_RX);
+       sunxi_gpio_set_cfgpin(SUNXI_GPF(2), SUN8I_GPF_UART0);
+       sunxi_gpio_set_cfgpin(SUNXI_GPF(4), SUN8I_GPF_UART0);
 #else
-       sunxi_gpio_set_cfgpin(SUNXI_GPF(2), SUNXI_GPF_UART0_TX);
-       sunxi_gpio_set_cfgpin(SUNXI_GPF(4), SUNXI_GPF_UART0_RX);
+       sunxi_gpio_set_cfgpin(SUNXI_GPF(2), SUNXI_GPF_UART0);
+       sunxi_gpio_set_cfgpin(SUNXI_GPF(4), SUNXI_GPF_UART0);
 #endif
        sunxi_gpio_set_pull(SUNXI_GPF(4), 1);
 #elif CONFIG_CONS_INDEX == 1 && (defined(CONFIG_MACH_SUN4I) || defined(CONFIG_MACH_SUN7I))
@@ -64,6 +64,10 @@ static int gpio_init(void)
        sunxi_gpio_set_cfgpin(SUNXI_GPH(20), SUN6I_GPH_UART0);
        sunxi_gpio_set_cfgpin(SUNXI_GPH(21), SUN6I_GPH_UART0);
        sunxi_gpio_set_pull(SUNXI_GPH(21), SUNXI_GPIO_PULL_UP);
+#elif CONFIG_CONS_INDEX == 1 && defined(CONFIG_MACH_SUN8I_A33)
+       sunxi_gpio_set_cfgpin(SUNXI_GPB(0), SUN8I_A33_GPB_UART0);
+       sunxi_gpio_set_cfgpin(SUNXI_GPB(1), SUN8I_A33_GPB_UART0);
+       sunxi_gpio_set_pull(SUNXI_GPB(1), SUNXI_GPIO_PULL_UP);
 #elif CONFIG_CONS_INDEX == 1 && defined(CONFIG_MACH_SUN9I)
        sunxi_gpio_set_cfgpin(SUNXI_GPH(12), SUN9I_GPH_UART0);
        sunxi_gpio_set_cfgpin(SUNXI_GPH(13), SUN9I_GPH_UART0);
index f115a9cac41ecaa66260f5111f48a771b92d139e..6fd11f1529833f3e484a4b3d6bd488d28c7981b0 100644 (file)
@@ -60,11 +60,12 @@ int rsb_init(void)
        struct sunxi_rsb_reg * const rsb =
                (struct sunxi_rsb_reg *)SUNXI_RSB_BASE;
 
-       rsb_cfg_io();
-
        /* Enable RSB and PIO clk, and de-assert their resets */
        prcm_apb0_enable(PRCM_APB0_GATE_PIO | PRCM_APB0_GATE_RSB);
 
+       /* Setup external pins */
+       rsb_cfg_io();
+
        writel(RSB_CTRL_SOFT_RST, &rsb->ctrl);
        rsb_set_clk();
 
index 9c735c672abce4087c7db6052590e6a75529ef5f..19e1de67a0bc2961a05c161ff42a6b5fd72a91d0 100644 (file)
@@ -128,7 +128,8 @@ dtb-$(CONFIG_MACH_SUN8I_A23) += \
 dtb-$(CONFIG_MACH_SUN8I_A33) += \
        sun8i-a33-et-q8-v1.6.dtb \
        sun8i-a33-ga10h-v1.1.dtb \
-       sun8i-a33-ippo-q8h-v1.2-lcd1024x600.dtb
+       sun8i-a33-ippo-q8h-v1.2.dtb \
+       sun8i-a33-sinlinx-sina33.dtb
 dtb-$(CONFIG_MACH_SUN9I) += \
        sun9i-a80-optimus.dtb \
        sun9i-a80-cubieboard4.dtb
index faea94e45eeb4761ba06d15b9eb5901ca359b147..7abd0ae3143d74e1f9ba9b2638fc55353a306d7c 100644 (file)
                                allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
                        };
 
+                       mmc2_8bit_pins: mmc2_8bit {
+                               allwinner,pins = "PC5", "PC6", "PC8",
+                                                "PC9", "PC10", "PC11",
+                                                "PC12", "PC13", "PC14",
+                                                "PC15";
+                               allwinner,function = "mmc2";
+                               allwinner,drive = <SUN4I_PINCTRL_30_MA>;
+                               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+                       };
+
                        i2c0_pins_a: i2c0@0 {
                                allwinner,pins = "PH2", "PH3";
                                allwinner,function = "i2c0";
diff --git a/arch/arm/dts/sun8i-a33-ippo-q8h-v1.2-lcd1024x600.dts b/arch/arm/dts/sun8i-a33-ippo-q8h-v1.2-lcd1024x600.dts
deleted file mode 100644 (file)
index 9777149..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2015 Hans de Goede <hdegoede@redhat.com>
- *
- * Minimal dts file for the Ippo Q8H V1.2 (A33, 1024x600) for u-boot only
- *
- * SPDX-License-Identifier:     GPL-2.0+ or X11
- */
-
-/dts-v1/;
-#include "sun8i-a33.dtsi"
-
-/ {
-       model = "Ippo Q8H V1.2 (A33, 1024x600)";
-       compatible = "ippo,q8h-v1.2-a33-lcd1024x600", "allwinner,sun8i-a23";
-
-       aliases {
-               serial0 = &r_uart;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-};
-
-&r_uart {
-       pinctrl-names = "default";
-       pinctrl-0 = <&r_uart_pins_a>;
-       status = "okay";
-};
diff --git a/arch/arm/dts/sun8i-a33-ippo-q8h-v1.2.dts b/arch/arm/dts/sun8i-a33-ippo-q8h-v1.2.dts
new file mode 100644 (file)
index 0000000..9777149
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2015 Hans de Goede <hdegoede@redhat.com>
+ *
+ * Minimal dts file for the Ippo Q8H V1.2 (A33, 1024x600) for u-boot only
+ *
+ * SPDX-License-Identifier:     GPL-2.0+ or X11
+ */
+
+/dts-v1/;
+#include "sun8i-a33.dtsi"
+
+/ {
+       model = "Ippo Q8H V1.2 (A33, 1024x600)";
+       compatible = "ippo,q8h-v1.2-a33-lcd1024x600", "allwinner,sun8i-a23";
+
+       aliases {
+               serial0 = &r_uart;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&r_uart {
+       pinctrl-names = "default";
+       pinctrl-0 = <&r_uart_pins_a>;
+       status = "okay";
+};
diff --git a/arch/arm/dts/sun8i-a33-sinlinx-sina33.dts b/arch/arm/dts/sun8i-a33-sinlinx-sina33.dts
new file mode 100644 (file)
index 0000000..5788c29
--- /dev/null
@@ -0,0 +1,129 @@
+/*
+ * Copyright 2015 Chen-Yu Tsai
+ *
+ * Chen-Yu Tsai <wens@csie.org>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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 file 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.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "sun8i-a33.dtsi"
+#include "sunxi-common-regulators.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/pinctrl/sun4i-a10.h>
+
+/ {
+       model = "Sinlinx SinA33";
+       compatible = "sinlinx,sina33", "allwinner,sun8i-a33";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&lradc {
+       vref-supply = <&reg_vcc3v0>;
+       status = "okay";
+
+       button@200 {
+               label = "Volume Up";
+               linux,code = <KEY_VOLUMEUP>;
+               channel = <0>;
+               voltage = <191011>;
+       };
+
+       button@400 {
+               label = "Volume Down";
+               linux,code = <KEY_VOLUMEDOWN>;
+               channel = <0>;
+               voltage = <391304>;
+       };
+
+       button@600 {
+               label = "Home";
+               linux,code = <KEY_HOME>;
+               channel = <0>;
+               voltage = <600000>;
+       };
+};
+
+&mmc0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_sina33>;
+       vmmc-supply = <&reg_vcc3v0>;
+       bus-width = <4>;
+       cd-gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */
+       cd-inverted;
+       status = "okay";
+};
+
+&mmc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc2_8bit_pins>;
+       vmmc-supply = <&reg_vcc3v0>;
+       bus-width = <8>;
+       non-removable;
+       status = "okay";
+};
+
+&mmc2_8bit_pins {
+       /* eMMC is missing pull-ups */
+       allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+};
+
+&pio {
+       mmc0_cd_pin_sina33: mmc0_cd_pin@0 {
+               allwinner,pins = "PB4";
+               allwinner,function = "gpio_in";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+       };
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_pins_b>;
+       status = "okay";
+};
index 9b43bc6e7926bed16f0c2f933c1f055864cff2c9..85ee08098b7b1dcbd684d3311caa56c74e16103c 100644 (file)
        compatible = "allwinner,sun8i-a33-pinctrl";
        interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
+
+       uart0_pins_b: uart0@1 {
+               allwinner,pins = "PB0", "PB1";
+               allwinner,function = "uart0";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+       };
+
 };
index e522990453915878695b0ee6b792c55adf3cf097..c12556addfce268d75077e0cdc4709bcc8f44dfe 100644 (file)
@@ -44,8 +44,8 @@ static inline int gpt_has_clk_source_osc(void)
 {
 #if defined(CONFIG_MX6)
        if (((is_cpu_type(MXC_CPU_MX6Q) || is_cpu_type(MXC_CPU_MX6D)) &&
-            (is_soc_rev(CHIP_REV_1_0) > 0)) || is_cpu_type(MXC_CPU_MX6DL) ||
-             is_cpu_type(MXC_CPU_MX6SOLO) || is_cpu_type(MXC_CPU_MX6SX))
+           (soc_rev() > CHIP_REV_1_0)) || is_cpu_type(MXC_CPU_MX6DL) ||
+            is_cpu_type(MXC_CPU_MX6SOLO) || is_cpu_type(MXC_CPU_MX6SX))
                return 1;
 
        return 0;
index f059d0f664b35b4f5630347cdffeb60c56194efb..5f0e1e63467589b56a2360dc4c2ced246591b6f0 100644 (file)
@@ -9,6 +9,8 @@
 
 #define ARCH_MXC
 
+#define CONFIG_SYS_CACHELINE_SIZE 64
+
 #if defined(CONFIG_MX51)
 #define IRAM_BASE_ADDR         0x1FFE0000      /* internal ram */
 #define IPU_SOC_BASE_ADDR      0x40000000
index 0d38d450daa8a37d80dfa9490e5dd948797c7f4c..35a324cd532f0011a646b1b2b6c07dc516c5fa1b 100644 (file)
 #define CHIP_REV_1_0                 0x10
 #define CHIP_REV_1_2                 0x12
 #define CHIP_REV_1_5                 0x15
+#define CHIP_REV_2_0                 0x20
 #ifndef CONFIG_MX6SX
 #define IRAM_SIZE                    0x00040000
 #else
index c5832912b4221f21ce9e958d15040a2dc9490f5a..28c77a498ea86caa3a0c003fe2f34e13f05e3aa5 100644 (file)
@@ -12,7 +12,7 @@
 #include "../arch-imx/cpu.h"
 
 #define soc_rev() (get_cpu_rev() & 0xFF)
-#define is_soc_rev(rev)        (soc_rev() - rev)
+#define is_soc_rev(rev) (soc_rev() == rev)
 
 u32 get_nr_cpus(void);
 u32 get_cpu_rev(void);
@@ -20,7 +20,7 @@ u32 get_cpu_speed_grade_hz(void);
 u32 get_cpu_temp_grade(int *minc, int *maxc);
 
 /* returns MXC_CPU_ value */
-#define cpu_type(rev) (((rev) >> 12)&0xff)
+#define cpu_type(rev) (((rev) >> 12) & 0xff)
 
 /* both macros return/take MXC_CPU_ constants */
 #define get_cpu_type() (cpu_type(get_cpu_rev()))
@@ -30,6 +30,10 @@ const char *get_imx_type(u32 imxtype);
 unsigned imx_ddr_size(void);
 void set_chipselect_size(int const);
 
+#define is_mx6dqp() ((is_cpu_type(MXC_CPU_MX6Q) || \
+                    is_cpu_type(MXC_CPU_MX6D)) && \
+                    (soc_rev() >= CHIP_REV_2_0))
+
 /*
  * Initializes on-chip ethernet controllers.
  * to override, implement board_eth_init()
index 496295d35735ebc2ca468ff184a79a4c3c8fb70f..8e67b3bcb87d0fe411fb95588fe85e1fbcd22f27 100644 (file)
@@ -156,6 +156,7 @@ enum sunxi_gpio_number {
 #define SUN4I_GPB_UART0                2
 #define SUN5I_GPB_UART0                2
 #define SUN8I_GPB_UART2                2
+#define SUN8I_A33_GPB_UART0    3
 
 #define SUNXI_GPC_SDC2         3
 #define SUN6I_GPC_SDC3         4
index ae4c21bf36a8529d8feaf803cbfd48402b28ecdd..43cc49468382301da46fb98520bd0eedf0ff4628 100644 (file)
@@ -49,8 +49,4 @@ typedef struct bd_info {
 #define IH_ARCH_DEFAULT IH_ARCH_ARM64
 #endif
 
-#if defined(CONFIG_USE_PRIVATE_LIBGCC) && defined(CONFIG_SYS_THUMB_BUILD)
-#error Thumb build does not work with private libgcc.
-#endif
-
 #endif /* _U_BOOT_H_ */
index 2c26f84ac701cd62d347e1c37593dd16faae6d55..9c34c212cb0ee2f663bf87dc7ed729914fc640dd 100644 (file)
@@ -4,6 +4,8 @@
  * SPDX-License-Identifier:    GPL-2.0+
  */
 
+#include <linux/linkage.h>
+
 #ifdef __ARMEB__
 #define al r1
 #define ah r0
@@ -13,9 +15,8 @@
 #endif
 
 .globl __ashldi3
-.globl __aeabi_llsl
 __ashldi3:
-__aeabi_llsl:
+ENTRY(__aeabi_llsl)
 
        subs    r3, r2, #32
        rsb     ip, r2, #32
@@ -24,3 +25,4 @@ __aeabi_llsl:
        orrmi   ah, ah, al, lsr ip
        mov     al, al, lsl r2
        mov     pc, lr
+ENDPROC(__aeabi_llsl)
index 4d93c8a5e6c09069774d9deaf9d55f830e09c0c5..c74fd6449933f804db83a821394ae074cf6394ce 100644 (file)
@@ -4,6 +4,8 @@
  * SPDX-License-Identifier:    GPL-2.0+
  */
 
+#include <linux/linkage.h>
+
 #ifdef __ARMEB__
 #define al r1
 #define ah r0
@@ -13,9 +15,8 @@
 #endif
 
 .globl __ashrdi3
-.globl __aeabi_lasr
 __ashrdi3:
-__aeabi_lasr:
+ENTRY(__aeabi_lasr)
 
        subs    r3, r2, #32
        rsb     ip, r2, #32
@@ -24,3 +25,4 @@ __aeabi_lasr:
        orrmi   al, al, ah, lsl ip
        mov     ah, ah, asr r2
        mov     pc, lr
+ENDPROC(__aeabi_lasr)
index 601549304e00d177b02ec9c491a1deb9dd0c5893..c463c68f85e8b9e974d908dfec1b379aa68c5bb5 100644 (file)
@@ -1,3 +1,5 @@
+#include <linux/linkage.h>
+
 .macro ARM_DIV_BODY dividend, divisor, result, curbit
 
 #if __LINUX_ARM_ARCH__ >= 5
@@ -95,9 +97,8 @@
 
        .align  5
 .globl __divsi3
-.globl __aeabi_idiv
 __divsi3:
-__aeabi_idiv:
+ENTRY(__aeabi_idiv)
        cmp     r1, #0
        eor     ip, r0, r1                      @ save the sign of the result.
        beq     Ldiv0
@@ -139,3 +140,4 @@ Ldiv0:
        bl      __div0
        mov     r0, #0                  @ About as wrong as it could be.
        ldr     pc, [sp], #4
+ENDPROC(__aeabi_idiv)
index 33296a0a93e4036fcebca5623fd197c34ea9015f..1f9b91646494220efbfde3d1dc1939867cde0845 100644 (file)
@@ -4,6 +4,8 @@
  * SPDX-License-Identifier:    GPL-2.0+
  */
 
+#include <linux/linkage.h>
+
 #ifdef __ARMEB__
 #define al r1
 #define ah r0
@@ -13,9 +15,8 @@
 #endif
 
 .globl __lshrdi3
-.globl __aeabi_llsr
 __lshrdi3:
-__aeabi_llsr:
+ENTRY(__aeabi_llsr)
 
        subs    r3, r2, #32
        rsb     ip, r2, #32
@@ -24,3 +25,4 @@ __aeabi_llsr:
        orrmi   al, al, ah, lsl ip
        mov     ah, ah, lsr r2
        mov     pc, lr
+ENDPROC(__aeabi_llsr)
index 3d31a559f84e36be442729b5e49ab5b64324ef28..c5e1c229dfb25c3d4b676c94bb727fe8a7705415 100644 (file)
@@ -1,3 +1,5 @@
+#include <linux/linkage.h>
+
 .macro ARM_MOD_BODY dividend, divisor, order, spare
 
 #if __LINUX_ARM_ARCH__ >= 5
@@ -69,8 +71,7 @@
 .endm
 
        .align  5
-.globl __modsi3
-__modsi3:
+ENTRY(__modsi3)
        cmp     r1, #0
        beq     Ldiv0
        rsbmi   r1, r1, #0                      @ loops below use unsigned.
@@ -88,7 +89,7 @@ __modsi3:
 10:    cmp     ip, #0
        rsbmi   r0, r0, #0
        mov     pc, lr
-
+ENDPROC(__modsi3)
 
 Ldiv0:
 
index 13098026104734f83075727b1a197f145ffb15d9..3b653bed99d10964828cf686b48380e9b560b779 100644 (file)
@@ -1,3 +1,5 @@
+#include <linux/linkage.h>
+
 /* # 1 "libgcc1.S" */
 @ libgcc1 routines for ARM cpu.
 @ Division routines, written by Richard Earnshaw, (rearnsha@armltd.co.uk)
@@ -72,8 +74,7 @@ Ldiv0:
        ldmia   sp!, {pc}
        .size  __udivsi3       , . -  __udivsi3
 
-.globl __aeabi_uidivmod
-__aeabi_uidivmod:
+ENTRY(__aeabi_uidivmod)
 
        stmfd   sp!, {r0, r1, ip, lr}
        bl      __aeabi_uidiv
@@ -81,9 +82,9 @@ __aeabi_uidivmod:
        mul     r3, r0, r2
        sub     r1, r1, r3
        mov     pc, lr
+ENDPROC(__aeabi_uidivmod)
 
-.globl __aeabi_idivmod
-__aeabi_idivmod:
+ENTRY(__aeabi_idivmod)
 
        stmfd   sp!, {r0, r1, ip, lr}
        bl      __aeabi_idiv
@@ -91,3 +92,4 @@ __aeabi_idivmod:
        mul     r3, r0, r2
        sub     r1, r1, r3
        mov     pc, lr
+ENDPROC(__aeabi_idivmod)
index 8465ef09d237a991426376035ba01184670cc043..b1667376c58a2bdcae9a5ac093320c7c33a104dd 100644 (file)
@@ -1,3 +1,5 @@
+#include <linux/linkage.h>
+
 /* # 1 "libgcc1.S" */
 @ libgcc1 routines for ARM cpu.
 @ Division routines, written by Richard Earnshaw, (rearnsha@armltd.co.uk)
@@ -11,10 +13,9 @@ curbit               .req    r3
 /* lr          .req    r14     */
 /* pc          .req    r15     */
        .text
-       .globl   __umodsi3
        .type  __umodsi3       ,function
        .align 0
- __umodsi3      :
+ ENTRY(__umodsi3)
        cmp     divisor, #0
        beq     Ldiv0
        mov     curbit, #1
@@ -86,3 +87,4 @@ Ldiv0:
 /* # 456 "libgcc1.S" */
 /* # 500 "libgcc1.S" */
 /* # 580 "libgcc1.S" */
+ENDPROC(__umodsi3)
diff --git a/board/quipos/cairo/MAINTAINERS b/board/quipos/cairo/MAINTAINERS
new file mode 100644 (file)
index 0000000..01332da
--- /dev/null
@@ -0,0 +1,6 @@
+CAIRO BOARD
+M:     Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>
+S:     Maintained
+F:     board/quipos/cairo/
+F:     include/configs/omap3_cairo.h
+F:     configs/cairo_defconfig
index d15c726a01e9b31a97c962084da20dd27f9c832e..9b1ecf0457d49d3cdeac07102a8ba3256282cdc8 100644 (file)
@@ -536,7 +536,7 @@ static const struct mx6_mmdc_calibration mx6dl_1g_mmcd_calib = {
        .p0_mpdgctrl0 =    0x023C0224,
        .p0_mpdgctrl1 =    0x02000220,
        .p1_mpdgctrl0 =    0x02200220,
-       .p1_mpdgctrl1 =    0x02000220,
+       .p1_mpdgctrl1 =    0x02040208,
        .p0_mprddlctl =    0x44444846,
        .p1_mprddlctl =    0x4042463C,
        .p0_mpwrdlctl =    0x32343032,
@@ -627,7 +627,7 @@ static void spl_dram_init(int width)
        else if (is_cpu_type(MXC_CPU_MX6Q))
                mx6_dram_cfg(&sysinfo, &mx6q_2g_mmcd_calib, &mem_ddr_4g);
        else if (is_cpu_type(MXC_CPU_MX6DL))
-               mx6_dram_cfg(&sysinfo, &mx6q_1g_mmcd_calib, &mem_ddr_2g);
+               mx6_dram_cfg(&sysinfo, &mx6dl_1g_mmcd_calib, &mem_ddr_2g);
        else if (is_cpu_type(MXC_CPU_MX6SOLO))
                mx6_dram_cfg(&sysinfo, &mx6dl_512m_mmcd_calib, &mem_ddr_2g);
 }
index 7a420555593e88debceaa368d31a5e2d12a3b3b0..1f12a646e48a95f36bfc81e0cafd68370908b348 100644 (file)
@@ -162,6 +162,12 @@ M: Siarhei Siamashka <siarhei.siamashka@gmail.com>
 S:     Maintained
 F:     configs/MSI_Primo81_defconfig
 
+SINLINX SINA33 BOARD
+M:     Chen-Yu Tsai <wens@csie.org>
+S:     Maintained
+F:     configs/Sinlinx_SinA33_defconfig
+W:     http://linux-sunxi.org/Sinlinx_SinA33
+
 TZX-Q8-713B7 BOARD
 M:     Paul Kocialkowski <contact@paulk.fr>
 S:     Maintained
index d375278bed36a82da5330e0e0b2f3c8064e8ec7c..3d40b171d20f1caa50a7a91e439726359936a86c 100644 (file)
@@ -5,3 +5,5 @@ F:      board/ti/am43xx/
 F:     include/configs/am43xx_evm.h
 F:     configs/am43xx_evm_defconfig
 F:     configs/am43xx_evm_qspiboot_defconfig
+F:     configs/am43xx_evm_ethboot_defconfig
+F:     configs/am43xx_evm_usbhost_boot_defconfig
index c9301a51c0ac64eb873aa2d24d59e4a3fdb10758..5145301586cc27780aa013ea332741484441efd7 100644 (file)
@@ -156,30 +156,31 @@ const struct pad_conf_entry early_padconf[] = {
 
 #ifdef CONFIG_IODELAY_RECALIBRATION
 const struct iodelay_cfg_entry iodelay_cfg_array[] = {
-       {0x6F0, 480, 0}, /* RGMMI0_RXC_IN */
-       {0x6FC, 111, 1641}, /* RGMMI0_RXCTL_IN */
-       {0x708, 272, 1116}, /* RGMMI0_RXD0_IN */
-       {0x714, 243, 1260}, /* RGMMI0_RXD1_IN */
-       {0x720, 0, 1614}, /* RGMMI0_RXD2_IN */
-       {0x72C, 105, 1673}, /* RGMMI0_RXD3_IN */
-       {0x740, 531, 120}, /* RGMMI0_TXC_OUT */
-       {0x74C, 11, 60}, /* RGMMI0_TXCTL_OUT */
-       {0x758, 7, 120}, /* RGMMI0_TXD0_OUT */
-       {0x764, 0, 0}, /* RGMMI0_TXD1_OUT */
-       {0x770, 276, 120}, /* RGMMI0_TXD2_OUT */
-       {0x77C, 440, 120}, /* RGMMI0_TXD3_OUT */
-       {0xAB0, 702, 0}, /* CFG_VIN2A_D18_IN */
-       {0xABC, 136, 976}, /* CFG_VIN2A_D19_IN */
-       {0xAD4, 210, 1357}, /* CFG_VIN2A_D20_IN */
-       {0xAE0, 189, 1462}, /* CFG_VIN2A_D21_IN */
-       {0xAEC, 232, 1278}, /* CFG_VIN2A_D22_IN */
-       {0xAF8, 0, 1397}, /* CFG_VIN2A_D23_IN */
-       {0xA70, 1551, 115}, /* CFG_VIN2A_D12_OUT */
-       {0xA7C, 816, 0}, /* CFG_VIN2A_D13_OUT */
-       {0xA88, 876, 0}, /* CFG_VIN2A_D14_OUT */
-       {0xA94, 312, 0}, /* CFG_VIN2A_D15_OUT */
-       {0xAA0, 58, 0}, /* CFG_VIN2A_D16_OUT */
-       {0xAAC, 0, 0}, /* CFG_VIN2A_D17_OUT */
+       {0x6F0, 359, 0}, /* RGMMI0_RXC_IN */
+       {0x6FC, 129, 1896}, /* RGMMI0_RXCTL_IN */
+       {0x708, 80, 1391}, /* RGMMI0_RXD0_IN */
+       {0x714, 196, 1522}, /* RGMMI0_RXD1_IN */
+       {0x720, 40, 1860}, /* RGMMI0_RXD2_IN */
+       {0x72C, 0, 1956}, /* RGMMI0_RXD3_IN */
+       {0x740, 0, 220}, /* RGMMI0_TXC_OUT */
+       {0x74C, 1820, 180}, /* RGMMI0_TXCTL_OUT */
+       {0x758, 1740, 440}, /* RGMMI0_TXD0_OUT */
+       {0x764, 1740, 240}, /* RGMMI0_TXD1_OUT */
+       {0x770, 1680, 380}, /* RGMMI0_TXD2_OUT */
+       {0x77C, 1740, 440}, /* RGMMI0_TXD3_OUT */
+       /* These values are for using RGMII1 configuration on VIN2a_x pins. */
+       {0xAB0, 596, 0}, /* CFG_VIN2A_D18_IN */
+       {0xABC, 314, 980}, /* CFG_VIN2A_D19_IN */
+       {0xAD4, 241, 1536}, /* CFG_VIN2A_D20_IN */
+       {0xAE0, 103, 1689}, /* CFG_VIN2A_D21_IN */
+       {0xAEC, 161, 1563}, /* CFG_VIN2A_D22_IN */
+       {0xAF8, 0, 1613}, /* CFG_VIN2A_D23_IN */
+       {0xA70, 0, 200}, /* CFG_VIN2A_D12_OUT */
+       {0xA7C, 1560, 140}, /* CFG_VIN2A_D13_OUT */
+       {0xA88, 1700, 0}, /* CFG_VIN2A_D14_OUT */
+       {0xA94, 1260, 0}, /* CFG_VIN2A_D15_OUT */
+       {0xAA0, 1400, 0}, /* CFG_VIN2A_D16_OUT */
+       {0xAAC, 1290, 0}, /* CFG_VIN2A_D17_OUT */
 };
 #endif
 
index f8b3d1fd404b70ff1f3b5706820ab941747aae83..b56237d1875a77e4cd3fce668b0375a0fe790d34 100644 (file)
@@ -12,4 +12,62 @@ config SYS_SOC
 config SYS_CONFIG_NAME
        default "tqma6"
 
+choice
+       prompt "TQMa6 SoC variant"
+       default TQMA6Q
+       help
+         select the TQMa6 module variant. The variants differing in the used
+         i.MX6 CPU type and DRAM
+
+config TQMA6Q
+       bool "TQMa6Q / TQMa6D"
+       select MX6Q
+       help
+         select TQMa6Q / TQMa6D with i.MX6Q/D and 1GiB DRAM
+
+config TQMA6S
+       bool "TQMa6S"
+       select MX6S
+       help
+         select TQMa6S with i.MX6S and 512 MiB DRAM
+
+endchoice
+
+choice
+       prompt "TQMa6 boot configuration"
+       default TQMA6X_MMC_BOOT
+       help
+         Configure boot device. This is also used to implement environment
+         location.
+
+config TQMA6X_MMC_BOOT
+       bool "MMC / SD Boot"
+       help
+         Boot from eMMC / SD Card
+
+config TQMA6X_SPI_BOOT
+       bool "SPI NOR Boot"
+       help
+         Boot from on board SPI NOR flash
+
+endchoice
+
+choice
+       prompt "TQMa6 base board variant"
+       default MBA6
+       help
+         Select base board for TQMa6
+
+config MBA6
+       bool "TQMa6 on MBa6 Starterkit"
+       help
+         Select the MBa6 starterkit. This features a GigE Phy, USB, SD-Card
+         etc.
+
+endchoice
+
+config IMX_CONFIG
+       default "board/tqc/tqma6/tqma6q.cfg" if TQMA6Q
+       default "board/tqc/tqma6/tqma6s.cfg" if TQMA6S
+
 endif
diff --git a/board/vscom/baltos/MAINTAINERS b/board/vscom/baltos/MAINTAINERS
new file mode 100644 (file)
index 0000000..e82acfe
--- /dev/null
@@ -0,0 +1,6 @@
+BALTOS BOARD
+M:     Yegor Yefremov <yegorslists@googlemail.com>
+S:     Maintained
+F:     board/vscom/baltos/
+F:     include/configs/baltos.h
+F:     configs/am335x_baltos_defconfig
index 63910c2b18133b253ba0420298e2699b0f4b0554..8e26f375984e2da7233ed72bc6a299a3144bfe83 100644 (file)
@@ -12,7 +12,7 @@ CONFIG_VIDEO_LCD_POWER="PH7"
 CONFIG_VIDEO_LCD_BL_EN="PH6"
 CONFIG_VIDEO_LCD_BL_PWM="PH0"
 CONFIG_USB_MUSB_SUNXI=y
-CONFIG_DEFAULT_DEVICE_TREE="sun8i-a33-ippo-q8h-v1.2-lcd1024x600"
+CONFIG_DEFAULT_DEVICE_TREE="sun8i-a33-ippo-q8h-v1.2"
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
 CONFIG_SPL=y
 CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=5"
diff --git a/configs/Sinlinx_SinA33_defconfig b/configs/Sinlinx_SinA33_defconfig
new file mode 100644 (file)
index 0000000..e9e62da
--- /dev/null
@@ -0,0 +1,16 @@
+CONFIG_ARM=y
+CONFIG_ARCH_SUNXI=y
+CONFIG_MACH_SUN8I_A33=y
+CONFIG_DRAM_CLK=552
+CONFIG_DRAM_ZQ=15291
+CONFIG_DEFAULT_DEVICE_TREE="sun8i-a33-sinlinx-sina33"
+# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
+CONFIG_SPL=y
+# CONFIG_CMD_IMLS is not set
+# CONFIG_CMD_FLASH is not set
+# CONFIG_CMD_FPGA is not set
+CONFIG_DM_ETH=y
+CONFIG_DM_SERIAL=y
+CONFIG_AXP221_ALDO1_VOLT=3000
+CONFIG_USB=y
+CONFIG_DM_USB=y
index bb1402659797dcb79927219c3e46ef30859fcde6..f0e5106e8c14f5f4bbb0bbe3a632daf282265741 100644 (file)
@@ -3,3 +3,5 @@ CONFIG_TARGET_TBS2910=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/boundary/nitrogen6x/nitrogen6q2g.cfg,MX6Q"
 # CONFIG_CMD_IMLS is not set
 # CONFIG_CMD_FLASH is not set
+CONFIG_DM=y
+CONFIG_DM_THERMAL=y
index ceb3386ac5164d09347f8b902d90a56b450b1c97..c590354aa84d795b7e76e82df053eb59775577b2 100644 (file)
@@ -1,6 +1,6 @@
 CONFIG_ARM=y
+CONFIG_ARCH_MX6=y
 CONFIG_TARGET_TQMA6=y
-CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/tqc/tqma6/tqma6q.cfg,MX6Q,MBA6,TQMA6X_MMC_BOOT"
 # CONFIG_CMD_IMLS is not set
 # CONFIG_CMD_FLASH is not set
 CONFIG_SPI_FLASH=y
index e413ef4b1017367a81df3edd8f8e6392b62422cd..7de3f995287e9a4882f8bd2391d40d3ce20d9d1f 100644 (file)
@@ -1,6 +1,7 @@
 CONFIG_ARM=y
+CONFIG_ARCH_MX6=y
 CONFIG_TARGET_TQMA6=y
-CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/tqc/tqma6/tqma6q.cfg,MX6Q,MBA6,TQMA6X_SPI_BOOT"
+CONFIG_TQMA6X_SPI_BOOT=y
 # CONFIG_CMD_IMLS is not set
 # CONFIG_CMD_FLASH is not set
 CONFIG_SPI_FLASH=y
index 6c37b4f0b1ac4df4b61db50a688d8a10e5996d69..7bf15d174e1feb3041eb279aa470e641379f7696 100644 (file)
@@ -1,6 +1,7 @@
 CONFIG_ARM=y
+CONFIG_ARCH_MX6=y
 CONFIG_TARGET_TQMA6=y
-CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/tqc/tqma6/tqma6s.cfg,MX6S,MBA6,TQMA6X_MMC_BOOT"
+CONFIG_TQMA6S=y
 # CONFIG_CMD_IMLS is not set
 # CONFIG_CMD_FLASH is not set
 CONFIG_SPI_FLASH=y
index af7853ff86ae572cff415ec753a7e72fcb3c4eb8..ff38d0b914a8a0d11c05f8493f4697d530671f22 100644 (file)
@@ -1,6 +1,8 @@
 CONFIG_ARM=y
+CONFIG_ARCH_MX6=y
 CONFIG_TARGET_TQMA6=y
-CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/tqc/tqma6/tqma6s.cfg,MX6S,MBA6,TQMA6X_SPI_BOOT"
+CONFIG_TQMA6S=y
+CONFIG_TQMA6X_SPI_BOOT=y
 # CONFIG_CMD_IMLS is not set
 # CONFIG_CMD_FLASH is not set
 CONFIG_SPI_FLASH=y
index 96b312592b9fa8b92fbeb50b14862dc9d9e65ea9..8a9826e6ebf1c66a17a899e3d3fd5cee54ba9542 100644 (file)
@@ -37,7 +37,7 @@
 
 #define LPC32XX_GPIOS 128
 
-struct lpc32xx_gpio_platdata {
+struct lpc32xx_gpio_priv {
        struct gpio_regs *regs;
        /* GPIO FUNCTION: SEE WARNING #2 */
        signed char function[LPC32XX_GPIOS];
@@ -60,8 +60,8 @@ struct lpc32xx_gpio_platdata {
 static int lpc32xx_gpio_direction_input(struct udevice *dev, unsigned offset)
 {
        int port, mask;
-       struct lpc32xx_gpio_platdata *gpio_platdata = dev_get_platdata(dev);
-       struct gpio_regs *regs = gpio_platdata->regs;
+       struct lpc32xx_gpio_priv *gpio_priv = dev_get_priv(dev);
+       struct gpio_regs *regs = gpio_priv->regs;
 
        port = GPIO_TO_PORT(offset);
        mask = GPIO_TO_MASK(offset);
@@ -83,7 +83,7 @@ static int lpc32xx_gpio_direction_input(struct udevice *dev, unsigned offset)
        }
 
        /* GPIO FUNCTION: SEE WARNING #2 */
-       gpio_platdata->function[offset] = GPIOF_INPUT;
+       gpio_priv->function[offset] = GPIOF_INPUT;
 
        return 0;
 }
@@ -95,8 +95,8 @@ static int lpc32xx_gpio_direction_input(struct udevice *dev, unsigned offset)
 static int lpc32xx_gpio_get_value(struct udevice *dev, unsigned offset)
 {
        int port, rank, mask, value;
-       struct lpc32xx_gpio_platdata *gpio_platdata = dev_get_platdata(dev);
-       struct gpio_regs *regs = gpio_platdata->regs;
+       struct lpc32xx_gpio_priv *gpio_priv = dev_get_priv(dev);
+       struct gpio_regs *regs = gpio_priv->regs;
 
        port = GPIO_TO_PORT(offset);
 
@@ -130,8 +130,8 @@ static int lpc32xx_gpio_get_value(struct udevice *dev, unsigned offset)
 static int gpio_set(struct udevice *dev, unsigned gpio)
 {
        int port, mask;
-       struct lpc32xx_gpio_platdata *gpio_platdata = dev_get_platdata(dev);
-       struct gpio_regs *regs = gpio_platdata->regs;
+       struct lpc32xx_gpio_priv *gpio_priv = dev_get_priv(dev);
+       struct gpio_regs *regs = gpio_priv->regs;
 
        port = GPIO_TO_PORT(gpio);
        mask = GPIO_TO_MASK(gpio);
@@ -162,8 +162,8 @@ static int gpio_set(struct udevice *dev, unsigned gpio)
 static int gpio_clr(struct udevice *dev, unsigned gpio)
 {
        int port, mask;
-       struct lpc32xx_gpio_platdata *gpio_platdata = dev_get_platdata(dev);
-       struct gpio_regs *regs = gpio_platdata->regs;
+       struct lpc32xx_gpio_priv *gpio_priv = dev_get_priv(dev);
+       struct gpio_regs *regs = gpio_priv->regs;
 
        port = GPIO_TO_PORT(gpio);
        mask = GPIO_TO_MASK(gpio);
@@ -208,8 +208,8 @@ static int lpc32xx_gpio_direction_output(struct udevice *dev, unsigned offset,
                                       int value)
 {
        int port, mask;
-       struct lpc32xx_gpio_platdata *gpio_platdata = dev_get_platdata(dev);
-       struct gpio_regs *regs = gpio_platdata->regs;
+       struct lpc32xx_gpio_priv *gpio_priv = dev_get_priv(dev);
+       struct gpio_regs *regs = gpio_priv->regs;
 
        port = GPIO_TO_PORT(offset);
        mask = GPIO_TO_MASK(offset);
@@ -231,7 +231,7 @@ static int lpc32xx_gpio_direction_output(struct udevice *dev, unsigned offset,
        }
 
        /* GPIO FUNCTION: SEE WARNING #2 */
-       gpio_platdata->function[offset] = GPIOF_OUTPUT;
+       gpio_priv->function[offset] = GPIOF_OUTPUT;
 
        return lpc32xx_gpio_set_value(dev, offset, value);
 }
@@ -251,8 +251,8 @@ static int lpc32xx_gpio_direction_output(struct udevice *dev, unsigned offset,
 
 static int lpc32xx_gpio_get_function(struct udevice *dev, unsigned offset)
 {
-       struct lpc32xx_gpio_platdata *gpio_platdata = dev_get_platdata(dev);
-       return gpio_platdata->function[offset];
+       struct lpc32xx_gpio_priv *gpio_priv = dev_get_priv(dev);
+       return gpio_priv->function[offset];
 }
 
 static const struct dm_gpio_ops gpio_lpc32xx_ops = {
@@ -265,7 +265,7 @@ static const struct dm_gpio_ops gpio_lpc32xx_ops = {
 
 static int lpc32xx_gpio_probe(struct udevice *dev)
 {
-       struct lpc32xx_gpio_platdata *gpio_platdata = dev_get_platdata(dev);
+       struct lpc32xx_gpio_priv *gpio_priv = dev_get_priv(dev);
        struct gpio_dev_priv *uc_priv = dev->uclass_priv;
 
        if (dev->of_offset == -1) {
@@ -274,12 +274,11 @@ static int lpc32xx_gpio_probe(struct udevice *dev)
        }
 
        /* set base address for GPIO registers */
-       gpio_platdata->regs = (struct gpio_regs *)GPIO_BASE;
+       gpio_priv->regs = (struct gpio_regs *)GPIO_BASE;
 
        /* all GPIO functions are unknown until requested */
        /* GPIO FUNCTION: SEE WARNING #2 */
-       memset(gpio_platdata->function, GPIOF_UNKNOWN,
-              sizeof(gpio_platdata->function));
+       memset(gpio_priv->function, GPIOF_UNKNOWN, sizeof(gpio_priv->function));
 
        return 0;
 }
@@ -289,5 +288,5 @@ U_BOOT_DRIVER(gpio_lpc32xx) = {
        .id     = UCLASS_GPIO,
        .ops    = &gpio_lpc32xx_ops,
        .probe  = lpc32xx_gpio_probe,
-       .priv_auto_alloc_size = sizeof(struct lpc32xx_gpio_platdata),
+       .priv_auto_alloc_size = sizeof(struct lpc32xx_gpio_priv),
 };
index ae51cf378162b0500edc2152a4b3db4a86604c8e..645ca6427cf41843f90a8fdcf3c941ae144e83c9 100644 (file)
@@ -243,6 +243,12 @@ static int _dw_eth_init(struct dw_eth_dev *priv, u8 *enetaddr)
                mdelay(100);
        };
 
+       /*
+        * Soft reset above clears HW address registers.
+        * So we have to set it here once again.
+        */
+       _dw_write_hwaddr(priv, enetaddr);
+
        rx_descs_init(priv);
        tx_descs_init(priv);
 
index e77773740fb02d46a1c2067ef86b5f07db62c770..df7eb05e82460e998be15e56734e8ff8ff83f5e3 100644 (file)
 #define status_dcc(x)  \
                __asm__ volatile ("mrc p14, 0, %0, c14, c0, 0\n" : "=r" (x))
 
+#elif defined(CONFIG_CPU_ARMV8)
+/*
+ * ARMV8
+ */
+#define DCC_RBIT       (1 << 30)
+#define DCC_WBIT       (1 << 29)
+
+#define write_dcc(x)   \
+               __asm__ volatile ("msr dbgdtrtx_el0, %0\n" : : "r" (x))
+
+#define read_dcc(x)    \
+               __asm__ volatile ("mrs %0, dbgdtrrx_el0\n" : "=r" (x))
+
+#define status_dcc(x)  \
+               __asm__ volatile ("mrs %0, mdccsr_el0\n" : "=r" (x))
+
 #else
 #define DCC_RBIT       (1 << 0)
 #define DCC_WBIT       (1 << 1)
index aff2810a051d9b0e582504ec0fc67e31e56f2000..f2f8e2ee4d0d25eed87e182a6eb8e75301df1424 100644 (file)
 #define CONFIG_SYS_PROMPT_HUSH_PS2     "> "
 #define CONFIG_SYS_PROMPT              "Colibri VFxx # "
 #undef CONFIG_AUTO_COMPLETE
-#define CONFIG_SYS_CBSIZE              256     /* Console I/O Buffer Size */
+#define CONFIG_SYS_CBSIZE              1024    /* Console I/O Buffer Size */
 #define CONFIG_SYS_PBSIZE              \
                        (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
 #define CONFIG_SYS_MAXARGS             16      /* max number of command args */
index 2ef3201de18cf3117cf8574d8347d5c6557e5734..86d7b1677750a584ce942a512b9bc0be50e9770b 100644 (file)
@@ -86,7 +86,7 @@
 #define CONFIG_CMD_FAT
 
 /* Miscellaneous configurable options */
-#define CONFIG_SYS_NO_FLASH
+#undef CONFIG_CMD_IMLS
 #define CONFIG_SYS_LONGHELP
 #define CONFIG_SYS_HUSH_PARSER
 #define CONFIG_CMDLINE_EDITING
index 3f99512bce8257239b4ab4b02d1161eb4caf8f30..3d5bba75d3845d76e358d98268b54786058bd70a 100644 (file)
                "fi; " \
        "else run netboot; fi"
 
-/* Miscellaneous configurable options */
-#define CONFIG_SYS_LONGHELP
-#define CONFIG_SYS_HUSH_PARSER
-#define CONFIG_AUTO_COMPLETE
-#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
-
-#define CONFIG_CMDLINE_EDITING
-
 /* Physical Memory Map */
 #define CONFIG_NR_DRAM_BANKS           1
 #define CONFIG_SYS_SDRAM_BASE          MMDC0_ARB_BASE_ADDR
index 1dc9d83c2cbd6b94b7dcc93bb6a4181ffce5192d..d9b7250cad750db324efdcdee560f38306ca1fcb 100644 (file)
@@ -24,6 +24,7 @@
 #define CONFIG_CMD_DHCP
 #define CONFIG_CMD_EEPROM
 #define CONFIG_CMD_I2C
+#define CONFIG_FAT_WRITE
 #define CONFIG_CMD_FUSE
 #define CONFIG_CMD_MII
 #define CONFIG_CMD_PCI
index e1c993783bb2b11c80de76b853098a43827da9e2..42e5821807493d06288a2aee72faf875f4f93bb9 100644 (file)
@@ -21,6 +21,8 @@
 #define CONFIG_SYS_PROMPT              "Matrix U-Boot> "
 #define CONFIG_SYS_HZ                  1000
 
+#define CONFIG_IMX6_THERMAL
+
 /* Physical Memory Map */
 #define CONFIG_NR_DRAM_BANKS           1
 #define CONFIG_SYS_SDRAM_BASE          MMDC0_ARB_BASE_ADDR
 #define CONFIG_CONSOLE_MUX
 #define CONFIG_CONS_INDEX              1
 
+#define CONFIG_PRE_CONSOLE_BUFFER
+#define CONFIG_PRE_CON_BUF_SZ          4096
+#define CONFIG_PRE_CON_BUF_ADDR                0x7C000000
+
 /* *** Command definition *** */
 #define CONFIG_CMD_BMODE
 #define CONFIG_CMD_MEMTEST
index 78a8e399c68fabf7778959df3578ae59e02ee7ac..e0c4ada711dde9b9a46294dd9e913cc50991969d 100644 (file)
@@ -9,6 +9,7 @@
 #ifndef __CONFIG_H
 #define __CONFIG_H
 
+#include <linux/kconfig.h>
 /* SPL */
 /* #if defined(CONFIG_SPL_BUILD) */