- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Tiny内核移植.
交叉编译器安装……见04-Tiny6410 Linux开发指南
1、下载linux-2.6.38的源码,/pub/linux/kernel/v2.6/linux-2.6.38.tar.bz2 已经提供
2、建立文件夹 mkdir –p /home/kernel
解压 tar xvfj /mnt/share/linux-2.6.38.tar.bz2 -C /home/kernel
3 指定交叉编译器
以下所有操作都是在linux-2.6.38 目录下执行
# vi Makefile 191行改为ARCH ?= arm
# cp arch/arm/configs/s3c6400_defconfig .config
# make menuconfig
General setup-(/usr/4.5.1/bin/arm-linux-) Cross-compiler tool prefix 我将编译器解压到了/usr/4.5.1目录
System Type-[*] MINI6410 选上,去掉[] SMDK6410、[] SMARTQ 5、[] SMARTQ 7。这样编译出来的内核是可以被uboot引导的,然后是增加nand flash支持。
-************************Nand flash移植*****************************
3、vi arch/arm/mach-s3c64xx/mach-mini6410.c第117行struct mtd_partition mini6410_nand_part[] = {???????????? ????{????????.name????????= Bootloader,????????.offset????????= 0,????????.size????????= (4 * 128 *SZ_1K),????????.mask_flags????= MTD_CAP_NANDFLASH,????},????{????????.name????????= Kernel,????????.offset????????= (4 * 128 *SZ_1K),????????.size????????= (5*SZ_1M) ,????????.mask_flags????= MTD_CAP_NANDFLASH,????},????{????????.name????????= File System,????????.offset????????= MTDPART_OFS_APPEND,????????.size????????= MTDPART_SIZ_FULL,????}};??
4、添加以下三个文件
drivers/mtd/nand/s3c_nand.c、arch/arm/plat-samsung/include/plat/regs-nand.h 覆盖和 drivers/mtd/nand/s3c_nand_mlc.fo
5、修改drivers/mtd/nand/nand_base.c文件
修改方法如下,“-”就是要去掉的内容,“+”就是要增加的内容,@@后面的是行号
嫌麻烦的直接将drivers/mtd/nand/nand_base.c拷过来覆盖掉@@ -342,7 +342,7 @@??*/static int nand_block_bad(struct mtd_info *mtd, loff_t ofs, int getchip){-????int page, chipnr, res = 0;+????int page, res = 0;???? struct nand_chip *chip = mtd-priv;???? u16 bad;@@ -351,6 +351,8 @@???? page = (int)(ofs chip-page_shift) chip-pagemask;+#if 0+????/* Moved to nand_block_checkbad() for chip specify support */???? if (getchip) {???????? chipnr = (int)(ofs chip-chip_shift);@@ -359,6 +361,7 @@???????? /* Select the NAND device */???????? chip-select_chip(mtd, chipnr);???? }+#endif???? if (chip-options NAND_BUSWIDTH_16) {
原创力文档


文档评论(0)