mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-15 06:01:58 -06:00
aspeed: Introduce a boot_rom region at the machine level
This should also avoid Coverity to report a memory leak warning when the QEMU process exits. See CID 1508061. Reviewed-by: Francisco Iglesias <frasse.iglesias@gmail.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Cédric Le Goater <clg@kaod.org> Reviewed-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Cédric Le Goater <clg@kaod.org>
This commit is contained in:
parent
c8f48b120b
commit
262259eab1
1 changed files with 6 additions and 6 deletions
|
@ -40,6 +40,7 @@ struct AspeedMachineState {
|
||||||
/* Public */
|
/* Public */
|
||||||
|
|
||||||
AspeedSoCState soc;
|
AspeedSoCState soc;
|
||||||
|
MemoryRegion boot_rom;
|
||||||
bool mmio_exec;
|
bool mmio_exec;
|
||||||
char *fmc_model;
|
char *fmc_model;
|
||||||
char *spi_model;
|
char *spi_model;
|
||||||
|
@ -275,15 +276,15 @@ static void write_boot_rom(BlockBackend *blk, hwaddr addr, size_t rom_size,
|
||||||
* Create a ROM and copy the flash contents at the expected address
|
* Create a ROM and copy the flash contents at the expected address
|
||||||
* (0x0). Boots faster than execute-in-place.
|
* (0x0). Boots faster than execute-in-place.
|
||||||
*/
|
*/
|
||||||
static void aspeed_install_boot_rom(AspeedSoCState *soc, BlockBackend *blk,
|
static void aspeed_install_boot_rom(AspeedMachineState *bmc, BlockBackend *blk,
|
||||||
uint64_t rom_size)
|
uint64_t rom_size)
|
||||||
{
|
{
|
||||||
MemoryRegion *boot_rom = g_new(MemoryRegion, 1);
|
AspeedSoCState *soc = &bmc->soc;
|
||||||
|
|
||||||
memory_region_init_rom(boot_rom, NULL, "aspeed.boot_rom", rom_size,
|
memory_region_init_rom(&bmc->boot_rom, NULL, "aspeed.boot_rom", rom_size,
|
||||||
&error_abort);
|
&error_abort);
|
||||||
memory_region_add_subregion_overlap(&soc->spi_boot_container, 0,
|
memory_region_add_subregion_overlap(&soc->spi_boot_container, 0,
|
||||||
boot_rom, 1);
|
&bmc->boot_rom, 1);
|
||||||
write_boot_rom(blk, ASPEED_SOC_SPI_BOOT_ADDR, rom_size, &error_abort);
|
write_boot_rom(blk, ASPEED_SOC_SPI_BOOT_ADDR, rom_size, &error_abort);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -431,8 +432,7 @@ static void aspeed_machine_init(MachineState *machine)
|
||||||
|
|
||||||
if (mtd0) {
|
if (mtd0) {
|
||||||
uint64_t rom_size = memory_region_size(&bmc->soc.spi_boot);
|
uint64_t rom_size = memory_region_size(&bmc->soc.spi_boot);
|
||||||
aspeed_install_boot_rom(&bmc->soc, blk_by_legacy_dinfo(mtd0),
|
aspeed_install_boot_rom(bmc, blk_by_legacy_dinfo(mtd0), rom_size);
|
||||||
rom_size);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue