On 12/26/2015 09:52 PM, Daniel Schwierzeck wrote:

Am 25.12.2015 um 19:56 schrieb Wills Wang:
Signed-off-by: Wills Wang <[email protected]>
---

Changes in v4: None
Changes in v3: None
Changes in v2: None

  arch/mips/Kconfig             |  8 +++++
  arch/mips/dts/Makefile        |  2 +-
  arch/mips/dts/ap121.dts       | 37 +++++++++++++++++++
  arch/mips/dts/ar933x.dtsi     | 64 +++++++++++++++++++++++++++++++++
  board/ath79/ap121/Kconfig     | 15 ++++++++
  board/ath79/ap121/MAINTAINERS |  6 ++++
  board/ath79/ap121/Makefile    |  8 +++++
  board/ath79/ap121/README      | 18 ++++++++++
  board/ath79/ap121/ap121.c     | 17 +++++++++
  board/ath79/ap121/config.mk   | 16 +++++++++
  configs/ap121_defconfig       | 42 ++++++++++++++++++++++
  include/configs/ap121.h       | 82 +++++++++++++++++++++++++++++++++++++++++++
  12 files changed, 314 insertions(+), 1 deletion(-)
  create mode 100644 arch/mips/dts/ap121.dts
  create mode 100644 arch/mips/dts/ar933x.dtsi
  create mode 100644 board/ath79/ap121/Kconfig
  create mode 100644 board/ath79/ap121/MAINTAINERS
  create mode 100644 board/ath79/ap121/Makefile
  create mode 100644 board/ath79/ap121/README
  create mode 100644 board/ath79/ap121/ap121.c
  create mode 100644 board/ath79/ap121/config.mk
  create mode 100644 configs/ap121_defconfig
  create mode 100644 include/configs/ap121.h

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 7f7e258..09b8709 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -51,6 +51,13 @@ config TARGET_PB1X00
        select SUPPORTS_CPU_MIPS32_R2
        select SYS_MIPS_CACHE_INIT_RAM_LOAD
+config TARGET_AP121
+       bool "Support ap121"
+       select SUPPORTS_BIG_ENDIAN
+       select SUPPORTS_CPU_MIPS32_R1
+       select SUPPORTS_CPU_MIPS32_R2
+       select SYS_MIPS_CACHE_INIT_RAM_LOAD
+
please create a dedicated Kconfig in arch/mips/mach-ath79/ and add this
board there. Have a look at following links for examples:

https://github.com/danielschwierzeck/u-boot-lantiq/blob/lantiq/upstream/arch/mips/mach-lantiq/Kconfig

http://patchwork.ozlabs.org/patch/558465/
http://patchwork.ozlabs.org/patch/558469/
Ok.
endchoice @@ -59,6 +66,7 @@ source "board/imgtec/malta/Kconfig"
  source "board/micronas/vct/Kconfig"
  source "board/pb1x00/Kconfig"
  source "board/qemu-mips/Kconfig"
+source "board/ath79/ap121/Kconfig"
if MIPS diff --git a/arch/mips/dts/Makefile b/arch/mips/dts/Makefile
index 47b6eb5..6f8b413 100644
--- a/arch/mips/dts/Makefile
+++ b/arch/mips/dts/Makefile
@@ -2,7 +2,7 @@
  # SPDX-License-Identifier:    GPL-2.0+
  #
-dtb-y +=
+dtb-$(CONFIG_TARGET_AP121) += ap121.dtb
targets += $(dtb-y) diff --git a/arch/mips/dts/ap121.dts b/arch/mips/dts/ap121.dts
new file mode 100644
index 0000000..769458a
--- /dev/null
+++ b/arch/mips/dts/ap121.dts
@@ -0,0 +1,37 @@
+/dts-v1/;
+#include "ar933x.dtsi"
+
+/ {
+       model = "AP121 Reference Board";
+       compatible = "ath79,ap121", "ath79,ar933x";
+
+       aliases {
+               spi0 = &spi0;
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&xtal {
+       clock-frequency = <25000000>;
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&spi0 {
+       spi-max-frequency = <25000000>;
+       status = "okay";
+       spi-flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "spi-flash";
+               memory-map = <0x9f000000 0x00800000>;
+               spi-max-frequency = <25000000>;
+               reg = <0>;
+       };
+};
diff --git a/arch/mips/dts/ar933x.dtsi b/arch/mips/dts/ar933x.dtsi
new file mode 100644
index 0000000..64b30f7
--- /dev/null
+++ b/arch/mips/dts/ar933x.dtsi
@@ -0,0 +1,64 @@
+#include "skeleton.dtsi"
+
+/ {
+       compatible = "ath79,ar933x";
the first part should be a vendor name and according to device-trees
from kernel this should be "qca"
Ok.
+
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "mips,mips24Kc";
+                       reg = <0>;
+               };
+       };
+
+       clocks {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               xtal: xtal {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-output-names = "xtal";
+               };
+       };
+
+       ahb {
+               compatible = "simple-bus";
+               ranges;
+
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               apb {
+                       compatible = "simple-bus";
+                       ranges;
+
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       uart0: uart@18020000 {
+                               compatible = "ath79,ar933x-uart";
I suggest to use "qca,ar9330-uart" like the kernel driver

Ok.
+                               reg = <0x18020000 0x20>;
+
+                               status = "disabled";
+                       };
+               };
+
+               spi0: spi@1f000000 {
+                       compatible = "ath79,ath79-spi";
I suggest to use "qca,ar7100-spi" like the kernel driver
Ok.
+                       reg = <0x1f000000 0x10>;
+
+                       status = "disabled";
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+};
diff --git a/board/ath79/ap121/Kconfig b/board/ath79/ap121/Kconfig
new file mode 100644
index 0000000..88d9eff
--- /dev/null
+++ b/board/ath79/ap121/Kconfig
@@ -0,0 +1,15 @@
+if TARGET_AP121
+
+config SYS_BOARD
+       default "ap121"
+
+config SYS_VENDOR
+       default "ath79"
+
+config SYS_SOC
+       default "ath79"
+
+config SYS_CONFIG_NAME
+       default "ap121"
+
+endif
diff --git a/board/ath79/ap121/MAINTAINERS b/board/ath79/ap121/MAINTAINERS
new file mode 100644
index 0000000..319b521
--- /dev/null
+++ b/board/ath79/ap121/MAINTAINERS
@@ -0,0 +1,6 @@
+AP121 BOARD
+M:     Wills Wang <[email protected]>
+S:     Maintained
+F:     board/ath79/ap121/
+F:     include/configs/ap121.h
+F:     configs/ap121_defconfig
diff --git a/board/ath79/ap121/Makefile b/board/ath79/ap121/Makefile
new file mode 100644
index 0000000..9132118
--- /dev/null
+++ b/board/ath79/ap121/Makefile
@@ -0,0 +1,8 @@
+#
+# (C) Copyright 2003-2006
+# Wolfgang Denk, DENX Software Engineering, [email protected].
again, no historic copyright needed for a simple one-line Makefile
Ok.
+#
+# SPDX-License-Identifier:     GPL-2.0+
+#
+
+obj-y  = ap121.o
diff --git a/board/ath79/ap121/README b/board/ath79/ap121/README
new file mode 100644
index 0000000..104850f
--- /dev/null
+++ b/board/ath79/ap121/README
@@ -0,0 +1,18 @@
+ATHEROS AP121
+==================
+
+Supported hardware: AP121 referance board.
+
+Files of the AP121 port
+--------------------------
+
+arch/mips/mach-ath79/ar933x/   - The CPU support code for the Atheros ar933x
+arch/mips/include/asm/arch-ath79       - Header files for the Atheros ath79
+board/ath79/ap121/     - AP121 board specific files
+include/configs/ap121.h        - AP121 configuration file
+
+Configure
+-------------------
+
+To configure for the current board
+       make ap121_defconfig
you can drop this README. There is no new or relevant information in it

Ok.
diff --git a/board/ath79/ap121/ap121.c b/board/ath79/ap121/ap121.c
new file mode 100644
index 0000000..f60f88b
--- /dev/null
+++ b/board/ath79/ap121/ap121.c
@@ -0,0 +1,17 @@
+/*
+ * (C) Copyright 2015
+ * Wills Wang, <[email protected]>
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#include <common.h>
+#include <command.h>
+#include <asm/mipsregs.h>
+#include <asm/addrspace.h>
+#include <asm/io.h>
+
+int checkboard(void)
+{
+       return 0;
+}
you could/should print your board name here
U-boot print the board model property from device tree when power up,
I think it's duplicated.
diff --git a/board/ath79/ap121/config.mk b/board/ath79/ap121/config.mk
new file mode 100644
index 0000000..f7dd3b7
--- /dev/null
+++ b/board/ath79/ap121/config.mk
@@ -0,0 +1,16 @@
+#
+# (C) Copyright 2003
+# Wolfgang Denk, DENX Software Engineering, [email protected].
+#
+# SPDX-License-Identifier:     GPL-2.0+
+#
+
+#
+# AP121 referance board, MIPS32 core
+#
+
+# ROM version
+CONFIG_SYS_TEXT_BASE = 0x9f000000
+
+# RAM version
+#CONFIG_SYS_TEXT_BASE = 0x80010000
config.mk files in board directory are also deprecated. Please add
"#define CONFIG_SYS_TEXT_BASE 0x9f000000" to include/configs/ap121.h
Ok.
diff --git a/configs/ap121_defconfig b/configs/ap121_defconfig
new file mode 100644
index 0000000..cec0bb7
--- /dev/null
+++ b/configs/ap121_defconfig
@@ -0,0 +1,42 @@
+CONFIG_MIPS=y
+CONFIG_TARGET_AP121=y
+CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_SYS_PROMPT="ap121 # "
+CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="ap121"
+CONFIG_DM=y
options like CONFIG_OF_CONTROL and CONFIG_DM should be pre-selected by
the mach or SoC specific Kconfig file if you always require it. An user
of your board should not be able to disable those options.

Ok.
+CONFIG_DM_SERIAL=y
+CONFIG_DM_SPI=y
+CONFIG_DM_SPI_FLASH=y
+CONFIG_ATH79_SPI=y
+CONFIG_SPI_FLASH=y
+CONFIG_SPI_FLASH_BAR=y
+CONFIG_SPI_FLASH_ATMEL=y
+CONFIG_SPI_FLASH_EON=y
+CONFIG_SPI_FLASH_GIGADEVICE=y
+CONFIG_SPI_FLASH_MACRONIX=y
+CONFIG_SPI_FLASH_SPANSION=y
+CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_SPI_FLASH_SST=y
+CONFIG_SPI_FLASH_WINBOND=y
+CONFIG_SPI_FLASH_USE_4K_SECTORS=y
+CONFIG_SPI_FLASH_DATAFLASH=y
+CONFIG_SPI_FLASH_MTD=y
+CONFIG_CMD_DM=y
+CONFIG_CMD_SF=y
+CONFIG_CMD_SPI=y
+# CONFIG_NET is not set
+# CONFIG_CMD_BDI is not set
+# CONFIG_CMD_CONSOLE is not set
+# CONFIG_CMD_IMLS is not set
+# CONFIG_CMD_XIMG is not set
+# CONFIG_CMD_ELF is not set
+# CONFIG_CMD_EXPORTENV is not set
+# CONFIG_CMD_IMPORTENV is not set
+# CONFIG_CMD_EDITENV is not set
+# CONFIG_CMD_CRC32 is not set
+# CONFIG_CMD_FLASH is not set
+# CONFIG_CMD_FPGA is not set
+# CONFIG_CMD_NFS is not set
+# CONFIG_CMD_NET is not set
+CONFIG_USE_PRIVATE_LIBGCC=y
diff --git a/include/configs/ap121.h b/include/configs/ap121.h
new file mode 100644
index 0000000..5a01d11
--- /dev/null
+++ b/include/configs/ap121.h
@@ -0,0 +1,82 @@
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+#include <linux/kconfig.h>
+#include <linux/sizes.h>
those includes are not needed in a board config header file respectively
they are already included implicitely
Ok.
+
+#define CONFIG_ARCH_ATH79
+#define CONFIG_SOC_AR933X
this is already configured by Kconfig

Ok.
+
+#define CONFIG_DISPLAY_CPUINFO
+#define CONFIG_DISPLAY_BOARDINFO
+
+#define CONFIG_OF_LIBFDT
+
+#define CONFIG_SYS_HZ                   1000
+#define CONFIG_SYS_MHZ                  200
+#define CONFIG_SYS_MIPS_TIMER_FREQ      (CONFIG_SYS_MHZ * 1000000)
+
+/* Cache Configuration */
+#define CONFIG_SYS_DCACHE_SIZE          32 * SZ_1K
+#define CONFIG_SYS_ICACHE_SIZE          64 * SZ_1K
+#define CONFIG_SYS_CACHELINE_SIZE       32
you can drop this, the cache sizes will be detected automatically
I  have a try later,  i will drop this if it work fine.
+
+#define CONFIG_SYS_MONITOR_BASE         CONFIG_SYS_TEXT_BASE
+
+#define CONFIG_SYS_MALLOC_LEN           ROUND(0x30000 + 128 * SZ_1K, 0x1000)
no need for a magic calculation, please choose a fixed value
Ok.
+
+#define CONFIG_SYS_BOOTPARAMS_LEN       128 * SZ_1K
+
+#define CONFIG_SYS_SDRAM_BASE           0x80000000
+#define CONFIG_SYS_LOAD_ADDR            0x81000000
+
+#define CONFIG_SYS_INIT_SP_OFFSET       0x20000
+#define CONFIG_SYS_NO_FLASH
+
+#define CONFIG_AR933X_SERIAL
this is already configured by Kconfig
Ok.
+#define CONFIG_BAUDRATE                 115200
+#define CONFIG_SYS_BAUDRATE_TABLE       {9600, 19200, 38400, 57600, 115200}
+
+#define CONFIG_BOOTDELAY                3
+#define CONFIG_BOOTARGS                 "console=ttyS0,115200 " \
+                                       "root=/dev/mtdblock2 " \
+                                       "rootfstype=squashfs"
+#define CONFIG_BOOTCOMMAND              "sf probe;" \
+                                       "mtdparts default;" \
+                                       "bootm 0x9f300000"
+#define CONFIG_LZMA
+
+#define MTDIDS_DEFAULT                  "nor0=spi-flash.0"
+#define MTDPARTS_DEFAULT                "mtdparts=spi-flash.0:256k(u-boot)," \
+               "64k(u-boot-env),2752k(rootfs),896k(uImage),64k(NVRAM),64k(ART)"
+
+#define CONFIG_ENV_SPI_MAX_HZ           25000000
+#define CONFIG_ENV_IS_IN_SPI_FLASH
+#define CONFIG_ENV_OFFSET               (256 * SZ_1K)
+#define CONFIG_ENV_SECT_SIZE            (64 * SZ_1K)
+#define CONFIG_ENV_SIZE                 (64 * SZ_1K)
+
+/*
+ * Command
+ */
+#define CONFIG_CMD_MTDPARTS
+
+/* Miscellaneous configurable options */
+#define CONFIG_SYS_CBSIZE               256
+#define CONFIG_SYS_MAXARGS              16
+#define CONFIG_SYS_PBSIZE               (CONFIG_SYS_CBSIZE + \
+                                       sizeof(CONFIG_SYS_PROMPT) + 16)
+#define CONFIG_SYS_LONGHELP
+#define CONFIG_CMDLINE_EDITING
+#define CONFIG_AUTO_COMPLETE
+#define CONFIG_SYS_HUSH_PARSER
+#define CONFIG_SYS_PROMPT_HUSH_PS2      "> "
this is already configured by Kconfig
Ok.
+
+/*
+ * Diagnostics
+ */
+#define CONFIG_SYS_MEMTEST_START        0x80100000
+#define CONFIG_SYS_MEMTEST_END          0x83f00000
+#define CONFIG_CMD_MEMTEST
+
+#endif  /* __CONFIG_H */


_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to