11 2021 档案
摘要:继续上一节内容,不知道你有没有注意到,启动u-boot后,运行有一行信息: 输出Flash信息这一部分代码是位于board_init_r阶段,执行initr_net()函数的输出结果。 我们开发板上搭载了型号为DM9000网卡芯片,这一节我们将会介绍u-boot如何支持我们的DM9000网卡,这样我
阅读全文
摘要:在上一节中,不知道你有没有注意到,以NOR方式启动u-boot后,运行有一行信息: 输出Flash信息这一部分代码是位于board_init_r阶段,执行initr_flash()函数的输出结果。 我们开发板上搭载了型号为S29AL016D70TF102的2MB大小的NOR FLASH,这里输出NO
阅读全文
摘要:一、u-boot移植概述 1.1 移植不同的硬件层次 我们要向不同的硬件平台上移植u-boot,我们必须明确不同硬件平台之间的差别。而硬件的差别体现在多个层面上。比如说我们使用的Mini2440开发板,采用的SOC芯片是三星公司的S3C2440,该SOC使用的内核(CPU)是ARM公司设计的ARM9
阅读全文
摘要:看到这里的同学,恭喜你,马上就看完了u-boot的源码了。 一、run_main_loop 我们介绍到了init_sequence_r的最后一个函数run_main_loop,该函数位于common/board_r.c文件中。 static int run_main_loop(void) { #if
阅读全文
摘要:board_init_r和board_init_f差不多,都是执行一个循环。这里是循环执行init_sequence_r[]里的函数指针。 一、board_init_r(common/board_r.c) void board_init_r(gd_t *new_gd, ulong dest_addr
阅读全文
摘要:所谓的relocation,就是重定位,u-boot运行后会将自身代码拷贝到SDRAM的另一个位置继续运行。 但基于以前的理解,一个完整可运行的bin文件,link时指定的链接地址,load时的加载地址,运行时的运行地址,这3个地址应该是一致的。 relocation后运行地址不同于加载地址,特别是
阅读全文
摘要:一、board_init_f(common/board_f.c) 该函数位于common/board_f.c文件: void board_init_f(ulong boot_flags) { #ifdef CONFIG_SYS_GENERIC_GLOBAL_DATA /* * For some ar
阅读全文