2016-02-18 |
Add support for %p in tf_printf()
...
This patch adds support for the `%p` format specifier in tf_printf()
following the example of the printf implementation of the stdlib used
in the trusted firmware.
Fixes ARM-software/tf-issues#292
Change-Id: I0b3230c783f735d3e039be25a9405f00023420da
Antonio Nino Diaz
committed
on 18 Feb 2016
|
2016-02-11 |
Merge pull request #517 from soby-mathew/sm/gic_set_prio_fix
...
Fix IPRIORITY and ITARGET accessors in GIC drivers
danh-arm
committed
on 11 Feb 2016
|
Merge pull request #513 from pgeorgi/configurable-timestamp
...
build system: allow overriding the build's timestamp
danh-arm
committed
on 11 Feb 2016
|
2016-02-09 |
Move private APIs in gic_common.h to a private header
...
This patch moves the private GIC common accessors from `gic_common.h` to
a new private header file `gic_common_private.h`. This patch also adds
additional comments to GIC register accessors to highlight the fact
that some of them access register values that correspond to multiple
interrupt IDs. The convention used is that the `set`, `get` and `clr`
accessors access and modify the values corresponding to a single interrupt
ID whereas the `read` and `write` GIC register accessors access the raw
GIC registers and it could correspond to multiple interrupt IDs depending
on the register accessed.
Change-Id: I2643ecb2533f01e3d3219fcedfb5f80c120622f9
Soby Mathew
committed
on 9 Feb 2016
|
Fix GIC_IPRIORITYR setting in new drivers
...
The code to set the interrupt priority for secure interrupts in the
new GICv2 and GICv3 drivers is incorrect. The setup code to configure
interrupt priorities of secure interrupts, one interrupt at a time, used
gicd_write_ipriorityr()/gicr_write_ipriority() function affecting
4 interrupts at a time. This bug did not manifest itself because all the
secure interrupts were configured to the highest secure priority(0) during
cold boot and the adjacent non secure interrupt priority would be configured
later by the normal world. This patch introduces new accessors,
gicd_set_ipriorityr() and gicr_set_ipriorityr(), for configuring priority
one interrupt at a time and fixes the the setup code to use the new
accessors.
Fixes ARM-software/tf-issues#344
Change-Id: I470fd74d2b7fce7058b55d83f604be05a27e1341
Soby Mathew
committed
on 9 Feb 2016
|
Fix race in GIC IPRIORITY and ITARGET accessors
...
GICD_IPRIORITYR and GICD_ITARGETSR specifically support byte addressing
so that individual interrupt priorities can be atomically updated by
issuing a single byte write. The previous implementation of
gicd_set_ipriority() and gicd_set_itargetsr() used 32-bit register
accesses, modifying values for 4 interrupts at a time, using a
read-modify-write approach. This potentially may cause concurrent changes
by other CPUs to the adjacent interrupts to be corrupted. This patch fixes
the issue by modifying these accessors to use byte addressing.
Fixes ARM-software/tf-issues#343
Change-Id: Iec28b5f5074045b00dfb8d5f5339b685f9425915
Soby Mathew
committed
on 9 Feb 2016
|
Merge pull request #516 from vikramkanigiri/vk/ccn-fix-dvm-entry
...
Bug fix: Rectify logic to enter or exit from DVM domain
danh-arm
committed
on 9 Feb 2016
|
Merge pull request #515 from soby-mathew/sm/gcc_false_positive
...
PSCI: Resolve GCC static analysis false positive
danh-arm
committed
on 9 Feb 2016
|
Merge pull request #514 from sandrine-bailleux/sb/a53-a57-disable-non-temporal-hint
...
Disable non-temporal hint on Cortex-A53/57
danh-arm
committed
on 9 Feb 2016
|
2016-02-08 |
Bug fix: Rectify logic to enter or exit from DVM domain
...
Currently, `ccn_snoop_dvm_domain_common()` is responsible for providing
a bitmap of HN-F and HN-I nodes in the interconnect. There is a request
node (RN) corresponding to the master interface (e.g. cluster) that needs
to be added or removed from the snoop/DVM domain. This request node is
removed from or added to each HN-F or HN-I node present in the bitmap
depending upon the type of domain.
The above logic is incorrect when participation of a master interface in
the DVM domain has to be managed. The request node should be removed
from or added to the single Miscellaneous Node (MN) in the system
instead of each HN-I node.
This patch fixes this by removing the intermediate
`ccn_snoop_dvm_domain_common()` and instead reads the MN registers to
get the needed node Id bitmap for snoop(HN-F bitmap) and DVM(MN bitmap)
domains.
Additionally, it renames `MN_DDC_SET_OFF` to `MN_DDC_SET_OFFSET` to
be inline with other macros.
Change-Id: Id896046dd0ccc5092419e74f8ac85e31b104f7a4
Vikram Kanigiri
committed
on 8 Feb 2016
|
PSCI: Resolve GCC static analysis false positive
...
When BL31 is compiled at `-O3` optimization level using Linaro GCC 4.9
AArch64 toolchain, it reports the following error:
```
services/std_svc/psci/psci_common.c: In function 'psci_do_state_coordination':
services/std_svc/psci/psci_common.c:220:27: error: array subscript is above
array bounds [-Werror=array-bounds]
psci_req_local_pwr_states[pwrlvl - 1][cpu_idx] = req_pwr_state;
^
```
This error is a false positive and this patch resolves the error by asserting
the array bounds in `psci_do_state_coordination()`.
Fixes ARM-software/tf-issues#347
Change-Id: I3584ed7b2e28faf455b082cb3281d6e1d11d6495
Soby Mathew
committed
on 8 Feb 2016
|
Cortex-Axx: Unconditionally apply CPU reset operations
...
In the Cortex-A35/A53/A57 CPUs library code, some of the CPU specific
reset operations are skipped if they have already been applied in a
previous invocation of the reset handler. This precaution is not
required, as all these operations can be reapplied safely.
This patch removes the unneeded test-before-set instructions in
the reset handler for these CPUs.
Change-Id: Ib175952c814dc51f1b5125f76ed6c06a22b95167
Sandrine Bailleux
committed
on 8 Feb 2016
|
Disable non-temporal hint on Cortex-A53/57
...
The LDNP/STNP instructions as implemented on Cortex-A53 and
Cortex-A57 do not behave in a way most programmers expect, and will
most probably result in a significant speed degradation to any code
that employs them. The ARMv8-A architecture (see Document ARM DDI
0487A.h, section D3.4.3) allows cores to ignore the non-temporal hint
and treat LDNP/STNP as LDP/STP instead.
This patch introduces 2 new build flags:
A53_DISABLE_NON_TEMPORAL_HINT and A57_DISABLE_NON_TEMPORAL_HINT
to enforce this behaviour on Cortex-A53 and Cortex-A57. They are
enabled by default.
The string printed in debug builds when a specific CPU errata
workaround is compiled in but skipped at runtime has been
generalised, so that it can be reused for the non-temporal hint use
case as well.
Change-Id: I3e354f4797fd5d3959872a678e160322b13867a1
Sandrine Bailleux
committed
on 8 Feb 2016
|
2016-02-06 |
build system: allow overriding the build's timestamp
...
This allows reproducible builds (same source and same compiler produce
bit-identical results) and also allows coordinating the timestamp across
multiple projects, eg. with another firmware.
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Patrick Georgi
committed
on 6 Feb 2016
|
2016-02-01 |
Merge pull request #511 from soby-mathew/sm/psci_on_race_v2
...
Fix PSCI CPU ON race when setting state to ON_PENDING
danh-arm
committed
on 1 Feb 2016
|
Merge pull request #508 from soby-mathew/sm/debug_xlat
...
Use tf_printf() for debug logs from xlat_tables.c
danh-arm
committed
on 1 Feb 2016
|
Merge pull request #504 from sandrine-bailleux/sb/fix-doc-mmap
...
Porting Guide: Clarify identity-mapping requirement
danh-arm
committed
on 1 Feb 2016
|
Merge pull request #503 from sandrine-bailleux/sb/clarify-doc-el3-payloads
...
Clarify EL3 payload documentation
danh-arm
committed
on 1 Feb 2016
|
Merge pull request #501 from jcastillo-arm/jc/tf-issues/300
...
Disable PL011 UART before configuring it
danh-arm
committed
on 1 Feb 2016
|
Fix PSCI CPU ON race when setting state to ON_PENDING
...
When a CPU is powered down using PSCI CPU OFF API, it disables its caches
and updates its `aff_info_state` to OFF. The corresponding cache line is
invalidated by the CPU so that the update will be observed by other CPUs
running with caches enabled. There is a possibility that another CPU
which has been trying to turn ON this CPU via PSCI CPU ON API,
has already seen the update to `aff_info_state` and proceeds to update
the state to ON_PENDING prior to the cache invalidation. This may result
in the update of the state to ON_PENDING being discarded.
This patch fixes this issue by making sure that the update of `aff_info_state`
to ON_PENDING sticks by reading back the value after the cache flush and
retrying it if not updated. The patch also adds a dsbish() to
`psci_do_cpu_off()` to ensure ordering of the update to `aff_info_state`
prior to cache line invalidation.
Fixes ARM-software/tf-issues#349
Change-Id: I225de99957fe89871f8c57bcfc243956e805dcca
Soby Mathew
committed
on 1 Feb 2016
|
Merge pull request #497 from mtk09422/spm-v3
...
update SPM/DCM/MTCMOS related code for power control logic
danh-arm
committed
on 1 Feb 2016
|
Use tf_printf() for debug logs from xlat_tables.c
...
The debug prints used to debug translation table setup in xlat_tables.c
used the `printf()` standard library function instead of the stack
optimized `tf_printf()` API. DEBUG_XLAT_TABLE option was used to enable
debug logs within xlat_tables.c and it configured a much larger stack
size for the platform in case it was enabled. This patch modifies these
debug prints within xlat_tables.c to use tf_printf() and modifies the format
specifiers to be compatible with tf_printf(). The debug prints are now enabled
if the VERBOSE prints are enabled in Trusted Firmware via LOG_LEVEL build
option.
The much larger stack size definition when DEBUG_XLAT_TABLE is defined
is no longer required and the platform ports are modified to remove this
stack size definition.
Change-Id: I2f7d77ea12a04b827fa15e2adc3125b1175e4c23
Soby Mathew
committed
on 1 Feb 2016
|
2016-01-29 |
Porting Guide: Clarify identity-mapping requirement
...
The memory translation library in Trusted Firmware supports
non-identity mappings for Physical to Virtual addresses since commit
f984ce84ba. However, the porting guide hasn't been updated
accordingly and still mandates the platform ports to use
identity-mapped page tables for all addresses.
This patch removes this out-dated information from the Porting Guide
and clarifies in which circumstances non-identity mapping may safely
be used.
Fixes ARM-software/tf-issues#258
Change-Id: I84dab9f3cabfc43794951b1828bfecb13049f706
Sandrine Bailleux
committed
on 29 Jan 2016
|
Clarify EL3 payload documentation
...
This patch reworks the section about booting an EL3 payload in the
User Guide:
- Centralize all EL3 payload related information in the same
section.
- Mention the possibility to program the EL3 payload in flash memory
and execute it in place.
- Provide model parameters for both the Base and Foundation FVPs.
- Provide some guidance to boot an EL3 payload on Juno.
Change-Id: I975c8de6b9b54ff4de01a1154cba63271d709912
Sandrine Bailleux
committed
on 29 Jan 2016
|
2016-01-26 |
mt8173: Fix long latency issue of mtcmos contorl
...
We found sometimes mtcmos operation is too long in spm (>1ms),
so update a new version to fix it.
I verified with 5 hours power_LoadTest, every mtcmos control
can finish in 500us (average is 100~200us).
Change-Id: I47b712bf9898870f4abcecbea47e01b9786231d4
Signed-off-by: Fan Chen <fan.chen@mediatek.com>
Fan Chen
authored
on 7 Dec 2015
Yidi Lin
committed
on 26 Jan 2016
|
mt8173: Improve performance by handling more interrupts during idle
...
1. Set more wakeup source
2. Update PCM code for control logic
Change-Id: I2ad06bd85bd1c75a22c838eab4cf5566c443b89a
Signed-off-by: Weiyi Lu <weiyi.lu@mediatek.com>
Weiyi Lu
authored
on 20 Nov 2015
Yidi Lin
committed
on 26 Jan 2016
|
mt8173: Implement subsystem power control logic in ARM TF
...
1. Add SiP calls for subsystem power on/off and check support
2. Add subsystem power control related initialization in
bl31_plat_setup.c
3. Add subsystem power on/off and power ack waiting functions
4. Update PCM code for subsystem physical power control logic
Change-Id: Ia0ebb1964c8f9758159bcf17c1813d76ef52cf64
Signed-off-by: yt.lee <yt.lee@mediatek.com>
Jimmy Huang
authored
on 16 Nov 2015
Yidi Lin
committed
on 26 Jan 2016
|
mt8173: support big/Little cluster power off for CPU idle(C2 state)
...
1. add power control for both big and Little cluster in MCDI
2. fix incorrect PCM_HOTPLUG_VALID_MASK in spm_hotplug.c
3. check the power status of cpus in cluster before setting the cputop
power control
Change-Id: Ifa85306a8bc218098667247904d281494c2f7bfe
Signed-off-by: Weiyi Lu <weiyi.lu@mediatek.com>
Jimmy Huang
authored
on 16 Nov 2015
Yidi Lin
committed
on 26 Jan 2016
|
mt8173: Move SPM related PLL settings to ARM TF
...
Move SPM related PLL settings to spm_boot_init in ARM TF SPM driver
Change-Id: I414b896caae072570c8de33a25e06db4ae011f57
Signed-off-by: yt.lee <yt.lee@mediatek.com>
Jimmy Huang
authored
on 16 Nov 2015
Yidi Lin
committed
on 26 Jan 2016
|
mt8173: Fix USB remote wake up problem
...
This patch updates SPM driver settings and PCM code to fix USB remote
wake up problem.
Change-Id: I07a81cc64b1d226d111380580d09ae25879f4285
Signed-off-by: yt.lee <yt.lee@mediatek.com>
Jimmy Huang
authored
on 16 Nov 2015
Yidi Lin
committed
on 26 Jan 2016
|