IRC logs for #openrisc Saturday, 2014-08-16

--- Log opened Sat Aug 16 00:00:09 2014
OpenthomHello ! I would like some advise on how I can install openbsd on a openrisc core01:57
OpenthomI know theres a ubuntu image and I think there is a uboot image, but how to go about openbsd ?01:58
sb0stekern, interesting... I wonder if that's a new vivado "feature"02:09
sb0ise isn't that bad afair02:09
OpenthomWas asking about openbsd on openrisc, anyone ?02:34
-!- Netsplit *.net <-> *.split quits: simoncook, blueCmd, kiwichris, stekern, arokux, mboehnert, enghong02:44
-!- Netsplit over, joins: kiwichris, enghong, stekern, blueCmd03:13
-!- Netsplit over, joins: simoncook, arokux, mboehnert03:13
poke53281stekern: I need a few minutes of your time. I would like, that you try the following. compile busybox with musl and try to run "ifup -a". I have here something like a Heisenbug.04:11
stekernpoke53281: I get this:
stekernsb0: I've had pretty inconsistent results from ISE too, but seems like vivado is even worse.05:59
stekernI can pass the 200MHz constraint with mor1kx if I set OPTION_STORE_BUFFER_DEPTH_WIDTH=106:00
stekernwhich is as close to disabling the store buffer as possible06:00
stekernI'll take a look at making it possible to completely bypass it. if disabling means you can increase fmax by ~10% without it the performance increase by enabling it is evened out by the lower clk-freq06:02
poke53281Ok, this is expected behavior.06:04
poke53281So please, can you send me the static compiled busybox binary?06:05
poke53281stekern: Did you test with or1ksim?06:06
stekernpoke53281: no, with real hw06:08
poke53281same problem with your version here. Kernel and Emulator left.06:29
poke53281It's exactly in this function:
poke53281vfork, execle, waitpid. A lot potential problems :)06:31
stekernwhat happens with your version?06:39
stekernspeaking of heisenbugs, I thought I had came up with a clever way to catch the spinlock bug. I added a per-cpu counter to the spinlock struct and increment that individually for each cpu. The idea was to see if any cpu try to lock a lock that it already locked itself.06:40
poke532811. The function never returns. The program is stuck and I have kill it CTRL+C. (This happens before anyting is done with the ethernet device in the function)06:41
poke532812. The problem occurs also when I remove the execle function.06:41
poke532814. It works everytime when I add a printf after the safe_waitpid function.06:41
poke532815. Any attempt to reproduce it with a smaller, separated code failed.06:41
poke532816. Optimization independent06:41
poke532817. This problem (stuck + CTRL+c) happens also with gcc, but not in qemu-user.06:41
stekernbut *that* of course change the behaviour of the bug completely, now the kernel just ends up in idle() even though it should have things to do...06:42
stekernpoke53281: is that with jor1k?06:42
stekernblueCmd was having similar problems in qemu iirc...06:43
poke53281interesting with the spinlock.06:43
poke53281in principle valgrind is doing something similar.06:44
poke53281Therefore I asked blueCmd for a kernel image which I can use with qemu06:44
stekernhave you tried or1ksim?06:44
poke53281no, not yet06:45
poke53281But I will compile the kernel for the old jor1k version, where it worked.06:45
poke53281And then I will try or1ksim or qemu.06:46
stekernwhat does strace say?06:46
poke53281But I spend already several hours to figure out, that the ethernet is not reponsible for that.06:46
poke53281I compiled strace today, but it gives me the same problem. No output, I have to kill with CTRL+c06:47
stekernhaha... ok06:47
stekernthat sounds odd06:47
poke53281strace, ifup, gcc. All have the same problem.06:47
stekernstrace works here too06:47
stekernand I *know* that works in or1ksim too06:47
poke53281And I guess, every function uses fork06:48
poke53281every program I mean06:49
poke53281but fork works in my test programs06:49
poke53281do you use
stekernbut they are almost the same06:51
poke53281this.SR_F = (virtualoffset == this.EA)?true:false;06:57
poke53281This is my key line for the swa function06:57
poke53281this.EA = virtualoffset;06:58
poke53281and this for l.lwa06:58
poke53281There is no other change to the normal 32 Bit read/write function.06:59
poke53281Is this everything I need.06:59
poke53281All instructions of my emulated cpu are executed atomic.06:59
stekernit should be physical addresses07:02
poke53281ahh, Ok07:03
stekernand you need a flag to indicate when the link is broken07:03
stekernthe flag should be cleared when an exception happens07:03
stekerndo you have the actual code somewhere?07:04
poke53281search for lwa and swa. I have omitted the "l." :)07:05
stekernyeah, I found it07:06
stekernyou should fail the store if the condition isn't met too07:07
poke53281I use r[31] and r[32] to be sure, that JAvascript uses 32 Bit integer arithmetic. Sometimes it is strange, I know.07:07
poke53281I mean r[32] and r[33]07:08
stekernsomething like that07:10
poke53281same problem with physical addressed07:11
poke53281think I implemented it. Problem still there.07:22
poke53281Ok, have to go to bed. Tomorrow is hiking day.07:22
poke53281I will find the error. Sooner or later07:25
stekernyeah, same with this darn spinlock bug :/07:25
heshamHi, how can I use l.nop 8 and l.nop 9, I can not figure out how/when they are used. Nothing in the manual relates to these instructions too.10:20
stekernhesham: they only have special meaning in or1ksim10:25
heshamstekern: Yes I am simulating programs using ork1sim, there is nothing about them at or1ksim manual too10:27
heshamI used them and found some results. Thanks10:29
heshamS 000262f8: 15000008 l.nop   0x8, How can I interpret this line ?10:30
heshamnm I figured it out.10:35
blueCmdpoke53281: yes, that's what I'm using14:48
-!- Netsplit over, joins: simoncook, arokux, mboehnert19:50
-!- Netsplit *.net <-> *.split quits: trem, kiwichris, blueCmd, stekern, mboehner1, enghong19:50
-!- FreezingDroid is now known as FreezingCold22:07
--- Log closed Sun Aug 17 00:00:10 2014

Generated by 2.15.2 by Marius Gedminas - find it at!