History log of /rk3399_ARM-atf/lib/ (Results 2301 – 2325 of 2463)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
a6b2533314-Dec-2016 danh-arm <dan.handley@arm.com>

Merge pull request #776 from dp-arm/dp/memcmp-fix

stdlib: Fix signedness issue in memcmp()

9509f4f614-Dec-2016 danh-arm <dan.handley@arm.com>

Merge pull request #775 from soby-mathew/sm/AArch32_stack_align

AArch32: Fix the stack alignment issue

2240f45b13-Dec-2016 Antonio Nino Diaz <antonio.ninodiaz@arm.com>

Forbid block descriptors in initial xlat table levels

In AArch64, depending on the granularity of the translation tables,
level 0 and/or level 1 of the translation tables may not support block
descr

Forbid block descriptors in initial xlat table levels

In AArch64, depending on the granularity of the translation tables,
level 0 and/or level 1 of the translation tables may not support block
descriptors, only table descriptors.

This patch introduces a check to make sure that, even if theoretically
it could be possible to create a block descriptor to map a big memory
region, a new subtable will be created to describe its mapping.

Change-Id: Ieb9c302206bfa33fbaf0cdc6a5a82516d32ae2a7
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>

show more ...

0029624f13-Dec-2016 Antonio Nino Diaz <antonio.ninodiaz@arm.com>

Add PLAT_xxx_ADDR_SPACE_SIZE definitions

Added the definitions `PLAT_PHY_ADDR_SPACE_SIZE` and
`PLAT_VIRT_ADDR_SPACE_SIZE` which specify respectively the physical
and virtual address space size a pla

Add PLAT_xxx_ADDR_SPACE_SIZE definitions

Added the definitions `PLAT_PHY_ADDR_SPACE_SIZE` and
`PLAT_VIRT_ADDR_SPACE_SIZE` which specify respectively the physical
and virtual address space size a platform can use.

`ADDR_SPACE_SIZE` is now deprecated. To maintain compatibility, if any
of the previous defines aren't present, the value of `ADDR_SPACE_SIZE`
will be used instead.

For AArch64, register ID_AA64MMFR0_EL1 is checked to calculate the
max PA supported by the hardware and to verify that the previously
mentioned definition is valid. For AArch32, a 40 bit physical
address space is considered.

Added asserts to check for overflows.

Porting guide updated.

Change-Id: Ie8ce1da5967993f0c94dbd4eb9841fc03d5ef8d6
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>

show more ...

d3d6c6e308-Dec-2016 Antonio Nino Diaz <antonio.ninodiaz@arm.com>

Assert correct granularity when mapping a PA

Each translation table level entry can only map a given virtual
address onto physical addresses of the same granularity. For example,
with the current co

Assert correct granularity when mapping a PA

Each translation table level entry can only map a given virtual
address onto physical addresses of the same granularity. For example,
with the current configuration, a level 2 entry maps blocks of 2 MB,
so the physical address must be aligned to 2 MB. If the address is not
aligned, the MMU will just ignore the lower bits.

This patch adds an assertion to make sure that physical addresses are
always aligned to the correct boundary.

Change-Id: I0ab43df71829d45cdbe323301b3053e08ca99c2c
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>

show more ...

afc03aeb06-Dec-2016 dp-arm <dimitris.papastamos@arm.com>

stdlib: Fix signedness issue in memcmp()

There is no guarantee on the signedness of char. It can be either
signed or unsigned. On ARM it is unsigned and hence this memcmp()
implementation works as

stdlib: Fix signedness issue in memcmp()

There is no guarantee on the signedness of char. It can be either
signed or unsigned. On ARM it is unsigned and hence this memcmp()
implementation works as intended.

On other machines, char can be signed (x86 for example). In that case
(and assuming a 2's complement implementation), interpreting a
bit-pattern of 0xFF as signed char can yield -1. If *s1 is 0 and *s2
is 255 then the difference *s1 - *s2 should be negative. The C
integer promotion rules guarantee that the unsigned chars will be
converted to int before the operation takes place. The current
implementation will return a positive value (0 - (-1)) instead, which
is wrong.

Fix it by changing the signedness to unsigned to avoid surprises for
anyone using this code on non-ARM systems.

Change-Id: Ie222fcaa7c0c4272d7a521a6f2f51995fd5130cc
Signed-off-by: dp-arm <dimitris.papastamos@arm.com>

show more ...

9f3ee61c06-Dec-2016 Soby Mathew <soby.mathew@arm.com>

AArch32: Fix the stack alignment issue

The AArch32 Procedure call Standard mandates that the stack must be aligned
to 8 byte boundary at external interfaces. This patch does the required
changes.

T

AArch32: Fix the stack alignment issue

The AArch32 Procedure call Standard mandates that the stack must be aligned
to 8 byte boundary at external interfaces. This patch does the required
changes.

This problem was detected when a crash was encountered in
`psci_print_power_domain_map()` while printing 64 bit values. Aligning
the stack to 8 byte boundary resolved the problem.

Fixes ARM-Software/tf-issues#437

Change-Id: I517bd8203601bb88e9311bd36d477fb7b3efb292
Signed-off-by: Soby Mathew <soby.mathew@arm.com>

show more ...

1b5fa6ef12-Dec-2016 danh-arm <dan.handley@arm.com>

Merge pull request #774 from jeenu-arm/no-return-macro

Define and use no_ret macro where no return is expected


/rk3399_ARM-atf/bl1/aarch64/bl1_exceptions.S
/rk3399_ARM-atf/bl2/aarch32/bl2_entrypoint.S
/rk3399_ARM-atf/bl2/aarch64/bl2_entrypoint.S
/rk3399_ARM-atf/bl2u/aarch64/bl2u_entrypoint.S
/rk3399_ARM-atf/bl31/aarch64/crash_reporting.S
/rk3399_ARM-atf/bl31/aarch64/runtime_exceptions.S
/rk3399_ARM-atf/bl32/tsp/aarch64/tsp_entrypoint.S
/rk3399_ARM-atf/bl32/tsp/aarch64/tsp_exceptions.S
/rk3399_ARM-atf/common/aarch32/debug.S
/rk3399_ARM-atf/common/aarch64/debug.S
/rk3399_ARM-atf/common/aarch64/early_exceptions.S
/rk3399_ARM-atf/common/bl_common.c
/rk3399_ARM-atf/drivers/arm/pl011/aarch32/pl011_console.S
/rk3399_ARM-atf/include/common/aarch32/asm_macros.S
/rk3399_ARM-atf/include/common/aarch32/el3_common_macros.S
/rk3399_ARM-atf/include/common/aarch64/asm_macros.S
/rk3399_ARM-atf/include/drivers/emmc.h
/rk3399_ARM-atf/include/lib/aarch32/smcc_macros.S
/rk3399_ARM-atf/include/plat/arm/common/plat_arm.h
/rk3399_ARM-atf/include/plat/arm/css/common/css_pm.h
psci/aarch32/psci_helpers.S
psci/aarch64/psci_helpers.S
/rk3399_ARM-atf/plat/arm/board/fvp/aarch64/fvp_helpers.S
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_pm.c
/rk3399_ARM-atf/plat/arm/board/juno/aarch64/juno_helpers.S
/rk3399_ARM-atf/plat/arm/board/juno/juno_pm.c
/rk3399_ARM-atf/plat/arm/common/arm_pm.c
/rk3399_ARM-atf/plat/arm/css/common/css_common.mk
/rk3399_ARM-atf/plat/arm/css/common/css_pm.c
/rk3399_ARM-atf/plat/arm/css/common/css_scp_bootloader.c
/rk3399_ARM-atf/plat/arm/css/drivers/scp/css_pm_scpi.c
/rk3399_ARM-atf/plat/arm/css/drivers/scp/css_scp.h
/rk3399_ARM-atf/plat/arm/css/drivers/scpi/css_mhu.c
/rk3399_ARM-atf/plat/arm/css/drivers/scpi/css_mhu.h
/rk3399_ARM-atf/plat/arm/css/drivers/scpi/css_scpi.c
/rk3399_ARM-atf/plat/arm/css/drivers/scpi/css_scpi.h
/rk3399_ARM-atf/plat/common/aarch32/platform_helpers.S
/rk3399_ARM-atf/plat/xilinx/zynqmp/aarch64/zynqmp_helpers.S
/rk3399_ARM-atf/services/spd/trusty/trusty.c
/rk3399_ARM-atf/tools/fiptool/fiptool.c
a806dad530-Nov-2016 Jeenu Viswambharan <jeenu.viswambharan@arm.com>

Define and use no_ret macro where no return is expected

There are many instances in ARM Trusted Firmware where control is
transferred to functions from which return isn't expected. Such jumps
are ma

Define and use no_ret macro where no return is expected

There are many instances in ARM Trusted Firmware where control is
transferred to functions from which return isn't expected. Such jumps
are made using 'bl' instruction to provide the callee with the location
from which it was jumped to. Additionally, debuggers infer the caller by
examining where 'lr' register points to. If a 'bl' of the nature
described above falls at the end of an assembly function, 'lr' will be
left pointing to a location outside of the function range. This misleads
the debugger back trace.

This patch defines a 'no_ret' macro to be used when jumping to functions
from which return isn't expected. The macro ensures to use 'bl'
instruction for the jump, and also, for debug builds, places a 'nop'
instruction immediately thereafter (unless instructed otherwise) so as
to leave 'lr' pointing within the function range.

Change-Id: Ib34c69fc09197cfd57bc06e147cc8252910e01b0
Co-authored-by: Douglas Raillard <douglas.raillard@arm.com>
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>

show more ...


/rk3399_ARM-atf/bl1/aarch64/bl1_exceptions.S
/rk3399_ARM-atf/bl2/aarch32/bl2_entrypoint.S
/rk3399_ARM-atf/bl2/aarch64/bl2_entrypoint.S
/rk3399_ARM-atf/bl2u/aarch64/bl2u_entrypoint.S
/rk3399_ARM-atf/bl31/aarch64/crash_reporting.S
/rk3399_ARM-atf/bl31/aarch64/runtime_exceptions.S
/rk3399_ARM-atf/bl32/tsp/aarch64/tsp_entrypoint.S
/rk3399_ARM-atf/bl32/tsp/aarch64/tsp_exceptions.S
/rk3399_ARM-atf/common/aarch32/debug.S
/rk3399_ARM-atf/common/aarch64/debug.S
/rk3399_ARM-atf/common/aarch64/early_exceptions.S
/rk3399_ARM-atf/docs/interrupt-framework-design.md
/rk3399_ARM-atf/docs/spd/trusty-dispatcher.md
/rk3399_ARM-atf/docs/user-guide.md
/rk3399_ARM-atf/include/common/aarch32/asm_macros.S
/rk3399_ARM-atf/include/common/aarch32/el3_common_macros.S
/rk3399_ARM-atf/include/common/aarch64/asm_macros.S
/rk3399_ARM-atf/include/common/asm_macros_common.S
psci/aarch32/psci_helpers.S
psci/aarch64/psci_helpers.S
/rk3399_ARM-atf/plat/arm/board/fvp/aarch64/fvp_helpers.S
/rk3399_ARM-atf/plat/arm/board/juno/aarch64/juno_helpers.S
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/pmu/plat_pmu_macros.S
/rk3399_ARM-atf/plat/xilinx/zynqmp/aarch64/zynqmp_common.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/aarch64/zynqmp_helpers.S
/rk3399_ARM-atf/plat/xilinx/zynqmp/include/platform_def.h
/rk3399_ARM-atf/plat/xilinx/zynqmp/plat_psci.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_api_sys.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_api_sys.h
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_client.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_defs.h
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_ipi.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_ipi.h
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_svc_main.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/zynqmp_def.h
/rk3399_ARM-atf/plat/xilinx/zynqmp/zynqmp_private.h
/rk3399_ARM-atf/services/spd/trusty/sm_err.h
/rk3399_ARM-atf/services/spd/trusty/smcall.h
/rk3399_ARM-atf/services/spd/trusty/trusty.c
/rk3399_ARM-atf/services/spd/trusty/trusty.mk
/rk3399_ARM-atf/services/spd/trusty/trusty_helpers.S
939f66d625-Nov-2016 David Cunado <david.cunado@arm.com>

Reset EL2 and EL3 configurable controls

This patch resets EL2 and EL3 registers that have architecturally
UNKNOWN values on reset and that also provide EL2/EL3 configuration
and trap controls.

Spec

Reset EL2 and EL3 configurable controls

This patch resets EL2 and EL3 registers that have architecturally
UNKNOWN values on reset and that also provide EL2/EL3 configuration
and trap controls.

Specifically, the EL2 physical timer is disabled to prevent timer
interrups into EL2 - CNTHP_CTL_EL2 and CNTHP_CTL for AArch64 and AArch32,
respectively.

Additionally, for AArch64, HSTR_EL2 is reset to avoid unexpected traps of
non-secure access to certain system registers at EL1 or lower.

For AArch32, the patch also reverts the reset to SDCR which was
incorrectly added in a previous change.

Change-Id: If00eaa23afa7dd36a922265194ccd6223187414f
Signed-off-by: David Cunado <david.cunado@arm.com>

show more ...

95c1255914-Nov-2016 Soby Mathew <soby.mathew@arm.com>

Fix normal memory bakery lock implementation

This patch fixes an issue in the normal memory bakery lock
implementation. During assertion of lock status, there is a possibility
that the assertion cou

Fix normal memory bakery lock implementation

This patch fixes an issue in the normal memory bakery lock
implementation. During assertion of lock status, there is a possibility
that the assertion could fail. This is because the previous update done
to the lock status by the owning CPU when not participating in cache
coherency could result in stale data in the cache due to cache maintenance
operations not propagating to all the caches. This patch fixes this issue
by doing an extra read cache maintenance operation prior to the assertion.

Fixes ARM-software/tf-issues#402

Change-Id: I0f38a7c52476a4f58e17ebe0141d256d198be88d
Signed-off-by: Soby Mathew <soby.mathew@arm.com>

show more ...

495f3d3c31-Oct-2016 David Cunado <david.cunado@arm.com>

Reset debug registers MDCR-EL3/SDCR and MDCR_EL2/HDCR

In order to avoid unexpected traps into EL3/MON mode, this patch
resets the debug registers, MDCR_EL3 and MDCR_EL2 for AArch64,
and SDCR and HDC

Reset debug registers MDCR-EL3/SDCR and MDCR_EL2/HDCR

In order to avoid unexpected traps into EL3/MON mode, this patch
resets the debug registers, MDCR_EL3 and MDCR_EL2 for AArch64,
and SDCR and HDCR for AArch32.

MDCR_EL3/SDCR is zero'ed when EL3/MON mode is entered, at the
start of BL1 and BL31/SMP_MIN.

For MDCR_EL2/HDCR, this patch zero's the bits that are
architecturally UNKNOWN values on reset. This is done when
exiting from EL3/MON mode but only on platforms that support
EL2/HYP mode but choose to exit to EL1/SVC mode.

Fixes ARM-software/tf-issues#430

Change-Id: Idb992232163c072faa08892251b5626ae4c3a5b6
Signed-off-by: David Cunado <david.cunado@arm.com>

show more ...


/rk3399_ARM-atf/.checkpatch.conf
/rk3399_ARM-atf/.gitignore
/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl31/bl31.ld.S
/rk3399_ARM-atf/docs/porting-guide.md
/rk3399_ARM-atf/docs/user-guide.md
/rk3399_ARM-atf/drivers/partition/gpt.c
/rk3399_ARM-atf/drivers/partition/partition.c
/rk3399_ARM-atf/include/common/aarch32/el3_common_macros.S
/rk3399_ARM-atf/include/common/aarch64/el3_common_macros.S
/rk3399_ARM-atf/include/drivers/partition/gpt.h
/rk3399_ARM-atf/include/drivers/partition/mbr.h
/rk3399_ARM-atf/include/drivers/partition/partition.h
/rk3399_ARM-atf/include/lib/aarch32/arch.h
/rk3399_ARM-atf/include/lib/aarch32/arch_helpers.h
/rk3399_ARM-atf/include/lib/aarch64/arch.h
/rk3399_ARM-atf/include/lib/aarch64/arch_helpers.h
el3_runtime/aarch32/context_mgmt.c
el3_runtime/aarch64/context_mgmt.c
/rk3399_ARM-atf/make_helpers/defaults.mk
/rk3399_ARM-atf/plat/common/aarch64/platform_helpers.S
/rk3399_ARM-atf/plat/rockchip/common/aarch64/plat_helpers.S
/rk3399_ARM-atf/plat/rockchip/common/aarch64/platform_common.c
/rk3399_ARM-atf/plat/rockchip/common/bl31_plat_setup.c
/rk3399_ARM-atf/plat/rockchip/common/include/plat_private.h
/rk3399_ARM-atf/plat/rockchip/common/plat_pm.c
/rk3399_ARM-atf/plat/rockchip/common/pmusram/pmu_sram.c
/rk3399_ARM-atf/plat/rockchip/common/pmusram/pmu_sram.h
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/dram/dfs.c
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/dram/dfs.h
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/dram/dram.c
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/dram/dram.h
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/dram/dram_spec_timing.c
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/dram/dram_spec_timing.h
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/dram/suspend.c
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/dram/suspend.h
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/m0/Makefile
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/m0/include/rk3399_mcu.h
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/m0/src/main.c
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/m0/src/rk3399m0.ld
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/m0/src/startup.c
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/pmu/plat_pmu_macros.S
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/pmu/pmu.c
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/pmu/pmu.h
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/pmu/pmu_fw.c
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/pmu/pmu_regs.h
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/pmu/rk3399m0.h
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/soc/soc.c
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/soc/soc.h
/rk3399_ARM-atf/plat/rockchip/rk3399/include/plat.ld.S
/rk3399_ARM-atf/plat/rockchip/rk3399/plat_sip_calls.c
/rk3399_ARM-atf/plat/rockchip/rk3399/platform.mk
/rk3399_ARM-atf/services/std_svc/std_svc_setup.c
/rk3399_ARM-atf/tools/fiptool/fiptool.c
/rk3399_ARM-atf/tools/fiptool/fiptool.h
/rk3399_ARM-atf/tools/fiptool/tbbr_config.c
/rk3399_ARM-atf/tools/fiptool/tbbr_config.h
e1c4274017-Oct-2016 danh-arm <dan.handley@arm.com>

Merge pull request #735 from soby-mathew/sm/aarch32_sctlr

Unify SCTLR initialization for AArch32 normal world

b7b0787d29-Sep-2016 Soby Mathew <soby.mathew@arm.com>

Unify SCTLR initialization for AArch32 normal world

The values of CP15BEN, nTWI & nTWE bits in SCTLR_EL1 are architecturally
unknown if EL3 is AARCH64 whereas they reset to 1 if EL3 is AArch32. This

Unify SCTLR initialization for AArch32 normal world

The values of CP15BEN, nTWI & nTWE bits in SCTLR_EL1 are architecturally
unknown if EL3 is AARCH64 whereas they reset to 1 if EL3 is AArch32. This
might be a compatibility break for legacy AArch32 normal world software if
these bits are not set to 1 when EL3 is AArch64. This patch enables the
CP15BEN, nTWI and nTWE bits in the SCTLR_EL1 if the lower non-secure EL is
AArch32. This unifies the SCTLR settings for lower non-secure EL in AArch32
mode for both AArch64 and AArch32 builds of Trusted Firmware.

Fixes ARM-software/tf-issues#428

Change-Id: I3152d1580e4869c0ea745c5bd9da765f9c254947
Signed-off-by: Soby Mathew <soby.mathew@arm.com>

show more ...

872be88a19-Sep-2016 dp-arm <dimitris.papastamos@arm.com>

Add PMF instrumentation points in TF

In order to quantify the overall time spent in the PSCI software
implementation, an initial collection of PMF instrumentation points
has been added.

Instrumenta

Add PMF instrumentation points in TF

In order to quantify the overall time spent in the PSCI software
implementation, an initial collection of PMF instrumentation points
has been added.

Instrumentation has been added to the following code paths:

- Entry to PSCI SMC handler. The timestamp is captured as early
as possible during the runtime exception and stored in memory
before entering the PSCI SMC handler.

- Exit from PSCI SMC handler. The timestamp is captured after
normal return from the PSCI SMC handler or if a low power state
was requested it is captured in the bl31 warm boot path before
return to normal world.

- Entry to low power state. The timestamp is captured before entry
to a low power state which implies either standby or power down.
As these power states are mutually exclusive, only one timestamp
is defined to describe both. It is possible to differentiate between
the two power states using the PSCI STAT interface.

- Exit from low power state. The timestamp is captured after a standby
or power up operation has completed.

To calculate the number of cycles spent running code in Trusted Firmware
one can perform the following calculation:

(exit_psci - enter_psci) - (exit_low_pwr - enter_low_pwr).

The resulting number of cycles can be converted to time given the
frequency of the counter.

Change-Id: Ie3b8f3d16409b6703747093b3a2d5c7429ad0166
Signed-off-by: dp-arm <dimitris.papastamos@arm.com>

show more ...

9c1dceb128-Sep-2016 Yatharth Kochar <yatharth.kochar@arm.com>

AArch32: Add `memcpy4` function in assembly

At present the `el3_entrypoint_common` macro uses `memcpy`
function defined in lib/stdlib/mem.c file, to copy data
from ROM to RAM for BL1. Depending on t

AArch32: Add `memcpy4` function in assembly

At present the `el3_entrypoint_common` macro uses `memcpy`
function defined in lib/stdlib/mem.c file, to copy data
from ROM to RAM for BL1. Depending on the compiler being
used the stack could potentially be used, in `memcpy`,
for storing the local variables. Since the stack is
initialized much later in `el3_entrypoint_common` it
may result in unknown behaviour.

This patch adds `memcpy4` function definition in assembly so
that it can be used before the stack is initialized and it
also replaces `memcpy` by `memcpy4` in `el3_entrypoint_common`
macro, to copy data from ROM to RAM for BL1.

Change-Id: I3357a0e8095f05f71bbbf0b185585d9499bfd5e0

show more ...

f426fc0513-Sep-2016 Soby Mathew <soby.mathew@arm.com>

PSCI: Introduce PSCI Library argument structure

This patch introduces a `psci_lib_args_t` structure which must be
passed into `psci_setup()` which is then used to initialize the PSCI
library. The `p

PSCI: Introduce PSCI Library argument structure

This patch introduces a `psci_lib_args_t` structure which must be
passed into `psci_setup()` which is then used to initialize the PSCI
library. The `psci_lib_args_t` is a versioned structure so as to enable
compatibility checks during library initialization. Both BL31 and SP_MIN
are modified to use the new structure.

SP_MIN is also modified to add version string and build message as part
of its cold boot log just like the other BLs in Trusted Firmware.

NOTE: Please be aware that this patch modifies the prototype of
`psci_setup()`, which breaks compatibility with EL3 Runtime Firmware
(excluding BL31 and SP_MIN) integrated with the PSCI Library.

Change-Id: Ic3761db0b790760a7ad664d8a437c72ea5edbcd6

show more ...

03a3042b12-Jul-2016 Yatharth Kochar <yatharth.kochar@arm.com>

AArch32: Add support for ARM Cortex-A32 MPCore Processor

This patch adds ARM Cortex-A32 MPCore Processor support
in the CPU specific operations framework. It also includes
this support for the Base

AArch32: Add support for ARM Cortex-A32 MPCore Processor

This patch adds ARM Cortex-A32 MPCore Processor support
in the CPU specific operations framework. It also includes
this support for the Base FVP port.

Change-Id: If3697b88678df737c29f79cf3fa1ea2cb6fa565d

show more ...

1a0a3f0628-Jun-2016 Yatharth Kochar <yatharth.kochar@arm.com>

AArch32: Common changes needed for BL1/BL2

This patch adds common changes to support AArch32 state in
BL1 and BL2. Following are the changes:

* Added functions for disabling MMU from Secure state.

AArch32: Common changes needed for BL1/BL2

This patch adds common changes to support AArch32 state in
BL1 and BL2. Following are the changes:

* Added functions for disabling MMU from Secure state.
* Added AArch32 specific SMC function.
* Added semihosting support.
* Added reporting of unhandled exceptions.
* Added uniprocessor stack support.
* Added `el3_entrypoint_common` macro that can be
shared by BL1 and BL32 (SP_MIN) BL stages. The
`el3_entrypoint_common` is similar to the AArch64
counterpart with the main difference in the assembly
instructions and the registers that are relevant to
AArch32 execution state.
* Enabled `LOAD_IMAGE_V2` flag in Makefile for
`ARCH=aarch32` and added check to make sure that
platform has not overridden to disable it.

Change-Id: I33c6d8dfefb2e5d142fdfd06a0f4a7332962e1a3

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl1/bl1_main.c
/rk3399_ARM-atf/bl2/bl2.mk
/rk3399_ARM-atf/bl2/bl2_image_load.c
/rk3399_ARM-atf/bl2/bl2_image_load_v2.c
/rk3399_ARM-atf/bl2/bl2_main.c
/rk3399_ARM-atf/bl2/bl2_private.h
/rk3399_ARM-atf/common/aarch32/debug.S
/rk3399_ARM-atf/common/bl_common.c
/rk3399_ARM-atf/common/desc_image_load.c
/rk3399_ARM-atf/docs/porting-guide.md
/rk3399_ARM-atf/docs/user-guide.md
/rk3399_ARM-atf/drivers/arm/gic/v3/gicv3_main.c
/rk3399_ARM-atf/include/common/aarch32/asm_macros.S
/rk3399_ARM-atf/include/common/aarch32/el3_common_macros.S
/rk3399_ARM-atf/include/common/bl_common.h
/rk3399_ARM-atf/include/common/desc_image_load.h
/rk3399_ARM-atf/include/lib/aarch32/arch.h
/rk3399_ARM-atf/include/lib/aarch32/arch_helpers.h
/rk3399_ARM-atf/include/lib/cpus/aarch32/cpu_macros.S
/rk3399_ARM-atf/include/lib/pmf/pmf_asm_macros.S
/rk3399_ARM-atf/include/lib/pmf/pmf_helpers.h
/rk3399_ARM-atf/include/plat/arm/common/plat_arm.h
/rk3399_ARM-atf/include/plat/common/common_def.h
/rk3399_ARM-atf/include/plat/common/platform.h
aarch32/misc_helpers.S
cpus/aarch32/cpu_helpers.S
semihosting/aarch32/semihosting_call.S
/rk3399_ARM-atf/plat/arm/board/common/aarch32/board_arm_helpers.S
/rk3399_ARM-atf/plat/arm/board/common/board_common.mk
/rk3399_ARM-atf/plat/arm/board/fvp/aarch32/fvp_helpers.S
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl31_setup.c
/rk3399_ARM-atf/plat/arm/board/juno/include/platform_def.h
/rk3399_ARM-atf/plat/arm/common/aarch64/arm_bl2_mem_params_desc.c
/rk3399_ARM-atf/plat/arm/common/arm_bl1_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_bl2_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_bl31_setup.c
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/arm/common/arm_image_load.c
/rk3399_ARM-atf/plat/arm/css/common/css_bl2_setup.c
/rk3399_ARM-atf/plat/common/aarch32/platform_helpers.S
/rk3399_ARM-atf/plat/common/aarch32/platform_up_stack.S
/rk3399_ARM-atf/plat/mediatek/mt6795/platform.mk
/rk3399_ARM-atf/tools/fiptool/fiptool.c
7a1b279419-Sep-2016 danh-arm <dan.handley@arm.com>

Merge pull request #702 from jeenu-arm/psci-node-hw-state

Support for PSCI NODE_HW_STATE


/rk3399_ARM-atf/docs/firmware-design.md
/rk3399_ARM-atf/docs/porting-guide.md
/rk3399_ARM-atf/docs/user-guide.md
/rk3399_ARM-atf/include/lib/aarch64/arch_helpers.h
/rk3399_ARM-atf/include/lib/psci/psci.h
/rk3399_ARM-atf/include/lib/xlat_tables.h
/rk3399_ARM-atf/include/plat/arm/common/plat_arm.h
/rk3399_ARM-atf/include/plat/arm/css/common/css_def.h
/rk3399_ARM-atf/include/plat/arm/css/common/css_pm.h
psci/psci_main.c
psci/psci_private.h
psci/psci_setup.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_pm.c
/rk3399_ARM-atf/plat/arm/board/juno/juno_pm.c
/rk3399_ARM-atf/plat/arm/css/common/css_pm.c
/rk3399_ARM-atf/plat/arm/css/common/css_scpi.c
/rk3399_ARM-atf/plat/arm/css/common/css_scpi.h
/rk3399_ARM-atf/plat/mediatek/common/drivers/uart/8250_console.S
/rk3399_ARM-atf/plat/mediatek/common/drivers/uart/uart8250.h
/rk3399_ARM-atf/plat/mediatek/mt6795/aarch64/plat_helpers.S
/rk3399_ARM-atf/plat/mediatek/mt6795/bl31.ld.S
/rk3399_ARM-atf/plat/mediatek/mt6795/bl31_plat_setup.c
/rk3399_ARM-atf/plat/mediatek/mt6795/drivers/timer/mt_cpuxgpt.c
/rk3399_ARM-atf/plat/mediatek/mt6795/drivers/timer/mt_cpuxgpt.h
/rk3399_ARM-atf/plat/mediatek/mt6795/include/mcucfg.h
/rk3399_ARM-atf/plat/mediatek/mt6795/include/plat_macros.S
/rk3399_ARM-atf/plat/mediatek/mt6795/include/plat_private.h
/rk3399_ARM-atf/plat/mediatek/mt6795/include/plat_sip_calls.h
/rk3399_ARM-atf/plat/mediatek/mt6795/include/platform_def.h
/rk3399_ARM-atf/plat/mediatek/mt6795/include/power_tracer.h
/rk3399_ARM-atf/plat/mediatek/mt6795/include/scu.h
/rk3399_ARM-atf/plat/mediatek/mt6795/include/spm.h
/rk3399_ARM-atf/plat/mediatek/mt6795/plat_delay_timer.c
/rk3399_ARM-atf/plat/mediatek/mt6795/plat_mt_gic.c
/rk3399_ARM-atf/plat/mediatek/mt6795/plat_pm.c
/rk3399_ARM-atf/plat/mediatek/mt6795/plat_sip_svc.c
/rk3399_ARM-atf/plat/mediatek/mt6795/plat_topology.c
/rk3399_ARM-atf/plat/mediatek/mt6795/platform.mk
/rk3399_ARM-atf/plat/mediatek/mt6795/power_tracer.c
/rk3399_ARM-atf/plat/mediatek/mt6795/scu.c
/rk3399_ARM-atf/plat/mediatek/mt8173/platform.mk
/rk3399_ARM-atf/plat/rockchip/common/include/plat_params.h
/rk3399_ARM-atf/plat/rockchip/common/include/plat_private.h
/rk3399_ARM-atf/plat/rockchip/common/params_setup.c
/rk3399_ARM-atf/plat/rockchip/common/plat_pm.c
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/dram/dram.c
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/dram/dram.h
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/gpio/rk3399_gpio.c
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/pmu/pmu.c
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/pmu/pmu.h
/rk3399_ARM-atf/plat/rockchip/rk3399/plat_sip_calls.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/aarch64/zynqmp_common.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/bl31_zynqmp_setup.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/include/platform_def.h
/rk3399_ARM-atf/plat/xilinx/zynqmp/plat_psci.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/platform.mk
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_api_sys.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_api_sys.h
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_client.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_client.h
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_defs.h
/rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_svc_main.c
/rk3399_ARM-atf/plat/xilinx/zynqmp/zynqmp_def.h
/rk3399_ARM-atf/plat/xilinx/zynqmp/zynqmp_private.h
/rk3399_ARM-atf/tools/fiptool/Makefile
/rk3399_ARM-atf/tools/fiptool/fiptool.c
28d3d61403-Aug-2016 Jeenu Viswambharan <jeenu.viswambharan@arm.com>

PSCI: Add support for PSCI NODE_HW_STATE API

This patch adds support for NODE_HW_STATE PSCI API by introducing a new
PSCI platform hook (get_node_hw_state). The implementation validates
supplied arg

PSCI: Add support for PSCI NODE_HW_STATE API

This patch adds support for NODE_HW_STATE PSCI API by introducing a new
PSCI platform hook (get_node_hw_state). The implementation validates
supplied arguments, and then invokes this platform-defined hook and
returns its result to the caller. PSCI capabilities are updated
accordingly.

Also updates porting and firmware design guides.

Change-Id: I808e55bdf0c157002a7c104b875779fe50a68a30

show more ...

7a3d4bde09-Sep-2016 Soby Mathew <soby.mathew@arm.com>

Flush `psci_plat_pm_ops` after initialization

The `psci_plat_pm_ops` global pointer is initialized during cold boot by the
primary CPU and will be accessed by the secondary CPUs before enabling data

Flush `psci_plat_pm_ops` after initialization

The `psci_plat_pm_ops` global pointer is initialized during cold boot by the
primary CPU and will be accessed by the secondary CPUs before enabling data
cache during warm boot. This patch adds a missing data cache flush of
`psci_plat_psci_ops` after initialization during psci_setup() so that
secondaries can see the updated `psci_plat_psci_ops` pointer.

Fixes ARM-software/tf-issues#424

Change-Id: Id4554800b5646302b944115a33be69507d53cedb

show more ...

9e3b4cbb31-Aug-2016 Soby Mathew <soby.mathew@arm.com>

AArch32: Fix SCTLR context initialization

This patch fixes a bug in context management library when writing
SCTLR register during context initialization. The write happened
prior to initialization o

AArch32: Fix SCTLR context initialization

This patch fixes a bug in context management library when writing
SCTLR register during context initialization. The write happened
prior to initialization of the register context pointer. This
resulted in the compiler optimizing the write sequence from the
final binary and hence SCTLR remains uninitialized when
entering normal world. The bug is fixed by doing the
initialization of the register context pointer earlier in the
sequence.

Change-Id: Ic7465593a74534046b79f40446ffa1165c52ed76

show more ...

e871955202-Aug-2016 Antonio Nino Diaz <antonio.ninodiaz@arm.com>

Automatically select initial xlation lookup level

Instead of hardcoding a level 1 table as the base translation level
table, let the code decide which level is the most appropriate given
the virtual

Automatically select initial xlation lookup level

Instead of hardcoding a level 1 table as the base translation level
table, let the code decide which level is the most appropriate given
the virtual address space size.

As the table granularity is 4 KB, this allows the code to select
level 0, 1 or 2 as base level for AArch64. This way, instead of
limiting the virtual address space width to 39-31 bits, widths of
48-25 bit can be used.

For AArch32, this change allows the code to select level 1 or 2
as the base translation level table and use virtual address space
width of 32-25 bits.

Also removed some unused definitions related to translation tables.

Fixes ARM-software/tf-issues#362

Change-Id: Ie3bb5d6d1a4730a26700b09827c79f37ca3cdb65

show more ...


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/bl32/sp_min/aarch32/entrypoint.S
/rk3399_ARM-atf/bl32/sp_min/sp_min.ld.S
/rk3399_ARM-atf/bl32/sp_min/sp_min.mk
/rk3399_ARM-atf/bl32/sp_min/sp_min_main.c
/rk3399_ARM-atf/bl32/sp_min/sp_min_private.h
/rk3399_ARM-atf/common/bl_common.c
/rk3399_ARM-atf/docs/user-guide.md
/rk3399_ARM-atf/drivers/arm/gic/v3/gicv3_main.c
/rk3399_ARM-atf/drivers/emmc/emmc.c
/rk3399_ARM-atf/drivers/io/io_block.c
/rk3399_ARM-atf/include/bl32/sp_min/platform_sp_min.h
/rk3399_ARM-atf/include/drivers/emmc.h
/rk3399_ARM-atf/include/lib/aarch32/arch.h
/rk3399_ARM-atf/include/lib/aarch64/arch.h
/rk3399_ARM-atf/include/lib/xlat_tables.h
/rk3399_ARM-atf/include/plat/arm/common/arm_def.h
/rk3399_ARM-atf/include/plat/arm/common/plat_arm.h
xlat_tables/aarch32/xlat_tables.c
xlat_tables/aarch64/xlat_tables.c
xlat_tables/xlat_tables_common.c
xlat_tables/xlat_tables_private.h
/rk3399_ARM-atf/plat/arm/board/common/board_common.mk
/rk3399_ARM-atf/plat/arm/board/fvp/aarch32/fvp_helpers.S
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_common.c
/rk3399_ARM-atf/plat/arm/board/fvp/fvp_err.c
/rk3399_ARM-atf/plat/arm/board/fvp/platform.mk
/rk3399_ARM-atf/plat/arm/board/fvp/sp_min/fvp_sp_min_setup.c
/rk3399_ARM-atf/plat/arm/board/fvp/sp_min/sp_min-fvp.mk
/rk3399_ARM-atf/plat/arm/board/juno/juno_err.c
/rk3399_ARM-atf/plat/arm/common/aarch32/arm_helpers.S
/rk3399_ARM-atf/plat/arm/common/arm_common.c
/rk3399_ARM-atf/plat/arm/common/arm_common.mk
/rk3399_ARM-atf/plat/arm/common/arm_gicv3.c
/rk3399_ARM-atf/plat/arm/common/sp_min/arm_sp_min.mk
/rk3399_ARM-atf/plat/arm/common/sp_min/arm_sp_min_setup.c
/rk3399_ARM-atf/plat/common/aarch32/plat_common.c
/rk3399_ARM-atf/plat/common/aarch32/platform_helpers.S
/rk3399_ARM-atf/plat/common/aarch32/platform_mp_stack.S
/rk3399_ARM-atf/plat/common/aarch64/platform_helpers.S
/rk3399_ARM-atf/plat/common/plat_gicv3.c
/rk3399_ARM-atf/plat/compat/plat_compat.mk
/rk3399_ARM-atf/plat/rockchip/common/pmusram/pmu_sram_cpus_on.S
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/pmu/pmu.c
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/pmu/pmu.h
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/pwm/pwm.c
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/pwm/pwm.h
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/soc/soc.c
/rk3399_ARM-atf/plat/rockchip/rk3399/drivers/soc/soc.h
/rk3399_ARM-atf/plat/rockchip/rk3399/platform.mk
/rk3399_ARM-atf/plat/rockchip/rk3399/rk3399_def.h
/rk3399_ARM-atf/tools/fiptool/Makefile
727e523805-May-2016 Soby Mathew <soby.mathew@arm.com>

AArch32: Add support to PSCI lib

This patch adds AArch32 support to PSCI library, as follows :

* The `psci_helpers.S` is implemented for AArch32.

* AArch32 version of internal helper function `psc

AArch32: Add support to PSCI lib

This patch adds AArch32 support to PSCI library, as follows :

* The `psci_helpers.S` is implemented for AArch32.

* AArch32 version of internal helper function `psci_get_ns_ep_info()` is
defined.

* The PSCI Library is responsible for the Non Secure context initialization.
Hence a library interface `psci_prepare_next_non_secure_ctx()` is introduced
to enable EL3 runtime firmware to initialize the non secure context without
invoking context management library APIs.

Change-Id: I25595b0cc2dbfdf39dbf7c589b875cba33317b9d

show more ...

1...<<919293949596979899