mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [RFC] [PATCH 0/2] fix barebox size when using a relocated pbl
@ 2013-09-14 12:07 Jean-Christophe PLAGNIOL-VILLARD
  2013-09-14 12:27 ` [PATCH 1/2] add fix size tools Jean-Christophe PLAGNIOL-VILLARD
  2013-09-16  8:56 ` [RFC] [PATCH 0/2] fix barebox size when using a relocated pbl Sascha Hauer
  0 siblings, 2 replies; 5+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2013-09-14 12:07 UTC (permalink / raw)
  To: barebox

Hi,

	today if we use a relocatable pbl we have 0 at 0x2c on ARM
	as the linker script can not calculte the size correctly

	so fix it post zbarebox.bin generation

Jean-Christophe PLAGNIOL-VILLARD (2):
      add fix size tools
      ARM: PBL: fix binary size

 arch/arm/pbl/Makefile |  8 ++++++++
 scripts/Makefile      |  1 +
 scripts/fix_size.c    | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 90 insertions(+)
 create mode 100644 scripts/fix_size.c

Best Regards,
J.

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/2] add fix size tools
  2013-09-14 12:07 [RFC] [PATCH 0/2] fix barebox size when using a relocated pbl Jean-Christophe PLAGNIOL-VILLARD
@ 2013-09-14 12:27 ` Jean-Christophe PLAGNIOL-VILLARD
  2013-09-14 12:27   ` [PATCH 2/2] ARM: PBL: fix binary size Jean-Christophe PLAGNIOL-VILLARD
  2013-09-16  8:56 ` [RFC] [PATCH 0/2] fix barebox size when using a relocated pbl Sascha Hauer
  1 sibling, 1 reply; 5+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2013-09-14 12:27 UTC (permalink / raw)
  To: barebox

this will allow to write the size of barebox at an offset of the binary

this is needed for ARM when using relocated binary

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
---
 scripts/Makefile   |  1 +
 scripts/fix_size.c | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 82 insertions(+)
 create mode 100644 scripts/fix_size.c

diff --git a/scripts/Makefile b/scripts/Makefile
index 307dc3d..61f31db 100644
--- a/scripts/Makefile
+++ b/scripts/Makefile
@@ -7,6 +7,7 @@
 hostprogs-$(CONFIG_KALLSYMS)     += kallsyms
 hostprogs-y                      += bin2c
 hostprogs-y                      += mkimage
+hostprogs-y                      += fix_size
 hostprogs-y                      += bareboxenv
 hostprogs-$(CONFIG_ARCH_MVEBU)   += kwbimage kwboot
 hostprogs-$(CONFIG_ARCH_NETX)    += gen_netx_image
diff --git a/scripts/fix_size.c b/scripts/fix_size.c
new file mode 100644
index 0000000..869ae7e
--- /dev/null
+++ b/scripts/fix_size.c
@@ -0,0 +1,81 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <stdint.h>
+#include <fcntl.h>
+#ifndef _BSD_SOURCE
+#define _BSD_SOURCE             /* See feature_test_macros(7) */
+#endif
+#include <endian.h>
+
+int main(int argc, char**argv)
+{
+	struct stat s;
+	int c;
+	int fd;
+	uint64_t offset = 0;
+	uint32_t size = 0;
+	char *file = NULL;
+	int ret = 1;
+	int is_bigendian = 0;
+
+	while ((c = getopt (argc, argv, "hf:o:b")) != -1) {
+		switch (c) {
+		case 'f':
+			file = optarg;
+			break;
+		case 'o':
+			offset = strtoul(optarg, NULL, 16);
+			break;
+		case 'b':
+			is_bigendian = 1;
+			break;
+		}
+	}
+
+	if (!file) {
+		fprintf(stderr, "missing file\n");
+		return 1;
+	}
+
+	if (stat(file, &s)) {
+		perror("stat");
+		return 1;
+	}
+
+	fd = open(file, O_WRONLY);
+	if (fd < 0) {
+		perror("open");
+		return 1;
+	}
+
+	ret = lseek(fd, offset, SEEK_SET);
+	if (ret < 0) {
+		perror("lseek");
+		ret = 1;
+		goto err;
+	}
+
+	size = s.st_size;
+
+	if (is_bigendian)
+		size = htobe32(size);
+	else
+		size = htole32(size);
+
+	ret = write(fd, &size, 4);
+	if (ret != 4) {
+		perror("write");
+		ret = 1;
+		goto err;
+	}
+
+	ret = 0;
+err:
+
+	close(fd);
+
+	return ret;
+}
-- 
1.8.4.rc1


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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 2/2] ARM: PBL: fix binary size
  2013-09-14 12:27 ` [PATCH 1/2] add fix size tools Jean-Christophe PLAGNIOL-VILLARD
@ 2013-09-14 12:27   ` Jean-Christophe PLAGNIOL-VILLARD
  0 siblings, 0 replies; 5+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2013-09-14 12:27 UTC (permalink / raw)
  To: barebox

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
---
 arch/arm/pbl/Makefile | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/arch/arm/pbl/Makefile b/arch/arm/pbl/Makefile
index f4b3471..f89c56b 100644
--- a/arch/arm/pbl/Makefile
+++ b/arch/arm/pbl/Makefile
@@ -13,9 +13,17 @@ targets := zbarebox.lds zbarebox zbarebox.bin zbarebox.S \
 # Make sure files are removed during clean
 extra-y       += piggy.gzip piggy.lz4 piggy.lzo piggy.lzma piggy.xzkern piggy.shipped zbarebox.map
 
+ifeq ($(CONFIG_CPU_BIG_ENDIAN),y)
+FIX_SIZE=-b
+else
+FIX_SIZE=
+endif
+
 $(obj)/zbarebox.bin:	$(obj)/zbarebox FORCE
 	$(call if_changed,objcopy)
 	$(call cmd,check_file_size,$(CONFIG_BAREBOX_MAX_IMAGE_SIZE))
+	$(Q)$(kecho) '  Barebox: fix size'
+	$(Q)$(objtree)/scripts/fix_size -f $(objtree)/$@ -o 0x2c $(FIX_SIZE)
 	$(Q)$(kecho) '  Barebox: $@ is ready'
 
 $(obj)/zbarebox.S: $(obj)/zbarebox FORCE
-- 
1.8.4.rc1


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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFC] [PATCH 0/2] fix barebox size when using a relocated pbl
  2013-09-14 12:07 [RFC] [PATCH 0/2] fix barebox size when using a relocated pbl Jean-Christophe PLAGNIOL-VILLARD
  2013-09-14 12:27 ` [PATCH 1/2] add fix size tools Jean-Christophe PLAGNIOL-VILLARD
@ 2013-09-16  8:56 ` Sascha Hauer
  2013-09-16 14:35   ` Jean-Christophe PLAGNIOL-VILLARD
  1 sibling, 1 reply; 5+ messages in thread
From: Sascha Hauer @ 2013-09-16  8:56 UTC (permalink / raw)
  To: Jean-Christophe PLAGNIOL-VILLARD; +Cc: barebox

On Sat, Sep 14, 2013 at 02:07:25PM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> Hi,
> 
> 	today if we use a relocatable pbl we have 0 at 0x2c on ARM
> 	as the linker script can not calculte the size correctly
> 
> 	so fix it post zbarebox.bin generation
> 
> Jean-Christophe PLAGNIOL-VILLARD (2):
>       add fix size tools
>       ARM: PBL: fix binary size

Looks good. Should I apply?

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFC] [PATCH 0/2] fix barebox size when using a relocated pbl
  2013-09-16  8:56 ` [RFC] [PATCH 0/2] fix barebox size when using a relocated pbl Sascha Hauer
@ 2013-09-16 14:35   ` Jean-Christophe PLAGNIOL-VILLARD
  0 siblings, 0 replies; 5+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2013-09-16 14:35 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox

On 10:56 Mon 16 Sep     , Sascha Hauer wrote:
> On Sat, Sep 14, 2013 at 02:07:25PM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> > Hi,
> > 
> > 	today if we use a relocatable pbl we have 0 at 0x2c on ARM
> > 	as the linker script can not calculte the size correctly
> > 
> > 	so fix it post zbarebox.bin generation
> > 
> > Jean-Christophe PLAGNIOL-VILLARD (2):
> >       add fix size tools
> >       ARM: PBL: fix binary size
> 
> Looks good. Should I apply?

yes please go a head

I'm working on at91bootstrap to detect if it's barebox and load only the right
size

so this help

Best Regards,
J.
> 
> Sascha
> 
> -- 
> Pengutronix e.K.                           |                             |
> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-09-16 14:34 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-09-14 12:07 [RFC] [PATCH 0/2] fix barebox size when using a relocated pbl Jean-Christophe PLAGNIOL-VILLARD
2013-09-14 12:27 ` [PATCH 1/2] add fix size tools Jean-Christophe PLAGNIOL-VILLARD
2013-09-14 12:27   ` [PATCH 2/2] ARM: PBL: fix binary size Jean-Christophe PLAGNIOL-VILLARD
2013-09-16  8:56 ` [RFC] [PATCH 0/2] fix barebox size when using a relocated pbl Sascha Hauer
2013-09-16 14:35   ` Jean-Christophe PLAGNIOL-VILLARD

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox