shorne has quit [Read error: Connection reset by peer]
shorne has joined #litex
Degi has quit [Ping timeout: 256 seconds]
Degi has joined #litex
AndrewD has quit [Quit: Client closed]
SpaceCoaster has quit [Ping timeout: 256 seconds]
FabM has joined #litex
FabM has quit [Changing host]
FabM has joined #litex
SpaceCoaster has joined #litex
SpaceCoaster has quit [Ping timeout: 245 seconds]
SpaceCoaster has joined #litex
<MoeIcenowy>
got a Tang Mega 138K ES from Sipeed
<MoeIcenowy>
going to do some basic LiteX port to test it
mtretter has quit [Ping timeout: 245 seconds]
mtretter has joined #litex
<josuah>
whoa :D I was curious about arora
<josuah>
MoeIcenowy: I have not this board, but would be happy to help with the bringup
<josuah>
I have the distant impression that LiteX could be made much more generic at many places
<josuah>
in particular in the target board definition, where chunk of codes are typically copy-pasted from board to board
<josuah>
for instance, to add a `with_jtagbone` to a board, there are several places where to inject the support
<josuah>
it could be done programatically for all boards who declare a JTAG interface
<josuah>
is this all by design, or is this a matter of slowly geting there as LiteX gets built further?
<josuah>
board definitions would be reduced to declaring the hardware (pins, hardened cores, clocks) and surrounding tooling (platform, command line flags for the adapter...)
<josuah>
hmm, somehow, LiteX board definitions are already that
<josuah>
changes that affect all boards are always difficult unless owning the whole hardware
<whitequark[cis]>
there is a desire to improve board definitions dramatically in the next amaranth release
<josuah>
so it could need to be done incrementally: supporting "auto-feature" in enjoy-digital/litex, and make it an opt-in per board
<josuah>
whitequark[cis]: if I get enough time, I'd want to try add a `litex_boards/targets/amaranth_boards.py` :]
<josuah>
which would be a proxy to reuse all of Amaranth boards from LiteX
<whitequark[cis]>
this approach could result in friction, so it's something that needs to be evaluated carefully
<josuah>
I see how bugs in project X reported in project Y could be bothering
<josuah>
might be more fit as an evil experiment in basement lab than an official proposal
<zyp>
the problem I'd like to see a better solution for is when I've got a project that's buildable for multiple different boards that vary in what drivers they need
pavelow_ has quit [Quit: No Ping reply in 180 seconds.]
pavelow has joined #litex
<zyp>
e.g. if I've got one board with a ddr3 memory and one board with a hyperram and I've got a project that doesn't really care what memory technology is available, how do I abstract over the differences?
<whitequark[cis]>
I think you need two toplevels
<whitequark[cis]>
there is no abstraction here that would not be worse than having two toplevels, I think
<whitequark[cis]>
since the difference between the toplevels would be basically "which memory adapter you instantiate"
<zyp>
it gets more complex if you start considering a matrix of generic footprint compatible modules and project specific carriers
<zyp>
like the colorlight stuff -- i5, i9 and i9+ are effectively ecp5-25, ecp5-45 and xc7a50 modules that are footprint compatible
<josuah>
where "two toplevels" could be a single toplevel with "if" branching?
<zyp>
I've put one of them in a fanuc robot arm, and at some point I'll probably put another in a plasma cutter
<zyp>
I figure the project should be the toplevel, since it'll have different functionality depending on the device it's going into, but I'd like to be able to build each of the projects for either of the three modules