#milkymist IRC log for Thursday, 2012-01-26

wpwrakwhitequark: when you're done with flash, maybe you could look at the performance of the xilinx synthesis tools next. a 10x speedup or so would be quite welcome ;-)00:09
wpwrakmdump and medit seem to have some nice bugs ...00:45
whitequarkwpwrak: sure. I think  that in a few days I'd have a full decompiler00:56
whitequarkit already outperforms a commercial ($1k) one by its features00:56
wpwrak;-)00:56
whitequark_and_ it easily eats obfuscated code.00:56
whitequark_and_ it consists of 3172 lines of Ruby code00:57
whitequark(just above three thousand, yes)00:57
wpwrakhmm. medit is a bit of a joke. byte-wise addressing. are we on x86 or what ?00:59
wpwrakbah, in APL, it would be just one line ;-)01:00
whitequark... and that line would take forever to write :)01:02
whitequarkand a whole team of  scientists to understand, yes.01:02
wpwrakyeah, that's pretty much how the jokes about APL programmers go :)01:05
whitequarkdo you know APL?01:17
wpwraki once learned to read it a bit. but never actually programmed in it01:21
Action: whitequark implements a dup failover for bytecode-to-ast translator. For, you know, to decode &&s _not_ as a series of ifs().01:28
whitequarkmaybe I should look into your foss translator. writing compilers amuse and challenge me01:29
whitequark(and yes, it is indeed a compiler. From bytecode to the source code.)01:30
wpwrakcompilers are fun01:35
wpwraki'm quite enjoying myself hacking the one in flickernoise01:35
wpwrakgrmbl. after weeks of ~38 C, 25 C feel rather unpleasantly cold01:41
whitequarkit's -18C  here02:06
whitequarkand I'm not complaining :D02:06
whitequarkactually, I just walked outside for a hour in just a t-shirt and a light jacket (unzipped), because I've enjoyed it02:07
whitequarkwell, it beginned with taking out the trash.02:07
whitequarkthen, RCHP in my player has happened.02:07
whitequark*RHCP02:07
whitequark(compilers) I'd consider using some dialect of Lisp (very preferably Scheme) for my next compiler-related project02:08
whitequarkI've stretched Ruby to the extent when its metamagic is practically indistinguishable from Lisp macros02:09
whitequark(metamagic = weird stuff like static class methods which turn closures into methods which in turn make more methods, etc.)02:09
whitequark(it allows one to make code like 10x smaller with (if wisely done) no runtime performance penalty)02:10
whitequarkactually, the deep magical abilites of Ruby is the very reason I'm hacking on this flash stuff at all02:11
whitequarkwithout them, this wouldn't be fun, but boring and repetitive02:11
whitequarklike Java02:11
Action: whitequark freezes in horror02:11
whitequark(freezes) not literally, as I have a good 2kW heater in my room, so it's quite comfortable here.02:12
kristianpaulwpwrak: ha, you found mdump and medit lovelly as i did :)02:17
kristianpaulsince then i feel not tempted to abuse tha rtem shell..02:18
kristianpauland missed linux a lot ;)02:19
kristianpaulwhoo patch :) wpwrak !! :-) THANKS02:20
wpwrakkristianpaul: wasn't that hard to fix :)02:29
kristianpaulfor you..02:30
whitequarkhm.02:31
kristianpaulqi-bot: may get angry for that :)02:34
whitequarkjust fixed a nasty sleeping bug02:34
whitequarkwhich caused it to die silently sometimes02:35
qi-botThe Firmware build was successfull, see images here: http://fidelio.qi-hardware.com/~xiangfu/build-milkymist/milkymist-firmware-01262012-0207/02:55
wolfspraulwpwrak: great, with the -tmp files you uploaded yesterday mouse works08:23
wolfspraul[unrelated to usb] seems that when trying to run simple mode, if you run into a patch with a problem, you cannot run the entire series08:24
wolfspraulit just says "Failed to compile" then all you can do is go back?08:24
wpwrak(mouse works) victory !! ;-))08:24
wpwrak(compile errors) yes, you have to fix the error(s) before the series will run08:25
wpwrakafaik, it's always been like this08:25
wolfspraulskip button would be smarter, or maybe ignore altogether08:26
wolfspraulok lemme see the icreativ now08:26
wolfsprauloh my god, yes, the values are moving :-)08:27
wolfspraulunder 'latest active controllers' I just see numbers though08:28
wolfspraullike 11 (91)08:28
wolfspraul11 seems to stand for the icreativ pad08:28
wpwrakvery good :)08:28
wpwraknow, assign midi1 through midi3 as follows: pad x, pad y, fader, one of the encoders (dials)08:30
wolfspraulhow?08:31
wpwrakand then you can run the tornado rain dance remix08:31
wpwrakah, open the midi dialog08:31
wpwrakthen click on midi1 and keep the mouse button pressed08:31
wpwrakthen use the control in question (i.e., make is send something)08:31
wpwrakthen the value should appear08:32
wpwrakrelease the mouse button and repeat with midi2, etc.08:32
wolfspraulkeep mouse button pressed doesn't work, but there's an edit field where I can enter a number08:32
wolfspraulif I had a USB connector free for a keyboard, so maybe I need to juggle between mouse & kbd?08:33
wpwrakpress it with the mouse over "midi1"08:33
wolfspraulI did but nothing happens08:34
wpwrakdid you keep it pressed while making controller input ?08:34
wolfspraulbut isn't that an edit field next to "midi1"?08:34
wolfspraulahh08:34
wolfspraulno, wait08:34
wpwrakhah :)08:34
wolfspraulour oh-so-intuitive interface08:34
wolfspraulahem08:34
wolfspraulyes!08:35
wpwrak(intuitive) yeah, it's something you have to know. couldn't think of an easy way to do this without adding clutter08:35
wolfspraulwhat do you mean with pad x/y ?08:35
wolfspraulif the first number is the controller, I see 11 and 12 and 13 when playing with the pad08:36
wolfspraulcan't really see a pattern yet08:36
wpwrakhorizontal movement = 1208:37
wpwrakvertical = 1308:37
wolfsprauloh08:37
wolfspraulperfect, I have 12-13-7-40 there now08:37
wpwrakit works best if you make an x or y movement and when you see the right number appear, release the mouse button in the movement08:37
wolfspraulsure08:37
wpwraksounds good08:37
wpwraknow, click OK08:37
wpwrakand then run the tornado rain dance rmx08:38
wolfspraulI may not have the latest data partition08:38
wolfspraulgeiss & werner08:39
wpwrakyou could probably download it08:39
wpwrakyeah !08:39
wolfspraulthat must be it08:39
wolfspraulwow, very nice08:41
wolfspraulis there a way to change the color?08:41
wpwraksee what M1 can do ? ;-)08:41
wpwrakyes. go back to the MIDI dialog, set the icreativ to "Control" (3rd button on the right), then assign midi4-8 to four of the virtual faders08:42
wpwrakOK again, and then you have red/green/blue on the first three faders and the color change speed on the fourth. default color change speed is 0, so nothing will happen before you increase that08:43
wpwrakif you play some music, the pattern should become alive a bit more and you can create collision effects in the center:08:44
wolfspraulhmm, interesting08:45
wpwrakpick a high Y position (with some X you like, shouldn't be extremely low, though); move the spots out a bit with the fader;08:45
wolfspraulthe ability to control color doesn't come across very well right now for me08:45
wolfspraulthat's a nice demonstration of the importance of different types of controls08:46
wpwrakincrease their size/chaosity with the knob/dial (midi4); then bring them closer together with the fader08:46
wolfspraulso with those 4 virtual encoders, I don't feel I can influence the color in a controlled way, will play a bit more with that08:46
wpwrakwhen they're at the point of touching each other, the pattern in the center will "explode" outward08:47
wpwrakcolor is difficult, yes08:47
wpwrakthe patch also runs a color change algorithm underneath08:47
wolfspraulyeah08:47
wolfspraulit's ok, just saying08:48
wpwrakso R/G/B merely affect how important the respective channel is. also, there's a level balancing. so if you set them all to zero, it still rotates through all of them08:48
wolfspraulsure, this needs a lot of thought to be intuitive08:48
wolfspraulbut all cool, it works :-)08:49
wolfspraulusb-midi that is08:49
wpwrakyou get a clearer effect with the color speed. set a low X high Y value, so that you get more or less a straight line. then you can see how the colors change08:49
wpwrak(works) congratulations ! that was an arduous journey ;-)08:50
wpwrakah, and if you want to keep the MIDI settings, you have to save the "performance"08:50
wolfspraulnah08:50
wpwrakelse, they get reset when you reboot08:50
wolfspraulif something is on a fader, you better make sure whatever it corresponds to has a min/max that is known and fixed in advance08:51
wpwrakof course, once you get the hang of it, you're about as fast setting it up again as you are digging out and loading the performance :)08:51
wolfspraulfor example in that patch, when I up the fader, the circle of action increases08:51
wpwrakyes08:51
wolfspraulbut what if I want to increase beyond the max?08:51
wolfspraulthat's frustrating to run into the wall :-)08:51
wpwrakevery control has a min/max value08:51
wpwrakhehe ;-)08:52
wolfspraulsure, just saying08:52
wolfspraulwith an endless encoder you can keep turning, though software then still has to make sense of it08:52
wpwrakit's like a real musical instrument. no matter how much you'd like it to, your guitar won't have more strings ;-)08:52
wpwrak"trust the designer" :)08:52
wolfspraulindeed08:52
wolfspraulwhy does usb work in your images, but not at all in xiangfu's last daily build?08:53
wpwraki was thinking of combining controls, with one adjusting a multiplier/exponent08:53
wolfspraulI have to look into the daily builds, not that I think anyone is using them...08:53
wpwrakdunno. yesterday, i found and fixed a missing commit that may have broken builds. so maybe it was actually an old version.08:54
wolfspraulah ok08:59
wpwrak(fader vs. encoder) it's also a question of which type of control gives you the better movements. e.g., you can also create dynamic effects by varying the position rapidly08:59
wpwrake.g., find a nice "orbit" where the spots don't touch. then quickly move them into the center and bring them out again09:00
wpwrakthis gives you an "explosion" with the spots superimposed09:00
wpwraknow vary them with the music, etc.09:00
wpwraksimilar, you can create a pumping effect for the whole screen: move the fader to near-zero, Y low, then increase Y until you get an "explosion". then it reaches the edge of the screen, decrease Y to make it shrink again.09:02
wpwraks/then/when/09:02
wpwrakyou can also play with the rotation. but that doesn't work to nicely with the low resolution of the icreativ09:03
wpwrak(rotation) e.g., put a finger at X = 0, press with another finger at a larger value of X, to start rotating. then release it to stop. press again, etc. kinda like visual scratching09:04
wpwrakthere are a few more things one could do with this patch, e.g., change the way the border behaves when shrinking the pattern. but we'll need more controls for that :-)09:10
wpwrakif you want to try the LV3, you'll need to go  PC--(OSC,Ether)-->M1  for now, with midi2osc doing some mapping on the PC09:13
lekernel_whitequark: what's that Ruby-based 'flash stuff' about?09:32
wpwraklekernel_: looks like whitequark's job application for working at adobe :)09:45
Fallenou22:14 < mwalle> Fallenou: btw there are four (or five?) unused opcodes, two reserved ones and div/mod (there is only a divu and modu iirc) < OK I must have looked too fast the op code lookup table, indeed I see now the two "reserved" opcodes, great :) We could then use those two reserved opcodes as "Control Register (CR) Format10:05
FallenouControl Register (CR) Format instruction types10:05
Fallenoubtw I don't get why they put a mul and div opcode in the opcode lookup table, and then do not describe those instructions afterward, they just don't exist (yet) ? It seems you can only get mulu et divu (if you enable it)10:07
FallenouSo I wonder why they didn't put mul and div as reserved too10:07
wpwrakhmm. i'm getting confused about blocking vs. non-blocking. why is  count <= count+1; if (count) ...  valid ? if i understand things correctly, the non-blocking assignment <= means that the  count <= count+1;  and the  if (count)  can be scheduled concurrently10:14
wpwrakor does verilog provide an exception for "obvious" data dependencies ?10:15
wpwrakor are we exploiting some implementation properties ?10:15
Fallenouif you do count <= count + 1 if (count) your "if" will get the "old count" if I understand correctly10:15
lekernel_if you use "<=" the signals take the value from their last assignment only after all the always block has been executed10:16
wpwrakaah !10:16
wpwrakthanks. that explains a lot ;-)10:16
lekernel_it's standard behaviour, not implementation property or someting10:16
Fallenouif count = 3, then you will do if (3) and the next clock cycle (or always execution) you will get count = 410:16
stekernthe only case where the order matters is if you have for example: count <= count + 1; if (count) count <= 0;10:17
lekernel_yes, that why I said "from their *last* assignment"10:17
wpwrakwhich in this case would be implementation-dependent10:18
lekernel_no10:18
wpwrakin the case of  count <= count + 1; if (count) count <= 0;  ?10:19
wpwrakwell, is "last" lexical or temporal ?10:19
lekernel_temporal10:19
lekernel_that code would produce 0/1/0/1/0/1 ...10:19
lekernel_on all implementations10:20
wpwrakhmm, why ?10:20
wpwrakcount <= count+1; and if ... should be able to be scheduled independently if the assignment doesn't block10:20
lekernel_start with 0, you get count <= count +1, then the if isn't executed, and at the end of the always block it's only "count <= count +1" which matters, and you get 110:21
wpwrakah ! got it10:21
lekernel_start with 1, you get count <= count +1, but the if gets executed this time, and the last assignment is then "count <= 0", and you get 010:21
stekernit's the same as if (count) count <= 0; else count <= count + 1;10:21
lekernel_yes10:21
wpwraksubtle :)10:22
Fallenougood to know about the "last assignment" thing10:22
larscwpwrak: think of count as two variables10:23
larsccount_next when it is on the left side10:23
larsccount_prev when it is on the right side10:23
larscat the end of always block you do count_prev = count_next10:23
wpwrakyes, i think i got it. i didn't think of the "the assignment is guaranteed not to happen before the end of the block"10:23
wpwrakwas more thinking of something along the lines of   count=`expr count + 1` & if [ count -ne 0 ] ... &10:24
wpwraki.e., where the assignment may or may not complete before the value is read10:24
wpwrakand in 26 minutes i'll know if my understanding has sufficiently penetrated the mysteries of verilog ...10:27
lekernel_wpwrak: you can edit setup.v and disable large cores like the tmu10:30
lekernel_or use a simulator10:30
Fallenouif Xst/others would not support multi dimensionals array (like 3-dimensional) that would mean they do not support Verilog-2001 :x10:31
wpwraktoo lazy to have build variants :)10:31
wpwraki'll just clean up my code while waiting ...10:32
wpwrakback to the count example. i'm afraid i still don't get :-(  with    count <= count + 1; if (count) count <= 0;10:44
wpwrakif count is 1 when we do this, don't we have  count <= 2  race  with  count <= 0  at the end of the block ?10:45
lekernel_no, it's the last executed assignment which gives the value of count at the end of the block10:50
wpwrakyes, but what rules makes the  count <= count+1  execute first ? is it still lexical order then ?10:51
wpwraki.e., if i had   for (i = 0; i != 1000; i = i+1) foo <= i;  would then the result to be guaranteed to be 999 ?10:52
wpwraks/to be g/be g/10:52
wpwrakor, alternatively, if i unrolled the loop and wrote   foo <= 0; foo <= 1; ...; foo <= 999;10:53
wpwrakalas, my verilog book doesn't give much of a definition there ;-(   (or maybe they hid it in an unlikely place)10:54
stekernyes, foo would be 99910:57
lekernel_wpwrak: the "execution" is like a C program... except that the "variables" using <= only take their values at the end of the always block11:03
wpwrakokay, thanks. the naming is confusing. seems that calling <= a "deferred assignment" would be clearer11:04
wpwraknow my little critter is starting to look good :)11:12
wpwraklekernel_: thanks for forwarding the rtems patch !11:38
whitequarklekernel_: https://rubygems.org/gems/furnace-avm212:04
whitequarklekernel_: a real-world usage example would be: http://pastie.org/325593212:08
sh4rm4whitequark: missing plugin14:14
whitequarksh4rm4: I think that's not essential for viewing of the page14:17
whitequarkflash is used there for something like URL to clipboard copying14:17
GitHub32[milkymist] wpwrak created ledmtrx (+1 new commit): https://github.com/milkymist/milkymist/commit/1ec682814:26
GitHub32[milkymist/ledmtrx] LED matrix controller - Werner Almesberger14:26
lekernel_wpwrak: you shouldn't do stuff when reset is asserted14:30
lekernel_eg if(reset) r <= 0; r <= foo;  ===> if(reset) r <= 0; else r <= foo;14:31
lekernel_(there are some places in the MM code where I omit reset, but those registers do not have any reset... not a half-implemented one)14:31
lekernel_also, what's the "begin: _" syntax? can't you use simply "begin" ?14:32
wpwrakverilog sometimes insists that blocks be named, e.g., for local variables or for "disable"14:42
wpwrakdid you see that, on reset, i exit the always block after initialize() ?14:43
wpwrakthe "_" is just my silent form of protest that i'm required to provide a name at all :)14:44
lekernel_hm, I didn't know about disable... never seen it in any other code than yours14:45
lekernel_where did you get that from?14:45
lekernel_and does xst do the right thing(tm) when it sees it, or messy hardware?14:45
wpwrakfrom the book "Verilog HDL" by Samir Palnitkar14:45
lekernel_the xst coding guide recommends using if(reset) ... else ...14:45
wpwrakas far as i can tell, it seems to be a standard feature14:45
wpwrakwell, it ought to be equivalent. just a different style14:46
lekernel_yes, it is... there are tons of features in verilog, some are relevant, others not14:46
lekernel_a bit like C14:46
wpwrak;-)14:46
lekernel_by the way, if writing reset code bores you (it should), migen takes care of this automatically, too14:47
wpwrak;-))14:47
wpwraklet me first understand verilog. then i'm in a much better position to bicker about usability regressions in migen :)14:48
lekernel_https://github.com/milkymist/milkymist/blob/master/cores/tmu2/test/tb_tmu2.v#L11814:48
lekernel_without "begin: _"14:48
lekernel_now maybe that's a xst peculiarity - I've never tried to synthesize tasks14:49
wpwrakthere's no local variable there14:49
wpwrakthe "input" is an argument14:49
lekernel_here's another example then: https://github.com/milkymist/milkymist/blob/master/cores/tmu2/test/tb_tmu2.v#L17114:49
wpwrakah, right. yes, that work. but i didn't like mixing arguments and local variables14:50
wpwrakso i went for a C-ish style with the local variables clearly set apart. but for this, i need to name the block14:50
lekernel_then again you should be happy to use migen :p14:51
wpwrakjust need to de-pythonize migen ;-)14:52
lekernel_the advantages of pythonization far outweights the small syntax issues14:52
wpwraksyntax matters :)14:52
lekernel_it's not worse than verilog14:52
wpwrakyeah, i wonder how verilog ended up like this14:52
lekernel_let alone vhdl14:52
wpwrak`define ? backticks ? c'mon14:53
wpwrakand since they already went for C style, pray tell why not use { ... } instead of begin/end ? i don't think the grammar would get ambiguous. just needs a bit more work since it's not trivially LALR(1) anymore14:55
wpwrakand then nonsense like requiring blocks to be names in order to get local variables. they had C as a nice and simple example to copy from. was that really too hard ?14:56
wpwraks/names/named/14:56
wpwrakof course, that i've seen of VHDL syntax, that one is pure evil. like SDL.14:58
wpwrakwell, the critter works. that's what counts :) and i've learned a bit about verilog. shouldn't be hard to transform the thing when we do the great big switch to migen.15:00
wpwrakactually, you suggesting i use migen suggests migen can be deployed incrementally. so that would be even better than a great big switch.15:00
lekernel_yes it can, but it's more work in the end15:04
lekernel_and I don't plan to support much of the current architecture (CSR/FML) in Migen15:05
wpwrakah, i see15:06
lekernel_but new code should use migen :p15:06
wpwrakwithout a way to connect to the rest of the system ? :)15:08
lekernel_there is a way.. only you'll have to implement CSR manually (like you did in verilog)15:11
wpwrakokay, that doesn't sound too scary15:21
lekernel_the only unsupported thing is tri-state I/O15:21
lekernel_but it shouldn't be very hard to add15:22
wpwrakoh, important for memory :)15:26
lekernel_memory?15:26
lekernel_DRAM?15:26
lekernel_we'll use a verilog phy... with unidirectional signals to/from the controller15:27
wpwrakfor NOR, too ?15:28
lekernel_yes, too15:33
wpwrakhmm, and the gpios have hard-coded directions15:35
wpwrakbut it would be good to have more flexible gpios for the extension header15:36
wpwrakfor quick prototyping, without having to write HDL15:36
wolfspraulnice picture of lots of leds :-)16:07
wolfspraulcan you take a video of how they are being controlled?16:07
wolfspraulon the picture, it looks like they are being controlled gradually increasing from off to full?16:08
whitequarklekernel_: any comments on "flash stuff"?16:32
lekernel_tbh I'm not very interested in flash (nor HTML, javascript, etc.)16:56
qi-botThe Firmware build was successfull, see images here: http://fidelio.qi-hardware.com/~xiangfu/build-milkymist/milkymist-firmware-01262012-1611/16:58
GitHub102[migen] sbourdeauducq pushed 1 new commit to master: https://github.com/milkymist/migen/commit/bf2f6f31e372378bd736dbebefc77b4da07d8edf17:06
GitHub102[migen/master] doc: ASMI description - Sebastien Bourdeauducq17:06
whitequarklekernel_: expected. I was quite surprised you ever asked about that :)17:33
lekernelwpwrak: btw "if (pre_count < prescaler)" ==> "if (pre_count != prescaler)"17:44
lekerneltest for equality is a bit less expensive than comparision17:45
xiangfulekernel, just sent out two small patches about save and restore the manual edit network configure. please take a look.17:56
xiangfuwill check email tomorrow. have to goto sleep. see you17:56
larsclekernel: so to continue where i left off yesterday. If you have http://metafoo.de/flow4.png where A1,A2 and B1,B2 are instances of the same type. It is pretty obvious that B1 and B2 can be timeshared since only ever one of them will be active at a time.18:27
larscBut you can also deduce from the model that A1 and A2 can be timeshared18:28
kristianpaulnice leds :)20:26
kristianpauland source code :)20:26
kristianpaulgood use of tasks20:28
kristianpaulI'll keep in mind20:28
kristianpaulso far i just tought using tasks in test benches..20:29
wpwrakwolfspraul: (increasing) yes, i just loaded a ramp from 0 to 255. the display is static20:47
wolfspraulok, I see. no dancing led zoo yet... :-)20:50
wpwraklekernel: (test for equality) yeah, i didn't want that to avoid cycling through the values above "prescaler" in case someone sets a value below the current pre_count. of course, if prescaler_bits is reasonably small, like here, it doesn't really matter20:50
wpwrakwolfspraul: the dancing LEDs would be under software control ;-) i hope sw-updating the LED array at, say, 10 Hz, wouldn't tax the core to badly20:53
wpwraklekernel: so i'm a bit torn between making it efficient and making it somewhat foolproof. e.g., you could conceivably make the prescaler 32 bits wide and then sit in the dark for ~53 seconds after an ill-fated  prescaler update. it's a bit of a "white people problem", admittedly.21:02
mwallewpwrak: since you merge the symtab branch you could remove it from the public repo :)21:24
wpwrakyeah .. lemme check what local branches i have left dangling ...21:31
mwallegit push github :symtab (or sth like that ;)21:33
wpwrakyup21:34
wpwraki used  git push origin :symtab21:34
wpwrakgone both from milkymist and flickernoise. thanks for the reminder !21:34
mwallemh endless reboots with qemu and mm bios, nice21:35
Action: wpwrak celebrates the invention of the perpetuum mobile21:41
mwallewpwrak: invented by you?21:41
wpwrakby you, no ? "endless reboots" :)21:42
mwallewho say it doesnt need any energy to keep it alive ;)21:43
mwallelekernel: what does "BRD: SoC and HAL versions do not match!" mean?21:47
wpwrakah, you cheated. pity.21:48
wpwrak(BRD) is it showing you the bird ? :)21:48
mwallelekernel: nevermind, bitstream version, not board revision :)21:48
mwalleanybody has a recent flickernoise binary (not stripped) for me? :)21:52
Action: mwalle is still to lazy to get rtems flying ;)21:52
wpwrakmwalle: maybe i could get you interested in my cheat sheet ? http://projects.qi-hardware.com/index.php/p/wernermisc/source/tree/master/m1/BUILD-CHEAT-SHEET21:54
wpwrakmwalle: (just updated it to pin to 01-DEC-2011, since they added regressions afterwards which i think are still around)21:56
mwallewpwrak: i still would prefer an image, i would still need to compile lm32-rtems-*21:56
wpwrakyou don't even have a compiler ? pfui ...21:59
mwalleno rtems one :)22:03
wpwrakthis one has my latest FN: http://downloads.qi-hardware.com/people/werner/tmp/m1-20120126/  and here are BIOS and gateware to go with it: http://downloads.qi-hardware.com/people/werner/tmp/m1-20120125/22:05
wpwrak(the difference between the two flickernoises is just the memory command fixes)22:06
wpwrakthe gateware is still the regular system. no led matrix support :)22:06
mwallewpwrak: thx, just need the fn image for qemu ;)22:07
mwallebios can be compiled with lm32-elf- (which i have :b )22:08
Fallenoucould be nice to have the equivalent of the "update firmware GUI" with just a shell command22:09
wpwrak;-))22:09
Action: Fallenou does not have any monitor22:09
wpwrakjtag ?22:10
Fallenouyep, but not tonight :)22:10
wpwrakwith m1nor, upgrading via jtag is pretty easy. you just run  m1nor <file>  or  m1nor <files>  and it'll do the rest22:11
wpwraki.e., it figures out where things go and such, based on the file name22:11
Fallenounice !22:11
FallenouI will give it a shot this week-end I think22:11
Fallenouwhere is m1nor ?22:13
mwalleFallenou: http://projects.qi-hardware.com/index.php/p/wernermisc/source/tree/master/m1/tools/m1nor22:18
Fallenouthanks22:27
wolfspraulshould we modify reflash_m1.sh to run on top of m1nor?22:36
wolfspraulthat would probably introduce a little bit of redundancy, but not much22:37
wpwraknot sure ... they do similar things, but there are also several differences22:40
wpwrakthe most interesting part for sharing would be the partition data. but then it's not something that should need updating very often.22:42
lekernelwpwrak: you could reset the prescaler counter on a update22:51
wpwraklekernel: hmm. good point.22:53
wpwrakactually, there's an even easier way: counting to zero. then there would only be a problem if you set an insanely large value and have to wait for it to count down22:57
wpwraklet's see how this changes the resource footprint ...22:58
lekernelprobably not much on the whole, but it's a nice learning excercise *g*23:00
lekerneland it's actually more a timing problem23:00
lekernelby the way, if you use the ISE Project Navigator GUI, there's an almost mediocre schematics viewer that lets you see what xst generates23:00
wpwraki'm currently checking system.srp: 3 Adder/Subtractor(s) 267 D-type flip-flop(s) 5 Comparator(s) 71 Multiplexer(s) 7 Tristate(s)23:02
wpwrak(that's with the original version)23:02
wpwrakcounting to zero eliminated one comparator23:03
lekernelwell, it probably replaced it with a NOR :)23:03
wpwrakit should :)23:04
lekernelhmm, in fact, no... it can use the carry output. so that would be even more efficient23:04
lekernel(there are hardwired carry chains in the s6)23:05
wpwrakhow do i invoke that ISE Project Navigator GUI ?23:05
lekerneltype ise23:05
lekernelnote that sometimes it crashes if you run KDE at the same time, though it didn't happen to me recently... maybe they fixed this bug eventually23:06
wpwraknow it wants a .xise file23:08
lekernelyeah, you should do the whole "create project" IDE gig ...23:08
lekernelah and by the way - it has the annoying habits of creating craploads of temporary files in the current directory, so you should create a special folder for it23:08
wpwrakhmm. will be a moment. a bat just invaded my office ...23:09
wpwrakokay, was a smart one who realized i didn't have it on my menu and that it could thus prioritize escaping over hiding in a corner for days23:14
wpwrakwhat should i choose for the "top-level source type" ?23:15
wpwraktried system.n??23:20
wpwrakit doesn't know how to make use of the data, though23:24
GitHub174[milkymist] wpwrak pushed 1 new commit to ledmtrx: https://github.com/milkymist/milkymist/commit/41394c1381ea9cb667f78fa282c6b19b5a2f6ee823:30
GitHub174[milkymist/ledmtrx] ledm.v: make prescaler count to zero, to avoid using comparator - Werner Almesberger23:30
qi-botThe Firmware build was successfull, see images here: http://fidelio.qi-hardware.com/~xiangfu/build-milkymist/milkymist-firmware-01262012-2301/23:48
--- Fri Jan 27 201200:00

Generated by irclog2html.py 2.9.2 by Marius Gedminas - find it at mg.pov.lt!