[v2,0/7] Add BSP for StarFiveTech VisionFive2 Risc-V board

Message ID 20230211092152.949442-1-felix.moessbauer@siemens.com
Headers show
Series Add BSP for StarFiveTech VisionFive2 Risc-V board | expand

Message

MOESSBAUER, Felix Feb. 11, 2023, 9:21 a.m. UTC
Changes since v1:

- rebased onto next (including bitbake 2.0 migration)
- exclude opensbi memory range in u-boot DT
- use upstream OpenSBI version (instead of StarFive version)

This series adds a new machine "starfive-visionfive2" which is a
Risc-V board based on the JH7110 SoC. The BSP is modeled based on the
buildroot SDK [1], but without any proprietary imaging components.

Further, we implement the fit + efi boot toolchain, instead of the
proposed ubootenv + fit version. This also requires that we embed the
board's linux device tree into the fit, as memory and reserved-memory
nodes are resolved via the efi API (implemented by u-boot) instead of
resolving them via the DT in Linux.

As the JH7110 SoC has no usable upstream support yet, we directly
build the 5.15 based kernel from the SDK, instead of porting patches
on top of the standard Linux. Distro kernels are also not supported.

Note: This series requires the following patch, which is NOT included:
"fix cyclic dep on crossbuild-essential-riscv64"

Best regards,
Felix Moessbauer
Siemens AG

Felix Moessbauer (7):
  u-boot: inject debian multi-arch config
  starfive-visionfive2: package u-boot
  starfive-visionfive2: package opensbi firmware
  starfive-visionfive2: add BSP kernel
  starfive-visionfive2: create u-boot-spl firmware
  starfive-visionfive2: create u-boot-spl FIT image
  starfive-visionfive2: add machine

 meta-isar/conf/local.conf.sample              |  1 +
 .../conf/machine/starfive-visionfive2.conf    | 29 ++++++
 .../starfive-visionfive2-sid-ports.conf       |  7 ++
 .../jh7110-u-boot-spl-image/files/install     |  1 +
 .../jh7110-u-boot-spl-image/files/rules       | 13 +++
 .../jh7110-u-boot-spl-image_0.1.bb            | 30 +++++++
 .../jh7110-u-boot-spl-tool_0.1.bb             | 23 +++++
 .../files/starfive-visionfive2-rules.tmpl     | 17 ++++
 ...ensbi-starfive-visionfive2_1.2+20230107.bb | 31 +++++++
 ...x-offset-of-env-data-block-on-jh7110.patch | 30 +++++++
 ...iscv-Fix-build-against-binutils-2.38.patch | 55 ++++++++++++
 ...-opensbi-memory-range-in-device-tree.patch | 40 +++++++++
 ...upport-building-double-float-modules.patch | 89 +++++++++++++++++++
 ...five-visionfive2_2022.01-rc4+VF2-v2.8.0.bb | 38 ++++++++
 .../files/rules.tmpl                          | 12 +++
 .../files/visionfive2-u-boot-firmware.install |  1 +
 .../visionfive2-uboot-fit-image.its.tmpl      | 41 +++++++++
 .../visionfive2-u-boot-firmware.bb            | 36 ++++++++
 ...or-unrecognized-opcode-csrr-a5-0xc01.patch | 26 ++++++
 .../linux/files/starfive2_extra.cfg           |  3 +
 .../linux/linux-starfive_5.15-visionfive2.bb  | 18 ++++
 .../canned-wks/starfive-visionfive2.wks.in    | 23 +++++
 .../u-boot/files/debian/rules.tmpl            |  9 ++
 23 files changed, 573 insertions(+)
 create mode 100644 meta-isar/conf/machine/starfive-visionfive2.conf
 create mode 100644 meta-isar/conf/multiconfig/starfive-visionfive2-sid-ports.conf
 create mode 100644 meta-isar/recipes-bsp/jh7110-u-boot-spl-image/files/install
 create mode 100644 meta-isar/recipes-bsp/jh7110-u-boot-spl-image/files/rules
 create mode 100644 meta-isar/recipes-bsp/jh7110-u-boot-spl-image/jh7110-u-boot-spl-image_0.1.bb
 create mode 100644 meta-isar/recipes-bsp/jh7110-u-boot-spl-tool/jh7110-u-boot-spl-tool_0.1.bb
 create mode 100644 meta-isar/recipes-bsp/opensbi/files/starfive-visionfive2-rules.tmpl
 create mode 100644 meta-isar/recipes-bsp/opensbi/opensbi-starfive-visionfive2_1.2+20230107.bb
 create mode 100644 meta-isar/recipes-bsp/u-boot/files/starfive-visionfive2/0001-fix-offset-of-env-data-block-on-jh7110.patch
 create mode 100644 meta-isar/recipes-bsp/u-boot/files/starfive-visionfive2/0001-riscv-Fix-build-against-binutils-2.38.patch
 create mode 100644 meta-isar/recipes-bsp/u-boot/files/starfive-visionfive2/0002-exclude-opensbi-memory-range-in-device-tree.patch
 create mode 100644 meta-isar/recipes-bsp/u-boot/files/starfive-visionfive2/0002-riscv-support-building-double-float-modules.patch
 create mode 100644 meta-isar/recipes-bsp/u-boot/u-boot-starfive-visionfive2_2022.01-rc4+VF2-v2.8.0.bb
 create mode 100644 meta-isar/recipes-bsp/visionfive2-u-boot-firmware/files/rules.tmpl
 create mode 100644 meta-isar/recipes-bsp/visionfive2-u-boot-firmware/files/visionfive2-u-boot-firmware.install
 create mode 100644 meta-isar/recipes-bsp/visionfive2-u-boot-firmware/files/visionfive2-uboot-fit-image.its.tmpl
 create mode 100644 meta-isar/recipes-bsp/visionfive2-u-boot-firmware/visionfive2-u-boot-firmware.bb
 create mode 100644 meta-isar/recipes-kernel/linux/files/fix-Error-unrecognized-opcode-csrr-a5-0xc01.patch
 create mode 100644 meta-isar/recipes-kernel/linux/files/starfive2_extra.cfg
 create mode 100644 meta-isar/recipes-kernel/linux/linux-starfive_5.15-visionfive2.bb
 create mode 100644 meta-isar/scripts/lib/wic/canned-wks/starfive-visionfive2.wks.in

Comments

Tobias Schaffner March 14, 2023, 3:31 p.m. UTC | #1
On 11.02.23 10:21, Felix Moessbauer wrote:
> Changes since v1:
> 
> - rebased onto next (including bitbake 2.0 migration)
> - exclude opensbi memory range in u-boot DT
> - use upstream OpenSBI version (instead of StarFive version)
> 
> This series adds a new machine "starfive-visionfive2" which is a
> Risc-V board based on the JH7110 SoC. The BSP is modeled based on the
> buildroot SDK [1], but without any proprietary imaging components.
> 
> Further, we implement the fit + efi boot toolchain, instead of the
> proposed ubootenv + fit version. This also requires that we embed the
> board's linux device tree into the fit, as memory and reserved-memory
> nodes are resolved via the efi API (implemented by u-boot) instead of
> resolving them via the DT in Linux.
> 
> As the JH7110 SoC has no usable upstream support yet, we directly
> build the 5.15 based kernel from the SDK, instead of porting patches
> on top of the standard Linux. Distro kernels are also not supported.
> 
> Note: This series requires the following patch, which is NOT included:
> "fix cyclic dep on crossbuild-essential-riscv64"
> 
> Best regards,
> Felix Moessbauer
> Siemens AG

I tested this series today. The isar-image-base target build and booted
just fine.

Best,
Tobias

> Felix Moessbauer (7):
>    u-boot: inject debian multi-arch config
>    starfive-visionfive2: package u-boot
>    starfive-visionfive2: package opensbi firmware
>    starfive-visionfive2: add BSP kernel
>    starfive-visionfive2: create u-boot-spl firmware
>    starfive-visionfive2: create u-boot-spl FIT image
>    starfive-visionfive2: add machine
> 
>   meta-isar/conf/local.conf.sample              |  1 +
>   .../conf/machine/starfive-visionfive2.conf    | 29 ++++++
>   .../starfive-visionfive2-sid-ports.conf       |  7 ++
>   .../jh7110-u-boot-spl-image/files/install     |  1 +
>   .../jh7110-u-boot-spl-image/files/rules       | 13 +++
>   .../jh7110-u-boot-spl-image_0.1.bb            | 30 +++++++
>   .../jh7110-u-boot-spl-tool_0.1.bb             | 23 +++++
>   .../files/starfive-visionfive2-rules.tmpl     | 17 ++++
>   ...ensbi-starfive-visionfive2_1.2+20230107.bb | 31 +++++++
>   ...x-offset-of-env-data-block-on-jh7110.patch | 30 +++++++
>   ...iscv-Fix-build-against-binutils-2.38.patch | 55 ++++++++++++
>   ...-opensbi-memory-range-in-device-tree.patch | 40 +++++++++
>   ...upport-building-double-float-modules.patch | 89 +++++++++++++++++++
>   ...five-visionfive2_2022.01-rc4+VF2-v2.8.0.bb | 38 ++++++++
>   .../files/rules.tmpl                          | 12 +++
>   .../files/visionfive2-u-boot-firmware.install |  1 +
>   .../visionfive2-uboot-fit-image.its.tmpl      | 41 +++++++++
>   .../visionfive2-u-boot-firmware.bb            | 36 ++++++++
>   ...or-unrecognized-opcode-csrr-a5-0xc01.patch | 26 ++++++
>   .../linux/files/starfive2_extra.cfg           |  3 +
>   .../linux/linux-starfive_5.15-visionfive2.bb  | 18 ++++
>   .../canned-wks/starfive-visionfive2.wks.in    | 23 +++++
>   .../u-boot/files/debian/rules.tmpl            |  9 ++
>   23 files changed, 573 insertions(+)
>   create mode 100644 meta-isar/conf/machine/starfive-visionfive2.conf
>   create mode 100644 meta-isar/conf/multiconfig/starfive-visionfive2-sid-ports.conf
>   create mode 100644 meta-isar/recipes-bsp/jh7110-u-boot-spl-image/files/install
>   create mode 100644 meta-isar/recipes-bsp/jh7110-u-boot-spl-image/files/rules
>   create mode 100644 meta-isar/recipes-bsp/jh7110-u-boot-spl-image/jh7110-u-boot-spl-image_0.1.bb
>   create mode 100644 meta-isar/recipes-bsp/jh7110-u-boot-spl-tool/jh7110-u-boot-spl-tool_0.1.bb
>   create mode 100644 meta-isar/recipes-bsp/opensbi/files/starfive-visionfive2-rules.tmpl
>   create mode 100644 meta-isar/recipes-bsp/opensbi/opensbi-starfive-visionfive2_1.2+20230107.bb
>   create mode 100644 meta-isar/recipes-bsp/u-boot/files/starfive-visionfive2/0001-fix-offset-of-env-data-block-on-jh7110.patch
>   create mode 100644 meta-isar/recipes-bsp/u-boot/files/starfive-visionfive2/0001-riscv-Fix-build-against-binutils-2.38.patch
>   create mode 100644 meta-isar/recipes-bsp/u-boot/files/starfive-visionfive2/0002-exclude-opensbi-memory-range-in-device-tree.patch
>   create mode 100644 meta-isar/recipes-bsp/u-boot/files/starfive-visionfive2/0002-riscv-support-building-double-float-modules.patch
>   create mode 100644 meta-isar/recipes-bsp/u-boot/u-boot-starfive-visionfive2_2022.01-rc4+VF2-v2.8.0.bb
>   create mode 100644 meta-isar/recipes-bsp/visionfive2-u-boot-firmware/files/rules.tmpl
>   create mode 100644 meta-isar/recipes-bsp/visionfive2-u-boot-firmware/files/visionfive2-u-boot-firmware.install
>   create mode 100644 meta-isar/recipes-bsp/visionfive2-u-boot-firmware/files/visionfive2-uboot-fit-image.its.tmpl
>   create mode 100644 meta-isar/recipes-bsp/visionfive2-u-boot-firmware/visionfive2-u-boot-firmware.bb
>   create mode 100644 meta-isar/recipes-kernel/linux/files/fix-Error-unrecognized-opcode-csrr-a5-0xc01.patch
>   create mode 100644 meta-isar/recipes-kernel/linux/files/starfive2_extra.cfg
>   create mode 100644 meta-isar/recipes-kernel/linux/linux-starfive_5.15-visionfive2.bb
>   create mode 100644 meta-isar/scripts/lib/wic/canned-wks/starfive-visionfive2.wks.in
>