[PATCH 10/10] arm: imx: imx8m: Add basic PSCI provider implementation

Marek Vasut marex at denx.de
Tue Jan 3 10:38:41 CET 2023


On 1/3/23 02:05, Adam Ford wrote:
> On Mon, Jan 2, 2023 at 5:58 PM Marek Vasut <marex at denx.de> wrote:
>>
>> On 1/3/23 00:47, Adam Ford wrote:
>>> On Mon, Jan 2, 2023 at 5:41 PM Marek Vasut <marex at denx.de> wrote:
>>>>
>>>> On 1/2/23 17:44, Adam Ford wrote:
>>>>> On Wed, Dec 21, 2022 at 9:58 PM Marek Vasut <marex at denx.de> wrote:
>>>>>>
>>>>>> On 12/22/22 04:05, Adam Ford wrote:
>>>>>>> On Wed, Dec 21, 2022 at 6:47 PM Marek Vasut <marex at denx.de> wrote:
>>>>>>>>
>>>>>>>> Implement basic PSCI provider to let OS turn CPU cores off and on,
>>>>>>>> power off and restart the system and determine PSCI version. This
>>>>>>>> is sufficient to remove the need for the ATF BL31 blob altogether.
>>>>>>>>
>>>>>>>> To make use of this functionality, active the following Kconfig options:
>>>>>>>>       # CONFIG_PSCI_RESET is not set
>>>>>>>>       CONFIG_ARMV8_MULTIENTRY=y
>>>>>>>>       CONFIG_ARMV8_SET_SMPEN=y
>>>>>>>>       CONFIG_ARMV8_SPL_EXCEPTION_VECTORS=y
>>>>>>>>       CONFIG_ARMV8_EA_EL3_FIRST=y
>>>>>>>>       CONFIG_ARMV8_PSCI=y
>>>>>>>>       CONFIG_ARMV8_PSCI_CPUS_PER_CLUSTER=4
>>>>>>>>       CONFIG_ARMV8_SECURE_BASE=0x970000
>>>>>>>
>>>>>>>      I am guessing 0x970000 was for the 8MP based on the previous location
>>>>>>> of ATF.  Is that true?   If that's the case, can I assume that this
>>>>>>> address would be  0x910000, 0x920000 and 0x960000 for the imx8mq,
>>>>>>> imx8mm and imx8mn respectively?
>>>>>>
>>>>>> It was for MX8MP, but you can pick whichever address you want, since it
>>>>>> is U-Boot that installs the SMC handlers, you are no longer forced to
>>>>>> somehow try and accommodate custom not well fitting load address picked
>>>>>> by some 3rd party binary blob.
>>>>>
>>>>> I patched U-Boot's master with this series and I tried it on
>>>>> imx8mn_beacon and imx8mm_beacon without success. I never even saw the
>>>>> SPL message.  I tried to focus on the Nano since the boot ROM in that
>>>>> one is more similar to that of the 8mp, but the behaviour was similar
>>>>> to that of the Nano.  Are there any dependencies or should I have used
>>>>> a specific starting branch?
>>>>
>>>> Nope . But if you don't even see output from SPL, that's where I would
>>>> start looking. Do you see output from SPL without this series ? Note
>>>> that bulk of this series content applies to U-Boot proper, not SPL so far.
>>>
>>> Without the patch series the generated flash.bin file booted both the
>>> Mini and the Nano just fine.  I have a pending 8m plus that I can also
>>> try, since that is what you used.  I just wanted to make sure I was
>>> starting from the right place before I went too far with it.
>>
>> Try and drop
>>
>> [PATCH 09/10] arm: imx: imx8m: Program CSU and TZASC if PSCI provider
>>
>> does SPL start then ?
> 
> I reverted 9/19 without success either.  I'll try to do a git bisect
> to see if I can narrow it down.  I might see if my employer will let
> me borrow  a debugger.  Debugging SPL is a bit challenging due to the
> relocation step, but I am not convinced I am geting that far since I
> get no text output at all.

Hmmmmm, did you tweak the CONFIG_ARMV8_SECURE_BASE ? Are you sure your 
setting is within valid OCRAM address range ? I think the MX8MN OCRAM is 
smaller than the MX8MP one, but I might be wrong.

Bisect looks like the best option now. You can start by scrubbing the 
custom config options and see if the result still boots with the blob 
bl31.bin . If it does, it is somehow related to the newly enabled code. 
It has to be related to something very early though, something which is 
triggered before the UART init. Do you use DM_SERIAL in SPL ?

>> I plan to try this on Nano at some point this month too.
> 
> I'll let you know my findings when I get some more time to test this.

Thanks


More information about the U-Boot mailing list