All of lore.kernel.org
 help / color / mirror / Atom feed
From: Conor Dooley <conor@kernel.org>
To: Bin Meng <bin.meng@windriver.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Alistair Francis <alistair.francis@wdc.com>
Cc: "Philippe Mathieu-Daudé" <philmd@linaro.org>,
	qemu-riscv@nongnu.org, qemu-devel@nongnu.org,
	"Conor Dooley" <conor.dooley@microchip.com>
Subject: [PATCH v3 0/3] Add (more) missing PolarFire SoC io regions
Date: Thu, 17 Nov 2022 22:55:15 +0000	[thread overview]
Message-ID: <20221117225518.4102575-1-conor@kernel.org> (raw)

From: Conor Dooley <conor.dooley@microchip.com>

Hey all,
Apart from DDR (see [1]), these should be the last bits needed to get
recent Linux kernels booting again for Icicle/PolarFire SoC. Previously,
I had been disabling the hwrng and PCI but I keep forgetting that is
required and decided to fix that.

I'm not entirely sure if I have done some sort of no-no thing by
registering the same interrupt with both the IOSCB and SYSREG regions.
The interrupt is raised after the system controller handles a service
via the mailbox. The mailbox's status, control and mailbox registers
are all part of the IOSCB region. It's cleared by a write to a register
in the SYSREG region.
Since my goal here is to add the regions/peripherals without actually
implementing them so that Linux etc, I'm just raising an interrupt
once a guest requests a service & reporting a status indicating that the
service request failed.

Thanks,
Conor.

1 - https://lore.kernel.org/all/Y2+dUCpd8OP52%2FDJ@spud/

Changes since v2:
- fix the actual bits in the register used for the service return
  status
- remove a duplicate irq_lower() in the sysreg bits of patch 3
- move the irq raise to a write function, raising it in the read one was
  causing the irq to get raised twice by the linux driver that works
  properly with the actual hardware. oops.

Conor Dooley (3):
  hw/misc: pfsoc: add fabric clocks to ioscb
  hw/riscv: pfsoc: add missing FICs as unimplemented
  hw/{misc,riscv}: pfsoc: add system controller as unimplemented

 hw/misc/mchp_pfsoc_ioscb.c          |  78 +++++++++++++++++-
 hw/misc/mchp_pfsoc_sysreg.c         |  18 ++++-
 hw/riscv/microchip_pfsoc.c          | 121 ++++++++++++++++------------
 include/hw/misc/mchp_pfsoc_ioscb.h  |   4 +
 include/hw/misc/mchp_pfsoc_sysreg.h |   1 +
 include/hw/riscv/microchip_pfsoc.h  |   3 +
 6 files changed, 167 insertions(+), 58 deletions(-)

-- 
2.37.2



             reply	other threads:[~2022-11-17 22:56 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-17 22:55 Conor Dooley [this message]
2022-11-17 22:55 ` [PATCH v3 1/3] hw/misc: pfsoc: add fabric clocks to ioscb Conor Dooley
2022-11-17 22:55 ` [PATCH v3 2/3] hw/riscv: pfsoc: add missing FICs as unimplemented Conor Dooley
2022-11-17 22:55 ` [PATCH v3 3/3] hw/{misc, riscv}: pfsoc: add system controller " Conor Dooley
2022-12-05 22:49   ` Alistair Francis
2022-12-06  6:57 ` [PATCH v3 0/3] Add (more) missing PolarFire SoC io regions Alistair Francis

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=20221117225518.4102575-1-conor@kernel.org \
    --to=conor@kernel.org \
    --cc=alistair.francis@wdc.com \
    --cc=bin.meng@windriver.com \
    --cc=conor.dooley@microchip.com \
    --cc=palmer@dabbelt.com \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-riscv@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.