随笔分类 - uboot
摘要:开发板 :NanoPC-T6开发板 eMMC :256GB LPDDR4 :16GB 显示屏 :15.6英寸HDMI接口显示屏 u-boot :2017.09 linux :6.1 在前面的文章我们对Rockhip Linux SDK进行了深入分析,其中涉及到了SDK编译过程、编译源码,具体可以参考
阅读全文
摘要:开发板 :NanoPC-T4开发板 eMMC :16GB LPDDR3:4GB 显示屏 :15.6 HDMI接口显示屏 u-boot :2023.04 linux :6.3 在前面我们已经介绍了《编译Rockchip官方》提供的uboot源码,并下载到开发板中进行测试运行。这一节我们尝试下载最新的u
阅读全文
摘要:开发板 :NanoPC-T4开发板 eMMC :16GB LPDDR3 :4GB 显示屏 :15.6英寸HDMI接口显示屏 u-boot :Rockchip官方uboot 2017.09 linux :5.2.8 在前面的章节,我们已经介绍了在RK3399上面移植Rockchip官方提供的uboot
阅读全文
摘要:开发板 :NanoPC-T4开发板eMMC :16GBLPDDR3:4GB显示屏 :15.6英寸HDMI接口显示屏u-boot :2017.09 NanoPC-T4开发板,主控芯片是Rockchip RK3399,big.LITTLE大小核架构,双Cortex-A72大核(up to 2.0GHz)
阅读全文
摘要:开发板 :NanoPC-T4开发板 eMMC :16GB LPDDR3:4GB 显示屏 :15.6英寸HDMI接口显示屏 u-boot :2017.09 NanoPC-T4开发板,主控芯片是Rockchip RK3399,big.LITTLE大小核架构,双Cortex-A72大核(up to 2.0
阅读全文
摘要:开发板 :NanoPC-T4开发板eMMC :16GBLPDDR3:4GB显示屏 :15.6英寸HDMI接口显示屏u-boot :2017.09 NanoPC-T4开发板,主控芯片是Rockchip RK3399,big.LITTLE大小核架构,双Cortex-A72大核(up to 2.0GHz)
阅读全文
摘要:在前面的章节关于u-boot的源码,以及u-boot的移植这一块我们介绍完了。接下来,我们应该开始进入第二个阶段,linux内核移植,以及驱动开发。 但是在这之前,我们遗漏了u-boot中的一个重要环节没有介绍,就是u-boot如何执行bootm命令,如何实现linux内核启动。 我们在《Mini4
阅读全文
摘要:本节的代码都是在Mini440之uboot移植之实践NAND启动(四) 代码基础上修改的。 一、修改默认环境变量 不知道你有没有留意到,uboot在启动时,串口输出信息有下面一行: U-Boot 2016.05 (Jan 14 2022 - 22:22:01 +0800) CPUID: 324400
阅读全文
摘要:在之前的章节我们已经介绍了u-boot如何支持我们的NOR FLASH,以及DM9000网卡的支持。 这一节我们将会在Young / s3c2440_project[u-boot-2016.05-nor-flash】代码的基础上新建u-boot-2016.05-nand-flash项目,使得我们项目
阅读全文
摘要:继续上一节内容,不知道你有没有注意到,启动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
阅读全文
摘要:在前面的文章我们已经介绍了如何自己去实现一个BootLoader,今天我们来介绍u-boot的移植,u-boot是一种通用的BootLoader。 在嵌入式Linux之uboot源码make配置编译正向分析中我们已经介绍了如何通过Source Insight打开u-boot源码,以及uboot的编译
阅读全文
摘要:一、make编译逆向分析之prepare 在上一篇文章中分析Makefile文件依赖关系时采用自顶向下的方法,从顶层目标开始到最原始的依赖结束。 此处我们采用自下而上的方式,从最原始的依赖开始,一步一步的执行命令生成目标。 完整的prepare的目标依赖: 依次从最右边的依赖说起; 1.1 .con
阅读全文
摘要:一、嵌入式Linux系统组成 嵌入式Linux系统一般由以下几部分组成: 引导加载程序,包括固化在固件中的boot代码和BootLoader两大部分。有些CPU在运行BootLoader之前会先运行一段固化程序,比如x86的CPU会先运行BIOS中的固件,然后才运行硬盘的第一个分区(MBR)中的Bo
阅读全文