Thread (21 messages) 21 messages, 6 authors, 1999-08-26

Re: Performa 5200

From: David A. Gatwood <hidden>
Date: 1999-08-26 03:43:39

On Wed, 25 Aug 1999, Tony Mantler wrote:
[...]
quoted
all the x100 machines have address maps that depends on the population of
the RAM slots. Also, some of them have a DRAM-based frame buffer working
at a fixed physical address which can be either 0 or 1Mb.
BootX will load the kernel in the first contiguous region in memory it
can find, but that means that we have to copy the exception vectors to 0,
adjust them so they call correctly the kernel routines in the real base
of the kernel (which will not be 0 on some machines), and we'll have
virt_to_phys and co be non-constant. I read an interesting suggestion
some time ago of reserving a register during kernel compile with gcc and
using this register to store the real base of the kernel. Modules will
not be compatible, but that's not a real issue for now.
I don't know how the APUS code works, but I heard it is similar.
Yeek. Sounds like a messed up version of RBV (IIsi). On that particular
machine (iirc), the start of real useable ram, where the kernel is located,
is remapped down to 0x0, and the framebuffer is mapped way up into (I
think) slot $9 regular space to mimic the configuration of the slightly
more sane macs.
Not quite.  It moves from 0 to something like 0x10000, but there may be
more zeroes than that.  That's the PDM's.  If you're asking about the
52/53/62/6300's, though, they use a Valkyrie just like the 5400.  They
have nothing in common with the 6100.  They don't even have DMA support.

quoted
quoted
I'm starting to think that I should carve out a new machine class in the
config options (#ifdef CONFIG_WUSSY_68K_PMAC?) ;)
Or simply CONFIG_NUBUS_PMAC... BootX will tell you if you are running on
one of those and will tell you if it's a PDM based (x100), performa or
powerbook (5300/1400). It will also give you the gestalt machineID and
the phys. memory map table. If you need more infos, tell me, but I
beleive most of the other infos will have to be hard coded.
It's a bad idea to have any of these three in the same class.  They don't
act a thing alike.  The NuBus PowerBooks and Performas are KIND of close,
in that neither has DMA, but their IDE works with different offsets
between registers, their interrupt handling is almost completely
different, the video is different... it's substantial enough to make it
far better to define them as separate classes.  Otherwise, all those
pieces of code will be riddled with switch statements for a huge list of
gestalts (16 different numbers for the PDMs alone).

If you want to maintain some sense of naming consistency with MkLinux
(which is a good idea), we use:

POWERMAC_CLASS_PCI       - almost everything
POWERMAC_CLASS_PDM       - 6/7/81xx, AWS 6/7/81xx
POWERMAC_CLASS_POWERBOOK - NuBus PowerBooks
POWERMAC_CLASS_PERFORMA  - NuBus Performas
POWERMAC_CLASS_LEGACY    - 68k PowerMacs w/ upgrade cards

Note that the last two are not quite working yet.  We were close on the
performas, and the 68k PowerMacs aren't quite as close, but at least some
of them start booting now with the right config.


Later,
David


[[ This message was sent via the linuxppc-dev mailing list.  Replies are ]]
[[ not  forced  back  to the list, so be sure to Cc linuxppc-dev if your ]]
[[ reply is of general interest. Please check http://lists.linuxppc.org/ ]]
[[ and http://www.linuxppc.org/ for useful information before posting.   ]]
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help