mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCH 1/4] ARM: socfpga: fix xload on arria10
@ 2019-08-19 10:00 Steffen Trumtrar
  2019-08-19 10:00 ` [PATCH 2/4] ARM: Arria10: achilles: fix offsets in node names Steffen Trumtrar
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Steffen Trumtrar @ 2019-08-19 10:00 UTC (permalink / raw)
  To: Barebox List

Since the commit
	5a1a5ed2537d7d12f851f3778707681d6c08d6e8
	ARM: images: use piggydata

the loading mechanism in the arria10 xload is neither functional nor needed.
Now, barebox has/can be loaded like a normal image, so the filesize, that is
written to the barebox header, can be evaluated.

Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
---
 arch/arm/mach-socfpga/arria10-xload.c | 65 ++++++---------------------
 images/Makefile.socfpga               |  2 +-
 2 files changed, 14 insertions(+), 53 deletions(-)

diff --git a/arch/arm/mach-socfpga/arria10-xload.c b/arch/arm/mach-socfpga/arria10-xload.c
index 3622a3cd9cf4..047f61246cbf 100644
--- a/arch/arm/mach-socfpga/arria10-xload.c
+++ b/arch/arm/mach-socfpga/arria10-xload.c
@@ -386,70 +386,31 @@ int arria10_load_fpga(int offset, int bitstream_size)
 	return 0;
 }
 
-static int image_size(void)
-{
-	uint32_t *image_end = (void *)__image_end;
-	uint32_t payload_len;
-	uint32_t pbl_len;
-	uint32_t arria10_header_len;
-	uint32_t sizep;
-	uint32_t arria10_crc;
-
-	/* arria10 header is 512 byte */
-	arria10_header_len = 512;
-	/* pbl is appended with 4 byte CRC for boot rom */
-	arria10_crc = 4;
-
-	/* The length of the PBL image */
-	pbl_len = __image_end - _text;
-
-	sizep = 4;
-
-	/* The length of the payload is appended directly behind the PBL */
-	payload_len = *(image_end);
-
-	return pbl_len + arria10_header_len + sizep + arria10_crc + payload_len;
-}
-
 void arria10_start_image(int offset)
 {
 	void *buf = (void *)0x0;
-	void *in_buf = (void *)SZ_1M;
 	uint32_t start;
-	int size = 0;
-	int ret;
+        unsigned int size;
+        int ret;
 	void __noreturn (*bb)(void);
-	uint32_t pbl_len = __image_end - _text;
-	uint32_t *image_end = (void *)__image_end;
-	uint32_t arria10_header_len;
-	uint32_t sizep;
-	uint32_t arria10_crc;
-
-	size = image_size();
 
 	start = bootloader.first_sec + offset / SECTOR_SIZE;
 
-	ret = arria10_read_blocks(buf, start, ALIGN(size, SECTOR_SIZE));
-	if (ret) {
-		puts_ll("Loading image failed\n");
+        ret = arria10_read_blocks(buf, start, ALIGN(ARM_HEAD_SIZE, SECTOR_SIZE));
+        if (ret)
 		hang();
-	}
-
-	/* arria10 header is 512 byte */
-	arria10_header_len = 512;
-	sizep = 4;
 
-	/* copy PBL */
-	memcpy(in_buf, buf, pbl_len + sizep + arria10_header_len);
-
-	/* pbl is appended with 4 byte CRC for boot rom */
-	arria10_crc = 4;
+	if (is_barebox_arm_head(buf))
+		size = *((unsigned int *)buf + ARM_HEAD_SIZE_OFFSET /
+			 sizeof(unsigned int));
+	else
+		hang();
 
-	/* copy payload, skip the Arria10 CRC */
-	memcpy(in_buf + pbl_len + sizep + arria10_header_len,
-	       buf + pbl_len + sizep + arria10_header_len + arria10_crc, *(image_end));
+        ret = arria10_read_blocks(buf, start, ALIGN(size, SECTOR_SIZE));
+        if (ret)
+		hang();
 
-	bb = in_buf;
+	bb = buf;
 
 	bb();
 
diff --git a/images/Makefile.socfpga b/images/Makefile.socfpga
index 6b346a5f8414..b36e2a5033d3 100644
--- a/images/Makefile.socfpga
+++ b/images/Makefile.socfpga
@@ -4,7 +4,7 @@
 
 # %.socfpgaimg - convert into socfpga image
 # ----------------------------------------------------------------
-SOCFPGA_IMAGE_ARGS-$(CONFIG_ARCH_SOCFPGA_ARRIA10) += -v1
+SOCFPGA_IMAGE_ARGS-$(CONFIG_ARCH_SOCFPGA_ARRIA10) += -v1 -b
 SOCFPGA_IMAGE_ARGS-$(CONFIG_ARCH_SOCFPGA_CYCLONE5) += -v0
 
 quiet_cmd_socfpga_image = SOCFPGA-IMG $@
-- 
2.20.1


_______________________________________________
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:[~2019-08-21  6:45 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-19 10:00 [PATCH 1/4] ARM: socfpga: fix xload on arria10 Steffen Trumtrar
2019-08-19 10:00 ` [PATCH 2/4] ARM: Arria10: achilles: fix offsets in node names Steffen Trumtrar
2019-08-19 10:00 ` [PATCH 3/4] ARM: Arria10: achilles: add named partitions Steffen Trumtrar
2019-08-19 10:00 ` [PATCH 4/4] ARM: achilles: add bbu handler Steffen Trumtrar
2019-08-21  6:45 ` [PATCH 1/4] ARM: socfpga: fix xload on arria10 Sascha Hauer

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