[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 7/7] riscv/virt: Jump to pflash if specified
From: |
Alistair Francis |
Subject: |
[PATCH v3 7/7] riscv/virt: Jump to pflash if specified |
Date: |
Tue, 8 Oct 2019 16:32:29 -0700 |
If the user supplied pflash to QEMU then change the reset code to jump
to the pflash base address instead of the DRAM base address.
Signed-off-by: Alistair Francis <address@hidden>
Reviewed-by: Bin Meng <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Tested-by: Bin Meng <address@hidden>
---
hw/riscv/virt.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
index ad29e14d5f..a79d16d99a 100644
--- a/hw/riscv/virt.c
+++ b/hw/riscv/virt.c
@@ -445,6 +445,7 @@ static void riscv_virt_board_init(MachineState *machine)
MemoryRegion *mask_rom = g_new(MemoryRegion, 1);
char *plic_hart_config;
size_t plic_hart_config_len;
+ target_ulong start_addr = memmap[VIRT_DRAM].base;
int i;
unsigned int smp_cpus = machine->smp.cpus;
@@ -491,6 +492,14 @@ static void riscv_virt_board_init(MachineState *machine)
}
}
+ if (drive_get(IF_PFLASH, 0, 0)) {
+ /*
+ * Pflash was supplied, let's overwrite the address we jump to after
+ * reset to the base of the flash.
+ */
+ start_addr = virt_memmap[VIRT_FLASH].base;
+ }
+
/* reset vector */
uint32_t reset_vec[8] = {
0x00000297, /* 1: auipc t0, %pcrel_hi(dtb) */
@@ -503,7 +512,7 @@ static void riscv_virt_board_init(MachineState *machine)
#endif
0x00028067, /* jr t0 */
0x00000000,
- memmap[VIRT_DRAM].base, /* start: .dword memmap[VIRT_DRAM].base */
+ start_addr, /* start: .dword */
0x00000000,
/* dtb: */
};
--
2.23.0
- [PATCH v3 0/7] RISC-V: Add more machine memory, Alistair Francis, 2019/10/08
- [PATCH v3 1/7] riscv/sifive_u: Add L2-LIM cache memory, Alistair Francis, 2019/10/08
- [PATCH v3 2/7] riscv/sifive_u: Add QSPI memory region, Alistair Francis, 2019/10/08
- [PATCH v3 3/7] riscv/sifive_u: Manually define the machine, Alistair Francis, 2019/10/08
- [PATCH v3 4/7] riscv/sifive_u: Add the start-in-flash property, Alistair Francis, 2019/10/08
- [PATCH v3 5/7] riscv/virt: Manually define the machine, Alistair Francis, 2019/10/08
- [PATCH v3 6/7] riscv/virt: Add the PFlash CFI01 device, Alistair Francis, 2019/10/08
- [PATCH v3 7/7] riscv/virt: Jump to pflash if specified,
Alistair Francis <=