public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Mikhail Kalashnikov <iuncuim@gmail.com>
To: "Jernej Škrabec" <jernej.skrabec@gmail.com>,
	"Jagan Teki" <jagan@amarulasolutions.com>,
	"Andre Przywara" <andre.przywara@arm.com>
Cc: Samuel Holland <samuel@sholland.org>,
	Piotr Oniszczuk <piotr.oniszczuk@gmail.com>,
	u-boot@lists.denx.de
Subject: Re: [PATCH v3 1/1] sunxi: H616: add LPDDR4 DRAM support
Date: Sat, 11 Nov 2023 10:43:22 +0300	[thread overview]
Message-ID: <3ff938ac-35c0-4705-86f7-819060ebb2d6@gmail.com> (raw)
In-Reply-To: <2211206.irdbgypaU6@archlinux>

Hi Jernej,

On 04.11.2023 11:31, Jernej Škrabec wrote:
> Hi Mikhail,
>
> I have some notes on LPDDR4 from a long time ago. It mostly matches to your
> code, but please take a look at comments below.
>
> Note that I have extra code, not included in this patch, for
> mctl_phy_read_training(). At the very beginning, before any other register
> access is done, this should be added:
>
> if (para->type == SUNXI_DRAM_TYPE_LPDDR4) {
> 	writel(0, SUNXI_DRAM_PHY0_BASE + 0x800);
> 	writel(0, SUNXI_DRAM_PHY0_BASE + 0x81c);
> }
>
> Maybe that will help with other LPDDR4 boards?

Current H618 and t507 boards do not yet require this feature. Yes, this
feature may be required for future devices. I will add it in the next 
version.

>> @@ -246,8 +251,13 @@ static void mctl_phy_configure_odt(const struct
>> dram_para *para) {
>>   	uint32_t val_lo, val_hi;
>>
>> +	clrsetbits_le32(SUNXI_DRAM_PHY0_BASE + 0x390, BIT(5), BIT(4));
>> +	clrsetbits_le32(SUNXI_DRAM_PHY0_BASE + 0x3d0, BIT(5), BIT(4));
>> +	clrsetbits_le32(SUNXI_DRAM_PHY0_BASE + 0x410, BIT(5), BIT(4));
>> +	clrsetbits_le32(SUNXI_DRAM_PHY0_BASE + 0x450, BIT(5), BIT(4));
>
> I don't have above block. Something from newer libdram? Is it applicable to
> all DRAM types?

This function is present in the RE code for all types of memory. Binary 
file dumped from orangepi zero3 nor spi.I paid attention to this area 
code when comparing the sunxi u-boot dump (md.l) with the resulting 
mainline u-boot. Now I checked my tvbox with H616 and LPDDR3 and it 
doesn't have this block. In this case, maybe it would be better to make 
it only for devices with LPDDR4?
>> +	case SUNXI_DRAM_TYPE_LPDDR4:
>> +		writel(0x0, &mctl_ctl->mrctrl1);
>> +		writel(0x80000030, &mctl_ctl->mrctrl0);
>> +		mctl_await_completion(&mctl_ctl->mrctrl0, BIT(31), 0);
> I don't have above block. Maybe difference from newer version of libdram 
> code?

This block was present in the sunxi t507 binaries for which the driver 
was originally intended.  Now I checked original dump from orangepi zero3 NOR SPI.
This is also present here.


>>   	writel(reg_val, &mctl_ctl->odtcfg);
>>   	writel(reg_val, &mctl_ctl->unk_0x2240);
>>   	writel(reg_val, &mctl_ctl->unk_0x3240);
> I have extra "writel(BIT(31), &mctl_com->cr);" after this block for all DRAM
> types. Not sure if it changes anything.
Looks like this has already been done in previous patches.
>> +	u16 trfc	= ns_to_t(280);
> My notes say 180 instead of 280. Did you check if register value matches if
> booted with boot0
I booted from NOR SPI of the sunxi u-boot and made a dump with md.l 
0x047fb064. It show me value 0030006f, where 0x6f trfc value. Based on 
the transformation function - 111*1000/(792/2)=280,30(30) So, obtained 
value looks correct. Best regards,
Mikhail


  reply	other threads:[~2023-11-11 15:35 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-04  6:22 [PATCH v3 0/1] sunxi: H616: add LPDDR4 support Mikhail Kalashnikov
2023-11-04  6:22 ` [PATCH v3 1/1] sunxi: H616: add LPDDR4 DRAM support Mikhail Kalashnikov
2023-11-04  8:31   ` Jernej Škrabec
2023-11-11  7:43     ` Mikhail Kalashnikov [this message]
2023-11-11  7:50       ` Jernej Škrabec

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=3ff938ac-35c0-4705-86f7-819060ebb2d6@gmail.com \
    --to=iuncuim@gmail.com \
    --cc=andre.przywara@arm.com \
    --cc=jagan@amarulasolutions.com \
    --cc=jernej.skrabec@gmail.com \
    --cc=piotr.oniszczuk@gmail.com \
    --cc=samuel@sholland.org \
    --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