summaryrefslogtreecommitdiff
path: root/hw/microblaze/petalogix_ml605_mmu.c
diff options
context:
space:
mode:
authorAlistair Francis <alistair.francis@xilinx.com>2015-06-18 21:16:45 -0700
committerEdgar E. Iglesias <edgar.iglesias@xilinx.com>2015-06-21 17:20:16 +1000
commita87310a62d1885b8f6d6b5b30227cbd9792d2c3c (patch)
tree67f6dc59d24ac1f970462acb94c374a2092cea21 /hw/microblaze/petalogix_ml605_mmu.c
parent6fad9e986b82c7c7ed7cfa0cc3ee38b3510a5432 (diff)
downloadqemu-a87310a62d1885b8f6d6b5b30227cbd9792d2c3c.tar.gz
qemu-a87310a62d1885b8f6d6b5b30227cbd9792d2c3c.tar.bz2
qemu-a87310a62d1885b8f6d6b5b30227cbd9792d2c3c.zip
ml605_mmu: Move the hardcoded values to the init function
Move the hard coded register values to the init function. This also allows the entire reset function to be deleted, as PVR registers are now preserved on reset. The hardcoded PVR0 values can be removed as they are setting the endianness and stack protection, which is already done or invalid. Signed-off-by: Alistair Francis <alistair.francis@xilinx.com> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Diffstat (limited to 'hw/microblaze/petalogix_ml605_mmu.c')
-rw-r--r--hw/microblaze/petalogix_ml605_mmu.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/hw/microblaze/petalogix_ml605_mmu.c b/hw/microblaze/petalogix_ml605_mmu.c
index 609c90b74a..ed84a37e66 100644
--- a/hw/microblaze/petalogix_ml605_mmu.c
+++ b/hw/microblaze/petalogix_ml605_mmu.c
@@ -64,17 +64,6 @@
#define SPI_IRQ 4
#define UART16550_IRQ 5
-static void machine_cpu_reset(MicroBlazeCPU *cpu)
-{
- CPUMBState *env = &cpu->env;
-
- env->pvr.regs[10] = 0x0e000000; /* virtex 6 */
- /* setup pvr to match kernel setting */
- env->pvr.regs[0] |= (0x14 << 8);
- env->pvr.regs[4] = 0xc56b8000;
- env->pvr.regs[5] = 0xc56be000;
-}
-
static void
petalogix_ml605_init(MachineState *machine)
{
@@ -205,10 +194,15 @@ petalogix_ml605_init(MachineState *machine)
}
}
+ /* setup PVR to match kernel settings */
+ cpu->env.pvr.regs[4] = 0xc56b8000;
+ cpu->env.pvr.regs[5] = 0xc56be000;
+ cpu->env.pvr.regs[10] = 0x0e000000; /* virtex 6 */
+
microblaze_load_kernel(cpu, MEMORY_BASEADDR, ram_size,
machine->initrd_filename,
BINARY_DEVICE_TREE_FILE,
- machine_cpu_reset);
+ NULL);
}