<whitequark>
sb0: lwip is linked even into the pipistrello runtime, is it?
<sb0>
it should... and eventually the pipistrello should use ppp too
<sb0>
felix_, how is that going by the way?
_whitelogger has joined #m-labs
<whitequark>
sb0: I'm concerned about using lwip's memory pools
Gurty has quit [Ping timeout: 246 seconds]
<mithro>
sb0: I have a couple more CSR questions
<mithro>
sb0: Why is there a "CSR" class which the other CSRStorage and CSRStatus don't inherit from?
<mithro>
sb0: It seems like that class is instantiated in do_finalize of both those classes
<mithro>
sb0: but I don't quite understand *why* it is doing this?
<mithro>
sb0: Nor why "_CompoundCSR" exists...
<mithro>
sb0: I was trying to create a "clear on read" interrupt style CSR - which I think you suggested I use the self.r signal with, but that only appears on the CSR class not the other ones
<mithro>
sb0: then I got confused
<sb0>
mithro, CSR can be mapped at only one addresses. the CompoundCSRs can be broken down automatically if they exceed the bus data width
<mithro>
sb0: oh
<sb0>
whitequark, why?
<whitequark>
sb0: they require tapping into barely-documented lwip guts
<mithro>
sb0: So, how would someone do the clear on read type system, just a manual instantiation of CSR class and doing the clear on the .r signal?
<mithro>
brb
<sb0>
mithro, you cannot detect reads
<sb0>
whitequark, for what exactly?
<whitequark>
sb0: creating a memory pool.
<sb0>
is that a complicated thing to do?
<whitequark>
I'm currently reading how it's done... you give lwip a file it includes several times deep in its guts, then you have to use its memp_function...
<whitequark>
yes, yes it is
<whitequark>
I'm still not sure how exactly it functions
<whitequark>
I *think* I can implement it now
<sb0>
if lwip is messy (it often is...) are there alternative and nice mallocs?
<whitequark>
I am looking for those right now.
<whitequark>
hell, I wrote a bunch, but I'm not sure if the (well-tested) code I wrote back then is still up somewhere.
fengling has joined #m-labs
<cr1901_modern>
sb0: You need a freestanding malloc()?
<cr1901_modern>
Yea, he's a good guy, even if he's not too thrilled with me lately lol
<cr1901_modern>
In any case, you'll need to write the malloc() wrapper yourself, but the hard part should be done for you
<sb0>
cr1901_modern, how is the scan widget coming along?
fengling has quit [Ping timeout: 256 seconds]
Gurty has joined #m-labs
<GitHub64>
[artiq] sbourdeauducq pushed 1 new commit to applets: http://git.io/vu78R
<GitHub64>
artiq/applets 2199ead Sebastien Bourdeauducq: gui/applets: save/restore state
sb0 has quit [Quit: Leaving]
mindrunner has quit [Remote host closed the connection]
mindrunner has joined #m-labs
fengling has joined #m-labs
mindrunner has quit [Quit: quit]
mindrunner has joined #m-labs
fengling has quit [Ping timeout: 256 seconds]
mindrunner has quit [Quit: quit]
mindrunner has joined #m-labs
mindrunner has quit [Quit: quit]
mindrunner has joined #m-labs
sb0 has joined #m-labs
<whitequark>
ok, there were no better contenders, so I will use trap15's code
rohitksingh1 has quit [Quit: Leaving.]
<felix_>
i removed everything except lwip from the runtime and still got only a little less than 50% unanswerded pings when doing a flood ping with 1000 bytes payload. with 100 bytes payload only very few packets get lost
<felix_>
i'm currently porting the lwip part of the runtime to a arm cortex m4, to get better debugging capabilities
<felix_>
seems to be some buffer or locking problem
<felix_>
i added some gpio module to the design and connected a logic analyzer to them to have a lok at the interrupt timing, but there should be enough time for the network stack to process the packets
<felix_>
the irq service routine took a bit longer than i expected though
early` has quit [Ping timeout: 250 seconds]
early has joined #m-labs
<felix_>
hmm, in this test run, i only got about 30% packet loss