public inbox for devicetree@vger.kernel.org
 help / color / mirror / Atom feed
From: Daniel Schultz <d.schultz@phytec.de>
To: Vignesh Raghavendra <vigneshr@ti.com>,
	Nathan Morrisson <nmorrisson@phytec.com>, <nm@ti.com>,
	<kristo@kernel.org>, <robh@kernel.org>, <krzk+dt@kernel.org>,
	<conor+dt@kernel.org>
Cc: <linux-arm-kernel@lists.infradead.org>,
	<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<upstream@lists.phytec.de>, Wadim Egorov <w.egorov@phytec.de>
Subject: Re: [PATCH v2 0/4] Add overlays to disable optional hardware in k3-am6xx-phycore-som boards
Date: Tue, 11 Jun 2024 15:11:59 +0200	[thread overview]
Message-ID: <4e7dd467-20be-43ce-936d-200ede6d511b@phytec.de> (raw)
In-Reply-To: <33084cb0-95f4-414d-b094-bf704376fd02@phytec.de>

Hi Vignesh,

On 10.06.24 10:07, Wadim Egorov wrote:
> Add: Daniel Schultz
>
> Am 03.06.24 um 19:41 schrieb Vignesh Raghavendra:
>> Hi Nathan,
>>
>> On 29/05/24 04:21, Nathan Morrisson wrote:
>>> Add three overlays to disable the eth phy, rtc, and spi nor. These
>>> overlays will be used to disable device tree nodes for components
>>> that are optionally not populated.
>>>
>>> v2:
>>>    - Add build time tests in makefile
>>>
>>> Nathan Morrisson (4):
>>>    arm64: dts: ti: k3-am64-phycore-som: Add serial_flash label
>>
>>
>>>    arm64: dts: ti: k3-am6xx-phycore-som: Add overlay to disable eth phy
>>>    arm64: dts: ti: k3-am6xx-phycore-som: Add overlay to disable rtc
>>>    arm64: dts: ti: k3-am6xx-phycore-som: Add overlay to disabl spi nor
>>>
>>>   arch/arm64/boot/dts/ti/Makefile               | 17 +++++++++++++++++
>>>   .../boot/dts/ti/k3-am64-phycore-som.dtsi      |  2 +-
>>>   .../ti/k3-am6xx-phycore-disable-eth-phy.dtso  | 19 
>>> +++++++++++++++++++
>>>   .../dts/ti/k3-am6xx-phycore-disable-rtc.dtso  | 15 +++++++++++++++
>>>   .../ti/k3-am6xx-phycore-disable-spi-nor.dtso  | 15 +++++++++++++++
>>>   5 files changed, 67 insertions(+), 1 deletion(-)
>>
>>>   create mode 100644 
>>> arch/arm64/boot/dts/ti/k3-am6xx-phycore-disable-eth-phy.dtso
>>>   create mode 100644 
>>> arch/arm64/boot/dts/ti/k3-am6xx-phycore-disable-rtc.dtso
>>>   create mode 100644 
>>> arch/arm64/boot/dts/ti/k3-am6xx-phycore-disable-spi-nor.dtso
>>>
>>
>> I am not sure if this a common practice to have overlays to disable
>> missing components (at least I dont see such dtso in kernel). I would
>> like to see an what DT maintainers feel as such dtsos can explode in
>> numbers.
>>
>> Is this something that U-Boot can detect and fix up for the Linux DT?
>>
>> Unpopulated SPI flash and RTC should ideally not be an issue as drivers
>> would gracefully fail albeit with some sort of error msg.
>> Not so sure about Eth PHYs though.
>>
>> Also, Are these dtso's mutually exclusive? ie can SoM have SPI flash but
>> not RTC, have RTC and SPI Flash but no ETH PHY?

Let me explain a little bit why we would like to have those overlays 
upstream.

Our SOMs come with a so-called "option tree" to produce one product with 
different components. For example, our standard part name for the 
phyCORE-AM62x is PCM-071-5432DE11I.A0 and the option tree is located 
between PCM-071 and A0. In this particular tree, the fourth character 
defines the DDR size with 2GB. If we have a customer with less memory 
requirements, we can simply produce the 1GB variant (PCM-071-5431...) 
and lower the cost.

Luckily, we can read the TI SOC part number in u-boot and disable 
non-existing components like CPU cores, GPUs, etc. in the Linux 
device-tree. However, we still need to handle all modifiable parts on 
our SOMs. For the phyCORE-AM62x, this would be the DDR size, SPI-NOR 
size and flash type (Q/OSPI), and whether the RTC and Ethernet PHY are 
populated. The DDR size can be handled completely in SPL, but for 
everything else we need to modify our Linux device-tree. The easiest and 
cleanest way to do that is by applying overlays, which are located next 
to the device-tree. I'm not a fan of letting drivers fail to probe. 
Customers with extensive product verifications most likely need to 
disable those manually, which is against the idea of buying a 
fully-functional SOM. Alternatively, we need to hard-code fixups in our 
U-Boot which means some U-Boot/Linux combinations might not boot anymore 
or we maintain them in a Phytec repository and never archive fully 
upstream status for our products.

Regarding the number of overlays. We use those three plus an additional 
one, which we need to upstream too, for the AM62x, AM62Ax, and AM64x. 
The upcoming AM62P and AM67 require one additional overlay for an 
optional, second EEPROM. In total we need 5 overlays for 5 AM6 products.

Best Regards,
Daniel



      reply	other threads:[~2024-06-11 13:12 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-28 22:51 [PATCH v2 0/4] Add overlays to disable optional hardware in k3-am6xx-phycore-som boards Nathan Morrisson
2024-05-28 22:51 ` [PATCH v2 1/4] arm64: dts: ti: k3-am64-phycore-som: Add serial_flash label Nathan Morrisson
2024-05-31  8:28   ` Wadim Egorov
2024-05-31  8:53     ` Krzysztof Kozlowski
2024-05-31  8:57       ` Wadim Egorov
2024-05-28 22:51 ` [PATCH v2 2/4] arm64: dts: ti: k3-am6xx-phycore-som: Add overlay to disable eth phy Nathan Morrisson
2024-05-28 22:51 ` [PATCH v2 3/4] arm64: dts: ti: k3-am6xx-phycore-som: Add overlay to disable rtc Nathan Morrisson
2024-05-28 22:51 ` [PATCH v2 4/4] arm64: dts: ti: k3-am6xx-phycore-som: Add overlay to disabl spi nor Nathan Morrisson
2024-05-31  8:56 ` [PATCH v2 0/4] Add overlays to disable optional hardware in k3-am6xx-phycore-som boards Wadim Egorov
2024-06-03 17:41 ` Vignesh Raghavendra
2024-06-04 23:15   ` Nathan Morrisson
2024-06-12 10:19     ` Vignesh Raghavendra
2024-06-13 23:07       ` Nathan Morrisson
2024-06-10  8:07   ` Wadim Egorov
2024-06-11 13:11     ` Daniel Schultz [this message]

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=4e7dd467-20be-43ce-936d-200ede6d511b@phytec.de \
    --to=d.schultz@phytec.de \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=kristo@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nm@ti.com \
    --cc=nmorrisson@phytec.com \
    --cc=robh@kernel.org \
    --cc=upstream@lists.phytec.de \
    --cc=vigneshr@ti.com \
    --cc=w.egorov@phytec.de \
    /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