mirror of https://github.com/xqemu/xqemu.git
hw/arm/armv7m: Remove unused armv7m_init() function
Remove the now-unused armv7m_init() function. This was a legacy from before we properly QOMified ARMv7M, and it has some flaws: * it combines work that needs to be done by an SoC object (creating and initializing the TYPE_ARMV7M object) with work that needs to be done by the board model (setting the system up to load the ELF file specified with -kernel) * TYPE_ARMV7M creation failure is fatal, but an SoC object wants to arrange to propagate the failure outward * it uses allocate-and-create via qdev_create() whereas the current preferred style for SoC objects is to do creation in-place Board and SoC models can instead do the two jobs this function was doing themselves, in the right places and with whatever their preferred style/error handling is. 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-3-peter.maydell@linaro.org
This commit is contained in:
parent
f04d44654d
commit
38d81dafb3
|
@ -261,27 +261,6 @@ static void armv7m_reset(void *opaque)
|
||||||
cpu_reset(CPU(cpu));
|
cpu_reset(CPU(cpu));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Init CPU and memory for a v7-M based board.
|
|
||||||
mem_size is in bytes.
|
|
||||||
Returns the ARMv7M device. */
|
|
||||||
|
|
||||||
DeviceState *armv7m_init(MemoryRegion *system_memory, int mem_size, int num_irq,
|
|
||||||
const char *kernel_filename, const char *cpu_type)
|
|
||||||
{
|
|
||||||
DeviceState *armv7m;
|
|
||||||
|
|
||||||
armv7m = qdev_create(NULL, TYPE_ARMV7M);
|
|
||||||
qdev_prop_set_uint32(armv7m, "num-irq", num_irq);
|
|
||||||
qdev_prop_set_string(armv7m, "cpu-type", cpu_type);
|
|
||||||
object_property_set_link(OBJECT(armv7m), 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(armv7m);
|
|
||||||
|
|
||||||
armv7m_load_kernel(ARM_CPU(first_cpu), kernel_filename, mem_size);
|
|
||||||
return armv7m;
|
|
||||||
}
|
|
||||||
|
|
||||||
void armv7m_load_kernel(ARMCPU *cpu, const char *kernel_filename, int mem_size)
|
void armv7m_load_kernel(ARMCPU *cpu, const char *kernel_filename, int mem_size)
|
||||||
{
|
{
|
||||||
int image_size;
|
int image_size;
|
||||||
|
|
|
@ -23,9 +23,6 @@ typedef enum {
|
||||||
ARM_ENDIANNESS_BE32,
|
ARM_ENDIANNESS_BE32,
|
||||||
} arm_endianness;
|
} arm_endianness;
|
||||||
|
|
||||||
/* armv7m.c */
|
|
||||||
DeviceState *armv7m_init(MemoryRegion *system_memory, int mem_size, int num_irq,
|
|
||||||
const char *kernel_filename, const char *cpu_type);
|
|
||||||
/**
|
/**
|
||||||
* armv7m_load_kernel:
|
* armv7m_load_kernel:
|
||||||
* @cpu: CPU
|
* @cpu: CPU
|
||||||
|
@ -33,9 +30,8 @@ DeviceState *armv7m_init(MemoryRegion *system_memory, int mem_size, int num_irq,
|
||||||
* @mem_size: mem_size: maximum image size to load
|
* @mem_size: mem_size: maximum image size to load
|
||||||
*
|
*
|
||||||
* Load the guest image for an ARMv7M system. This must be called by
|
* Load the guest image for an ARMv7M system. This must be called by
|
||||||
* any ARMv7M board, either directly or via armv7m_init(). (This is
|
* any ARMv7M board. (This is necessary to ensure that the CPU resets
|
||||||
* necessary to ensure that the CPU resets correctly on system reset,
|
* correctly on system reset, as well as for kernel loading.)
|
||||||
* as well as for kernel loading.)
|
|
||||||
*/
|
*/
|
||||||
void armv7m_load_kernel(ARMCPU *cpu, const char *kernel_filename, int mem_size);
|
void armv7m_load_kernel(ARMCPU *cpu, const char *kernel_filename, int mem_size);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue