2016-09-20 10 views
0

私はいくつかのMTDデバイスでシステムを組み込み、もう1つのMTDデバイス(SPIフラッシュ)を追加しました。この新しいデバイスは現在mtd0であり、以前のすべてのMTDデバイスの番号は+1です。以前のMTDデバイスの数を変更しないために、この新しいドライバのMTDデバイス番号をどのように割り当てることができますか?私が達成したいMTDデバイスのシリアル番号を変更するにはどうすればよいですか?

# cat /proc/mtd 
dev: size erasesize name 
mtd0: 00100000 00001000 "spi-nor-flash" 
mtd1: 00100000 00020000 "u-boot" 
... 

# cat /proc/mtd 
dev: size erasesize name 
mtd0: 00100000 00020000 "u-boot" 
... 

:前

# cat /proc/mtd 
dev: size erasesize name 
mtd0: 00100000 00020000 "u-boot" 
... 
mtd5: 00100000 00001000 "spi-nor-flash" 

答えて

1

あなたの場合は、デバイスツリーのソース・ファイルにMTDパーティション番号を指定する(またはボードの.cファイルにもカーネルはDTBを使用しません)。 SPIフラッシュとMTDパーティションを持つ他のデバイスに

&spi0{ 
    status = "okay"; 
    pinctrl-names = "default"; 
    pinctrl-0 = <&spi0_pins>; 
    /* DO is MOSI, D1 is MISO */ 
    /*ti,pindir-d0-out-d1-in = <0>;*/ 
    [email protected] { 
      #address-cells = <1>; 
      #size-cells = <1>; 
      compatible = "st,m25pe80"; 
      reg = <0>; 
      spi-max-frequency = <1000000>; 
      /*m25p,fast-read;*/ 
      [email protected] { 
          label = "spi-nor-spl1"; 
          reg = <0x0 0x20000>; /* 128k */ 
        }; 

    }; 
}; 

hereから取られた例):あなたはこのようなものが必要。

1

私はこの記事https://wiki.archlinux.org/index.php/persistent_block_device_namingを見てすることをお勧めします。 Udevは、デバイスが発見された順序に依存することなく、ブロックデバイスに名前を付けるのに役立ちます。

+0

これは葉巻に近いですが、シガーはありません。問題はMTDデバイスであり、ブロックデバイスではありません。また、デバイスファイル名が使用されているパーティションマッピングを破るつもりはありません。最後のデバイスとしてこの新しいドライバを作成する必要があり、ソリューションはデバイスツリーファイルまたはmakeファイルにあります。私は誰かが同様の問題に直面し、これを行う方法を正確に知っていることを期待しています。 – Aivars

0

可能な回避策:ローダブルモジュールとしてSPIフラッシュドライバを作成し、システム起動後にそれをロードします。

/ # 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" 
関連する問題