| GitHub40 | [migen] sbourdeauducq pushed 3 new commits to master: https://github.com/milkymist/migen/compare/009f26b...ec501e7 | 14:42 |
|---|---|---|
| GitHub40 | [migen/master] examples/dataflow: only import nx when needed - Sebastien Bourdeauducq | 14:42 |
| GitHub40 | [migen/master] bus/wishbone/Tap: remove ack feature - Sebastien Bourdeauducq | 14:42 |
| GitHub40 | [migen/master] bus/wishbone: target model - Sebastien Bourdeauducq | 14:42 |
| GitHub170 | [migen] sbourdeauducq pushed 1 new commit to master: https://github.com/milkymist/migen/commit/b7a84b37501ac3426af8fb843e278ccf73faa11b | 15:37 |
| GitHub170 | [migen/master] wishbone: base TargetModel class - Sebastien Bourdeauducq | 15:37 |
| Action: Fallenou started ITLB part, fearing first test | 15:40 | |
| Fallenou | it's gonna blow ! | 15:40 |
| Action: lekernel is preparing an army of simulation modules to help when the dataflow + asmi blows up | 15:47 | |
| Fallenou | hehe | 15:47 |
| Fallenou | ok let's try ITLB | 15:48 |
| Fallenou | fire in the whole ! | 15:48 |
| Fallenou | hum ok it does not blow, but does it really work ? | 15:48 |
| Fallenou | let's try a more difficult mapping than map(f, f); f(); | 15:49 |
| wpwrak | it's better if it doesn't work on the first try. otherwise, you'll be endlessly suspicious about it | 16:03 |
| Fallenou | with map(f, some_address); some_address(); it blows :) | 16:03 |
| Fallenou | I am trying inserting a few nops() between ITLB activation and the actual "call" to the function | 16:04 |
| Fallenou | it does not work any better, I should go back to simulation | 16:06 |
| Fallenou | ok enough playing around blindly with the FPGA, let's go back to ISim =( | 16:17 |
| roh | wpwrak: *g* | 16:19 |
| roh | wpwrak: i know that feeling... 'does it work? seems so... but do i trust it to stay that way?' | 16:20 |
| wpwrak | Fallenou: there's no glory in too easy a victory :) | 16:28 |
| Fallenou | indeed, let say that :p | 16:31 |
| Fallenou | I'm scratching my head to find out how to do enable ITLB in a clean way | 20:43 |
| Fallenou | I have some code at physical page X, I map virtual page Y to physical page X | 20:44 |
| Fallenou | if I do something like wcsr tlbctrl, ENABLE_ITLB then call Y | 20:44 |
| Fallenou | and let say instructions after the "call Y" are : inst_A inst_B | 20:45 |
| Fallenou | it will page fault when fetching inst_B | 20:45 |
| Fallenou | cause there is no mapping for the page which is executing (in the kernel space) | 20:46 |
| Fallenou | the cpu will fetch inst_A and inst_B anyway, even if there is a "call Y" instruction | 20:46 |
| Fallenou | they won't be executed though (inst_A and inst_B) | 20:46 |
| Fallenou | how can I prevent this kind of page fault which should not occure | 20:47 |
| Fallenou | I could add a mapping for the code currently running (the kernel code which enables the ITLB) but it's not clean and it could/will generate bugs, for instance if the user space application is using the exact same virtual address for something | 20:48 |
| Fallenou | I could delay the effect of the wcsr ... and acutally enable ITLB only 2 instruction later | 20:50 |
| Fallenou | let's try that :o | 20:50 |
| Fallenou | hum hum it fetches the correct translated addresses now :) | 21:25 |
| Fallenou | but after fetching a few instructions it generates a page fault | 21:25 |
| Fallenou | without changing of page :o weird | 21:25 |
| Fallenou | it seems ld is not happy with me using "bi" instruction | 22:21 |
| Fallenou | it works :) | 23:13 |
| Fallenou | at least I have one working example :p | 23:13 |
| Fallenou | but it's a start ! | 23:13 |
| Fallenou | let's commit this | 23:13 |
| GitHub179 | [milkymist-mmu-simulation] fallen pushed 1 new commit to master: http://git.io/GL1hOg | 23:21 |
| GitHub179 | [milkymist-mmu-simulation/master] Add a draft of ITLB to Milkymist MMU - Yann Sionneau | 23:21 |
| GitHub115 | [milkymist-mmu] fallen pushed 2 new commits to mmu-bios: http://git.io/koOaoQ | 23:30 |
| GitHub115 | [milkymist-mmu/mmu-bios] Add support for ITLB in simulation BIOS - Yann Sionneau | 23:30 |
| GitHub115 | [milkymist-mmu/mmu-bios] Add a simple test for ITLB in simulation BIOS - Yann Sionneau | 23:30 |
| Fallenou | gn8! | 23:31 |
| Fallenou | hi xiangfu ! | 23:31 |
| xiangfu | Fallenou, Hi | 23:31 |
| Fallenou | how are you ? | 23:32 |
| xiangfu | fine. :) | 23:32 |
| xiangfu | recently don't have time working on m1. | 23:33 |
| Fallenou | congratz for your latest openwrt sync with upstream on the ben :) | 23:34 |
| Fallenou | yeah I saw that | 23:34 |
| Fallenou | but you seemed to have been busy ;) | 23:34 |
| xiangfu | yes. | 23:38 |
| xiangfu | Fallenou, what about add 'milkymist-mmu' to build host? | 23:40 |
| Fallenou | well why not | 23:41 |
| xiangfu | maybe I try to add build 'milkymist-mmu' to buildhost (http://fidelio.qi-hardware.com/~xiangfu/build-milkymist/) | 23:41 |
| xiangfu | yes. | 23:41 |
| xiangfu | then people can easy try milkymist-mmu-firmware. | 23:41 |
| Fallenou | yes sure it could be great :) | 23:42 |
| Fallenou | in this repo on the "mmu" branch you have both the verilog for an mmu-enabled bitstream | 23:42 |
| Fallenou | and the mmu enabled BIOS | 23:42 |
| Fallenou | so you just need to build the bitstream (system.bit AFAIK) and the bios.elf/bios.bin | 23:43 |
| Fallenou | I didn't touch flickernoise nor rtems at all | 23:43 |
| Fallenou | I'm only playing with the BIOS | 23:44 |
| Fallenou | xiangfu: oh but beware, you need a modified "lm32-binutils" | 23:45 |
| xiangfu | great. will make it working in next few hours. | 23:45 |
| Fallenou | in your build script you should update your PATH to use my modified lm32-binutils | 23:45 |
| Fallenou | https://github.com/fallen/lm32-binutils-mmu | 23:45 |
| xiangfu | Fallenou, "lm32-binutils" is there a patch for that? | 23:45 |
| xiangfu | ok. I will use your repo about lm32-binutils | 23:46 |
| Fallenou | it's only a few commits | 23:46 |
| Fallenou | it could be distributed as a small patch | 23:46 |
| xiangfu | (Restart your GNOME/KDE/Mac OS/awesome/whatever session). I am using 'awesome' :-) | 23:47 |
| xiangfu | Fallenou, I will use your repo. so if there is new commit. it will trigger a new build. | 23:48 |
| Fallenou | hehe :) | 23:50 |
| Fallenou | me too at the office | 23:51 |
| Fallenou | make sure you don't overwrite your current lm32-binutils with my modified one | 23:53 |
| Fallenou | use a different --prefix= | 23:53 |
| Fallenou | thank you for setting that up ! | 23:53 |
| Fallenou | going to sleep, it's late here | 23:53 |
| Fallenou | see you ! | 23:53 |
| xiangfu | good night. | 23:55 |
| --- Mon Jun 11 2012 | 00:00 | |
Generated by irclog2html.py 2.9.2 by Marius Gedminas - find it at mg.pov.lt!