stellaris: Stop using armv7m_init()
The stellaris board is still using the legacy armv7m_init() function, which predates conversion of the ARMv7M into a proper QOM container object. Make the board code directly create the ARMv7M object instead. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Message-id: 20180601144328.23817-2-peter.maydell@linaro.org
This commit is contained in:
parent
05b4940bf1
commit
f04d44654d
@ -20,6 +20,7 @@
|
|||||||
#include "qemu/log.h"
|
#include "qemu/log.h"
|
||||||
#include "exec/address-spaces.h"
|
#include "exec/address-spaces.h"
|
||||||
#include "sysemu/sysemu.h"
|
#include "sysemu/sysemu.h"
|
||||||
|
#include "hw/arm/armv7m.h"
|
||||||
#include "hw/char/pl011.h"
|
#include "hw/char/pl011.h"
|
||||||
#include "hw/misc/unimp.h"
|
#include "hw/misc/unimp.h"
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
@ -1298,8 +1299,13 @@ static void stellaris_init(MachineState *ms, stellaris_board_info *board)
|
|||||||
&error_fatal);
|
&error_fatal);
|
||||||
memory_region_add_subregion(system_memory, 0x20000000, sram);
|
memory_region_add_subregion(system_memory, 0x20000000, sram);
|
||||||
|
|
||||||
nvic = armv7m_init(system_memory, flash_size, NUM_IRQ_LINES,
|
nvic = qdev_create(NULL, TYPE_ARMV7M);
|
||||||
ms->kernel_filename, ms->cpu_type);
|
qdev_prop_set_uint32(nvic, "num-irq", NUM_IRQ_LINES);
|
||||||
|
qdev_prop_set_string(nvic, "cpu-type", ms->cpu_type);
|
||||||
|
object_property_set_link(OBJECT(nvic), OBJECT(get_system_memory()),
|
||||||
|
"memory", &error_abort);
|
||||||
|
/* This will exit with an error if the user passed us a bad cpu_type */
|
||||||
|
qdev_init_nofail(nvic);
|
||||||
|
|
||||||
qdev_connect_gpio_out_named(nvic, "SYSRESETREQ", 0,
|
qdev_connect_gpio_out_named(nvic, "SYSRESETREQ", 0,
|
||||||
qemu_allocate_irq(&do_sys_reset, NULL, 0));
|
qemu_allocate_irq(&do_sys_reset, NULL, 0));
|
||||||
@ -1431,6 +1437,8 @@ static void stellaris_init(MachineState *ms, stellaris_board_info *board)
|
|||||||
create_unimplemented_device("analogue-comparator", 0x4003c000, 0x1000);
|
create_unimplemented_device("analogue-comparator", 0x4003c000, 0x1000);
|
||||||
create_unimplemented_device("hibernation", 0x400fc000, 0x1000);
|
create_unimplemented_device("hibernation", 0x400fc000, 0x1000);
|
||||||
create_unimplemented_device("flash-control", 0x400fd000, 0x1000);
|
create_unimplemented_device("flash-control", 0x400fd000, 0x1000);
|
||||||
|
|
||||||
|
armv7m_load_kernel(ARM_CPU(first_cpu), ms->kernel_filename, flash_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* FIXME: Figure out how to generate these from stellaris_boards. */
|
/* FIXME: Figure out how to generate these from stellaris_boards. */
|
||||||
|
Loading…
Reference in New Issue
Block a user