Message ID | 20220624003701.1363500-8-pdel@fb.com |
---|---|
State | New |
Headers | show |
Series | aspeed: Add multi-SoC machine | expand |
On 6/24/22 02:37, Peter Delevoryas wrote: > Signed-off-by: Peter Delevoryas <pdel@fb.com> Reviewed-by: Cédric Le Goater <clg@kaod.org> Thanks, C. > --- > hw/arm/aspeed.c | 25 ------------------------- > hw/arm/aspeed_soc.c | 26 ++++++++++++++++++++++++++ > include/hw/arm/aspeed_soc.h | 2 ++ > 3 files changed, 28 insertions(+), 25 deletions(-) > > diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c > index b43dc0fda8..a7352ca837 100644 > --- a/hw/arm/aspeed.c > +++ b/hw/arm/aspeed.c > @@ -257,31 +257,6 @@ static void write_boot_rom(DriveInfo *dinfo, hwaddr addr, size_t rom_size, > rom_add_blob_fixed("aspeed.boot_rom", storage, rom_size, addr); > } > > -static void aspeed_board_init_flashes(AspeedSMCState *s, const char *flashtype, > - unsigned int count, int unit0) > -{ > - int i; > - > - if (!flashtype) { > - return; > - } > - > - for (i = 0; i < count; ++i) { > - DriveInfo *dinfo = drive_get(IF_MTD, 0, unit0 + i); > - qemu_irq cs_line; > - DeviceState *dev; > - > - dev = qdev_new(flashtype); > - if (dinfo) { > - qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(dinfo)); > - } > - qdev_realize_and_unref(dev, BUS(s->spi), &error_fatal); > - > - cs_line = qdev_get_gpio_in_named(dev, SSI_GPIO_CS, 0); > - sysbus_connect_irq(SYS_BUS_DEVICE(s), i + 1, cs_line); > - } > -} > - > static void sdhci_attach_drive(SDHCIState *sdhci, DriveInfo *dinfo) > { > DeviceState *card; > diff --git a/hw/arm/aspeed_soc.c b/hw/arm/aspeed_soc.c > index 16394c8e0b..4183f5ffbf 100644 > --- a/hw/arm/aspeed_soc.c > +++ b/hw/arm/aspeed_soc.c > @@ -21,6 +21,7 @@ > #include "hw/i2c/aspeed_i2c.h" > #include "net/net.h" > #include "sysemu/sysemu.h" > +#include "sysemu/blockdev.h" > > #define ASPEED_SOC_IOMEM_SIZE 0x00200000 > > @@ -626,3 +627,28 @@ void aspeed_mmio_map_unimplemented(AspeedSoCState *s, SysBusDevice *dev, > memory_region_add_subregion_overlap(s->memory, addr, > sysbus_mmio_get_region(dev, 0), -1000); > } > + > +void aspeed_board_init_flashes(AspeedSMCState *s, const char *flashtype, > + unsigned int count, int unit0) > +{ > + int i; > + > + if (!flashtype) { > + return; > + } > + > + for (i = 0; i < count; ++i) { > + DriveInfo *dinfo = drive_get(IF_MTD, 0, unit0 + i); > + qemu_irq cs_line; > + DeviceState *dev; > + > + dev = qdev_new(flashtype); > + if (dinfo) { > + qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(dinfo)); > + } > + qdev_realize_and_unref(dev, BUS(s->spi), &error_fatal); > + > + cs_line = qdev_get_gpio_in_named(dev, SSI_GPIO_CS, 0); > + sysbus_connect_irq(SYS_BUS_DEVICE(s), i + 1, cs_line); > + } > +} > diff --git a/include/hw/arm/aspeed_soc.h b/include/hw/arm/aspeed_soc.h > index 6cfc063985..5cd31c1306 100644 > --- a/include/hw/arm/aspeed_soc.h > +++ b/include/hw/arm/aspeed_soc.h > @@ -178,5 +178,7 @@ void aspeed_mmio_map(AspeedSoCState *s, SysBusDevice *dev, int n, hwaddr addr); > void aspeed_mmio_map_unimplemented(AspeedSoCState *s, SysBusDevice *dev, > const char *name, hwaddr addr, > uint64_t size); > +void aspeed_board_init_flashes(AspeedSMCState *s, const char *flashtype, > + unsigned int count, int unit0); > > #endif /* ASPEED_SOC_H */
diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c index b43dc0fda8..a7352ca837 100644 --- a/hw/arm/aspeed.c +++ b/hw/arm/aspeed.c @@ -257,31 +257,6 @@ static void write_boot_rom(DriveInfo *dinfo, hwaddr addr, size_t rom_size, rom_add_blob_fixed("aspeed.boot_rom", storage, rom_size, addr); } -static void aspeed_board_init_flashes(AspeedSMCState *s, const char *flashtype, - unsigned int count, int unit0) -{ - int i; - - if (!flashtype) { - return; - } - - for (i = 0; i < count; ++i) { - DriveInfo *dinfo = drive_get(IF_MTD, 0, unit0 + i); - qemu_irq cs_line; - DeviceState *dev; - - dev = qdev_new(flashtype); - if (dinfo) { - qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(dinfo)); - } - qdev_realize_and_unref(dev, BUS(s->spi), &error_fatal); - - cs_line = qdev_get_gpio_in_named(dev, SSI_GPIO_CS, 0); - sysbus_connect_irq(SYS_BUS_DEVICE(s), i + 1, cs_line); - } -} - static void sdhci_attach_drive(SDHCIState *sdhci, DriveInfo *dinfo) { DeviceState *card; diff --git a/hw/arm/aspeed_soc.c b/hw/arm/aspeed_soc.c index 16394c8e0b..4183f5ffbf 100644 --- a/hw/arm/aspeed_soc.c +++ b/hw/arm/aspeed_soc.c @@ -21,6 +21,7 @@ #include "hw/i2c/aspeed_i2c.h" #include "net/net.h" #include "sysemu/sysemu.h" +#include "sysemu/blockdev.h" #define ASPEED_SOC_IOMEM_SIZE 0x00200000 @@ -626,3 +627,28 @@ void aspeed_mmio_map_unimplemented(AspeedSoCState *s, SysBusDevice *dev, memory_region_add_subregion_overlap(s->memory, addr, sysbus_mmio_get_region(dev, 0), -1000); } + +void aspeed_board_init_flashes(AspeedSMCState *s, const char *flashtype, + unsigned int count, int unit0) +{ + int i; + + if (!flashtype) { + return; + } + + for (i = 0; i < count; ++i) { + DriveInfo *dinfo = drive_get(IF_MTD, 0, unit0 + i); + qemu_irq cs_line; + DeviceState *dev; + + dev = qdev_new(flashtype); + if (dinfo) { + qdev_prop_set_drive(dev, "drive", blk_by_legacy_dinfo(dinfo)); + } + qdev_realize_and_unref(dev, BUS(s->spi), &error_fatal); + + cs_line = qdev_get_gpio_in_named(dev, SSI_GPIO_CS, 0); + sysbus_connect_irq(SYS_BUS_DEVICE(s), i + 1, cs_line); + } +} diff --git a/include/hw/arm/aspeed_soc.h b/include/hw/arm/aspeed_soc.h index 6cfc063985..5cd31c1306 100644 --- a/include/hw/arm/aspeed_soc.h +++ b/include/hw/arm/aspeed_soc.h @@ -178,5 +178,7 @@ void aspeed_mmio_map(AspeedSoCState *s, SysBusDevice *dev, int n, hwaddr addr); void aspeed_mmio_map_unimplemented(AspeedSoCState *s, SysBusDevice *dev, const char *name, hwaddr addr, uint64_t size); +void aspeed_board_init_flashes(AspeedSMCState *s, const char *flashtype, + unsigned int count, int unit0); #endif /* ASPEED_SOC_H */
Signed-off-by: Peter Delevoryas <pdel@fb.com> --- hw/arm/aspeed.c | 25 ------------------------- hw/arm/aspeed_soc.c | 26 ++++++++++++++++++++++++++ include/hw/arm/aspeed_soc.h | 2 ++ 3 files changed, 28 insertions(+), 25 deletions(-)