From owner-freebsd-arm@freebsd.org Sat Oct 3 02:35:58 2020 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 8EE083F60EA for ; Sat, 3 Oct 2020 02:35:58 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic307-8.consmr.mail.gq1.yahoo.com (sonic307-8.consmr.mail.gq1.yahoo.com [98.137.64.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4C39vw0QCdz4vRy for ; Sat, 3 Oct 2020 02:35:55 +0000 (UTC) (envelope-from marklmi@yahoo.com) X-YMail-OSG: 4vnYlJEVM1kPiEo7DiIgPBvPWU44.vzCWUzkd3Zv7n4Gc6KerPI58X_qpapRdQI fhJndhxPR44gEFQa4qIJG570ZaktbrLLLdnu_yYpMiSTQv0I1Q1sZ1nzuuTDJ78ySz7E9VP15ys2 T0Ss1tUt_7vYjHU19qIue3I0co125BA4KMBsBxQFppcFrAF6kuPIS.5lAVGF4DfxFTuBBI1VDWoz IXGRPbgAg7nkSfzid_67uosJU.ilJv3mt7gtvIqb7V6n0ieIZPyBAxc1tfFhymvEJWQIBu_34WL7 2WRa.fkF5z515kPsEAc.Gz.fY.Xu44SM8dxPvm5pn773idXczrpzxWQnd5hzLW52zJehwI0RcXay MWrsabCh63SP2czjOlLH7vbtxZqn.cehOUpScw_XPpb6npcp68FrxsVeBRZN1.hCDgLwZH8ZCxmP 2a_TksPrEkWaUbsJz3sqaQ1GF3j_R2i1bTxKPJxff_Cvv9if03KjbWw_VZmDgVOiFZp8DXslxQkH WQWy5vmW_9050SGZQEFOuUn3nz0YUqPDlrErsOb4MhP8ddO1LadntUzirKdmBmfKUXlU20MILDLm KnuEhK57ISQT1pYVEPF_TWDlZcpWpSLTx7gCPez5tD3Ugt0s1oCvdySrjpJUAXYblgmbDWw8Cy3F lCHgyb8o7rSEEn4sKQiv9uszqeGcqs0ss5gQSE7PX4rSZxIqHiTewM_nUEb9UvdvIAnRYSvP2R4N fwv4EeCYv0xfnQJCLBUQY1u.PXZ.3.K00TAA5qQDEh.kudYThXg0mQh8drMwCvnCVdPnFAGJWr6r rhCnCxPZwMaHzZ9PSRaCS2GcBoKc82i_rCBGeyNSI.lxWCukuzK3CgHXSovweNlzlbknYuawV.G7 9ijFq091yP3bgysbguMb84H2rj4uyLsgTR7SbaWt9wE7f0ZvCOTOHZ9Dzgs6GECDShQq9CpJuIUl IvEm150FVZU741xP3.SrfDz1UuzUN7dAMFFIBIsq7ttEsSyfvQQrSTz.YU9ZeVCjuNHZRospkhJa taJPWhqlA6lxB1JXKbUevyBAPLljWEer7WKIbxJvwMFqt5sFMDcIdE3pwBkGTOD6nNNXqmhnhcio ynLXrVuyT6nraXDk5t_Yg4riW2ZpKeyUymGIB.nRNrWFYqOrRjCsRPH_z4IzXMG7IQIsc9_BXXWd dPRwmS7c1bUf.eSyO32ePy.mY5THt_6c1mnQkGab2l6IScGxKhF.q09tunWKad4OGw_Hcm.PBdUV POrO.3Kcc4sRO_1rlxBwwK_cfFDacm24HSqSoJOt26jJ2Q4Hjs6JO9.qk7H0WlrFIJ6QJsbd22yU CXO9Ody595kUE0DpqV8xUAqBuEB7f4adv1lHvpsWXSBuoBkWEY.KeDCt__BV0Iy04PGYxSG8_cOH PodzAxxRHUzB1QPpgek.cLlq2eIXUulGM3u43mwki5IzO5xTBhbrN1iZe5kKmRt7VzSi1S.H8bLb 0fbZlLgu289XcEchCjdw.t2yHOjHrgFE34O3dqMJZOQ7Wo2JFa9gxhhG.jskLVhS8Tdean1bb7Wh QOLcvMFAUPQ1bObEmxFaNl6e7V6xTbBBq2c8- Received: from sonic.gate.mail.ne1.yahoo.com by sonic307.consmr.mail.gq1.yahoo.com with HTTP; Sat, 3 Oct 2020 02:35:53 +0000 Received: by smtp420.mail.ne1.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID b3cf9aca45740e738faced47234fb048; Sat, 03 Oct 2020 02:35:48 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.1\)) Subject: Re: RPi4B 3 GiByte pcie limitation: The following change survived my huge-file duplicate-and-diff tests so far Date: Fri, 2 Oct 2020 19:35:47 -0700 References: <7506FD70-D814-4F64-BFAF-CCCE9A0D71A3@yahoo.com> To: Robert Crowston , freebsd-arm In-Reply-To: <7506FD70-D814-4F64-BFAF-CCCE9A0D71A3@yahoo.com> Message-Id: <447B28E3-3964-4498-A91D-528EA5923793@yahoo.com> X-Mailer: Apple Mail (2.3608.120.23.2.1) X-Rspamd-Queue-Id: 4C39vw0QCdz4vRy X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.23 / 15.00]; MV_CASE(0.50)[]; FREEMAIL_FROM(0.00)[yahoo.com]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[yahoo.com:+]; RCPT_COUNT_TWO(0.00)[2]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; NEURAL_HAM_SHORT(-0.70)[-0.695]; FREEMAIL_TO(0.00)[protonmail.com,freebsd.org]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US]; MID_RHS_MATCH_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[yahoo.com:dkim]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.04)[-1.044]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-0.99)[-0.991]; MIME_GOOD(-0.10)[text/plain]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[98.137.64.32:from]; RWL_MAILSPIKE_POSSIBLE(0.00)[98.137.64.32:from]; RCVD_COUNT_TWO(0.00)[2]; MAILMAN_DEST(0.00)[freebsd-arm] X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Oct 2020 02:35:58 -0000 [Operator error note and another note.] On 2020-Oct-2, at 13:56, Mark Millard wrote: > It appears to me that 3 GiByte works for lowaddr and > maxsize but that the maxsegsz needs to be limited to > 1 GiByte [or so, maybe (1 Gi - 1) Bytes]. >=20 > I did the following based on all those notes that I > sent out, that included the ?_TXFR_LEN being limited > 30 bits for (normal) DMA engines (0-6) and the DMA4 > engines (11-14) [but not DMA LITE (7-10)]: Ignore: I had the wrong kernel build installed. In fact the below fails when the intended kernel is tested. > # svnlite diff /usr/src/sys/arm/broadcom/bcm2835/bcm2838_pci.c = /usr/src/sys/arm/broadcom/bcm2835/bcm2838_xhci.c > Index: /usr/src/sys/arm/broadcom/bcm2835/bcm2838_pci.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- /usr/src/sys/arm/broadcom/bcm2835/bcm2838_pci.c (revision = 365932) > +++ /usr/src/sys/arm/broadcom/bcm2835/bcm2838_pci.c (working copy) > @@ -105,7 +105,8 @@ > * > * Whatever the true maximum address, 960 MiB works. > */ > -#define DMA_HIGH_LIMIT 0x3c000000 > +#define DMA_SEG_HIGH_LIMIT 0x3c000000 > +#define DMA_TOTAL_HIGH_LIMIT 0xc0000000 > #define MAX_MEMORY_LOG2 0x21 > #define REG_VALUE_DMA_WINDOW_LOW (MAX_MEMORY_LOG2 - 0xf) > #define REG_VALUE_DMA_WINDOW_HIGH 0x0 > @@ -642,12 +643,12 @@ > */ > error =3D bus_dma_tag_create(bus_get_dma_tag(dev), /* parent */ > 1, 0, /* alignment, bounds */ > - DMA_HIGH_LIMIT, /* lowaddr */ > + DMA_TOTAL_HIGH_LIMIT, /* lowaddr */ > BUS_SPACE_MAXADDR, /* highaddr */ > NULL, NULL, /* filter, filterarg */ > - DMA_HIGH_LIMIT, /* maxsize */ > + DMA_TOTAL_HIGH_LIMIT, /* maxsize */ > BUS_SPACE_UNRESTRICTED, /* nsegments */ > - DMA_HIGH_LIMIT, /* maxsegsize */ > + DMA_SEG_HIGH_LIMIT, /* maxsegsize */ > 0, /* flags */ > NULL, NULL, /* lockfunc, lockarg */ > &sc->dmat); >=20 >=20 > Then, with such a kernel installed, I used: >=20 > -rw-r--r-- 1 root wheel 11570948096 Jul 18 18:32:37 2020 = clang-armv7-on-aarch64.tar >=20 > (so much larger than the 8 GiByte RAM) and did the following with > the file: >=20 > # cp -aRx clang-armv7-on-aarch64.tar clang-armv7-on-aarch64.alt_tar > # diff clang-armv7-on-aarch64.tar clang-armv7-on-aarch64.alt_tar > # >=20 > Such tests have been passing. >=20 > I do not know what your test procedures were. But if the above > is suggestive, you might want to try testing something like the > above via your test procedures. Going in a different direction for potential maxsegsz figures (and the like): xhci instead of bcm2711 material . . . extensible-host-controler-interface-usb-xhci.pdf reports that normal TRB Transfer Length fields have bits 16:0 and "Valid values are 0 to 64K". (Transfer Event TRB Transfer Lengths have 23:0 but above 0x10000 as a value is only for Event Data flag being 1 or for condition code is stopped - short packet.) I've not experimented with this. =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)