On Sun, 2019-01-20 at 17:22 -0800, Atish Patra wrote: > On 1/20/19 12:26 PM, Auer, Lukas wrote: > > Hi Anup, > > > > On Fri, 2019-01-18 at 11:19 +0000, Anup Patel wrote: > > > This patch adds SiFive FU540 board support. For now, only > > > SiFive serial, SiFive PRCI, and Cadance MACB drivers are > > > only enabled. The SiFive FU540 defconfig by default builds > > > U-Boot for S-Mode because U-Boot on SiFive FU540 will run > > > in S-Mode as payload of BBL or OpenSBI. > > > > > > Signed-off-by: Atish Patra <[email protected]> > > > Signed-off-by: Anup Patel <[email protected]> > > > Reviewed-by: Alexander Graf <[email protected]> > > > --- > > > arch/riscv/Kconfig | 4 ++++ > > > board/sifive/fu540/Kconfig | 42 > > > +++++++++++++++++++++++++++++++++ > > > board/sifive/fu540/MAINTAINERS | 9 +++++++ > > > board/sifive/fu540/Makefile | 5 ++++ > > > board/sifive/fu540/fu540.c | 17 ++++++++++++++ > > > configs/sifive_fu540_defconfig | 11 +++++++++ > > > include/configs/sifive-fu540.h | 43 > > > ++++++++++++++++++++++++++++++++++ > > > 7 files changed, 131 insertions(+) > > > create mode 100644 board/sifive/fu540/Kconfig > > > create mode 100644 board/sifive/fu540/MAINTAINERS > > > create mode 100644 board/sifive/fu540/Makefile > > > create mode 100644 board/sifive/fu540/fu540.c > > > create mode 100644 configs/sifive_fu540_defconfig > > > create mode 100644 include/configs/sifive-fu540.h > > > > > > > Reviewed-by: Lukas Auer <[email protected]> > > > > Can you add a short README on how to flash and use U-Boot on the > > HiFive > > Unleashed? > > > > Thanks for the review. Sure. We will add a README document. > > > Please also see one more comment below. > > > > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > > > index 6879047ff7..36512a8995 100644 > > > --- a/arch/riscv/Kconfig > > > +++ b/arch/riscv/Kconfig > > > @@ -14,11 +14,15 @@ config TARGET_AX25_AE350 > > > config TARGET_QEMU_VIRT > > > bool "Support QEMU Virt Board" > > > > > > +config TARGET_SIFIVE_FU540 > > > + bool "Support SiFive FU540 Board" > > > + > > > endchoice > > > > > > # board-specific options below > > > source "board/AndesTech/ax25-ae350/Kconfig" > > > source "board/emulation/qemu-riscv/Kconfig" > > > +source "board/sifive/fu540/Kconfig" > > > > > > # platform-specific options below > > > source "arch/riscv/cpu/ax25/Kconfig" > > > diff --git a/board/sifive/fu540/Kconfig > > > b/board/sifive/fu540/Kconfig > > > new file mode 100644 > > > index 0000000000..6be3d88144 > > > --- /dev/null > > > +++ b/board/sifive/fu540/Kconfig > > > @@ -0,0 +1,42 @@ > > > +if TARGET_SIFIVE_FU540 > > > + > > > +config SYS_BOARD > > > + default "fu540" > > > + > > > +config SYS_VENDOR > > > + default "sifive" > > > + > > > +config SYS_CPU > > > + default "generic" > > > + > > > +config SYS_CONFIG_NAME > > > + default "sifive-fu540" > > > + > > > +config SYS_TEXT_BASE > > > + default 0x80000000 if !RISCV_SMODE > > > + default 0x80200000 if RISCV_SMODE > > > + > > > +config BOARD_SPECIFIC_OPTIONS # dummy > > > + def_bool y > > > + select GENERIC_RISCV > > > + imply CMD_DHCP > > > + imply CMD_EXT2 > > > + imply CMD_EXT4 > > > + imply CMD_FAT > > > + imply CMD_FS_GENERIC > > > + imply CMD_NET > > > + imply CMD_PING > > > + imply CLK_SIFIVE > > > + imply CLK_SIFIVE_FU540_PRCI > > > + imply DOS_PARTITION > > > + imply EFI_PARTITION > > > + imply IP_DYN > > > + imply ISO_PARTITION > > > + imply MACB > > > + imply MII > > > + imply NET_RANDOM_ETHADDR > > > + imply PHY_LIB > > > + imply PHY_MSCC > > > + imply SIFIVE_SERIAL > > > + > > > +endif > > > diff --git a/board/sifive/fu540/MAINTAINERS > > > b/board/sifive/fu540/MAINTAINERS > > > new file mode 100644 > > > index 0000000000..702d803ad8 > > > --- /dev/null > > > +++ b/board/sifive/fu540/MAINTAINERS > > > @@ -0,0 +1,9 @@ > > > +SiFive FU540 BOARD > > > +M: Paul Walmsley <[email protected]> > > > +M: Palmer Dabbelt <[email protected]> > > > +M: Anup Patel <[email protected]> > > > +M: Atish Patra <[email protected]> > > > +S: Maintained > > > +F: board/sifive/fu540/ > > > +F: include/configs/sifive-fu540.h > > > +F: configs/sifive_fu540_defconfig > > > diff --git a/board/sifive/fu540/Makefile > > > b/board/sifive/fu540/Makefile > > > new file mode 100644 > > > index 0000000000..6e1862c475 > > > --- /dev/null > > > +++ b/board/sifive/fu540/Makefile > > > @@ -0,0 +1,5 @@ > > > +# SPDX-License-Identifier: GPL-2.0+ > > > +# > > > +# Copyright (c) 2019 Western Digital Corporation or its > > > affiliates. > > > + > > > +obj-y += fu540.o > > > diff --git a/board/sifive/fu540/fu540.c > > > b/board/sifive/fu540/fu540.c > > > new file mode 100644 > > > index 0000000000..5adc4a3d4a > > > --- /dev/null > > > +++ b/board/sifive/fu540/fu540.c > > > @@ -0,0 +1,17 @@ > > > +// SPDX-License-Identifier: GPL-2.0+ > > > +/* > > > + * Copyright (c) 2019 Western Digital Corporation or its > > > affiliates. > > > + * > > > + * Authors: > > > + * Anup Patel <[email protected]> > > > + */ > > > + > > > +#include <common.h> > > > +#include <dm.h> > > > + > > > +int board_init(void) > > > +{ > > > + /* For now nothing to do here. */ > > > + > > > + return 0; > > > +} > > > diff --git a/configs/sifive_fu540_defconfig > > > b/configs/sifive_fu540_defconfig > > > new file mode 100644 > > > index 0000000000..2f8cca9de0 > > > --- /dev/null > > > +++ b/configs/sifive_fu540_defconfig > > > @@ -0,0 +1,11 @@ > > > +CONFIG_RISCV=y > > > +CONFIG_TARGET_SIFIVE_FU540=y > > > +CONFIG_RISCV_SMODE=y > > > +CONFIG_ARCH_RV64I=y > > > +CONFIG_DISTRO_DEFAULTS=y > > > +CONFIG_NR_DRAM_BANKS=1 > > > +CONFIG_FIT=y > > > +CONFIG_DISPLAY_CPUINFO=y > > > +CONFIG_DISPLAY_BOARDINFO=y > > > +CONFIG_CMD_MII=y > > > +CONFIG_OF_PRIOR_STAGE=y > > > diff --git a/include/configs/sifive-fu540.h > > > b/include/configs/sifive- > > > fu540.h > > > new file mode 100644 > > > index 0000000000..7007b5f6af > > > --- /dev/null > > > +++ b/include/configs/sifive-fu540.h > > > @@ -0,0 +1,43 @@ > > > +/* SPDX-License-Identifier: GPL-2.0+ */ > > > +/* > > > + * Copyright (c) 2019 Western Digital Corporation or its > > > affiliates. > > > + * > > > + * Authors: > > > + * Anup Patel <[email protected]> > > > + */ > > > + > > > +#ifndef __CONFIG_H > > > +#define __CONFIG_H > > > + > > > +#include <linux/sizes.h> > > > + > > > +#define CONFIG_SYS_SDRAM_BASE 0x80000000 > > > +#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE > > > + SZ_2M) > > > + > > > +#define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_SDRAM_BASE > > > + SZ_2M) > > > + > > > +#define CONFIG_SYS_MALLOC_LEN SZ_8M > > > + > > > +#define CONFIG_SYS_BOOTM_LEN SZ_16M > > > + > > > +#define CONFIG_STANDALONE_LOAD_ADDR 0x80200000 > > > + > > > +/* Environment options */ > > > +#define CONFIG_ENV_SIZE SZ_4K > > > + > > > +#define BOOT_TARGET_DEVICES(func) \ > > > + func(DHCP, dhcp, na) > > > + > > > +#include <config_distro_bootcmd.h> > > > + > > > +#define CONFIG_EXTRA_ENV_SETTINGS \ > > > + "fdt_high=0xffffffffffffffff\0" \ > > > + "initrd_high=0xffffffffffffffff\0" \ > > > + "kernel_addr_r=0x80600000\0" \ > > > + "fdt_addr_r=0x82200000\0" \ > > > + "scriptaddr=0x82300000\0" \ > > > + "pxefile_addr_r=0x82400000\0" \ > > > + "ramdisk_addr_r=0x82500000\0" \ > > > + BOOTENV > > > > I think it would be helpful to define the kernel command line using > > the > > bootargs environment variable here. For testing I used > > "bootargs=console=ttySI0 earlyprintk root=/dev/mmcblk0p2 rootwait" > > locally. > > > The root partition might be different in different setup. For > example, > if expansion board is connected, root partition might be on sata or > nvme > drive. Should we add a fixed root partition to the bootargs ? >
Hm, good point. It's probably better to leave it as is and document it as part of the boot flow in the board README. Thanks, Lukas _______________________________________________ U-Boot mailing list [email protected] https://lists.denx.de/listinfo/u-boot

