All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sai Pavan Boddu <saipava@xilinx.com>
To: "Cédric Le Goater" <clg@kaod.org>,
	"Markus Armbruster" <armbru@redhat.com>,
	"Kevin Wolf" <kwolf@redhat.com>, "Max Reitz" <mreitz@redhat.com>,
	"Vladimir Sementsov-Ogievskiy" <vsementsov@virtuozzo.com>,
	"Eric Blake" <eblake@redhat.com>, "Joel Stanley" <joel@jms.id.au>,
	"Vincent Palatin" <vpalatin@chromium.org>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	"Thomas Huth" <thuth@redhat.com>,
	"Stefan Hajnoczi" <stefanha@redhat.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Alistair Francis" <alistair.francis@wdc.com>,
	"Edgar Iglesias" <edgari@xilinx.com>,
	"Luc Michel" <luc.michel@greensocs.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"qemu-block@nongnu.org" <qemu-block@nongnu.org>
Subject: RE: [PATCH v3 02/21] sd: emmc: Add support for eMMC cards
Date: Wed, 3 Mar 2021 03:57:50 +0000	[thread overview]
Message-ID: <BY5PR02MB677285688FE35B025718687BCA989@BY5PR02MB6772.namprd02.prod.outlook.com> (raw)
In-Reply-To: <8485f4b6-376a-9f2e-aa05-b7fcef84c790@kaod.org>

Hi Cedric,
> -----Original Message-----
> From: Cédric Le Goater <clg@kaod.org>
> Sent: Monday, March 1, 2021 4:32 PM
> To: Sai Pavan Boddu <saipava@xilinx.com>; Markus Armbruster
> <armbru@redhat.com>; Kevin Wolf <kwolf@redhat.com>; Max Reitz
> <mreitz@redhat.com>; Vladimir Sementsov-Ogievskiy
> <vsementsov@virtuozzo.com>; Eric Blake <eblake@redhat.com>; Joel Stanley
> <joel@jms.id.au>; Vincent Palatin <vpalatin@chromium.org>; Dr. David Alan
> Gilbert <dgilbert@redhat.com>; Thomas Huth <thuth@redhat.com>; Stefan
> Hajnoczi <stefanha@redhat.com>; Peter Maydell <peter.maydell@linaro.org>;
> Alistair Francis <alistair.francis@wdc.com>; Edgar Iglesias <edgari@xilinx.com>;
> Luc Michel <luc.michel@greensocs.com>; Paolo Bonzini
> <pbonzini@redhat.com>
> Cc: qemu-block@nongnu.org; qemu-devel@nongnu.org; Sai Pavan Boddu
> <saipava@xilinx.com>
> Subject: Re: [PATCH v3 02/21] sd: emmc: Add support for eMMC cards
> 
> On 2/28/21 8:33 PM, Sai Pavan Boddu wrote:
> > Add eMMC device built on top of SD card.
> >
> > Signed-off-by: Sai Pavan Boddu <sai.pavan.boddu@xilinx.com>
> > ---
> >  include/hw/sd/sd.h |  2 ++
> >  hw/sd/sd.c         | 20 ++++++++++++++++++++
> >  2 files changed, 22 insertions(+)
> >
> > diff --git a/include/hw/sd/sd.h b/include/hw/sd/sd.h index
> > 05ef9b7..b402dad 100644
> > --- a/include/hw/sd/sd.h
> > +++ b/include/hw/sd/sd.h
> > @@ -90,6 +90,8 @@ typedef struct {
> >  } SDRequest;
> >
> >
> > +#define TYPE_EMMC "emmc"
> > +OBJECT_DECLARE_SIMPLE_TYPE(EMMCState, EMMC)
> >  #define TYPE_SD_CARD "sd-card"
> >  OBJECT_DECLARE_TYPE(SDState, SDCardClass, SD_CARD)
> >
> > diff --git a/hw/sd/sd.c b/hw/sd/sd.c
> > index 74b9162..a23af6d 100644
> > --- a/hw/sd/sd.c
> > +++ b/hw/sd/sd.c
> > @@ -108,6 +108,7 @@ struct SDState {
> >      uint8_t spec_version;
> >      BlockBackend *blk;
> >      bool spi;
> > +    bool emmc;
> >
> >      /* Runtime changeables */
> >
> > @@ -143,6 +144,10 @@ struct SDState {
> >      bool cmd_line;
> >  };
> >
> > +struct EMMCState {
> > +    SDState parent;
> > +};
> > +
> >  static void sd_realize(DeviceState *dev, Error **errp);
> >
> >  static const char *sd_state_name(enum SDCardStates state) @@ -2105,6
> > +2110,13 @@ static void sd_instance_init(Object *obj)
> >      sd->ocr_power_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL,
> > sd_ocr_powerup, sd);  }
> >
> > +static void emmc_instance_init(Object *obj) {
> > +    SDState *sd = SD_CARD(obj);
> > +
> > +    sd->emmc = true;
> > +}
> I think field 'emmc' would fit better in SDCardClass since it is a device constant.
> You should not need 'struct EMMCState'. So something like below.
> Then you can add handlers for specific emmc commands.
> 
> Thanks,
> 
> C.
> 
> 
> diff --git a/include/hw/sd/sd.h b/include/hw/sd/sd.h index
> 47360ba4ee98..80e7cd526a57 100644
> --- a/include/hw/sd/sd.h
> +++ b/include/hw/sd/sd.h
> @@ -93,6 +93,8 @@ typedef struct {
>  #define TYPE_SD_CARD "sd-card"
>  OBJECT_DECLARE_TYPE(SDState, SDCardClass, SD_CARD)
> 
> +#define TYPE_EMMC "emmc"
> +
>  struct SDCardClass {
>      /*< private >*/
>      DeviceClass parent_class;
> @@ -124,6 +126,8 @@ struct SDCardClass {
>      void (*enable)(SDState *sd, bool enable);
>      bool (*get_inserted)(SDState *sd);
>      bool (*get_readonly)(SDState *sd);
> +
> +    bool emmc;
>  };
> 
>  #define TYPE_SD_BUS "sd-bus"
> diff --git a/hw/sd/sd.c b/hw/sd/sd.c
> index 660026f2a667..95608f11b36e 100644
> --- a/hw/sd/sd.c
> +++ b/hw/sd/sd.c
> @@ -2447,9 +2447,24 @@ static const TypeInfo sd_info = {
>      .instance_finalize = sd_instance_finalize,  };
> 
> +static void emmc_class_init(ObjectClass *klass, void *data) {
> +    SDCardClass *sc = SD_CARD_CLASS(klass);
> +
> +    sc->emmc = true;
> +}
> +
> +static const TypeInfo emmc_info = {
> +    .name = TYPE_EMMC,
> +    .parent = TYPE_SD_CARD,
> +    .instance_size = sizeof(SDState),
> +    .class_init = emmc_class_init,
> +};
> +
[Sai Pavan Boddu] Yes, I see your point. Let me try, I was preferring a simpler approach just to not disturb the code much but lets see how this workout.

Thanks,
Sai Pavan
>  static void sd_register_types(void)
>  {
>      type_register_static(&sd_info);
> +    type_register_static(&emmc_info);
>  }
> 
>  type_init(sd_register_types)


  reply	other threads:[~2021-03-03  3:59 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-28 19:33 [PATCH v3 00/21] eMMC support Sai Pavan Boddu
2021-02-28 19:33 ` [PATCH v3 01/21] sd: sd: Remove usage of tabs in the file Sai Pavan Boddu
2021-02-28 19:33 ` [PATCH v3 02/21] sd: emmc: Add support for eMMC cards Sai Pavan Boddu
2021-03-01 11:02   ` Cédric Le Goater
2021-03-03  3:57     ` Sai Pavan Boddu [this message]
2021-02-28 19:33 ` [PATCH v3 03/21] sd: emmc: Update SET_RELATIVE_ADDR command Sai Pavan Boddu
2021-02-28 19:33 ` [PATCH v3 04/21] sd: emmc: update OCR fields for eMMC Sai Pavan Boddu
2021-03-01 11:04   ` Cédric Le Goater
2021-02-28 19:33 ` [PATCH v3 05/21] sd: emmc: Add support for EXT_CSD & CSD " Sai Pavan Boddu
2021-03-01 11:08   ` Cédric Le Goater
2021-02-28 19:33 ` [PATCH v3 06/21] sd: emmc: Update CMD8 to send EXT_CSD register Sai Pavan Boddu
2021-03-01 12:02   ` Cédric Le Goater
2021-02-28 19:33 ` [PATCH v3 07/21] sd: sdmmc-internal: Add command string for SEND_OP_CMD Sai Pavan Boddu
2021-03-01 12:03   ` Cédric Le Goater
2021-02-28 19:33 ` [PATCH v3 08/21] sd: emmc: Dont not update CARD_CAPACITY for eMMC cards Sai Pavan Boddu
2021-02-28 19:33 ` [PATCH v3 09/21] sd: emmc: Update CMD1 definition for eMMC Sai Pavan Boddu
2021-02-28 19:33 ` [PATCH v3 10/21] sd: emmc: support idle state in CMD2 Sai Pavan Boddu
2021-02-28 19:33 ` [PATCH v3 11/21] sd: emmc: Add mmc switch function support Sai Pavan Boddu
2021-02-28 19:33 ` [PATCH v3 12/21] sd: emmc: add CMD21 tuning sequence Sai Pavan Boddu
2021-03-01 10:42   ` Dr. David Alan Gilbert
2021-03-03  3:53     ` Sai Pavan Boddu
2021-03-03  9:15       ` Dr. David Alan Gilbert
2021-02-28 19:33 ` [PATCH v3 13/21] sd: emmc: Make ACMD41 illegal for mmc Sai Pavan Boddu
2021-02-28 19:33 ` [PATCH v3 14/21] sd: emmc: Add support for emmc erase Sai Pavan Boddu
2021-02-28 19:33 ` [PATCH v3 15/21] sd: emmc: Update CID structure for eMMC Sai Pavan Boddu
2021-03-01 12:09   ` Cédric Le Goater
2021-02-28 19:33 ` [PATCH v3 16/21] sd: emmc: Support boot area in emmc image Sai Pavan Boddu
2021-03-01 12:07   ` Cédric Le Goater
2021-02-28 19:33 ` [PATCH v3 17/21] sd: emmc: Subtract bootarea size from blk Sai Pavan Boddu
2021-02-28 19:33 ` [PATCH v3 18/21] sd: sdhci: Support eMMC devices Sai Pavan Boddu
2021-02-28 19:33 ` [PATCH v3 19/21] arm: xlnx-versal: Add emmc to versal Sai Pavan Boddu
2021-02-28 19:33 ` [PATCH v3 20/21] docs: devel: emmc: Add a doc for emmc card emulation Sai Pavan Boddu
2021-02-28 19:33 ` [PATCH v3 21/21] docs: arm: xlnx-versal-virt: Add eMMC support documentation Sai Pavan Boddu
2021-03-02  9:52 ` [PATCH v3 00/21] eMMC support 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=BY5PR02MB677285688FE35B025718687BCA989@BY5PR02MB6772.namprd02.prod.outlook.com \
    --to=saipava@xilinx.com \
    --cc=alistair.francis@wdc.com \
    --cc=armbru@redhat.com \
    --cc=clg@kaod.org \
    --cc=dgilbert@redhat.com \
    --cc=eblake@redhat.com \
    --cc=edgari@xilinx.com \
    --cc=joel@jms.id.au \
    --cc=kwolf@redhat.com \
    --cc=luc.michel@greensocs.com \
    --cc=mreitz@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=thuth@redhat.com \
    --cc=vpalatin@chromium.org \
    --cc=vsementsov@virtuozzo.com \
    /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.