| kristianpaul | fpgaminer: hi | 00:40 |
|---|---|---|
| kristianpaul | I noticed the dual core miner.. is this something to avoid problems when place and route get messy by xilinx/altera tools? | 00:41 |
| kristianpaul | this is nice, NC afaik.. http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-111-introductory-digital-systems-laboratory-spring-2006/lecture-notes/ | 01:07 |
| GitHub62 | [scripts] xiangfu pushed 1 new commit to master: http://git.io/kK-O7g | 05:46 |
| GitHub62 | [scripts/master] update compile script to latest rtems and build documents - Xiangfu Liu | 05:46 |
| Fallenou | Morning | 09:01 |
| wpwrak | so, kicking out "if-as-a-function". the day starts well ;-) | 10:53 |
| wpwrak | err, of course if-as-a-variable | 11:03 |
| Action: wpwrak needs caffeine | 11:03 | |
| wpwrak | and we seems to have a regression after the patch syntax cleanup. test/nsyms now reports more symbols. let's find out why ... | 11:12 |
| wpwrak | lekernel_: btw, did you know that my regression tests also compile all the patches ? so it's also a convenient check after making any sweeping changes in the patch pool | 11:13 |
| wpwrak | hmm. seems to be the compiler getting confused. interesting. | 11:19 |
| wpwrak | or, more likely just ptest | 11:20 |
| wpwrak | aah, it's the other way around. that one patch (Pulsating photography) got CLEANER ! :) very good. let's see if there's more ... | 11:26 |
| wpwrak | AAH ! it's the midiN | 12:21 |
| wpwrak | Geiss & Werner - Tornado (Rain Dance MIDI RMX).fnp still uses them. and since they're no longer pre-defined, they now show up as "new" symbols | 12:21 |
| wpwrak | cladamw: heya ! question: you once expressed concern about the availability of 100 mil female headers with 18 pins. is this still troubling you or have you found good sources ? at least at digi-key, such critters do indeed seem a little hard to find | 12:40 |
| cladamw | (J21/J22) wpwrak, originally I picked this: http://www.molex.com/molex/products/datasheet.jsp?part=active/0901512118_PCB_RECEPTACLES.xml | 12:50 |
| cladamw | but digi-key doesn't have it: http://octopart.com/partsearch#search/requestData&q=0901512118 | 12:50 |
| cladamw | (Harwin) so I picked compatible one: http://tw.mouser.com/ProductDetail/Harwin/M20-7830942/?qs=sGAEpiMZZMtsLRyDR9nM1%252bmess1WSkgVI7th%252bl40uLo%3d | 12:52 |
| cladamw | and I ordered few Harwin already, | 12:53 |
| cladamw | i won't worry this part even there's very few on Mouser, since I think China has them, but won't be at formal/famous distributor of US, especially China gradually beats US in economic. | 12:57 |
| cladamw | In China, there's no critters. :-) | 12:59 |
| wpwrak | all hail to chinese superiority ;-) | 13:03 |
| wpwrak | but if we want to be compatible with major western distributors, perhaps it would help to change that part from 9x2 to 10x2 ? | 13:04 |
| cladamw | no problems on me for 9x2 to 10x2 if wants to add another 2 pins. | 13:05 |
| wpwrak | it's less for having more pins than for having a more common part. one issue with hard to source parts is also that they make the device harder to repair in the field. | 13:06 |
| wpwrak | let's see what wolfgang thinks | 13:06 |
| cladamw | the questions are being the what else we want to pull out about those un-used fpga pins, you can ref to latest: http://downloads.qi-hardware.com/hardware/milkymist_one/sch/tmp/MILKYMISTONE.pdf | 13:07 |
| cladamw | yeah... check fpga sch page to know how many un-used pins. ;-) | 13:07 |
| cladamw | actually like you talked before, user can use 40*2 header pins for their smart extension daughter boards. just cut theirs. ;-) | 13:10 |
| wpwrak | one pin left in the 3.3 V domain ? wow | 13:10 |
| wpwrak | (U22B.P21, IO_L48P_HDC_M1DQ8_1) | 13:10 |
| cladamw | i quite don't know how big scale M1 would be in few years. For me, i think we can even ordered 200~500pcs in China, but questions is how many years we eat M1 for 200pcs in 1 ~ 2 years? hehe .... | 13:12 |
| wpwrak | ah no. some are labeled by unused | 13:12 |
| cladamw | if you see 'x' arrow in banks, it's un-used. ;-) | 13:13 |
| wpwrak | s/by/but/ | 13:13 |
| wpwrak | hmm, not always, i think. lemme check .. | 13:13 |
| wpwrak | IO_L22P_2 is unconnected but doesn't have an "X" | 13:14 |
| wpwrak | U22C.T12 | 13:14 |
| wpwrak | same for IO_L22N_2 | 13:14 |
| cladamw | yeah. good catches, i've not drc. ;-) | 13:16 |
| wpwrak | hah ! :) | 13:16 |
| cladamw | let me update... | 13:17 |
| cladamw | so you'd like 10*2? | 13:17 |
| wpwrak | with 9x2 apparently very hard to source, i think 10x2 may be nicer. what do you think ? | 13:19 |
| wpwrak | (fpga pins) well, if all else fails, we could switch the NOR from 16 bit data to 8 bit ;-) | 13:20 |
| cladamw | i'm okay actually for more. ;-) | 13:20 |
| cladamw | the question is Wolfgang wanted to be compatible wth older version. ;-) | 13:20 |
| cladamw | but yes, can be discussed more. ;-) | 13:21 |
| cladamw | (NOR 16 -> 8) wpwrak, haha... you're. | 13:21 |
| cladamw | wpwrak, updated, tks the catch. :) | 13:32 |
| wpwrak | was it just the two pins ? or did ERC/DRC find more things ? | 13:36 |
| cladamw | wpwrak, i'll let you know that how many pins 3v3 domain we have tomorrow. sorry about this. since I'm using another a_d ten version. :-) | 13:40 |
| wpwrak | "a_d ten" = ? | 13:42 |
| GitHub187 | [flickernoise] wpwrak pushed 10 new commits to master: http://git.io/wp1TPQ | 14:23 |
| GitHub187 | [flickernoise/master] compiler: "if" can no longer be used as a variable name - Werner Almesberger | 14:23 |
| GitHub187 | [flickernoise/master] compiler/test/Common (equiv2): allow suppressing some differences - Werner Almesberger | 14:23 |
| GitHub187 | [flickernoise/master] patches/attic/: bring back the pre-cleanup version of the patch pool - Werner Almesberger | 14:23 |
| wpwrak | wolfspraul: question: how do you feel about those 9x2 connectors for the expansion headers ? adam once remarked that they're hard to source. he now found them in china. but they're difficult to get from western distributors. | 14:47 |
| wpwrak | wolfspraul: one possibility would be to go to 10x2 instead. that size is a lot more common. | 14:48 |
| wolfspraul | of course | 14:48 |
| wolfspraul | change | 14:48 |
| wolfspraul | common parts is super important | 14:49 |
| wpwrak | that was quick :-) damn. adam already left. | 14:49 |
| wolfspraul | well it's obvious, no? | 14:50 |
| wolfspraul | if we can identify more uncommon parts, same - might be worth replacing them with more common ones... | 14:51 |
| wpwrak | (obvious) well, it makes the new J21 slightly more different from the old J21. but i agree, that's a very minor concern | 14:54 |
| LmtdAt | What's a milkymist? | 17:56 |
| lekernel | as Werner put it: it's a token of, inspiration, a great pefect blend of a bold statement of out-of-the-box thinking with time-proven concept and technology. You should learn from this, and find courage for groundbreaking work of your own. A bit like the monolith in 2001, and you don't even have to fly to Jupiter to get it mass-produced :-) | 18:00 |
| lekernel | but in more practical terms... we have a pretty good wikipedia page you can check: http://en.wikipedia.org/wiki/Milkymist | 18:02 |
| lekernel | wpwrak: have you sorted out the symtab allocation/code generation issue you talked about yesterday? I'd like to fix the small video-in full screen bug, and release | 18:19 |
| wpwrak | lekernel: i didn't touch the symtab issue. the band-aid that's currently there will fix it for all practical purposes. for a proper solution, i'll switch from a table to a binary tree.but for this i'll need a red-black tree library. it may be a bit tricky to find one with the right code structure and the right license. so i wouldn't rush this for now. | 18:25 |
| wpwrak | lekernel: code generation still needs checking | 18:26 |
| wpwrak | lekernel: right now, i'm looking at usb. see if i can at least get rid of the full failure with midi / full-speed | 18:26 |
| wpwrak | (that one should be high-level enough that i can do something without spending weeks in front of the scope. or weeks making hat logic analyzer. wouldn't you feel tempted to implement such a critter, kinda of as a warm-up exercise ? :) | 18:28 |
| lekernel | well, my immediate plans (after the release) are to implement good simulation support for Migen and then design the best/fastest open source SDRAM controller ever | 18:34 |
| wpwrak | hehe ;-) | 18:35 |
| lekernel | but if you think another FPGA-based LA is really needed, I can have a look ... | 18:35 |
| lekernel | what's the problem with your Rigol scope? | 18:35 |
| wpwrak | an FPGA-based LA that can DMA to SDRAM would seriously kick ass | 18:35 |
| lekernel | ...except that it can't be used to debug SDRAM controllers then :p | 18:36 |
| lekernel | also, you'd typically need to resynthesize every time, or use XDL hacks | 18:36 |
| wpwrak | the rigol has ... 1) no compression, 2) only 0.5-1 Msamples (and that without compression), 3) glacially slow transfers to the PC | 18:37 |
| lekernel | both are a tad messy | 18:37 |
| wpwrak | (sdram controller) you could use a companion M1. mirror the signals that interest you on the expansion header and pick them up from there | 18:38 |
| wpwrak | and yes, for introspection, you'd have to resynthesize. not a huge deal, IMHO. we can always make it perfect later | 18:38 |
| lekernel | btw this thing would work using a manually generated "rolling banks" pattern of access to the SDRAM | 18:39 |
| lekernel | would work best | 18:39 |
| wpwrak | one you have the basics, we could also do FPGA-assisted decoding. like the big guys do. the ones who charge USD 1k and more to enable such features in their devices. | 18:39 |
| lekernel | my next controller will be able to generate such patterns automatically if you send the requests sufficiently in advance though | 18:40 |
| wpwrak | ideally, you'd allocate a block of RAM, set a suitably aligned pointer in the LA controller, write the number of words/whatever you want to record, then let it rip | 18:40 |
| lekernel | probably better to use that one. also, min. 2x the bandwidth | 18:40 |
| wpwrak | write a zero to the counter and it stops. have another register that contains the number of things written. | 18:41 |
| lekernel | and how do we transfer to the pc? ethernet isn't so fast without DMA ... | 18:41 |
| wpwrak | /nick Mr.Obvious | 18:41 |
| wpwrak | add DMA to ether | 18:42 |
| wpwrak | naw, but even at 1 MB/s, it would be usable. you should see at what speed data crawls out of my scope | 18:42 |
| lekernel | yeah well | 18:42 |
| lekernel | probably better to buy an existing analyzer than spend the time designing all this stuff | 18:43 |
| wpwrak | something like 1 kBps. the operation it: set x offset (the time window), send the download command, then read 1 kSa buffer containing 1 kSa-640 Sa of garbage, plus 640 Sa (i.e., the screen content) | 18:44 |
| wpwrak | have you seen an "existing analyzer" that is a) usable, b) can store more than a few kB, c) doesn't require windows, and d) costs less per unit than 10-20 M1 ? | 18:45 |
| lekernel | for debugging full speed USB, maybe saelae or openbench is enough? | 18:46 |
| wpwrak | (slow scope) what makes it slow is that there's a race condition when changing the time offset. leads to a) an incorrect time and b) the scope reporting back the offset that was requested. the solution is to wait some 300 ms after each command | 18:47 |
| wpwrak | saelae seems closed source. and no usb decoding in their software :-( | 18:50 |
| lekernel | yeah, but it's cheap, and it works | 18:51 |
| lekernel | maybe you can export to some open format? haven't tried... | 18:51 |
| wpwrak | they say you can. but that closed source stuff still needs to run | 18:52 |
| lekernel | yeah, sure... | 18:52 |
| lekernel | but let's pick our battles | 18:52 |
| wpwrak | so, pick the wrong distro or the wrong version and boom, no LA for you | 18:52 |
| wpwrak | would it be really that hard for you ? you already know all the bits involved. i would expect the actual engine to be 1-2 days of work. but figuring out how to get the clock, set the timing constraints, and how dma works would be the bulk of the work. you've done all that already. | 18:55 |
| lekernel | how to deal with FIFO overflows? | 18:56 |
| wpwrak | log an error ? the fifo should be dimensioned such that it doesn't overflow | 18:56 |
| wpwrak | (and, accordingly, the sample rate) | 18:57 |
| wpwrak | assumes the dma has a predictable response time and/or priorities | 18:57 |
| lekernel | well... I'll think about it. it could be an interesting test/example of Migen/ASMI ... | 18:57 |
| wpwrak | hehe :) | 18:58 |
| lekernel | but doing it in plain Verilog with the current arch doesn't really turn me on | 18:58 |
| wpwrak | that would also be a very good opportunity for an extension board: make one with active probes: a simple 74xxx1Gxxx buffer/schmitt-trigger with differential output, maybe BGA, in the probe head. you'd have an _EPIC_ input impedance. | 19:00 |
| wpwrak | and the critter would still be nice and small | 19:00 |
| lekernel | yeah, we could have a GUI too, ie a standalone analyzer ... | 19:00 |
| lekernel | actually this is a pretty good idea | 19:00 |
| wpwrak | i think that would happen quickly ;-) | 19:01 |
| wpwrak | use LV3 for controls ;-)) | 19:01 |
| lekernel | and we could sell variants of the M1 board with the probe extension and the artsy stuff (video-in, DMX, MIDI, ..) unpopulated | 19:01 |
| wpwrak | at an ultra-bargain price of only USD 5000 ;-) | 19:02 |
| lekernel | yes :) | 19:02 |
| lekernel | btw, we can have a 1GHz sample rate using the SERDES | 19:02 |
| wpwrak | make it USD 15k then ;-) | 19:04 |
| wpwrak | of course, at 1 GSa/s, you'd be too fast for the SDRAM, even after acceleration | 19:05 |
| lekernel | with fewer than 10 channels it's going to work | 19:06 |
| wpwrak | you'd also want data compression. that adds more bits | 19:06 |
| lekernel | with the rolling bank pattern you reach near 100% efficiency | 19:06 |
| wpwrak | e.g., 8 bit sample value, 16 bits counter, 8 bits software tag | 19:07 |
| wpwrak | at, say, 200 MSa/s, you could then record ~21 ms of noise or ~23 min of silence | 19:09 |
| wpwrak | ... with a 16 MB buffer | 19:10 |
| lekernel | we have 128M | 19:10 |
| lekernel | and we can have more on the LA variation, DRAM is cheap ;) | 19:10 |
| wpwrak | 16 MB is what i saw rtems report as free. but yes, we could use more. | 19:11 |
| wpwrak | hehe ;-) | 19:11 |
| lekernel | ah, that's a bug then | 19:11 |
| wpwrak | maybe it's the largest contiguous block or so | 19:11 |
| wpwrak | wkspace "Largest free block" | 19:12 |
| wpwrak | but also "Total bytes free" | 19:12 |
| wpwrak | lekernel: how do you like this ? https://github.com/milkymist/flickernoise/compare/usb-debug | 19:55 |
| wpwrak | i called the command "navre". not sure if it shouldn't be "usb" instead. "softusb" would seem a bit long. | 19:56 |
| lekernel | ok, great! | 20:03 |
| lekernel | maybe instead of a timeout, you can wait for a keypress? | 20:03 |
| wpwrak | heh :) | 20:03 |
| lekernel | imo the whole stdio family of functions supposedly works there, so it should be easy | 20:04 |
| wpwrak | do we have a nice and simple way to check for a keypress ? | 20:04 |
| wpwrak | it has to be non-blocking. and if it's like on unix, the tty driver would buffer the line until \n (unless put in raw mode) | 20:04 |
| lekernel | in theory, you have a complian termios too | 20:05 |
| lekernel | compliant | 20:05 |
| lekernel | waiting for \n is ok too I think | 20:05 |
| wpwrak | okay, let's find some more rtems bugs then :-) | 20:05 |
| wpwrak | what about the command name ? keep "navre" ? make it "usb" ? something else ? | 20:06 |
| lekernel | usb is a bit better imo | 20:06 |
| lekernel | but that's just a detail | 20:06 |
| wpwrak | excellent. changing ... | 20:06 |
| Action: wpwrak like to get the details right ;-) | 20:07 | |
| wpwrak | hmm. it does compile. but that's all the good i can say about it ... | 20:19 |
| wpwrak | let's see if ioctl works better than fcntl ... | 20:22 |
| lekernel | what about tcsetattr? | 20:25 |
| lekernel | http://cc.byexamples.com/2007/04/08/non-blocking-user-input-in-loop-without-ncurses/ | 20:25 |
| lekernel | ha sorry, that's just for the canonical mode... the function is quite ill named | 20:25 |
| lekernel | and we don't have select() | 20:25 |
| wpwrak | ioctl FIONBIO: Bad file number | 20:27 |
| lekernel | grmbl | 20:27 |
| wpwrak | hmm, is there poll() ? | 20:27 |
| wpwrak | ah, apparently :-) | 20:28 |
| wpwrak | hmm. but only internally in rtems ? | 20:31 |
| wpwrak | weird. they have quite a bit of code than references it has bits of it, but then cpukit/libnetworking/Makefile.am says it's not supported | 20:33 |
| wpwrak | let's see if opening /dev/console with O_NONBLOCK does something useful ... | 20:38 |
| wpwrak | it's nice that there are so many ways to do non-blocking IO in unix. that way, rtems has more opportunities to get it right at least once ;-) | 20:39 |
| wpwrak | no such luck | 20:39 |
| wpwrak | i wonder what would happen if i created a task that does a blocking read and then kill it. it that even supposed to work ? | 20:44 |
| wpwrak | well, maybe another day. too messy to try now. | 20:44 |
| GitHub138 | [flickernoise] wpwrak pushed 2 new commits to usb-debug: http://git.io/ow6eqg | 20:50 |
| GitHub138 | [flickernoise/usb-debug] shell extension: renamed the "navre" command to "usb" - Werner Almesberger | 20:50 |
| GitHub138 | [flickernoise/usb-debug] shellext: added section title comments - Werner Almesberger | 20:50 |
| lekernel | wpwrak: that would work. i'm doing it this way to mux the different event sources in FN. but yes, it's a bit lousy. | 20:58 |
| wpwrak | but do you also kill the blocked thread ? that's what worries me. we'd have to kill it when done. so it has to 1) actually get out of the block. 2) not mess up the system (e.g., stdio state). | 21:01 |
| wpwrak | hmm. only in start_dhcp_task. and that's in an error path. | 21:04 |
| Action: wpwrak cowardly refrains from going down that rathole | 21:04 | |
| wpwrak | merged what i have so far | 21:12 |
| lekernel | yeah well... as I said, pick your battles :) | 21:22 |
| wpwrak | yeah, and with rtems, all victories are pyrrhic | 21:28 |
| wpwrak | ah ... but if we don't support a timeout, we do't need to rtems_task_delete. that should be reasonably safe then. | 21:38 |
| wpwrak | what would be a good priority value to pick ? | 21:45 |
| lekernel | same as the shell? | 21:52 |
| wpwrak | that would be 1, if "task" is to be trusted. let's see how it goes. | 21:53 |
| wpwrak | actually, it should be higher. since the shell is busy-looping | 21:54 |
| wpwrak | prio 1 is the highest priority. cool. so we hang the system :) | 21:58 |
| GitHub155 | [flickernoise] wpwrak pushed 1 new commit to usb-debug: http://git.io/IUnAVw | 22:04 |
| GitHub155 | [flickernoise/usb-debug] usb debug: wait for keypress; removed timeout - Werner Almesberger | 22:04 |
| GitHub141 | [flickernoise] wpwrak pushed 1 new commit to master: http://git.io/2nMH2Q | 22:08 |
| GitHub141 | [flickernoise/master] usb debug: wait for keypress; removed timeout - Werner Almesberger | 22:08 |
| --- Tue Feb 28 2012 | 00:00 | |
Generated by irclog2html.py 2.9.2 by Marius Gedminas - find it at mg.pov.lt!