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/ > > 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" > + > + #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 > + reg = <0x18020000 0x20>; > + > + status = "disabled"; > + }; > + }; > + > + spi0: spi@1f000000 { > + compatible = "ath79,ath79-spi"; I suggest to use "qca,ar7100-spi" like the kernel driver > + 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 > +# > +# 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 > 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 > 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 > 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. > +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 > + > +#define CONFIG_ARCH_ATH79 > +#define CONFIG_SOC_AR933X this is already configured by Kconfig > + > +#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 > + > +#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 > + > +#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 > +#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 > + > +/* > + * Diagnostics > + */ > +#define CONFIG_SYS_MEMTEST_START 0x80100000 > +#define CONFIG_SYS_MEMTEST_END 0x83f00000 > +#define CONFIG_CMD_MEMTEST > + > +#endif /* __CONFIG_H */ > -- - Daniel _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

