- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
S3C2410 上 Jffs2 的移植
作者:wpq 2004-7-06
参照 llg 写的关于hharm(e28f128flash)上的jffs2 的移植
具体如下:
移植环境:
CPU:ARMS3C2410
Linux version:2.4.18 Flash:Intel E28F128
修改设备号
由于 ROM 设备和MTDBlock 设备的主设备号(major)都是31,所以如果你不想把JFFS2 作为根文件系统的话,必须修改他们之一的 major。如果你要修改 JFFS2 的设备 major,在uClinux-dist/linux-2.4.x/include/linux/mtd/mtd.h中把
#define MTD_BLOCK_MAJOR 31
改成
#define MTD_BLOCK_MAJOR 30
编写Maps 文件
添加在 flash 上的 map 文件。 在 HHARM2410-R3/kernel/drivers/mtd/maps 下添加
flash(e28f128j3a-150)的 map,我把握的文件内容贴上,仅供参考: S3c2410_wpq.c
/*
* Normal mappings of chips on Samsung s3c2410 in physical memory
*/
#include linux/module.h #include linux/types.h #include linux/kernel.h #include asm/io.h #include linux/mtd/mtd.h #include linux/mtd/map.h
#include linux/mtd/partitions.h #include linux/config.h
#define WINDOW_ADDR 0//基地址
#define WINDOW_SIZE 0//flash 大小 16M #define BUSWIDTH 2
static struct mtd_info *mymtd;
u8 s3c2410_read8(struct map_info *map, unsigned long ofs)
{
return readb(map-map_priv_1 + ofs);
}
u16 s3c2410_read16(struct map_info *map, unsigned long ofs)
{
return readw(map-map_priv_1 + ofs);
}
u32 s3c2410_read32(struct map_info *map, unsigned long ofs)
{
return readl(map-map_priv_1 + ofs);
}
void s3c2410_copy_from(struct map_info *map, void *to, unsigned long from, ssize_t len)
{
memcpy(to, (void *)(map-map_priv_1 + from), len);
}
void s3c2410_write8(struct map_info *map, u8 d, unsigned long adr)
{
writeb(d, map-map_priv_1 + adr);
}
void s3c2410_write16(struct map_info *map, u16 d, unsigned long adr)
{
writew(d, map-map_priv_1 + adr);
}
void s3c2410_write32(struct map_info *map, u32 d, unsigned long adr)
{
writel(d, map-map_priv_1 + adr);
}
void s3c2410_copy_to(struct map_info *map, unsigned long to, const void *from, ssize_t len)
{
memcpy((void *)(map-map_priv_1 + to), from, len);
}
struct map_info s3c2410_map = { name: s3c2410 flash device, size: WINDOW_SIZE,
buswidth: BUSWIDTH, read8: s3c2410_read8, read16: s3c2410_read16, read32: s3c2410_read32,
copy_from: s3c2410_copy_fr
您可能关注的文档
- iometer已分析和总结.docx
- IP 子网划分分析和总结.docx
- IPCA620A分析和总结分析和总结.docx
- IPD研发组织模式0803 .docx
- iPhone开发进阶 深入理解iPhone OSSDK与ObjectiveC 20.docx
- IPM分析和总结分析和总结.docx
- IPQC作业指导书分析和总结.docx
- IPSec中文配置说明.docx
- iptables 常用配置实例2006.docx
- IPTABLES配置一实例2007分析和总结.docx
- 2025年无人机低空医疗物资投放社会效益报告.docx
- 2025年再生塑料行业包装回收利用产业链重构研究.docx
- 《AI眼镜周边产品市场机遇:2025年终端销售与需求增长洞察》.docx
- 2025年坚果加工行业深加工技术突破与市场拓展策略报告.docx
- 2025年通信芯片行业技术竞争与未来趋势报告.docx
- 《2025年生鲜电商配送冷链事故分析与预防措施》.docx
- 《商业航天融资新趋势2025民营卫星企业资本涌入估值分析市场动态》.docx
- 2025年能源绿色健康行业创新技术与市场应用报告.docx
- 2025年无人机低空医疗救援通信方案分析报告.docx
- 2025年烹饪机器人行业市场集中度分析报告.docx
原创力文档


文档评论(0)