1. 14 Dec, 2020 2 commits
    • Samuel Holland's avatar
      allwinner: Add SPC security setup for H6 · 49d98cd5
      Samuel Holland authored
      
      
      The H6 has a "secure port controller" similar to the A64/H5, but with
      more ports and a different register layout. Split the platform-specific
      parts out into a header, and add the missing MMIO base address.
      Signed-off-by: default avatarSamuel Holland <samuel@sholland.org>
      Change-Id: I3703868bc595459ecf9568b9d1605cb1be014bf5
      49d98cd5
    • Samuel Holland's avatar
      allwinner: Add R_PRCM security setup for H6 · 978a8240
      Samuel Holland authored
      
      
      H6 has a reorganized R_PRCM compared to A64/H5, with the security switch
      at a different offset. Until now, we did not notice, because the switch
      has no effect unless the secure mode e-fuse is blown.
      
      Since we are adding more platform-specific CCU registers, move them to
      their own header, and out of the memory map (where they do not belong).
      Signed-off-by: default avatarSamuel Holland <samuel@sholland.org>
      Change-Id: Ie77476db0515080954eaa2e32bf6c3de657cda86
      978a8240
  2. 23 Mar, 2020 1 commit
    • Andre Przywara's avatar
      allwinner: H6: Fix GPIO and CCU memory map addresses · 5fac0d32
      Andre Przywara authored
      
      
      The base address for both the GPIO and the clock unit of the H6 memory map
      have been typo-ed. Fix them to match the Linux DT and the manual.
      
      The H6 code use neither of them, so this doesn't change or fix anything
      in the real world, but should be corrected anyway.
      
      The issue was found and reported by Github user "armlabs".
      
      Change-Id: Ic6fdfb732ce1cfc54cbb927718035624a06a9e08
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      5fac0d32
  3. 13 Feb, 2020 1 commit
  4. 08 Nov, 2018 1 commit
    • Antonio Nino Diaz's avatar
      Standardise header guards across codebase · c3cf06f1
      Antonio Nino Diaz authored
      
      
      All identifiers, regardless of use, that start with two underscores are
      reserved. This means they can't be used in header guards.
      
      The style that this project is now to use the full name of the file in
      capital letters followed by 'H'. For example, for a file called
      "uart_example.h", the header guard is UART_EXAMPLE_H.
      
      The exceptions are files that are imported from other projects:
      
      - CryptoCell driver
      - dt-bindings folders
      - zlib headers
      
      Change-Id: I50561bf6c88b491ec440d0c8385c74650f3c106e
      Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      c3cf06f1
  5. 20 Oct, 2018 3 commits
    • Andre Przywara's avatar
      allwinner: Use the arisc to turn off ARM cores · 7db0c960
      Andre Przywara authored
      
      
      PSCI requires a core to turn itself off, which we can't do properly by
      just executing an algorithm on that very core. As a consequence we just
      put a core into WFI on CPU_OFF right now.
      To fix this let's task the "arisc" management processor (an OpenRISC
      core) with that task of asserting reset and turning off the core's power
      domain. We use a handcrafted sequence of OpenRISC instructions to
      achieve this, and hand this data over to the new sunxi_execute_arisc_code()
      routine.
      The commented source code for this routine is provided in a separate file,
      but the ATF code contains the already encoded instructions as data.
      The H6 uses the same algorithm, but differs in the MMIO addresses, so
      provide a SoC (family) specific copy of that code.
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      7db0c960
    • Andre Przywara's avatar
      allwinner: H6: Fix SRAM size · f78f00aa
      Andre Przywara authored
      
      
      The SRAM in the Allwinner H6 SoC starts at 0x2000, with the last part
      ending at 0x117fff (although with gaps in between).
      So SUNXI_SRAM_SIZE should be 0xf8000, not 0x98000.
      
      Fix this to map the arisc exception vector area, which we will need
      shortly.
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      f78f00aa
    • Andre Przywara's avatar
      allwinner: Adjust memory mapping to fit into 256MB · c3af6b00
      Andre Przywara authored
      
      
      At the moment we map as much of the DRAM into EL3 as possible, however
      we actually don't use it. The only exception is the secure DRAM for
      BL32 (if that is configured).
      
      To decrease the memory footprint of ATF, we save on some page tables by
      reducing the memory mapping to the actually required regions: SRAM, device
      MMIO, secure DRAM and U-Boot (to be used later).
      This introduces a non-identity mapping for the DRAM regions.
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      c3af6b00
  6. 03 Jul, 2018 1 commit
    • Andre Przywara's avatar
      allwinner: Add Allwinner H6 SoC support · bed42a5d
      Andre Przywara authored
      
      
      The H6 is Allwinner's most recent SoC. It shares most peripherals with the
      other ARMv8 Allwinner SoCs (A64/H5), but has a completely different memory
      map.
      
      Introduce a separate platform target, which includes a different header
      file to cater for the address differences. Also add the new build target
      to the documentation.
      
      The new ATF platform name is "sun50i_h6".
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      bed42a5d