]> git.sur5r.net Git - u-boot/commitdiff
nds32: Support AG101P serial DM.
authorrick <rick@andestech.com>
Mon, 17 Apr 2017 06:41:58 +0000 (14:41 +0800)
committerAndes <uboot@andestech.com>
Mon, 22 May 2017 06:05:33 +0000 (14:05 +0800)
Support AG101P serial device tree flow.

Signed-off-by: rick <rick@andestech.com>
arch/Kconfig
arch/nds32/cpu/n1213/start.S
arch/nds32/dts/Makefile [new file with mode: 0644]
arch/nds32/dts/ag101p.dts [new file with mode: 0644]
arch/nds32/include/asm/config.h
arch/nds32/lib/bootm.c
configs/adp-ag101p_defconfig
include/configs/adp-ag101p.h

index 2528f50efa73e8e59546a6e00ca7be999fef382f..1212635ddec1b0d5215386419a82100ab4a000ba 100644 (file)
@@ -43,6 +43,7 @@ config MIPS
 
 config NDS32
        bool "NDS32 architecture"
+       select SUPPORT_OF_CONTROL
 
 config NIOS2
        bool "Nios II architecture"
index 99971fdbdba43ec15dafb1ed2fe51ef563e065ed..7992fd9e24dcbfb4992a069c26fd3808debda41c 100644 (file)
@@ -161,9 +161,13 @@ update_gp:
  */
 call_board_init_f:
        li              $sp, CONFIG_SYS_INIT_SP_ADDR
-       li              $r10, GD_SIZE   /* get GD size */
-       sub             $sp, $sp, $r10  /* GD start addr */
-       move    $r10, $sp
+       move    $r0, $sp
+       bal     board_init_f_alloc_reserve
+       move    $sp, $r0
+       bal     board_init_f_init_reserve
+#ifdef CONFIG_DEBUG_UART
+       bal     debug_uart_init
+#endif
        li              $r0, 0x00000000
 
 #ifdef __PIC__
diff --git a/arch/nds32/dts/Makefile b/arch/nds32/dts/Makefile
new file mode 100644 (file)
index 0000000..2d8480b
--- /dev/null
@@ -0,0 +1,14 @@
+#
+# SPDX-License-Identifier:     GPL-2.0+
+#
+
+dtb-$(CONFIG_TARGET_ADP_AG101P) += ag101p.dtb
+targets += $(dtb-y)
+
+DTC_FLAGS += -R 4 -p 0x1000
+
+PHONY += dtbs
+dtbs: $(addprefix $(obj)/, $(dtb-y))
+       @:
+
+clean-files := *.dtb
diff --git a/arch/nds32/dts/ag101p.dts b/arch/nds32/dts/ag101p.dts
new file mode 100644 (file)
index 0000000..2baa3dc
--- /dev/null
@@ -0,0 +1,49 @@
+/dts-v1/;
+/ {
+       compatible = "nds32 ag101p";
+       #address-cells = <1>;
+       #size-cells = <1>;
+       interrupt-parent = <&intc>;
+
+       aliases {
+               uart0 = &serial0;
+       } ;
+
+       chosen {
+               /* bootargs = "console=ttyS0,38400n8 earlyprintk=uart8250-32bit,0x99600000 debug bootmem_debug memblock=debug loglevel=7"; */
+               bootargs = "console=ttyS0,38400n8 earlyprintk=uart8250-32bit,0x99600000 debug loglevel=7";
+               stdout-path = "uart0:38400n8";
+       };
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x00000000 0x40000000>;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               cpu@0 {
+                       compatible = "andestech,n13";
+                       reg = <0>;
+                       /* FIXME: to fill correct frqeuency */
+                       clock-frequency = <60000000>;
+               };
+       };
+
+       intc: interrupt-controller {
+               compatible = "andestech,atnointc010";
+               #interrupt-cells = <1>;
+               interrupt-controller;
+       };
+
+       serial0: serial@99600000 {
+               compatible = "andestech,uart16550", "ns16550a";
+               reg = <0x99600000 0x1000>;
+               interrupts = <7 4>;
+               clock-frequency = <14745600>;
+               reg-shift = <2>;
+               no-loopback-test = <1>;
+       };
+
+};
index 054cc4837c47dddf29c2924411a50214ccafc05a..7289217164dc93445a5956e108e644cfc043ad53 100644 (file)
@@ -8,5 +8,6 @@
 
 #ifndef _ASM_CONFIG_H_
 #define _ASM_CONFIG_H_
+#define CONFIG_LMB
 
 #endif
index 8b0b28fd996f2de6798aadd9294eec32dd8366e7..7999167f4cef10ec95a2a0768d2b695ac7621748 100644 (file)
 
 DECLARE_GLOBAL_DATA_PTR;
 
+int arch_fixup_fdt(void *blob)
+{
+       return 0;
+}
+
+
 #if defined(CONFIG_SETUP_MEMORY_TAGS) || \
        defined(CONFIG_CMDLINE_TAG) || \
        defined(CONFIG_INITRD_TAG) || \
index 48d08cc44b5e993540fd7ca0bb113253dc98722b..2a7302faebae47a22fbe60b88b317cff625269f2 100644 (file)
@@ -1,5 +1,7 @@
 CONFIG_NDS32=y
 CONFIG_TARGET_ADP_AG101P=y
+CONFIG_DEFAULT_DEVICE_TREE="ag101p"
+CONFIG_FIT=y
 CONFIG_BOOTDELAY=3
 CONFIG_SYS_PROMPT="NDS32 # "
 CONFIG_CMD_MMC=y
@@ -12,4 +14,7 @@ CONFIG_CMD_FAT=y
 CONFIG_MMC=y
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_BAUDRATE=38400
+CONFIG_OF_CONTROL=y
+CONFIG_DM=y
+CONFIG_DM_SERIAL=y
 CONFIG_SYS_NS16550=y
index b42fcfa8d539893fc83fd44f1d79f4530bafc154..106b591bc22e152607e5a97021f7c4a4e1bdec0a 100644 (file)
@@ -20,8 +20,6 @@
 
 #define CONFIG_SKIP_LOWLEVEL_INIT
 
-#define CONFIG_SYS_GENERIC_GLOBAL_DATA
-
 /*
  * Definitions related to passing arguments to kernel.
  */
 
 #ifdef CONFIG_SKIP_LOWLEVEL_INIT
 #define CONFIG_SYS_TEXT_BASE   0x00500000
+#ifdef CONFIG_OF_CONTROL
+#undef CONFIG_OF_SEPARATE
+#define CONFIG_OF_EMBED
+#endif
 #else
 #ifdef CONFIG_MEM_REMAP
 #define CONFIG_SYS_TEXT_BASE   0x80000000
@@ -87,7 +89,9 @@
 #define CONFIG_CONS_INDEX              1
 #define CONFIG_SYS_NS16550_SERIAL
 #define CONFIG_SYS_NS16550_COM1                CONFIG_FTUART010_02_BASE
+#ifndef CONFIG_DM_SERIAL
 #define CONFIG_SYS_NS16550_REG_SIZE    -4
+#endif
 #define CONFIG_SYS_NS16550_CLK         ((18432000 * 20) / 25)  /* AG101P */
 
 /*