#milkymist IRC log for Sunday, 2012-04-15

Fallenou_mwalle: why would you replace the DCM by a PLL in system.v ? *trying to understand the patch*00:25
Fallenou_to generate more different clock frequencies ?00:28
wolfspraulFallenou_: maybe you already saw this, but I was also reading the patch now and at the top it says "use two chained PLLs to generate all needed clocks. this makes it possible to switch the USB clock to 72mhz"01:05
wolfspraulbut reading through line by line is still above my head... learning :-)01:06
wpwraki find the one entitled "Switch USB clock to 72MHz" a bit scary. particularly the softusb_rx.v changes are far from obvious04:50
wpwrakFallenou_: btw, does your recent success mean that you found the problem that prevented the MMU from working ?04:51
mwallewpwrak: yeah there is a need for some better commit messages ;)09:48
mwalleFallenou_: you cant generate the 72mhz from one dcm using two plls you are able to generate all required clocks inside and outside the system, apart from the vga pixel clock09:49
mwalleand iirc xilinx doesnt recommend chaining two dcms09:50
Fallenou_wolfspraul: yes I saw the commit message, I was trying to understand why switching from DCM to PLL, just curious10:40
Fallenou_06:57 < wpwrak> Fallenou_: btw, does your recent success mean that you found the problem that prevented the MMU from working ? < yes, this commit fixed the problem of crashing the whole SoC : https://github.com/fallen/milkymist-mmu/commit/c73e8e802bd6d79299f737777b828ccc1e32aa1c10:42
Fallenou_mwalle: oh ok, got it !10:42
wpwrakFallenou_: (fixed) congratulations !10:45
Fallenou_maybe there is more bugs, but at least those 15 test cases are passing for now :)10:54
Fallenou_so I must be making at least some progress :)10:54
Fallenou_if someone wants to write more tests, he is welcome !10:55
Fallenou_I would like to go on to the next chapter now10:55
Fallenou_i.e generating exception when dtlb miss, fix the mapping and then go back to the code10:55
Fallenou_but test cases can still be written as a background task10:56
Fallenou_it's pretty easy, just doing enable_dtlb(); some normal instructions using memory loads and stores  disable_dtlb(); and check if the result is correct10:57
mwallewpwrak: once the 72mhz usb has been verified to be working (or at least doesnt introduce any regressions ;) ) i'll elaborate on the commit message10:58
mwallefor now: those who are intereseted in the changes, please refer to http://www.usb.org/developers/whitepapers/siewp.pdf :)10:59
Fallenou_I don't have my M1 nor my korg nanocontroller with me right now so I can't test10:59
Fallenou_but next week maybe, if someone havn't tested before11:00
wpwrakhmm, the LV3 seems unhappy11:50
wpwrakdoesn't enumerate11:50
wpwrakbut perhaps i need to update softusb as well ? let's see ...11:51
mwallewpwrak: mh, the timer offsets were changed from 0x11 -> 0x2012:43
mwallemy bitstream use 0x20 as base offset12:44
mwallebut that should affect all devices, not just the lv312:44
wpwrakthe lv3 is the only one i had connected :)12:47
wpwrakrebuilding things now ...12:47
wpwrakinteresting. FN completely deconfigured itself after updating12:54
wpwrakand usb debug doesn't make a sound12:54
wpwrakmouse doesn't work either12:55
wpwrakmwalle: can you also upload an image of the FN your're using ?12:57
mwallewpwrak: i'm just using the bios ;)13:03
mwallewpwrak: does the bios detect the mouse?13:04
wpwrakhmm .. i didn't even build the bios ...13:04
wpwrakphew/.. LOTS of warnings when compiling the bios13:06
wpwrakof course, all of the "old-style function definition" kind13:06
mwallemh shouldnt that be fixed?13:06
wpwrakbios does get debug messages from usb. so far, so good13:08
wpwrakbut that's about all that works13:08
mwallewpwrak: ahh i guess flickernoise/rtems use its own softusb headers?13:09
wpwrakah ! i was on a branch. that would explain some things :)13:10
wpwraklet's try this again ...13:10
mwallewpwrak: ah, forget my last sentence, the changes are softusb internal ;)13:11
wpwrakmuch better. MIDI and mouse detected13:12
mwallepuh :)13:12
wpwraknow i only lost the FN configuration, for some obscure reason13:12
wpwrak"unable to open file (permission denied)". interesting13:14
wpwrakseems that there's some breakage in rtems-yaffs2 / rtems13:16
mwallesebhub committed some api changes, some time ago, dunno if thats connected13:17
wpwrakmaybe. or "Change mode of root and lost+found directory"13:18
wpwrakbut we're running as root, aren't we ?13:18
mwallei guess :)13:21
wpwrakwell, let's change the mode back ...13:23
wpwrakstill no permission to even load a patch:-(13:25
wpwrakand of course, if i go to an earlier version, the build fails due to rtems api breakage. oh, the joy ...13:26
mwallewpwrak: cant you switch rtems/fn to the last version tag?13:28
wpwrakwhich version tag ?13:30
mwallethe last soc release?13:32
wpwrakhmm ... where does that information live ...13:32
mwalle'git tag'13:33
wpwrakand then ? 4.9.6 ?13:34
wpwraknaw. then already our patch set fails13:35
mwallemh the daily works, doesnt it?13:35
mwallegit://git.rtems.org/rtems.git  master 8c6608bd1b1eed2a956f4268ea03fa0e05ec9a9413:36
wpwrakhmm. these are the versions i have. daily therefore shouldn't work. let's see ...13:37
wpwrakyeah, same behaviour from FN. good. so it's not my fault ;-)13:40
wpwrakbut USB looks very good. also the endless stream of errors is gone.13:43
sb0ok, good for commit then?13:55
wpwraki think we can risk it :)13:58
Fallenou_nice !13:58
wpwrakif anything blows up, we can revert anyway. and it's not as if "bleeding edge" would always work - i.e., right now, it doesn't, due to the rtems/yaffs issue. annoyingly, just changing the permissions back didn't do the trick. so i'll have to find a set of versions that still works ...13:59
sb0yeah, this regular rtems breakage is quite annoying14:00
mwallewpwrak: (streams of error) compared to the 48mhz variant?14:04
wpwrakmwalle: compared to softusb before your changes. i didn't test between your first (assignments) and second set (72 Mhz)14:06
mwallewpwrak: the assignments shouldnt have any effect on the bitstream14:07
mwallesb0: but please let me cleanup the patches before you commit them ;)14:07
mwallesb0: and should i pin the pll by constraints? i dont know how i can find out the position/name/whatsoever14:08
sb0ok, time to go to the next destination anyway14:09
sb0yes, lock the PLLs. you can find the site names by opening the .ncd file in FPGA Editor14:09
mwallesb0: ah one more, seems like the dcm implicitly inferred an IBUF on clk50, because the net was named clk50_IBUF in the constraints14:09
sb0or using xdl14:09
sb0net names are messy14:10
sb0again you can find the one that the tools picked with fpga editor or xdl14:10
mwallefor the pll i had to infer it explicitly14:10
mwallekk, will try14:10
sb0or even directly in the netlist14:10
mwallethe fpga editor wont start on my machine, i'll find out ;)14:11
sb0yes, it's a common problem14:13
sb0xdl has fewer bugs14:13
kristianpaulwpwrak: having a chipscope floss client will resolve your problems about getting signals easilly out of the fabric for debugging porpuses14:16
kristianpaulif is that what i undertood correclty you require from verilog14:17
wpwrakkristianpaul: ah, that may be something to look at, yes. anyway, it seems that mwalle already somehow made those errors go away. not having a problem beats having a great plan for solving it ;-)19:36
wpwrakit's kinda interesting to note that the autocrap bootstrap of rtems takes about half as long as synthesizing the FPGA. talk about efficient bureaucracy.19:53
Fallenou_it's horrible, the bootstrap19:58
Fallenou_fortunately, you don't have to bootstrap everything if you just changed a few files in a few directory19:58
Fallenou_a few makefiles/configure19:59
kristianpaulas long indeed20:01
wpwrakyeah, but if you jump around in the history, changing who knows what ... :-(20:02
kristianpaulthats why i dont use rtems atm :=20:02
kristianpauland use a minimal SoC with cores just i need to the problem trying to solve20:02
kristianpaulthat way synthesis dont get long than 15m20:03
kristianpaulat least..20:03
Fallenou_8 minutes for me ;)20:03
Fallenou_I disactivated almost everything20:03
kristianpauloh wow20:03
Fallenou_and Xst is running inside a debian virtual machine20:03
kristianpaulform setup.v or something else?20:03
Fallenou_yes setup.v20:04
Fallenou_oh, I kept memory card, I could remove it20:05
Fallenou_it could be even faster20:05
Fallenou_I kept FML meter I didn't know if it was mandatory20:05
kristianpauli remenber only mandatory is memtest in some cases20:06
kristianpaulin the milkyminer i just kept FML, sysctl, sdram stuff and lm32 basically20:07
wpwrakFML is very optional20:10
wpwrakand it's a convenient source for a CSR address ;-)20:11
Fallenou_is it really hard to add 1 bit to csr addresses ?20:12
wpwrakdunno. maybe not. would mean editing lots of places, though20:13
Fallenou_yes I guess20:13
larscyou can decrease the per block space20:13
Fallenou_and hard to debug if it synthetizez and crashes the soc20:13
larsci think it is 0x4000 currently20:14
kristianpaulFallenou_: is not20:14
kristianpaulyes, some editing and replace in the cores20:15
larscwhich is much more than what is currently used20:15
wpwrakhmm, in the led matrix controller, i use 9 address bits. three of them are reserved for geometries we don't use (but which could be selected by changing parameters)20:20
larsc512 registers?20:21
wpwrakgood news: with the right amount of pinning, things look friendly. including working usb-midi20:21
wpwrakat least 256. could be more because it's a matrix. one bit switches between the PWM and the "administrative" bank20:22
Fallenou_wpwrak: your ledm.v contains so much things I would not have thought to be "synthetizable" by Xst. it's amazing it works :) like triple arrays [][][], tasks, disable XXX,22:02
Fallenou_but it makes the code looks nice22:02
wpwrakyeah, i was quite surprised how clean you can make things22:05
wpwrakthere are still a number of silly oddities that don't seem technically necessary, such as having to name blocks for "disable" (to express my disdain, i thus used "_"), but verilog does seem to have a decent enough set of features for things of medium complexity22:06
wpwrakoh, but i also ran into trouble: if you take the handling of "Z" too far, xst falls apart and generates an incorrect system22:09
Fallenou_arg :/22:15
Fallenou_what does "disable" do ?22:15
Fallenou_first time I see it22:15
Fallenou_gn8 !22:23
wpwrakit's basically like a "break" or "return" in C22:23
wpwrakit exits the block. so instead of  if ... a little ... else ... lots of code ...   you can just  if ... begin ... disable end   and leave out the else branch, along with indentation22:24
mwallemh my interrupts for the navre core seems to work somehow :)22:24
wpwraknice :) that's for USB out ?22:26
mwallewpwrak: i'm using the mm as a usb device, so its usb in from my pov22:27
wpwrakah, device mode. interesting.22:28
wpwrakso we'll have an alternative to ethernet. well, for things that don't have to be very fast :)22:29
mwallethink of another gdb channel (maybe fast this time ;) ..), DFU, mass storage, dunno ;)22:31
--- Mon Apr 16 201200:00

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