
Heinrich Schuchardt xypron.glpk@gmx.de 于2024年1月15日周一 05:57写道:
On 1/14/24 19:07, Kongyang Liu wrote:
Add support for Sophgo's Milk-V Duo board, only minimal device tree and serial console are enabled, and it can boot via vendor first stage bootloader.
Signed-off-by: Kongyang Liu seashell11234455@gmail.com
The sequence of patches seems to be wrong.
We expect that after each single patch building succeeds. But the device-tree is neither in this patch nor in a preceding patch. Please, swap patch 1 and 2.
make[2]: *** No rule to make target 'arch/riscv/dts/cv1800b-milkv-duo.dtb', needed by 'dtbs'.
I forgot defconfig relies on dts files, I will swap patch 1 and 2.
Changes in v2:
- Fold the defconfig patch to first patch
- Remove unnecessary environment settings of consoledev and baudrate in
config
arch/riscv/Kconfig | 4 ++++ board/sophgo/milkv_duo/Kconfig | 28 ++++++++++++++++++++++++++++ board/sophgo/milkv_duo/MAINTAINERS | 6 ++++++ board/sophgo/milkv_duo/Makefile | 5 +++++ board/sophgo/milkv_duo/board.c | 9 +++++++++ configs/milkv_duo_defconfig | 24 ++++++++++++++++++++++++ include/configs/milkv_duo.h | 12 ++++++++++++ 7 files changed, 88 insertions(+) create mode 100644 board/sophgo/milkv_duo/Kconfig create mode 100644 board/sophgo/milkv_duo/MAINTAINERS create mode 100644 board/sophgo/milkv_duo/Makefile create mode 100644 board/sophgo/milkv_duo/board.c create mode 100644 configs/milkv_duo_defconfig create mode 100644 include/configs/milkv_duo.h
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index 6d0d812ddb..de99ce3a28 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -14,6 +14,9 @@ config TARGET_ANDES_AE350 config TARGET_MICROCHIP_ICICLE bool "Support Microchip PolarFire-SoC Icicle Board"
+config TARGET_MILKV_DUO
bool "Support Milk-v Duo Board"
- config TARGET_OPENPITON_RISCV64 bool "Support RISC-V cores on OpenPiton SoC"
@@ -80,6 +83,7 @@ source "board/openpiton/riscv64/Kconfig" source "board/sifive/unleashed/Kconfig" source "board/sifive/unmatched/Kconfig" source "board/sipeed/maix/Kconfig" +source "board/sophgo/milkv_duo/Kconfig" source "board/starfive/visionfive2/Kconfig" source "board/thead/th1520_lpi4a/Kconfig"
error: patch failed: arch/riscv/Kconfig:80
Please, rebase.
I will rebase it.
diff --git a/board/sophgo/milkv_duo/Kconfig b/board/sophgo/milkv_duo/Kconfig new file mode 100644 index 0000000000..2a458f291c --- /dev/null +++ b/board/sophgo/milkv_duo/Kconfig @@ -0,0 +1,28 @@ +if TARGET_MILKV_DUO
+config SYS_BOARD
default "milkv_duo"
+config SYS_VENDOR
default "sophgo"
+config SYS_CPU
default "generic"
+config SYS_CONFIG_NAME
default "milkv_duo"
+config TEXT_BASE
default 0x80200000
+config ENV_SIZE
default 0x20000
+config ENV_SECT_SIZE
default 0x40000
+config BOARD_SPECIFIC_OPTIONS
def_bool y
select GENERIC_RISCV
+endif diff --git a/board/sophgo/milkv_duo/MAINTAINERS b/board/sophgo/milkv_duo/MAINTAINERS new file mode 100644 index 0000000000..651a0592f7 --- /dev/null +++ b/board/sophgo/milkv_duo/MAINTAINERS @@ -0,0 +1,6 @@ +Milk-V Duo +M: Kongyang Liu seashell11234455@gmail.com +S: Maintained +F: board/sophgo/milkv_duo/ +F: configs/milkv_duo_defconfig +F: doc/board/sophgo/milkv_duo.rst diff --git a/board/sophgo/milkv_duo/Makefile b/board/sophgo/milkv_duo/Makefile new file mode 100644 index 0000000000..a087013f5c --- /dev/null +++ b/board/sophgo/milkv_duo/Makefile @@ -0,0 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0+ +# +# Copyright (c) 2024, Kongyang Liu seashell11234455@gmail.com
+obj-y := board.o diff --git a/board/sophgo/milkv_duo/board.c b/board/sophgo/milkv_duo/board.c new file mode 100644 index 0000000000..eaa47be173 --- /dev/null +++ b/board/sophgo/milkv_duo/board.c @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: GPL-2.0+ +/*
- Copyright (c) 2024, Kongyang Liu seashell11234455@gmail.com
- */
+int board_init(void) +{
return 0;
+} diff --git a/configs/milkv_duo_defconfig b/configs/milkv_duo_defconfig new file mode 100644 index 0000000000..c4782639ef --- /dev/null +++ b/configs/milkv_duo_defconfig @@ -0,0 +1,24 @@ +CONFIG_RISCV=y +CONFIG_SYS_MALLOC_LEN=0x820000 +CONFIG_SYS_MALLOC_F_LEN=0x2000 +CONFIG_NR_DRAM_BANKS=1 +CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y +CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x82300000 +CONFIG_DEFAULT_DEVICE_TREE="cv1800b-milkv-duo" +CONFIG_IDENT_STRING="milkv_duo" +CONFIG_SYS_LOAD_ADDR=0x80080000 +CONFIG_TARGET_MILKV_DUO=y +CONFIG_ARCH_RV64I=y +CONFIG_RISCV_SMODE=y +CONFIG_FIT=y +CONFIG_SUPPORT_RAW_INITRD=y +CONFIG_HUSH_PARSER=y +CONFIG_SYS_PROMPT="milkv_duo# " +CONFIG_SYS_MAXARGS=64 +CONFIG_SYS_CBSIZE=512 +CONFIG_SYS_PBSIZE=544 +CONFIG_SYS_BOOTM_LEN=0x4000000 +CONFIG_ENV_OVERWRITE=y +CONFIG_SYS_NS16550=y +CONFIG_SYS_NS16550_MEM32=y +# CONFIG_EFI_LOADER is not set
Is there a limitation on the size of the binary or why are you excluding this option?
With the loady command you should be able to load an EFI binary via the UART and then launch it. U-Boot comes with some EFI test applications that you could run like smbiosdump.efi.
In my memory, enabling the CONFIG_EFI_LOADER option resulted in some errors on this board, but I forgot what those errors were. I will verify it, and if there are no issues, I will enable this option.
Best regards Kongyang Liu
Best regards
Heinrich
diff --git a/include/configs/milkv_duo.h b/include/configs/milkv_duo.h new file mode 100644 index 0000000000..0b4109dc1f --- /dev/null +++ b/include/configs/milkv_duo.h @@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/*
- Copyright (c) 2024, Kongyang Liu seashell11234455@gmail.com
- */
+#ifndef __CONFIG_H +#define __CONFIG_H
+#define CFG_SYS_SDRAM_BASE 0x80000000
+#endif /* __CONFIG_H */