mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
riscv: Add SiFive FU540 board support
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 <atish.patra@wdc.com> Signed-off-by: Anup Patel <anup.patel@wdc.com> Reviewed-by: Alexander Graf <agraf@suse.de> Reviewed-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
007056f495
commit
3fda0262c3
7 changed files with 131 additions and 0 deletions
|
@ -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"
|
||||
|
|
42
board/sifive/fu540/Kconfig
Normal file
42
board/sifive/fu540/Kconfig
Normal file
|
@ -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
|
9
board/sifive/fu540/MAINTAINERS
Normal file
9
board/sifive/fu540/MAINTAINERS
Normal file
|
@ -0,0 +1,9 @@
|
|||
SiFive FU540 BOARD
|
||||
M: Paul Walmsley <paul.walmsley@sifive.com>
|
||||
M: Palmer Dabbelt <palmer@sifive.com>
|
||||
M: Anup Patel <anup.patel@wdc.com>
|
||||
M: Atish Patra <atish.patra@wdc.com>
|
||||
S: Maintained
|
||||
F: board/sifive/fu540/
|
||||
F: include/configs/sifive-fu540.h
|
||||
F: configs/sifive_fu540_defconfig
|
5
board/sifive/fu540/Makefile
Normal file
5
board/sifive/fu540/Makefile
Normal file
|
@ -0,0 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
# Copyright (c) 2019 Western Digital Corporation or its affiliates.
|
||||
|
||||
obj-y += fu540.o
|
17
board/sifive/fu540/fu540.c
Normal file
17
board/sifive/fu540/fu540.c
Normal file
|
@ -0,0 +1,17 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright (c) 2019 Western Digital Corporation or its affiliates.
|
||||
*
|
||||
* Authors:
|
||||
* Anup Patel <anup.patel@wdc.com>
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <dm.h>
|
||||
|
||||
int board_init(void)
|
||||
{
|
||||
/* For now nothing to do here. */
|
||||
|
||||
return 0;
|
||||
}
|
11
configs/sifive_fu540_defconfig
Normal file
11
configs/sifive_fu540_defconfig
Normal file
|
@ -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
|
43
include/configs/sifive-fu540.h
Normal file
43
include/configs/sifive-fu540.h
Normal file
|
@ -0,0 +1,43 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright (c) 2019 Western Digital Corporation or its affiliates.
|
||||
*
|
||||
* Authors:
|
||||
* Anup Patel <anup.patel@wdc.com>
|
||||
*/
|
||||
|
||||
#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
|
||||
|
||||
#endif /* __CONFIG_H */
|
Loading…
Reference in a new issue