On Wed, 2017-09-20 at 09:01 +0200, Cédric Le Goater wrote: > The AST2500 EVB does not have an RTC but we can pretend that one is > plugged on the I2C bus header. >  > The romulus and witherspoon boards expects an Epson RX8900 I2C RTC but > a ds1338 is good enough for the basic features we need. >  > Signed-off-by: Cédric Le Goater Reviewed-by: Andrew Jeffery > --- >  hw/arm/aspeed.c | 19 +++++++++++++++++++ >  1 file changed, 19 insertions(+) >  > diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c > index 81f522f711ae..362b683e9021 100644 > --- a/hw/arm/aspeed.c > +++ b/hw/arm/aspeed.c > @@ -89,6 +89,7 @@ enum { >   >  static void palmetto_bmc_i2c_init(AspeedBoardState *bmc); >  static void ast2500_evb_i2c_init(AspeedBoardState *bmc); > +static void romulus_bmc_i2c_init(AspeedBoardState *bmc); >  static void witherspoon_bmc_i2c_init(AspeedBoardState *bmc); >   >  static const AspeedBoardConfig aspeed_boards[] = { > @@ -114,6 +115,7 @@ static const AspeedBoardConfig aspeed_boards[] = { >          .fmc_model = "n25q256a", >          .spi_model = "mx66l1g45g", >          .num_cs    = 2, > +        .i2c_init  = romulus_bmc_i2c_init, >      }, >      [WITHERSPOON_BMC]  = { >          .soc_name  = "ast2500-a1", > @@ -298,6 +300,10 @@ static void ast2500_evb_i2c_init(AspeedBoardState *bmc) >   >      /* The AST2500 EVB expects a LM75 but a TMP105 is compatible */ >      i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 7), "tmp105", 0x4d); > + > +    /* The AST2500 EVB does not have an RTC. Let's pretend that one is > +     * plugged on the I2C bus header */ > +    i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 11), "ds1338", 0x32); >  } >   >  static void ast2500_evb_init(MachineState *machine) > @@ -325,6 +331,15 @@ static const TypeInfo ast2500_evb_type = { >      .class_init = ast2500_evb_class_init, >  }; >   > +static void romulus_bmc_i2c_init(AspeedBoardState *bmc) > +{ > +    AspeedSoCState *soc = &bmc->soc; > + > +    /* The romulus board expects Epson RX8900 I2C RTC but a ds1338 is > +     * good enough */ > +    i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 11), "ds1338", 0x32); > +} > + >  static void romulus_bmc_init(MachineState *machine) >  { >      aspeed_board_init(machine, &aspeed_boards[ROMULUS_BMC]); > @@ -358,6 +373,10 @@ static void witherspoon_bmc_i2c_init(AspeedBoardState *bmc) >      i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 5), "tmp423", 0x4c); >   >      i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 9), "tmp105", 0x4a); > + > +    /* The witherspoon board expects Epson RX8900 I2C RTC but a ds1338 is > +     * good enough */ > +    i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 11), "ds1338", 0x32); >  } >   >  static void witherspoon_bmc_init(MachineState *machine)