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ファイルがあったので、これを試してみたいと思う。