summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-02-01Improve memory layout documentationJuan Castillo
This patch adds a brief explanation of the top/bottom load approach to the Firmware Design guide and how Trusted Firmware keeps track of the free memory at boot time. This will help platform developers to avoid unexpected results in the memory layout. Fixes ARM-software/tf-issues#319 Change-Id: I04be7e24c1f3b54d28cac29701c24bf51a5c00ad
2016-02-01Use tf_printf() for debug logs from xlat_tables.cSoby Mathew
The debug prints used to debug translation table setup in xlat_tables.c used the `printf()` standard library function instead of the stack optimized `tf_printf()` API. DEBUG_XLAT_TABLE option was used to enable debug logs within xlat_tables.c and it configured a much larger stack size for the platform in case it was enabled. This patch modifies these debug prints within xlat_tables.c to use tf_printf() and modifies the format specifiers to be compatible with tf_printf(). The debug prints are now enabled if the VERBOSE prints are enabled in Trusted Firmware via LOG_LEVEL build option. The much larger stack size definition when DEBUG_XLAT_TABLE is defined is no longer required and the platform ports are modified to remove this stack size definition. Change-Id: I2f7d77ea12a04b827fa15e2adc3125b1175e4c23
2016-01-29Porting Guide: Clarify identity-mapping requirementSandrine Bailleux
The memory translation library in Trusted Firmware supports non-identity mappings for Physical to Virtual addresses since commit f984ce84ba. However, the porting guide hasn't been updated accordingly and still mandates the platform ports to use identity-mapped page tables for all addresses. This patch removes this out-dated information from the Porting Guide and clarifies in which circumstances non-identity mapping may safely be used. Fixes ARM-software/tf-issues#258 Change-Id: I84dab9f3cabfc43794951b1828bfecb13049f706
2016-01-29Clarify EL3 payload documentationSandrine Bailleux
This patch reworks the section about booting an EL3 payload in the User Guide: - Centralize all EL3 payload related information in the same section. - Mention the possibility to program the EL3 payload in flash memory and execute it in place. - Provide model parameters for both the Base and Foundation FVPs. - Provide some guidance to boot an EL3 payload on Juno. Change-Id: I975c8de6b9b54ff4de01a1154cba63271d709912
2016-01-26mt8173: Fix long latency issue of mtcmos contorlFan Chen
We found sometimes mtcmos operation is too long in spm (>1ms), so update a new version to fix it. I verified with 5 hours power_LoadTest, every mtcmos control can finish in 500us (average is 100~200us). Change-Id: I47b712bf9898870f4abcecbea47e01b9786231d4 Signed-off-by: Fan Chen <fan.chen@mediatek.com>
2016-01-26mt8173: Improve performance by handling more interrupts during idleWeiyi Lu
1. Set more wakeup source 2. Update PCM code for control logic Change-Id: I2ad06bd85bd1c75a22c838eab4cf5566c443b89a Signed-off-by: Weiyi Lu <weiyi.lu@mediatek.com>
2016-01-26mt8173: Implement subsystem power control logic in ARM TFJimmy Huang
1. Add SiP calls for subsystem power on/off and check support 2. Add subsystem power control related initialization in bl31_plat_setup.c 3. Add subsystem power on/off and power ack waiting functions 4. Update PCM code for subsystem physical power control logic Change-Id: Ia0ebb1964c8f9758159bcf17c1813d76ef52cf64 Signed-off-by: yt.lee <yt.lee@mediatek.com>
2016-01-26mt8173: support big/Little cluster power off for CPU idle(C2 state)Jimmy Huang
1. add power control for both big and Little cluster in MCDI 2. fix incorrect PCM_HOTPLUG_VALID_MASK in spm_hotplug.c 3. check the power status of cpus in cluster before setting the cputop power control Change-Id: Ifa85306a8bc218098667247904d281494c2f7bfe Signed-off-by: Weiyi Lu <weiyi.lu@mediatek.com>
2016-01-26mt8173: Move SPM related PLL settings to ARM TFJimmy Huang
Move SPM related PLL settings to spm_boot_init in ARM TF SPM driver Change-Id: I414b896caae072570c8de33a25e06db4ae011f57 Signed-off-by: yt.lee <yt.lee@mediatek.com>
2016-01-26mt8173: Fix USB remote wake up problemJimmy Huang
This patch updates SPM driver settings and PCM code to fix USB remote wake up problem. Change-Id: I07a81cc64b1d226d111380580d09ae25879f4285 Signed-off-by: yt.lee <yt.lee@mediatek.com>
2016-01-26mt8173: Enable dynamic clock managementJimmy Huang
This patch enables dynamic clock management control to reduce power consumption in various components. Change-Id: I8f66d9b72c8b1d70169ffe46cc361b16a0dadb77 Signed-off-by: Jimmy Huang <jimmy.huang@mediatek.com>
2016-01-25Merge pull request #496 from Xilinx/attr-deprecateddanh-arm
cdefs.h: Use __deprecated__ instead of deprecated
2016-01-25Merge pull request #495 from jcastillo-arm/jc/tf-issues/170danh-arm
ARM plat: add build option to unlock access to non-secure timer
2016-01-21Disable PL011 UART before configuring itJuan Castillo
The PL011 TRM (ARM DDI 0183G) specifies that the UART must be disabled before any of the control registers are programmed. The PL011 driver included in TF does not disable the UART, so the initialization in BL2 and BL31 is violating this requirement (and potentially in BL1 if the UART is enabled after reset). This patch modifies the initialization function in the PL011 console driver to disable the UART before programming the control registers. Register clobber list and documentation updated. Fixes ARM-software/tf-issues#300 Change-Id: I839b2d681d48b03f821ac53663a6a78e8b30a1a1
2016-01-20cdefs.h: Use __deprecated__ instead of deprecatedSoren Brinkmann
Use the form with underscores to define the '__deprecated' macro to avoid collisions with potentially defined macros, as suggested in gcc docs (https://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html#Attribute-Syntax). Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
2016-01-20ARM plat: add build option to unlock access to non-secure timerJuan Castillo
Currently, Trusted Firmware on ARM platforms unlocks access to the timer frame registers that will be used by the Non-Secure world. This unlock operation should be done by the Non-Secure software itself, instead of relying on secure firmware settings. This patch adds a new ARM specific build option 'ARM_CONFIG_CNTACR' to unlock access to the timer frame by setting the corresponding bits in the CNTACR<N> register. The frame id <N> is defined by 'PLAT_ARM_NSTIMER_FRAME_ID'. Default value is true (unlock timer access). Documentation updated accordingly. Fixes ARM-software/tf-issues#170 Change-Id: Id9d606efd781e43bc581868cd2e5f9c8905bdbf6
2016-01-18Merge pull request #493 from yupluo01/yp/tf-issue-fix-doc-linksdanh-arm
Update doc links in the porting guide
2016-01-18Update doc links in the porting guideYuping Luo
GIC v2 and v3 specification references in the porting guide should refer to publically visible links, not ARM internal links. Change-Id: Ib47c8adda6a03581f23bcaed72d71c08c7dd9fb1 Signed-off-by: Yuping Luo <yuping.luo@arm.com>
2016-01-15Merge pull request #489 from sandrine-bailleux/sb/fix-mailbox-docdanh-arm
Doc: Update out-dated info about Juno's mailbox
2016-01-15Merge pull request #486 from Xilinx/issues/340danh-arm
Clean up __attribute__ usage
2016-01-15Doc: Update out-dated info about Juno's mailboxSandrine Bailleux
Since commit 804040d106, the Juno port has moved from per-CPU mailboxes to a single shared one. This patch updates an out-dated reference to the former per-CPU mailboxes mechanism in the Firmware Design. Change-Id: I355b54156b1ace1b3df4c4416e1e8625211677fc
2016-01-14Remove direct usage of __attribute__((foo))Soren Brinkmann
Migrate all direct usage of __attribute__ to usage of their corresponding macros from cdefs.h. e.g.: - __attribute__((unused)) -> __unused Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
2016-01-14Migrate __warn_deprecated -> __deprecatedSoren Brinkmann
Use the new __deprecated macro from the generic cdefs header and remove the deprecated __warn_deprecated. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
2016-01-14cdefs.h: Introduce '__deprecated' macroSoren Brinkmann
Introduce a macro to mark functions as deprecated. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
2016-01-14Merge pull request #487 from sandrine-bailleux/sb/cortex-a72danh-arm
FVP: Compile ARM Cortex-A72 CPU support in
2016-01-13Merge pull request #485 from jcastillo-arm/jc/max_mmap_regdanh-arm
Add 'MAX_MMAP_REGIONS' and 'ADDR_SPACE_SIZE' to the Porting Guide
2016-01-13Merge pull request #484 from jcastillo-arm/jc/tf-issues/337danh-arm
cert_create: update help message
2016-01-13Merge pull request #483 from soby-mathew/sm/rm_struct_paddingdanh-arm
Rearrange fields in TF data structures to reduce padding
2016-01-13Merge pull request #482 from sandrine-bailleux/sb/cortex-a35danh-arm
Add support for ARM Cortex-A35 processor
2016-01-13Merge pull request #481 from sandrine-bailleux/sb/fix-docdanh-arm
Various documentation fixes
2016-01-13Add 'MAX_MMAP_REGIONS' and 'ADDR_SPACE_SIZE' to the Porting GuideJuan Castillo
This patch adds a brief description of 'MAX_MMAP_REGIONS' and 'ADDR_SPACE_SIZE' to the Porting Guide. These fields must be defined by the platform in order to use the translation table library. Change-Id: Ida366458fe2bc01979091a014dc38da0fae5991e
2016-01-13Rearrange fields in TF data structures to reduce paddingSoby Mathew
This patch rearranges fields of the `image_desc_t` & `auth_img_desc_t` data structures to reduce padding between the fields and thereby save memory. NOTE: Platform ports which anonymously initialize these structures should be aware of the rearrangement and do the required modification. Change-Id: I428b5429632797b31d5bd306174599c07e24c060
2016-01-13Use designated initialization in DECLARE_RT_SVC macroSoby Mathew
This patch changes the anonymous initialization of `rt_svc_desc_t` structure by the `DECLARE_RT_SVC` macro to designated initialization. This makes the code more robust and less sensitive to potential changes to the `rt_svc_desc_t` structure. Change-Id: If6f1586730c0d29d92ef09e07eff7dd0d22857c7
2016-01-13FVP: Compile ARM Cortex-A72 CPU support inSandrine Bailleux
This patch enables the ARM Cortex-A72 support in BL1 and BL31 on FVP. This allows the same TF binaries to run on a Cortex-A72 based FVP without recompiling them. Change-Id: I4eb6bbad9f0e5d8704613f7c685c3bd22b45cf47
2016-01-12Documentation: Fix broken links in ToCsSandrine Bailleux
Change-Id: I4fcdb8e813e0392c2cd3d0623698e8319b3b0593
2016-01-12Add support for ARM Cortex-A35 processorSandrine Bailleux
This patch adds support for ARM Cortex-A35 processor in the CPU specific framework, as described in the Cortex-A35 TRM (r0p0). Change-Id: Ief930a0bdf6cd82f6cb1c3b106f591a71c883464
2016-01-08Fixes in CPU specific operations framework docSandrine Bailleux
This patch fixes a couple of issues in the "CPU specific operations framework" section in the Firmware Design document. * Fix broken link to the CPU Specific Build Macros document. * Fix the path to the cortex_a53.S file. * Fix power levels terminology. Change-Id: Ib610791eaba13dab2823b7699bb63534bcd1c8fb
2016-01-07cert_create: update help messageJuan Castillo
The help message printed by the cert_create tool using the command line option -h (or --help) does not correctly list all the available command line options. This patch reworks the print_help() function to print the help messages in a data driven approach. For each command line option registered, an optional help message can be specified, which will be printed by print_help(). Help messages for the TBBR options (certificates, keys and images) are also provided. Fix a small bug in the short options string passed to getopt_long: the ':' was missing in the '-a' option (this option must take an argument). Fixes ARM-software/tf-issues#337 Change-Id: I9d08c2dfd349022808fcc884724f677eefdc1452
2016-01-06Merge pull request #479 from jcastillo-arm/jc/tbbr_fipdanh-arm
Apply TBBR naming convention to the fip_create options
2016-01-06Merge pull request #478 from sandrine-bailleux/sb/mbed-tls-pedanticdanh-arm
Always build with '-pedantic'
2016-01-06Merge pull request #477 from mtk09422/console_uninitdanh-arm
Add ret to return from console_uninit() function
2016-01-05Apply TBBR naming convention to the fip_create optionsJuan Castillo
The fip_create tool specifies images in the command line using the ARM TF naming convention (--bl2, --bl31, etc), while the cert_create tool uses the TBBR convention (--tb-fw, --soc-fw, etc). This double convention is confusing and should be aligned. This patch updates the fip_create command line options to follow the TBBR naming convention. Usage examples in the User Guide have been also updated. NOTE: users that build the FIP by calling the fip_create tool directly from the command line must update the command line options in their scripts. Users that build the FIP by invoking the main ARM TF Makefile should not notice any difference. Change-Id: I84d602630a2585e558d927b50dfde4dd2112496f
2016-01-05Always build with '-pedantic'Sandrine Bailleux
By default ARM TF is built with the '-pedantic' compiler flag, which helps detecting violations of the C standard. However, the mbed TLS library and its associated authentication module in TF used to fail building with this compiler flag. As a workaround, the mbed TLS authentication module makefile used to set the 'DISABLE_PEDANTIC' TF build flag. The compiler errors flagged by '-pedantic' in the mbed TLS library have been fixed between versions 1.3.9 and 2.2.0 and the library now properly builds with this compiler flag. This patch fixes the remaining compiler errors in the mbed TLS authentication module in TF and unsets the 'DISABLE_PEDANTIC' TF build flag. This means that TF is now always built with '-pedantic'. In particular, this patch: * Removes the final semi-colon in REGISTER_COT() macro. This semi-colon was causing the following error message: drivers/auth/tbbr/tbbr_cot.c:544:23: error: ISO C does not allow extra ';' outside of a function [-Werror=pedantic] This has been fixed both in the mbed TLS authentication module as well as in the certificate generation tool. Note that the latter code didn't need fixing since it is not built with '-pedantic' but the change has been propagated for consistency. Also fixed the REGISTER_KEYS() and REGISTER_EXTENSIONS() macros, which were suffering from the same issue. * Fixes a pointer type. It was causing the following error message: drivers/auth/mbedtls/mbedtls_crypto.c: In function 'verify_hash': drivers/auth/mbedtls/mbedtls_crypto.c:177:42: error: pointer of type 'void *' used in arithmetic [-Werror=pointer-arith] Change-Id: I7b7a04ef711efd65e17b5be26990d1a0d940257d
2016-01-04Add ret to return from console_uninit() functionJimmy Huang
The 'ret' was missing in console_uninit() implementation, so the program doesn't return from console_uninit(). Instead, it keeps executing the following instructions which is not expected. Change-Id: I810684f37f61c41c6f95a3bb36914d0765da8571 Signed-off-by: Jimmy Huang <jimmy.huang@mediatek.com>
2015-12-22Merge pull request #475 from danh-arm/dh/v1.2-finaldanh-arm
Final v1.2 release changes
2015-12-22Merge pull request #474 from danh-arm/dh/v1.2-misc-doc-fixesdanh-arm
Misc documentation fixes for v1.2 release
2015-12-22Increment Makefile version to 1.2Dan Handley
Change-Id: I50cd383e480628bf750bcfb76cfdc9d597c2595b
2015-12-22Update `readme.md` for v1.2 releaseDan Handley
Change-Id: I50e62cc89a55a6f13093a2c1c84d13802b65b4aa
2015-12-21Update `change-log.md` for v1.2 releaseSandrine Bailleux
Change-Id: I23a852fc7d91f91923bb84bc3167a830d1bb7463
2015-12-21Miscellaneous doc fixes for v1.2Sandrine Bailleux
Change-Id: I6f49bd779f2a4d577c6443dd160290656cdbc59b