linux-clk.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Janne Grunau <j@jannau.net>
Cc: "Sven Peter" <sven@kernel.org>,
	"Alyssa Rosenzweig" <alyssa@rosenzweig.io>,
	"Neal Gompa" <neal@gompa.dev>,
	"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"Hector Martin" <marcan@marcan.st>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	"Viresh Kumar" <viresh.kumar@linaro.org>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Joerg Roedel" <joro@8bytes.org>, "Will Deacon" <will@kernel.org>,
	"Robin Murphy" <robin.murphy@arm.com>,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Mark Kettenis" <kettenis@openbsd.org>,
	"Andi Shyti" <andi.shyti@kernel.org>,
	"Jassi Brar" <jassisinghbrar@gmail.com>,
	"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
	"Maxime Ripard" <mripard@kernel.org>,
	"Thomas Zimmermann" <tzimmermann@suse.de>,
	"David Airlie" <airlied@gmail.com>,
	"Simona Vetter" <simona@ffwll.ch>,
	"Sasha Finkelstein" <fnkl.kernel@gmail.com>,
	"Marcel Holtmann" <marcel@holtmann.org>,
	"Luiz Augusto von Dentz" <luiz.dentz@gmail.com>,
	"Johannes Berg" <johannes@sipsolutions.net>,
	"van Spriel" <arend@broadcom.com>, "Lee Jones" <lee@kernel.org>,
	"Uwe Kleine-König" <ukleinek@kernel.org>,
	"Stephen Boyd" <sboyd@kernel.org>,
	"Wim Van Sebroeck" <wim@linux-watchdog.org>,
	"Guenter Roeck" <linux@roeck-us.net>,
	"Michael Turquette" <mturquette@baylibre.com>,
	"Martin Povišer" <povik+lin@cutebit.org>,
	"Vinod Koul" <vkoul@kernel.org>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Marc Zyngier" <maz@kernel.org>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Keith Busch" <kbusch@kernel.org>, "Jens Axboe" <axboe@kernel.dk>,
	"Christoph Hellwig" <hch@lst.de>,
	"Sagi Grimberg" <sagi@grimberg.me>,
	"Jaroslav Kysela" <perex@perex.cz>,
	"Takashi Iwai" <tiwai@suse.com>,
	asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-pm@vger.kernel.org, iommu@lists.linux.dev,
	linux-gpio@vger.kernel.org, linux-i2c@vger.kernel.org,
	dri-devel@lists.freedesktop.org, linux-bluetooth@vger.kernel.org,
	linux-wireless@vger.kernel.org, linux-pwm@vger.kernel.org,
	linux-watchdog@vger.kernel.org, linux-clk@vger.kernel.org,
	dmaengine@vger.kernel.org, linux-sound@vger.kernel.org,
	linux-spi@vger.kernel.org, linux-nvme@lists.infradead.org
Subject: Re: [PATCH 00/37] arm64: Add initial device trees for Apple M2 Pro/Max/Ultra devices
Date: Tue, 2 Sep 2025 14:54:34 -0500	[thread overview]
Message-ID: <20250902194528.GA1014943-robh@kernel.org> (raw)
In-Reply-To: <20250830071620.GD204299@robin.jannau.net>

On Sat, Aug 30, 2025 at 09:16:20AM +0200, Janne Grunau wrote:
> On Fri, Aug 29, 2025 at 02:51:19PM -0500, Rob Herring wrote:
> > On Thu, Aug 28, 2025 at 04:01:19PM +0200, Janne Grunau wrote:
> > > This series adds device trees for Apple's M2 Pro, Max and Ultra based
> > > devices. The M2 Pro (t6020), M2 Max (t6021) and M2 Ultra (t6022) SoCs
> > > follow design of the t600x family so copy the structure of SoC *.dtsi
> > > files.
> > > 
> > > t6020 is a cut-down version of t6021, so the former just includes the
> > > latter and disables the missing bits.
> > > 
> > > t6022 is two connected t6021 dies. The implementation seems to use
> > > t6021 and disables blocks based on whether it is useful to carry
> > > multiple instances. The disabled blocks are mostly on the second die.
> > > MMIO addresses on the second die have a constant offset. The interrupt
> > > controller is multi-die aware. This setup can be represented in the
> > > device tree with two top level "soc" nodes. The MMIO offset is applied
> > > via "ranges" and devices are included with preprocessor macros to make
> > > the node labels unique and to specify the die number for the interrupt
> > > definition.
> > > 
> > > The devices itself are very similar to their M1 Pro, M1 Max and M1 Ultra
> > > counterparts. The existing device templates are SoC agnostic so the new
> > > devices can reuse them and include their t602{0,1,2}.dtsi file. The
> > > minor differences in pinctrl and gpio numbers can be easily adjusted.
> > > 
> > > With the t602x SoC family Apple introduced two new devices:
> > > 
> > > The M2 Pro Mac mini is similar to the larger M1 and M2 Max Mac Studio. The
> > > missing SDHCI card reader and two front USB3.1 type-c ports and their
> > > internal USB hub can be easily deleted.
> > > 
> > > The M2 Ultra Mac Pro (tower and rack-mount cases) differs from all other
> > > devices but may share some bits with the M2 Ultra Mac Studio. The PCIe
> > > implementation on the M2 Ultra in the Mac Pro differs slightly. Apple
> > > calls the PCIe controller "apcie-ge" in their device tree. The
> > > implementation seems to be mostly compatible with the base t6020 PCIe
> > > controller. The main difference is that there is only a single port with
> > > with 8 or 16 PCIe Gen4 lanes. These ports connect to a Microchip
> > > Switchtec PCIe switch with 100 lanes to which all internal PCIe devices
> > > and PCIe slots connect too.
> > > 
> > > This series does not include PCIe support for the Mac Pro for two
> > > reasons:
> > > - the linux switchtec driver fails to probe and the downstream PCIe
> > >   connections come up as PCIe Gen1
> > > - some of the internal devices require PERST# and power control to come
> > >   up. Since the device are connected via the PCIe switch the PCIe
> > >   controller can not do this. The PCI slot pwrctrl can be utilized for
> > >   power control but misses integration with PERST# as proposed in [1].
> > > 
> > > This series depends on "[PATCH v2 0/5] Apple device tree sync from
> > > downstream kernel" [2] due to the reuse of the t600x device templates
> > > (patch dependencies and DT compilation) and 4 page table level support
> > > in apple-dart and io-pgtable-dart [3] since the dart instances report
> > > 42-bit IAS (IOMMU device attach fails without the series).
> > > 
> > > After discussion with the devicetree maintainers we agreed to not extend
> > > lists with the generic compatibles anymore [1]. Instead either the first
> > > compatible SoC or t8103 is used as fallback compatible supported by the
> > > drivers. t8103 is used as default since most drivers and bindings were
> > > initially written for M1 based devices.
> > 
> > An issue here is any OS without the compatibles added to the drivers 
> > won't work. Does that matter here? Soon as you need any new drivers or 
> > significant driver changes it won't. The compatible additions could be 
> > backported to stable. They aren't really any different than new PCI IDs 
> > which get backported.
> 
> I don't think backporting the driver compatible additions to stable
> linux is very useful. It is only relevant for t602x devices and the only
> way to interact with them is the serial console. The T602x PCIe support
> added in v6.16 requires dart changes (the posted 4th level io page table
> support) to be useful. After that PCIe ethernet works so there is a
> practical way to interact with t602x systems. So there are probably zero
> user of upstream linux on those devices 
> I'm more concerned about other projects already supporting t602x
> devices. At least u-boot and OpenBSD will be affected by this. As short
> term solution m1n1 will add the generic compatibles [1] temporarily.
> I think keeping this roughly for a year should allow to add the
> compatibles and wait for "fixed" releases of those projects.
> I'll send fixes for u-boot once the binding changes are reviewed.

Honestly, at least in the cases where the generic compatible works for 
every chip so far, I'd just stick with it. The issue with generic 
compatibles is more that you don't really know if things are going to be 
the same or not. And most of the time, the h/w ends up changing.

If you want to keep it like this since you've already done it, then for 
all the binding patches:

Acked-by: Rob Herring (Arm) <robh@kernel.org>

Rob

  reply	other threads:[~2025-09-02 19:54 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-28 14:01 [PATCH 00/37] arm64: Add initial device trees for Apple M2 Pro/Max/Ultra devices Janne Grunau
2025-08-28 14:01 ` [PATCH 01/37] dt-bindings: arm: apple: Add t6020x compatibles Janne Grunau
2025-09-02  7:59   ` Krzysztof Kozlowski
2025-08-28 14:01 ` [PATCH 02/37] dt-bindings: arm: apple: apple,pmgr: Add t6020-pmgr compatible Janne Grunau
2025-09-02  8:00   ` Krzysztof Kozlowski
2025-08-28 14:01 ` [PATCH 03/37] pmdomain: apple: Add "apple,t8103-pmgr-pwrstate" Janne Grunau
2025-08-28 14:01 ` [PATCH 04/37] dt-bindings: power: apple,pmgr-pwrstate: Add t6020 compatible Janne Grunau
2025-08-28 14:01 ` [PATCH 05/37] dt-bindings: cpufreq: apple,cluster-cpufreq: " Janne Grunau
2025-08-28 14:01 ` [PATCH 06/37] dt-bindings: interrupt-controller: apple,aic2: Add apple,t6020-aic compatible Janne Grunau
2025-08-28 14:01 ` [PATCH 07/37] dt-bindings: iommu: dart: Add apple,t6020-dart compatible Janne Grunau
2025-08-28 14:01 ` [PATCH 08/37] pinctrl: apple: Add "apple,t8103-pinctrl" as compatible Janne Grunau
2025-08-28 20:59   ` Linus Walleij
2025-08-28 14:01 ` [PATCH 09/37] dt-bindings: pinctrl: apple,pinctrl: Add apple,t6020-pinctrl compatible Janne Grunau
2025-08-28 20:59   ` Linus Walleij
2025-08-28 14:01 ` [PATCH 10/37] dt-bindings: i2c: apple,i2c: Add apple,t6020-i2c compatible Janne Grunau
2025-08-28 14:01 ` [PATCH 11/37] dt-bindings: mailbox: apple,mailbox: Add t6020 compatible Janne Grunau
2025-08-28 14:01 ` [PATCH 12/37] dt-bindings: gpu: apple,agx: Add agx-{g14s,g14c,g14d} compatibles Janne Grunau
2025-08-28 14:01 ` [PATCH 13/37] dt-bindings: iommu: apple,sart: Add apple,t6020-sart compatible Janne Grunau
2025-08-28 14:01 ` [PATCH 14/37] nvme-apple: Add "apple,t8103-nvme-ans2" as compatible Janne Grunau
2025-08-28 14:01 ` [PATCH 15/37] dt-bindings: nvme: apple: Add apple,t6020-nvme-ans2 compatible Janne Grunau
2025-08-28 14:01 ` [PATCH 16/37] dt-bindings: net: bcm4377-bluetooth: Add BCM4388 compatible Janne Grunau
2025-08-28 14:01 ` [PATCH 17/37] dt-bindings: net: bcm4329-fmac: Add BCM4388 PCI compatible Janne Grunau
2025-08-28 14:01 ` [PATCH 18/37] mfd: macsmc: Add "apple,t8103-smc" compatible Janne Grunau
2025-09-03 13:33   ` (subset) " Lee Jones
2025-08-28 14:01 ` [PATCH 19/37] dt-bindings: mfd: apple,smc: Add t6020-smc compatible Janne Grunau
2025-08-28 14:01 ` [PATCH 20/37] dt-bindings: pwm: apple,s5l-fpwm: Add t6020-fpwm compatible Janne Grunau
2025-08-28 14:01 ` [PATCH 21/37] spmi: apple: Add "apple,t8103-spmi" compatible Janne Grunau
2025-08-28 14:01 ` [PATCH 22/37] dt-bindings: spmi: apple,spmi: Add t6020-spmi compatible Janne Grunau
2025-08-28 14:01 ` [PATCH 23/37] watchdog: apple: Add "apple,t8103-wdt" compatible Janne Grunau
2025-08-28 14:01 ` [PATCH 24/37] dt-bindings: watchdog: apple,wdt: Add t6020-wdt compatible Janne Grunau
2025-08-28 14:01 ` [PATCH 25/37] clk: clk-apple-nco: Add "apple,t8103-nco" compatible Janne Grunau
2025-08-28 14:01 ` [PATCH 26/37] dt-bindings: clock: apple,nco: Add t6020-nco compatible Janne Grunau
2025-08-28 14:01 ` [PATCH 27/37] dmaengine: apple-admac: Add "apple,t8103-admac" compatible Janne Grunau
2025-08-28 14:01 ` [PATCH 28/37] dt-bindings: dma: apple,admac: Add t6020-admac compatible Janne Grunau
2025-08-28 14:01 ` [PATCH 29/37] ASoC: apple: mca: Add "apple,t8103-mca" compatible Janne Grunau
2025-08-28 14:20   ` Mark Brown
2025-08-28 14:01 ` [PATCH 30/37] ASoC: dt-bindings: apple,mca: Add t6020-mca compatible Janne Grunau
2025-08-28 14:22   ` Mark Brown
2025-08-28 15:16 ` [PATCH 00/37] arm64: Add initial device trees for Apple M2 Pro/Max/Ultra devices Neal Gompa
2025-08-28 16:11 ` Nick Chan
2025-08-28 16:50   ` Janne Grunau
2025-08-28 17:18     ` Nick Chan
2025-08-29 19:51 ` Rob Herring
2025-08-30  7:16   ` Janne Grunau
2025-09-02 19:54     ` Rob Herring [this message]
2025-09-04 12:24       ` Janne Grunau
2025-09-02  8:15 ` Krzysztof Kozlowski
2025-09-04 10:41 ` Ulf Hansson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250902194528.GA1014943-robh@kernel.org \
    --to=robh@kernel.org \
    --cc=airlied@gmail.com \
    --cc=alyssa@rosenzweig.io \
    --cc=andi.shyti@kernel.org \
    --cc=arend@broadcom.com \
    --cc=asahi@lists.linux.dev \
    --cc=axboe@kernel.dk \
    --cc=broonie@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmaengine@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=fnkl.kernel@gmail.com \
    --cc=hch@lst.de \
    --cc=iommu@lists.linux.dev \
    --cc=j@jannau.net \
    --cc=jassisinghbrar@gmail.com \
    --cc=johannes@sipsolutions.net \
    --cc=joro@8bytes.org \
    --cc=kbusch@kernel.org \
    --cc=kettenis@openbsd.org \
    --cc=krzk+dt@kernel.org \
    --cc=lee@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=linux-sound@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=linux-watchdog@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=luiz.dentz@gmail.com \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=marcan@marcan.st \
    --cc=marcel@holtmann.org \
    --cc=maz@kernel.org \
    --cc=mripard@kernel.org \
    --cc=mturquette@baylibre.com \
    --cc=neal@gompa.dev \
    --cc=perex@perex.cz \
    --cc=povik+lin@cutebit.org \
    --cc=rafael@kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=sagi@grimberg.me \
    --cc=sboyd@kernel.org \
    --cc=simona@ffwll.ch \
    --cc=sven@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=tiwai@suse.com \
    --cc=tzimmermann@suse.de \
    --cc=ukleinek@kernel.org \
    --cc=ulf.hansson@linaro.org \
    --cc=viresh.kumar@linaro.org \
    --cc=vkoul@kernel.org \
    --cc=will@kernel.org \
    --cc=wim@linux-watchdog.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).