#milkymist IRC log for Wednesday, 2013-03-13

lekerneledid works :)09:16
lekernelnow let's try the xrandr-controlled led blinker09:16
lekernelworks fine. so the lvds hack isn't too bad :)09:28
lekerneledid is a bit buggy though, so after a few seconds the rescan fails and the computer drops the video signal.. hmm09:29
larscwill it requery the edid?09:30
lekernelthe video driver sends edid queries every 10 seconds or so, and assumes the monitor was disconnected if it doesn't get a proper edid09:31
larscah, yea, that's the default poll interval for kms drivers09:31
larscnormally you'd assume though that the driver only checks hpd09:31
lekernelwell, hdmi, unlike vga, requires edid09:32
larscbut there is no need to rescan the edid if the monitor hasn't been disconnected09:33
larscbtw. I've kind of been able to hack the AbstractActor stuff to do what I want to do. Right now you keep a list of actor classes for which the layout should be infered. A more generic option is to add a flag to the actor class which states if and how the layout should be infered09:38
larscI think we need to handle 4 different cases. Infer layout from sources, Infer layout from sinks, infer layout from either sinks or sources, infer layout from both sinks and sources09:39
lekernelyou could make that "parameter" a static method09:51
lekernelthat takes a list of sinks/sources it's connected to, and returns the layout parameters to pass to the constructor09:51
lekernelthen you could provide generic functions for simple cases09:51
larscmakes sense09:52
lekernelmaybe there should be a way to tell what information that method needs, to resolve dependencies09:53
larscI think the current algorithem handles that by just trying again and again until all AbstractActors have been instantiated09:57
larscwhich is fine for now I guess09:59
lekernelhmm, the bug only manifests itself with nouveau... the proprietary nvidia driver works fine11:33
lekernelit does way fewer rescans though...11:34
lekernelah, no. it's just doesn't drop the video signal when the bug appears.11:38
lekernelseems to be electrical problems...11:46
lekernelinterestingly enough, disconnecting the logic analyzer makes EDID fail completely11:50
lekerneloh, how I love this sort of bug11:50
larscor the timing could be slightly off11:55
lekernelhave you assembled your board yet?11:58
larscnot fully, still missing a few parts12:01
lekernelcould it be glitches (that the logic analyzer would remove due to capacitance)...?12:04
lekernelwhen the video signal is dropped by the nouveau driver, that's after an i2c address phase that is not acked but should be12:05
lekerneland all the FPGA does at this point is sample sda on the rising edge of scl, and compare the address12:06
larscdo you have a capture of the signal?12:12
lekernelthat's the transfer that causes the nouveau driver to stop12:23
lekernelwhen the video signal is off during the initial scan, the exact same waveform (at least, as captured with this thing) makes the FPGA ack12:24
larschm, have you checked what the fpga sees?12:29
larscmaybe some glitches on scl causes it to see extra edges12:29
larscto you use a filter on scl?12:29
lekernelno, I don't - should I?12:30
lekernelwhy should there be glitches anyway?12:30
larscI don't know12:30
larscI'd try to add a short moving avarage filter or something similar to scl12:33
lekerneladding a 500ns delay on scl makes it work without the logic analyzer connected - but video signal is still dropped after a while12:43
lekernelno change with an average of 5 samples at 50MHz12:59
lekernelthis start to get irritating12:59
lekernelI guess I'll go ahead with the nvidia driver and fix that crap later13:00
Fallenouyeah :)15:11
wpwraknice :)15:36
GitHub70[migen] sbourdeauducq pushed 1 new commit to master: http://git.io/KUUI4g18:47
GitHub70migen/master 52d1395 Sebastien Bourdeauducq: bank/description: modify reg/mem in-place18:47
GitHub173[milkymist-ng] sbourdeauducq pushed 3 new commits to master: http://git.io/EMqCVA19:01
GitHub173milkymist-ng/master e99bafe Sebastien Bourdeauducq: dvisampler: add core, EDID support19:01
GitHub173milkymist-ng/master eaef346 Sebastien Bourdeauducq: Instantiate DVI sampler core for both ports19:01
GitHub173milkymist-ng/master 2ae504f Sebastien Bourdeauducq: software/bios: default length 4 for mr command19:01
Action: Fallenou starting to play with virtual memory things in netbsd kernel source code20:41
Fallenouit's going to be fun20:41
larsclekernel: is there any existing code which makes use of the plumbing actor, against which I could test my changes?20:50
larscAll code in examples/ seems to be single source, single sink20:50
larschm, the output generated by migen looks different each time, this makes it pretty hard to verify whether the code is the same21:21
larscand the framebuffer testbench is broken21:25
lekernelit shouldn't look different... what does?21:26
larscthe indices on named variables change21:27
lekernelthat problem came from python iteration orders depending on id's, but I should have fixed it a while ago21:27
larscstuff gets basically reorder21:27
larscwhat's the new way of doing sim.wr(dut.bank.description[addr].field.storage, d)21:28
larscwith the Module API?21:28
lekernelah, yes, there's a bug... it's different on each run again21:29
lekernelI'll have a look at this21:29
lekerneljust define a function called do_simulation(self, sim) and derive from Module21:29
mwalleFallenou: ah youre porting netbsd?21:33
mwallebtw anyone at ohm2013 ?21:33
Fallenou22:33 < mwalle> Fallenou: ah youre porting netbsd? < yes :)21:33
mwalleFallenou: nice :)21:33
Fallenouhopefully I will get some kernel printing on the uart in like 2 or 3 months21:34
lekernelmwalle, are *you* going to ohm?21:34
mwallelekernel: im planning it21:35
mwalleto got21:35
lekernelfirst hacker event?21:35
mwallebtw anyone got a jura impressa (coffee maker)21:38
lekernelI stopped going to hacker events after the cccamp 2011 frustration, but I'll give it more thought...21:39
lekernel"Budget ticket, For those who can not even afford a Raspberry PI." *ahem*21:39
mwalleyeah.. ;)21:39
lekernelyea right21:39
Fallenoubut can afford the flight to amsterdam :p or car/bus/whatever21:40
lekernelwell this pretty much sums up the hardware culture at those events21:40
lekerneland has everything to do with me no longer attending them21:41
azonenberglekernel: http://colossus.cs.rpi.edu/~azonenberg/unlisted/xc2c32a_bf_neo5x_annotated.jpg21:42
mwallebtw what happend to wolfsprau?21:43
lekernelI'm wondering too...21:43
Fallenouhe is swimming in a pool of fpga internal wires21:43
lekerneldo you have fresh news?21:44
mwalleazonenberg: what is FB and ZIA?21:44
lekernelazonenberg, very cool!21:44
azonenberg mwalle: FB = function block21:44
azonenbergZIA = zero-power input array21:44
azonenbergthat's semi-internal terminology used by the toolchain21:44
azonenberglekernel: it's beautiful how well the silicon matches up with the bitstream21:44
azonenbergi knew what to expect before i even opened the package21:45
lekernelwhat does the ZIA do?21:45
Fallenouthats' like nice christmas presents :)21:45
azonenbergIt's a switching matrix that routes every function block's output, and every input pin, back to the inputs of the AND array21:45
azonenbergI'm still trying to understand the exact structure of it21:45
azonenbergi have most of it figured out by bruteforce but i don't yet understand the actual structure, i was hoping the silicon could help clarify that21:46
lekernelhow is the config flash routed to the OR/AND arrays and the ZIA?21:46
lekernelI thought CPLD had distributed flash21:46
lekernelnot large chunks of it21:46
azonenbergIt appears not21:46
azonenbergThe 2c32a has config SRAM21:46
mwallemaybe someone is interested in https://www.coursera.org/course/vlsicad21:46
azonenbergyou can even download a bitstream into the SRAM without touching the flash21:46
lekernelso it copies the flash to distributed SRAM, like FPGAs?21:46
azonenbergThat was a surprise to me as well21:47
lekernelah. I thought one plus of CPLDs was they were live at power up21:47
azonenbergThe actual configuration cells are probably regular 6T SRAM or D FFs21:47
azonenbergThey are, in theory21:47
lekernelis the download-to-SRAM feature documented, or something you found out?21:47
azonenbergIt's semi-documented21:47
azonenbergjtag instruction ICS_SRAM_WRITE21:47
larscmwalle: already signed up :)21:48
mwalleand at least altera has "real-time programming" (altera buzzword) where the cpld can be flashed while it is still working with the old configuration21:49
azonenbergSame here21:49
azonenbergYou can write to the SRAM or the flash independently of the other21:49
mwallelarsc: nice, i guess i wont find time to do the assignments :(21:49
azonenbergi dont know if xc9500* has that feature but cr-ii does21:49
azonenbergcr-ii is a much nicer architecture21:49
larscmwalle: me neither, just trying to follow the lectures21:50
mwallelarsc: you are not watching the lectures with an android device, do you? :)21:51
larscno, on my laptop21:51
larscbtw. there is also https://www.coursera.org/course/mosfet21:52
lekernelazonenberg, you21:53
azonenberglekernel: ?21:53
lekernelazonenberg, have you checked some microsemi/actel devices?21:53
azonenbergFunny you ask21:53
azonenbergI have had zero time to analyze it21:53
azonenbergjust a few pictures in that directory21:53
azonenbergLook at the date ;)21:54
lekerneland those have distributed flash?21:54
azonenbergI opened it up and took a few photos21:55
azonenbergthat was all i had time for21:55
azonenbergI did an XC2C64A as well http://colossus.cs.rpi.edu/pictures/2013/March/3-11-2013%20-%20decapping/xc2c64a/xc2c64a_bf_neo5x.jpg21:55
azonenbergNo analysis on that21:55
Fallenouazonenberg: how much time does it take to decap a chip and then take a picture ?21:56
azonenbergHmm, maybe an hour? But you can run a lot of chips at once on the hot plate21:57
lekernelazonenberg, another thing to consider taking apart is a spartan 3an device21:57
lekernelthose with integrated flash21:57
azonenbergi did a dozen chips of nine part numbers in that run21:57
lekernelI think there are separate dies...21:57
azonenbergIt's stacked die SPI21:57
azonenbergI havent taken one apart but docs say it's "similar to" Atmel DataFlash21:57
Fallenouazonenberg: what do you use for taking the pictures? pice range of it?21:57
azonenbergThere's an SPI_ACCESS primitive in spartan6 too21:57
azonenbergbut as far as i know there was never a Spartan-6N series21:58
azonenbergFallenou: The optical microscope is an olympus BHM21:58
azonenberg$250 on ebay for the body with objectives and a binocular head, another $250 for a head with the camera port21:59
azonenbergsold new for probably ten times that21:59
Fallenouhum, the ebay price seems very reasonable21:59
azonenbergI got lucky21:59
lekernelbut unfortunately non-reproducible :(21:59
azonenbergthey were asking $500 OBO21:59
Fallenouhow much magnification is needed ?21:59
azonenbergi offered 250 with the intention of negotiating22:00
azonenbergbut they sold it to me right then and there22:00
azonenbergFallenou: Depends on what you're looking at22:00
azonenbergFor something modern like spartan6, optical won't be of use for more than the top layer or two22:00
azonenbergyou need a SEM22:00
FallenouI guess I can forget about SEM22:00
azonenbergOn the other hand for old MCUs made on like a 500nm process, 400x is fine22:00
azonenbergwith 1000x you can do 350nm stuff22:01
azonenbergmaybe 250 if you're really careful and have high-end optics22:01
azonenberg180 and below pretty much needs SEM if you want to see all the details22:01
azonenbergBeing a student at a tech school is nice, i get access to all the labs :)22:02
azonenbergand the rates are quite reasonable22:02
azonenbergthe one i took the spartan6 pic on is $65 an hour22:02
FallenouI just hit that : http://www.ebay.fr/itm/Coolingtech-500X-ZOOM-8-LED-USB-Digital-Microscope-Video-Camera-New-Version-/251244191697?pt=UK_BOI_Medical_Lab_Equipment_Lab_Equipment_ET&hash=item3a7f521fd122:02
azonenbergthey have a lower end one available for i think 45 or 4o22:02
Fallenouis this total shit ?22:02
Fallenouprice seems very low22:02
azonenberg500x, lol22:02
azonenbergi can magnify anything 500 times22:03
azonenbergdoesnt mean it'll be anything but a blur :p22:03
azonenbergThere are good optics and cheap optics, but no good cheap optics22:03
azonenbergCompare: http://colossus.cs.rpi.edu/pictures/2013/January/01-18-2013%20-%20ENC424J600/enc424j600_01_bf_am40x_annotated.jpg22:03
azonenbergAmScope objective22:03
azonenbergOlympus Neo40 objective22:03
mwalleFallenou: we have that at work, its crap ;)22:03
azonenbergSame camera, same specimen22:03
Fallenoumwalle: ok ^^22:03
azonenbergdifferent lenses22:03
Fallenouazonenberg: wow indeed22:04
azonenbergFallenou: For scale the smallest wires visible in the Olympus image are about 500nm across22:04
azonenbergthe device is a 250 or 180nm process but this is an upper metal layer22:04
GitHub100[migen] sbourdeauducq pushed 1 new commit to master: http://git.io/--7e7g22:09
GitHub100migen/master fc88319 Sebastien Bourdeauducq: bank/csrgen/BankArray: create banks in sorted order22:09
lekernellarsc, there's another source of non-deterministic names, will nail it down tomorrow22:09
Fallenouwow they have tons of this shitty microscope22:09
Fallenouit floods the ebay pages22:09
Fallenouthey must sell like pancakes22:10
Fallenouand then end up directly in the bin22:10
azonenbergLol, yep22:10
azonenbergNote that the AmScope that took that blurry picture22:10
azonenbergsells new for around $100022:10
azonenbergand looks that bad compared to the olympus22:10
azonenbergnow imagine what $50 optics will look like ;p22:10
Fallenouomg :)22:11
FallenouI guess quality is even more important when you want to see something of the order of a few hundreds nm22:12
Fallenouthat's pretty damn small22:12
azonenbergLol, yes22:12
azonenbergThe objective is the most critical part22:12
azonenbergyou can skimp on eyepieces to some extent22:12
azonenbergYou *do* want to see whatever is under that objective, right?22:13
azonenbergyou need something to look through ;)22:13
Fallenouyes indeed =)22:14
Fallenouok, vocabulary problem22:14
Fallenouok, all netbsd .c / .S file compile fine22:17
Fallenounow the final linking part is failing :)22:17
--- Thu Mar 14 201300:00

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