oxidecomputer / hubris

A lightweight, memory-protected, message-passing kernel for deeply embedded systems.
Mozilla Public License 2.0
3.02k stars 175 forks source link

Grapefruit basic FMC poke support #1840

Closed cbiffle closed 3 months ago

cbiffle commented 3 months ago

This combines my latest work with @nathanaelhuffman 's FPGA branch. I highly recommend reviewing it as commits.

This should only affect grapefruit, the dev board, so it should be pretty safe. None of this is final code, we're still iterating.

mkeeter commented 3 months ago

On 7961fe2a42788396db8ecb36d665a0c16869ecde (the latest commit), I'm having issues with the FPGA:

$ humility hiffy -c FmcDemo.peek32 -a addr=0x60000104
humility: attached via ST-Link V3
FmcDemo.peek32() => 0xdeadbeef

The checksum of the FPGA image may be wrong; I'm seeing

MD5 (drv/grapefruit-seq-server/grapefruit.bit) = d2ba837267dcfa56206c4dfa7c2871df

Nathanael expects 92e405ba6aeca1baf9c9a2c0762a40ab

cbiffle commented 3 months ago

Nathanael expects 92e405ba6aeca1baf9c9a2c0762a40ab

So this has been very fun -- because we have a grapefruit.bit on master and one on Nathanael's branch, git keeps swapping them out when I rebase. This has happened like half a dozen times and I'm not sure why.

I have fixed it again, plz verify the checksum that you see.

mkeeter commented 3 months ago

Nathanael has since fixed a few more FPGA issues. Can you grab the latest bit file here, with the checksum

$ md5 drv/grapefruit-seq-server/grapefruit.bit
MD5 (drv/grapefruit-seq-server/grapefruit.bit) = cd47e194fc7db18201ae6b00e555ca10
cbiffle commented 3 months ago

We're abandoning this for now to avoid generating a lot of 4MiB FPGA commits on master.