shakti_c.c (0c1eccd368af8805ec0fb11e6cf25d0684d37328) | shakti_c.c (55c136599f512a86e3fec9f77b6b5a30a6b34cca) |
---|---|
1/* 2 * Shakti C-class SoC emulation 3 * 4 * Copyright (c) 2021 Vijai Kumar K <vijai@behindbytes.com> 5 * 6 * This program is free software; you can redistribute it and/or modify it 7 * under the terms and conditions of the GNU General Public License, 8 * version 2 or later, as published by the Free Software Foundation. --- 31 unchanged lines hidden (view full) --- 40 [SHAKTI_C_CLINT] = { 0x02000000, 0xc0000 }, 41 [SHAKTI_C_I2C] = { 0x20c00000, 0x00100 }, 42}; 43 44static void shakti_c_machine_state_init(MachineState *mstate) 45{ 46 ShaktiCMachineState *sms = RISCV_SHAKTI_MACHINE(mstate); 47 MemoryRegion *system_memory = get_system_memory(); | 1/* 2 * Shakti C-class SoC emulation 3 * 4 * Copyright (c) 2021 Vijai Kumar K <vijai@behindbytes.com> 5 * 6 * This program is free software; you can redistribute it and/or modify it 7 * under the terms and conditions of the GNU General Public License, 8 * version 2 or later, as published by the Free Software Foundation. --- 31 unchanged lines hidden (view full) --- 40 [SHAKTI_C_CLINT] = { 0x02000000, 0xc0000 }, 41 [SHAKTI_C_I2C] = { 0x20c00000, 0x00100 }, 42}; 43 44static void shakti_c_machine_state_init(MachineState *mstate) 45{ 46 ShaktiCMachineState *sms = RISCV_SHAKTI_MACHINE(mstate); 47 MemoryRegion *system_memory = get_system_memory(); |
48 hwaddr firmware_load_addr = shakti_c_memmap[SHAKTI_C_RAM].base; |
|
48 49 /* Initialize SoC */ 50 object_initialize_child(OBJECT(mstate), "soc", &sms->soc, 51 TYPE_RISCV_SHAKTI_SOC); 52 qdev_realize(DEVICE(&sms->soc), NULL, &error_abort); 53 54 /* register RAM */ 55 memory_region_add_subregion(system_memory, 56 shakti_c_memmap[SHAKTI_C_RAM].base, 57 mstate->ram); 58 | 49 50 /* Initialize SoC */ 51 object_initialize_child(OBJECT(mstate), "soc", &sms->soc, 52 TYPE_RISCV_SHAKTI_SOC); 53 qdev_realize(DEVICE(&sms->soc), NULL, &error_abort); 54 55 /* register RAM */ 56 memory_region_add_subregion(system_memory, 57 shakti_c_memmap[SHAKTI_C_RAM].base, 58 mstate->ram); 59 |
60 if (mstate->firmware) { 61 riscv_load_firmware(mstate->firmware, &firmware_load_addr, NULL); 62 } 63 |
|
59 /* ROM reset vector */ | 64 /* ROM reset vector */ |
60 riscv_setup_rom_reset_vec(mstate, &sms->soc.cpus, 61 shakti_c_memmap[SHAKTI_C_RAM].base, | 65 riscv_setup_rom_reset_vec(mstate, &sms->soc.cpus, firmware_load_addr, |
62 shakti_c_memmap[SHAKTI_C_ROM].base, 63 shakti_c_memmap[SHAKTI_C_ROM].size, 0, 0); | 66 shakti_c_memmap[SHAKTI_C_ROM].base, 67 shakti_c_memmap[SHAKTI_C_ROM].size, 0, 0); |
64 if (mstate->firmware) { 65 riscv_load_firmware(mstate->firmware, 66 shakti_c_memmap[SHAKTI_C_RAM].base, 67 NULL); 68 } | |
69} 70 71static void shakti_c_machine_instance_init(Object *obj) 72{ 73} 74 75static void shakti_c_machine_class_init(ObjectClass *klass, void *data) 76{ --- 113 unchanged lines hidden --- | 68} 69 70static void shakti_c_machine_instance_init(Object *obj) 71{ 72} 73 74static void shakti_c_machine_class_init(ObjectClass *klass, void *data) 75{ --- 113 unchanged lines hidden --- |