Date: Mon, 4 Nov 2019 08:32:27 -0700 From: Warner Losh <imp@bsdimp.com> To: Milan Obuch <freebsd-hackers@dino.sk> Cc: "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>, Oleksandr Tymoshenko <gonzo@bluezbox.com>, Oliver Pinter <oliver.pinter@hardenedbsd.org> Subject: Re: UART driver as kld - how? Message-ID: <CANCZdfoJV1s%2B9pfMvR-C5N9nDKeQe6o718zdpNjOQXzRAuydrw@mail.gmail.com> In-Reply-To: <20191104122816.63647120@zeta.dino.sk> References: <20191027214209.712d62ca@zeta.dino.sk> <CAPQ4ffuoHRFghwo=okFoNVHw9TYdwFw_wgUxa5_rm6FqjsNVsg@mail.gmail.com> <20191027232956.28b11772@zeta.dino.sk> <20191028191005.GA89835@bluezbox.com> <20191028201952.20a92307@zeta.dino.sk> <20191102214100.500ba493@zeta.dino.sk> <20191103042321.GA49790@bluezbox.com> <20191103130118.36fa6eec@zeta.dino.sk> <20191104122816.63647120@zeta.dino.sk>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Nov 4, 2019 at 4:35 AM Milan Obuch <freebsd-hackers@dino.sk> wrote: > On Sun, 3 Nov 2019 13:01:18 +0100 > Milan Obuch <freebsd-hackers@dino.sk> wrote: > > > On Sat, 2 Nov 2019 21:23:21 -0700 > > Oleksandr Tymoshenko <gonzo@bluezbox.com> wrote: > > > > > Milan Obuch (freebsd-hackers@dino.sk) wrote: > > [ snip ] > > > > > I am sure I need docs/description for other functions as well, so > > > > if anybody knows where good uart framework description could be > > > > found, please advice. Or if somebody already has good > > > > understanding of it and could help me with my issues, it wil be > > > > greatly appreciated. > > > > > > if you follow uart_dev_snsps.c template, the sc_class is set in > > > probe function: > > [ snip ] > > > I totally overlooked the obvious... yes, you are right. > > > > [ snip ] > > > > > In your case, my guess would be: you either do not set the sc_class > > > member var in probe function or your base var is not the first in > > > the struct. > > > > > > > Back to testing... probe function now does work, so I am going to > > analyze what should be done in attach... and why I am getting now > > panic... I'll write again when I find another obstacle I do not > > understand or I have working driver, whatever comes first :) > > > > Now I am getting further... attach works now, device nodes expected are > being created, but there are some warnings mentioning locks on detach. > Also, my hardware design currently does not use interrupts. Do we have > any example of uart device being polled? > All UARTS have interrupts. It's the nature of UARTS. At least that's the nature of the model that uart(4) uses: there's a number of conditions that we notice from time to time and make a note in the ipend mask so that we can call uart specific code later to deal with that condition. Your system may not connect those uart signals to a system interrupt, but the internal model is the same. I'd just use callouts to poll. Then call what would be the interrupt routines from there. Since we have a separation between noting a condition and processing it, that should work well. However, I'd also expect issues at higher data rates unless you have very deep FIFOs and some kind of hardware-assist for flow control. Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfoJV1s%2B9pfMvR-C5N9nDKeQe6o718zdpNjOQXzRAuydrw>