All of lore.kernel.org
 help / color / mirror / Atom feed
From: Timur Tabi <timur@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:01:06 -0500	[thread overview]
Message-ID: <4BFECF82.60901@freescale.com> (raw)
In-Reply-To: <20100527194442.632FEEAC238@gemini.denx.de>

Wolfgang Denk wrote:

>> 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.

Scott pointed out that writing/reading memory to determine how much memory
actually exists is dangerous.  I'm not convinced that I should be using
get_ram_size().  I still believe that I shouldn't.

>> 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.

I have not been able to find any other PowerPC system in U-boot that
supports more memory than is mapped.  If you know of one, please tell me.
Otherwise, I would say that there are no other comparable PowerPC systems
that I can use as an example.

>>> -long get_ram_size(volatile long *base, long maxsize)
>>> +phys_size_t get_ram_size(volatile phys_addr_t *base, phys_size_t maxsize)
>>
>> I don't think you want 'base' to be a pointer to phys_addr_t, because
>> the pointer type determines how much is read/written in a single
>> operation.  I don't think you want to be doing 64-bit reads and
>> writes.
> 
> I don't know your mnemory bus. This is an RFC patch.

My point is that sizeof(phys_addr_t) has got nothing to do with the size of
the read/write operation, so I think it's wrong on all platforms.

-- 
Timur Tabi
Linux kernel developer at Freescale

  reply	other threads:[~2010-05-27 20:01 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 [this message]
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
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=4BFECF82.60901@freescale.com \
    --to=timur@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.