Date: Tue, 24 Oct 2017 13:12:30 +0200 From: Emmanuel Vadot <manu@bidouilliste.com> To: Mark Millard <markmi@dsl-only.net> Cc: freebsd-hackers <freebsd-hackers@freebsd.org>, freebsd-arm <freebsd-arm@freebsd.org> Subject: Re: BPI-M3 booted via a variant of head -r324743 with an external ECHI USB root file system: what I changed to have it happen Message-ID: <20171024131230.f9ec9141d9ec8917229ad54f@bidouilliste.com> In-Reply-To: <C3462FE1-9FFC-43CD-B09C-27A78A9513A3@dsl-only.net> References: <3AD6B1F8-512C-43BB-AC76-7721454AD02F@dsl-only.net> <20171021195812.5bdb902401b8e756b6abfe40@bidouilliste.com> <C9F6BF5E-28DB-4569-B71E-EDE2A042FC78@dsl-only.net> <20171021204356.47e3cd6066144bcd07f46699@bidouilliste.com> <50728566-11C2-45EB-8367-00CAF38D4548@dsl-only.net> <B3F39A7C-339B-4072-9E41-A3F9DA1F590B@dsl-only.net> <8696CCFA-AE7D-4324-90A8-BB73402FA124@dsl-only.net> <BF09EA6D-6DE8-4138-AD92-8836DFF28620@dsl-only.net> <06B9A4AD-EA28-41A8-91B9-FE368EF622FE@dsl-only.net> <68CB464E-6FC6-4CB9-963B-9E7A683041EB@dsl-only.net> <EC0D967B-B466-4CE2-83E6-4BAA7724A07D@dsl-only.net> <17D6B79E-F7AF-4395-B8A2-2CE9A5157ABF@dsl-only.net> <20171024105014.cd2012898a602408ee605183@bidouilliste.com> <C3462FE1-9FFC-43CD-B09C-27A78A9513A3@dsl-only.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 24 Oct 2017 03:03:25 -0700 Mark Millard <markmi@dsl-only.net> wrote: > [Top post.] > > Thanks for the notes. I'm gradually figuring a > little bit out. > > Looking in: > > https://svnweb.freebsd.org/base/head/sys/gnu/dts/arm/?dir_pagestart=1000 > > (the linux 4.13 update) I see: > > sun6i-a31s-sinovoip-bpi-m2.dts > > but no .dts directly for the bpi-m3. It will be in 4.14 iirc. > So, it appears that the outer layer (.dts) > does not have a Linux 4.13 or earlier > version to be based on. > > There is an include file: > > sun8i-a83t.dtsi > > Unlike, say, sun6i-a31.dtsi, sun8i-a83t.dtsi > does not seem to have, for example, usb > material. A83T support is pretty recent in mainline Linux. > There are A83T examples: > > sun8i-a83t-allwinner-h8homlet-v2.dts > sun8i-a83t-cubietruck-plus.dts > > (But, also no usb material.) > > It looks to me like somewhat more than > the ccu driver is needed to in order > for the bpi-m3 to meet your criteria > for staying in FreeBSD, and possibly > even more to support things such as > usb. Yes but a working ccu driver is the first logical step. > > === > Mark Millard > markmi at dsl-only.net > > On 2017-Oct-24, at 1:50 AM, Emmanuel Vadot <manu@bidouilliste.com> wrote: > > > > Top posting as there is too much stuff in that mail. > > > > I find it really hard to understand you mail as there is too much data > > in it. > > > > But, to clarify the A83T situation (And general info on Allwinner > > clocks) : > > > > - Old Linux DTS (~4.8 iirc) for Allwinner SoCs had the clock directly > > defined in them under a /clock nodes, with jmcneill@ we added support > > for most (if not all) of them and this supported every Allwinner SoCs. > > - With the H3 DTS added things started to change, they removed > > the /clock node and simply add a ccu node (Clock Control Unit) as it's > > commonly done in ARM DTS. > > - This move a lot of information from the DTS to the kernel driver for > > the CCU. > > - Around that time the first H3 dts that was written (but not added in > > the Linux repository) was from the model, with the /clock node. And we > > added those file in FreeBSD under sys/boot/fdt/dts > > - I finally wrote a driver for the new clock ccu driver and currently > > it support H3, A64 and A31. > > - Linux started to convert old SoCs from /clock to ccu (A13 is done, > > A83T too and for A10 and A20 it will be available in 4.15 iirc) > > - I don't want us (us = FreeBSD) to derive from the Linux DTS as it's > > a pain to maintain, every change should be sent to Linux directly (it's > > really not that hard). > > > > So, that being said, what needs to be done for A83T support to stay in > > FreeBSD is adding a ccu driver for it. With the clkng stuff I did (see > > sys/arm/allwinner/clkng) it's not that hard, it's just a matter of > > reading the user manual clock section and translate table to > > macros/struct. You can have a look at H3 (or any other ccu driver) to > > see how it's done. > > As of today support for A83T and A13 don't work anymore if you use > > the current DTS, I've started working on A13 and should commit the > > driver soon. Someone with A83T should do the same. > > > > Cheers, > > > > On Mon, 23 Oct 2017 20:43:50 -0700 > > Mark Millard <markmi@dsl-only.net> wrote: > > > >> [This largely ignores my questions about > >> mp_ncpu <= cpuid happening when there are > >> 4 unused cores (of 8), as there are for > >> the BPI-M3's A83T support.] > >> > >> For head -r324743, by making: > >> > >> sys/boot/fdt/dts/arm/a83t.dtsi > >> > >> slightly more modern (reg-names, phy_ctrl, > >> pmu0, and pmu1) and putting in my guesses > >> for A83T in: > >> > >> /usr/src/sys/arm/allwinner/aw_usbphy.c > >> > >> I've gotten -r324743 to boot with a root > >> file system on an external USB drive in > >> ECHI mode. I've tried both USB ports and > >> both have worked as ECHI for this. > >> > >> The changes: > >> > >> # svnlite diff /usr/src/sys/boot/fdt/dts/arm/a83t.dtsi > >> Index: /usr/src/sys/boot/fdt/dts/arm/a83t.dtsi > >> =================================================================== > >> --- /usr/src/sys/boot/fdt/dts/arm/a83t.dtsi (revision 324743) > >> +++ /usr/src/sys/boot/fdt/dts/arm/a83t.dtsi (working copy) > >> @@ -179,6 +179,9 @@ > >> reg = <0x01c19400 0x2c>, > >> <0x01c1a800 0x4>, > >> <0x01c1b800 0x4>; > >> + reg-names = "phy_ctrl", > >> + "pmu0", > >> + "pmu1"; > >> clocks = <&usb_clk 8>, > >> <&usb_clk 9>, > >> <&usb_clk 10>, > >> > >> Other than some include file usage, the BPI-M3 is > >> not and has not been using sys/gnu/dts/ files. The > >> above makes the .dtb that FreeBSD produces be > >> something that the modern kernel will not reject > >> parts of. > >> > >> # svnlite diff /usr/src*/sys/arm/allwinner/aw_usbphy.c > >> Index: /usr/src/sys/arm/allwinner/aw_usbphy.c > >> =================================================================== > >> --- /usr/src/sys/arm/allwinner/aw_usbphy.c (revision 324743) > >> +++ /usr/src/sys/arm/allwinner/aw_usbphy.c (working copy) > >> @@ -58,6 +58,7 @@ > >> AWUSBPHY_TYPE_A13, > >> AWUSBPHY_TYPE_A20, > >> AWUSBPHY_TYPE_A31, > >> + AWUSBPHY_TYPE_A83T, > >> AWUSBPHY_TYPE_H3, > >> AWUSBPHY_TYPE_A64 > >> }; > >> @@ -90,6 +91,13 @@ > >> .phy0_route = false, > >> }; > >> > >> +static const struct aw_usbphy_conf a83t_usbphy_conf = { > >> + .num_phys = 3, // SATA via USB bridge as well > >> + .phy_type = AWUSBPHY_TYPE_A83T, > >> + .pmu_unk1 = false, // ???? > >> + .phy0_route = true, // ???? > >> +}; > >> + > >> static const struct aw_usbphy_conf a31_usbphy_conf = { > >> .num_phys = 3, > >> .phy_type = AWUSBPHY_TYPE_A31, > >> @@ -116,6 +124,7 @@ > >> { "allwinner,sun5i-a13-usb-phy", (uintptr_t)&a13_usbphy_conf }, > >> { "allwinner,sun6i-a31-usb-phy", (uintptr_t)&a31_usbphy_conf }, > >> { "allwinner,sun7i-a20-usb-phy", (uintptr_t)&a20_usbphy_conf }, > >> + { "allwinner,sun8i-a83t-usb-phy", (uintptr_t)&a83t_usbphy_conf }, > >> { "allwinner,sun8i-h3-usb-phy", (uintptr_t)&h3_usbphy_conf }, > >> { "allwinner,sun50i-a64-usb-phy", (uintptr_t)&a64_usbphy_conf }, > >> { NULL, 0 } > >> > >> The SATA is why there are 3 USB phys for the BPI-M3 > >> instead of 2. > >> > >> The root filesystem is on: > >> > >> da0: <OWC Envoy Pro mini 0> Fixed Direct Access SPC-4 SCSI device > >> da0: Serial Number <NOT-SHOWN> > >> da0: 40.000MB/s transfers > >> da0: 228936MB (468862128 512 byte sectors) > >> da0: quirks=0x2<NO_6_BYTE> > >> > >> > >> One new thing is: > >> > >> module_register: cannot register simplebus/ahci from kernel; already loaded from kernel > >> Module simplebus/ahci failed to register: 17 > >> module_register: cannot register simplebus/ehci from kernel; already loaded from kernel > >> Module simplebus/ehci failed to register: 17 > >> module_register: cannot register simplebus/pcib from kernel; already loaded from kernel > >> Module simplebus/pcib failed to register: 17 > >> module_register: cannot register simplebus/ehci from kernel; already loaded from kernel > >> Module simplebus/ehci failed to register: 17 > >> > >> I've not figured out what those messages are > >> about yet. > >> > >> There is also: > >> > >> real memory = 2147483648 (2048 MB) > >> avail memory = 2089332736 (1992 MB) > >> FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs > >> > >> vs. > >> > >> cpulist0: <Open Firmware CPU Group> on ofwbus0 > >> cpu0: <Open Firmware CPU> on cpulist0 > >> cpufreq_dt0: <Generic cpufreq driver> on cpu0 > >> cpu1: <Open Firmware CPU> on cpulist0 > >> cpu2: <Open Firmware CPU> on cpulist0 > >> cpu3: <Open Firmware CPU> on cpulist0 > >> cpu4: <Open Firmware CPU> on cpulist0 > >> cpufreq_dt1: <Generic cpufreq driver> on cpu4 > >> cpufreq_dt1: no regulator for cpu@100 > >> device_attach: cpufreq_dt1 attach returned 6 > >> cpu5: <Open Firmware CPU> on cpulist0 > >> cpu6: <Open Firmware CPU> on cpulist0 > >> cpu7: <Open Firmware CPU> on cpulist0 > >> > >> My understanding is: only the first cluster > >> of 4 cores is supposed to be active/used > >> and the 2nd cluster is supposed to not > >> be in active use. I'm not sure that the > >> 2nd cluster is being handled as intended, > >> or what the intended details are. But > >> top does show only 4. > >> > >> An old thing is still true: > >> > >> a10_mmc1: error rint: 0x00000100 > >> a10_mmc1: error rint: 0x00000100 > >> a10_mmc1: error rint: 0x00000100 > >> a10_mmc1: error rint: 0x00000100 > >> a10_mmc1: error rint: 0x00000100 > >> a10_mmc1: error rint: 0x00000100 > >> a10_mmc1: error rint: 0x00000100 > >> a10_mmc1: error rint: 0x00000100 > >> a10_mmc1: error rint: 0x00008018 > >> a10_mmc1: error rint: 0x00000100 > >> a10_mmc1: error rint: 0x00000100 > >> a10_mmc1: error rint: 0x00000100 > >> a10_mmc1: error rint: 0x00000100 > >> mmcsd1: 8GB <MMCHC 8WPD3R 0.0 SN E7C6641B MFG 01/2016 by 21 0x0000> at mmc1 52.0MHz/8bit/65535-block > >> mmcsd1boot0: 4MB partion 1 at mmcsd1 > >> mmcsd1boot1: 4MB partion 2 at mmcsd1 > >> mmcsd1rpmb: 524kB partion 3 at mmcsd1 > >> > >> > >> FYI: > >> > >> # uname -apKU > >> FreeBSD bpim3 12.0-CURRENT FreeBSD 12.0-CURRENT r324743M arm armv7 1200051 1200051 > >> > >> > >> > >> === > >> Mark Millard > >> markmi at dsl-only.net > >> > >> > >> _______________________________________________ > >> freebsd-hackers@freebsd.org mailing list > >> https://lists.freebsd.org/mailman/listinfo/freebsd-hackers > >> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" > > > > > > -- > > Emmanuel Vadot <manu@bidouilliste.com> <manu@freebsd.org> > > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" -- Emmanuel Vadot <manu@bidouilliste.com> <manu@freebsd.org>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20171024131230.f9ec9141d9ec8917229ad54f>