博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
配置DDR大小
阅读量:3897 次
发布时间:2019-05-23

本文共 1055 字,大约阅读时间需要 3 分钟。

1. 背景

        通常一套代码会跑在不同档次的板子上,比如中档板子和低档板子的区别可能就是DDR大小不同,那么这个时候适配两个板子就只需要把DDR 初始化时的大小改一下就可以了,当然了,前提是使用同一类型的DDR,只是大小不一样而已。

2. 分析

        在uboot 启动过程中会遍历执行 init_sequence_f[]数组中的函数指针来初始化硬件,其中就包括DDR的初始化函数指针dram_init。对uboot启动流程不清楚的兄弟可以看我的博客。

static init_fnc_t init_sequence_f[] = {#ifdef CONFIG_SANDBOX	setup_ram_buf,#endif	setup_mon_len,	setup_fdt,	trace_early_init,#if defined(CONFIG_MPC85xx) || defined(CONFIG_MPC86xx)	/* TODO: can this go into arch_cpu_init()? */	probecpu,#endif	arch_cpu_init,		/* basic arch cpu dependent setup */#ifdef CONFIG_X86	cpu_init_f,		/* TODO(sjg@chromium.org): remove */# ifdef CONFIG_OF_CONTROL	find_fdt,		/* TODO(sjg@chromium.org): remove */# endif······                    /* 此处省略500字··· */------------------------------------------------------------------#ifdef CONFIG_ARM	dram_init,		/* configure available RAM banks */#endif------------------------------------------------------------------#ifdef CONFIG_PPC	init_func_ram,#endif#ifdef CONFIG_POST	post_init_f,#endif	NULL,};

        在dram_init()函数中会对dram的大小进行设置,因为该函数所在文件并未声明为GNU许可证下,所以源码就不贴了!!!

转载地址:http://yeuen.baihongyu.com/

你可能感兴趣的文章
深入理解HTTP Session
查看>>
理解TCP中的三次握手
查看>>
linux session 浅谈
查看>>
Session
查看>>
Emacs 中文学习手册-1
查看>>
Emacs学习笔记(1):初学者的学习计划
查看>>
Emacs学习笔记(13):在Emacs中打开pdf
查看>>
Emacs学习笔记(14):在Emacs中使用git
查看>>
Emacs for vim Users---from http://www.crazyshell.org/blog/
查看>>
静态库和动态库链接那些事--http://www.crazyshell.org/blog/?p=50
查看>>
使用samba实现linux,windows间文件共享
查看>>
多线程调试必杀技 - GDB的non-stop模式
查看>>
一年成为Emacs高手(像神一样使用编辑器) .--http://blog.csdn.net/redguardtoo/article/details/7222501
查看>>
GNU make 指南
查看>>
配置 vim
查看>>
CentOS6.3 minimal SSH中文显示
查看>>
centos 安装emacs24
查看>>
【转】结构体中Char a[0]用法——柔性数组
查看>>
结构体最后定义一个char p[0];这样的成员有何意义(转)
查看>>
一步一学Linux与Windows 共享文件Samba (v0.2b)
查看>>