sifive_u.c (df50424b4dcfde823047d3717abd6a61224ea205) | sifive_u.c (55c136599f512a86e3fec9f77b6b5a30a6b34cca) |
---|---|
1/* 2 * QEMU RISC-V Board Compatible with SiFive Freedom U SDK 3 * 4 * Copyright (c) 2016-2017 Sagar Karandikar, sagark@eecs.berkeley.edu 5 * Copyright (c) 2017 SiFive, Inc. 6 * Copyright (c) 2019 Bin Meng <bmeng.cn@gmail.com> 7 * 8 * Provides a board compatible with the SiFive Freedom U SDK: --- 501 unchanged lines hidden (view full) --- 510} 511 512static void sifive_u_machine_init(MachineState *machine) 513{ 514 const MemMapEntry *memmap = sifive_u_memmap; 515 SiFiveUState *s = RISCV_U_MACHINE(machine); 516 MemoryRegion *system_memory = get_system_memory(); 517 MemoryRegion *flash0 = g_new(MemoryRegion, 1); | 1/* 2 * QEMU RISC-V Board Compatible with SiFive Freedom U SDK 3 * 4 * Copyright (c) 2016-2017 Sagar Karandikar, sagark@eecs.berkeley.edu 5 * Copyright (c) 2017 SiFive, Inc. 6 * Copyright (c) 2019 Bin Meng <bmeng.cn@gmail.com> 7 * 8 * Provides a board compatible with the SiFive Freedom U SDK: --- 501 unchanged lines hidden (view full) --- 510} 511 512static void sifive_u_machine_init(MachineState *machine) 513{ 514 const MemMapEntry *memmap = sifive_u_memmap; 515 SiFiveUState *s = RISCV_U_MACHINE(machine); 516 MemoryRegion *system_memory = get_system_memory(); 517 MemoryRegion *flash0 = g_new(MemoryRegion, 1); |
518 target_ulong start_addr = memmap[SIFIVE_U_DEV_DRAM].base; | 518 hwaddr start_addr = memmap[SIFIVE_U_DEV_DRAM].base; |
519 target_ulong firmware_end_addr, kernel_start_addr; 520 const char *firmware_name; 521 uint32_t start_addr_hi32 = 0x00000000; 522 int i; 523 uint32_t fdt_load_addr; 524 uint64_t kernel_entry; 525 DriveInfo *dinfo; 526 BlockBackend *blk; --- 57 unchanged lines hidden (view full) --- 584 break; 585 default: 586 start_addr = memmap[SIFIVE_U_DEV_DRAM].base; 587 break; 588 } 589 590 firmware_name = riscv_default_firmware_name(&s->soc.u_cpus); 591 firmware_end_addr = riscv_find_and_load_firmware(machine, firmware_name, | 519 target_ulong firmware_end_addr, kernel_start_addr; 520 const char *firmware_name; 521 uint32_t start_addr_hi32 = 0x00000000; 522 int i; 523 uint32_t fdt_load_addr; 524 uint64_t kernel_entry; 525 DriveInfo *dinfo; 526 BlockBackend *blk; --- 57 unchanged lines hidden (view full) --- 584 break; 585 default: 586 start_addr = memmap[SIFIVE_U_DEV_DRAM].base; 587 break; 588 } 589 590 firmware_name = riscv_default_firmware_name(&s->soc.u_cpus); 591 firmware_end_addr = riscv_find_and_load_firmware(machine, firmware_name, |
592 start_addr, NULL); | 592 &start_addr, NULL); |
593 594 if (machine->kernel_filename) { 595 kernel_start_addr = riscv_calc_kernel_start_addr(&s->soc.u_cpus, 596 firmware_end_addr); 597 598 kernel_entry = riscv_load_kernel(machine, &s->soc.u_cpus, 599 kernel_start_addr, true, NULL); 600 } else { --- 368 unchanged lines hidden --- | 593 594 if (machine->kernel_filename) { 595 kernel_start_addr = riscv_calc_kernel_start_addr(&s->soc.u_cpus, 596 firmware_end_addr); 597 598 kernel_entry = riscv_load_kernel(machine, &s->soc.u_cpus, 599 kernel_start_addr, true, NULL); 600 } else { --- 368 unchanged lines hidden --- |