首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SPI NOR分区和从u-boot C代码读取/写入

SPI NOR分区和从u-boot C代码读取/写入
EN

Stack Overflow用户
提问于 2014-11-24 17:42:17
回答 1查看 2.2K关注 0票数 1

我们有基于BBB的定制板,

电路板上有SPI NOR闪存和NAND闪存

我们能够为NAND创建mtd分区。但分区也不起作用:(

我们添加了以下定义来创建mtd或分区。

代码语言:javascript
运行
复制
#define MTDIDS_DEFAULT "nand0=omap2-nand.0, nor0=omap2-nor.0"
#define MTDPARTS_DEFAULT "mtdparts=omap2-nand.0:" \
"128k(SPL)," \
"128k(SPL.backup1)," \
"128k(SPL.backup2)," \
"128k(SPL.backup3)," \
"1024k(u-boot)," \
"1024k(u-boot.backup1)," \
"128k(u-boot-env)," \
"5m(kernel)," \
"5m(kernel.backup1)," \
"512k(fdt)," \
"512k(fdt.backup1)," \
"100m(rootfs)," \
"100m(rootfs.backup1)," \
"13m(reserved)," \
";" \
"mtdparts=omap2-nor.0:" \
"128k(SPL1_nor)," \
"128k(SPL2_nor)," \
"128k(SPL3_nor)," \
"128k(SPL4_nor)," \
"512k(usr_nor)," \

另一个疑问是,是否可以在u-boot中使用mtd设备文件进行读/写?

据我所知,u-boot也使用Linux的mtd驱动程序,所以

是否可以从u-boot代码中执行fd = open("/dev/mtd0",O_WRONLY)之类的操作?

EN

回答 1

Stack Overflow用户

发布于 2015-06-02 21:04:56

为了允许对SPI进行分区,我在spi_flash_probe()的末尾添加了以下内容:

代码语言:javascript
运行
复制
/* Release spi bus */
spi_release_bus(spi);

extern nand_info_t nand_info[];
struct mtd_info *mtd;

mtd = &nand_info[1];
mtd->name = "nor0";
mtd->size = flash->size;
mtd->erasesize = flash->erase_size;
mtd->writesize = flash->page_size;
mtd->priv = flash;
mtd->_write = sf_mtdwrite;
mtd->_read = sf_mtdread;
mtd->_erase = sf_mtderase;
#ifdef CONFIG_MTD_DEVICE
add_mtd_device(mtd);
#endif

return flash;

然而,没有例如“读/写/擦除分区”的概念,这些概念对于NAND和SPIFLASH是分开存在的。因此,在SPI上定义分区也不是很有用,除非是通用的mtd命令(mtd写入、mtd读取、mtd擦除...)是要创建的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27101749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档