On 10/8/19 4:58 AM, liuhao wrote: When creating the commit your forgot to leave an empty line between the subject line and the rest of the commit message.
The commit subject and text should allow merging without further editing. It is sufficient that your commit subject and message describe the change, e.g: arm: add initial support for the Phytium FT2004 SoC This adds platform code and the device tree for the Phytium FT2004 SoC. The initial support comprises the UART and the GMAC. See further comments below.
Signed-off-by: liuhao <liu...@phytium.com.cn> --- MAINTAINERS | 6 +++ arch/arm/Kconfig | 8 ++++ arch/arm/dts/Makefile | 2 + arch/arm/dts/phytium-ft2004.dts | 33 ++++++++++++++ board/phytium/ft2004/Kconfig | 12 +++++ board/phytium/ft2004/MAINTAINERS | 8 ++++ board/phytium/ft2004/Makefile | 9 ++++ board/phytium/ft2004/cpu.h | 23 ++++++++++ board/phytium/ft2004/ft2004.c | 96 ++++++++++++++++++++++++++++++++++++++++ configs/ft2004_defconfig | 33 ++++++++++++++ include/configs/ft2004.h | 31 +++++++++++++ 11 files changed, 261 insertions(+) create mode 100644 arch/arm//dts/phytium-ft2004.dts create mode 100644 board/phytium/ft2004/Kconfig create mode 100644 board/phytium/ft2004/MAINTAINERS create mode 100644 board/phytium/ft2004/Makefile create mode 100644 board/phytium/ft2004/cpu.h create mode 100644 board/phytium/ft2004/ft2004.c create mode 100644 configs/ft2004_defconfig create mode 100644 include/configs/ft2004.h diff --git a/MAINTAINERS b/MAINTAINERS index bc67c49..f5fb65f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -427,6 +427,12 @@ S: Maintained T: git https://gitlab.denx.de/u-boot/custodians/u-boot-microblaze.git F: arch/arm/mach-zynqmp-r5/ +ARM PHYTIUM +M: liuhao <liu...@phytium.com.cn> +M: shuyiqi <shuy...@phytium.com.cn> +S: Maintained +F: arch/arm/dts/phytium-ft2004.dts
Defining ARM PHYTIUM in two places is not necessary. You can add this file to board/phytium/ft2004/MAINTAINERS.
+ BINMAN M: Simon Glass <s...@chromium.org> S: Maintained diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 51d4ace..2c5a279 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1044,6 +1044,13 @@ config TEGRA imply DISTRO_DEFAULTS imply FAT_WRITE +config TARGET_FT2004 + bool "Support Phytium FT2004 Platform" + select ARM64 + help + Support for FT2004 platform. + It has 1GB Sdram, uart and gmac. + config TARGET_VEXPRESS64_AEMV8A bool "Support vexpress_aemv8a" select ARM64 @@ -1718,6 +1725,7 @@ source "arch/arm/cpu/armv8/Kconfig" source "arch/arm/mach-imx/Kconfig" +source "board/phytium/ft2004/Kconfig" source "board/bosch/shc/Kconfig" source "board/bosch/guardian/Kconfig" source "board/CarMediaLab/flea3/Kconfig" diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index f553507..f2e3e53 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -14,6 +14,8 @@ dtb-$(CONFIG_EXYNOS4) += exynos4210-origen.dtb \ exynos4412-trats2.dtb \ exynos4412-odroid.dtb +dtb-$(CONFIG_TARGET_FT2004) += phytium-ft2004.dtb + dtb-$(CONFIG_TARGET_HIKEY) += hi6220-hikey.dtb
You patch does not apply cleanly. Please, rebase your patch on the current origin/master of U-Boot.
dtb-$(CONFIG_TARGET_POPLAR) += hi3798cv200-poplar.dtb diff --git a/arch/arm/dts/phytium-ft2004.dts b/arch/arm/dts/phytium-ft2004.dts new file mode 100644 index 0000000..58faab9 --- /dev/null +++ b/arch/arm/dts/phytium-ft2004.dts @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2019, Phytium Ltd. + * shuyiqi <shuy...@phytium.com.cn> + */ + +/dts-v1/; +
Please, add a comment here explaining why this memory region is reserved.
+/memreserve/ 0x0000000080000000 0x0000000000100000; +/ {
Please, provide a model property, e.g. model = "Phytium FT2004";
+ compatible = "phytium,ft2004"; + #address-cells = <2>; + #size-cells = <2>; + + ethernet@2820c000 { + compatible = "st,stm32-dwmac"; + reg = <0x0 0x2820C000 0x0 0x2000>; + phy-mode = "rgmii"; + }; + + ethernet@28210000 { + compatible = "st,stm32-dwmac"; + reg = <0x0 0x28210000 0x0 0x2000>; + phy-mode = "rgmii"; + }; + + uart@28001000 { + compatible = "arm,pl011"; + reg = <0x0 0x28001000 0x0 0x1000>; + clock = <48000000>; + }; +}; + diff --git a/board/phytium/ft2004/Kconfig b/board/phytium/ft2004/Kconfig new file mode 100644 index 0000000..865a609 --- /dev/null +++ b/board/phytium/ft2004/Kconfig @@ -0,0 +1,12 @@ +if TARGET_FT2004 + +config SYS_BOARD + default "ft2004" + +config SYS_VENDOR + default "phytium" + +config SYS_CONFIG_NAME + default "ft2004" + +endif diff --git a/board/phytium/ft2004/MAINTAINERS b/board/phytium/ft2004/MAINTAINERS new file mode 100644 index 0000000..6e4328b --- /dev/null +++ b/board/phytium/ft2004/MAINTAINERS @@ -0,0 +1,8 @@ +PHYTIUM BOARD +M: liuhao <liu...@phytium.com.cn> +M: shuyiqi <shuy...@phytium.com.cn> +S: Maintained +F: board/phytium/ft2004/* +F: include/configs/ft2004.h +F: configs/ft2004_defconfig + diff --git a/board/phytium/ft2004/Makefile b/board/phytium/ft2004/Makefile new file mode 100644 index 0000000..948d523 --- /dev/null +++ b/board/phytium/ft2004/Makefile @@ -0,0 +1,9 @@ +# SPDX-License-Identifier: GPL-2.0+ +# +# Copyright (C) 2019 +# shuyiqi <shuy...@phytium.com.cn> +# liuhao <liu...@phytium.com.cn> +# + +obj-y += ft2004.o + diff --git a/board/phytium/ft2004/cpu.h b/board/phytium/ft2004/cpu.h new file mode 100644 index 0000000..3574a6b --- /dev/null +++ b/board/phytium/ft2004/cpu.h @@ -0,0 +1,23 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * (C) Copyright 2019 + * Phytium Technology Ltd <www.phytium.com> + * shuyiqi <shuy...@phytium.com.cn> + */ + +#ifndef _FT2004_CPU_H +#define _FT2004_CPU_H + +/* FLUSH L3 CASHE */ +#define HNF_COUNT 0x8 +#define HNF_PSTATE_REQ (HNF_BASE + 0x10) +#define HNF_PSTATE_STAT (HNF_BASE + 0x18) +#define HNF_PSTATE_OFF 0x0 +#define HNF_PSTATE_SFONLY 0x1 +#define HNF_PSTATE_HALF 0x2 +#define HNF_PSTATE_FULL 0x3 +#define HNF_STRIDE 0x10000 +#define HNF_BASE (unsigned long)(0x3A200000) + +#endif /* _FT2004_CPU_H */ + diff --git a/board/phytium/ft2004/ft2004.c b/board/phytium/ft2004/ft2004.c new file mode 100644 index 0000000..1f4440d --- /dev/null +++ b/board/phytium/ft2004/ft2004.c @@ -0,0 +1,96 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2019 + * shuyiqi <shuy...@phytium.com.cn> + * liuhao <liu...@phytium.com.cn> + */ + +#include <common.h> +#include <asm/armv8/mmu.h> +#include <asm/system.h> +#include <asm/io.h> +#include <linux/arm-smccc.h> +#include <linux/kernel.h> +#include <scsi.h> +#include "cpu.h" + +DECLARE_GLOBAL_DATA_PTR; + +int dram_init(void) +{ + gd->mem_clk = 0; + gd->ram_size = PHYS_SDRAM_1_SIZE; + return 0; +} + +int dram_init_banksize(void) +{ + gd->bd->bi_dram[0].start = PHYS_SDRAM_1; + gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE; + + return 0; +} + +int board_init(void) +{ + return 0; +} + +void reset_cpu(ulong addr) +{ + struct arm_smccc_res res; + + printf("run in %s\n", __func__); + arm_smccc_smc(0x84000009, 0, 0, 0, 0, 0, 0, 0, &res); + printf("reset cpu error, %lx\n", res.a0); +} + +static struct mm_region ft2004_mem_map[] = { + { + .virt = 0x0UL, + .phys = 0x0UL, + .size = 0x80000000UL, + .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | + PTE_BLOCK_NON_SHARE | + PTE_BLOCK_PXN | + PTE_BLOCK_UXN + }, + { + .virt = (u64)PHYS_SDRAM_1, + .phys = (u64)PHYS_SDRAM_1, + .size = (u64)PHYS_SDRAM_1_SIZE, + .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) | + PTE_BLOCK_NS | + PTE_BLOCK_INNER_SHARE + }, + { + 0, + } +}; + +struct mm_region *mem_map = ft2004_mem_map; + +int print_cpuinfo(void) +{ + printf("CPU: Phytium ft2004 %ld MHz\n", gd->cpu_clk); + return 0; +} + +int __asm_flush_l3_dcache(void) +{ + int i, pstate; + + for (i = 0; i < HNF_COUNT; i++) + writeq(HNF_PSTATE_SFONLY, HNF_PSTATE_REQ + i * HNF_STRIDE); + for (i = 0; i < HNF_COUNT; i++) { + do { + pstate = readq(HNF_PSTATE_STAT + i * HNF_STRIDE); + } while ((pstate & 0xf) != (HNF_PSTATE_SFONLY << 2)); + } + + for (i = 0; i < HNF_COUNT; i++) + writeq(HNF_PSTATE_FULL, HNF_PSTATE_REQ + i * HNF_STRIDE); + + return 0; +} + diff --git a/configs/ft2004_defconfig b/configs/ft2004_defconfig new file mode 100644 index 0000000..ff1a4d9 --- /dev/null +++ b/configs/ft2004_defconfig @@ -0,0 +1,33 @@ +CONFIG_ARM=y +CONFIG_ARM64=y +CONFIG_TARGET_FT2004=y +CONFIG_SYS_PROMPT="ft2004#" +CONFIG_SYS_TEXT_BASE=0x88000000 +CONFIG_NR_DRAM_BANKS=1 +CONFIG_AHCI=y +CONFIG_ARM_SMCCC=y + +CONFIG_OF_CONTROL=y +CONFIG_OF_SEPARATE=y +CONFIG_DEFAULT_DEVICE_TREE="phytium-ft2004" +CONFIG_DM=y + +CONFIG_NET=y +CONFIG_NETDEVICES=y +CONFIG_DM_ETH=y +CONFIG_CMD_NET=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_TFTPBOOT=y +CONFIG_CMD_TFTPPUT=y +CONFIG_CMD_PING=y +CONFIG_ETH_DESIGNWARE=y + +CONFIG_DM_SERIAL=y +CONFIG_PL01X_SERIAL=y + +# CONFIG_DISPLAY_CPUINFO is not set +# CONFIG_DISPLAY_BOARDINFO is not set +# CONFIG_CMD_LZMADEC is not set +# CONFIG_CMD_UNZIP is not set +# CONFIG_MMC is not set +# CONFIG_PSCI_RESET is not set diff --git a/include/configs/ft2004.h b/include/configs/ft2004.h new file mode 100644 index 0000000..21b235f --- /dev/null +++ b/include/configs/ft2004.h @@ -0,0 +1,31 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright (C) 2019 + * shuyiqi <shuy...@phytium.com.cn> + * liuhao <liu...@phytium.com.cn> + */ + +#ifndef __FT_2004_CONFIG_H__ +#define __FT_2004_CONFIG_H__ + +/* Sdram Bank #1 Address */ +#define PHYS_SDRAM_1 0x80000000 +#define PHYS_SDRAM_1_SIZE 0x7B000000 +#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1 + +#define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_SDRAM_BASE + 0x10000000) + +/* Size of Malloc Pool */ +#define CONFIG_ENV_SIZE 4096 +#define CONFIG_SYS_MALLOC_LEN (1 * 1024 * 1024 + CONFIG_ENV_SIZE) + +#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_TEXT_BASE - 0x100000) + +#define CONFIG_EXTRA_ENV_SETTINGS \ + "ethaddr=11:22:33:44:55:66\0" \
With two FT2400 in the same network this will cause trouble. Can't the Designware driver read the MAC from the network adapter? Otherwise add CONFIG_NET_RANDOM_ETHADDR to your configuration file to generate a random MAC address.
+ "ipaddr=192.168.1.250\0" \ + "gatewayip=192.168.1.1\0" \ + "netmask=255.255.255.0\0" \ + "serverip=192.168.1.110\0"
These definitions will not fit for end users. If you only need them for your own test environment, please, remove them. The dhcp command is meant to fill the variables. Otherwise the code looks fine to me. Best regards Heinrich
+ +#endif
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot