diff mbox

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

Message ID 552D280C.6010505@siemens.com
State Superseded
Headers show

Commit Message

Jan Kiszka April 14, 2015, 2:45 p.m. UTC
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:


Will test later.

Jan

Comments

Stephen Warren April 14, 2015, 2:50 p.m. UTC | #1
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.
Jan Kiszka April 14, 2015, 3:05 p.m. UTC | #2
On 2015-04-14 16:50, Stephen Warren wrote:
> 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.

That issue should affect more boards than the TK1.

> 
> * 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.

Yep, makes sense.

Thanks,
Jan
diff mbox

Patch

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)