#milkymist IRC log for Sunday, 2012-07-08

wolfspraulgood morning everybody01:27
wolfspraul:-)01:27
wolfspraulwhen is the mmu at the point that we can restart the Linux kernel effort?01:27
qi-botThe MMU firmware build was successful, see images here: http://fidelio.qi-hardware.com/~xiangfu/build-milkymist/milkymist-firmware-mmu-20120708-0457/04:41
Jiahi, I think I find the lm32-gcc bug, but I still some time to find the resean and fix it.10:50
Fallenouwolfspraul: (Linux kernel effort) Reasonably speaking, It would be nice to fix at least every situation that crashes the SoC on FPGA before starting to add MMU support to lm32 Linux11:34
Fallenoubut since I'm not so much reasonable, I may start the Linux kernel effort before that, and fix MMU bugs on the fly11:35
FallenouI spent the week studying Linux kernel "starting" code (head.S start.S etc) of OpenRISC and lm3211:36
Fallenouand reading a bit about Linux virtual memory11:36
FallenouIt's not very funny to fix bugs that most of the time are "software bugs" in my bios test code, which in the end will be of no use at all11:37
FallenouI would better debug on real use case on Linux11:38
FallenouI have set up a compile box using a (free) OVH VKS (Virtual KimSufi). I installed lm32 toolchain and successfully compiled linux-milkymist-nommu. I didn't try to boot it yet, it will be a surprise :)11:47
wolfspraulFallenou: oh, nice!13:20
wolfspraulI didn't know it's that advanced already, that's great13:20
Fallenoumaybe it's a bad move, I don't know (starting linux kernel hack)13:21
Fallenoubut I'm kind of bored to try to understand why it behaves nicely in simulation and why it crashes in some situations on FPGA13:21
Fallenouso I want to move on :)13:21
wolfspraulunderstand13:22
Fallenouwe will see, anyway if it's not stable enough I will be forced to go back to mmu debug13:22
Fallenouif it works, well, it's stable enough :)13:22
wpwrakhmm. as far as debugging is concerned, going straight to linux while the synthetic tests are still failing sounds like a pretty bad move.13:52
wpwrakhowever, there would be value in actually trying to make it fit into the real system. e.g., you may find that there are some operations you haven't anticipated or that are inconvenient in their present state. so that would be functionality (things like permissions and such) and also interfaces (e.g., how you update the TLBs)13:54
wpwrakregarding the BIOS tests, if PIC causes you a lot of trouble, why not just force compilation with a specific absolute address ?13:55
FallenouI don't think PIC causes troubles13:56
FallenouI did instruction modification at runtime and it worked fine in simulation13:57
wpwrakhmm. maybe you need something that lets you debug at a lower level.13:59
wpwrakhow about making a LED bar that plugs into the extension header ?13:59
wpwrakthen you could synthesize a controller with a latch of set/clear lines, which would let you set leds with very little overhead. i.e., you could set leds from within the verilog.14:00
wpwrakthat way, you could find out at what point the system derails14:01
wpwrakif you have some sort of multi-channel monitor (any kind of LA), you could also just connect directly to the expansion header, without needing LEDs14:02
Fallenouled or LA stuff could help indeed14:02
FallenouI have a LA, I could just connect it to the extension header and debug with it14:10
wpwrakthat sounds quite good already14:15
wpwrakparticularly if it has a "continuous display". i.e., if you can see what the signals are doing without having to wait for a trigger14:16
wpwrakif it needs a trigger, you could of course just output a continuous wave on one pin, and use that14:16
Fallenouit only works with a trigger14:17
Fallenouand has very few memory14:17
Fallenouit's an open source LA14:17
Fallenouusing fpga blockram as memory14:17
Fallenouso it's quite small14:17
wpwrakcan you make it loop without manual intervention ? wait for trigger -> capture a few samples -> display -> wait for next trigger ...14:18
FallenouI'm really not sure14:23
Fallenouit's the Open Bench Logic Analyzer14:23
Fallenouhttp://dangerousprototypes.com/docs/Open_Bench_Logic_Sniffer14:24
wpwrakwell, if all else fails, you can still rig up a few LEDs :)14:26
Fallenouhehe14:27
Fallenouwe will see, I'm not a pcb maker expert like you guys :p14:27
Fallenouremember I am a software guy14:27
wpwrakyou domn'14:27
wpwrakyou don't really need a pcb for a few leds :)14:27
FallenouI don't even own a soldering machine :p14:28
Fallenoubut I have leds !14:28
wolfspraulI successfully procrastinate my etching work :-)14:28
wolfspraulfpga wiring is just too much fun14:28
wpwraki suppose you could do it with wire wrap :)14:28
wpwrakyou need leds, some resistors in the 56-220 Ohm range, and connector(s). the connector(s) may be the hardest bit.14:29
FallenouI have a few resistors but I don't remember the ohm value14:30
wpwrakfortunately, there a a lot of things that connect to 100 mil headers. and it doesn't have to be a perfect fit anyway. if you just make loose connections, you can adapt pretty much any connector that somehow fits14:30
wpwrakSMT resistors or the old type with funny color rings ?14:31
Fallenoufunny color rings ;)14:31
wpwrakwell, then you'll have fun decoding ;)14:32
Fallenousure !14:32
wpwrakor if you have a voltmeter, you can just use taht14:32
wpwrakwon't be very precise for relatively small values but it'll left you tell the 10 kOhm from the 100 Ohm :)14:33
wpwraks/left/let/15:40
Action: Fallenou is back16:26
mwalleFallenou: is there any documentation about your mmu implementation? :)16:26
mwalle(yet)16:26
Fallenouno there is not unfortunately16:26
Fallenoubut there an example implementation16:26
Fallenouhttps://github.com/fallen/milkymist-mmu/tree/mmu-bios/software16:27
Fallenouthere16:27
Fallenouyou have libbase/mmu.c include/base/mmu.h libhal/mmu.c and include/hal/mmu.h16:27
mwalleFallenou: although i had a quick look at the source last week, i guess i didnt catch everything ;)16:27
Fallenoubut indeed I should provide detailed documentation16:28
Fallenouoh sorry wrong link, it's there : https://github.com/fallen/milkymist-mmu/tree/mmu/software16:29
mwalleFallenou: could you describe the tlb table and the commands to manipulate the entries in a short email?16:29
Fallenoummu branch16:29
Fallenoumwalle: sure16:29
mwallethen i'll have a look how hard it is to implement that in qemu ;)16:29
Fallenou:)16:29
Fallenouawesome !16:29
Fallenouyou'll have that by tonight16:29
mwallecool16:30
Fallenouhigh level implementation is there https://github.com/fallen/milkymist-mmu/blob/mmu/software/libbase/mmu.c16:30
Fallenoulow level stuff is there https://github.com/fallen/milkymist-mmu/blob/mmu/software/libhal/mmu.c and https://github.com/fallen/milkymist-mmu/blob/mmu/software/include/hal/mmu.h16:31
Fallenouitlb stuff is not commited yet in this git repo16:31
FallenouI have to run, be back in a few hours ! :)16:32
mwalleFallenou: kk btw "xor r11, r11, r11", should be mvi r11, 0, i guess :)16:32
mwalleah mvi r11, 1116:32
mwalle0x1116:33
Fallenouah ok 1 asm instr instead of 216:33
Fallenouinstead of xor then ori I should mvi, yes you're right :)16:33
Fallenoumy brain is just using a small subset of lm32 instruction set :p16:34
Fallenoube back later *gone*16:35
Fallenoumwalle: sending the doc :)22:42
Action: Fallenou came back late from a karaoke22:42
Fallenouand there you go, a draft of documentation of Milkymist MMU !22:54
Fallenougn8!23:03
--- Mon Jul 9 201200:00

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