Re: imx-usb-loader on imx8mq/mm

2019-12-13 Thread Yazdani, Reyhaneh
Thanks Sascha,

I could finally program Barebox on eMMC from u-boot :)

Best,
Reyhaneh

On 12/13/19 8:55 AM, Sascha Hauer wrote:
> On Fri, Dec 13, 2019 at 07:20:15AM +, Yazdani, Reyhaneh wrote:
>> Thanks Lucas.
>>
>> So, if I have a board which has only eMMC (no SD card). What would be your
>> recommendation about programming it with Barebox?
>>
>> Currently, I program U-Boot via uuu utility and then from Kernel, I program
>> Barebox on boot1 partition of eMMC (boot0 is not possible).
>>
>> I am trying at least to program Barebox in U-boot via ums, mmc write , ... 
>> but
>> until now I am not successful. Do you have any experience or idea?
>
> The image as it's falling out of the barebox build should be written
> straight to the eMMC. The eMMC itself has a setting which specifies
> where the i.MX will boot from, valid setting are user area, boot0 or
> boot1. It can be that this setting doesn't match the area you are
> writing to.
>
> Another way would be to start barebox from U-Boot and let the
> barebox-update command do the job of writing barebox to the eMMC.
>
> Sascha
>

--
Reyhaneh Yazdani
Data Modul AGTEL:+49-89-56017-154
Embedded development FAX:+49-89-56017-119
Linux - Development  RG: HR-Muenchen B-85591
Landsberger Str. 322 D-80687 Muenchen - http://www.data-modul.com

Vertrauliche E-Mail von / Confidential e-mail from: DATA MODUL AG
Vorstand / CEO: Dr. Florian Pesahl
Vorsitzende des Aufsichtsrates / Chairwoman of the Supervisory Board: Kristin 
D. Russell
Sitz der Gesellschaft / Registered Office: München
Registergericht / Registration Court: München Handelsregister B 85 591



___
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


[PATCH 2/4] cdev: Add discard_range hook

2019-12-13 Thread Sascha Hauer
To pass though discard_range() to the underlying drivers add a
discard_range hook to struct cdev_operations.

Signed-off-by: Sascha Hauer 
---
 fs/devfs.c   | 21 +
 include/driver.h |  1 +
 2 files changed, 22 insertions(+)

diff --git a/fs/devfs.c b/fs/devfs.c
index d088c1a66c..e1893d1bd0 100644
--- a/fs/devfs.c
+++ b/fs/devfs.c
@@ -94,6 +94,26 @@ static int devfs_protect(struct device_d *_dev, FILE *f, 
size_t count, loff_t of
return cdev->ops->protect(cdev, count, offset + cdev->offset, prot);
 }
 
+static int devfs_discard_range(struct device_d *dev, FILE *f, loff_t count,
+  loff_t offset)
+{
+   struct cdev *cdev = f->priv;
+
+   if (!cdev->ops->discard_range)
+   return -ENOSYS;
+
+   if (cdev->flags & DEVFS_PARTITION_READONLY)
+   return -EPERM;
+
+   if (offset >= cdev->size)
+   return 0;
+
+   if (count + offset > cdev->size)
+   count = cdev->size - offset;
+
+   return cdev->ops->discard_range(cdev, count, offset + cdev->offset);
+}
+
 static int devfs_memmap(struct device_d *_dev, FILE *f, void **map, int flags)
 {
struct cdev *cdev = f->priv;
@@ -329,6 +349,7 @@ static struct fs_driver_d devfs_driver = {
.truncate  = devfs_truncate,
.erase = devfs_erase,
.protect   = devfs_protect,
+   .discard_range = devfs_discard_range,
.memmap= devfs_memmap,
.flags = FS_DRIVER_NO_DEV,
.drv = {
diff --git a/include/driver.h b/include/driver.h
index ad59ce90c3..f379b0cc73 100644
--- a/include/driver.h
+++ b/include/driver.h
@@ -439,6 +439,7 @@ struct cdev_operations {
int (*flush)(struct cdev*);
int (*erase)(struct cdev*, loff_t count, loff_t offset);
int (*protect)(struct cdev*, size_t count, loff_t offset, int prot);
+   int (*discard_range)(struct cdev*, loff_t count, loff_t offset);
int (*memmap)(struct cdev*, void **map, int flags);
int (*truncate)(struct cdev*, size_t size);
 };
-- 
2.24.0


___
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


[PATCH 4/4] copy_file: call discard_range on destination file

2019-12-13 Thread Sascha Hauer
discard the range in the output file we are going to overwrite anyway.

Signed-off-by: Sascha Hauer 
---
 lib/libfile.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/libfile.c b/lib/libfile.c
index 5a1817e32a..dbeed12ccd 100644
--- a/lib/libfile.c
+++ b/lib/libfile.c
@@ -367,6 +367,8 @@ int copy_file(const char *src, const char *dst, int verbose)
goto out;
}
 
+   discard_range(dstfd, srcstat.st_size, 0);
+
if (verbose) {
if (stat(src, ) < 0)
srcstat.st_size = 0;
-- 
2.24.0


___
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


[PATCH 3/4] block: Implement discard_range

2019-12-13 Thread Sascha Hauer
This implements the discard_range hook. When a range of data is
discarded then we do not have to read it from the device and can
pass a zeroed buffer instead.

Signed-off-by: Sascha Hauer 
---
 common/block.c  | 21 +
 include/block.h |  3 +++
 2 files changed, 24 insertions(+)

diff --git a/common/block.c b/common/block.c
index 97cf5dc4de..8b43c3c83a 100644
--- a/common/block.c
+++ b/common/block.c
@@ -161,6 +161,14 @@ static int block_cache(struct block_device *blk, int block)
dev_dbg(blk->dev, "%s: %d to %d\n", __func__, chunk->block_start,
chunk->num);
 
+   if (chunk->block_start * BLOCKSIZE(blk) >= blk->discard_start &&
+   chunk->block_start * BLOCKSIZE(blk) + writebuffer_io_len(blk, chunk)
+   <= blk->discard_start + blk->discard_size) {
+   memset(chunk->data, 0, writebuffer_io_len(blk, chunk));
+   list_add(>list, >buffered_blocks);
+   return 0;
+   }
+
ret = blk->ops->read(blk, chunk->data, chunk->block_start,
 writebuffer_io_len(blk, chunk));
if (ret) {
@@ -337,11 +345,23 @@ static int block_op_flush(struct cdev *cdev)
 {
struct block_device *blk = cdev->priv;
 
+   blk->discard_start = blk->discard_size = 0;
+
return writebuffer_flush(blk);
 }
 
 static int block_op_close(struct cdev *cdev) __alias(block_op_flush);
 
+static int block_op_discard_range(struct cdev *cdev, loff_t count, loff_t 
offset)
+{
+   struct block_device *blk = cdev->priv;
+
+   blk->discard_start = offset;
+   blk->discard_size = count;
+
+   return 0;
+}
+
 static struct cdev_operations block_ops = {
.read   = block_op_read,
 #ifdef CONFIG_BLOCK_WRITE
@@ -349,6 +369,7 @@ static struct cdev_operations block_ops = {
 #endif
.close  = block_op_close,
.flush  = block_op_flush,
+   .discard_range = block_op_discard_range,
 };
 
 int blockdevice_register(struct block_device *blk)
diff --git a/include/block.h b/include/block.h
index 91377679b0..d35c4ecdf4 100644
--- a/include/block.h
+++ b/include/block.h
@@ -23,6 +23,9 @@ struct block_device {
int rdbufsize;
int blkmask;
 
+   loff_t discard_start;
+   loff_t discard_size;
+
struct list_head buffered_blocks;
struct list_head idle_blocks;
 
-- 
2.24.0


___
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


[PATCH 0/4] add discard_range to improve write speed on block devices

2019-12-13 Thread Sascha Hauer
This implements an idea Lucas came up with: Our block layer is quite
stupid. It works on chunks from which one is currently 16KiB in size.
Whenever such a chunk is written to we must write the whole chunk which
also means we have to read it from the device first in order to keep
unaffected data. This series adds a discard_range() function which
can be used to tell the block layer that a certain range of the device
will be overwritten and the current content is no longer needed and
thus doesn't have to be read. With this I saw a speed gain of around
30% when writing to a SD card.

This series still needs a closer look before I want to merge it, but
it's already worth being looked at ;)

Sascha

Sascha Hauer (4):
  fs: Introduce discard_range()
  cdev: Add discard_range hook
  block: Implement discard_range
  copy_file: call discard_range on destination file

 common/block.c   | 21 +
 fs/devfs.c   | 21 +
 fs/fs.c  | 25 +
 include/block.h  |  3 +++
 include/driver.h |  1 +
 include/fs.h |  3 +++
 lib/libfile.c|  2 ++
 7 files changed, 76 insertions(+)

-- 
2.24.0


___
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


[PATCH 1/4] fs: Introduce discard_range()

2019-12-13 Thread Sascha Hauer
discard_range() is a way to tell the lower layers that we are no longer
interested in a data range of a file, so that the lower layers can
discard the underlying data if desired.

This is mainly designed to bypass the deficiencies of our block layer.
We cache the block data in chunks of multiple KiB (16 currently) if
we fall into the block layer with write requests smaller than that
we have to read/modify/write a chunk. With the help of discard_range()
code writing files to a raw block device can now discard the range the
file will be written to. The block layer then no longer has to read
the chunks first that are inside the discard range.

Signed-off-by: Sascha Hauer 
---
 fs/fs.c  | 25 +
 include/fs.h |  3 +++
 2 files changed, 28 insertions(+)

diff --git a/fs/fs.c b/fs/fs.c
index 12faaebc27..e00bbcd223 100644
--- a/fs/fs.c
+++ b/fs/fs.c
@@ -497,6 +497,31 @@ int protect(int fd, size_t count, loff_t offset, int prot)
 }
 EXPORT_SYMBOL(protect);
 
+int discard_range(int fd, loff_t count, loff_t offset)
+{
+   struct fs_driver_d *fsdrv;
+   FILE *f = fd_to_file(fd);
+   int ret;
+
+   if (IS_ERR(f))
+   return -errno;
+   if (offset >= f->size)
+   return 0;
+   if (count > f->size - offset)
+   count = f->size - offset;
+
+   fsdrv = f->fsdev->driver;
+   if (fsdrv->discard_range)
+   ret = fsdrv->discard_range(>fsdev->dev, f, count, offset);
+   else
+   ret = -ENOSYS;
+
+   if (ret)
+   errno = -ret;
+
+   return ret;
+}
+
 int protect_file(const char *file, int prot)
 {
int fd, ret;
diff --git a/include/fs.h b/include/fs.h
index 38debfc41b..d9684c82b1 100644
--- a/include/fs.h
+++ b/include/fs.h
@@ -60,6 +60,8 @@ struct fs_driver_d {
loff_t offset);
int (*protect)(struct device_d *dev, FILE *f, size_t count,
loff_t offset, int prot);
+   int (*discard_range)(struct device_d *dev, FILE *f, loff_t count,
+   loff_t offset);
 
int (*memmap)(struct device_d *dev, FILE *f, void **map, int flags);
 
@@ -127,6 +129,7 @@ int umount_by_cdev(struct cdev *cdev);
 #define ERASE_SIZE_ALL ((loff_t) - 1)
 int erase(int fd, loff_t count, loff_t offset);
 int protect(int fd, size_t count, loff_t offset, int prot);
+int discard_range(int fd, loff_t count, loff_t offset);
 int protect_file(const char *file, int prot);
 void *memmap(int fd, int flags);
 
-- 
2.24.0


___
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


Re: [BUG] imx6qdl: degraded eMMC write performance

2019-12-13 Thread Sascha Hauer
On Tue, Dec 10, 2019 at 03:44:52PM +0100, Hubert Feurstein wrote:
> Hi,
> 
> I've updated barebox for our custom platform from v2015.06.0 to
> v2019.12.0. With the new version I have noticed a much worse write
> performance onto the onboard eMMC.
> 
> With v2015.06.0 the indicated progress of the copy command is very
> smooth. Calling "cp -v /dev/zero /dev/mmc3.root" takes about 80
> seconds for 256MB. But with v2019.12.0 the progress is very bumpy and
> the copy takes about 280 seconds.
> 
> I've tracked this down to this commit which destroys the performance:
> "block: Adjust cache sizes" (b6fef20c1215c6ef0004f6af4a9c4b77af51dc43)

We could just revert this patch. I can't find any workload that gets
faster with b6fef20c1215. It's rather the other way round.

Sascha

-- 
Pengutronix e.K.   | |
Steuerwalder Str. 21   | http://www.pengutronix.de/  |
31137 Hildesheim, Germany  | Phone: +49-5121-206917-0|
Amtsgericht Hildesheim, HRA 2686   | Fax:   +49-5121-206917- |

___
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


Re: [PATCH 1/2] ARM: omap: support for WAGO PFC200v3 750-821x

2019-12-13 Thread Ahmad Fatoum
Hello Roland,

On 12/11/19 9:02 PM, Roland Hieber wrote:
> diff --git a/arch/arm/boards/wago-pfc-am335x/ram-timings.h 
> b/arch/arm/boards/wago-pfc-am335x/ram-timings.h
> new file mode 100644
> index ..cc3d518f0c27
> --- /dev/null
> +++ b/arch/arm/boards/wago-pfc-am335x/ram-timings.h
> @@ -0,0 +1,94 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
> +/*
> + * Copyright (C) 2015 Wadim Egorov, PHYTEC Messtechnik GmbH
> + *
> + * Copyright (C) 2018 WAGO Kontakttechnik GmbH & Co. KG 
> 
> + * Author: Oleg Karfich 
> + */
> +
> +#ifndef __RAM_TIMINGS_H
> +#define __RAM_TIMINGS_H
> +
> +#define DDR_IOCTRL   0x18B
> +
> +struct am335x_sdram_timings {
> + struct am33xx_emif_regs regs;
> + struct am33xx_ddr_data data;
> + struct am33xx_cmd_control cmd_ctrl;
> +};
> +
> +enum {
> + PFC_DDR3_256MB,
> + PFC_DDR3_512MB,
> +};
> +
> +struct am335x_sdram_timings pfc_timings[] = {

This should be static.

-- 
Pengutronix e.K.   | |
Steuerwalder Str. 21   | http://www.pengutronix.de/  |
31137 Hildesheim, Germany  | Phone: +49-5121-206917-0|
Amtsgericht Hildesheim, HRA 2686   | Fax:   +49-5121-206917- |

___
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


Re: [PATCH 1/2] ARM: omap: support for WAGO PFC200v3 750-821x

2019-12-13 Thread Sascha Hauer
On Wed, Dec 11, 2019 at 09:02:43PM +0100, Roland Hieber wrote:
> Based on the downstream patch series in the WAGO PFC firmware SDK [1].
> Downstream has support for other boards too, which we leave out for now
> because no devices are available for testing. The upstream device trees
> have been used as-is except that uart0 was set to "okay" so barebox can
> enable the console on startup.
> 
> [1]: 
> https://github.com/WAGO/pfc-firmware-sdk/tree/V03.02.02-FW14/configs/wago-pfcXXX/patches/barebox-2018.10.0
> 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +
> +static int pfc_coredevice_init(void)
> +{
> + if (!of_machine_is_compatible("wago,am335x-pfc"))
> + return 0;
> +
> + am33xx_register_ethaddr(0, 0);
> +
> + return 0;
> +}
> +coredevice_initcall(pfc_coredevice_init);

You register a MAC for eth0 once here...

> +
> +#define ETH_DEVICE   0
> +#define ETHADDR_EEPROM_OFFSET512
> +#define ETHADDR_EEPROM_LENGTH6
> +static int pfc_set_ethaddr(void)
> +{
> + struct cdev *cdev;
> + u8 mac[6];
> + int ret;
> +
> + cdev = cdev_by_name("eeprom0");
> + if (!cdev)
> + return -ENODEV;
> +
> + ret = cdev_read(cdev, mac, ETHADDR_EEPROM_LENGTH, 
> ETHADDR_EEPROM_OFFSET, 0);
> + if (ret < 0)
> + return ret;
> +
> + eth_register_ethaddr(ETH_DEVICE, mac);

And then here again. Please decide, or implement a fallback if one
source doesn't provide a valid MAC address.

> +
> + return 0;
> +}
> +
> +static int pfc_devices_init(void)
> +{
> + int ret;
> +
> + if (!of_machine_is_compatible("wago,am335x-pfc"))
> + return 0;
> +
> + if (bootsource_get() == BOOTSOURCE_MMC) {
> + if (bootsource_get_instance() == 0) {
> + omap_set_bootmmc_devname("mmc0");
> + } else {
> + omap_set_bootmmc_devname("mmc1");
> + am33xx_bbu_emmc_mlo_register_handler("mlo.emmc",
> + "/dev/mmc1");

Why only register an update handler only when we boot from MMC? This
should always be registered.

> + }
> + }
> +
> + of_device_enable_path("/chosen/environment-sd");

This is done unconditionally. Why isn't this enabled in the device tree
already?

> + defaultenv_append_directory(defaultenv_pfc_am335x);
> +
> + ret = pfc_set_ethaddr();
> + if (ret < 0) {
> + pr_info("no valid ethaddr in eeprom found. Using randomized "
> + "MAC address\n");
> + }
> +
> + if (IS_ENABLED(CONFIG_SHELL_NONE))
> + return am33xx_of_register_bootdevice();
> +
> + return 0;
> +}
> +device_initcall(pfc_devices_init);
> diff --git a/arch/arm/boards/wago-pfc-am335x/defaultenv-pfc-am335x/boot/emmc 
> b/arch/arm/boards/wago-pfc-am335x/defaultenv-pfc-am335x/boot/emmc
> new file mode 100644
> index ..9affcbe2ec18
> --- /dev/null
> +++ b/arch/arm/boards/wago-pfc-am335x/defaultenv-pfc-am335x/boot/emmc
> @@ -0,0 +1,4 @@
> +#!/bin/sh
> +global.bootm.image=/mnt/mmc1.0/linuximage
> +global.bootm.oftree=/mnt/mmc1.0/oftree
> +global.linux.bootargs.dyn.root="root=/dev/mmcblk1p2 rw rootwait"
> diff --git a/arch/arm/boards/wago-pfc-am335x/defaultenv-pfc-am335x/boot/mmc 
> b/arch/arm/boards/wago-pfc-am335x/defaultenv-pfc-am335x/boot/mmc
> new file mode 100644
> index ..1430a0f76614
> --- /dev/null
> +++ b/arch/arm/boards/wago-pfc-am335x/defaultenv-pfc-am335x/boot/mmc
> @@ -0,0 +1,4 @@
> +#!/bin/sh
> +global.bootm.image=/mnt/mmc0.0/linuximage
> +global.bootm.oftree=/mnt/mmc0.0/oftree
> +global.linux.bootargs.dyn.root="root=/dev/mmcblk0p2 rw rootwait"
> diff --git 
> a/arch/arm/boards/wago-pfc-am335x/defaultenv-pfc-am335x/init/bootsource 
> b/arch/arm/boards/wago-pfc-am335x/defaultenv-pfc-am335x/init/bootsource
> new file mode 100644
> index ..f35c7df46e03
> --- /dev/null
> +++ b/arch/arm/boards/wago-pfc-am335x/defaultenv-pfc-am335x/init/bootsource
> @@ -0,0 +1,12 @@
> +#!/bin/sh
> +if [ -n "$nv.boot.default" ]; then
> + exit
> +fi
> +
> +if [ $bootsource = mmc -a $bootsource_instance = 1 ]; then
> + global.boot.default="emmc mmc net"
> +elif [ $bootsource = mmc -a $bootsource_instance = 0 ]; then
> + global.boot.default="mmc emmc net"
> +elif [ $bootsource = net ]; then
> + global.boot.default="net emmc mmc"
> +fi
> diff --git a/arch/arm/boards/wago-pfc-am335x/lowlevel.c 
> b/arch/arm/boards/wago-pfc-am335x/lowlevel.c
> new file mode 100644
> index ..78112cb03cd6
> --- /dev/null
> +++ b/arch/arm/boards/wago-pfc-am335x/lowlevel.c
> @@ -0,0 +1,98 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
> +/*
> + * Copyright (C) 2015 Wadim Egorov, PHYTEC Messtechnik GmbH
> + *
> + * Copyright (C) 2018 WAGO Kontakttechnik GmbH & Co. KG 
> 
> + * Author: Oleg Karfich 
> + */
> +
> +#include 
> +#include 
> +#include 
> +#include 
> 

Re: [PATCH] led: pca955x: remove ineffectual assignment

2019-12-13 Thread Sascha Hauer
On Thu, Dec 12, 2019 at 08:24:57PM +0100, Ahmad Fatoum wrote:
> the .num member of struct led is a 'private' member populated by
> led_register. Populating it has no effect because it's always
> overwritten. Remove the assignment.
> 
> Signed-off-by: Ahmad Fatoum 
> ---
>  drivers/led/led-pca955x.c | 1 -
>  1 file changed, 1 deletion(-)

Applied, thanks

Sascha


-- 
Pengutronix e.K.   | |
Steuerwalder Str. 21   | http://www.pengutronix.de/  |
31137 Hildesheim, Germany  | Phone: +49-5121-206917-0|
Amtsgericht Hildesheim, HRA 2686   | Fax:   +49-5121-206917- |

___
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


Re: [PATCH] commands: led: print actual error code when led_set fails

2019-12-13 Thread Sascha Hauer
On Thu, Dec 12, 2019 at 08:34:17PM +0100, Ahmad Fatoum wrote:
> If led_set fails, the error code is the return value, not errno.
> Fix this. While at replace the magic value in the command return code.
> 
> Signed-off-by: Ahmad Fatoum 
> ---
>  commands/led.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

Applied, thanks

Sascha

-- 
Pengutronix e.K.   | |
Steuerwalder Str. 21   | http://www.pengutronix.de/  |
31137 Hildesheim, Germany  | Phone: +49-5121-206917-0|
Amtsgericht Hildesheim, HRA 2686   | Fax:   +49-5121-206917- |

___
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


Re: [PATCH] commands: miitool: handle powerdown-flag

2019-12-13 Thread Sascha Hauer
On Wed, Dec 11, 2019 at 10:53:32AM +0100, Hubert Feurstein wrote:
> Signed-off-by: Hubert Feurstein 
> ---
>  commands/miitool.c | 7 ++-
>  1 file changed, 6 insertions(+), 1 deletion(-)

Applied, thanks

Sascha

-- 
Pengutronix e.K.   | |
Steuerwalder Str. 21   | http://www.pengutronix.de/  |
31137 Hildesheim, Germany  | Phone: +49-5121-206917-0|
Amtsgericht Hildesheim, HRA 2686   | Fax:   +49-5121-206917- |

___
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


Re: [PATCH] habv4: add the possibility to changing the signing area from Kconfig

2019-12-13 Thread Sascha Hauer
On Wed, Dec 11, 2019 at 10:10:10AM +0100, Maik Otto wrote:
> Hi Sascha,
> 
> so do you think we should always start from-dcdofs instead of full?
> at the moment i use this configuration with from-dcdofs and i think you
> have right, there is
> not really a good case to sign the area between 0x00 and dcdofs in the
> barebox build
> What is the best solution in your opinion?
> change default from full to dcdofs in the scripts/imx/imx.c ?
> additional delete full and skip-mbr ?

Yes. Always only check the executed image without the 1KiB padding at
the beginning. Note that on i.MX8 it's 32KiB padding until the image
start.

Sascha

-- 
Pengutronix e.K.   | |
Steuerwalder Str. 21   | http://www.pengutronix.de/  |
31137 Hildesheim, Germany  | Phone: +49-5121-206917-0|
Amtsgericht Hildesheim, HRA 2686   | Fax:   +49-5121-206917- |

___
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox