Re: How to write rules for mtd based devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Nov 3, 2008 at 12:12, Juergen Beisert <jbe@xxxxxxxxxxxxxx> wrote:
> On Montag, 3. November 2008, Kay Sievers wrote:
>> On Mon, Nov 3, 2008 at 11:12, Juergen Beisert <jbe@xxxxxxxxxxxxxx> wrote:
>> > has anybody an idea how to write some rules to match devices from the mtd
>> > framework?

...

>> Seems, there is not much you can do with the current information it
>> exposes. What is the hardware behind these mtd devices? Are these
>> devices show up somewhere in /sys/devices/, maybe as platform devices?
>> Then we could try to make the kernel use these as parents for the
>> block devices, so the block devices would not be "virtual".
>
> MTDs are simple memory devices. Flash (NOR or NAND type) and SRAM for example.
> They are connected through a simple address/data bus, some also via SPI
> interface. About each of these devices the kernel knows at least the
> manufacturer and the device name (for flash memory this info can be
> autodetected). For the other types mostly a platform structure provides this
> information. On my ARM (i.MX27 CPU) tree types of memory is available:
>
> SRAM:
> /sys/bus/platform/devices/mtd-ram.0
>
> NAND-flash:
> /sys/bus/platform/devices/mxc_nand.0
>
> NOR-flash:
> /sys/bus/platform/devices/physmap-flash.0
>
> Currently the NOR flash is using three partitions so I get:
>
> $ ls -l /dev/mtd*
> crw-rw----    1 root     root      90,   0 Jan  1 00:00 /dev/mtd0
> crw-rw----    1 root     root      90,   1 Jan  1 00:00 /dev/mtd0ro
> crw-rw----    1 root     root      90,   2 Jan  1 00:00 /dev/mtd1
> crw-rw----    1 root     root      90,   3 Jan  1 00:00 /dev/mtd1ro
> crw-rw----    1 root     root      90,   4 Jan  1 00:00 /dev/mtd2
> crw-rw----    1 root     root      90,   5 Jan  1 00:00 /dev/mtd2ro
> crw-rw----    1 root     root      90,   6 Jan  1 00:00 /dev/mtd3
> crw-rw----    1 root     root      90,   7 Jan  1 00:00 /dev/mtd3ro
> crw-rw----    1 root     root      90,   8 Jan  1 00:00 /dev/mtd4
> crw-rw----    1 root     root      90,   9 Jan  1 00:00 /dev/mtd4ro
> crw-rw----    1 root     root      90,  10 Jan  1 00:00 /dev/mtd5
> crw-rw----    1 root     root      90,  11 Jan  1 00:00 /dev/mtd5ro
> brw-rw----    1 root     root      31,   0 Jan  1 00:00 /dev/mtdblock0
> brw-rw----    1 root     root      31,   1 Jan  1 00:00 /dev/mtdblock1
> brw-rw----    1 root     root      31,   2 Jan  1 00:00 /dev/mtdblock2
> brw-rw----    1 root     root      31,   3 Jan  1 00:00 /dev/mtdblock3
> brw-rw----    1 root     root      31,   4 Jan  1 00:00 /dev/mtdblock4
> brw-rw----    1 root     root      31,   5 Jan  1 00:00 /dev/mtdblock5
>
> mtd*0 ... mtd*3 are the three partitions on the NOR flash (its also the memory
> to boot from), mtd*4 is the NAND memory, mtd*5 is the SRAM. All I want is to
> detect the NAND and the SRAM to create special links or node names for these
> devices to be independent from the partition count of the NOR memory and the
> changing device node numbers when this count changes.

It is something that should be changed in mtd. NAND for example
registers the device in drivers/mtd/nand/mxc_nand.c. Before that, it
has handled the platform device *pdev.

We would need to pass the pdev down to the mtd core and set "struct
gendisk->driverfs_dev" to  &pdev->dev, and the NAND mtd devices would
show up with a device path like:
  /sys/devices/platform/mxc_nand.0/blockmtdblock4

With these devices as parents, you can match on any property or device
name with usual udev rules.

Kay
--
To unsubscribe from this list: send the line "unsubscribe linux-hotplug" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Linux DVB]     [Asterisk Internet PBX]     [DCCP]     [Netdev]     [X.org]     [Util Linux NG]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux