From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Schwierzeck Date: Sat, 16 Jan 2016 20:53:09 +0100 Subject: [U-Boot] [PATCH v7 7/7] mips: ath79: add AP143 reference board In-Reply-To: References: <1452968033-4460-1-git-send-email-wills.wang@live.com> Message-ID: <1452973989.4119.57.camel@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Am Sonntag, den 17.01.2016, 02:13 +0800 schrieb Wills Wang: > Signed-off-by: Wills Wang my comments in patch 6/7 apply to this patch too > --- > > Changes in v7: > - Use KSEG1 address for debug port in ap143 > > Changes in v6: None > Changes in v5: None > Changes in v4: None > Changes in v3: None > Changes in v2: None > > arch/mips/dts/Makefile | 1 + > arch/mips/dts/ap143.dts | 43 ++++++++++++++++++++ > arch/mips/dts/qca953x.dtsi | 72 > ++++++++++++++++++++++++++++++++++ > arch/mips/mach-ath79/Kconfig | 5 +++ > board/ath79/ap143/Kconfig | 9 +++++ > board/ath79/ap143/MAINTAINERS | 6 +++ > board/ath79/ap143/Makefile | 5 +++ > board/ath79/ap143/ap143.c | 63 ++++++++++++++++++++++++++++++ > configs/ap143_defconfig | 43 ++++++++++++++++++++ > include/configs/ap143.h | 91 > +++++++++++++++++++++++++++++++++++++++++++ > 10 files changed, 338 insertions(+) > create mode 100644 arch/mips/dts/ap143.dts > create mode 100644 arch/mips/dts/qca953x.dtsi > create mode 100644 board/ath79/ap143/Kconfig > create mode 100644 board/ath79/ap143/MAINTAINERS > create mode 100644 board/ath79/ap143/Makefile > create mode 100644 board/ath79/ap143/ap143.c > create mode 100644 configs/ap143_defconfig > create mode 100644 include/configs/ap143.h > > diff --git a/arch/mips/dts/Makefile b/arch/mips/dts/Makefile > index 3fd49eb..7da06c5 100644 > --- a/arch/mips/dts/Makefile > +++ b/arch/mips/dts/Makefile > @@ -3,6 +3,7 @@ > # > > dtb-$(CONFIG_BOARD_AP121) += ap121.dtb > +dtb-$(CONFIG_BOARD_AP143) += ap143.dtb > > targets += $(dtb-y) > > diff --git a/arch/mips/dts/ap143.dts b/arch/mips/dts/ap143.dts > new file mode 100644 > index 0000000..f53207e > --- /dev/null > +++ b/arch/mips/dts/ap143.dts > @@ -0,0 +1,43 @@ > +/* > + * Copyright (C) 2015-2016 Wills Wang > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +/dts-v1/; > +#include "qca953x.dtsi" > + > +/ { > + model = "AP143 Reference Board"; > + compatible = "qca,ap143", "qca,qca953x"; > + > + 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 at 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/qca953x.dtsi b/arch/mips/dts/qca953x.dtsi > new file mode 100644 > index 0000000..8487fc9 > --- /dev/null > +++ b/arch/mips/dts/qca953x.dtsi > @@ -0,0 +1,72 @@ > +/* > + * Copyright (C) 2015-2016 Wills Wang > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#include "skeleton.dtsi" > + > +/ { > + compatible = "qca,qca953x"; > + > + #address-cells = <1>; > + #size-cells = <1>; > + > + cpus { > + #address-cells = <1>; > + #size-cells = <0>; > + > + cpu at 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 at 18020000 { > + compatible = "ns16550"; > + reg = <0x18020000 0x20>; > + reg-shift = <2>; > + clock-frequency = <25000000>; > + > + status = "disabled"; > + }; > + }; > + > + spi0: spi at 1f000000 { > + compatible = "qca,ar7100-spi"; > + reg = <0x1f000000 0x10>; > + > + status = "disabled"; > + > + #address-cells = <1>; > + #size-cells = <0>; > + }; > + }; > +}; > diff --git a/arch/mips/mach-ath79/Kconfig b/arch/mips/mach > -ath79/Kconfig > index 0fcd96a..f61efd2 100644 > --- a/arch/mips/mach-ath79/Kconfig > +++ b/arch/mips/mach-ath79/Kconfig > @@ -34,8 +34,13 @@ config BOARD_AP121 > bool "AP121 Reference Board" > select SOC_AR933X > > +config BOARD_AP143 > + bool "AP143 Reference Board" > + select SOC_QCA953X > + > endchoice > > source "board/ath79/ap121/Kconfig" > +source "board/ath79/ap143/Kconfig" > > endmenu > diff --git a/board/ath79/ap143/Kconfig b/board/ath79/ap143/Kconfig > new file mode 100644 > index 0000000..118b9b5 > --- /dev/null > +++ b/board/ath79/ap143/Kconfig > @@ -0,0 +1,9 @@ > +if BOARD_AP143 > + > +config SYS_BOARD > + default "ap143" > + > +config SYS_CONFIG_NAME > + default "ap143" > + > +endif > diff --git a/board/ath79/ap143/MAINTAINERS > b/board/ath79/ap143/MAINTAINERS > new file mode 100644 > index 0000000..d373cf8 > --- /dev/null > +++ b/board/ath79/ap143/MAINTAINERS > @@ -0,0 +1,6 @@ > +AP143 BOARD > +M: Wills Wang > +S: Maintained > +F: board/ath79/ap143/ > +F: include/configs/ap143.h > +F: configs/ap143_defconfig > diff --git a/board/ath79/ap143/Makefile b/board/ath79/ap143/Makefile > new file mode 100644 > index 0000000..00f7837 > --- /dev/null > +++ b/board/ath79/ap143/Makefile > @@ -0,0 +1,5 @@ > +# > +# SPDX-License-Identifier: GPL-2.0+ > +# > + > +obj-y = ap143.o > diff --git a/board/ath79/ap143/ap143.c b/board/ath79/ap143/ap143.c > new file mode 100644 > index 0000000..3be86e6 > --- /dev/null > +++ b/board/ath79/ap143/ap143.c > @@ -0,0 +1,63 @@ > +/* > + * Copyright (C) 2015-2016 Wills Wang > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +DECLARE_GLOBAL_DATA_PTR; > + > +#ifdef CONFIG_BOARD_EARLY_INIT_F > +int board_early_init_f(void) > +{ > + void __iomem *regs; > + u32 val; > + > + regs = map_physmem(AR71XX_GPIO_BASE, AR71XX_GPIO_SIZE, > + MAP_NOCACHE); > + > + /* > + * GPIO9 as input, GPIO10 as output > + */ > + val = readl(regs + AR71XX_GPIO_REG_OE); > + val |= QCA953X_GPIO(9); > + val &= ~QCA953X_GPIO(10); > + writel(val, regs + AR71XX_GPIO_REG_OE); > + > + /* > + * Enable GPIO10 as UART0_SOUT > + */ > + val = readl(regs + QCA953X_GPIO_REG_OUT_FUNC2); > + val &= ~QCA953X_GPIO_OUT_MUX_MASK(16); > + val |= QCA953X_GPIO_OUT_MUX_UART0_SOUT << 16; > + writel(val, regs + QCA953X_GPIO_REG_OUT_FUNC2); > + > + /* > + * Enable GPIO9 as UART0_SIN > + */ > + val = readl(regs + QCA953X_GPIO_REG_IN_ENABLE0); > + val &= ~QCA953X_GPIO_OUT_MUX_MASK(8); > + val |= QCA953X_GPIO_IN_MUX_UART0_SIN << 8; > + writel(val, regs + QCA953X_GPIO_REG_IN_ENABLE0); > + > + /* > + * Enable GPIO10 output > + */ > + val = readl(regs + AR71XX_GPIO_REG_OUT); > + val |= QCA953X_GPIO(10); > + writel(val, regs + AR71XX_GPIO_REG_OUT); > + > +#ifdef CONFIG_DEBUG_UART > + debug_uart_init(); > +#endif > + ddr_init(); > + return 0; > +} > +#endif > diff --git a/configs/ap143_defconfig b/configs/ap143_defconfig > new file mode 100644 > index 0000000..ed7e09d > --- /dev/null > +++ b/configs/ap143_defconfig > @@ -0,0 +1,43 @@ > +CONFIG_MIPS=y > +CONFIG_ARCH_ATH79=y > +CONFIG_BOARD_AP143=y > +CONFIG_SYS_MALLOC_F_LEN=0x800 > +CONFIG_SYS_NS16550=y > +CONFIG_DM_SERIAL=y > +CONFIG_ATH79_SPI=y > +CONFIG_DM_SPI=y > +CONFIG_DM_SPI_FLASH=y > +CONFIG_DEFAULT_DEVICE_TREE="ap143" > +CONFIG_SYS_PROMPT="ap143 # " > +# CONFIG_CMD_BDI is not set > +# CONFIG_CMD_CONSOLE is not set > +# CONFIG_CMD_ELF is not set > +# CONFIG_CMD_IMLS is not set > +# CONFIG_CMD_XIMG 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_SF=y > +CONFIG_CMD_SPI=y > +# CONFIG_CMD_FPGA is not set > +# CONFIG_CMD_NET is not set > +# CONFIG_CMD_NFS is not set > +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_DATAFLASH=y > +CONFIG_SPI_FLASH_MTD=y > +CONFIG_DEBUG_UART=y > +CONFIG_DEBUG_UART_NS16550=y > +CONFIG_DEBUG_UART_BASE=0xb8020000 > +CONFIG_DEBUG_UART_CLOCK=25000000 > +CONFIG_DEBUG_UART_SHIFT=2 > diff --git a/include/configs/ap143.h b/include/configs/ap143.h > new file mode 100644 > index 0000000..6940551 > --- /dev/null > +++ b/include/configs/ap143.h > @@ -0,0 +1,91 @@ > +/* > + * Copyright (C) 2015-2016 Wills Wang > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#ifndef __CONFIG_H > +#define __CONFIG_H > + > +#define CONFIG_SYS_TEXT_BASE 0x9f000000 > + > +#define CONFIG_DISPLAY_CPUINFO > +#define CONFIG_DISPLAY_BOARDINFO > +#define CONFIG_BOARD_EARLY_INIT_F > + > +#define CONFIG_SYS_HZ 1000 > +#define CONFIG_SYS_MHZ 325 > +#define CONFIG_SYS_MIPS_TIMER_FREQ (CONFIG_SYS_MHZ * 1000000) > + > +/* Cache Configuration */ > +#define CONFIG_SYS_DCACHE_SIZE 0x8000 > +#define CONFIG_SYS_ICACHE_SIZE 0x10000 > +#define CONFIG_SYS_CACHELINE_SIZE 32 > + > +#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE > + > +#define CONFIG_SYS_MALLOC_LEN 0x40000 > +#define CONFIG_SYS_BOOTPARAMS_LEN 0x20000 > + > +#define CONFIG_SYS_SDRAM_BASE 0x80000000 > +#define CONFIG_SYS_LOAD_ADDR 0x81000000 > + > +#define CONFIG_SYS_NO_FLASH > + > +#define CONFIG_SYS_INIT_RAM_ADDR 0xbd000000 > +#define CONFIG_SYS_INIT_RAM_SIZE 0x2000 > +#define CONFIG_SYS_INIT_SP_ADDR \ > + (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE - 1) > + > +/* > + * Serial Port > + */ > +#define CONFIG_SYS_NS16550_CLK 25000000 > +#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 CONFIG_OF_LIBFDT > + > +#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 0x40000 > +#define CONFIG_ENV_SECT_SIZE 0x10000 > +#define CONFIG_ENV_SIZE 0x10000 > + > +/* > + * 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 > + > +/* > + * Diagnostics > + */ > +#define CONFIG_SYS_MEMTEST_START 0x80100000 > +#define CONFIG_SYS_MEMTEST_END 0x83f00000 > +#define CONFIG_CMD_MEMTEST > + > +#endif /* __CONFIG_H */ -- - Daniel