From owner-freebsd-arm@freebsd.org Sun Jan 6 07:10:03 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 F1682143AF5D for ; Sun, 6 Jan 2019 07:10:02 +0000 (UTC) (envelope-from danny@cs.huji.ac.il) Received: from kabab.cs.huji.ac.il (kabab.cs.huji.ac.il [132.65.116.210]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 971828D2B9 for ; Sun, 6 Jan 2019 07:09:54 +0000 (UTC) (envelope-from danny@cs.huji.ac.il) Received: from bach.cs.huji.ac.il ([132.65.80.20]) by kabab.cs.huji.ac.il with esmtp id 1gg2Yy-000NaJ-5e; Sun, 06 Jan 2019 09:09:36 +0200 From: Daniel Braniss Message-Id: Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\)) Subject: Re: i2c on RPi Zero? Date: Sun, 6 Jan 2019 09:09:35 +0200 In-Reply-To: <20190106005857.baa1313ba0f70de5a2913e6d@bidouilliste.com> Cc: Per Hedeland , freebsd-arm@freebsd.org To: Emmanuel Vadot References: <229e0d36-a07b-8551-9613-0bf5748352e7@hedeland.org> <20190105195808.GA53872@bluezbox.com> <20190105215608.GA55315@bluezbox.com> <20190105230306.2ad9d0ba2c2df0e8fac5f053@bidouilliste.com> <20190106005857.baa1313ba0f70de5a2913e6d@bidouilliste.com> X-Mailer: Apple Mail (2.3445.9.1) X-Rspamd-Queue-Id: 971828D2B9 X-Spamd-Bar: +++++ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [5.04 / 15.00]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; MV_CASE(0.50)[]; IP_SCORE(-0.00)[country: EU(-0.00)]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; MIME_TRACE(0.00)[0:+,1:+]; DMARC_NA(0.00)[huji.ac.il]; TO_DN_SOME(0.00)[]; NEURAL_SPAM_MEDIUM(0.78)[0.785,0]; AUTH_NA(1.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; NEURAL_SPAM_SHORT(0.91)[0.911,0]; MX_GOOD(-0.01)[kabab.cs.huji.ac.il,post.cs.huji.ac.il]; NEURAL_SPAM_LONG(0.95)[0.955,0]; RCVD_IN_DNSWL_NONE(0.00)[210.116.65.132.list.dnswl.org : 127.0.10.0]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; SUBJECT_ENDS_QUESTION(1.00)[]; ASN(0.00)[asn:378, ipnet:132.64.0.0/13, country:EU]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 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: Sun, 06 Jan 2019 07:10:03 -0000 > On 6 Jan 2019, at 01:58, Emmanuel Vadot wrote: >=20 > On Sun, 6 Jan 2019 00:39:48 +0100 > Per Hedeland > wrote: >=20 >> On 2019-01-05 23:03, Emmanuel Vadot wrote: >>> On Sat, 5 Jan 2019 13:56:08 -0800 >>> Oleksandr Tymoshenko wrote: >>>=20 >>>> 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: >>>>>>>=20 >>>>>>> FreeBSD-12.0-STABLE-arm-armv6-RPI-B-20190103-r342709.img - still = no >>>>>>> luck. >>>>>>>=20 >>>>>>> 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".) >>>>>>>=20 >>>>>>> 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. >>>>>>>=20 >>>>>>> (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.) >>>>>>=20 >>>>>> 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: >>>>>>=20 >>>>>> dtparam=3Di2c >>>>>>=20 >>>>>> This should make boot firmware to enable device nodes in the = device >>>>>> tree blob during the boot. >>>>>=20 >>>>> 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). >>>>>=20 >>>>> Should I file a PR for this? I assume that the i2c nodes being >>>>> disabled is not intentional... >>>>=20 >>>> Yes, please do. There are also other devices, that should be = enabled by >>>> default, like SPI. >>>=20 >>> 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). >>=20 >> 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). >=20 > 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. >=20 > 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. >=20 >> 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... >>=20 >> 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. >>=20 >> 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. >=20 > The wiki probably need a lot of updates on how to use i2c/spi or > whatever on rpi* (with dtb overlays examples etc =E2=80=A6). yes, absolutely, but why only RPI*, there is also Allwinner and others, so some =E2=80=98standard=E2=80=99 way should exist. It=E2=80=99s a = moving target, fine, but some minor doc would be nice =E2=80=A6 SMWT =E2=80=94 Sunday Morning Wishful Thinking danny >=20 >> And despite the whining above, I really do appreciate all your = efforts >> to make it possible to run FreeBSD on these systems - many thanks! >>=20 >> --Per Hedeland >=20 > Cheers, >=20 > --=20 > Emmanuel Vadot > = > > _______________________________________________ > freebsd-arm@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-arm = > To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org = "