放在 ATAG 中傳給 kernel,
kernel setup.c 中解開 ATAG, 把資料解開 show 在 /proc/cpuinfo:
# cat /proc/cpuinfo Processor : ARMv7 Processor rev 6 (v7l) BogoMIPS : 1599.07 Features : swp half thumb fastmult vfp edsp vfpv3 vfpv3d16 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x2 CPU part : 0xcc9 CPU revision : 6 Hardware : mama2cb Revision : 15034720 Serial : 000fbaea041d1bff
android 的 /system/core/init/init.c 讀取 /proc/cpuinfo, 把每個 entry 解出,
用 property_set( ) 一一設定好system property
/system/core/init/init.c 負責很多 system property 設定的動作。
例如:從 kernel cmdline parsing ...
import_kernel_cmdline( )
讀取 /proc/cmdline
然後用
import_kernel_nv( ): if (!strcmp(name,"qemu")) { strlcpy(qemu, value, sizeof(qemu)); } else if (!strcmp(name,"androidboot.console")) { strlcpy(console, value, sizeof(console)); } else if (!strcmp(name,"androidboot.mode")) { strlcpy(bootmode, value, sizeof(bootmode)); } else if (!strcmp(name,"androidboot.serialno")) { strlcpy(serialno, value, sizeof(serialno)); } else if (!strcmp(name,"androidboot.baseband")) { strlcpy(baseband, value, sizeof(baseband)); } else if (!strcmp(name,"androidboot.carrier")) { strlcpy(carrier, value, sizeof(carrier)); } else if (!strcmp(name,"androidboot.bootloader")) { strlcpy(bootloader, value, sizeof(bootloader)); } else if (!strcmp(name,"androidboot.hardware")) { strlcpy(hardware, value, sizeof(hardware)); }parsing 需要的部份。
這樣 hardware 相關部份就可以完全交給 bootloader detect,
沒有留言:
張貼留言