All of lore.kernel.org
 help / color / mirror / Atom feed
From: Scott Wood <scottwood@freescale.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] [RFC] memsize.c: adapt get_ram_size() for	address spaces >32 bit
Date: Thu, 27 May 2010 15:06:37 -0500	[thread overview]
Message-ID: <4BFED0CD.5010301@freescale.com> (raw)
In-Reply-To: <20100527194442.632FEEAC238@gemini.denx.de>

On 05/27/2010 02:44 PM, Wolfgang Denk wrote:
> Dear Timur Tabi,
>
> In message<AANLkTilrFhTwnQgQX9NVmplaBl8HpISZY97HKK73-ncz@mail.gmail.com>  you wrote:
>> On Thu, May 27, 2010 at 1:11 PM, Wolfgang Denk<wd@denx.de>  wrote:
>>> get_ram_size() used to use "long" data types for addresses and data,
>>> which in limited it to systems with less than 4 GiB memory. As more
>>> and more systems are coming up with bigger memory resources, we adapt
>>> the code to use phys_addr_t / phys_size_t data types instead.
>>>
>>> Signed-off-by: Wolfgang Denk<wd@denx.de>
>>> Cc: Timur Tabi<timur@freescale.com>
>>> ---
>>
>> The problem is that on all of our PowerPC boards, the TLBs only map
>> the lower 2GB of memory, regardless as to how much is present.  So we
>> still can't use get_ram_size() to determine how much memory is in the
>> system, because any attempt to access memory higher than 2GB will
>> fail.
>
> Now this is your problem, then, and you should kno how to fix it.

Not using get_ram_size(), which is of minimal utility when you know the 
actual size (and is an unsafe approach to the problem when you don't, 
unless you know a lot about where I/O is mapped and how the system 
responds to accessing memory that doesn't exist -- not exactly the sort 
of thing you want to make a mandate for any board to be accepted), seems 
like a good way to "fix it".

>> And even if we did have TLBs for all of memory, an attempt to access
>> RAM that doesn't exist will cause a machine check, which will hang
>> U-Boot.  So we still couldn't use get_ram_size() to determine how much
>> RAM actually exists.
>
> Please see how it's done on all other PowerPC systems, and do similar.

"All other PowerPC systems" is a ridiculous overstatement.  I see 
exactly *one* Freescale board that uses this thing, and it's an ARM board.

-Scott

  parent reply	other threads:[~2010-05-27 20:06 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-27 18:11 [U-Boot] [PATCH] [RFC] memsize.c: adapt get_ram_size() for address spaces >32 bit Wolfgang Denk
2010-05-27 18:16 ` [U-Boot] [PATCH v2] " Wolfgang Denk
2010-05-27 19:46   ` Scott Wood
2010-05-27 19:57     ` Wolfgang Denk
2010-05-27 20:00       ` Scott Wood
2010-05-27 20:53         ` Wolfgang Denk
2010-05-27 18:23 ` [U-Boot] [PATCH] " Timur Tabi
2010-05-27 19:44   ` Wolfgang Denk
2010-05-27 20:01     ` Timur Tabi
2010-05-27 20:57       ` Wolfgang Denk
2010-05-27 21:05         ` Timur Tabi
2010-05-27 21:13           ` Wolfgang Denk
2010-05-27 21:10         ` Kumar Gala
2010-05-27 21:16           ` Wolfgang Denk
2010-05-27 20:06     ` Scott Wood [this message]
2010-05-27 21:06       ` Wolfgang Denk
2010-05-27 18:59 ` Wolfgang Wegner
2010-05-27 19:49   ` Wolfgang Denk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4BFED0CD.5010301@freescale.com \
    --to=scottwood@freescale.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.