Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ECPIX-5 support #428

Merged
merged 11 commits into from
May 16, 2024
Merged

ECPIX-5 support #428

merged 11 commits into from
May 16, 2024

Conversation

paulusmack
Copy link
Collaborator

The ECPIX-5 is a FPGA development board from Lambda Concepts with a Lattice ECP5 FPGA and lots of other stuff, including 512MiB of DRAM, 32MiB of SPI flash memory, gigabit ethernet PHY, micro SD card slot, USB2, USB3, HDMI and SATA interfaces, and 8 PMOD slots. It comes in 45K and 85K LUT versions.

This adds basic support for Microwatt on the 85K LUT version of the ECPIX-5, including support for the DRAM, flash memory, ethernet and SD card.

Note that the verilog for litedram, liteeth and litesdcard have been regenerated from recent upstream Litex for all supported targets. I have tested the arty_a7-100 target (and obviously ECPIX-5) but not any of the others.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
The flash chip on my board is an ISSI IS26LP256P chip.  The ISSI chip
requires slightly different setup for quad mode from the other brands,
but works fine with the existing SPI flash interface logic here.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Not wired to anything at this point.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
In future we will want to support targets using the same vendor but
running at different clock frequencies.  Since the clock frequency is
a parameter to the gateware generation process, we now name the target
directories as "vendor.frequency", i.e., "xilinx.100e6" and
"lattice.48e6" rather than "xilinx" and "lattice".

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
This regenerates the verilog code from upstream litex plus a patch to
generate outputs from the litesdcard module for controlling
bidirectional buffers between the FPGA and SD card.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Some signals have changed names: "eth_" has been dropped from the
names of the MII/GMII/RGMII signals.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
@mikey
Copy link
Collaborator

mikey commented Apr 9, 2024

Can we add this to CI also? something like this should do it:

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index cf220669fa..52db2cdc6e 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -73,7 +73,7 @@ jobs:
       fail-fast: false
       max-parallel: 2
       matrix:
-        task: [ ECP5-EVN, ORANGE-CRAB, ORANGE-CRAB-0.21 ]
+        task: [ ECP5-EVN, ORANGE-CRAB, ORANGE-CRAB-0.21, ECPIX-5 ]
     runs-on: ubuntu-latest
     env:
       DOCKER: 1

@paulusmack
Copy link
Collaborator Author

I should mention that the litesdcard verilog was generated by a modified litesdcard tree, which is published at https://github.com/paulusmack/litesdcard (master branch). I have put in a pull request for it, but it hasn't been picked up yet. I don't see why it would be controversial, since it's just exporting a couple of buffer direction control signals that already exist. We need them on the ECPIX-5 to control an external buffer chip between the FPGA and the micro SD card slot.

@paulusmack paulusmack merged commit 41da88e into antonblanchard:master May 16, 2024
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants