Platform: RK3368
OS: Android 6.0
Kernel: 3.10.0
rk3368的Chip ID是从芯片eFuse中读取出来的。然后赋值给system_serial_low和system_serial_high.
/proc/cpuinfo中的Serial字段就是用的这两个值。
arch/arm64/boot/dts/rk3368.dtsi
efuse_256@ffb00000 {
compatible = "rockchip,rk3368-efuse-256";
reg = <0x0 0xffb00000 0x0 0x8>;
};
arch/arm/mach-rockchip/efuse.c
static void __init rk3288_efuse_init(void)
{
int ret;
pr_err("%s\n", __func__);
ret = rk3288_efuse_readregs(0, 32, efuse_buf);
if (ret == 32) {
if (efuse_buf[2] == 0x33 && efuse_buf[3] == 0x86)
efuse.get_leakage = rk3368_get_leakage;
else
efuse.get_leakage = rk3288_get_leakage;
efuse.efuse_version = rk3288_get_efuse_version();
efuse.process_version = rk3288_get_process_version();
rockchip_set_cpu_version((efuse_buf[6] >> 4) & 3);
rk3288_set_system_serial();