Ice40 HX8K EVB issues
See original GitHub issueThe BIOS does not compare up on the Lattice ice40 HX8K EVB. There are several issues.
I have gotten some of the way here:
https://github.com/niklasnisbeth/litex-buildenv/commit/846fc6193972692f9de8d99146f29702d6ff80e3
I have been trying to use litex-buildenv to make a vertexriscv image for the HX8K. I am using the stub firmware. The built firmware does not come up.
We tried adding the UARTWishboneBridge, but wishbone-tool
cannot connect to it (as if the Wishbone bus is locking up).
Moving the SRAM to address 0 makes it possible to inspect the wishbone bus with the tool.
The CPU was not running code correctly, changing the SPIFlash to little endian corrects this.
At this point, with UARTWishboneBridge still in, the CPU starts running the BIOS but is stuck in an infinite loop apparently in a call to vsnprintf in the BIOS that I cannot locate.
Removing the UARTWishboneBridge does not make the BIOS come up.
litex-buildenv revision 96ab220b0f60e3d509ca0a66dcfb81676ef294d9 results in a working Micropython environment.
Issue Analytics
- State:
- Created 4 years ago
- Comments:26 (26 by maintainers)
@niklasnisbeth I’ve CC’d you (and @mithro) on https://github.com/enjoy-digital/litex/issues/417; hope that’s okay.
@niklasnisbeth If you do have a way of trying the iCE40 HK8K with the
sram
size forced to 0x2000 (8kB) instead of 0x2800 (10kB) I think that’d be a useful thing to do. In theory it should at least show the Litex boot messages and confirm that serial output works for you too.Ewen
Thanks for testing.
lm32.minimal
is basically what I was testing with on a TinyFPGA BX, so that’s the most likely to work (I suspectvexriscv.minimal
should work too, but I don’t know when anyone last tested that on an iCE40 from litex-buildenv).MicroPython should build now (at least it did a couple of weeks ago), but it needs to be built with a custom script, eg:
(It’d be nice if
FIRMWARE=micropython
and “make image” or similar was sufficient, but that hasn’t been set up in the Makefiles AFAIK.)Assuming the image built and flashed okay, my guess is that the “slow binary counter on the LEDs” is something that’s built into the gateware (ie, not reliant on the CPU), and maybe the CPU still isn’t booting correctly.
Unfortunately I don’t have a
ice40_hx8k_b_evn
to test myself. But my guess would be that maybe something’s still needing to be converted in the target file to ensure that the CPU/RAM gets built with the correct memory layout.Ewen