-
Notifications
You must be signed in to change notification settings - Fork 19
zynqmp_r5: use libmetal extension module #84
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
base: main
Are you sure you want to change the base?
Conversation
if (FIND_FREERTOS) | ||
collect(PROJECT_LIB_DEPS freertos) | ||
endif(FIND_FREERTOS) | ||
collect(PROJECT_LIB_DEPS "libfreertos.a") |
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.
seems strange that you have to change the Freertos integration method. the original declaration seems to me more generic
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.
@arnopo
Actually you are right. collect(PROJECT_LIB_DEPS <text>)
ends up as linker flags -l<text>
I should keep it as before. Other places as well. I will fix it.
xlnx bsp implementation of some libmetal interfaces was moved from libmetal library repo to vendor repo. Application should use this new vendor specific library via libmetal API for platform specific configuration. For example, GIC configuration on cortex-R cores on xlnx platforms. Do required changes in legacy apps to use this new extension module for xlnx cortex-R port. Signed-off-by: Tanmay Shah <[email protected]>
Add cmake file for freertos. This assigns project system variable. Current build on freertos fails due to undefined API used. Also, suspend.c file declares extern variable that is not found during compile time. Solve this by getting current task handle in suspend resume APIs instead passing an argument to the function. Signed-off-by: Tanmay Shah <[email protected]>
PROJECT_SYSTEM variable was added based on CMAKE_SYSTEM_NAME, however cmake doesn't support some RTOS names such as FreeRTOS. So, PROJECT_SYSTEM value can be different than CMAKE_SYSTEM_NAME. Toolchain file includes these cmake files. So PROJECT_SYSTEM variable assignment from options.cmake can be removed safely. Instead assign value to PROJECT_SYSTEM variable in relative OS cmake file. Signed-off-by: Tanmay Shah <[email protected]>
993a302
to
ffc2cc6
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.
just a minor remark else LGTM
#ifndef RPMSG_NO_IPI | ||
.irq_num = 1, | ||
#ifdef FREERTOS_BSP | ||
.irq_info = (void *)(IPI_IRQ_VECT_ID - 32), |
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.
nitpicking : The value 32
seems a magic number here. I could be better to use a define or a config linked to FreeRTOS.
Xlnx BSP was moved out of libmetal to new library module maintained in downstream repo: libmetal_xlnx_extension.a
Modify zynqmp_r5 platform to use interrupt controller defined in this new library module.
In the process fix freertos compilation on zynqmp_r5 platform as well.