Re: Reserving a (large) memory block

From: coder@kanga.nu
Date: Fri Sep 01 2000 - 21:10:39 EST


On Thu, 31 Aug 2000 17:12:03 +0100 (BST)
Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:

>> Now the device behaves just like memory to the BIOS during POST
>> etc, and is in fact, exactly memory if no device drivers are
>> loaded. If a device driver is loaded and it detects one or more
>> of these devices then they and their memory ranges become
>> obviously special. Now, we can detect the devices and where
>> their address ranges are via the SMBUS and some careful probing
>> so we know what we are trying to grab. The problem is just
>> telling the rest of the kernel that in a clean VM&heap-happy
>> manner.

> Basically your base driver will have to do it at boot up
> time. Once that memory is allocated to someone you may not be able
> to move the memory and borrow the pages.

Aye, that's what we're doing ATM. We find the board and its size,
and then go and edit mem_map and mark it reserved and uncacheable.
It doesn't seem the most graceful approach and I was hoping for
something cleaner (tho that looks like 2.4 per Ingo's comments which
I still have to look into).

> You don't neccessarily need the whole driver in the main kernel
> but you will need to grab the devices, reserve the memory pages in
> question and mark them as reserved before Linux gets going
> properly. Your actual users of these pages can then be dynamically
> loaded.

Yeah, that's what I'm looking at right now: how early I have to get
in to be safe.

-- 
J C Lawrence                                 Home: claw@kanga.nu
---------(*)                                Work: claw@nuron.com
http://www.kanga.nu/~claw/        Keys etc: finger claw@kanga.nu
--=| A man is as sane as he is dangerous to his environment |=--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Sep 07 2000 - 21:00:12 EST