Shared Video Memory and PCMCIA

Russell King rmk+pcmcia at arm.linux.org.uk
Thu Jul 14 11:45:15 EDT 2005


On Thu, Jul 14, 2005 at 10:08:32AM -0500, Jon Dossey wrote:
> This has been discussed on the list before, I understand.  I've reviewed
> the material I've found there, and have some additional questions.
> 
> Russell King said:
> > How much memory do you really have in the machine?  0x1e000000 is an
> > odd top of memory value - that's 480MB.  I suspect you actually have
> > 512MB, in which case you want to do:
> > 
> > 	reserve=0x1e000000,0x02000000
> > 
> > to force resource allocations to be above the RAM.
> 
> I believe that second hexadecimal value is missing a 0?
> 
> Converting this to decimal gives me the following values:
> First: 503,316,480
> Second: 33,554,432 (or, with the extra 0, 536870912)
> 
> Which is correct?
> 
> ... or, what, to me, appears to be a reserve of appx. 32M of memory.  If
> I reserve this space, by passing it as a kernel boot parameter, with
> BIOS configured to consume only 32M of video memory, I can dodge the
> pcmcia errors, and read the values from the PCMCIA device using cardctl.
> However, if I remove this parameter, or, increase the amount of video
> memory to 128M (where I'd like I'd like to set it) out of 512M
> available, the messages reappear.  
> 
> How would I go about determining the proper reserve values to tell the
> kernel that the video card is going to eat up 128MB of system memory?  

The format is:

	reserve=start-address,size-in-bytes

32MB is 0x02000000 (see below for 'bc')

The video memory in your machine appears to be placed at the top of
system memory.  Since you have 512MB of RAM, if you select 32MB of
video memory, it starts at 512MB - 32MB.  If you select 128MB of
video memory, it starts at 512MB - 128MB.

You can use 'bc' to calculate the hexadecimal values:

$ bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
obase=16
512*1048576 - 32*1048576
1E000000
32*1048576
2000000
512*1048576 - 128*1048576
18000000
128*1048576
8000000

-- 
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:  2.6 Serial core



More information about the linux-pcmcia mailing list