* [Buildroot] [PATCH] mpkimage: new package
@ 2015-10-19 21:45 Maxime Hadjinlian
2015-10-19 16:24 ` [Buildroot] [PATCH 0/4] Attempt to improve support for Altera SoC FPGA boards Jan Viktorin
` (2 more replies)
0 siblings, 3 replies; 38+ messages in thread
From: Maxime Hadjinlian @ 2015-10-19 21:45 UTC (permalink / raw)
To: buildroot
mkpimage is a necessary tool used to "signed" U-Boot SPL for the Altera
SoCFPGA family.
The code of mkpimage is integrated directly from the Barebox repository
as stated in the 'mkpimage.mk' file.
This tool is *NOT* necessary for any other boards so far.
Signed-off-by Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
---
package/Config.in.host | 1 +
package/mkpimage/Config.in.host | 7 +
package/mkpimage/mkpimage.c | 287 ++++++++++++++++++++++++++++++++++++++++
package/mkpimage/mkpimage.mk | 22 +++
4 files changed, 317 insertions(+)
create mode 100644 package/mkpimage/Config.in.host
create mode 100644 package/mkpimage/mkpimage.c
create mode 100644 package/mkpimage/mkpimage.mk
diff --git a/package/Config.in.host b/package/Config.in.host
index 1f69687..a4662d7 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -15,6 +15,7 @@ menu "Host utilities"
source "package/imx-usb-loader/Config.in.host"
source "package/lpc3250loader/Config.in.host"
source "package/mke2img/Config.in.host"
+ source "package/mkpimage/Config.in.host"
source "package/mtd/Config.in.host"
source "package/mtools/Config.in.host"
source "package/omap-u-boot-utils/Config.in.host"
diff --git a/package/mkpimage/Config.in.host b/package/mkpimage/Config.in.host
new file mode 100644
index 0000000..3f55568
--- /dev/null
+++ b/package/mkpimage/Config.in.host
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_HOST_MKPIMAGE
+ bool "host-mkpimage"
+ help
+ This packages contains the 'mkpimage' tool from Barebox.
+ It's used to sign the U-Boot SPL for the Altera's SoCFPGA family.
+
+ http://git.pengutronix.de/?p=barebox.git;a=blob;f=scripts/socfpga_mkimage.c
diff --git a/package/mkpimage/mkpimage.c b/package/mkpimage/mkpimage.c
new file mode 100644
index 0000000..1a7a66d
--- /dev/null
+++ b/package/mkpimage/mkpimage.c
@@ -0,0 +1,287 @@
+#include <stdio.h>
+#include <unistd.h>
+#include <getopt.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <endian.h>
+
+#define VALIDATION_WORD 0x31305341
+
+#define MAX_IMAGE_SIZE (60 * 1024 - 4)
+
+static int add_barebox_header;
+
+struct socfpga_header {
+ uint8_t validation_word[4];
+ uint8_t version;
+ uint8_t flags;
+ uint8_t program_length[2];
+ uint8_t spare[2];
+ uint8_t checksum[2];
+};
+
+static uint32_t bb_header[] = {
+ 0xea00007e, /* b 0x200 */
+ 0xeafffffe, /* 1: b 1b */
+ 0xeafffffe, /* 1: b 1b */
+ 0xeafffffe, /* 1: b 1b */
+ 0xeafffffe, /* 1: b 1b */
+ 0xeafffffe, /* 1: b 1b */
+ 0xeafffffe, /* 1: b 1b */
+ 0xeafffffe, /* 1: b 1b */
+ 0x65726162, /* 'bare' */
+ 0x00786f62, /* 'box\0' */
+ 0x00000000, /* padding */
+ 0x00000000, /* padding */
+ 0x00000000, /* padding */
+ 0x00000000, /* padding */
+ 0x00000000, /* padding */
+ 0x00000000, /* padding */
+ 0x00000000, /* socfpga header */
+ 0x00000000, /* socfpga header */
+ 0x00000000, /* socfpga header */
+ 0xea00006b, /* entry. b 0x200 */
+};
+
+static int read_full(int fd, void *buf, size_t size)
+{
+ size_t insize = size;
+ int now;
+ int total = 0;
+
+ while (size) {
+ now = read(fd, buf, size);
+ if (now == 0)
+ return total;
+ if (now < 0)
+ return now;
+ total += now;
+ size -= now;
+ buf += now;
+ }
+
+ return insize;
+}
+
+static int write_full(int fd, void *buf, size_t size)
+{
+ size_t insize = size;
+ int now;
+
+ while (size) {
+ now = write(fd, buf, size);
+ if (now <= 0)
+ return now;
+ size -= now;
+ buf += now;
+ }
+
+ return insize;
+}
+
+static uint32_t crc_table[256] = {
+ 0x00000000, 0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 0x17c56b6b,
+ 0x1a864db2, 0x1e475005, 0x2608edb8, 0x22c9f00f, 0x2f8ad6d6, 0x2b4bcb61,
+ 0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd, 0x4c11db70, 0x48d0c6c7,
+ 0x4593e01e, 0x4152fda9, 0x5f15adac, 0x5bd4b01b, 0x569796c2, 0x52568b75,
+ 0x6a1936c8, 0x6ed82b7f, 0x639b0da6, 0x675a1011, 0x791d4014, 0x7ddc5da3,
+ 0x709f7b7a, 0x745e66cd, 0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039,
+ 0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5, 0xbe2b5b58, 0xbaea46ef,
+ 0xb7a96036, 0xb3687d81, 0xad2f2d84, 0xa9ee3033, 0xa4ad16ea, 0xa06c0b5d,
+ 0xd4326d90, 0xd0f37027, 0xddb056fe, 0xd9714b49, 0xc7361b4c, 0xc3f706fb,
+ 0xceb42022, 0xca753d95, 0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1,
+ 0xe13ef6f4, 0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d, 0x34867077, 0x30476dc0,
+ 0x3d044b19, 0x39c556ae, 0x278206ab, 0x23431b1c, 0x2e003dc5, 0x2ac12072,
+ 0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16, 0x018aeb13, 0x054bf6a4,
+ 0x0808d07d, 0x0cc9cdca, 0x7897ab07, 0x7c56b6b0, 0x71159069, 0x75d48dde,
+ 0x6b93dddb, 0x6f52c06c, 0x6211e6b5, 0x66d0fb02, 0x5e9f46bf, 0x5a5e5b08,
+ 0x571d7dd1, 0x53dc6066, 0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba,
+ 0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e, 0xbfa1b04b, 0xbb60adfc,
+ 0xb6238b25, 0xb2e29692, 0x8aad2b2f, 0x8e6c3698, 0x832f1041, 0x87ee0df6,
+ 0x99a95df3, 0x9d684044, 0x902b669d, 0x94ea7b2a, 0xe0b41de7, 0xe4750050,
+ 0xe9362689, 0xedf73b3e, 0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2,
+ 0xc6bcf05f, 0xc27dede8, 0xcf3ecb31, 0xcbffd686, 0xd5b88683, 0xd1799b34,
+ 0xdc3abded, 0xd8fba05a, 0x690ce0ee, 0x6dcdfd59, 0x608edb80, 0x644fc637,
+ 0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb, 0x4f040d56, 0x4bc510e1,
+ 0x46863638, 0x42472b8f, 0x5c007b8a, 0x58c1663d, 0x558240e4, 0x51435d53,
+ 0x251d3b9e, 0x21dc2629, 0x2c9f00f0, 0x285e1d47, 0x36194d42, 0x32d850f5,
+ 0x3f9b762c, 0x3b5a6b9b, 0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff,
+ 0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623, 0xf12f560e, 0xf5ee4bb9,
+ 0xf8ad6d60, 0xfc6c70d7, 0xe22b20d2, 0xe6ea3d65, 0xeba91bbc, 0xef68060b,
+ 0xd727bbb6, 0xd3e6a601, 0xdea580d8, 0xda649d6f, 0xc423cd6a, 0xc0e2d0dd,
+ 0xcda1f604, 0xc960ebb3, 0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7,
+ 0xae3afba2, 0xaafbe615, 0xa7b8c0cc, 0xa379dd7b, 0x9b3660c6, 0x9ff77d71,
+ 0x92b45ba8, 0x9675461f, 0x8832161a, 0x8cf30bad, 0x81b02d74, 0x857130c3,
+ 0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640, 0x4e8ee645, 0x4a4ffbf2,
+ 0x470cdd2b, 0x43cdc09c, 0x7b827d21, 0x7f436096, 0x7200464f, 0x76c15bf8,
+ 0x68860bfd, 0x6c47164a, 0x61043093, 0x65c52d24, 0x119b4be9, 0x155a565e,
+ 0x18197087, 0x1cd86d30, 0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec,
+ 0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088, 0x2497d08d, 0x2056cd3a,
+ 0x2d15ebe3, 0x29d4f654, 0xc5a92679, 0xc1683bce, 0xcc2b1d17, 0xc8ea00a0,
+ 0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb, 0xdbee767c, 0xe3a1cbc1, 0xe760d676,
+ 0xea23f0af, 0xeee2ed18, 0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4,
+ 0x89b8fd09, 0x8d79e0be, 0x803ac667, 0x84fbdbd0, 0x9abc8bd5, 0x9e7d9662,
+ 0x933eb0bb, 0x97ffad0c, 0xafb010b1, 0xab710d06, 0xa6322bdf, 0xa2f33668,
+ 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4
+};
+
+uint32_t crc32(uint32_t crc, void *_buf, int length)
+{
+ uint8_t *buf = _buf;
+
+ while (length--)
+ crc = crc << 8 ^ crc_table[(crc >> 24 ^ *(buf++)) & 0xff];
+
+ return crc;
+}
+
+static int add_socfpga_header(void *buf, int size)
+{
+ struct socfpga_header *header = buf + 0x40;
+ uint8_t *buf_header = buf + 0x40;
+ uint32_t *crc;
+ unsigned checksum;
+ int length = size >> 2;
+ int i;
+
+ if (size & 0x3) {
+ fprintf(stderr, "%s: size must be multiple of 4\n", __func__);
+ return -EINVAL;
+ }
+
+ header->validation_word[0] = VALIDATION_WORD & 0xff;
+ header->validation_word[1] = (VALIDATION_WORD >> 8) & 0xff;
+ header->validation_word[2] = (VALIDATION_WORD >> 16) & 0xff;
+ header->validation_word[3] = (VALIDATION_WORD >> 24) & 0xff;
+ header->version = 0;
+ header->flags = 0;
+ header->program_length[0] = length & 0xff;
+ header->program_length[1] = (length >> 8) & 0xff;
+ header->spare[0] = 0;
+ header->spare[1] = 0;
+
+ checksum = 0;
+ for (i = 0; i < sizeof(*header) - 2; i++)
+ checksum += buf_header[i];
+
+ header->checksum[0] = checksum & 0xff;;
+ header->checksum[1] = (checksum >> 8) & 0xff;;
+
+ crc = buf + size - sizeof(uint32_t);
+
+ *crc = crc32(0xffffffff, buf, size - sizeof(uint32_t));
+ *crc ^= 0xffffffff;
+
+ return 0;
+}
+
+static void usage(const char *prgname)
+{
+ fprintf(stderr, "usage: %s [OPTIONS] <infile>\n", prgname);
+}
+
+int main(int argc, char *argv[])
+{
+ int opt, ret;
+ const char *outfile = NULL, *infile;
+ struct stat s;
+ void *buf;
+ int fd;
+ int min_image_size = 80;
+ int max_image_size = MAX_IMAGE_SIZE;
+ int addsize = 0, pad;
+
+ while ((opt = getopt(argc, argv, "o:hb")) != -1) {
+ switch (opt) {
+ case 'b':
+ add_barebox_header = 1;
+ min_image_size = 0;
+ max_image_size = MAX_IMAGE_SIZE - 512;
+ addsize = 512;
+ break;
+ case 'h':
+ usage(argv[0]);
+ exit(0);
+ case 'o':
+ outfile = optarg;
+ break;
+ default:
+ exit(1);
+ }
+ }
+
+ if (optind == argc) {
+ usage(argv[0]);
+ exit(1);
+ }
+
+ infile = argv[optind];
+
+ ret = stat(infile, &s);
+ if (ret) {
+ perror("stat");
+ exit(1);
+ }
+
+ if (s.st_size < min_image_size) {
+ fprintf(stderr, "input image too small. Minimum is 80 bytes\n");
+ exit(1);
+ }
+
+ if (s.st_size > max_image_size) {
+ fprintf(stderr, "input image too big. Maximum is %d bytes, got %ld bytes\n",
+ max_image_size, s.st_size);
+ exit(1);
+ }
+
+ fd = open(infile, O_RDONLY);
+ if (fd < 0) {
+ perror("open infile");
+ exit(1);
+ }
+
+ pad = s.st_size & 0x3;
+ if (pad)
+ pad = 4 - pad;
+
+ buf = calloc(s.st_size + 4 + addsize + pad, 1);
+ if (!buf) {
+ perror("malloc");
+ exit(1);
+ }
+
+ ret = read_full(fd, buf + addsize, s.st_size);
+ if (ret < 0) {
+ perror("read infile");
+ exit(1);
+ }
+
+ close(fd);
+
+ if (add_barebox_header) {
+ memcpy(buf, bb_header, sizeof(bb_header));
+ }
+
+ ret = add_socfpga_header(buf, s.st_size + 4 + addsize + pad);
+ if (ret)
+ exit(1);
+
+ fd = open(outfile, O_WRONLY | O_CREAT | O_TRUNC, 0644);
+ if (fd < 0) {
+ perror("open outfile");
+ exit(1);
+ }
+
+ ret = write_full(fd, buf, s.st_size + 4 + addsize + pad);
+ if (ret < 0) {
+ perror("write outfile");
+ exit(1);
+ }
+
+ exit(0);
+}
diff --git a/package/mkpimage/mkpimage.mk b/package/mkpimage/mkpimage.mk
new file mode 100644
index 0000000..d6dcdd2
--- /dev/null
+++ b/package/mkpimage/mkpimage.mk
@@ -0,0 +1,22 @@
+################################################################################
+#
+# mkpimage
+#
+################################################################################
+
+# source included in the package
+# came from barebox's repository:
+# http://git.pengutronix.de/?p=barebox.git;a=blob;f=scripts/socfpga_mkimage.c;h=1a7a66d98841e9f52c3ea49c651286aa1412c9a5;hb=HEAD
+HOST_MKPIMAGE_SOURCE =
+HOST_MKPIMAGE_LICENSE = GPLv2
+
+define HOST_MKPIMAGE_BUILD_CMDS
+ $(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \
+ package/mkpimage/mkpimage.c -o $(@D)/mkpimage
+endef
+
+define HOST_MKPIMAGE_INSTALL_CMDS
+ $(INSTALL) -D -m 755 $(@D)/mkpimage $(HOST_DIR)/usr/bin/mkpimage
+endef
+
+$(eval $(host-generic-package))
--
2.6.1
^ permalink raw reply related [flat|nested] 38+ messages in thread* [Buildroot] [PATCH 0/4] Attempt to improve support for Altera SoC FPGA boards @ 2015-10-19 16:24 ` Jan Viktorin 2015-10-19 16:24 ` [Buildroot] [PATCH 1/4] mkpimage: new host package Jan Viktorin ` (5 more replies) 0 siblings, 6 replies; 38+ messages in thread From: Jan Viktorin @ 2015-10-19 16:24 UTC (permalink / raw) To: buildroot Hello Buildroot community, the following patch series attempts to improve support for building for Altera SoC FPGA boards. I mean, I'd like to have it ready out-of-the-box. The readme says that it is necessary to "sign" (it is now signing, just CRC by the way) the SPL image in order to boot. I cannot ack this because my SoC Development Kit (not the Arrow one!) boots normally with the generated SPL. How is it possible then? Is it fixed in U-Boot? I doubt, didn't find it there... I am confused about it. I don't have the second board (Arrow SoCKit) to prove it boots without it. Anyway, this series contains updates to the readme.txt and also adds mkpimage package to support the "signing" of the SPL images. Those patches are not very coherent and I do not expect to merge them at this stage. Can somebody check whether the generated SPL boots on Arrow SoCKit? If it does not, I would like to add the mkpimage package to Buildroot (however, it requires a Go compiler). If there is no issue, I would just leave the readme updates (an improve them a bit). Regards Jan Viktorin Jan Viktorin (4): mkpimage: new host package boot/uboot: compute CRC on SPLs for Altera SoC FPGA socfpga: update readme for sockit/socdk boards socfpga: note about unnecessary mkpimage of SPL board/altera/readme.txt | 31 +++++++++++++++++-------------- boot/uboot/Config.in | 10 ++++++++++ boot/uboot/uboot.mk | 9 +++++++++ package/mkpimage/mkpimage.mk | 28 ++++++++++++++++++++++++++++ 4 files changed, 64 insertions(+), 14 deletions(-) create mode 100644 package/mkpimage/mkpimage.mk -- 2.6.1 ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH 1/4] mkpimage: new host package 2015-10-19 16:24 ` [Buildroot] [PATCH 0/4] Attempt to improve support for Altera SoC FPGA boards Jan Viktorin @ 2015-10-19 16:24 ` Jan Viktorin 2015-10-19 19:04 ` Maxime Hadjinlian 2015-10-19 16:24 ` [Buildroot] [PATCH 2/4] boot/uboot: compute CRC on SPLs for Altera SoC FPGA Jan Viktorin ` (4 subsequent siblings) 5 siblings, 1 reply; 38+ messages in thread From: Jan Viktorin @ 2015-10-19 16:24 UTC (permalink / raw) To: buildroot The tool helps to create a working SPL to boot Altera SoC FPGA boards. Signed-off-by: Jan Viktorin <viktorin@rehivetech.com> --- package/mkpimage/mkpimage.mk | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 package/mkpimage/mkpimage.mk diff --git a/package/mkpimage/mkpimage.mk b/package/mkpimage/mkpimage.mk new file mode 100644 index 0000000..e21faf4 --- /dev/null +++ b/package/mkpimage/mkpimage.mk @@ -0,0 +1,28 @@ +################################################################################ +# +# mkpimage +# +################################################################################ + +MKPIMAGE_VERSION = d64752876a6185853400498d3a43a5e18681cab7 +MKPIMAGE_SITE = $(call github,maximeh,mkpimage,$(MKPIMAGE_VERSION)) +MKPIMAGE_LICENSE = MIT + +ifndef HOSTGO +HOSTGO := go +HOSTGO := $(shell which $(HOSTGO) || type -p $(HOSTGO) || echo go) +endif + +define HOST_MKPIMAGE_CONFIGURE_CMDS + $(MAKE) -C $(@D) GOPATH="$(dir $(HOSTGO))" deps +endef + +define HOST_MKPIMAGE_BUILD_CMDS + $(MAKE) -C $(@D) GOPATH="$(dir $(HOSTGO))" +endef + +define HOST_MKPIMAGE_INSTALL_CMDS + $(INSTALL) -D -m 0755 $(@D)/bin/mkpimage $(HOST_DIR)/usr/bin/mkpimage +endef + +$(eval $(host-generic-package)) -- 2.6.1 ^ permalink raw reply related [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH 1/4] mkpimage: new host package 2015-10-19 16:24 ` [Buildroot] [PATCH 1/4] mkpimage: new host package Jan Viktorin @ 2015-10-19 19:04 ` Maxime Hadjinlian 2015-10-19 20:53 ` Thomas Petazzoni 0 siblings, 1 reply; 38+ messages in thread From: Maxime Hadjinlian @ 2015-10-19 19:04 UTC (permalink / raw) To: buildroot Hello Jan, all On Mon, Oct 19, 2015 at 6:24 PM, Jan Viktorin <viktorin@rehivetech.com> wrote: > The tool helps to create a working SPL to boot Altera > SoC FPGA boards. > > Signed-off-by: Jan Viktorin <viktorin@rehivetech.com> > --- > package/mkpimage/mkpimage.mk | 28 ++++++++++++++++++++++++++++ > 1 file changed, 28 insertions(+) > create mode 100644 package/mkpimage/mkpimage.mk > > diff --git a/package/mkpimage/mkpimage.mk b/package/mkpimage/mkpimage.mk > new file mode 100644 > index 0000000..e21faf4 > --- /dev/null > +++ b/package/mkpimage/mkpimage.mk > @@ -0,0 +1,28 @@ > > +################################################################################ > +# > +# mkpimage > +# > > +################################################################################ > + > +MKPIMAGE_VERSION = d64752876a6185853400498d3a43a5e18681cab7 > +MKPIMAGE_SITE = $(call github,maximeh,mkpimage,$(MKPIMAGE_VERSION)) > +MKPIMAGE_LICENSE = MIT > + > +ifndef HOSTGO > +HOSTGO := go > +HOSTGO := $(shell which $(HOSTGO) || type -p $(HOSTGO) || echo go) > +endif > + > +define HOST_MKPIMAGE_CONFIGURE_CMDS > + $(MAKE) -C $(@D) GOPATH="$(dir $(HOSTGO))" deps > +endef > + > +define HOST_MKPIMAGE_BUILD_CMDS > + $(MAKE) -C $(@D) GOPATH="$(dir $(HOSTGO))" > +endef > + > +define HOST_MKPIMAGE_INSTALL_CMDS > + $(INSTALL) -D -m 0755 $(@D)/bin/mkpimage > $(HOST_DIR)/usr/bin/mkpimage > +endef > + > +$(eval $(host-generic-package)) > -- > 2.6.1 > Thanks a lot for your patch. It's a bit weird reviewing your patch as I'm the author of the package you want to add, but here goes: Even I don't use this tool anymore, after I reversed the code from Altera's own tool, they released the documentation for the SPL signing and the fine people at Barebox, created a small program (in C) that does exactly the same, which you can find there: http://git.pengutronix.de/?p=barebox.git;a=blob;f=scripts/socfpga_mkimage.c;h=1a7a66d98841e9f52c3ea49c651286aa1412c9a5;hb=HEAD However, I don't know how you would integrate such a tool, having a special package ? Making U-Boot depends on Barebox sounds a bit crazy. But it would be lighter than having to grab the go compiler for such a simple program. Let's wait on what others have to say in the matter. But anyway, thank you to push this, as it's a real problem that I am currently solving by having a short mkpimage package with the source of this scripts included into it. If you want, I can send it as a patch so you may take it and rework it. > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20151019/e7b34375/attachment-0001.html> ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH 1/4] mkpimage: new host package 2015-10-19 19:04 ` Maxime Hadjinlian @ 2015-10-19 20:53 ` Thomas Petazzoni 2015-10-19 21:06 ` Yann E. MORIN 0 siblings, 1 reply; 38+ messages in thread From: Thomas Petazzoni @ 2015-10-19 20:53 UTC (permalink / raw) To: buildroot Maxime, Jan, On Mon, 19 Oct 2015 21:04:51 +0200, Maxime Hadjinlian wrote: > > +ifndef HOSTGO > > +HOSTGO := go > > +HOSTGO := $(shell which $(HOSTGO) || type -p $(HOSTGO) || echo go) > > +endif Ouch, having to depend on Go for such a simple tool is indeed not very nice :-/ > Even I don't use this tool anymore, after I reversed the code from Altera's > own tool, they released the documentation for the SPL signing and the fine > people at Barebox, created a small program (in C) that does exactly the > same, which you can find there: > http://git.pengutronix.de/?p=barebox.git;a=blob;f=scripts/socfpga_mkimage.c;h=1a7a66d98841e9f52c3ea49c651286aa1412c9a5;hb=HEAD > > However, I don't know how you would integrate such a tool, having a special > package ? Making U-Boot depends on Barebox sounds a bit crazy. But it would > be lighter than having to grab the go compiler for such a simple program. I agree. Unfortunately, downloading directly http://git.pengutronix.de/?p=barebox.git;a=blob_plain;f=scripts/socfpga_mkimage.c;h=$(MKPIMAGE_VERSION);hb=HEAD doesn't work because this URL contains ';' which our download infrastructure doesn't like much. However, this program is so simple that I would advocate taking the makedevs route: simply integrate the program source code itself inside Buildroot, in package/mkpimage/. Thanks, Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH 1/4] mkpimage: new host package 2015-10-19 20:53 ` Thomas Petazzoni @ 2015-10-19 21:06 ` Yann E. MORIN 2015-10-19 21:12 ` Maxime Hadjinlian 2015-10-19 21:12 ` Thomas Petazzoni 0 siblings, 2 replies; 38+ messages in thread From: Yann E. MORIN @ 2015-10-19 21:06 UTC (permalink / raw) To: buildroot Thomas, All, On 2015-10-19 22:53 +0200, Thomas Petazzoni spake thusly: > On Mon, 19 Oct 2015 21:04:51 +0200, Maxime Hadjinlian wrote: > > > +ifndef HOSTGO > > > +HOSTGO := go > > > +HOSTGO := $(shell which $(HOSTGO) || type -p $(HOSTGO) || echo go) > > > +endif > > Ouch, having to depend on Go for such a simple tool is indeed not very > nice :-/ Or we can eventually look at the Go package that was submitted a while back, and to which I contributed: https://patchwork.ozlabs.org/patch/502222/ ;-) > > Even I don't use this tool anymore, after I reversed the code from Altera's > > own tool, they released the documentation for the SPL signing and the fine > > people at Barebox, created a small program (in C) that does exactly the > > same, which you can find there: > > http://git.pengutronix.de/?p=barebox.git;a=blob;f=scripts/socfpga_mkimage.c;h=1a7a66d98841e9f52c3ea49c651286aa1412c9a5;hb=HEAD > > > > However, I don't know how you would integrate such a tool, having a special > > package ? Making U-Boot depends on Barebox sounds a bit crazy. But it would > > be lighter than having to grab the go compiler for such a simple program. > > I agree. Unfortunately, downloading directly > http://git.pengutronix.de/?p=barebox.git;a=blob_plain;f=scripts/socfpga_mkimage.c;h=$(MKPIMAGE_VERSION);hb=HEAD > doesn't work because this URL contains ';' which our download > infrastructure doesn't like much. > > However, this program is so simple that I would advocate taking the > makedevs route: simply integrate the program source code itself inside > Buildroot, in package/mkpimage/. Yup, agreed. Regards, Yann E. MORIN. -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH 1/4] mkpimage: new host package 2015-10-19 21:06 ` Yann E. MORIN @ 2015-10-19 21:12 ` Maxime Hadjinlian 2015-10-19 21:24 ` Jan Viktorin 2015-10-19 21:12 ` Thomas Petazzoni 1 sibling, 1 reply; 38+ messages in thread From: Maxime Hadjinlian @ 2015-10-19 21:12 UTC (permalink / raw) To: buildroot On Mon, Oct 19, 2015 at 11:06 PM, Yann E. MORIN <yann.morin.1998@free.fr> wrote: > Thomas, All, > > On 2015-10-19 22:53 +0200, Thomas Petazzoni spake thusly: > > On Mon, 19 Oct 2015 21:04:51 +0200, Maxime Hadjinlian wrote: > > > > +ifndef HOSTGO > > > > +HOSTGO := go > > > > +HOSTGO := $(shell which $(HOSTGO) || type -p $(HOSTGO) || echo go) > > > > +endif > > > > Ouch, having to depend on Go for such a simple tool is indeed not very > > nice :-/ > > Or we can eventually look at the Go package that was submitted a while > back, and to which I contributed: > https://patchwork.ozlabs.org/patch/502222/ > > ;-) > > > > Even I don't use this tool anymore, after I reversed the code from > Altera's > > > own tool, they released the documentation for the SPL signing and the > fine > > > people at Barebox, created a small program (in C) that does exactly the > > > same, which you can find there: > > > > http://git.pengutronix.de/?p=barebox.git;a=blob;f=scripts/socfpga_mkimage.c;h=1a7a66d98841e9f52c3ea49c651286aa1412c9a5;hb=HEAD > > > > > > However, I don't know how you would integrate such a tool, having a > special > > > package ? Making U-Boot depends on Barebox sounds a bit crazy. But it > would > > > be lighter than having to grab the go compiler for such a simple > program. > > > > I agree. Unfortunately, downloading directly > > > http://git.pengutronix.de/?p=barebox.git;a=blob_plain;f=scripts/socfpga_mkimage.c;h=$(MKPIMAGE_VERSION);hb=HEAD > > doesn't work because this URL contains ';' which our download > > infrastructure doesn't like much. > > > > However, this program is so simple that I would advocate taking the > > makedevs route: simply integrate the program source code itself inside > > Buildroot, in package/mkpimage/. > > Yup, agreed. > Agreed too, I'll send the current package that I have that does just that. Jan: I'll put you in CC so if you want to work with it/on it, feel free ! > > Regards, > Yann E. MORIN. > > -- > > .-----------------.--------------------.------------------.--------------------. > | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' > conspiracy: | > | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ > | > | +33 223 225 172 `------------.-------: X AGAINST | \e/ There > is no | > | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v > conspiracy. | > > '------------------------------^-------^------------------^--------------------' > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20151019/b688f0d6/attachment.html> ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH 1/4] mkpimage: new host package 2015-10-19 21:12 ` Maxime Hadjinlian @ 2015-10-19 21:24 ` Jan Viktorin 2015-10-19 21:36 ` Maxime Hadjinlian 0 siblings, 1 reply; 38+ messages in thread From: Jan Viktorin @ 2015-10-19 21:24 UTC (permalink / raw) To: buildroot Hello all, thank you for your interest... On Mon, 19 Oct 2015 23:12:21 +0200 Maxime Hadjinlian <maxime.hadjinlian@gmail.com> wrote: > On Mon, Oct 19, 2015 at 11:06 PM, Yann E. MORIN <yann.morin.1998@free.fr> > wrote: > > > Thomas, All, > > > > On 2015-10-19 22:53 +0200, Thomas Petazzoni spake thusly: > > > On Mon, 19 Oct 2015 21:04:51 +0200, Maxime Hadjinlian wrote: > > > > > +ifndef HOSTGO > > > > > +HOSTGO := go > > > > > +HOSTGO := $(shell which $(HOSTGO) || type -p $(HOSTGO) || echo go) > > > > > +endif > > > > > > Ouch, having to depend on Go for such a simple tool is indeed not very > > > nice :-/ > > > > Or we can eventually look at the Go package that was submitted a while > > back, and to which I contributed: > > https://patchwork.ozlabs.org/patch/502222/ > > > > ;-) > > > > > > Even I don't use this tool anymore, after I reversed the code from > > Altera's > > > > own tool, they released the documentation for the SPL signing and the > > fine > > > > people at Barebox, created a small program (in C) that does exactly the > > > > same, which you can find there: > > > > > > http://git.pengutronix.de/?p=barebox.git;a=blob;f=scripts/socfpga_mkimage.c;h=1a7a66d98841e9f52c3ea49c651286aa1412c9a5;hb=HEAD > > > > > > > > However, I don't know how you would integrate such a tool, having a > > special > > > > package ? Making U-Boot depends on Barebox sounds a bit crazy. But it > > would > > > > be lighter than having to grab the go compiler for such a simple > > program. > > > > > > I agree. Unfortunately, downloading directly > > > > > http://git.pengutronix.de/?p=barebox.git;a=blob_plain;f=scripts/socfpga_mkimage.c;h=$(MKPIMAGE_VERSION);hb=HEAD > > > doesn't work because this URL contains ';' which our download > > > infrastructure doesn't like much. > > > > > > However, this program is so simple that I would advocate taking the > > > makedevs route: simply integrate the program source code itself inside > > > Buildroot, in package/mkpimage/. > > > > Yup, agreed. Agreed. my intention was more like to tell the user: "install your own Go compiler to use this". > > > Agreed too, I'll send the current package that I have that does just that. > Jan: I'll put you in CC so if you want to work with it/on it, feel free ! Great! By the way, there is still the fundamental question. Is the mkpimage really necessary? I can boot the Altera SoC Development Kit without running it. What is the value of doing that? Does it support the secure boot sequence? Does it depend on some DIP switch on the board? Jan > > > > > Regards, > > Yann E. MORIN. > > > > -- > > > > .-----------------.--------------------.------------------.--------------------. > > | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' > > conspiracy: | > > | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ > > | > > | +33 223 225 172 `------------.-------: X AGAINST | \e/ There > > is no | > > | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v > > conspiracy. | > > > > '------------------------------^-------^------------------^--------------------' > > -- Jan Viktorin E-mail: Viktorin at RehiveTech.com System Architect Web: www.RehiveTech.com RehiveTech Brno, Czech Republic ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH 1/4] mkpimage: new host package 2015-10-19 21:24 ` Jan Viktorin @ 2015-10-19 21:36 ` Maxime Hadjinlian 2015-10-19 22:10 ` Jan Viktorin 0 siblings, 1 reply; 38+ messages in thread From: Maxime Hadjinlian @ 2015-10-19 21:36 UTC (permalink / raw) To: buildroot Jan, all On Mon, Oct 19, 2015 at 11:24 PM, Jan Viktorin <viktorin@rehivetech.com> wrote: > Hello all, > > thank you for your interest... > > On Mon, 19 Oct 2015 23:12:21 +0200 > Maxime Hadjinlian <maxime.hadjinlian@gmail.com> wrote: > > [-SNIP-] > > > > > I agree. Unfortunately, downloading directly > > > > > > > > http://git.pengutronix.de/?p=barebox.git;a=blob_plain;f=scripts/socfpga_mkimage.c;h=$(MKPIMAGE_VERSION);hb=HEAD > > > > doesn't work because this URL contains ';' which our download > > > > infrastructure doesn't like much. > > > > > > > > However, this program is so simple that I would advocate taking the > > > > makedevs route: simply integrate the program source code itself > inside > > > > Buildroot, in package/mkpimage/. > > > > > > Yup, agreed. > > Agreed. my intention was more like to tell the user: "install your own > Go compiler to use this". > > > > > > Agreed too, I'll send the current package that I have that does just > that. > > Jan: I'll put you in CC so if you want to work with it/on it, feel free ! > > Great! > > By the way, there is still the fundamental question. Is the mkpimage > really necessary? I can boot the Altera SoC Development Kit without > running it. What is the value of doing that? Does it support the secure > boot sequence? Does it depend on some DIP switch on the board? > As far I can remember you can't boot the SoCFPGA without the SPL being "signed" (which is really a simple header with a CRC and some padding so it fits a precise size). I'm curious how you made one boot without this as per Altera's documentation the Boot ROM needs it. Note that in Qsys, it's already done in their various scripts, so if you build U-Boot that way, it's done for you. There's no real added value as far as I could tell, the SoC needs it, that's all. And there's no DIP switch which helps you configure that on the dev kit. I don't think you can configure it. You have to do it and that's pretty much it. > Jan > > > > > > > > > Regards, > > > Yann E. MORIN. > > > > > > -- > > > > > > > .-----------------.--------------------.------------------.--------------------. > > > | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' > > > conspiracy: | > > > | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ > > > | > > > | +33 223 225 172 `------------.-------: X AGAINST | \e/ > There > > > is no | > > > | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v > > > conspiracy. | > > > > > > > '------------------------------^-------^------------------^--------------------' > > > > > > > -- > Jan Viktorin E-mail: Viktorin at RehiveTech.com > System Architect Web: www.RehiveTech.com > RehiveTech > Brno, Czech Republic > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20151019/2fd82c56/attachment-0001.html> ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH 1/4] mkpimage: new host package 2015-10-19 21:36 ` Maxime Hadjinlian @ 2015-10-19 22:10 ` Jan Viktorin 2015-10-19 22:12 ` Maxime Hadjinlian 0 siblings, 1 reply; 38+ messages in thread From: Jan Viktorin @ 2015-10-19 22:10 UTC (permalink / raw) To: buildroot On Mon, 19 Oct 2015 23:36:23 +0200 Maxime Hadjinlian <maxime.hadjinlian@gmail.com> wrote: > > By the way, there is still the fundamental question. Is the mkpimage > > really necessary? I can boot the Altera SoC Development Kit without > > running it. What is the value of doing that? Does it support the secure > > boot sequence? Does it depend on some DIP switch on the board? > > > As far I can remember you can't boot the SoCFPGA without the SPL being > "signed" (which is really a simple header with a CRC and some padding so it > fits a precise size). > I'm curious how you made one boot without this as per Altera's > documentation the Boot ROM needs it. Note that in Qsys, it's already done > in their various scripts, so if you build U-Boot that way, it's done for > you. > There's no real added value as far as I could tell, the SoC needs it, > that's all. And there's no DIP switch which helps you configure that on the > dev kit. I don't think you can configure it. You have to do it and that's > pretty much it. That's strange. I tried it twice today. I am using files generated directly by Buildroot. No other customizations. It builds the SPL image of size ~43K. The size of the image with CRC is ~64K. Probably, I am doing something in a wrong way(?). By the way, this was the reason why I tried to update the readme.txt. I've created the SD card contents from scratch to avoid any previous working version there... I'll recheck it (hopefully) tomorrow with a different SD card. Jan -- Jan Viktorin E-mail: Viktorin at RehiveTech.com System Architect Web: www.RehiveTech.com RehiveTech Brno, Czech Republic ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH 1/4] mkpimage: new host package 2015-10-19 22:10 ` Jan Viktorin @ 2015-10-19 22:12 ` Maxime Hadjinlian 2015-10-20 10:41 ` Jan Viktorin 0 siblings, 1 reply; 38+ messages in thread From: Maxime Hadjinlian @ 2015-10-19 22:12 UTC (permalink / raw) To: buildroot On Tue, Oct 20, 2015 at 12:10 AM, Jan Viktorin <viktorin@rehivetech.com> wrote: > On Mon, 19 Oct 2015 23:36:23 +0200 > Maxime Hadjinlian <maxime.hadjinlian@gmail.com> wrote: > > > > By the way, there is still the fundamental question. Is the mkpimage > > > really necessary? I can boot the Altera SoC Development Kit without > > > running it. What is the value of doing that? Does it support the secure > > > boot sequence? Does it depend on some DIP switch on the board? > > > > > As far I can remember you can't boot the SoCFPGA without the SPL being > > "signed" (which is really a simple header with a CRC and some padding so > it > > fits a precise size). > > I'm curious how you made one boot without this as per Altera's > > documentation the Boot ROM needs it. Note that in Qsys, it's already done > > in their various scripts, so if you build U-Boot that way, it's done for > > you. > > There's no real added value as far as I could tell, the SoC needs it, > > that's all. And there's no DIP switch which helps you configure that on > the > > dev kit. I don't think you can configure it. You have to do it and that's > > pretty much it. > > That's strange. I tried it twice today. I am using files generated > directly by Buildroot. No other customizations. It builds the SPL image > of size ~43K. The size of the image with CRC is ~64K. 64K is the precise minimal size for an accepted SPL for the SoC FPGA, which means that you have "signed" it. That's why it's working for you. > Probably, I am > doing something in a wrong way(?). By the way, this was the reason why > I tried to update the readme.txt. I've created the SD card contents > from scratch to avoid any previous working version there... I'll > recheck it (hopefully) tomorrow with a different SD card. > > Jan > > -- > Jan Viktorin E-mail: Viktorin at RehiveTech.com > System Architect Web: www.RehiveTech.com > RehiveTech > Brno, Czech Republic > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20151020/45193f67/attachment.html> ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH 1/4] mkpimage: new host package 2015-10-19 22:12 ` Maxime Hadjinlian @ 2015-10-20 10:41 ` Jan Viktorin 0 siblings, 0 replies; 38+ messages in thread From: Jan Viktorin @ 2015-10-20 10:41 UTC (permalink / raw) To: buildroot On Tue, 20 Oct 2015 00:12:45 +0200 Maxime Hadjinlian <maxime.hadjinlian@gmail.com> wrote: > On Tue, Oct 20, 2015 at 12:10 AM, Jan Viktorin <viktorin@rehivetech.com> > wrote: > > > On Mon, 19 Oct 2015 23:36:23 +0200 > > Maxime Hadjinlian <maxime.hadjinlian@gmail.com> wrote: > > > > > > By the way, there is still the fundamental question. Is the mkpimage > > > > really necessary? I can boot the Altera SoC Development Kit without > > > > running it. What is the value of doing that? Does it support the secure > > > > boot sequence? Does it depend on some DIP switch on the board? > > > > > > > As far I can remember you can't boot the SoCFPGA without the SPL being > > > "signed" (which is really a simple header with a CRC and some padding so > > it > > > fits a precise size). > > > I'm curious how you made one boot without this as per Altera's > > > documentation the Boot ROM needs it. Note that in Qsys, it's already done > > > in their various scripts, so if you build U-Boot that way, it's done for > > > you. > > > There's no real added value as far as I could tell, the SoC needs it, > > > that's all. And there's no DIP switch which helps you configure that on > > the > > > dev kit. I don't think you can configure it. You have to do it and that's > > > pretty much it. > > > > That's strange. I tried it twice today. I am using files generated > > directly by Buildroot. No other customizations. It builds the SPL image > > of size ~43K. The size of the image with CRC is ~64K. > > 64K is the precise minimal size for an accepted SPL for the SoC FPGA, which > means that you have "signed" it. That's why it's working for you. OK, confirmed with a different SD card. It really does not boot. I think that the problem was that I wrote only the 43K, however, the rest was already written on the SD card :). We need the tool. Jan > > > Probably, I am > > doing something in a wrong way(?). By the way, this was the reason why > > I tried to update the readme.txt. I've created the SD card contents > > from scratch to avoid any previous working version there... I'll > > recheck it (hopefully) tomorrow with a different SD card. > > > > Jan > > > > -- > > Jan Viktorin E-mail: Viktorin at RehiveTech.com > > System Architect Web: www.RehiveTech.com > > RehiveTech > > Brno, Czech Republic > > -- Jan Viktorin E-mail: Viktorin at RehiveTech.com System Architect Web: www.RehiveTech.com RehiveTech Brno, Czech Republic ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH 1/4] mkpimage: new host package 2015-10-19 21:06 ` Yann E. MORIN 2015-10-19 21:12 ` Maxime Hadjinlian @ 2015-10-19 21:12 ` Thomas Petazzoni 1 sibling, 0 replies; 38+ messages in thread From: Thomas Petazzoni @ 2015-10-19 21:12 UTC (permalink / raw) To: buildroot Hello, On Mon, 19 Oct 2015 23:06:11 +0200, Yann E. MORIN wrote: > Or we can eventually look at the Go package that was submitted a while > back, and to which I contributed: > https://patchwork.ozlabs.org/patch/502222/ > > ;-) Well, if we can avoid building a compiler just to build a 300 lines Go program, it'd be great :) > > I agree. Unfortunately, downloading directly > > http://git.pengutronix.de/?p=barebox.git;a=blob_plain;f=scripts/socfpga_mkimage.c;h=$(MKPIMAGE_VERSION);hb=HEAD > > doesn't work because this URL contains ';' which our download > > infrastructure doesn't like much. > > > > However, this program is so simple that I would advocate taking the > > makedevs route: simply integrate the program source code itself inside > > Buildroot, in package/mkpimage/. > > Yup, agreed. So Jan, can you rework your submission in this direction? Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH 2/4] boot/uboot: compute CRC on SPLs for Altera SoC FPGA 2015-10-19 16:24 ` [Buildroot] [PATCH 0/4] Attempt to improve support for Altera SoC FPGA boards Jan Viktorin 2015-10-19 16:24 ` [Buildroot] [PATCH 1/4] mkpimage: new host package Jan Viktorin @ 2015-10-19 16:24 ` Jan Viktorin 2015-10-19 16:24 ` [Buildroot] [PATCH 3/4] socfpga: update readme for sockit/socdk boards Jan Viktorin ` (3 subsequent siblings) 5 siblings, 0 replies; 38+ messages in thread From: Jan Viktorin @ 2015-10-19 16:24 UTC (permalink / raw) To: buildroot Signed-off-by: Jan Viktorin <viktorin@rehivetech.com> --- boot/uboot/Config.in | 10 ++++++++++ boot/uboot/uboot.mk | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in index 8643dab..b2a69f3 100644 --- a/boot/uboot/Config.in +++ b/boot/uboot/Config.in @@ -338,6 +338,16 @@ config BR2_TARGET_UBOOT_ZYNQ_IMAGE for u-boot-dtb.img file so this U-Boot format is required to be set. +config BR2_TARGET_UBOOT_SOCFPGA_IMAGE_CRC + bool "CRC SPL image for SoC FPGA" + depends on BR2_arm + depends on BR2_TARGET_UBOOT_SPL + help + Generate SPL image fixed by the mkpimage tool to enable + booting on the SoC FPGA based platforms. The tool is + available at https://github.com/maximeh/mkpimage. + It requires a Go language compiler installed on your host. + menuconfig BR2_TARGET_UBOOT_ENVIMAGE bool "Environment image" help diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk index 66e728f..8b32154 100644 --- a/boot/uboot/uboot.mk +++ b/boot/uboot/uboot.mk @@ -215,6 +215,15 @@ UBOOT_DEPENDENCIES += host-zynq-boot-bin UBOOT_POST_INSTALL_IMAGES_HOOKS += UBOOT_GENERATE_ZYNQ_IMAGE endif +ifeq ($(BR2_TARGET_UBOOT_SOCFPGA_IMAGE_CRC),y) +define UBOOT_CRC_SOCFPGA_IMAGE + $(HOST_DIR)/usr/bin/mkpimage -o $(BINARIES_DIR)/$(notdir $(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME))).crc \ + $(@D)/$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)) +endef +UBOOT_DEPENDENCIES += host-mkpimage +UBOOT_POST_INSTALL_IMAGES_HOOKS += UBOOT_CRC_SOCFPGA_IMAGE +endif + ifeq ($(BR2_TARGET_UBOOT_ENVIMAGE),y) ifeq ($(BR_BUILDING),y) ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_ENVIMAGE_SOURCE)),) -- 2.6.1 ^ permalink raw reply related [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH 3/4] socfpga: update readme for sockit/socdk boards 2015-10-19 16:24 ` [Buildroot] [PATCH 0/4] Attempt to improve support for Altera SoC FPGA boards Jan Viktorin 2015-10-19 16:24 ` [Buildroot] [PATCH 1/4] mkpimage: new host package Jan Viktorin 2015-10-19 16:24 ` [Buildroot] [PATCH 2/4] boot/uboot: compute CRC on SPLs for Altera SoC FPGA Jan Viktorin @ 2015-10-19 16:24 ` Jan Viktorin 2015-10-19 16:24 ` [Buildroot] [PATCH 4/4] socfpga: note about unnecessary mkpimage of SPL Jan Viktorin ` (2 subsequent siblings) 5 siblings, 0 replies; 38+ messages in thread From: Jan Viktorin @ 2015-10-19 16:24 UTC (permalink / raw) To: buildroot The readme uses mmcblk0 which is quite unusual on host PC. Moreover, the referred website uses /dev/sdx convention. The fdisk rules didn't work for me this way. there is a little mistake when setting type of partition 2. The numbers are for bigger SD card. This is to be considered... Should I break it to smaller commits? Signed-off-by: Jan Viktorin <viktorin@rehivetech.com> --- board/altera/readme.txt | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/board/altera/readme.txt b/board/altera/readme.txt index 8d5b891..882f54d 100644 --- a/board/altera/readme.txt +++ b/board/altera/readme.txt @@ -101,29 +101,30 @@ Determine the device associated to the SD card : $ cat /proc/partitions -let's assume it is /dev/mmcblk0 : +let's assume it is /dev/sdc : - $ sudo fdisk /dev/mmcblk0 + $ sudo fdisk /dev/sdc Delete all previous partitions with 'd' then create the new partition table, -using these options, pressing enter after each one: +using these options, pressing enter after each one (you may need to use different +values if your SD card is smaller/bigger then 4G): - * n p 1 9000000 +20480K t 1 b - * n p 2 4096 +4496384K t 83 - * n p 3 2048 +1024K t 3 a2 + * n p 1 7000000 7774207 t b + * n p 2 4096 6999999 t 2 83 + * n p 3 2048 4095 t 3 a2 Using the 'p' option, the SD card's partition must look like this : -Device Boot Start End Blocks Id System -/dev/mmcblk0p1 9000000 9041919 20960 b W95 FAT32 -/dev/mmcblk0p2 4096 8996863 4496384 83 Linux -/dev/mmcblk0p3 2048 4095 1024 a2 Unknown +Device Boot Start End Sectors Size Id Type +/dev/sdc1 7000000 7774207 774208 378M b W95 FAT32 +/dev/sdc2 4096 6999999 6995904 3.3G 83 Linux +/dev/sdc3 2048 4095 2048 1M a2 unknown Then write the partition table using 'w' and exit. Make partition one a DOS partition : - $ sudo mkdosfs /dev/mmcblk0p1 + $ sudo mkdosfs /dev/sdc1 Install the binaries to the SDcard ---------------------------------- @@ -136,13 +137,13 @@ The partition with type a2 is the partition scan by the first bootloader stage in the SoCkit ROM to find the next bootloader stage so we must write the signed preloader and the u-boot binaries in that partition : - $ sudo dd if=u-boot-spl-signed.bin of=/dev/mmcblk0p3 bs=64k seek=0 - $ sudo dd if=u-boot.img of=/dev/mmcblk0p3 bs=64k seek=4 + $ sudo dd if=u-boot-spl-signed.bin of=/dev/sdc3 bs=64k seek=0 + $ sudo dd if=u-boot.img of=/dev/sdc3 bs=64k seek=4 Copy the Linux kernel and its Device tree : $ sudo mkdir /mnt/sdcard - $ sudo mount /dev/mmcblk0p1 /mnt/sdcard + $ sudo mount /dev/sdc1 /mnt/sdcard $ sudo cp socfpga.dtb uImage /mnt/sdcard $ sudo umount /mnt/sdcard -- 2.6.1 ^ permalink raw reply related [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH 4/4] socfpga: note about unnecessary mkpimage of SPL 2015-10-19 16:24 ` [Buildroot] [PATCH 0/4] Attempt to improve support for Altera SoC FPGA boards Jan Viktorin ` (2 preceding siblings ...) 2015-10-19 16:24 ` [Buildroot] [PATCH 3/4] socfpga: update readme for sockit/socdk boards Jan Viktorin @ 2015-10-19 16:24 ` Jan Viktorin 2015-10-19 16:30 ` [Buildroot] [PATCH 0/4] Attempt to improve support for Altera SoC FPGA boards Jan Viktorin 2015-10-20 11:32 ` [Buildroot] [PATCH v2 0/7] " Jan Viktorin 5 siblings, 0 replies; 38+ messages in thread From: Jan Viktorin @ 2015-10-19 16:24 UTC (permalink / raw) To: buildroot Signed-off-by: Jan Viktorin <viktorin@rehivetech.com> --- board/altera/readme.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/board/altera/readme.txt b/board/altera/readme.txt index 882f54d..82c2dcd 100644 --- a/board/altera/readme.txt +++ b/board/altera/readme.txt @@ -88,6 +88,8 @@ Remember that without signing the u-boot-spl.bin, the board will not boot !!! $ mkpimage u-boot-spl.bin -o u-boot-spl-signed.bin +This seems to be not true at least for the socdk board. + Prepare your SDcard =================== -- 2.6.1 ^ permalink raw reply related [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH 0/4] Attempt to improve support for Altera SoC FPGA boards 2015-10-19 16:24 ` [Buildroot] [PATCH 0/4] Attempt to improve support for Altera SoC FPGA boards Jan Viktorin ` (3 preceding siblings ...) 2015-10-19 16:24 ` [Buildroot] [PATCH 4/4] socfpga: note about unnecessary mkpimage of SPL Jan Viktorin @ 2015-10-19 16:30 ` Jan Viktorin 2015-10-20 11:32 ` [Buildroot] [PATCH v2 0/7] " Jan Viktorin 5 siblings, 0 replies; 38+ messages in thread From: Jan Viktorin @ 2015-10-19 16:30 UTC (permalink / raw) To: buildroot I am sorry, the text may be a little bit confusing, so I am adding some clarifications... On Mon, 19 Oct 2015 18:24:50 +0200 Jan Viktorin <viktorin@rehivetech.com> wrote: > Hello Buildroot community, > > the following patch series attempts to improve support for building for > Altera SoC FPGA boards. I mean, I'd like to have it ready out-of-the-box. > > The readme says that it is necessary to "sign" (it is now signing, just CRC "not signing" > by the way) the SPL image in order to boot. I cannot ack this because my > SoC Development Kit (not the Arrow one!) boots normally with the generated > SPL. How is it possible then? Is it fixed in U-Boot? I doubt, didn't find it > there... I am confused about it. > > I don't have the second board (Arrow SoCKit) to prove it boots without it. *it boots without "signing" > > Anyway, this series contains updates to the readme.txt and also adds mkpimage > package to support the "signing" of the SPL images. Those patches are not > very coherent and I do not expect to merge them at this stage. The readme should be updated that it is not necessary to sign anything. Or the mkpimage package should be included in Buildroot. > > Can somebody check whether the generated SPL boots on Arrow SoCKit? > > If it does not, I would like to add the mkpimage package to Buildroot (however, > it requires a Go compiler). > > If there is no issue, I would just leave the readme updates (an improve them > a bit). > > Regards > Jan Viktorin > > Jan Viktorin (4): > mkpimage: new host package > boot/uboot: compute CRC on SPLs for Altera SoC FPGA > socfpga: update readme for sockit/socdk boards > socfpga: note about unnecessary mkpimage of SPL > > board/altera/readme.txt | 31 +++++++++++++++++-------------- > boot/uboot/Config.in | 10 ++++++++++ > boot/uboot/uboot.mk | 9 +++++++++ > package/mkpimage/mkpimage.mk | 28 ++++++++++++++++++++++++++++ > 4 files changed, 64 insertions(+), 14 deletions(-) > create mode 100644 package/mkpimage/mkpimage.mk > -- Jan Viktorin E-mail: Viktorin at RehiveTech.com System Architect Web: www.RehiveTech.com RehiveTech Brno, Czech Republic ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH v2 0/7] Attempt to improve support for Altera SoC FPGA boards 2015-10-19 16:24 ` [Buildroot] [PATCH 0/4] Attempt to improve support for Altera SoC FPGA boards Jan Viktorin ` (4 preceding siblings ...) 2015-10-19 16:30 ` [Buildroot] [PATCH 0/4] Attempt to improve support for Altera SoC FPGA boards Jan Viktorin @ 2015-10-20 11:32 ` Jan Viktorin 2015-10-20 11:32 ` [Buildroot] [PATCH v2 1/7] mkpimage: new host package Jan Viktorin ` (6 more replies) 5 siblings, 7 replies; 38+ messages in thread From: Jan Viktorin @ 2015-10-20 11:32 UTC (permalink / raw) To: buildroot Hello all, I've integrated the changes by Maxime into my patch series. I've also reworked the readme changes. First, the readme is a little bit more verbose about the support of the SoC DK board (and not just the SoCkit). Second, I've updated the notes about mkpimage and "signing" of the SPL. The last three patches related to that readme are less important. They just improve the text a little bit. Regards Jan Jan Viktorin (7): mkpimage: new host package boot/uboot: compute CRC on SPLs for Altera SoC FPGA altera: improve readme to cover both supported boards altera: update text about the mkpimage altera: change mmcblk0 to sdc altera: improve fdisk instructions altera: remove whitespace before colon board/altera/readme.txt | 80 ++++++------ boot/uboot/Config.in | 10 ++ boot/uboot/uboot.mk | 9 ++ package/mkpimage/mkpimage.c | 287 +++++++++++++++++++++++++++++++++++++++++++ package/mkpimage/mkpimage.mk | 22 ++++ 5 files changed, 371 insertions(+), 37 deletions(-) create mode 100644 package/mkpimage/mkpimage.c create mode 100644 package/mkpimage/mkpimage.mk -- 2.6.1 ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH v2 1/7] mkpimage: new host package 2015-10-20 11:32 ` [Buildroot] [PATCH v2 0/7] " Jan Viktorin @ 2015-10-20 11:32 ` Jan Viktorin 2016-03-22 22:53 ` Thomas Petazzoni 2015-10-20 11:32 ` [Buildroot] [PATCH v2 2/7] boot/uboot: compute CRC on SPLs for Altera SoC FPGA Jan Viktorin ` (5 subsequent siblings) 6 siblings, 1 reply; 38+ messages in thread From: Jan Viktorin @ 2015-10-20 11:32 UTC (permalink / raw) To: buildroot The tool helps to create a working SPL to boot Altera SoC FPGA boards. The code of mkpimage is integrated directly from the Barebox repository as stated in the 'mkpimage.mk' file. This tool is *NOT* necessary for any other boards so far. Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Tested-by: Jan Viktorin <viktorin@rehivetech.com> --- v1 -> v2: dropped Go implementation, included mkpimage.c from Barebox because of a wierd URL that cannot be hanled by Buildroot --- package/mkpimage/mkpimage.c | 287 +++++++++++++++++++++++++++++++++++++++++++ package/mkpimage/mkpimage.mk | 22 ++++ 2 files changed, 309 insertions(+) create mode 100644 package/mkpimage/mkpimage.c create mode 100644 package/mkpimage/mkpimage.mk diff --git a/package/mkpimage/mkpimage.c b/package/mkpimage/mkpimage.c new file mode 100644 index 0000000..1a7a66d --- /dev/null +++ b/package/mkpimage/mkpimage.c @@ -0,0 +1,287 @@ +#include <stdio.h> +#include <unistd.h> +#include <getopt.h> +#include <stdlib.h> +#include <stdint.h> +#include <string.h> +#include <errno.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <endian.h> + +#define VALIDATION_WORD 0x31305341 + +#define MAX_IMAGE_SIZE (60 * 1024 - 4) + +static int add_barebox_header; + +struct socfpga_header { + uint8_t validation_word[4]; + uint8_t version; + uint8_t flags; + uint8_t program_length[2]; + uint8_t spare[2]; + uint8_t checksum[2]; +}; + +static uint32_t bb_header[] = { + 0xea00007e, /* b 0x200 */ + 0xeafffffe, /* 1: b 1b */ + 0xeafffffe, /* 1: b 1b */ + 0xeafffffe, /* 1: b 1b */ + 0xeafffffe, /* 1: b 1b */ + 0xeafffffe, /* 1: b 1b */ + 0xeafffffe, /* 1: b 1b */ + 0xeafffffe, /* 1: b 1b */ + 0x65726162, /* 'bare' */ + 0x00786f62, /* 'box\0' */ + 0x00000000, /* padding */ + 0x00000000, /* padding */ + 0x00000000, /* padding */ + 0x00000000, /* padding */ + 0x00000000, /* padding */ + 0x00000000, /* padding */ + 0x00000000, /* socfpga header */ + 0x00000000, /* socfpga header */ + 0x00000000, /* socfpga header */ + 0xea00006b, /* entry. b 0x200 */ +}; + +static int read_full(int fd, void *buf, size_t size) +{ + size_t insize = size; + int now; + int total = 0; + + while (size) { + now = read(fd, buf, size); + if (now == 0) + return total; + if (now < 0) + return now; + total += now; + size -= now; + buf += now; + } + + return insize; +} + +static int write_full(int fd, void *buf, size_t size) +{ + size_t insize = size; + int now; + + while (size) { + now = write(fd, buf, size); + if (now <= 0) + return now; + size -= now; + buf += now; + } + + return insize; +} + +static uint32_t crc_table[256] = { + 0x00000000, 0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 0x17c56b6b, + 0x1a864db2, 0x1e475005, 0x2608edb8, 0x22c9f00f, 0x2f8ad6d6, 0x2b4bcb61, + 0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd, 0x4c11db70, 0x48d0c6c7, + 0x4593e01e, 0x4152fda9, 0x5f15adac, 0x5bd4b01b, 0x569796c2, 0x52568b75, + 0x6a1936c8, 0x6ed82b7f, 0x639b0da6, 0x675a1011, 0x791d4014, 0x7ddc5da3, + 0x709f7b7a, 0x745e66cd, 0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039, + 0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5, 0xbe2b5b58, 0xbaea46ef, + 0xb7a96036, 0xb3687d81, 0xad2f2d84, 0xa9ee3033, 0xa4ad16ea, 0xa06c0b5d, + 0xd4326d90, 0xd0f37027, 0xddb056fe, 0xd9714b49, 0xc7361b4c, 0xc3f706fb, + 0xceb42022, 0xca753d95, 0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1, + 0xe13ef6f4, 0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d, 0x34867077, 0x30476dc0, + 0x3d044b19, 0x39c556ae, 0x278206ab, 0x23431b1c, 0x2e003dc5, 0x2ac12072, + 0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16, 0x018aeb13, 0x054bf6a4, + 0x0808d07d, 0x0cc9cdca, 0x7897ab07, 0x7c56b6b0, 0x71159069, 0x75d48dde, + 0x6b93dddb, 0x6f52c06c, 0x6211e6b5, 0x66d0fb02, 0x5e9f46bf, 0x5a5e5b08, + 0x571d7dd1, 0x53dc6066, 0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba, + 0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e, 0xbfa1b04b, 0xbb60adfc, + 0xb6238b25, 0xb2e29692, 0x8aad2b2f, 0x8e6c3698, 0x832f1041, 0x87ee0df6, + 0x99a95df3, 0x9d684044, 0x902b669d, 0x94ea7b2a, 0xe0b41de7, 0xe4750050, + 0xe9362689, 0xedf73b3e, 0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2, + 0xc6bcf05f, 0xc27dede8, 0xcf3ecb31, 0xcbffd686, 0xd5b88683, 0xd1799b34, + 0xdc3abded, 0xd8fba05a, 0x690ce0ee, 0x6dcdfd59, 0x608edb80, 0x644fc637, + 0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb, 0x4f040d56, 0x4bc510e1, + 0x46863638, 0x42472b8f, 0x5c007b8a, 0x58c1663d, 0x558240e4, 0x51435d53, + 0x251d3b9e, 0x21dc2629, 0x2c9f00f0, 0x285e1d47, 0x36194d42, 0x32d850f5, + 0x3f9b762c, 0x3b5a6b9b, 0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff, + 0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623, 0xf12f560e, 0xf5ee4bb9, + 0xf8ad6d60, 0xfc6c70d7, 0xe22b20d2, 0xe6ea3d65, 0xeba91bbc, 0xef68060b, + 0xd727bbb6, 0xd3e6a601, 0xdea580d8, 0xda649d6f, 0xc423cd6a, 0xc0e2d0dd, + 0xcda1f604, 0xc960ebb3, 0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7, + 0xae3afba2, 0xaafbe615, 0xa7b8c0cc, 0xa379dd7b, 0x9b3660c6, 0x9ff77d71, + 0x92b45ba8, 0x9675461f, 0x8832161a, 0x8cf30bad, 0x81b02d74, 0x857130c3, + 0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640, 0x4e8ee645, 0x4a4ffbf2, + 0x470cdd2b, 0x43cdc09c, 0x7b827d21, 0x7f436096, 0x7200464f, 0x76c15bf8, + 0x68860bfd, 0x6c47164a, 0x61043093, 0x65c52d24, 0x119b4be9, 0x155a565e, + 0x18197087, 0x1cd86d30, 0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec, + 0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088, 0x2497d08d, 0x2056cd3a, + 0x2d15ebe3, 0x29d4f654, 0xc5a92679, 0xc1683bce, 0xcc2b1d17, 0xc8ea00a0, + 0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb, 0xdbee767c, 0xe3a1cbc1, 0xe760d676, + 0xea23f0af, 0xeee2ed18, 0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4, + 0x89b8fd09, 0x8d79e0be, 0x803ac667, 0x84fbdbd0, 0x9abc8bd5, 0x9e7d9662, + 0x933eb0bb, 0x97ffad0c, 0xafb010b1, 0xab710d06, 0xa6322bdf, 0xa2f33668, + 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4 +}; + +uint32_t crc32(uint32_t crc, void *_buf, int length) +{ + uint8_t *buf = _buf; + + while (length--) + crc = crc << 8 ^ crc_table[(crc >> 24 ^ *(buf++)) & 0xff]; + + return crc; +} + +static int add_socfpga_header(void *buf, int size) +{ + struct socfpga_header *header = buf + 0x40; + uint8_t *buf_header = buf + 0x40; + uint32_t *crc; + unsigned checksum; + int length = size >> 2; + int i; + + if (size & 0x3) { + fprintf(stderr, "%s: size must be multiple of 4\n", __func__); + return -EINVAL; + } + + header->validation_word[0] = VALIDATION_WORD & 0xff; + header->validation_word[1] = (VALIDATION_WORD >> 8) & 0xff; + header->validation_word[2] = (VALIDATION_WORD >> 16) & 0xff; + header->validation_word[3] = (VALIDATION_WORD >> 24) & 0xff; + header->version = 0; + header->flags = 0; + header->program_length[0] = length & 0xff; + header->program_length[1] = (length >> 8) & 0xff; + header->spare[0] = 0; + header->spare[1] = 0; + + checksum = 0; + for (i = 0; i < sizeof(*header) - 2; i++) + checksum += buf_header[i]; + + header->checksum[0] = checksum & 0xff;; + header->checksum[1] = (checksum >> 8) & 0xff;; + + crc = buf + size - sizeof(uint32_t); + + *crc = crc32(0xffffffff, buf, size - sizeof(uint32_t)); + *crc ^= 0xffffffff; + + return 0; +} + +static void usage(const char *prgname) +{ + fprintf(stderr, "usage: %s [OPTIONS] <infile>\n", prgname); +} + +int main(int argc, char *argv[]) +{ + int opt, ret; + const char *outfile = NULL, *infile; + struct stat s; + void *buf; + int fd; + int min_image_size = 80; + int max_image_size = MAX_IMAGE_SIZE; + int addsize = 0, pad; + + while ((opt = getopt(argc, argv, "o:hb")) != -1) { + switch (opt) { + case 'b': + add_barebox_header = 1; + min_image_size = 0; + max_image_size = MAX_IMAGE_SIZE - 512; + addsize = 512; + break; + case 'h': + usage(argv[0]); + exit(0); + case 'o': + outfile = optarg; + break; + default: + exit(1); + } + } + + if (optind == argc) { + usage(argv[0]); + exit(1); + } + + infile = argv[optind]; + + ret = stat(infile, &s); + if (ret) { + perror("stat"); + exit(1); + } + + if (s.st_size < min_image_size) { + fprintf(stderr, "input image too small. Minimum is 80 bytes\n"); + exit(1); + } + + if (s.st_size > max_image_size) { + fprintf(stderr, "input image too big. Maximum is %d bytes, got %ld bytes\n", + max_image_size, s.st_size); + exit(1); + } + + fd = open(infile, O_RDONLY); + if (fd < 0) { + perror("open infile"); + exit(1); + } + + pad = s.st_size & 0x3; + if (pad) + pad = 4 - pad; + + buf = calloc(s.st_size + 4 + addsize + pad, 1); + if (!buf) { + perror("malloc"); + exit(1); + } + + ret = read_full(fd, buf + addsize, s.st_size); + if (ret < 0) { + perror("read infile"); + exit(1); + } + + close(fd); + + if (add_barebox_header) { + memcpy(buf, bb_header, sizeof(bb_header)); + } + + ret = add_socfpga_header(buf, s.st_size + 4 + addsize + pad); + if (ret) + exit(1); + + fd = open(outfile, O_WRONLY | O_CREAT | O_TRUNC, 0644); + if (fd < 0) { + perror("open outfile"); + exit(1); + } + + ret = write_full(fd, buf, s.st_size + 4 + addsize + pad); + if (ret < 0) { + perror("write outfile"); + exit(1); + } + + exit(0); +} diff --git a/package/mkpimage/mkpimage.mk b/package/mkpimage/mkpimage.mk new file mode 100644 index 0000000..6360902 --- /dev/null +++ b/package/mkpimage/mkpimage.mk @@ -0,0 +1,22 @@ +################################################################################ +# +# mkpimage +# +################################################################################ + +# source included in the package +# came from barebox's repository: +# http://git.pengutronix.de/?p=barebox.git;a=blob;f=scripts/socfpga_mkimage.c;h=1a7a66d98841e9f52c3ea49c651286aa1412c9a5;hb=HEAD +HOST_MKPIMAGE_SOURCE = +HOST_MKPIMAGE_LICENSE = GPLv2 + +define HOST_MKPIMAGE_BUILD_CMDS + $(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \ + package/mkpimage/mkpimage.c -o $(@D)/mkpimage +endef + +define HOST_MKPIMAGE_INSTALL_CMDS + $(INSTALL) -D -m 0755 $(@D)/mkpimage $(HOST_DIR)/usr/bin/mkpimage +endef + +$(eval $(host-generic-package)) -- 2.6.1 ^ permalink raw reply related [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH v2 1/7] mkpimage: new host package 2015-10-20 11:32 ` [Buildroot] [PATCH v2 1/7] mkpimage: new host package Jan Viktorin @ 2016-03-22 22:53 ` Thomas Petazzoni 0 siblings, 0 replies; 38+ messages in thread From: Thomas Petazzoni @ 2016-03-22 22:53 UTC (permalink / raw) To: buildroot Hello, On Tue, 20 Oct 2015 13:32:19 +0200, Jan Viktorin wrote: > The tool helps to create a working SPL to boot Altera SoC FPGA boards. > > The code of mkpimage is integrated directly from the Barebox repository > as stated in the 'mkpimage.mk' file. > > This tool is *NOT* necessary for any other boards so far. > > Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> > Tested-by: Jan Viktorin <viktorin@rehivetech.com> > --- > v1 -> v2: dropped Go implementation, included mkpimage.c from Barebox > because of a wierd URL that cannot be hanled by Buildroot > --- > package/mkpimage/mkpimage.c | 287 +++++++++++++++++++++++++++++++++++++++++++ > package/mkpimage/mkpimage.mk | 22 ++++ > 2 files changed, 309 insertions(+) > create mode 100644 package/mkpimage/mkpimage.c > create mode 100644 package/mkpimage/mkpimage.mk Applied to master, thanks. Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH v2 2/7] boot/uboot: compute CRC on SPLs for Altera SoC FPGA 2015-10-20 11:32 ` [Buildroot] [PATCH v2 0/7] " Jan Viktorin 2015-10-20 11:32 ` [Buildroot] [PATCH v2 1/7] mkpimage: new host package Jan Viktorin @ 2015-10-20 11:32 ` Jan Viktorin 2015-10-20 11:36 ` Jan Viktorin 2016-03-22 22:54 ` Thomas Petazzoni 2015-10-20 11:32 ` [Buildroot] [PATCH v2 3/7] altera: improve readme to cover both supported boards Jan Viktorin ` (4 subsequent siblings) 6 siblings, 2 replies; 38+ messages in thread From: Jan Viktorin @ 2015-10-20 11:32 UTC (permalink / raw) To: buildroot Signed-off-by: Jan Viktorin <viktorin@rehivetech.com> --- boot/uboot/Config.in | 10 ++++++++++ boot/uboot/uboot.mk | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in index 8643dab..b2a69f3 100644 --- a/boot/uboot/Config.in +++ b/boot/uboot/Config.in @@ -338,6 +338,16 @@ config BR2_TARGET_UBOOT_ZYNQ_IMAGE for u-boot-dtb.img file so this U-Boot format is required to be set. +config BR2_TARGET_UBOOT_SOCFPGA_IMAGE_CRC + bool "CRC SPL image for SoC FPGA" + depends on BR2_arm + depends on BR2_TARGET_UBOOT_SPL + help + Generate SPL image fixed by the mkpimage tool to enable + booting on the SoC FPGA based platforms. The tool is + available at https://github.com/maximeh/mkpimage. + It requires a Go language compiler installed on your host. + menuconfig BR2_TARGET_UBOOT_ENVIMAGE bool "Environment image" help diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk index 66e728f..8b32154 100644 --- a/boot/uboot/uboot.mk +++ b/boot/uboot/uboot.mk @@ -215,6 +215,15 @@ UBOOT_DEPENDENCIES += host-zynq-boot-bin UBOOT_POST_INSTALL_IMAGES_HOOKS += UBOOT_GENERATE_ZYNQ_IMAGE endif +ifeq ($(BR2_TARGET_UBOOT_SOCFPGA_IMAGE_CRC),y) +define UBOOT_CRC_SOCFPGA_IMAGE + $(HOST_DIR)/usr/bin/mkpimage -o $(BINARIES_DIR)/$(notdir $(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME))).crc \ + $(@D)/$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)) +endef +UBOOT_DEPENDENCIES += host-mkpimage +UBOOT_POST_INSTALL_IMAGES_HOOKS += UBOOT_CRC_SOCFPGA_IMAGE +endif + ifeq ($(BR2_TARGET_UBOOT_ENVIMAGE),y) ifeq ($(BR_BUILDING),y) ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_ENVIMAGE_SOURCE)),) -- 2.6.1 ^ permalink raw reply related [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH v2 2/7] boot/uboot: compute CRC on SPLs for Altera SoC FPGA 2015-10-20 11:32 ` [Buildroot] [PATCH v2 2/7] boot/uboot: compute CRC on SPLs for Altera SoC FPGA Jan Viktorin @ 2015-10-20 11:36 ` Jan Viktorin 2016-03-22 22:54 ` Thomas Petazzoni 1 sibling, 0 replies; 38+ messages in thread From: Jan Viktorin @ 2015-10-20 11:36 UTC (permalink / raw) To: buildroot A small mistake here... On Tue, 20 Oct 2015 13:32:20 +0200 Jan Viktorin <viktorin@rehivetech.com> wrote: > Signed-off-by: Jan Viktorin <viktorin@rehivetech.com> > --- > boot/uboot/Config.in | 10 ++++++++++ > boot/uboot/uboot.mk | 9 +++++++++ > 2 files changed, 19 insertions(+) > > diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in > index 8643dab..b2a69f3 100644 > --- a/boot/uboot/Config.in > +++ b/boot/uboot/Config.in > @@ -338,6 +338,16 @@ config BR2_TARGET_UBOOT_ZYNQ_IMAGE > for u-boot-dtb.img file so this U-Boot format is required > to be set. > > +config BR2_TARGET_UBOOT_SOCFPGA_IMAGE_CRC > + bool "CRC SPL image for SoC FPGA" > + depends on BR2_arm > + depends on BR2_TARGET_UBOOT_SPL > + help > + Generate SPL image fixed by the mkpimage tool to enable > + booting on the SoC FPGA based platforms. The tool is > + available at https://github.com/maximeh/mkpimage. > + It requires a Go language compiler installed on your host. The last 2 and half lines about mkpimage are obsolete for v2 ^^^^ > + > menuconfig BR2_TARGET_UBOOT_ENVIMAGE > bool "Environment image" > help > diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk > index 66e728f..8b32154 100644 > --- a/boot/uboot/uboot.mk > +++ b/boot/uboot/uboot.mk > @@ -215,6 +215,15 @@ UBOOT_DEPENDENCIES += host-zynq-boot-bin > UBOOT_POST_INSTALL_IMAGES_HOOKS += UBOOT_GENERATE_ZYNQ_IMAGE > endif > > +ifeq ($(BR2_TARGET_UBOOT_SOCFPGA_IMAGE_CRC),y) > +define UBOOT_CRC_SOCFPGA_IMAGE > + $(HOST_DIR)/usr/bin/mkpimage -o $(BINARIES_DIR)/$(notdir $(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME))).crc \ > + $(@D)/$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)) > +endef > +UBOOT_DEPENDENCIES += host-mkpimage > +UBOOT_POST_INSTALL_IMAGES_HOOKS += UBOOT_CRC_SOCFPGA_IMAGE > +endif > + > ifeq ($(BR2_TARGET_UBOOT_ENVIMAGE),y) > ifeq ($(BR_BUILDING),y) > ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_ENVIMAGE_SOURCE)),) -- Jan Viktorin E-mail: Viktorin at RehiveTech.com System Architect Web: www.RehiveTech.com RehiveTech Brno, Czech Republic ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH v2 2/7] boot/uboot: compute CRC on SPLs for Altera SoC FPGA 2015-10-20 11:32 ` [Buildroot] [PATCH v2 2/7] boot/uboot: compute CRC on SPLs for Altera SoC FPGA Jan Viktorin 2015-10-20 11:36 ` Jan Viktorin @ 2016-03-22 22:54 ` Thomas Petazzoni 2016-03-23 12:57 ` Jan Viktorin 1 sibling, 1 reply; 38+ messages in thread From: Thomas Petazzoni @ 2016-03-22 22:54 UTC (permalink / raw) To: buildroot Hello, On Tue, 20 Oct 2015 13:32:20 +0200, Jan Viktorin wrote: > Signed-off-by: Jan Viktorin <viktorin@rehivetech.com> > --- > boot/uboot/Config.in | 10 ++++++++++ > boot/uboot/uboot.mk | 9 +++++++++ > 2 files changed, 19 insertions(+) > > diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in > index 8643dab..b2a69f3 100644 > --- a/boot/uboot/Config.in > +++ b/boot/uboot/Config.in > @@ -338,6 +338,16 @@ config BR2_TARGET_UBOOT_ZYNQ_IMAGE > for u-boot-dtb.img file so this U-Boot format is required > to be set. > > +config BR2_TARGET_UBOOT_SOCFPGA_IMAGE_CRC I've added ALTERA in the option name. > + bool "CRC SPL image for SoC FPGA" In the prompt. > + depends on BR2_arm > + depends on BR2_TARGET_UBOOT_SPL > + help > + Generate SPL image fixed by the mkpimage tool to enable > + booting on the SoC FPGA based platforms. The tool is > + available at https://github.com/maximeh/mkpimage. > + It requires a Go language compiler installed on your host. I've tweaked this description to longer refer to Maxime's tool since you're not using it. I've also s/SoC FPGA/Altera SoC FPGA/. SoC FPGA is really a poor choice from Altera, since it's just two generic terms put next to each other, so we really need to write "Altera SoC FPGA" everywhere, otherwise it's confusing. Applied with those things fixed. Best regards, Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH v2 2/7] boot/uboot: compute CRC on SPLs for Altera SoC FPGA 2016-03-22 22:54 ` Thomas Petazzoni @ 2016-03-23 12:57 ` Jan Viktorin 2016-03-23 13:06 ` Thomas Petazzoni 0 siblings, 1 reply; 38+ messages in thread From: Jan Viktorin @ 2016-03-23 12:57 UTC (permalink / raw) To: buildroot Hello, I am surprise a bit by applying those quite old patchs. I've forgotten about this patch series entirely. I am afraid, they've fixed this in U-Boot upstream (2016.01?) by generating *.sfp files. I was testing this some time ago with: BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y BR2_TARGET_UBOOT_SPL=y BR2_TARGET_UBOOT_SPL_NAME="spl/u-boot-spl-dtb.sfp" and it seems to work. I didn't have time to sync this with Buildroot upstream, sorry. Regards Jan On Tue, 22 Mar 2016 23:54:28 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com> wrote: > Hello, > > On Tue, 20 Oct 2015 13:32:20 +0200, Jan Viktorin wrote: > > Signed-off-by: Jan Viktorin <viktorin@rehivetech.com> > > --- > > boot/uboot/Config.in | 10 ++++++++++ > > boot/uboot/uboot.mk | 9 +++++++++ > > 2 files changed, 19 insertions(+) > > > > diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in > > index 8643dab..b2a69f3 100644 > > --- a/boot/uboot/Config.in > > +++ b/boot/uboot/Config.in > > @@ -338,6 +338,16 @@ config BR2_TARGET_UBOOT_ZYNQ_IMAGE > > for u-boot-dtb.img file so this U-Boot format is required > > to be set. > > > > +config BR2_TARGET_UBOOT_SOCFPGA_IMAGE_CRC > > I've added ALTERA in the option name. > > > + bool "CRC SPL image for SoC FPGA" > > In the prompt. > > > + depends on BR2_arm > > + depends on BR2_TARGET_UBOOT_SPL > > + help > > + Generate SPL image fixed by the mkpimage tool to enable > > + booting on the SoC FPGA based platforms. The tool is > > + available at https://github.com/maximeh/mkpimage. > > + It requires a Go language compiler installed on your host. > > I've tweaked this description to longer refer to Maxime's tool since > you're not using it. I've also s/SoC FPGA/Altera SoC FPGA/. SoC FPGA is > really a poor choice from Altera, since it's just two generic terms put > next to each other, so we really need to write "Altera SoC FPGA" > everywhere, otherwise it's confusing. > > Applied with those things fixed. > > Best regards, > > Thomas -- Jan Viktorin E-mail: Viktorin at RehiveTech.com System Architect Web: www.RehiveTech.com RehiveTech Brno, Czech Republic ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH v2 2/7] boot/uboot: compute CRC on SPLs for Altera SoC FPGA 2016-03-23 12:57 ` Jan Viktorin @ 2016-03-23 13:06 ` Thomas Petazzoni 2016-03-23 13:10 ` Jan Viktorin 0 siblings, 1 reply; 38+ messages in thread From: Thomas Petazzoni @ 2016-03-23 13:06 UTC (permalink / raw) To: buildroot Hello, On Wed, 23 Mar 2016 13:57:41 +0100, Jan Viktorin wrote: > I am surprise a bit by applying those quite old patchs. I've forgotten > about this patch series entirely. I am afraid, they've fixed this in > U-Boot upstream (2016.01?) by generating *.sfp files. I was testing > this some time ago with: > > BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y > BR2_TARGET_UBOOT_SPL=y > BR2_TARGET_UBOOT_SPL_NAME="spl/u-boot-spl-dtb.sfp" > > and it seems to work. I didn't have time to sync this with Buildroot > upstream, sorry. No problem. Before applying, I looked in U-Boot if there was a tool called mkpimage, and there wasn't, so I assumed it was still needed. In this case, could you send some follow-up patches that revert the changes that are no longer needed, and that update the two Altera defconfigs to use newer U-Boot versions that have this capability? Thanks! Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH v2 2/7] boot/uboot: compute CRC on SPLs for Altera SoC FPGA 2016-03-23 13:06 ` Thomas Petazzoni @ 2016-03-23 13:10 ` Jan Viktorin 0 siblings, 0 replies; 38+ messages in thread From: Jan Viktorin @ 2016-03-23 13:10 UTC (permalink / raw) To: buildroot On Wed, 23 Mar 2016 14:06:32 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com> wrote: > Hello, > > On Wed, 23 Mar 2016 13:57:41 +0100, Jan Viktorin wrote: > > > I am surprise a bit by applying those quite old patchs. I've forgotten > > about this patch series entirely. I am afraid, they've fixed this in > > U-Boot upstream (2016.01?) by generating *.sfp files. I was testing > > this some time ago with: > > > > BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y > > BR2_TARGET_UBOOT_SPL=y > > BR2_TARGET_UBOOT_SPL_NAME="spl/u-boot-spl-dtb.sfp" > > > > and it seems to work. I didn't have time to sync this with Buildroot > > upstream, sorry. > > No problem. Before applying, I looked in U-Boot if there was a tool > called mkpimage, and there wasn't, so I assumed it was still needed. > > In this case, could you send some follow-up patches that revert the > changes that are no longer needed, and that update the two Altera > defconfigs to use newer U-Boot versions that have this capability? I'll be happy to do it if I find some time for this. Jan > > Thanks! > > Thomas -- Jan Viktorin E-mail: Viktorin at RehiveTech.com System Architect Web: www.RehiveTech.com RehiveTech Brno, Czech Republic ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH v2 3/7] altera: improve readme to cover both supported boards 2015-10-20 11:32 ` [Buildroot] [PATCH v2 0/7] " Jan Viktorin 2015-10-20 11:32 ` [Buildroot] [PATCH v2 1/7] mkpimage: new host package Jan Viktorin 2015-10-20 11:32 ` [Buildroot] [PATCH v2 2/7] boot/uboot: compute CRC on SPLs for Altera SoC FPGA Jan Viktorin @ 2015-10-20 11:32 ` Jan Viktorin 2016-03-22 22:54 ` Thomas Petazzoni 2015-10-20 11:32 ` [Buildroot] [PATCH v2 4/7] altera: update text about the mkpimage Jan Viktorin ` (3 subsequent siblings) 6 siblings, 1 reply; 38+ messages in thread From: Jan Viktorin @ 2015-10-20 11:32 UTC (permalink / raw) To: buildroot Signed-off-by: Jan Viktorin <viktorin@rehivetech.com> --- board/altera/readme.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/board/altera/readme.txt b/board/altera/readme.txt index 8d5b891..ddd9e03 100644 --- a/board/altera/readme.txt +++ b/board/altera/readme.txt @@ -1,4 +1,4 @@ -SoCkit +SoCkit, SoC Development Kit Intro ===== @@ -6,9 +6,12 @@ Intro This is the buildroot board support for the Arrow SoCkit Evaluation Board and the Altera Cyclone 5 Development Board. -A good source of information is : +A good source of information for Arrow SoCkit: http://www.rocketboards.org/foswiki/Documentation/ArrowSoCKitEvaluationBoard +More information about SoC DK: +https://www.altera.com/products/boards_and_kits/dev-kits/altera/kit-cyclone-v-soc.html + How it works ============ -- 2.6.1 ^ permalink raw reply related [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH v2 3/7] altera: improve readme to cover both supported boards 2015-10-20 11:32 ` [Buildroot] [PATCH v2 3/7] altera: improve readme to cover both supported boards Jan Viktorin @ 2016-03-22 22:54 ` Thomas Petazzoni 0 siblings, 0 replies; 38+ messages in thread From: Thomas Petazzoni @ 2016-03-22 22:54 UTC (permalink / raw) To: buildroot Hello, On Tue, 20 Oct 2015 13:32:21 +0200, Jan Viktorin wrote: > Signed-off-by: Jan Viktorin <viktorin@rehivetech.com> > --- > board/altera/readme.txt | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) Applied to master, thanks. Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH v2 4/7] altera: update text about the mkpimage 2015-10-20 11:32 ` [Buildroot] [PATCH v2 0/7] " Jan Viktorin ` (2 preceding siblings ...) 2015-10-20 11:32 ` [Buildroot] [PATCH v2 3/7] altera: improve readme to cover both supported boards Jan Viktorin @ 2015-10-20 11:32 ` Jan Viktorin 2016-03-22 22:55 ` Thomas Petazzoni 2015-10-20 11:32 ` [Buildroot] [PATCH v2 5/7] altera: change mmcblk0 to sdc Jan Viktorin ` (2 subsequent siblings) 6 siblings, 1 reply; 38+ messages in thread From: Jan Viktorin @ 2015-10-20 11:32 UTC (permalink / raw) To: buildroot As we've integrated the mkpimage, we just leave some notes about other available tools and give an advice how to enable this feature in Buildroot. Signed-off-by: Jan Viktorin <viktorin@rehivetech.com> --- board/altera/readme.txt | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/board/altera/readme.txt b/board/altera/readme.txt index ddd9e03..fdd7316 100644 --- a/board/altera/readme.txt +++ b/board/altera/readme.txt @@ -75,21 +75,23 @@ After building, you should obtain this tree: ??? socfpga.dtb ??? u-boot.img ??? u-boot-spl.bin + ??? u-boot-spl.bin.crc ??? uImage Signing the Preloader --------------------- -*** BEWARE **** -The u-boot-spl.bin must be signed using the Altera's tool "mkpimage". -This tool comes as a part of the Altera development environnment (SoC EDS). -A fork of this tool have been done by Maxime Hadjinlian and can be found here : -https://github.com/maximeh/mkpimage +The u-boot-spl.bin needs a checksum computed by the Altera's tool "mkpimage". +This tool comes as a part of the Altera development environnment (SoC EDS), +as a standalone tool https://github.com/maximeh/mkpimage and as a part of the +Barebox project. The boards do not boot without the checksum. -Remember that without signing the u-boot-spl.bin, the board will not boot !!! +The Buildroot integrates the mkpimage and you can find it in the configuration. +If you check: "Bootloaders/U-Boot/CRC SPL image for SoC FPGA" the build system +calls mkpimage on the SPL for you automatically. - $ mkpimage u-boot-spl.bin -o u-boot-spl-signed.bin + $ mkpimage u-boot-spl.bin -o u-boot-spl.bin.crc Prepare your SDcard =================== -- 2.6.1 ^ permalink raw reply related [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH v2 4/7] altera: update text about the mkpimage 2015-10-20 11:32 ` [Buildroot] [PATCH v2 4/7] altera: update text about the mkpimage Jan Viktorin @ 2016-03-22 22:55 ` Thomas Petazzoni 0 siblings, 0 replies; 38+ messages in thread From: Thomas Petazzoni @ 2016-03-22 22:55 UTC (permalink / raw) To: buildroot Hello, On Tue, 20 Oct 2015 13:32:22 +0200, Jan Viktorin wrote: > As we've integrated the mkpimage, we just leave some notes > about other available tools and give an advice how to enable > this feature in Buildroot. > > Signed-off-by: Jan Viktorin <viktorin@rehivetech.com> > --- > board/altera/readme.txt | 16 +++++++++------- > 1 file changed, 9 insertions(+), 7 deletions(-) > > diff --git a/board/altera/readme.txt b/board/altera/readme.txt > index ddd9e03..fdd7316 100644 > --- a/board/altera/readme.txt > +++ b/board/altera/readme.txt > @@ -75,21 +75,23 @@ After building, you should obtain this tree: > ??? socfpga.dtb > ??? u-boot.img > ??? u-boot-spl.bin > + ??? u-boot-spl.bin.crc > ??? uImage > > > Signing the Preloader > --------------------- > > -*** BEWARE **** > -The u-boot-spl.bin must be signed using the Altera's tool "mkpimage". > -This tool comes as a part of the Altera development environnment (SoC EDS). > -A fork of this tool have been done by Maxime Hadjinlian and can be found here : > -https://github.com/maximeh/mkpimage > +The u-boot-spl.bin needs a checksum computed by the Altera's tool "mkpimage". > +This tool comes as a part of the Altera development environnment (SoC EDS), > +as a standalone tool https://github.com/maximeh/mkpimage and as a part of the > +Barebox project. The boards do not boot without the checksum. > > -Remember that without signing the u-boot-spl.bin, the board will not boot !!! > +The Buildroot integrates the mkpimage and you can find it in the configuration. > +If you check: "Bootloaders/U-Boot/CRC SPL image for SoC FPGA" the build system > +calls mkpimage on the SPL for you automatically. > > - $ mkpimage u-boot-spl.bin -o u-boot-spl-signed.bin > + $ mkpimage u-boot-spl.bin -o u-boot-spl.bin.crc This is the wrong change. Instead, you should just modify the two Altera defconfigs we have to use the new feature, and remove all that text since the final bootloader image is now automatically generated by Buildroot. You can leave a note like "The final U-Boot image with the Altera required CRC is automatically generated by Buildroot using mkpimage", but all the rest is useless once the defconfigs are changed. I'll mark this patch as Changes Requested in our patch tracking system. Thanks! Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH v2 5/7] altera: change mmcblk0 to sdc 2015-10-20 11:32 ` [Buildroot] [PATCH v2 0/7] " Jan Viktorin ` (3 preceding siblings ...) 2015-10-20 11:32 ` [Buildroot] [PATCH v2 4/7] altera: update text about the mkpimage Jan Viktorin @ 2015-10-20 11:32 ` Jan Viktorin 2016-03-22 22:56 ` Thomas Petazzoni 2015-10-20 11:32 ` [Buildroot] [PATCH v2 6/7] altera: improve fdisk instructions Jan Viktorin 2015-10-20 11:32 ` [Buildroot] [PATCH v2 7/7] altera: remove whitespace before colon Jan Viktorin 6 siblings, 1 reply; 38+ messages in thread From: Jan Viktorin @ 2015-10-20 11:32 UTC (permalink / raw) To: buildroot It is not very common to have mmcblk0 device on the host PC, the previous text was quite confusing. Signed-off-by: Jan Viktorin <viktorin@rehivetech.com> --- board/altera/readme.txt | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/board/altera/readme.txt b/board/altera/readme.txt index fdd7316..62c3670 100644 --- a/board/altera/readme.txt +++ b/board/altera/readme.txt @@ -106,9 +106,9 @@ Determine the device associated to the SD card : $ cat /proc/partitions -let's assume it is /dev/mmcblk0 : +let's assume it is /dev/sdc : - $ sudo fdisk /dev/mmcblk0 + $ sudo fdisk /dev/sdc Delete all previous partitions with 'd' then create the new partition table, using these options, pressing enter after each one: @@ -120,15 +120,15 @@ using these options, pressing enter after each one: Using the 'p' option, the SD card's partition must look like this : Device Boot Start End Blocks Id System -/dev/mmcblk0p1 9000000 9041919 20960 b W95 FAT32 -/dev/mmcblk0p2 4096 8996863 4496384 83 Linux -/dev/mmcblk0p3 2048 4095 1024 a2 Unknown +/dev/sdc1 9000000 9041919 20960 b W95 FAT32 +/dev/sdc2 4096 8996863 4496384 83 Linux +/dev/sdc3 2048 4095 1024 a2 Unknown Then write the partition table using 'w' and exit. Make partition one a DOS partition : - $ sudo mkdosfs /dev/mmcblk0p1 + $ sudo mkdosfs /dev/sdc1 Install the binaries to the SDcard ---------------------------------- @@ -141,19 +141,19 @@ The partition with type a2 is the partition scan by the first bootloader stage in the SoCkit ROM to find the next bootloader stage so we must write the signed preloader and the u-boot binaries in that partition : - $ sudo dd if=u-boot-spl-signed.bin of=/dev/mmcblk0p3 bs=64k seek=0 - $ sudo dd if=u-boot.img of=/dev/mmcblk0p3 bs=64k seek=4 + $ sudo dd if=u-boot-spl-signed.bin of=/dev/sdc3 bs=64k seek=0 + $ sudo dd if=u-boot.img of=/dev/sdc3 bs=64k seek=4 Copy the Linux kernel and its Device tree : $ sudo mkdir /mnt/sdcard - $ sudo mount /dev/mmcblk0p1 /mnt/sdcard + $ sudo mount /dev/sdc1 /mnt/sdcard $ sudo cp socfpga.dtb uImage /mnt/sdcard $ sudo umount /mnt/sdcard Copy the rootfs : - $ sudo dd if=rootfs.ext2 of=/dev/mmcblk0p2 bs=64k + $ sudo dd if=rootfs.ext2 of=/dev/sdc2 bs=64k $ sudo sync It's Done! -- 2.6.1 ^ permalink raw reply related [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH v2 5/7] altera: change mmcblk0 to sdc 2015-10-20 11:32 ` [Buildroot] [PATCH v2 5/7] altera: change mmcblk0 to sdc Jan Viktorin @ 2016-03-22 22:56 ` Thomas Petazzoni 0 siblings, 0 replies; 38+ messages in thread From: Thomas Petazzoni @ 2016-03-22 22:56 UTC (permalink / raw) To: buildroot Hello, On Tue, 20 Oct 2015 13:32:23 +0200, Jan Viktorin wrote: > It is not very common to have mmcblk0 device on the host PC, > the previous text was quite confusing. > > Signed-off-by: Jan Viktorin <viktorin@rehivetech.com> I think this is not true. On my PC right now: 179 0 3813376 mmcblk0 179 1 3813344 mmcblk0p1 So I believe this patch is not really necessary. Just keep /dev/mmcblk0, the text is clear enough that this device might be different on the user's system. I've marked this one as Rejected in patchwork. Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH v2 6/7] altera: improve fdisk instructions 2015-10-20 11:32 ` [Buildroot] [PATCH v2 0/7] " Jan Viktorin ` (4 preceding siblings ...) 2015-10-20 11:32 ` [Buildroot] [PATCH v2 5/7] altera: change mmcblk0 to sdc Jan Viktorin @ 2015-10-20 11:32 ` Jan Viktorin 2016-03-22 22:58 ` Thomas Petazzoni 2015-10-20 11:32 ` [Buildroot] [PATCH v2 7/7] altera: remove whitespace before colon Jan Viktorin 6 siblings, 1 reply; 38+ messages in thread From: Jan Viktorin @ 2015-10-20 11:32 UTC (permalink / raw) To: buildroot The 't' command expects the number of the target partition when there are at least 2 of them. Also note about the arbitrary value 9000000. Signed-off-by: Jan Viktorin <viktorin@rehivetech.com> --- board/altera/readme.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/board/altera/readme.txt b/board/altera/readme.txt index 62c3670..a30e5a9 100644 --- a/board/altera/readme.txt +++ b/board/altera/readme.txt @@ -111,10 +111,11 @@ let's assume it is /dev/sdc : $ sudo fdisk /dev/sdc Delete all previous partitions with 'd' then create the new partition table, -using these options, pressing enter after each one: +using these options, pressing enter after each one (the value 9000000 depends +on the size of your SD card): - * n p 1 9000000 +20480K t 1 b - * n p 2 4096 +4496384K t 83 + * n p 1 9000000 +20480K t b + * n p 2 4096 +4496384K t 2 83 * n p 3 2048 +1024K t 3 a2 Using the 'p' option, the SD card's partition must look like this : -- 2.6.1 ^ permalink raw reply related [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH v2 6/7] altera: improve fdisk instructions 2015-10-20 11:32 ` [Buildroot] [PATCH v2 6/7] altera: improve fdisk instructions Jan Viktorin @ 2016-03-22 22:58 ` Thomas Petazzoni 0 siblings, 0 replies; 38+ messages in thread From: Thomas Petazzoni @ 2016-03-22 22:58 UTC (permalink / raw) To: buildroot Hello, On Tue, 20 Oct 2015 13:32:24 +0200, Jan Viktorin wrote: > The 't' command expects the number of the target partition > when there are at least 2 of them. Also note about the arbitrary > value 9000000. > > Signed-off-by: Jan Viktorin <viktorin@rehivetech.com> > --- > board/altera/readme.txt | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/board/altera/readme.txt b/board/altera/readme.txt > index 62c3670..a30e5a9 100644 > --- a/board/altera/readme.txt > +++ b/board/altera/readme.txt > @@ -111,10 +111,11 @@ let's assume it is /dev/sdc : > $ sudo fdisk /dev/sdc > > Delete all previous partitions with 'd' then create the new partition table, > -using these options, pressing enter after each one: > +using these options, pressing enter after each one (the value 9000000 depends > +on the size of your SD card): > > - * n p 1 9000000 +20480K t 1 b > - * n p 2 4096 +4496384K t 83 > + * n p 1 9000000 +20480K t b > + * n p 2 4096 +4496384K t 2 83 > * n p 3 2048 +1024K t 3 a2 Rather than tweaking this horrible thing, what about using sfdisk instead, or even better, switch to genimage to generate the image ? The latter would really be the ideal solution (but I would accept a patch changing to sfdisk in the mean time, if you don't have the time to look into genimage right now). Thanks! Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH v2 7/7] altera: remove whitespace before colon 2015-10-20 11:32 ` [Buildroot] [PATCH v2 0/7] " Jan Viktorin ` (5 preceding siblings ...) 2015-10-20 11:32 ` [Buildroot] [PATCH v2 6/7] altera: improve fdisk instructions Jan Viktorin @ 2015-10-20 11:32 ` Jan Viktorin 2016-03-22 23:01 ` Thomas Petazzoni 6 siblings, 1 reply; 38+ messages in thread From: Jan Viktorin @ 2015-10-20 11:32 UTC (permalink / raw) To: buildroot Signed-off-by: Jan Viktorin <viktorin@rehivetech.com> --- board/altera/readme.txt | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/board/altera/readme.txt b/board/altera/readme.txt index a30e5a9..cda71c9 100644 --- a/board/altera/readme.txt +++ b/board/altera/readme.txt @@ -15,8 +15,8 @@ https://www.altera.com/products/boards_and_kits/dev-kits/altera/kit-cyclone-v-so How it works ============ -Boot process : --------------- +Boot process: +------------- In summary, the bootloader has multiple stages, an hardcoded boot routine is loaded from an on-chip ROM. @@ -28,15 +28,15 @@ loaded from an on-chip ROM. which will load the u-boot image. - Then the u-boot image will load the Linux kernel. -A good source of information for the boot process is : +A good source of information for the boot process is: http://xillybus.com/tutorials/u-boot-image-altera-soc -Note for the SPL : +Note for the SPL: The SPL generated by the u-boot from Rocketboards doesn't seems to work, therefore we provide a patch for {uboot-PKG}/board/altera/socfpga_cyclone5/* based on the files generated with the Altera example design. -For more information about this files please look at : +For more information about this files please look at: http://www.rocketboards.org/foswiki/Documentation/PreloaderUbootCustomization#Common_Source_Code How to build it @@ -46,11 +46,11 @@ Configure Buildroot ------------------- The altera_sockit_defconfig configuration is a minimal configuration with -all that is required to bring the SoCkit : +all that is required to bring the SoCkit: $ make altera_sockit_defconfig -and for the SoC Development Board : +and for the SoC Development Board: $ make altera_sockdk_defconfig @@ -96,17 +96,17 @@ calls mkpimage on the SPL for you automatically. Prepare your SDcard =================== -A good source of information for the partitioning process is : +A good source of information for the partitioning process is: http://www.rocketboards.org/foswiki/view/Projects/SoCKitLinaroLinuxDesktop#Partition_the_SD_Card Create the SDcard partition table ---------------------------------- -Determine the device associated to the SD card : +Determine the device associated to the SD card: $ cat /proc/partitions -let's assume it is /dev/sdc : +let's assume it is /dev/sdc: $ sudo fdisk /dev/sdc @@ -118,7 +118,7 @@ on the size of your SD card): * n p 2 4096 +4496384K t 2 83 * n p 3 2048 +1024K t 3 a2 -Using the 'p' option, the SD card's partition must look like this : +Using the 'p' option, the SD card's partition must look like this: Device Boot Start End Blocks Id System /dev/sdc1 9000000 9041919 20960 b W95 FAT32 @@ -127,32 +127,32 @@ Device Boot Start End Blocks Id System Then write the partition table using 'w' and exit. -Make partition one a DOS partition : +Make partition one a DOS partition: $ sudo mkdosfs /dev/sdc1 Install the binaries to the SDcard ---------------------------------- -Remember your binaries are located in output/images/, go inside that directory : +Remember your binaries are located in output/images/, go inside that directory: $ cd output/images The partition with type a2 is the partition scan by the first bootloader stage in the SoCkit ROM to find the next bootloader stage so we must write the signed -preloader and the u-boot binaries in that partition : +preloader and the u-boot binaries in that partition: $ sudo dd if=u-boot-spl-signed.bin of=/dev/sdc3 bs=64k seek=0 $ sudo dd if=u-boot.img of=/dev/sdc3 bs=64k seek=4 -Copy the Linux kernel and its Device tree : +Copy the Linux kernel and its Device tree: $ sudo mkdir /mnt/sdcard $ sudo mount /dev/sdc1 /mnt/sdcard $ sudo cp socfpga.dtb uImage /mnt/sdcard $ sudo umount /mnt/sdcard -Copy the rootfs : +Copy the rootfs: $ sudo dd if=rootfs.ext2 of=/dev/sdc2 bs=64k $ sudo sync -- 2.6.1 ^ permalink raw reply related [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH v2 7/7] altera: remove whitespace before colon 2015-10-20 11:32 ` [Buildroot] [PATCH v2 7/7] altera: remove whitespace before colon Jan Viktorin @ 2016-03-22 23:01 ` Thomas Petazzoni 0 siblings, 0 replies; 38+ messages in thread From: Thomas Petazzoni @ 2016-03-22 23:01 UTC (permalink / raw) To: buildroot Hello, On Tue, 20 Oct 2015 13:32:25 +0200, Jan Viktorin wrote: > Signed-off-by: Jan Viktorin <viktorin@rehivetech.com> > --- > board/altera/readme.txt | 32 ++++++++++++++++---------------- > 1 file changed, 16 insertions(+), 16 deletions(-) I've applied after fixing the conflicts due to the previous patches not being applied. Thanks! Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH] mpkimage: new package 2015-10-19 21:45 [Buildroot] [PATCH] mpkimage: new package Maxime Hadjinlian 2015-10-19 16:24 ` [Buildroot] [PATCH 0/4] Attempt to improve support for Altera SoC FPGA boards Jan Viktorin @ 2015-10-20 5:27 ` Baruch Siach 2015-10-20 7:19 ` Thomas Petazzoni 2 siblings, 0 replies; 38+ messages in thread From: Baruch Siach @ 2015-10-20 5:27 UTC (permalink / raw) To: buildroot Hi Maxime, On Mon, Oct 19, 2015 at 11:45:41PM +0200, Maxime Hadjinlian wrote: > +config BR2_PACKAGE_HOST_MKPIMAGE > + bool "host-mkpimage" All other host packages (except imx-usb-loader) don't have a dash after "host" in the config prompt. baruch -- http://baruch.siach.name/blog/ ~. .~ Tk Open Systems =}------------------------------------------------ooO--U--Ooo------------{= - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il - ^ permalink raw reply [flat|nested] 38+ messages in thread
* [Buildroot] [PATCH] mpkimage: new package 2015-10-19 21:45 [Buildroot] [PATCH] mpkimage: new package Maxime Hadjinlian 2015-10-19 16:24 ` [Buildroot] [PATCH 0/4] Attempt to improve support for Altera SoC FPGA boards Jan Viktorin 2015-10-20 5:27 ` [Buildroot] [PATCH] mpkimage: new package Baruch Siach @ 2015-10-20 7:19 ` Thomas Petazzoni 2 siblings, 0 replies; 38+ messages in thread From: Thomas Petazzoni @ 2015-10-20 7:19 UTC (permalink / raw) To: buildroot Maxime, On Mon, 19 Oct 2015 23:45:41 +0200, Maxime Hadjinlian wrote: > diff --git a/package/Config.in.host b/package/Config.in.host > index 1f69687..a4662d7 100644 > --- a/package/Config.in.host > +++ b/package/Config.in.host > @@ -15,6 +15,7 @@ menu "Host utilities" > source "package/imx-usb-loader/Config.in.host" > source "package/lpc3250loader/Config.in.host" > source "package/mke2img/Config.in.host" > + source "package/mkpimage/Config.in.host" Do we really need a visible Config.in option for this tool? Can't it simply be used as a dependency of U-Boot, as proposed by Jan in his patch series ? > diff --git a/package/mkpimage/mkpimage.mk b/package/mkpimage/mkpimage.mk > new file mode 100644 > index 0000000..d6dcdd2 > --- /dev/null > +++ b/package/mkpimage/mkpimage.mk > @@ -0,0 +1,22 @@ > +################################################################################ > +# > +# mkpimage > +# > +################################################################################ > + > +# source included in the package > +# came from barebox's repository: > +# http://git.pengutronix.de/?p=barebox.git;a=blob;f=scripts/socfpga_mkimage.c;h=1a7a66d98841e9f52c3ea49c651286aa1412c9a5;hb=HEAD > +HOST_MKPIMAGE_SOURCE = > +HOST_MKPIMAGE_LICENSE = GPLv2 > + > +define HOST_MKPIMAGE_BUILD_CMDS > + $(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \ > + package/mkpimage/mkpimage.c -o $(@D)/mkpimage Use tabs for indentation. > +endef > + > +define HOST_MKPIMAGE_INSTALL_CMDS > + $(INSTALL) -D -m 755 $(@D)/mkpimage $(HOST_DIR)/usr/bin/mkpimage Ditto. Thanks! Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 38+ messages in thread
end of thread, other threads:[~2016-03-23 13:10 UTC | newest] Thread overview: 38+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-10-19 21:45 [Buildroot] [PATCH] mpkimage: new package Maxime Hadjinlian 2015-10-19 16:24 ` [Buildroot] [PATCH 0/4] Attempt to improve support for Altera SoC FPGA boards Jan Viktorin 2015-10-19 16:24 ` [Buildroot] [PATCH 1/4] mkpimage: new host package Jan Viktorin 2015-10-19 19:04 ` Maxime Hadjinlian 2015-10-19 20:53 ` Thomas Petazzoni 2015-10-19 21:06 ` Yann E. MORIN 2015-10-19 21:12 ` Maxime Hadjinlian 2015-10-19 21:24 ` Jan Viktorin 2015-10-19 21:36 ` Maxime Hadjinlian 2015-10-19 22:10 ` Jan Viktorin 2015-10-19 22:12 ` Maxime Hadjinlian 2015-10-20 10:41 ` Jan Viktorin 2015-10-19 21:12 ` Thomas Petazzoni 2015-10-19 16:24 ` [Buildroot] [PATCH 2/4] boot/uboot: compute CRC on SPLs for Altera SoC FPGA Jan Viktorin 2015-10-19 16:24 ` [Buildroot] [PATCH 3/4] socfpga: update readme for sockit/socdk boards Jan Viktorin 2015-10-19 16:24 ` [Buildroot] [PATCH 4/4] socfpga: note about unnecessary mkpimage of SPL Jan Viktorin 2015-10-19 16:30 ` [Buildroot] [PATCH 0/4] Attempt to improve support for Altera SoC FPGA boards Jan Viktorin 2015-10-20 11:32 ` [Buildroot] [PATCH v2 0/7] " Jan Viktorin 2015-10-20 11:32 ` [Buildroot] [PATCH v2 1/7] mkpimage: new host package Jan Viktorin 2016-03-22 22:53 ` Thomas Petazzoni 2015-10-20 11:32 ` [Buildroot] [PATCH v2 2/7] boot/uboot: compute CRC on SPLs for Altera SoC FPGA Jan Viktorin 2015-10-20 11:36 ` Jan Viktorin 2016-03-22 22:54 ` Thomas Petazzoni 2016-03-23 12:57 ` Jan Viktorin 2016-03-23 13:06 ` Thomas Petazzoni 2016-03-23 13:10 ` Jan Viktorin 2015-10-20 11:32 ` [Buildroot] [PATCH v2 3/7] altera: improve readme to cover both supported boards Jan Viktorin 2016-03-22 22:54 ` Thomas Petazzoni 2015-10-20 11:32 ` [Buildroot] [PATCH v2 4/7] altera: update text about the mkpimage Jan Viktorin 2016-03-22 22:55 ` Thomas Petazzoni 2015-10-20 11:32 ` [Buildroot] [PATCH v2 5/7] altera: change mmcblk0 to sdc Jan Viktorin 2016-03-22 22:56 ` Thomas Petazzoni 2015-10-20 11:32 ` [Buildroot] [PATCH v2 6/7] altera: improve fdisk instructions Jan Viktorin 2016-03-22 22:58 ` Thomas Petazzoni 2015-10-20 11:32 ` [Buildroot] [PATCH v2 7/7] altera: remove whitespace before colon Jan Viktorin 2016-03-22 23:01 ` Thomas Petazzoni 2015-10-20 5:27 ` [Buildroot] [PATCH] mpkimage: new package Baruch Siach 2015-10-20 7:19 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox