Re: [PATCH v2 4/5] arm64: dts: google: Add initial dts for frankel/blazer/mustang
Doug Anderson <[email protected]>
| Newsgroups | org.kernel.vger.linux-serial,dev.linux.lists.soc,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.linux-samsung-soc |
|---|---|
| Message-ID | <CAD=FV=VuVdq_=TQmONJZak84S2c2-2yQ8DS0k_odYsUfg0C+rQ@mail.gmail.com> |
Hi, On Wed, Aug 19, 2026 at 1:29 AM Linus Walleij <[email protected]> wrote: > > > Is there some other documentation saying "aliases == evil" that I > > missed? Maybe some email thread we're all supposed to have read? > > Yes, kind of, it was 10 years ago and about MMC aliases for > selecting a primary device for boot: > https://lore.kernel.org/lkml/CAD=FV=XLuPWKjQBMLApRQxk0K30p_TPcztB7g_1DB7iRA9BGRQ@mail.gmail.com/T/ > and you were in the thread, it's not pretty, leaves a bad aftertaste. > For, I think, reasons stated in my initial paragraph. > > The takeway is something like "the device enumeration is policy, > not hardware information, so it should not be encoded into > the device tree", and that is not an argument about aliases > per se. > > As a result (as I think, I may be wrong) MMC gained a few > properties such as: > non-removable; > no-sd; > no-mmc; > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/mmc/mmc-controller-common.yaml > > These provide a heuristic for which devices to inspect for boot. > Then on top of that I think people use schemes like EFI for finding > boot devices. (Or they still live with their quirks...) Yup, I was definitely involved in that conversation around mmc. ...and yes, that was a frustrating topic. Though I guess I remember things a bit differently / have a different takeaway. Specifically: * The whole argument there was about people not liking the idea of assigning "numbers" to MMC nodes. As I have said, I'm OK with not having a number here and it's not central to my needs. Said another way, people seemed to hate assigning a numeric ID to hardware devices, which is not my goal here. * The "mmc numbering" patches were (independently) sent again and again by people because (shockingly, I know) people found it useful to have their MMC devices enumerate with consistent numbers. * In the end, support for "mmc aliases" was landed. See commit fa2d0aa96941 ("mmc: core: Allow setting slot index via device tree alias"). > Now this ufs0 node seems to be about calibration of some sort, > which is a more hardware adjacent subject. Is there a way to > add the entity that needs this calibration to the device tree and > reference the UFS device with a phandle along the lines of: > > calibration-storage = <&ufs_node>; > > ? > > Even say adding a synthetic modem node if the calibration is > for a modem is probably going to be more acceptable than an > alias. The crux of the issue is that the bootloader needs to add UFS calibration to the device tree provided to it, and later the UFS driver in Linux needs to find this calibration data. Since the device tree lives outside the firmware and is provided to it, the firmware should make the fewest assumptions about the device tree possible. Having the firmware hardcode the path to the UFS node doesn't seem ideal, since (I believe) device tree paths aren't guaranteed to stay consistent according to the device tree ABI. This, and the current downstream device tree path differs from what upstream would accept. Using an alias seems (to me) to be a reasonable solution. However, I've tried to express that I'm open to concrete ideas. I appreciate your suggestion of having a separate node for calibration storage. This feels more awkward to me than just giving up and having the bootloader hardcode all known device-tree paths that the UFS node might be found at. That being said, if everyone says that this would be a great solution, I could try prototyping it. The trick would now be that the Linux UFS driver would need to be able to find this calibration data, so the Linux UFS driver would either need to be able to find it at a specific hardcoded device tree path or the Linux UFS driver would need to search the device tree for a specific ufs-calibration compatible string. -Doug