Hi everyone!
Thanks to some excellent work by Key2, we now have basic support for emulation of some HDMI2USB gateware features. This allows you to play with many parts of firmware development without needing hardware!
To use this emulation, the process should be;
- You can skip the section requiring the Xilinx tools if you don't ever want to use the real hardware.
2) Enter the gateware environment with ./scripts/enter-env.sh
3) Set PLATFORM and TARGET correctly - IE "export PLATFORM=mimasv2" if using the MimasV2
4) Run ./scripts/build-qemu.sh
This will build you an QEmu emulator for your target in ./build/$PLATFORM_$TARGET_lm32/qemu and then run the bios+firmware using the emulator.
The QEmu support is still very limited, at the moment it supports;
* Only the net and base TARGETs (no support for video or hdmi2usb targets yet).
* Emulation of lm32 CPU architecture (no support for or1k or risc-v yet).
* Stub emulation of memory interfaces like DDR ram, block RAM and memory mapped SPI flash.
* Emulation of liteEth for network connectivity (including mdio support).
* Emulation of I2C bitbanging.
There is still a lot of things which don't work properly (for example the timers) and it will be a lot of work to get this stuff upstream. Things which need work are support for more peripherals like the LED/switches, SPI flash bit banging, and video output stuff soon. Hopefully a GSoC student is interested in continuing this work (
https://github.com/timvideos/getting-started/issues/41) as it would accelerate it significantly!
Looking forward to seeing what this enables!
Tim 'mithro' Ansell