[V6,7/8] powerpc: Check arch.vec earlier during boot for memory features
diff mbox

Message ID d6614f82-0c59-8457-188a-3f6dcaa92bb3@linux.vnet.ibm.com
State Superseded
Headers show

Commit Message

Michael Bringmann Sept. 21, 2016, 2:17 p.m. UTC
architecture.vec5 features: The boot-time memory management needs to
know the form of the "ibm,dynamic-memory-v2" property early during
scanning of the flattened device tree.  This patch moves execution of
the function pseries_probe_fw_features() early enough to be before
the scanning of the memory properties in the device tree to allow
recognition of the supported properties.

[V2: No change]
[V3: Updated after commit 3808a88985b4f5f5e947c364debce4441a380fb8.]
[V4: Update comments]
[V5: Resynchronize/resubmit]
[V6: Resync to v4.7 kernel code]

Signed-off-by: Michael Bringmann <mwb@linux.vnet.ibm.com>
---

Comments

Nathan Fontenot Oct. 24, 2016, 7:58 p.m. UTC | #1
On 09/21/2016 09:17 AM, Michael Bringmann wrote:
> architecture.vec5 features: The boot-time memory management needs to
> know the form of the "ibm,dynamic-memory-v2" property early during
> scanning of the flattened device tree.  This patch moves execution of
> the function pseries_probe_fw_features() early enough to be before
> the scanning of the memory properties in the device tree to allow
> recognition of the supported properties.
> 
> [V2: No change]
> [V3: Updated after commit 3808a88985b4f5f5e947c364debce4441a380fb8.]
> [V4: Update comments]
> [V5: Resynchronize/resubmit]
> [V6: Resync to v4.7 kernel code]
> 
> Signed-off-by: Michael Bringmann <mwb@linux.vnet.ibm.com>
> ---
> diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
> index 946e34f..2034edc 100644
> --- a/arch/powerpc/kernel/prom.c
> +++ b/arch/powerpc/kernel/prom.c
> @@ -753,6 +753,9 @@ void __init early_init_devtree(void *params)
>  	 */
>  	of_scan_flat_dt(early_init_dt_scan_chosen_ppc, boot_command_line);
> 
> +	/* Now try to figure out if we are running on LPAR and so on */
> +	pseries_probe_fw_features();
> +

I'll have to defer to others on whether calling this earlier in boot
is ok.

I do notice that you do not remove the call later on, any reason?

-Nathan

>  	/* Scan memory nodes and rebuild MEMBLOCKs */
>  	of_scan_flat_dt(early_init_dt_scan_root, NULL);
>  	of_scan_flat_dt(early_init_dt_scan_memory_ppc, NULL);
>
Michael Bringmann Oct. 25, 2016, 10:43 p.m. UTC | #2
:
> On 09/21/2016 09:17 AM, Michael Bringmann wrote:
>> architecture.vec5 features: The boot-time memory management needs to
>> know the form of the "ibm,dynamic-memory-v2" property early during
>> scanning of the flattened device tree.  This patch moves execution of
>> the function pseries_probe_fw_features() early enough to be before
>> the scanning of the memory properties in the device tree to allow
>> recognition of the supported properties.
>>
>> [V2: No change]
>> [V3: Updated after commit 3808a88985b4f5f5e947c364debce4441a380fb8.]
>> [V4: Update comments]
>> [V5: Resynchronize/resubmit]
>> [V6: Resync to v4.7 kernel code]
>>
>> Signed-off-by: Michael Bringmann <mwb@linux.vnet.ibm.com>
>> ---
>> diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
>> index 946e34f..2034edc 100644
>> --- a/arch/powerpc/kernel/prom.c
>> +++ b/arch/powerpc/kernel/prom.c
>> @@ -753,6 +753,9 @@ void __init early_init_devtree(void *params)
>>  	 */
>>  	of_scan_flat_dt(early_init_dt_scan_chosen_ppc, boot_command_line);
>>
>> +	/* Now try to figure out if we are running on LPAR and so on */
>> +	pseries_probe_fw_features();
>> +
> 
> I'll have to defer to others on whether calling this earlier in boot
> is ok.

It is scanning the flattened device tree supplied by the BMC, though this
is not the first such call to do so.  The relevant content of the device
tree should not change between the earlier point of the relocated point,
and the later point of the former location.

> I do notice that you do not remove the call later on, any reason?

Bug in patch.  Corrected in next patch group submission.

> -Nathan
> 
>>  	/* Scan memory nodes and rebuild MEMBLOCKs */
>>  	of_scan_flat_dt(early_init_dt_scan_root, NULL);
>>  	of_scan_flat_dt(early_init_dt_scan_memory_ppc, NULL);
>>
> 
>

Patch
diff mbox

diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index 946e34f..2034edc 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -753,6 +753,9 @@  void __init early_init_devtree(void *params)
 	 */
 	of_scan_flat_dt(early_init_dt_scan_chosen_ppc, boot_command_line);
 
+	/* Now try to figure out if we are running on LPAR and so on */
+	pseries_probe_fw_features();
+
 	/* Scan memory nodes and rebuild MEMBLOCKs */
 	of_scan_flat_dt(early_init_dt_scan_root, NULL);
 	of_scan_flat_dt(early_init_dt_scan_memory_ppc, NULL);