Subject: Re: Changing kernel base address (was: Re: Heads up: shared arm include files)
To: None <mpumford@black-star.demon.co.uk>
From: Robert Swindells <rjs@fdy2.demon.co.uk>
List: port-arm32
Date: 01/19/2001 00:09:34
>Right I have now done some tinkering and it turns out that moving VIDC/IOMD
>and the podules is not that straightforward as tweaking a few #defines and
>recompiling. The code in initarm assumes that these have been mapped by the
>bootloader at f6000000. I have a partial work round for this but the kernels
>crash after switching to the final page tables. On a more positive note it is
>possible to move the VRAM (or video DRAM) without too much effort.
Looking at the code, the section below looks to be one culprit:
id = ReadByte(IOMD_BASE + (IOMD_ID0 << 2))
| (ReadByte(IOMD_BASE + (IOMD_ID1 << 2)) << 8);
switch (id) {
case ARM7500_IOC_ID:
#ifndef CPU_ARM7500
panic("Encountered ARM7500 IOMD but no ARM7500 kernel support");
#endif /* CPU_ARM7500 */
break;
case RPC600_IOMD_ID:
#ifdef CPU_ARM7500
panic("Encountered ARM6/7 IOMD and ARM7500 kernel support");
#endif /* CPU_ARM7500 */
break;
}
Why not delete it and add any extra checks needed to iomdattach().
The only other code that may cause problems is the call to consinit().
Robert