[edk2] [PATCH edk2-platforms v2 0/2] ARM Dynamic Configuration

Chandni Cherukuri posted 2 patches 5 years, 11 months ago
Failed in applying to current master (apply log)
Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c         |  33 +++++-
Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.inf       |   2 +
Platform/ARM/SgiPkg/Include/Ppi/SgiPlatformId.h               |  23 ++++
Platform/ARM/SgiPkg/Include/SgiPlatform.h                     |  13 +++
Platform/ARM/SgiPkg/Library/PlatformLib/AArch64/Helper.S      |  13 ++-
Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c         |  10 ++
Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.inf       |   3 +
Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPei.inf |  40 +++++++
Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPeim.c  | 112 ++++++++++++++++++++
Platform/ARM/SgiPkg/SgiPlatform.dec                           |   5 +
Platform/ARM/SgiPkg/SgiPlatform.dsc                           |   1 +
Platform/ARM/SgiPkg/SgiPlatform.fdf                           |   1 +
12 files changed, 247 insertions(+), 9 deletions(-)
create mode 100644 Platform/ARM/SgiPkg/Include/Ppi/SgiPlatformId.h
create mode 100644 Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPei.inf
create mode 100644 Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPeim.c
[edk2] [PATCH edk2-platforms v2 0/2] ARM Dynamic Configuration
Posted by Chandni Cherukuri 5 years, 11 months ago
On SGI platforms, the trusted firmware executes prior to the SEC
phase. It supplies to the SEC phase, a pointer to a HW CONFIG fdt
in the x1 which contains platform specific information such as part
number and config number of the SGI platform. 

The HW CONFIG FDT would look as,
/dts-v1/;
/ {
        /* compatible string */
        compatible = "arm,sgi-isys3";

	/* platform ID node */
	system-id {
	     platform-id = <0x03000783>;
	}
};

In the very first step of the assembly code which executes in SEC phase
the fdt pointer is stored in a global variable from the register. A PPI 
is created during the SEC phase which stores the global variable.

During PEI phase, a Platform ID PEIM is installed which accessess the PPI
and retrieves the platform information using FDT helper functions and a
PlatformId HOB is created and populated with the information.
 
During DXE phase the drivers can access the Platform ID HOB to get the
platform information and perform platform specific functions based on the
platform.

Chandni Cherukuri (2):
  Platform/ARM/Sgi: Install a Platform ID HOB
  Platform/ARM/Sgi: Pick ACPI tables to install based on platform ID

 Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c         |  33 +++++-
 Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.inf       |   2 +
 Platform/ARM/SgiPkg/Include/Ppi/SgiPlatformId.h               |  23 ++++
 Platform/ARM/SgiPkg/Include/SgiPlatform.h                     |  13 +++
 Platform/ARM/SgiPkg/Library/PlatformLib/AArch64/Helper.S      |  13 ++-
 Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c         |  10 ++
 Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.inf       |   3 +
 Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPei.inf |  40 +++++++
 Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPeim.c  | 112 ++++++++++++++++++++
 Platform/ARM/SgiPkg/SgiPlatform.dec                           |   5 +
 Platform/ARM/SgiPkg/SgiPlatform.dsc                           |   1 +
 Platform/ARM/SgiPkg/SgiPlatform.fdf                           |   1 +
 12 files changed, 247 insertions(+), 9 deletions(-)
 create mode 100644 Platform/ARM/SgiPkg/Include/Ppi/SgiPlatformId.h
 create mode 100644 Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPei.inf
 create mode 100644 Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPeim.c

-- 
2.7.4


_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH edk2-platforms v2 0/2] ARM Dynamic Configuration
Posted by Leif Lindholm 5 years, 11 months ago
On Fri, Jun 15, 2018 at 05:30:00PM +0530, Chandni Cherukuri wrote:
> On SGI platforms, the trusted firmware executes prior to the SEC
> phase. It supplies to the SEC phase, a pointer to a HW CONFIG fdt
> in the x1 which contains platform specific information such as part
> number and config number of the SGI platform. 
> 
> The HW CONFIG FDT would look as,
> /dts-v1/;
> / {
>         /* compatible string */
>         compatible = "arm,sgi-isys3";
> 
> 	/* platform ID node */
> 	system-id {
> 	     platform-id = <0x03000783>;
> 	}
> };
> 
> In the very first step of the assembly code which executes in SEC phase
> the fdt pointer is stored in a global variable from the register. A PPI 
> is created during the SEC phase which stores the global variable.
> 
> During PEI phase, a Platform ID PEIM is installed which accessess the PPI
> and retrieves the platform information using FDT helper functions and a
> PlatformId HOB is created and populated with the information.
>  
> During DXE phase the drivers can access the Platform ID HOB to get the
> platform information and perform platform specific functions based on the
> platform.

It's helpful for subsequent revisions to keep a revision history in
cover letter.

Changes since v1:
- ...
- ...
- ...

Kept around and added to for subsequent revisions.

However, you've addressed all of my comments on v1, so for my part -
for the series:
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

But we want to hear back from Ard as well.

/
    Leif

> Chandni Cherukuri (2):
>   Platform/ARM/Sgi: Install a Platform ID HOB
>   Platform/ARM/Sgi: Pick ACPI tables to install based on platform ID
> 
>  Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c         |  33 +++++-
>  Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.inf       |   2 +
>  Platform/ARM/SgiPkg/Include/Ppi/SgiPlatformId.h               |  23 ++++
>  Platform/ARM/SgiPkg/Include/SgiPlatform.h                     |  13 +++
>  Platform/ARM/SgiPkg/Library/PlatformLib/AArch64/Helper.S      |  13 ++-
>  Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c         |  10 ++
>  Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.inf       |   3 +
>  Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPei.inf |  40 +++++++
>  Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPeim.c  | 112 ++++++++++++++++++++
>  Platform/ARM/SgiPkg/SgiPlatform.dec                           |   5 +
>  Platform/ARM/SgiPkg/SgiPlatform.dsc                           |   1 +
>  Platform/ARM/SgiPkg/SgiPlatform.fdf                           |   1 +
>  12 files changed, 247 insertions(+), 9 deletions(-)
>  create mode 100644 Platform/ARM/SgiPkg/Include/Ppi/SgiPlatformId.h
>  create mode 100644 Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPei.inf
>  create mode 100644 Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPeim.c
> 
> -- 
> 2.7.4
> 
> 
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH edk2-platforms v2 0/2] ARM Dynamic Configuration
Posted by chandni cherukuri 5 years, 11 months ago
On Fri, Jun 15, 2018 at 6:10 PM, Leif Lindholm <leif.lindholm@linaro.org> wrote:
> On Fri, Jun 15, 2018 at 05:30:00PM +0530, Chandni Cherukuri wrote:
>> On SGI platforms, the trusted firmware executes prior to the SEC
>> phase. It supplies to the SEC phase, a pointer to a HW CONFIG fdt
>> in the x1 which contains platform specific information such as part
>> number and config number of the SGI platform.
>>
>> The HW CONFIG FDT would look as,
>> /dts-v1/;
>> / {
>>         /* compatible string */
>>         compatible = "arm,sgi-isys3";
>>
>>       /* platform ID node */
>>       system-id {
>>            platform-id = <0x03000783>;
>>       }
>> };
>>
>> In the very first step of the assembly code which executes in SEC phase
>> the fdt pointer is stored in a global variable from the register. A PPI
>> is created during the SEC phase which stores the global variable.
>>
>> During PEI phase, a Platform ID PEIM is installed which accessess the PPI
>> and retrieves the platform information using FDT helper functions and a
>> PlatformId HOB is created and populated with the information.
>>
>> During DXE phase the drivers can access the Platform ID HOB to get the
>> platform information and perform platform specific functions based on the
>> platform.
>
> It's helpful for subsequent revisions to keep a revision history in
> cover letter.
>
> Changes since v1:
> - ...
> - ...
> - ...
>
> Kept around and added to for subsequent revisions.
>
> However, you've addressed all of my comments on v1, so for my part -
> for the series:
> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
>
> But we want to hear back from Ard as well.
>
> /
>     Leif

Thanks Leif for reviewing the patches. Have addressed the comments from Ard
and submitted v3 patchset and included "Changes since v1:" in the cover letter.

>
>> Chandni Cherukuri (2):
>>   Platform/ARM/Sgi: Install a Platform ID HOB
>>   Platform/ARM/Sgi: Pick ACPI tables to install based on platform ID
>>
>>  Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c         |  33 +++++-
>>  Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.inf       |   2 +
>>  Platform/ARM/SgiPkg/Include/Ppi/SgiPlatformId.h               |  23 ++++
>>  Platform/ARM/SgiPkg/Include/SgiPlatform.h                     |  13 +++
>>  Platform/ARM/SgiPkg/Library/PlatformLib/AArch64/Helper.S      |  13 ++-
>>  Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.c         |  10 ++
>>  Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.inf       |   3 +
>>  Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPei.inf |  40 +++++++
>>  Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPeim.c  | 112 ++++++++++++++++++++
>>  Platform/ARM/SgiPkg/SgiPlatform.dec                           |   5 +
>>  Platform/ARM/SgiPkg/SgiPlatform.dsc                           |   1 +
>>  Platform/ARM/SgiPkg/SgiPlatform.fdf                           |   1 +
>>  12 files changed, 247 insertions(+), 9 deletions(-)
>>  create mode 100644 Platform/ARM/SgiPkg/Include/Ppi/SgiPlatformId.h
>>  create mode 100644 Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPei.inf
>>  create mode 100644 Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPeim.c
>>
>> --
>> 2.7.4
>>
>>
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel