staticintreserve_fdt(void){#ifndefCONFIG_OF_EMBED// 当使用CONFIG_OF_EMBED方式时,也就是dtb集成在uboot中的时候,relocate uboot过程中也会把dtb一起relocate,所以这里就不需要处理。// 当使用CONFIG_OF_SEPARATE方式时,就需要在这里地方进行relocateif(gd->fdt_blob) { gd->fdt_size =ALIGN(fdt_totalsize(...
在启动函数init_sequence_f列表中,与FDT相关的函数主要有三个,如下: 1 2 3 4 5 6 7 8 9 10 11 static init_fnc_t init_sequence_f[] = { ... #ifdef CONFIG_OF_CONTROL fdtdec_setup, // 获取dtb的地址,并且验证dtb的合法性 #endif ... reserve_fdt, // 为dtb分配新的内存地址空间 ... rel...
memblock_reserve(base, size); } } if (IS_ENABLED(CONFIG_RANDOMIZE_BASE)) { extern u16 memstart_offset_seed; u64 range = linear_region_size - (memblock_end_of_DRAM() - memblock_start_of_DRAM()); /* * If the size of the linear region exceeds, by a sufficient * margin, the size ...
获取 ddr 容量信息,设置gd->ram_size=512MB reserve_mmu // 预留空间 reserve_video...
static int reserve_fdt(void) { #ifndef CONFIG_OF_EMBED /* * If the device tree is sitting immediately above our image then we * must relocate it. If it is embedded in the data section, then it * will be relocated with other data. ...
+---+ gd->new_fdt +---+ reserve 16 bytes gd->start_addr_sp (gd->irq_sp) 这里设置了中断的堆栈。 dram_init_banksize int dram_init_banksize(void) { gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE; gd->bd->bi_dram[0...
这个是uboot源代码的主Makefile,将来整个uboot被编译时就是用这个Makefile管理编译的。 api文件夹 硬件无关的功能函数的API。uboot移植时基本不用管,这些函数是uboot本身使用的。 arch 与处理器相关的文件。 cmd u-boot命令文件,uboot中的命令都在该部分中。
U-Boot 的全称是Universal Boot Loader,其作用就是引导系统。对于我们熟悉的 PC,上电后,通过 BIOS 引导操作系统 (Windows、Linux等)。对于嵌入式系统一般将这个引导程序称作 BootLoader,U-Boot 就是目前使用得最广泛的 BootLoader。 在前面的文章中,QEMU直接引导鸿蒙系统的 Linux 内核,这种方式缺少灵活性,关键是在实...
arch independent API for external apps /board Board dependent files /common Misc architecture independent functions /disk Code for disk drive partition handling /doc Documentation (don't expect too much) /drivers Commonly used device drivers /dts Contains Makefile for building internal U-Boot fdt. ...
fdt bootcpu <id> - Set boot cpuid fdt memory <addr> <size> - Add/Update memory node fdt rsvmem print - Show current mem reserves fdt rsvmem add <addr><size> - Add a mem reserve fdt rsvmem delete <index> - Delete a mem reserves ...