Am 26.12.2015 um 17:59 schrieb Wills Wang: > > > 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.
yes, you are right. But checkboard is already implemented in common/board_info.c as empty and weak function. Thus you can drop your implementation. >>> 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 */ >>> > -- - Daniel _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

