aboutsummaryrefslogtreecommitdiff
path: root/plat
AgeCommit message (Collapse)Author
2019-05-28pico: add mmc io configJun Nie
Signed-off-by: Jun Nie <jun.nie@linaro.org>
2019-05-28pico: change uart pinmux to enable serial consoleJun Nie
Signed-off-by: Jun Nie <jun.nie@linaro.org>
2019-05-28picopi: Change name from warp7 to picopiJun Nie
Change name of files and variables from warp7 to picopi Signed-off-by: Jun Nie <jun.nie@linaro.org>
2019-05-28pico: copy warp7 folder as it isJun Nie
Copy warp7 folder as it is to start pico-pi development. Signed-off-by: Jun Nie <jun.nie@linaro.org> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
2019-05-23Merge "plat/meson/gxl: BL31: remove BL2 dependency" into integrationSandrine Bailleux
2019-05-22Merge changes Icf1ea76c,I9ca3f278 into integrationSandrine Bailleux
* changes: imx8: Replace PLAT_IMX8* with automatic PLAT_imx8* plat: imx8mq: Implement IMX_SIP_GET_SOC_INFO
2019-05-20imx8: Replace PLAT_IMX8* with automatic PLAT_imx8*Leonard Crestez
Platform defines are already provided by the build system so let's not duplicate them. Change-Id: Icf1ea76c3c3213e27b447c95e2b22b961fa7693e Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
2019-05-20plat: imx8mq: Implement IMX_SIP_GET_SOC_INFOLeonard Crestez
The manual documents that 0x3036006c should contains the soc revision for imx8mq but this always reports A0. Work around this by parsing the ROM header and checking if OCOTP register 0x40 is stuck at 0xff0055aa. Determining this inside TF-A makes life easier for OS, see for example this linux discussion: https://lkml.org/lkml/2019/5/3/465 The soc revision can also be useful inside TF-A itself, for example for the non-upstream DDR DVFS "busfreq" feature is affected by 8mq erratas. The clock for OCOTP block can be disabled by OS so only initialize soc revision once at boot time. Change-Id: I9ca3f27840229ce8a28b53870e44da29f63c73aa Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
2019-05-16plat/meson/gxl: BL31: remove BL2 dependencyKevin Hilman
Remove an assert() that assumes a specific value being passed from BL2. This value is dependent on BL2 version, so makes this assert() not portable. Suggested-by: Remi Pommarel <repk@triplefau.lt> Signed-off-by: Kevin Hilman <khilman@baylibre.com> Change-Id: Ife3d934b2fa37fc1c66963dd4eb1afe2ca17d740
2019-05-16Merge changes from topic "sami/550_fix_n1sdp_issues_v1" into integrationSoby Mathew
* changes: N1SDP: Initialise CNTFRQ in Non Secure CNTBaseN N1SDP: Fix DRAM2 start address Add option for defining platform DRAM2 base Disable speculative loads only if SSBS is supported
2019-05-15Merge "plat: imx8mq: Remove duplicated linker symbols" into integrationSoby Mathew
2019-05-15Merge "SMMUv3: Abort DMA transactions" into integrationSoby Mathew
2019-05-15N1SDP: Initialise CNTFRQ in Non Secure CNTBaseNSami Mujawar
N1SDP exhibits the behavior similar to Juno wherein CNTBaseN.CNTFRQ can be written but does not reflect the value of the CNTFRQ register in CNTCTLBase frame. This doesn't follow ARM ARM in that the value updated in CNTCTLBase.CNTFRQ is not reflected in CNTBaseN.CNTFRQ. Hence enable the workaround (applied to Juno) for N1SDP that updates the CNTFRQ register in the Non Secure CNTBaseN frame. Change-Id: Id89ee1bca0f25c9d62f8f794f2c4f4e618cdf092 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
2019-05-15N1SDP: Fix DRAM2 start addressSami Mujawar
The default DRAM2 start address for Arm platforms is 0x880000000. However, for N1SDP platform this is 0x8080000000. Fix the DRAM2 start address by initialising PLAT_ARM_DRAM2_BASE. Without this fix there is a mismatch of the System memory region view as seen by the BL31 runtime firmware (PSCI) versus the view of the OS (which is based on the description provided by UEFI. In this case UEFI is correctly describing the DRAM2 start address). This implicates in secondary cores failing to start on some Operating Systems if the OS decides to place the secondary start address in the mismatched region. Change-Id: I57220e753219353dda429868b4c5e1a69944cc64 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
2019-05-15Add option for defining platform DRAM2 baseSami Mujawar
The default DRAM2 base address for Arm platforms is 0x880000000. However, on some platforms the firmware may want to move the start address to a different value. To support this introduce PLAT_ARM_DRAM2_BASE that defaults to 0x880000000; but can be overridden by a platform (e.g. in platform_def.h). Change-Id: I0d81195e06070bc98f376444b48ada2db1666e28 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
2019-05-13plat: imx8mq: Remove duplicated linker symbolsJacky Bai
Remove duplicated linker symbols, resue the symbols defined in bl_common.h Change-Id: I10de450eccc78c09b61a8ae7126bf4f4029fa682 Signed-off-by: Jacky Bai <ping.bai@nxp.com>
2019-05-10SMMUv3: Abort DMA transactionsAlexei Fedorov
For security DMA should be blocked at the SMMU by default unless explicitly enabled for a device. SMMU is disabled after reset with all streams bypassing the SMMU, and abortion of all incoming transactions implements a default deny policy on reset. This patch also moves "bl1_platform_setup()" function from arm_bl1_setup.c to FVP platforms' fvp_bl1_setup.c and fvp_ve_bl1_setup.c files. Change-Id: Ie0ffedc10219b1b884eb8af625bd4b6753749b1a Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
2019-05-10Merge "Initialize platform for MediaTek mt8183" into integrationSoby Mathew
2019-05-10Initialize platform for MediaTek mt8183kenny liang
- Add basic platform setup - Add generic CPU helper functions - Add delay timer platform implementation - Use TI 16550 uart driver Change-Id: I1c29569c68fe9fca5e10e88a22a29690bab7141f Signed-off-by: kenny liang <kenny.liang@mediatek.com>
2019-05-09plat: imx8m: Implement IMX_SIP_BUILDINFOLeonard Crestez
The IMX_SIP_BUILDINFO call was implemented for imx8qm and imx8qx but it's also applicable to imx8m. This fixes U-Boot not printing commit hash on 8m with upstream TF-A. Change-Id: Idcfd9729eaaccf329c24e241da325f1f6cd3c880 Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
2019-05-08plat: imx8mq: Only keep IRQ 32 unmaskedLeonard Crestez
Only IRQ 32 (SPI 0) needs to be kept unmasked, not everything divisible by 32. Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com> Change-Id: I286b925eead89218cfeddd82f53a634f3447d212
2019-05-08plat: imx8mq: gpc: Enable all power domain by defaultLeonard Crestez
This is similar to imx8mm and allows uboot to run fastboot over USB otg. There is a different set of power domains on 8mq but same bits covers all off them. Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com> Change-Id: I1151c2bc2d32b1e02b4db16285b3d30cabc0d64d
2019-05-03Merge "Add compile-time errors for HW_ASSISTED_COHERENCY flag" into integrationSoby Mathew
2019-05-03Add compile-time errors for HW_ASSISTED_COHERENCY flagJohn Tsichritzis
This patch fixes this issue: https://github.com/ARM-software/tf-issues/issues/660 The introduced changes are the following: 1) Some cores implement cache coherency maintenance operation on the hardware level. For those cores, such as - but not only - the DynamIQ cores, it is mandatory that TF-A is compiled with the HW_ASSISTED_COHERENCY flag. If not, the core behaviour at runtime is unpredictable. To prevent this, compile time checks have been added and compilation errors are generated, if needed. 2) To enable this change for FVP, a logical separation has been done for the core libraries. A system cannot contain cores of both groups, i.e. cores that manage coherency on hardware and cores that don't do it. As such, depending on the HW_ASSISTED_COHERENCY flag, FVP includes the libraries only of the relevant cores. 3) The neoverse_e1.S file has been added to the FVP sources. Change-Id: I787d15819b2add4ec0d238249e04bf0497dc12f3 Signed-off-by: John Tsichritzis <john.tsichritzis@arm.com>
2019-05-03SMMUv3: refactor the driver codeAlexei Fedorov
This patch is a preparation for the subsequent changes in SMMUv3 driver. It introduces a new "smmuv3_poll" function and replaces inline functions for accessing SMMU registers with mmio read/write operations. Also the infinite loop for the poll has been replaced with a counter based timeout. Change-Id: I7a0547beb1509601f253e126b1a7a6ab3b0307e7 Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
2019-05-02rockchip: Disable binary generation for all SoCs.Christoph Müllner
All supported Rockchip SoCs (RK3288, RK3328, RK3368 and RK3399) have non-continuous memory areas in the linker script with a huge gap between them. This results in extremely padded binary images with a size of about 4 GiB. E.g. on the RK3399 we have the following memory areas (and base addresses): RAM (0x1000), SRAM (0xFF8C0000), and PMUSRAM (0xFF3B0000). Consumers of the TF-A project (e.g. coreboot or U-Boot) therefore use the ELF image instead, which has a size of a few hundred kBs. In order to prevent the generation of a huge and useless file, this patch disables the binary generation for all affected Rockchip SoCs. Signed-off-by: Christoph Müllner <christophm30@gmail.com> Change-Id: I4ac65bdf1e598c3e1a59507897d183aee9a36916
2019-05-02Merge changes from topic "rk3399q7" into integrationAntonio Niño Díaz
* changes: rockchip: Allow console device to be set by DTB. rockchip: Add params_setup to RK3328. rockchip: Streamline and complete UARTn_BASE macros.
2019-05-01rockchip: Allow console device to be set by DTB.Christoph Müllner
Currently the compile-time constant PLAT_RK_UART_BASE defines which UART is used as console device. E.g. on RK3399 it is set to UART2. That means, that a single bl31 image can not be used for two boards, which just differ on the UART console. This patch addresses this limitation by parsing the "stdout-path" property from the "chosen" node in the DTB. The expected property string is expected to have the form "serialN:XXX", with N being either 0, 1, 2, 3 or 4. When the property is found, it will be used to override PLAT_RK_UART_BASE. Tested on RK3399-Q7, with a stdout-path of "serial0:115200n8". Signed-off-by: Christoph Müllner <christophm30@gmail.com> Change-Id: Iafe1320e77ab006c121f8d52745d54cef68a48c7
2019-05-01rockchip: Add params_setup to RK3328.Christoph Müllner
params_setup.c provides the function params_early_setup, which takes care of parsing ATF parameters (bl31_plat_param array, fdt or coreboot table). As params_early_setup is defined as weak symbol in bl31_plat_setup.c, providing a platform-specific bl31_plat_setup implementation is optional. This patch adds the rockchip-common params_setup.c to the sources for RK3328. This streamlines the parameter handling for all supported rockchip SoCs. Signed-off-by: Christoph Müllner <christophm30@gmail.com> Change-Id: I071c03106114364ad2fc408e49cc791fe5b35925
2019-05-01rockchip: Streamline and complete UARTn_BASE macros.Christoph Müllner
In order to set the UART base during bootup in common code of plat/rockchip, we need to streamline the way the UART base addresses are defined and add the missing definitions and mappings. This patch does so by following the pattern UARTn_BASE, which is already in use on RK3399 and RK3328. The numbering itself is derived from the upstream Linux DTS files of the individual SoCs. Signed-off-by: Christoph Müllner <christophm30@gmail.com> Change-Id: I341a1996f4ceed5f82a2f6687d4dead9d7cc5c1f
2019-04-30Merge "ti: k3: common: Remove MSMC port definitions" into integrationSoby Mathew
2019-04-30Merge changes from topic "lm/stack_protector" into integrationSoby Mathew
* changes: juno: Add security sources for tsp-juno Add support for default stack-protector flag
2019-04-30juno: Add security sources for tsp-junoLouis Mayencourt
Security sources are required if stack-protector is enabled. Change-Id: Ia0071f60cf03d48b200fd1facbe50bd9e2f8f282 Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
2019-04-30ti: k3: common: Remove MSMC port definitionsAndrew F. Davis
The MSMC port defines were added to help in the case when some ports are not connected and have no cores attached. We can get the same functionality by defined the number of cores on that port to zero. This simplifies several code paths, do this here. Signed-off-by: Andrew F. Davis <afd@ti.com> Change-Id: I3247fe37af7b86c3227e647b4f617fab70c8ee8a
2019-04-29Merge "rockchip: only include libfdt in non-coreboot cases" into integrationSoby Mathew
2019-04-29Merge "hikey: Add define for UART2" into integrationSoby Mathew
2019-04-29Merge changes from topic "k3-coherency" into integrationSoby Mathew
* changes: ti: k3: common: Mark sections for AM65x coherency workaround ti: k3: common: Allow USE_COHERENT_MEM for K3 ti: k3: common: Fix RO data area size calculation ti: k3: common: Remove unused STUB macro
2019-04-29Merge "plat: allwinner: common: use r_wdog instead of wdog" into integrationAntonio Niño Díaz
2019-04-29Merge changes Ie7766e80,Ia74dbc36 into integrationAntonio Niño Díaz
* changes: plat: marvell: do not rely on argument passed via smc plat: marvell: sip: make sure that comphy init will use correct address
2019-04-26rockchip: only include libfdt in non-coreboot casesHeiko Stuebner
While mainline u-boot always expects to submit the devicetree as platform param, coreboot always uses the existing parameter structure. As libfdt is somewhat big, it makes sense to limit its inclusion to where necessary and thus only to non-coreboot builds. libfdt itself will get build in all cases, but only the non- coreboot build will actually reference and thus include it. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Change-Id: I4c5bc28405a14e6070917e48a526bfe77bab2fb7
2019-04-26ti: k3: common: Mark sections for AM65x coherency workaroundAndrew F. Davis
These sections of code are only needed for the coherency workaround used for AM65x, if this workaround is not needed then this code is not either. Mark it off to keep it separated from the rest of the PSCI implementation. Signed-off-by: Andrew F. Davis <afd@ti.com> Change-Id: I113ca6a2a1f7881814ab0a64e5bac57139bc03ef
2019-04-26ti: k3: common: Allow USE_COHERENT_MEM for K3Andrew F. Davis
To make the USE_COHERENT_MEM option work we need to add an entry for the area to our memory map table. Also fixup the alignment here. Signed-off-by: Andrew F. Davis <afd@ti.com> Change-Id: I1c05477a97646ac73846a711bc38d3746628d847
2019-04-26ti: k3: common: Fix RO data area size calculationAndrew F. Davis
The size of the RO data area was calculated by subtracting the area end address from itself and not the base address due to a typo. Fix this here. Note, this was noticed at a glance thanks to the new aligned formating of this table. Signed-off-by: Andrew F. Davis <afd@ti.com> Change-Id: I994022ac9fc95dc5e37a420714da76081c61cce7
2019-04-26ti: k3: common: Remove unused STUB macroAndrew F. Davis
This macro was used when many of these functions were stubbed out, the macro is not used anymore, remove it. Signed-off-by: Andrew F. Davis <afd@ti.com> Change-Id: Ida33f92fe3810a89e6e51faf6e93c1d2ada1a2ee
2019-04-26hikey: Add define for UART2Michalis Pappas
Change-Id: I54869151bfc434df66933bd418c70cca9c3d0861 Signed-off-by: Michalis Pappas <mpappas@fastmail.fm>
2019-04-26Merge "rk3399: m0: Fix compiler warnings." into integrationSoby Mathew
2019-04-25rockchip: add support for rk3288Heiko Stuebner
The rk3288 is a 4-core Cortex-A12 SoC and shares a lot of features with later SoCs. Working features are general non-secure mode (the gic needs special love for that), psci-based smp bringing cpu cores online and also taking them offline again, psci-based suspend (the simpler variant also included in the linux kernel, deeper suspend following later) and I was also already able to test HYP-mode and was able to boot a virtual kernel using kvm. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Change-Id: Ibaaa583b2e78197591a91d254339706fe732476a
2019-04-25rockchip: add common aarch32 supportHeiko Stuebner
There are a number or ARMv7 Rockchip SoCs that are very similar in their bringup routines to the existing arm64 SoCs, so there is quite a high commonality possible here. Things like virtualization also need psci and hyp-mode and instead of trying to cram this into bootloaders like u-boot, barebox or coreboot (all used in the field), re-use the existing infrastructure in TF-A for this (both Rockchip plat support and armv7 support in general). So add core support for aarch32 Rockchip SoCs, with actual soc support following in a separate patch. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Change-Id: I298453985b5d8434934fc0c742fda719e994ba0b
2019-04-25rockchip: rk3328: drop double declaration of entry_point storageHeiko Stuebner
The cpuson_entry_point and cpuson_flags are already declared in plat_private.h so there is no need to have it again declared in the local pmu.h, especially as it may cause conflicts when the other type changes. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Change-Id: I80ae0e23d22f67109ed96f8ac059973b6de2ce87
2019-04-25rockchip: Allow socs with undefined wfe check bitsHeiko Stuebner
Some older socs like the rk3288 do not have the necessary registers to check the wfi/wfe state of the cpu cores. Allow this case an "just" do an additional delay similar to how the Linux kernel handles smp right now. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Change-Id: I0f67af388b06b8bfb4a9bac411b4900ac266a77a