: Yes, the kernel including all symbols etc. is loaded to high memory
: first and then copied down to it's final location by using the
: same and unchanged functions as before. Useless kernel symbols
: are free'd as soon the kernel starts. They occupy memory only while
: Milo is running. Actually, as it was before.
Hmmm. So I did slightly misunderstand how things were being done.
: Hmmm. That would work, but actually I don't like this unnecessary
: memory fragmentation. But if the other's agree...
I think that it wouldn't matter much at all. I believe that we could
reduce the amount of fragmentation if we loaded the data and, if
possible, the bss below the 640K mark. Also, as things start up, I
would imagine that they would use up at least 1M of memory (and
certainly 640K) so that wouldn't be a huge deal, I don't think. We
have plenty of time to get to know this problem. There are a few
places in the kernel that are #ifdef'd based on the machine type that
is configured, which means we can't have a single, unified kernel for
ARCBIOS machines at this stage anyway. For the moment, I'll just hack
MILO to move the kernel to different places based on the machine type
and to perform a basic sanity check to make sure that the kernel is
LD'd to that address, etc.