linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Wolfgang Denk <wd@denx.de>
To: Grant Erickson <gerickson@nuovations.com>
Cc: "linuxppc-dev@ozlabs.org" <linuxppc-dev@ozlabs.org>
Subject: Re: Reserving Early RAM Regions and Porting Denx's CONFIG_LOGBUFFER to arch/powerpc
Date: Wed, 29 Oct 2008 00:01:26 +0100	[thread overview]
Message-ID: <20081028230126.6471081C98E0@gemini.denx.de> (raw)
In-Reply-To: <C52CE317.12884%gerickson@nuovations.com>

Dear Grant,

In message <C52CE317.12884%gerickson@nuovations.com> you wrote:
> I am working on attempting to migrate the Denx CONFIG_LOGBUFFER feature from
> arch/ppc:
> 
> http://git.denx.de/?p=linux-2.6-denx.git;a=blob_plain;f=arch/ppc/mm/init.c;h
> b=3df65660bbfa769b10b141351b0ea10427b0b709
> http://git.denx.de/?p=linux-2.6-denx.git;a=blob_plain;f=kernel/printk.c;hb=3
> df65660bbfa769b10b141351b0ea10427b0b709
> 
> In the historical implementation, basically, u-boot (if so configured)
> allocates 16 KiB + 4 KiB of memory at the end of physical RAM to store log
> messages that are compatible with the Linux kernel's printk. When Linux (if

Note that recent versions also can put the  log  buffer  in  SRAM  or
other similar storage areas like the OCM on some 4xx PowerPC systems;
this  is  actively used for example on PPC440EPx to make sure the log
buffer data remain unchanged by a system reset.

> so configured with CONFIG_LOGBUFFER) starts up, it redirects the normal
> log_buf to this "external log buffer" and appends any existing printk
> messages to those already pushed by u-boot. Future printk messages are then
> sent off to this new "external log buffer".

A short explanation for those who don't know what this is used for:

1) This allos to pass power-on selft test results from theboot loader
   (U-Boot) to the Linux kenrel, where it then can retrieved by
   application code using standard methods (syslog).

2) After a system crash, the log buffer is kept and can be read either
   by U-Boot or after rebooting into Linux. There are cases where the
   log buffer contains information that didn't make it any more to the
   console - if there is some console at all.

> What is the preferred method for hiding/reserving chunks of memory such as
> this during early boot? The device tree? The 'mem=' parameter? Adding an
> lmb_reserve() in prom.c:early_reserve_mem()? Twiddling things auto-magically
> such as the historical implementation? Some combination thereof?
> 
> The arch/ppc historical implementation simply twiddled total_memory and
> total_lowmem and then ioremap'd the 20 KiB off the end of memory.

That's a good question -  such  a  mechanism  is  needed  in  several
places,  for  example to pass a pre-initialized video buffer to Linux


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@denx.de
Let's say the docs present a simplified view of reality...    :-)
                      - Larry Wall in  <6940@jpl-devvax.JPL.NASA.GOV>

      reply	other threads:[~2008-10-28 23:08 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-28 22:41 Reserving Early RAM Regions and Porting Denx's CONFIG_LOGBUFFER to arch/powerpc Grant Erickson
2008-10-28 23:01 ` Wolfgang Denk [this message]

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=20081028230126.6471081C98E0@gemini.denx.de \
    --to=wd@denx.de \
    --cc=gerickson@nuovations.com \
    --cc=linuxppc-dev@ozlabs.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).