On 5 February 2016 at 08:42, Ard Biesheuvel ard.biesheuvel@linaro.org wrote:
On 5 February 2016 at 09:18, Ryan Harkin ryan.harkin@linaro.org wrote:
On 4 February 2016 at 11:40, Ryan Harkin ryan.harkin@linaro.org wrote:
On 3 February 2016 at 17:42, Leif Lindholm leif.lindholm@linaro.org wrote:
Hi Ryan,
On Wed, Feb 03, 2016 at 05:09:28PM +0000, Ryan Harkin wrote:
This is an update to my original series titled:
[PATCH 0/2] ArmPlatformPkg: Remove FVP and Juno
ARM Ltd Platform support is migrating to use OpenPlatformPkg [1].
Currently, TC2, Juno and FVP exist both in EDK2's ArmPlatformPkg and in OpenPlatformPkg. And they are starting to diverge, with OpenPlatformPkg being the most up-to-date with current developments. To prevent this divergence, remove the .dsc and .fdf files from ArmPlatformPkg and leave OpenPlatformPkg as the master.
32-bit models are no longer tested or supported, so this series also removes the .dsc/fdf files for them.
And the Sec library has no clients either, so that can also be removed as it hasn't been tested for a long time.
We can't remove ArmJuno.dec yet because ACPI still uses it to set the include path to ArmPlatform.h.
[PATCH 1/6] ArmPlatformPkg: remove ArmVExpress-CTA15-A7.dsc/fdf [PATCH 2/6] ArmPlatformPkg: remove ArmVExpress-FVP-AArch64.dsc/fdf [PATCH 3/6] ArmPlatformPkg: remove ArmJuno.dsc/fdf [PATCH 4/6] ArmPlatformPkg: remove ArmVExpress-RTSM-A15_MPCore.dsc/fdf [PATCH 5/6] ArmPlatformPkg: remove unused Sec library [PATCH 6/6] Revert "ArmPlatformPkg: Create an ARM Platform DSC / FDF
I am entirely happy with 1-5. I know Ard objected to (what is now) 2. This is something to be discussed.
Ard's last comment on the idea of removing FVP was:
"I am happy to switch to OpenPlatformPkg for building those once it is synced up with EDK2"
... which is now the case.
OK, so there are two aspects to take into consideration here:
- we need reference code in EDK2 in can be reused as a starting point
for porting it to new ARM platforms
I don't understand why we need reference code specifically in EDK2.
And, like LibNull, FVP is exactly not the place for someone to start porting to a new platform. It's a horrible mess of copy and paste hackery.
- we need to support actual users of FVP Foundation model and FVP Base model.
So while I am perfectly happy to build my EDK2 snapshots for FVP from OpenPlatformPkg, I think the pragmatism involved in keeping things working for actual users (i.e., kick the GICv3 in v2 mode, or other platform specific workarounds) does not belong in the upstream reference code. So perhaps we can keep ArmPlatformPkg/FVP in EDK2 (and I don't mind picking up the maintainership),
I have no objection to you doing that, although I think you're crazy ;-) Once code is migrated to OpenPlatformPkg, I won't be checking back to see what's happened in the meantime, so it's no extra work for me.
Long term, I will have migrated all of ArmPlatformPkg to OpenPlatformPkg and it will look completely different.
but reverse the roles, i.e., anyone that is interested in running it on the latest model/ATF should be using OpenPlatformPkg, but we keep a version in EDK2 that is clean from hacks you will need to actually build and run it.
OpenPlatformPkg will not contain any hacks beyond those already in EDK2. (I don't count having the option to build with GICv2 Legacy mode as a hack, that's a feature in the architecture that we were forced to use and the code builds with GICv3 by default).
The idea is to clean the platform support, make it more maintainable and a good place to start when creating a new platform.
Any hacks that I currently host are in my own forks of the EDK2 and OPP trees.
ARM Platforms in EDK2 are currently unusable for what most people outside of enterprise use cases want. I don't intend fixing any of those problems.
6/6 ... I think we can leave ArmPlatformLinBull in for now. It is meant to be a template for use by new platform ports. Ard: what's your take on dropping the generic .dsc files?
I discussed this with Leif on IRC. We'll drop PATCH 6/6 and I'll submit a different patch for review to remove these files:
ArmPlatformPkg/ArmPlatformPkg-2ndstage.dsc ArmPlatformPkg/ArmPlatformPkg-2ndstage.fdf ArmPlatformPkg/ArmPlatformPkg.dsc ArmPlatformPkg/ArmPlatformPkg.fdf
I've sent the patch to remove these files a short while ago. Let me know if you wish me to re-send this as a v3 series.
You can find the series here as patches f5cd78c^..61f537a
https://git.linaro.org/landing-teams/working/arm/edk2.git/shortlog/refs/tags...
As before, ignore my hacks that sit on top, although you're welcome to inspect and provide comment, of course.