[PATCH] sunxi: board: provide CPU idle states to loaded OS

Andre Przywara andre.przywara at arm.com
Wed Sep 6 02:12:58 CEST 2023


On Tue, 5 Sep 2023 11:37:31 +0300
Andrey Skvortsov <andrej.skvortzov at gmail.com> wrote:

Hi,

> On 23-09-05 09:27, Andre Przywara wrote:
> > On Mon,  4 Sep 2023 23:54:30 +0300
> > Andrey Skvortsov <andrej.skvortzov at gmail.com> wrote:
> > 
> > Hi Andrey,
> >   
> > > When using SCPI as the PSCI backend, firmware can wake up the CPUs and
> > > cluster from sleep, so CPU idle states are available for loaded OS to
> > > use. TF-A modifies DTB to advertise available CPU idle states, when
> > > SCPI is detected. This change copies nodes added by TF-A to any new
> > > dtb that is used for loaded OS.  
> > 
> > Why do you need that, exactly? Why not just use $fdtcontroladdr for the
> > kernel? We now keep the U-Boot copy of the .dts files in sync with the
> > kernel. If you need to modify the DT in U-Boot, for instance by applying
> > overlays, you can copy that DTB into a better suitable location first:  
> > => fdt move $fdtcontroladdr $fdt_addr_r  
> > 
> > In any case, there shall be only one DT, that one in the U-Boot image. Why
> > do you need to load another one for the kernel?  
> 
> extlinux is used by distributions (sometimes with device-specific changes especially

What distros are that? I guess some special ones, targeting embedded
devices, like the Pinephone?
And who is generating extlinux.conf then? Is that some distro specific
scripting, similar to how grub is configured?
Honest questions, I am not a user of extlinux, I mostly use UEFI
booting, or type U-Boot commands directly for experiments, or use
boot.scr, as a quick-and-dirty hack.

> for platforms not fully supported by mainline yet),

Do you need any changes to the DT? Do you need to apply overlays?
If you run on a non-mainlined platform, you could still put your DT
into the U-Boot tree, then you wouldn't need to load another DTB, which
also simplifies the deployment on the kernel/distro side.

> then U-Boot loads DT defined in
> extlinux.conf file. u-boot scripts are not used in case of extlinux at all.

That's fine, you don't need any U-Boot scripts for this to work. If
there is no "fdt" or "fdtdir" label in extlinux.conf, then the U-Boot
PXE code will eventually fall back to $fdtcontroladdr - I just tested
that.
So could you make that work for you? I guess all you need to change is
to remove any fdtdir label from extlinux.conf?

Cheers,
Andre


More information about the U-Boot mailing list