]> git.baikalelectronics.ru Git - arm-tf.git/log
arm-tf.git
20 months agofeat(imx8m): update the ddr4 dvfs flow to include ddr3l support
Jacky Bai [Wed, 22 Apr 2020 13:26:13 +0000 (21:26 +0800)]
feat(imx8m): update the ddr4 dvfs flow to include ddr3l support

the DDR3L & DDR4 can share same piece of code for DDR frequency scaling.
So update the ddr4 dvfs flow to support DDR3L too.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Reviewed-by: Anson Huang <anson.huang@nxp.com>
Change-Id: Ifc6981f05ed8a4e399adad97690197a9680f554d

20 months agofix(imx8m): correct the rank info get fro mstr
Jacky Bai [Mon, 13 Apr 2020 09:44:50 +0000 (17:44 +0800)]
fix(imx8m): correct the rank info get fro mstr

the bitfield of active_ranks in MSTR is defined as below.
Correct the rank num get in dram_info.

  0x01: one rank;
  0x11: two rank;

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Reviewed-by: Anson Huang <anson.huang@nxp.com>
Change-Id: Idcadb39f492a8fe81c973ac4136d9a1eaa32f54b

20 months agofeat(imx8m): fix the ddr4 dvfs random hang on imx8m
Jacky Bai [Mon, 13 Apr 2020 03:07:40 +0000 (11:07 +0800)]
feat(imx8m): fix the ddr4 dvfs random hang on imx8m

Remove the while loop waiting in step12 to align with what
we did before, just use a 'if' condition check for debug
purpose.

Tested-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Change-Id: Id2685c5f628270a24944470d675a5c8706f39f13

21 months agoMerge changes from topic "zynqmp-smc" into integration
Joanna Farley [Sat, 18 Feb 2023 16:35:44 +0000 (17:35 +0100)]
Merge changes from topic "zynqmp-smc" into integration

* changes:
  fix(zynqmp): check smc_fid 23:16 bits
  fix(zynqmp): separate EM from PM SMCs

21 months agoMerge "feat(spmd): introduce FFA_PARTITION_INFO_GET_REGS" into integration
Olivier Deprez [Fri, 17 Feb 2023 18:49:04 +0000 (19:49 +0100)]
Merge "feat(spmd): introduce FFA_PARTITION_INFO_GET_REGS" into integration

21 months agoMerge "feat(zynqmp): add support for custom sip service" into integration
Joanna Farley [Fri, 17 Feb 2023 16:49:29 +0000 (17:49 +0100)]
Merge "feat(zynqmp): add support for custom sip service" into integration

21 months agoMerge "fix(versal): check smc_fid 23:16 bits" into integration
Joanna Farley [Fri, 17 Feb 2023 12:13:24 +0000 (13:13 +0100)]
Merge "fix(versal): check smc_fid 23:16 bits" into integration

21 months agoMerge "docs(xilinx): correct function description" into integration
Joanna Farley [Fri, 17 Feb 2023 12:10:23 +0000 (13:10 +0100)]
Merge "docs(xilinx): correct function description" into integration

21 months agoMerge "fix(zynqmp): update the conflicting EEMI API IDs" into integration
Joanna Farley [Thu, 16 Feb 2023 23:52:10 +0000 (00:52 +0100)]
Merge "fix(zynqmp): update the conflicting EEMI API IDs" into integration

21 months agoMerge changes from topic "xlnx_zynqmp_debug" into integration
Joanna Farley [Thu, 16 Feb 2023 23:50:39 +0000 (00:50 +0100)]
Merge changes from topic "xlnx_zynqmp_debug" into integration

* changes:
  fix(zynqmp): with DEBUG=1 move bl31 to DDR range
  fix(zynqmp): update MAX_XLAT_TABLES for DDR memory range

21 months agoMerge changes from topic "versal-ipi" into integration
Joanna Farley [Thu, 16 Feb 2023 23:44:42 +0000 (00:44 +0100)]
Merge changes from topic "versal-ipi" into integration

* changes:
  fix(versal): fix incorrect regbase for PMC IPI
  fix(versal): sync location based on IPI_ID macros
  fix(xilinx): remove unused mailbox macros

21 months agoMerge "fix(zynqmp): fix bl31_zynqmp_setup.c coding style" into integration
Joanna Farley [Thu, 16 Feb 2023 23:43:11 +0000 (00:43 +0100)]
Merge "fix(zynqmp): fix bl31_zynqmp_setup.c coding style" into integration

21 months agoMerge "fix(docs): python version must be string" into integration
Manish V Badarkhe [Thu, 16 Feb 2023 15:46:40 +0000 (16:46 +0100)]
Merge "fix(docs): python version must be string" into integration

21 months agofix(docs): python version must be string
Boyan Karatotev [Thu, 16 Feb 2023 15:29:52 +0000 (15:29 +0000)]
fix(docs): python version must be string

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Change-Id: If5886f8adb391edf3771112cd8e20957a454eae0

21 months agoMerge "fix(docs): specify python version to 3.10" into integration
Manish V Badarkhe [Thu, 16 Feb 2023 15:26:06 +0000 (16:26 +0100)]
Merge "fix(docs): specify python version to 3.10" into integration

21 months agofeat(zynqmp): add support for custom sip service
Amit Nagal [Wed, 15 Feb 2023 13:13:55 +0000 (18:43 +0530)]
feat(zynqmp): add support for custom sip service

Add support for custom sip service.
Bare minimum implementation for custom_smc_handler is provided
by platform. Actual definition for custom_smc_handler will be provided
by custom pkg.

This feature is going to be used by external libraries. For example
for checking it's status.

The similar approach is also used by qti/{sc7180,sc7280} platforms
by providing a way to select QTISECLIB_PATH.

This code is providing a generic way how to wire any code
via custom $(CUSTOM_PKG_PATH)/custom_pkg.mk makefile with also an
option to wire custom SMC. SMC functionality depends on "package".

Change-Id: Icedffd582f76f89fc399b0bb2e05cdaee9b743a0
Signed-off-by: Amit Nagal <amit.nagal@amd.com>
21 months agofix(docs): specify python version to 3.10
Boyan Karatotev [Thu, 16 Feb 2023 15:15:54 +0000 (15:15 +0000)]
fix(docs): specify python version to 3.10

The docs say 3 is valid, but it is not. Jammy uses 3.10 so pin it to
that.

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Change-Id: I73530750065294eb511d88318ba86a6c50c8aa7d

21 months agoMerge "fix(docs): add a build.tools.python entry" into integration
Manish V Badarkhe [Thu, 16 Feb 2023 15:10:50 +0000 (16:10 +0100)]
Merge "fix(docs): add a build.tools.python entry" into integration

21 months agofix(docs): add a build.tools.python entry
Boyan Karatotev [Thu, 16 Feb 2023 15:00:39 +0000 (15:00 +0000)]
fix(docs): add a build.tools.python entry

Specifying build.tools is mandatory. We use python, so use the latest
one available. For ubuntu 22.04 that should be 3.10 or thereabouts.

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Change-Id: Ifd184b9f3b2d8e91182ccb73c47b148e4aeaff05

21 months agoMerge "fix(docs): add readthedocs configuration file" into integration
Manish V Badarkhe [Thu, 16 Feb 2023 14:35:33 +0000 (15:35 +0100)]
Merge "fix(docs): add readthedocs configuration file" into integration

21 months agofix(docs): add readthedocs configuration file
Boyan Karatotev [Thu, 16 Feb 2023 11:16:29 +0000 (11:16 +0000)]
fix(docs): add readthedocs configuration file

Readthedocs uses weird defaults and the web interface gives limited
configuration options. Add the config file to allow them to be changed.

Bump build os image to Ubuntu 22.04 to be in line with the CI.

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Change-Id: I1a620b15ab3924244f305056096024fe117c63dd

21 months agofix(versal): check smc_fid 23:16 bits
Michal Simek [Wed, 15 Feb 2023 11:39:22 +0000 (12:39 +0100)]
fix(versal): check smc_fid 23:16 bits

23:16 bits when they gets to SMC handler should be all zeros but be
inside SIP Service Calls range which is defined as 0x82000000-0x8200ffff
or 0xc2000000-0xc200ffff. That's why make sure that code won't handle
any SMCs in SIP range out of predefined range.

Also fix MASK values to check the same range for PM/IPI calls to make
sure that masking covers all required bits including 23:16. Bits 15:12
are used for different class of requests.

Change-Id: I9d3e91aa521d6bb90f6b15b71ff1e89fa77ee379
Signed-off-by: Michal Simek <michal.simek@amd.com>
21 months agofix(zynqmp): check smc_fid 23:16 bits
Michal Simek [Tue, 14 Feb 2023 12:10:29 +0000 (13:10 +0100)]
fix(zynqmp): check smc_fid 23:16 bits

23:16 bits when they gets to SMC handler should be all zeros but be
inside SIP Service Calls range which is defined as 0x82000000-0x8200ffff
or 0xc2000000-0xc200ffff. That's why make sure that code won't handle
any SMCs in SIP range out of predefined range. Because EM SMC is out of
this range already on this SOC check it after it (EMC SMC will be
handled separately).
Also fix MASK values to check the same range for PM/IPI/EM calls to make
sure that masking covers all required bits including 23:16. Bits 15:12
are used for different class of requests.

Change-Id: If23ac769c91d206e47758aeaa1f14e8b9c3dc7bb
Signed-off-by: Michal Simek <michal.simek@amd.com>
21 months agofix(zynqmp): separate EM from PM SMCs
Michal Simek [Tue, 14 Feb 2023 07:06:17 +0000 (08:06 +0100)]
fix(zynqmp): separate EM from PM SMCs

There is no reason to use else and concatenate EM SMCs with PM SMCs via
if/else pair. Also synchronize comment location.

Change-Id: I147f9d193574c2417c9d92d41a675e35ba282c9f
Signed-off-by: Michal Simek <michal.simek@amd.com>
21 months agofix(zynqmp): fix bl31_zynqmp_setup.c coding style
Michal Simek [Mon, 13 Feb 2023 13:35:21 +0000 (14:35 +0100)]
fix(zynqmp): fix bl31_zynqmp_setup.c coding style

Fix trivial coding style violations.

Change-Id: I6bbabd58da641a3b823a3b43adc7921b923ecdcb
Signed-off-by: Michal Simek <michal.simek@amd.com>
21 months agoMerge "feat(zynqmp): bump up version of query_data API" into integration
Joanna Farley [Thu, 16 Feb 2023 11:25:17 +0000 (12:25 +0100)]
Merge "feat(zynqmp): bump up version of query_data API" into integration

21 months agodocs(xilinx): correct function description
Naman Patel [Wed, 15 Feb 2023 09:01:21 +0000 (01:01 -0800)]
docs(xilinx): correct function description

Inside pm_ipi.c file, corrected the function description of
pm_ipi_buff_read_callb() and removed the return type as this is a void
function.

Signed-off-by: Naman Patel <naman.patel@amd.com>
Change-Id: I6257894337ef64497afb3e80d70af91a20357d5f

21 months agofix(zynqmp): update the conflicting EEMI API IDs
Nava kishore Manne [Wed, 15 Feb 2023 10:43:48 +0000 (16:13 +0530)]
fix(zynqmp): update the conflicting EEMI API IDs

In the ZynqMP, 0x36 EEMI API ID is used for PM_FPGA_GET_VERSION and 0x37
is used for PM_FPGA_GET_FEATURE_LIST. The same ID numbers in the Versal
are used for PM_ADD_SUBSYSTEM and PM_DESTROY_SUBSYSTEM and it leads to
the EEMI API ID conflict between the platforms. To fix this issue this
patch updates the PM_FPGA_GET_VERSION and PM_FPGA_GET_FEATURE_LIST EEMI
API ID's to 0x48 and 0x49.

In linux zynqmp_pm_fpga_get_version() and
zynqmp_pm_fpga_get_feature_list() API's are uses PM_FPGA_GET_VERSION
and PM_FPGA_GET_FEATURE_LIST to get the xilfpga version and
xilfpga-supported feature list info. These API's are called only in
zynqmp-fpga.c as part of the probe. In case of this caller API's are
failed it will fall to the default feature list and this default
feature list is same as latest xilfpga-supported feature list (No new
feature was added in the xilfpga after adding these APIs). So, these
updated IDs will not cause any functional issues between Linux, TF-A,
and firmware components.

Signed-off-by: Nava kishore Manne <nava.kishore.manne@amd.com>
Change-Id: I14d974dd44651681ecbf726ad8b6940e1850cbec

21 months agofix(versal): fix incorrect regbase for PMC IPI
Michal Simek [Thu, 9 Feb 2023 12:33:43 +0000 (13:33 +0100)]
fix(versal): fix incorrect regbase for PMC IPI

PMC ipi register base can't be the same as is for IPI_ID_APU that's why
that address is not correct and needs to be fixed.

Change-Id: I7ff2c9c0dd5995487e41f6b1060e4c9880c009fa
Signed-off-by: Michal Simek <michal.simek@amd.com>
21 months agofix(versal): sync location based on IPI_ID macros
Michal Simek [Wed, 8 Feb 2023 12:34:47 +0000 (13:34 +0100)]
fix(versal): sync location based on IPI_ID macros

IPI_ID_* macros available at include/plat_ipi.h are using PMC/APU/RPU0..
order which is not how versal_ipi_table array is composed. That's why
swap APU and PMC to follow the same order as is described by macros.

Change-Id: Ieaa3a967650e298e7cff45fafde0df96294c09fe
Signed-off-by: Michal Simek <michal.simek@amd.com>
21 months agofix(xilinx): remove unused mailbox macros
Michal Simek [Wed, 8 Feb 2023 08:31:09 +0000 (09:31 +0100)]
fix(xilinx): remove unused mailbox macros

All these macro are unused that's why remove them.

Change-Id: I843cc7c1a592c47376a01c52f45b6d59da80772b
Signed-off-by: Michal Simek <michal.simek@amd.com>
21 months agoMerge "fix(zynqmp): fix DT reserved allocated size" into integration
Joanna Farley [Wed, 15 Feb 2023 16:59:07 +0000 (17:59 +0100)]
Merge "fix(zynqmp): fix DT reserved allocated size" into integration

21 months agofix(zynqmp): with DEBUG=1 move bl31 to DDR range
Akshay Belsare [Wed, 15 Feb 2023 05:19:52 +0000 (10:49 +0530)]
fix(zynqmp): with DEBUG=1 move bl31 to DDR range

Due to size constraints in OCM memory range keeping the bl31 with
DEBUG=1 overlaps with the memory range from other Firmware thus
affecting the bootflow on target.
bl31 binary can not be placed in OCM memory range when built with
DEBUG=1.
With DEBUG=1, by default bl31 is moved to DDR memory range
0x1000-0x7FFFF.
The user can provide a custom DDR memory range during build time using
the build parameters ZYNQMP_ATF_MEM_BASE and ZYNQMP_ATF_MEM_SIZE.

Change-Id: I167d5eadbae7c6d3ec9b32f494b0b1a819bea5b0
Signed-off-by: Akshay Belsare <akshay.belsare@amd.com>
21 months agofix(zynqmp): update MAX_XLAT_TABLES for DDR memory range
Akshay Belsare [Wed, 15 Feb 2023 11:59:42 +0000 (17:29 +0530)]
fix(zynqmp): update MAX_XLAT_TABLES for DDR memory range

An assert is observed when the bl31 is placed in DDR memory range and
DEBUG is also enabled. To resolve this, increase the size of
MAX_XLAT_TABLES to 8 when bl31 is placed in DDR memory range.

Change-Id: I7d35cba01cd5c8cfc8aae987719b8fc39fcf76b0
Signed-off-by: Akshay Belsare <akshay.belsare@amd.com>
21 months agoMerge "docs(qemu): delineate flash based boot method" into integration
Manish V Badarkhe [Wed, 15 Feb 2023 14:53:46 +0000 (15:53 +0100)]
Merge "docs(qemu): delineate flash based boot method" into integration

21 months agofeat(zynqmp): bump up version of query_data API
Ronak Jain [Mon, 13 Feb 2023 12:48:06 +0000 (04:48 -0800)]
feat(zynqmp): bump up version of query_data API

As per the current code base, the version of the PM_QUERY_DATA EEMI
API is 2 in the Versal but in ZynqMP it returns the base version.

Since this EEMI API ID support similar functionality for Versal and
ZynqMP, hence there should not be any difference in the versioning
as well.

In version 2, the feature check API supports the bitmask functionality
of the QUERY_DATA API, so the user can query the supported QUERY_DATA
ID first and if the ID is supported then the user can perform the
actual functionality of the same.

Hence, bump up the version of PM_QUERY_DATA API Id to 2.

Signed-off-by: Ronak Jain <ronak.jain@amd.com>
Change-Id: I3ed7b090f486dca591352131ca286018bbb1c4be

21 months agoMerge "fix(build): allow warnings when using lld" into integration
Manish Pandey [Tue, 14 Feb 2023 16:09:35 +0000 (17:09 +0100)]
Merge "fix(build): allow warnings when using lld" into integration

21 months agoMerge changes from topic "bk/python_dependencies" into integration
Manish V Badarkhe [Tue, 14 Feb 2023 15:14:06 +0000 (16:14 +0100)]
Merge changes from topic "bk/python_dependencies" into integration

* changes:
  build(docs): update Python dependencies
  fix(docs): make required compiler version == rather than >=
  fix(deps): add missing aeabi_memset.S

21 months agoMerge "docs: fix broken Juno links" into integration
Manish V Badarkhe [Tue, 14 Feb 2023 11:45:35 +0000 (12:45 +0100)]
Merge "docs: fix broken Juno links" into integration

21 months agodocs: fix broken Juno links
Harrison Mutai [Mon, 13 Feb 2023 18:30:04 +0000 (18:30 +0000)]
docs: fix broken Juno links

Certain links to Juno documentation point to a location that were
removed at some point, or are unused. Fix links to point to the latest
available version on Arm's public documentation site, and remove those
that are no longer being used.

Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
Change-Id: I59202767db8834e9c302b2826f3faee47d3a5edd

21 months agoMerge "fix(zynqmp): enable A53 workaround(errata 1530924)" into integration
Joanna Farley [Tue, 14 Feb 2023 09:17:43 +0000 (10:17 +0100)]
Merge "fix(zynqmp): enable A53 workaround(errata 1530924)" into integration

21 months agoMerge "feat(zynqmp): add SMCCC_ARCH_SOC_ID support" into integration
Joanna Farley [Tue, 14 Feb 2023 09:16:59 +0000 (10:16 +0100)]
Merge "feat(zynqmp): add SMCCC_ARCH_SOC_ID support" into integration

21 months agofeat(spmd): introduce FFA_PARTITION_INFO_GET_REGS
Raghu Krishnamurthy [Sun, 25 Dec 2022 21:02:00 +0000 (13:02 -0800)]
feat(spmd): introduce FFA_PARTITION_INFO_GET_REGS

Add code in SPMD to forward calls to FFA_PARTITION_INFO_GET_REGS. This
is a new ABI that allows getting partition information without the need
for rx/tx buffer, that helps in situations where having an rx/tx buffer
mapped and available is difficult (ex. uefi runtime services).
Currently, the spmc at el3 does not support this new ABI.
The new ABI uses registers x8-x17 to return partition information so
changes are made to ensure those registers are passed through to the
SPMC and restored on the return path.

Signed-off-by: Raghu Krishnamurthy <raghu.ncstate@gmail.com>
Change-Id: I1fe5956763e054e4f8d62292fc1247e7120bb5a4

21 months agobuild(docs): update Python dependencies
Boyan Karatotev [Mon, 9 Jan 2023 11:50:24 +0000 (11:50 +0000)]
build(docs): update Python dependencies

Update the python dependencies for building the project's Sphinx
documentation. Sphinx plugins are updated to the latest version, while
Sphinx itself is only updated to 5.3.0 (latest 5.x.x revision) due to
sphinx-rtd-theme not supporting any higher (both require incompatible
versions of docutils). Myst-parser is also updated to the latest version
to prevent a docutils clash as well.

The effect of this is to bump certifi to version 2022.12.7 and wheel to
0.38.4 as suggested by dependabot.

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Change-Id: I0ced5b127494255ce01aa7f51665bfcba161d135

21 months agofix(docs): make required compiler version == rather than >=
Boyan Karatotev [Thu, 9 Feb 2023 15:59:39 +0000 (15:59 +0000)]
fix(docs): make required compiler version == rather than >=

TF-A carries its own compiler-rt so higher versions of the compilers may
not necessarily work. Because TF-A is only tested on the specified
versions in the CI, any breakage remains unknown. Update the
prerequisites guide to make it more apparent that this is the case.

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Change-Id: Ia5da9c5ff505ead99f579f3f5fbe3a480d697c1d

21 months agofix(deps): add missing aeabi_memset.S
Boyan Karatotev [Thu, 9 Feb 2023 15:55:34 +0000 (15:55 +0000)]
fix(deps): add missing aeabi_memset.S

This file provides __aeabi_memclr8 builtin which the Ubuntu 22.04
version of clang 14 needs to compile. Add it to prevent this oddity from
failing the build.

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Change-Id: Id67aa0abba4a27c51b3ed6bb1be84b4e803b44bf

21 months agoMerge changes from topic "mixed-rwx" into integration
Manish V Badarkhe [Mon, 13 Feb 2023 14:36:28 +0000 (15:36 +0100)]
Merge changes from topic "mixed-rwx" into integration

* changes:
  build: permit multiple linker scripts
  build: clarify linker script generation
  style: normalize linker script code style
  fix(pie): pass `-fpie` to the preprocessor as well

21 months agoMerge "docs: add Runtime Security Subsystem (RSS) documentation" into integration
Sandrine Bailleux [Mon, 13 Feb 2023 14:20:16 +0000 (15:20 +0100)]
Merge "docs: add Runtime Security Subsystem (RSS) documentation" into integration

21 months agofix(zynqmp): fix DT reserved allocated size
Michal Simek [Mon, 13 Feb 2023 12:11:28 +0000 (13:11 +0100)]
fix(zynqmp): fix DT reserved allocated size

BL31_LIMIT is not size but reserved node reg property contains base
address and size that's why BL31_LIMIT - BL31_BASE + 1 is correct size
of reseved space for BL31.
Also update warning message to cover that it is for BL31.

Change-Id: I53f53d2170eb873f758f9ba250d54f57f0b562b4
Signed-off-by: Michal Simek <michal.simek@amd.com>
21 months agodocs: add Runtime Security Subsystem (RSS) documentation
Tamas Ban [Thu, 13 Oct 2022 14:42:48 +0000 (16:42 +0200)]
docs: add Runtime Security Subsystem (RSS) documentation

Describe:
  - RSS-AP communication
  - RSS runtime services
  - Measured boot
  - Delegated Attestation

Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: Iaef93361a09355a1edaabcc0c59126e006ad251a

21 months agobuild: permit multiple linker scripts
Chris Kay [Mon, 16 Jan 2023 18:57:26 +0000 (18:57 +0000)]
build: permit multiple linker scripts

This change allows platforms to provide more than one linker script to
any image utilizing the `MAKE_BL` build system macro.

This is already done by some MediaTek platforms via the
`EXTRA_LINKERFILE` build system variable, which has now been removed.

In its place, additional linker scripts may be added to the
`<IMAGE>_LINKER_SCRIPT_SOURCES` variable.

BREAKING-CHANGE: The `EXTRA_LINKERFILE` build system variable has been
 replaced with the `<IMAGE>_LINKER_SCRIPT_SOURCES` variable. See the
 commit message for more information.

Change-Id: I3f0b69200d6a4841fd158cd09344ce9e67047271
Signed-off-by: Chris Kay <chris.kay@arm.com>
21 months agobuild: clarify linker script generation
Chris Kay [Mon, 16 Jan 2023 16:53:45 +0000 (16:53 +0000)]
build: clarify linker script generation

The following build system variables have been renamed:

- `LINKERFILE` -> `DEFAULT_LINKER_SCRIPT`
- `BL_LINKERFILE` -> `DEFAULT_LINKER_SCRIPT_SOURCE`
- `<IMAGE>_LINKERFILE` -> `<IMAGE>_DEFAULT_LINKER_SCRIPT_SOURCE`

These new names better reflect how each variable is used:

1. the default linker script is passed via `-dT` instead of `-T`
2. linker script source files are first preprocessed

Additionally, linker scripts are now placed in the build directory
relative to where they exist in the source directory. For example,
the `bl32/sp_min/sp_min.ld.S` would now preprocess to
`sp_min/sp_min.ld` instead of just `bl32.ld`

BREAKING-CHANGE: The `LINKERFILE`, `BL_LINKERFILE` and
 `<IMAGE_LINKERFILE>` build system variables have been renamed. See the
 commit message for more information.

Change-Id: If8cef65dcb8820e8993736702c8741e97a66e6cc
Signed-off-by: Chris Kay <chris.kay@arm.com>
21 months agostyle: normalize linker script code style
Chris Kay [Thu, 29 Sep 2022 13:36:53 +0000 (14:36 +0100)]
style: normalize linker script code style

There are a variety of code styles used by the various linker scripts
around the code-base. This change brings them in line with one another
and attempts to make the scripts more friendly for skim-readers.

Change-Id: Ibee2afad0d543129c9ba5a8a22e3ec17d77e36ea
Signed-off-by: Chris Kay <chris.kay@arm.com>
21 months agofix(pie): pass `-fpie` to the preprocessor as well
Chris Kay [Thu, 2 Feb 2023 14:39:03 +0000 (14:39 +0000)]
fix(pie): pass `-fpie` to the preprocessor as well

When PIE is enabled, the `-fpie` flag is passed to the compiler but not
to the preprocessor. This change ensures that both tools are aware of
when the image is position-independent when preprocessing, which impacts
some pre-defined preprocessor definitions.

Change-Id: I5208a591d60ee01312f6bf3dd7343abe6535ee61
Signed-off-by: Chris Kay <chris.kay@arm.com>
21 months agoMerge "fix(tsp): loop / crash if mmap of region fails" into integration
Manish V Badarkhe [Fri, 10 Feb 2023 15:11:05 +0000 (16:11 +0100)]
Merge "fix(tsp): loop / crash if mmap of region fails" into integration

21 months agoMerge "feat(git-hooks): add pre-commit hook" into integration
Joanna Farley [Fri, 10 Feb 2023 13:45:47 +0000 (14:45 +0100)]
Merge "feat(git-hooks): add pre-commit hook" into integration

21 months agofix(tsp): loop / crash if mmap of region fails
Thomas Viehweger [Mon, 23 Jan 2023 10:26:37 +0000 (11:26 +0100)]
fix(tsp): loop / crash if mmap of region fails

In test_memory_send the variable i is of unsigned type, so
it is never negative. If i is 0, the result of i-- is
4294967295. Don't know what happens if trying to
access composite->address_range_array[4294967295].
Made i a signed integer.

Signed-off-by: Thomas Viehweger <Thomas.Viehweger@rohde-schwarz.com>
Change-Id: I8b4e532749b5e86e4b5acd238e72c3f88e309ff2

21 months agoMerge "fix(context-mgmt): enable SCXTNUM access" into integration
Manish Pandey [Fri, 10 Feb 2023 11:57:17 +0000 (12:57 +0100)]
Merge "fix(context-mgmt): enable SCXTNUM access" into integration

21 months agoMerge "fix(optee): address late comments and fix bad rc" into integration
Joanna Farley [Fri, 10 Feb 2023 10:26:48 +0000 (11:26 +0100)]
Merge "fix(optee): address late comments and fix bad rc" into integration

21 months agoMerge "feat(spmd): copy tos_fw_config in secure region" into integration
Manish Pandey [Fri, 10 Feb 2023 09:36:01 +0000 (10:36 +0100)]
Merge "feat(spmd): copy tos_fw_config in secure region" into integration

21 months agoMerge "fix(mpam): run-time checks for mpam save/restore routines" into integration
Manish Pandey [Fri, 10 Feb 2023 09:20:07 +0000 (10:20 +0100)]
Merge "fix(mpam): run-time checks for mpam save/restore routines" into integration

21 months agoMerge changes from topic "mb/tos-fw-config-load-refactor" into integration
Sandrine Bailleux [Fri, 10 Feb 2023 09:05:12 +0000 (10:05 +0100)]
Merge changes from topic "mb/tos-fw-config-load-refactor" into integration

* changes:
  feat(spmd): map SPMC manifest region as EL3_PAS
  feat(fvp): update device tree with load addresses of TOS_FW config
  refactor(fvp): rename the DTB info structure member
  feat(fconf): rename 'ns-load-address' to 'secondary-load-address'

21 months agoMerge "fix(cert-create): change WARN to VERBOSE" into integration
Sandrine Bailleux [Fri, 10 Feb 2023 08:58:37 +0000 (09:58 +0100)]
Merge "fix(cert-create): change WARN to VERBOSE" into integration

21 months agofix(optee): address late comments and fix bad rc
Jeffrey Kardatzke [Thu, 9 Feb 2023 19:03:17 +0000 (11:03 -0800)]
fix(optee): address late comments and fix bad rc

There were some late comments to the prior change (18635) which are
address in this commit. There was also an invalid return value check
which was changed and the wrong result was being returned via the SMC
call for loading OP-TEE which is now fixed.

Signed-off-by: Jeffrey Kardatzke <jkardatzke@google.com>
Change-Id: I883ddf966662549a3ef9c801a2d4f47709422332

21 months agofix(cert-create): change WARN to VERBOSE
laurenw-arm [Wed, 8 Feb 2023 19:14:54 +0000 (13:14 -0600)]
fix(cert-create): change WARN to VERBOSE

SAVE_KEYS is set to '0' by default, causing cert_create to
show the 'Key filename not specified' message on each run
even though this is perfectly normal. Show the message only
in the VERBOSE log level.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Change-Id: I472cdec2670055ab0edd99d172f79d01ad575972

21 months agofeat(git-hooks): add pre-commit hook
Maksims Svecovs [Thu, 9 Feb 2023 16:48:34 +0000 (16:48 +0000)]
feat(git-hooks): add pre-commit hook

Adds a pre-commit git hook to keep track of copyright year.
Checks staged files for Arm copyright header and suggests a change if
the year is outdated. Works with both single-year format and
from_year-to_year format.

Signed-off-by: Maksims Svecovs <maksims.svecovs@arm.com>
Change-Id: If81a0b9f5e047ec0ac401c7cf1792b9da6644926

21 months agofeat(spmd): copy tos_fw_config in secure region
Manish V Badarkhe [Tue, 7 Feb 2023 11:26:38 +0000 (11:26 +0000)]
feat(spmd): copy tos_fw_config in secure region

The tos_fw_config is currently loaded into memory by BL2 and
consumed by SPMD (part of BL31) and BL32 firmwares. This does
not work in RME-enabled systems as BL31 uses the root PAS memory
and does not trust secure PAS memory.

A first attempt was made to map the TOS_FW_CONFIG region as root PAS,
and then to remap to secure PAS after SPMD consumption, but this was
not suitable for RME systems where memory encryption is enabled.

This can be solved by copying the TOS FW config (SPMC manifest) from
the Root PAS region to the Secure PAS region so that BL32 can consume
it.

Change-Id: I8eef8345366199cb0e367db883c34a5b5136465d
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
21 months agofix(zynqmp): enable A53 workaround(errata 1530924)
Michal Simek [Thu, 9 Feb 2023 12:21:10 +0000 (13:21 +0100)]
fix(zynqmp): enable A53 workaround(errata 1530924)

BL31 already reports that there is missing CPU workaround for this
erratum as
"WARNING: BL31: cortex_a53: CPU workaround for 1530924 was missing!"

That's why enable it by default as was done by other platforms for
example by commit 74665119f04d ("allwinner: Enable workaround for
Cortex-A53 erratum 1530924").

Change-Id: I251ffe3c307781b07477afb64f4e7af5dd9af9fe
Signed-off-by: Michal Simek <michal.simek@amd.com>
21 months agofeat(zynqmp): add SMCCC_ARCH_SOC_ID support
Michal Simek [Thu, 9 Feb 2023 09:28:58 +0000 (10:28 +0100)]
feat(zynqmp): add SMCCC_ARCH_SOC_ID support

Add support for calling SMCCC_ARCH_SOC_ID which is used by Linux soc_id
driver for printing information about manufacturer and also chip version
and silicon ID code. SOC revision is directly mapped to chip ID code.
And SOC version is composed from manufacturer ID based on JEP-106 with
chip_id which contains bits mapped to CPU register 0xffca0044 platform
bits which differentiate between silicon, qemu and other emulated
platforms.

Function description is available at
docs/getting_started/porting-guide.rst.

Change-Id: I1f19e1973593897e71b39244dbdbceb6bd0e8a07
Signed-off-by: Michal Simek <michal.simek@amd.com>
21 months agofix(context-mgmt): enable SCXTNUM access
Maksims Svecovs [Thu, 2 Feb 2023 16:10:22 +0000 (16:10 +0000)]
fix(context-mgmt): enable SCXTNUM access

Enable SCXTNUM_ELx access for lower ELs in non-secure state.
Make realm context setup take this build flag into account but enable it
by default when RME is used.

Signed-off-by: Maksims Svecovs <maksims.svecovs@arm.com>
Change-Id: Ieb0186b2fdffad464bb9316fc3973772c9c28cd0

21 months agoMerge "chore: add encrypt_fw to gitignore" into integration
Manish Pandey [Wed, 8 Feb 2023 17:37:44 +0000 (18:37 +0100)]
Merge "chore: add encrypt_fw to gitignore" into integration

21 months agoMerge changes I7bd311d7,Iea7dcfe3,I9d890934 into integration
Manish V Badarkhe [Wed, 8 Feb 2023 14:20:10 +0000 (15:20 +0100)]
Merge changes I7bd311d7,Iea7dcfe3,I9d890934 into integration

* changes:
  refactor(allwinner): use fdt_node_is_enabled() in AXP driver
  fix(allwinner): check RSB availability in DT on H6
  refactor(fdt): introduce common fdt_node_is_enabled()

21 months agoMerge "feat(psa): interface with RSS for NV counters" into integration
Sandrine Bailleux [Wed, 8 Feb 2023 10:48:14 +0000 (11:48 +0100)]
Merge "feat(psa): interface with RSS for NV counters" into integration

21 months agofeat(psa): interface with RSS for NV counters
laurenw-arm [Thu, 11 Aug 2022 20:29:56 +0000 (15:29 -0500)]
feat(psa): interface with RSS for NV counters

Adding AP/RSS interface for retrieving and incrementing non-volatile
counters.

The read interface implements the psa_call:
psa_call(RSS_PLATFORM_SERVICE_HANDLE,
         RSS_PLATFORM_API_ID_NV_READ,
         in_vec, 1, out_vec, 1);

where the in_vec indicates which of the 3 counters we want, and the
out_vec stores the counter value we get back from RSS.

The increment interface implements the psa_call:
psa_call(RSS_PLATFORM_SERVICE_HANDLE,
         RSS_PLATFORM_API_ID_NV_INCREMENT,
         in_vec, 1, (psa_outvec *)NULL, 0);

where, again, in_vec indicates the counter to increment, and we don't
get any output parameter from RSS.

Through this service, we will be able to get/increment any of the 3 NV
counters used on a CCA platform:
- NV counter for CCA firmware (BL2, BL31, RMM).
- NV counter for secure firmware.
- NV counter for non-secure firmware.

Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com>
Signed-off-by: Raef Coles <raef.coles@arm.com>
Change-Id: I4c1c7f4837ebff30de16bb0ce7ecd416b70b1f62

21 months agofeat(spmd): map SPMC manifest region as EL3_PAS
Manish V Badarkhe [Tue, 7 Feb 2023 11:26:38 +0000 (11:26 +0000)]
feat(spmd): map SPMC manifest region as EL3_PAS

Mapped SPMC manifest region as EL3_PAS so that it will get
mapped as Root region in RME enabled system otherwise Secure
region.

Change-Id: I1af5344d7516e948d5b3664bcdb94cdfc367cd78
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
21 months agofeat(fvp): update device tree with load addresses of TOS_FW config
Manish V Badarkhe [Tue, 7 Feb 2023 11:26:38 +0000 (11:26 +0000)]
feat(fvp): update device tree with load addresses of TOS_FW config

Provided both the root and secure addresses for TOS_FW config
in case of RME enabled systems where root address is in Root
SRAM and secure address is in Trusted DRAM.

Non-RME systems are unaffected by this change.

Change-Id: Ifb927c90fa5a68fe5362980858b4ddc5403ac95b
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
21 months agorefactor(fvp): rename the DTB info structure member
Manish V Badarkhe [Tue, 7 Feb 2023 11:26:38 +0000 (11:26 +0000)]
refactor(fvp): rename the DTB info structure member

In line with the previous patch, the name of the member of the
hw_config DTB info structure has been renamed.

Change-Id: I6689e416fecd66faa515e820f1c4b23bcb65bfb1
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
21 months agofeat(fconf): rename 'ns-load-address' to 'secondary-load-address'
Manish V Badarkhe [Tue, 7 Feb 2023 11:26:38 +0000 (11:26 +0000)]
feat(fconf): rename 'ns-load-address' to 'secondary-load-address'

The 'ns-load-address' property has been renamed to 'secondary-load-
address' in order to make it more generic. It can be used to copy
the configuration to any location, be it root, secure, or non-secure.

Change-Id: I122508e155ccd99082296be3f6b8db2f908be221
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
21 months agodocs(qemu): delineate flash based boot method
Harrison Mutai [Mon, 6 Feb 2023 17:54:54 +0000 (17:54 +0000)]
docs(qemu): delineate flash based boot method

Make the language around the explanation for booting via secure flash
clearer. Provide details into the intent of the options given to QEMU.

Change-Id: Ia573b900aaa2346cad4f82191110b978f9bd5481
Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
21 months agoMerge "refactor(tc): update total compute gpu device node" into integration
Manish V Badarkhe [Fri, 3 Feb 2023 16:04:42 +0000 (17:04 +0100)]
Merge "refactor(tc): update total compute gpu device node" into integration

21 months agorefactor(allwinner): use fdt_node_is_enabled() in AXP driver
Andre Przywara [Fri, 3 Feb 2023 11:00:26 +0000 (11:00 +0000)]
refactor(allwinner): use fdt_node_is_enabled() in AXP driver

The Allwinner AXP driver was using a private implementation of that
function, remove that in favour of our now common implementation.

Change-Id: I7bd311d73060d4bc83f93cff6bedf6c78dddd3ca
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
21 months agofix(allwinner): check RSB availability in DT on H6
Andre Przywara [Wed, 1 Feb 2023 22:28:37 +0000 (22:28 +0000)]
fix(allwinner): check RSB availability in DT on H6

At the moment we access the RSB bus on all Allwinner H6 boards
unconditionally, even though some boards do not have any PMIC at all,
while others have some I2C devices connected to the same pins.
The latter case is just fragile, but the first case leads to a hang on
at least one board, as reported by Jernej.

Scan the devicetree, to check for the availability of the RSB bus node.
Proceed only if the RSB DT node is actually enabled.

Change-Id: Iea7dcfe3e085e173334d098ec4ddcb6c4b085771
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reported-by: Jernej Skrabec <jernej.skrabec@gmail.com>
21 months agorefactor(fdt): introduce common fdt_node_is_enabled()
Andre Przywara [Fri, 3 Feb 2023 11:11:18 +0000 (11:11 +0000)]
refactor(fdt): introduce common fdt_node_is_enabled()

There are several users in the tree which want to check whether a given
FDT node is enabled or not: the "status" property holds that
information. So far all those users provide private implementations,
some of them having issues.

Export a generic implementation of that function in fdt_wrappers.h, as
a "static inline" function to not increase code size.
Also replace the existing implementation in Arm's fconf code, which had
a tiny bug in needlessly using the property length:
"status = [6f 6b 61 79 20];" would pass the check, where it should not.
The proper solution is also simpler: status must be a string, and
strings must be NUL-terminated in a DT. strcmp() would terminate on the
first NUL in *either* of the two strings it compares, so it would never
walk beyond the property boundary in the DTB.

Change-Id: I9d89093432f127c09add6cf5c93a725bc534e5de
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
21 months agorefactor(tc): update total compute gpu device node
Rupinderjit Singh [Fri, 3 Feb 2023 09:29:57 +0000 (09:29 +0000)]
refactor(tc): update total compute gpu device node

updated gpu clocks and added gpu simple power model node

Signed-off-by: Rupinderjit Singh <rupinderjit.singh@arm.com>
Change-Id: Ia475f136bec8a569f764255eb87c212a692626dc

21 months agoMerge "fix(versal-net): populate gic v3 rdist data statically" into integration
Joanna Farley [Fri, 3 Feb 2023 09:27:25 +0000 (10:27 +0100)]
Merge "fix(versal-net): populate gic v3 rdist data statically" into integration

21 months agoMerge "feat(optee): add loading OP-TEE image via an SMC" into integration
Joanna Farley [Thu, 2 Feb 2023 23:42:17 +0000 (00:42 +0100)]
Merge "feat(optee): add loading OP-TEE image via an SMC" into integration

21 months agoMerge changes from topic "xlnx_feat_chores" into integration
Joanna Farley [Thu, 2 Feb 2023 15:53:37 +0000 (16:53 +0100)]
Merge changes from topic "xlnx_feat_chores" into integration

* changes:
  chore(xilinx): update print information
  feat(versal-net): add jtag dcc support

21 months agochore: add encrypt_fw to gitignore
Yann Gautier [Fri, 27 Jan 2023 14:16:45 +0000 (15:16 +0100)]
chore: add encrypt_fw to gitignore

Add tools/encrypt_fw/encrypt_fw & tools/encrypt_fw/encrypt_fw.exe to
.gitignore file, to avoid git listing those binary files.

Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
Change-Id: I2f4ddbe1c11848513fe20f7c8b448a041988cc4f

21 months agochore(xilinx): update print information
Akshay Belsare [Wed, 18 Jan 2023 11:34:22 +0000 (17:04 +0530)]
chore(xilinx): update print information

Remove company name from the console messages while printing only
relevant information for the platform.

Change-Id: Id8171326e0267eb6f3a26de4eb66143970de2dbd
Signed-off-by: Akshay Belsare <akshay.belsare@amd.com>
21 months agoMerge changes I1b092bc1,Ifc2461b4,I5176caa5 into integration
Soby Mathew [Wed, 1 Feb 2023 16:03:22 +0000 (17:03 +0100)]
Merge changes I1b092bc1,Ifc2461b4,I5176caa5 into integration

* changes:
  docs(rme): update RMM-EL3 Boot Manifest structure description
  feat(rme): read DRAM information from FVP DTB
  feat(rme): set DRAM information in Boot Manifest platform data

21 months agofix(versal-net): populate gic v3 rdist data statically
Jay Buddhabhatti [Tue, 24 Jan 2023 07:32:35 +0000 (23:32 -0800)]
fix(versal-net): populate gic v3 rdist data statically

Currently gicv3_rdistif_probe() is called per CPU. In case of maxcpus=1,
only 1 core is initialized and gicr_base_addrs initialized for CPU 0
only. Because of this assertion is raised during Linux system suspend.

During Linux suspend, platform callback saves GIC v3 state which
internally invokes arm_gicv3_distif_pre_save(). This function tries to use
gicr_base for all CPUs. Since GICR base address for secondary CPUs are not
initialized, it raises assertion.

To fix the issue, populate GIC v3 rdist data statically (similar to Versal)
instead of dynamically initializing GIC v3 rdist per CPU.

Signed-off-by: Jay Buddhabhatti <jay.buddhabhatti@amd.com>
Change-Id: I98c97c03e451d05f4ebac358e197617ab9d9b71f

21 months agofeat(versal-net): add jtag dcc support
Akshay Belsare [Wed, 18 Jan 2023 10:24:12 +0000 (15:54 +0530)]
feat(versal-net): add jtag dcc support

Add support for JTAG Debug Communication Channel(DCC), using the dcc
console driver, for Versal NET platform.
UART0/UART1 is not configured when the JTAG DCC is used as console for
the platform.
Though DCC is not using any UART, VERSAL_NET_UART_BASE needs
to be defined in the platform code. If its not defined, build errors
are observed.
Now VERSAL_NET_UART_BASE by default points to UART0 base.
Check for valid console(pl011, pl011_0, pl011_1, dcc) is
being done in the platform makefile, the error condition in
setting the value of VERSAL_NET_UART_BASE is redundant, thus the error
message is removed from the code.

Change-Id: I1085433055abea13526230cff4d4183ff7a01477
Signed-off-by: Akshay Belsare <akshay.belsare@amd.com>
21 months agofeat(optee): add loading OP-TEE image via an SMC
Jeffrey Kardatzke [Mon, 3 Oct 2022 22:50:21 +0000 (15:50 -0700)]
feat(optee): add loading OP-TEE image via an SMC

This adds the ability to load the OP-TEE image via an SMC called from
non-secure userspace rather than loading it during boot. This should
only be utilized on platforms that can ensure security is maintained up
until the point the SMC is invoked as it breaks the normal barrier
between the secure and non-secure world.

Signed-off-by: Jeffrey Kardatzke <jkardatzke@google.com>
Change-Id: I21cfa9699617c493fa4190f01d1cbb714e7449cc

21 months agodocs(rme): update RMM-EL3 Boot Manifest structure description
AlexeiFedorov [Wed, 18 Jan 2023 14:53:56 +0000 (14:53 +0000)]
docs(rme): update RMM-EL3 Boot Manifest structure description

This patch updates description of RMM-EL3 Boot Manifest
structure and its corresponding diagram and tables with DRAM
layout data.

Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com>
Change-Id: I1b092bc1ad5f1c7909d25c1a0dc89c2b210ada27

21 months agofeat(rme): read DRAM information from FVP DTB
AlexeiFedorov [Thu, 29 Dec 2022 15:57:40 +0000 (15:57 +0000)]
feat(rme): read DRAM information from FVP DTB

This patch builds on the previous patch by implementing
support for reading NS DRAM layout of FVP model from
HW_CONFIG Device tree.

Macro _RMMD_MANIFEST_VERSION is renamed to
SET_RMMD_MANIFEST_VERSION to suppress MISRA-C
"rule MC3R1.D4.5: (advisory) Identifiers in
the same name space with overlapping visibility
should be typographically unambiguous" warning

Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com>
Change-Id: Ifc2461b4441a1efdd4b7c656ab4d15e62479f77b

21 months agoMerge "feat(morello): add support for HW_CONFIG" into integration
Manish V Badarkhe [Mon, 30 Jan 2023 15:55:55 +0000 (16:55 +0100)]
Merge "feat(morello): add support for HW_CONFIG" into integration

21 months agoMerge "perf(imx): speed-up console/uart TX using FIFO" into integration
Madhukar Pappireddy [Mon, 30 Jan 2023 15:20:05 +0000 (16:20 +0100)]
Merge "perf(imx): speed-up console/uart TX using FIFO" into integration

21 months agoMerge "docs(measured-boot): fix few typos" into integration
Sandrine Bailleux [Mon, 30 Jan 2023 10:05:43 +0000 (11:05 +0100)]
Merge "docs(measured-boot): fix few typos" into integration

21 months agodocs(measured-boot): fix few typos
Manish V Badarkhe [Fri, 27 Jan 2023 13:51:22 +0000 (13:51 +0000)]
docs(measured-boot): fix few typos

Fixed few typos in the measured boot POC document.

Change-Id: I122c069bbde51febed12c54e2c4a4985b009ef5f
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
21 months agoperf(imx): speed-up console/uart TX using FIFO
Loic Poulain [Wed, 11 Jan 2023 15:08:48 +0000 (16:08 +0100)]
perf(imx): speed-up console/uart TX using FIFO

The current putc version test for TXEMPTY bit set (#6) instead
of waiting for TXFULL bit clear (#4), that slows the global
boot time as we are not taking benefit of the 32-byte FIFO.

We then need to implement the flush function to be sure the
transmit is complete (FIFO and shift register empty).

Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
Change-Id: I54873a5203e2afdc230e44ce73284e7a80985b4f