11 Sep, 2011
7 commits
-
The ecctype and eccsize fields have been obsolete for a while. Since they
don't have any users, we can kill them and leave padding in their place
for now.Signed-off-by: Brian Norris
Signed-off-by: Artem Bityutskiy -
We're missing a lot of important documentation in include/mtd/mtd-abi.h:
* add a simple description of each ioctl (feel free to expand!)
* give full explanations of recently added and modified operations
* explain the usage of "RAW" that appear in different modes and types of
operations
* fix some comment style along the waySigned-off-by: Brian Norris
Signed-off-by: Artem Bityutskiy -
Implement a new ioctl for writing both page data and OOB to flash at the
same time. This ioctl is intended to be a generic interface that can
replace other ioctls (MEMWRITEOOB and MEMWRITEOOB64) and cover the
functionality of several other old ones, e.g., MEMWRITE can:* write autoplaced OOB instead of using ECCGETLAYOUT (deprecated) and
working around the reserved areas
* write raw (no ECC) OOB instead of using MTDFILEMODE to set the
per-file-descriptor MTD_FILE_MODE_RAW
* write raw (no ECC) data instead of using MTDFILEMODE
(MTD_FILE_MODE_RAW) and using standard character device "write"This ioctl is especially useful for MLC NAND, which cannot be written
twice (i.e., we cannot successfully write the page data and OOB in two
separate operations). Instead, MEMWRITE can write both in a single
operation.Note that this ioctl is not affected by the MTD file mode (i.e.,
MTD_FILE_MODE_RAW vs. MTD_FILE_MODE_NORMAL), since it receives its write
mode as an input parameter.Signed-off-by: Brian Norris
Signed-off-by: Artem Bityutskiy -
These modes hold their state only for the life of their file descriptor,
and they overlap functionality with the MTD_OPS_* modes. Particularly,
MTD_MODE_RAW and MTD_OPS_RAW cover the same function: to provide raw
(i.e., without ECC) access to the flash. In fact, although it may not be
clear, MTD_MODE_RAW implied that operations should enable the
MTD_OPS_RAW mode.Thus, we should be specific on what each mode means. This is a start,
where MTD_FILE_MODE_* actually represents a "file mode," not necessarily
a true global MTD mode.Signed-off-by: Brian Norris
Signed-off-by: Artem Bityutskiy -
These modes are not necessarily for OOB only. Particularly, MTD_OOB_RAW
affected operations on in-band page data as well. To clarify these
options and to emphasize that their effect is applied per-operation, we
change the primary prefix to MTD_OPS_.Signed-off-by: Brian Norris
Signed-off-by: Artem Bityutskiy -
We will want to use the MTD_OOB_{PLACE,AUTO,RAW} modes in user-space
applications through the introduction of new ioctls, so we should make
this enum a shared type.This enum is now anonymous.
Artem: tweaked the patch.
Signed-off-by: Brian Norris
Signed-off-by: Artem Bityutskiy -
MEMSETOOBSEL is completely unused and useless. Remove the definition.
Note: it's probably best not to use this ioctl number in the future for
MTD, since that may cause conflicts between old kernels and new user
software (or new kernels and old user software).Artem: leave a comment about MEMSETOOBSEL.
Signed-off-by: Brian Norris
Signed-off-by: Artem Bityutskiy
14 Apr, 2011
4 commits
-
Fix checkpatch.pl errors and warnings:
* space before tab
* line over 80 characters
* include linux/ioctl.h instead of asm/ioctl.hSigned-off-by: Artem Bityutskiy
-
There was an attempt to standartize various "__attribute__" and
other macros in order to have potentially portable and more
consistent code, see commit 82ddcb040570411fc2d421d96b3e69711c670328.Note, that commit refers Rober Love's blog post, but the URL
is broken, the valid URL is:
http://blog.rlove.org/2005/10/with-little-help-from-your-compiler.htmlMoreover, nowadays checkpatch.pl warns about using
__attribute__((packed)):"WARNING: __packed is preferred over __attribute__((packed))"
It is not a big deal for UBI to use __packed, so let's do it.
Signed-off-by: Artem Bityutskiy
-
Cleanup and improve commentaries around the "set volume properties" ioctl,
make a simple indentation fix as well.Signed-off-by: Artem Bityutskiy
-
Rename the ioctl which sets volume properties from 'UBI_IOCSETPROP' to
'UBI_IOCSETVOLPROP' to reflect the fact that this ioctl is about volume
properties, not device properties. This is also consistent with the
other volume ioctl name - 'UBI_IOCVOLUP'.The main motivation for the re-name, however, is that we are going
to introduce the per-UBI device "set properties" ioctl, so we need
good and logical naming.At the same time, re-name the "set volume properties request" data
structure from 'struct ubi_set_prop_req' to
'struct ubi_set_vol_prop_req'.And re-name 'UBI_PROP_DIRECT_WRITE' to 'UBI_VOL_PROP_DIRECT_WRITE'.
Signed-off-by: Artem Bityutskiy
25 Oct, 2010
3 commits
-
MLC NAND Flash has a different cell structure and differs in
functioning than the SLC NAND Flash. Hence we are considering it as
a different Flash type.Signed-off-by: Rohit H.S
Signed-off-by: Raghav Gupta
Signed-off-by: Artem Bityutskiy
Signed-off-by: David Woodhouse -
There were some improvements and additions necessary in the
comments explaining of the expansion of nand_ecclayout, the
introduction of nand_ecclayout_user, and the deprecation of the
ioctl ECCGETLAYOUT.Also, I found a better placement for the macro MTD_MAX_ECCPOS_ENTRIES;
next to the definition of MTD_MAX_OOBFREE_ENTRIES in mtd-abi.h. The macro
is really only important for the ioctl code (found in drivers/mtd/mtdchar.c)
but since there are small edits being made to the user-space header, I
figured this is a better location.Signed-off-by: Brian Norris
Signed-off-by: Artem Bityutskiy
Signed-off-by: David Woodhouse -
struct nand_ecclayout is too small for many new chips; OOB regions can be as
large as 448 bytes and may increase more in the future. Thus, copying that
struct to user-space with the ECCGETLAYOUT ioctl is not a good idea; the ioctl
would have to be updated every time there's a change to the current largest
size.Instead, the old nand_ecclayout is renamed to nand_ecclayout_user and a
new struct nand_ecclayout is created that can accomodate larger sizes and
expand without affecting the user-space. struct nand_ecclayout can still
be used in board drivers without modification -- at least for now.A new function is provided to convert from the new to the old in order to
allow the deprecated ioctl to continue to work with truncated data. Perhaps
the ioctl, the conversion process, and the struct nand_ecclayout_user can be
removed altogether in the future.Note: There are comments in nand/davinci_nand.c::nand_davinci_probe()
regarding this issue; this driver (and maybe others) can be updated to
account for extra space. All kernel drivers can use the expanded
nand_ecclayout as a drop-in replacement and ignore its benefits.Signed-off-by: Brian Norris
Signed-off-by: Artem Bityutskiy
Signed-off-by: David Woodhouse
09 Aug, 2010
1 commit
-
Signed-off-by: David Woodhouse
02 Aug, 2010
1 commit
-
This patchs adds a way for user space programs to find out whether a
flash sector is locked. An optional driver method in the mtd_info struct
provides the information.Signed-off-by: Richard Cochran
Signed-off-by: Artem Bityutskiy
Signed-off-by: David Woodhouse
06 Jun, 2009
1 commit
-
This file does not define any kernel-userspace API, all
it does it defines few helpers for userspace. Instead,
userspace should have a private copy of this file.The main (if not the only) user is the mtd-utils package, but
it already has a private copy of this file.This patch also removes references to 'jffs2-user.h' from
'Kbuild' and MAINTAINERS' files.Signed-off-by: Artem Bityutskiy
Signed-off-by: David Woodhouse
29 May, 2009
2 commits
-
Signed-off-by: Kevin Cernekee
Signed-off-by: Artem Bityutskiy
Signed-off-by: David Woodhouse -
New MEMERASE/MEMREADOOB/MEMWRITEOOB ioctls are needed in order to support
64-bit offsets into large NAND flash devices.Signed-off-by: Kevin Cernekee
Signed-off-by: Artem Bityutskiy
Signed-off-by: David Woodhouse
27 Mar, 2009
2 commits
-
The MTD headers traditionally use stdint types rather than
the kernel integer types. This converts them to do the
same as all the others.Cc: David Woodhouse
Signed-off-by: Arnd Bergmann
Signed-off-by: H. Peter Anvin
Signed-off-by: Ingo Molnar -
A number of standard posix types are used in exported headers, which
is not allowed if __STRICT_KERNEL_NAMES is defined. In order to
get rid of the non-__STRICT_KERNEL_NAMES part and to make sane headers
the default, we have to change them all to safe types.There are also still some leftovers in reiserfs_fs.h, elfcore.h
and coda.h, but these files have not compiled in user space for
a long time.This leaves out the various integer types ({u_,u,}int{8,16,32,64}_t),
which we take care of separately.Signed-off-by: Arnd Bergmann
Acked-by: Mauro Carvalho Chehab
Cc: David Airlie
Cc: Arnaldo Carvalho de Melo
Cc: YOSHIFUJI Hideaki
Cc: netdev@vger.kernel.org
Cc: linux-ppp@vger.kernel.org
Cc: Jaroslav Kysela
Cc: Takashi Iwai
Cc: David Woodhouse
Signed-off-by: H. Peter Anvin
Signed-off-by: Ingo Molnar
31 Jan, 2009
1 commit
-
fix the following 'make headers_check' warning:
usr/include/mtd/inftl-user.h:61: found __[us]{8,16,32,64} type without #include
Signed-off-by: Jaswinder Singh Rajput
27 Jan, 2009
1 commit
-
Introduce a new ioctl UBI_IOCSETPROP to set properties
on a volume. Also add the first property:
UBI_PROP_DIRECT_WRITE, this property is used to set the
ability to use direct writes in userspaceSigned-off-by: Sidney Amani
Signed-off-by: Corentin Chary
Signed-off-by: Artem Bityutskiy
18 Jan, 2009
4 commits
-
Signed-off-by: Artem Bityutskiy
-
This patch adds ioctl to check if an LEB is mapped or not (as a
debugging option so far).[Re-named ioctl to make it look the same as the other one and made
some minor stylistic changes. Artem Bityutskiy.]Signed-off-by: Corentin Chary
Signed-off-by: Artem Bityutskiy -
This patch adds ioctl for the LEB unmap operation (as a debugging
option so far).[Re-named ioctl to make it look the same as the other one and made
some minor stylistic changes. Artem Bityutskiy.]Signed-off-by: Corentin Chary
Signed-off-by: Artem Bityutskiy -
This patch adds ioctl for the LEB map operation (as a debugging
option so far).[Re-named ioctl to make it look the same as the other one and made
some minor stylistic changes. Artem Bityutskiy.]Signed-off-by: Corentin Chary
Signed-off-by: Artem Bityutskiy
06 Jan, 2009
1 commit
-
- (better, more, bigger ...) then -> (...) than
Signed-off-by: Frederik Schwarzer
Signed-off-by: Jiri Kosina
25 Jul, 2008
1 commit
24 Jul, 2008
2 commits
-
Just out or curiousity ran checkpatch.pl for whole UBI,
and discovered there are quite a few of stylistic issues.
Fix them.Signed-off-by: Artem Bityutskiy
-
Quite useful ioctl which allows to make atomic system upgrades.
The idea belongs to Richard TitmussSigned-off-by: Artem Bityutskiy
05 Jun, 2008
1 commit
-
Once upon a time, the MTD repository was using CVS.
This patch therefore removes all usages of the no longer updated CVS
keywords from the MTD code.This also includes code that printed them to the user.
Signed-off-by: Adrian Bunk
Signed-off-by: David Woodhouse
17 Apr, 2008
1 commit
-
The new trend in linux is not to store headers which define
on-media format in the include/ directory, but instead, store
them locally. This is because these headers "do not define any
kerneluserspace interface".Do so for UBI as well.
Signed-off-by: Artem Bityutskiy
03 Feb, 2008
2 commits
-
Patch for unlocking all Intel flash that has instant locking on power up.
The patch has been tested on Intel M18, P30 and J3D Strata Flash.
1. The automatic unlocking can be disabled for a particular partition
in the map or the command line.
a. For the bit mask in the map it should look like:
.mask_flags = MTD_POWERUP_LOCK,
b. For the command line parsing it should look like:
mtdparts=0x80000(bootloader)lk
2. This will only unlock parts with instant individual block locking.
Intel parts with legacy unlocking will not be unlocked.Signed-off-by: Justin Treon
Signed-off-by: Jared Hulbert
Acked-by: Nicolas Pitre
Signed-off-by: David Woodhouse
25 Jan, 2008
3 commits
-
We have to be able to change individual LEBs for utilities like
ubifsck, ubifstune. For example, ubifsck has to be able to fix
errors on the media, ubifstune has to be able to change the
the superblock, hence this ioctl.Signed-off-by: Artem Bityutskiy
-
Add more information about layout volume to make userspace tools
use the macros instead of constants. Also rename UBI_LAYOUT_VOL_ID
to make it consistent with other macros.Signed-off-by: Artem Bityutskiy
-
The problem: NAND flashes have different amount of initial bad physical
eraseblocks (marked as bad by the manufacturer). For example, for 256MiB
Samsung OneNAND flash there might be from 0 to 40 bad initial eraseblocks,
which is about 2%. When UBI is used as the base system, one needs to know
the exact amount of good physical eraseblocks, because this number is
needed to create the UBI image which is put to the devices during
production. But this number is not know, which forces us to use the
minimum number of good physical eraseblocks. And UBI additionally
reserves some percentage of physical eraseblocks for bad block handling
(default is 1%), so we have 1-3% of PEBs reserved at the end, depending
on the amount of initial bad PEBs. But it is desired to always have
1% (or more, depending on the configuration).Solution: this patch adds an "auto-resize" flag to the volume table.
The volume which has the "auto-resize" flag will automatically be re-sized
(enlarged) on the first UBI initialization. UBI clears the flag when
the volume is re-sized. Only one volume may have the "auto-resize" flag.So, the production UBI image may have one volume with "auto-resize"
flag set, and its size is automatically adjusted on the first boot
of the device.Signed-off-by: Artem Bityutskiy
27 Dec, 2007
1 commit
-
Signed-off-by: Artem Bityutskiy
18 Jul, 2007
1 commit
-
Kill UBI's homegrown endianess handling and replace it with
the standard kernel endianess handling.Signed-off-by: Christoph Hellwig
Signed-off-by: Artem Bityutskiy