<Melkhior>
Hello all; I have a question about litex & sdcard - are you supposed to be able to see and mount an sdcard if you've booted from serial ? Or is it only to load the kernel & rootfs to memory ?
<Melkhior>
I have a piece of hardware I designed and I can't get the sdcard to work for me from my own gateware (unrelated to LiteX), but I can 'sdcard_detect', 'sdcard_init' and 'sdcard_read' in the LiteX BIOS...
<Melkhior>
I wanted to check the HW more thoroughly using it from Linux-on-VexRiscV, but I don't see the sdcard in 'dmesg' or in /dev.
<Melkhior>
Thanks for any help :-)
hansfbaier1 has joined #litex
hansfbaier has quit [Ping timeout: 240 seconds]
<_florent_>
Hi Melkhior, the SDCard can be used to load images with the BIOS but can also be used from Linux (even if Linux is booted from serial if the SDCard is declared in the .dts).
<Melkhior>
_florent_ thanks. It's not in my DTS so I guess PIBKAC :-)
<_florent_>
The current status with Linux-on-LiteX-VexRiscv is: with the BIOS: both SPI and SD mode are working. with Linux: SPI mode is working, SD mode still requires somes tests/fixes.
<Melkhior>
I forgot to change the DTB in my 'boot directory' when I added my expansion board, silly me...
<_florent_>
but SD mode is working in Linux with Rocket CPU, so it's probably not a big issue, but still need to be looked at :)
<Melkhior>
BTW - does the sdcard code requires 'wishbone' or does it have a lower-level interface ?
<Melkhior>
Also - I'm trying to add a micro-sd card slot to a 26 years old SPARCstation 20 so the performance of the SD interface is not the primary concern:-) (or Linux support, only NetBSD has good support theses days)
<Melkhior>
Thanks for the help!
<acathla>
I'm trying to understand why in uart.py, in RS232PHYTX Module there is this line : self.sink = stream.Endpoint([("data", 8)])
<acathla>
Why is TX a sink?
<zyp>
because a UART transmitter needs data to transmit, the sink is receiving that data
<acathla>
Okay, thanks zyp
hansfbaier1 has quit [Read error: Connection reset by peer]
shorne has joined #litex
<shorne>
somlo: FYI, the changes still look good, I may just merge soon
Bertl_zZ is now known as Bertl
<somlo>
shorne: sounds good, thanks!
<Melkhior>
_florent_ For some reason even with the right DTB I don't see the sd-card from Linux, but once I put the boot files on the sdcard the BIOS instantly boots from it - and a lot faster than from serial :-)
<Melkhior>
I might have an out-of-date/incompatible kernel and/or litesdcard...
<Melkhior>
anyway it shows that my HW is OK at least for reading, I guess
<Melkhior>
Thanks again
st-gourichon-fid has quit [Ping timeout: 256 seconds]
st-gourichon-fid has joined #litex
sthornington has joined #litex
sthornington has quit [Client Quit]
peeps[zen] has joined #litex
peepsalot has quit [Ping timeout: 272 seconds]
peepsalot has joined #litex
peeps[zen] has quit [Ping timeout: 264 seconds]
andrewb1999 has joined #litex
<_florent_>
acathla: sink/source is always relative to your point of view (if you see things from inside a Module or outside). Here for RS232PHYTX we are reasoning from outside where the sink receive the data. That's generally the approach that is used in the cores.
Melkhior has quit [Quit: Connection closed]
<_florent_>
Melkhior: good for the SDCard, if reads work, writes should also work (that's the same 4-bit bus)
<acathla>
_florent_, but in the module there is no fifo, but an Endpoint, and I don't really understand well the logic here
<_florent_>
acathla: that's True that it would be good to add some comments in this code :)
<acathla>
In every code in LiteX :P
<_florent_>
but basically, it receives the data on the sink. On the sink, 3 signals are used: valid/ready/data
<_florent_>
when valid is set to 1 (by the external Module driving it), we have a TX byte to transmit
<_florent_>
the core can then use the data and transmit it
<_florent_>
and then just ack on ready signal when done
<_florent_>
the external module can then just send the next data
<_florent_>
etc...
<_florent_>
The LiteX's streams are very close to AXI streams
<acathla>
The problem is that I cannot fill the TX FIFO so that the UART says it's full. A If(uart_txfull_read()) { printf("full\n" } uart_rxtx_write(somechar); in a loop never fills the fifo, even at 12MHz when it's a serial thing
<_florent_>
ah ok, maybe you could look at the AXI specification, it's well written and explains things clearly
<_florent_>
for your particular case it could just be that the transmitter consumes the data faster than provided by the CPU
<acathla>
How is it possible when it's a serial transmitted feeded by a parallel CPU?
<acathla>
unless it takes many CPU cycles to write to the FIFO
<_florent_>
observing the valid/ready signals of the transmitter's sink could be useful
<_florent_>
(I'm reasoning with the elements I have from our last discussion: SERV CPU, 8-bit CSR, etc... :))
<acathla>
I tried with a vexriscv, with code in RAM, much faster now
<_florent_>
(but you were also not using a regular RS232 transmitter IIRC)
<_florent_>
ok
<acathla>
right, to transmit with InfraRed
<_florent_>
at least, I think you would have a better visibility by including a LiteScope module or outputing some signals to a scope, this would also be very useful to understand how things are working
<acathla>
Last time I tried the design was too big to fit, but I can try now I removed USB
<acathla>
Or try on a bigger FPGA
<_florent_>
Yes I was going to recommend that
<_florent_>
LiteX greatly simplifies switching from a FPGA device/family to another, so I would really recommend prototyping things on a medium/large FPGA first
kgugala_ has joined #litex
kgugala__ has joined #litex
kgugala has quit [Ping timeout: 246 seconds]
kgugala_ has quit [Ping timeout: 240 seconds]
kgugala__ has quit [Ping timeout: 246 seconds]
kgugala has joined #litex
Bertl is now known as Bertl_oO
andrewb1999 has quit [Ping timeout: 256 seconds]
SpaceCoaster_ has quit [Quit: ZNC 1.7.2+deb3 - https://znc.in]
SpaceCoaster has joined #litex
andrewb1999 has joined #litex
andrewb1999 has quit [Quit: Konversation terminated!]
<Finde>
quick plug that if any of you have projects related to litex, you might want to add them to librecores.org to help others find them :)
acathla has quit [Read error: Connection reset by peer]