summaryrefslogtreecommitdiff
path: root/meta/recipes-bsp/x-load
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-bsp/x-load')
-rw-r--r--meta/recipes-bsp/x-load/files/signGP.c73
-rw-r--r--meta/recipes-bsp/x-load/signgp-native.bb14
-rw-r--r--meta/recipes-bsp/x-load/x-load-git/beagleboard/armv7-a.patch11
-rw-r--r--meta/recipes-bsp/x-load/x-load-git/beagleboard/name.patch14
-rw-r--r--meta/recipes-bsp/x-load/x-load-git/omap3evm/armv7-a.patch11
-rw-r--r--meta/recipes-bsp/x-load/x-load-git/overo/armv7-a.patch11
-rw-r--r--meta/recipes-bsp/x-load/x-load.inc42
-rw-r--r--meta/recipes-bsp/x-load/x-load_git.bb29
8 files changed, 205 insertions, 0 deletions
diff --git a/meta/recipes-bsp/x-load/files/signGP.c b/meta/recipes-bsp/x-load/files/signGP.c
new file mode 100644
index 0000000000..0e8ed07f52
--- /dev/null
+++ b/meta/recipes-bsp/x-load/files/signGP.c
@@ -0,0 +1,73 @@
+//
+// signGP.c
+// Read the x-load.bin file and write out the x-load.bin.ift file.
+// The signed image is the original pre-pended with the size of the image
+// and the load address. If not entered on command line, file name is
+// assumed to be x-load.bin in current directory and load address is
+// 0x40200800.
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <string.h>
+#include <malloc.h>
+
+
+main(int argc, char *argv[])
+{
+ int i;
+ char ifname[FILENAME_MAX], ofname[FILENAME_MAX], ch;
+ FILE *ifile, *ofile;
+ unsigned long loadaddr, len;
+ struct stat sinfo;
+
+
+ // Default to x-load.bin and 0x40200800.
+ strcpy(ifname, "x-load.bin");
+ loadaddr = 0x40200800;
+
+ if ((argc == 2) || (argc == 3))
+ strcpy(ifname, argv[1]);
+
+ if (argc == 3)
+ loadaddr = strtol(argv[2], NULL, 16);
+
+ // Form the output file name.
+ strcpy(ofname, ifname);
+ strcat(ofname, ".ift");
+
+ // Open the input file.
+ ifile = fopen(ifname, "rb");
+ if (ifile == NULL) {
+ printf("Cannot open %s\n", ifname);
+ exit(0);
+ }
+
+ // Get file length.
+ stat(ifname, &sinfo);
+ len = sinfo.st_size;
+
+ // Open the output file and write it.
+ ofile = fopen(ofname, "wb");
+ if (ofile == NULL) {
+ printf("Cannot open %s\n", ofname);
+ fclose(ifile);
+ exit(0);
+ }
+
+ // Pad 1 sector of zeroes.
+ //ch = 0x00;
+ //for (i=0; i<0x200; i++)
+ // fwrite(&ch, 1, 1, ofile);
+
+ fwrite(&len, 1, 4, ofile);
+ fwrite(&loadaddr, 1, 4, ofile);
+ for (i=0; i<len; i++) {
+ fread(&ch, 1, 1, ifile);
+ fwrite(&ch, 1, 1, ofile);
+ }
+
+ fclose(ifile);
+ fclose(ofile);
+}
diff --git a/meta/recipes-bsp/x-load/signgp-native.bb b/meta/recipes-bsp/x-load/signgp-native.bb
new file mode 100644
index 0000000000..7eabb07bce
--- /dev/null
+++ b/meta/recipes-bsp/x-load/signgp-native.bb
@@ -0,0 +1,14 @@
+LICENSE = "unknown"
+DESCRIPTION = "Tool to sign omap3 x-loader images"
+
+inherit native
+SRC_URI = "file://signGP.c"
+
+do_compile() {
+ ${CC} ${WORKDIR}/signGP.c -o signGP
+}
+
+do_install() {
+ install -d ${D}${bindir}/
+ install -m 0755 signGP ${D}${bindir}/
+}
diff --git a/meta/recipes-bsp/x-load/x-load-git/beagleboard/armv7-a.patch b/meta/recipes-bsp/x-load/x-load-git/beagleboard/armv7-a.patch
new file mode 100644
index 0000000000..3131cda6bb
--- /dev/null
+++ b/meta/recipes-bsp/x-load/x-load-git/beagleboard/armv7-a.patch
@@ -0,0 +1,11 @@
+--- git/cpu/omap3/config.mk-orig 2008-05-27 16:46:45.000000000 -0700
++++ git/cpu/omap3/config.mk 2008-05-29 12:50:49.000000000 -0700
+@@ -23,7 +23,7 @@
+ PLATFORM_RELFLAGS += -fno-strict-aliasing -fno-common -ffixed-r8 \
+ -msoft-float
+
+-PLATFORM_CPPFLAGS += -march=armv7a
++PLATFORM_CPPFLAGS += -march=armv7-a
+ # =========================================================================
+ #
+ # Supply options according to compiler version
diff --git a/meta/recipes-bsp/x-load/x-load-git/beagleboard/name.patch b/meta/recipes-bsp/x-load/x-load-git/beagleboard/name.patch
new file mode 100644
index 0000000000..98dcbae497
--- /dev/null
+++ b/meta/recipes-bsp/x-load/x-load-git/beagleboard/name.patch
@@ -0,0 +1,14 @@
+--- git/Makefile-orig 2008-07-29 22:31:03.000000000 -0700
++++ git/Makefile 2008-07-29 22:34:36.000000000 -0700
+@@ -152,9 +152,9 @@ omap3evm_config : unconfig
+ overo_config : unconfig
+ @./mkconfig $(@:_config=) arm omap3 overo
+
+-omap3530beagle_config : unconfig
++beagleboard_config : unconfig
+
+- @./mkconfig $(@:_config=) arm omap3 omap3530beagle
++ @./mkconfig omap3530beagle arm omap3 omap3530beagle
+
+ #########################################################################
+
diff --git a/meta/recipes-bsp/x-load/x-load-git/omap3evm/armv7-a.patch b/meta/recipes-bsp/x-load/x-load-git/omap3evm/armv7-a.patch
new file mode 100644
index 0000000000..3131cda6bb
--- /dev/null
+++ b/meta/recipes-bsp/x-load/x-load-git/omap3evm/armv7-a.patch
@@ -0,0 +1,11 @@
+--- git/cpu/omap3/config.mk-orig 2008-05-27 16:46:45.000000000 -0700
++++ git/cpu/omap3/config.mk 2008-05-29 12:50:49.000000000 -0700
+@@ -23,7 +23,7 @@
+ PLATFORM_RELFLAGS += -fno-strict-aliasing -fno-common -ffixed-r8 \
+ -msoft-float
+
+-PLATFORM_CPPFLAGS += -march=armv7a
++PLATFORM_CPPFLAGS += -march=armv7-a
+ # =========================================================================
+ #
+ # Supply options according to compiler version
diff --git a/meta/recipes-bsp/x-load/x-load-git/overo/armv7-a.patch b/meta/recipes-bsp/x-load/x-load-git/overo/armv7-a.patch
new file mode 100644
index 0000000000..3131cda6bb
--- /dev/null
+++ b/meta/recipes-bsp/x-load/x-load-git/overo/armv7-a.patch
@@ -0,0 +1,11 @@
+--- git/cpu/omap3/config.mk-orig 2008-05-27 16:46:45.000000000 -0700
++++ git/cpu/omap3/config.mk 2008-05-29 12:50:49.000000000 -0700
+@@ -23,7 +23,7 @@
+ PLATFORM_RELFLAGS += -fno-strict-aliasing -fno-common -ffixed-r8 \
+ -msoft-float
+
+-PLATFORM_CPPFLAGS += -march=armv7a
++PLATFORM_CPPFLAGS += -march=armv7-a
+ # =========================================================================
+ #
+ # Supply options according to compiler version
diff --git a/meta/recipes-bsp/x-load/x-load.inc b/meta/recipes-bsp/x-load/x-load.inc
new file mode 100644
index 0000000000..7073b13fe7
--- /dev/null
+++ b/meta/recipes-bsp/x-load/x-load.inc
@@ -0,0 +1,42 @@
+DESCRIPTION = "x-load bootloader loader"
+SECTION = "bootloaders"
+PRIORITY = "optional"
+LICENSE = "GPL"
+
+inherit deploy
+
+DEPENDS = "signgp-native"
+
+PARALLEL_MAKE=""
+
+EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}"
+
+XLOAD_MACHINE ?= "${MACHINE}_config"
+
+XLOAD_IMAGE ?= "x-load-${MACHINE}-${PV}-${PR}.bin.ift"
+XLOAD_SYMLINK ?= "x-load-${MACHINE}.bin.ift"
+MLO_IMAGE ?= "MLO-${MACHINE}-${PV}-${PR}"
+MLO_SYMLINK ?= "MLO-${MACHINE}"
+
+do_compile () {
+ unset LDFLAGS
+ unset CFLAGS
+ unset CPPFLAGS
+ oe_runmake distclean
+ oe_runmake ${XLOAD_MACHINE}
+ oe_runmake
+}
+
+do_deploy () {
+ signGP ${S}/x-load.bin
+ install ${S}/x-load.bin.ift ${DEPLOYDIR}/${XLOAD_IMAGE}
+ install ${S}/x-load.bin.ift ${DEPLOYDIR}/${MLO_IMAGE}
+
+ cd ${DEPLOYDIR}
+ rm -f ${XLOAD_SYMLINK}
+ ln -sf ${XLOAD_IMAGE} ${XLOAD_SYMLINK}
+ rm -f ${MLO_SYMLINK}
+ ln -sf ${MLO_IMAGE} ${MLO_SYMLINK}
+}
+addtask deploy before do_build after do_compile
+
diff --git a/meta/recipes-bsp/x-load/x-load_git.bb b/meta/recipes-bsp/x-load/x-load_git.bb
new file mode 100644
index 0000000000..1c1ce128ae
--- /dev/null
+++ b/meta/recipes-bsp/x-load/x-load_git.bb
@@ -0,0 +1,29 @@
+require x-load.inc
+
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/x-load-git/${MACHINE}"
+
+SRCREV = "65ed00323f3807197a83abc75d62ed2a8d3f60de"
+
+PV = "1.42+${PR}+git${SRCREV}"
+PR="r12"
+
+SRC_URI = "git://www.sakoman.net/git/x-load-omap3.git;branch=master;protocol=git"
+
+SRC_URI_append_beagleboard = " \
+ file://name.patch;patch=1 \
+ file://armv7-a.patch;patch=1 \
+ "
+
+SRC_URI_append_omap3evm = " \
+ file://armv7-a.patch;patch=1 \
+ "
+
+SRC_URI_append_overo = " \
+ file://armv7-a.patch;patch=1 \
+ "
+
+S = "${WORKDIR}/git"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+COMPATIBLE_MACHINE = "(beagleboard|omap3evm|overo)"