All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Cédric Le Goater" <clg@kaod.org>
To: Balamuruhan S <bala24@linux.ibm.com>,
	qemu-devel@nongnu.org, qemu-ppc@nongnu.org
Cc: maddy@linux.vnet.ibm.com, anju@linux.vnet.ibm.com,
	groug@kaod.org, hari@linux.vnet.ibm.com,
	david@gibson.dropbear.id.au
Subject: Re: [Qemu-devel] [PATCH v1 1/3] hw/ppc/pnv_xscom: retrieve homer/occ base address from PBA BARs
Date: Tue, 10 Sep 2019 09:16:19 +0200	[thread overview]
Message-ID: <3733cbe3-41dc-2748-0b1a-80453c26582b@kaod.org> (raw)
In-Reply-To: <20190910071019.16689-2-bala24@linux.ibm.com>

On 10/09/2019 09:10, Balamuruhan S wrote:
> During PowerNV boot skiboot populates the device tree by
> retrieving base address of homer/occ common area from
> PBA BARs and prd ipoll mask by accessing xscom read/write
> accesses.
> 
> Signed-off-by: Balamuruhan S <bala24@linux.ibm.com>

LGTM,

Reviewed-by: Cédric Le Goater <clg@kaod.org>

Thanks,

C.

> ---
>  hw/ppc/pnv_xscom.c   | 34 ++++++++++++++++++++++++++++++----
>  include/hw/ppc/pnv.h | 18 ++++++++++++++++++
>  2 files changed, 48 insertions(+), 4 deletions(-)
> 
> diff --git a/hw/ppc/pnv_xscom.c b/hw/ppc/pnv_xscom.c
> index 67aab98fef..f01d788a65 100644
> --- a/hw/ppc/pnv_xscom.c
> +++ b/hw/ppc/pnv_xscom.c
> @@ -36,6 +36,16 @@
>  #define PRD_P9_IPOLL_REG_MASK           0x000F0033
>  #define PRD_P9_IPOLL_REG_STATUS         0x000F0034
>  
> +/* PBA BARs */
> +#define P8_PBA_BAR0                     0x2013f00
> +#define P8_PBA_BAR2                     0x2013f02
> +#define P8_PBA_BARMASK0                 0x2013f04
> +#define P8_PBA_BARMASK2                 0x2013f06
> +#define P9_PBA_BAR0                     0x5012b00
> +#define P9_PBA_BAR2                     0x5012b02
> +#define P9_PBA_BARMASK0                 0x5012b04
> +#define P9_PBA_BARMASK2                 0x5012b06
> +
>  static void xscom_complete(CPUState *cs, uint64_t hmer_bits)
>  {
>      /*
> @@ -74,6 +84,26 @@ static uint64_t xscom_read_default(PnvChip *chip, uint32_t pcba)
>      case 0x18002:       /* ECID2 */
>          return 0;
>  
> +    case P9_PBA_BAR0:
> +        return PNV9_HOMER_BASE(chip);
> +    case P8_PBA_BAR0:
> +        return PNV_HOMER_BASE(chip);
> +
> +    case P9_PBA_BARMASK0: /* P9 homer region size */
> +        return PNV9_HOMER_SIZE;
> +    case P8_PBA_BARMASK0: /* P8 homer region size */
> +        return PNV_HOMER_SIZE;
> +
> +    case P9_PBA_BAR2: /* P9 occ common area */
> +        return PNV9_OCC_COMMON_AREA(chip);
> +    case P8_PBA_BAR2: /* P8 occ common area */
> +        return PNV_OCC_COMMON_AREA(chip);
> +
> +    case P9_PBA_BARMASK2: /* P9 occ common area size */
> +        return PNV9_OCC_COMMON_AREA_SIZE;
> +    case P8_PBA_BARMASK2: /* P8 occ common area size */
> +        return PNV_OCC_COMMON_AREA_SIZE;
> +
>      case 0x1010c00:     /* PIBAM FIR */
>      case 0x1010c03:     /* PIBAM FIR MASK */
>  
> @@ -93,13 +123,9 @@ static uint64_t xscom_read_default(PnvChip *chip, uint32_t pcba)
>      case 0x2020009:     /* ADU stuff, error register */
>      case 0x202000f:     /* ADU stuff, receive status register*/
>          return 0;
> -    case 0x2013f00:     /* PBA stuff */
>      case 0x2013f01:     /* PBA stuff */
> -    case 0x2013f02:     /* PBA stuff */
>      case 0x2013f03:     /* PBA stuff */
> -    case 0x2013f04:     /* PBA stuff */
>      case 0x2013f05:     /* PBA stuff */
> -    case 0x2013f06:     /* PBA stuff */
>      case 0x2013f07:     /* PBA stuff */
>          return 0;
>      case 0x2013028:     /* CAPP stuff */
> diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h
> index fb123edc4e..63a4b7b6a7 100644
> --- a/include/hw/ppc/pnv.h
> +++ b/include/hw/ppc/pnv.h
> @@ -198,6 +198,16 @@ void pnv_bmc_powerdown(IPMIBmc *bmc);
>  #define PNV_XSCOM_BASE(chip)                                            \
>      (0x0003fc0000000000ull + ((uint64_t)(chip)->chip_id) * PNV_XSCOM_SIZE)
>  
> +#define PNV_OCC_COMMON_AREA_SIZE    0x0000000000700000ull
> +#define PNV_OCC_COMMON_AREA(chip)                                       \
> +    (0x7fff800000ull + ((uint64_t)PNV_CHIP_INDEX(chip) * \
> +                         PNV_OCC_COMMON_AREA_SIZE))
> +
> +#define PNV_HOMER_SIZE              0x0000000000300000ull
> +#define PNV_HOMER_BASE(chip)                                            \
> +    (0x7ffd800000ull + ((uint64_t)PNV_CHIP_INDEX(chip)) * PNV_HOMER_SIZE)
> +
> +
>  /*
>   * XSCOM 0x20109CA defines the ICP BAR:
>   *
> @@ -256,4 +266,12 @@ void pnv_bmc_powerdown(IPMIBmc *bmc);
>  #define PNV9_XSCOM_SIZE              0x0000000400000000ull
>  #define PNV9_XSCOM_BASE(chip)        PNV9_CHIP_BASE(chip, 0x00603fc00000000ull)
>  
> +#define PNV9_OCC_COMMON_AREA_SIZE    0x0000000000700000ull
> +#define PNV9_OCC_COMMON_AREA(chip)                                      \
> +    (0x203fff800000ull + ((uint64_t)PNV_CHIP_INDEX(chip) * \
> +                           PNV9_OCC_COMMON_AREA_SIZE))
> +
> +#define PNV9_HOMER_SIZE              0x0000000000300000ull
> +#define PNV9_HOMER_BASE(chip)                                           \
> +    (0x203ffd800000ull + ((uint64_t)PNV_CHIP_INDEX(chip)) * PNV9_HOMER_SIZE)
>  #endif /* PPC_PNV_H */
> 



  reply	other threads:[~2019-09-10  7:17 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-10  7:10 [Qemu-devel] [PATCH v1 0/3] add Homer/OCC common area emulation for PowerNV Balamuruhan S
2019-09-10  7:10 ` [Qemu-devel] [PATCH v1 1/3] hw/ppc/pnv_xscom: retrieve homer/occ base address from PBA BARs Balamuruhan S
2019-09-10  7:16   ` Cédric Le Goater [this message]
2019-09-10  7:10 ` [Qemu-devel] [PATCH v1 2/3] hw/ppc/pnv_occ: add sram device model for occ common area Balamuruhan S
2019-09-10  7:19   ` Cédric Le Goater
2019-09-10  9:31     ` Balamuruhan S
2019-09-10  9:33       ` Cédric Le Goater
2019-09-10  7:10 ` [Qemu-devel] [PATCH v1 3/3] hw/ppc/pnv_homer: add PowerNV homer device model Balamuruhan S
2019-09-10  7:46   ` Cédric Le Goater
2019-09-10 10:30     ` Balamuruhan S
2019-09-10 11:00       ` Cédric Le Goater
2019-09-10 14:55         ` Balamuruhan S
2019-09-11  0:34   ` David Gibson
2019-09-11  4:47     ` Balamuruhan S
2019-09-10 11:45 ` [Qemu-devel] [PATCH v1 0/3] add Homer/OCC common area emulation for PowerNV Cédric Le Goater
2019-09-10 14:40   ` Balamuruhan S

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=3733cbe3-41dc-2748-0b1a-80453c26582b@kaod.org \
    --to=clg@kaod.org \
    --cc=anju@linux.vnet.ibm.com \
    --cc=bala24@linux.ibm.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=groug@kaod.org \
    --cc=hari@linux.vnet.ibm.com \
    --cc=maddy@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@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.