[RK3399][Android7.1] 调试笔记 --- DDR的开机频率和大小

OS: Android 7.1
Board: Firefly-RK3399
Kernel: v4.4.55

rk的ddr驱动是固定在bin文件中的,位于 u-boot/tools/rk_tools/bin/rk33 目录下:

[RK3399][Android7.1] 调试笔记 --- DDR的开机频率和大小_第1张图片

具体使用哪个bin文件由 u-boot/tools/rk_tools/RKBOOT/RK3399MINIALL.ini 决定

[LOADER_OPTION]
NUM=2
LOADER1=FlashData
LOADER2=FlashBoot
FlashData=tools/rk_tools/bin/rk33/rk3399_ddr_800MHz_v1.08.bin
FlashBoot=tools/rk_tools/bin/rk33/rk3399_miniloader_v1.06.bin

因此当前使用的是rk3399_ddr_800MHz_v1.08.bin这个文件,也就是默认开机是800MHz的频率。

开机Rom打印的log:

DDR Version 1.08 20170320
In
soft reset
SRX
Channel 0: DDR3, 800MHz
Bus Width=32 Col=10 Bank=8 Row=15/15 CS=2 Die Bus-Width=16 Size=2048MB
Channel 1: DDR3, 800MHz
Bus Width=32 Col=10 Bank=8 Row=15/15 CS=2 Die Bus-Width=16 Size=2048MB
256B stride
ch 0 ddrconfig = 0x101, ddrsize = 0x2020
ch 1 ddrconfig = 0x101, ddrsize = 0x2020

关于大小,理论上硬件是4GB的内存空间,但是在 arch/arm/cpu/armv8/rk33xx/ddr.c 中,被固定写成了128MB.

void dram_init_banksize(void)
{
......
            if ((gd->bd->rk_dram[i].start == CONFIG_RAM_PHY_START) && (gd->bd->rk_dram[i].size != 0)) {
                gd->bd->rk_dram[i].start += (CONFIG_SYS_TEXT_BASE - CONFIG_RAM_PHY_START);
                gd->bd->rk_dram[i].size -= (CONFIG_SYS_TEXT_BASE - CONFIG_RAM_PHY_START);
            }
......
}
#define PHYS_SDRAM_SIZE             (CONFIG_RAM_PHY_END - CONFIG_RAM_PHY_START) /* 128 MB in Bank #0 */

因此在uboot log中看到是128MB的空间大小。

DRAM:  Found dram banks: 1
Adding bank:0000000000200000(00000000ffe00000)
128 MiB

能想到,这部分肯定会在kernel起来后被修改掉,等看了再分享出来。

你可能感兴趣的:(RK3399,子类__DDR_DVFS)