[RFC] Support for > 2Gib MTD

Artem Bityutskiy dedekind at infradead.org
Mon Oct 6 01:24:48 EDT 2008


Hi,

On Fri, 2008-10-03 at 13:36 -0700, Bruce_Leonard at selinc.com wrote:
> Here's a rough idea of what I'm thinking.  In .../include/mtd/mtd-abi.h 
> add new 64 bit structs like this:
> 
> +struct erase_info_user_64 {
> +       uint64_t start;
> +       uint64_t length;
> +}
> 
> +struct mtd_info_user_64 {
> +       ...
> +       uint32_t flags;
> +       uint64_t size;
> +       ...
> +}
> 
> These new structs would be identical to the old ones execept for the types 
> on a few fields.

Please, add something like
uint8_t padding[128]; /* Reserved for future, should be zeroed */
to the new data structures.

>   To indicate that the new 64 bit interface is to be used 
> I would introduce a new flag for 'struct mtd_info_user_XX->flags', 
> something like this:
> 
> #define MTD_LARGE_SIZE 0x4000

No need for this. Because you'll change size of data structures and
their layout, this is not going to be compatible anyway.

> In .../include/linux/mtd.h I would add new fields as follows:
> 
> struct erase_info {
>         ...
>         u_int32 fail_addr;
> +       u_int64_t addr_64;
> +       u_int64_t len_64;
> +       u_int64_t fail_addr_64;
>         u_long time;
>         ...
> }
> 
> struct mtd_info {
>         ...
>         u_int32_t size;
> +       u_int64_t size_64;
>         u_int32_t erasesize;
>         ...
> }

This is what I would avoid doing. I would try to make size 64-bit and
amend all MTD users if needed.

> Plus a few new IOCTLs for getting info to/from user space if people want 
> to use it.

I do not mind ioctl for this, but dwmw2 expressed a desire to do this
via sysfs instead of ioctl...

-- 
Best regards,
Artem Bityutskiy (Битюцкий Артём)




More information about the linux-mtd mailing list