#milkymist IRC log for Saturday, 2012-01-28

sh4rm4you guys know this project ? http://www.elinux.org/BeagleBoard/GSoC/USBSniffer00:44
GitHub145[flickernoise] wpwrak pushed 5 new commits to master: http://git.io/Qf_GNA02:55
GitHub145[flickernoise/master] ptest: -c -c compiles into FPVM code and dumps the result - Werner Almesberger02:55
GitHub145[flickernoise/master] tests: new command "pvm" to generate and pretty-print FPVM code - Werner Almesberger02:55
GitHub145[flickernoise/master] compiler: completed boolean "and" and "or" - Werner Almesberger02:55
qi-botThe Firmware build was successfull, see images here: http://fidelio.qi-hardware.com/~xiangfu/build-milkymist/milkymist-firmware-20120128-0358/04:45
GitHub23[migen] sbourdeauducq pushed 1 new commit to master: https://github.com/milkymist/migen/commit/5c2df4557721f296a5bdb1a30fe241bb1d7ce84510:44
GitHub23[migen/master] fhdl: do not prefix instance signal names - Sebastien Bourdeauducq10:44
lekernel_any idea about this python inspect problem? http://bpaste.net/show/22598/11:19
lekernel_hmm... maybe use some bytecode hacks instead12:15
wpwrakah, i see that you're going very deep into python :) (and no, i have no idea. that's way deeper than i ever went)12:34
larsci've been playing a bit with networkx and fragment operator trees. this is the dependency graph for the simple gpio example: http://metafoo.de/depgraph.png - and this is the same graph if the d_o signal is not connected: http://metafoo.de/depgraph2.png13:30
larscred nodes are completely unused and can be removed, green nodes are used but are sort of const13:31
lekernel_larsc: verilog synthesizers already take care of such simplifications13:40
lekernel_so I wouldn't include such things in Migen... now, of course, it can be useful to build a FHDL simulator, or just to play with graphs13:41
larsclekernel_: i know13:43
Fallenoulekernel_: when you ship a bitstream, all timing constraints are met ?15:42
FallenouI got the first one "not met" : TS_sys_clk_dcm = PERIOD TIMEGRP "sys_clk_dcm" TSclk50 / 1.6 HIGH 50%15:43
Fallenouon the SETUP line it says "21" in the column "Timing Errors"15:44
whitequarklekernel_: (bytecode hacks) that's what I do for at least last month. ruby and AS3 bytecode hacks. maybe I can help.17:37
whitequarkwhat do you want to achieve?17:38
lekernel_Fallenou: yes, all timing constraints are met21:23
lekernel_Fallenou: http://www.milkymist.org/wiki/index.php?title=Recommended_ISE_versions21:23
lekernel_if you have made modifications (however minor) it can break timing21:24
lekernel_whitequark: get from a function the name of the variable in which its return value is stored by the caller21:27
lekernel_mwalle: btw, did you continue working on micromonitor? for the -NG SoC I'll try to keep the amount of software shipped to a bare minimum... so the 1st stage bootloader would typically get the SDRAM to work, provide functions to debug it when it does not, and simply jump to another binary (2nd stage) in the flash21:32
lekernel_there's u-boot too... with fancy stuff like USB booting21:33
whitequarklekernel_: impossible in general case21:35
whitequarkin a non-general one (that is, when the function is actually assigned to a local variable)... well21:36
whitequarkI have a static analysis framework which does exactly what you want21:36
whitequarkbut there's a small problem: http://github.com/whitequark/furnace21:36
lekernel_it doesn't have to work in 100% of the cases, just extract enough names for the generated verilog to be readable21:39
lekernel_the program would still be correct if the function always returned an empty strings, only the generated code would be a mess21:40
lekerneloh, theobroma has ported u-boot to lm32... I wonder if they at least got that one right21:47
wpwrakif it's u-boot, it's already wrong ;-)21:50
wpwraku-boot is an incredible waste of time. get sucked into it and you'll spend the next year or so turning u-boot into a little operating system, with its own drivers, etc.21:51
wpwrakthere's always one more cute feature you could add to it. and it seems so easy. so you do it. then you realize it's not easy, e.g., because they driver they forked from linux really needs locking but you don't have that. but since you already started, ...21:52
whitequarklekernel: how fast do you need that to be implemented?21:53
whitequarkI can add python bytecode support next week21:53
lekernelwhitequark: it should be in the python code itself, and actually already working... :)21:54
lekernelit's not really a problem of speed, but more avoiding tons of external dependencies21:55
lekernelI have something that works reasonably well in just ~20 lines of code atm21:55
lekernelwpwrak: so, what nice bootloader would you recommend?21:59
lekernelkeep the current one?21:59
wpwrakyeah. keep booting as simple as possible. it's not as if the boot loader was a place where you'd want to spend time, grow roots22:00
lekernelyes, but it's nice to have things like network booting, or USB stick booting22:01
wolfspraulWerner is a long-time known u-boot hater :-) (Werner, you should be proud about that attribution)22:02
wpwrakdepend on how much you use them :) i hardly ever used network boot. from a workflow point of view, nor boot is almost as good. plus, the m1 is in a repeatable state. (which can of course be undesirable in some cases)22:02
wolfspraulu-boot suits itself well for a development board, or when at the beginning of a product development, you don't know yet very well in which direction you want to take the final product (which boot options, etc)22:03
wolfspraulit's a tool and admission of cluelessness22:03
wpwrakwolfspraul: maybe you can call me "Werner the destroyer" ? ;-)22:03
wolfspraulwait I try to put this a little in perspective22:03
lekernelI use netboot all the time for software development... I even have the NOR cleared on my dev M1 so that it tries to boot from the network only22:03
wolfspraulit does serve some functions, you cannot see it all so static imho22:03
wolfspraulso it's like a swiss-army-knife22:03
wpwrakwell, u-boot is sort of the operating system before you have an operating system22:04
wolfspraulif you have a laser sharp idea how the final product should be, you can indeed bypass it and just write your "100 lines only do nothing" bootloader22:04
wolfspraulbut watch out, over the years it may grow into thousands and more lines still22:04
wolfspraulall depends on your discipline22:04
wolfspraulwpwrak: yes but there is not only long-term22:04
wpwrakjust ... since u-boot isn't your final destination anyway, why spend time adding features there and not in the OS you need in the end ?22:04
wolfspraulthere are also short-term goals, and sometimes at some point A in a development project, there is just a lot of uncertainty22:05
wolfspraulu-boot can help22:05
lekernelthe use cases I see for u-boot is (1) boot from NOR (2) boot from network for sw development (3) boot from USB or memory card to easily try things like linux distros, if those come out someday (ditto USB drive and stronger memory card support ofc)22:05
wolfspraulbut in any serious product, indeed, sooner or later it has to be kicked out again because it becomes a drag as the product and boot process gets optimized22:05
wpwrakdon't forget that - when using linux - you can always use kexec to boot something else22:05
wolfspraulthat is my experience22:05
wolfspraulyes, exactly. easily try the unknown.22:06
wolfspraulfor that kind of thing, there's a swiss army knife called u-boot22:06
lekernelwpwrak: so, should we simply initialize the SDRAM and immediately jump to the kernel?22:06
wolfsprauland for that purpose, it does have value22:06
wpwraklekernel: that's what i'd do22:06
wolfspraulwhen people see that there is u-boot on a platform, they have a starting point they know22:06
wolfspraulyes, I wouldn't waste time with u-boot either22:06
wolfspraulbut watch out, over time those "few lines" will grow :-)22:07
wolfspraulguaranteed, mark my words :-)22:07
lekernelwolfspraul: if it's not messy to port (but wpwrak tells us otherwise) u-boot would be a good choice22:07
wolfspraulu-boot is a bloated mess22:07
wolfspraulit's a swiss army knife, can do everything, but not really good at anything22:08
wpwraki participated only in one effort that brought linux from zero (minus CPU arch support) on a device, and that was on the psion s5. and there we didn't linger for more than a few days (development effort) at the boot loader.22:08
wolfspraulhuge huge amount of sources22:08
wpwraknobody had any problem with that :)22:08
wolfspraulif a newbie runs into the "milkymist platform", the fact that there is u-boot there may give them some comfort. that's the biggest value of u-boot imho.22:08
wolfspraulif Milkymist becomes part of any serious product, u-boot will be optimized away as part of the productization process22:09
wpwraklekernel: wolfgang and i both had some horrifying experiences with u-boot at openmoko :)22:09
wolfspraulyes but I'm a little more nuanced as to u-boot's value22:09
wpwrakwolfspraul: how many manyears do you think where ultimately sunk into it ? :)22:09
wpwraks/where/were/22:09
wolfspraulyes but like I said. if I do a development board for some big firm, I want u-boot on it, u-boot is in my checklist22:09
wolfspraulbecause there is nothing really I can optimize the devel board for anyway22:09
wpwrakoh, if someone else provides it, why not22:10
wolfspraulso let's just get u-boot on it22:10
wolfspraulsee my point?22:10
wolfspraulthat's a value too22:10
wpwrakof course, i'd even more want to see a linux kernel for it :)22:10
wolfspraula tool for the clueless (hopefully 'yet')22:10
wolfspraulexactly as lekernel said "run some distro"22:10
wpwraki'll pick the linux kernel :) in u-boot, you can get away with too many things that the code there doesn't prove much22:10
wolfspraulwhich one? don't know ;-)22:10
wpwrakdistro doesn't matter. you need the kernel :)22:11
wolfspraulif it's easy to just jump to a Linux kernel, I think that's the better thing for milkymist right now22:11
lekernelalright, let's keep the current BIOS then22:11
wolfspraulI'm just a little nicer to u-boot that's all22:11
lekernelso far no one has complained about it :)22:11
wolfspraulu-boot is so bloated...22:12
wolfspraulit carries this ever-increasing list of supported historical devel boards with it22:12
wpwrakyou can spin incredibly small systems from almost any distro. see my "myroot" at openmoko. it's very little work. and it can go a very long way.22:12
wolfspraulI think u-boot as a project is doing quite well btw22:12
lekernelif it's done properly, it shouldn't be a problem. but you seem to be telling me it's not ...22:12
wolfspraulgrowing like mushrooms22:12
wolfspraullekernel: u-boot is good for devel boards22:13
wolfspraulfor a product? no22:13
lekernelby the way, I wonder how to get the linker to place the variables of one part of the source into SRAM and the rest in SDRAM .. hmm22:14
larscaand u-boot has serious code quality issues22:14
wolfspraulfully agree22:14
wpwrakplus it's full of regressions becuase nobody looked after the drivers after forking them from linux22:14
wolfspraulit's a huge pile of garbage22:15
wolfspraulbut flexible, you can build *everything* out of those parts, right? :-)22:15
lekernelthe idea is to add some on-chip SRAM and rewrite libhpdmc in C because it's going to become more complicated with things like PHY calibration sequences22:15
wpwraklekernel: you can probably put the variables into named linker sections and then send these sections to specific addresses22:18
wpwrak(in a linker script)22:18
whitequarklekernel: (python code) ah ok, not precisely my domain then.22:18
wpwrakwolfspraul: i think some of the appeal of u-boot comes from the close source world. in the old days, the "monitor" was the last simple thing you had in your system. after that, you'd boot some closed source monstrosity like solaris or aix, and had no control of what was going on at a lower level.22:19
wpwrakwolfspraul: similar for embedded systems. you usually didn't have the sources, even if it was something simple like pSOS or such22:20
wpwrakwolfspraul: so of course, if you're in such a scenario and need to debug some low-level issues, the monitor (aka u-boot) would be where you like to make your camp.22:21
wpwrakwolfspraul: now in the modern open source world, this doesn't matter. you're just as much empowered under rtems, linux, or bsd as you as in u-boot. most likely, even more so.22:22
wpwraks/you as/you are/22:22
wpwrakbut of course, not everyone has arrived in the modern age yet. even though it has started some 20 years ago :)22:22
dvdkhi22:23
GitHub121[migen] sbourdeauducq pushed 2 new commits to master: https://github.com/milkymist/migen/compare/5c2df45...314360822:23
GitHub121[migen/master] fhdl/namer: extract variable names with bytecode inspection - Sebastien Bourdeauducq22:23
GitHub121[migen/master] examples/wb_intercon: update to new APIs - Sebastien Bourdeauducq22:23
lekernelhi dvdk22:24
dvdktrying to get a copy of the MM1 schematics, but so far no luck.22:24
wpwrakoh, 1-2 weeks ago, it must have my 20th anniversary of linux :) i started when a friend told me 0.12 was finally self-hosting (didn't need minix to run)22:24
dvdkqi-hardware has a tarball but no pdf, and I'm too lazy to install any schematic software22:24
dvdk:/22:24
wpwrakhttp://milkymist.org/mmone/rc3_schematics.pdf22:24
lekernelwpwrak: but that would mean writing a directive for each variable... which would be easily forgotten, leading to frustrating bugs22:25
lekernelwpwrak: specifying the object filenames in the linker script is both possible (it seems) and safer...22:25
larscwpwrak: one of my favourite phrases currently is "it's not 1990 anymore" ;)22:25
wpwraklekernel: yes .. there may be ways to have wildcards for entire object files. not sure, though. i never went very deep into linker scripts.22:25
wpwraklekernel: if all else fails, you could just extract the names from the object file with nm and issue explicit directives ;-)22:26
wpwrak(with a script)22:26
wpwraklarsc: hehe, very true ;-)22:26
dvdkwpwrak: thanks, anybody mind if i put a direct link into the qi-hw/mm1 wiki page?22:27
lekernelno, just do it22:27
wpwrakdvdk: i'm sure the lynch mob complete with torches and pitchforks will be at your doorstep any minute now :)22:27
Action: dvdk is running from the lynch mob22:36
dvdkoh my god, pitchforks!22:36
dvdkhmm, schematics aren't really informative, if everything is hidden inside the fpga block :)22:38
wpwrakah, took me almost two months until my first post on linux-activists (march 11; i must have started with 0.12 around january 20)22:42
wpwrak"schematics aren't really informative, if everything is hidden inside the microcontroller" ;-)22:42
wolfsprauldvdk: hi David, and welcome to Milkymist!22:44
larscwpwrak: and in another 20 years you'll look back onto your first post to the milkymist mailinglist ;(22:44
wolfspraulyes sorry, it's messy :-)22:44
wpwrakand the next day i already felt bold enough to post a mail with the subject pompously starting with "WARNING:". gee, what a little prick i was ;-)22:45
wolfspraulwpwrak: interesting idea, and yes, could be. [u-boot as last camp post before closed blob] I still think it's a good tool for the undecided, but I've made my point and nothing to add. for m1 if we can optimize it away right now, great. it will be optimized away sooner or later anyway.22:45
larscs/;(/;)22:45
wpwraklarsc: yeah, so many first times :)22:48
lekernelwpwrak: url?22:54
wpwrakof my prickish mail ? http://kerneltrap.org/mailarchive/linux-activists/1992/3/12/196422:56
wpwrakat least it was a nasty issue :)22:56
kristianpaulI dont use netwotk boot, just serial boot not so often and NOR all time23:02
lekernelhttp://en.qi-hardware.com/w/index.php?title=Qi_Hardware_2011-11-20&action=history23:04
wolfspraul:-)23:05
wolfspraulyeah?23:05
wolfspraulI'm screwing up the news, I know23:05
Action: dvdk just had a look at the PFPU; to him it doesn't seem like it could be used for more general tasks like video decoding.23:06
kristianpaul"it's a swiss army knife, can do everything, but not really good at anything" this should be add to wiki qoute ;)23:07
wpwrakkristianpaul: perhaps one should say then "it's a swiss army knife, all plastic ..."23:08
kristianpaulwolfspraul: but does not amazon kindle practical product uses u-boot?23:10
kristianpaulof course i like current bios23:10
wolfsprauldon't know23:10
wolfspraulmaybe this is a good guideline: unless you are desperate, don't us u-boot23:10
wolfsprauluse23:10
kristianpaulhttp://www.electricstuff.co.uk/kindlehack.html23:11
lekernelkristianpaul: I did most of it last summer at hacknight.se :)23:13
kristianpaullekernel: amazon kindle thing?23:13
kristianpaulsorry i get lost23:13
kristianpaulwolfspraul: indeed, about desperate23:14
lekernelyes23:14
kristianpauloh, cool23:14
kristianpauls/desperate/desesperate23:15
wpwrakhablamos spanglish ? :)23:16
lekernelI remember this funny looking atheros chip23:16
kristianpaulwpwrak: yes seƱor23:16
wolfspraultoo bad dvdk left already, I was wondering what he was looking for in the PFPU23:16
wolfspraulwe'll find out later...23:16
kristianpaulargh, i was right23:16
kristianpaulwpwrak: me corrijo cuando deberia.. :/23:17
kristianpaulPFPU needs more instructions,23:18
kristianpaulnot saying could not be added/hacked for other uses23:18
wpwrakan integer modulo wouldn't be bad to have :) the current algorithm is rather impressive - and wrong23:19
kristianpaulcuando no*23:19
wpwraki.e., https://github.com/milkymist/milkymist/blob/master/tools/asm/mod.fpvm23:20
lekernelFounded in 1992,  the cornerstone of Chipworks is our focused, energetic team of semiconductor and patent savvy engineers.23:21
wpwrakand of course, it accumulates rounding errors that throw it off badly. also, in milkdrop the modulo is on integers, so we should add an f2i i2f pair for each argument, making the code sequence even longer23:22
lekernelwpwrak: yeah, the current implementation of % is quite an experimental hack :)23:22
wpwrakwhere do i send the job application ? i think i have some very clear opinions on patents (-:C23:22
--- Sun Jan 29 201200:00

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