[prev in list] [next in list] [prev in thread] [next in thread]
List: freebsd-hackers
Subject: Re: UART driver as kld - how?
From: Milan Obuch <freebsd-hackers () dino ! sk>
Date: 2019-10-28 19:19:52
Message-ID: 20191028201952.20a92307 () zeta ! dino ! sk
[Download RAW message or body]
On Mon, 28 Oct 2019 12:10:05 -0700
Oleksandr Tymoshenko <gonzo@bluezbox.com> wrote:
> Milan Obuch (freebsd-hackers@dino.sk) wrote:
[ snip ]
> > Hi,
> >
> > my problem is somewhere else - I am able to build kld, load and
> > unload it, but in all uart_dev_xxxx.c files I saw there are no
> > attach and detach function, so there must be something more to do.
> > On the other side, uart_core.o is already present in kernel, but
> > how should I make it work with newly loaded module? uart_bus_fdt.o
> > is linked in kernel too, and there are attach and detach function,
> > but how can my tables be added in list for it?
>
> From what I see in source code, UART drivers with FDT support are
> tied to the UART subsystem using UART_FDT_CLASS_AND_DEVICE macro,
> that adds compat data (list of compatible strings for the driver
> with pointer to respective uart_class instance) to
> uart_fdt_class_and_device_set dataset. This dataset is then traversed
> by uart_fdt_find_device in uart_fdt_probe function.
>
> You need:
>
> - Add FDT node to device tree, with unique compatible property value
> and "status" property set to "okay"
> - In you driver do something like:
>
> static struct ofw_compat_data compat_data[] = {
> {"xlnx,axilite", (uintptr_t)&uart_axilite_class},
> {NULL, (uintptr_t)NULL},
> };
> UART_FDT_CLASS_AND_DEVICE(compat_data);
>
> xlnx,axilite in this case is just something I've just made up, you
> need to get the value from the vendor's DTS bindings documentation.
>
Hi,
I found uart_dev_snps.c being somewhat near what I need. I am trying to
extract necessary bits from this and other files (what you wrote is
just one bit), it seems our docs are lacking in this area.
Regards,
Milan
_______________________________________________
freebsd-hackers@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic