Subject: Re: New bootloader for RiscPC+Kinetic available
To: Reinoud Zandijk <imago@kabel065011.kabel.utwente.nl>
From: Chris Gilbert <chris@paradox.demon.co.uk>
List: port-arm32
Date: 02/12/2001 22:31:00
On Monday 12 February 2001 10:26 pm, Reinoud Zandijk wrote:
> Well just thinking .... what did you do to get that high speed kernel? Was
> it also bugged with those crashes ? or did you change something else ? can
> you sedn me the patches so i can check them out and can try to think about
> a way?
Yes this is what I'm basing it on, your description of the kinetic support
suggested you were doing something identical to me, just in a different
place. Without the following code it's as stable as a rock, suggesting
something needs to use the SIMM ram.
The code is:
#ifdef KINETIC
{
/*
* HACK HACK
* check the memory for kinetic memory
* if it isn't kinetic remove it from the bootconfig
*/
int x;
for (x = 0; x < bootconfig.dramblocks; x++)
{
if (bootconfig.dram[x].address < 0x20000000)
{
int y;
/* remove this block from the memory */
bootconfig.drampages -= bootconfig.dram[x].pages;
for (y=x; y < bootconfig.dramblocks; y++)
{
/* shuffle the memory down */
if (y == (bootconfig.dramblocks-1))
{
bootconfig.dram[y].address = 0;
bootconfig.dram[y].pages = 0;
} else {
bootconfig.dram[y] = bootconfig.dram[y+1];
}
}
--bootconfig.dramblocks;
}
}
}
#endif
This is just before the:
#if NHYDRABUS > 0
/*
* If we have the hydra nick the first physical page for hydra booting
* Needs to be 2MB aligned
*/
for (logical = 0; logical < 0x400000; logical += NBPG) {
map_entry(l2pagetable + 0x2000, logical,
bootconfig.dram[0].address + logical + NBPG);
}
Chris