| 5acb1bc6 | 12-Dec-2016 |
David Wang <david.wang@arm.com> |
Rename the secure and non-secure interrupts
Currently, the secure interrupts are named as FIQ and the non-secure interrupts are named as IRQ.
In GICv3 mode, the FIQ and IRQ have different definitio
Rename the secure and non-secure interrupts
Currently, the secure interrupts are named as FIQ and the non-secure interrupts are named as IRQ.
In GICv3 mode, the FIQ and IRQ have different definitions. * Secure Group 0 interrupts: Handled by EL3 and triggered by FIQ when running at Secure EL0/1. * Secure Group 1 interrupts: Handled by optee_os and triggered by IRQ when running at Secure EL0/1. * Non-secure Group1 interrupts: Handled by the rich os and triggered by FIQ when running at Secure EL0/1.
The "Secure Group 1" interrupts are the "native" interrupts handled by optee_os. They are same as the "secure" interrupts used in optee_os for now. But they are triggered by FIQ in GICv2 mode while by IRQ in GICv3 mode.
The "Secure Group 0" and "Non-secure Group1" interrupts are the "foreign" interrupts that will cause the exiting of optee_os. (e.g. switch back to normal world) The "Non-secure Group1" interrupts are same as the "non-secure"interrupts used in optee_os for now. But they are triggered by IRQ in GICv2 mode while by FIQ in GICv3 mode.
This patch renames these interrupts to the generic names - "Foreign interrupts" and "Native interrupts". For the support of GICv3 mode in the future, we can redefine the macros of "native interrupt" and "foreign interrupt" to IRQ and FIQ.
Signed-off-by: David Wang <david.wang@arm.com> Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Tested-by: Etienne Carriere <etienne.carriere@linaro.org> (b2260)
show more ...
|
| dd958c63 | 09-Sep-2016 |
Andrew F. Davis <afd@ti.com> |
plat-ti: Add AM57xx platform flavor
The AM57xx flavor is based on DRA7xx except that it uses a different UART port. Add this here.
Signed-off-by: Andrew F. Davis <afd@ti.com> Reviewed-by: Jerome Fo
plat-ti: Add AM57xx platform flavor
The AM57xx flavor is based on DRA7xx except that it uses a different UART port. Add this here.
Signed-off-by: Andrew F. Davis <afd@ti.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 5849875f | 19-Aug-2015 |
Andrew F. Davis <afd@ti.com> |
monitor: Add support for platform services
Add the capability for a platform to plugin its own services, often legacy services for compatibility purposes.
Add these services for the dra7xx platform
monitor: Add support for platform services
Add the capability for a platform to plugin its own services, often legacy services for compatibility purposes.
Add these services for the dra7xx platform.
The file 'api_monitor_index.h' is synced to a an out-of-tree file and so we should ignore formatting. Add this exeption to checkpatch.
Signed-off-by: Andrew F. Davis <afd@ti.com> Signed-off-by: Daniel Allred <d-allred@ti.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 72057c7c | 20-Feb-2017 |
Victor Chong <victor.chong@linaro.org> |
drivers: pl022: Prevent possible rx fifo overflow
Signed-off-by: Victor Chong <victor.chong@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <eti
drivers: pl022: Prevent possible rx fifo overflow
Signed-off-by: Victor Chong <victor.chong@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> [jf: rebase on top of master] Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 26128b8f | 28-Dec-2016 |
Victor Chong <victor.chong@linaro.org> |
drivers: pl022: Allow platforms to register CS control function
If a CS callback function is registered, the system provided one will not be used.
Signed-off-by: Victor Chong <victor.chong@linaro.o
drivers: pl022: Allow platforms to register CS control function
If a CS callback function is registered, the system provided one will not be used.
Signed-off-by: Victor Chong <victor.chong@linaro.org> Tested-by: Victor Chong <victor.chong@linaro.org> (HiKey) Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> [jf: rebase on top of master] Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 6356eeb2 | 28-Dec-2016 |
Victor Chong <victor.chong@linaro.org> |
drivers: spi: Make configure, start and end functions generic
Move configure, start and end functions from IP specific files into spi_ops in spi.h to allow platforms to call and control them via the
drivers: spi: Make configure, start and end functions generic
Move configure, start and end functions from IP specific files into spi_ops in spi.h to allow platforms to call and control them via the generic framework.
Signed-off-by: Victor Chong <victor.chong@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> [jf: rebase on top of master] Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 9a2efe04 | 28-Dec-2016 |
Victor Chong <victor.chong@linaro.org> |
drivers: pl022: Add more checks and configuration
- Add checks for proper data size before packet transfer - Check also busy status before exiting rx loop to avoid possible endless looping - Clear
drivers: pl022: Add more checks and configuration
- Add checks for proper data size before packet transfer - Check also busy status before exiting rx loop to avoid possible endless looping - Clear interrupts during configure
Signed-off-by: Victor Chong <victor.chong@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> [jf: rebase on top of master] Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 2ff86f60 | 28-Dec-2016 |
Victor Chong <victor.chong@linaro.org> |
drivers: spi: simplify code
1. SPI mandates that sizes of transmitted and received packet are of same size [1]. As discussed in [2], this means that *num_rxpkts != num_txpkts is not a valid use case
drivers: spi: simplify code
1. SPI mandates that sizes of transmitted and received packet are of same size [1]. As discussed in [2], this means that *num_rxpkts != num_txpkts is not a valid use case so there's no need for both and we can just merge them and use num_pkts.
2. Remove tx{8,16} and rx{8,16} only functions as these are not commonly used. If necessary, users can call just txrx{8,16} with rdat or wdat as NULL for tx{8,16} and rx{8,16} respectively as replacements. E.g.:
tx8: txrx8(chip, wdat, NULL, num_pkts);
rx16: txrx16(chip, NULL, rdat, num_pkts);
3. Remove unnecessary or repetitive enums and headers and line feeds
[1] http://www.quanser.com/products/quarc/documentation/spi_protocol.html [2] https://github.com/OP-TEE/optee_os/pull/1215
Signed-off-by: Victor Chong <victor.chong@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> [jf: rebase on top of master] Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 86a9d40d | 27-Dec-2016 |
Victor Chong <victor.chong@linaro.org> |
hikey: spi: configure chip select pin as spi instead of gpio
Signed-off-by: Victor Chong <victor.chong@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Ca
hikey: spi: configure chip select pin as spi instead of gpio
Signed-off-by: Victor Chong <victor.chong@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> [jf: rebase on top of master] Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 3765523a | 27-Dec-2016 |
Victor Chong <victor.chong@linaro.org> |
hikey: spi_test: Reduce speed to 10KHz and add missing initializer
Signed-off-by: Victor Chong <victor.chong@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etie
hikey: spi_test: Reduce speed to 10KHz and add missing initializer
Signed-off-by: Victor Chong <victor.chong@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> [jf: rebase on top of master] Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 889dbbbf | 13-Feb-2017 |
Victor Chong <victor.chong@linaro.org> |
core: Add tee_time_busy_wait()
Signed-off-by: Victor Chong <victor.chong@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linar
core: Add tee_time_busy_wait()
Signed-off-by: Victor Chong <victor.chong@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> [jf: rebase on top of master] Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| c8f27bde | 26-Jan-2017 |
Andy Green <andy@warmcat.com> |
CFG_CORE_TZSRAM_EMUL_SIZE increase to 360KiB
Without increasing CFG_CORE_TZSRAM_EMUL_SIZE, build fails on vexpress with many options like this:
readelf: Warning: Corrupt ARM compact model table ent
CFG_CORE_TZSRAM_EMUL_SIZE increase to 360KiB
Without increasing CFG_CORE_TZSRAM_EMUL_SIZE, build fails on vexpress with many options like this:
readelf: Warning: Corrupt ARM compact model table entry: e12fff1e readelf: Warning: Unknown ARM compact model index encountered readelf: Warning: Corrupt ARM compact model table entry: e12fff1e readelf: Warning: Unknown ARM compact model index encountered readelf: Warning: Corrupt ARM compact model table entry: e12fff1e readelf: Warning: Unknown ARM compact model index encountered readelf: Warning: Corrupt ARM compact model table entry: e12fff1e readelf: Warning: Unknown ARM compact model index encountered arm-linux-gnueabihf-ld: OP-TEE can't fit init part into available physical memory make: *** [out/arm-plat-vexpress/core/tee.elf] Error 1
The command "$make CFG_WITH_PAGER=y CFG_WITH_LPAE=y CFG_RPMB_FS=y CFG_SQL_FS=y CFG_DT=y CFG_PS2MOUSE=y CFG_PL050=y CFG_PL111=y CFG_TEE_CORE_LOG_LEVEL=1 CFG_TEE_CORE_DEBUG=y DEBUG=1" exited with 2.
Signed-off-by: Andy Green <andy@warmcat.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 82f97f19 | 26-Jan-2017 |
Andy Green <andy@warmcat.com> |
prng: call plat_prng_add_jitter_entropy() at PRNG init and before NW RPC
This patch adds the new platform jitter collection API to be called first at PRNG init, and subsequently on every RPC.
Signe
prng: call plat_prng_add_jitter_entropy() at PRNG init and before NW RPC
This patch adds the new platform jitter collection API to be called first at PRNG init, and subsequently on every RPC.
Signed-off-by: Andy Green <andy@warmcat.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 2a5e2ec6 | 26-Jan-2017 |
Andy Green <andy@warmcat.com> |
prng: move old implementation to be weak default
The patch replaces the original entropy scheme using system time with the new api plat_prng_add_jitter_entropy().
The old scheme aimed to get 64 bit
prng: move old implementation to be weak default
The patch replaces the original entropy scheme using system time with the new api plat_prng_add_jitter_entropy().
The old scheme aimed to get 64 bits of entropy from the current time expressed in 64 bits in ms each time. Most of this was in fact zeros or unchanging for >256s. If you call it twice with 1ms, it actually provides 0 bits of entropy.
The replacement scheme aims to get 2 bits of entropy from the counter, which typically operates faster than 1MHz, greater than a thousand times more precision than the old way, each time.
For backwards compatibility, the old scheme is retained as the default or arches or platforms that did not provide an override to collect jitter in a better way.
Signed-off-by: Andy Green <andy@warmcat.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 4f448dff | 26-Jan-2017 |
Andy Green <andy@warmcat.com> |
prng: implement CNTPCT-based jitter entropy for all arm arch devices
Tests dumping CNTPCT at the same point in three boots on Hikey gave the following spread:
0xebff3fdd80daceb5 0xebff3fdd80da4601
prng: implement CNTPCT-based jitter entropy for all arm arch devices
Tests dumping CNTPCT at the same point in three boots on Hikey gave the following spread:
0xebff3fdd80daceb5 0xebff3fdd80da4601 0xeaff3fdd7edb5dcc
things like eMMC async init from power up, interrupt jitter, branch prediction misses, peripheral async clock drift, cache fill delays, and so on accumulate in the counter at better than us resolution, and make the exact count we reach the dump point differ, even in a supposedly deterministic boot flow.
There appear to be ~12 bits of real entropy in the initial jitter, by the time of the sample point which was at OP-TEE entry from a-t-f.
A new general jitter harvesting API is introduced plat_prng_add_jitter_entropy(). The first time it is called on PRNG init, 16 bits of CNTPCT are used as seed entropy. Thereafter only the two LSB of CNTPCT are harvested each time, being provided as entropy to the PRNG every time it reaches 8 bits.
Signed-off-by: Andy Green <andy@warmcat.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| c640d6ef | 15-Nov-2016 |
Andrew F. Davis <afd@ti.com> |
plat-ti: Enable GIC driver support for DRA7xx
The DRA7xx platform contains a standard GICv2. Enable this driver.
Signed-off-by: Andrew F. Davis <afd@ti.com> Reviewed-by: Jens Wiklander <jens.wiklan
plat-ti: Enable GIC driver support for DRA7xx
The DRA7xx platform contains a standard GICv2. Enable this driver.
Signed-off-by: Andrew F. Davis <afd@ti.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| cb0b5954 | 13-Dec-2016 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add pseudo TA for socket
Adds a pseudo TA sockets using tee-supplicant.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Tested-by: Etienne Carriere <etienne.carriere@linaro.org> (
core: add pseudo TA for socket
Adds a pseudo TA sockets using tee-supplicant.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Tested-by: Etienne Carriere <etienne.carriere@linaro.org> (b2260 pager=y/n) Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey) Tested-by: Etienne Carriere <etienne.carriere@linaro.org> (b2260) Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 2818e645 | 17-Feb-2017 |
Etienne Carriere <etienne.carriere@st.com> |
core: fix traces in selftest pseudo TA
Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissi
core: fix traces in selftest pseudo TA
Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 1cb254df | 17-Feb-2017 |
Etienne Carriere <etienne.carriere@st.com> |
core: allow pseudo TA to not define some handlers
Pseudo TAs that do not need to handle creation, destruction, session opening and closure do not need to define a handler for that.
Update pseudo TA
core: allow pseudo TA to not define some handlers
Pseudo TAs that do not need to handle creation, destruction, session opening and closure do not need to define a handler for that.
Update pseudo TAs where such handlers at not really useful. Keep the handlers for the selftest pseudo TA for its traces.
Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 6fded82e | 17-Feb-2017 |
Etienne Carriere <etienne.carriere@st.com> |
core: allow pseudo TAs to define properties
Before this change, pseudo TAs only supported the multi-session property. This change allows pseudo TAs to define their expected properties.
This change
core: allow pseudo TAs to define properties
Before this change, pseudo TAs only supported the multi-session property. This change allows pseudo TAs to define their expected properties.
This change will be required for the secure data path (SDP) support. It allows a TA to be invoked with parameters referring to SDP memory buffers.
During core init, the pseudo TA support verifies that all registered pseudo TAs conforms with some It allows core to nicely panic if a pseudo TA was badly declared, including UUID overlapping between pseudo TAs.
Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 4d168941 | 19-Oct-2016 |
Andrew F. Davis <afd@ti.com> |
drivers: Add TRNG driver for DRA7
Add driver for the True Random Number Generator (TRNG) available on DRA7xx platforms.
Signed-off-by: Andrew F. Davis <afd@ti.com> Reviewed-by: Joakim Bech <joakim.
drivers: Add TRNG driver for DRA7
Add driver for the True Random Number Generator (TRNG) available on DRA7xx platforms.
Signed-off-by: Andrew F. Davis <afd@ti.com> Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 70aa17b8 | 14-Feb-2017 |
Zhizhou Zhang <zhizhouzhang@asrmicro.com> |
core: mm: fix map_pa2va()'s bad behavior
map->region_size is `unsigned'. In 64-bit machine, ~((vaddr_t)map->region_size - 1)) will discard high 32-bit. results wrong va value.
Signed-off-by: Zhizho
core: mm: fix map_pa2va()'s bad behavior
map->region_size is `unsigned'. In 64-bit machine, ~((vaddr_t)map->region_size - 1)) will discard high 32-bit. results wrong va value.
Signed-off-by: Zhizhou Zhang <zhizhouzhang@asrmicro.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 09eb522b | 14-Feb-2017 |
Zhizhou Zhang <zhizhouzhang@asrmicro.com> |
core: arm64: make exception vector 11-bit aligned
bit 0 to bit 10 in VBAR_EL1 is RES0. We should not rely on RES0 values.
Signed-off-by: Zhizhou Zhang <zhizhouzhang@asrmicro.com> Reviewed-by: Jens
core: arm64: make exception vector 11-bit aligned
bit 0 to bit 10 in VBAR_EL1 is RES0. We should not rely on RES0 values.
Signed-off-by: Zhizhou Zhang <zhizhouzhang@asrmicro.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| b36e639b | 14-Feb-2017 |
Zhizhou Zhang <zhizhouzhang@asrmicro.com> |
core: don't assume VA address size to 32-bit
For some board's PA may larger than 32-bit, in order to create identity memory mapping, we should enlarge TCR.T0SZ. Rename ADDR_SPACE_SIZE to CFG_LPAE_AD
core: don't assume VA address size to 32-bit
For some board's PA may larger than 32-bit, in order to create identity memory mapping, we should enlarge TCR.T0SZ. Rename ADDR_SPACE_SIZE to CFG_LPAE_ADDR_SPACE_SIZE, and move the config entry to core/arch/arm/arm.mk.
Signed-off-by: Zhizhou Zhang <zhizhouzhang@asrmicro.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| 1bb90947 | 11-Feb-2017 |
Sunny Kuo <sunnychingk@gmail.com> |
core: fix phys_to_virt() in thread_std_smc_entry()
enum tee_core_memtypes (MEM_AREA_NSEC_SHM) is required by phys_to_virt(), rather than enum buf_is_attr (CORE_MEM_NSEC_SHM)
Signed-off-by: Sunny Ku
core: fix phys_to_virt() in thread_std_smc_entry()
enum tee_core_memtypes (MEM_AREA_NSEC_SHM) is required by phys_to_virt(), rather than enum buf_is_attr (CORE_MEM_NSEC_SHM)
Signed-off-by: Sunny Kuo <sunnychingk@gmail.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> [jf: update commit message with exact function/type names] Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|