On Wed, 19 Feb 2025 at 18:46, Hao Wu <wuhao...@google.com> wrote:
>
> This allows different FIUs to have different flash sizes, useful
> in NPCM8XX which has multiple different sized FIU modules.
>
> Reviewed-by: Peter Maydell <peter.mayd...@linaro.org>
> Signed-off-by: Hao Wu <wuhao...@google.com>
> Reviewed-by: Philippe Mathieu-Daude <phi...@linaro.org>

> @@ -543,6 +554,7 @@ static const VMStateDescription vmstate_npcm7xx_fiu = {
>
>  static const Property npcm7xx_fiu_properties[] = {
>      DEFINE_PROP_INT32("cs-count", NPCM7xxFIUState, cs_count, 0),
> +    DEFINE_PROP_SIZE("flash-size", NPCM7xxFIUState, flash_size, 0),
>  };
>
>  static void npcm7xx_fiu_class_init(ObjectClass *klass, void *data)
> diff --git a/include/hw/ssi/npcm7xx_fiu.h b/include/hw/ssi/npcm7xx_fiu.h
> index a3a1704289..1785ea16f4 100644
> --- a/include/hw/ssi/npcm7xx_fiu.h
> +++ b/include/hw/ssi/npcm7xx_fiu.h
> @@ -60,6 +60,7 @@ struct NPCM7xxFIUState {
>      int32_t cs_count;
>      int32_t active_cs;
>      qemu_irq *cs_lines;
> +    size_t flash_size;
>      NPCM7xxFIUFlash *flash;
>
>      SSIBus *spi;

The field for a DEFINE_PROP_SIZE must be a uint64_t, or it
won't build on 32-bit hosts:

In file included from ../include/qemu/osdep.h:53,
                 from ../hw/ssi/npcm7xx_fiu.c:17:
../include/qemu/compiler.h:65:35: error: invalid operands to binary -
(have ‘uint64_t *’ {aka ‘long long unsigned int *’} and ‘size_t *’
{aka ‘unsigned int *’})
65 | #define type_check(t1,t2) ((t1*)0 - (t2*)0)
   |                                   ^
../include/hw/qdev-properties.h:71:15: note: in expansion of macro ‘type_check’
71 | + type_check(_type, typeof_field(_state, _field)), \
   |   ^~~~~~~~~~
../include/hw/qdev-properties.h:90:5: note: in expansion of macro ‘DEFINE_PROP’
90 | DEFINE_PROP(_name, _state, _field, _prop, _type, \
   | ^~~~~~~~~~~
../include/hw/qdev-properties.h:166:5: note: in expansion of macro
‘DEFINE_PROP_UNSIGNED’
166 | DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_size, uint64_t)
    | ^~~~~~~~~~~~~~~~~~~~
../hw/ssi/npcm7xx_fiu.c:557:5: note: in expansion of macro ‘DEFINE_PROP_SIZE’
557 | DEFINE_PROP_SIZE("flash-size", NPCM7xxFIUState, flash_size, 0),
    | ^~~~~~~~~~~~~~~~

-- PMM

Reply via email to