IRC logs for #openrisc Thursday, 2015-01-08

--- Log opened Thu Jan 08 00:00:43 2015
stekernpoke53282: I just meant not needing to bootstrap debian and build the 'glibc.deb'06:18
stekernbut from what I understood from your comment, you have scripts to do that?06:18
stekernI'm running the tests in or1ksim06:19
olofkjuliusb: I would have assumed that they could migrate these things seamlessly to another machine06:54
olofkDoing a DDR2 phy for Cyclone IV must be the worst decision ever07:46
olofkI'm close to giving up now. stekern, will it work to slap on a wb_avalon_bridge to the altmemphy controller?08:27
olofkLooks like altmemphy doesn't like the pin mapping. That's not good09:28
stekernthat's basically what I do on sockit09:36
stekern(to the first question)09:36
stekernwith a bit of qsys cruft/magic in between09:36
olofkI tried to add an altmemphy instance, but the fitter complained about pin placements, so I think I'm forced to use my generic hdl solution09:39
olofk(which doesn't work very well)09:39
olofkIf 640kB really would have been enough for everyone, I could have done it with Block RAMs09:40
poke53282stekern, well, I have script to do it in QEMU. The testsuite runs within 1-2 hours.09:40
poke53282It is part of the toolchain09:40
poke53282but it is not that easy. You need a static compiled qemu version.09:41
olofkWhere is wallento when you need him09:43
stekernpoke53282: that's fine, I have a static compiled qemu10:09
stekernmy plan is to throw together an expect script that is crosscompiling the tests in qemu, but then transfer the result to or1ksim to run it there10:10
juliusbolofk: yeah, I was supposed to do that but I think it still required a shutdown?11:22
--- Log closed Thu Jan 08 11:30:09 2015
--- Log opened Thu Jan 08 11:31:15 2015
-!- Irssi: #openrisc: Total of 48 nicks [0 ops, 0 halfops, 0 voices, 48 normal]11:31
-!- Irssi: Join to #openrisc was synced in 1 secs11:31
-!- You're now known as Guest5772011:31
-!- You're now known as juliusb11:31
olofk_franck__: Can I use upstream OpenOCD 0.8.0 for OpenRISC?15:02
olofkI vaguely remember that there was some stuff needed that was added after the 0.8.0 release15:03
_franck__olofk: yes you can15:14
_franck__you _must_ use the upstream OpenOCD15:24
stekernat least once a day15:28
maxpalnolofk: I've discovered a bug in the way I've written insert_wait_states() - I've fixed it, the updated version looks like this
maxpalnare you ok to replace this manually - or do you want me to update the dropbox files?15:32
olofkmaxpaln: Updating would be great16:42
olofkmaxpaln: Thanks17:21
olofkAre there any magic invocations that can be used to only build gdb (and potential prerequisites) from or1k-src?17:22
stekernolofk: I bet there is, we just need to find them17:43
stekernI want to know the magic if you succeed17:43
olofkI added --enable-option-checking to configure for or1k-src and it turns out that 90% of all the parameters in the build instructions are no-ops18:54
olofk"make all-gdb install-gdb" perhaps? Don't have or1k-src here to check19:07
olofkDo we still have the option to use or1ksim as the gdb simulator? (Not really sure what it means)20:28
_franck_olofk: yes we have20:30
olofkIs it good for anything?20:31
_franck_in GDB you have a builtin sim (not sure what it is for, except for testing). We also have a wrapper to use or1ksim as a simulator in GDB20:31
olofkI'm trying to clean up the build instructions a bit, and was wondering if we should mention that there, or if we should move that information to some separate page20:36
olofkBut I still don't really understand when we can use it20:36
ysangkokpoke53282: how do you generate basefs.xml? the scripts i see are for jor1k-sysroot...20:36
_franck_olofk: I used it when I ran the GDB testsuite against or1ksim20:36
_franck_it's not useful for common users20:37
olofk_franck_: Great. I'll make sure that the build instructions recommend users to disable that if they don't know what they are doing20:39
olofkUpstream newlib builds fine if I manuallly add or1k-sprs.h to libgloss/include. Should probably send a patch to add that21:03
poke53282ysangkok: I did it initially with the same method with a basefs.tar.bz2 file. But then I changed it manually.21:41
ysangkokpoke53282: i just inserted a check to warn when the sizes don't fit21:42
ysangkokpoke53282: it turned up many problems21:42
ysangkokpoke53282: do you want me to issue a pull request or should i just tell you the problematic files?21:42
poke53282shouldn't be, but it is possible with the basefs21:43
poke53282Just tell me21:43
ysangkokpoke53282: /etc/group21:43
ysangkokpoke53282: /usr/bin/showmenu21:44
poke53282Yes, both I changed afterwards :)21:44
ysangkokpoke53282: /usr/bin/help21:44
poke53282In principle I can reduce the basefs by removing most of the symbolic links. busybox can generate them by his own.21:45
ysangkokthat would make sense21:45
ysangkokinittab is also off by one byte21:46
ysangkokthank you21:55
poke53282I thank you21:56
ysangkokpoke53282: i was wondering, why is bz2 compression used in the application instead of http layer gzip compression?21:56
poke53282because it compresses the binaries so much better. I tried also gzip, by I was not satisfied.21:57
poke53282yes, gzip would be faster, but the loading time would be worse.21:58
poke53282not even http/2 will solve that problem.21:58
ysangkokdecompression would surely be faster, the browser can cache the decompressed gzip replies if it wants. using bz2, this is impossible21:58
poke53282Yes, the plan was, to put everything in it's own worker thread. And to use .xz or .lzma.21:59
poke53282The speed is superior to bzip2.22:00
poke53282But no problem. We can switch from a boolean compression variable to an integer one. c=0: no compression (or gzip)  c=1: bzip2 c=2: lzma22:01
poke53282you recognize the decompression time only during the kernel decompression and the collect2 file of gcc.22:02
poke53282but no compression is already an option.22:02
ysangkokyes i know22:02
poke53282Keep in mind, not everyone has 50MBit download rate.22:02
ysangkoki recognize that22:02
ysangkokan issue that turned up during the development of the lazy loading, is, that if the file is compressed, the chunking can't be done22:03
poke53282yes, we discussed this yesterday.22:03
ysangkokah i forgot... but of course it's not really a serious issue22:04
poke532821. solution: A file cannot be fully randomly loaded. If you want to have the end of the file, you have to download everything.22:05
poke532822. solution. Don't compress.22:05
poke532823. solution: use a pre defined Huffmann compression table for the binaries and for text files.22:05
poke53282Just to test, I would implement only solution no. 2.22:06
ysangkokyes, i agree22:07
ysangkokbut it would be useful with a flag for fs2xml to disable compression22:07
poke53282Well, that's no problem.22:08
poke53282Looks like, you start to understand the whole program pretty well.22:09
ysangkok:P only the filesystem layer... i have nowhere near the cpu for example :P22:10
poke53282fs2xml also creates a json file. Or maybe I haven't committed it yet.22:10
ysangkokit does22:11
poke53282the cpu is easy after you have read the specification.22:11
poke53282The safecpu is easy.22:11
poke53282the fast CPU is optimized and unreadable.22:11
ysangkokthe cpu is feature complete, though, no?22:12
poke53282complete enough I would say.22:12
ysangkokthe custom xml parser is a hack, i think json would be nicer. or maybe a real third-party xml parser22:12
poke53282Yes, therefore I implemented the json output.22:12
poke53282But I haven't time yet, to use implement a json loader.22:13
poke53282Yes, the XML loader is a terrible hack.22:13
ysangkokok good22:13
poke53282But it works. While I wrote the XML parser, my pulse was very high. I couldn't believe, that I had to implement it myself.22:15
poke53282you are free to implement the json loader.22:15
ysangkoki'll do it once i get the lazy loading working... :)22:16
poke53282I thought also to implement a binary format. That takes less bytes to load.22:16
poke53282more than 50%.22:17
ysangkoki don't think there is much time to save, the metadata is not very big in comparison22:17
poke53282But I like text files and gzip compresses such files.22:17
ysangkokyes, easy of use is also important22:17
poke53282Parsing a binary file is always easier than parsing a text file. At least, when you program in C with no libraries and no build-in functions.22:18
poke53282The only json is easier, because there is a built-in parser, which works even in a worker thread.22:19
poke53282the onyl reason json is easier is, ......22:20
poke53282Also one suggestion. At the moment I use several ids to organize the tree structure.22:21
poke53282But Javascript allows us to directly work with a tree structure.22:21
poke53282To get rid of the ids.22:21
ysangkokyou mean the inode tree?22:23
poke53282parentid, nextid, and firstid22:24
poke53282the only thing you need is parentid.22:25
poke53282nextid and firstid are just there for speed.22:25
poke53282we can get rid of all ids if we use a similar structure like the json file.22:29
poke53282hard links are a tiny problem then.22:29
poke53282but solvable22:30
ysangkokwhen you say "the only thing you need is parentid" how do you mean this? does 9p only need the parent id? or is it some other interface? who is using firstid now? internal emulator code only?22:30
poke53282well, to define a tree structure out of objects, an id is sufficient, which defines the parent. The tree can be built with that information.22:32
poke532829p doesn't need the id. It is some internal stuff.22:33
poke53282not the qid22:33
poke53282firstid and nextid are used to sweep through the directory listing of one directory. But the parentid already contains this information.22:33
poke53282Therefore firstid and nextid are only needed for fast file operations.22:34
poke53282I should make a plot :)22:34
ysangkoki will probably understand once i take a look at the code22:36
ysangkokpoke53282: which branch is used for development? i see you pushed the DebugMessage/Debug fix to gh-pages, but not to master... i don't understand the strategy in place here23:29
--- Log closed Fri Jan 09 00:00:47 2015

Generated by 2.15.2 by Marius Gedminas - find it at!