Memory clock speed: 800MHz vs 1600MHz? (NM, RK3399 won't run >800MHz DDR)
#1
Sorry for what I hope is a stupid question...

I'm running a Pinebook Pro with the "mrfixit BSP uboot" - for deep sleep and such.

I'm using the Manjaro/tsys 5.7 kernel with hwaccel patches.

Uboot log:
Spoiler:



What I'm interested in, though, is the memory training speed.

Code:
channel 0 training pass!
channel 1 training pass!
change freq to 800MHz 1,0
Channel 0: LPDDR4,800MHz
Bus Width=32 Col=10 Bank=8 Row=15/15 CS=2 Die Bus-Width=16 Size=2048MB
Channel 1: LPDDR4,800MHz
Bus Width=32 Col=10 Bank=8 Row=15/15 CS=2 Die Bus-Width=16 Size=2048MB
256B stride

This is the final training pass I see in the uboot output.

Looking at the datsheet, the memory modules are either rated for 1600MHz or 1866MHz.

I've found that the RK3399 supports dynamic DRAM frequency scaling, but I haven't verified if this is working - I don't see anything about it in dmesg.

I see a peak of about 5.5GB/s running the "mbw" benchmark.  At 800MHz on a 64 bit bus, I'd expect (800 * 2 * 64 / 8) = 12.8GB/s, which is consistent with a streaming copy bandwidth of around 5.5GB/s.

At 1600MHz, I'd expect to see 25.6GB/s - and I know there's display overhead, but for an optimized copy, it seems like we're not seeing the full performance of this system.

So, my questions:

0. Am I misreading the output/screwing up my math?
1. How can I verify the memory frequency in Linux?
2. Should uboot be setting the frequency to the maximum before handing off to a kernel that might not be adjusting it?
3. Should we have dynamic memory frequency stuff enabled in the kernel?

Thanks!

Well, darn.  I was looking at the LPDDR4 datasheet, should have been looking at the RK3399 datasheet.

Per IRC, it just doesn't support running the memory bus up that high.  Seems to be limited at 933 for DDR3, 800 for DDR4.

Was a good question, I suppose.
  Reply
#2
Driver of u-boot lpddr4 is limited to 800 per channel? or rk3399 hardware?

Cheers!
  Reply
#3
It appears the RK3399 is limited to an 800MHz memory channel on DDR4. It can do 933 on DDR3, and it might be worth messing with uboot to see if it can run 933 on DDR4, but there's apparently a hard check that doesn't allow it right now. It might be worth experimenting with.
  Reply
#4
(06-24-2020, 11:02 AM)Syonyk Wrote: It appears the RK3399 is limited to an 800MHz memory channel on DDR4.  It can do 933 on DDR3, and it might be worth messing with uboot to see if it can run 933 on DDR4, but there's apparently a hard check that doesn't allow it right now.  It might be worth experimenting with.

Should able to operate on 933MHz (PC-1866) LPDDR4. On the RockPro64 board, has been tested up to 1067MHz (PC-2133) LPDDR4 but no plan to release this driver.

Both ROckPro64 and Pinebook Pro PCB memory access simulation has been tested up to PC-2400.

Attached is the 933MHz LPDDR4 driver.


Attached Files
.zip   rk3399_ddr_933MHz_v1.11.zip (Size: 21.27 KB / Downloads: 123)
  Reply
#5
Thanks!

Now I have an excuse to learn to build uboot and ATF for the PBP. This looks like a binary blob for... one of the parts in the early boot process, based on the strings and where they show up in boot. Are there any particular license restrictions that apply to anything built with this?

It was unclear what the limit on the RK3399 was - the spec sheet seemed to imply 933MHz for LPDDR4, but the uboot source seemed to have a check for LPDDR4 that would cut it down to 800MHz. No idea on the history of that, but it sounds like 933MHz is fully within SoC and board specifications on the PBP?
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  RK3399 - big.LITTLE core choice optimization lucserre 3 1,680 06-29-2020, 11:12 AM
Last Post: xmixahlx
  PBP Displayed Clock-Calendar Drops Hour Setting On Reboot. jcj52436999 15 5,548 01-23-2020, 04:39 PM
Last Post: MIchael
  Rockchip RK3399 PCIe lanes only 2.5GTb/s? Arwen 2 2,349 08-25-2019, 05:51 AM
Last Post: Arwen

Forum Jump:


Users browsing this thread: 1 Guest(s)