Skip to contentSkip to conversation

elf+moxie: EM_MOXIE defintition

PATCH In review Peter Crosthwaite 2 participants 4 messages Aug 29, 2015 – Sep 1, 2015

lore
Share & tools
lore
#0 lore raw

cover elf+moxie: EM_MOXIE defintition

Hi Richard,

This adds EM_MOXIE as suggested. Patch one does some surrounding code style cleanup and P2 fixes Moxie.

Regards,
Peter

Peter Crosthwaite (2):
elf_ops: Fix coding style for EM alias case statement
elf: Update EM_MOXIE definition

 hw/moxie/moxiesim.c  |  1 +
 include/elf.h        |  3 +++
 include/hw/elf_ops.h | 23 +++++++++++++++++------
 target-moxie/cpu.h   |  2 +-
 4 files changed, 22 insertions(+), 7 deletions(-)
Signature · 1 line
1.9.1
#1 lore raw

PATCH 1/2 elf_ops: Fix coding style for EM alias case statement

Fix the coding style for these cases as per CODING_STYLE. Reverse the Yoda conditions and add missing if braces.

---
 include/hw/elf_ops.h | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)
include/hw/elf_ops.h +9 -6
index bd71968..0d41f24 100644
@@ -282,25 +282,28 @@ static int glue(load_elf, SZ)(const char *name, int fd,
 
     switch (elf_machine) {
         case EM_PPC64:
-            if (EM_PPC64 != ehdr.e_machine)
-                if (EM_PPC != ehdr.e_machine) {
+            if (ehdr.e_machine != EM_PPC64) {
+                if (ehdr.e_machine != EM_PPC) {
                     ret = ELF_LOAD_WRONG_ARCH;
                     goto fail;
                 }
+            }
             break;
         case EM_X86_64:
-            if (EM_X86_64 != ehdr.e_machine)
-                if (EM_386 != ehdr.e_machine) {
+            if (ehdr.e_machine != EM_X86_64) {
+                if (ehdr.e_machine != EM_386) {
                     ret = ELF_LOAD_WRONG_ARCH;
                     goto fail;
                 }
+            }
             break;
         case EM_MICROBLAZE:
-            if (EM_MICROBLAZE != ehdr.e_machine)
-                if (EM_MICROBLAZE_OLD != ehdr.e_machine) {
+            if (ehdr.e_machine != EM_MICROBLAZE) {
+                if (ehdr.e_machine != EM_MICROBLAZE_OLD) {
                     ret = ELF_LOAD_WRONG_ARCH;
                     goto fail;
                 }
+            }
             break;
         default:
             if (elf_machine != ehdr.e_machine) {
Signature · 1 line
1.9.1
#2 lore raw

PATCH 2/2 elf: Update EM_MOXIE definition

In reply to Peter Crosthwaite

EM_MOXIE now has a proper assigned elf code. Use it. Register the old interim value as EM_MOXIE_OLD and accept either in elf loading.

---
 hw/moxie/moxiesim.c  | 1 +
 include/elf.h        | 3 +++
 include/hw/elf_ops.h | 8 ++++++++
 target-moxie/cpu.h   | 2 +-
 4 files changed, 13 insertions(+), 1 deletion(-)
hw/moxie/moxiesim.c +1 -0
index 80bcc5b..537e25e 100644
@@ -34,6 +34,7 @@
 #include "hw/loader.h"
 #include "hw/char/serial.h"
 #include "exec/address-spaces.h"
+#include "elf.h"
 
 #define PHYS_MEM_BASE 0x80000000
 
include/elf.h +3 -0
index 4afd474..295a6ea 100644
@@ -133,6 +133,9 @@ typedef int64_t  Elf64_Sxword;
 
 #define EM_AARCH64  183
 
+#define EM_MOXIE           223     /* Moxie processor family */
+#define EM_MOXIE_OLD       0xFEED
+
 /* This is the info that is needed to parse the dynamic section of the file */
 #define DT_NULL		0
 #define DT_NEEDED	1
include/hw/elf_ops.h +8 -0
index 0d41f24..0010c44 100644
@@ -305,6 +305,14 @@ static int glue(load_elf, SZ)(const char *name, int fd,
                 }
             }
             break;
+        case EM_MOXIE:
+            if (ehdr.e_machine != EM_MOXIE) {
+                if (ehdr.e_machine != EM_MOXIE_OLD) {
+                    ret = ELF_LOAD_WRONG_ARCH;
+                    goto fail;
+                }
+            }
+            break;
         default:
             if (elf_machine != ehdr.e_machine) {
                 ret = ELF_LOAD_WRONG_ARCH;
target-moxie/cpu.h +1 -1
index 29572aa..7bb1ed9 100644
@@ -26,7 +26,7 @@
 
 #define CPUArchState struct CPUMoxieState
 
-#define ELF_MACHINE     0xFEED /* EM_MOXIE */
+#define ELF_MACHINE     EM_MOXIE
 
 #define MOXIE_EX_DIV0        0
 #define MOXIE_EX_BAD         1
Signature · 1 line
1.9.1