[U-Boot] [PATCH] memsize: get correct memory size

Wolfgang Denk wd at denx.de
Wed Nov 25 17:30:17 CET 2009


Dear Minkyu Kang,

In message <1f3430fb0911241800m5c9f4837kd90af1ab8fafd303 at mail.gmail.com> you wrote:
> 
> > But size of a memory bank cannot be 80 MB. It must always be a power
> > of 2.
> 
> As I said, memory bank is not 80MB.

And as I said, get_ram_size() is designed to operate on a single bank
of memory only. It works only as expected when "maxsize" is a power of
2, too (also note that it is restricted to 32 bit address space, too).

> > The purpose is to give it the maximum possible size  of  memory  that
> > may  be populated in one bank of memory, and test how much of this is
> > actually there. Say you have a board where one bank of memory can  be
> > populated  with  256  MB, 512 MB or 1024 MB of RAM, then you will run
> > the test with a max size of 1024 MB and  find  out  which  of   the 3
> > versions  you  have  - and if there are eventually any (gross) memory
> > errors.
>
> So, is maxsize "maximum possible size"? or "bank size"?

maximum possible bank size.

> If you mean "maximum possible size", as I mentioned.. 1Gb OneDRAM's
> maximum possible size is 80MB,
> 32MB is used by CP (can't access by AP) and 16MB is share area (used
> for special purposes).
> If you mean "bank size" then I got 64MB ram size.
> I don't want to get wrong size.

Could you please try to explain what this is supposed to mean?

I have no idea what "AP" or "CP" might mean, or how this is related to
U-Boot or to this task. Where is U-Boot running?

If U-Boot can access 80 MB of memory, this is probably _two_ banks:
one bank of 64 MB and _another_ bank of 16 MB. Which means you should
test both of them, using two sepoarate calls to get_ram_size().

> I just want to get memory size.
> When I posted SMDKC100 codes, you said "please use get_ram_size function".
> So, I tried it another board that uses OneDRAM.
> But, I can't get correct memory size.
> If you don't mind, I will not use this function if board uses OneDRAM.

Why not? Just use it properly, please.

> > This is caused by the fact that you misuse the code under  conditions
> > was not designed for. With a 80 MB region of memory, the whole theory
> > it's function is based on does not apply. You want to use some
> > different memory test, then (which one I don;t know, as I still fail
> > to understand why you would want to "auto-size" 80 MB out of 1 GB of
> > memory. This makes absolutely no sense to me.
>
> What means "auto-size"?

"auto-size" means to automatically detect the real, currently
available (= populated) size of a bank of RAM.

> 1GB is wrong. I said 1Gb (128 MB).

But this is NOT the size of a bank of memory that can be accessed by
the CPU, right?

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Der Dativ ist dem Genitiv sein Tod.


More information about the U-Boot mailing list