summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAli Saidi <saidi@eecs.umich.edu>2004-06-27 14:33:55 -0400
committerAli Saidi <saidi@eecs.umich.edu>2004-06-27 14:33:55 -0400
commitc75eadc2b2c6e1084571a4df8459c2a1e741350e (patch)
treef5a9f0797a86649f02cde109e6e77538da3a5cba
parent4cd030de9f02d94cf581cb79a7f45036a9d8773e (diff)
downloadgem5-c75eadc2b2c6e1084571a4df8459c2a1e741350e.tar.xz
allow the use of old console code and update elf_object not to rely on EM_ALPHA value.
base/loader/elf_object.cc: EM_ALPHA value isn't official, so perhaps we shouldn't use it dev/alpha_console.cc: dev/alpha_console.hh: this change allows the use of old console code --HG-- extra : convert_revision : cfacd64ae7fd2595158ca1a83ebcdb66ee7e119b
-rw-r--r--base/loader/elf_object.cc3
-rw-r--r--dev/alpha_console.cc4
-rw-r--r--dev/alpha_console.hh3
3 files changed, 8 insertions, 2 deletions
diff --git a/base/loader/elf_object.cc b/base/loader/elf_object.cc
index b8f46449a..6dfbce28c 100644
--- a/base/loader/elf_object.cc
+++ b/base/loader/elf_object.cc
@@ -74,7 +74,8 @@ ElfObject::tryFile(const string &fname, int fd, size_t len, uint8_t *data)
else {
if (ehdr.e_ident[EI_CLASS] == ELFCLASS32)
panic("32 bit ELF Binary, Not Supported");
- printf("emachine = %x\n", ehdr.e_machine);
+ /* @todo this emachine value isn't offical yet.
+ * so we probably shouldn't check it. */
// if (ehdr.e_machine != EM_ALPHA)
// panic("Non Alpha Binary, Not Supported");
diff --git a/dev/alpha_console.cc b/dev/alpha_console.cc
index 86851ff8b..680704b30 100644
--- a/dev/alpha_console.cc
+++ b/dev/alpha_console.cc
@@ -122,7 +122,9 @@ AlphaConsole::read(MemReqPtr &req, uint8_t *data)
*(uint32_t*)data = alphaAccess->intrClockFrequency;
break;
default:
- panic("Unknown 32bit access, %#x\n", daddr);
+ // Old console code read in everyting as a 32bit int
+ *(uint32_t*)data = *(uint32_t*)(consoleData + daddr);
+
}
break;
case sizeof(uint64_t):
diff --git a/dev/alpha_console.hh b/dev/alpha_console.hh
index 47afa8f4a..49c3a9f78 100644
--- a/dev/alpha_console.hh
+++ b/dev/alpha_console.hh
@@ -73,7 +73,10 @@ class SimpleDisk;
class AlphaConsole : public PioDevice
{
protected:
+ union {
AlphaAccess *alphaAccess;
+ uint8_t *consoleData;
+ };
/** the disk must be accessed from the console */
SimpleDisk *disk;