diff options
23 files changed, 272 insertions, 786 deletions
diff --git a/meta-aarch64/recipes-devtools/qemu/files/fix-configure-checks.patch b/meta-aarch64/recipes-devtools/qemu/files/fix-configure-checks.patch deleted file mode 100644 index 294c2201..00000000 --- a/meta-aarch64/recipes-devtools/qemu/files/fix-configure-checks.patch +++ /dev/null @@ -1,22 +0,0 @@ -In native builds, qemu can fail to find zlib development files in the native -sysroot and the build machine might not have zlib-dev packages installed. - -Add CFLAGS to qemu's CFLAGS which in the native case means BUILD_CFLAGS are -added and files in the sysroot can be found. - -Patch from Paul Eggleton, Comments by RP 28/11/10 - -Upstream-Status: Inappropriate [embedded specific] - -Index: qemu-1.4.0/configure -=================================================================== ---- qemu-1.4.0.orig/configure 2013-02-15 15:05:35.000000000 -0800 -+++ qemu-1.4.0/configure 2013-02-25 13:44:17.915273181 -0800 -@@ -286,6 +286,7 @@ - QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS" - QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS" - QEMU_INCLUDES="-I. -I\$(SRC_PATH) -I\$(SRC_PATH)/include" -+QEMU_CFLAGS="$QEMU_CFLAGS $CFLAGS" - if test "$debug_info" = "yes"; then - CFLAGS="-g $CFLAGS" - LDFLAGS="-g $LDFLAGS" diff --git a/meta-aarch64/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb b/meta-aarch64/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb deleted file mode 100644 index fbf9e771..00000000 --- a/meta-aarch64/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb +++ /dev/null @@ -1,49 +0,0 @@ -SUMMARY = "Qemu helper scripts" -DESCRIPTION = "Qemu helper scripts" -LICENSE = "GPLv2" -RDEPENDS_${PN} = "nativesdk-qemu" -PR = "r9" - -FILESPATH = "${FILE_DIRNAME}/qemu-helper" - -LIC_FILES_CHKSUM = "file://${WORKDIR}/tunctl.c;endline=4;md5=ff3a09996bc5fff6bc5d4e0b4c28f999 \ - file://${COREBASE}/scripts/runqemu;endline=18;md5=77fbe442a88b1bcdc29c3ba67733b21b" - - -SRC_URI = "file://${COREBASE}/scripts/runqemu \ - file://${COREBASE}/scripts/runqemu-internal \ - file://${COREBASE}/scripts/runqemu-addptable2image \ - file://${COREBASE}/scripts/runqemu-gen-tapdevs \ - file://${COREBASE}/scripts/runqemu-ifup \ - file://${COREBASE}/scripts/runqemu-ifdown \ - file://${COREBASE}/scripts/oe-find-native-sysroot \ - file://${COREBASE}/scripts/runqemu-extract-sdk \ - file://${COREBASE}/scripts/runqemu-export-rootfs \ - file://tunctl.c \ - file://raw2flash.c \ - " - -S = "${WORKDIR}" - -inherit nativesdk - -do_compile() { - ${CC} tunctl.c -o tunctl - ${CC} raw2flash.c -o raw2flash.spitz - ${CC} raw2flash.c -o flash2raw.spitz -Dflash2raw -} - -do_install() { - install -d ${D}${bindir} - install -m 0755 ${WORKDIR}${COREBASE}/scripts/oe-* ${D}${bindir}/ - install -m 0755 ${WORKDIR}${COREBASE}/scripts/runqemu* ${D}${bindir}/ - install tunctl ${D}${bindir}/ - install raw2flash.spitz ${D}${bindir}/ - install flash2raw.spitz ${D}${bindir}/ - ln -fs raw2flash.spitz ${D}${bindir}/raw2flash.akita - ln -fs raw2flash.spitz ${D}${bindir}/raw2flash.borzoi - ln -fs raw2flash.spitz ${D}${bindir}/raw2flash.terrier - ln -fs flash2raw.spitz ${D}${bindir}/flash2raw.akita - ln -fs flash2raw.spitz ${D}${bindir}/flash2raw.borzoi - ln -fs flash2raw.spitz ${D}${bindir}/flash2raw.terrier -} diff --git a/meta-aarch64/recipes-devtools/qemu/qemu-helper-native_1.0.bb b/meta-aarch64/recipes-devtools/qemu/qemu-helper-native_1.0.bb deleted file mode 100644 index 23771acf..00000000 --- a/meta-aarch64/recipes-devtools/qemu/qemu-helper-native_1.0.bb +++ /dev/null @@ -1,23 +0,0 @@ -DESCRIPTION = "Qemu helper utilities from Poky" -LICENSE = "GPLv2" -RDEPENDS_${PN} = "qemu-native" -PR = "r1" - -LIC_FILES_CHKSUM = "file://${WORKDIR}/tunctl.c;endline=4;md5=ff3a09996bc5fff6bc5d4e0b4c28f999" - -FILESPATH = "${FILE_DIRNAME}/qemu-helper" - -SRC_URI = "file://tunctl.c" - -S = "${WORKDIR}" - -inherit native - -do_compile() { - ${CC} tunctl.c -o tunctl -} - -do_install() { - install -d ${D}${bindir} - install tunctl ${D}${bindir}/ -} diff --git a/meta-aarch64/recipes-devtools/qemu/qemu-helper/raw2flash.c b/meta-aarch64/recipes-devtools/qemu/qemu-helper/raw2flash.c deleted file mode 100644 index 19faf629..00000000 --- a/meta-aarch64/recipes-devtools/qemu/qemu-helper/raw2flash.c +++ /dev/null @@ -1,370 +0,0 @@ -/* - * Copyright (c) 2006 OpenedHand Ltd. - * - * This file is licensed under GNU GPL v2. - */ -#include <string.h> -#include <unistd.h> -#include <stdint.h> -#include <stdio.h> -#include <sys/types.h> -#include <stdlib.h> - -#define TFR(_) _ -#define VERBOSE -#define PBAR_LEN 40 - -#define PARTITION_START 0x00700000 - -static const int ecc_pos8[] = { - 0x0, 0x1, 0x2, -}; - -static const int ecc_pos16[] = { - 0x0, 0x1, 0x2, 0x3, 0x6, 0x7, -}; - -static const int ecc_pos64[] = { - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, -}; - -static const int ecc_akita[] = { - 0x05, 0x01, 0x02, 0x03, 0x06, 0x07, 0x15, 0x11, - 0x12, 0x13, 0x16, 0x17, 0x25, 0x21, 0x22, 0x23, - 0x26, 0x27, 0x35, 0x31, 0x32, 0x33, 0x36, 0x37, -}; - -struct jffs_marker_s { - int pos; - uint8_t value; -}; - -static const struct jffs_marker_s free_pos8[] = { - { 0x03, 0xff }, { 0x04, 0xff }, { 0x06, 0x85 }, { 0x07, 0x19 }, - { -1 }, -}; - -static const struct jffs_marker_s free_pos16[] = { - { 0x08, 0x85 }, { 0x09, 0x19 }, { 0x0a, 0x03 }, { 0x0b, 0x20 }, - { 0x0c, 0x08 }, { 0x0d, 0x00 }, { 0x0e, 0x00 }, { 0x0f, 0x00 }, - { -1 }, -}; - -static const struct jffs_marker_s free_pos64[] = { - { 0x02, 0xff }, { 0x03, 0xff }, { 0x04, 0xff }, { 0x05, 0xff }, - { 0x06, 0xff }, { 0x07, 0xff }, { 0x08, 0xff }, { 0x09, 0xff }, - { 0x0a, 0xff }, { 0x0b, 0xff }, { 0x0c, 0xff }, { 0x0d, 0xff }, - { 0x0e, 0xff }, { 0x0f, 0xff }, { 0x10, 0x85 }, { 0x11, 0x19 }, - { 0x12, 0x03 }, { 0x13, 0x20 }, { 0x14, 0x08 }, { 0x15, 0x00 }, - { 0x16, 0x00 }, { 0x17, 0x00 }, { 0x18, 0xff }, { 0x19, 0xff }, - { 0x1a, 0xff }, { 0x1b, 0xff }, { 0x1c, 0xff }, { 0x1d, 0xff }, - { 0x1e, 0xff }, { 0x1f, 0xff }, { 0x20, 0xff }, { 0x21, 0xff }, - { 0x22, 0xff }, { 0x23, 0xff }, { 0x24, 0xff }, { 0x25, 0xff }, - { 0x26, 0xff }, { 0x27, 0xff }, - { -1 }, -}; - -static const struct jffs_marker_s free_akita[] = { - { 0x08, 0x85 }, { 0x09, 0x19 }, { 0x0a, 0x03 }, { 0x0b, 0x20 }, - { 0x0c, 0x08 }, { 0x0d, 0x00 }, { 0x0e, 0x00 }, { 0x0f, 0x00 }, - { 0x10, 0xff }, - { -1 }, -}; - -#define LEN(array) (sizeof(array) / sizeof(*array)) - -static const struct ecc_style_s { - int page_size; - int oob_size; - int eccbytes; - int eccsize; - const int *eccpos; - int romsize; - const struct jffs_marker_s *freepos; -} spitz = { - 0x200, 0x10, 0x100, LEN(ecc_pos16), ecc_pos16, 0x01000000, free_pos16 -}, akita = { - 0x800, 0x40, 0x100, LEN(ecc_akita), ecc_akita, 0x08000000, free_akita -}, borzoi = { - 0x800, 0x40, 0x100, LEN(ecc_akita), ecc_akita, 0x08000000, free_akita -}, terrier = { - 0x800, 0x40, 0x100, LEN(ecc_akita), ecc_akita, 0x08000000, free_akita -}; - -struct ecc_state_s { - int count; - uint8_t cp; - uint8_t lp[2]; - const struct ecc_style_s *style; -}; - -#ifndef flash2raw -/* - * Pre-calculated 256-way 1 byte column parity. Table borrowed from Linux. - */ -static const uint8_t ecc_precalc_table[] = { - 0x00, 0x55, 0x56, 0x03, 0x59, 0x0c, 0x0f, 0x5a, - 0x5a, 0x0f, 0x0c, 0x59, 0x03, 0x56, 0x55, 0x00, - 0x65, 0x30, 0x33, 0x66, 0x3c, 0x69, 0x6a, 0x3f, - 0x3f, 0x6a, 0x69, 0x3c, 0x66, 0x33, 0x30, 0x65, - 0x66, 0x33, 0x30, 0x65, 0x3f, 0x6a, 0x69, 0x3c, - 0x3c, 0x69, 0x6a, 0x3f, 0x65, 0x30, 0x33, 0x66, - 0x03, 0x56, 0x55, 0x00, 0x5a, 0x0f, 0x0c, 0x59, - 0x59, 0x0c, 0x0f, 0x5a, 0x00, 0x55, 0x56, 0x03, - 0x69, 0x3c, 0x3f, 0x6a, 0x30, 0x65, 0x66, 0x33, - 0x33, 0x66, 0x65, 0x30, 0x6a, 0x3f, 0x3c, 0x69, - 0x0c, 0x59, 0x5a, 0x0f, 0x55, 0x00, 0x03, 0x56, - 0x56, 0x03, 0x00, 0x55, 0x0f, 0x5a, 0x59, 0x0c, - 0x0f, 0x5a, 0x59, 0x0c, 0x56, 0x03, 0x00, 0x55, - 0x55, 0x00, 0x03, 0x56, 0x0c, 0x59, 0x5a, 0x0f, - 0x6a, 0x3f, 0x3c, 0x69, 0x33, 0x66, 0x65, 0x30, - 0x30, 0x65, 0x66, 0x33, 0x69, 0x3c, 0x3f, 0x6a, - 0x6a, 0x3f, 0x3c, 0x69, 0x33, 0x66, 0x65, 0x30, - 0x30, 0x65, 0x66, 0x33, 0x69, 0x3c, 0x3f, 0x6a, - 0x0f, 0x5a, 0x59, 0x0c, 0x56, 0x03, 0x00, 0x55, - 0x55, 0x00, 0x03, 0x56, 0x0c, 0x59, 0x5a, 0x0f, - 0x0c, 0x59, 0x5a, 0x0f, 0x55, 0x00, 0x03, 0x56, - 0x56, 0x03, 0x00, 0x55, 0x0f, 0x5a, 0x59, 0x0c, - 0x69, 0x3c, 0x3f, 0x6a, 0x30, 0x65, 0x66, 0x33, - 0x33, 0x66, 0x65, 0x30, 0x6a, 0x3f, 0x3c, 0x69, - 0x03, 0x56, 0x55, 0x00, 0x5a, 0x0f, 0x0c, 0x59, - 0x59, 0x0c, 0x0f, 0x5a, 0x00, 0x55, 0x56, 0x03, - 0x66, 0x33, 0x30, 0x65, 0x3f, 0x6a, 0x69, 0x3c, - 0x3c, 0x69, 0x6a, 0x3f, 0x65, 0x30, 0x33, 0x66, - 0x65, 0x30, 0x33, 0x66, 0x3c, 0x69, 0x6a, 0x3f, - 0x3f, 0x6a, 0x69, 0x3c, 0x66, 0x33, 0x30, 0x65, - 0x00, 0x55, 0x56, 0x03, 0x59, 0x0c, 0x0f, 0x5a, - 0x5a, 0x0f, 0x0c, 0x59, 0x03, 0x56, 0x55, 0x00, -}; - -/* Update ECC parity count */ -static inline uint8_t ecc_digest(struct ecc_state_s *s, uint8_t sample) { - uint8_t idx = ecc_precalc_table[sample]; - - s->cp ^= idx & 0x3f; - if (idx & 0x40) { - s->lp[0] ^= ~(s->count & 0xff); - s->lp[1] ^= s->count & 0xff; - } - s->count ++; - - return sample; -} - -static void buffer_digest(struct ecc_state_s *ecc, - const uint8_t *buf, uint8_t *out) { - int i, lp_a[2]; - - ecc->lp[0] = 0x00; - ecc->lp[1] = 0x00; - ecc->cp = 0x00; - ecc->count = 0; - for (i = 0; i < ecc->style->eccbytes; i ++) - ecc_digest(ecc, buf[i]); - -# define BSHR(byte, from, to) ((ecc->lp[byte] >> (from - to)) & (1 << to)) - lp_a[0] = - BSHR(0, 4, 0) | BSHR(0, 5, 2) | - BSHR(0, 6, 4) | BSHR(0, 7, 6) | - BSHR(1, 4, 1) | BSHR(1, 5, 3) | - BSHR(1, 6, 5) | BSHR(1, 7, 7); - -# define BSHL(byte, from, to) ((ecc->lp[byte] << (to - from)) & (1 << to)) - lp_a[1] = - BSHL(0, 0, 0) | BSHL(0, 1, 2) | - BSHL(0, 2, 4) | BSHL(0, 3, 6) | - BSHL(1, 0, 1) | BSHL(1, 1, 3) | - BSHL(1, 2, 5) | BSHL(1, 3, 7); - - out[0] = ~lp_a[1]; - out[1] = ~lp_a[0]; - out[2] = (~ecc->cp << 2) | 0x03; -} - -static void jffs2_format(const struct ecc_state_s *ecc, uint8_t oob[]) { - const struct jffs_marker_s *byte; - for (byte = ecc->style->freepos; byte->pos >= 0; byte ++) - oob[byte->pos] = byte->value; -} - -static void buffer_fill(const struct ecc_state_s *ecc, uint8_t buffer[], - int *len, int *partition, int count, uint8_t jffs_buffer[]) { - int ret; - - switch (*partition) { - case 0: - if (count < PARTITION_START) { - memcpy(buffer, jffs_buffer + count, - ecc->style->eccbytes); - *len = ecc->style->eccbytes; - break; - } - *partition = 1; - case 1: - if (count - PARTITION_START < PARTITION_START) { - memcpy(buffer, jffs_buffer + count - PARTITION_START, - ecc->style->eccbytes); - *len = ecc->style->eccbytes; - break; - } - - while (*len < ecc->style->eccbytes) { - ret = TFR(read(0, buffer + *len, 0x800 - *len)); - if (ret <= 0) - break; - *len += ret; - } - - if (*len == 0) - *partition = 2; - else if (*len < ecc->style->eccbytes) { - fprintf(stderr, "\nWarning: %i stray bytes\n", *len); - memset(buffer + *len, 0xff, - ecc->style->eccbytes - *len); - *len = ecc->style->eccbytes; - break; - } else - break; - case 2: - memset(buffer, 0xff, ecc->style->eccbytes); - *len = ecc->style->eccbytes; - break; - } -} - -int main(int argc, char *argv[], char *envp[]) { - struct ecc_state_s ecc; - uint8_t buffer[0x1000], ecc_payload[0x40], regs[3], *jffs; - int ret, len, eccbyte, count, partition; - - /* Check if we're called by "raw2flash.spitz" or similar */ - len = strlen(argv[0]); - if (!strcasecmp(argv[0] + len - 5, "akita")) - ecc.style = &akita; - else if (!strcasecmp(argv[0] + len - 6, "borzoi")) - ecc.style = &borzoi; - else if (!strcasecmp(argv[0] + len - 7, "terrier")) - ecc.style = &terrier; - else - ecc.style = &spitz; - -# ifdef VERBOSE - fprintf(stderr, "["); -# endif - - /* Skip first 10 bytes */ - TFR(read(0, buffer, 0x10)); - - len = 0; - jffs = (uint8_t *) malloc(PARTITION_START); - while (len < PARTITION_START) { - ret = TFR(read(0, jffs + len, PARTITION_START - len)); - if (ret <= 0) - break; - len += ret; - } - - /* Convert data from stdin */ - partition = len = eccbyte = count = 0; - memset(ecc_payload, 0xff, ecc.style->oob_size); - jffs2_format(&ecc, ecc_payload); - while (count < ecc.style->romsize) { - buffer_fill(&ecc, buffer, &len, &partition, count, jffs); - buffer_digest(&ecc, buffer, regs); - - ecc_payload[ecc.style->eccpos[eccbyte ++]] = regs[0]; - ecc_payload[ecc.style->eccpos[eccbyte ++]] = regs[1]; - ecc_payload[ecc.style->eccpos[eccbyte ++]] = regs[2]; - - TFR(write(1, buffer, ecc.style->eccbytes)); - count += ecc.style->eccbytes; - len -= ecc.style->eccbytes; - memmove(buffer, buffer + ecc.style->eccbytes, len); - - if (eccbyte >= ecc.style->eccsize) { - TFR(write(1, ecc_payload, ecc.style->oob_size)); - eccbyte = 0; - memset(ecc_payload, 0xff, ecc.style->oob_size); - if (partition < 2) - jffs2_format(&ecc, ecc_payload); - } - -# ifdef VERBOSE - if (count * PBAR_LEN / ecc.style->romsize > - (count - ecc.style->eccbytes) * - PBAR_LEN / ecc.style->romsize) - fprintf(stderr, "#"); -# endif - } - -# ifdef VERBOSE - fprintf(stderr, "]\n"); -# endif - free(jffs); - return 0; -} -#else -int main(int argc, char *argv[], char *envp[]) { - struct ecc_state_s ecc; - uint8_t buffer[0x1000]; - int ret, len, count; - - /* Check if we're called by "flash2raw.spitz" or similar */ - len = strlen(argv[0]); - if (!strcasecmp(argv[0] + len - 5, "akita")) - ecc.style = &akita; - else if (!strcasecmp(argv[0] + len - 6, "borzoi")) - ecc.style = &borzoi; - else if (!strcasecmp(argv[0] + len - 7, "terrier")) - ecc.style = &terrier; - else - ecc.style = &spitz; - -# ifdef VERBOSE - fprintf(stderr, "["); -# endif - - /* Convert data from stdin */ - count = 0; - while (count < ecc.style->romsize) { - len = 0; - while (len < ecc.style->page_size) { - ret = TFR(read(0, buffer + len, - ecc.style->page_size - len)); - if (ret <= 0) - break; - len += ret; - } - if (len == 0) - break; - if (len < ecc.style->page_size) { - fprintf(stderr, "\nWarning: %i stray bytes\n", len); - } - - TFR(write(1, buffer, ecc.style->page_size)); - - count += len; - len = 0; - while (len < ecc.style->oob_size) { - ret = TFR(read(0, buffer, ecc.style->oob_size - len)); - if (ret <= 0) - break; - len += ret; - } - -# ifdef VERBOSE - if (count * PBAR_LEN / ecc.style->romsize > - (count - ecc.style->page_size) * - PBAR_LEN / ecc.style->romsize) - fprintf(stderr, "#"); -# endif - } - -# ifdef VERBOSE - fprintf(stderr, "]\n"); -# endif - return 0; -} -#endif diff --git a/meta-aarch64/recipes-devtools/qemu/qemu-helper/tunctl.c b/meta-aarch64/recipes-devtools/qemu/qemu-helper/tunctl.c deleted file mode 100644 index 16e24a2a..00000000 --- a/meta-aarch64/recipes-devtools/qemu/qemu-helper/tunctl.c +++ /dev/null @@ -1,156 +0,0 @@ -/* Copyright 2002 Jeff Dike - * Licensed under the GPL - */ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> -#include <fcntl.h> -#include <unistd.h> -#include <pwd.h> -#include <grp.h> -#include <net/if.h> -#include <sys/ioctl.h> -#include <linux/if_tun.h> - -/* TUNSETGROUP appeared in 2.6.23 */ -#ifndef TUNSETGROUP -#define TUNSETGROUP _IOW('T', 206, int) -#endif - -static void Usage(char *name) -{ - fprintf(stderr, "Create: %s [-b] [-u owner] [-g group] [-t device-name] " - "[-f tun-clone-device]\n", name); - fprintf(stderr, "Delete: %s -d device-name [-f tun-clone-device]\n\n", - name); - fprintf(stderr, "The default tun clone device is /dev/net/tun - some systems" - " use\n/dev/misc/net/tun instead\n\n"); - fprintf(stderr, "-b will result in brief output (just the device name)\n"); - exit(1); -} - -int main(int argc, char **argv) -{ - struct ifreq ifr; - struct passwd *pw; - struct group *gr; - uid_t owner = -1; - gid_t group = -1; - int tap_fd, opt, delete = 0, brief = 0; - char *tun = "", *file = "/dev/net/tun", *name = argv[0], *end; - - while((opt = getopt(argc, argv, "bd:f:t:u:g:")) > 0){ - switch(opt) { - case 'b': - brief = 1; - break; - case 'd': - delete = 1; - tun = optarg; - break; - case 'f': - file = optarg; - break; - case 'u': - pw = getpwnam(optarg); - if(pw != NULL){ - owner = pw->pw_uid; - break; - } - owner = strtol(optarg, &end, 0); - if(*end != '\0'){ - fprintf(stderr, "'%s' is neither a username nor a numeric uid.\n", - optarg); - Usage(name); - } - break; - case 'g': - gr = getgrnam(optarg); - if(gr != NULL){ - group = gr->gr_gid; - break; - } - group = strtol(optarg, &end, 0); - if(*end != '\0'){ - fprintf(stderr, "'%s' is neither a groupname nor a numeric group.\n", - optarg); - Usage(name); - } - break; - - case 't': - tun = optarg; - break; - case 'h': - default: - Usage(name); - } - } - - argv += optind; - argc -= optind; - - if(argc > 0) - Usage(name); - - if((tap_fd = open(file, O_RDWR)) < 0){ - fprintf(stderr, "Failed to open '%s' : ", file); - perror(""); - exit(1); - } - - memset(&ifr, 0, sizeof(ifr)); - - ifr.ifr_flags = IFF_TAP | IFF_NO_PI; - strncpy(ifr.ifr_name, tun, sizeof(ifr.ifr_name) - 1); - if(ioctl(tap_fd, TUNSETIFF, (void *) &ifr) < 0){ - perror("TUNSETIFF"); - exit(1); - } - - if(delete){ - if(ioctl(tap_fd, TUNSETPERSIST, 0) < 0){ - perror("disabling TUNSETPERSIST"); - exit(1); - } - printf("Set '%s' nonpersistent\n", ifr.ifr_name); - } - else { - /* emulate behaviour prior to TUNSETGROUP */ - if(owner == -1 && group == -1) { - owner = geteuid(); - } - - if(owner != -1) { - if(ioctl(tap_fd, TUNSETOWNER, owner) < 0){ - perror("TUNSETOWNER"); - exit(1); - } - } - if(group != -1) { - if(ioctl(tap_fd, TUNSETGROUP, group) < 0){ - perror("TUNSETGROUP"); - exit(1); - } - } - - if(ioctl(tap_fd, TUNSETPERSIST, 1) < 0){ - perror("enabling TUNSETPERSIST"); - exit(1); - } - - if(brief) - printf("%s\n", ifr.ifr_name); - else { - printf("Set '%s' persistent and owned by", ifr.ifr_name); - if(owner != -1) - printf(" uid %d", owner); - if(group != -1) - printf(" gid %d", group); - printf("\n"); - } - } - return(0); -} diff --git a/meta-aarch64/recipes-devtools/qemu/qemu-targets.inc b/meta-aarch64/recipes-devtools/qemu/qemu-targets.inc deleted file mode 100644 index 5a60bfda..00000000 --- a/meta-aarch64/recipes-devtools/qemu/qemu-targets.inc +++ /dev/null @@ -1,18 +0,0 @@ -# possible arch values are arm mips mipsel mips64 mips64el ppc ppc64 ppc64abi32 -# ppcemb armeb alpha sparc32plus i386 x86_64 cris m68k microblaze sparc sparc32 -# sparc32plus - -def get_qemu_target_list(d): - import bb - archs = d.getVar('QEMU_TARGETS', True).split() - targets = "" - for arch in ['mips64', 'mips64el', 'ppcemb']: - if arch in archs: - targets += arch + "-softmmu," - archs.remove(arch) - for arch in ['armeb', 'alpha', 'ppc64abi32', 'sparc32plus']: - if arch in archs: - targets += arch + "-linux-user," - archs.remove(arch) - return targets + ''.join([arch + "-linux-user" + "," + arch + "-softmmu" + "," for arch in archs]).rstrip(',') - diff --git a/meta-aarch64/recipes-devtools/qemu/qemu.inc b/meta-aarch64/recipes-devtools/qemu/qemu.inc deleted file mode 100644 index bd03d50c..00000000 --- a/meta-aarch64/recipes-devtools/qemu/qemu.inc +++ /dev/null @@ -1,73 +0,0 @@ -DESCRIPTION = "open source processor emulator" -HOMEPAGE = "http://qemu.org" -LICENSE = "GPLv2 & LGPLv2.1" -DEPENDS = "glib-2.0 zlib alsa-lib virtual/libx11 pixman dtc libsdl" -DEPENDS_class-native = "zlib-native alsa-lib-native glib-2.0-native pixman-native dtc-native" -DEPENDS_class-nativesdk = "nativesdk-zlib nativesdk-libsdl nativesdk-glib-2.0 nativesdk-pixman nativesdk-dtc" -RDEPENDS_${PN}_class-nativesdk = "nativesdk-libsdl" - -require qemu-targets.inc -inherit autotools -BBCLASSEXTEND = "native nativesdk" - -# QEMU_TARGETS is overridable variable -QEMU_TARGETS ?= "arm i386 mips mipsel mips64 mips64el ppc sh4 x86_64" - -SDL ?= "" -SDL_class-native ?= "" -SDL_class-nativesdk ?= "" - -SRC_URI = "\ - file://powerpc_rom.bin \ - file://no-strip.patch \ - file://fix-configure-checks.patch \ - file://larger_default_ram_size.patch \ - " - -SRC_URI_append_class-nativesdk = "\ - file://relocatable_sdk.patch \ - " - -SRC_URI_append_class-native = "\ - file://fix-libcap-header-issue-on-some-distro.patch \ - " - -EXTRA_OECONF += "--target-list=${@get_qemu_target_list(d)} --disable-werror --disable-vnc-tls --audio-drv-list=oss,alsa --disable-curl --disable-vnc-jpeg --disable-bluez --with-system-pixman" - -EXTRA_OECONF_class-nativesdk = "--target-list=${@get_qemu_target_list(d)} --disable-werror --disable-vnc-tls \ - --disable-curl \ - " - -do_configure() { - rm -f ${S}/include/libfdt_env.h - ${S}/configure --prefix=${prefix} --sysconfdir=${sysconfdir} --libexecdir=${libexecdir} --disable-strip ${EXTRA_OECONF} $KVMOPTS -} - -do_install () { - export STRIP="true" - autotools_do_install - install -d ${D}${datadir}/qemu - install -m 0755 ${WORKDIR}/powerpc_rom.bin ${D}${datadir}/qemu||true -} - -# The following fragment will create a wrapper for qemu-mips user emulation -# binary in order to work around a segmentation fault issue. Basically, by -# default, the reserved virtual address space for 32-on-64 bit is set to 4GB. -# This will trigger a MMU access fault in the virtual CPU. With this change, -# the qemu-mips works fine. -# IMPORTANT: This piece needs to be removed once the root cause is fixed! -do_install_append() { - if [ -e "${D}/${bindir}/qemu-mips" ]; then - create_wrapper ${D}/${bindir}/qemu-mips \ - QEMU_RESERVED_VA=0x0 - fi -} -# END of qemu-mips workaround - -PACKAGECONFIG ??= "" - -# Qemu target will not build in world build for ARM or Mips -BROKEN_qemuarm = "1" -BROKEN_qemumips = "1" - -INSANE_SKIP_${PN} = "arch" diff --git a/meta-aarch64/recipes-devtools/qemu/qemu_1.5.0.bb b/meta-aarch64/recipes-devtools/qemu/qemu_1.5.0.bb deleted file mode 100644 index 2ea4f120..00000000 --- a/meta-aarch64/recipes-devtools/qemu/qemu_1.5.0.bb +++ /dev/null @@ -1,10 +0,0 @@ -require qemu.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \ - file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913" - -SRC_URI += "file://fdt_header.patch" - -SRC_URI_prepend = "http://wiki.qemu.org/download/qemu-${PV}.tar.bz2" -SRC_URI[md5sum] = "b6f3265b8ed39d77e8f354f35cc26e16" -SRC_URI[sha256sum] = "b22b30ee9712568dfb4eedf76783f4a76546e1cbc41659b909646bcf0b4867bb" diff --git a/meta-aarch64/recipes-devtools/qemu/qemu_git.bb b/meta-aarch64/recipes-devtools/qemu/qemu_git.bb deleted file mode 100644 index f1fc354e..00000000 --- a/meta-aarch64/recipes-devtools/qemu/qemu_git.bb +++ /dev/null @@ -1,17 +0,0 @@ -require qemu.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \ - file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913" - -PV = "1.5.git${SRCPV}" -PR = "r0" - -QEMU_TARGETS_aarch64 = "" -EXTRA_OECONF_aarch64 += "--enable-tcg-interpreter --enable-kvm --enable-fdt --target-list=aarch64-softmmu" -EXTRA_OECONF_class-native = "--target-list=arm-linux-user --extra-cflags='${CFLAGS}'" - -SRC_URI = "git://git.linaro.org/git-ro/people/pmaydell/qemu-arm.git;branch=mach-virt;protocol=http" -S = "${WORKDIR}/git" - -SRCREV = "${AUTOREV}" - diff --git a/meta-aarch64/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb b/meta-aarch64/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb deleted file mode 100644 index 18f18928..00000000 --- a/meta-aarch64/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb +++ /dev/null @@ -1,48 +0,0 @@ -DESCRIPTION = "Qemu wrapper script" -LICENSE = "MIT" -PR = "r0" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" - -inherit qemu - -do_install () { - install -d ${D}${bindir_crossscripts}/ - - echo "#!/bin/sh" > ${D}${bindir_crossscripts}/qemuwrapper - qemu_binary=${@qemu_target_binary(d)} - echo "$qemu_binary \"\$@\"" >> ${D}${bindir_crossscripts}/qemuwrapper - fallback_qemu_bin= - case $qemu_binary in - "qemu-i386") - fallback_qemu_bin=qemu-x86_64 - ;; - "qemu-x86_64") - fallback_qemu_bin=qemu-i386 - ;; - *) - ;; - esac - - if [ -n "$fallback_qemu_bin" ]; then - - cat >> ${D}${bindir_crossscripts}/qemuwrapper << EOF -rc=\$? -if [ \$rc = 255 ]; then - $fallback_qemu_bin "\$@" - rc=\$? -fi -exit \$rc -EOF - - fi - - chmod +x ${D}${bindir_crossscripts}/qemuwrapper -} - -SYSROOT_PREPROCESS_FUNCS += "qemuwrapper_sysroot_preprocess" - -qemuwrapper_sysroot_preprocess () { - sysroot_stage_dir ${D}${bindir_crossscripts} ${SYSROOT_DESTDIR}${bindir_crossscripts} -} - -INHIBIT_DEFAULT_DEPS = "1" diff --git a/meta-aarch64/recipes-devtools/qemu/files/3f08ffb4a4741d147634761dc053ed386243a0de.patch b/meta-linaro/recipes-devtools/qemu/files/3f08ffb4a4741d147634761dc053ed386243a0de.patch index 4390b943..4390b943 100644 --- a/meta-aarch64/recipes-devtools/qemu/files/3f08ffb4a4741d147634761dc053ed386243a0de.patch +++ b/meta-linaro/recipes-devtools/qemu/files/3f08ffb4a4741d147634761dc053ed386243a0de.patch diff --git a/meta-linaro/recipes-devtools/qemu/files/aarch64-softmmu.patch b/meta-linaro/recipes-devtools/qemu/files/aarch64-softmmu.patch new file mode 100644 index 00000000..d684080d --- /dev/null +++ b/meta-linaro/recipes-devtools/qemu/files/aarch64-softmmu.patch @@ -0,0 +1,103 @@ + +m: Peter Maydell <peter.maydell@linaro.org> +Date: Fri, 9 Aug 2013 13:19:04 +0000 (+0100) +Subject: default-configs: Add config for aarch64-softmmu +X-Git-Url: https://git.linaro.org/gitweb?p=people%2Fpmaydell%2Fqemu-arm.git;a=commitdiff_plain;h=5b60e30712cbdf478b77ada9433c7f0d1b9d07bd + +default-configs: Add config for aarch64-softmmu + +Add a config for aarch64-softmmu; this enables building of this target. +The resulting executable doesn't know about any 64 bit CPUs, but all +the 32 bit CPUs and board models work. + +Signed-off-by: Peter Maydell <peter.maydell@linaro.org> +--- + +diff --git a/default-configs/aarch64-softmmu.mak b/default-configs/aarch64-softmmu.mak +new file mode 100644 +index 0000000..175362f +--- /dev/null ++++ b/default-configs/aarch64-softmmu.mak +@@ -0,0 +1,82 @@ ++# Default configuration for aarch64-softmmu ++ ++include pci.mak ++include usb.mak ++CONFIG_GDBSTUB_XML=y ++CONFIG_VGA=y ++CONFIG_ISA_MMIO=y ++CONFIG_NAND=y ++CONFIG_ECC=y ++CONFIG_SERIAL=y ++CONFIG_PTIMER=y ++CONFIG_SD=y ++CONFIG_MAX7310=y ++CONFIG_WM8750=y ++CONFIG_TWL92230=y ++CONFIG_TSC2005=y ++CONFIG_LM832X=y ++CONFIG_TMP105=y ++CONFIG_STELLARIS=y ++CONFIG_STELLARIS_INPUT=y ++CONFIG_STELLARIS_ENET=y ++CONFIG_SSD0303=y ++CONFIG_SSD0323=y ++CONFIG_ADS7846=y ++CONFIG_MAX111X=y ++CONFIG_SSI=y ++CONFIG_SSI_SD=y ++CONFIG_SSI_M25P80=y ++CONFIG_LAN9118=y ++CONFIG_SMC91C111=y ++CONFIG_DS1338=y ++CONFIG_PFLASH_CFI01=y ++CONFIG_PFLASH_CFI02=y ++CONFIG_MICRODRIVE=y ++CONFIG_USB_MUSB=y ++ ++CONFIG_ARM11MPCORE=y ++CONFIG_A9MPCORE=y ++CONFIG_A15MPCORE=y ++ ++CONFIG_ARM_GIC=y ++CONFIG_ARM_GIC_KVM=$(CONFIG_KVM) ++CONFIG_ARM_TIMER=y ++CONFIG_ARM_MPTIMER=y ++CONFIG_PL011=y ++CONFIG_PL022=y ++CONFIG_PL031=y ++CONFIG_PL041=y ++CONFIG_PL050=y ++CONFIG_PL061=y ++CONFIG_PL080=y ++CONFIG_PL110=y ++CONFIG_PL181=y ++CONFIG_PL190=y ++CONFIG_PL310=y ++CONFIG_PL330=y ++CONFIG_CADENCE=y ++CONFIG_XGMAC=y ++CONFIG_EXYNOS4=y ++CONFIG_PXA2XX=y ++CONFIG_BITBANG_I2C=y ++CONFIG_FRAMEBUFFER=y ++CONFIG_XILINX_SPIPS=y ++ ++CONFIG_A9SCU=y ++CONFIG_MARVELL_88W8618=y ++CONFIG_OMAP=y ++CONFIG_TSC210X=y ++CONFIG_BLIZZARD=y ++CONFIG_ONENAND=y ++CONFIG_TUSB6010=y ++CONFIG_IMX=y ++CONFIG_MAINSTONE=y ++CONFIG_NSERIES=y ++CONFIG_REALVIEW=y ++CONFIG_ZAURUS=y ++CONFIG_ZYNQ=y ++ ++CONFIG_VERSATILE_PCI=y ++CONFIG_VERSATILE_I2C=y ++ ++CONFIG_SDHCI=y diff --git a/meta-aarch64/recipes-devtools/qemu/files/enable-i386-linux-user.patch b/meta-linaro/recipes-devtools/qemu/files/enable-i386-linux-user.patch index bb0d6a38..bb0d6a38 100644 --- a/meta-aarch64/recipes-devtools/qemu/files/enable-i386-linux-user.patch +++ b/meta-linaro/recipes-devtools/qemu/files/enable-i386-linux-user.patch diff --git a/meta-aarch64/recipes-devtools/qemu/files/fdt_header.patch b/meta-linaro/recipes-devtools/qemu/files/fdt_header.patch index dccfe531..dccfe531 100644 --- a/meta-aarch64/recipes-devtools/qemu/files/fdt_header.patch +++ b/meta-linaro/recipes-devtools/qemu/files/fdt_header.patch diff --git a/meta-aarch64/recipes-devtools/qemu/files/fix-libcap-header-issue-on-some-distro.patch b/meta-linaro/recipes-devtools/qemu/files/fix-libcap-header-issue-on-some-distro.patch index 13a6ea23..13a6ea23 100644 --- a/meta-aarch64/recipes-devtools/qemu/files/fix-libcap-header-issue-on-some-distro.patch +++ b/meta-linaro/recipes-devtools/qemu/files/fix-libcap-header-issue-on-some-distro.patch diff --git a/meta-aarch64/recipes-devtools/qemu/files/init-info.patch b/meta-linaro/recipes-devtools/qemu/files/init-info.patch index 2250444a..2250444a 100644 --- a/meta-aarch64/recipes-devtools/qemu/files/init-info.patch +++ b/meta-linaro/recipes-devtools/qemu/files/init-info.patch diff --git a/meta-aarch64/recipes-devtools/qemu/files/larger_default_ram_size.patch b/meta-linaro/recipes-devtools/qemu/files/larger_default_ram_size.patch index 711c3607..711c3607 100644 --- a/meta-aarch64/recipes-devtools/qemu/files/larger_default_ram_size.patch +++ b/meta-linaro/recipes-devtools/qemu/files/larger_default_ram_size.patch diff --git a/meta-aarch64/recipes-devtools/qemu/files/no-strip.patch b/meta-linaro/recipes-devtools/qemu/files/no-strip.patch index d6a4377c..d6a4377c 100644 --- a/meta-aarch64/recipes-devtools/qemu/files/no-strip.patch +++ b/meta-linaro/recipes-devtools/qemu/files/no-strip.patch diff --git a/meta-aarch64/recipes-devtools/qemu/files/powerpc_rom.bin b/meta-linaro/recipes-devtools/qemu/files/powerpc_rom.bin Binary files differindex c4044296..c4044296 100644 --- a/meta-aarch64/recipes-devtools/qemu/files/powerpc_rom.bin +++ b/meta-linaro/recipes-devtools/qemu/files/powerpc_rom.bin diff --git a/meta-aarch64/recipes-devtools/qemu/files/relocatable_sdk.patch b/meta-linaro/recipes-devtools/qemu/files/relocatable_sdk.patch index 774a49c7..774a49c7 100644 --- a/meta-aarch64/recipes-devtools/qemu/files/relocatable_sdk.patch +++ b/meta-linaro/recipes-devtools/qemu/files/relocatable_sdk.patch diff --git a/meta-linaro/recipes-devtools/qemu/files/target-i386-Fix-aflag-logic-for-CODE64-and-the-0x67-.patch b/meta-linaro/recipes-devtools/qemu/files/target-i386-Fix-aflag-logic-for-CODE64-and-the-0x67-.patch new file mode 100644 index 00000000..852efd1c --- /dev/null +++ b/meta-linaro/recipes-devtools/qemu/files/target-i386-Fix-aflag-logic-for-CODE64-and-the-0x67-.patch @@ -0,0 +1,79 @@ +Upstream-Status: Backported + +From dec3fc9657e0682637de4d5a29d947284d01985c Mon Sep 17 00:00:00 2001 +From: Richard Henderson <rth@twiddle.net> +Date: Wed, 29 May 2013 12:30:51 -0700 +Subject: [PATCH] target-i386: Fix aflag logic for CODE64 and the 0x67 prefix + +The code reorganization in commit 4a6fd938 broke handling of PREFIX_ADR. +While fixing this, tidy and comment the code so that it's more obvious +what's going on in setting both aflag and dflag. + +The TARGET_X86_64 ifdef can be eliminated because CODE64 expands to the +constant zero when TARGET_X86_64 is undefined. + +Cc: Paolo Bonzini <pbonzini@redhat.com> +Reported-by: Laszlo Ersek <lersek@redhat.com> +Signed-off-by: Richard Henderson <rth@twiddle.net> +Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> +Message-id: 1369855851-21400-1-git-send-email-rth@twiddle.net +Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> +--- + target-i386/translate.c | 30 +++++++++++++++--------------- + 1 file changed, 15 insertions(+), 15 deletions(-) + +diff --git a/target-i386/translate.c b/target-i386/translate.c +index 0aeccdb..14b0298 100644 +--- a/target-i386/translate.c ++++ b/target-i386/translate.c +@@ -4677,8 +4677,6 @@ static target_ulong disas_insn(CPUX86State *env, DisasContext *s, + } + s->pc = pc_start; + prefixes = 0; +- aflag = s->code32; +- dflag = s->code32; + s->override = -1; + rex_w = -1; + rex_r = 0; +@@ -4801,23 +4799,25 @@ static target_ulong disas_insn(CPUX86State *env, DisasContext *s, + } + + /* Post-process prefixes. */ +- if (prefixes & PREFIX_DATA) { +- dflag ^= 1; +- } +- if (prefixes & PREFIX_ADR) { +- aflag ^= 1; +- } +-#ifdef TARGET_X86_64 + if (CODE64(s)) { +- if (rex_w == 1) { +- /* 0x66 is ignored if rex.w is set */ +- dflag = 2; ++ /* In 64-bit mode, the default data size is 32-bit. Select 64-bit ++ data with rex_w, and 16-bit data with 0x66; rex_w takes precedence ++ over 0x66 if both are present. */ ++ dflag = (rex_w > 0 ? 2 : prefixes & PREFIX_DATA ? 0 : 1); ++ /* In 64-bit mode, 0x67 selects 32-bit addressing. */ ++ aflag = (prefixes & PREFIX_ADR ? 1 : 2); ++ } else { ++ /* In 16/32-bit mode, 0x66 selects the opposite data size. */ ++ dflag = s->code32; ++ if (prefixes & PREFIX_DATA) { ++ dflag ^= 1; + } +- if (!(prefixes & PREFIX_ADR)) { +- aflag = 2; ++ /* In 16/32-bit mode, 0x67 selects the opposite addressing. */ ++ aflag = s->code32; ++ if (prefixes & PREFIX_ADR) { ++ aflag ^= 1; + } + } +-#endif + + s->prefix = prefixes; + s->aflag = aflag; +-- +1.7.9.5 + diff --git a/meta-linaro/recipes-devtools/qemu/files/target-ppc_fix_bit_extraction.patch b/meta-linaro/recipes-devtools/qemu/files/target-ppc_fix_bit_extraction.patch new file mode 100644 index 00000000..631d23b1 --- /dev/null +++ b/meta-linaro/recipes-devtools/qemu/files/target-ppc_fix_bit_extraction.patch @@ -0,0 +1,70 @@ +Delivered-To: raj.khem@gmail.com +Received: by 10.50.216.195 with SMTP id os3csp11191igc; + Thu, 15 Aug 2013 04:32:45 -0700 (PDT) +X-Received: by 10.180.98.3 with SMTP id ee3mr1508103wib.48.1376566364872; + Thu, 15 Aug 2013 04:32:44 -0700 (PDT) +Return-Path: <aurelien@aurel32.net> +Received: from hall.aurel32.net (hall.aurel32.net. [2001:470:1f0b:4a8::1]) + by mx.google.com with ESMTPS id vv5si15578100wjc.49.2013.08.15.04.32.44 + for <raj.khem@gmail.com> + (version=TLSv1.2 cipher=RC4-SHA bits=128/128); + Thu, 15 Aug 2013 04:32:44 -0700 (PDT) +Received-SPF: pass (google.com: best guess record for domain of aurelien@aurel32.net designates 2001:470:1f0b:4a8::1 as permitted sender) client-ip=2001:470:1f0b:4a8::1; +Authentication-Results: mx.google.com; + spf=pass (google.com: best guess record for domain of aurelien@aurel32.net designates 2001:470:1f0b:4a8::1 as permitted sender) smtp.mail=aurelien@aurel32.net +Received: from [2001:470:d4ed:1:2db:dfff:fe14:52d] (helo=ohm.aurel32.net) + by hall.aurel32.net with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) + (Exim 4.80) + (envelope-from <aurelien@aurel32.net>) + id 1V9vnG-0006cO-NN; Thu, 15 Aug 2013 13:32:42 +0200 +Received: from aurel32 by ohm.aurel32.net with local (Exim 4.80) + (envelope-from <aurelien@aurel32.net>) + id 1V9vnF-0002Lw-7L; Thu, 15 Aug 2013 13:32:41 +0200 +From: Aurelien Jarno <aurelien@aurel32.net> +To: qemu-devel@nongnu.org +Cc: Khem Raj <raj.khem@gmail.com>, + Alexander Graf <agraf@suse.de> , + qemu-stable@nongnu.org, + qemu-ppc@nongnu.org, + Aurelien Jarno <aurelien@aurel32.net> +Subject: [PATCH] target-ppc: fix bit extraction for FPBF and FPL +Date: Thu, 15 Aug 2013 13:32:38 +0200 +Message-Id: <1376566358-8989-1-git-send-email-aurelien@aurel32.net> +X-Mailer: git-send-email 1.7.10.4 + +Bit extraction for the FP BF and L field of the MTFSFI and MTFSF +instructions is wrong and doesn't match the reference manual (which +explain the bit number in big endian format). It has been broken in +commit 7d08d85645def18eac2a9d672c1868a35e0bcf79. + +This patch fixes this, which in turn fixes the problem reported by +Khem Raj about the floor() function of libm. + +Reported-by: Khem Raj <raj.khem@gmail.com> +Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> + +Upstream-Status: Backport + +--- + target-ppc/translate.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +I don't know if we still have time to get this into 1.6, hence the Cc: +to stable. In anycase it also needs to be fixed in 1.5. + +Index: qemu-1.5.0/target-ppc/translate.c +=================================================================== +--- qemu-1.5.0.orig/target-ppc/translate.c 2013-05-20 08:34:40.000000000 -0700 ++++ qemu-1.5.0/target-ppc/translate.c 2013-08-15 06:49:25.028144352 -0700 +@@ -428,9 +428,9 @@ + EXTRACT_HELPER(SR, 16, 4); + + /* mtfsf/mtfsfi */ +-EXTRACT_HELPER(FPBF, 19, 3); ++EXTRACT_HELPER(FPBF, 23, 3); + EXTRACT_HELPER(FPIMM, 12, 4); +-EXTRACT_HELPER(FPL, 21, 1); ++EXTRACT_HELPER(FPL, 25, 1); + EXTRACT_HELPER(FPFLM, 17, 8); + EXTRACT_HELPER(FPW, 16, 1); + diff --git a/meta-linaro/recipes-devtools/qemu/qemu_git.bb b/meta-linaro/recipes-devtools/qemu/qemu_git.bb new file mode 100644 index 00000000..726207b0 --- /dev/null +++ b/meta-linaro/recipes-devtools/qemu/qemu_git.bb @@ -0,0 +1,20 @@ +require recipes-devtools/qemu/qemu.inc + +SRCREV = "${AUTOREV}" + +LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \ + file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913" + +PV = "1.6.0+git${SRCPV}" +PR = "r2" + +#COMPATIBLE_HOST_append="aarch64 armeb" +SRC_URI_prepend = "git://git.qemu.org/qemu.git" +SRC_URI_aarch64_append = "file://aarch64-softmmu.patch" +S = "${WORKDIR}/git" +EXTRA_OECONF+="--enable-kvm --enable-fdt" +EXTRA_OECONF_aarch64+="--target-list=aarch64-softmmu --enable-tcg-interpreter" + +DEFAULT_PREFERENCE_arm = "1" +DEFAULT_PREFERENCE_aarch64 = "1" +DEFAULT_PREFERENCE_armeb = "1" |