[PATCH 3/4] bsps/riscv: UART - Comment code that queries UART interrupts
Sebastian Huber
sebastian.huber at embedded-brains.de
Wed Apr 3 06:39:29 UTC 2019
On 03/04/2019 00:07, Chris Johns wrote:
> On 2/4/19 10:08 pm, Hesham Almatary wrote:
>> On Sun, 31 Mar 2019 at 22:50, Chris Johns <chrisj at rtems.org> wrote:
>>> On 1/4/19 1:33 am, 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);
>>> Asking a user to edit a BSP complicates a user's ability to configuration manage
>>> and track RTEMS so I prefer we find and use other solutions. For example you
>>> could replace the commented call with a weak function of:
>>>
>> The comment is not really for the user, but rather for RISC-V BSP
>> developers. I came across this issue when I was trying to get this BSP
>> (which is supposed to be a generic riscv one, but it only accounts for
>> QEMU's DTB format) to work on another platform.
> And what is this BSP developer to do when they see this and need it?
>
> What if I need the commented code and I post a change that uncomments this code
> and comments the other call. I suspect the patch would be voted down.
The driver uses interrupts, so the patch as is is not all right from my
point of view, see my comment in another e-mail to this patch.
>
>>> val = rtems_riscv_get_console_interrupts(fdt, node, &len);
>>>
>>> which returns by default "interrupts". A user can then provide a non-weak
>>> version of function and override the default behaviour and return
>>> "interrupts-extended"
>>>
>> That makes things slightly complicated for the user I think. What
>> about having a BSP option in the riscv configure.ac that specifies the
>> DTB UART interrupt node name? For example, similar to how we currently
>> pass -DRISCV_ENABLE_HTIF_SUPPORT to build RISC-V BSP for Spike, we can
>> add another BSP_FDT_UART_INTERRUPT option (which defaults to
>> "interrupts"), but allow the user to override it at configure time.
> Sure, that is fine ... but can we have some User Manual documentation of the
> options this BSP has if that is OK? :)
https://docs.rtems.org/branches/master/user/bsps/bsps-riscv.html#build-configuration-options
The device tree support itself should not use BSP options.
--
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.huber at embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
More information about the devel
mailing list