-
Notifications
You must be signed in to change notification settings - Fork 519
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add AMD ZynqMP Support #731
Conversation
Hi @michalsimek, |
Who is going to maintain this new port? Existing AMD maintainers, developers of the port, or both? |
It is likely me who will take care about this port and also ports related Xilinx SOCs if @mariam-elshakfy-linaro agrees. |
Silicon/AMD/ZynqMP/Drivers/ArasanMmcHostDxe/ArasanMmcHostDxe.inf
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general this is great step in the right direction and hopefully there will be a way how to get this platform to be more DT driven to avoid hardcoding values in different locations. Only one should be used at best but not sure if this is feasible in edk2.
No objections from me, but it would be good to add to CODEOWNERS and/or REVIEWERS as appropriate as part of this set. |
@mariam-elshakfy-linaro can you please also extend these two files based on your guidance? |
The comment from @michalsimek made me realise the directories you're adding are both packages, and hence it's idiomatic to give them a "Pkg" suffix - as well as their corresponding dec/dsc/fdf files. I.e. |
0d81952
to
31d157c
Compare
Okay, I will update the file after the package & board name is decided |
The platform is updated to ZynqmpVirtPkg. I still haven't updated the Silicon package, but is this a hard requirement? I see other Silicon that doesn't have this suffix (AMD Styx for example). |
Ah, yes, it is kind of a typo because I use "<" and ">" in the content. What you replied here is matched to the directory structure posted above. Platform/AMD/XilinxBoard |
ZynqMP platform helper library is based on ArmPlatformLibNull from edk2. This contains early initializations needed in SEC/PEI phase. It also configures the memory regions for the address translation needed for DXE stage. Co-authored-by: Emekcan Aras <emekcan.aras@linaro.org> Co-authored-by: Michal Simek <michal.simek@amd.com> Signed-off-by: Mariam Elshakfy <mariam.elshakfy@linaro.org>
ZynqMP is using Cadence UART peripheral, which is already initialized by Xilinx FSBL. Therefore, the implementation only pushes/reads characters to/from FIFO. Co-authored-by: Emekcan Aras <emekcan.aras@linaro.org> Signed-off-by: Mariam Elshakfy <mariam.elshakfy@linaro.org>
This change introduces Arasan Mmc driver, which is common to Xilinx platforms. The Mmc driver is based on: Platform/RaspberryPi/Drivers/ArasanMmcHostDxe This driver currently doesn't support SD high speed mode, or eMMC Co-authored-by: Michal Simek <michal.simek@amd.com> Signed-off-by: Mariam Elshakfy <mariam.elshakfy@linaro.org>
3ce737e
to
f2f6b36
Compare
I have pushed a restructure change now: The latest message from @changab is missing These changes should comply to the rules stated by @leiflindholm
with the exception that
So, I'm not convinced it should be a package. Also, @michalsimek could you check if the current split of PCDs/drivers between CommonPkg and ZynqMpPkg makes sense from hardware perspective, please? Thanks! |
1d3eb49
to
8b6aa44
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For my part, approved.
bcee54d
to
1812418
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Structure is nice and good for future work. I have pretty much only two generic comment. I don't like too much to rely on setup out of VirtualPkg.dsc about IPs which can be selected. I would prefer more to list all of them directly here that looking at one file will give you good overview about system configuration.
And second comment is about text base which is setup to 0 now and was at 0x8000000 and it is not clear why that change was made.
8400534
to
19fe3c7
Compare
Add .dec file with common Xilinx PCDs. Also, add .dsc.inc and .fdf.inc files to be included in platform descriptions. Signed-off-by: Mariam Elshakfy <mariam.elshakfy@linaro.org>
Add .dec file with ZynqMP-specific PCDs. Also, add .dsc.inc and .fdf.inc files to be included for ZynqMP-based platform descriptions. Signed-off-by: Mariam Elshakfy <mariam.elshakfy@linaro.org>
Add an empty board based on Silicon/AMD/Xilinx/ZynqMpPkg. This board contains empty devictree file, and has the following features: - Only 2GB DDR with no extra memory - Uses SDHCI1 and UART1 - TF-A is located by the end of DDR - Doesn't use OP-TEE Relevant PCDs are set accordingly in VirtualPkg.dsc This can be used as a reference for users to port EDK-II to ZynqMP-based boards. Signed-off-by: Mariam Elshakfy <mariam.elshakfy@linaro.org>
Add documentation on how to port and build EDK-II for ZynqMP-based platforms using this package. Signed-off-by: Mariam Elshakfy <mariam.elshakfy@linaro.org>
Update CODEOWNERS and CONTRIBUTORS.md to include Michal Šimek as maintainer to Xilinx platforms. Signed-off-by: Mariam Elshakfy <mariam.elshakfy@linaro.org>
19fe3c7
to
07aa903
Compare
Removed ArmDisassemblerLib since it's going away now |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approval for the folder structure under AMD platform and silicon.
@mariam-elshakfy-linaro, just letting me know that we are all set to merge this PR after you address all the comments. |
Code changes and code layout looks good. |
Thanks. |
@changab All comments are addressed and resolved on this PR. Can you help merge it? |
Tested on KV260