| 40fc6cd1 | 25-Sep-2015 |
Juan Castillo <juan.castillo@arm.com> |
Add optional platform error handler API
This patch adds an optional API to the platform port:
void plat_error_handler(int err) __dead2;
The platform error handler is called when there is a spe
Add optional platform error handler API
This patch adds an optional API to the platform port:
void plat_error_handler(int err) __dead2;
The platform error handler is called when there is a specific error condition after which Trusted Firmware cannot continue. While panic() simply prints the crash report (if enabled) and spins, the platform error handler can be used to hand control over to the platform port so it can perform specific bookeeping or post-error actions (for example, reset the system). This function must not return.
The parameter indicates the type of error using standard codes from errno.h. Possible errors reported by the generic code are:
-EAUTH : a certificate or image could not be authenticated (when Trusted Board Boot is enabled) -ENOENT : the requested image or certificate could not be found or an IO error was detected -ENOMEM : resources exhausted. Trusted Firmware does not use dynamic memory, so this error is usually an indication of an incorrect array size
A default weak implementation of this function has been provided. It simply implements an infinite loop.
Change-Id: Iffaf9eee82d037da6caa43b3aed51df555e597a3
show more ...
|
| 73c99d4e | 18-Aug-2015 |
Juan Castillo <juan.castillo@arm.com> |
Rework Makefile
This patch is a complete rework of the main Makefile. Functionality remains the same but the code has been reorganized in sections in order to improve readability and facilitate addi
Rework Makefile
This patch is a complete rework of the main Makefile. Functionality remains the same but the code has been reorganized in sections in order to improve readability and facilitate adding future extensions.
A new file 'build_macros.mk' has been created and will contain common definitions (variables, macros, etc) that may be used from the main Makefile and other platform specific makefiles.
A new macro 'FIP_ADD_IMG' has been introduced and it will allow the platform to specify binary images and the necessary checks for a successful build. Platforms that require a BL30 image no longer need to specify the NEED_BL30 option. The main Makefile is now completely unaware of additional images not built as part of Trusted Firmware, like BL30. It is the platform responsibility to specify images using the macro 'FIP_ADD_IMG'. Juno uses this macro to include the BL30 image in the build.
BL33 image is specified in the main Makefile to preserve backward compatibility with the NEED_BL33 option. Otherwise, platform ports that rely on the definition of NEED_BL33 might break.
All Trusted Board Boot related definitions have been moved to a separate file 'tbbr_tools.mk'. The main Makefile will include this file unless the platform indicates otherwise by setting the variable 'INCLUDE_TBBR_MK := 0' in the corresponding platform.mk file. This will keep backward compatibility but ideally each platform should include the corresponding TBB .mk file in platform.mk.
Change-Id: I35e7bc9930d38132412e950e20aa2a01e2b26801
show more ...
|
| 371d4399 | 22-Oct-2015 |
David Wang <david.wang@arm.com> |
Allow CSS to redefine function `plat_arm_calc_core_pos`
Currently all ARM CSS platforms which include css_helpers.S use the same strong definition of `plat_arm_calc_core_pos`. This patch allows thes
Allow CSS to redefine function `plat_arm_calc_core_pos`
Currently all ARM CSS platforms which include css_helpers.S use the same strong definition of `plat_arm_calc_core_pos`. This patch allows these CSS platforms to define their own strong definition of this function.
* Replace the strong definition of `plat_arm_calc_core_pos` in css_helpers.S with a utility function `css_calc_core_pos_swap_cluster` does the same thing (swaps cluster IDs). ARM CSS platforms may choose to use this function or not.
* Add a Juno strong definition of `plat_arm_calc_core_pos`, which uses `css_calc_core_pos_swap_cluster`.
Change-Id: Ib5385ed10e44adf6cd1398a93c25973eb3506d9d
show more ...
|
| 84ab33e1 | 21-Oct-2015 |
danh-arm <dan.handley@arm.com> |
Merge pull request #410 from soby-mathew/sm/psci_handler_reorg
Reorganise PSCI PM handler setup on ARM Standard platforms |
| 7b66a026 | 21-Oct-2015 |
danh-arm <dan.handley@arm.com> |
Merge pull request #411 from jcastillo-arm/jc/plat_bl1_exit
Jc/plat bl1 exit |
| e3f67124 | 05-Oct-2015 |
Juan Castillo <jcastillo.devel@gmail.com> |
Add optional bl1_plat_prepare_exit() API
This patch adds an optional API to the platform port:
void bl1_plat_prepare_exit(void);
This function is called prior to exiting BL1 in response to the
Add optional bl1_plat_prepare_exit() API
This patch adds an optional API to the platform port:
void bl1_plat_prepare_exit(void);
This function is called prior to exiting BL1 in response to the RUN_IMAGE_SMC request raised by BL2. It should be used to perform platform specific clean up or bookkeeping operations before transferring control to the next image.
A weak empty definition of this function has been provided to preserve platform backwards compatibility.
Change-Id: Iec09697de5c449ae84601403795cdb6aca166ba1
show more ...
|
| 785fb92b | 29-Sep-2015 |
Soby Mathew <soby.mathew@arm.com> |
Reorganise PSCI PM handler setup on ARM Standard platforms
This patch does the following reorganization to psci power management (PM) handler setup for ARM standard platform ports :
1. The mailbox
Reorganise PSCI PM handler setup on ARM Standard platforms
This patch does the following reorganization to psci power management (PM) handler setup for ARM standard platform ports :
1. The mailbox programming required during `plat_setup_psci_ops()` is identical for all ARM platforms. Hence the implementation of this API is now moved to the common `arm_pm.c` file. Each ARM platform now must define the PLAT_ARM_TRUSTED_MAILBOX_BASE macro, which in current platforms is the same as ARM_SHARED_RAM_BASE.
2. The PSCI PM handler callback structure, `plat_psci_ops`, must now be exported via `plat_arm_psci_pm_ops`. This allows the common implementation of `plat_setup_psci_ops()` to return a platform specific `plat_psci_ops`. In the case of CSS platforms, a default weak implementation of the same is provided in `css_pm.c` which can be overridden by each CSS platform.
3. For CSS platforms, the PSCI PM handlers defined in `css_pm.c` are now made library functions and a new header file `css_pm.h` is added to export these generic PM handlers. This allows the platform to reuse the adequate CSS PM handlers and redefine others which need to be customized when overriding the default `plat_arm_psci_pm_ops` in `css_pm.c`.
Change-Id: I277910f609e023ee5d5ff0129a80ecfce4356ede
show more ...
|
| 3ae8a360 | 02-Oct-2015 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Fix #include path in ARM platform BL1 setup code
This patch fixes the relative path to the 'bl1_private.h' header file included from 'arm_bl1_setup.c'. Note that, although the path was incorrect, it
Fix #include path in ARM platform BL1 setup code
This patch fixes the relative path to the 'bl1_private.h' header file included from 'arm_bl1_setup.c'. Note that, although the path was incorrect, it wasn't causing a compilation error because the header file still got included through an alternative include search path.
Change-Id: I28e4f3dbe50e3550ca6cad186502c88a9fb5e260
show more ...
|
| 895a7fb4 | 30-Sep-2015 |
danh-arm <dan.handley@arm.com> |
Merge pull request #393 from mtk09422/misc-updates
mt8173: Update SPM and fix watchdog setting |
| fd6007de | 20-Jul-2015 |
Achin Gupta <achin.gupta@arm.com> |
Add a generic driver for ARM CCN IP
This patch adds a device driver which can be used to program the following aspects of ARM CCN IP:
1. Specify the mapping between ACE/ACELite/ACELite+DVM/CHI mast
Add a generic driver for ARM CCN IP
This patch adds a device driver which can be used to program the following aspects of ARM CCN IP:
1. Specify the mapping between ACE/ACELite/ACELite+DVM/CHI master interfaces and Request nodes. 2. Add and remove master interfaces from the snoop and dvm domains. 3. Place the L3 cache in a given power state. 4. Configuring system adress map and enabling 3 SN striping mode of memory controller operation.
Change-Id: I0f665c6a306938e5b66f6a92f8549b529aa8f325
show more ...
|
| e3616819 | 10-Sep-2015 |
Vikram Kanigiri <vikram.kanigiri@arm.com> |
Tegra: Perform cache maintenance on video carveout memory
Currently, the non-overlapping video memory carveout region is cleared after disabling the MMU at EL3. If at any exception level the carveou
Tegra: Perform cache maintenance on video carveout memory
Currently, the non-overlapping video memory carveout region is cleared after disabling the MMU at EL3. If at any exception level the carveout region is being marked as cacheable, this zeroing of memory will not have an affect on the cached lines. Hence, we first invalidate the dirty lines and update the memory and invalidate again so that both caches and memory is zeroed out.
Change-Id: If3b2d139ab7227f6799c0911d59e079849dc86aa
show more ...
|
| 7dc28e9c | 14-Sep-2015 |
Achin Gupta <achin.gupta@arm.com> |
Merge pull request #390 from vikramkanigiri/at/unify_bakery_locks_v2
Re-design bakery lock allocation and algorithm |
| 2bab3d52 | 04-Sep-2015 |
Jimmy Huang <jimmy.huang@mediatek.com> |
mt8173: fix watchdog register setting
This patch corrects the watchdog register setting. To update watchdog register, the watchdog mode key must be set to make the register configurable.
Change-Id:
mt8173: fix watchdog register setting
This patch corrects the watchdog register setting. To update watchdog register, the watchdog mode key must be set to make the register configurable.
Change-Id: I9ca98ea4012f7f220b116013461030de4638ce0b Signed-off-by: Jimmy Huang <jimmy.huang@mediatek.com>
show more ...
|
| 0ad1a9b3 | 20-Aug-2015 |
yt.lee <yt.lee@mediatek.com> |
mt8173: update spm suspend pcm codes
1. update suspend pcm code (add dummy apb read before mcusys power down)
BRANCH=none BUG=none TEST=verified
Change-Id: I2802cf8665fc1c8fe2304fd7d5f3eab9948b0b7
mt8173: update spm suspend pcm codes
1. update suspend pcm code (add dummy apb read before mcusys power down)
BRANCH=none BUG=none TEST=verified
Change-Id: I2802cf8665fc1c8fe2304fd7d5f3eab9948b0b78 Signed-off-by: yt.lee <yt.lee@mediatek.com>
show more ...
|
| c3ec0b9e | 09-Sep-2015 |
Vikram Kanigiri <vikram.kanigiri@arm.com> |
Use unified bakery locks API in Mediatek port
This patch update Mediatek port to use the `DEFINE_BAKERY_LOCK` macro instead of specifying the exact data structure to use for a bakery lock and the in
Use unified bakery locks API in Mediatek port
This patch update Mediatek port to use the `DEFINE_BAKERY_LOCK` macro instead of specifying the exact data structure to use for a bakery lock and the input linker section that it should be allocated to.
Change-Id: I2116dbe27010bb46d7cc64fafef55c7240c4c721
show more ...
|
| 883852ca | 03-Aug-2015 |
Vikram Kanigiri <vikram.kanigiri@arm.com> |
Separate CSS security setup from SOC security setup
Currently, on ARM platforms(ex. Juno) non-secure access to specific peripheral regions, config registers which are inside and outside CSS is done
Separate CSS security setup from SOC security setup
Currently, on ARM platforms(ex. Juno) non-secure access to specific peripheral regions, config registers which are inside and outside CSS is done in the soc_css_security_setup(). This patch separates the CSS security setup from the SOC security setup in the css_security_setup().
The CSS security setup involves programming of the internal NIC to provide access to regions inside the CSS. This is needed only in Juno, hence Juno implements it in its board files as css_init_nic400().
Change-Id: I95a1fb9f13f9b18fa8e915eb4ae2f15264f1b060
show more ...
|
| 4b1439c5 | 31-Jul-2015 |
Vikram Kanigiri <vikram.kanigiri@arm.com> |
Define the Non-Secure timer frame ID for ARM platforms
On Juno and FVP platforms, the Non-Secure System timer corresponds to frame 1. However, this is a platform-specific decision and it shouldn't b
Define the Non-Secure timer frame ID for ARM platforms
On Juno and FVP platforms, the Non-Secure System timer corresponds to frame 1. However, this is a platform-specific decision and it shouldn't be hard-coded. Hence, this patch introduces PLAT_ARM_NSTIMER_FRAME_ID which should be used by all ARM platforms to specify the correct non-secure timer frame.
Change-Id: I6c3a905d7d89200a2f58c20ce5d1e1d166832bba
show more ...
|
| e86c1ff0 | 31-Jul-2015 |
Vikram Kanigiri <vikram.kanigiri@arm.com> |
Re-factor definition of TZC-400 base address
This patch replaces the `ARM_TZC_BASE` constant with `PLAT_ARM_TZC_BASE` to support different TrustZone Controller base addresses across ARM platforms.
Re-factor definition of TZC-400 base address
This patch replaces the `ARM_TZC_BASE` constant with `PLAT_ARM_TZC_BASE` to support different TrustZone Controller base addresses across ARM platforms.
Change-Id: Ie4e1c7600fd7a5875323c7cc35e067de0c6ef6dd
show more ...
|
| 02516ae4 | 02-Sep-2015 |
danh-arm <dan.handley@arm.com> |
Merge pull request #382 from vikramkanigiri/vk/tf-issues-312
Configure all secure interrupts on ARM platforms |
| a7270d35 | 24-Jun-2015 |
Vikram Kanigiri <vikram.kanigiri@arm.com> |
Configure all secure interrupts on ARM platforms
ARM TF configures all interrupts as non-secure except those which are present in irq_sec_array. This patch updates the irq_sec_array with the missing
Configure all secure interrupts on ARM platforms
ARM TF configures all interrupts as non-secure except those which are present in irq_sec_array. This patch updates the irq_sec_array with the missing secure interrupts for ARM platforms.
It also updates the documentation to be inline with the latest implementation.
Fixes ARM-software/tf-issues#312
Change-Id: I39956c56a319086e3929d1fa89030b4ec4b01fcc
show more ...
|
| d49b9c80 | 26-Aug-2015 |
Varun Wadekar <vwadekar@nvidia.com> |
Tegra: fix logic to clear videomem regions
The previous logic in the memctrl driver was not catering to cases where the new memory region lied inside the older region. This patch fixes the if/elseif
Tegra: fix logic to clear videomem regions
The previous logic in the memctrl driver was not catering to cases where the new memory region lied inside the older region. This patch fixes the if/elseif/elseif logic in the driver to take care of this case.
Reported by: Vikram Kanigiri <vikram.kanigiri@arm.com> Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
show more ...
|
| b42192bc | 21-Aug-2015 |
Varun Wadekar <vwadekar@nvidia.com> |
Tegra210: wait for 512 timer ticks before retention entry
This patch programs the CPUECTLR_EL1 and L2ECTLR_EL1 registers, so that the core waits for 512 generic timer CNTVALUEB ticks before entering
Tegra210: wait for 512 timer ticks before retention entry
This patch programs the CPUECTLR_EL1 and L2ECTLR_EL1 registers, so that the core waits for 512 generic timer CNTVALUEB ticks before entering retention state, after executing a WFI instruction.
This functionality is configurable and can be enabled for platforms by setting the newly defined 'ENABLE_L2_DYNAMIC_RETENTION' and 'ENABLE_CPU_DYNAMIC_RETENTION' flag.
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
show more ...
|
| b0b4855f | 18-Aug-2015 |
danh-arm <dan.handley@arm.com> |
Merge pull request #365 from mtk09422/plat_topology
mt8173: Fix cluster 0 core count |
| c4a99e89 | 14-Aug-2015 |
Jimmy Huang <jimmy.huang@mediatek.com> |
mt8173: Fix cluster 0 core count
Use constant macro defined in platform_def.h to replace hardcoded value. This patch fix following assert in new psci-1.0 framework.
ASSERT: populate_power_domain_tr
mt8173: Fix cluster 0 core count
Use constant macro defined in platform_def.h to replace hardcoded value. This patch fix following assert in new psci-1.0 framework.
ASSERT: populate_power_domain_tree <183> : j == PLATFORM_CORE_COUNT
Change-Id: I9b7eda525479464a8c3805b6fe14ffb10debaf72 Signed-off-by: Jimmy Huang <jimmy.huang@mediatek.com>
show more ...
|
| 64faa0e5 | 11-Aug-2015 |
kenny liang <kenny.liang@mediatek.com> |
mt8173: update spm wake_src setting
1. SEJ should not be one of the wake up sources
BUG=chrome-os-partner:38426 TEST=powerd_dbus_suspend
Change-Id: If8f3f19a885e66d7c10b472c2e3182a5affa4773 Signed
mt8173: update spm wake_src setting
1. SEJ should not be one of the wake up sources
BUG=chrome-os-partner:38426 TEST=powerd_dbus_suspend
Change-Id: If8f3f19a885e66d7c10b472c2e3182a5affa4773 Signed-off-by: kenny liang <kenny.liang@mediatek.com>
show more ...
|