[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-trivial] [PULL 02/10] sparc/leon3: Initialize stack pointer
From: |
Michael Tokarev |
Subject: |
[Qemu-trivial] [PULL 02/10] sparc/leon3: Initialize stack pointer |
Date: |
Sat, 15 Feb 2014 16:18:12 +0400 |
From: Sebastian Huber <address@hidden>
A lot of real world LEON3 systems are shipped with the GRMON boot
loader. This boot loader initializes the stack pointer with the end of
RAM address. The application can use this to detect the RAM size of a
particular board variant.
Signed-off-by: Sebastian Huber <address@hidden>
Reviewed-by: Fabien Chouteau <address@hidden>
Signed-off-by: Michael Tokarev <address@hidden>
---
hw/sparc/leon3.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c
index c583c3d..c16e9e4 100644
--- a/hw/sparc/leon3.c
+++ b/hw/sparc/leon3.c
@@ -45,6 +45,7 @@
typedef struct ResetData {
SPARCCPU *cpu;
uint32_t entry; /* save kernel entry in case of reset */
+ target_ulong sp; /* initial stack pointer */
} ResetData;
static void main_cpu_reset(void *opaque)
@@ -58,6 +59,7 @@ static void main_cpu_reset(void *opaque)
cpu->halted = 0;
env->pc = s->entry;
env->npc = s->entry + 4;
+ env->regbase[6] = s->sp;
}
void leon3_irq_ack(void *irq_manager, int intno)
@@ -133,6 +135,7 @@ static void leon3_generic_hw_init(QEMUMachineInitArgs *args)
/* Reset data */
reset_info = g_malloc0(sizeof(ResetData));
reset_info->cpu = cpu;
+ reset_info->sp = 0x40000000 + ram_size;
qemu_register_reset(main_cpu_reset, reset_info);
/* Allocate IRQ manager */
--
1.7.10.4
- [Qemu-trivial] [PULL 00/10] Trivial patches for 2014-02-15, Michael Tokarev, 2014/02/15
- [Qemu-trivial] [PULL 01/10] misc: Fix case Qemu -> QEMU, Michael Tokarev, 2014/02/15
- [Qemu-trivial] [PULL 07/10] vl: remove old, long-unused defines, Michael Tokarev, 2014/02/15
- [Qemu-trivial] [PULL 06/10] net: declare struct iovec in checksum.h to fix compiler warning, Michael Tokarev, 2014/02/15
- [Qemu-trivial] [PULL 10/10] char/serial: Fix emptyness check, Michael Tokarev, 2014/02/15
- [Qemu-trivial] [PULL 09/10] gitignore: anchor all ignored names, Michael Tokarev, 2014/02/15
- [Qemu-trivial] [PULL 08/10] vl: trim includes, Michael Tokarev, 2014/02/15
- [Qemu-trivial] [PULL 04/10] configure: add hints to a remedy for feature_not_found errors, Michael Tokarev, 2014/02/15
- [Qemu-trivial] [PULL 02/10] sparc/leon3: Initialize stack pointer,
Michael Tokarev <=
- [Qemu-trivial] [PULL 03/10] configure: add hint of libfdt to DTC dependency not found message, Michael Tokarev, 2014/02/15
- [Qemu-trivial] [PULL 05/10] linux-user: refactor do_socketcall(), Michael Tokarev, 2014/02/15
- Re: [Qemu-trivial] [Qemu-devel] [PULL 00/10] Trivial patches for 2014-02-15, Peter Maydell, 2014/02/15