<_florent_>
kbeckmann: your ideas are interesting could be nice contributions! The idea with the bios is to keep it simple and flexible, some of the improvements ideas: add sd card boot support, improve oses booting (Linux, Zephyr, micropython, etc...), have the same features for all the suppported CPU, etc...
<_florent_>
kbeckmann: so being able to re-program the flash directly from the bios would definitely be useful for various use cases (being able to reflash software or the bistream with it without using jtag cable), and should not add too much complexity since we already have the flash support
CarlFK has joined #litex
<kbeckmann>
_florent_: cool then I'll keep that in mind and clean up my patches and submit a few PRs in the coming weeks or so.
CarlFK has quit [Quit: Leaving.]
CarlFK has joined #litex
CarlFK has quit [Quit: Leaving.]
somlo has quit [Remote host closed the connection]
somlo has joined #litex
lolsborn has quit [Ping timeout: 240 seconds]
CarlFK has joined #litex
CarlFK has quit [Remote host closed the connection]
<somlo>
are they doing the same general type of thing? The former is not in use anywhere right now that I can find, is it dead code, or were you planning on using it for something specific at some point in the future?
<_florent_>
somlo: the direction are different, one is Wishbone --> AXI, the other AXI --> Wishbone, i'm using Wishbone2AXI on another project, but this should probably be integrated in LiteX directly
<somlo>
oh, so the one in LiteDRAM is for when wishbone is the master port, and axi the slave
<somlo>
or no, wait, that's *my* scenario, I have axi master -> wishbone master, and litedram has the slave port :)
<somlo>
so I think what I *really* need is a native AXI data_width converter, same as what wishbone.Converter() does, except natively for AXI
<scanakci>
somlo: I have a question. https://pastebin.com/8bWCnWR5. Here, have CSRs(including DRAM_init), bootrom as wb slaves. In core.py, there are "rom" : 0x10000000, "sram" : 0x11000000, "csr" : 0x12000000,"ethmac" : 0x30000000
<scanakci>
I guess bootrom resides at "rom" address, and the first code that cpu executes. Next, bios is executed, which resides in sram. Is this correct? Also, what does DRAM_init refer to in the figure?
<somlo>
IIRC, the bios is in bootrom, located at the "rom" address. It's treated as "read-only", which is why the stack is set to the read/write-able sram
<somlo>
dram init is the MMIO register (CSR in the LiteX vernacular) used by the bios to initialize the LiteDRAM controller, before its axi or wishbone datapath can be used to send/receive data from the actual RAM
<somlo>
*registerS (plural, there are probably several of them)
<scanakci>
I see. Thanks, this clears my confusion. I was a bit confused since you mentioned that bios is in SRAM. "somlo: I think the bios is always in SRAM, whether simulated or part of an fpga bitstream image"
<somlo>
well, in that context I *meant* RAM that's on the FPGA (as opposed to DRAM via liteDRAM, or some other off-chip memory) :)
<somlo>
Litex uses on-FPGA memory for the "rom" which it *could* write over, but chooses not to, and the "sram" which is the same kind of memory, but designed to be writeable as well