1. 20 May, 2020 2 commits
  2. 19 May, 2020 4 commits
  3. 17 May, 2020 2 commits
    • Varun Wadekar's avatar
      Tegra: enable stack protection · 359acf77
      Varun Wadekar authored
      
      
      This patch sets ENABLE_STACK_PROTECTOR=strong and implements
      the platform support to generate a stack protection canary value.
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      Change-Id: Ia8afe464b5645917b1c77d49305d19c7cd01866a
      359acf77
    • Varun Wadekar's avatar
      Fix compilation error when ENABLE_PIE=1 · 1a04b2e5
      Varun Wadekar authored
      
      
      This patch fixes compilation errors when ENABLE_PIE=1.
      
      <snip>
      bl31/aarch64/bl31_entrypoint.S: Assembler messages:
      bl31/aarch64/bl31_entrypoint.S:61: Error: invalid operand (*UND* section) for `~'
      bl31/aarch64/bl31_entrypoint.S:61: Error: invalid immediate
      Makefile:1079: recipe for target 'build/tegra/t194/debug/bl31/bl31_entrypoint.o' failed
      <snip>
      
      Verified by setting 'ENABLE_PIE=1' for Tegra platform builds.
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      Change-Id: Ifd184f89b86b4360fda86a6ce83fd8495f930bbc
      1a04b2e5
  4. 15 May, 2020 3 commits
  5. 14 May, 2020 2 commits
  6. 13 May, 2020 7 commits
  7. 12 May, 2020 1 commit
    • Varun Wadekar's avatar
      Tegra: introduce support for SMCCC_ARCH_SOC_ID · b5b2923d
      Varun Wadekar authored
      
      
      This patch returns the SOC version and revision values from
      the 'plat_get_soc_version' and 'plat_get_soc_revision' handlers.
      
      Verified using TFTF SMCCC_ARCH_SOC_ID test.
      
      <snip>
      > Executing 'SMCCC_ARCH_SOC_ID test'
        TEST COMPLETE                                                 Passed
      SOC Rev = 0x102
      SOC Ver = 0x36b0019
      <snip>
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      Change-Id: Ibd7101619143b74f6f6660732daeac1a8bca3e44
      b5b2923d
  8. 08 May, 2020 1 commit
  9. 07 May, 2020 2 commits
  10. 05 May, 2020 11 commits
    • Andre Przywara's avatar
      arm_fpga: Read UART address from DT · dee3042c
      Andre Przywara authored
      
      
      The arm_fpga port requires a DTB, to launch a BL33 payload.
      To make this port more flexible, we can also use the information in the
      DT to configure the console driver.
      For a start, find the DT node pointed to by the stdout-path property, and
      read the base address from there.
      This assumes for now that the stdout-path points to a PL011 UART.
      
      This allows to remove platform specific addresses from the image. We
      keep the original base address for the crash console.
      
      Change-Id: I46a990de2315f81cae4d7913ae99a07b0bec5cb1
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      dee3042c
    • Andre Przywara's avatar
      plat/stm32: Use generic fdt_get_stdout_node_offset() · 7a61114d
      Andre Przywara authored
      
      
      Now that we have an implementation for getting the node offset of the
      stdout-path property in the generic fdt_wrappers code, use that to
      replace the current ST platform specific implementation.
      
      Change-Id: I5dd05684e7ca3cb563b5f71c885e1066393e057e
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      7a61114d
    • Andre Przywara's avatar
      arm_fpga: Read GICD and GICR base addresses from DT · 1a0f9366
      Andre Przywara authored
      
      
      Since we use a DTB with all platform information to pass this on to a
      kernel loaded as BL33, we can as well make use of it for our own
      purposes.
      
      Every DT would contain a node for the GIC(v3) interrupt controller, so
      we can read the base address for the distributor and redistributors from
      there.
      
      This avoids hard coding this information in the code and allows for a more
      flexible binary.
      
      Change-Id: Ic530e223a21a45bc30a07a21048116d5af69e972
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      1a0f9366
    • Andre Przywara's avatar
      fdt/wrappers: Introduce code to find UART DT node · 60e2e27d
      Andre Przywara authored
      
      
      The stdout-path property in the /chosen node of a DTB points to a device
      node, which is used for boot console output.
      On most (if not all) ARM based platforms this is the debug UART.
      The ST platform code contains a function to parse this property and
      chase down eventual aliases to learn the node offset of this UART node.
      
      Introduce a slightly more generalised version of this ST platform function
      in the generic fdt_wrappers code. This will be useful for other platforms
      as well.
      
      Change-Id: Ie6da47ace7833861b5e35fe8cba49835db3659a5
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      60e2e27d
    • Andre Przywara's avatar
      arm_fpga: Read generic timer counter frequency from DT · 670c66af
      Andre Przywara authored
      
      
      The ARM Generic Timer DT binding describes an (optional) property to
      declare the counter frequency. Its usage is normally discouraged, as the
      value should be read from the CNTFRQ_EL0 system register.
      
      However in our case we can use it to program this register in the first
      place, which avoids us to hard code a counter frequency into the code.
      We keep some default value in, if the DT lacks that property for
      whatever reason.
      
      Change-Id: I5b71176db413f904f21eb16f3302fbb799cb0305
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      670c66af
    • Andre Przywara's avatar
      plat/stm32: Use generic fdt_get_reg_props_by_name() · 7ad6d362
      Andre Przywara authored
      
      
      The STM32 platform port parse DT nodes to find base address to
      peripherals. It does this by using its own implementation, even though
      this functionality is generic and actually widely useful outside of the
      STM32 code.
      
      Re-implement fdt_get_reg_props_by_name() on top of the newly introduced
      fdt_get_reg_props_by_index() function, and move it to fdt_wrapper.c.
      This is removes the assumption that #address-cells and #size-cells are
      always one.
      
      Change-Id: I6d584930262c732b6e0356d98aea50b2654f789d
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      7ad6d362
    • Andre Przywara's avatar
      arm_fpga: Use Generic UART · 93bb7a0a
      Andre Przywara authored
      
      
      The SCP firmware on the ARM FPGA initialises the UART already. This allows
      us to treat the PL011 as an SBSA Generic UART, which does not require
      any further setup.
      
      This in particular removes the need for any baudrate and base clock related
      settings to be hard coded into the BL31 image.
      
      Change-Id: I16fc943526267356b97166a7068459e06ff77f0f
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      93bb7a0a
    • Sandrine Bailleux's avatar
    • Sandrine Bailleux's avatar
      Merge changes I85eb75cf,Ic6d9f927 into integration · 6eb4304c
      Sandrine Bailleux authored
      * changes:
        fconf: Update dyn_config compatible string
        doc: Add binding document for fconf.
      6eb4304c
    • Sandrine Bailleux's avatar
    • Manish V Badarkhe's avatar
      Fix SMCCC_ARCH_SOC_ID implementation · a718c3d6
      Manish V Badarkhe authored
      Commit 0e753437
      
       ("Implement SMCCC_ARCH_SOC_ID SMC call") executes
      and return the result of SMCCC_ARCH_SOC_ID(soc_id_type) to the
      SMCCC_ARCH_FEATURES(SMCCC_ARCH_SOC_ID) itself. Moreover it expect to
      pass soc_id_type for SMCCC_ARCH_FEATURES(SMCCC_ARCH_SOC_ID) which is
      incorrect.
      
      Fix the implementation by returning SMC_OK for
      SMCCC_ARCH_FEATURES(SMCCC_ARCH_SOC_ID) always and move the current
      implementation under "smccc_arch_id" function which gets called from
      SMC handler on receiving "SMCCC_ARCH_SOC_ID" command.
      
      This change is tested over linux operating system
      
      Change-Id: I61a980045081eae786b907d408767ba9ecec3468
      Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
      Signed-off-by: default avatarManish V Badarkhe <Manish.Badarkhe@arm.com>
      a718c3d6
  11. 04 May, 2020 1 commit
    • Manish Pandey's avatar
      Merge changes from topic "fdt_wrappers_rework" into integration · 65808674
      Manish Pandey authored
      * changes:
        arm: fconf: Fix GICv3 dynamic configuration
        plat/stm32: Implement fdt_read_uint32_default() as a wrapper
        fdt/wrappers: Replace fdtw_read_cells() implementation
        plat/stm32: Use generic fdt_read_uint32_array() implementation
        fdt/wrappers: Generalise fdtw_read_array()
      65808674
  12. 30 Apr, 2020 3 commits
    • Andre Przywara's avatar
      arm: fconf: Fix GICv3 dynamic configuration · 364ad245
      Andre Przywara authored
      
      
      At the moment the fconf_populate_gicv3_config() implementation is
      somewhat incomplete: First it actually fails to store the retrieved
      information (the local addr[] array is going nowhere), but also it makes
      quite some assumptions about the device tree passed to it: it needs to
      use two address-cells and two size-cells, and also requires all five
      register regions to be specified, where actually only the first two
      are mandatory according to the binding (and needed by our code).
      
      Fix this by introducing a proper generic function to retrieve "reg"
      property information from a DT node:
      We retrieve the #address-cells and #size-cells properties from the
      parent node, then use those to extract the right values from the "reg"
      property. The function takes an index to select one region of a reg
      property.
      
      This is loosely based on the STM32 implementation using "reg-names",
      which we will subsume in a follow-up patch.
      
      Change-Id: Ia59bfdf80aea4e36876c7b6ed4d153e303f482e8
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      364ad245
    • Louis Mayencourt's avatar
      fconf: Update dyn_config compatible string · 592c396d
      Louis Mayencourt authored
      
      
      Dynamic configuration properties are fconf properties. Modify the
      compatible string from "arm,.." to "fconf,.." to reflect this.
      Signed-off-by: default avatarLouis Mayencourt <louis.mayencourt@arm.com>
      Change-Id: I85eb75cf877c5f4d3feea3936d4c348ca843bc6c
      592c396d
    • Louis Mayencourt's avatar
      doc: Add binding document for fconf. · 4874793d
      Louis Mayencourt authored
      
      
      Complete the documentation with information on how to write a DTS for
      fconf. This patch adds the bindings information for dynamic
      configuration properties.
      Signed-off-by: default avatarLouis Mayencourt <louis.mayencourt@arm.com>
      Change-Id: Ic6d9f927df53bb87315c23ec5a8943d0c3258d45
      4874793d
  13. 29 Apr, 2020 1 commit
    • Andre Przywara's avatar
      plat/stm32: Implement fdt_read_uint32_default() as a wrapper · be858cff
      Andre Przywara authored
      
      
      The STM32 platform code uses its own set of FDT helper functions,
      although some of them are fairly generic.
      
      Remove the implementation of fdt_read_uint32_default() and implement it
      on top of the newly introduced fdt_read_uint32() function, then convert
      all users over.
      
      This also fixes two callers, which were slightly abusing the "default"
      semantic.
      
      Change-Id: I570533362b4846e58dd797a92347de3e0e5abb75
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      be858cff