Posts

Showing posts with the label loongson

MIPS N32 Firefox

Almost forget to mention, now with this workaround http://bit.ly/d5rBqp , N32 firefox-3.6.8 is working again. I am still trying to fix the binutils bug. http://sourceware.org/bugzilla/show_bug.cgi?id=11956 I am feeling that I am not far from a break through. BTW, Shenzhen Linux User Group will celebrate Software Freedom Day 2010 on this Saturday. If you happen to be in town by then, do drop by, ;) http://bit.ly/sz_sfd_2010 If you can come, and don't understand Chinese, I am always ready for help. ;)

About the kernel of Loongson 2F machine

I just found that, it is actually very easy to trigger the problem that the -mfix-ls2f-kernel as option could fix. Like just emerging glibc could hang the system. So if you are using linux-loongson/2.6.30/stable branch from this git tree http://dev.lemote.com/git?p=rt4ls.git;a=summary, you maybe want to line 129 of arch/mips/Makefile: $(call cc-option,-march=loongson2f,-march=r4600) $(call cc-optoin,-mtune=loongson2f) to $(call cc-option,-march=loongson2f,-march=r4600) $(call as-option,-Wa$(comma)-mfix-ls2f-kernel,) Actually, $(call cc-optoin,-mtune=loongson2f) here is not required. BTW, glibc-2.10.1 is ready in my overlay. This version could solve the gdb issue: Error while reading shared library symbols: find_new_threads_callback: cannot get thread info: generic error find_new_threads_callback: cannot get thread info: generic error This happened previously when debugging multithread applications.

More on Yeeloong status

I have not blogged here for some time. But that does not necessarily mean I am slacking, ;). Instead I have been doing things. I should've blogged more. http://www.gentoo-cn.org/gitweb/?p=loongson.git;a=shortlog Redhatter posted two blogs related to Yeeloong's status. I guess I should say something too. First of all, I recommend this mailing list http://groups.google.com/group/loongson-dev to those who want to know the latest news about Loongson. If you want to try Gentoo on Yeeloong, you can take this http://www.gentoo-cn.org/~zhangle/loongson_mips3_n32_mplt_20081231.tar.bz2 The file's sha256sum is c94bcd45e58e5f4b8314942a6b3110a2316fd74adb009c8269d1e8e2077d7c72. Please note the userland is N32 ABI, meaning there may be more problems than in O32. But I should've already solved many of them for you. I have been working on Fuloong 2E/2F and Yeeloong's support, particularly N32 ABI system. Firefox is just one example. I have 3 Loongson machines, all donated by lemot...

MIPS N32 firefox in acid3 test

Image
My quest for MIPS N32 firefox could finally come to an end, since I just got it scores the same as X86 firefox . Remember I said it would encounter bus error on a few websites in my last related post . But I didn't plan to look into this issue before dealing with cache aliasing problem. However, since Rayson Ho helped me to locate the exact cause of this issue, I decided to finish it first. The problem is caused by unaligned access of ldc1/sdc1 instruction. These two instructions' operand must be 8 bytes aligned. But when crashing, the operand is only 4 bytes aligned. After some discussion and experimenting, I found a workaround for sina.com.cn crashing problem. Yeah, a padding pointer sounds scary and fragile, but it did work. Before posting any comment to this, please make sure you have read all the emails in that thread. Then Fai Wong reported to me that it still crash in acid3 test . So I took another look. This time the problem happened in a different location, and it i...

Ftrace is working now on my loongson box

http://www.linux-mips.org/archives/linux-mips/2009-04/msg00112.html So I confirmed that this MIPS ftrace support is really working. Thanks to Wu Zhangjin (吴章金). However, I have no interest in finding out what kind of difference between my loongson2f patch and wu's caused wu's ftrace patch does not work on top of my loongson 2f patch. What I would like to see now is to get loongson2f patch merged into mainline . Plus, I wish I could make loongson linux to be able to use 4k page(Now, loongson could only use 16k page in order to avoid d-cache aliasing). I have already started working on it now. Even if it turns out that I can't, I could tell others what I have done in order to achieve this goal. And by that time, I would've got a much deeper understanding of Linux's memory management subsystem.

MIPS N32 patch for xulrunner(firefox)

Finally, I have produced some results. I have watched 6 seasons of 24 and 2 seasons of Friends since late last month. So this is delayed. :P The patch is here . I think it still need some tweaks, you can always get the latest patch in my loongson overlay on http://www.gentoo-cn.org/gitweb . The produced xulrunner could run a little example: http://dev.gentoo.org/~r0bertz/xulrunner/myapp.tar.bz2 (untar the tarball, cd myapp && xulrunner-1.9 application.ini) However, I haven't got a fully functioning firefox yet. Some font size is extremely large. And sometimes bus error. I have noticed that I have used -O3 to compile it. I will try -O2/-O1 later and see if it still bus error.

Works I have done related to Loongson in recent months

I got a donation of a Lemote Loongson 2F box somewhere around July this year and have been working on it in my spare time since I got it. The other day I made a summary about what I have done so far and posted it on Lemote's bbs. The links is http://www.lemote.com/bbs/viewthread.php?tid=20134 My work involves toolchain, kernel, xorg-server MIPS or Loongson support and userland library/application gcc 4.4 patch. The most prominent achievement so far is an N32 ABI stage3 (well, actually just a tarball, not made using catalyst) optimized for Loongson 2F with MIPS PLT support. It is actually not that easy as you would've imagined, N32 has many problems as you can see from the above posted link. I posted it on Lemote's bbs along with some instructions of how to use it: http://www.lemote.com/bbs/viewthread.php?tid=20125 According to some testers, performance of some applications in this system has an up to 30% increase comparing with the performance of the same apps in system Usi...

A problem in Loongson 2F specific integer operation instruction patch

I have reported on gcc mailing list. http://gcc.gnu.org/ml/gcc/2008-11/msg00076.html Also I found the solution: http://gcc.gnu.org/ml/gcc/2008-11/msg00087.html Now I have built gcc-4.4 with my modified patch with "-march=mips3", and am building itself again using "-march=loongson2f". Note that enabling -O2 in later stages is not working yet. Please check this bug report for more information if you are interested: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38052 EDIT: just heard from Kumba, this flag used together with -O1 will trigger this bug: -foptimize-sibling-calls Optimize sibling and tail recursive calls. Enabled at levels -O2, -O3, -Os. The modified gcc 4.4 ebuild is here and some relevant libraries here .

Some updates (docs, loongson, as-needed)

1. Documentation get updates regularly as usual. http://www.gentoo-cn.org/gitweb/?p=gentoo-cn;a=summary 2. Our table now can distinguish between file owner and file last updater when the file in question need to be updated. If the last updater is the owner, there will be an email link on the name; otherwise, there will be no link, but the name will be in red. The name is in the last column. http://www.gentoo-cn.org/trads/ http://rubyurl.com/0BD4 3. I will get my loongson 2f box soon, :-D 4. Just fixed an as-needed problem: http://bugs.gentoo.org/show_bug.cgi?id=225117 http://www.gentoo.org/proj/en/qa/asneeded.xml

Some updates about loongson

1. Gcc's support for loongson is coming: http://gcc.gnu.org/ml/gcc/2008-04/msg00551.html 2. Lemote Loongson 2F box's release has been postponed to June 30. http://202.201.0.147/Html/inner/2008-4/11/201803589.html For those who want to order 2F box: I have talked to 2F box's product manager, he recommended sending email to sales@lemote.com directly. That's it, ;) PS: Lemote has Loongson laptop, too.

A live binutils ebuild

I have written a live binutils ebuild. It is now in my loongson overlay. I wrote it because binutils cvs already got loongson 2e and 2f support, but new version is not released yet. The ebuild itself is quite simple, thanks to cvs.eclass and toolchain.eclass. However, in order to make it really work, I have to modify cvs.eclass. The reason is: The checked out directory name of binutils is called "src". While cvs.eclass expects the checked out directory name is the same as the package name, i.e. "binutils". Unfortunately, "co -d binutils binutils" doesn't work. If I use "co -d binutils binutils", I can only checked out the "binutils" directory, while the actual binutils module contains more than that. So, the most straight forward way to solve this would be to "mv src binutils" after checking it out, and this was exactly what I did. I need a new variable name to hold "src". I call it ECVS_CO_DIR. Some other things...

Pulseaudio-0.96 on MIPS

Pulseaudio depends on libatomic_ops. However, libatomic_ops don't have support for mips. I've created a patch for mips, though only work on 32bit userland. Get it here . Pulseaudio now compiled and installed on my loongson box. Can't use it to play though. The following is some detailed info, if you are interested in. My setup is to use alsa's pulse plugin. I tried aplay, for example: $ aplay /usr/share/sounds/alsa/Front_Right.wav aplay: pulsecore/mutex-posix.c:75: pa_mutex_lock: Assertion `_r == 0' failed. Aborted Before this assertion failed, aplay is stuck on a futex system call. connect(7, {sa_family=AF_FILE, path="/var/run/pulse/native"}, 110) = 0 send(6, "W", 1, MSG_NOSIGNAL) = -1 ENOTSOCK (Socket operation on non-socket) write(6, "W", 1) = 1 gettimeofday({1187375795, 973686}, NULL) = 0 write(6, "W", 1) = 1 futex(0x45dd1c, FUTEX_WAIT, 1, NULL

More on mldonkey and loongson

My little patch to mldonkey's Makefile donesn't satisfy mldonkey developer. I didn't come up with a better solution. So I resorted to modify mldonkey's ebuild. Maybe not so elegant, but it works, at least for me. I added the following snippet to src_install(): EXE="mlnet mld_hash get_range copysources make_torrent subconv" if [ -f mlnet.byte ]; then for i in $EXE; do mv $i.byte $i done fi dobin $EXE || die "dobin failed" The ebuild could found here: http://www.gentoo-cn.org/loongson-overlay/net-p2p/mldonkey/ This overlay is independent from the one on dev.lemote.com, although the latter was actually registered by me. Because I can't access dev.lemote.com's svn repository, probably due to network problem. So I just maintain this overlay locally, using git. To get it, run: git-clone http://www.gentoo-cn.org/loongson-overlay/.git BTW, I have just registered a domain name: gentoo-cn.org. I will make it theportal site...

Mldonkey can work on Loongson

In short, ocaml doesn't have native code compiler for mips linux, but it can compile byte code which is also an ELF executable. The only difference is that bytecode runs slower than native code. But there is a little problem with mldoney's Makefile. I will try to make a patch to solve the problem. PS: maybe i misunderstood something. I found that mlnet.byte can't run on its own, it needs bytecode file. PPS: I found the mlnet.byte i have installed into /usr/bin is not the right one. PPPS: it is the right one, but gentoo stripped it, haha, now it works, finally! http://caml.inria.fr/pub/ml-archives/caml-list/2002/08/492887df149fb58b1c21ffa89e6fee66.en.html The following is a conversation happened on #mldonkey @ freenode (r0bertz) what is the difference between mlnet and mlnet.byte * lb001_ has quit (Remote closed the connection) * lb001_ (i=irc@gateway/tor/x-f2c1251672831851) has joined #mldonkey (jave) r0bertz: mlnet.byte is byte compiled (jave) you will normaly use plain ml...

my patch to strace was accepted

https://sourceforge.net/tracker/?func=detail&atid=102861&aid=1659465&group_id=2861 This is a mips related patch. I made this patch when I porting Gentoo to loongson. -- Zhang Le, Robert http://r0bertz.blogspot.com http://zh.gentoo-wiki.com http://savannah.nongnu.org/projects/pgubook http://groups.google.com/group/gentoo-china http://groups.google.com/group/szlug

KDE on loongson

Image
KDE终于装好了,截个图

emerging KDE on loongson

I have got DRI working in Gentoo on loongson. mesa/libdrm/kernel/xorg-server/xf86-video-ati need to be patched in order to achieve this. I have set up a loongson overlay, including the necessary patches. Get it here: http://gentoo.linuxsir.org/download/loongson-overlay.tar.bz2