[U-Boot] [PATCH 2/7] ARM: BeagleBoard-X15: Enable HW leveling
Dmitry Lifshitz
lifshitz at compulab.co.il
Wed Dec 16 14:48:38 CET 2015
Hi Lokesh,
On 12/16/2015 02:54 PM, Lokesh Vutla wrote:
> Hi,
>
> On Monday 14 December 2015 06:40 PM, Dmitry Lifshitz wrote:
>> Hi Lokesh,
>>
>> We are working on U-Boot for CompuLab board based on
>> AM57xx SoC (CL-SOM-AM57x).
>>
>> We figured out the following note in AM57xx TRM for EMIF register
>> EMIF_DDR_PHY_CONTROL_1,
>> bits 25:27 (WRLVL_MASK, RDLVLGATE_MASK, RDLVL_MASK)
>>
>> "NOTE: Read-Write Leveling is not supported on this
>> device. Set this value to 0x1."
> Actually this is not true. It is supported and has been successfully
> tested. TRM needs to be updated. Thanks for catching this. Ill take the
> necessary steps for this update in TRM.
>
Thank you for the update.
Does TI has any kind of tool (for AM57x SoC family) that may help to
configure/validate EMIF and PHY registers settings?
Thanks,
Dmitry
> Thanks and regards,
> Lokesh
>
>>
>> This contradicts with the following patch, enabling HW leveling for
>> BeagleBoard-X15.
>>
>> Please, advice, if it save and required to apply HW leveling related
>> registers settings.
>>
>> Does DRA7x DDR3 HW leveling code is relevant for AM57xx ?
>>
>> Thank you,
>>
>> Dmitry Lifshitz
>>
>>
>> On 06/03/2015 12:13 PM, Lokesh Vutla wrote:
>>> Updating EMIF registers to enable HW leveling
>>> on BeagleBoard-X15.
>>>
>>> Signed-off-by: Lokesh Vutla <lokeshvutla at ti.com>
>>> ---
>>> board/ti/beagle_x15/board.c | 26 ++++++++++++++++++--------
>>> 1 file changed, 18 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/board/ti/beagle_x15/board.c b/board/ti/beagle_x15/board.c
>>> index 75dd8e8..76654c8 100644
>>> --- a/board/ti/beagle_x15/board.c
>>> +++ b/board/ti/beagle_x15/board.c
>>> @@ -55,15 +55,15 @@ static const struct emif_regs
>>> beagle_x15_emif1_ddr3_532mhz_emif_regs = {
>>> .read_idle_ctrl = 0x00050001,
>>> .zq_config = 0x0007190b,
>>> .temp_alert_config = 0x00000000,
>>> - .emif_ddr_phy_ctlr_1_init = 0x0e24400a,
>>> - .emif_ddr_phy_ctlr_1 = 0x0e24400a,
>>> + .emif_ddr_phy_ctlr_1_init = 0x0024400b,
>>> + .emif_ddr_phy_ctlr_1 = 0x0e24400b,
>>> .emif_ddr_ext_phy_ctrl_1 = 0x10040100,
>>> .emif_ddr_ext_phy_ctrl_2 = 0x00740074,
>>> .emif_ddr_ext_phy_ctrl_3 = 0x00780078,
>>> .emif_ddr_ext_phy_ctrl_4 = 0x007c007c,
>>> .emif_ddr_ext_phy_ctrl_5 = 0x007b007b,
>>> .emif_rd_wr_lvl_rmp_win = 0x00000000,
>>> - .emif_rd_wr_lvl_rmp_ctl = 0x00000000,
>>> + .emif_rd_wr_lvl_rmp_ctl = 0x80000000,
>>> .emif_rd_wr_lvl_ctl = 0x00000000,
>>> .emif_rd_wr_exec_thresh = 0x00000305
>>> };
>>> @@ -103,7 +103,12 @@ static const u32
>>> beagle_x15_emif1_ddr3_ext_phy_ctrl_const_regs[] = {
>>> 0x00400040,
>>> 0x00400040,
>>> 0x00400040,
>>> - 0x00400040
>>> + 0x00400040,
>>> + 0x0,
>>> + 0x0,
>>> + 0x0,
>>> + 0x0,
>>> + 0x0
>>> };
>>>
>>> static const struct emif_regs beagle_x15_emif2_ddr3_532mhz_emif_regs
>>> = {
>>> @@ -118,15 +123,15 @@ static const struct emif_regs
>>> beagle_x15_emif2_ddr3_532mhz_emif_regs = {
>>> .read_idle_ctrl = 0x00050001,
>>> .zq_config = 0x0007190b,
>>> .temp_alert_config = 0x00000000,
>>> - .emif_ddr_phy_ctlr_1_init = 0x0e24400a,
>>> - .emif_ddr_phy_ctlr_1 = 0x0e24400a,
>>> + .emif_ddr_phy_ctlr_1_init = 0x0024400b,
>>> + .emif_ddr_phy_ctlr_1 = 0x0e24400b,
>>> .emif_ddr_ext_phy_ctrl_1 = 0x10040100,
>>> .emif_ddr_ext_phy_ctrl_2 = 0x00820082,
>>> .emif_ddr_ext_phy_ctrl_3 = 0x008b008b,
>>> .emif_ddr_ext_phy_ctrl_4 = 0x00800080,
>>> .emif_ddr_ext_phy_ctrl_5 = 0x007e007e,
>>> .emif_rd_wr_lvl_rmp_win = 0x00000000,
>>> - .emif_rd_wr_lvl_rmp_ctl = 0x00000000,
>>> + .emif_rd_wr_lvl_rmp_ctl = 0x80000000,
>>> .emif_rd_wr_lvl_ctl = 0x00000000,
>>> .emif_rd_wr_exec_thresh = 0x00000305
>>> };
>>> @@ -163,7 +168,12 @@ static const u32
>>> beagle_x15_emif2_ddr3_ext_phy_ctrl_const_regs[] = {
>>> 0x00400040,
>>> 0x00400040,
>>> 0x00400040,
>>> - 0x00400040
>>> + 0x00400040,
>>> + 0x0,
>>> + 0x0,
>>> + 0x0,
>>> + 0x0,
>>> + 0x0
>>> };
>>>
>>> void emif_get_reg_dump(u32 emif_nr, const struct emif_regs **regs)
>>>
>>
>
>
More information about the U-Boot
mailing list