Page 1 of 1

iop tlb question

Posted: Wed Dec 17, 2008 2:37 pm
by tsomctl
In a couple of places, I've read that the iop doesn't have a mmu/tlb, and that the virtual address space is fixed to be the entire physical address space. It isn't possible to remap stuff as you normally would with a mmu.

However, some docs about the ps1 cpu go into some detail about the tlb. In addition, I was looking at the bios for the ps2, and some of the code for the iop writes to entrylo/entryhi, and calls tlbwr, signs of it having a tlb.

So what gives? Is the tlb just stripped down/lacks most features, or is the tlb on the iop differant from the tlb on the r3000a in the playstation 1?

Posted: Wed Dec 17, 2008 5:08 pm
by Lukasz
As far as I know, the IOP does not have a TLB in any form.

Maybe if you could specify what IOP code in the BIOS you have seen using TLB related operations, we could get to the bottom of this :-)

Posted: Thu Dec 18, 2008 9:51 am
by tsomctl
Hm I made a mistake. It was just writing 0 to those registers, which I didn't notice until now. I'm assuming that the psx doc by Joshua Walker is wrong when it goes in depth on the tlb. However, I once saw something about some company that ported Linux to run on the psx. How did they do that if it doesn't have an operational tlb?

Posted: Thu Dec 18, 2008 4:26 pm
by J.F.
It was probably uclinux, which is linux specifically designed to work on systems without an MMU.

Posted: Thu Dec 18, 2008 7:12 pm
by jbit
http://en.wikipedia.org/wiki/Runix
PSXLinux (also known as Runix) is a Linux kernel and development kit for the PlayStation (MIPS-NOMMU). PSXLinux is based on the μClinux 2.4.x kernel (www.uClinux.org) and contains specific support for the Sony PlayStation.

Posted: Fri Dec 19, 2008 7:49 am
by tsomctl
Thanks. Runix looks interesting, I'll have to play around with it some day.