Files
Linux_Drivers/opensbi/docs/firmware/fw_dynamic.md
sam.xiang 93f81bd490 [opensbi] create opensbi from T-Head official:
repo: https://github.com/T-head-Semi/opensbi
	commit: 89182b257c8798e15e4c685c1af0c2862d528d2a

Change-Id: I7b39d66729e0108661a6f4c9e28acbdb303684ea
2023-03-10 20:30:16 +08:00

1.5 KiB

OpenSBI Firmware with Dynamic Information (FW_DYNAMIC)

OpenSBI firmware with dynamic info (FW_DYNAMIC) is a firmware which gets information about next booting stage (e.g. a bootloader or an OS) and runtime OpenSBI library options from previous booting stage.

The previous booting stage will pass information to FW_DYNAMIC by creating struct fw_dynamic_info in memory and passing it's address to FW_DYNAMIC via a2 register of RISC-V CPU.

A FW_DYNAMIC firmware is particularly useful when the booting stage executed prior to OpenSBI firmware is capable of loading both the OpenSBI firmware and the booting stage binary to follow OpenSBI firmware.

FW_DYNAMIC Compilation

A platform can enable FW_DYNAMIC firmware using any of the following methods.

  1. Specifying FW_DYNAMIC=y on the top level make command line.
  2. Specifying FW_DYNAMIC=y in the target platform config.mk configuration file.

The compiled FW_DYNAMIC firmware ELF file is named fw_dynamic.elf. It's expanded image file is fw_dynamic.bin. Both files are created in the platform specific build directory under the build/platform/<platform_subdir>/firmware directory.

FW_DYNAMIC Firmware Configuration Options

The FW_DYNAMIC firmware does not requires any platform specific configuration parameters because all required information is passed by previous booting stage at runtime via struct fw_dynamic_info.