[PATCH] aspeed: Add an AST2600 eval board

Cédric Le Goater posted 1 patch 4 years, 6 months ago
Test asan passed
Test checkpatch passed
Test FreeBSD passed
Test docker-mingw@fedora passed
Test docker-clang@ubuntu passed
Test docker-quick@centos7 passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20191016090745.15334-1-clg@kaod.org
Maintainers: "Cédric Le Goater" <clg@kaod.org>, Peter Maydell <peter.maydell@linaro.org>, Andrew Jeffery <andrew@aj.id.au>, Joel Stanley <joel@jms.id.au>
include/hw/arm/aspeed.h |  1 +
hw/arm/aspeed.c         | 23 +++++++++++++++++++++++
2 files changed, 24 insertions(+)
[PATCH] aspeed: Add an AST2600 eval board
Posted by Cédric Le Goater 4 years, 6 months ago
Define the board with 1 GiB of RAM but some boards can have up to 2
GiB.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Joel Stanley <joel@jms.id.au>
---

 Changes since AST2600 patchset:

 - lowered the RAM size to 1 GiB as it was breaking the tests on some
   hosts.

 include/hw/arm/aspeed.h |  1 +
 hw/arm/aspeed.c         | 23 +++++++++++++++++++++++
 2 files changed, 24 insertions(+)

diff --git a/include/hw/arm/aspeed.h b/include/hw/arm/aspeed.h
index 02073a6b4d61..f49bc7081e4d 100644
--- a/include/hw/arm/aspeed.h
+++ b/include/hw/arm/aspeed.h
@@ -18,6 +18,7 @@ typedef struct AspeedBoardConfig {
     const char *desc;
     const char *soc_name;
     uint32_t hw_strap1;
+    uint32_t hw_strap2;
     const char *fmc_model;
     const char *spi_model;
     uint32_t num_cs;
diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
index 52993f84b461..028191ff36fc 100644
--- a/hw/arm/aspeed.c
+++ b/hw/arm/aspeed.c
@@ -88,6 +88,10 @@ struct AspeedBoardState {
 /* Witherspoon hardware value: 0xF10AD216 (but use romulus definition) */
 #define WITHERSPOON_BMC_HW_STRAP1 ROMULUS_BMC_HW_STRAP1
 
+/* AST2600 evb hardware value */
+#define AST2600_EVB_HW_STRAP1 0x000000C0
+#define AST2600_EVB_HW_STRAP2 0x00000003
+
 /*
  * The max ram region is for firmwares that scan the address space
  * with load/store to guess how much RAM the SoC has.
@@ -187,6 +191,8 @@ static void aspeed_board_init(MachineState *machine,
                              &error_abort);
     object_property_set_int(OBJECT(&bmc->soc), cfg->hw_strap1, "hw-strap1",
                             &error_abort);
+    object_property_set_int(OBJECT(&bmc->soc), cfg->hw_strap2, "hw-strap2",
+                            &error_abort);
     object_property_set_int(OBJECT(&bmc->soc), cfg->num_cs, "num-cs",
                             &error_abort);
     object_property_set_int(OBJECT(&bmc->soc), machine->smp.cpus, "num-cpus",
@@ -308,6 +314,12 @@ static void ast2500_evb_i2c_init(AspeedBoardState *bmc)
     i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 11), "ds1338", 0x32);
 }
 
+static void ast2600_evb_i2c_init(AspeedBoardState *bmc)
+{
+    /* Start with some devices on our I2C busses */
+    ast2500_evb_i2c_init(bmc);
+}
+
 static void romulus_bmc_i2c_init(AspeedBoardState *bmc)
 {
     AspeedSoCState *soc = &bmc->soc;
@@ -455,6 +467,17 @@ static const AspeedBoardConfig aspeed_boards[] = {
         .num_cs    = 2,
         .i2c_init  = witherspoon_bmc_i2c_init,
         .ram       = 512 * MiB,
+    }, {
+        .name      = MACHINE_TYPE_NAME("ast2600-evb"),
+        .desc      = "Aspeed AST2600 EVB (Cortex A7)",
+        .soc_name  = "ast2600-a0",
+        .hw_strap1 = AST2600_EVB_HW_STRAP1,
+        .hw_strap2 = AST2600_EVB_HW_STRAP2,
+        .fmc_model = "w25q512jv",
+        .spi_model = "mx66u51235f",
+        .num_cs    = 1,
+        .i2c_init  = ast2600_evb_i2c_init,
+        .ram       = 1 * GiB,
     },
 };
 
-- 
2.21.0


Re: [PATCH] aspeed: Add an AST2600 eval board
Posted by Joel Stanley 4 years, 6 months ago
On Wed, 16 Oct 2019 at 09:08, Cédric Le Goater <clg@kaod.org> wrote:
>
> Define the board with 1 GiB of RAM but some boards can have up to 2
> GiB.
>
> Signed-off-by: Cédric Le Goater <clg@kaod.org>
> Reviewed-by: Joel Stanley <joel@jms.id.au>
> ---
>
>  Changes since AST2600 patchset:
>
>  - lowered the RAM size to 1 GiB as it was breaking the tests on some
>    hosts.

Peter,

After chatting with Cédric I agree we should merge this patch.

As it turns out the EVBs have differing amounts of RAM; his has 1GB
while mine has 2GB. So we are not being inaccurate by setting 1GB as
the default here.

Cheers,

Joel

>
>  include/hw/arm/aspeed.h |  1 +
>  hw/arm/aspeed.c         | 23 +++++++++++++++++++++++
>  2 files changed, 24 insertions(+)
>
> diff --git a/include/hw/arm/aspeed.h b/include/hw/arm/aspeed.h
> index 02073a6b4d61..f49bc7081e4d 100644
> --- a/include/hw/arm/aspeed.h
> +++ b/include/hw/arm/aspeed.h
> @@ -18,6 +18,7 @@ typedef struct AspeedBoardConfig {
>      const char *desc;
>      const char *soc_name;
>      uint32_t hw_strap1;
> +    uint32_t hw_strap2;
>      const char *fmc_model;
>      const char *spi_model;
>      uint32_t num_cs;
> diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
> index 52993f84b461..028191ff36fc 100644
> --- a/hw/arm/aspeed.c
> +++ b/hw/arm/aspeed.c
> @@ -88,6 +88,10 @@ struct AspeedBoardState {
>  /* Witherspoon hardware value: 0xF10AD216 (but use romulus definition) */
>  #define WITHERSPOON_BMC_HW_STRAP1 ROMULUS_BMC_HW_STRAP1
>
> +/* AST2600 evb hardware value */
> +#define AST2600_EVB_HW_STRAP1 0x000000C0
> +#define AST2600_EVB_HW_STRAP2 0x00000003
> +
>  /*
>   * The max ram region is for firmwares that scan the address space
>   * with load/store to guess how much RAM the SoC has.
> @@ -187,6 +191,8 @@ static void aspeed_board_init(MachineState *machine,
>                               &error_abort);
>      object_property_set_int(OBJECT(&bmc->soc), cfg->hw_strap1, "hw-strap1",
>                              &error_abort);
> +    object_property_set_int(OBJECT(&bmc->soc), cfg->hw_strap2, "hw-strap2",
> +                            &error_abort);
>      object_property_set_int(OBJECT(&bmc->soc), cfg->num_cs, "num-cs",
>                              &error_abort);
>      object_property_set_int(OBJECT(&bmc->soc), machine->smp.cpus, "num-cpus",
> @@ -308,6 +314,12 @@ static void ast2500_evb_i2c_init(AspeedBoardState *bmc)
>      i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 11), "ds1338", 0x32);
>  }
>
> +static void ast2600_evb_i2c_init(AspeedBoardState *bmc)
> +{
> +    /* Start with some devices on our I2C busses */
> +    ast2500_evb_i2c_init(bmc);
> +}
> +
>  static void romulus_bmc_i2c_init(AspeedBoardState *bmc)
>  {
>      AspeedSoCState *soc = &bmc->soc;
> @@ -455,6 +467,17 @@ static const AspeedBoardConfig aspeed_boards[] = {
>          .num_cs    = 2,
>          .i2c_init  = witherspoon_bmc_i2c_init,
>          .ram       = 512 * MiB,
> +    }, {
> +        .name      = MACHINE_TYPE_NAME("ast2600-evb"),
> +        .desc      = "Aspeed AST2600 EVB (Cortex A7)",
> +        .soc_name  = "ast2600-a0",
> +        .hw_strap1 = AST2600_EVB_HW_STRAP1,
> +        .hw_strap2 = AST2600_EVB_HW_STRAP2,
> +        .fmc_model = "w25q512jv",
> +        .spi_model = "mx66u51235f",
> +        .num_cs    = 1,
> +        .i2c_init  = ast2600_evb_i2c_init,
> +        .ram       = 1 * GiB,
>      },
>  };
>
> --
> 2.21.0
>

Re: [PATCH] aspeed: Add an AST2600 eval board
Posted by Peter Maydell 4 years, 6 months ago
On Thu, 17 Oct 2019 at 07:33, Joel Stanley <joel@jms.id.au> wrote:
>
> On Wed, 16 Oct 2019 at 09:08, Cédric Le Goater <clg@kaod.org> wrote:
> >
> > Define the board with 1 GiB of RAM but some boards can have up to 2
> > GiB.
> >
> > Signed-off-by: Cédric Le Goater <clg@kaod.org>
> > Reviewed-by: Joel Stanley <joel@jms.id.au>
> > ---
> >
> >  Changes since AST2600 patchset:
> >
> >  - lowered the RAM size to 1 GiB as it was breaking the tests on some
> >    hosts.
>
> Peter,
>
> After chatting with Cédric I agree we should merge this patch.
>
> As it turns out the EVBs have differing amounts of RAM; his has 1GB
> while mine has 2GB. So we are not being inaccurate by setting 1GB as
> the default here.

That's convenient, means we don't have to figure out how to
special-case the test infrastructure for it :-)



Applied to target-arm.next, thanks.

-- PMM

Re: [PATCH] aspeed: Add an AST2600 eval board
Posted by Peter Maydell 4 years, 6 months ago
On Thu, 17 Oct 2019 at 14:54, Peter Maydell <peter.maydell@linaro.org> wrote:
>
> On Thu, 17 Oct 2019 at 07:33, Joel Stanley <joel@jms.id.au> wrote:
> >
> > On Wed, 16 Oct 2019 at 09:08, Cédric Le Goater <clg@kaod.org> wrote:
> > >
> > > Define the board with 1 GiB of RAM but some boards can have up to 2
> > > GiB.
> > >
> > > Signed-off-by: Cédric Le Goater <clg@kaod.org>
> > > Reviewed-by: Joel Stanley <joel@jms.id.au>
> > > ---
> > >
> > >  Changes since AST2600 patchset:
> > >
> > >  - lowered the RAM size to 1 GiB as it was breaking the tests on some
> > >    hosts.
> >
> > Peter,
> >
> > After chatting with Cédric I agree we should merge this patch.
> >
> > As it turns out the EVBs have differing amounts of RAM; his has 1GB
> > while mine has 2GB. So we are not being inaccurate by setting 1GB as
> > the default here.
>
> That's convenient, means we don't have to figure out how to
> special-case the test infrastructure for it :-)

This is now OK on the 32-bit boxes, but still fails 'make check'
on my OSX system:

manooth$ QTEST_QEMU_BINARY=aarch64-softmmu/qemu-system-aarch64
tests/qom-test -p /aarch64/qom/ast2600-evb
/aarch64/qom/ast2600-evb: Broken pipe
/Users/pm215/src/qemu-for-merges/tests/libqtest.c:149: kill_qemu()
detected QEMU death from signal 6 (Abort trap: 6)
Abort trap: 6

Dropping from the pullreq again :-(

thanks
-- PMM

Re: [PATCH] aspeed: Add an AST2600 eval board
Posted by Cédric Le Goater 4 years, 6 months ago
On 22/10/2019 18:43, Peter Maydell wrote:
> On Thu, 17 Oct 2019 at 14:54, Peter Maydell <peter.maydell@linaro.org> wrote:
>>
>> On Thu, 17 Oct 2019 at 07:33, Joel Stanley <joel@jms.id.au> wrote:
>>>
>>> On Wed, 16 Oct 2019 at 09:08, Cédric Le Goater <clg@kaod.org> wrote:
>>>>
>>>> Define the board with 1 GiB of RAM but some boards can have up to 2
>>>> GiB.
>>>>
>>>> Signed-off-by: Cédric Le Goater <clg@kaod.org>
>>>> Reviewed-by: Joel Stanley <joel@jms.id.au>
>>>> ---
>>>>
>>>>  Changes since AST2600 patchset:
>>>>
>>>>  - lowered the RAM size to 1 GiB as it was breaking the tests on some
>>>>    hosts.
>>>
>>> Peter,
>>>
>>> After chatting with Cédric I agree we should merge this patch.
>>>
>>> As it turns out the EVBs have differing amounts of RAM; his has 1GB
>>> while mine has 2GB. So we are not being inaccurate by setting 1GB as
>>> the default here.
>>
>> That's convenient, means we don't have to figure out how to
>> special-case the test infrastructure for it :-)
> 
> This is now OK on the 32-bit boxes, but still fails 'make check'
> on my OSX system:
> 
> manooth$ QTEST_QEMU_BINARY=aarch64-softmmu/qemu-system-aarch64
> tests/qom-test -p /aarch64/qom/ast2600-evb
> /aarch64/qom/ast2600-evb: Broken pipe
> /Users/pm215/src/qemu-for-merges/tests/libqtest.c:149: kill_qemu()
> detected QEMU death from signal 6 (Abort trap: 6)
> Abort trap: 6
> 
> Dropping from the pullreq again :-(

It will be back !


Is it time for me to install an OSX system for dev and tests or is there 
a way to reproduce the issue ? no errors spotted in valgrind.

Thanks,

C.

Re: [PATCH] aspeed: Add an AST2600 eval board
Posted by Peter Maydell 4 years, 6 months ago
On Tue, 22 Oct 2019 at 18:16, Cédric Le Goater <clg@kaod.org> wrote:
> Is it time for me to install an OSX system for dev and tests or is there
> a way to reproduce the issue ? no errors spotted in valgrind.

I dunno. You could have a look to see if you can repro
it with the travis builds. I would investigate but I
don't have time this week given impending softfreeze
and KVM Forum next week.

thanks
-- PMM

Re: [PATCH] aspeed: Add an AST2600 eval board
Posted by Cédric Le Goater 4 years, 6 months ago
On 22/10/2019 19:20, Peter Maydell wrote:
> On Tue, 22 Oct 2019 at 18:16, Cédric Le Goater <clg@kaod.org> wrote:
>> Is it time for me to install an OSX system for dev and tests or is there
>> a way to reproduce the issue ? no errors spotted in valgrind.
> 
> I dunno. You could have a look to see if you can repro
> it with the travis builds. I would investigate but I
> don't have time this week given impending softfreeze
> and KVM Forum next week.

Sure. I will reinstall a Mac I have under OSX.

C.