From owner-freebsd-arm@freebsd.org Mon Dec 30 11:33:32 2019 Return-Path: Delivered-To: freebsd-arm@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 8F76E1DD12A for ; Mon, 30 Dec 2019 11:33:32 +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 47mb0V5SzNz3P9g; Mon, 30 Dec 2019 11:33:30 +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 1de6aa2c; Mon, 30 Dec 2019 12:33:23 +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=nMopw27EEvArD+Kz0xBFFqc4ZWY=; b=rn3AsUJRsBTnHp3zwt4M63Rea6PY wYpLA5CZRb1jUhgMlELbN9sRCAeAb3dH37wUoJFqKf5jhL03yZ1W41TX4XPuHwhk mmewO55wqNTXJn88wOo70zsZha0IoOeHWIOlB1liau5BqQeD+IyGFPHiV4rOel7B ZkXvRmnfkMXNMHE= 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=sCgRuBRs2AiIqxtIh9xsghrc5dvBqY14NwHR8NPKkMoYmE0ESBv+b0On cko1sLgTsEDIpxyDymHZMjgOsxUjZvOvW4YMMIh1xyQ0MaiXwdASn0RSEL1XIvF8 +OsflaXZOZkCIJXMq8V+N8dWa4b9erVYo6aydfJe98pcp8lUHqU= Received: from sonic.home.blih.net (ip-9.net-89-3-105.rev.numericable.fr [89.3.105.9]) by mail.blih.net (OpenSMTPD) with ESMTPSA id 030da90e TLS version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO; Mon, 30 Dec 2019 12:33:22 +0100 (CET) Date: Mon, 30 Dec 2019 12:33:22 +0100 From: Emmanuel Vadot To: Gary Otten Cc: freebsd-arm@freebsd.org, ian@freebsd.org Subject: Re: SPI support for A64-OLinuXino board Allwinner A64 processor Message-Id: <20191230123322.fa579638df66e3eac3e16c91@bidouilliste.com> In-Reply-To: References: <20191228161726.9efb08df5b69eaa0a0ff478f@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: 47mb0V5SzNz3P9g X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bidouilliste.com header.s=mail header.b=rn3AsUJR; dmarc=none; 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 [-1.16 / 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.79)[-0.790,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.89)[-0.892,0]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[bidouilliste.com:+]; FREEMAIL_TO(0.00)[gmail.com]; RCVD_NO_TLS_LAST(0.10)[]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; IP_SCORE(0.42)[ip: (-0.54), ipnet: 212.83.160.0/19(2.42), asn: 12876(0.25), country: FR(0.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: Mon, 30 Dec 2019 11:33:32 -0000 On Sun, 29 Dec 2019 23:40:19 -0500 Gary Otten wrote: > Thanks, Ian Lepore mentioned this too, spigen wasn't loaded. I have now > loaded spigen. The driver appears to be working, but I am not seeing any > output. > > I can toggle pins PC0,PC1,PC2, PC3 with gpioctl, but I don't get anything > with spi. You mean settings them as gpio, toggling them and check the pins on the uext port ? > I also had another odd behavior with BANK E. not having any output, using > gpoictl, I was not able to get any pin on Bank E to toggle. I did turn on > the voltage regulator as suggested. The SPI pins for SPI0 are on BANKC which is always powered on. > I wonder if FreeBSD is properly setting the configuration registers for > each port/pin of the the A64. I'll not say that the code is bug free but this really should be ok, especially for such basic pin setting like spi0 where you only have one pin group. > Basically letting the A64 know to use alt > function or general gpio in/out in the proper way for each pin, maybe some > of the (default?) settings for the more popular pine boards work, but > don't work correctly for the Olimex A64 board, or maybe there is some > setting in the overlays that I am overlooking that need to be set to use an > alt function or gpio in/out to get the pins to function properly. If in > the overlay I have spi0 enabled, should I still be able to toggle the pins > with gpioctl? Thanks for the help. Yes unfortunatelly the gpio/pinmux code is shared on allwinner and doesn't have all the needed "protection" so you can toggle a pin even if it's not in gpio mode. I don't remember if the value is still output on the physical pin or not. Are you using the -sXM version on the board (where you have an spi flash present on the board) or did you wire something via the uext port ? If the later what's wired and how ? I have this board but I will not have time to do a proper setup to test something for some time. > My diagnostics > ****************************************** > root@:/dev # spi -i > Device name: /dev/spigen0.0 > Device mode: 2 > Device speed: 500000 > root@:/dev # spi -d r -m 0 -C '9F 00' -v -c 2 > Binary output of 2 bytes > 2 command bytes and 2 data bytes read from SPI device > | 0 1 2 3 4 5 6 7 8 9 A B C D E F | > | > 0 | 00 00 00 00 | .... > | > > I > > > > On Sat, Dec 28, 2019 at 10:44 AM Emmanuel Vadot > wrote: > > > On Wed, 25 Dec 2019 19:12:28 -0500 > > Gary Otten wrote: > > > > > Thanks, I have created the following overlay and tried a variety of > > other > > > things but I haven't been able to get spigen0.0 to appear in /dev. > > > > > > > > > > > > /* $FreeBSD$ */ > > > /dts-v1/; > > > /plugin/; > > > > > > / { > > > compatible = "allwinner,sun50i-a64"; > > > }; > > > > > > &{/soc/spi@1c68000} { > > > > > > status = "okay"; > > > > > > spigen0: spigen0 { > > > compatible = "freebsd,spigen"; > > > reg = <0>; > > > spi-max-frequency = <500000>; > > > status = "okay"; > > > }; > > > > > > }; > > > > > > > > > > > > Some diagnostics > > > > > > ------------------------------------------------------- > > > On Boot > > > > > > Loading DTB overlays: 'sun50i-a64-spi-spidev' > > > /boot/dtb/overlays/sun50i-a64-spi-spidev.dtbo size=0x15c > > > applying DTB overlay '/boot/dtb/overlays/sun50i-a64-spi-spidev.dtbo' > > > .. > > > .... > > > ..... > > > > > > Autoloading module: aw_spi.ko > > > aw_spi0: mem 0x1c68000-0x1c68fff irq 29 on simplebus0 > > > spibus0: on aw_spi0 > > > spibus0: at cs 0 mode 0 > > > > > > > > > ------------------------------------------------------- > > > root@:/boot/dtb/overlays # kldstat > > > Id Refs Address Size Name > > > 1 5 0xffff000000000000 144dda8 kernel > > > 2 1 0xffff000054c00000 41000 aw_spi.ko > > > > > > ------------------------------------------------------- > > > root@:/boot/dtb/overlays # devinfo > > > .. > > > ... > > > aw_spi0 > > > spibus0 > > > > > > ------------------------------------------------------- > > > root@:/boot/dtb/overlays # devinfo > > > > > > .... > > > ...... > > > Node 0x2f60: spi@1c68000 > > > Node 0x309c: spigen0 > > > _______________________________________________ > > > 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" > > > > Hi Gary, > > > > You overlay worked for me on the pine64-lts. Here is what I did : > > - Use https://github.com/evadot/freebsd/commits/aw_spigen > > - aw_spi is autoloaded via devmatch > > - kldload spigen (it's not in GENERIC for arm64, maybe we should add it > > or do some devmatch magic) > > - root@pine64-lts:~ # spi -i > > Device name: /dev/spigen0.0 > > Device mode: 0 > > Device speed: 500000 > > root@pine64-lts:~ # spi -d r -m 0 -C '9F 00' -v -c 2 > > Binary output of 2 bytes > > 2 command bytes and 2 data bytes read from SPI device > > | 0 1 2 3 4 5 6 7 8 9 A B C D E F > > | | 0 | 00 ef 40 18 | > > ..@. | > > > > Maybe you just forgot to load spigen ? > > > > -- > > Emmanuel Vadot > > -- Emmanuel Vadot