首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改MTD设备序列号?

如何更改MTD设备序列号?
EN

Stack Overflow用户
提问于 2016-09-20 19:09:18
回答 3查看 973关注 0票数 0

我有一些MTD设备的嵌入式系统,并增加了一个MTD设备(SPI闪存)。这个新设备现在是mtd0,所有以前的MTD设备的编号都是+1。我如何为这个新的驱动程序分配MTD设备编号,以保持以前的MTD设备的编号不变?

之前:

代码语言:javascript
复制
# cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00100000 00020000 "u-boot"
...

之后:

代码语言:javascript
复制
# cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00100000 00001000 "spi-nor-flash"
mtd1: 00100000 00020000 "u-boot"
...

我希望实现以下目标:

代码语言:javascript
复制
# cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00100000 00020000 "u-boot"
...
mtd5: 00100000 00001000 "spi-nor-flash"
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-13 13:21:09

您可以在设备树源文件中指定MTD分区号(如果您的内核不使用DTB,也可以在主板.c文件中指定)。你需要这样的东西:

代码语言:javascript
复制
&spi0{
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&spi0_pins>;
    /* DO is MOSI, D1 is MISO */
    /*ti,pindir-d0-out-d1-in = <0>;*/
    m25p80@0 {
            #address-cells = <1>;
            #size-cells = <1>;
            compatible = "st,m25pe80";
            reg = <0>;
            spi-max-frequency = <1000000>;
            /*m25p,fast-read;*/
             partition@12 {
                            label = "spi-nor-spl1";
                            reg = <0x0 0x20000>; /* 128k */
                    };

    };
};

(来自here的示例)用于SPI闪存和其他具有MTD分区的设备。

票数 1
EN

Stack Overflow用户

发布于 2016-09-20 19:51:55

我建议你看看这篇文章https://wiki.archlinux.org/index.php/persistent_block_device_naming。Udev可以帮助您命名块设备,而不依赖于设备被发现的顺序。

票数 1
EN

Stack Overflow用户

发布于 2016-09-22 18:37:20

可能的解决方法:将SPI闪存驱动程序设置为可加载模块,并在系统启动后加载:

代码语言:javascript
复制
/ # cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00800000 00020000 "u-boot"
...
mtd4: 0c8c0000 00020000 "ubipart"

/ # insmod m25p80.ko
[  365.735184] m25p80 spi0.0: n25q256a (32768 Kbytes)
[  365.739903] 1 ofpart partitions found on MTD device spi0.0
[  365.745396] Creating 1 MTD partitions on "spi0.0":
[  365.750133] 0x000000000000-0x000000800000 : "spi-flash"

/ # cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00800000 00020000 "u-boot"
...
mtd4: 0c8c0000 00020000 "ubipart"
mtd5: 00800000 00001000 "spi-flash"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39592526

复制
相关文章

相似问题

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