All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rashmica Gupta <rashmica.g@gmail.com>
To: "Cédric Le Goater" <clg@kaod.org>,
	"James Feist" <james.feist@linux.intel.com>,
	"Joel Stanley" <joel@jms.id.au>,
	"OpenBMC Maillist" <openbmc@lists.ozlabs.org>
Subject: Re: GPIO state in qemu
Date: Wed, 11 Sep 2019 11:12:34 +1000	[thread overview]
Message-ID: <a9c7851e4cd92bb2de0fb7ec8eccf2f25f652c1a.camel@gmail.com> (raw)
In-Reply-To: <60430dd8-e3c5-e020-2ff7-cb4c536e20a0@kaod.org>

On Mon, 2019-09-09 at 19:02 +0200, Cédric Le Goater wrote:
> On 09/09/2019 18:20, James Feist wrote:
> > On 9/6/19 11:05 AM, Joel Stanley wrote:
> > > At the osfc hackathon today James and I were talking about Qemu's
> > > new support for modelling GPIOs. Here's some documentation on how
> > > it can be used.
> > > 
> > > To set a pin's state in the monitor:
> > > 
> > > qom-set gpio gpioA0 true
> > > 
> > > To do the equivalent in code:
> > > 
> > > object_property_set_bool(OBJECT(&s->gpio), true, "gpioA0",
> > > &error_abort);
> > 
> > I'm trying to use object_property_set_bool in hw/arm/aspeed.c in an
> > i2c_init block and I'm noticing by the time uboot is reached that
> > the registers are reset back to the default. 
> 
> These routines are called before the machine and devices are reseted.
> 
> > If I use qom-set it seems to work correctly. 
> 
> The machine has been reseted.
> 
> > Where is the correct place to put the object_property_set_bool so
> > that it doesn't get reset by the time it's ready to be read? Does
> > AspeedBoardConfig need a gpio_init as well as an i2c_init?
>  
> we would need to change the default reset value in the reset handler
> of the GPIO device model : aspeed_gpio_reset(). We don't have a way 
> to set default values yet, all 0s for now.
> 
> Rashmica,
> 
> Would it be complex to add a set of default values with which we 
> could memset the ->sets array in the reset handler() like we do 
> for SCU ? 
>

I think it should be pretty straightforward. Do we want one statically
defined set of default values per SoC version?

> Having a different set of default values per machine would require 
> a second set of properties under AspeedGPIOState and some slight 
> rework of aspeed_gpio_get/set_pin.
> 

Why would it require rework of get/set pin?

> Didn't you have a patch for reset tolerant values some time ago ? 
>  

Yes, but it was a bit hacky and I didn't have a good way to test it. We
need to share a property with the wdt and differentiate between a SoC
reset, full system reset and a full wdt reset. Iirc we only use the
reset tolerant values for a SoC reset? I assume we would want to set
the default values for all three types of reset?



> Thanks,
> 
> C.

  reply	other threads:[~2019-09-11  1:12 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-06 18:05 GPIO state in qemu Joel Stanley
2019-09-09 16:20 ` James Feist
2019-09-09 17:02   ` Cédric Le Goater
2019-09-11  1:12     ` Rashmica Gupta [this message]
2019-09-11 16:13       ` Cédric Le Goater

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=a9c7851e4cd92bb2de0fb7ec8eccf2f25f652c1a.camel@gmail.com \
    --to=rashmica.g@gmail.com \
    --cc=clg@kaod.org \
    --cc=james.feist@linux.intel.com \
    --cc=joel@jms.id.au \
    --cc=openbmc@lists.ozlabs.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.