From owner-freebsd-hackers@freebsd.org Sat Nov 2 20:41:10 2019 Return-Path: Delivered-To: freebsd-hackers@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C8BE4163A4C for ; Sat, 2 Nov 2019 20:41:10 +0000 (UTC) (envelope-from freebsd-hackers@dino.sk) Received: from mailhost.netlabit.sk (mailhost.netlabit.sk [84.245.65.72]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4759v90hVCz495k for ; Sat, 2 Nov 2019 20:41:08 +0000 (UTC) (envelope-from freebsd-hackers@dino.sk) Received: from zeta.dino.sk (fw3.dino.sk [84.245.95.254]) (AUTH: LOGIN milan) by mailhost.netlabit.sk with ESMTPA; Sat, 02 Nov 2019 21:41:05 +0100 id 00F4071F.5DBDE9E1.0000BF62 Date: Sat, 2 Nov 2019 21:41:00 +0100 From: Milan Obuch To: freebsd-hackers@freebsd.org Cc: Oleksandr Tymoshenko , Oliver Pinter Subject: Re: UART driver as kld - how? Message-ID: <20191102214100.500ba493@zeta.dino.sk> In-Reply-To: <20191028201952.20a92307@zeta.dino.sk> References: <20191027214209.712d62ca@zeta.dino.sk> <20191027232956.28b11772@zeta.dino.sk> <20191028191005.GA89835@bluezbox.com> <20191028201952.20a92307@zeta.dino.sk> X-Mailer: Claws Mail 3.17.4 (GTK+ 2.24.32; i386-portbld-freebsd11.3) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 4759v90hVCz495k X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of freebsd-hackers@dino.sk designates 84.245.65.72 as permitted sender) smtp.mailfrom=freebsd-hackers@dino.sk X-Spamd-Result: default: False [-4.19 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; R_SPF_ALLOW(-0.20)[+mx]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; DMARC_NA(0.00)[dino.sk]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[72.65.245.84.list.dnswl.org : 127.0.10.0]; IP_SCORE(-2.89)[ip: (-8.11), ipnet: 84.245.64.0/18(-4.05), asn: 16160(-2.37), country: SK(0.08)]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; SUBJECT_ENDS_QUESTION(1.00)[]; ASN(0.00)[asn:16160, ipnet:84.245.64.0/18, country:SK]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Nov 2019 20:41:10 -0000 On Mon, 28 Oct 2019 20:19:52 +0100 Milan Obuch wrote: [ snip ] > 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 > After studying other uart_dev_xxx.c files I am able to create working skeleton uart driver. I can compile it, kldload, and get some console output. Right now, I hit another problem - uart framework is not documented well, at least no man page is found in share/man directory. My probe function is similar to that in uart_dev_snps.c file, simplified, and I need to know what arguments should uart_bus_probe function be invoked with. In many device drivers there are mostly zeros, but this does not work for me. Currently I am getting error 6, ENXIO, so I am not correctly attaching my driver to device. Putting some printf here and there, I found test at line 508, file uart_core.c, fails - sc->sc_class is null. Question is, now, where and how should this field in this structure be initialized... 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. Regards, Milan