diff options
Diffstat (limited to 'meta/recipes-bsp/x-load')
-rw-r--r-- | meta/recipes-bsp/x-load/files/signGP.c | 73 | ||||
-rw-r--r-- | meta/recipes-bsp/x-load/signgp-native.bb | 14 | ||||
-rw-r--r-- | meta/recipes-bsp/x-load/x-load-git/beagleboard/armv7-a.patch | 11 | ||||
-rw-r--r-- | meta/recipes-bsp/x-load/x-load-git/beagleboard/name.patch | 14 | ||||
-rw-r--r-- | meta/recipes-bsp/x-load/x-load-git/omap3evm/armv7-a.patch | 11 | ||||
-rw-r--r-- | meta/recipes-bsp/x-load/x-load-git/overo/armv7-a.patch | 11 | ||||
-rw-r--r-- | meta/recipes-bsp/x-load/x-load.inc | 42 | ||||
-rw-r--r-- | meta/recipes-bsp/x-load/x-load_git.bb | 29 |
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)" |