Do not remove the automountpoints when they are mounted. This way
they can be reused when they have been unmounted.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
If a new cdev doesn't have a device_node defined when passed to
devfs_create(), set it to the device_node of the parent device, if one
exists.
For non-partitions, like ocotp or eeprom devices, this is the correct
thing to do. Partitions need to use, and do use, a different node.
The code from commit 274e0b8dc4 to set
device_node in ocotp can be removed.
Signed-off-by: Trent Piepho <tpiepho@kymetacorp.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
pstore is a persistent storage filesystem used for RAMOOPS. It is used
to store console logs, panics, ftrace and other information in case of a
crash/panic/oops/reboot.
pstore is implemented for barebox as a read-only filesystem at the
moment. It may be extended later on. The idea is to provide a way to
extract essential data from the last running kernel.
Most of the code is copied from the kernel. However this is only a
lightweight implementation without real write support yet.
Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Returning -ENOSYS as a result of truncate() breaks ability to write to
semihosting host's filesystem, so change the return value to 0. This
shouldn't cause any problems since all of the funcionlaity of
truncate() should is already handled by 'open' (via O_TRUNC) and
'write' (will automatically grow the file size when writing)
automatically
Unfortunately this was missed in original commit that introduced
semihosting
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Add semihosting API implementation and implement a filesystem driver
to access debugging host filesystem using it.
Tested on Freescale SabreSD board (i.MX6Q) using OpenOCD
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
When opening a cdev also allow a path beginning with /dev/ as some
users of cdev_open already open coded this behaviour.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
We have places in the code where we assume that devfs is mounted on
/dev/, so enforce this path to avoid surprises.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
When mount is given a full path (including /dev/) to the cdev file
we can no longer automatically detect the filesystem. This is broken
since:
e89f1a1 detect_fs: use device instead of file
Fix it by dropping the /dev/ component of the path.
Signed-off-by: Peter Mamonov <pmamonov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
detect_fs would usually mount a device on a directory,
so, use a device-specific type detection.
Signed-off-by: Vicente Bergas <vicencb@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
putting an error pointer into strerror can be a bit confusing since
strerror takes a positive error code but PTR_ERR returns a negative
number, so we have to do strerror(-PTR_ERR(errp)). Some places got
this wrong already, so introduce a strerrorp function which directly
takes an error pointer.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This adds a device_node member to struct cdev and a function
to find a cdev by device_node.
This also removes the setting of cdev->dev->device_node in
the of partition parser. We must not set the device since it
may not refer to a partition but to a whole device with partitions.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Some EFI get_variable() implementations don't set the attributes when
returning EFI_BUFFER_TOO_SMALL.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
RFC1350 uses the 'opcode' term for the first 2-bytes field
of TFTP packet. But the U-boot tftp code uses the 'proto' term
for the same thing.
The patch takes back original term and makes opcode calculation
more clear.
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
The separation of incoming packets handling makes it much easier
to run barebox tftp client on top of picotcp network stack in the future.
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Add the root= parameter for NFS filesystems. We currently hardcode
v3 and tcp which probably needs to become configurable at some point.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Add the parameter to boot from ubifs fileystems. This assumes that
there will be only one UBI device registered in the kernel, otherwise
there is no way to predict the ubi number.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
When registering a filesystem device add a device parameter suitable
for the Linux root= option to boot from exactly this filesystem. Currently
the fs layer sets this parameter to the root=PARTUUID= mechanism if a
partuuid is available. Other filesystems like NFS and UBIFS which do
not have a PARTUUID can overwrite this.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
- Drop usage of 'ulong', use unsigned long
- remove unnecessary intermediate casting to unsigned long
- Use proper u8/u16/u32 types. Fixes 64bit systems on which ulong is 64bit
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Linux uses SHRT_* instead of SHORT_*. The <limits.h> of C does
the same. Let's follow this standard.
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
fs/ubifs/ubifs.h includes <common.h> and the macros INT_MAX, INT_MIN,
LLONG_MAX are already defined there.
The same defines in fs/ubifs/ubifs.h are redundant.
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This file originates in Linux. Linux has it under include/linux/
directory since commit dccd2304cc90.
Let's move it to the same place as well in barebox.
This commit was generated by the following commands:
find -name '*.[chS]' | xargs sed -i -e 's:<sizes.h>:<linux/sizes.h>:'
git mv include/sizes.h include/linux/
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Implement the standard FS ops for writing/manipulating
efivars.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
We don't have a use-case yet where we need to manipulate
the attributes of a variable and it confuses "normal"
users of the variables.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Preserve info needed for easy manipulation of variables.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>