History log of /device/linaro/bootloader/arm-trusted-firmware/drivers/arm/tzc400/tzc400.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
82cb2c1ad9897473743f08437d0a3995bed561b9 03-May-2017 dp-arm <dimitris.papastamos@arm.com> Use SPDX license identifiers

To make software license auditing simpler, use SPDX[0] license
identifiers instead of duplicating the license text in every file.

NOTE: Files that have been imported by FreeBSD have not been modified.

[0]: https://spdx.org/

Change-Id: I80a00e1f641b8cc075ca5a95b10607ed9ed8761a
Signed-off-by: dp-arm <dimitris.papastamos@arm.com>
/device/linaro/bootloader/arm-trusted-firmware/drivers/arm/tzc400/tzc400.c
6b4770637593f79aa6cfd1f062c1e5d0b1d587bc 28-Jan-2016 Vikram Kanigiri <vikram.kanigiri@arm.com> Refactor the ARM CoreLink TZC-400 driver

TrustZone protection can be programmed by both memory and TrustZone
address space controllers like DMC-500 and TZC-400. These peripherals
share a similar programmer's view.

Furthermore, it is possible to have multiple instances of each type of
peripheral in a system resulting in multiple programmer's views.
For example, on the TZC-400 each of the 4 filter units can be enabled
or disabled for each region. There is a single set of registers to
program the region attributes. On the DMC-500, each filter unit has its
own programmer's view resulting in multiple sets of registers to program
the region attributes. The layout of the registers is almost the same
across all these variations.

Hence the existing driver in `tzc400\tzc400.c` is refactored into the
new driver in `tzc\tzc400.c`. The previous driver file is still maintained
for compatibility and it is now deprecated.

Change-Id: Ieabd0528e244582875bc7e65029a00517671216d
/device/linaro/bootloader/arm-trusted-firmware/drivers/arm/tzc400/tzc400.c
b07b1ff5e66359946a0b2047a423f512c333cd62 07-Dec-2015 Soby Mathew <soby.mathew@arm.com> Remove the assert for TZC base during initialization

When resuming from system suspend the TZC needs to be
re-initialized. Hence the assertion for TZC base address
to detect re-initialization is removed.

Change-Id: I53d64146f6c919e95526441bb997f7b309c68141
/device/linaro/bootloader/arm-trusted-firmware/drivers/arm/tzc400/tzc400.c
609ebce42596174e987c84854ae0cfca402f7a02 20-Oct-2015 Vikram Kanigiri <vikram.kanigiri@arm.com> Fix TZC-400 peripheral detection

The TZC-400 driver implementation incorrectly uses the component
ID registers to detect the TZC-400 peripheral. As all ARM
peripherals share the same component ID, it doesn't allow to
uniquely identify the TZC-400 peripheral. This patch fixes the
TZC-400 driver by relying on the `part_number_0` and
`part_number_1` fields in the `PID` registers instead.
The `tzc_read_component_id` function has been replaced by
`tzc_read_peripheral_id`, which reads the 'part_number' values
and compares them with the TZC-400 peripheral ID.

Also, it adds a debug assertion to detect when the TZC driver
initialisation function is called multiple times.

Change-Id: I35949f6501a51c0a794144cd1c3a6db62440dce6
/device/linaro/bootloader/arm-trusted-firmware/drivers/arm/tzc400/tzc400.c
02462972c952c1b750b011f7e985d04d0a1556aa 09-Sep-2014 Juan Castillo <juan.castillo@arm.com> Use uintptr_t as base address type in ARM driver APIs

This patch changes the type of the base address parameter in the
ARM device driver APIs to uintptr_t (GIC, CCI, TZC400, PL011). The
uintptr_t type allows coverage of the whole memory space and to
perform arithmetic operations on the addresses. ARM platform code
has also been updated to use uintptr_t as GIC base address in the
configuration.

Fixes ARM-software/tf-issues#214

Change-Id: I1b87daedadcc8b63e8f113477979675e07d788f1
/device/linaro/bootloader/arm-trusted-firmware/drivers/arm/tzc400/tzc400.c
71a844453735d93c389969f6b781673654936029 19-Mar-2015 Dan Handley <dan.handley@arm.com> Add TZC function to configure region 0

Region 0 is special in TZC-400. It is possible to set the access
permissions for this but not the address range or filters to which
the permissions apply. Add a function for setting the region 0
access permissions.

Also add some VERBOSE logging and allow assembly files to include
the TZC header.

Change-Id: I4389261ba10a6e5e2e43ee93d55318dc507b6648
/device/linaro/bootloader/arm-trusted-firmware/drivers/arm/tzc400/tzc400.c
740134e6dc78785e2c75532659a8c7971a124f64 05-Sep-2014 Juan Castillo <juan.castillo@arm.com> Juno: Reserve some DDR-DRAM for secure use

This patch configures the TrustZone Controller in Juno to split
the 2GB DDR-DRAM memory at 0x80000000 into Secure and Non-Secure
regions:

- Secure DDR-DRAM: top 16 MB, except for the last 2 MB which are
used by the SCP for DDR retraining
- Non-Secure DDR-DRAM: remaining DRAM starting at base address

Build option PLAT_TSP_LOCATION selects the location of the secure
payload (BL3-2):

- 'tsram' : Trusted SRAM (default option)
- 'dram' : Secure region in the DDR-DRAM (set by the TrustZone
controller)

The MMU memory map has been updated to give BL2 permission to load
BL3-2 into the DDR-DRAM secure region.

Fixes ARM-software/tf-issues#233

Change-Id: I6843fc32ef90aadd3ea6ac4c7f314f8ecbd5d07b
/device/linaro/bootloader/arm-trusted-firmware/drivers/arm/tzc400/tzc400.c
3279f6251ebead329e4b0af2e42a7eae157bba52 04-Aug-2014 Dan Handley <dan.handley@arm.com> Simplify interface to TZC-400 driver

The TZC-400 driver previously allowed the possibility of multiple
controller instances to be present in the same executable. This
was unnecessary since there will only ever be one instance.

This change simplifies the tzc_init() function to only take the
base address argument needed by implementation, conforming to the
driver initialization model of other drivers. It also hides some
of the implementation details that were previously exposed by the
API.

The FVP port has been updated accordingly.

THIS CHANGE REQUIRES ALL PLATFORM PORTS THAT USE THE TZC-400
DRIVER TO BE UPDATED

Fixes ARM-software/tf-issues#181

Change-Id: I7b721edf947064989958d8f457d6462d92e742c8
/device/linaro/bootloader/arm-trusted-firmware/drivers/arm/tzc400/tzc400.c
d3280beb700321b0ef47b4f61d84667ba501bc61 05-Jun-2014 Juan Castillo <juan.castillo@arm.com> Rework incorrect use of assert() and panic() in codebase

Assert a valid security state using the macro sec_state_is_valid().
Replace assert() with panic() in those cases that might arise
because of runtime errors and not programming errors.
Replace panic() with assert() in those cases that might arise
because of programming errors.

Fixes ARM-software/tf-issues#96

Change-Id: I51e9ef0439fd5ff5e0edfef49050b69804bf14d5
/device/linaro/bootloader/arm-trusted-firmware/drivers/arm/tzc400/tzc400.c
97043ac98e13a726dbf8b3b41654dca759e3da2c 09-Apr-2014 Dan Handley <dan.handley@arm.com> Reduce deep nesting of header files

Reduce the number of header files included from other header
files as much as possible without splitting the files. Use forward
declarations where possible. This allows removal of some unnecessary
"#ifndef __ASSEMBLY__" statements.

Also, review the .c and .S files for which header files really need
including and reorder the #include statements alphabetically.

Fixes ARM-software/tf-issues#31

Change-Id: Iec92fb976334c77453e010b60bcf56f3be72bd3e
/device/linaro/bootloader/arm-trusted-firmware/drivers/arm/tzc400/tzc400.c
fb037bfb7cbf7b404c069b4ebac5a10059d948b1 10-Apr-2014 Dan Handley <dan.handley@arm.com> Always use named structs in header files

Add tag names to all unnamed structs in header files. This
allows forward declaration of structs, which is necessary to
reduce header file nesting (to be implemented in a subsequent
commit).

Also change the typedef names across the codebase to use the _t
suffix to be more conformant with the Linux coding style. The
coding style actually prefers us not to use typedefs at all but
this is considered a step too far for Trusted Firmware.

Also change the IO framework structs defintions to use typedef'd
structs to be consistent with the rest of the codebase.

Change-Id: I722b2c86fc0d92e4da3b15e5cab20373dd26786f
/device/linaro/bootloader/arm-trusted-firmware/drivers/arm/tzc400/tzc400.c
35e98e5588d09145f7d0d4d98624f6b75321a187 09-Apr-2014 Dan Handley <dan.handley@arm.com> Make use of user/system includes more consistent

Make codebase consistent in its use of #include "" syntax for
user includes and #include <> syntax for system includes.

Fixes ARM-software/tf-issues#65

Change-Id: If2f7c4885173b1fd05ac2cde5f1c8a07000c7a33
/device/linaro/bootloader/arm-trusted-firmware/drivers/arm/tzc400/tzc400.c
4ecca33988b90de43ec4f4a929094a38a23fda31 09-Apr-2014 Dan Handley <dan.handley@arm.com> Move include and source files to logical locations

Move almost all system include files to a logical sub-directory
under ./include. The only remaining system include directories
not under ./include are specific to the platform. Move the
corresponding source files to match the include directory
structure.

Also remove pm.h as it is no longer used.

Change-Id: Ie5ea6368ec5fad459f3e8a802ad129135527f0b3
/device/linaro/bootloader/arm-trusted-firmware/drivers/arm/tzc400/tzc400.c