U-boot notes
HeroKern
精通高速存储方案 V:yolov8 电话:18011450271
展开
-
kernel mtd 分区与UBOOT 分区的理解
今天做内核移植,准备添加NAND flash的驱动,做到MTD分区时,想起在一本书上看到的一句话,说的是分区时每个区之间没有间隙,前一个区的结束地址是后一个区的起始地址。可是当我看我的开发板的教程时,分区如下:static struct mtd_partition smdk_default_nand_part[] = { [0] = {转载 2015-11-03 11:30:24 · 17112 阅读 · 0 评论 -
S3c2440如何利用JLINK烧写U-boot到NAND Flash中
很多同学使用笔记本作为自己的ARM开发和学习的平台,绝大多数笔记本都没有并口,也就是无法使用JTag调试和烧写程序到Nand Flash中,幸好我们还有JLINK,用JLINK烧写U-boot到Nor Flash中很简单,大部分NOR Flash都已经被JLink的软件SEGGER所支持,而新手在学习的时候经常会实验各种各样的命令,最悲剧的莫过于将NAND Flash中原有的bootloade原创 2015-10-24 12:36:54 · 17689 阅读 · 0 评论 -
U-boot中怎么添加配置菜单选项
在command.h中分析命令结构/* 这是定义一个结构的属性,将其放在.u_boot_cmd这个段当中,相当于.data/.bss这些段 */#define Struct_Section __attribute__ ((unused,section (".u_boot_cmd"))) #define U_BOOT_CMD(name,maxargs,rep,cmd,usage,h原创 2015-11-03 13:45:55 · 16610 阅读 · 0 评论 -
adr,adrl和ldr指令的用法比较
更多信息参考ARM指令集手册:http://download.csdn.net/detail/qq_21792169/9508718ADR: 这是一条小范围的地址读取伪指令,它将基于PC的相对偏移的地址值读到目标寄存器中。使用的格式:ADR register,exper。 在编译源程序时,汇编器首先计算出当前PC到exper的偏移值#offset_t原创 2015-11-16 22:37:58 · 5048 阅读 · 0 评论 -
u-boot-2010.09移植(一)
先说下 我是结合yanghao和韦东山老师两位的博客文档自己移植U-boot来搭建整个系统,我用的u-boot-2010.09版本来移植的,对不同的开发板基本上是通用的,最多就是Not flash需要更改一些参数吧了,有可能文章写得不是很全,可以直接看补丁文件。 自己移植这一块确实挺幸苦的,今天在这里写出来,希望给大家带来帮助,同时也是给自己的一个总结,原创 2015-10-24 12:27:35 · 16215 阅读 · 0 评论 -
嵌入还开发U-boot框架完整分析
经过一周的努力,终于把U-boot的框架弄清楚了,终于把这几个地址搞清楚了,学习这些我花了很多时间,如果有人跟你讲解的话,你几分钟就能理解过来,自己摸索有点伤不起呀。一下是自己的总结,相信你把这篇文章看了,你会对U-boot的烧写和启动内核,最终的是一些地址空间的了解有深刻的印象,在这里我贴出来是希望大家少走弯路。30800000:用于存储ramdisk(相当于一个临时的硬盘),用来挂原创 2015-10-24 12:40:31 · 15220 阅读 · 2 评论 -
u-boot-2010.09移植(二)
添加fl2440中S3C2440片上系统的支持。一、汇编文件修改,这部分主要集中修改修改cpu/arm920t/start.S文件。1、删除AT91RM9200使用的LED代码,117、118行,关闭LED代码。[cpp] view plaincopy// bl coloured_LED_init // bl red_LED_o原创 2015-10-24 12:29:16 · 13925 阅读 · 0 评论 -
U-boot-2009.08移植(三)支持Nor FLASH
一、在board/fl2440/fl2440.c 中对GPIO和PLL的配置进行修改(1)修改GPIO和PLL的配置(36行附近)为:[cpp] view plaincopy#if FCLK_SPEED==0 /* Fout = 203MHz, Fin = 12MHz for Audio */ #define M_MDIV 0原创 2015-10-24 12:30:35 · 14354 阅读 · 0 评论 -
U-boot-2009.08移植(四) 支持DM900网卡
我们知道S3C2440支持从NAND Flash启动和从NOR Flash启动两种模式,先来介绍u-boot的NOR Flash启动方式吧。一、修改NOR Flash的读写程序 FL2440开发板中使用的NOR Flash是Intel的J3系列存储大小是4M字节,这个系列的NOR Flash支持标准的CFI指令(在最新的U-boot版本中只需要添加宏定义就可以支持CF原创 2015-10-24 12:31:31 · 14602 阅读 · 0 评论 -
U-boot-2009.08移植(五)uboot架构中NAND Flash驱动修改
分析了一下Uboot中Nandflash的驱动,u-boot-2009.08使用的是和Linux内核一样的MTD(内存技术设备)架构。在Uboot下对Nand的支持体现在命令行下实现对nand flash的操作,为:nand info,nand device,nand read,nand write,nand erease,nand bad。用到的主要数据结构有:struct nand_fla转载 2015-10-24 12:32:45 · 19043 阅读 · 0 评论 -
U-boot-2010.09移植(六)NAND Flash启动支持
从NAND Flash启动的原理很简单,就是利用S3C2440内部4K大小的SRAM,存储在NAND Flash中的代码不能被执行,而S3C2440在从NAND Flash启动把NAND Flash的前4k代码复制到SRAM中运行,U-boot支持从NAND Flash启动的方法就是利用这前4K代码完成SDRAM的初始化(SDRAM有64M),然后还要完成从U-boot代码从NAND Flash中转载 2015-10-24 12:33:56 · 16020 阅读 · 0 评论 -
make clean、make mrproer 以及make distclean的区别
# make helpCleaning targets: clean - Remove most generated files but keep the config and enough build support to build external modules mrproper - Remove原创 2015-11-03 14:07:09 · 15296 阅读 · 0 评论 -
U-boot链接地址的详解
1、运行地址链接地址:他们两个是等价的,只是两种不同的说法。2、加载地址存储地址:他们两个是等价的,也是两种不同的说法。运行地址:程序在SRAM、SDRAM中执行时的地址。就是执行这条指令时,PC应该等于这个地址,换句话说,PC等于这个地址时,这条指令应该保存在这个地址内。加载地址:程序保存在Nand flash中的地址。位置无关码:B、BL、M原创 2015-10-29 20:49:52 · 16516 阅读 · 0 评论 -
S3C2440 SDRAM寄存器初始化设置
板子是s3c2410,使用两片容量为32MB、位宽16bit的EM63A165TS-6G芯片拼成容量为64M、32bit的SDRAM存储器。根据2410datasheet,要使用SDRAM需配置13个寄存器,以下逐个来看:1、 BWSCON:Bus width & wait status control register总线位宽和等待状态控制寄存器。此寄存器用于配置BANK0 –原创 2015-11-21 15:12:32 · 15627 阅读 · 0 评论 -
U-boot中常用参数设定及常用宏的解释和说明
uboot功能很强,支持各种各样的启动方式,如:U盘启动,NFS启动,NAND Flash启动,NOR Flash启动……1、环境变量的存储设置 如u-boot中的savenv命令,它用来保存系统的环境变量到Flash中,当我们在开发板的配置文件中,使用的宏定义为:[cpp] view plaincopy#define CONFIG_EN转载 2015-10-24 12:37:47 · 16350 阅读 · 0 评论 -
关于S3C2440从NAND Flash启动的问题
本文来自:http://blog.chinaunix.net/u2/69674/showart_1212448.html用的是S3C2410.见附件start.s 其中关于nand flash启动的那一段一直百思不得其解,按说从NAND FLASH启动时,应该是前4KB映射到NGCS0,其中的代码将NAND中存放的程序拷贝到RAM中,但该文件提供的程序好象是先从NAND拷贝 128K的代码转载 2015-10-24 22:25:31 · 14178 阅读 · 0 评论 -
FL2440使用J-Link烧写Nand> Flash遇到CPU is not halted!
烧写U-boot遇到了很多问题,在自己坚持不懈的努力下终于把问题都解决了,全是自己的总结,希望对新手带来帮助。遇到的问题:我在使用Jlink V8调试FL2440时,setpc 0命令执行时,总是显示“CPU is not halted !”SEGGER J-Link Commander V4.08l ('?' for help)Compiled Sep 1原创 2015-10-20 11:21:49 · 6843 阅读 · 2 评论 -
U-Boot的加载地址分析
我们通过board/smdk2410/config.mk来分析运行时的内存分布情况board/smdk2410/config.mk: ## SMDK2410 has 1 bank of 64 MB DRAM## 3000'0000 to 3400'0000## Linux-Kernel is expected to be at 3000转载 2015-11-03 22:14:12 · 16127 阅读 · 0 评论 -
env_relocate 函数深入分析
void env_relocate (void) 2 { 3 /* 4 * We must allocate a buffer for the environment 5 */ 6 env_ptr = (env_t *)malloc (CFG_ENV_SIZE); 7 if (gd原创 2015-11-27 14:51:28 · 15581 阅读 · 0 评论 -
怎么修改kernel的加载地址和运行地址
编译U-boot时候会在U-boot/tools/生成一个mkimage的制作工具,用来生成uImage,把mkimage放在/usr/bin目录下这样 make uImage的时候就可以自动生成uImage修改地址方法如下:vi linux-3.4.2/arch/arm/mach-s3c24xx/Makefile.bootifeq ($(CONFIG_PM_H1940原创 2015-12-03 22:07:30 · 15810 阅读 · 0 评论 -
U-boot mkimage指定Linux内核地址时的两种方式
uImage的制作是使用的u-boot工具mkimage,build完u-boot后也会将mkimage build出來到/tools目录下,可以直接拿來用,它的作用就是在zImage的前面加上64个字节的头,让u-boot能够识别要加载内核的类型、加载地址等。基本格式:mkimage -n 'linux-3.4.2' -A arm -O linux -T kernel -C none -原创 2015-12-03 21:30:23 · 16147 阅读 · 0 评论 -
实现u-boot对yaffs/yaffs2文件系统下载的支持
affs2文件系统的移植主要涉及到u-boot对yaffs2文件系统的烧写支持、linux内核对yaffs2文件系统的支持,以及yaffs2文件系统的制作,现在我们按照从下到上的顺序来实现各部分的功能。本文重点参考黄刚的博文。1、实现u-boot对yaffs/yaffs2文件系统下载的支持。注意:这里对Nand的操作是基于MTD架构方式。通常一个Nnad Flash存储设备由若干块组成原创 2015-12-06 21:31:27 · 15792 阅读 · 0 评论 -
uboot中的快捷菜单的制作说明
新建一个名为:cmd_menu.c的文件,放到common目录下,修改同目录下的Makefile文件,加入编译选项:COBJS-$(CONFIG_CMD_MENU) += cmd_menu.o编写cmd_menu.c的内容:定义一个uboot cmd:U_BOOT_CMD( menu, 3, 0, do_menu, "menu - d原创 2015-11-25 19:30:18 · 17834 阅读 · 0 评论 -
U-boot中控制台命令
bdinfo @display board information nand info @display flash message nand read [Memory address] [flash address] [length]nand write [Memory address] [flash address] [length]nnad era原创 2015-11-28 21:59:59 · 17094 阅读 · 0 评论