This repository contains a version of QEmu for emulating LiteX based SoCs. This is mainly targeted at being used with the TimVideos HDMI2USB firmware which can be found here but could be reused with other LiteX based SoCs with some work.
There are two methods for building qemu-litex.
As qemu-litex targets a specific LiteX SoC it currently needs the configuration information from that SoC.
From fresh install, you will need the following packages: sudo apt-get install flex bison autoconf libtool libpixman-1-dev
- Follow "getting started" instructions for getting the gateware setup.
- You can skip the "Prerequisite (Xilinx)" section if you never want to build gateware for the FPGAs.
-
Enter the HDMI2USB-litex-firmware environment with
source scripts/enter-env.sh
-
(Optional) Set
PLATFORM
andTARGET
as needed.
- For example on the MimasV2 you need to set
export PLATFORM=mimasv2
.
- Run
./scripts/build-qemu.sh
. This will;
- Get the qemu-litex repo.
- Configure a qemu system for your platform/target in
./build/$PLATFORM_$TARGET_$CPU/qemu
. - Build qemu.
- Run the bios+firmware using qemu.
-
Clone the git repo with
git clone https://github.com/timvideos/qemu-litex.git
-
Enter the
qemu-litex
directory. -
(Optional) Set the
PLATFORM
,TARGET
andCPUS
to your required configuration. The defaults should be fine if you are just playing with things. -
Run the
./build-litex-qemu.sh
which will
- Download the configuration information, BIOS and firmware from the
HDMI2USB-firmware-prebuilt repo into the
build
directory. - Configure qemu to build in the
build
directory. - Build qemu.
- You can then run qemu by following the examples output at the end of the script.
-
- lm32
- or1k (openrisc)
- riscv
- sh2 (j-core)
-
Memory
- block rom
- block sram
- main memory (DDR?)
- spiflash (including bitbanging)
-
Peripherals
- timer (current broken)
- uart
- GPIO (LEDs, Switches, etc)
- I2C BitBanging
- LiteEth
- Ethernet transmission
- MDIO bitbang emulation
- MDIO is connected to virtual device info
- LiteVideo