[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: aranym vs atafb



Michael Schmitz píše v Út 01. 01. 2008 v 04:58 +0100:
> Regarding booter options: is there an option to load the kernel to FastRAM
> as opposed to ST-RAM, Petr? What is the default here?

ARAnyM LILO doesn't have any options, AFAIK. IMHO the various options of
ataboot (bootstrap) that allow/force loading of either kernel and/or the
ramdisk to ST-RAM/FastRAM exist only because there is a hidden bug
somewhere in the kernel that prevents running it correctly in FastRAM
(the MFP timer goes crazy when its routine is in FastRAM).

In ARAnyM the bug does not manifest itself (mostly because the MFP
emulation is far from correct) so it actually doesn't matter where the
kernel and ramdisks are located. BTW, looking into
aranym/src/bootos_linux.cpp it seems that FastRAM is preferred for the
ramdisk:

/*--- Copy the ramdisk after kernel (and reserved bootinfo) ---*/
if (ramdisk && ramdisk_length) {
	unsigned long rd_start;
	unsigned long rd_len;

	rd_len = ramdisk_length - RAMDISK_FS_START;
	if (FastRAMSize>rd_len) {
		/* Load in FastRAM */
		rd_start = FastRAMBase;
		memcpy(FastRAMBaseHost, ((unsigned char *)ramdisk) + RAMDISK_FS_START,
rd_len);
	} else {
		/* Load in ST-RAM */
		rd_start = RAMSize - rd_len;
		memcpy(RAMBaseHost+rd_start, ((unsigned char *)ramdisk) +
RAMDISK_FS_START, rd_len);
	}


You could play with the ataboot if you want to load the kernel and
ramdisk to certain type of memory (if you have the latest version - I
remember fixing the loading there).

> As to your question regarding the most generic fix: if there really is not
> enough ST-RAM (i.e. the available space is taken by the kernel and the
> ramdisk, after 'unpacking' the ramdisk to the buffer cache) we'd need to
> either make the ramdisk unpack go to non-DMA memory (no idea here;
> ideally the buffer cache should not have a preference for DMA memory in
> this case), or reserve a chunk of memory up front (tried that in a hackish
> way).

Well, I was asking how to properly flag the type of memory, not how to
manage the loading and upacking. IMHO if the size and location of memory
is passed to kernel from the bootstrap then also the bootstrap should
tell the kernel which memory is of which type. 

As for the loading and unpacking itself - the ST-RAM is 10x slower than
FastRAM (on a real machine) so it shouldn't be used at all. It should be
arranged somehow so that the ST-RAM is kind of last-resort, something
like a slightly faster disk swap.

Petr



Reply to: