[Cbe-oss-dev] lv1_insert_htab_entry() hanging
Nathan Whitehorn
nwhitehorn at freebsd.org
Tue Mar 30 16:58:23 EST 2010
Although it may be a bit poorly timed at this point, I'm working on
porting FreeBSD to the PS3, and am trying to get the MMU up in the boot
loader. I have run into an incomprehensible and difficult-to-debug
problem that I thought people on this might be able to help with.
My MMU startup procedure goes as follows:
lv1_construct_virtual_address_space(256 KB, large pages) => returns
success, and sets the size of the page table correctly
lv1_select_virtual_address_space(value from before) => returns success
for largepage in physmem {
lv1_insert_htab_entry(0, pte group * 8, pte high word, pte low word,
0x08 (bolted PTEs for us), 0)
}
But the hypercall for lv1_insert_htab_entry never returns on the first
run of that loop, and the PS3 spins inside of it forever. If I
deliberately provide invalid inputs, it returns with
LV1_ILLEGAL_PARAMETER_VALUE, as expected. Does anyone have any ideas why
this might be happening?
For reference, the code is here:
http://svn.freebsd.org/viewvc/base/projects/ppc64/sys/boot/powerpc/ps3/
And a built binary for those with more advanced tools can be found here:
http://people.freebsd.org/~nwhitehorn/loader.ps3
-Nathan
More information about the cbe-oss-dev
mailing list