public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Timur Tabi <timur@freescale.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] Is CCSRBAR relocation broken on P2020?
Date: Thu, 10 Nov 2011 11:47:44 -0600	[thread overview]
Message-ID: <4EBC0E40.3050403@freescale.com> (raw)
In-Reply-To: <20111110173356.GC1801@ovro.caltech.edu>

Ira W. Snyder wrote:
> On Thu, Nov 10, 2011 at 11:12:41AM -0600, Timur Tabi wrote:
>> Ira W. Snyder wrote:
>>> Hello Timur, Kumar, U-Boot List,
>>>
>>> I'm working on porting U-Boot to the Freescale P2020 COM-Express board.
>>> See the ML post from 2011-09-27 titled "[PATCH 0/2] mpc85xx: support for
>>> Freescale COM Express P2020".
>>
>> I see that you are using a NAND boot, which is a multi-stage boot.  There are some problems with that that have been fixed in recent patches posted by me and Kumar to the U-boot mailing list.
>>
>> In particular, one patches puts U-boot into an infinite loop if CCSR is relocated in the wrong step.
>>
> 
> I don't use NAND, nor any multi-stage boot (as far as I know).

I see NAND here:

+P2020COME_NAND               powerpc     mpc85xx     p2020come           freescale      -           P2020COME:NAND

> I boot off of SDCARD (P2020COME_SDCARD_config). To write the U-Boot
> image to the microSD card, I use a tool provided with the BSP called
> "boot_format-1.0.0". Maybe you are familiar with it?

I think that qualifies as multi-stage booting.  The SD card is not mapped at address fff00000 at POR time, which is needed to boot a single-stage U-Boot.  Therefore, you must have a multi-stage U-Boot.

I'm not familiar with boot_format-1.0.0, but my guess is that it creates the pre-boot loader.

>>> When it was posted, the port was working on the top of tree U-Boot. This
>>> included relocation of the CCSRBAR from the power on location of
>>> 0xff700000 to 0xffe00000.
>>
>> Is there a reason why you want to relocate CCSR at all?  Everything would be a lot easier if you just left it at the default location.  I have a suspicion that many boards relocate CCSR just for the heck of it.
>>
>> However, Kumar's recent rework of the device trees may force all P2020 boards to have the same CCSR, so you might be stuck.
>>
> 
> I relocate the CCSR because my device tree requires it. I wanted to use
> the Linux arch/powerpc/boot/dts/p2020si.dtsi as a base, and override the
> few things that are specific to this board. It requires the CCSR be
> relocated to 0xffe00000.

CCSR relocation is required for a 36-bit build, but if you don't need to support that, then I recommend you avoid relocation.  

If your device tree isn't set in stone, now would be a great time to change it.

> I'll look at Kumar's DTS changes. I saw them on the Linux PPC ML.

Kumar just posted a bunch more a few minutes ago.

>>> Today I updated U-Boot to top of tree to address the comments in the
>>> initial mailing list posting. Upon attempting to boot the board, I get
>>> no console output. I have traced this to commit 6ca88b0958
>>> ("powerpc/85xx: relocate CCSR before creating the initial RAM area").
>>
>> This patch requires that only the last stage of U-Boot (i.e. the "real" U-Boot) relocate CCSR.  All previous stages must not relocate CCSR.  This is a change from the way we were doing things in the past.
>>
> 
> I understand that. I only use one U-Boot. To the best of my knowledge,
> boot on this platform works like this:
> 
> - power on
> - the P2020 looks for the magic "BOOT" written by the boot_format tool
>   on the SD card

You need to figure out what this boot utility does.  It might create a 4GB TLB, or it might relocate CCSR.  I have a fix for the 4GB TLB problem that was posted recently.  If that boot relocates CCSR, then the boot_format tool needs to be fixed.

> - the P2020 executes the instructions written by boot_format to setup
>   RAM correctly, load the U-Boot from the SD card to RAM, and then jumps
>   to it
> - U-Boot runs, including relocating CCSR

Well, THAT is a multi-stage boot.  A single-stage boot is when the first instruction that the core executes on POR is in your u-boot.bin, and that u-boot.bin is the only version of U-Boot that is loaded.  This is true only when booting from NOR flash.

> Only one U-Boot is ever executed.

But it isn't the first code to be executed.  That's what I'm talking about.

> I understand that. Has the current top of tree been tested on P2020DS?

Well, I didn't test EVERY board, and I did find some problems with some boards that I fixed recently.  If you add all the patches that Kumar and I posted, everything should work (assuming boot_format doesn't relocate CCSR).

> I'm looking for some assurance that the code I'm trying to use actually
> works on a !CONFIG_FSL_CORENET platform which relocates the CCSR. One
> in-tree example is the P2020DS.

I tested my code on the P1022DS, which is similar.

>>> The P2020DS board is very similar to the board I am using. It performs
>>> the same relocation of the CCSRBAR that I want to use as well.  Does
>>> anyone have a P2020DS that they can test with the current top of tree
>>> U-Boot? Does it boot? Can you send the output of "md ffe00000 1"?
>>
>> Kumar recently posted a patch that fixes the relocation on multi-stage U-Boots (e.g. NAND booting, SPI booting, etc).  I also posted a patchset last week that fixes a few problems with 
>>
> 
> Can you tell me the subject lines of these patches? Even though I don't
> use a multi-stage U-Boot, I'll check them out.

powerpc/85xx: Fix NAND SPL support
powerpc/85xx: Fix MPC8572DS NAND build

Then there's a five-patch set from my posted on 10/31 that Kumar recently applied to his repository.

-- 
Timur Tabi
Linux kernel developer at Freescale

  reply	other threads:[~2011-11-10 17:47 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-10 16:54 [U-Boot] Is CCSRBAR relocation broken on P2020? Ira W. Snyder
2011-11-10 17:12 ` Timur Tabi
2011-11-10 17:33   ` Ira W. Snyder
2011-11-10 17:47     ` Timur Tabi [this message]
2011-11-10 19:24       ` McClintock Matthew-B29882
2011-11-10 19:28         ` Timur Tabi
2011-11-10 19:46         ` Ira W. Snyder
2011-11-10 19:49           ` Timur Tabi
2011-11-10 19:59             ` Ira W. Snyder
     [not found] <4EBC2D50.5070200@embedded-sol.com>
2011-11-10 20:07 ` Felix Radensky
2011-11-10 20:48   ` Ira W. Snyder

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=4EBC0E40.3050403@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox