Heiko Stuebner [Thu, 25 Apr 2019 10:40:41 +0000 (12:40 +0200)]
rockchip: rk3328: drop double declaration of entry_point storage
The cpuson_entry_point and cpuson_flags are already declared in
plat_private.h so there is no need to have it again declared in
the local pmu.h, especially as it may cause conflicts when the
other type changes.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Change-Id: I80ae0e23d22f67109ed96f8ac059973b6de2ce87
Heiko Stuebner [Thu, 7 Mar 2019 07:01:37 +0000 (08:01 +0100)]
rockchip: Allow socs with undefined wfe check bits
Some older socs like the rk3288 do not have the necessary registers
to check the wfi/wfe state of the cpu cores. Allow this case an "just"
do an additional delay similar to how the Linux kernel handles smp
right now.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Change-Id: I0f67af388b06b8bfb4a9bac411b4900ac266a77a
Heiko Stuebner [Tue, 5 Mar 2019 12:46:41 +0000 (13:46 +0100)]
rockchip: move pmusram assembler code to a aarch64 subdir
The current code doing power-management from sram is highly
arm64-specific so should live in a corresponding subdirectory
and not in the common area.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Change-Id: I3b79ac26f70fd189d4d930faa6251439a644c5d9
Heiko Stuebner [Thu, 11 Apr 2019 13:26:07 +0000 (15:26 +0200)]
sp_min: allow inclusion of a platform-specific linker script
Similar to bl31 allow sp_min to also include a platform-specific
linker script. This allows for example to place specific code in
other memories of the system, like resume code in sram, while the
main tf-a lives in ddr.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Change-Id: I67642f7bfca036b5d51eb0fa092b479a647a9cc1
Heiko Stuebner [Sat, 2 Mar 2019 10:59:04 +0000 (11:59 +0100)]
sp_min: make sp_min_warm_entrypoint public
Similar to bl31_warm_entrypoint, sp_min-based platforms may need
that for special resume handling.
Therefore move it from the private header to the sp_min platform header.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Change-Id: I40d9eb3ff77cff88d47c1ff51d53d9b2512cbd3e
Heiko Stuebner [Thu, 7 Mar 2019 09:26:19 +0000 (10:26 +0100)]
drivers: ti: uart: add a aarch32 variant
Rockchip re-uses the ti uart console driver and for aarch32 needs a
specific variant, so add it.
There are also aarch32 ti socs, so it may be useful for them as well
at some point.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Change-Id: I31ede7cc7b10347b3691cff051db2b985fd59e17
Antonio Niño Díaz [Wed, 24 Apr 2019 10:48:10 +0000 (10:48 +0000)]
Merge changes from topic "av/console-register" into integration
* changes:
Console: Remove Arm console unregister on suspend
Console: Allow to register multiple times
Antonio Niño Díaz [Wed, 24 Apr 2019 10:04:52 +0000 (10:04 +0000)]
Merge changes from topic "k3-sequence-fix" into integration
* changes:
ti: k3: drivers: ti_sci: Retry message receive on bad sequence ID
ti: k3: drivers: ti_sci: Cleanup sequence ID usage
ti: k3: drivers: sec_proxy: Use direction definitions
ti: k3: drivers: sec_proxy: Fix printf format specifiers
Antonio Niño Díaz [Wed, 24 Apr 2019 10:03:59 +0000 (10:03 +0000)]
Merge changes from topic "k3-cleanups" into integration
* changes:
ti: k3: common: Align elements of map region table
ti: k3: common: Enable SEPARATE_CODE_AND_RODATA by default
ti: k3: common: Remove shared RAM space
ti: k3: common: Drop _ADDRESS from K3_USART_BASE to match other defines
Ambroise Vincent [Wed, 24 Apr 2019 09:34:17 +0000 (10:34 +0100)]
Console: Remove Arm console unregister on suspend
Change-Id: Ie649b3c367a93db057eeaee7e83fa3e43f8c2607
Signed-off-by: Ambroise Vincent <ambroise.vincent@arm.com>
Ambroise Vincent [Thu, 18 Apr 2019 10:36:42 +0000 (11:36 +0100)]
Console: Allow to register multiple times
It removes the need to unregister the console on system suspend.
Change-Id: Ic9311a242a4a9a778651f7e6380bd2fc0964b2ce
Signed-off-by: Ambroise Vincent <ambroise.vincent@arm.com>
Andrew F. Davis [Wed, 10 Apr 2019 16:40:12 +0000 (12:40 -0400)]
ti: k3: drivers: ti_sci: Retry message receive on bad sequence ID
When we get a sequence ID that does not match what we expect then the we
are looking at is not the one we are expecting and so we error out. We
can also assume this message is a stale message left in the queue, in
this case we can read in the next message and check again for our
message. Switch to doing that here. We only retry a set number of times
so we don't lock the system if our message is actually lost and will
never show up.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Change-Id: I6c8186ccc45e646d3ba9d431f7d4c451dcd70c5c
Andrew F. Davis [Wed, 10 Apr 2019 15:49:40 +0000 (11:49 -0400)]
ti: k3: drivers: ti_sci: Cleanup sequence ID usage
The sequence ID can be set with a message to identify it when it is
responded to in the response queue. We assign each message a number and
check for this same number to detect response mismatches.
Start this at 0 and increase it by one for each message sent, even ones
that do not request or wait for a response as one may still be delivered
in some cases and we want to detect this.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Change-Id: I72b4d1ef98bf1c1409d9db9db074af8dfbcd83ea
Andrew F. Davis [Wed, 10 Apr 2019 15:45:19 +0000 (11:45 -0400)]
ti: k3: drivers: sec_proxy: Use direction definitions
The direction of a thread should be explicitly compared to avoid
confusion. Also fixup message wording based on this direction.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Change-Id: Ia3cf9413cd23af476bb5d2e6d70bee15234cbd11
Andrew F. Davis [Wed, 10 Apr 2019 15:38:56 +0000 (11:38 -0400)]
ti: k3: drivers: sec_proxy: Fix printf format specifiers
The ID of a thread is not used outside for printing it out when
something goes wrong. The specifier used is also not consistent.
Instead of storing the thread ID, store its name and print that.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Change-Id: Id137c2f8dfdd5c599e220193344ece903f80af7b
Antonio Niño Díaz [Tue, 23 Apr 2019 13:01:20 +0000 (13:01 +0000)]
Merge "Cortex A9: Fix typo in errata 794073 workaround" into integration
Antonio Niño Díaz [Tue, 23 Apr 2019 12:32:06 +0000 (12:32 +0000)]
Merge "Neoverse N1: Forces cacheable atomic to near" into integration
Antonio Niño Díaz [Tue, 23 Apr 2019 12:31:53 +0000 (12:31 +0000)]
Merge changes from topic "yg/optee" into integration
* changes:
stm32mp1: add OP-TEE support
stm32mp1: fix TZC400 configuration against non-secure DDR
stm32mp1: remove useless define
stm32mp: split stm32mp_io_setup function
Yann Gautier [Fri, 19 Apr 2019 07:41:01 +0000 (09:41 +0200)]
stm32mp1: add OP-TEE support
Support booting OP-TEE as BL32 boot stage and secure runtime
service.
OP-TEE executes in internal RAM and uses a secure DDR area to store
the pager pagestore. Memory mapping and TZC are configured accordingly
prior OP-TEE boot. OP-TEE image is expected in OP-TEE v2 format where
a header file describes the effective boot images. This change
post processes header file content to get OP-TEE load addresses
and set OP-TEE boot arguments.
Change-Id: I02ef8b915e4be3e95b27029357d799d70e01cd44
Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
Yann Gautier [Thu, 18 Apr 2019 13:32:10 +0000 (15:32 +0200)]
stm32mp1: fix TZC400 configuration against non-secure DDR
This change disables secure accesses to non-secure DDR which are useless.
TF-A already maps non-secure memory with non-secure permissions thanks
to the MMU.
This change also corrects some inline comments.
Change-Id: Id4c20c9ee5c95a666dae6b7446ed80baf2d53fb0
Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Nicolas Le Bayon <nicolas.le.bayon@st.com>
Yann Gautier [Mon, 15 Apr 2019 15:44:35 +0000 (17:44 +0200)]
stm32mp1: remove useless define
Remove STM32MP_DDR_SPEED_DFLT that is not used in STM32MP1 TF-A code.
Change-Id: I780cdc4e93a8a9d997d50f67cfc582acd4a353d6
Signed-off-by: Yann Gautier <yann.gautier@st.com>
Yann Gautier [Tue, 23 Apr 2019 11:34:03 +0000 (13:34 +0200)]
stm32mp: split stm32mp_io_setup function
A new static function boot_mmc is created to simplify code maintenance
of stm32mp_io_setup.
Change-Id: I5c416e567e7e174fb1c2b435925a983c9c55fc40
Signed-off-by: Yann Gautier <yann.gautier@st.com>
Antonio Niño Díaz [Tue, 23 Apr 2019 09:24:55 +0000 (09:24 +0000)]
Merge changes from topic "aa-sbsa-watchdog" into integration
* changes:
plat/arm: introduce wrapper functions to setup secure watchdog
drivers/sbsa: add sbsa watchdog driver
Andrew F. Davis [Tue, 22 Jan 2019 20:25:08 +0000 (14:25 -0600)]
ti: k3: common: Align elements of map region table
This is only a formatting change but makes it instantly clear how each
region is set. This is over 80 chars and the MT_RO are not strictly
needed but this section very important to get right so make readability
the priority here.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Change-Id: I2432deda05d4502b3478170296b5da43f26ad8e6
Andrew F. Davis [Tue, 22 Jan 2019 20:16:03 +0000 (14:16 -0600)]
ti: k3: common: Enable SEPARATE_CODE_AND_RODATA by default
This should be more secure and looks a bit cleaner.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Change-Id: Ie5eaf0234b211ba02631cf5eab5faa1402a34461
Andrew F. Davis [Tue, 22 Jan 2019 20:00:16 +0000 (14:00 -0600)]
ti: k3: common: Remove shared RAM space
We don't use this for anything right now, remove it.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Change-Id: I11505d01834f7ff1fdba46fda0acbb3b56fc9b66
Andrew F. Davis [Tue, 22 Jan 2019 19:36:48 +0000 (13:36 -0600)]
ti: k3: common: Drop _ADDRESS from K3_USART_BASE to match other defines
This makes definitions more consistent, plus helps alignment.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Change-Id: I38fcdd76207586613d9934c9dc83d7a347e9e0fc
Louis Mayencourt [Thu, 18 Apr 2019 13:34:11 +0000 (14:34 +0100)]
Neoverse N1: Forces cacheable atomic to near
This patch forces all cacheable atomic instructions to be near, which
improves performance in highly contended parallelized use-cases.
Change-Id: I93fac62847f4af8d5eaaf3b52318c30893e947d3
Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
Louis Mayencourt [Thu, 18 Apr 2019 11:11:25 +0000 (12:11 +0100)]
Cortex A9: Fix typo in errata 794073 workaround
Change-Id: I22568caf83b9846cd7b59241fcec34a395825399
Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
Aditya Angadi [Tue, 16 Apr 2019 05:59:14 +0000 (11:29 +0530)]
plat/arm: introduce wrapper functions to setup secure watchdog
The BL1 stage setup code for ARM platforms sets up the SP805 watchdog
controller as the secure watchdog. But not all ARM platforms use SP805
as the secure watchdog controller.
So introduce two new ARM platform code specific wrapper functions to
start and stop the secure watchdog. These functions then replace the
calls to SP805 driver in common BL1 setup code. All the ARM platforms
implement these wrapper functions by either calling into SP805 driver
or the SBSA watchdog driver.
Change-Id: I1a9a11b124cf3fac2a84f22ca40acd440a441257
Signed-off-by: Aditya Angadi <aditya.angadi@arm.com>
Aditya Angadi [Tue, 16 Apr 2019 06:00:25 +0000 (11:30 +0530)]
drivers/sbsa: add sbsa watchdog driver
Add a driver for configuring the SBSA Generic Watchdog which aids in
the detection of errant system behaviour.
Change-Id: I5a1e7149c69fd8b85be7dfbcf511f431339946f4
Signed-off-by: Aditya Angadi <aditya.angadi@arm.com>
Louis Mayencourt [Tue, 9 Apr 2019 15:29:01 +0000 (16:29 +0100)]
DSU: Implement workaround for errata 798953
Under certain near idle conditions, DSU may miss response transfers on
the ACE master or Peripheral port, leading to deadlock. This workaround
disables high-level clock gating of the DSU to prevent this.
Change-Id: I820911d61570bacb38dd325b3519bc8d12caa14b
Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
Louis Mayencourt [Tue, 9 Apr 2019 13:11:06 +0000 (14:11 +0100)]
DSU: Small fix and reformat on errata framework
Change-Id: I50708f6ccc33059fbfe6d36fd66351f0b894311f
Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
Louis Mayencourt [Fri, 5 Apr 2019 15:25:25 +0000 (16:25 +0100)]
Cortex-A35: Implement workaround for errata 855472
Under specific conditions, the processor might issue an eviction and an
L2 cache clean operation to the interconnect in the wrong order. Set
the CPUACTLR.ENDCCASCI bit to 1 to avoid this.
Change-Id: Ide7393adeae04581fa70eb9173b742049fc3e050
Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
John Tsichritzis [Tue, 16 Apr 2019 11:05:29 +0000 (12:05 +0100)]
Temporarily disable shared Mbed TLS heap for SGM
There is a bug in the shared heap implementation for SGM. Until the bug
is solved, the default implementation is used.
Change-Id: I010911a3f00ed860f742b14daad1d99b9e7ce711
Signed-off-by: John Tsichritzis <john.tsichritzis@arm.com>
Antonio Niño Díaz [Fri, 12 Apr 2019 10:40:35 +0000 (10:40 +0000)]
Merge "Cortex A9:errata 794073 workaround" into integration
Antonio Niño Díaz [Fri, 12 Apr 2019 10:40:15 +0000 (10:40 +0000)]
Merge changes from topic "av/tls-heap" into integration
* changes:
Mbed TLS: Remove weak heap implementation
sgm: Fix bl2 sources
Antonio Niño Díaz [Fri, 12 Apr 2019 10:40:11 +0000 (10:40 +0000)]
Merge changes from topic "pb/tbbr-oid" into integration
* changes:
doc: Clarify cert_create build when USE_TBBR_DEFS=0
plat/sgm: Remove redundant platform_oid.h
Joel Hutton [Wed, 10 Apr 2019 11:52:52 +0000 (12:52 +0100)]
Cortex A9:errata 794073 workaround
On Cortex A9 an errata can cause the processor to violate the rules for
speculative fetches when the MMU is off but branch prediction has not
been disabled. The workaround for this is to execute an Invalidate
Entire Branch Prediction Array (BPIALL) followed by a DSB.
see:http://arminfo.emea.arm.com/help/topic/com.arm.doc.uan0009d/UAN0009_cortex_a9_errata_r4.pdf
for more details.
Change-Id: I9146c1fa7563a79f4e15b6251617b9620a587c93
Signed-off-by: Joel Hutton <Joel.Hutton@arm.com>
Antonio Niño Díaz [Fri, 12 Apr 2019 09:38:03 +0000 (09:38 +0000)]
Merge changes from topic "renesas-bsp203" into integration
* changes:
rcar_gen3: plat: Update IPL and Secure Monitor Rev2.0.3
rcar_gen3: drivers: Change to restore timer counter value at resume
rcar_gen3: drivers: pwrc: Add DBSC4 setting before self-refresh mode
rcar_gen3: plat: Update IPL and Secure Monitor Rev2.0.2
rcar_gen3: drivers: ddr: Update DDR setting rev.0.35
rcar_gen3: drivers: qos: change subslot cycle
rcar_gen3: drivers: board: Add new board revision for H3ULCB
rcar_gen3: plat: Change periodic write DQ training option.
Antonio Niño Díaz [Fri, 12 Apr 2019 09:32:22 +0000 (09:32 +0000)]
Merge "Improvements in Readme" into integration
Antonio Niño Díaz [Fri, 12 Apr 2019 09:32:08 +0000 (09:32 +0000)]
Merge "hikey960: Fix race condition between hotplug and idles" into integration
Ambroise Vincent [Wed, 10 Apr 2019 11:50:27 +0000 (12:50 +0100)]
Mbed TLS: Remove weak heap implementation
The implementation of the heap function plat_get_mbedtls_heap() becomes
mandatory for platforms supporting TRUSTED_BOARD_BOOT.
The shared Mbed TLS heap default weak function implementation is
converted to a helper function get_mbedtls_heap_helper() which can be
used by the platforms for their own function implementation.
Change-Id: Ic8f2994e25e3d9fcd371a21ac459fdcafe07433e
Signed-off-by: Ambroise Vincent <ambroise.vincent@arm.com>
John Tsichritzis [Thu, 11 Apr 2019 16:23:32 +0000 (17:23 +0100)]
Improvements in Readme
- Fix broken link to the issue tracker.
- Add contents section to make navigation easier throughout the page.
- Move the link to documentation contents near the top. Where it was
before could be missed and documentation might seem inaccessible.
Change-Id: I502e4fc0fd312459cda351d30a8781c221625724
Signed-off-by: John Tsichritzis <john.tsichritzis@arm.com>
Ambroise Vincent [Thu, 11 Apr 2019 12:45:18 +0000 (13:45 +0100)]
sgm: Fix bl2 sources
The weak version of plat_get_mbedtls_heap() was being used.
Change-Id: I6da331a098dd1af5bb64729d5b914cfb74b8869e
Signed-off-by: Ambroise Vincent <ambroise.vincent@arm.com>
Paul Beesley [Thu, 11 Apr 2019 12:35:26 +0000 (13:35 +0100)]
doc: Clarify cert_create build when USE_TBBR_DEFS=0
The user guide documentation for the cert_create tool needs to
mention that a platform must have a platform_oid.h header file
in order to successfully build the cert_create tool when
USE_TBBR_DEFS is 0.
Change-Id: I77f86a022d207e88a79c97741be3eafbfa0c86f1
Signed-off-by: Paul Beesley <paul.beesley@arm.com>
Paul Beesley [Thu, 11 Apr 2019 12:27:39 +0000 (13:27 +0100)]
plat/sgm: Remove redundant platform_oid.h
This file is used when building the cert_create tool without using
the 'standard' set of Arm OID values as defined in the TBBR
specification (see tbbr_oid.h). This configuration is enabled by
setting USE_TBBR_DEFS to 0 during build.
At the moment this will fail because the header file included by
this file was removed in commit
bb41eb7a9dc3 ("cert: move
platform_oid.h to include/tools_share for all platforms"). For
the SGM platform this means that there is no current use for
this file.
Change-Id: I3c82983ada62330f1ab6be6d6c0cf489adabae7b
Signed-off-by: Paul Beesley <paul.beesley@arm.com>
Toshiyuki Ogasahara [Fri, 22 Mar 2019 07:15:10 +0000 (16:15 +0900)]
rcar_gen3: plat: Update IPL and Secure Monitor Rev2.0.3
Update the revision number in the revision management file.
Signed-off-by: Toshiyuki Ogasahara <toshiyuki.ogasahara.bo@hitachi.com>
Signed-off-by: Yoshifumi Hosoya <yoshifumi.hosoya.wj@renesas.com>
Change-Id: If8918efad0fcbe6f91b66c0c7438406b1d4fb759
Toshiyuki Ogasahara [Fri, 22 Mar 2019 07:14:00 +0000 (16:14 +0900)]
rcar_gen3: drivers: Change to restore timer counter value at resume
Changed to save and restore cntpct_el0 using memory mapped
register for generic timer when System Suspend and Resume.
Reported by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Signed-off-by: Toshiyuki Ogasahara <toshiyuki.ogasahara.bo@hitachi.com>
Signed-off-by: Yoshifumi Hosoya <yoshifumi.hosoya.wj@renesas.com>
Change-Id: I40fd9f5434c4d52b320cd1d20322b9b8e4e67155
Yoshifumi Hosoya [Fri, 15 Mar 2019 14:19:28 +0000 (23:19 +0900)]
rcar_gen3: drivers: pwrc: Add DBSC4 setting before self-refresh mode
Very rarely, LPDDR4 power consumption may not decrease
In self-refresh mode.
This patch fixes the DBSC4 self-refresh mode sequence.
Signed-off-by: Yoshifumi Hosoya <yoshifumi.hosoya.wj@renesas.com>
Signed-off-by: Kenji Miyazawa <kenji.miyazawa.xt@renesas.com>
Signed-off-by: Chiaki Fujii <chiaki.fujii.wj@renesas.com>
Change-Id: I838fa0892b1caf1ecd3f04538b3427e7d971ef59
Toshiyuki Ogasahara [Mon, 11 Mar 2019 06:18:32 +0000 (15:18 +0900)]
rcar_gen3: plat: Update IPL and Secure Monitor Rev2.0.2
Update the revision number in the revision management file.
Signed-off-by: Toshiyuki Ogasahara <toshiyuki.ogasahara.bo@hitachi.com>
Signed-off-by: Yoshifumi Hosoya <yoshifumi.hosoya.wj@renesas.com>
Change-Id: I239f4d9f58d38515a49fa1a22cece48b59710d15
Chiaki Fujii [Fri, 1 Mar 2019 11:28:55 +0000 (20:28 +0900)]
rcar_gen3: drivers: ddr: Update DDR setting rev.0.35
[IPL/DDR]
- Update DDR setting rev.0.35.
Signed-off-by: Chiaki Fujii <chiaki.fujii.wj@renesas.com>
Change-Id: I2b936ca8621ca320cc97353f99240da5f24781f7
Yoshifumi Hosoya [Mon, 11 Mar 2019 06:15:25 +0000 (15:15 +0900)]
rcar_gen3: drivers: qos: change subslot cycle
Subslot cycle from 132 to 126 as default setting.
Subslot cycle from 264 to 252.
[IPL/QoS]
- Update H3 Ver.2.0 QoS setting rev.0.21.
- Update H3 Ver.3.0 QoS setting rev.0.11.
- Update M3 Ver.1.1 QoS setting rev.0.19.
- Update M3 Ver.3.0 QoS setting rev.0.02.
- Update M3N Ver.1.1 QoS setting rev.0.09.
Signed-off-by: Yoshifumi Hosoya <yoshifumi.hosoya.wj@renesas.com>
Change-Id: I52b1bf880163ce03065dc8933d7f193e45cfd9a5
Yusuke Goda [Mon, 11 Mar 2019 06:09:39 +0000 (15:09 +0900)]
rcar_gen3: drivers: board: Add new board revision for H3ULCB
Board Revision[2:0]
3'b000 Rev1.0 OB
3'b001 Rev1.0 CE
3'b010 Rev2.0 [New]
Signed-off-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
Change-Id: I0f109cddc95eca78aea34c7149e70f14e2f1620b
Toshiyuki Ogasahara [Mon, 11 Mar 2019 06:03:00 +0000 (15:03 +0900)]
rcar_gen3: plat: Change periodic write DQ training option.
Periodic write DQ training available as default.
Signed-off-by: Toshiyuki Ogasahara <toshiyuki.ogasahara.bo@hitachi.com>
Signed-off-by: Yoshifumi Hosoya <yoshifumi.hosoya.wj@renesas.com>
Change-Id: I649cfe538e4e2c7e19145ce7d1938ce4361b2529
Wei Yu [Sun, 7 Apr 2019 03:29:28 +0000 (11:29 +0800)]
hikey960: Fix race condition between hotplug and idles
From the hotplug testing on Hikey960, in some case cores fail to become
online in the system. When some cores are hotplugged off, if other
cores in the same cluster enter into CPU idle states at the meantime,
the cluster will be powered off. This introduces the state machine
malfunction in the power controller, thus when hotplug on the core
afterwards, it fails to boot up the core because the power controller
thinks the cluster is powered on.
This patch is to avoid race condition between hotplug and idles by
preventing cluster power off when some of cores in the cluster are
hotplugged off, if all cores in the same cluster are hotplugged off,
the cluster can be powered off.
Change-Id: Ib2feeb093357c70409a3536cb4f9da9b504fdcbe
Signed-off-by: Wei Yu <yuwei3@hisilicon.com>
Signed-off-by: Leo Yan <leo.yan@linaro.org>
Joel Hutton [Tue, 9 Apr 2019 13:52:59 +0000 (14:52 +0100)]
cache_helpers.s:fix mixed tabs and spaces
Change-Id: I8b7c7888d09200410e1a1c11a070c94dd8013ea7
Signed-off-by: Joel Hutton <Joel.Hutton@Arm.com>
Joel Hutton [Tue, 9 Apr 2019 13:45:34 +0000 (14:45 +0100)]
Add note about erratum 814220 for A7
On Cortex-A7 an L2 set/way cache maintenance operation can overtake
an L1 set/way cache maintenance operation. The mitigation for this is
to use a `DSB` instruction before changing cache. The cache cleaning
code happens to already be doing this, so only a comment was added.
Change-Id: Ia1ffb8ca8b6bbbba422ed6f6818671ef9fe02d90
Signed-off-by: Joel Hutton <Joel.Hutton@Arm.com>
Antonio Niño Díaz [Tue, 9 Apr 2019 12:31:09 +0000 (12:31 +0000)]
Merge "aarch32: Allow compiling with soft-float toolchain" into integration
Antonio Niño Díaz [Tue, 9 Apr 2019 10:50:59 +0000 (10:50 +0000)]
Merge "services/spm: Fix service UUID lookup" into integration
Antonio Niño Díaz [Tue, 9 Apr 2019 10:50:52 +0000 (10:50 +0000)]
Merge "cpus: Fix Cortex-A12 MIDR mask" into integration
Paul Beesley [Mon, 8 Apr 2019 14:24:43 +0000 (15:24 +0100)]
services/spm: Fix service UUID lookup
The spm_sp_get_by_uuid() function is used to look up the secure
partition that provides a given service.
Within this function, memcmp() is used to compare the service
UUIDs but it uses the size of the rdsvc->uuid pointer instead of
the size of its content (missing dereference). This means that only
a partial comparison is performed as UUIDs are 128 bits in length and
rdsvc->uuid is a uint32_t typed pointer.
Instead, use the size of the array pointed to by the svc_uuid parameter,
which will be the full 128 bits, for the comparison.
Change-Id: I258fb0cca3bf19f97b8f2a4c133981647cd050e4
Signed-off-by: Paul Beesley <paul.beesley@arm.com>
Antonio Niño Díaz [Tue, 9 Apr 2019 09:21:51 +0000 (09:21 +0000)]
Merge "Add support for Cortex-A76AE CPU" into integration
Joel Hutton [Tue, 9 Apr 2019 08:25:55 +0000 (09:25 +0100)]
Checkpatch: Style fix
Change-Id: I0cb9f0db1ef3491f55c038a10db5a88d37e89697
Signed-off-by: Joel Hutton <Joel.Hutton@Arm.com>
Antonio Niño Díaz [Mon, 8 Apr 2019 14:15:33 +0000 (14:15 +0000)]
Merge changes from topic "jh/cotdesc" into integration
* changes:
Document changes to auth-framework
cot-desc: optimise memory further
Reduce memory needed for CoT description
Alexei Fedorov [Thu, 4 Apr 2019 15:26:34 +0000 (16:26 +0100)]
Add support for Cortex-A76AE CPU
Change-Id: I0a81f4ea94d41245cd5150de341b51fc70babffe
Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Joel Hutton [Fri, 22 Feb 2019 16:40:16 +0000 (16:40 +0000)]
Document changes to auth-framework
The data structures in the auth-framework were changed by the previous
patch, and need to be updated.
Change-Id: Icfad2ac688d03d32aa93e45f930a375abbc164a9
Signed-off-by: Joel Hutton <Joel.Hutton@Arm.com>
Joel Hutton [Mon, 11 Mar 2019 11:37:38 +0000 (11:37 +0000)]
cot-desc: optimise memory further
This changes the auth_img_desc_t struct to have pointers to struct
arrays instead of struct arrays. This saves memory as many of these
were never used, and can be NULL pointers. Note the memory savings are
only when these arrays are not initialised, as it is assumed these
arrays are fixed length. A possible future optimisation could allow for
variable length.
memory diff:
bl1: bl2:
text text
-12 -12
bss bss
-1463 0
data data
-56 -48
rodata rodata
-5688 -2592
total total
-7419 -2652
Change-Id: I8f9bdedf75048b8867f40c56381e3a6dc6402bcc
Signed-off-by: Joel Hutton <Joel.Hutton@Arm.com>
Joel Hutton [Wed, 20 Feb 2019 11:56:46 +0000 (11:56 +0000)]
Reduce memory needed for CoT description
When Trusted Board Boot is enabled, we need to specify the Chain of
Trust (CoT) of the BL1 and BL2 images. A CoT consists of an array
of image descriptors. The authentication module assumes that each
image descriptor in this array is indexed by its unique image
identifier. For example, the Trusted Boot Firmware Certificate has to
be at index [TRUSTED_BOOT_FW_CERT_ID].
Unique image identifiers may not necessarily be consecutive. Also,
a given BL image might not use all image descriptors. For example, BL1
does not need any of the descriptors related to BL31. As a result, the
CoT array might contain holes, which unnecessarily takes up space in
the BL binary.
Using pointers to auth_img_desc_t structs (rather than structs
themselves) means these unused elements only use 1 pointer worth of
space, rather than one struct worth of space. This patch also changes
the code which accesses this array to reflect the change to pointers.
Image descriptors not needed in BL1 or BL2 respectively are also
ifdef'd out in this patch. For example, verifying the BL31 image is
the responsibility of BL2 so BL1 does not need any of the data
structures describing BL31.
memory diff:
bl1: bl2:
text text
-20 -20
bss bss
-1463 0
data data
-256 -48
rodata rodata
-5240 -1952
total total
-6979 -2020
Change-Id: I163668b174dc2b9bbb183acec817f2126864aaad
Signed-off-by: Joel Hutton <Joel.Hutton@Arm.com>
Antonio Niño Díaz [Mon, 8 Apr 2019 13:06:32 +0000 (13:06 +0000)]
Merge "Fix restoration of PAuth context" into integration
Heiko Stuebner [Fri, 5 Apr 2019 12:44:33 +0000 (14:44 +0200)]
cpus: Fix Cortex-A12 MIDR mask
The Cortex-A12's primary part number is 0xC0D not 0xC0C, so
fix that to make the A12's cpu operations findable.
Change-Id: I4440a039cd57a2fe425fd8a8ec5499ca8e895e31
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Jacky Bai [Mon, 8 Apr 2019 01:36:09 +0000 (09:36 +0800)]
plat: imx8m: remove deprecated code include
The 'drivers/console/aarch64/console.S' is not needed,
so remove it from build to fix the build error when
'ERROR_DEPRECATED'set.
Change-Id: Id047a355f82fd33298b7e2b49eff289d28eb5b56
Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Alexei Fedorov [Fri, 5 Apr 2019 12:44:30 +0000 (13:44 +0100)]
Fix restoration of PAuth context
Replace call to pauth_context_save() with pauth_context_restore()
in case of unknown SMC call.
Change-Id: Ib863d979faa7831052b33e8ac73913e2f661f9a0
Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Manish Pandey [Mon, 1 Apr 2019 14:27:18 +0000 (15:27 +0100)]
aarch32: Allow compiling with soft-float toolchain
ARMv7 and Cortex-A32(ARMv8/aarch32) uses "arm-linux-gnueabi" toolchain which
has both soft-float and hard-float variants and so there could be scenarios
where soft-float toolchain is used.Even though TF-A documentation recommends
to use hard-float toolchain for aarch32 but there are external projects where
we cannot mandate the selection of toolchain and for those projects at least
the build should not fail.
Current TF-A source fails to build with soft-float toolchain because assembler
does not recognizes "vmsr" instruction which is required to enable floating
point unit.
To avoid this piece of code being compiled with soft-float toolchain add
predefined macro guard " __SOFTFP__" exposed by soft-float toolchain.
Change-Id: I76ba40906a8d622dcd476dd36ab4d277a925996c
Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Paul Beesley [Mon, 11 Feb 2019 17:58:21 +0000 (17:58 +0000)]
doc: Fix heading levels for changelog
The change-log.rst file does not use the same symbols
as the other documents when organising its headings,
sub-headings and so on. In order to compile these
documents together with Sphinx, forming a top-level
index and a consistent structure, it is necessary to
normalise these.
Change-Id: Ib4620ff03a9e76fec9e36e95549016c7b3fe12bb
Signed-off-by: Paul Beesley <paul.beesley@arm.com>
Antonio Niño Díaz [Thu, 4 Apr 2019 08:29:22 +0000 (09:29 +0100)]
Merge pull request #1920 from ambroise-arm/av/deprecated
Remove deprecated interfaces
Ambroise Vincent [Thu, 28 Mar 2019 09:01:18 +0000 (09:01 +0000)]
Makefile: remove extra include paths in INCLUDES
Now it is needed to use the full path of the common header files.
Commit
09d40e0e0828 ("Sanitise includes across codebase") provides more
information.
Change-Id: Ifedc79d9f664d208ba565f5736612a3edd94c647
Signed-off-by: Ambroise Vincent <ambroise.vincent@arm.com>
Ambroise Vincent [Wed, 27 Mar 2019 16:06:02 +0000 (16:06 +0000)]
Remove deprecated interfaces
Change-Id: I14fcabbdfd53153d1d5f187f6f8b23a045794408
Signed-off-by: Ambroise Vincent <ambroise.vincent@arm.com>
Ambroise Vincent [Wed, 27 Mar 2019 16:03:24 +0000 (16:03 +0000)]
tzc: remove deprecated types
Types tzc_action_t and tzc_region_attributes_t are deprecated.
Change-Id: Ieefeb8521a0e1130f39d09b5c0d2728f05084773
Signed-off-by: Ambroise Vincent <ambroise.vincent@arm.com>
Ambroise Vincent [Wed, 27 Mar 2019 15:45:35 +0000 (15:45 +0000)]
Console: remove deprecated finish_console_register
The old version of the macro is deprecated.
Commit
cc5859ca19ff ("Multi-console: Deprecate the
`finish_console_register` macro") provides more details.
Change-Id: I3d1cdf6496db7d8e6cfbb5804f508ff46ae7e67e
Signed-off-by: Ambroise Vincent <ambroise.vincent@arm.com>
Ambroise Vincent [Wed, 27 Mar 2019 13:48:15 +0000 (13:48 +0000)]
Remove deprecated plat_crash_console_*
The default implementations are defined in crash_console_helpers.S. The
platforms have to define plat_crash_console_*.
Implemented placeholders for platforms that were missing helpers.
Change-Id: Iea60b6f851956916e421dfd8c34a62d96eb9148e
Signed-off-by: Ambroise Vincent <ambroise.vincent@arm.com>
Antonio Niño Díaz [Wed, 3 Apr 2019 13:06:21 +0000 (14:06 +0100)]
Merge pull request #1917 from marex/arm/master/v3meagle-v2.0.1
rcar_gen3: plat: Add R-Car V3M support
Antonio Niño Díaz [Wed, 3 Apr 2019 10:20:47 +0000 (11:20 +0100)]
Merge pull request #1916 from antonio-nino-diaz-arm/an/spm-xlat
SPM: Some improvements to xlat handling code
Antonio Niño Díaz [Wed, 3 Apr 2019 10:20:38 +0000 (11:20 +0100)]
Merge pull request #1918 from lmayencourt/lm/contrib_guidelines
doc: Update contribution guidelines
Antonio Niño Díaz [Wed, 3 Apr 2019 10:20:21 +0000 (11:20 +0100)]
Merge pull request #1915 from repk/gxl
Add support for Amlogic s905x (GXL)
Antonio Nino Diaz [Wed, 27 Mar 2019 13:45:52 +0000 (13:45 +0000)]
SPM: Adjust size of virtual address space per partition
Rather than using a fixed virtual address space size, read all regions
in the resource description of each partition and restrict the virtual
address space size to the one the partition actually needs.
This also allows SPM to take advantage of the extension ARMv8.4-TTST if
the virtual address space size is small enough.
Change-Id: I8646aa95e659136b58b44b040364cdee631f7e82
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
Antonio Nino Diaz [Wed, 27 Mar 2019 13:04:46 +0000 (13:04 +0000)]
SPM: Refactor xlat context creation
Right now the virtual address space is fixed to
PLAT_VIRT_ADDR_SPACE_SIZE, so all base translation tables are the same
size and need the same alignment. The current code allocates the exact
space needed by this initial table.
However, a following patch is going to allow each partition to choose
the size of its address space based on the memory regions defined in
their resource description, so it isn't possible to determine this at
build time. As this optimization no longer applies, it has to be
removed.
Change-Id: Ia8d19f4981e1017e4ffe0ba136de73d701044cb0
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
Antonio Nino Diaz [Wed, 27 Mar 2019 11:10:31 +0000 (11:10 +0000)]
SPM: Move shim layer to TTBR1_EL1
This gives each Secure Partition complete freedom on its address space.
Previously, the memory used by the exception vectors was reserved and
couldn't be used. Also, it always had to be mapped, forcing SPM to
generate translation tables that included the exception vectors as well
as the Partition memory regions. With this change, partitions can reduce
their address space size easily.
Change-Id: I67fb5e9bdf2870b73347f23bff702fab0a8f8711
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
Louis Mayencourt [Fri, 22 Mar 2019 11:47:22 +0000 (11:47 +0000)]
doc: Update contribution guidelines
Update the documentation for trustedfirmware.org migration
Change-Id: Ibb7052b0becbec3326164f1503806ca2c2fd4dcc
Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
Remi Pommarel [Mon, 1 Apr 2019 09:34:09 +0000 (11:34 +0200)]
plat: gxl: Add documentation on building GXL image
Also adds a maintainer for GXL.
Signed-off-by: Remi Pommarel <repk@triplefau.lt>
Remi Pommarel [Sat, 30 Mar 2019 14:58:45 +0000 (15:58 +0100)]
meson/gxl: Add tool to create bl31 bootable images
GXL platforms need to have a specific header at the beginning of bl31
image to be able to boot. This adds a tool to create that and calls it at
build time.
Signed-off-by: Remi Pommarel <repk@triplefau.lt>
Remi Pommarel [Thu, 28 Mar 2019 19:55:13 +0000 (20:55 +0100)]
meson/gxl: Configure and boot SCP
On Amlogic gxl (s905x) SOC, in order to use SCP, bl31 has to send bl30
and bl301 firmware along with their SHA256 hash over scpi.
Signed-off-by: Remi Pommarel <repk@triplefau.lt>
Remi Pommarel [Thu, 28 Mar 2019 22:34:18 +0000 (23:34 +0100)]
meson/gxl: Add support for SHA256 DMA engine
In order to configure and boot SCP, BL31 has to compute and send
the SHA-256 of the firmware data via scpi. Luckily Amlogic GXL SOC
has a DMA facility that could be used to offload SHA-256
computations. This adds basic support of this hardware SHA-256
engine.
Signed-off-by: Remi Pommarel <repk@triplefau.lt>
Antonio Nino Diaz [Wed, 5 Dec 2018 00:09:30 +0000 (00:09 +0000)]
meson/gxl: Initial port of Amlogic Meson S905x (GXL)
The Amlogic Meson S905x is a SoC with a quad core Arm Cortex-A53 running
at 1.5Ghz. It also contains a Cortex-M3 used as SCP.
This port is a minimal implementation of BL31 capable of booting
mainline U-Boot and Linux:
- Partial SCPI support.
- Basic PSCI support (CPU_ON, SYSTEM_RESET, SYSTEM_OFF).
- GICv2 driver set up.
- Basic SIP services (read efuse data, enable/disable JTAG).
This port has been tested on a lepotato.
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
Signed-off-by: Remi Pommarel <repk@triplefau.lt>
Antonio Nino Diaz [Fri, 29 Mar 2019 13:48:50 +0000 (13:48 +0000)]
SPM: Ignore empty regions in resource description
Instead of letting the code run until another error is reached, return
early.
Change-Id: I6277a8c65101d3e39b0540099c2a3063584a7dbd
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
Valentine Barshak [Mon, 29 Oct 2018 23:06:17 +0000 (02:06 +0300)]
rcar_gen3: plat: Add R-Car V3M support
Add R-Car V3M support. This is based on the original
V3M support patch for Yocto v2.23.1 by Vladimir Barinov.
Signed-off-by: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
Signed-off-by: Valentine Barshak <valentine.barshak@cogentembedded.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
---
Marek: Update on top of mainline ATF/master
Antonio Niño Díaz [Tue, 2 Apr 2019 13:16:27 +0000 (14:16 +0100)]
Merge pull request #1914 from marex/arm/master/d3draak-v2.0.1
Arm/master/d3draak v2.0.1
Marek Vasut [Thu, 14 Jun 2018 04:26:45 +0000 (06:26 +0200)]
rcar_gen3: drivers: qos: Add D3 QoS tables
Add QoS tables for R-Car D3 SoC.
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Marek Vasut [Thu, 14 Jun 2018 04:26:45 +0000 (06:26 +0200)]
rcar_gen3: drivers: pfc: Add D3 PFC tables
Add PFC tables for R-Car D3 SoC.
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Marek Vasut [Thu, 14 Jun 2018 04:26:45 +0000 (06:26 +0200)]
rcar_gen3: drivers: ddr_a: Add D3 DDR init
Add R-Car D3 DDR initialization code. The code is in staging and needs
cleanup, and possibly can even be merged with the E3 init code.
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>