[PATCH v2] arm: mvebu: Espressobin: Set environment variable fdtfile

Pali Rohár pali at kernel.org
Sat Oct 3 10:50:01 CEST 2020


On Saturday 03 October 2020 09:17:35 Andre Heider wrote:
> On 02/10/2020 12:49, Pali Rohár wrote:
> > On Saturday 26 September 2020 11:09:59 Andre Heider wrote:
> > > On 25/09/2020 09:46, Pali Rohár wrote:
> > > > On Friday 11 September 2020 06:35:10 Andre Heider wrote:
> > > ...
> > > > > +#ifdef CONFIG_BOARD_LATE_INIT
> > > > > +int board_late_init(void)
> > > > > +{
> > > > > +	bool ddr4, emmc;
> > > > > +
> > > > > +	if (env_get("fdtfile"))
> > > > > +		return 0;
> > > > > +
> > > > > +	if (!of_machine_is_compatible("globalscale,espressobin"))
> > > > > +		return 0;
> > > > > +
> > > > > +	/* If the memory controller has been configured for DDR4, we're running on v7 */
> > > > > +	ddr4 = ((readl(A3700_CH0_MC_CTRL2_REG) >> A3700_MC_CTRL2_SDRAM_TYPE_OFFS)
> > > > > +		& A3700_MC_CTRL2_SDRAM_TYPE_MASK) == A3700_MC_CTRL2_SDRAM_TYPE_DDR4;
> > > > > +
> > > > > +	emmc = of_machine_is_compatible("globalscale,espressobin-emmc");
> > > > 
> > > > Maybe stupid question, but are not we able to detect if eMMC is
> > > > connected or not at runtime? That could simplify setup and avoid usage
> > > > of additional special DTS file for eMMC in U-Boot.
> > > 
> > > At some point I wondered about the same.
> > > 
> > > IIRC armbian just enables it and uses one u-boot binary everywhere. A
> > > non-existing chip won't get detected, so that shouldn't be a problem.
> > > 
> > > But I think it has more to do with enabling/powering up hardware blocks,
> > > which is not wanted or may even problematic.
> > 
> > In U-Boot such functionality may be implemented in board_fix_fdt()
> > function which allows U-Boot to modify its Device tree prior using it.
> > 
> > You have already wrote code which is doing V5 vs V7 detection, so
> > detecting eMMC is the last thing which is missing to have just one
> > U-Boot DTS file and therefore only one U-Boot binary for Espressobin.
> 
> That implies setting status=okay for the emmc node, which then powers up
> that block. I don't know if that might be problematic. Can we just do that?

No. I mean to detect presence of eMMC in board_fix_fdt() and then set
tatus=okay only if check passed.

> The emmc detection would also add some delay to the boot process.
> 
> At least it should be powered down if no emmc chip has been detected, but I
> didn't check if that happens right now.
> 
> Regards,
> Andre


More information about the U-Boot mailing list