最近拿了一块 Firefly 的开发板,主控是 RK3308,发现上面用的 U-Boot 是 2017 年的,于是想移植一个最新的版本上去,调试驱动的时候,总结了这些经验。...U-Boot DM 三要素 DM 是 U-Boot 中的驱动框架,全称 Driver Mode。...通过三种途径生成: dts 设备节点 UBOOTDEVICE(__name) 宏申明 主动调用 device_bind_xxx 系列 API 根据当前 U-Boot 的编程哲学,...基本大部分设备都是通过 dts 来描述,还有少部分设备因为特殊原因,可以通过 U_BOOT_DEVICE(_name) 宏申明。
,也就是将完整的u-boot代码(bl1+bl2)从nand flash或者mmcSD等的存储器中读取到内存中,然后跳转到内存中运行u-boot。...如果u-boot一旦被搬运到内存中运行,那么是必须要跳过时钟和DRAM的初始化的,因为这在搬运之前已经做过了。并且如果代码在内存中运行的时侯你却去初始化DRAM,那必然导致崩溃!...ctr0.S:u-boot自带的代码文件,存放汇编函数main。...没有,需要自己添加) ctr0.S: /arch/arm/lib/ctr0.S (u-boot自带,一般不需要修改) 2....当判断到当前u-boot在内存的低地址处,那么relocate_code就会工作,把u-boot代码从低地址处再搬运到内存地址的顶端,然后跳转到新的位置去继续运行u-boot。
了解u-boot的方式有很多种,以下从U-boot官方文档README学习。...概括 U-Boot是基于PowerPC、ARM、MIPS 和其他几个处理器的嵌入式板的引导加载程序,可以安装在引导 ROM 中,用于初始化和测试硬件或下载和运行应用代码。...最近,U-Boot 添加了 Linux 内核使用的 Kbuild 基础架构,允许您使用“make menuconfig”命令来配置您的构建。...示例:对于 TQM823L 模块类型: cd u-boot //进入u-boot根目录 make TQM823L_defconfig 注意:如果您正在寻找您确定曾经存在但现在丢失的板的默认配置文件,请检查文件...对于非 SPL,U-Boot 被重新定位以在内存顶部运行。
1 嵌入式软件工程师听说过 u-boot 和 bootloader,但很多工程师依然不知道他们到底是啥。 今天就来简单讲讲 u-boot 和 bootloader 的内容以及区别。...例如,U-Boot就同时支持PowerPC、ARM、MIPS和X86等体系结构,支持的板子有上百种。
来源 | 综合来自网络内容 嵌入式软件工程师听说过 u-boot 和 bootloader,但很多工程师依然不知道他们到底是啥。...今天就来简单讲讲 u-boot 和 bootloader 的内容以及区别。 Bootloader 比Bootloader从字面上来看就是启动加载的意思。...例如,U-Boot就同时支持PowerPC、ARM、MIPS和X86等体系结构,支持的板子有上百种。
boot0 及 U-Boot 3.3 编译 U-Boot 3.4 编译 boot0/fes/sboot 4 U-Boot 功能及其配置方法/文件介绍 4.1 U-Boot 功能介绍 4.2 U-Boot.../build.sh -o uboot -p {LICHEE_CHIP} //快速编译U-Boot 3.3 编译 U-Boot cd longan/brandy/brandy-2.0/u-boot-2018...图 4-2: menuconfig 配置菜单图 4.3 U-Boot 配置参数文件介绍 U-Boot 自 linux-5.4 以后不再使用 sysconfig 和内核 dts 作为配置文件,而是使用 U-Boot...4.3.1 U-Boot-dts 路径 U-Boot-dts 路径为:vim longan/brandy/brandy-2.0/u-boot-2018/arch/arm/dts 4.3.2 U-Boot-dts...CAT u-boot-dtb.bin COPY u-boot.bin ‘u-boot.bin’ -> ‘{LICHEE_CHIP}.bin’ ‘u-boot-g{LICHEE_CHIP}.bin’ ->
我们经常使用uboot命令,虽然资料光盘->常见问题目录有U-boot常用命令汇总文档,但从大家的反馈来看,并没有很多人注意到这个文档,所以把它挪到这里。如此全的uboot命令汇总,建议收藏。...注意:不同版本的uboot,它的命令有所不同,这里使用u-boot 1.1.6。...到nand Flash步骤: 打开 tftpd32.exe 软件, 将u-boot.bin 拷贝至工作目录 在SecureCRT中依次输入: tftp 0x30008000 u-boot.bin //将...在ubuntu 的 /etc/exports设置)为: /work/nfs_root 那么nfs下载命令如下: nfs 0x30008000 192.168.1.123:/work/nfs_root/u-boot.bin...// nfs下载u-boot.bin nfs 0x30008000 192.168.1.123:/work/nfs_root/uImage // nfs下载uImage nfs 0x30008000
U-boot代码层次 如何添加board 添加board的基本步骤 test board添加示例 添加target配置选项 添加config头文件 添加dtb文件 添加board文件 创建defconfig...配置文件 spl支持semihost启动 U-boot代码层次 uboot需要支持众多的硬件,并且具有良好的可扩展性、可移植性和可维护性,因此必须要有一个设计良好的代码架构。...int rc; ulong uboot_load_addr = 0x40300000, uboot_end_addr; rc = smh_load_file("u-boot.bin...rc); else puts(SPL_TPL_PROMPT "load file u-boot.bin...= uboot_load_addr; spl_image->entry_point = uboot_load_addr; spl_image->os = IH_OS_U_BOOT
来自:BreakChen u-boot其实就是一个通用的引导程序 —— BootLoader。 boot,完成硬件的初始化,启动硬件平台; loader,初始化硬件后,加载操作系统。...01 u-boot启动过程 u-boot其启动过程主要可以分为两个部分,Stage1和Stage2 。其中Stage1是用汇编语言实现的,主要完成硬件资源的初始化。而Stage2则是用C语言实现。...根据board/smsk2410/u-boot.lds内容?...04 u-boot移植过程中串口没有显示或者显示乱码的原因 (1). BootLoader 对串口的初始化设置不正确。 (2)....其源码目录、编译形式与Linux内核很相似,事实上,不少u-boot源码就是相应的Linux内核源程序的简化,尤其是一些设备的驱动程序,这从u-boot源码的注释中能体现这一点。
U-Boot 2020.2 启动问题 最近有客户反馈,U-Boot 2020.2 启动有问题。 SD卡里有BOOT.BIN, image.ub等文件,也不能正常启动。 下面是常见的启动信息。...U-Boot 2020.2 启动流程分析 U-Boot 文档 U-Boot为了支持各种Linux发行版,增加通用性,增加了启动时的Script的功能。...U-Boot启动命令 没有人工参与的自动启动,或者直接执行命令“boot”, U-Boot启动命令都是“bootcmd”。 下面是没有人工参与,超时启动时选择启动命令的代码。...它在“boot\Kconfig”中定义,能在配置U-Boot时更改。...如果没有前述的“boot.scr”,就会尝试后续的启动设备。 因此,默认的U-Boot启动过程中,需要“boot.scr”。
这篇文章主要教大家如何正确的去编译 Linux Kernel、U-Boot 这些著名的开源软件。 也许很多同学会说:编译是小 case 啊,我都 make 过成千上万次了!...编译 U-Boot U-Boot 的编译步骤和 Linux Kernel 非常类似,也是两步: make mx6ull_14x14_evk_defconfig make CROSS_COMPILE=arm-linux-gnueabihf...- 唯一的差别是,U-Boot 在编译的时候不需要指定 ARCH 选项,这是 U-Boot 的编译系统相比 Linux Kbuid 的要给改进点。...其实目前最新的 U-Boot 编译系统也是基于 Linux Kbuild 设计的,同样支持 make menuconfig 命令,有对应的 defconfig 文件,在 configs 目录下。 ?...另外一个区别是,U-Boot 也有自己的 dtb,但是最终编译完的 U-Boot 会和 dtb 合并在一起。
所以本文探讨使用 U-Boot 来引导内核。...下载 U-Boot 源码,并编译 U-Boot 源码选择哪个版本关系并不大,这里选择 OpenHarmony 标准系统参考实现相同的版本:u-boot-2020.01。...$ wget https://codeload.github.com/u-boot/u-boot/zip/refs/tags/v2020.01 解压源码,然后进入 U-Boot 源码目录,编译 u-boot.../u-boot -sd ....如果上面 引导内核 没有问题的话,那么可以在 U-Boot 的代码中将上面的命令固化进 u-boot 程序中。
U-BOOT 移植到友善之臂mini2440 开发环境:ubuntu 10.10 编译器:友善之臂mini2440光盘自带arm-linux-gcc 4.4.3 一....在denx官网下载源码,我所用版本号为u-boot-2010.03。 二. 主机编译环境为友善之臂提供的arm-linux-gcc.所參考板子为smdk2410。...$cd u-boot-mini2440 $make smdk2410_config $make 编译通过,说明编译环境没有问题。...可是对u-boot的主要的软件架构有了一定的了解。自己独创的地方就是推断启动方式上,还有lcd驱动的移植。前一个是參考裸机程序的启动代码写的,后一个全然依照自己对代码的理解移植而成。还是比較成功的。...u-boot软件分层结构给了我深刻的印象。还有Makefile的结构也对我非常有启示。这个第一个接触的开源项目。以后还会经经常使用到。
2.2 UIP移植过程 2.2.1 拷贝UIP-0.9到u-boot-2010.06/net目录 以u-boot_sources_for_tp-link_AR9331_by_pepe2k为蓝本进行移植,...将该蓝本里面的uip-0.9这个目录复制到我的u-boot 的u-boot-2010.06/net目录下,这个uip-0.9里面有这个一些文件: ap121.h ctype.h fsdata.c...2.2.2 在u-boot-2010.06/net/net.c里面添加函数 在net.c里面添加NetReceiveHttpd()函数: void NetReceiveHttpd(volatileuchar...这个函数就是将通过网页上传到buffer的数据即bin文件写到Flash里去,那么具体写的函数可以参考u-boot-2010.06/common/cmd_sf.c里面的函数。...这些命令是在u-boot-2010.06/common的.c文件里面定义的。
大概的步骤: 1、从微软官网下载win10专业版本iso文件(文件有4.6G,官网白天下载很慢,晚上下载快点); 2、使用MacOS自带的Boot Camp(新兵训练营?)...安装win10,Boot Camp安装时会从官网服务器下载支持的文件(下载很耗时); 3、安装win10过程中需要选择语言、时区等;需要输入产品序列号的地方可以选择跳过;连接网络的地方可以跳过; 4、安装完
I.MX6U-ALPHA 开发板的 ENET1 引脚与 NXP 官方的 I.MX6ULL EVK 开发板基本一样,唯独复位引脚不同。...I.MX6U-ALPHA 开发板并没有使用 74LV595,因此我们将代码删除掉。...中找到如下代码,将这个结构体全部删除: static iomux_v3_cfg_t const iox_pads[] = { /* IOX_SDI */ MX6_PAD_BOOT_MODE0...__GPIO5_IO10 | MUX_PAD_CTRL(NO_PAD_CTRL), /* IOX_SHCP */ MX6_PAD_BOOT_MODE1__GPIO5_IO11 | MUX_PAD_CTRL.../imxdownload u-boot.bin /dev/sdg //烧写 u-boot.bin 到 SD 卡中 烧写完成以后将 SD 卡插入 I.MX6U-ALPHA 开发板的 TF 卡槽中,最后设置开发板从
/u-boot DECIMAL HEXADECIMAL DESCRIPTION --------------------------------------------------...version string, "U-Boot 1.1.4 (Dec 2 2019, 11:39:50)" 132827 0x206DB HTML document.../cpu/mips/start.S $ binwalk u-boot/u-boot.bin DECIMAL HEXADECIMAL DESCRIPTION -----------...使用lzma算法压缩,得到u-boot.bin.lzma $ binwalk u-boot/u-boot.bin.lzma DECIMAL HEXADECIMAL DESCRIPTION...加上0x40字节的头部信息得到u-boot.lzming $ binwalk u-boot/u-boot.lzimg DECIMAL HEXADECIMAL DESCRIPTION
相当于向LDFLAGS内容中追加了"-T board/100ask24x0/u-boot.lds -Ttext 0x33F80000"字段,(LDFLAGS:属于u-boot第四个依赖文件) 3.继续看...//生成u-boot.bin需要elf格式的u-boot,elf也就是通过ld链接文件生成的。...*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\ cd /work/system/u-boot-1.1.6 && arm-linux-ld -Bstatic -T...= .; //把__u_boot_cmd_start赋值为当前位置, 即起始位置 .u_boot_cmd : { *(.u_boot_cmd) }...// u_boot_cmd段,所有的u-boot命令相关的定义都放在这个位置 __u_boot_cmd_end = .; // *u_boot_cmd段结束位置
U16 nData16; U8 nByteL = 1; U8 nByteH = 2; ((U8*)(&nData16))[0] = nByteL; ((U8*)(&nData16)
正如上一篇文章所说,需要对U-boot的UDP做一些小修改。 本文章采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。...---------- UDP校验和支持 U-boot默认不用UDP校验和(置零)。但是在OS X中,UDP校验和不正确的话,UDP包将会被系统丢弃。
领取专属 10元无门槛券
手把手带您无忧上云