LiteX実行時に自分の好きなプログラムをロードして実行するためには何をすればよいかというのを調査していた。 Linux-on-Litex-Vexriscv を見ていると、どこかにロードして動かすのがよさそうな気がしている。
litex_sim --help | grep init
[--rom-init ROM_INIT] [--ram-init RAM_INIT] [--with-sdram]
[--sdram-data-width SDRAM_DATA_WIDTH] [--sdram-init SDRAM_INIT]
[--with-spi-flash] [--spi_flash-init SPI_FLASH_INIT] [--with-i2c]
[--integrated-rom-init INTEGRATED_ROM_INIT]
--rom-init ROM_INIT
ROM init file (.bin or .json). (default: None)
--ram-init RAM_INIT
RAM init file (.bin or .json). (default: None)
--sdram-init SDRAM_INIT
SDRAM init file (.bin or .json). (default: None)
--spi_flash-init SPI_FLASH_INIT
SPI Flash init file. (default: None)
--integrated-rom-init INTEGRATED_ROM_INIT
Integrated ROM binary initialization file (override the BIOS when specified). (default: None)
SDRAMに何かをロードしてみようと思ったが、どうもエラーで動かない?
litex_sim --output build_vexriscv --cpu-type=vexriscv --cpu-variant=linux --with-sdram --sdram-init ../linux-on-litex-vexriscv/images/opensbi.bin
INFO:SoC:--------------------------------------------------------------------------------
Traceback (most recent call last):
File "/home/msyksphinz/.local/bin/litex_sim", line 33, in <module>
sys.exit(load_entry_point('litex', 'console_scripts', 'litex_sim')())
File "/home/msyksphinz/work/riscv/litex/litex_scariv/litex/litex/tools/litex_sim.py", line 547, in main
builder.build(
File "/home/msyksphinz/work/riscv/litex/litex_scariv/litex/litex/soc/integration/builder.py", line 335, in build
self._generate_includes(with_bios=with_bios)
File "/home/msyksphinz/work/riscv/litex/litex_scariv/litex/litex/soc/integration/builder.py", line 228, in _generate_includes
sdram_contents = get_sdram_phy_c_header(
TypeError: get_sdram_phy_c_header() takes 2 positional arguments but 3 were given
--rom-initをつけると、おそらくBIOSを上書きしてしまい動かない。
litex_sim --output build_vexriscv --cpu-type=vexriscv --cpu-variant=linux --rom-init ../linux-on-litex-vexriscv/images/opensbi.bin
--ram-initをつけると一応ブートしている。さてここから先はどうするんだ?
litex_sim --output build_vexriscv --cpu-type=vexriscv --cpu-variant=linux --ram-init ../linux-on-litex-vexriscv/images/opensbi.bin
とりあえず、Demoファイルがあったので、これを試してみたいと思う。
