All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Andreas Färber" <afaerber@suse.de>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: "Benoît Canet" <benoit.canet@gmail.com>,
	qemu-devel@nongnu.org, patches@linaro.org,
	"Avi Kivity" <avi@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v4 2/2] hw/integratorcp: Simplify flash remap code
Date: Sat, 07 Jan 2012 05:40:50 +0100	[thread overview]
Message-ID: <4F07CCD2.4040003@suse.de> (raw)
In-Reply-To: <1325876308-28097-3-git-send-email-peter.maydell@linaro.org>

Am 06.01.2012 19:58, schrieb Peter Maydell:
> Use the new memory mutator API to simplify the flash remap code;
> this allows us to drop the flash_mapped flag.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Reviewed-by: Andreas Färber <afaerber@suse.de>

I noticed you're dropping a comment about tlb_flush(). Is that because
it was dead code, or does the Memory API take care of it for us?
(I assume the former because memory_region_set_enabled() does not take a
CPUState* to operate on.)

Andreas

> ---
>  hw/integratorcp.c |   26 +++++++-------------------
>  1 files changed, 7 insertions(+), 19 deletions(-)
> 
> diff --git a/hw/integratorcp.c b/hw/integratorcp.c
> index d9d8da3..e5712fc 100644
> --- a/hw/integratorcp.c
> +++ b/hw/integratorcp.c
> @@ -21,7 +21,6 @@ typedef struct {
>      MemoryRegion iomem;
>      uint32_t memsz;
>      MemoryRegion flash;
> -    bool flash_mapped;
>      uint32_t cm_osc;
>      uint32_t cm_ctrl;
>      uint32_t cm_lock;
> @@ -110,20 +109,12 @@ static uint64_t integratorcm_read(void *opaque, target_phys_addr_t offset,
>      }
>  }
>  
> -static void integratorcm_do_remap(integratorcm_state *s, int flash)
> +static void integratorcm_do_remap(integratorcm_state *s)
>  {
> -    if (!flash) {
> -        if (s->flash_mapped) {
> -            sysbus_del_memory(&s->busdev, &s->flash);
> -            s->flash_mapped = false;
> -        }
> -    } else {
> -        if (!s->flash_mapped) {
> -            sysbus_add_memory_overlap(&s->busdev, 0, &s->flash, 1);
> -            s->flash_mapped = true;
> -        }
> -    }
> -    //??? tlb_flush (cpu_single_env, 1);
> +    /* Sync memory region state with CM_CTRL REMAP bit:
> +     * bit 0 => flash at address 0; bit 1 => RAM
> +     */
> +    memory_region_set_enabled(&s->flash, !(s->cm_ctrl & 4));
>  }
>  
>  static void integratorcm_set_ctrl(integratorcm_state *s, uint32_t value)
> @@ -131,9 +122,6 @@ static void integratorcm_set_ctrl(integratorcm_state *s, uint32_t value)
>      if (value & 8) {
>          qemu_system_reset_request();
>      }
> -    if ((s->cm_ctrl ^ value) & 4) {
> -        integratorcm_do_remap(s, (value & 4) == 0);
> -    }
>      if ((s->cm_ctrl ^ value) & 1) {
>          /* (value & 1) != 0 means the green "MISC LED" is lit.
>           * We don't have any nice place to display LEDs. printf is a bad
> @@ -143,6 +131,7 @@ static void integratorcm_set_ctrl(integratorcm_state *s, uint32_t value)
>      }
>      /* Note that the RESET bit [3] always reads as zero */
>      s->cm_ctrl = (s->cm_ctrl & ~5) | (value & 5);
> +    integratorcm_do_remap(s);
>  }
>  
>  static void integratorcm_update(integratorcm_state *s)
> @@ -263,13 +252,12 @@ static int integratorcm_init(SysBusDevice *dev)
>      s->cm_init = 0x00000112;
>      memory_region_init_ram(&s->flash, "integrator.flash", 0x100000);
>      vmstate_register_ram_global(&s->flash);
> -    s->flash_mapped = false;
>  
>      memory_region_init_io(&s->iomem, &integratorcm_ops, s,
>                            "integratorcm", 0x00800000);
>      sysbus_init_mmio(dev, &s->iomem);
>  
> -    integratorcm_do_remap(s, 1);
> +    integratorcm_do_remap(s);
>      /* ??? Save/restore.  */
>      return 0;
>  }

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

  reply	other threads:[~2012-01-07  4:42 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-06 18:58 [Qemu-devel] [PATCH v4 0/2] integratorcp: fix and simplify flash remap code Peter Maydell
2012-01-06 18:58 ` [Qemu-devel] [PATCH v4 1/2] hw/integratorcp: Fix sense of REMAP bit Peter Maydell
2012-01-10 17:35   ` andrzej zaborowski
2012-01-06 18:58 ` [Qemu-devel] [PATCH v4 2/2] hw/integratorcp: Simplify flash remap code Peter Maydell
2012-01-07  4:40   ` Andreas Färber [this message]
2012-01-07 16:09     ` Peter Maydell
2012-01-08 11:16       ` Avi Kivity
2012-01-08 11:19         ` Andreas Färber
2012-01-08 11:22           ` Avi Kivity

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F07CCD2.4040003@suse.de \
    --to=afaerber@suse.de \
    --cc=avi@redhat.com \
    --cc=benoit.canet@gmail.com \
    --cc=patches@linaro.org \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.