Shared Video Memory and PCMCIA

Jon Dossey JDossey at deltahealthgroup.com
Thu Jul 14 12:18:55 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

Thanks Russell, I actually did some basic math and ended up with the
following reserve line:

Reserve=0x18000000,0x20000000

I thought it was reserve=start,end, as opposed to start,size.
Apparently that worked anyway though, since it reserved the necessary
128M, and then just ran waaay out past the outer memory bounds.  I'm
going to change it out as per your instructions, and see if that yields
the same results.

Thanks for your help, and the quick response!!

.jon





More information about the linux-pcmcia mailing list