IRC logs for #openrisc Monday, 2015-04-27

--- Log opened Mon Apr 27 00:00:24 2015
HeshamShouldn't INIT_SECTION_ASM_OP be defined anywhere in GCC (i.e, or1k.h)?08:04
maxpalnhowdy all - I'm running through some basic bring up tests on one of our eval boards. I am seeing pc_execute_o jumping to 0x200 to indicate a bus error but I am not seeing spr_epcr update with the address causing the error. I haven't seen this scenario before - does it sound familiar to anyone?12:03
poke53281can someone try the jor1k website please? I get an error in the console: "SecurityError: The operation is insecure"12:03
stekernpoke53281: works here12:14
poke53281Hmm, then what happens to my browser. You use the github pages. A https connection to
poke53281or http?12:34
poke53281stekern: can you try http and https please?12:34
Heshampoke53281: It's loading the kernel with http only, however, it doesn't with https12:54
poke53281Ok. Because the websocket does not support https. And then he doesn't go on.13:00
poke53281I mean the ethernet relay server, which is connected via websocket.13:03
poke53281cruel world13:03
maxpalnhmm, I seem to have run into a problem in wb_ram_b3.v - I am seeing 'burst_access_wrong_wb_adr' get asserted. I seem to remember olofk mentioning a fix to this file in the last few months but I can't remember the details. I should know this but where can I find the latest version?13:13
maxpalnok, I've found this one - which from the path would suggest it is pretty up to date:13:19
maxpalnIt has quite a few differences to my version so I'll give it a go before diving into the diagnosis.13:19
olofkmaxpaln: Please stay away from ram_wb. It's only there because I haven't removed it yet :)14:00
olofkIt's not very synthesis-friendly14:00
maxpalnolofk: :-) ok - so do we have a suitable alternaive?14:00
olofkwb_ram. It's totally different :)14:00
maxpalnfor a quick debug I want to use the internal memory on the FPGA for a simple UART test.14:00
olofkThat's what it's for14:02
maxpaln:-) - my naivety knows no bounds!14:02
olofkIt's even supposed to handle preinit, so that you can use it as a writable boot RAM14:03
olofkThat doesn't work reliably across the vendor's tools though. Altera just refuses to do it14:03
olofkmaxpaln: I've integrated all your changes and more into my wb_bfm now btw. I'm just about to release a v1.014:04
maxpalnolofk: Great :-)14:04
olofkI decided however to to do some things in a different way14:04
maxpalncool! my first published work! I'll have a beer tonight %-)14:04
maxpalnI trust your judgement!14:05
olofkmaxpaln: Yeah, I was going to name check you on twitter as well :)14:05
olofkMost notably, I did not include the write only/Read only mode, as I reckon that you might want to do a custom transactor for that14:06
maxpalncool - yeah, as I was adding it I thought it was a bit niche14:07
maxpalnright, trying again with the wb_ram code - it looks a lot more compact, closer to what I expected for a simple RAM :-)14:18
olofkmaxpaln: I wonder if I accidentily broke back-to-back transactions. I'm trying to find evidence of them somewhere14:37
poke53281@Hesham: Now it should work with https too. Can you try?14:38
Heshampoke53281: It runs fine now with https14:38
poke53281At least, it shouldn't crash. But network will not work.14:38
poke53281Problem: I linked all the time to the http version. It run fine. But google changed its crawlers to look for https website. So now, the link in google for jor1k goes to the https page.14:40
poke53281And because jor1k connects to other websites without https it stops.14:41
maxpalnok, wb_ram works correctly :-)14:48
maxpalnnow I need to work out why my uart terminal isn't working!14:48
maxpalnSometimes I feel really stupid - I can't get the terminal baud rate to work correctly. Having double checked pretty much everything I still don't get the terminal displaying correctly. Things like this start to get me suspicious - like maybe the advertised clock rate for the oscillator on my board is incorrect or something like that.15:30
olofkmaxpaln: Got an oscilloscope?15:30
olofkBoth to check baud rate and voltage levels15:31
GeneralStupidhi i want to ask again. I dont get the newlib toolchain to work :(15:32
maxpalnah, if only my lab was equipped with something as useful as an oscilloscope - I'm stuck with PC based tools only. I find it helps to purify my engineering brain: the harder the challenge the more satisfying the win!! :-)15:36
olofkGeneralStupid: What was your problem with newlib?15:42
olofkmaxpaln: Something has gone horribly wrong if you are supposed to "win" over your test equipment :)15:52
GeneralStupidolofk: i use binutils-2.25  binutils-2.25.tar.bz2  newlib-  newlib-  openOCD  opt  or1k-elf-latest-ubuntu-14.04-amd64.tgz16:48
GeneralStupiddamn copy and paste16:49
GeneralStupidolofk: i use or1k-elf-latest-ubuntu-14.04-amd64.tgz16:49
GeneralStupiderror while loading shared libraries: cannot open shared object file: No such file or directory16:51
GeneralStupidthats my failure16:51
olofkHmm... libopcodes is part of binutils as far as I can see. Maybe gcc isn't looking in the correct directory16:58
olofkThere might be some requirements on where the prebuilt toolchain should be installed16:58
olofkWhere did you put your?16:58
olofkSeems they should go in /opt/or1k-elf17:05
fotis2hi folks; I'm on of the fellows busy with this tool:
fotis2I wonder what it takes to give it a shot on an openrisc-like platform!17:28
olofkfotis2: For use TL;DR; folks, which part do you think would benefit from EasyBuild?17:33
olofkI mean, is it for generating FPGA images, installing toolchains, Linux development, documenting stuff, application development...?17:33
fotis2installing toolchains, trying out different software builds (and how far the FP part is working)17:35
olofkInstalling toolchains could certainly need something like this17:36
stekernwhere can I get a list of post-synthesis signals from quartus?17:37
olofkstekern: Were they removed even though you told SignalTap that you wanted them? :)17:38
stekernI'm trying to set-up a bunch of multi-cycle constraints based on 'enable' signals, but it complains that the 'enable' signal I'm trying to work against doesn't exist17:38
olofkstekern: No luck with syn_keep?17:39
latifhi every one..17:39
latifI am interested in OpenRisc project for 3 months..17:39
stekernbut that signal propagates through several modules, so I probably need to find the instance where it's being kept17:39
olofkstekern: You could look at the post-synthesis netlist. A bit painful, but might be your best option17:40
olofklatif: Welcome aboard17:40
latifI am currently using Mint 17.1 .. I have installed GNU toolchain with newlib as shown the website..17:41
latifI have an annoyin problem with or1k-elf-g++ compiler..17:42
olofkfotis2: EasyBuild looks useful but I can probably say right now that I won't have time to play around with it, but if you are looking for help setting it up yourself I'm happy to help17:42
* yang sees the old topic ... is not working17:43
olofklatif: Problems are annoying in general. Any particular issue you're having?17:43
fotis2@olofk: basically, I need a user account somewhere I can start playing...17:43
olofkyang: Previous maintainer of didn't want to keep it. Unfortunately a domain squatter got it before I had time to register it :/17:43
latifyes.. when I use for example iostream.h header file in c++ code it gives me an error like... "undefined reference open_r"17:44
olofkfotis2: What kind of use account?17:44
fotis2@olofk: I'd think there is something connected online of openrisc type, no?17:44
olofkfotis2: Not really17:44
olofklatif: Do you have any example code I could test here? (Note: I'm really bad at c++)17:45
latif@olofk can you please help me if you know something about my issue?17:46
latifyes is so easy..for exm...17:46
olofklatif: Was it you who posted on the mailing list about this?17:47
olofkIn that case, I'm getting the same error17:47
latifyes it is17:47
latif#include <iostream>   int main() { std::cout << "test\n";  return 0; }17:47
olofkwallento: Any ideas?17:48
latifthats an easy code as you see...17:48
stekernactually... browsing the post-synthesis signals that signaltap is showing might be easiest...17:48
olofkstekern: I was thinking it might be easier with the netlist since you can find the source FF easier that way17:48
latifI have been trying to handle it nearly 2 months belive me..17:48
olofklatif: Yeah, this doesn't look good17:50
latifIt is so strange actualy...When I use printf in a C code it works :)17:51
olofkHmm.. the implementation of the 'open' syscall in OpenRISC isn't very promising17:54
olofkMaybe << in c++ uses fopen internally, while printf doesn't17:54
latifBut today, I got a similar linker error with a clock() function defined in time.h ... it says "undefined reference to times_r"17:55
yangolofk: why such an old topic :) ? just put the url out :)17:56
olofkyang: I've tried to remove all references to when I find them. Do you know if there are any left?17:56
stekernolofk: he's speaking about the topic in this channel17:57
olofkExcept for all the blog posts scattered over the internet. Hard to keep those up to date17:57
olofkahh :)17:57
olofkjuliusb: Fix! :P17:57
latifThe thing is I can build all my codes in virtual box image version which has or32-elf toolchain..17:58
olofklatif: That's good to know. Then we have a regression somewhere17:58
olofkUnfortunately my knowledge in this area is very limited17:59
yangolofk: i just checked the topic, which was set in 2013 ...17:59
latifso that means nobody ever used a cout  ?? !! :)17:59
olofklatif: Yeah, I find that a bit hard to believe as well :)18:00
olofkBut we did rewrite the newlib port quite recently from scratch18:00
olofk(since we didn't want it to be GPLv3)18:00
yangso OpenRISC (from my first view) is a project that tries to design RISC chips for devices and computers... ?18:01
yangRISC CPUs18:01
latifso you have suggestion for me?? what should I do ??18:01
olofklatif: I don't have a good solution, but you could try the toolchain here and see if that helps. I don't know if we still have any build instructions for that one though18:03
yangHave there been devices made with these chips which are operational with GNU/Linux, is there any list ?18:04
latifolofk: I am already using or1k-src18:07
latifolofk: can you tell me which one is the latest repository?18:08
olofklatif: Hmm... ok. That means we can't blame the rewrite18:09
olofklatif: For newlib we are upstream now, so you can use the latest tarball from the newlib homepage18:09
olofkI updated the build instructions for the newlib toolchain not too long ago
olofkBut my version also fails with the same error, so that won't help you unfortunately18:10
olofklatif: Using fopen in a c program gives a similar error18:13
latifolofk: I have also tried my code  on prebuilt  versions of or1k-elf but the same error again??  It is the first time you are come acrossing such an error?? I am sure many one should be seen it :)18:15
olofklatif: Yeah, I agree. I know that file handling isn't implemented, but I didn't think that would affect the weird << thing in c++18:16
olofkhmm.. I wonder if we define REENTRANT_SYSCALLS_PROVIDED18:18
olofkYep we do18:19
olofkHmm... should we really do that?18:19
olofkstekern, wallento, others?18:19
olofkIt's only arc, sparc64, spu and or1k that does that18:20
olofklatif: Are you building your own toolchain?18:20
stekernolofk: I probably know as little as you about the inner workings of newlib18:21
olofkstekern: Scary :)18:21
latifyes I built my own toolchain...and I also tried prebuit versions of or1k-elf..but the error is same!!18:22
olofklatif: Because if you can rebuild your toolchain I think you could try to remove a line from newlib/ and see if that works18:23
olofkLook for this section (sorry for the paste)18:24
olofk  or1k-*-elf | or1knd-*-elf)18:24
olofknewlib_cflags="${newlib_cflags} -DREENTRANT_SYSCALLS_PROVIDED "18:24
olofkAnd see if it helps to remove -DREENTRANT_SYSCALLS_PROVIDED18:24
latifolofk: yes I think the problem is related with crt0.o or crtn.o object files18:25
latifwhere is this configuration, in which conf file?18:26
olofklatif: newlib/configure.host18:26
latifok i am gonna try that and let you know about the result18:27
olofklatif: Cool. Hope it will help18:27
HeshamIronically, that's a related problem we have when trying to run RTEMS/C++ apps18:28
olofkHesham: Opn OpenRISC?18:28
Hesham__dso_handle is not defined18:29
Heshamwhich should be part of libgcc18:29
HeshamThat means the GCC is not configured right.18:29
Heshamcout is not working also18:29
HeshamI asked a question this morning about that18:29
Hesham"Shouldn't INIT_SECTION_ASM_OP be defined anywhere in GCC (i.e, or1k.h)? "18:30
GeneralStupidolofk: ill try that18:30
latifHesham: I am seeing many people now start to realize there is something terribly wrong with the or1k-elf-gcc :)) nice18:30
HeshamOne of the community said "The target must define INIT_SECTION_ASM_OP or INIT_ARRAY_SECTION_ASM_OP somehow."18:30
Heshamlatif: Well, RTEMS is basically based on or1k-elf-gcc18:31
HeshamOr elf tools in general18:31
HeshamExcept for the system calls and libgloss stuff18:31
latifolofk: I want to write a bug report or something about that...maybe it will be helpfull for feature there anywhere for this??18:40
latifby the way is there any one who can suggests a tutorial or something about using orpsocV3 ?? for orpsocv2 there are many but what about v3??18:43
olofklatif: Great! File it at if you have an account there18:44
olofklatif: I discontinued orpsocv318:44
GeneralStupidolofk: a global installed binutils does not work?18:45
olofkOr rather, it morphed into FuseSoC18:45
olofkI think there are a few FuseSoC tutorials around, but the documentation is terrible in general18:45
olofkStart with
olofkGeneralStupid: Not sure I understand what you mean18:45
latifthanks olofk..but I have read it a few times... I will try to convert v2 tutorials to v3.. and hope to write a good manual..18:52
GeneralStupidolofk: you told me to put binutils in opt/ right?18:52
olofkGeneralStupid: Yes, or rather put the complete pre-build toolchain (which is binutils+gcc+newlib) there18:56
olofklatif: I would be ever grateful for more manuals, tutorials and documentation. Especially a guide on porting orpsocv2 systems to FuseSoC has been on my todo-list for several years18:57
stekernHesham: isn't INIT_SECTION_ASM_OP  defined? (from here:
Heshamstekern: Let me check if elfos.h is included part of or1k-*-rtems* then18:59
GeneralStupidolofk:  ok it is in opt/or1k-elf/x86_64-unknown-linux-gnu/or1k-elf/lib/libopcodes-2.25.so19:00
Heshamstekern: It's included, still don't know why __dso_handle is not seen19:01
olofkGeneralStupid: No. Remove the "x86_64-unknown-linux-gnu/or1k-elf/lib" part19:07
olofksorry. Not the /lib part19:09
olofkooh.. sorry19:09
olofkNo. You're right19:09
olofkDon't move anything19:10
GeneralStupiddo i need some parameter for gcc?!19:10
olofkI just use or1k-elf-gcc file.c19:11
GeneralStupidthats what i tried19:11
olofkYou could perhaps try export LD_LIBRARY_PATH=/opt/or1k-elf/x86_64-unknown-linux-gnu/or1k-elf/lib , but I'm not sure what consequenes that would have19:12
olofkGeneralStupid: Wait a minute... I remember now that wallento said that the latest builds have been failing19:13
GeneralStupidolofk: ahh :)19:13
GeneralStupidi recently upgraded to debian stable, so i could build it myself now19:14
olofklatif: I tried rebuilding a toolchain without the REENTRANT_ thing set. Doesn't seem to work at all for me :/19:16
olofkNow I get duplicate definitions for all the other syscalls instead19:17
olofkSo the proper fix is probably to add a reentrant version of open to the or1k newlib port19:17
latifAhh thats not so good  to heard:)  I am now trying it on my systemm.. Maybe it works here :)) :))19:20
olofkActually... this could be a typo. Look here
olofkAll the other functions got an _r suffix except for open19:21
stekernand _gettimeofday19:22
olofkYeah. But we're using the cloud now to get the time instead19:22
stekernbut that's cloudtime19:23
olofkAh sorry. I forgot19:23
stekernyou have to convert that to the local weather conditions19:23
olofklatif: I wonder if your timer problem might be related to gettimeofday19:23
stekernthese multicycle constraints are driving me insane19:24
olofkstekern: I can understand that. I've never used them for synchronous stuff. Only to mark non-critical async paths19:26
stekerndoing that covers some, but then it's thrown off by signals going into blockrams19:28
stekernand combinatorial logic that is driving other logic19:28
stekerncan't say I'm very fond of the style of mixing combinatorial and synchronous stuff in processes used here neither...19:30
latifolofk: the clock function I use is this: printf("Exec. Time: %.2f s\n",clock()/(double) CLK_TCK);19:30
latifyou can see it on the rte the tutorial from here..
latifolofk: are you trying to change the syscalls.c and installing the toolchain again??19:33
olofkstekern: But if they are truly multi-cycle, couldn't you pipeline them?20:07
olofklatif: Yes, but it didn't work20:07
olofkHesham: Congratulations to the GSoC application20:08
Heshamolofk: Thanks, I think it would be the most challenging GSoC for me :)20:08
olofkBefore I start another recompilation, does anyone know if it would help to just change "char *file" to "const char *file"?
stekernolofk: yes, but I'm resisting the urge to write a fast pipelined 68k implementation from scratch...20:21
latifolofk: I think you may be right about the typo all along20:21
latifI think there is a typo in _r20:22
latifand also there is a mistake in definiton and declaration of the _open_r function. Because the signature of the function is not same in definition and declaration20:22
latifThey both should be const char*20:23
GeneralStupiddid anyone have a link to a binary toolchain20:25
olofklatif: I changed to const char and it compiles, but I get a lot of errors when I compile my testcase20:25
olofkBut I might have done something wrong. Perhaps I need to clean it out20:25
latifGeneralStupid: try tthis link:
latifcompile the code or the tool-chain?20:27
poke53281congratulation: Hesham20:30
HeshamThanks poke5328120:33
poke53281Apache Software Foundation got more than 50 slots20:33
Heshampoke53281: Are you mentoring the jor1k project?20:33
HeshamThe number of accepted students has been reduced this year20:33
GeneralStupidlatif: works20:33
GeneralStupidit works :)20:33
poke53281google needs all their money to not to be busted by the European Union ;)20:35
poke53281Python got also a lot of slots20:37
poke53281What is "Systern, an Anita Borg Institute" ?20:37
HeshamKDE got 37 slots20:37
latifGeneralStupid: What works??!!20:38
GeneralStupidlatif: compiling stuff for the openrisc :)20:40
GeneralStupidi will try them tomorrow20:40
poke53281Hesham: Yes, from 1307 student projects to 1051 students20:41
latifGenralStupid: Aha :) I just thought you have solved the error for a while :)20:42
Heshampoke53281: It's not that bad compared to the reduction in the number of accepted orgs.20:42
olofklatif: I will have to give up for tonight. Hopefully the Multicore Man from M√ľnchen might know what to do20:44
olofkWe're probably on the right track at least20:44
poke53281finally :)20:46
latifok olofk can we let Multicore Man to know about this error??20:47
poke53281Lol, 4 projects are regarded to wget.20:47
Heshampoke53281: Is not it weird that lowRISC gets only 3 slots?20:51
poke53281who knows.20:51
poke53281Thre are a lot with 3 slots20:52
poke53281gcc got 2 and git too20:52
HeshamRTEMS got 820:54
poke53281Yes, I know20:54
poke53281Is it the first time they participate?20:54
HeshamThat's a leap20:54
HeshamNo, they are veteran20:54
HeshamI've participated with them the last three years20:55
poke53281strace got one20:55
Heshammaybe they started GSoC 2 years earlier.20:55
olofklatif: Multicore Man will sense that something is wrong and show up when the time is right20:57
olofkwallento: Isn't that so? :)20:57
olofkOh well. Good night everyone20:57
poke53281Hexham: Organizations who participate the first year usually don't get that much slots.20:57
olofklatif: This might actually work. I managed to compile a program that uses fopen now. That didn't work before20:58
poke53281Hexham: If you work hard we get probably more slots next year20:58
olofkTry to rename _open to _open_r and change char *file to const char *file20:58
olofkAnd leave the REENTRANT_ thing in configure.host20:58
olofklatif: Yep. Managed to compile the c++ testcase as well20:59
olofkI'm fucking awesome!20:59
olofkgood night21:00
Heshampoke53281: I must work hard then :)21:03
--- Log closed Tue Apr 28 00:00:26 2015

Generated by 2.15.2 by Marius Gedminas - find it at!