
uboot
LouisGou
我很懒,什么都没有写
展开
-
uboot 修改启动logo
1. 获取一张图片为其色深为8位,即256色(右击->编辑(画板打开)->另存为->test.bmp(下拉框选择256色位图))2. 将制作好的BMP图片,放置到<u-boot>/tools/logos下面3. 修改<u-boot>/tools/Makefile中的LOGO_BMP,使其指向你的bmp图片。如:LOGO_BMP= logos/test.bm...原创 2018-03-20 23:38:51 · 3981 阅读 · 0 评论 -
uboot移植(九)移植网卡DM9000
一、原理TQ210 板载的网卡芯片是 DM9000A,接在 S5PV210 的 SROM 控制器的 BANK1 上。S5PV210 的 SROM 控制器支持 8/16 位 NOR Flash/PROM/SRAM 内存。 分为 6 个 bank,每个 bank 寻址空间达 128MB。 每个 bank 有一个片选信号 nGCS[5:0], 用来选通外接的内存芯片。 当发的地址在bank...原创 2018-06-09 20:37:04 · 1357 阅读 · 0 评论 -
uboot移植(十)移植 NAND FLASH
通过查看帮助文档 doc/README.nand,要支持 NAND,需要配置 CONFIG_CMD_NAND我们修改 smdkv210.h,把 CONFIG_CMD_ONENAND 屏蔽掉,同时加上 CONFIG_CMD_NAND编译出错 没有定义 CONFIG_SYS_MAX_NAND_DEVICE,最大 NAND 设备数,我们的板子只有 1 个 NAND,将其定义为 1 再次编译,出错 未定义...原创 2018-06-10 19:27:20 · 1427 阅读 · 0 评论 -
uboot移植(十一)给 NAND 添加分区
这里的分区只是为了操作的方便。 假设有个分区 kernel,其地址区间为 0x20000~0x320000,其大小为 0x300000在没有分区的情况下,对这块区间的操作如下:nand erase 20000 300000 nand write 20000000 20000 300000 nand read 20000000 20000 300000 擦除操作写操作读操作而有了分区的情况下,操作将...原创 2018-06-10 19:41:37 · 2160 阅读 · 0 评论 -
uboot移植(十二)命令行解释器
参考 u-boot 的帮助文档 README 中 Command InterpreterCONFIG_AUTO_COMPLETE定义后,可以通过 Tab 键进行命令的自动补全。CONFIG_SYS_HUSH_PARSER 定义后,可以使"hush" shell(来自于 Busybox)作为一个命令行解释器。 这样可以使用一些强大的命令行语法,比如: if...then...else...fi ...原创 2018-06-10 21:28:35 · 635 阅读 · 0 评论 -
uboot移植(十三)实现 NAND 8 位硬件 ECC
在 smdkv210.h 中定义宏 CONFIG_S5PV210_NAND_HWECC、 CONFIG_SYS_NAND_ECCSIZE、CONFIG_SYS_NAND_ECCBYTES CONFIG_SYS_NAND_ECCSIZE 定义了消息长度,即每多少字节进行 1 次 ECC 校验CONFIG_SYS_NAND_ECCBYTES 定义为 13Byte,参考裸机编程 4.10 节将 dri...原创 2018-06-10 21:58:01 · 2142 阅读 · 0 评论 -
uboot移植(十四)实现 NAND 启动 u-boot
从 NAND 启动 u-boot,需要 BL1 初始化 NAND 控制器,然后从 NAND 拷贝 BL2 到 DDR 内存。这里的BL1 即我们移植的 u-boot-spl.bin, BL2 即我们移植的 u-boot.bin。 在 u-boot.bin 中的 NAND 驱动比较大,它包含了很多功能,而 u-boot-spl.bin 中只需要从 NAND 拷贝B...原创 2018-06-10 22:27:59 · 1700 阅读 · 1 评论 -
uboot移植(十五)合并 smdkv210-spl.bin 和 u-boot.bin 为一个文件
之前的烧写都是将 smdkv210-spl.bin 和 u-boot.bin 分开单独烧写的,这样太麻烦了,我们将这 2 个bin 文件合并为一个 bin 文件——u-boot.bin首先拷贝 spl/smdkv210-spl.bin 为一个临时文件 tmp.bin然后使用 truncate 命令将 tmp.bin 的大小扩展为 16KBtruncate 后面跟的参数 ...原创 2018-06-10 22:37:23 · 1567 阅读 · 1 评论 -
uboot移植(十六)添加启动菜单
参考帮助文档 doc/README.bootmenu首先我们需要在 Louis210.h 中增加 4 个宏另外,帮助文档还提到要定义 CONFIG_BOOTDELAY,表示显示菜单多久,这个宏已经定义了,默认为 3s现在重新编译 u-boot, 从 NAND FLASH 启动开发板, 将 u-boot.bin 烧写到 NAND FLASH 我这里将所有命令写在一行...原创 2018-06-10 22:47:35 · 2987 阅读 · 0 评论 -
uboot移植(十七)实现 LCD 显示
arch/arm/lib/board.c 中的 board_init_f 函数 如果定义了 CONFIG_LCD,就会调用了 lcd_setmem 函数,这个函数用来分配帧缓存地址, 其定义在common/lcd.c 这个函数调用了 panel_info 变量,这个变量在每个具体的 lcd 驱动中定义,定义了具体 LCD 的相关信息,比如这里通过 debug 打印了它的成员变量:...原创 2018-06-10 23:29:26 · 9833 阅读 · 5 评论 -
uboot移植(十八)实现开机提示音
TQ210 开发板使用的是有源蜂鸣器,只要给它通电,蜂鸣器就会发声,实现比较简单。如果是无源蜂鸣器的话,那就稍微麻烦些,需要给它输入一定的频率,蜂鸣器才会发声。首先查看 TQ210 开发板底板原理图 由原理图可以得知,给 XpwmTOUT1 一个高电平,蜂鸣器就会发声我们再查看 TQ210 核心板原理图,看 XpwmTOUT1 接在哪个引脚 XpwmTOUT1 接在 GPD0_1 引脚,我们在 s...原创 2018-06-10 23:32:59 · 643 阅读 · 0 评论 -
uboot移植(八)支持命令补全和历史命令
略原创 2018-06-09 20:18:21 · 444 阅读 · 0 评论 -
uboot移植(七)u-boot.bin 重定位
略原创 2018-06-09 20:17:44 · 398 阅读 · 0 评论 -
uboot 编译
1、在lib_arm\bootm.c文件中添加打印,打印传递给内核的机器码在theKernel (0, machid, bd->bi_boot_params);上面添加printf("machid:0x%x\n",bd->bi_arch_number); //打印机器码2、make TQ210_config3、make ARCH=arm CROSS_COMPILE=...原创 2018-03-25 19:54:38 · 724 阅读 · 0 评论 -
uboot下载
uboot下载地址ftp://ftp.denx.de/pub/u-boot/DNW源码及使用说明下载点击打开链接共分为三种方法:一、从SD卡启动通过wind把SD卡格式化为FAT32模式sudo fdisk -l //查看分区信息dd iflag=dsync oflag=dsync if=./u-boot.bin of=/dev/sdb seek=1启动时按下空格键...原创 2018-03-23 21:18:26 · 4131 阅读 · 0 评论 -
nfs启动环境变量
NFS启动TQ210 # printenvbootdelay=0baudrate=115200ethaddr=00:40:5c:26:0a:5bgatewayip=192.168.1.2netmask=255.255.255.0lcdtype=X800Y480bootargs_defaults=setenv bootargs ${bootargs} lcd=${lcdtype}...原创 2018-05-17 21:48:25 · 535 阅读 · 0 评论 -
uboot启动流程分析 & 2014.4新版uboot启动流程分析
2014.4新版uboot启动流程分析:https://blog.youkuaiyun.com/skyflying2012/article/details/25804209第一阶段:1.硬件设备初始化2.加载u-boot第二阶段代码到RAM空间3.设置好栈4.跳转到第二阶段代码入口 第二阶段:1.初始化本阶段使用的硬件设备2.检测系统内存映射3.将内核从Flash读取到...原创 2018-05-17 22:16:37 · 713 阅读 · 0 评论 -
uboot移植(一)配置过程分析
拿到任何一个工程源码,首先是配置,然后是编译,有的需要安装,有的不需要, u-boot 也不例外,在 u-boot-2014.04 源码顶层目录下的 README 文件介绍了 u-boot 的历史, 版本命名规则, 目录组织架构,软件配置,如何添加一个新的板子等。目录组织结构在 README 中 Directory Hierarchy 一节有详细说明,下面列出一些常用的:arch:存放 CPU 架...原创 2018-05-18 18:40:11 · 1199 阅读 · 0 评论 -
uboot移植(二)编译过程分析
这里引入一个 Makefile 的知识点, GUN make 的执行过程分为两个阶段:第一阶段:读取所有的 makefile 文件(包括“MAKIFILES”变量指定的、指示符“include”指定的、以及命令行选项“-f(--file)”指定的 makefile 文件),内建所有的变量、明确规则和隐含规则,并建立所有目标和依赖之间的依赖关系结构链表。第二阶段:根据第一阶段已经建立的依赖关系结构链...原创 2018-05-18 19:43:47 · 873 阅读 · 0 评论 -
uboot移植(三)SPL
参考 doc/README.SPL我们知道, S5PV210 启动过程需要 BL1, BL2,其中 BL1 进行一些基本初始化(时钟、内存),加载BL2 到内存。 U-boot 为此专门实现了 SPL 框架。SPL 的全称为 secondary program loader,即第 2 阶段程序加载器,即我们要实现的 BL1。要支持 SPL, 我们需要在单板配置文件 u-boot-2014.04/i...原创 2018-05-18 19:46:45 · 1219 阅读 · 0 评论 -
uboot移植(四)添加单板
1) 首先在顶层目录下的 boards.cfg 中添加自己的单板的硬件配置信息,我们仿照 smdkc1002) 在顶层目录下的 board 目录下创建一个用于存储单板相关代码文件的目录,我们直接拷贝board/samsung/smdkc100/目录为 board/samsung/smdkv210,然后修改里面的文件名 修改Makefile3) 为自己的单板创建配置文件 include/config...原创 2018-05-18 20:13:43 · 864 阅读 · 0 评论 -
uboot移植(五)移植 u-boot-spl.bin
首先大致分析一下 u-boot 的代码走向, 通过看链接脚本 u-boot-2014.04/arch/arm/cpu/u-boot.lds 和u-boot-2014.04/arch/arm/cpu/u-boot-spl.lds 得知,不管是 u-boot.bin 还是 u-boot-spl.bin 都以u-boot-2014.04/arch/arm/cpu/armv7/start.S 开始,同时在...原创 2018-05-18 21:15:03 · 4987 阅读 · 2 评论 -
uboot移植(六)u-boot.bin 内存布局分析
u-boot.bin 从 start.S 中的 reset 开始执行,执行一些 CPU 底层初始化,然后跳转到 crt0.S 中的_main函数。这里仅为执行 board_init_f 函数设置栈,以及为全局变量 gd 预留一块存储空间。 在 u-boot-spl.bin 中调用了 copy_bl2_to_ram,将 u-boot.bin 拷贝到 DDR 的基地址 0x20000000,...原创 2018-05-18 22:07:43 · 4890 阅读 · 0 评论