IRC logs for #openrisc Thursday, 2015-05-14

--- Log opened Thu May 14 00:00:48 2015
stekernolofk: I recall having the same feeling when I did wb_sdram_ctrl06:12
maxpalnolofk: the openrisc community portal still references
olofkYeah! The uImage loader works on hardware too10:41
olofkAt least on the de0 nano. Next step is to try this on lx9 microboard as well10:42
stekernolofk: nice!10:56
bandvigolofk: as far as I understand, your loader: (1) runes from spi-flash similar to u-boot (2) waits UART (Z-modem?) (3) transfer an image prepared for u-boot and (4) run it. Am I right?11:47
olofkbandvig: I've actually been working with two different boot loaders recently, which might make things more confusing :)11:55
olofkBut one of them is almost as you describe, but it's more like this (1) runs from internal boot ROM (without any access to SPI Flash or RAM) (2) waits UART (3) transfer an image converted to intel HEX format and (4) run it11:57
olofkBut I stopped working on that one since I realized it would take too much time to transfer a HEX file over UART (~1 hour for a Linux kernel)11:58
stekernolofk: I doubt you'd use that to transfer the Linux kernel though11:59
olofkThe other one that I have been working on (which also works now), is a program that is small enough to be put into the internal boot ROM and can boot images prepared for U-boot. This means that we can boot a program (say Linux) directly without having to first load U-boot. It also means that we don't have to use bin2binsizeword anymore for the U-boot image. We can just run mkimage on the U-boot image as well12:00
olofkstekern: I was hoping to do that actually, for boards where it's tricky to get JTAG working12:02
stekernyes, but it could still be useful for that, to load something that's got more intelligence to load the kernel from ethernet/sdcard/usb etc.12:05
olofkstekern: Sure. U-boot for example12:05
olofkThe Stream board that I was working on last doesn't have any easily accessible non-volatile memory, so JTAG and UART are the only connections there until ethernet is configured12:06
bandvigolofk: thanks. good job!  I think the loaders are also useful things to simplify the road to OpenRISC for newbies.12:09
olofkbandvig: Absolutely. That's why I have spent some time now trying to streamline the process12:10
olofkWhat I'm looking for now is a decent way to select the boot ROM when building and running simulations.12:16
olofkI could use a `define, and for simulations I could probably use the elf-loader, but I would like something less hackish12:17
olofkA parameter is nicer than a define, but I'm not sure how to pass that to the synthesis tools12:19
olofkAlright! First version (0.9) of or1k_bootloaders is available now13:21
olofk...and is now used by de0 nano13:25
olofkIs there any clever way to read out the contents of a ROM that is only connected to the instruction bus?14:35
olofkCan I for example connect a debugger, set the pc and read out the current instruction?14:35
stekernolofk: if it's only connected to the processors i-bus, no15:18
olofkI'm trying again to get this DVI thing working. How on earth is anyone supposed to understand this timing stuff?17:43
olofkAre the length of the vsync/hsync strobes important, or is it just edge triggered?17:44
olofkI'm finding tons of tables. Just too bad that not two of them seem to tell the same thing17:45
olofkQuote: "As with RS-232, the standard for VGA video is that there are lots of standards"17:46
olofkYeah, that sums it up17:46
olofkDoesn't help that my source clock is 30.72MHz.17:48
GeneralStupidi just viewed the vga examples and that was enough for me17:49
olofkGeneralStupid: Enough to understand, or enough to give up? :)17:50
GeneralStupidto give up17:50
GeneralStupidi canceled it. Iam searching for any simpler example.17:50
olofkEverything seems to assume that you have a pixel clock with certain frequencies available17:51
olofkWhat happens if I'm 0.751% off?17:52
GeneralStupidThe T.M.D.S. clock channel carries a character-rate frequency reference from which the17:56
GeneralStupidreceiver produces a bit-rate sample clock for the incoming serial streams. Due to the high17:56
GeneralStupidpair-to-pair skew that must be tolerated, the phase of the derived sample clock must be17:56
GeneralStupidadjusted individually for each data channel. The methods of clock generation for data17:56
GeneralStupidrecovery are implementation specific and beyond the scope of this document17:56
GeneralStupidIts awful to read :)17:56
GeneralStupidi mean, big document but the implementation isnt in there17:56
olofkLuckily in my case, I have a chip that takes care of the TMDS signalling17:58
olofkBut I still need to feed it hsync/vsync17:58
olofkok, so hsync is supposed to be 3.5-4.0us and vsync 50-300us. That's a start18:01
stekernolofk: usually it's not the end of the world if your clock is slightly off, most monitors can handle that18:03
olofkstekern: Thanks. Good to know18:23
olofkJust discovered that the pixel clock can't be higher than the wb_clk. Now that's a problem18:23
GeneralStupidiam so happy that iam a software guy :)18:41
bandvigstekern: It looks like there is a bug in mor1kx_ctrl_cappuccino. Please have a look on line 418. I think the case id should have one more "?".18:43
stekernbandvig: mhmm, looks like you missed that one (and me too when reviewing your fpu changes) ;)18:57
stekernbut good that you cought it now18:57
bandvigyes, my fault :)18:59
bandvigjust a minute, I'm going fix it19:04
stekernI already did ;)19:05
mor1kx[mor1kx] skristiansson pushed 1 new commit to master:
mor1kxmor1kx/master 28674ca Stefan Kristiansson: cappuccino/ctrl: add missing '?' in exception cause decoding19:05
bandvig:) you are so fast19:10
olofkstekern: How off is slighly off?20:47
olofk7.5% ?20:48
stekernhmm, I don't have any hard numbers, but iirc the pixel clock I used to drive the LCD from de0 nano was pretty off20:48
stekernand on atlys, some resolution was pretty much off, but that worked on my monitor. those guys that did that accelerated 2d graphic stuff had problems with it though.20:50
olofkwhat the hell.. I find settings that are pretty perfect now.20:52
mor1kx[mor1kx] skristiansson pushed 1 new commit to master:
mor1kxmor1kx/master 6caa7db Stefan Kristiansson: pic: fix OPTION_PIC_TRIGGER="EDGE"...20:53
olofkPerfect = ~2.3% off :)20:53
olofkI've been reading this blog ( whenever I get the chance. It's awesome20:54
olofkAnd he has written a ton of articles20:55
stekernnooo, don't give me more distractions!!! ;)20:57
stekernI still have a bunch of unread posts at
olofkI chose to avoid that distraction. Still got plenty of others though21:07
olofkAbsolutely nothing is happening on the monitor :(21:38
stekernwhat exactly are you trying with?21:52
olofkThe board has a Cyclone IV connected to a TI TFP410 DVI/HDMI Transmitter22:01
olofkPixel clock is ~40MHz and a standalone simulation seems to generate correct timing22:01
olofkI'm writing the timing registers with OpenOCD22:02
olofkI forgot to connect the master interface though, so I'm rebuilding now with wbm_ack_i = 1 and wbm_dat_i = 32'hffffffff22:03
olofkBut it might just as well be some funkiness with the connection to the DVI transmitter22:03
olofkHaven't got an oscilloscope here22:03
olofkIT'S WORKING22:10
olofkWell, I got a light grey screen at least. Which is somewhat expected since I tied the data pins high22:10
olofkThis is the first time ever that I made something visible more than lighting up LEDs22:17
olofkSo what is there to do on the Linux side now?22:17
olofkDo I need the IRQ?22:47
olofkI copied the entry fb0 entry from the neek dts, and it says nothing about irq there22:48
olofkI vaguely recall something about endianness too. Is that relevant?22:49
olofkCan't find anything that looks like an interrupt handler in ocfb.c22:51
olofkShouldn't linux say something about the fb when I boot?22:53
olofkThere's a /dev/fb0 though22:53
olofkLooks like I managed to set the correct mode23:06
olofkThe screen is blank though23:06
olofkShouldn't the terminal show up here?23:06
olofkahh.. something with bootargs perhaps23:07
olofkCan I set the video mode in the dts, or does that require some extra patches?23:08
olofkRight now I hacked default_mode in ocfb.c23:09
olofkfbset doesn't seem to do much23:11
olofkok, so setting video mode in the dts seems to work. Still waiting for anything to show up though :(23:36
olofkWhere's my penguin? :(23:42
--- Log closed Fri May 15 00:00:50 2015

Generated by 2.15.2 by Marius Gedminas - find it at!