Message ID | 20210511002040.802226-2-peter.hilber@opensynergy.com |
---|---|
State | New |
Headers | show |
Series | [RFC,v3,01/12] firmware: arm_scmi, smccc, mailbox: Make shmem based transports optional | expand |
On Mon, May 10, 2021 at 7:22 PM Peter Hilber <peter.hilber@opensynergy.com> wrote: ..... > --- a/drivers/mailbox/Kconfig > +++ b/drivers/mailbox/Kconfig > @@ -1,6 +1,7 @@ > # SPDX-License-Identifier: GPL-2.0-only > menuconfig MAILBOX > bool "Mailbox Hardware Support" > + select ARM_SCMI_HAVE_SHMEM > help > Mailbox is a framework to control hardware communication between > on-chip processors through queued messages and interrupt driven > Isn't this too generic? Not all platforms, with a mailbox controller, use SCMI as the protocol. thnx.
On Sun, Jun 20, 2021 at 11:09:21PM -0500, Jassi Brar wrote: > On Mon, May 10, 2021 at 7:22 PM Peter Hilber > <peter.hilber@opensynergy.com> wrote: > > ..... > > > --- a/drivers/mailbox/Kconfig > > +++ b/drivers/mailbox/Kconfig > > @@ -1,6 +1,7 @@ > > # SPDX-License-Identifier: GPL-2.0-only > > menuconfig MAILBOX > > bool "Mailbox Hardware Support" > > + select ARM_SCMI_HAVE_SHMEM > > help > > Mailbox is a framework to control hardware communication between > > on-chip processors through queued messages and interrupt driven > > > Isn't this too generic? > Not all platforms, with a mailbox controller, use SCMI as the protocol. > Yikes! I agree Jassi, this looks super hack. -- Regards, Sudeep
Hi, On Mon, Jun 21, 2021 at 09:54:31AM +0100, Sudeep Holla wrote: > On Sun, Jun 20, 2021 at 11:09:21PM -0500, Jassi Brar wrote: > > On Mon, May 10, 2021 at 7:22 PM Peter Hilber > > <peter.hilber@opensynergy.com> wrote: > > > > ..... > > > > > --- a/drivers/mailbox/Kconfig > > > +++ b/drivers/mailbox/Kconfig > > > @@ -1,6 +1,7 @@ > > > # SPDX-License-Identifier: GPL-2.0-only > > > menuconfig MAILBOX > > > bool "Mailbox Hardware Support" > > > + select ARM_SCMI_HAVE_SHMEM > > > help > > > Mailbox is a framework to control hardware communication between > > > on-chip processors through queued messages and interrupt driven > > > > > Isn't this too generic? > > Not all platforms, with a mailbox controller, use SCMI as the protocol. > > > > Yikes! I agree Jassi, this looks super hack. > Yes indeed, I have still to rework this part of the series. (@Jassi: I'm reworking this series starting from the work done by Peter up to V3, since it needed some core SCMI transport rework to ease implememtation of virtio-scmi transport) Thanks, Cristian > -- > Regards, > Sudeep
diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig index db0ea2d2d75a..80ff49dadf35 100644 --- a/drivers/firmware/Kconfig +++ b/drivers/firmware/Kconfig @@ -9,7 +9,7 @@ menu "Firmware Drivers" config ARM_SCMI_PROTOCOL tristate "ARM System Control and Management Interface (SCMI) Message Protocol" depends on ARM || ARM64 || COMPILE_TEST - depends on MAILBOX + depends on ARM_SCMI_HAVE_SHMEM help ARM System Control and Management Interface (SCMI) protocol is a set of operating system-independent software interfaces that are @@ -27,6 +27,12 @@ config ARM_SCMI_PROTOCOL This protocol library provides interface for all the client drivers making use of the features offered by the SCMI. +config ARM_SCMI_HAVE_SHMEM + bool + help + This declares whether a shared memory based transport for SCMI is + available. + config ARM_SCMI_POWER_DOMAIN tristate "SCMI power domain driver" depends on ARM_SCMI_PROTOCOL || (COMPILE_TEST && OF) diff --git a/drivers/firmware/arm_scmi/Makefile b/drivers/firmware/arm_scmi/Makefile index 6a2ef63306d6..5a2d4c32e0ae 100644 --- a/drivers/firmware/arm_scmi/Makefile +++ b/drivers/firmware/arm_scmi/Makefile @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0-only scmi-bus-y = bus.o scmi-driver-y = driver.o notify.o -scmi-transport-y = shmem.o +scmi-transport-$(CONFIG_ARM_SCMI_HAVE_SHMEM) = shmem.o scmi-transport-$(CONFIG_MAILBOX) += mailbox.o scmi-transport-$(CONFIG_HAVE_ARM_SMCCC_DISCOVERY) += smc.o scmi-protocols-y = base.o clock.o perf.o power.o reset.o sensors.o system.o voltage.o diff --git a/drivers/firmware/arm_scmi/common.h b/drivers/firmware/arm_scmi/common.h index 228bf4a71d23..94dcfb8c0176 100644 --- a/drivers/firmware/arm_scmi/common.h +++ b/drivers/firmware/arm_scmi/common.h @@ -330,7 +330,9 @@ struct scmi_desc { int max_msg_size; }; +#ifdef CONFIG_MAILBOX extern const struct scmi_desc scmi_mailbox_desc; +#endif #ifdef CONFIG_HAVE_ARM_SMCCC extern const struct scmi_desc scmi_smc_desc; #endif diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c index 66eb3f0e5daf..41d80bbaa9a2 100644 --- a/drivers/firmware/arm_scmi/driver.c +++ b/drivers/firmware/arm_scmi/driver.c @@ -1567,7 +1567,9 @@ ATTRIBUTE_GROUPS(versions); /* Each compatible listed below must have descriptor associated with it */ static const struct of_device_id scmi_of_match[] = { +#ifdef CONFIG_MAILBOX { .compatible = "arm,scmi", .data = &scmi_mailbox_desc }, +#endif #ifdef CONFIG_HAVE_ARM_SMCCC_DISCOVERY { .compatible = "arm,scmi-smc", .data = &scmi_smc_desc}, #endif diff --git a/drivers/firmware/smccc/Kconfig b/drivers/firmware/smccc/Kconfig index 15e7466179a6..69c4d6cabf62 100644 --- a/drivers/firmware/smccc/Kconfig +++ b/drivers/firmware/smccc/Kconfig @@ -9,6 +9,7 @@ config HAVE_ARM_SMCCC_DISCOVERY bool depends on ARM_PSCI_FW default y + select ARM_SCMI_HAVE_SHMEM help SMCCC v1.0 lacked discoverability and hence PSCI v1.0 was updated to add SMCCC discovery mechanism though the PSCI firmware diff --git a/drivers/mailbox/Kconfig b/drivers/mailbox/Kconfig index 68de2c6af727..fc02c38c0739 100644 --- a/drivers/mailbox/Kconfig +++ b/drivers/mailbox/Kconfig @@ -1,6 +1,7 @@ # SPDX-License-Identifier: GPL-2.0-only menuconfig MAILBOX bool "Mailbox Hardware Support" + select ARM_SCMI_HAVE_SHMEM help Mailbox is a framework to control hardware communication between on-chip processors through queued messages and interrupt driven