On 31/03/2019 16:33, Hesham Almatary wrote:
* Different RISC-V DTBs use different names for UART interrupts such as
"interrupts" and "interrupts-extended", so it is not portable.
* polling functions are currently used, so there is no need to query interrupts.
---
bsps/riscv/riscv/console/console-config.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/bsps/riscv/riscv/console/console-config.c
b/bsps/riscv/riscv/console/console-config.c
index 04d0b28361..81e46f304f 100644
--- a/bsps/riscv/riscv/console/console-config.c
+++ b/bsps/riscv/riscv/console/console-config.c
@@ -183,13 +183,20 @@ static void riscv_console_probe(void)
ctx->clock = fdt32_to_cpu(val[0]);
- val = (fdt32_t *) fdt_getprop(fdt, node, "interrupts", &len);
+ /* XXX Different RISC-V DTBs use different property names for interrupt
+ sources. If an interrupt-driven driver is needed, uncomment, replace the
+ "interrupts-extended" string below with your target's DTB name for UART
+ interrupts, and use interrupt-driven UART functions instead of
+ ns16550_polled_* functions */
+
+ /* val = (fdt32_t *) fdt_getprop(fdt, node, "interrupts-extended", &len);
if (val == NULL || len != 4) {
bsp_fatal(RISCV_FATAL_NO_NS16550_INTERRUPTS_IN_DEVICE_TREE);
}
ctx->irq = RISCV_INTERRUPT_VECTOR_EXTERNAL(fdt32_to_cpu(val[0]));
+ */
if (node == console_node) {
riscv_console.context = &ctx->base;
The driver uses interrupts:
rtems_status_code console_initialize(
rtems_device_major_number major,
rtems_device_minor_number minor,
void *arg
)
...
rtems_termios_device_install(
path,
&ns16550_handler_interrupt,
NULL,
&ctx->base
);
In the long run we need some standard support for device trees similar
to what Linux or FreeBSD has. Unfortunately, this is a multiple man-week
work package.
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.hu...@embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel