<div class="gmail_quote">Hi,<br>
<br>
I've recently had to install custom "OtherOS++" firmware after someone<br>
updated my 2.x firmware despite me warning them not to. I'm now<br>
running firmware 3.55 and debian squeeze based on the instructions on<br>
gitbrew, including the 2.6 git kernel tree stored there. I've been<br>
trying to rebuild all the tools I was previously using (from about 2<br>
years ago) with the intention of getting back into programming on the<br>
platform. I have a few questions that I'm hoping someone here can<br>
answer. My apologies in advance if it's not the correct forum.<br>
<br>
The main difficulty I'm having is with the spufs module included with<br>
the kernel. It works OK for quite a few of my programs, in that it<br>
allows me to load and run the SPE code and do most of the usual stuff<br>
that was working before (mailboxes, dma to/from SPEs, etc.). However<br>
the biggest problem I'm noticing is that the /spu virtual filesystem<br>
isn't being populated with process information, and as a result spu-ps<br>
or spu-top aren't showing any results (though they do report on % cpu<br>
usage for the SPEs correctly).<br>
<br>
I've tried downloading other kernels from <a href="http://kernel.org" target="_blank">kernel.org</a>, from Debian<br>
(linux-image packages) and from Geoff Levand (the official ps3<br>
kernels?) but the initial bootloader (kboot in petitboot?) just hangs<br>
without even printing any messages when I try running them. Apparently<br>
there are some changes made to the kernel to enable it to run under<br>
OtherOS++, but I've no idea how to go about finding out what these<br>
changes are or how to apply them to the official kernel sources.<br>
<br>
So my first question is: how do I either (a) get the official kernels<br>
to boot in this custom firmware environment, or (b) how do I get spufs<br>
working properly with the custom kernel. As for (b), I came across<br>
some discussion of the exact problem I'm having, and I think it was<br>
ultimately solved by a set of kernel patches. I suspect that those<br>
patches never got into the custom kernel I'm using.<br>
<br>
I've also come across other problems relating to spufs, and some other<br>
problems that might not be related.<br>
<br>
Firstly, I tried recompiling the tests for libspe2-2.2.0. I had to<br>
install libspe2 by hand since the package seems to have been dropped<br>
from Debian Squeeze (is there actually any active development for<br>
Debian on PS3? I don't know). All the tests passed except the testmap1<br>
test, which tries to access SPE memory at 0xf7e52000 directly from the<br>
PPE. Checking the status of the process it shows it's waiting on<br>
.spufs_ps_fault. As I understand it, the kernel should be able to page<br>
in the SPE memory into the PPE address space, but it's not working for<br>
some reason (and there are no kernel log messages, even with the debug<br>
mount option set on the spu filesystem in my fstab).<br>
<br>
All the other programs I'd written before to work with libspe2 work<br>
fine, with the possible exception of one test program which now often<br>
crashes with a bus error. I can't discount the possibilty that I never<br>
debugged that one properly before, though.<br>
<br>
The other thing I wanted to do to bring the system back to the same<br>
state as I had before is to install the mars libraries. Unfortunately,<br>
while it seems to compile OK, all the test programs in there are<br>
crashing with bus errors, segfaults or format errors (when trying to<br>
load a 32-bit elf image into a SPU). I'm not sure what's going wrong<br>
here, but I suspect that it might by my toolchain that's at fault. I<br>
know there are problems with compiling kernel.c with gcc-4.4 since it<br>
doesn't let you compare (!=/==) vectors. I fixed that problem, but I'm<br>
not sure if there are other problems lurking there. My own programs<br>
that use mars also fail with a format error when trying to load an elf<br>
image (tested standalone and embedded).<br>
<br>
I can live without fixing mars for the moment, but not being able to<br>
load other kernels to see if they have a working spufs is really<br>
throwing up a roadblock for me. Any help anyone can offer here would<br>
be much appreciated.<br>
<br>
Regards,<br>
dec<br>
</div><br>