[PATCH v2 3/3] arm64: dts: a3720: add support for espressobin with populated emmc

Pali Rohár pali at kernel.org
Wed Oct 14 10:45:33 CEST 2020


On Wednesday 14 October 2020 10:37:57 Andre Heider wrote:
> On 14/10/2020 10:21, Pali Rohár wrote:
> 
> <snip>
> 
> > > > diff --git a/doc/README.marvell b/doc/README.marvell
> > > > index 5416bc3035..be07f31f8c 100644
> > > > --- a/doc/README.marvell
> > > > +++ b/doc/README.marvell
> > > > @@ -43,8 +43,11 @@ Build Procedure
> > > >            In order to prevent this, the required device-tree MUST be set during compilation.
> > > >            All device-tree files are located in ./arch/arm/dts/ folder.
> > > > -	For other DB boards (MacchiatoBin, EspressoBin and 3700 DB board) compile u-boot with
> > > > -	just default device-tree from defconfig using:
> > > > +	For the EspressoBin board with populated eMMC device use
> > > > +		# make DEVICE_TREE=armada-3720-espressobin-emmc
> > > > +
> > > > +	For other DB boards (MacchiatoBin, EspressoBin without soldered eMMC and 3700 DB board)
> > > > +	compile u-boot with just default device-tree from defconfig using:
> > 
> > Hello! Does not it really make sense to do autodetection of eMMC
> > presence and enable it in U-Boot code only when needed and therefore
> > avoid having two DTS files and needs for specifying DEVICE_TREE variable
> > and therefore variant of Espressobin, as I stated in previous emails?
> > 
> > I think this just complicates build process... E.g. we already have a
> > code in U-Boot which detects V5 vs V7 variant.
> 
> I still like the idea, but I'm still hesitating to just enable the emmc
> everywhere. There's the issue with powering down the emmc block if it's not
> populated. How would that work once we switch to atf for comphy control?

Is there issue with powering it down? I just do not know about it. And
could we fix it?

> From a different angle: If we could just do that, why does Linux have
> different devicetrees?

I do not know exact answer, so I just guess two reasons:

1) historic, nobody wanted to think about it, so rather created
secondary DTS

2) linux driver model does not have API and solution how to do this
auto-detection and in case of absence, turn blocks off and reconfigure
it.

IIRC similar problem was with MOX (also based on A3720) and final
solution is that kernel has only one DTB and U-Boot "modifies" it prior
booting kernel, based on autodetection which U-Boot did. Similarly like
MAC address of MTD partitions are put into espressobin DTB prior booting
kernel.

> 
> Regards,
> Andre


More information about the U-Boot mailing list