@ -195,14 +195,14 @@ static void create_fdt(RISCVVirtState *s, const MemMapEntry *memmap,
hwaddr flashbase = virt_memmap [ VIRT_FLASH ] . base ;
if ( mc - > dtb ) {
fdt = s - > fdt = load_device_tree ( mc - > dtb , & s - > fdt_size ) ;
fdt = mc - > fdt = load_device_tree ( mc - > dtb , & s - > fdt_size ) ;
if ( ! fdt ) {
error_report ( " load_device_tree() failed " ) ;
exit ( 1 ) ;
}
goto update_bootargs ;
} else {
fdt = s - > fdt = create_device_tree ( & s - > fdt_size ) ;
fdt = mc - > fdt = create_device_tree ( & s - > fdt_size ) ;
if ( ! fdt ) {
error_report ( " create_device_tree() failed " ) ;
exit ( 1 ) ;
@ -444,12 +444,12 @@ static void create_fdt(RISCVVirtState *s, const MemMapEntry *memmap,
g_free ( name ) ;
name = g_strdup_printf ( " /soc/flash@% " PRIx64 , flashbase ) ;
qemu_fdt_add_subnode ( s - > fdt , name ) ;
qemu_fdt_setprop_string ( s - > fdt , name , " compatible " , " cfi-flash " ) ;
qemu_fdt_setprop_sized_cells ( s - > fdt , name , " reg " ,
qemu_fdt_add_subnode ( mc - > fdt , name ) ;
qemu_fdt_setprop_string ( mc - > fdt , name , " compatible " , " cfi-flash " ) ;
qemu_fdt_setprop_sized_cells ( mc - > fdt , name , " reg " ,
2 , flashbase , 2 , flashsize ,
2 , flashbase + flashsize , 2 , flashsize ) ;
qemu_fdt_setprop_cell ( s - > fdt , name , " bank-width " , 4 ) ;
qemu_fdt_setprop_cell ( mc - > fdt , name , " bank-width " , 4 ) ;
g_free ( name ) ;
update_bootargs :
@ -667,9 +667,9 @@ static void virt_machine_init(MachineState *machine)
hwaddr end = riscv_load_initrd ( machine - > initrd_filename ,
machine - > ram_size , kernel_entry ,
& start ) ;
qemu_fdt_setprop_cell ( s - > fdt , " /chosen " ,
qemu_fdt_setprop_cell ( machine - > fdt , " /chosen " ,
" linux,initrd-start " , start ) ;
qemu_fdt_setprop_cell ( s - > fdt , " /chosen " , " linux,initrd-end " ,
qemu_fdt_setprop_cell ( machine - > fdt , " /chosen " , " linux,initrd-end " ,
end ) ;
}
} else {
@ -690,12 +690,12 @@ static void virt_machine_init(MachineState *machine)
/* Compute the fdt load address in dram */
fdt_load_addr = riscv_load_fdt ( memmap [ VIRT_DRAM ] . base ,
machine - > ram_size , s - > fdt ) ;
machine - > ram_size , machine - > fdt ) ;
/* load the reset vector */
riscv_setup_rom_reset_vec ( machine , & s - > soc [ 0 ] , start_addr ,
virt_memmap [ VIRT_MROM ] . base ,
virt_memmap [ VIRT_MROM ] . size , kernel_entry ,
fdt_load_addr , s - > fdt ) ;
fdt_load_addr , machine - > fdt ) ;
/* SiFive Test MMIO device */
sifive_test_create ( memmap [ VIRT_TEST ] . base ) ;