FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

LiteXによるSoC環境構築を試行する (8. シミュレーション時にプログラムをロードするためには)

https://raw.githubusercontent.com/enjoy-digital/litex/master/doc/litex.png

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

github.com

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com