6410平台上配置linux的DDR参数
前段时间为了解决一个从128M升级到256M的DDR问题,搞的是焦头烂额。最后在别人讨论的情况下终于试出来了正确结果,下来还得自己总结下。
自己的硬件平台才采用的是6410的DMC1即32位的DRAM控制器,两个16位128M的DDR的地址线是共在一起连在6410的16根地址线上,数据线是并在一起成32位连在6410上,其它控制脚对应接上。软件之前写入128M运行OK,改成256M出现页面分配错误导致fatal error而死机。最后发觉是少改了一个地方。综合起来有以下三个地方要确认:
1,UBOOT中的smdk6410.h
#define MEMORY_BASE_ADDRESS 0x50000000
....
#define CONFIG_NR_DRAM_BANKS 1 /* we have 2 bank of DRAM *///rico 1016
#define PHYS_SDRAM_1 MEMORY_BASE_ADDRESS /* SDRAM Bank #1 */
#define PHYS_SDRAM_1_SIZE 0x10000000 /* 256MB *///rico for DDR size
首先只用了DMC1一个BANK,其次SDRAM的大小要改成256M。
2,UBOOT中的smdk6410.h
#define DMC1_MEM_CFG ((1<<30)+(0<<21)+(0<<18)+(2<<15)+(0<<14)+(0<<13)+(0<<7)+(0<<6)+(3<<3)+(2<<0))
#define DMC1_MEM_CFG2 ((1<<11)+(3<<8)+(1<<6)+(0<<4)+(0<<2)+(1<<0))
#define DMC1_CHIP0_CFG ((1<<16)+(0x50<<8)+(0xF0<<0))
#define DMC_DDR_32_CFG 0x0
DDR的时序参数照规格书确认即可。此处说明的是DDR初始化时要写入DDR控制器的几个寄存器参数,包括位宽,片选要求等等。我之前导致死机的错误在于片选有错误,所以改成256M后导致页面地址寻址错误。
3,Kernel中的.config
可以用vi .config进入。保证CONFIG_SMDK6410_RAMSIZE_256M打开,替换掉CONFIG_SMDK6410_RAMSIZE_128M即可。体现在arch\arm\mach-s3c6400\include\mach\Memory.h:
#ifdef CONFIG_SMDK6410_RAMSIZE_256M
#define PHYS_SIZE (256 * 1024 * 1024)
#else
#define PHYS_SIZE (128 * 1024 * 1024)
相关文档:
1 进程管理相关代码
1.1 thread_info结构,在文件<asm/thread_info.h>中定义
struct thread_info {
struct task_struct *task;
struct exec ......
1.在Linux启动脚本中制作jffs2
2.在Linux终端下制作jffs2
3.备注
1.在Linux启动脚本中制作jffs2
具体操作步骤:
sysinit中:
echo “Make jffs2 filesystem:”
erase /dev/mtd5
cd /tmp
echo “test” > test.txt
mkfs.jffs2 –d /tmp > /dev/mtdblock5
&nbs ......
连接上了服务器,检查一下。磁盘空间不够了
[java@localhost ~]$ df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/hda2 5.8G 5.8G 0M 100% /
/dev/hda1 99M 8.5M 86M 10% /boot
none 506M 0 506M 0% /dev/shm
/dev/hda6 20G 77M 19G 1% /tmp
/dev/hda5 20G 14G 5.2G 72% /usr/local
/dev/hd ......
点击菜单“虚拟机”--Install VMware Tools
在red hat桌面右击konsole
输入命令:cd/media
ls
要先双击VMware Tools再输入命令直到出现VMware Toolsi
再输入命令:cd VM*
&nb ......
一般在调试打印Debug信息的时候, 需要可变参数的宏. 从C99开始可以使编译器标准支持可变参数宏(variadic macros), 另外GCC也支持可变参数宏, 但是两种在细节上可能存在区别.
1. __VA_ARGS__
__VA_ARGS__ 将 "..." 传递给宏 . 如
......