diff mbox series

hw/timer/m48t59: Move away from old_mmio accessors

Message ID 20180802180602.22047-1-peter.maydell@linaro.org
State Superseded
Headers show
Series hw/timer/m48t59: Move away from old_mmio accessors | expand

Commit Message

Peter Maydell Aug. 2, 2018, 6:06 p.m. UTC
Move the m48t59 device away from using old_mmio MemoryRegionOps
accessors.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

---
Tested with 'make check' and by booting a sparc guest.

 hw/timer/m48t59.c | 59 +++++++++--------------------------------------
 1 file changed, 11 insertions(+), 48 deletions(-)

-- 
2.17.1

Comments

Philippe Mathieu-Daudé Aug. 2, 2018, 7:05 p.m. UTC | #1
On 08/02/2018 03:06 PM, Peter Maydell wrote:
> Move the m48t59 device away from using old_mmio MemoryRegionOps

> accessors.

> 

> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


> ---

> Tested with 'make check' and by booting a sparc guest.

> 

>  hw/timer/m48t59.c | 59 +++++++++--------------------------------------

>  1 file changed, 11 insertions(+), 48 deletions(-)

> 

> diff --git a/hw/timer/m48t59.c b/hw/timer/m48t59.c

> index f2991762ab0..ca3ed445de7 100644

> --- a/hw/timer/m48t59.c

> +++ b/hw/timer/m48t59.c

> @@ -493,66 +493,29 @@ static uint64_t NVRAM_readb(void *opaque, hwaddr addr, unsigned size)

>      return retval;

>  }

>  

> -static void nvram_writeb (void *opaque, hwaddr addr, uint32_t value)

> -{

> -    M48t59State *NVRAM = opaque;

> -

> -    m48t59_write(NVRAM, addr, value & 0xff);

> -}

> -

> -static void nvram_writew (void *opaque, hwaddr addr, uint32_t value)

> -{

> -    M48t59State *NVRAM = opaque;

> -

> -    m48t59_write(NVRAM, addr, (value >> 8) & 0xff);

> -    m48t59_write(NVRAM, addr + 1, value & 0xff);

> -}

> -

> -static void nvram_writel (void *opaque, hwaddr addr, uint32_t value)

> -{

> -    M48t59State *NVRAM = opaque;

> -

> -    m48t59_write(NVRAM, addr, (value >> 24) & 0xff);

> -    m48t59_write(NVRAM, addr + 1, (value >> 16) & 0xff);

> -    m48t59_write(NVRAM, addr + 2, (value >> 8) & 0xff);

> -    m48t59_write(NVRAM, addr + 3, value & 0xff);

> -}

> -

> -static uint32_t nvram_readb (void *opaque, hwaddr addr)

> +static uint64_t nvram_read(void *opaque, hwaddr addr, unsigned size)

>  {

>      M48t59State *NVRAM = opaque;

>  

>      return m48t59_read(NVRAM, addr);

>  }

>  

> -static uint32_t nvram_readw (void *opaque, hwaddr addr)

> +static void nvram_write(void *opaque, hwaddr addr, uint64_t value,

> +                        unsigned size)

>  {

>      M48t59State *NVRAM = opaque;

> -    uint32_t retval;

>  

> -    retval = m48t59_read(NVRAM, addr) << 8;

> -    retval |= m48t59_read(NVRAM, addr + 1);

> -    return retval;

> -}

> -

> -static uint32_t nvram_readl (void *opaque, hwaddr addr)

> -{

> -    M48t59State *NVRAM = opaque;

> -    uint32_t retval;

> -

> -    retval = m48t59_read(NVRAM, addr) << 24;

> -    retval |= m48t59_read(NVRAM, addr + 1) << 16;

> -    retval |= m48t59_read(NVRAM, addr + 2) << 8;

> -    retval |= m48t59_read(NVRAM, addr + 3);

> -    return retval;

> +    return m48t59_write(NVRAM, addr, value);

>  }

>  

>  static const MemoryRegionOps nvram_ops = {

> -    .old_mmio = {

> -        .read = { nvram_readb, nvram_readw, nvram_readl, },

> -        .write = { nvram_writeb, nvram_writew, nvram_writel, },

> -    },

> -    .endianness = DEVICE_NATIVE_ENDIAN,

> +    .read = nvram_read,

> +    .write = nvram_write,

> +    .impl.min_access_size = 1,

> +    .impl.max_access_size = 1,

> +    .valid.min_access_size = 1,

> +    .valid.max_access_size = 4,

> +    .endianness = DEVICE_BIG_ENDIAN,

>  };

>  

>  static const VMStateDescription vmstate_m48t59 = {

>
Mark Cave-Ayland Aug. 3, 2018, 7:22 a.m. UTC | #2
On 02/08/18 19:06, Peter Maydell wrote:

> Move the m48t59 device away from using old_mmio MemoryRegionOps

> accessors.

> 

> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

> ---

> Tested with 'make check' and by booting a sparc guest.

> 

>   hw/timer/m48t59.c | 59 +++++++++--------------------------------------

>   1 file changed, 11 insertions(+), 48 deletions(-)

> 

> diff --git a/hw/timer/m48t59.c b/hw/timer/m48t59.c

> index f2991762ab0..ca3ed445de7 100644

> --- a/hw/timer/m48t59.c

> +++ b/hw/timer/m48t59.c

> @@ -493,66 +493,29 @@ static uint64_t NVRAM_readb(void *opaque, hwaddr addr, unsigned size)

>       return retval;

>   }

>   

> -static void nvram_writeb (void *opaque, hwaddr addr, uint32_t value)

> -{

> -    M48t59State *NVRAM = opaque;

> -

> -    m48t59_write(NVRAM, addr, value & 0xff);

> -}

> -

> -static void nvram_writew (void *opaque, hwaddr addr, uint32_t value)

> -{

> -    M48t59State *NVRAM = opaque;

> -

> -    m48t59_write(NVRAM, addr, (value >> 8) & 0xff);

> -    m48t59_write(NVRAM, addr + 1, value & 0xff);

> -}

> -

> -static void nvram_writel (void *opaque, hwaddr addr, uint32_t value)

> -{

> -    M48t59State *NVRAM = opaque;

> -

> -    m48t59_write(NVRAM, addr, (value >> 24) & 0xff);

> -    m48t59_write(NVRAM, addr + 1, (value >> 16) & 0xff);

> -    m48t59_write(NVRAM, addr + 2, (value >> 8) & 0xff);

> -    m48t59_write(NVRAM, addr + 3, value & 0xff);

> -}

> -

> -static uint32_t nvram_readb (void *opaque, hwaddr addr)

> +static uint64_t nvram_read(void *opaque, hwaddr addr, unsigned size)

>   {

>       M48t59State *NVRAM = opaque;

>   

>       return m48t59_read(NVRAM, addr);

>   }

>   

> -static uint32_t nvram_readw (void *opaque, hwaddr addr)

> +static void nvram_write(void *opaque, hwaddr addr, uint64_t value,

> +                        unsigned size)

>   {

>       M48t59State *NVRAM = opaque;

> -    uint32_t retval;

>   

> -    retval = m48t59_read(NVRAM, addr) << 8;

> -    retval |= m48t59_read(NVRAM, addr + 1);

> -    return retval;

> -}

> -

> -static uint32_t nvram_readl (void *opaque, hwaddr addr)

> -{

> -    M48t59State *NVRAM = opaque;

> -    uint32_t retval;

> -

> -    retval = m48t59_read(NVRAM, addr) << 24;

> -    retval |= m48t59_read(NVRAM, addr + 1) << 16;

> -    retval |= m48t59_read(NVRAM, addr + 2) << 8;

> -    retval |= m48t59_read(NVRAM, addr + 3);

> -    return retval;

> +    return m48t59_write(NVRAM, addr, value);

>   }

>   

>   static const MemoryRegionOps nvram_ops = {

> -    .old_mmio = {

> -        .read = { nvram_readb, nvram_readw, nvram_readl, },

> -        .write = { nvram_writeb, nvram_writew, nvram_writel, },

> -    },

> -    .endianness = DEVICE_NATIVE_ENDIAN,

> +    .read = nvram_read,

> +    .write = nvram_write,

> +    .impl.min_access_size = 1,

> +    .impl.max_access_size = 1,

> +    .valid.min_access_size = 1,

> +    .valid.max_access_size = 4,

> +    .endianness = DEVICE_BIG_ENDIAN,

>   };

>   

>   static const VMStateDescription vmstate_m48t59 = {


Looks good to me after some quick boot tests on SPARC, SPARC64 and 40p, so:

Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>



ATB,

Mark.
Peter Maydell Aug. 20, 2018, 9:52 a.m. UTC | #3
On 3 August 2018 at 08:22, Mark Cave-Ayland
<mark.cave-ayland@ilande.co.uk> wrote:
> On 02/08/18 19:06, Peter Maydell wrote:

>

>> Move the m48t59 device away from using old_mmio MemoryRegionOps

>> accessors.

>>

>> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

>> ---


>

> Looks good to me after some quick boot tests on SPARC, SPARC64 and 40p, so:

>

> Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>


Thanks. I'll put this in via target-arm unless somebody has a
better route for it.

-- PMM
diff mbox series

Patch

diff --git a/hw/timer/m48t59.c b/hw/timer/m48t59.c
index f2991762ab0..ca3ed445de7 100644
--- a/hw/timer/m48t59.c
+++ b/hw/timer/m48t59.c
@@ -493,66 +493,29 @@  static uint64_t NVRAM_readb(void *opaque, hwaddr addr, unsigned size)
     return retval;
 }
 
-static void nvram_writeb (void *opaque, hwaddr addr, uint32_t value)
-{
-    M48t59State *NVRAM = opaque;
-
-    m48t59_write(NVRAM, addr, value & 0xff);
-}
-
-static void nvram_writew (void *opaque, hwaddr addr, uint32_t value)
-{
-    M48t59State *NVRAM = opaque;
-
-    m48t59_write(NVRAM, addr, (value >> 8) & 0xff);
-    m48t59_write(NVRAM, addr + 1, value & 0xff);
-}
-
-static void nvram_writel (void *opaque, hwaddr addr, uint32_t value)
-{
-    M48t59State *NVRAM = opaque;
-
-    m48t59_write(NVRAM, addr, (value >> 24) & 0xff);
-    m48t59_write(NVRAM, addr + 1, (value >> 16) & 0xff);
-    m48t59_write(NVRAM, addr + 2, (value >> 8) & 0xff);
-    m48t59_write(NVRAM, addr + 3, value & 0xff);
-}
-
-static uint32_t nvram_readb (void *opaque, hwaddr addr)
+static uint64_t nvram_read(void *opaque, hwaddr addr, unsigned size)
 {
     M48t59State *NVRAM = opaque;
 
     return m48t59_read(NVRAM, addr);
 }
 
-static uint32_t nvram_readw (void *opaque, hwaddr addr)
+static void nvram_write(void *opaque, hwaddr addr, uint64_t value,
+                        unsigned size)
 {
     M48t59State *NVRAM = opaque;
-    uint32_t retval;
 
-    retval = m48t59_read(NVRAM, addr) << 8;
-    retval |= m48t59_read(NVRAM, addr + 1);
-    return retval;
-}
-
-static uint32_t nvram_readl (void *opaque, hwaddr addr)
-{
-    M48t59State *NVRAM = opaque;
-    uint32_t retval;
-
-    retval = m48t59_read(NVRAM, addr) << 24;
-    retval |= m48t59_read(NVRAM, addr + 1) << 16;
-    retval |= m48t59_read(NVRAM, addr + 2) << 8;
-    retval |= m48t59_read(NVRAM, addr + 3);
-    return retval;
+    return m48t59_write(NVRAM, addr, value);
 }
 
 static const MemoryRegionOps nvram_ops = {
-    .old_mmio = {
-        .read = { nvram_readb, nvram_readw, nvram_readl, },
-        .write = { nvram_writeb, nvram_writew, nvram_writel, },
-    },
-    .endianness = DEVICE_NATIVE_ENDIAN,
+    .read = nvram_read,
+    .write = nvram_write,
+    .impl.min_access_size = 1,
+    .impl.max_access_size = 1,
+    .valid.min_access_size = 1,
+    .valid.max_access_size = 4,
+    .endianness = DEVICE_BIG_ENDIAN,
 };
 
 static const VMStateDescription vmstate_m48t59 = {