History log of /rk3399_ARM-atf/plat/ (Results 7901 – 7925 of 8950)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
64b3112527-May-2017 Fu Wei <wefu@redhat.com>

qemu: Add LOAD_IMAGE_V2 support

The generic LOAD_IMAGE_V2 framework has been merged and enable for almost
all the arm platform. Because qemu platform doesn't share those common
files with arm, QEMU

qemu: Add LOAD_IMAGE_V2 support

The generic LOAD_IMAGE_V2 framework has been merged and enable for almost
all the arm platform. Because qemu platform doesn't share those common
files with arm, QEMU haven't got this support yet.

This patch add all the necessary code the files for adding LOAD_IMAGE_V2
support on QEMU and enable it as default.

Fixes ARM-software/tf-issues#507

Signed-off-by: Fu Wei <fu.wei@linaro.org>

show more ...

64726e6d01-Aug-2017 Julius Werner <jwerner@chromium.org>

Add new alignment parameter to func assembler macro

Assembler programmers are used to being able to define functions with a
specific aligment with a pattern like this:

.align X
myfunction:

H

Add new alignment parameter to func assembler macro

Assembler programmers are used to being able to define functions with a
specific aligment with a pattern like this:

.align X
myfunction:

However, this pattern is subtly broken when instead of a direct label
like 'myfunction:', you use the 'func myfunction' macro that's standard
in Trusted Firmware. Since the func macro declares a new section for the
function, the .align directive written above it actually applies to the
*previous* section in the assembly file, and the function it was
supposed to apply to is linked with default alignment.

An extreme case can be seen in Rockchip's plat_helpers.S which contains
this code:

[...]
endfunc plat_crash_console_putc

.align 16
func platform_cpu_warmboot
[...]

This assembles into the following plat_helpers.o:

Sections:
Idx Name Size [...] Algn
9 .text.plat_crash_console_putc 00010000 [...] 2**16
10 .text.platform_cpu_warmboot 00000080 [...] 2**3

As can be seen, the *previous* function actually got the alignment
constraint, and it is also 64KB big even though it contains only two
instructions, because the .align directive at the end of its section
forces the assembler to insert a giant sled of NOPs. The function we
actually wanted to align has the default constraint. This code only
works at all because the linker just happens to put the two functions
right behind each other when linking the final image, and since the end
of plat_crash_console_putc is aligned the start of platform_cpu_warmboot
will also be. But it still wastes almost 64KB of image space
unnecessarily, and it will break under certain circumstances (e.g. if
the plat_crash_console_putc function becomes unused and its section gets
garbage-collected out).

There's no real way to fix this with the existing func macro. Code like

func myfunc
.align X

happens to do the right thing, but is still not really correct code
(because the function label is inserted before the .align directive, so
the assembler is technically allowed to insert padding at the beginning
of the function which would then get executed as instructions if the
function was called). Therefore, this patch adds a new parameter with a
default value to the func macro that allows overriding its alignment.

Also fix up all existing instances of this dangerous antipattern.

Change-Id: I5696a07e2fde896f21e0e83644c95b7b6ac79a10
Signed-off-by: Julius Werner <jwerner@chromium.org>

show more ...

1a52aca514-Aug-2017 danh-arm <dan.handley@arm.com>

Merge pull request #1040 from sliai/support-opteed-header

Support opteed header

a937d93e14-Aug-2017 danh-arm <dan.handley@arm.com>

Merge pull request #1046 from jeenu-arm/revc

Support for RevC FVP model

33a8ead014-Aug-2017 danh-arm <dan.handley@arm.com>

Merge pull request #1043 from tekkamanninja/qemu_xlat_tables_v2_upstream

qemu: use translation tables library v2 as default.

54661cd224-Apr-2017 Summer Qin <summer.qin@arm.com>

Add Trusted OS extra image parsing support for ARM standard platforms

Trusted OS may have extra images to be loaded. Load them one by one
and do the parsing. In this patch, ARM TF need to load up to

Add Trusted OS extra image parsing support for ARM standard platforms

Trusted OS may have extra images to be loaded. Load them one by one
and do the parsing. In this patch, ARM TF need to load up to 3 images
for optee os: header, pager and paged images. Header image is the info
about optee os and images. Pager image include pager code and data.
Paged image include the paging parts using virtual memory.

Change-Id: Ia3bcfa6d8a3ed7850deb5729654daca7b00be394
Signed-off-by: Summer Qin <summer.qin@arm.com>

show more ...

71fb396420-Apr-2017 Summer Qin <summer.qin@arm.com>

Support Trusted OS firmware extra images in TF tools

Since Trusted OS firmware may have extra images, need to
assign new uuid and image id for them.
The TBBR chain of trust has been extended to add

Support Trusted OS firmware extra images in TF tools

Since Trusted OS firmware may have extra images, need to
assign new uuid and image id for them.
The TBBR chain of trust has been extended to add support
for the new images within the existing Trusted OS firmware
content certificate.

Change-Id: I678dac7ba1137e85c5779b05e0c4331134c10e06
Signed-off-by: Summer Qin <summer.qin@arm.com>

show more ...

955242d818-Jul-2017 Jeenu Viswambharan <jeenu.viswambharan@arm.com>

FVP: Support Base FVP RevC

Revision C of the Base FVP has the same memory map as earlier revisions,
but has the following differences:

- Implements CCI550 instead of CCI400,
- Has a single inst

FVP: Support Base FVP RevC

Revision C of the Base FVP has the same memory map as earlier revisions,
but has the following differences:

- Implements CCI550 instead of CCI400,
- Has a single instantiation of SMMUv3,
- CPU MPIDs are shifted left by one level, and has MT bit set in them.

The correct interconnect to program is chosen at run time based on the
FVP revision. Therefore, this patch implements FVP functions for
interconnect programming, rather than depending on ARM generic ones. The
macros used have been renamed to reflect this change.

Additionally, this patch initializes SMMUv3 as part of FVP early
platform setup.

New ARM config flags are introduced for feature queries at run time.

Change-Id: Ic7b7f080953a51fceaf62ce7daa6de0573801f09
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>

show more ...

eeb9ff9919-Jul-2017 Jeenu Viswambharan <jeenu.viswambharan@arm.com>

FVP: Remove CCI registers from crash dump

The CCI crash dump macros assumes CCI base at build time. Since this
can't be the case for CCI on FVP, choose not to register dump CCI
registers for FVP.

C

FVP: Remove CCI registers from crash dump

The CCI crash dump macros assumes CCI base at build time. Since this
can't be the case for CCI on FVP, choose not to register dump CCI
registers for FVP.

Change-Id: I7374a037e7fd0a85b138e84b3cf0aa044262da97
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>

show more ...

11ad8f2015-Nov-2016 Jeenu Viswambharan <jeenu.viswambharan@arm.com>

FVP: Add support for multi-threaded CPUs

ARM CPUs with multi-threading implementation has more than one
Processing Element in a single physical CPU. Such an implementation will
reflect the following

FVP: Add support for multi-threaded CPUs

ARM CPUs with multi-threading implementation has more than one
Processing Element in a single physical CPU. Such an implementation will
reflect the following changes in the MPIDR register:

- The MT bit set;

- Affinity levels pertaining to cluster and CPUs occupy one level
higher than in a single-threaded implementation, and the lowest
affinity level pertains to hardware threads. MPIDR affinity level
fields essentially appear shifted to left than otherwise.

The FVP port henceforth assumes that both properties above to be
concomitant on a given FVP platform.

To accommodate for varied MPIDR formats at run time, this patch
re-implements the FVP platform-specific functions that translates MPIDR
values to a linear indices, along with required validation. The same
treatment is applied for GICv3 MPIDR hashing function as well.

An FVP-specific build option FVP_MAX_PE_PER_CPU is introduced which
specifies the maximum number of threads implemented per CPU. For
backwards compatibility, its value defaults to 1.

Change-Id: I729b00d3e121d16ce9a03de4f9db36dfac580e3f
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>

show more ...

eecdf19b20-Jul-2017 Jeenu Viswambharan <jeenu.viswambharan@arm.com>

FVP: Fix AArch32 stack functions to be ABI-compliant

plat_get_my_stack is called from C, so it can't expect argument
registers to be preserved. Stash registers temporarily onto the stack
instead.

p

FVP: Fix AArch32 stack functions to be ABI-compliant

plat_get_my_stack is called from C, so it can't expect argument
registers to be preserved. Stash registers temporarily onto the stack
instead.

plat_set_my_stack is called during early init, when there exists no
stack. Use any register other than argument registers to stash temporary
values.

Change-Id: I98052e20671d0933201d45ec7a5affccd71ce08c
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>

show more ...

3e0cba5201-Aug-2017 davidcunado-arm <david.cunado@arm.com>

Merge pull request #1021 from vwadekar/psci-early-suspend-handler

lib: psci: early suspend handler for platforms

5e2cbb3601-Aug-2017 davidcunado-arm <david.cunado@arm.com>

Merge pull request #1038 from Leo-Yan/fix_vbus_det_irq

hikey: Disable VBUS_DET interrupt for PMIC

cb95a19a06-Jul-2017 Varun Wadekar <vwadekar@nvidia.com>

Tegra: implement the early suspend handler

This patch implements the early suspend handler for Tegra SoCs. This
handler is empty for now and the actual support for a particular platform
would be add

Tegra: implement the early suspend handler

This patch implements the early suspend handler for Tegra SoCs. This
handler is empty for now and the actual support for a particular platform
would be added later.

Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>

show more ...

ddc5bfdb31-Jul-2017 davidcunado-arm <david.cunado@arm.com>

Merge pull request #1035 from sandrine-bailleux-arm/sb/xlat-lib-ctx

Translation table library v2 improvements

dd92360131-Jul-2017 Fu Wei <fu.wei@linaro.org>

qemu: use translation tables library v2 as default.

Almost all the arm platform has switch to translation tables library v2 as
default. Because qemu platform doesn't use arm_common.mk like other arm

qemu: use translation tables library v2 as default.

Almost all the arm platform has switch to translation tables library v2 as
default. Because qemu platform doesn't use arm_common.mk like other arm
platforms, QEMU haven't switched to v2 yet.

This patch adds all the necessary code for adding translation tables
library v2 support on QEMU and use it as default.

Fixes ARM-software/tf-issues#508

Signed-off-by: Fu Wei <fu.wei@linaro.org>

show more ...

401e491126-Jul-2017 davidcunado-arm <david.cunado@arm.com>

Merge pull request #1032 from soby-mathew/sm/css_scp_reorg

Reorganise CSS SCP bootloader layer

a9ad848c18-Jul-2017 Sandrine Bailleux <sandrine.bailleux@arm.com>

xlat lib v2: Expose *_ctx() APIs

In a previous patch, the xlat_ctx_t type has been made public.
This patch now makes the *_ctx() APIs public.

Each API now has a *_ctx() variant. Most of them were a

xlat lib v2: Expose *_ctx() APIs

In a previous patch, the xlat_ctx_t type has been made public.
This patch now makes the *_ctx() APIs public.

Each API now has a *_ctx() variant. Most of them were already implemented
and this patch just makes them public. However, some of them were missing
so this patch introduces them.

Now that all these APIs are public, there's no good reason for splitting
them accross 2 files (xlat_tables_internal.c and xlat_tables_common.c).
Therefore, this patch moves all code into xlat_tables_internal.c and
removes xlat_tables_common.c. It removes it from the library's makefile
as well.

This last change introduces a compatibility break for platform ports
that specifically include the xlat_tables_common.c file instead of
including the library's Makefile. The UniPhier platform makefile has
been updated to now omit this file from the list of source files.

The prototype of mmap_add_region_ctx() has been slightly changed. The
mmap_region_t passed in argument needs to be constant because it gets
called from map_add(), which receives a constant region. The former
implementation of mmap_add() used to cast the const qualifier away,
which is not a good practice.

Also remove init_xlation_table(), which was a sub-function of
init_xlat_tables(). Now there's just init_xlat_tables() (and
init_xlat_tables_ctx()). Both names were too similar, which was
confusing. Besides, now that all the code is in a single file,
it's no longer needed to have 2 functions for that.

Change-Id: I4ed88c68e44561c3902fbebb89cb197279c5293b
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>

show more ...

c9e8774c26-Jul-2017 Leo Yan <leo.yan@linaro.org>

hikey: Disable VBUS_DET interrupt for PMIC

After disconnect Jumper pin 1-2 in J15 header, the signal VBUS_DET is to
be pulled down to low level. This will assert the interrupt signal in
PMIC and tri

hikey: Disable VBUS_DET interrupt for PMIC

After disconnect Jumper pin 1-2 in J15 header, the signal VBUS_DET is to
be pulled down to low level. This will assert the interrupt signal in
PMIC and trigger IRQ in GIC; the asserted signal from VBUS_DET is level
triggered and kernel reports the warning for unhooked interrupt handling;
and VBUS_DET stays with low level, this triggers IRQ storm in kernel.

This patch is to disable interrupt for VBUS_DET in PMIC, this can
dismiss the verbose log and IRQ storm after kernel booting.

[ 40.835279] irq 57: nobody cared (try booting with the "irqpoll" option)
[ 40.842075] CPU: 0 PID: 980 Comm: irq/57-hi655x-p Not tainted 4.4.77-568944-g576a0114dec8-dirty #667
[ 40.851303] Hardware name: HiKey Development Board (DT)
[ 40.856580] Call trace:
[ 40.859060] [<ffffff800808c4cc>] dump_backtrace+0x0/0x1e0
[ 40.864516] [<ffffff800808c8ac>] show_stack+0x20/0x28
[ 40.869622] [<ffffff80084b9688>] dump_stack+0xa8/0xe0
[ 40.874729] [<ffffff800812dd5c>] __report_bad_irq+0x40/0xec
[ 40.880360] [<ffffff800812e0bc>] note_interrupt+0x1e4/0x2d8
[ 40.885992] [<ffffff800812b11c>] handle_irq_event_percpu+0xd8/0x268
[ 40.892324] [<ffffff800812b2f8>] handle_irq_event+0x4c/0x7c
[ 40.897955] [<ffffff800812ecbc>] handle_level_irq+0xcc/0x178
[ 40.903672] [<ffffff800812a778>] generic_handle_irq+0x34/0x4c
[ 40.909481] [<ffffff80085074c8>] pl061_irq_handler+0xa8/0x124
[ 40.915286] [<ffffff800812a778>] generic_handle_irq+0x34/0x4c
[ 40.921092] [<ffffff800812a820>] __handle_domain_irq+0x90/0xf8
[ 40.926985] [<ffffff8008082620>] gic_handle_irq+0x58/0xa8

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Signed-off-by: Leo Yan <leo.yan@linaro.org>

show more ...

284c3d6726-May-2017 Sandrine Bailleux <sandrine.bailleux@arm.com>

FVP: Do not map DEVICE2 memory range when TBB is disabled

The DEVICE2 memory range is needed to access the Root of Trust Public
Key registers. This is not needed when Trusted Board Boot is disabled

FVP: Do not map DEVICE2 memory range when TBB is disabled

The DEVICE2 memory range is needed to access the Root of Trust Public
Key registers. This is not needed when Trusted Board Boot is disabled
so it's safer to not map it in this case. This also saves one level-2
page table in each of BL1 and BL2 images.

Also add some comments.

Change-Id: I67456b44f3fd5e145f6510a8499b7fdf720a7273
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>

show more ...

aa965e1520-Jul-2017 davidcunado-arm <david.cunado@arm.com>

Merge pull request #1029 from islmit01/im/fix_includes

Fix order of includes


/rk3399_ARM-atf/bl1/aarch64/bl1_exceptions.S
/rk3399_ARM-atf/bl1/bl1_fwu.c
/rk3399_ARM-atf/bl1/bl1_main.c
/rk3399_ARM-atf/bl2u/bl2u_main.c
/rk3399_ARM-atf/bl31/bl31_main.c
/rk3399_ARM-atf/drivers/auth/cryptocell/cryptocell_crypto.c
/rk3399_ARM-atf/drivers/auth/mbedtls/mbedtls_crypto.c
/rk3399_ARM-atf/drivers/auth/tbbr/tbbr_cot.c
/rk3399_ARM-atf/drivers/partition/partition.c
/rk3399_ARM-atf/include/drivers/arm/cryptocell/cc_pal_types_plat.h
/rk3399_ARM-atf/include/drivers/arm/cryptocell/nvm.h
/rk3399_ARM-atf/include/drivers/auth/mbedtls/mbedtls_config.h
/rk3399_ARM-atf/include/lib/pmf/pmf_helpers.h
/rk3399_ARM-atf/lib/cpus/aarch64/cortex_a55.S
/rk3399_ARM-atf/lib/psci/psci_on.c
/rk3399_ARM-atf/lib/psci/psci_suspend.c
/rk3399_ARM-atf/lib/psci/psci_system_off.c
arm/board/fvp/fvp_io_storage.c
arm/board/fvp/fvp_pm.c
arm/board/juno/juno_bl1_setup.c
arm/common/arm_bl1_setup.c
arm/common/arm_bl2_setup.c
arm/common/arm_bl2u_setup.c
arm/common/tsp/arm_tsp_setup.c
hisilicon/hikey/hisi_pwrc.c
hisilicon/hikey/hisi_sip_svc.c
hisilicon/hikey960/drivers/ipc/hisi_ipc.c
hisilicon/hikey960/drivers/pwrc/hisi_pwrc.c
hisilicon/hikey960/hikey960_bl1_setup.c
hisilicon/hikey960/include/plat_macros.S
mediatek/common/mtk_plat_common.c
mediatek/mt6795/bl31_plat_setup.c
mediatek/mt6795/drivers/timer/mt_cpuxgpt.c
mediatek/mt6795/plat_pm.c
mediatek/mt8173/drivers/mtcmos/mtcmos.c
mediatek/mt8173/plat_sip_calls.c
nvidia/tegra/common/aarch64/tegra_helpers.S
nvidia/tegra/common/drivers/flowctrl/flowctrl.c
nvidia/tegra/common/tegra_bl31_setup.c
nvidia/tegra/common/tegra_gic.c
nvidia/tegra/common/tegra_pm.c
nvidia/tegra/common/tegra_sip_calls.c
nvidia/tegra/soc/t132/plat_psci_handlers.c
nvidia/tegra/soc/t132/plat_secondary.c
nvidia/tegra/soc/t186/drivers/mce/ari.c
nvidia/tegra/soc/t186/drivers/mce/nvg.c
nvidia/tegra/soc/t210/plat_psci_handlers.c
qemu/dt.c
qemu/qemu_bl2_setup.c
qemu/qemu_common.c
qemu/qemu_pm.c
qemu/topology.c
rockchip/common/aarch64/platform_common.c
rockchip/common/bl31_plat_setup.c
rockchip/common/drivers/parameter/ddr_parameter.c
rockchip/common/drivers/parameter/ddr_parameter.h
rockchip/common/include/plat_private.h
rockchip/common/params_setup.c
rockchip/common/plat_pm.c
rockchip/common/plat_topology.c
rockchip/rk3328/drivers/pmu/pmu.c
rockchip/rk3328/drivers/soc/soc.c
rockchip/rk3368/drivers/ddr/ddr_rk3368.c
rockchip/rk3368/drivers/pmu/pmu.c
rockchip/rk3368/drivers/soc/soc.c
rockchip/rk3399/drivers/dram/dfs.c
rockchip/rk3399/drivers/dram/dram.c
rockchip/rk3399/drivers/dram/dram_spec_timing.c
rockchip/rk3399/drivers/dram/suspend.c
rockchip/rk3399/drivers/gpio/rk3399_gpio.c
rockchip/rk3399/drivers/pmu/m0_ctl.c
rockchip/rk3399/drivers/pmu/pmu.c
rockchip/rk3399/drivers/soc/soc.c
rockchip/rk3399/plat_sip_calls.c
xilinx/zynqmp/bl31_zynqmp_setup.c
xilinx/zynqmp/plat_psci.c
xilinx/zynqmp/pm_service/pm_api_sys.c
xilinx/zynqmp/pm_service/pm_client.c
xilinx/zynqmp/pm_service/pm_client.h
xilinx/zynqmp/pm_service/pm_ipi.c
xilinx/zynqmp/pm_service/pm_svc_main.c
xilinx/zynqmp/tsp/tsp_plat_setup.c
/rk3399_ARM-atf/services/spd/opteed/opteed_main.c
/rk3399_ARM-atf/services/spd/tlkd/tlkd_main.c
/rk3399_ARM-atf/services/spd/trusty/trusty.c
/rk3399_ARM-atf/services/spd/tspd/tspd_main.c
/rk3399_ARM-atf/tools/cert_create/include/ext.h
/rk3399_ARM-atf/tools/cert_create/src/cmd_opt.c
/rk3399_ARM-atf/tools/cert_create/src/main.c
/rk3399_ARM-atf/tools/cert_create/src/sha.c
/rk3399_ARM-atf/tools/fiptool/fiptool.c
/rk3399_ARM-atf/tools/fiptool/fiptool.h
/rk3399_ARM-atf/tools/fiptool/tbbr_config.c
1ea63d7713-Jun-2017 Soby Mathew <soby.mathew@arm.com>

CSS: Prevent SCP_BL2/2U from overwriting BL1 RW data

On ARM CSS platforms, the SCP_BL2/2U image is loaded below
BL1 read-write data. This same memory is used to load BL31
later on. But sufficient ch

CSS: Prevent SCP_BL2/2U from overwriting BL1 RW data

On ARM CSS platforms, the SCP_BL2/2U image is loaded below
BL1 read-write data. This same memory is used to load BL31
later on. But sufficient checks were not done to ensure that the
SCP_BL2 would not overwrite BL1 rw data. This patch adds the
required CASSERT checks to prevent overwrite into BL1 or BL2
memory by load of SCP_BL2/2U. Also the size of BL31 is increased
and SCP_BL2/2U size is decreased to accomodate it within the
allocated region.

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

show more ...

74d44a4903-May-2017 Soby Mathew <soby.mathew@arm.com>

CSS: Reorganize the SCP Image transfer functionality

The SCP_BL2 is transferred to SCP during BL2 image load and authenticate
sequence. The Boot-Over-MHU (BOM) protocol is used as transport for this

CSS: Reorganize the SCP Image transfer functionality

The SCP_BL2 is transferred to SCP during BL2 image load and authenticate
sequence. The Boot-Over-MHU (BOM) protocol is used as transport for this. After
the SCP boots using the transferred image, the AP CPU waits till the `READY`
message is received from SCP. This patch separates the API for transport of
image from the wait for `READY` message and also moves the related files to
the `css/drivers` folder. The previous API `scp_bootloader_transfer` is
renamed to `css_scp_boot_image_xfer` to reflect the css naming convention.
This reorganisation also allows easier switch to a different transport
(eg: Shared Data Structure based transfer) in future

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

show more ...

6c401f3113-Jun-2017 Soby Mathew <soby.mathew@arm.com>

Resize the BL2 size limit for Juno

Recent patches to reduce the memory footprint of BL images have
resulted in saving several pages of memory. This patch reduces
the BL2 size limit by 20KB for Juno

Resize the BL2 size limit for Juno

Recent patches to reduce the memory footprint of BL images have
resulted in saving several pages of memory. This patch reduces
the BL2 size limit by 20KB for Juno when ARM_BOARD_OPTIMISE_MEM=1
so that more free space can be freed up for Trusted OS (BL32). Also
SCP_BL2/SCP_BL2U size is now restricted to 80K.

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

show more ...

4deb7bcc14-Jul-2017 davidcunado-arm <david.cunado@arm.com>

Merge pull request #1005 from ldts/v1

Poplar: Initial commit for Poplar E-96Boards

1...<<311312313314315316317318319320>>...358