1. 11 10月, 2019 24 次提交
    • S
      env: ti: k3_rproc: Add common rproc environment variables · bb17aaf6
      Suman Anna 提交于
      Add a new file include/environment/ti/k3_rproc.h that defines
      common environment variables useful for booting various remote
      processors from U-Boot. This file is expected to be included in
      the board config files with the EXTRA_ENV_RPROC_SETTINGS added
      to CONFIG_EXTRA_ENV_SETTINGS and DEFAULT_RPROCS macro overwritten
      to include the actual list of processors to be booted.
      
      The 'boot_rprocs' variable just needs to be added to the board's
      bootcmd to automatically boot the processors, and runtime control
      can be achieved through the 'dorprocboot' variable.
      
      The variables are currently defined to use MMC as the boot media,
      and can be expanded in the future to include other boot media.
      The immediate usage is intended for K3 J721E SoCs.
      Signed-off-by: NJean-Jacques Hiblot <jjhiblot@ti.com>
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      bb17aaf6
    • S
      arm: dts: k3-am65-mcu: Add MCU domain R5F DT nodes · 35f21c3a
      Suman Anna 提交于
      The AM65x SoCs has a single dual-core Arm Cortex-R5F processor
      subsystem/cluster (MCU_R5FSS0) within the MCU domain. This cluster
      can be configured at boot time to be either run in a LockStep mode
      or in an Asymmetric Multi Processing (AMP) fashion in Split-mode.
      This subsystem has 64 KB each Tightly-Coupled Memory (TCM) internal
      memories for each core split between two banks - ATCM and BTCM
      (further interleaved into two banks). There are some IP integration
      differences from standard Arm R5 clusters such as the absence of
      an ACP port, presence of an additional TI-specific Region Address
      Translater (RAT) module for translating 32-bit CPU addresses into
      larger system bus addresses etc.
      
      Add the DT node for the MCU domain R5F cluster/subsystem, the two
      R5 cores are added as child nodes to the main cluster/subsystem node.
      The cluster is configured to run in Split-mode by default, with the
      ATCMs enabled to allow the R5 cores to execute code from DDR with
      boot-strapping code from ATCM. The inter-processor communication
      between the main A72 cores and these processors is achieved through
      shared memory and Mailboxes.
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      Signed-off-by: NLokesh Vutla <lokeshvutla@ti.com>
      35f21c3a
    • L
      arm: dts: k3-j721e-main: Add C71x DSP node · 1b846fc2
      Lokesh Vutla 提交于
      The J721E SoCs have a single TMS320C71x DSP Subsystem in the MAIN
      voltage domain containing the next-generation C711 CPU core. The
      subsystem has 32 KB of L1D configurable SRAM/Cache and 512 KB of
      L2 configurable SRAM/Cache. This subsystem has a CMMU but is not
      used currently. The inter-processor communication between the main
      A72 cores and the C711 processor is achieved through shared memory
      and a Mailbox. Add the DT node for this DSP processor sub-system
      in the common k3-j721e-main.dtsi file.
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      Signed-off-by: NLokesh Vutla <lokeshvutla@ti.com>
      1b846fc2
    • L
      arm: dts: k3-j721e-main: Add C66x DSP nodes · 293e3978
      Lokesh Vutla 提交于
      The J721E SoCs have two TMS320C66x DSP Core Subsystems (C66x CorePacs)
      in the MAIN voltage domain, each with a C66x Fixed/Floating-Point DSP
      Core, and 32 KB of L1P & L1D configurable SRAMs/Cache and an additional
      288 KB of L2 configurable SRAM/Cache. These subsystems do not have
      an MMU but contain a Region Address Translator (RAT) sub-module for
      translating 32-bit processor addresses into larger bus addresses.
      The inter-processor communication between the main A72 cores and
      these processors is achieved through shared memory and Mailboxes.
      Add the DT nodes for these DSP processor sub-systems in the common
      k3-j721e-main.dtsi file.
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      Signed-off-by: NLokesh Vutla <lokeshvutla@ti.com>
      293e3978
    • L
      arm: dts: k3-j721e-main: Add MAIN domain R5F cluster nodes · 55f8eb31
      Lokesh Vutla 提交于
      The J721E SoCs have 3 dual-core Arm Cortex-R5F processor (R5FSS)
      subsystems/clusters. One R5F cluster (MCU_R5FSS0) is present within
      the MCU domain, and the remaining two clusters are present in the
      MAIN domain (MAIN_R5FSS0 & MAIN_R5FSS1). Each of these can be
      configured at boot time to be either run in a LockStep mode or in
      an Asymmetric Multi Processing (AMP) fashion in Split-mode. These
      subsystems have 64 KB each Tightly-Coupled Memory (TCM) internal
      memories for each core split between two banks - ATCM and BTCM
      (further interleaved into two banks). There are some IP integration
      differences from standard Arm R5 clusters such as the absence of
      an ACP port, presence of an additional TI-specific Region Address
      Translater (RAT) module for translating 32-bit CPU addresses into
      larger system bus addresses etc.
      
      Add the DT nodes for these two MAIN domain R5F cluster/subsystems,
      the two R5 cores are each added as child nodes to the corresponding
      main cluster node. Configure SS0 in split mode an SS1 in lockstep mode,
      with the ATCMs enabled to allow the R5 cores to execute code from DDR
      with boot-strapping code from ATCM.
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      Signed-off-by: NLokesh Vutla <lokeshvutla@ti.com>
      55f8eb31
    • L
      arm: dts: k3-j721e-mcu: Add MCU domain R5F cluster node · b9f035e9
      Lokesh Vutla 提交于
      The J721E SoCs have 3 dual-core Arm Cortex-R5F processor (R5FSS)
      subsystems/clusters. One R5F cluster (MCU_R5FSS0) is present within
      the MCU domain, and the remaining two clusters are present in the
      MAIN domain (MAIN_R5FSS0 & MAIN_R5FSS1). Each of these can be
      configured at boot time to be either run in a LockStep mode or in
      an Asymmetric Multi Processing (AMP) fashion in Split-mode. These
      subsystems have 64 KB each Tightly-Coupled Memory (TCM) internal
      memories for each core split between two banks - ATCM and BTCM
      (further interleaved into two banks). There are some IP integration
      differences from standard Arm R5 clusters such as the absence of
      an ACP port, presence of an additional TI-specific Region Address
      Translater (RAT) module for translating 32-bit CPU addresses into
      larger system bus addresses etc.
      
      Add the DT node for the MCU domain R5F cluster/subsystem, the two
      R5 cores are added as child nodes to the main cluster/subsystem node.
      The cluster is configured to run in LockStep mode by default, with the
      ATCMs enabled to allow the R5 cores to execute code from DDR with
      boot-strapping code from ATCM. The inter-processor communication
      between the main A72 cores and these processors is achieved through
      shared memory and Mailboxes.
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      Signed-off-by: NLokesh Vutla <lokeshvutla@ti.com>
      b9f035e9
    • L
      remoteproc: Introduce K3 C66 and C71 remoteproc driver · ab827b38
      Lokesh Vutla 提交于
      Certain SoCs with K3 architecture have integrated a C66 Corepac DSP
      subsystem and an advanced C71 DSPs. Introduce a remoteproc driver
      that that does take care of loading an elf to any of the specified
      DSPs and start it.
      Signed-off-by: NLokesh Vutla <lokeshvutla@ti.com>
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      ab827b38
    • S
      dt-bindings: remoteproc: Add bindings for DSP C66x clusters on TI K3 SoCs · e18fb7dd
      Suman Anna 提交于
      Some Texas Instruments K3 family of SoCs have one of more Digital Signal
      Processor (DSP) subsystems that are comprised of either a TMS320C66x
      CorePac and/or a next-generation TMS320C71x CorePac processor subsystem.
      Add the device tree bindings document for the C66x DSP devices on these
      SoCs. The added example illustrates the DT nodes for the first C66x DSP
      device present on the K3 J721E family of SoCs.
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      Signed-off-by: NLokesh Vutla <lokeshvutla@ti.com>
      e18fb7dd
    • L
      remoteproc: Introduce K3 remoteproc driver for R5F subsystem · 4c850356
      Lokesh Vutla 提交于
      SoCs with K3 architecture have an integrated Arm Cortex-R5F subsystem
      that is comprised of dual-core Arm Cortex-R5F processor cores. This R5
      subsytem can be configured at boot time to be either run in a LockStep
      mode or in an Asymmetric Multi Processing (AMP) fashion in Split-mode.
      This subsystem has each Tightly-Coupled Memory (TCM) internal memories
      for each core split between two banks - TCMA and TCMB.
      
      Add a remoteproc driver to support this subsystem to be able to load
      and boot the R5 cores primarily in LockStep mode or split mode.
      Signed-off-by: NLokesh Vutla <lokeshvutla@ti.com>
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      4c850356
    • S
      dt-bindings: remoteproc: Add bindings for R5F subsystem on TI K3 SoCs · 471c2d5e
      Suman Anna 提交于
      The Texas Instruments K3 family of SoCs have one of more dual-core
      Arm Cortex R5F processor subsystems/clusters (R5FSS). Add the device
      tree bindings document for these R5F subsystem devices. These R5F
      processors do not have an MMU, and so require fixed memory carveout
      regions matching the firmware image addresses. The nodes require more
      than one memory region, with the first memory region used for DMA
      allocations at runtime. The remaining memory regions are reserved
      and are used for the loading and running of the R5F remote processors.
      
      The added example illustrates the DT nodes for the single R5FSS device
      present on K3 AM65x family of SoCs.
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      Signed-off-by: NLokesh Vutla <lokeshvutla@ti.com>
      471c2d5e
    • L
      remoteproc: tisci_proc: Add helper api for controlling core power domain · f7954828
      Lokesh Vutla 提交于
      Power domain for the remote cores needs to be handled in a right
      sequence as mandated by the spec. Introduce tisci helper apis
      that can control power-domains of remote cores. TISCI clients
      can use this api and control the remote cores power domain instead
      of hooking it to power-domain layer.
      Signed-off-by: NLokesh Vutla <lokeshvutla@ti.com>
      f7954828
    • L
      remoteproc: elf_loader: Introduce rproc_elf_get_boot_addr() api · 81e39fbd
      Lokesh Vutla 提交于
      Introduce rproc_elf_get_boot_addr() that returns the entry point of
      the elf file. This api auto detects the 64/32 bit elf file and returns
      the boot addr accordingly.
      Signed-off-by: NLokesh Vutla <lokeshvutla@ti.com>
      81e39fbd
    • L
      remoteproc: elf_loader: Introduce a common elf loader and checker functions · 856c0ad4
      Lokesh Vutla 提交于
      Introduce a common remoteproc elf loader and checker functions that
      automatically detects the 64 bit elf file or 32 bit elf file and
      loads/checks the sections accordingly.
      Signed-off-by: NLokesh Vutla <lokeshvutla@ti.com>
      Reviewed-by: NFabien Dessenne <fabien.dessenne@st.com>
      856c0ad4
    • L
      remoteproc: elf-loader: Add 64 bit elf loading support · e3c4d6f0
      Lokesh Vutla 提交于
      The current rproc-elf-loader supports loading of only 32 bit elf files.
      Introduce support for loading of 64 bit elf files in rproc-elf-loader.
      Signed-off-by: NLokesh Vutla <lokeshvutla@ti.com>
      Reviewed-by: NFabien Dessenne <fabien.dessenne@st.com>
      e3c4d6f0
    • L
      remoteproc: elf_loader: Always check the validity of the image before loading · 14d963d1
      Lokesh Vutla 提交于
      rproc_elf32_load_image() rely on user to send a valid address for elf loading.
      Instead do a sanity check on the address passed by user. This will help
      all rproc elf users to not call sanity_check explicitly before calling
      elf_loading.
      Signed-off-by: NLokesh Vutla <lokeshvutla@ti.com>
      Reviewed-by: NFabien Dessenne <fabien.dessenne@st.com>
      14d963d1
    • L
      remoteproc: ops: Add elf section size as input parameter to device_to_virt api · c08eb936
      Lokesh Vutla 提交于
      Introduce a new parameter "size" that accepts size of the region to
      remoteproc ops callback device_to_virt(). This can enforce more checks
      on the region that device_to_virt() is dealing with.
      Signed-off-by: NLokesh Vutla <lokeshvutla@ti.com>
      Tested-by: NFabien Dessenne <fabien.dessenne@st.com>
      Reviewed-by: NFabien Dessenne <fabien.dessenne@st.com>
      c08eb936
    • L
      dm: core: Add a function to count the children of a device · 240b9320
      Lokesh Vutla 提交于
      Add a function to count the available children of a device.
      Signed-off-by: NLokesh Vutla <lokeshvutla@ti.com>
      240b9320
    • A
      board: ti: am65x: Add UART boot procedure in README · bc74163a
      Andreas Dannenberg 提交于
      am65x ROM support booting over UART. And U-Boot built for am65x EVM
      supports UART boot as well. Add the UART boot procedure into the README
      also providing a corresponding example command sequence for execution
      on a host PC.
      Signed-off-by: NAndreas Dannenberg <dannenberg@ti.com>
      bc74163a
    • A
      configs: am65x_evm_r5: Activate early console functionality · b8cc99a4
      Andreas Dannenberg 提交于
      Activate early console functionality on AM654x devices to allow for an
      alternate serial port to be used to support UART-based boot. This is so
      that System Firmware (SYSFW) can get loaded over the serial port prior
      to the main console being brought up and made available.
      Signed-off-by: NAndreas Dannenberg <dannenberg@ti.com>
      b8cc99a4
    • A
      armv7R: dts: k3: am654: Add MCU_UART0 related definitions · 20a22967
      Andreas Dannenberg 提交于
      Although we currently use the MAIN_UART0 for R5 SPL console output there
      are cases where we require access to the MCU_UART0 as well for example in
      case of UART-based Y-Modem boot. To support these scenarios add related
      DTS definitions to be able to use that UART early on.
      Signed-off-by: NAndreas Dannenberg <dannenberg@ti.com>
      20a22967
    • A
      arm: K3: sysfw-loader: Allow loading SYSFW via Y-Modem · 921b3258
      Andreas Dannenberg 提交于
      In order to allow booting TI K3 family SoCs via Y-Modem add support for
      loading System Firmware by tapping into the associated SPL core loader
      function.
      
      In this context also make sure a console is available and if not go
      ahead and activate the early console feature which allows bringing up
      an alternate full console before the main console is activated. Such
      an alternate console is typically setup in a way that the associated
      UART can be fully initialized prior to SYSFW services being available.
      Signed-off-by: NAndreas Dannenberg <dannenberg@ti.com>
      921b3258
    • A
      arm: K3: common: Allow for early console functionality · e630afe1
      Andreas Dannenberg 提交于
      Implement an early console functionality in SPL that can be used before
      the main console is being brought up. This helps in situations where the
      main console is dependent on System Firmware (SYSFW) being up and running,
      which is usually not the case during the very early stages of boot. Using
      this early console functionality will allow for an alternate serial port
      to be used to support things like UART-based boot and early diagnostic
      messages until the main console is ready to get activated.
      Signed-off-by: NAndreas Dannenberg <dannenberg@ti.com>
      e630afe1
    • A
      spl: ymodem: Make SPL Y-Modem loader framework accessible · e413033d
      Andreas Dannenberg 提交于
      Expose SPL's Y-Modem core loader function via the common SPL header
      file so it can be re-used for purposes other than loading U-Boot itself.
      Signed-off-by: NAndreas Dannenberg <dannenberg@ti.com>
      e413033d
    • A
      spl: ymodem: Fix FIT loading termination handling · 9d6ee3e2
      Andreas Dannenberg 提交于
      During FIT reading through ymodem_read_fit() the function
      xyzModem_stream_read() is being used which returns zero once the end
      of a stream has been reached. This could lead to an premature exit from
      ymodem_read_fit() with certain-sized FIT images reporting that zero
      bytes overall were read. Such a premature exit would then result in an
      -EIO failure being triggered within the spl_load_simple_fit() caller
      function and ultimately lead to a boot failure.
      
      Fix this logic by simply aborting the stream read loops and continuing
      with the regular code flow which ultimately would lead to returning
      the number of bytes to be read ('size') as expected by the callers of
      ymodem_read_fit().
      
      Fixes: fa715193 ("spl: Add an option to load a FIT containing U-Boot from UART")
      Signed-off-by: NAndreas Dannenberg <dannenberg@ti.com>
      9d6ee3e2
  2. 10 10月, 2019 1 次提交
    • T
      Merge tag 'xilinx-for-v2020.01' of https://gitlab.denx.de/u-boot/custodians/u-boot-microblaze · 44fb0d6c
      Tom Rini 提交于
      Xilinx/FPGA changes for v2020.01
      
      FPGA:
      - Enable fpga loading on Versal
      - Minor fix
      
      Microblaze:
      - Fix LMB configurations to support initrds
      - Some other cleanups
      
      Zynq:
      - Minor config/dt changes
      - Add distro boot support for usb1 and mmc1
      - Remove Xilinx private boot commands and use only distro boot
      
      ZynqMP:
      - Kconfig cleanups, defconfig updates
      - Update some dt files
      - Add firmware driver for talking to PMUFW
      - Extend distro boot support for jtag
      - Add new IDs
      - Add system controller configurations
      - Convert code to talk firmware via mailbox or SMCs
      
      Versal:
      - Add board_late_init()
      - Add run time DT memory setup
      - Add DFU support
      - Extend distro boot support for jtag and dfu
      - Add clock driver
      - Tune mini configurations
      
      Xilinx:
      - Improve documentation (boot scripts, dt binding)
      - Enable run time initrd_high calculation
      - Define default SYS_PROMPT
      - Add zynq/zynqmp virtual defconfig
      
      Drivers:
      - Add Xilinx mailbox driver for talking to firmware
      - Clean zynq_gem for Versal
      - Move ZYNQ_HISPD_BROKEN to Kconfig
      - Wire genphy_init() in phy.c
      - Add Xilinx gii2rgmii bridge
      - Cleanup zynq_sdhci
      - dwc3 fix
      - zynq_gpio fix
      - axi_emac fix
      
      Others:
      - apalis-tk1 - clean config file
      44fb0d6c
  3. 09 10月, 2019 12 次提交
  4. 08 10月, 2019 3 次提交