lekernel changed the topic of #m-labs to: Mixxeo, Migen, MiSoC & other M-Labs projects :: fka #milkymist :: Logs http://irclog.whitequark.org/m-labs
mumptai has quit [Ping timeout: 245 seconds]
early has quit [Ping timeout: 264 seconds]
early has joined #m-labs
kyak has joined #m-labs
kyak has joined #m-labs
kyak has quit [Ping timeout: 272 seconds]
kyak has joined #m-labs
kyak has quit [Changing host]
kyak has joined #m-labs
mumptai has joined #m-labs
lekernel has joined #m-labs
mumptai has quit [Quit: Verlassend]
kyak has quit [Ping timeout: 276 seconds]
kyak has joined #m-labs
playthatbeat has quit [Read error: Connection reset by peer]
playthatbeat has joined #m-labs
playthatbeat has quit [Read error: Connection reset by peer]
lekernel has quit [Ping timeout: 245 seconds]
nicksydney has quit [Remote host closed the connection]
lekernel has joined #m-labs
<ysionneau> Ralf from RTEMS is proposing to drop RTEMS support of lm32 arch because "the corresponding toolchain is in rather unusable shape with no improvements in sight"
<ysionneau> I can't blame him for thinking that
<ysionneau> Nobody is working on lm32 gcc support?
<ysionneau> and if nobody is, who could? I think someone at least tried to work on lm32 gcc ...
<ysionneau> maybe he can resume his work and do something about it
<ysionneau> before lm32 support is dropped from everywhere because of this toolchain nightmare
<lekernel> 4.5 works well enough for most practical purposes ...
<lekernel> including rtems, afaict
<lekernel> I tried to have it fixed, but all I could get was a 36k$ quote for "having a look at the situation" before doing any actually useful work :-)
<ysionneau> 17:22 < lekernel> 4.5 works well enough for most practical purposes ... < I agree
<ysionneau> but other projects supporting several arch and 1 toolchain don't want to stay stuck at old gcc just because of lm32
<ysionneau> I guess that's their issue
<ysionneau> or they just don't want to maintain 2 sets of patches for 2 gcc versions
<ysionneau> something like that
<ysionneau> except this $36k quote, nobody here (or on the ML) was working on gcc to fix it?
<lekernel> personally, I have more than enough work supporting LM32 projects that are bare metal; and for those, 4.5 works correctly enough
* ysionneau is not talking about fdpic loader for nommu linux
<lekernel> you can even run Lua or Ruby ...
<ysionneau> yes I knew you didn't have the time for that, you are already doing a lot :)
<ysionneau> and you don't need RTEMS anymore anyway
<ysionneau> I could try to contact Jörn Rennecke from Embecosm
<ysionneau> maybe he would accept to do some work on lm32 gcc for free
<ysionneau> he is a gcc expect
<ysionneau> expert*
<lekernel> I can perhaps find a bit of funding, but not $36k
<ysionneau> embecosm is helping a lot openrisc, they might agree on helping a bit lm32 :)
<ysionneau> and compiler is their expertise field
<ysionneau> that's exactly what lm32 need and that's exactly what they are good at
<ysionneau> I will try to contact him I think, maybe he would accept to help
<ysionneau> before contacting him I will try to gather some information about what is wrong in the first place
<ysionneau> to have something to explain :)
<ysionneau> I bet modern gcc does not even compile for lm32 target
<lekernel> last time I checked it compiled, and then segfaulted immediately when you compiled anything with it, with an infinite recursion loop
<lekernel> which also happens when the gcc build scripts themselves run it
<ysionneau> hum :( bad bad bad
<ysionneau> but simple enough to explain !
<larsc> I'll take a look for 34.9k$, no problem ;)
<ysionneau> ahah
<ysionneau> I could as well ... :p
<ysionneau> but no result guarantee
<davidc__> are you set on GCC? (IE, would an LLVM-based toolchain work as well?)
<ysionneau> I almost never used llvm stuff, but I would blindly accept the fact that it's much better
<ysionneau> though as not all project switched yet to clang, I would really like anyway to have modern gcc working for lm32
<ysionneau> I would like both gcc and clang support :)
* ysionneau is maybe asking too much
<ysionneau> davidc__: you want to work (or are working?) on clang for lm32?
<davidc__> ysionneau: no; more that I'm vaguely interested at poking at LLVM backends
<davidc__> :)
<ysionneau> ok :)
<lekernel> davidc__, have you had a look at JB Bonn's existing work?
Alarm has joined #m-labs
mumptai has joined #m-labs
qwebirc27866 has joined #m-labs
<qwebirc27866> I have written a D flip-flop (just for learning migen) http://pastebin.com/7dHy0jr0
<qwebirc27866> On the verilog output, I can see the reset section
<qwebirc27866> if (sys_rst) begin Q <= 1'd0; Qi <= 1'd0;
<davidc__> qwebirc27866: Qi = Signal(reset=1)
<davidc__> qwebirc27866: or Qi.reset = 1
<qwebirc27866> Thanks a lot!
<davidc__> or, rather than defining two regs holding D + ~D (Q and Qi), define one reg Q holding D, and then combinatorially define Qi
<davidc__> IE, self.comb += Qi.eq(~Q)
<qwebirc27866> hm... yes thats correct
<davidc__> either is essentialy correct; assuming proper use of sys_rst
<qwebirc27866> "assuming proper use of sys_rst" did you mean Qi = Signal(reset=1) ?
<davidc__> qwebirc27866: if you don't assert sys_rst somewhere, with the synchronous design, the D ff could be in an invalid state
<davidc__> qwebirc27866: or it could be in an invalid state prior to asserting sys_rst
<qwebirc27866> What are these lines which I get when I wrte a combinational logic ?
<qwebirc27866> synthesis translate_off reg dummy_s; initial dummy_s <= 1'd0;
<davidc__> qwebirc27866: IIRC bugfixes for simulation
<davidc__> qwebirc27866: they don't actually cause generation of real logic
<davidc__> qwebirc27866: (the synthesis translate off helps with that; and since its not actually connected to anything, it gets dropped)]
<davidc__> qwebirc27866: I think its to workaround sim bugs
<lekernel> it's to run the "always @(*)" blocks once at the beginning
<lekernel> otherwise, signals that are driven combinatorially in such a block (as opposed to using assign) have undefined values at startup
<lekernel> verilog is super annoying
<lekernel> those dummy signals generate an event at startup in the sensitivity list of those blocks, and so get them to run
<davidc__> see lekernel's answer- he knows verilog better than I
<lekernel> a cleaner way to solve this problem would be to compute the initial results of the always @(*) blocks, and assign those values to the affected signals in a "initial" block or using "reg x = y;" declarations
<lekernel> but this requires full evaluation/process running support in Migen, and it doesn't have this at the moment (we might want it to support simulations without instances better and faster; at this point we can get rid of the dummy signal hack easily)
<qwebirc27866> @lekernel: What are the future development plans for Migen ?
Alarm has quit [Quit: ChatZilla 0.9.90.1 [Firefox 26.0/20131205075310]]
_franck_ has joined #m-labs
nicksydney has joined #m-labs
lekernel has quit [Quit: Leaving]
mumptai has quit [Quit: Verlassend]