linux2.6.32在mini2440上的移植

1. 参考SMDK2440加入自己的开发版平台MINI2440

2. 修改时钟源频率12000000(晶振)

3. 移植NAND FLASH驱动

Linux2.6.32已经自带了大部分NAND驱动

但是系统默认的分区不是我们所需的,所以要自已修改,除此之外,还有 Nand Flash

的结构信息(bootload, parm,kernel, root文件系统的offset size)需要增加填写,以便能够适合系统自带的Nand Flash 驱动接口

 

static struct mtd_partition friendly_arm_default_nand_part[] = {
 [0] = {
  .name = "supervivi",
  .size = 0x00040000,
  .offset = 0,
 },
 [1] = {
  .name = "param",
  .offset = 0x00040000,
  .size = 0x00020000,
 },
 [2] = {
  .name = "Kernel",
  .offset = 0x00060000,
  .size = 0x00500000,
 },
 [3] = {
  .name = "root",
  .offset = 0x00560000,
  .size = 1024 * 1024 * 1024, //
 },
 [4] = {
  .name = "nand",
  .offset = 0x00000000,
  .size = 1024 * 1024 * 1024, //
 }
};

Bootload /dev/mtdblock0

Parameter /dev/mtdblock1

;这里是开发板的nand flash 设置表,因为板子上只有一片,因此也就只有一个表

static struct s3c2410_nand_set mini2440_nand_sets[] = {

[0] = {

.name = "NAND",

.nr_chips = 1,

.nr_partitions = ARRAY_SIZE(mini2440_default_nand_part),

.partitions = mini2440_default_nand_part,

},

};

;这里是nand flash 本身的一些特性,一般需要对照datasheet 填写,大部分情况下按照以下参数填写即可

NFCONF 0x4E000000 R/W NAND flash configuration register 0x0000100X

TACLS:表示CLT/ALE的建立时间(setup time)。

TWRPH0:表示nWE/nRE持续的时间。

TWRPH1:表示写进去的数据起作用的时间(hold time)。

static struct s3c2410_platform_nand mini2440_nand_info = {

.tacls = 20, // 配置时序图HCLK周期

.twrph0 = 60,

.twrph1 = 20,

.nr_sets = ARRAY_SIZE(mini2440_nand_sets),

.sets = mini2440_nand_sets,

.ignore_unset_ecc = 1,

};

添加到平台设备中,注册为平台设备驱动。

对NAND flash驱动的移植可以参考

可以参考:

http://blog.163.com/starjj_embeded/blog/static/20450005120122170425898/

http://blog.csdn.net/it_114/article/details/6259649

3.移植yaffs2使用git工具下载并为内核打上yaffs2补丁。配置内核配置选项,添加yaffs2的支持。烧些到开发版并测试。

 

你可能感兴趣的:(linux,移植,mini2440)