static void spl_ram_load_image(void) static int spl_ram_load_image(void) { const struct image_header *header; @@ -145,6 +145,8 @@ static void spl_ram_load_image(void) (CONFIG_SYS_TEXT_BASE - sizeof(struct image_header)); spl_parse_image_header(header); return 0; } #endif @...
读取到的uboot信息放在spl_image中,spl_image中存储了bootdev为emmc,spl_load_image会从emmc中加载uboot image到内存。 3、ATF跳转 case IH_OS_ARM_TRUSTED_FIRMWARE: //atf验证跳转 debug("Jumping to U-Boot via ARM Trusted Firmware\n"); //修正spl_image中的fdt信息 spl_fixup_fdt(spl_image.fdt_ad...
@@ -121,6 +127,9 @@ struct atf_image_info { struct param_header h; uintptr_t image_base; /* physical address of base of image */ uint32_t image_size; /* bytes read from image file */ #if CONFIG_IS_ENABLED(ATF_LOAD_IMAGE_V2) uint32_t image_max_size; #endif }; /*** ...
#define SPL_LOAD_IMAGE_METHOD(_name, _priority, _boot_device, _method) 该宏会定义一个spl_image_loader类型结构体表示一个加载方案,_boot_device是该方案的ID,会被填入结构体的boot_device字段;_method则是加载函数,被填入load_image字段。 (c)调用boot_from_devices()遍历各方案:该函数中会根据spl_boot...
spl_net_load_image(NULL); #endif break; #endif #ifdef CONFIG_SPL_USBETH_SUPPORT case BOOT_DEVICE_USBETH: spl_net_load_image(“usb_ether”); break; #endif default: debug(“SPL: Un-supported Boot Device ”); hang(); } [plain] view plain copy switch (boot_device) { ...
spl_mmc_load_image();break;#endif#ifdef CONFIG_SPL_NAND_SUPPORTcaseBOOT_DEVICE_NAND: spl_nand_load_image();break;#endif#ifdef CONFIG_SPL_ONENAND_SUPPORTcaseBOOT_DEVICE_ONENAND: spl_onenand_load_image();break;#endif#ifdef CONFIG_SPL_NOR_SUPPORTcaseBOOT_DEVICE_NOR: ...
|- spl_load_image //根据不同的启动方式加载 u-boot 镜像, |- jump_to_image_no_args //进入u-boot代码运行 |(U-Boot)如果是U-Boot 镜像 |- board_init_f //(common/board_f.c) | |- ... | |- initcall_run_list(init_sequence_f) ...
159 spl_ram_load_image();160 break;161 #endif162 #ifdef CONfig_SPL_MMC_SUPPORT163 case BOOT_DEVICE_MMC1:164 case BOOT_DEVICE_MMC2:165 case BOOT_DEVICE_MMC2_2:166 spl_mmc_load_image();167 break;168 #endif169 #ifdef CONfig_SPL_NAND_SUPPORT...
spl_ram_load_image(); break; #endif #ifdef CONFIG_SPL_MMC_SUPPORT case BOOT_DEVICE_MMC1: case BOOT_DEVICE_MMC2: case BOOT_DEVICE_MMC2_2: spl_mmc_load_image(); break; #endif #ifdef CONFIG_SPL_NAND_SUPPORT case BOOT_DEVICE_NAND: ...
spl_mmc_load_image(); break; 这样的修改可以实现上面提到的启动流程吗? 现在我在 Beaglebone Black 上试了下,好像不行,有如下打印说 MMC device not found: USB Host mode controller at 47401800 using PIO, IRQ 0 11 boot device - 8 MMC Device 0 not found ...