Chinaunix首页 | 论坛 | 博客
  • 博客访问: 138001
  • 博文数量: 28
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 165
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-14 10:02
文章分类

全部博文(28)

文章存档

2014年(12)

2013年(16)

我的朋友

分类: 嵌入式

2014-07-09 14:58:50

本移植主要参考友善之臂移植手册完成,做个笔记以备不时之需
Linux-2.6.32 在Mini2440上的移植(二)
使用环境:fedora9
交叉编译工具链:arm-linux-gcc-4.4.3
内核源码来源:
内核存放目录:/opt/mymini2440/linux-2.6.32
说明:红色部分为代码修改部分

(1)在151行附近作如下修改(152-200为添加代码

  1. 149 .lpcsel = ((0xCE6) & ~7) | 1<<4,
  2. 150 };
  3. 151
  4. 152 static struct mtd_partition mini2440_default_nand_part[] = {
  5. 153 [0] = {
  6. 154 .name = "boot",
  7. 155 .size = 0x00040000,
  8. 156 .offset = 0,
  9. 157 },
  10. 158 [1] = {
  11. 159 .name = "param",
  12. 160 .offset = 0x00040000,
  13. 161 .size = 0x00020000,
  14. 162 },
  15. 163 [2] = {
  16. 164 .name = "Kernel",
  17. 165 .offset = 0x00060000,
  18. 166 .size = 0x00500000,
  19. 167 },
  20. 168 [3] = {
  21. 169 .name = "root",
  22. 170 .offset = 0x00560000,
  23. 171 .size = 1024 * 1024 * 1024, //
  24. 172 },
  25. 173 [4] = {
  26. 174 .name = "nand",
  27. 175 .offset = 0x00000000,
  28. 176 .size = 1024 * 1024 * 1024, //
  29. 177 }
  30. 178 };
  31. 179
  32. 180 static struct s3c2410_nand_set mini2440_nand_sets[] = {
  33. 181 [0] = {
  34. 182 .name = "NAND",
  35. 183 .nr_chips = 1,
  36. 184 .nr_partitions = ARRAY_SIZE(mini2440_default_nand_part),
  37. 185 .partitions = mini2440_default_nand_part,
  38. 186 },
  39. 187 };
  40. 188
  41. 189 /* choose a set of timings which should suit most 512Mbit
  42. 190 * * chips and beyond.
  43. 191 * */
  44. 192
  45. 193 static struct s3c2410_platform_nand mini2440_nand_info = {
  46. 194 .tacls = 20,
  47. 195 .twrph0 = 60,
  48. 196 .twrph1 = 20,
  49. 197 .nr_sets = ARRAY_SIZE(mini2440_nand_sets),
  50. 198 .sets = mini2440_nand_sets,
  51. 199 .ignore_unset_ecc = 1,
  52. 200 };

还需要把nand flash 设备注册到系统中208行附近

  1. 202 static struct platform_device *mini2440_devices[] __initdata = {
  2. 203 &s3c_device_usb,
  3. 204 &s3c_device_lcd,
  4. 205 &s3c_device_wdt,
  5. 206 &s3c_device_i2c0,
  6. 207 &s3c_device_iis,
  7. 208 &s3c_device_nand,
  8. 209 };
在50行附近加入头文件

  1. 48 #include <plat/common-smdk.h>
  2. 49
  3. 50 #include<linux/mtd/mtd.h>
  4. 51 #include <linux/mtd/nand.h>
  5. 52 #include <linux/mtd/nand_ecc.h>
  6. 53 #include <linux/mtd/partitions.h>
  7. 54 #include <plat/nand.h>
  8. 55
  9. 56 static struct map_desc mini2440_iodesc[] __initdata = {
在228行添加如下代码,用于显示分区信息

  1. 224 static void __init mini2440_machine_init(void)
  2. 225 {
  3. 226 s3c24xx_fb_set_platdata(&mini2440_fb_info);
  4. 227 s3c_i2c0_set_platdata(NULL);
  5. 228 s3c_device_nand.dev.platform_data =&mini2440_nand_info;
  6. 229 platform_add_devices(mini2440_devices, ARRAY_SIZE(mini2440_devices));
  7. 230 //smdk_machine_init();
  8. 231 }
nand分区表修改完毕,接下来移植yaffs2!




阅读(1757) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~