All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: qemu-devel@nongnu.org, patches@linaro.org
Subject: Re: [Qemu-devel] [PATCH v2] hw/integratorcp: Fix bugs in writes to CM_CTRL system register
Date: Fri, 16 Sep 2011 09:08:50 -0500	[thread overview]
Message-ID: <4E735872.7020602@codemonkey.ws> (raw)
In-Reply-To: <1315838611-28043-1-git-send-email-peter.maydell@linaro.org>

On 09/12/2011 09:43 AM, Peter Maydell wrote:
> Fix a number of bugs in the implementation of writes to the CM_CTRL
> system register:
>   * write to cm_ctrl, not cm_init !
>   * an '&' vs '^' typo meant we would write the inverse of the bits
>   * handling the LED via printf() meant we spew lots of output
>     to stdout when Linux uses the LED as a heartbeat indicator
>   * we would hw_error() if a reset was requested rather than
>     actually resetting
>
> Signed-off-by: Peter Maydell<peter.maydell@linaro.org>

Applied.  Thanks.

Regards,

Anthony Liguori

> ---
> This is just a retransmit rebased following some of Avi's MemoryRegion
> patches landing, no other changes from v1.
>
>   hw/integratorcp.c |   16 +++++++++++-----
>   1 files changed, 11 insertions(+), 5 deletions(-)
>
> diff --git a/hw/integratorcp.c b/hw/integratorcp.c
> index 3c8982e..9a289b4 100644
> --- a/hw/integratorcp.c
> +++ b/hw/integratorcp.c
> @@ -14,6 +14,7 @@
>   #include "arm-misc.h"
>   #include "net.h"
>   #include "exec-memory.h"
> +#include "sysemu.h"
>
>   typedef struct {
>       SysBusDevice busdev;
> @@ -126,15 +127,20 @@ static void integratorcm_do_remap(integratorcm_state *s, int flash)
>   static void integratorcm_set_ctrl(integratorcm_state *s, uint32_t value)
>   {
>       if (value&  8) {
> -        hw_error("Board reset\n");
> +        qemu_system_reset_request();
>       }
> -    if ((s->cm_init ^ value)&  4) {
> +    if ((s->cm_ctrl ^ value)&  4) {
>           integratorcm_do_remap(s, (value&  4) == 0);
>       }
> -    if ((s->cm_init ^ value)&  1) {
> -        printf("Green LED %s\n", (value&  1) ? "on" : "off");
> +    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
> +         * idea because Linux uses the LED as a heartbeat and the output
> +         * will swamp anything else on the terminal.
> +         */
>       }
> -    s->cm_init = (s->cm_init&  ~ 5) | (value ^ 5);
> +    /* Note that the RESET bit [3] always reads as zero */
> +    s->cm_ctrl = (s->cm_ctrl&  ~5) | (value&  5);
>   }
>
>   static void integratorcm_update(integratorcm_state *s)

  reply	other threads:[~2011-09-16 14:10 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-12 14:43 [Qemu-devel] [PATCH v2] hw/integratorcp: Fix bugs in writes to CM_CTRL system register Peter Maydell
2011-09-16 14:08 ` Anthony Liguori [this message]
2011-09-16 14:42   ` Peter Maydell

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=4E735872.7020602@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --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.