History log of /rk3399_ARM-atf/include/ (Results 3926 – 3950 of 3957)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
ef7a28c901-Feb-2014 Achin Gupta <achin.gupta@arm.com>

psci: Use context library for preserving EL3 state

This patch uses the context library to save and restore EL3 state on
the 'cpu_context' data structures allocated by PSCI for managing
non-secure st

psci: Use context library for preserving EL3 state

This patch uses the context library to save and restore EL3 state on
the 'cpu_context' data structures allocated by PSCI for managing
non-secure state context on each cpu.

Change-Id: I19c1f26578204a7cd9e0a6c582ced0d97ee4cf80

show more ...

7aea908701-Feb-2014 Achin Gupta <achin.gupta@arm.com>

Add context management library

This patch adds support for a cpu context management library. This
library will be used to:

1. Share pointers to secure and non-secure state cpu contexts between
r

Add context management library

This patch adds support for a cpu context management library. This
library will be used to:

1. Share pointers to secure and non-secure state cpu contexts between
runtime services e.g. PSCI and Secure Payload Dispatcher services
2. Set SP_EL3 to a context structure which will be used for
programming an ERET into a lower EL
3. Provide wrapper functions to save and restore EL3 & EL1
state. These functions will in turn use the helper functions in
context.S

Change-Id: I655eeef83dcd2a0c6f2eb2ac23efab866ac83ca0

show more ...

9ac63c5916-Jan-2014 Achin Gupta <achin.gupta@arm.com>

Add helper library for cpu context management

This patch introduces functions for saving and restoring shared system
registers between secure and non-secure EL1 exception levels, VFP
registers and e

Add helper library for cpu context management

This patch introduces functions for saving and restoring shared system
registers between secure and non-secure EL1 exception levels, VFP
registers and essential EL3 system register and other state. It also
defines the 'cpu_context' data structure which will used for saving and
restoring execution context for a given security state. These functions
will allow runtime services like PSCI and Secure payload dispatcher to
implement logic for switching between the secure and non-secure states.

The save and restore functions follow AArch64 PCS and only use
caller-saved temporary registers.

Change-Id: I8ee3aaa061d3caaedb28ae2c5becb9a206b6fd74

show more ...

b739f22a18-Jan-2014 Achin Gupta <achin.gupta@arm.com>

Setup VBAR_EL3 incrementally

This patch ensures that VBAR_EL3 points to the simple stack-less
'early_exceptions' when the C runtime stack is not correctly setup to
use the more complex 'runtime_exce

Setup VBAR_EL3 incrementally

This patch ensures that VBAR_EL3 points to the simple stack-less
'early_exceptions' when the C runtime stack is not correctly setup to
use the more complex 'runtime_exceptions'. It is initialised to
'runtime_exceptions' once this is done.

This patch also moves all exception vectors into a '.vectors' section
and modifies linker scripts to place all such sections together. This
will minimize space wastage from alignment restrictions.

Change-Id: I8c3e596ea3412c8bd582af9e8d622bb1cb2e049d

show more ...

561cd33e14-Feb-2014 Harry Liebel <Harry.Liebel@arm.com>

Add Firmware Image Package (FIP) driver

The Firmware Image Package (FIP) driver allows for data to be loaded
from a FIP on platform storage. The FVP supports loading bootloader
images from a FIP loc

Add Firmware Image Package (FIP) driver

The Firmware Image Package (FIP) driver allows for data to be loaded
from a FIP on platform storage. The FVP supports loading bootloader
images from a FIP located in NOR FLASH.

The implemented FVP policy states that bootloader images will be
loaded from a FIP in NOR FLASH if available and fall back to loading
individual images from semi-hosting.

NOTE:
- BL3-3(e.g. UEFI) is loaded into DRAM and needs to be configured
to run from the BL33_BASE address. This is currently set to
DRAM_BASE+128MB for the FVP.

Change-Id: I2e4821748e3376b5f9e467cf3ec09509e43579a0

show more ...

f58ad36f10-Jan-2014 Harry Liebel <Harry.Liebel@arm.com>

Add Firmware Image Package creation tool

This tool can be used to create a Firmware Image Packages (FIP). These
FIPs store a combined set of firmware images with a Table of Contents
(ToC) that can b

Add Firmware Image Package creation tool

This tool can be used to create a Firmware Image Packages (FIP). These
FIPs store a combined set of firmware images with a Table of Contents
(ToC) that can be loaded by the firmware from platform storage.

- Add uuid.h from FreeBSD.
- Use symbolic links to shared headers otherwise unwanted headers and
definitions are pulled in.
- A FIP is created as part of the default FVP build.
- A BL3-3 image(e.g. UEFI) must be provided.

Change-Id: Ib73feee181df2dba68bf6abec115a83cfa5e26cb

show more ...

9d72b4ea10-Feb-2014 James Morrissey <james.morrissey@arm.com>

Implement load_image in terms of IO abstraction

The modified implementation uses the IO abstraction rather than
making direct semi-hosting calls. The semi-hosting driver is now
registered for the F

Implement load_image in terms of IO abstraction

The modified implementation uses the IO abstraction rather than
making direct semi-hosting calls. The semi-hosting driver is now
registered for the FVP platform during initialisation of each boot
stage where it is used. Additionally, the FVP platform includes a
straightforward implementation of 'plat_get_image_source' which
provides a generic means for the 'load_image' function to determine
how to access the image data.

Change-Id: Ia34457b471dbee990c7b3c79de7aee4ceea51aa6

show more ...

f2f9bb5e10-Feb-2014 James Morrissey <james.morrissey@arm.com>

Add IO abstraction framework

This is intended primarily for use as a storage abstraction.
It allows operations such as image-loading to be implemented
in a platform-independent fashion. Each platfo

Add IO abstraction framework

This is intended primarily for use as a storage abstraction.
It allows operations such as image-loading to be implemented
in a platform-independent fashion. Each platform registers
a set of IO drivers during initialisation. The platform must
also provide a function that will return a device and a specifier
that can be used to access specified content.

Clients of the API will primarily use device and entity handles.
The term "entity" is deliberately vague, to allow for different
representations of content accessed using different types of
specifier, but will often be interpreted as a "file" where the
specifier will normally be its path.

This commit builds, but is intended to be paired with a sample
implementation of "load_image" using a semi-hosting driver on FVP.

Change-Id: Id3b52f1c0eb9ce76b44b99fc6b6460803668cc86

show more ...

75f7367b05-Dec-2013 Achin Gupta <achin.gupta@arm.com>

psci: fix affinity level upgrade issue

The psci implementation does not track target affinity level requests
specified during cpu_suspend calls correctly as per the following
example.

1. cpu0.clust

psci: fix affinity level upgrade issue

The psci implementation does not track target affinity level requests
specified during cpu_suspend calls correctly as per the following
example.

1. cpu0.cluster0 calls cpu_suspend with the target affinity level as 0
2. Only the cpu0.cluster0 is powered down while cluster0 remains
powered up
3. cpu1.cluster0 calls cpu_off to power itself down to highest
possible affinity level
4. cluster0 will be powered off even though cpu0.cluster0 does not
allow cluster shutdown

This patch introduces reference counts at affinity levels > 0 to track
the number of cpus which want an affinity instance at level X to
remain powered up. This instance can be turned off only if its
reference count is 0. Cpus still undergo the normal state transitions
(ON, OFF, ON_PENDING, SUSPEND) but the higher levels can only be
either ON or OFF depending upon their reference count.

The above issue is thus fixed as follows:

1. cluster0's reference count is incremented by two when cpu0 and cpu1
are initially powered on.

2. cpu0.cluster0 calls cpu_suspend with the target affinity level as
0. This does not affect the cluster0 reference count.

3. Only the cpu0.cluster0 is powered down while cluster0 remains
powered up as it has a non-zero reference count.

4. cpu1.cluster0 call cpu_off to power itself down to highest possible
affinity level. This decrements the cluster0 reference count.

5. cluster0 is still not powered off since its reference count will at
least be 1 due to the restriction placed by cpu0.

Change-Id: I433dfe82b946f5f6985b1602c2de87800504f7a9

show more ...

a59caa4c05-Dec-2013 Achin Gupta <achin.gupta@arm.com>

psci: replace secure context with suspend context

The secure context saved and restored across a cpu_suspend operation
can be more than just the state of the secure system registers e.g. we
also nee

psci: replace secure context with suspend context

The secure context saved and restored across a cpu_suspend operation
can be more than just the state of the secure system registers e.g. we
also need to save the affinity level till which the cpu is being
powered down. This patch creates a suspend_context data structure
which includes the system register context. This will allow other bits
to be saved and restored as well in subsequent patches.

Change-Id: I1c1f7d25497388b54b7d6ee4fab77e8c6a9992c4

show more ...

eaec590e12-Dec-2013 Harry Liebel <Harry.Liebel@arm.com>

Probe for GICv3 re-distributors on core bring-up

The GICv3 distributor can have more ports than CPUs are available in
the system. Probe all re-distributors and use the matching affinity
levels as sp

Probe for GICv3 re-distributors on core bring-up

The GICv3 distributor can have more ports than CPUs are available in
the system. Probe all re-distributors and use the matching affinity
levels as specified by each core and re-distributor to decide which
re-distributor to use with which CPU core.

If a core cannot be matched with a re-distributor, the core panics and
is placed in an endless loop.

Change-Id: Ie393cfe07c7449a2383959e3c968664882e18afc

show more ...

4f60368314-Jan-2014 Harry Liebel <Harry.Liebel@arm.com>

Do not trap access to floating point registers

Traps when accessing architectural features are disabled by clearing bits
in CPTR_EL3 during early boot, including accesses to floating point
registers

Do not trap access to floating point registers

Traps when accessing architectural features are disabled by clearing bits
in CPTR_EL3 during early boot, including accesses to floating point
registers. The value of this register was previously undetermined, causing
unwanted traps to EL3. Future EL3 code (for example, context save/restore
code) may use floating point registers, although they are not used by current
code.

Also, the '-mgeneral-regs-only' flag is enabled in the GCC settings to
prevent generation of code that uses floating point registers.

Change-Id: I9a03675f6387bbbee81a6f2c9ccf81150db03747

show more ...

e83b0cad14-Jan-2014 Dan Handley <dan.handley@arm.com>

Update year in copyright text to 2014

Change-Id: Ic7fb61aabae1d515b9e6baf3dd003807ff42da60


/rk3399_ARM-atf/Makefile
/rk3399_ARM-atf/arch/aarch64/cpu/cpu_helpers.S
/rk3399_ARM-atf/arch/system/gic/aarch64/gic_v3_sysregs.S
/rk3399_ARM-atf/arch/system/gic/gic.h
/rk3399_ARM-atf/arch/system/gic/gic_v2.c
/rk3399_ARM-atf/arch/system/gic/gic_v2.h
/rk3399_ARM-atf/arch/system/gic/gic_v3.h
/rk3399_ARM-atf/bl1/aarch64/bl1_arch_setup.c
/rk3399_ARM-atf/bl1/aarch64/bl1_entrypoint.S
/rk3399_ARM-atf/bl1/aarch64/early_exceptions.S
/rk3399_ARM-atf/bl1/bl1.ld.S
/rk3399_ARM-atf/bl1/bl1.mk
/rk3399_ARM-atf/bl1/bl1_main.c
/rk3399_ARM-atf/bl2/aarch64/bl2_arch_setup.c
/rk3399_ARM-atf/bl2/aarch64/bl2_entrypoint.S
/rk3399_ARM-atf/bl2/bl2.ld.S
/rk3399_ARM-atf/bl2/bl2.mk
/rk3399_ARM-atf/bl2/bl2_main.c
/rk3399_ARM-atf/bl31/aarch64/bl31_arch_setup.c
/rk3399_ARM-atf/bl31/aarch64/bl31_entrypoint.S
/rk3399_ARM-atf/bl31/aarch64/exception_handlers.c
/rk3399_ARM-atf/bl31/aarch64/runtime_exceptions.S
/rk3399_ARM-atf/bl31/bl31.ld.S
/rk3399_ARM-atf/bl31/bl31.mk
/rk3399_ARM-atf/bl31/bl31_main.c
/rk3399_ARM-atf/common/bl_common.c
/rk3399_ARM-atf/common/psci/psci_afflvl_off.c
/rk3399_ARM-atf/common/psci/psci_afflvl_on.c
/rk3399_ARM-atf/common/psci/psci_afflvl_suspend.c
/rk3399_ARM-atf/common/psci/psci_common.c
/rk3399_ARM-atf/common/psci/psci_entry.S
/rk3399_ARM-atf/common/psci/psci_main.c
/rk3399_ARM-atf/common/psci/psci_private.h
/rk3399_ARM-atf/common/psci/psci_setup.c
/rk3399_ARM-atf/common/runtime_svc.c
/rk3399_ARM-atf/contributing.md
/rk3399_ARM-atf/docs/change-log.md
/rk3399_ARM-atf/docs/porting-guide.md
/rk3399_ARM-atf/docs/user-guide.md
/rk3399_ARM-atf/drivers/arm/interconnect/cci-400/cci400.c
/rk3399_ARM-atf/drivers/arm/interconnect/cci-400/cci400.h
/rk3399_ARM-atf/drivers/arm/peripherals/pl011/console.h
/rk3399_ARM-atf/drivers/arm/peripherals/pl011/pl011.c
/rk3399_ARM-atf/drivers/arm/peripherals/pl011/pl011.h
/rk3399_ARM-atf/drivers/power/fvp_pwrc.c
/rk3399_ARM-atf/drivers/power/fvp_pwrc.h
/rk3399_ARM-atf/fdts/fvp-base-gicv2-psci.dts
/rk3399_ARM-atf/fdts/fvp-base-gicv2legacy-psci.dts
/rk3399_ARM-atf/fdts/fvp-base-gicv3-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv2legacy-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-gicv3-psci.dts
/rk3399_ARM-atf/fdts/fvp-foundation-motherboard.dtsi
/rk3399_ARM-atf/fdts/rtsm_ve-motherboard.dtsi
aarch64/arch.h
aarch64/arch_helpers.h
asm_macros.S
bakery_lock.h
bl1.h
bl2.h
bl31.h
bl_common.h
debug.h
mmio.h
pm.h
psci.h
runtime_svc.h
semihosting.h
spinlock.h
stdlib/stdio.h
stdlib/string.h
stdlib/sys/ctype.h
/rk3399_ARM-atf/lib/arch/aarch64/cache_helpers.S
/rk3399_ARM-atf/lib/arch/aarch64/misc_helpers.S
/rk3399_ARM-atf/lib/arch/aarch64/sysreg_helpers.S
/rk3399_ARM-atf/lib/arch/aarch64/tlb_helpers.S
/rk3399_ARM-atf/lib/mmio.c
/rk3399_ARM-atf/lib/semihosting/aarch64/semihosting_call.S
/rk3399_ARM-atf/lib/semihosting/semihosting.c
/rk3399_ARM-atf/lib/stdlib/abort.c
/rk3399_ARM-atf/lib/stdlib/assert.c
/rk3399_ARM-atf/lib/stdlib/mem.c
/rk3399_ARM-atf/lib/stdlib/printf.c
/rk3399_ARM-atf/lib/stdlib/putchar.c
/rk3399_ARM-atf/lib/stdlib/puts.c
/rk3399_ARM-atf/lib/stdlib/std.c
/rk3399_ARM-atf/lib/stdlib/strchr.c
/rk3399_ARM-atf/lib/stdlib/strlen.c
/rk3399_ARM-atf/lib/stdlib/subr_prf.c
/rk3399_ARM-atf/lib/sync/locks/bakery/bakery_lock.c
/rk3399_ARM-atf/lib/sync/locks/exclusive/spinlock.S
/rk3399_ARM-atf/license.md
/rk3399_ARM-atf/plat/common/aarch64/platform_helpers.S
/rk3399_ARM-atf/plat/fvp/aarch64/bl1_plat_helpers.S
/rk3399_ARM-atf/plat/fvp/aarch64/fvp_common.c
/rk3399_ARM-atf/plat/fvp/aarch64/fvp_helpers.S
/rk3399_ARM-atf/plat/fvp/bl1_plat_setup.c
/rk3399_ARM-atf/plat/fvp/bl2_plat_setup.c
/rk3399_ARM-atf/plat/fvp/bl31_plat_setup.c
/rk3399_ARM-atf/plat/fvp/fvp_gic.c
/rk3399_ARM-atf/plat/fvp/fvp_pm.c
/rk3399_ARM-atf/plat/fvp/fvp_topology.c
/rk3399_ARM-atf/plat/fvp/platform.h
/rk3399_ARM-atf/readme.md
8468739c02-Jan-2014 Ian Spray <ian.spray@arm.com>

Move GIC setup to a separate file

GIC setup code which used to be in bl31_plat_setup.c is now in fvp_gic.c
to simplify future changes to other bootloader stages. This patch moves
code from bl31_pla

Move GIC setup to a separate file

GIC setup code which used to be in bl31_plat_setup.c is now in fvp_gic.c
to simplify future changes to other bootloader stages. This patch moves
code from bl31_plat_setup.c to fvp_gic.c, simplifies the include file
list for bl31_plat_setup.c, moves GIC declarations from the bl31.h header
file into the platform.h, and reworks files according to coding style
guide.

Change-Id: I48d82a4ba33e7114dcc88f9ca98767a06cf8f417

show more ...

e22fb91e03-Jan-2014 Harry Liebel <Harry.Liebel@arm.com>

Build project with 'pedantic'

Tighten up ISO C standard checking. Fix 'CASSERT' implementation to
conform to C99 as opposed to GNU99 standard.

Change-Id: I58ddc61913617b66f11da5b6e3f7363136d5cf7d

bdb774df17-Dec-2013 Sandrine Bailleux <sandrine.bailleux@arm.com>

Fix SPSR register size in gp_regs structure

SPSR is a 32-bit register and so its size should be reflected in
the gp_regs structure. This patch fixes the type of gp_regs.spsr
to use a 32-bit variabl

Fix SPSR register size in gp_regs structure

SPSR is a 32-bit register and so its size should be reflected in
the gp_regs structure. This patch fixes the type of gp_regs.spsr
to use a 32-bit variable. It also makes the size of the other
register fields more explicit.

Change-Id: I27e0367df1a91cc501d5217c1b3856d4097c60ba

show more ...

1bc9e1f612-Dec-2013 Harry Liebel <Harry.Liebel@arm.com>

Add strchr() and putchar() to local C library

Change-Id: I3659e119a242f8ef828e32bfdf5d0b4b7ac4f716

0f702c6e17-Dec-2013 Harry Liebel <Harry.Liebel@arm.com>

Create local C library implementation (2/2)

- This change is split into two separate patches in order to
simplify the history as interpreted by 'git'. The split is
between the move/rename and ad

Create local C library implementation (2/2)

- This change is split into two separate patches in order to
simplify the history as interpreted by 'git'. The split is
between the move/rename and addition of new files.
- Remove dependency on toolchain C library headers and functions in
order to ensure behavioural compatibility between toolchains.
- Use FreeBSD as reference for C library implementation.
- Do not let GCC use default library include paths.
- Remove unused definitions in modified headers and implementations.
- Move C library files to 'lib/stdlib' and 'include/stdlib'.
- Break std.c functions out into separate files.

Change-Id: I3e3d8d992052264d2a02489034ae4c03bf0f5512

show more ...

c81b1d0f17-Dec-2013 Harry Liebel <Harry.Liebel@arm.com>

Create local C library implementation (1/2)

- This change is split into two separate patches in order to
simplify the history as interpreted by 'git'. The split is
between the move/rename and ad

Create local C library implementation (1/2)

- This change is split into two separate patches in order to
simplify the history as interpreted by 'git'. The split is
between the move/rename and addition of new files.
- Remove dependency on toolchain C library headers and functions in
order to ensure behavioural compatibility between toolchains.
- Use FreeBSD as reference for C library implementation.
- Do not let GCC use default library include paths.
- Remove unused definitions in modified headers and implementations.
- Move C library files to 'lib/stdlib' and 'include/stdlib'.
- Break std.c functions out into separate files.

Change-Id: I91cddfb3229775f770ad781589670c57d347a154

show more ...

57bb658119-Dec-2013 Harry Liebel <Harry.Liebel@arm.com>

Add debug macros

- Add 'debug.h' with INFO, WARN and ERROR macros.
- This prints the specified message with the appropriate tag.
- INFO and WARN messages are only displayed when building with
the

Add debug macros

- Add 'debug.h' with INFO, WARN and ERROR macros.
- This prints the specified message with the appropriate tag.
- INFO and WARN messages are only displayed when building with
the DEBUG flag set. Error messages are always printed.

Change-Id: I21835b6063fcc99649b30ac7489387cbd3705bc0

show more ...

93ca221c02-Dec-2013 Sandrine Bailleux <sandrine.bailleux@arm.com>

Make BL31's ns_entry_info a single-cpu area

ns_entry_info used to be a per-cpu array. This is a waste of space
because it is only accessed by the primary CPU on the cold boot path.
This patch reduc

Make BL31's ns_entry_info a single-cpu area

ns_entry_info used to be a per-cpu array. This is a waste of space
because it is only accessed by the primary CPU on the cold boot path.
This patch reduces ns_entry_info to a single-cpu area.

Change-Id: I647c70c4e76069560f1aaad37a1d5910f56fba4c

show more ...

ba6980a802-Dec-2013 Sandrine Bailleux <sandrine.bailleux@arm.com>

Move RUN_IMAGE constant from bl1.h to bl_common.h

RUN_IMAGE constant is used by all bootloader stages.

Change-Id: I1b4e28d8fcf3ad1363f202c859f5efab0f320efe

ee12f6f728-Nov-2013 Sandrine Bailleux <sandrine.bailleux@arm.com>

Remove useless copies of meminfo structures

Platform setup code has to reserve some memory for storing the
memory layout information. It is populated in early platform setup
code.

blx_get_sec_mem_

Remove useless copies of meminfo structures

Platform setup code has to reserve some memory for storing the
memory layout information. It is populated in early platform setup
code.

blx_get_sec_mem_layout() functions used to return a copy of this
structure. This patch modifies blx_get_sec_mem_layout() functions
so that they now directly return a pointer to their memory layout
structure. It ensures that the memory layout returned by
blx_get_sec_mem_layout() is always up-to-date and also avoids a
useless copy of the meminfo structure.

Also rename blx_get_sec_mem_layout() to blx_plat_sec_mem_layout()
to make it clear those functions are platform specific.

Change-Id: Ic7a6f9d6b6236b14865ab48a9f5eff545ce56551

show more ...

3140a9e502-Dec-2013 Achin Gupta <achin.gupta@arm.com>

psci: rework cpu_off assertion and minor cleanups

This patch:

1. removes a duplicate assertion to check that the only error
condition that can be returned while turning a cpu off is
PSCI_E_DE

psci: rework cpu_off assertion and minor cleanups

This patch:

1. removes a duplicate assertion to check that the only error
condition that can be returned while turning a cpu off is
PSCI_E_DENIED. Having this assertion after calling
psci_afflvl_off() is sufficient.

2. corrects some incorrect usage of 'its' vs 'it is'

3. removes some unwanted white spaces

Change-Id: Icf014e269b54f5be5ce0b9fbe6b41258e4ebf403

show more ...

c2b43afc31-Oct-2013 Achin Gupta <achin.gupta@arm.com>

move timer #defines & remove duplicate declaration

This patch removes the duplicate declaration of psci_cpu_on in psci.h
and moves the constants for the system level implementation of the
generic ti

move timer #defines & remove duplicate declaration

This patch removes the duplicate declaration of psci_cpu_on in psci.h
and moves the constants for the system level implementation of the
generic timer from arch_helpers.h to arch.h. All other architectural
constants are defined in arch.h so there is no need to add them to
arch_helpers.h

Change-Id: Ia8ad3f91854f7e57fce31873773eede55c384ff1

show more ...

1...<<151152153154155156157158159