mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Sascha Hauer <s.hauer@pengutronix.de>
To: Alexander Shiyan <shc_work@mail.ru>
Cc: barebox@lists.infradead.org
Subject: Re: [PATCH 3/3] ARM: Add CLPS711X architecture
Date: Sun, 7 Oct 2012 12:45:50 +0200	[thread overview]
Message-ID: <20121007104550.GG1322@pengutronix.de> (raw)
In-Reply-To: <20121007140337.b778f85b.shc_work@mail.ru>

On Sun, Oct 07, 2012 at 02:03:37PM +0400, Alexander Shiyan wrote:
> On Fri, 5 Oct 2012 14:12:04 +0200
> Sascha Hauer <s.hauer@pengutronix.de> wrote:
> 
> ...
> > > +void __naked __bare_init board_init_lowlevel(void)
> > > +{
> ...
> > > +	/* Enable SDQM pins */
> > > +	tmp = readl(SYSCON3);
> > > +	tmp &= ~SYSCON3_ENPD67;
> > > +	writel(tmp, SYSCON3);
> > > +
> > > +	/* Setup Refresh Rate (64ms 8K Blocks) */
> > > +	writel(SDRAM_REFRESH_RATE, SDRFPR);
> > > +
> > > +	/* Setup SDRAM (32MB, 16Bit*2, CAS=3) */
> > > +	writel(SDCONF_CASLAT_3 | SDCONF_SIZE_256 | SDCONF_WIDTH_16 |
> > > +	       SDCONF_CLKCTL | SDCONF_ACTIVE, SDCONF);
> > 
> > This is board specific, right? Then this should be done in a board file.
> > BTW board_init_lowlevel no longer exists. Rename this function to reset
> > and call common_reset() on entry.
> We should setup SDRAM before relocate code to it. In the board code we are
> alredy work in the RAM. So, we can not do this in board file.
> In any case in this proc we are setup maximux SDRAM size, then in board file
> we are calculate real memory size and setup it for bb & kernel.

If you think the above code can work on all boards with this SoC then
it's fine the way it is. Otherwise normally the board_init_lowlevel()
(now reset()) is board specific, so every board has it's own. Then
common code can be called from there.

> > > +
> > > +#include <mach/clps711x.h>
> > 
> > Please drop this include and specify the registers as offsets to the
> > base address here.
> It is very strange for me. You mean that we should separate all definitions?

Experience shows that it's best to have a SoC file which contains the
base addresses to the different units of the SoC, but to keep the
unit specific register offsets out of there. Silicon vendors tend to
reuse the different controllers on the next SoC. In this case you would
end up in adding the same register definitions in every SoC file again.

Take the following example:

	u32 syscon = cdev->dev->id ? SYSCON2 : SYSCON1;

A future SoC might have three of the same UARTs at different addresses
in which case you'd have to adjust the driver for it. So instead of
doing this:

#define SYSCON2                        (REGS_BASE + 0x1100)
#define SYSCON1                        (REGS_BASE + 0x0100)

Do a:

#define CLPS711X_UART1_BASE	(REGS_BASE + 0x0)
#define CLPS711X_UART2_BASE	(REGS_BASE + 0x1000)

	add_clps711x_uart(CLPS711X_UART1_BASE);


And in the driver:

#define SYSCON		0x100

	...
	writel(0xdeadbeef, base + SYSCON);
	...


Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

  reply	other threads:[~2012-10-07 10:45 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-04 12:36 [PATCH 1/3] ARM: Fix Kconfig link for Cirrus Logic EP9312 CPU Alexander Shiyan
2012-10-04 12:37 ` [PATCH 2/3] Add more generated files to .gitignore Alexander Shiyan
2012-10-04 12:53   ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-04 13:04     ` Re[2]: " Alexander Shiyan
2012-10-04 13:20       ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-04 12:37 ` [PATCH 3/3] ARM: Add CLPS711X architecture Alexander Shiyan
2012-10-04 12:52   ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-04 15:14     ` Alexander Shiyan
2012-10-04 17:08       ` Jean-Christophe PLAGNIOL-VILLARD
2012-10-04 17:19         ` Alexander Shiyan
2012-10-05 12:12   ` Sascha Hauer
2012-10-07 10:03     ` Alexander Shiyan
2012-10-07 10:45       ` Sascha Hauer [this message]
2012-10-07 10:57         ` Alexander Shiyan
2012-10-07 11:55           ` Sascha Hauer
2012-10-05 11:50 ` [PATCH 1/3] ARM: Fix Kconfig link for Cirrus Logic EP9312 CPU 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=20121007104550.GG1322@pengutronix.de \
    --to=s.hauer@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    --cc=shc_work@mail.ru \
    /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