1. 08 Apr, 2021 3 commits
  2. 06 Apr, 2021 2 commits
    • Heyi Guo's avatar
      plat/arm/arm_image_load: refine plat_add_sp_images_load_info · abe6ce1d
      Heyi Guo authored
      
      
      Refine the function plat_add_sp_images_load_info() by saving the
      previous node and only setting its next link when the current node is
      valid. This can reduce the check for the next node and simply the
      total logic.
      Signed-off-by: default avatarHeyi Guo <guoheyi@linux.alibaba.com>
      Change-Id: I4061428bf49ef0c3816ac22aaeb2e50315531f88
      abe6ce1d
    • Heyi Guo's avatar
      plat/arm/arm_image_load: fix bug of overriding the last node · 47fe4c4f
      Heyi Guo authored
      
      
      The traverse flow in function plat_add_sp_images_load_info() will find
      the last node in the main load info list, with its
      next_load_info==NULL. However this node is still useful and should not
      be overridden with SP node info.
      
      The bug will cause below error on RDN2 for spmd enabled:
      
      ERROR:   Invalid NT_FW_CONFIG DTB passed
      
      Fix the bug by only setting the next_load_info of the last node in the
      original main node list.
      Signed-off-by: default avatarHeyi Guo <guoheyi@linux.alibaba.com>
      Change-Id: Icaee5da1f2d53b29fdd6085a8cc507446186fd57
      47fe4c4f
  3. 31 Mar, 2021 1 commit
  4. 29 Mar, 2021 9 commits
    • Omkar Anand Kulkarni's avatar
      plat/sgi: allow usage of secure partions on rdn2 platform · c0d55ef7
      Omkar Anand Kulkarni authored
      
      
      Add the secure partition mmap table and the secure partition boot
      information to support secure partitions on RD-N2 platform. In addition
      to this, add the required memory region mapping for accessing the
      SoC peripherals from the secure partition.
      Signed-off-by: default avatarOmkar Anand Kulkarni <omkar.kulkarni@arm.com>
      Change-Id: I2c75760d6c8c3da3ff4885599be420e924aeaf3c
      c0d55ef7
    • Aditya Angadi's avatar
      board/rdv1mc: initialize tzc400 controllers · f97b5795
      Aditya Angadi authored
      
      
      A TZC400 controller is placed inline on DRAM channels and regulates
      the secure and non-secure accesses to both secure and non-secure
      regions of the DRAM memory. Configure each of the TZC controllers
      across the Chips.
      
      For use by secure software, configure the first chip's trustzone
      controller to protect the upper 16MB of the memory of the first DRAM
      block for secure accesses only. The other regions are configured for
      non-secure read write access. For all the remote chips, all the DRAM
      regions are allowed for non-secure read and write access.
      Signed-off-by: default avatarAditya Angadi <aditya.angadi@arm.com>
      Change-Id: I809f27eccadfc23ea0ef64e2fd87f95eb8f195c1
      f97b5795
    • Aditya Angadi's avatar
      plat/sgi: allow access to TZC controller on all chips · 21803491
      Aditya Angadi authored
      
      
      On a multi-chip platform, the boot CPU on the first chip programs the
      TZC controllers on all the remote chips. Define a memory region map for
      the TZC controllers for all the remote chips and include it in the BL2
      memory map table.
      
      In addition to this, for SPM_MM enabled multi-chip platforms, increase
      the number of mmap entries and xlat table counts for EL3 execution
      context as well because the shared RAM regions and GIC address space of
      remote chips are accessed.
      Signed-off-by: default avatarAditya Angadi <aditya.angadi@arm.com>
      Change-Id: I6f0b5fd22f9f28046451e382eef7f1f9258d88f7
      21803491
    • Aditya Angadi's avatar
      plat/sgi: define memory regions for multi-chip platforms · 05b5c417
      Aditya Angadi authored
      
      
      For multi-chip platforms, add a macro to define the memory regions on
      chip numbers >1 and its associated access permissions. These memory
      regions are marked with non-secure access.
      Signed-off-by: default avatarAditya Angadi <aditya.angadi@arm.com>
      Change-Id: If3d6180fd8ea61f45147c39d3140d694abf06617
      05b5c417
    • Thomas Abraham's avatar
      plat/sgi: allow access to nor2 flash and system registers from s-el0 · 5dae6bc7
      Thomas Abraham authored
      
      
      Allow the access of system registers and nor2 flash memory region
      from s-el0. This allows the secure parititions residing at s-el0
      to access these memory regions.
      Signed-off-by: default avatarThomas Abraham <thomas.abraham@arm.com>
      Change-Id: I3887a86770de806323fbde0d20fdc96eec6e0c3c
      5dae6bc7
    • Thomas Abraham's avatar
      plat/sgi: define default list of memory regions for dmc620 tzc · b4d548f1
      Thomas Abraham authored
      
      
      Define a default DMC-620 TZC memory region configuration and use it to
      specify the TZC memory regions on sgi575, rdn1edge and rde1edge
      platforms. The default DMC-620 TZC memory regions are defined
      considering the support for secure paritition as well.
      Signed-off-by: default avatarThomas Abraham <thomas.abraham@arm.com>
      Change-Id: Iedee3e57d0d3de5b65321444da51ec990d3702db
      b4d548f1
    • Thomas Abraham's avatar
      plat/sgi: improve macros defining cper buffer memory region · d306eb80
      Thomas Abraham authored
      
      
      Remove the 'ARM_' prefix from the macros defining the CPER buffer memory
      and replace it with 'CSS_SGI_' prefix. These macros are applicable only
      for platforms supported within plat/sgi. In addition to this, ensure
      that these macros are defined only if the RAS_EXTENSION build option is
      enabled.
      Signed-off-by: default avatarThomas Abraham <thomas.abraham@arm.com>
      Change-Id: I44df42cded18d9d3a4cb13e5c990e9ab3194daee
      d306eb80
    • Thomas Abraham's avatar
      plat/sgi: refactor DMC-620 error handling SMC function id · 513ba5c9
      Thomas Abraham authored
      
      
      The macros defining the SMC function ids for DMC-620 error handling are
      listed in the sgi_base_platform_def.h header file. But these macros are
      not applicable for all platforms supported under plat/sgi. So move these
      macro definitions to sgi_ras.c file in which these are consumed. While
      at it, remove the AArch32 and error injection function ids as these are
      unused.
      Signed-off-by: default avatarThomas Abraham <thomas.abraham@arm.com>
      Change-Id: I249b54bf4c1b1694188a1e3b297345b942f16bc9
      513ba5c9
    • Thomas Abraham's avatar
      plat/sgi: refactor SDEI specific macros · a8834474
      Thomas Abraham authored
      
      
      The macros specific to SDEI defined in the sgi_base_platform_def.h are
      not applicable for all the platforms supported by plat/sgi. So refactor
      the SDEI specific macros into a new header file and include this file on
      only on platforms it is applicable on.
      Signed-off-by: default avatarThomas Abraham <thomas.abraham@arm.com>
      Change-Id: I0cb7125334f02a21cae1837cdfd765c16ab50bf5
      a8834474
  5. 26 Mar, 2021 2 commits
    • Bharat Gooty's avatar
      driver: brcm: add i2c driver · 48c6a6b6
      Bharat Gooty authored
      
      
      Broadcom I2C controller driver. Follwoing API's are supported:-
      - i2c_init() Intialize ethe I2C controller
      - i2c_probe()
      - i2c_set_bus_speed() Set the I2C bus speed
      - i2c_get_bus_speed() Get the current bus speed
      - i2c_recv_byte() Receive one byte of data.
      - i2c_send_byte() Send one byteof data
      - i2c_read_byte() Read single byte of data
      - i2c_read() Read multiple bytes of data
      - i2c_write_byte Write single byte of data
      - i2c_write() Write multiple bytes of data
      
      This driver is verified by reading the DDR SPD data.
      Signed-off-by: default avatarBharat Gooty <bharat.gooty@broadcom.com>
      Change-Id: I2d7fe53950e8b12fab19d0293020523ff8b74e13
      48c6a6b6
    • Andre Przywara's avatar
      allwinner: H616: Add reserved-memory node to DT · 0be10ee3
      Andre Przywara authored
      
      
      When the BL31 for the Allwinner H616 runs in DRAM, we need to make sure
      we tell the non-secure world about the memory region it uses.
      
      Add a reserved-memory node to the DT, which covers the area that BL31
      could occupy. The "no-map" property will prevent OSes from mapping
      the area, so there would be no speculative accesses.
      
      Change-Id: I808f3e1a8089da53bbe4fc6435a808e9159831e1
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      0be10ee3
  6. 25 Mar, 2021 6 commits
    • Andre Przywara's avatar
      allwinner: Add Allwinner H616 SoC support · 26123ca3
      Andre Przywara authored
      
      
      The new Allwinner H616 SoC lacks the management controller and the secure
      SRAM A2, so we need to tweak the memory map quite substantially:
      We run BL31 in DRAM. Since the DRAM starts at 1GB, we cannot use our
      compressed virtual address space (max 256MB) anymore, so we revert to
      the full 32bit VA space and use a flat mapping throughout all of it.
      
      The missing controller also means we need to always use the native PSCI
      ops, using the CPUIDLE hardware, as SCPI and suspend depend on the ARISC.
      
      Change-Id: I77169b452cb7f5dc2ef734f3fc6e5d931749141d
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      26123ca3
    • Andre Przywara's avatar
      allwinner: Add H616 SoC ID · bb104f27
      Andre Przywara authored
      
      
      Change-Id: I557fd05401e24204952135cf3ca26479a43ad1f1
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      bb104f27
    • Andre Przywara's avatar
      allwinner: Express memmap more dynamically · 01cec8f4
      Andre Przywara authored
      
      
      In preparation for changing the memory map, express the locations of the
      various code and data pieces more dynamically, allowing SoCs to override
      the memmap later.
      Also prepare for the SCP region to become optional.
      
      No functional change.
      
      Change-Id: I7ac01e309be2f23bde2ac2050d8d5b5e3d6efea2
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      01cec8f4
    • Andre Przywara's avatar
      allwinner: Move sunxi_cpu_power_off_self() into platforms · 9227719d
      Andre Przywara authored
      
      
      The code to power the current core off when SCPI is not available is now
      different for the two supported SoC families.
      To make adding new platforms easier, move sunxi_cpu_power_off_self()
      into the SoC directory, so we don't need to carry definitions for both
      methods for all SoCs.
      
      On the H6 we just need to trigger the CPUIDLE hardware, so can get rid
      of all the code to program the ARISC, which is now only needed for the
      A64 version.
      
      Change-Id: Id2a1ac7dcb375e2fd021b441575ce86b4d7edf2c
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      9227719d
    • Andre Przywara's avatar
      allwinner: Move SEPARATE_NOBITS_REGION to platforms · eb15bdaa
      Andre Przywara authored
      
      
      For the existing SoCs we support, we use SEPARATE_NOBITS_REGION, to move
      some parts of the data into separate memory regions (to save on the SRAM
      A2 we are loaded into).
      For the upcoming H616 platform this is of no concern (we run in DRAM),
      so make this flag a platform choice instead.
      
      Change-Id: Ic01d49578c6274660f8f112bd23680d3eca3be7a
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      eb15bdaa
    • Andre Przywara's avatar
      allwinner: A64: Limit FDT checks to reduce code size · 8fa5592b
      Andre Przywara authored
      
      
      The upcoming refactoring to support the new H616 SoCs will push the A64
      build over the edge, by using more than the 48KB of SRAM available.
      
      To reduce the code size, set some libfdt options that aim to reduce
      sanity checks (for saving code space):
      - ASSUME_LATEST: only allow v17 DTBs (as created by dtc)
      - ASSUME_NO_ROLLBACK: don't prepare for failed DT additions
      - ASSUME_LIBFDT_ORDER: assume sane ordering, as done by dtc
      
      Change-Id: I12c93ec09e7587c5ae71e54947f817c32ce5fd6d
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      8fa5592b
  7. 24 Mar, 2021 17 commits