From: Anup Patel <apatel@ventanamicro.com>
To: opensbi@lists.infradead.org
Subject: [PATCH 06/11] lib: utils/irqchip: Generate FDT irqchip driver list at compile-time
Date: Tue, 3 May 2022 09:07:54 +0530 [thread overview]
Message-ID: <20220503033759.544156-7-apatel@ventanamicro.com> (raw)
In-Reply-To: <20220503033759.544156-1-apatel@ventanamicro.com>
Instead of having FDT irqchip driver list hard-coded in the C source,
we generate it using carray.sh at compile-time.
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
---
lib/utils/irqchip/fdt_irqchip.c | 16 +++++-----------
lib/utils/irqchip/fdt_irqchip_drivers.carray | 3 +++
lib/utils/irqchip/objects.mk | 8 ++++++++
3 files changed, 16 insertions(+), 11 deletions(-)
create mode 100644 lib/utils/irqchip/fdt_irqchip_drivers.carray
diff --git a/lib/utils/irqchip/fdt_irqchip.c b/lib/utils/irqchip/fdt_irqchip.c
index 6007755..1b6b674 100644
--- a/lib/utils/irqchip/fdt_irqchip.c
+++ b/lib/utils/irqchip/fdt_irqchip.c
@@ -12,15 +12,9 @@
#include <sbi_utils/fdt/fdt_helper.h>
#include <sbi_utils/irqchip/fdt_irqchip.h>
-extern struct fdt_irqchip fdt_irqchip_aplic;
-extern struct fdt_irqchip fdt_irqchip_imsic;
-extern struct fdt_irqchip fdt_irqchip_plic;
-
-static struct fdt_irqchip *irqchip_drivers[] = {
- &fdt_irqchip_aplic,
- &fdt_irqchip_imsic,
- &fdt_irqchip_plic
-};
+/* List of FDT irqchip drivers generated at compile time */
+extern struct fdt_irqchip *fdt_irqchip_drivers[];
+extern unsigned long fdt_irqchip_drivers_size;
#define FDT_IRQCHIP_MAX_DRIVERS 8
@@ -61,8 +55,8 @@ static int fdt_irqchip_cold_init(void)
const struct fdt_match *match;
void *fdt = fdt_get_address();
- for (pos = 0; pos < array_size(irqchip_drivers); pos++) {
- drv = irqchip_drivers[pos];
+ for (pos = 0; pos < fdt_irqchip_drivers_size; pos++) {
+ drv = fdt_irqchip_drivers[pos];
noff = -1;
drv_added = false;
diff --git a/lib/utils/irqchip/fdt_irqchip_drivers.carray b/lib/utils/irqchip/fdt_irqchip_drivers.carray
new file mode 100644
index 0000000..b373be5
--- /dev/null
+++ b/lib/utils/irqchip/fdt_irqchip_drivers.carray
@@ -0,0 +1,3 @@
+HEADER: sbi_utils/irqchip/fdt_irqchip.h
+TYPE: struct fdt_irqchip
+NAME: fdt_irqchip_drivers
diff --git a/lib/utils/irqchip/objects.mk b/lib/utils/irqchip/objects.mk
index fad4344..7775bc4 100644
--- a/lib/utils/irqchip/objects.mk
+++ b/lib/utils/irqchip/objects.mk
@@ -8,9 +8,17 @@
#
libsbiutils-objs-y += irqchip/fdt_irqchip.o
+libsbiutils-objs-y += irqchip/fdt_irqchip_drivers.o
+
+carray-fdt_irqchip_drivers-y += fdt_irqchip_aplic
libsbiutils-objs-y += irqchip/fdt_irqchip_aplic.o
+
+carray-fdt_irqchip_drivers-y += fdt_irqchip_imsic
libsbiutils-objs-y += irqchip/fdt_irqchip_imsic.o
+
+carray-fdt_irqchip_drivers-y += fdt_irqchip_plic
libsbiutils-objs-y += irqchip/fdt_irqchip_plic.o
+
libsbiutils-objs-y += irqchip/aplic.o
libsbiutils-objs-y += irqchip/imsic.o
libsbiutils-objs-y += irqchip/plic.o
--
2.34.1
next prev parent reply other threads:[~2022-05-03 3:37 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-03 3:37 [PATCH 00/11] OpenSBI compile-time C arrays Anup Patel
2022-05-03 3:37 ` [PATCH 01/11] Makefile: Allow generated C source to be anywhere in build directory Anup Patel
2022-05-09 17:24 ` Atish Patra
2022-05-03 3:37 ` [PATCH 02/11] Makefile: Add support for generating C array at compile time Anup Patel
2022-05-09 17:26 ` Atish Patra
2022-05-03 3:37 ` [PATCH 03/11] lib: utils/reset: Generate FDT reset driver list at compile-time Anup Patel
2022-05-03 3:37 ` [PATCH 04/11] lib: utils/serial: Generate FDT serial " Anup Patel
2022-05-03 3:37 ` [PATCH 05/11] lib: utils/timer: Generate FDT timer " Anup Patel
2022-05-03 3:37 ` Anup Patel [this message]
2022-05-03 3:37 ` [PATCH 07/11] lib: utils/ipi: Generate FDT ipi " Anup Patel
2022-05-03 3:37 ` [PATCH 08/11] lib: utils/i2c: Generate FDT i2c adapter " Anup Patel
2022-05-03 3:37 ` [PATCH 09/11] lib: utils/gpio: Generate FDT gpio " Anup Patel
2022-05-03 3:37 ` [PATCH 10/11] platform: generic: Generate platform override module " Anup Patel
2022-05-03 3:37 ` [PATCH 11/11] platform: generic: Move Sifive platform overrides into own directory Anup Patel
2022-05-09 17:28 ` Atish Patra
2022-05-03 3:42 ` [PATCH 00/11] OpenSBI compile-time C arrays Jessica Clarke
2022-05-03 3:52 ` Anup Patel
2022-05-03 3:54 ` Jessica Clarke
2022-05-03 4:04 ` Anup Patel
2022-05-03 4:13 ` Jessica Clarke
2022-05-03 4:17 ` Anup Patel
2022-05-03 4:23 ` Jessica Clarke
2022-05-03 4:30 ` Anup Patel
2022-05-03 4:45 ` Jessica Clarke
2022-05-03 4:47 ` Anup Patel
2022-05-03 15:35 ` Xiang W
2022-05-03 16:24 ` Anup Patel
2022-05-09 17:29 ` Atish Patra
2022-05-13 4:03 ` Anup Patel
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=20220503033759.544156-7-apatel@ventanamicro.com \
--to=apatel@ventanamicro.com \
--cc=opensbi@lists.infradead.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.