In: serial
Out: serial
Err: serial
Model: Pine64 RK3399 Pinebook Pro
Bootdev(atags): mmc 0
PartType: EFI
rockchip_get_boot_mode: Could not found misc partition
boot mode: None
init_resource_list: failed to get resource part, ret=-1
Can't find file:logo.bmp
failed to display uboot logo
CLK: (uboot. arml: enter 816000 KHz, init 816000 KHz, kernel 0N/A)
CLK: (uboot. armb: enter 24000 KHz, init 24000 KHz, kernel 0N/A)
aplll 816000 KHz
apllb 24000 KHz
dpll 800000 KHz
cpll 24000 KHz
gpll 800000 KHz
npll 600000 KHz
vpll 24000 KHz
aclk_perihp 133333 KHz
hclk_perihp 66666 KHz
pclk_perihp 33333 KHz
aclk_perilp0 266666 KHz
hclk_perilp0 88888 KHz
pclk_perilp0 44444 KHz
hclk_perilp1 100000 KHz
pclk_perilp1 50000 KHz
Net: No ethernet found.
Hit key to stop autoboot('CTRL+C'): 0
do_boot_rockchip: Could not find boot part
Checking for mmc dev 1...
Card did not respond to voltage select!
mmc_init: -95, time 9
starting USB...
USB0: USB EHCI 1.00
USB1: USB OHCI 1.0
USB2: USB EHCI 1.00
USB3: USB OHCI 1.0
scanning bus 0 for devices... 1 USB Device(s) found
scanning bus 1 for devices... 2 USB Device(s) found
scanning bus 2 for devices... 1 USB Device(s) found
scanning bus 3 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
Checking for usb dev 0...
Device 0: unknown device
Checking for mmc dev 0...
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0 for bootable partitions...
Scanning mmc 0:3 for extlinux or boot scripts...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
1992 bytes read in 67 ms (28.3 KiB/s)
select kernel
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.