consortium-data 0.5.0

Embedded chip-family databases and generated chip dumps for Consortium.
Documentation
name: MIMX93
trm: https://www.nxp.com/docs/en/reference-manual/IMX93RM.pdf
ap: ca55
interrupt_parent: gic
cp:
  - name: cm33
    variant: remote
remoteproc:
  cm33:
    # From mainline `imx93.dtsi` (`cm33: remoteproc-cm33`), the FRDM board's
    # `imx93-11x11-frdm.dts`, and the loader's address-translation table
    # (`imx_rproc_att_imx93` in `drivers/remoteproc/imx_rproc.c`).
    #
    # Unlike the i.MX 95 CM7, which is loaded into a DDR carveout, the i.MX 93
    # CM33 runs from TCM. The addresses below are the *device* (CM33) view that
    # the firmware links against, in the non-secure alias the NXP SDK uses:
    #
    #   TCM CODE  device 0x0FFE0000, 0x20000 (secure alias 0x1FFE0000)
    #   TCM SYS   device 0x20000000, 0x20000 (secure alias 0x30000000)
    #
    # Within TCM SYS the layout follows NXP's
    # `rpmsg_lite_pingpong_rtos_linux_remote` reference ELF:
    #
    #   0x20000000  0x3000   SDK-reserved (`.m33_suspend` starts here) -- left alone
    #   0x20003000  0x1B000  `.data`/`.bss`/stack, top 0x2001E000      -- `ram`
    #   0x2001E000  0x1000   resource table (`__RscTblStart`)          -- `shmem`
    #
    # The loader's translation windows are wider (0x0FFC0000/0x1FFC0000 and
    # 0x20000000/0x30000000, 0x40000 each), but only the top 128 KiB of the
    # code window is TCM: the SDK reference firmware places `.interrupts` at
    # 0x0FFE0000, and linking at the window base puts `.text` in no memory.
    #
    # `reserve` is false on all three TCM windows: they are not DRAM, so there
    # is nothing to carve out of the kernel's memory map. The vendor tree does
    # declare `rsc-table@2021e000` as `no-map` reserved memory -- that is the
    # *system* address of the shmem window below (0x20200000 + 0x1E000), and the
    # board DTS already reserves it, so re-emitting it here would duplicate the
    # node.
    compatible: fsl,imx93-cm33
    vector_section: .interrupts
    vector_placement: flash
    vector:
      name: m_interrupts
      read: true
      write: false
      execute: true
      window:
        origin: 0x0FFE0000
        length: 0x00001000
        reserve: false
    flash:
      origin: 0x0FFE1000
      length: 0x0001F000
      reserve: false
    shmem:
      # `.resource_table`, at the device address matching the board's
      # `rsc-table@2021e000` system carveout.
      name: m_rsc_tbl_in_tcm
      read: true
      write: true
      execute: false
      window:
        origin: 0x2001E000
        length: 0x00001000
        reserve: false
    ram:
      # TCM SYS between the SDK's suspend areas and the resource table.
      origin: 0x20003000
      length: 0x0001B000
      reserve: false
memory:
  trm_page: [43, 54]
  aliases:
    - offset: 0x20000000
      secure: false
    - offset: 0x30000000
      secure: true
  regions:
    - name: OCRAM
      type: sram
      base: 0x00480000
      length: 0x00040000
      visible: [ap, cm33]
peripheral:
  aliases:
    - address: 0x50000000
      secure: true
    - address: 0x40000000
      secure: false
  doorbells:
    - name: MU1
      page: 585
      type: mu
      clock:
        provider: clk
        id: IMX93_CLK_MU1_A_GATE
      length: 0x00020000
      window_length: 0x00010000
      parties:
        - core: linux
          window: a
          irq: 21
          page_memory: 62
          page_irq: 93
          memory: 0x04220000
        - core: optee
          window: a
          irq: 21
          page_memory: 62
          page_irq: 93
          memory: 0x04220000
        - core: cm33
          window: b
          irq: 22
          page_memory: 62
          page_irq: 93
          memory: 0x04230000
        - core: cm33-s
          window: b
          irq: 22
          page_memory: 62
          page_irq: 93
          memory: 0x04230000
      party_page: 585
      channels: 8
      channel_page: 586
    - name: MU2
      page: 585
      type: mu
      clock:
        provider: clk
        id: IMX93_CLK_MU2_A_GATE
      length: 0x00020000
      window_length: 0x00010000
      parties:
        - core: linux
          window: a
          irq: 23
          page_memory: 75
          page_irq: 93
          memory: 0x02430000
        - core: optee
          window: a
          irq: 23
          page_memory: 75
          page_irq: 93
          memory: 0x02430000
        - core: cm33
          window: b
          irq: 24
          page_memory: 75
          page_irq: 93
          memory: 0x02440000
        - core: cm33-s
          window: b
          irq: 24
          page_memory: 75
          page_irq: 93
          memory: 0x02440000
      party_page: 585
      channels: 8
      channel_page: 586