1,在完成上一节的memory初始化后,接下来在arch/arm/cpu/armv7/start.S的160行:如下图

2,跳转到arch/arm/lib/board.c下的board_init_f函数,如下图:

3,在285行的memset函数,此函数地址在0x3481c8c4,属于在BL2的地址范围。而_start地址在:0x34800000,很明显memset函数超出了BL1的16K的大小范围。

所以必需把BL2搬到DDR中,并且本身跳到DDR中执行BL2中的代码。

4,BL2移到内存中的代码,在光盘裸机代码的src下sdram中,删除了跳转,代码如下

 /*************************************************************************
> File Name: mem_relocate.c
> Author:
> Mail:
> Created Time: Thu 20 Jul 2017 02:42:15 PM CST
>将SD卡中的U-BOOT搬到SDDRAM中
************************************************************************/ typedef unsigned int (*copy_sd_mmc_to_mem) (unsigned int channel, unsigned int start_block, unsigned char block_size, unsigned int *trg, unsigned int init); void copy_code_to_dram(void)
{
unsigned long ch;
unsigned long dest = 0x34800000;
unsigned int sec_no = ; unsigned int ret; ch = *(volatile unsigned int *)(0xD0037488); copy_sd_mmc_to_mem copy_bl2 = (copy_sd_mmc_to_mem) (*(unsigned int *) (0xD0037F98)); if(ch == 0xEB000000)
{
//0:channel 0
//49:源,代码位于扇区49,1 sector = 512 bytes
//dest:目的链接地址0x34800000,
ret = copy_bl2(,sec_no, ,(unsigned int *)dest,);
ret = copy_bl2(,sec_no + ,,(unsigned int *)(dest + 0x10000),);
ret = copy_bl2(,sec_no + ,,(unsigned int *)(dest + 0x20000),);
}
}

5,将上面代码mem_relocate.c放在board/samsung/goni/下.

6,在board/samsung/goni/Makefile中添加上mem_relocate.o。如下图:

7,在board/samsung/goni/lowlevel_init.S文件,在bl internal_ram_init下一行,添加bl copy_code_to_dram

执行内存初始化后直接将BL2搬到内存中.如图:

8,将irom中运行中的BL1跳到DDR中运行,在arch/arm/cpu/armv7/start.S改动如下:注掉bl bl board_init_f

9,修改inculd/configs/s5p_goni.h相关的配置文件

a,

b,

c,

10,make一下,生成如下错误:

11,修改board/samsung/goni/goni.c。如下图:

12,接下来再make一下,生成新的u-boot.bin

第五章之S5PV210将u-boot.bin从SD卡中搬到DDR中的更多相关文章

  1. 用 S5PV210 学习 Linux (三) SD卡下载

    学习地址:http://edu.51cto.com/lesson/id-63015.html http://blog.csdn.net/karven_/article/details/52015325 ...

  2. 《Android群英传》读书笔记 (2) 第三章 控件架构与自定义控件详解 + 第四章 ListView使用技巧 + 第五章 Scroll分析

    第三章 Android控件架构与自定义控件详解 1.Android控件架构下图是UI界面架构图,每个Activity都有一个Window对象,通常是由PhoneWindow类来实现的.PhoneWin ...

  3. 【Android】14.0 第14章 内部存储与外部SD卡存储—本章示例主界面

    分类:C#.Android.VS2015: 创建日期:2016-02-27 一.简介 Android使用的文件系统是基于Linux的文件系统,在Android应用程序中,开发人员既可以建立和访问程序自 ...

  4. Android深度探索--HAL与驱动开发----第五章读书笔记

    第五章主要学习了搭建S3C6410开发板的测试环境.首先要了解到S3C6410是一款低功耗.高性价比的RISC处理器它是基于ARMI1内核,广泛应用于移动电话和通用处理等领域. 开发板从技术上说与我们 ...

  5. 统计学习导论:基于R应用——第五章习题

    第五章习题 1. 我们主要用到下面三个公式: 根据上述公式,我们将式子化简为 对求导即可得到得到公式5-6. 2. (a) 1 - 1/n (b) 自助法是有有放回的,所以第二个的概率还是1 - 1/ ...

  6. 《Linux命令行与shell脚本编程大全》 第十五章 学习笔记

    第十五章:控制脚本 处理信号 重温Linux信号 信号 名称 描述 1 HUP 挂起 2 INT 中断 3 QUIT 结束运行 9 KILL 无条件终止 11 SEGV 段错误 15 TERM 尽可能 ...

  7. 第五章、 Linux 常用網路指令

    http://linux.vbird.org/linux_server/0140networkcommand.php     第五章. Linux 常用網路指令 切換解析度為 800x600 最近更新 ...

  8. 第十五章 LVM管理和ssm存储管理器使用 随堂笔记

    第十五章 LVM管理和ssm存储管理器使用 本节所讲内容: 15.1 LVM的工作原理 15.2 创建LVM的基本步骤 15.3 实战-使用SSM工具为公司的邮件服务器创建可动态扩容的存储池 LVM的 ...

  9. 《Django By Example》第五章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者@ucag注:大家好,我是新来的翻译, ...

随机推荐

  1. tcp_wrapper 总结

    一. 简介 tcp_wrapper:tcp包装器, 工作于库中的. 访问控制 工具/组件 : 传输层 和 接近于应用层; 仅对使用tcp协议且在开发时调用了libwrap相关的服务程序有效. 二. 判 ...

  2. webpack3新特性介绍

    6月20号webpack推出了3.0版本,官方也发布了公告.根据公告介绍,webpack团队将未来版本的改动聚焦在社区提出的功能需求,同时将保持一个快速.稳定的发布节奏.本文主要依据公告内容,简单介绍 ...

  3. POJ 1459-Power Network(网络流-最大流-ISAP)C++

    Power Network 时间限制: 1 Sec  内存限制: 128 MB 题目描述 A power network consists of nodes (power stations, cons ...

  4. 手动整合实现SSH项目开发01

    内容简介:本文主要介绍SSH项目开发的配置以及简单登录功能的实现. 1. 新建一个Dynamic Web Project. 2.导入需要 的Jar包,此项目是Struts.Hibernate.Spri ...

  5. Redis客户端管理工具的安装及使用

    1.下载及安装 请到官网下载:www.treesoft.cn,要最新的版本treeNMS, window系统下载直接解压,就可以用了,免安装,免布署. 2.登录及连接参数配置 登录后,要配置连接参数信 ...

  6. PHP设计模式:工厂方法

    示例代码详见https://github.com/52fhy/design_patterns 工厂方法 工厂方法是针对每一种产品提供一个工厂类.通过不同的工厂实例来创建不同的产品实例. 相比简单工厂, ...

  7. PHP中小小的header函数

    不废话,直接说功能 1.重定向,语法: header("location:http://www.lemon-x.ga"); file_put_contents("./te ...

  8. html5小游戏基础知识

    显示一个DIV和隐藏一个DIV 首先,我们要显示一个DIV和隐藏一个DIV需要使用css里面使用: .hide{ display:none;} .show{display:block;} 在需要显示或 ...

  9. XManager与SecureCRT

    使用Xmanager前,服务器必须已经安装好X11所需的各种运行包.运行下列命名检查安装情况,没有的话请自行补上. rpm -qa|grep x11 1.DISPLAY环境变量 export DISP ...

  10. PhpStorm配置PHP解释器(wampServer版)

    PHPStorm(以下简称为PS)和wampServer集成环境安装简单,不再赘述. 本人使用PhpStrom版本为2017.1.4版本. PS刚开始使用会使用自带服务器,但是有几率不能自动匹配到PH ...