• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

Efronc

  • 博客园
  • 联系
  • 管理

公告

随笔分类 -  u-boot

u-boot_smdkv210 分析七:Makefile详解
摘要:2.1U-Boot Makefile分析2.1.1U-Boot编译命令对于mini2440开发板,编译U-Boot需要执行如下的命令:$makemini2440_config$makeall使用上面的命令编译U-Boot,编译生成的所有文件都保存在源代码目录中。为了保持源代码目录的干净,可以使用如下命令将编译生成的文件输出到一个外部目录,而不是在源代码目录中,下面的2种方法都将编译生成的文件输出到/tmp/build目录:$exportBUILD_DIR=/tmp/build$makemini2440_config$makeall或$makeO=/tmp/buildmini2440_confi 阅读全文

posted @ 2012-03-02 20:09 Efronc 阅读(2688) 评论(0) 推荐(2)

u-boot_smdkv210 分析六:内存分配
摘要:1.内存分配图(引用网络图片)2.u-boot映像的地址0并非指物理地址0,由不同的启动方式映射到不同的地址。例如v210是映射到0xD0000000处的irom。3.TEXT_BASE等指向SDRAM的地址均为虚拟地址。4.TEXT_BASE为顶层Makefile中定义的,例如三星官方BSP中定义的是0xC3E00000,它是程序实际的链接首地址。5.SDRAM_BASE被MMU映射在0xC0000000。6._end和__bss_start为链接脚本文件中最后定义的bss段,在链接时确定,并与u-boot映像编译在一起。7.在bl1段运行时,u-boot映像被复制到TEXT_BASE开始的 阅读全文

posted @ 2012-03-01 21:21 Efronc 阅读(3110) 评论(0) 推荐(1)

u-boot_smdkv210 分析五:硬件启动过程
摘要:1.上电启动位于地址空间0xD0000000的是irom和iram。由于地址0为Mirrored region depending on the boot mode. 所以启动后直接进入0xD0000000运行。irom中存储的是三星固化的一段64k的启动代码,这段代码又称bl0,完成基本的初始化后读取启动选取引脚设置,将相应存储器的8k的bl1段代码复制到iram中并运行。2.运行bl1bl1为用户编写的启动代码。此处使用u-boot,即u-boot的最开始运行的启动代码。这段代码位于u-boot的开始,完成clk、dram、nand、MMU、串口等基本的初始化,并将完整的u-boot复制到 阅读全文

posted @ 2012-03-01 20:08 Efronc 阅读(1552) 评论(0) 推荐(1)

u-boot_smdkv210 分析四:启动代码汇编部分总结
摘要:1.进入管理模式2.禁用cache3.清空cache4.使能cache5.禁止TLB6.禁止指令cache7.禁止MMU和cache8.读取启动信息9.将启动信息分析后写入reg中10.进入lowlevel.s11.读取复位标志,如果是唤醒跳过硬件初始化12.关闭看门狗13.配置sram引脚14.配置PMIC引脚15.判断是否在ram中运行,是的话跳过16-1816.PMIC初始化17.系统时钟初始化18.dram控制器初始化cpu_init.s19.串口汇编初始化,打印'O'20.取消存储保护区域21.onenand初始化22.nand初始化23.关闭ABB24.打印' 阅读全文

posted @ 2012-03-01 19:12 Efronc 阅读(1318) 评论(0) 推荐(2)

u-boot_smdkv210 分析三:启动代码lowlevel.s分析
摘要:_TEXT_BASE:.wordTEXT_BASE.globl lowlevel_initlowlevel_init:push{lr} 1.lr入栈/* check reset status */ldrr0, =(ELFIN_CLOCK_POWER_BASE+RST_STAT_OFFSET) 2.读取复位标志,如果是睡眠唤醒,跳过接下来的初始化ldrr1, [r0]bicr1, r1, #0xfff6ffffcmpr1, #0x10000beqwakeup_reset_precmpr1, #0x80000beqwakeup_reset_from_didle/* IO Retention rel 阅读全文

posted @ 2012-02-29 21:27 Efronc 阅读(4163) 评论(0) 推荐(1)

u-boot_smdkv210 分析二:启动代码start.s分析
摘要:1.链接文件. = 0x00000000;. = ALIGN(4);.text :{ cpu/s5pc11x/start.o (.text) cpu/s5pc11x/s5pc110/cpu_init.o (.text)又链接文件可知,首先启动的是start.o,现在从start.s开始分析。2.启动阶段u-boot的启动分为两个阶段:stage1: 系统上电后执行的汇编代码,完成系统初始化、代码搬移等操作。stage2:搭建c环境,进入c语言执行。3.start.s#if defined(CONFIG_EVT1) && !defined(CONFIG_FUSED) 阶段启动相关 阅读全文

posted @ 2012-02-28 22:50 Efronc 阅读(7235) 评论(1) 推荐(1)

u-boot_smdkv210 分析一:源码目录结构
摘要:1.board本目录存放与已有开发板相关的文件。每种开发板有一个子目录,子目录仅存放与开发板相关的c文件和配置文件,不包含开发板CPU架构通用的实现文件。每个目录下有如下文件(以samsung\smdkc110为例):Makefileconfig.mksmdkc110.c 和板子相关的代码flash.c Flash操作代码u-boot.lds 全局链接文件2.common实现u-boot命令行下支持的命令,每一条命令对应一个文件。例如bootm命令对应的是cmd_bootm.c。3.cpu与CPU架构相关目录,每一款支持的CPU或架构均在一个子目录下。每个目录下有如下文件(以s5pc11x为例 阅读全文

posted @ 2012-02-28 21:22 Efronc 阅读(2220) 评论(0) 推荐(0)

sd_fusing总结
摘要:1.No MBR错误如果提示如下错误: Error: No MBR is found at SD/MMC. Hint: use fdisk command to make partitions. 则先执行指令"fdisk -c 0",执行过程如下: SMDKV210 # fdisk -c 0 fdisk is completed 阅读全文

posted @ 2012-02-27 23:34 Efronc 阅读(1515) 评论(0) 推荐(0)

 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3