-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
[RFC] Initial Platform support for Altera Cyclonev SoC #7266
Conversation
Modified code from Zynq7k platform. ARM Cortex A9 armv7. Summary of changes: - Changed UART driver to a compatible one. - Removed writes to SLCR_TZ registers, which don't exist on cyclonev. - Initally unlocked all security rules in the L3 interconnect TrustZone Firewall. - Override init_sec_mon to provide dt blob address and linux jump address in respective registers. Signed-off-by: Rahul Rajesh <rajeshrah22@gmail.com>
* TA_RAM : all what is left (at least 2MByte !) | ||
*/ | ||
|
||
#define TZDRAM_BASE 0x3fd00000 |
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.
The changes for the platform_config.h file are at the bottom when CFG_WITH_PAGER is disabled. I have changed the TZDRAM_BASE only compared to the zynq7k code.
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.
I realized that TZDRAM_BASE + TEE_RAM_PH_SIZE + TA_RAM_SIZE + TEE_SHMEM_START in this configuration would go over physical address 0x40000000, which is over the total RAM on the system. Need to fix this.
Paging in emulated SRAM is only needed to test the pager on hardware to ensure it works with platforms that use real SRAM. So, unless you plan to use real SRAM with the pager, you can remove that part to save some work. You could try |
So, in other words, I don't need the CFG_WITH_PAGER config if I don't intend to use SRAM? |
This seemed to have let the driver initalize:
|
I just got this exception. This might be an issue with us turning off SMP with
|
This issue we were having with the kernel hanging after jumping out of OP-TEE to NS world was that it was stuck at So, I thought it might have something to do with timer interrupts not being recieved, which could have been an issue with In the above run, I also changed to
from MEM_AREA_IO_SEC. Not sure if this was the correct move, and I am unsure what exactly register_phys_mem_pgdir does. |
I changed it back to
We still need to investigate the reason for linux being stuck in idle sometimes. This time it worked. Log:
|
Correct. |
This pull request has been marked as a stale pull request because it has been open (more than) 30 days with no activity. Remove the stale label or add a comment, otherwise this pull request will automatically be closed in 5 days. Note, that you can always re-open a closed issue at any time. |
Modified code from Zynq7k platform port.
ARM Cortex A9 armv7.
OP-TEE successfully initializes and jumps to NS world.
Summary of changes:
Problems:
Boot flow:
SPL --> U-boot --> optee -> Linux
Integrating with Linux:
This occurs when allocating a memory pool (Probably for the shared memory region). We will need to go over the
device tree modifications that added optee firmware node and reserved memory nodes.
Any guiding questions regarding the issues above would be appreciated. Would love feedback on the plat-cyclonev code as well.
thanks,
Rahul