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

Pali Rohár pali at kernel.org
Wed Oct 14 15:20:19 CEST 2020


On Wednesday 14 October 2020 10:45:33 Pali Rohár wrote:
> 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.

MOX has uSD slot for uSD card and SDIO slot for SDIO wifi card, both
removable. Standard product configuration does not contain SDIO wifi
card, but kernel's DTS file have it enabled by default:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts

So it is really problem to enable eMMC by default on espressobin?


More information about the U-Boot mailing list