From nobody Thu Dec 15 22:29:21 2022 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4NY6Nj6JLDz4gd2Y for ; Thu, 15 Dec 2022 22:29:41 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic306-21.consmr.mail.gq1.yahoo.com (sonic306-21.consmr.mail.gq1.yahoo.com [98.137.68.84]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4NY6Nj09Hmz4QQJ for ; Thu, 15 Dec 2022 22:29:40 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=yahoo.com header.s=s2048 header.b=FKxZ+wAY; spf=pass (mx1.freebsd.org: domain of marklmi@yahoo.com designates 98.137.68.84 as permitted sender) smtp.mailfrom=marklmi@yahoo.com; dmarc=pass (policy=reject) header.from=yahoo.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1671143379; bh=DgXuMQRoeymP0ya+NHRQuyaaR8WAeIYaSXPV09z2scE=; h=From:Subject:Date:To:References:From:Subject:Reply-To; b=FKxZ+wAYbVc6RxPNKL6vIwNRL4ek3pBmg/pynXS6nVVyDtaKpev80w/lHD35mNJ36P28mgvZAaAzHnXuk9zCinEd55h3kYW78KEMk+AYjXNbv5AeyDmeO6cUtBhtTb3DObNRxyVXyWeJGGMoTa+o5gSmKfhwiPcwadIplLNDKPYJ00qfse+ITn+zj50JG6j1swXPT4j1rbGewg0r05Cfjr6CMEeWFF/n4E5EjTcydhHfSCpenQzIhkuCGjnLepX05aR53m2dOFn7fHVEZ0yAl8Dgobx725YxawlXvF72stzjJohzV+3+JkiNRpFeHydCJ8FWWWTuygJEo+TePN2rhQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1671143379; bh=mj2q+/CQz/5g7lNDvvKqLuFYBviMpekvpeD/XN+99Lu=; h=X-Sonic-MF:From:Subject:Date:To:From:Subject; b=Xm0s8+RIkca4Q02gvA/jfcCYVMELSAkB0WkXGtJGeZ4DLhTBkP1i422qu4nPMrvG5alM8fIUhQtPxZN2ChkkRliIFxtD48h5+iHLxMKj0NS3M6/O3H1RNFDzJd+C9l/YragqmjOu1v/FtDLKwh08Il9CiZ8kJVoSSbokEVd2fz3SFy6PFkdPkj+7YFNHJV47+idoW5vgmAS+C7eVW7yRGpODuZmazrAGM9w40RO3bQaHuAc87HuO2hA4yRtygYQp434J1LyW0UDCA4+5LhaZi7lXbTpP6WIGSPRuTr0ZzxMXTOHy+Ly5akWQPRCWM8pftIEtxcmvj1OU2MTu2nud5g== X-YMail-OSG: M7qrLWAVM1kNrQ264tenYvV.l.5Z5Cp7eCiHX_PwCSexhgx9dYIeGAe4g80f4MX kfLxSPKSDomYzU340fp6spUySPx6pr_5ygeZPfWgkREGjBZkKaaum2PYvShU5xO9O7nQDg0S.6dv 22DO_EL_6OyCuQ5sNyGBaoim2T_bBn_6iDFq9UEjW7W5sPu4vMY__1pk73bV.0qgT0HBGP58FPBi j_oXwwRQyk6rLgXcD.OSgubCNPyebiWHovPV7IK1GoiwOPk7R0XID1EKTr.uwRPc3aQiIiOS8ZB_ VUvRRc3T9HJXee77yvlUqGFmKTV1F5EaMZ5otjskp_YGkKtvJJv0oxrUdhM71QrKPDmiaPjUVO.6 11E7tU1emvu7jMSHeE_M7GzdJh46Ttqc_fqlDBKqPb.ptmU7ktPb9LRoyImAmtVQBZSRz7y4dvN. ERyJHpPMhPTmVLWHGTlOODBOkiPpTHJqhd_4QqWo.5MlhSNJMWluCka4M4XSTfIYLWhIYiKCSJuO PQP3AbW6FaQEXEroSPN_lt29cdK2iiUOlcTKMvV75PtznK_P2x_zIIV.ItgME0NgRYgqpiiYz2jQ AcuHdn8oN71Zq8Rgom6ljZ63z4gUGEirobJ9A.l3TnKFgVFjg0cJb4HQ_jiB93FUNBc6BbfF97Wg BUTb_LKw7HasKaGRS8On48Pg7KGj4I9jCmUIkGOg0ZO_v7y.sSeZXtsqjobIu5EGEi8AAchsl8W9 st3wl.GbB4E1VwH_4Yf4sCiXtmKh1fmwJm.Knlzu1Pr465vEy1ySRKSOvOtkfl8Uyk0nhlMKkL3u Ip6a7FR_hV5SYki8VD2YcuxtfsS8oxqWt4aHEuKo0ToQXdklWVNSsMEQkgozQlHg01H7ig2fnN2M Hy5T38E5ROX0Ijdy0QTxshqqjG.yOj9Hg1fzChsABSLMJ40UJ_SebTFsdtYD3ltxdYSxm1IuFYIT TRwczIyL1YP3Raa5CQvuZAZTi1skcDQq_yWXfKiW3gPRLV5Pk28MLm4meZIgAW4M.fwVBVwFQasO oyWlFfmyy6jU5GMydMe2vqJHUvqvuBjFugD2uXQth93uM_5oq6c.PlNpYeKgtESa0ef04sXvy8nc V7bT1FBeQntOMeoWkeHcMfsDYatmYxLsHDLbTfn0aDYx5gDCKP_BhZ7iZ_19wsRJ.t7D3P4IzTQ6 VDAk5PNtIMEGwPlAfo7_A2PQD9mUpIA9K0kbINGmTQhaz2xQpV2ZZOMgvBQfr6Tpda6Wa5KJ9TMG dcNHNX3eBo_x8yFzECA.l1tYKnN2m40w1gCLeyoZsuILHy9pbaCTq30i4JGN9Dl_AQQVo0cN5sRd qtW8HyEMJpS.gitx8Bxezp6HT9CUlc5aiahiq_ESgT39vsE8RgJ7Q7F5el7sq3nJrz85iefUbCq4 zNt6k_1WLAUcsnFv5RcxYxb7FwVidmyaOORcyBqUwCW9uhqYEka9BL30cEcUOWt9WrYMLMQ1.6JL K6vyVKfztDgTEIjipsUr_Sl9LchMxtSquBjFufCjlBwtKNaD.thT7ruMtNs_tjIkDldGOGL1EmDA 9_Of4d7bPSp_SfSuNK2_JHG.JnrK.36VtNs42uHcFkbD3zySurOORgg3uLtqDCyfhBKwSf49Vpt4 KfFHTXWWE4V6VuO1dw4_yG5kpUcNWNnIoj_bQbHAxYB7HwQh5lDZogrj.9U7oYooMk12ZrNCYIHh d1dsLB7eMLRcgUGEsJ20AhvHU59WWnm7U2V55QoTXJVMll02WbJ6SKPPDM0b2YIZ2SeKDawIDCj7 kl7avFnzPtDDbObmjU.HqKPyKpLALgg3zvfok8nk4QeYRKyaceUZFWW8CdlXtx5JlBKQBix935vl dh93grnG_0u8F_QHWlywf0GZptTIkpwTVH8LX6WWKlBoSjcYxf9gCKQBy1PuQgRfCKLyAiFGg5_2 CUcyx0tfPeXT_z249md93hDzM0mx5KGPO679fcNxE_P5D9xPFwCSU4hKcvQtltWSajL1TrIjlXho BKOiwoD5Or_e89NDjDDiWMms5sF.7jgbf16ruwOleu1KrpD7M85XCiV77FkirMsvBeDMhcWi_zvT bYDiky0jL_W1j7M7..xPIyDB1yjRjX6bbLYWNDRbl8lt23mDFXCUgNkABOnp3jFyMkJUHI7mEWG1 UiOMVHSo5QtGZd0yEm2.J_i0bdTdm4bCu_txu5z3Y4wNVXMfm1mWGk5B7GIH1IeM4V7JA_gi4.24 h.gxqnKul7Uwmy.UMYbFQFyMEG0Uf3ozEn8NZp1XYfNfuDvTKf5KB.o.kPw-- X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic306.consmr.mail.gq1.yahoo.com with HTTP; Thu, 15 Dec 2022 22:29:39 +0000 Received: by hermes--production-bf1-5458f64d4-97x65 (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID cf0927698f4f8aeb6ac951de83ea1ebf; Thu, 15 Dec 2022 22:29:34 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@freebsd.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.200.110.1.12\)) Subject: Question: device_t related code vs. FDT's lack of define before use/reference requirements: is there a normal FreeBSD technique to deal with such? Message-Id: <49DA69A2-EB65-4BF6-8234-90A22983B965@yahoo.com> Date: Thu, 15 Dec 2022 14:29:21 -0800 To: FreeBSD Hackers X-Mailer: Apple Mail (2.3731.200.110.1.12) References: <49DA69A2-EB65-4BF6-8234-90A22983B965.ref@yahoo.com> X-Spamd-Result: default: False [-2.49 / 15.00]; SUBJECT_ENDS_QUESTION(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.99)[-0.990]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; MV_CASE(0.50)[]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DWL_DNSWL_NONE(0.00)[yahoo.com:dkim]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US]; RCVD_IN_DNSWL_NONE(0.00)[98.137.68.84:from]; TO_DN_ALL(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; FREEMAIL_FROM(0.00)[yahoo.com]; MID_RHS_MATCH_FROM(0.00)[]; DKIM_TRACE(0.00)[yahoo.com:+]; RCVD_TLS_LAST(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org] X-Rspamd-Queue-Id: 4NY6Nj09Hmz4QQJ X-Spamd-Bar: -- X-ThisMailContainsUnwantedMimeParts: N While the RPi4B's provide the example here, as far as I can tell, nothing here need be RPi* specific: the question is more general for FDT involvement in the device_t related activity. Modern RPi4B live FDT's have the sequencing: mmc@7e300000 { compatible =3D "brcm,bcm2835-mmc", = "brcm,bcm2835-sdhci"; . . . dmas =3D <0x0000000c 0x0000000b>; . . . }; . . . . . . Note: the brcm,bcm2835-mmc related attach attempts to use the = later dma@7e007000 . . . instance of brcm,bcm2835-dma. (Note the 0x0000000c phandle = referenced is . . . defined below as well: reference before definition.) . . . The result is a kernel crash from a bad dereference of = bcm_dma_sc->sc_mtx . . . (really sc=3Dbcm_dma_sc then later sc->sc_mtx). . . . dma@7e007000 { compatible =3D "brcm,bcm2835-dma"; . . . interrupt-names =3D "dma0", "dma1", "dma2", = "dma3", "dma4", "dma5", "dma6", "dma7", "dma8", "dma9", "dma10"; #dma-cells =3D <0x00000001>; brcm,dma-channel-mask =3D <0x000007f5>; phandle =3D <0x0000000c>; }; . . . mmcnr@7e300000 { compatible =3D "brcm,bcm2835-mmc", = "brcm,bcm2835-sdhci"; . . . dmas =3D <0x0000000c 0x0000000b>; dma-names =3D "rx-tx"; . . . }; How is the device_t related probing and attachment of FreeBSD devices supposed to work for such a FDT ordering of the information? Are there one or more identified ways of handling such? Or does FreeBSD effectively require define before use/reference in FDT's in general? =20 The code happened to not fail back when the RPi* firmware happened to have the FDT sequencing (phandle 0x0000000b for this example): dma@7e007000 { compatible =3D "brcm,bcm2835-dma"; . . . interrupt-names =3D "dma0", "dma1", "dma2", = "dma3", "dma4", "dma5", "dma6", "dma7", "dma8", "dma9", "dma10"; #dma-cells =3D <0x00000001>; brcm,dma-channel-mask =3D <0x000007f5>; phandle =3D <0x0000000b>; }; . . . mmc@7e300000 { compatible =3D "brcm,bcm2835-mmc", = "brcm,bcm2835-sdhci"; . . . dmas =3D <0x0000000b 0x0000000b>; dma-names =3D "rx-tx"; . . . }; mmcnr@7e300000 { compatible =3D "brcm,bcm2835-mmc", = "brcm,bcm2835-sdhci"; . . . dmas =3D <0x0000000b 0x0000000b>; dma-names =3D "rx-tx"; . . . }; (which happens to be: define before use/reference). =3D=3D=3D Mark Millard marklmi at yahoo.com