public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Lukasz Majewski <lukma@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 09/13] board: ti: am574x-idk: Add ddr data support
Date: Mon, 18 Dec 2017 12:16:09 +0100	[thread overview]
Message-ID: <20171218121609.0b3cbd85@jawa> (raw)
In-Reply-To: <20171218093425.12235-10-lokeshvutla@ti.com>

Hi Lokesh,

> AM574x-idk has the following DDR parts attached:
> EMIF1: MT41K256M16HA (1GB with ECC)
> EMIF2: MT41K256M16HA (1GB without ECC)
> 
> Enabling 2GB DDR without interleaving between EMIFs. And
> enabling ECC on EMIF1.
> 
> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
> Signed-off-by: Krunal Bhargav <k-bhargav@ti.com>
> ---
>  board/ti/am57xx/board.c | 47
> ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 44
> insertions(+), 3 deletions(-)
> 
> diff --git a/board/ti/am57xx/board.c b/board/ti/am57xx/board.c
> index 2d14ae54fe..1377c7b1fe 100644
> --- a/board/ti/am57xx/board.c
> +++ b/board/ti/am57xx/board.c
> @@ -89,10 +89,18 @@ static const struct dmm_lisa_map_regs
> am571x_idk_lisa_regs = { .is_ma_present  = 0x1
>  };
>  
> +static const struct dmm_lisa_map_regs am574x_idk_lisa_regs = {
> +	.dmm_lisa_map_2 = 0xc0600200,
> +	.dmm_lisa_map_3 = 0x80600100,
> +	.is_ma_present  = 0x1
> +};
> +
>  void emif_get_dmm_regs(const struct dmm_lisa_map_regs
> **dmm_lisa_regs) {
>  	if (board_is_am571x_idk())
>  		*dmm_lisa_regs = &am571x_idk_lisa_regs;
> +	else if (board_is_am574x_idk())
> +		*dmm_lisa_regs = &am574x_idk_lisa_regs;
>  	else
>  		*dmm_lisa_regs = &beagle_x15_lisa_regs;
>  }
> @@ -231,8 +239,8 @@ static const struct emif_regs
> am571x_emif1_ddr3_666mhz_emif_regs =
> { .ref_ctrl			=
> 0x0000514d, .ref_ctrl_final			=
> 0x0000144a, .sdram_tim1			= 0xd333887c,
> -	.sdram_tim2			= 0x40b37fe3,
> -	.sdram_tim3			= 0x409f8ada,
> +	.sdram_tim2			= 0x30b37fe3,
> +	.sdram_tim3			= 0x409f8ad8,
>  	.read_idle_ctrl			= 0x00050000,
>  	.zq_config			= 0x5007190b,
>  	.temp_alert_config		= 0x00000000,
> @@ -249,17 +257,50 @@ static const struct emif_regs
> am571x_emif1_ddr3_666mhz_emif_regs =
> { .emif_rd_wr_exec_thresh		= 0x00000305 };
>  
> +static const struct emif_regs am574x_emif1_ddr3_666mhz_emif_ecc_regs
> = {
> +	.sdram_config_init		= 0x61863332,
> +	.sdram_config			= 0x61863332,
> +	.sdram_config2			= 0x08000000,
> +	.ref_ctrl			= 0x0000514d,
> +	.ref_ctrl_final			= 0x0000144a,
> +	.sdram_tim1			= 0xd333887c,
> +	.sdram_tim2			= 0x30b37fe3,
> +	.sdram_tim3			= 0x409f8ad8,
> +	.read_idle_ctrl			= 0x00050000,
> +	.zq_config			= 0x5007190b,
> +	.temp_alert_config		= 0x00000000,
> +	.emif_ddr_phy_ctlr_1_init	= 0x0024400f,
> +	.emif_ddr_phy_ctlr_1		= 0x0e24400f,
> +	.emif_ddr_ext_phy_ctrl_1	= 0x10040100,
> +	.emif_ddr_ext_phy_ctrl_2	= 0x00910091,
> +	.emif_ddr_ext_phy_ctrl_3	= 0x00950095,
> +	.emif_ddr_ext_phy_ctrl_4	= 0x009b009b,
> +	.emif_ddr_ext_phy_ctrl_5	= 0x009e009e,
> +	.emif_rd_wr_lvl_rmp_win		= 0x00000000,
> +	.emif_rd_wr_lvl_rmp_ctl		= 0x80000000,
> +	.emif_rd_wr_lvl_ctl		= 0x00000000,
> +	.emif_rd_wr_exec_thresh		= 0x00000305,
> +	.emif_ecc_ctrl_reg		= 0xD0000001,
> +	.emif_ecc_address_range_1	= 0x3FFF0000,
> +	.emif_ecc_address_range_2	= 0x00000000
> +};

I'm wondering if it would be possible to:

Embed this memory setup (even as binary blob) to SPL FIT -> Those
values are generated from TI supplied excel sheet (when memory details
are provided).


Pros:
----

- Since the same EMIF controller is used, one could only adjust the
  binary blob, when new memory (faster, slower, from other manufacturer)
  is used in the product.

- There would be no need to add such code to the board file.

> +
>  void emif_get_reg_dump(u32 emif_nr, const struct emif_regs **regs)
>  {
>  	switch (emif_nr) {
>  	case 1:
>  		if (board_is_am571x_idk())
>  			*regs = &am571x_emif1_ddr3_666mhz_emif_regs;
> +		else if (board_is_am574x_idk())
> +			*regs =
> &am574x_emif1_ddr3_666mhz_emif_ecc_regs; else
>  			*regs =
> &beagle_x15_emif1_ddr3_532mhz_emif_regs; break;
>  	case 2:
> -		*regs = &beagle_x15_emif2_ddr3_532mhz_emif_regs;
> +		if (board_is_am574x_idk())
> +			*regs = &am571x_emif1_ddr3_666mhz_emif_regs;
> +		else
> +			*regs =
> &beagle_x15_emif2_ddr3_532mhz_emif_regs; break;
>  	}
>  }



Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20171218/1046041a/attachment.sig>

  reply	other threads:[~2017-12-18 11:16 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-18  9:34 [U-Boot] [PATCH 00/13] arm: am57xx: Add support for am574-idk Lokesh Vutla
2017-12-18  9:34 ` [U-Boot] [PATCH 01/13] drivers: dma: ti-edma3: add support for memory fill Lokesh Vutla
2017-12-18  9:34 ` [U-Boot] [PATCH 02/13] arm: emif-common: Add ecc specific emif registers Lokesh Vutla
2017-12-18  9:34 ` [U-Boot] [PATCH 03/13] arm: emif-common: Add suppport for enabling ECC Lokesh Vutla
2017-12-18  9:34 ` [U-Boot] [PATCH 04/13] arm: keystone: Move cmd_ddr3 to a common place Lokesh Vutla
2017-12-18 20:03   ` Tom Rini
2017-12-19  5:01     ` Lokesh Vutla
2017-12-19 12:40       ` Tom Rini
2017-12-19 12:41       ` Tom Rini
2017-12-18  9:34 ` [U-Boot] [PATCH 05/13] arm: ti: Generalize cmd_ddr3 command Lokesh Vutla
2017-12-18  9:34 ` [U-Boot] [PATCH 06/13] arm: dra762: Add support for device package identification Lokesh Vutla
2017-12-18  9:34 ` [U-Boot] [PATCH 07/13] board: ti: am574x-idk: Add epprom support Lokesh Vutla
2017-12-18  9:34 ` [U-Boot] [PATCH 08/13] board: ti: am574x-idk: Add hw data support Lokesh Vutla
2017-12-18  9:34 ` [U-Boot] [PATCH 09/13] board: ti: am574x-idk: Add ddr " Lokesh Vutla
2017-12-18 11:16   ` Lukasz Majewski [this message]
2017-12-19  5:17     ` Lokesh Vutla
2017-12-19  9:34       ` Lukasz Majewski
2017-12-29  6:17         ` Lokesh Vutla
2018-01-02  8:52           ` Lukasz Majewski
2018-01-10 14:13           ` Tom Rini
2017-12-18  9:34 ` [U-Boot] [PATCH 10/13] board: ti: am574x-idk: Update pinmux using latest PMT Lokesh Vutla
2017-12-18  9:34 ` [U-Boot] [PATCH 11/13] board: ti: am57xx: Enable CMD_DDR3 Lokesh Vutla
2017-12-18 11:18   ` Lukasz Majewski
2017-12-19  5:05     ` Lokesh Vutla
2017-12-18  9:34 ` [U-Boot] [PATCH 12/13] ARM: dts: am574x-idk: Add initial support Lokesh Vutla
2017-12-18 20:04   ` Tom Rini
2017-12-22 11:25     ` Lokesh Vutla
2017-12-18  9:34 ` [U-Boot] [PATCH 13/13] env: ti: Select dtb name for dra76x and am574 Lokesh Vutla

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=20171218121609.0b3cbd85@jawa \
    --to=lukma@denx.de \
    --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