[U-Boot] [PATCH v6 00/15] Add PSCI support for Jetson TK1/Tegra124 + CNTFRQ fix

Stephen Warren
2015-04-14T14:50:15Z

On 04/14/2015 08:45 AM, Jan Kiszka wrote:
> On 2015-04-14 16:40, Ian Campbell wrote:
>> On Tue, 2015-04-14 at 16:33 +0200, Jan Kiszka wrote:
>>> On 2015-04-14 16:30, Ian Campbell wrote:
>>>> On Tue, 2015-04-14 at 16:12 +0200, Jan Kiszka wrote:
>>>>> On 2015-04-14 16:06, Stephen Warren wrote:
>>>>>> On 04/14/2015 07:46 AM, Tom Rini wrote:
>>>>>>> On Mon, Apr 13, 2015 at 06:48:05AM +0200, Jan Kiszka wrote:
>>>>>>>
>>>>>>>> Changes in v6:
>>>>>>>> - rebased over master
>>>>>>>> - included Thierry's SMMU enabling patch
>>>>>>>> - moved activation patch at the end so that it can be held back
>>>>>>>>
>>>>>>>> This version can also be found at
>>>>>>>> https://github.com/siemens/u-boot/tree/jetson-tk1-v6.
>>>>>>>
>>>>>>> So what level of coordination do we need on applying this series so that
>>>>>>> kernels (both old and new) can continue to function? And perhaps README
>>>>>>> updates or similar? Thanks!
>>>>>>
>>>>>> Hopefully this series doesn't change anything by default, and simply
>>>>>> allows people to turn on support for booting kernels in non-secure mode
>>>>>> if they want to? If so, there shouldn't be any co-ordination required.
>>>>>> If it changes the default behaviour, co-ordination is probably required,
>>>>>> and that'd be a bad thing.
>>>>>
>>>>> Sorry, forgot to mention: I can't flip the default behaviour to leave
>>>>> virtualization support off only for the TK1. That's a generic default.
>>>>
>>>> Would enabling it in the compile but adding "bootm_boot_mode=sec" to the
>>>> default environment (so it isn't used by default) be considered
>>>> sufficiently backwards compatible?
>>>
>>> Can this be done selectively for the TK1 only?
>>
>> Well, you might need to add the mechanism for inserting it into the
>> default bootenv, but I don't think that should be too hard at either the
>> tegra or more generic levels.
>
> Maybe this already works:
>
> diff --git a/include/configs/tegra-common-post.h b/include/configs/tegra-common-post.h
> index c3ad8be..c1f6c24 100644
> --- a/include/configs/tegra-common-post.h
> +++ b/include/configs/tegra-common-post.h
> @@ -56,6 +56,7 @@
> "fdt_high=ffffffff\0" \
> "initrd_high=ffffffff\0" \
> BOOTENV \
> + "bootm_boot_mode=sec\0" \
> BOARD_EXTRA_ENV_SETTINGS
>
> #if defined(CONFIG_TEGRA20_SFLASH) || defined(CONFIG_TEGRA20_SLINK) || defined(CONFIG_TEGRA114_SPI)

That will add the variable for all boards, even when the feature isn't
enabled.

You should either:

* Modify jetson-tk1.h to add that value to BOARD_EXTRA_ENV_SETTINGS.

* Better: Modify tegra-common-post.h to do something like:

#ifdef whatever_enables_the_psci_feature_etc
#define PSCI_EXTRA_ENV_SETTINGS "bootm_boot_mode=sec\0
#else
#define PSCI_EXTRA_ENV_SETTINGS
#endif

... and add PSCI_EXTRA_ENV_SETTINGS into the value of
CONFIG_EXTRA_ENV_SETTINGS.