GNUmoon has quit [Remote host closed the connection]
GNUmoon has joined #litex
feldim2425_ has joined #litex
feldim2425 has quit [Ping timeout: 255 seconds]
GNUmoon has quit [Remote host closed the connection]
GNUmoon has joined #litex
knicklicht has joined #litex
<knicklicht>
Can I configure my Lattice ECP5 so that the pins I use for I2C are configured to be pulled up internally? Is it safe to just attach a pull-up to pins that are configured as LVCMOS33??
<tnt>
internal pull-ups tend to be rather weak while I2C like stronger ones ( like 4.7k )
<knicklicht>
So it's fine to just attach external pull-ups to the FPGAs output. I was worried that it might be using some internal pull-down or something by default and combining that might damage the chip
<tnt>
nope
<knicklicht>
thanks :-)
<knicklicht>
Any Idea why the I2C core is pulling down the lines by default?
<tnt>
Not really, I never used the i2c core from litex, I have my own :)
knicklicht has quit [Ping timeout: 260 seconds]
wild has joined #litex
wild has quit [Remote host closed the connection]
wild has joined #litex
wild has quit [Remote host closed the connection]
WildCard has joined #litex
<WildCard>
Hey, I have a question about litePCIe. Can you DMA to the Host without the host setting up a region via BAR0? Or is this not allowed through the current stream implementation of DMA.
<WildCard>
Im trying to understand atm how I could DMA to any address, similar to what you can do with tools like pcileech.
<zyp>
yes, you can
<zyp>
the BAR0 is a target, i.e. answering read and write requests to a specific address range
<zyp>
the DMA block is an initiator, issuing read and write requests to arbitrary addresses
<tnt>
Although I'd expect any decent/recent OS to use the IOMMU so that you can't access anything that wasn't setup ...
WildCard has quit [Remote host closed the connection]
WildCard has joined #litex
<WildCard>
Ok, but then the Host, needs to use BAR0 to allocate memory for DMA. What im asking about is arbitrary DMA, I guess all that is needed there is the BME bit set in the control register, and memory read TLP requests to come in.
<WildCard>
I am talking about without and IOMMU enabled, and very early boot for instance.
<WildCard>
like post enumeration.
<WildCard>
I didnt know if the stream implementation of the DMA in litepcie was restricted. maybe to certain sizes?
<WildCard>
ok, i see you saying it can do arbitrary messages. Sounds good enough then. And how do you interact with it? via the CSRs? So i could DMA via the bios.c in the RiscV software for example. Ive yet to see an example of some software using those registers.