20 Apr, 2015
1 commit
-
Only do sandbox filesystem access when using the hostfs device
interface, rather then falling back to it in all cases. This prevents
confusion situations due to the fallback being taken rather then an
unsupported error being raised.Signed-off-by: Sjoerd Simons
Reviewed-by: Simon Glass
Acked-by: Simon Glass
19 Apr, 2015
1 commit
-
In the case where the arch defines a custom map_sysmem(), make sure that
including just mapmem.h is sufficient to have these functions as they
are when the arch does not override it.Also split the non-arch specific functions out of common.h
Signed-off-by: Joe Hershberger
Reviewed-by: Simon Glass
06 Mar, 2015
1 commit
-
After rework of the file system API, the size of ext4
write was missed. This causes printing unreliable write
size at the end of the file system write operation.Signed-off-by: Przemyslaw Marczak
Cc: Sjoerd Simons
Cc: Lukasz Majewski
Cc: Simon Glass
Tested-by: Stephen Warren
05 Feb, 2015
1 commit
30 Jan, 2015
1 commit
-
New command to determine the filesystem type of a given partition.
Optionally stores the filesystem type in a environment variable.Signed-off-by: Sjoerd Simons
Reviewed-by: Stephen Warren
29 Jan, 2015
1 commit
-
Enable ubifs_replay_journal during mount_ubifs, which was
disabled before.This commit fix an issue with unrecoverable ubifs volumes
after power cut.Therefor the gc.c is imported now from 1860e37 Linux 3.15
hs: added SPDX-License-Identifier for fs/ubifs/gc.c
Signed-off-by: Anton Habegger
28 Jan, 2015
1 commit
-
This commit is a preperation for a subsequent UBIFS commit
which needs atomic_long operations.Therefor "include/asm-generic/atomic-long.h" is imported
from 1860e37 Linux 3.15Signed-off-by: Anton Habegger
06 Jan, 2015
1 commit
-
The present fat implementation ignores FAT16 long name
directory entries which aren't placed in a single sector.This was becouse of the buffer was always filled by the
two sectors, and the loop was made also for two sectors.If some file long name entries are stored in two sectors,
the we have two cases:Case 1:
Both of sectors are in the buffer - all required data
for long file name is in the buffer.
- Read OK!Case 2:
The current directory entry is placed at the end of the
second buffered sector. And the next entries are placed
in a sector which is not buffered yet. Then two next
sectors are buffered and the mentioned entry is ignored.
- Read fail!This commit fixes this issue by:
- read two sectors after loop on each single is done
- keep the last used sector as a first in the buffer
before the read of two nextThe commit doesn't affects the fat32 imlementation,
which works good as previous.Signed-off-by: Przemyslaw Marczak
Cc: Mikhail Zolotaryov
Cc: Tom Rini
Cc: Stephen Warren
Cc: Simon Glass
Cc: Suriyan Ramasami
Cc: Lukasz Majewski
Cc: Wolfgang Denk
Tested-by: Simon Glass
02 Dec, 2014
1 commit
-
The changes to introduce loff_t into filesize means that we need to do
64bit math on 32bit platforms. Make sure we use the right wrappers for
these operations.Cc: Daniel Schwierzeck
Cc: Suriyan Ramasami
Reviewed-by: Simon Glass
Signed-off-by: Tom Rini
Tested-by: Pierre Aubert
23 Nov, 2014
6 commits
-
The sandbox/ext4/fat/generic fs commands do not gracefully deal with files
greater than 2GB. Negative values are returned in such cases.To handle this, the fs functions have been modified to take an additional
parameter of type "* loff_t" which is then populated. The return value
of the fs functions are used only for error conditions.Signed-off-by: Suriyan Ramasami
Acked-by: Simon Glass
[trini: Update board/gdsys/p1022/controlcenterd-id.c,
drivers/fpga/zynqpl.c for changes]
Signed-off-by: Tom Rini -
Change the internal sandbox functions to use loff_t for file offsets.
Signed-off-by: Suriyan Ramasami
Acked-by: Simon Glass
-
Change the internal EXT4 functions to use loff_t for offsets.
Signed-off-by: Suriyan Ramasami
Acked-by: Simon Glass
[trini: Update common/spl/spl_ext.c]
Signed-off-by: Tom Rini -
Change the internal FAT functions to use loff_t for offsets.
Signed-off-by: Suriyan Ramasami
Acked-by: Simon Glass
[trini: Fix fs/fat/fat.c for min3 updates]
Signed-off-by: Tom Rini -
Some filesystems have a UUID stored in its superblock. To
allow using root=UUID=... for the kernel command line we
need a way to read-out the filesystem UUID.changes rfc -> v1:
- make the environment variable an option parameter. If not
given, the UUID is printed out. If given, it is stored in the env
variable.
- corrected typos
- return error codeschanges v1 -> v2:
- fix return code of do_fs_uuid(..)
- document do_fs_uuid(..)
- implement fs_uuid_unsuported(..) be more consistent with the
way other optional functionality workschanges v2 -> v3:
- change ext4fs_uuid(..) to make use of #if .. #else .. #endif
construct to get rid of unreachable codeHit any key to stop autoboot: 0
=> fsuuid
fsuuid - Look up a filesystem UUIDUsage:
fsuuid :
- print filesystem UUID
fsuuid :
- set environment variable to filesystem UUID=> fsuuid mmc 0:1
d9f9fc05-45ae-4a36-a616-fccce0e4f887
=> fsuuid mmc 0:2
eb3db83c-7b28-499f-95ce-9e0bb21cda81
=> fsuuid mmc 0:1 uuid1
=> fsuuid mmc 0:2 uuid2
=> printenv uuid1
uuid1=d9f9fc05-45ae-4a36-a616-fccce0e4f887
=> printenv uuid2
uuid2=eb3db83c-7b28-499f-95ce-9e0bb21cda81
=>Signed-off-by: Christian Gmeiner
Acked-by: Stephen Warren -
U-Boot has never cared about the type when we get max/min of two
values, but Linux Kernel does. This commit gets min, max, min3, max3
macros synced with the kernel introducing type checks.Many of references of those macros must be fixed to suppress warnings.
We have two options:
- Use min, max, min3, max3 only when the arguments have the same type
(or add casts to the arguments)
- Use min_t/max_t instead with the appropriate type for the first
argumentSigned-off-by: Masahiro Yamada
Acked-by: Pavel Machek
Acked-by: Lukasz Majewski
Tested-by: Lukasz Majewski
[trini: Fixup arch/blackfin/lib/string.c]
Signed-off-by: Tom Rini
21 Nov, 2014
1 commit
-
U-Boot has imported various utility macros from Linux
scattering them to various places without consistency.In include/common.h are min, max, min3, max3, ARRAY_SIZE, ALIGN,
container_of, DIV_ROUND_UP, etc.
In include/linux/compat.h are min_t, max_t, round_up, round_down,
etc.
We also have duplicated defines of min_t in some *.c files.Moreover, we are suffering from too cluttered include/common.h.
This commit moves various macros that originate in
include/linux/kernel.h of Linux to their original position.Note:
This commit simply moves the macros; the macros roundup,
min, max, min2, max3, ARRAY_SIZE are different
from those of Linux at this point.Signed-off-by: Masahiro Yamada
11 Nov, 2014
1 commit
-
In a message from Wolfgang Denk highlighting warnings from cppcheck,
the patch will address those that are correctly diagnosed. Some are
false-positives:> [fs/zfs/zfs.c:937]: (error) Memory leak: l
dmu_read() allocates "l" if successful, so error-case should not free
it.
> [fs/zfs/zfs.c:1141]: (error) Memory leak: dnbuf
dmu_read() allocates "dnbuf" if successful, so error-case should not
free it.
> [fs/zfs/zfs.c:1372]: (error) Memory leak: osp
zio_read() allocates "osp" if successful, so error-case should
not free it.
> [fs/zfs/zfs.c:1726]: (error) Memory leak: nvlist
int_zfs_fetch_nvlist() allocates "nvlist" if successful, so error-case
should not free it.Signed-off-by: Jorgen Lundman
28 Oct, 2014
1 commit
-
Add EXT filesystem support to SPL.
Signed-off-by: Guillaume GARDET
[trini: Fix a warning and checkpatch problems]
Signed-off-by: Tom Rini
27 Oct, 2014
1 commit
-
On 64-bit platforms (like sandbox) 64-bit integers may be 'long' rather
than 'long long'. Use the inttypes header to avoid compiler warnings.Signed-off-by: Simon Glass
25 Sep, 2014
2 commits
-
The macro MIN, MAX is defined as the aliase of min, max,
respectively.Signed-off-by: Masahiro Yamada
-
This would be useful to start moving various config options.
Signed-off-by: Masahiro Yamada
Acked-by: Simon Glass
Tested-by: Simon Glass
17 Sep, 2014
1 commit
-
U-Boot has imported various source files from other projects,
mostly Linux.Something like
#ifdef __UBOOT__
[ modification for U-Boot ]
#else
[ original code ]
#endifis an often used strategy for clarification of adjusted parts,
that is, easier re-sync in future.Instead of defining __UBOOT__ in each source file,
passing it from the top Makefile would be easier.Signed-off-by: Masahiro Yamada
Acked-by: Marek Vasut
Acked-by: Heiko Schocher
26 Aug, 2014
4 commits
-
snyc with linux v3.15:
commit 1860e379875dfe7271c649058aeddffe5afd9d0d
Author: Linus Torvalds
Date: Sun Jun 8 11:19:54 2014 -0700Linux 3.15
Signed-off-by: Heiko Schocher
Cc: Scott Wood
Cc: Tom Rini -
while playing with the new mtd/ubi/ubifs sync, found some
small updates for it:- add del_mtd_partition() to include/linux/mtd/mtd
- mtd: add a debug_printf
- remove some not used functionsSigned-off-by: Heiko Schocher
Cc: Scott Wood
Cc: Tom Rini -
resync ubi subsystem with linux:
commit 455c6fdbd219161bd09b1165f11699d6d73de11c
Author: Linus Torvalds
Date: Sun Mar 30 20:40:15 2014 -0700Linux 3.14
A nice side effect of this, is we introduce UBI Fastmap support
to U-Boot.Signed-off-by: Heiko Schocher
Signed-off-by: Tom Rini
Cc: Marek Vasut
Cc: Sergey Lapin
Cc: Scott Wood
Cc: Joerg Krause -
- move linux specific defines from usb and video code
into linux/compat.h
- move common linux specific defines from include/ubi_uboot.h
to linux/compat.h
- add for new mtd/ubi/ubifs sync new needed linux specific
defines to linux/compat.hSigned-off-by: Heiko Schocher
Cc: Marek Vasut
Cc: Anatolij Gustschin
[trini: Add spin_lock_irqsave/spin_unlock_irqrestore dummies from
usb/lin_gadet_compat.h]
Signed-off-by: Tom Rini
09 Aug, 2014
1 commit
-
These commands may be used to determine the size of a file without
actually reading the whole file content into memory. This may be used
to determine if the file will fit into the memory buffer that will
contain it. In particular, the DFU code will use it for this purpose
in the next commit.Signed-off-by: Stephen Warren
22 Jul, 2014
1 commit
-
If filename is passed instead of address to ext2load or fatload,
u-boot silently accepts that, and uses 0 for load address and default
filename from environment. That is confusing, display help instead.Signed-off-by: Pavel Machek
19 Jul, 2014
2 commits
-
Current code uses the preprocessor to change an else case
to a statement without any if condition at all. Although
this works, change the optional code to return early, so
all optional code is contained within a single #ifdef.Signed-off-by: Jeroen Hofstee
-
Remove self assignments which is just dead code to prevent
compiler warnings about non used arguments. For u-boot this
does not prevent any warning though, on the contrary it actual
introduces warnings when compiling with clang. Remove them.Signed-off-by: Jeroen Hofstee
19 Jun, 2014
1 commit
-
ext4fs_allocate_blocks() always allocates at least one block for a file.
If the file size is zero, this causes total_remaining_blocks to
underflow, which then causes an apparent hang while 2^32 blocks are
allocated.To solve this, check that total_remaining_blocks is non-zero as part of
the loop condition (i.e. before each loop) rather than at the end of
the loop.Signed-off-by: Stephen Warren
12 Jun, 2014
2 commits
-
Clang interpretes an if condition like "if ((a = b) == NULL)
as it tries to assign a value in a statement. Hence if you do
"if ((something)) it warns you that you might be confused.
Hence drop the double braces for plane if statements.Signed-off-by: Jeroen Hofstee
-
Since ALLOC_CACHE_ALIGN_BUFFER declares a char* for filename
sizeof(filename) is not the size of the buffer. Use the already
known length instead.cc: Uma Shankar
cc: Manjunatha C Achar
cc: Marek Vasut
Signed-off-by: Jeroen Hofstee
Acked-by: Marek Vasut
06 Jun, 2014
1 commit
-
- update the comments regarding lbaint_t usage
- cleanup casting of values related to the lbaint_t type
- cleanup of a type that requires a u64Tested on little endian ARMv7 and ARMv8 configurations
Signed-off-by: Steve Rae
13 May, 2014
6 commits
-
When write a file into FAT file system, it will search a match file in
root dir. So the find_directory_entry() will get the first cluster of
root dir content and search the directory item one by one. If the file
is not found, we will call get_fatent_value() to get next cluster of root
dir via lookup the FAT table and continue the search.The issue is in FAT16/12 system, we cannot get root dir's next clust
from FAT table. The FAT table only be use to find the clust of data
aera in FAT16/12.In FAT16/12 if the clust is in root dir, the clust number is a negative
number or 0, 1. Since root dir is located in front of the data area.
Data area start clust #2. So the root dir clust number should < 2.This patch will check above situation before call get_fatenv_value().
If curclust is < 2, include minus number, we just increase one on the
curclust since root dir is in continous cluster.The patch also add a sanity check for entry in get_fatenv_value().
Signed-off-by: Josh Wu
-
In fat_write.c, the last clust condition check is incorrect:
if ((curclust >= 0xffffff8) || (curclust >= 0xfff8)) {
... ...
}For example, in FAT32 if curclust is 0x11000. It is a valid clust.
But on above condition check, it will be think as a last clust.So the correct last clust check should be:
in fat32, curclust >= 0xffffff8
in fat16, curclust >= 0xfff8
in fat12, curclust >= 0xff8This patch correct the last clust check.
Signed-off-by: Josh Wu
-
This bug shows up when file stored on the ext4 file system is updated.
The ext4fs_delete_file() is responsible for deleting file's (e.g. uImage)
data.
However some global data (especially ext4fs_indir2_block), which is used
during file deletion are left unchanged.The ext4fs_indir2_block pointer stores reference to old ext4 double
indirect allocated blocks. When it is unchanged, after file deletion,
ext4fs_write_file() uses the same pointer (since it is already initialized
- i.e. not NULL) to return number of blocks to write. This trunks larger
file when previous one was smaller.Lets consider following scenario:
1. Flash target with ext4 formatted boot.img (which has uImage [*] on itself)
2. Developer wants to upload their custom uImage [**]
- When new uImage [**] is smaller than the [*] - everything works
correctly - we are able to store the whole smaller file with corrupted
ext4fs_indir2_block pointer
- When new uImage [**] is larger than the [*] - theCRC is corrupted,
since truncation on data stored at eMMC was done.
3. When uImage CRC error appears, then reboot and LTHOR/DFU reflashing causes
proper setting of ext4fs_indir2_block() and after that uImage[**]
is successfully stored (correct uImage [*] metadata is stored at an
eMMC on the first flashing).Due to above the bug was very difficult to reproduce.
This patch sets default values for all ext4fs_indir* pointers/variables.Signed-off-by: Lukasz Majewski
-
Code responsible for handling situation when ext4 has block size of 1024B
can be ordered to take less space.This patch does that for ext4 common and write files.
Signed-off-by: Lukasz Majewski
-
__DATE__ and __TIME__ makes the build non-deterministic.
Drop the debug message using them.Signed-off-by: Masahiro Yamada
-
Use of malloc of do_fat_write() causes cache error on ARM v7 platforms.
Perhaps, the same problem will occur at any other CPUs.
This replaces malloc with memalign to fix cache buffer alignment.Signed-off-by: Nobuhiro Iwamatsu
Signed-off-by: Yoshiyuki Ito
Tested-by: Hector Palacios