转载请注明出处,亲们
UBOOT
片内--->BL1--->(BL2)UBOOT--->kernel--->文件系统
UBOOT需要对内存时序的配置内存的分配,CPU初始化 I/O 时钟等设置,必要驱动的加载等
需要注意:UBOOT编译的基地址 内核编译的基地址 文件系统的基地址
调用内核
Boot Loader 调用 Linux 内核的方法是直接跳转到内核的第一条指令处,
也即直接跳转到 MEM_START+0x8000 地址处。在跳转时,下列条件要满足:
CPU 寄存器的设置:
R0=0;
R1=机器类型 ID;关于 Machine Type Number,可以参见 linux/arch/arm/tools/mach-types。
R2=启动参数标记列表在 RAM 中起始基地址; 这里内核编译时候的基地址要与UBOOT设置一致--------这里能看出UBOOT参数的重要性,分离而关联
CPU 模式:
必须禁止中断(IRQs和FIQs);
CPU 必须 SVC 模式;
Cache 和 MMU 的设置:
MMU 必须关闭;
指令 Cache 可以打开也可以关闭;
数据 Cache 必须关闭;
转载于:https://www.cnblogs.com/heimi/archive/2012/12/11/2812898.html