
bootloader
newnewman80
这个作者很懒,什么都没留下…
展开
-
bootloader分析
bootloader分析一、U-BOOT的目录结构u-boot目录下有18个子目录,分别存放管理不通的源程序。这些目录中所要存放的文件有其规则,可以分成三类。第一类目录与处理器体系结构或者开发板硬件直接相关;第二类目录是一些通用的函数或者驱动程序;第三类目录是u-boot的应用程序、工具或者文档。Board:和一些已有开发板相关的文件,比如Makefile和u-boot转载 2011-10-08 09:30:55 · 916 阅读 · 0 评论 -
uboot 设置启动参数
配置uboot并运行Linux(tftp 和NFS 服务的使用)在开发调试中建议使用tftp服务下载内核和NFS启动文件系统,这样方便调试1)配置板子的 IP 地址:> setenv ipaddr 192.168.2.44 2) 配置板子的 Linux 服务器地址:> setenv serverip 192.168.2.202 3) 配置启动参数,设置为从 NFS转载 2012-11-30 10:58:51 · 2613 阅读 · 0 评论 -
.balignl 指令解释
最近在分析u-boot的源代码,看到这一行:.balignl 16,0xdeadbeef不理解了,不知道为什么要这样写,0xdeadbeef,明显是个单词组,写在这里有何意义呢?然后在查阅了众多资料的时候才晃然大悟。下面我一步步来说明:首先要弄明白.balignl的意思,这个其实应该算是一个伪操作符,伪操作符的意思就是机器码里,并没有一个汇编指令与其对应,是编译器来实现其功能的。.转载 2013-08-19 13:43:34 · 976 阅读 · 0 评论 -
UBOOT 内存映射以及修改问题
重点分析s3c2410复位后的内存映射,及其应用。一、基本配置 EDUKIT-III采用核心子板加扩展板的设计方式,我学习ARM9,所以采用s3c2410的核心子板。核心子板资源如下: MCU : S3C2410A SDRAM : 两片HY57V561620CT-H NOR FLASH: AM29LV160DB-90EC转载 2013-08-19 10:09:53 · 8197 阅读 · 0 评论 -
u-boot 在start.S 中设置与初始化时钟频率的解析
本文主要针对S3C2440分析 S3C2440的主时钟源来自外部晶振(XTIPLL)或外部时钟(EXTCLK)。S3C2440有两个PLL(phase locked loop)一个是MPLL,一个是UPLL。MPLL用于CPU及其他外围器件,UPLL用于USB。 1,MPLL, 用于产生FCLK, HCLK, PCLK三种频率, 这三种频率分别有不同的用途: FC转载 2013-08-12 11:04:11 · 2651 阅读 · 0 评论 -
UBOOT start.S 关于S3C2440时钟设置的理解
S3C240 CPU默认的工作主频为12MHz,使用PLL电路可以产生更高的主频供CPU及外围器件使用S3C2240有两个PLL:MPLL和UPLL,UPLL专用与USB设备。MPLL用于CPU及其他外围器件。通过MPLL会产生三个部分的时钟频率:FCLK、HCLK、PLCK。FCLK用于CPU核,HCLK用于AHB总线的设备(比如SDRAM),PCLK用于APB总线的设备(比如UART)转载 2013-08-12 13:56:52 · 2301 阅读 · 0 评论 -
mrc协处理器命令
mrc是协处理器命令。用于读取协处理器中的寄存器的数据到ARM处理器的寄存器里面。mrc p15,0,r0,c1,c0,0这句话的意思应该是读协处理器中的寄存器数据到ARM处理器的r0里面。应该是ARM访问MMU,一般cp15就是MMU。{cond} p#,,Rd,cn,cm{,}MRC 从协处理器移到ARM7寄存器(L=1)MCR 从ARM7寄存器移到协处理器(L=0){co转载 2013-08-12 15:14:28 · 951 阅读 · 0 评论 -
ARM926EJ-S/ARM920T 协处理器 CP14, CP15 详解
arm 协处理器 cp14 cp15 ARM926EJ-S/ARM920T 协处理器 CP14, CP15 详解 ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令。ARM 的协处理器指令主要用于 ARM 处理器初始化 ARM 协处理器的数据处理操作转载 2013-08-12 15:21:54 · 2331 阅读 · 0 评论 -
uboot 入口分析1
1 。u-boot程序的入口地址问题 要理解程序的入口地址,自然想到的是连接文件,首先看看开发板相对于某个开发板的连接文件"/board/你的开发板/u-boot.lds",看一个2410的例子:ENTRY(_start)SECTIONS{ . = 0x00000000; . = ALIGN(4); .text转载 2013-08-13 15:01:12 · 1166 阅读 · 0 评论 -
uboot 移植 sdram 频率修改问题
(1)修改BWSCON,mini2440 BANK0接NOR Flash,BANK4接DM9000,BANK6接RAM,对于mini2440,只要修改B4_BWSCON即可:#define B3_BWSCON (DW16 + WAIT + UBLB) //#define B4_BWSCON (DW16) #define B4_BWSCON (DW16 + WAI转载 2013-08-13 15:55:25 · 1835 阅读 · 0 评论 -
lowlevel_init.S 分析
在我迷迷糊学看了lowlevel_init.S中的代码之后,有一个感觉就是,要想读懂其中的代码首先得看一下你所用的芯片手册,因为里面有比较详细的存储器控制(MemoryController)描述。我用的是s3c2440手册里写得十分清楚,总共有8个块(Banks)(Bank0~Bank7),每个块对应着不同的控制与地址线,其实这些Bank很大一部分是对应着的控制寄存器的地址,这个要看实际的芯片与板转载 2013-08-13 16:05:57 · 701 阅读 · 0 评论 -
uboot norflash 驱动移植
无意中想起前一段时间在优酷上放了个关于mdk调试ro base的设置,上去优酷"巡查"了一翻.看到竟然有一个评价心里乐滋滋的总算有一个同学给于我肯定!so昨天写 mirco2440移植u-boot-1.1.6 (一)写到一点也觉得没啥所谓了...因为我得到肯定! 费话小说,这个教程目的也很明确:让我们的uboot识别出Nor Flash(mirco 2440上的Nor Fl转载 2013-08-14 16:14:57 · 1604 阅读 · 0 评论 -
S3C2440的NAND启动
在分析启动代码之前先看一下S3C2440的NAND启动:在配置NAND启动模式之后,S3C2440上电会先将NAND中的0x0 - 0x1000共4096字节的数据拷贝到位于Bank0中的Boot Internal SRAM上Bank0如下图:可以看出Boot Internal SRAM为4KB大小,也正是因为Boot Internal SRAM只有4KB大小,所以只能从N转载 2013-08-14 13:25:31 · 898 阅读 · 0 评论 -
uboot第二阶段详细分析
start_armboot cpu_init //初始化IRQ/FIQ模式的栈 board_init /* 设置时钟 */ clk_power->MPLLCON = ((M_MDIV 设置IO管脚 gd->bd->bi_arc转载 2013-08-14 14:28:03 · 1208 阅读 · 0 评论 -
u-boot:从NOR FLASH启动并支持NAND FLASH读写的移植
需要准备的有:TQ2440目标板,ELDK-5.1编译器,u-boot-2011.061.我的 u-boot-2011.06.tar.bz2 放在共享文件夹中,工作目录在 /home/huwei/uboot/ 下,因此解压到这个文件夹:tar jxvf u-boot-2011.06.tar.bz2 /home/huwei/uboot/ ;2.接下来搭建针对硬件的 u-boot 框架,进入转载 2013-08-14 16:36:22 · 4545 阅读 · 1 评论 -
在U-boot下实现自动识别启动Flash的原理
有网友给我一个建议,是否可以同时支持64MB的flash和128MB的flash,我想了一下觉得可行,再想一下觉得还可以实现自动识别Nor boot 还是 Nand boot。 所以在移植u-boot-2009.08的时候,我决定实现这两个功能。其实实现这两个功能是只需要修改start.S文件和nand_read.c文件即可,关键在于检测手段,以下分别介绍我在u-boot-2009.08中实现转载 2013-08-15 16:36:25 · 1270 阅读 · 0 评论 -
uboot参数区中的bootargs如何传给内核
uboot参数区中的bootargs如何传给内核呢?平台:STi7162uboot版本:uboot 1.3.1(st已做过修改) st平台的内存首地址是0x80000000,此地址不是固定的,不同类型的芯片是不同的,比如samsung的arm920t是0x30000000。uboot提供两种工作模式:一是启动加载模式(start loading),一是下载模式(do转载 2013-07-15 09:27:45 · 1571 阅读 · 0 评论 -
移植过程问题总结
移植内核:2.6.30.4内核根目录下的.config为当前配置内核的且已经配置好的内核配置。make zImage以此为依据配置内核的过程:cd linux-2.6.30.4(进入Linux根目录)cp arch/arm/configs/s3c2410_defconfig /linux-2.6.30.4(作为配置参考,考到根目录下)mv s3c2410_defconfig .转载 2012-11-30 14:21:24 · 6653 阅读 · 0 评论 -
自己动手编写嵌入式Bootloader---基本功能流程
【IT168 技术文档】CPU上电后会从IO空间的某地址取第一条指令。但此时:PLL没有启动,CPU工作频率为外部输入晶振频率,非常低;CPU工作模式、中断设置等不确定;存储空间的各个BANK(包括内存)都没有驱动,内存不能使用。在这种情况下必须在第一条指令处做一些初始化工作,这段初始化程序与操作系统独立分开,称之为bootloader。 实际上,很少有必要自己写一个Bootloader,因转载 2011-10-28 13:32:32 · 1356 阅读 · 0 评论 -
基于mips架构的uboot 启动流程 (2)
对于计算机系统来说,从开机上电到操作系统启动需要一个引导过程,这个引导程序就叫作 Bootloader 。 Bootloader 是在操作系统运行之前执行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。 对于嵌入式系统, Bootloader 是基于特定硬件平台来实现的。因此,几乎不转载 2011-11-17 16:33:31 · 7343 阅读 · 0 评论 -
基于mips架构的uboot启动流程(4)
1. 引言文章是2年前移植u-boot时候分析的,u-boot方面文章比较多,但是mips方面的稍微少一点,因此贴上来就当资料搜集贴吧.1.1. 参考资料詹荣开 原作者未考证 2. 需求分析Bootloader 在嵌入式系统中一般起硬件初始化和内核引导的作用,在产品中使用的Bootloader只要保证基本的功能和引导速度即可, 而作为开发使用的B转载 2011-11-17 16:43:48 · 4051 阅读 · 1 评论 -
基于mips架构的uboot 启动流程 (1)
流程分析***************************************************1.最开始系统上电后ENTRY(_start)程序入口点是 _start board/mingddie/u-boot.lds2._start: cpu/mips/start.S3. la t9, board_init_f 将函数board_init_f地址赋予t9j转载 2011-11-17 16:31:16 · 9582 阅读 · 0 评论 -
基于mips架构的uboot启动流程(3)
要注意mips具有流水线可见性,所以跟在跳转指令后的下一条指令,在执行跳转到的地方前,都会执行,这个叫分支延迟。但是编译器会隐藏该特性,但可以通过设置”.set noreorder”来禁止编译器重新组织代码顺序。每个板子都有自己的lds文件。这个主要是用来说明编译生成的指令,及运行过程中用到的数据放置的位置。这个可以参考ld的手册。比如board/dbau1x00/u-boot.lds。O转载 2011-11-17 16:35:48 · 3851 阅读 · 1 评论 -
Bootloader 启动流程 和 概念 介绍
Bootloader 启动流程 和 概念 介绍1.概念简单地说,Bootloader 就是在操作系统内核运行之前运行的一段程序,它类似于 PC机中的 BIOS 程序。通过这段程序,可以完成硬件设备的初始化,并建立内存空间的映射图的功能,从而将系统的软硬件环境带到一个合适的状态,为最终调用系统内核做好准备。 通常,Bootloader 是严重地依赖于硬件实现的,特别是在嵌入式中。因此,在嵌入转载 2012-04-01 11:57:06 · 1965 阅读 · 0 评论 -
内核启动参数祥解
Linux内核在启动的时候,能接收某些命令行选项或启动时参数。当内核不能识别某些硬件进而不能设置硬件参数或者为了避免内核更改某些参数的值,可以通过这种方式手动将这些参数传递给内核。 如果不使用启动管理器,比如直接从BIOS或者把内核文件用“cp zImage /dev/fd0”等方法直接从设备启动,就不能给内核传递参数或选项--这也许是我们使用引导管理器比如LILO的好处之一吧。转载 2012-04-01 12:22:33 · 892 阅读 · 0 评论 -
mini2440 uboot201103 系统移植
移植过程主要是根据网上一名为csuwzc的高手提供的方法进行的,他不仅提供了方法,还把移植好的u-boot 2011.03放在网上供人下载,真是要感谢他了。移植过程基本顺利。不过还是有一些问题,我将这此记录下来,以供参考。准备: 说是容易,做起来却挺难。因为编译u-boot要在linux环境下,而不能在我们平时所熟悉的ads下那么直观。首先要建立好交叉编译环境,这个交叉编转载 2012-09-18 10:09:57 · 4784 阅读 · 1 评论 -
uboot搬移部分和重定位部分的代码分析
来看一下搬移部分和重定位部分的代码:relocate: /*把U-BOOT重新定位到RAM*/ //r0=0;adr r0, _start /* r0是代码的当前位置*/ldr r1, _TEXT_BASE /*测试判断是从FLASH启动,还是RAM *///r1=TEXT_BASE = 0x33F80000cmp r0, r1转载 2012-10-10 09:54:30 · 3579 阅读 · 0 评论 -
uboot第一阶段详细分析
uboot第一阶段详细分析作者:程姚根uboot的第一阶段设计的非常巧妙,几乎都是用汇编语言实现的,下面我们一起来看看它的精妙之处吧!首先我们来看一下它的链接脚本,通过它我们可以知道它整个程序的各个段是怎么存放的。OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") OUTPU转载 2012-10-10 09:52:35 · 1455 阅读 · 0 评论 -
内核停顿于“Sending DHCP requests”
解决:在uboot的bootarg参数里设置静态IP地址,配合UBOOT环境变量设置:setenv ethaddr setenv ipaddr setenv serverip setenv netmask setenv gatewayip等等。bootargs=noinitrd root=/dev/nfs rw nfsroot=192.168.1.88:/home/nfs/r原创 2012-10-31 18:50:30 · 3917 阅读 · 0 评论 -
mkimage使用详解
mkimage使用详解uboot源代码的tools/目录下有mkimage工具,这个工具可以用来制作不压缩或者压缩的多种可启动映象文件。 mkimage在制作映象文件的时候,是在原来的可执行映象文件的前面加上一个0x40字节的头,记录参数所指定的信息,这样uboot才能识别这个映象是针对哪个CPU体系结构的,哪个OS的,哪种类型,加载内存中的哪个位置, 入口点在内存的那个位置以及映象名是什转载 2012-11-06 09:35:46 · 685 阅读 · 0 评论 -
Uncompressing Linux..... done, booting the kernel.
内核启动卡在Uncompressing Linux..... done, booting the kernel.这好像是个老生常谈的问题了。成因在网上也罗列了很多种,可这次我碰到的,却没百度出解决方法,纠结了我很久才解决。我先把造成Uncompressing Linux..... done, booting the kernel.的常见的几种可能再罗列一下1、机器码不匹配解决方法:在配转载 2012-11-09 14:36:27 · 689 阅读 · 0 评论 -
什么是OPTEE-OS
1. 为什么会出现这种技术?为了安全,例如:保护指纹虹膜的生物特征数据2. 为了确保数据安全各家公司都做了些什么?Arm公司提出的了trustzone技术,用一根安全总线(称为NS位)来判断当前处于secure world还是non-secure world状态,状态的切换由ATF(arm trusted firmware)来完成3. 有哪些Normal world osLin...转载 2019-05-10 14:36:08 · 764 阅读 · 0 评论