arm-trusted-firmware/include
Antonio Nino Diaz 4abd7fa71f Redefine SMC_UNK as -1 instead of 0xFFFFFFFF
According to the SMC Calling Convention (ARM DEN0028B):

    The Unknown SMC Function Identifier is a sign-extended value of
    (-1) that is returned in R0, W0 or X0 register.

The value wasn't sign-extended because it was defined as a 32-bit
unsigned value (0xFFFFFFFF).

SMC_PREEMPT has been redefined as -2 for the same reason.

NOTE: This might be a compatibility break for some AArch64 platforms
that don't follow the previous version of the SMCCC (ARM DEN0028A)
correctly. That document specifies that only the bottom 32 bits of the
returned value must be checked. If a platform relies on the top 32 bits
of the result being 0 (so that SMC_UNK is 0x00000000FFFFFFFF), it will
have to fix its code to comply with the SMCCC.

Change-Id: I7f7b109f6b30c114fe570aa0ead3c335383cb54d
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
2018-02-15 15:04:34 +00:00
..
bl1 FWU: Introduce FWU_SMC_IMAGE_RESET 2017-06-01 14:52:12 +01:00
bl31 Deprecate one EL3 interrupt routing model with EL3 exception handling 2018-02-06 07:58:55 +00:00
bl32 spd: tlkd: support for "NS memory ranges" function ID 2018-01-08 16:00:15 -08:00
common Merge pull request #1173 from etienne-lms/armv7-qemu 2018-02-07 11:57:19 +08:00
drivers Merge pull request #1193 from jwerner-chromium/JW_coreboot 2018-01-24 14:31:53 +00:00
lib Redefine SMC_UNK as -1 instead of 0xFFFFFFFF 2018-02-15 15:04:34 +00:00
plat bl1: add bl1_plat_handle_{pre,post}_image_load() 2018-02-02 00:19:04 +09:00
services Implement support for SMCCC v1.1 2018-01-29 09:58:57 +00:00
tools_share Support Trusted OS firmware extra images in TF tools 2017-08-09 18:06:05 +08:00