From owner-freebsd-arm@freebsd.org Sat Jan 5 23:59:07 2019 Return-Path: Delivered-To: freebsd-arm@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D6C5014297B0 for ; Sat, 5 Jan 2019 23:59:06 +0000 (UTC) (envelope-from manu@bidouilliste.com) Received: from mail.blih.net (mail.blih.net [212.83.177.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.blih.net", Issuer "mail.blih.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id B7C6C74906 for ; Sat, 5 Jan 2019 23:59:05 +0000 (UTC) (envelope-from manu@bidouilliste.com) Received: from mail.blih.net (mail.blih.net [212.83.177.182]) by mail.blih.net (OpenSMTPD) with ESMTP id e15a7f4c; Sun, 6 Jan 2019 00:59:03 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=bidouilliste.com; h=date :from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; s=mail; bh=6qWxIj+07yR2NLIf7fqvowWiOQM=; b=PsD9pQh2DeZ4En8hajByubYF/7yU ZI04/I/u9wl23TiZaHUcSOG9gonFLMN1Wt5Ec6ilzglWFGs8/ZAiUIkgYLwPiphz 3p9ObeF1d16lJwbLPuxYd1OxzqxIvo+ykB8erHthoI08fUlChZLpoiYHK5brtWCN psNjjRIsxCJZa78= DomainKey-Signature: a=rsa-sha1; c=nofws; d=bidouilliste.com; h=date :from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; q=dns; s= mail; b=ObPFKmbVIOAWKa0nQCJxUy7jyjR/VccBqhxz0K9tTNEqi9ZW3RP78IXQ In2tQQITolpMGyMfqrpupsRJFZxgErGjRJcNaHJNDRaeiZoqKeqHBQ/gRpbo+l9t NOLtU1GRt/abd1QwIkTt2MTJEaq38Ii0cbyzB9DweHW3BHBDnJc= Received: from knuckles.blih.net (ip-9.net-89-3-105.rev.numericable.fr [89.3.105.9]) by mail.blih.net (OpenSMTPD) with ESMTPSA id 60863494 TLS version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO; Sun, 6 Jan 2019 00:59:03 +0100 (CET) Date: Sun, 6 Jan 2019 00:58:57 +0100 From: Emmanuel Vadot To: Per Hedeland Cc: Oleksandr Tymoshenko , freebsd-arm@freebsd.org Subject: Re: i2c on RPi Zero? Message-Id: <20190106005857.baa1313ba0f70de5a2913e6d@bidouilliste.com> In-Reply-To: References: <229e0d36-a07b-8551-9613-0bf5748352e7@hedeland.org> <20190105195808.GA53872@bluezbox.com> <20190105215608.GA55315@bluezbox.com> <20190105230306.2ad9d0ba2c2df0e8fac5f053@bidouilliste.com> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.32; amd64-portbld-freebsd13.0) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: B7C6C74906 X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bidouilliste.com header.s=mail header.b=PsD9pQh2; spf=pass (mx1.freebsd.org: domain of manu@bidouilliste.com designates 212.83.177.182 as permitted sender) smtp.mailfrom=manu@bidouilliste.com X-Spamd-Result: default: False [0.36 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[bidouilliste.com:s=mail]; NEURAL_HAM_MEDIUM(-0.70)[-0.698,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; R_SPF_ALLOW(-0.20)[+ip4:212.83.177.182/32]; MV_CASE(0.50)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[bidouilliste.com]; NEURAL_HAM_LONG(-0.87)[-0.874,0]; TO_DN_SOME(0.00)[]; NEURAL_SPAM_SHORT(0.72)[0.716,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[bidouilliste.com:+]; MX_GOOD(-0.01)[cached: mx-backup.blih.net]; IP_SCORE(0.13)[ipnet: 212.83.160.0/19(0.79), asn: 12876(-0.13), country: FR(-0.02)]; RCVD_NO_TLS_LAST(0.10)[]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; SUBJECT_ENDS_QUESTION(1.00)[]; ASN(0.00)[asn:12876, ipnet:212.83.160.0/19, country:FR]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Jan 2019 23:59:07 -0000 On Sun, 6 Jan 2019 00:39:48 +0100 Per Hedeland wrote: > On 2019-01-05 23:03, Emmanuel Vadot wrote: > > On Sat, 5 Jan 2019 13:56:08 -0800 > > Oleksandr Tymoshenko wrote: > > > >> Per Hedeland (per@hedeland.org) wrote: > >>> On 2019-01-05 20:58, Oleksandr Tymoshenko wrote: > >>>> Per Hedeland (per@hedeland.org) wrote: > >>>>> I did a bit more testing on the Zero to see if the FreeBSD version > >>>>> mattered: > >>>>> > >>>>> FreeBSD-12.0-STABLE-arm-armv6-RPI-B-20190103-r342709.img - still no > >>>>> luck. > >>>>> > >>>>> FreeBSD-11.2-STABLE-arm-armv6-RPI-B-20190103-r342709.img - works! > >>>>> (I.e. dmesg reports as below and /dev/iic{0,1} get created - I haven't > >>>>> tested actual usage beyond having 'i2c -s' report "no devices found".) > >>>>> > >>>>> I guess that the i2c support hasn't been removed intentionally, > >>>>> i.e. this seems to be a regression - or is there some additional > >>>>> config etc required to enable it with FreeBSD-12? The iic and iicbus > >>>>> drivers appear to be built into the kernel in both 11 and 12. > >>>>> > >>>>> (I haven't tested FreeBSD-12 on the Pi B, but I would guess that the > >>>>> result will be the same as on the Zero, since it seems the hardware is > >>>>> the same.) > >>>> > >>>> There was a transition in device tree files between 11 and 12. > >>>> bcm2708-rpi-0-w.dtb has i2c nodes but they're disabled by default. > >>>> Try editing config.txt on FAT partition and adding following line: > >>>> > >>>> dtparam=i2c > >>>> > >>>> This should make boot firmware to enable device nodes in the device > >>>> tree blob during the boot. > >>> > >>> Thanks a lot! I can confirm that this makes i2c "work" on Zero with > >>> 12-RELEASE (almost) to the extent described above for 11.2-STABLE (it > >>> detects/creates only iic0, not iic1, but as far as I understand from > >>> other sources, iic0 is all that is needed for "plain B" and thus also > >>> for Zero). > >>> > >>> Should I file a PR for this? I assume that the i2c nodes being > >>> disabled is not intentional... > >> > >> Yes, please do. There are also other devices, that should be enabled by > >> default, like SPI. > > > > Why should we enabled them by default ? > > We have no correct way for switching a pin to gpio mode (you can do > > that with gpioctl on some system but I consider it as a bug) so if I > > want to use the i2c/spi/whatever pins as gpio and the default image set > > it to another function I'm stuck. > > Using the rpi fundation dtb means that every settings that they set > > for Linux will also be set for us, so every tutorial on the web where > > people saying that you should set something in config.txt will apply to > > FreeBSD too. > > The current settings aren't a bug, it's a feature (c). > > OK... - so your take seems to be that FreeBSD users should google for > the "Linux way" to (e.g.) enable i2c on RPi. I googled "enable i2c on > raspberry pi" now, and indeed it brought up lots of Linux stuff, but > unfortunately it mostly says to run 'raspi-config', which I can't find > on my FreeBSD installation (and didn't actually expect to, of course). No, my take is that FreeBSD users should be able to tweak rpi the same way (more of less) than the Linux users. Unfortunatly, as you pointed out, sometimes it's hidden via a script/binary that do it for you. But more important is that I don't want to enable i2c (or any other function on pins) if the board doesn't requires it. DTS/DTB is supposed to represent the hardware and if the hardware doesn't have i2c (or, again, any other stuff on some pins) there is no reason for us to switch by default to those functions. > If I explicitly add "config.txt" to the search string, I do indeed > find some info about what to put in that file - but of course I > wouldn't have done that if I didn't already know that this was the > file that needed to be edited... > > I'm all for using "standard" components (even when "standard" means > "Linux"), and reducing the amount of FreeBSD-specific work that you > and others need to put in to support FreeBSD on these "odd" systems - > and as a long time (Free)BSD user, I actually prefer to edit a file > over running some GUI tool without knowing what it does. > > But I really think there needs to be a bit more help directed > specifically at the FreeBSD user here (if there is and I just haven't > found it, please enlighten me). A few words (besides "configuration > for start.elf":-) about what config.txt is good for, and perhaps a > pointer to e.g. > https://www.raspberrypi.org/documentation/configuration/device-tree.md > (found it from your hints, thanks!), on the > https://wiki.freebsd.org/FreeBSD/arm/Raspberry%20Pi page may be > enough. The wiki probably need a lot of updates on how to use i2c/spi or whatever on rpi* (with dtb overlays examples etc ...). > And despite the whining above, I really do appreciate all your efforts > to make it possible to run FreeBSD on these systems - many thanks! > > --Per Hedeland Cheers, -- Emmanuel Vadot