summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-06-03Merge pull request #637 from yatharth-arm/yk/genfw-1134danh-arm
Add support for ARM Cortex-A73 MPCore Processor
2016-06-03Merge pull request #636 from soby-mathew/sm/cpu_ctx_rem_aarch32_regsdanh-arm
Build option to include AArch32 registers in cpu context
2016-06-03Fix a syntax errorSandrine Bailleux
Building TF with ERROR_DEPRECATED=1 fails because of a missing semi-column. This patch fixes this syntax error. Change-Id: I98515840ce74245b0a0215805f85c8e399094f68
2016-06-03Minor libfdt changes to enable TF integrationDan Handley
* Move libfdt API headers to include/lib/libfdt * Add libfdt.mk helper makefile * Remove unused libfdt files * Minor changes to fdt.h and libfdt.h to make them C99 compliant Co-Authored-By: Jens Wiklander <jens.wiklander@linaro.org> Change-Id: I425842c2b111dcd5fb6908cc698064de4f77220e
2016-06-03Import libfdt v1.4.1Dan Handley
Imports libfdt code from https://git.kernel.org/cgit/utils/dtc/dtc.git tag "v1.4.1" commit 302fca9f4c283e1994cf0a5a9ce1cf43ca15e6d2. Change-Id: Ia0d966058beee55a9047e80d8a05bbe4f71d8446
2016-06-03Exclude more files from checkpatch and checkcodebaseDan Handley
Exclude documentation files from the `make checkcodebase` target (these files were already excluded from checkpatch). Also exclude libfdt files to prepare for import of this library. Change-Id: Iee597ed66494de2b11cf84096f771f1f04472d5b
2016-06-03Move stdlib header files to include/lib/stdlibDan Handley
* Move stdlib header files from include/stdlib to include/lib/stdlib for consistency with other library headers. * Fix checkpatch paths to continue excluding stdlib files. * Create stdlib.mk to define the stdlib source files and include directories. * Include stdlib.mk from the top level Makefile. * Update stdlib header path in the fip_create Makefile. * Update porting-guide.md with the new paths. Change-Id: Ia92c2dc572e9efb54a783e306b5ceb2ce24d27fa
2016-06-03Implement plat_set_nv_ctr for FVP platformsAntonio Nino Diaz
Replaced placeholder implementation of plat_set_nv_ctr for FVP platforms by a working one. On FVP, the mapping of region DEVICE2 has been changed from RO to RW to prevent exceptions when writing to the NV counter, which is contained in this region. Change-Id: I56a49631432ce13905572378cbdf106f69c82f57
2016-06-03Build option to include AArch32 registers in cpu contextSoby Mathew
The system registers that are saved and restored in CPU context include AArch32 systems registers like SPSR_ABT, SPSR_UND, SPSR_IRQ, SPSR_FIQ, DACR32_EL2, IFSR32_EL2 and FPEXC32_EL2. Accessing these registers on an AArch64-only (i.e. on hardware that does not implement AArch32, or at least not at EL1 and higher ELs) platform leads to an exception. This patch introduces the build option `CTX_INCLUDE_AARCH32_REGS` to specify whether to include these AArch32 systems registers in the cpu context or not. By default this build option is set to 1 to ensure compatibility. AArch64-only platforms must set it to 0. A runtime check is added in BL1 and BL31 cold boot path to verify this. Fixes ARM-software/tf-issues#386 Change-Id: I720cdbd7ed7f7d8516635a2ec80d025f478b95ee
2016-06-02xlat lib: Remove out-dated commentSandrine Bailleux
As of commit e1ea9290bb, if the attributes of an inner memory region are different than the outer region, new page tables are generated regardless of how "restrictive" they are. This patch removes an out-dated comment still referring to the old priority system based on which attributes were more restrictive. Change-Id: Ie7fc1629c90ea91fe50315145f6de2f3995e5e00
2016-06-01Add support for ARM Cortex-A73 MPCore ProcessorYatharth Kochar
This patch adds ARM Cortex-A73 MPCore Processor support in the CPU specific operations framework. It also includes this support for the Base FVP port. Change-Id: I0e26b594f2ec1d28eb815db9810c682e3885716d
2016-05-29zynqmp: Remove double ';'Soren Brinkmann
Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
2016-05-29zynqmp: Fix spelling of endiannessSoren Brinkmann
Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
2016-05-27Merge pull request #632 from rockchip-linux/support-for-gpio-driver-v2danh-arm
rockchip/rk3399: Support the gpio driver and configure
2016-05-27Merge pull request #634 from sandrine-bailleux-arm/sb/exception-vectorsdanh-arm
Improve robustness and readability of exception code
2016-05-27Merge pull request #633 from soby-mathew/sm/psci_wfi_hookdanh-arm
PSCI: Add pwr_domain_pwr_down_wfi() hook in plat_psci_ops
2016-05-27Merge pull request #627 from soby-mathew/sm/fvp_ccn502_sup_1danh-arm
Add CCN support to FVP
2016-05-27rockchip: support system off function for rk3399Caesar Wang
if define power off gpio, BL31 will do system power off through gpio control.
2016-05-27rockchip: support reset SoC through gpio for rk3399Caesar Wang
If define a reset gpio, BL31 will use gpio to reset SOC, otherwise use CRU reset.
2016-05-27rockchip: add reset or power off gpio configuration for rk3399Caesar Wang
We add plat parameter structs to support BL2 to pass variable-length, variable-type parameters to BL31. The parameters are structured as a link list. During bl31 setup time, we travse the list to process each parameter. throuth this way, we can get the reset or power off gpio parameter, and do hardware control in BL31. This structure also can pass other parameter to BL31 in future.
2016-05-27rockchip: support rk3399 gpio driverCaesar Wang
There are 5 groups of GPIO (GPIO0~GPIO4), totally have 122 GPIOs on rk3399 platform. The pull direction(pullup or pulldown) for all of GPIOs are software-programmable. At the moment, we add the gpio basic driver since reset or power off the devices from gpio configuration for BL31.
2016-05-27gpio: support gpio set/get pull statusCaesar Wang
On some platform gpio can set/get pull status when input, add these function so we can set/get gpio pull status when need it. And they are optional function.
2016-05-26Fill exception vectors with zero bytesSandrine Bailleux
The documentation of the GNU assembler specifies the following about the .align assembler directive: "the padding bytes are normally zero. However, on some systems, if the section is marked as containing code and the fill value is omitted, the space is filled with no-op instructions." (see https://sourceware.org/binutils/docs/as/Align.html) When building Trusted Firmware, the AArch64 GNU assembler uses a mix of zero bytes and no-op instructions as the padding bytes to align exception vectors. This patch mandates to use zero bytes to be stored in the padding bytes in the exception vectors. In the AArch64 instruction set, no valid instruction encodes as zero so this effectively inserts illegal instructions. Should this code end up being executed for any reason, it would crash immediately. This gives us an extra protection against misbehaving code at no extra cost. Change-Id: I4f2abb39d0320ca0f9d467fc5af0cb92ae297351
2016-05-26Introduce some helper macros for exception vectorsSandrine Bailleux
This patch introduces some assembler macros to simplify the declaration of the exception vectors. It abstracts the section the exception code is put into as well as the alignments constraints mandated by the ARMv8 architecture. For all TF images, the exception code has been updated to make use of these macros. This patch also updates some invalid comments in the exception vector code. Change-Id: I35737b8f1c8c24b6da89b0a954c8152a4096fa95
2016-05-25zynqmp: PSCI: Wait for FW completing wake requestsSoren Brinkmann
Powering up cores didn't wait for the PMUFW to complete the request, which could result in cores failing to power up in Linux. Reported-by: Koteswararao Nayudu <kotin@xilinx.com> Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
2016-05-25PSCI: Add pwr_domain_pwr_down_wfi() hook in plat_psci_opsSoby Mathew
This patch adds a new optional platform hook `pwr_domain_pwr_down_wfi()` in the plat_psci_ops structure. This hook allows the platform to perform platform specific actions including the wfi invocation to enter powerdown. This hook is invoked by both psci_do_cpu_off() and psci_cpu_suspend_start() functions. The porting-guide.md is also updated for the same. This patch also modifies the `psci_power_down_wfi()` function to invoke `plat_panic_handler` incase of panic instead of the busy while loop. Fixes ARM-Software/tf-issues#375 Change-Id: Iba104469a1445ee8d59fb3a6fdd0a98e7f24dfa3
2016-05-25Add CCN support to FVP platform portSoby Mathew
This patch adds support to select CCN driver for FVP during build. A new build option `FVP_INTERCONNECT_DRIVER` is added to allow selection between the CCI and CCN driver. Currently only the CCN-502 variant is supported on FVP. The common ARM CCN platform helper file now verifies the cluster count declared by platform is equal to the number of root node masters exported by the ARM Standard platform. Change-Id: I71d7b4785f8925ed499c153b2e9b9925fcefd57a
2016-05-25CCN: Add API to query the PART0 ID from CCNSoby Mathew
This patch adds the API `ccn_get_part0_id` to query the PART0 ID from the PERIPHERAL_ID 0 register in the CCN driver. This ID allows to distinguish the variant of CCN present on the system and possibly enable dynamic configuration of the IP based on the variant. Also added an assert in `ccn_master_to_rn_id_map()` to ensure that the master map bitfield provided by the platform is within the expected interface id. Change-Id: I92d2db7bd93a9be8a7fbe72a522cbcba0aba2d0e
2016-05-24zynqmp: Ignore the revision field of the IDCODESoren Brinkmann
The revision field may change between silicon revisions without changing the mapping to a part. This avoids errors like: ERROR: Incorrect XILINX IDCODE 0x14738093, maskid 0x4600093 NOTICE: ATF running on XCZUUNKN/EP108 v3/RTL5.1 at 0xfffe5000 on parts with a newer revision. Reported-by: Love Kumar <love.kumar@xilinx.com> Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Acked-by: Alistair Francis <alistair.francis@xilinx.com> Tested-by: Love Kumar <love.kumar@xilinx.com>
2016-05-24zynqmp: Add bakery_lock to protect APU_PWRCTRL register accessStefan Krsmanovic
Access to APU_PWRCTRL register is protected during suspend/wakeup pocedure in order to save valid state. If more than one CPU is accessing this register it can be left in corrupted state during read-modify-write process. Signed-off-by: Stefan Krsmanovic <stefan.krsmanovic@aggios.com> Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
2016-05-24zynqmp: Put pm_secure_lock in coherent memory regionStefan Krsmanovic
DEFINE_BAKERY_LOCK() macro is used to put lock in coherent memory region. ARM Trusted Firmware design guide, chapter 11 states that bakery_lock data structures should be allocated in coherent memory region because it is accessed by multiple CPUs with mismatched shareability, cacheability and memory attributes. Signed-off-by: Stefan Krsmanovic <stefan.krsmanovic@aggios.com> Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
2016-05-24zynqmp: pm: Implement pm_register_notifier PM API functionAnes Hadziahmetagic
Signed-off-by: Anes Hadziahmetagic <anes.hadziahmetagic@aggios.com> Signed-off-by: Filip Drazic <filip.drazic@aggios.com> Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
2016-05-24zynqmp: pm: Implemented 'get_op_characteristic' PM API callAnes Hadziahmetagic
Signed-off-by: Anes Hadziahmetagic <anes.hadziahmetagic@aggios.com> Signed-off-by: Filip Drazic <filip.drazic@aggios.com> Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
2016-05-24zynqmp: pm: Removed double declaration of pm_ipi_send functionsFilip Drazic
Functions pm_ipi_send and pm_ipi_send_sync are declared in pm_ipi.h Signed-off-by: Filip Drazic <filip.drazic@aggios.com> Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
2016-05-24zynqmp: Reduce mapped memory areaSoren Brinkmann
The GIC area is specified larger than it needs to be and can be reduced. Which allows reducing the structures required for the translation tables as well. This results in a reduction of memory footprint of ca. 4k. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Acked-by: Michal Simek <michal.simek@xilinx.com>
2016-05-24Merge pull request #625 from antonio-nino-diaz-arm/an/delay-timer-v2danh-arm
Implement generic delay timer and use it on platforms
2016-05-20Replace Rockchip delay timer by generic oneAntonio Nino Diaz
Use the generic delay timer instead of having a specific platform file for configuring it. Change-Id: Ifa68b9c97cd96ae1190cee74d22d729af95e4537
2016-05-20Replace MediaTek delay timer by generic oneAntonio Nino Diaz
Use the generic delay timer instead of having a specific platform file for configuring it. Change-Id: If6b8f60bc04230f4b85b2bcc1b670fc65461214e
2016-05-20Replace SP804 timer by generic delay timer on FVPAntonio Nino Diaz
Added a build flag to select the generic delay timer on FVP instead of the SP804 timer. By default, the generic one will be selected. The user guide has been updated. Change-Id: Ica34425c6d4ed95a187b529c612f6d3b26b78bc6
2016-05-20Implement generic delay timerAntonio Nino Diaz
Add delay timer implementation based on the system generic counter. This either uses the platform's implementation of `plat_get_syscnt_freq()` or explicit clock multiplier/divider values provided by the platform. The current implementation of udelay has been modified to avoid unnecessary calculations while waiting on the loop and to make it easier to check for overflows. Change-Id: I9062e1d506dc2f68367fd9289250b93444721732
2016-05-20Implement plat_get_syscnt_freq2 on platformsAntonio Nino Diaz
Replaced plat_get_syscnt_freq by plat_get_syscnt_freq2 on all upstream platforms. Change-Id: I3248f3f65a16dc5e9720012a05c35b9e3ba6abbe
2016-05-20Add 32 bit version of plat_get_syscnt_freqAntonio Nino Diaz
Added plat_get_syscnt_freq2, which is a 32 bit variant of the 64 bit plat_get_syscnt_freq. The old one has been flagged as deprecated. Common code has been updated to use this new version. Porting guide has been updated. Change-Id: I9e913544926c418970972bfe7d81ee88b4da837e
2016-05-12Bring IO storage dummy driverGerald Lejeune
Allow to handle cases where some images are pre-loaded (by debugger for instance) without introducing many switches in files calling load_* functions. Fixes: arm-software/tf-issues#398 Signed-off-by: Gerald Lejeune <gerald.lejeune@st.com>
2016-05-12Merge pull request #622 from mtk09422/hw-crypt-v3danh-arm
Hw crypt v3
2016-05-12MT8173: Add Sip function for MTK HW crypt driverYi Zheng
Change-Id: Idc40cc6243e532567ec4334ae37d97c003c90bfa Signed-off-by: Yi Zheng <yi.zheng@mediatek.com>
2016-05-12mt8173: Reorganize plat SiP functionsJimmy Huang
Due to the changes in Mediatek platform common code, we need to move plat related SiP functions to plat folder. Change-Id: I6b14b988235205a5858b4bf49043bc79d0512b06 Signed-off-by: Jimmy Huang <jimmy.huang@mediatek.com>
2016-05-11Merge pull request #619 from sandrine-bailleux-arm/sb/rockchip-assertionsdanh-arm
Rockchip: Add some debug assertions in the PMU driver
2016-05-05Rockchip: Add some debug assertions in the PMU driverSandrine Bailleux
This patch adds some debug assertions ensuring that array indices are within the bounds of the array. Change-Id: I96ee81d14834c1e92cdfb7e60b49995cdacfd93a
2016-05-04Merge pull request #618 from rockchip-linux/fixes-for-suspend/resumedanh-arm
rockchip: support the suspend/resume for rk3399
2016-05-04Merge pull request #617 from leon-chen-mtk/refactor_common_1danh-arm
Refactor MediaTek platform common code