All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sam Ravnborg <sam@ravnborg.org>
To: barebox@lists.infradead.org
Subject: Re: [PATCH 0/3] mtd: nand: atmel: legacy: fix boot on USB-A9G20
Date: Tue, 21 Mar 2023 17:48:38 +0100	[thread overview]
Message-ID: <ZBnf5oobkyenS+VT@ravnborg.org> (raw)
In-Reply-To: <9bece774-8296-4880-89dc-a33dfcd512f7@thorsis.com>

Hi Alexander.

On Tue, Mar 21, 2023 at 10:44:25AM +0100, Alexander Dahl wrote:
> Hello Sascha,
> 
> Am Tue, Mar 21, 2023 at 09:58:48AM +0100 schrieb Sascha Hauer:
> > Hi Wolfram,
> > 
> > Nice to hear from you here ;)
> > 
> > On Sun, Mar 19, 2023 at 10:28:07PM +0100, Wolfram Sang wrote:
> > > Hi Sam,
> > > 
> > > > It is only a few weeks ago I argued that there was no users of the older
> > > > at91sam* boards, and then you prove me wrong here.
> > > 
> > > At your service ;)
> > > 
> > > > I will try to remember that you may be able to test should someone
> > > > decide to move the barebox support for qil_a9g20 to DT and add PBL
> > > > support in the process.
> > > 
> > > I am still new to at91 and barebox, but AFAICS the PBL support is only
> > > for MCI currently?
> > 
> > As of 4e410f3e68280 PBL is always used on AT91.
> > 
> > I have no idea how the SDRAM setup is done on the USB-A9G20. There seems
> > to be SDRAM setup code for the USB-A9263, but not for the USB-A9G20. Is
> > there some AT91Bootstrap required?
> 
> I can not speak for this particular board, but for others with the
> same SoC (AT91SAM9G20).  The vendor approach is to setup the SDRAM
> (and maybe more) in at91bootstrap, however those old SoCs are not
> supported in recent version 4.x of that anymore, 3.x should work, I
> never tried that for sam9g20 (we still use 1.x for those SoCs).
> at91bootstrap then usually loads U-Boot from flash to SDRAM and starts
> U-Boot.
> 
> You can do the same init in U-Boot SPL as well without the "real"
> at91bootstrap, I think I saw that for other boards with similar SoCs.
> And from what I saw here, barebox has the concept of multiple stages
> as well, right?  So SDRAM must be initialized there in the very first
> stage after ROM code running from (tiny) internal SRAM, equivalent to
> what at91bootstrap does, before relocating to SDRAM.  There's no magic
> thing the ROM code can do for you on that platform.

When I added support to skov-arm9cpu to use barebox as replacement for
at91bootstrap the sdram init looked like this [1]:

static void sam9263_sdramc_init(unsigned int mck)
{
+       const struct at91sam9_sdramc_config config =
+       {
+               .sdramc = IOMEM(AT91SAM9263_BASE_SDRAMC0),
+               .mr = 0,
+               .tr = (mck * 7) / 1000000, // TODO 140 versus 0x13c (316)?
+               .cr = AT91_SDRAMC_NC_10 | AT91_SDRAMC_NR_13 | AT91_SDRAMC_CAS_2
+                     | AT91_SDRAMC_NB_4 | AT91_SDRAMC_DBW_32
+                     | AT91_SDRAMC_TWR_2 | AT91_SDRAMC_TRC_7
+                     | AT91_SDRAMC_TRP_2 | AT91_SDRAMC_TRCD_2
+                     | AT91_SDRAMC_TRAS_5 | AT91_SDRAMC_TXSR_8,
+               .lpr = 0,
+               .mdr = AT91_SDRAMC_MD_SDRAM,
+       };
+
+       /* Define PDC[31:16] as DATA[31:16] */
+       at91_mux_gpio_disable(IOMEM(AT91SAM9263_BASE_PIOD), 0xffff0000);
+       /* No pull-up for D[31:16] */
+       at91_mux_set_pullup(IOMEM(AT91SAM9263_BASE_PIOD), 0xffff0000, true);
+       /* PD16 to PD31 are pheripheral A */
+       at91_mux_set_A_periph(IOMEM(AT91SAM9263_BASE_PIOD), 0xffff0000);
}

On my too long todo list is to complete this work and upstream this for
both this and the at91sam9263ek board.

Anyway - DT support is the first step. Replacing at91bootstrap can
always come later.

[1] https://lore.barebox.org/barebox/20220628203849.2785611-1-sam@ravnborg.org/

	Sam



  reply	other threads:[~2023-03-21 16:50 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-19 15:49 [PATCH 0/3] mtd: nand: atmel: legacy: fix boot on USB-A9G20 Wolfram Sang
2023-03-19 15:49 ` [PATCH 1/3] mtd: nand: atmel: legacy: add 'algo' to use Wolfram Sang
2023-03-19 15:49 ` [PATCH 2/3] mtd: nand: atmel: legacy: use proper ecc_shift Wolfram Sang
2023-03-19 15:49 ` [PATCH 3/3] mtd: nand: atmel: legacy: remove superfluous code Wolfram Sang
2023-03-19 18:51 ` [PATCH 0/3] mtd: nand: atmel: legacy: fix boot on USB-A9G20 Sam Ravnborg
2023-03-19 21:28   ` Wolfram Sang
2023-03-21  8:58     ` Sascha Hauer
2023-03-21  9:44       ` Alexander Dahl
2023-03-21 16:48         ` Sam Ravnborg [this message]
2023-03-21 17:20       ` Wolfram Sang
2023-03-21 19:02         ` Sam Ravnborg
2023-03-21 20:53           ` Sam Ravnborg
2023-03-21 21:42             ` Wolfram Sang
2023-03-22  7:37               ` Sascha Hauer
2023-04-27 17:25           ` Wolfram Sang
2023-04-27 17:26       ` Wolfram Sang
2023-03-22  7:41 ` Sascha Hauer

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=ZBnf5oobkyenS+VT@ravnborg.org \
    --to=sam@ravnborg.org \
    --cc=barebox@lists.infradead.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 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.