lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200511113232.5771-1-oded.gabbay@gmail.com>
Date:   Mon, 11 May 2020 14:32:21 +0300
From:   Oded Gabbay <oded.gabbay@...il.com>
To:     linux-kernel@...r.kernel.org, oshpigelman@...ana.ai,
        ttayar@...ana.ai, gregkh@...uxfoundation.org
Subject: [PATCH 00/11] Adding GAUDI ASIC support to habanalabs driver

This patch-set adds support for initializing and sending workloads to
habanalabs deep-learning training accelerator ASIC, called GAUDI.

The GAUDI ASIC is based on the same architecture as the GOYA ASIC and
therefore, the driver's common code is applicable to it with only a few
changes. Almost all of the code included in this patch-set is the
ASIC-depedent code which is different per ASIC.

Similar to GOYA, GAUDI includes a set of eight TPC cores, a GEMM engine and
DMA channels to move data between host and different memories of the ASIC.
Each engine has a hardware queue manager (QMAN) attached to it, which
exposes 4 streams to allow complex programs with control flows (in
GOYA you had 1 stream per QMAN).

Patches 1-4 are changes to the common code that are needed for GAUDI. patch
5 adds the registers header files. patch 6 adds the GAUDI definitions to
the uapi file. patches 7-10 adds the GAUDI code itself and patch 11 enables
the GAUDI code in the driver.

Thanks,
Oded

Oded Gabbay (7):
  habanalabs: set PM profile to auto only for goya
  habanalabs: support clock gating enable/disable
  habanalabs: add gaudi asic registers header files
  uapi: habanalabs: add gaudi defines
  habanalabs: add gaudi asic-dependent code
  habanalabs: add hwmgr module for gaudi
  habanalabs: enable gaudi code in driver

Omer Shpigelman (4):
  habanalabs: add dedicated define for hard reset
  habanalabs: get card type, location from F/W
  habanalabs: add gaudi security module
  habanalabs: add gaudi profiler module

 .../ABI/testing/debugfs-driver-habanalabs     |   10 +
 .../ABI/testing/sysfs-driver-habanalabs       |   17 +
 drivers/misc/habanalabs/Makefile              |    3 +
 drivers/misc/habanalabs/debugfs.c             |   61 +
 drivers/misc/habanalabs/device.c              |   13 +-
 drivers/misc/habanalabs/gaudi/Makefile        |    5 +
 drivers/misc/habanalabs/gaudi/gaudi.c         | 7430 ++++++++++++++
 drivers/misc/habanalabs/gaudi/gaudiP.h        |  259 +
 .../misc/habanalabs/gaudi/gaudi_coresight.c   |  885 ++
 drivers/misc/habanalabs/gaudi/gaudi_hwmgr.c   |  117 +
 .../misc/habanalabs/gaudi/gaudi_security.c    | 9114 +++++++++++++++++
 drivers/misc/habanalabs/goya/goya.c           |   12 +
 drivers/misc/habanalabs/habanalabs.h          |   32 +-
 drivers/misc/habanalabs/habanalabs_drv.c      |   13 +-
 drivers/misc/habanalabs/habanalabs_ioctl.c    |    2 +
 drivers/misc/habanalabs/include/armcp_if.h    |   22 +-
 .../include/gaudi/asic_reg/cpu_if_regs.h      |  174 +
 .../include/gaudi/asic_reg/dma0_core_masks.h  |  348 +
 .../include/gaudi/asic_reg/dma0_core_regs.h   |  156 +
 .../include/gaudi/asic_reg/dma0_qm_masks.h    |  800 ++
 .../include/gaudi/asic_reg/dma0_qm_regs.h     |  834 ++
 .../include/gaudi/asic_reg/dma1_core_regs.h   |  156 +
 .../include/gaudi/asic_reg/dma1_qm_regs.h     |  834 ++
 .../include/gaudi/asic_reg/dma2_core_regs.h   |  156 +
 .../include/gaudi/asic_reg/dma2_qm_regs.h     |  834 ++
 .../include/gaudi/asic_reg/dma3_core_regs.h   |  156 +
 .../include/gaudi/asic_reg/dma3_qm_regs.h     |  834 ++
 .../include/gaudi/asic_reg/dma4_core_regs.h   |  156 +
 .../include/gaudi/asic_reg/dma4_qm_regs.h     |  834 ++
 .../include/gaudi/asic_reg/dma5_core_regs.h   |  156 +
 .../include/gaudi/asic_reg/dma5_qm_regs.h     |  834 ++
 .../include/gaudi/asic_reg/dma6_core_regs.h   |  156 +
 .../include/gaudi/asic_reg/dma6_qm_regs.h     |  834 ++
 .../include/gaudi/asic_reg/dma7_core_regs.h   |  156 +
 .../include/gaudi/asic_reg/dma7_qm_regs.h     |  834 ++
 .../gaudi/asic_reg/dma_if_e_n_down_ch0_regs.h |  896 ++
 .../gaudi/asic_reg/dma_if_e_n_down_ch1_regs.h |  896 ++
 .../include/gaudi/asic_reg/dma_if_e_n_regs.h  |  860 ++
 .../gaudi/asic_reg/dma_if_e_s_down_ch0_regs.h |  896 ++
 .../gaudi/asic_reg/dma_if_e_s_down_ch1_regs.h |  896 ++
 .../include/gaudi/asic_reg/dma_if_e_s_regs.h  |  860 ++
 .../gaudi/asic_reg/dma_if_w_n_down_ch0_regs.h |  896 ++
 .../gaudi/asic_reg/dma_if_w_n_down_ch1_regs.h |  896 ++
 .../include/gaudi/asic_reg/dma_if_w_n_regs.h  |  860 ++
 .../gaudi/asic_reg/dma_if_w_s_down_ch0_regs.h |  896 ++
 .../gaudi/asic_reg/dma_if_w_s_down_ch1_regs.h |  896 ++
 .../include/gaudi/asic_reg/dma_if_w_s_regs.h  |  860 ++
 .../include/gaudi/asic_reg/gaudi_blocks.h     | 4974 +++++++++
 .../include/gaudi/asic_reg/gaudi_regs.h       |  299 +
 .../include/gaudi/asic_reg/mme0_ctrl_regs.h   | 1456 +++
 .../include/gaudi/asic_reg/mme0_qm_masks.h    |  800 ++
 .../include/gaudi/asic_reg/mme0_qm_regs.h     |  834 ++
 .../include/gaudi/asic_reg/mme1_ctrl_regs.h   | 1456 +++
 .../include/gaudi/asic_reg/mme2_ctrl_regs.h   | 1456 +++
 .../include/gaudi/asic_reg/mme2_qm_regs.h     |  834 ++
 .../include/gaudi/asic_reg/mme3_ctrl_regs.h   | 1456 +++
 .../include/gaudi/asic_reg/mmu_up_regs.h      |   72 +
 .../gaudi/asic_reg/nif_rtr_ctrl_0_regs.h      |  896 ++
 .../gaudi/asic_reg/nif_rtr_ctrl_1_regs.h      |  896 ++
 .../gaudi/asic_reg/nif_rtr_ctrl_2_regs.h      |  896 ++
 .../gaudi/asic_reg/nif_rtr_ctrl_3_regs.h      |  896 ++
 .../gaudi/asic_reg/nif_rtr_ctrl_4_regs.h      |  896 ++
 .../gaudi/asic_reg/nif_rtr_ctrl_5_regs.h      |  896 ++
 .../gaudi/asic_reg/nif_rtr_ctrl_6_regs.h      |  896 ++
 .../gaudi/asic_reg/nif_rtr_ctrl_7_regs.h      |  896 ++
 .../include/gaudi/asic_reg/psoc_etr_regs.h    |  114 +
 .../gaudi/asic_reg/psoc_global_conf_masks.h   |  502 +
 .../gaudi/asic_reg/psoc_global_conf_regs.h    | 1062 ++
 .../gaudi/asic_reg/psoc_hbm_pll_regs.h        |  114 +
 .../gaudi/asic_reg/psoc_pci_pll_regs.h        |  114 +
 .../gaudi/asic_reg/psoc_timestamp_regs.h      |   56 +
 .../gaudi/asic_reg/sif_rtr_ctrl_0_regs.h      |  896 ++
 .../gaudi/asic_reg/sif_rtr_ctrl_1_regs.h      |  896 ++
 .../gaudi/asic_reg/sif_rtr_ctrl_2_regs.h      |  896 ++
 .../gaudi/asic_reg/sif_rtr_ctrl_3_regs.h      |  896 ++
 .../gaudi/asic_reg/sif_rtr_ctrl_4_regs.h      |  896 ++
 .../gaudi/asic_reg/sif_rtr_ctrl_5_regs.h      |  896 ++
 .../gaudi/asic_reg/sif_rtr_ctrl_6_regs.h      |  896 ++
 .../gaudi/asic_reg/sif_rtr_ctrl_7_regs.h      |  896 ++
 .../include/gaudi/asic_reg/stlb_regs.h        |   82 +
 .../include/gaudi/asic_reg/tpc0_cfg_masks.h   | 2578 +++++
 .../include/gaudi/asic_reg/tpc0_cfg_regs.h    | 1226 +++
 .../include/gaudi/asic_reg/tpc0_qm_masks.h    |  800 ++
 .../include/gaudi/asic_reg/tpc0_qm_regs.h     |  834 ++
 .../include/gaudi/asic_reg/tpc1_cfg_regs.h    | 1226 +++
 .../include/gaudi/asic_reg/tpc1_qm_regs.h     |  834 ++
 .../include/gaudi/asic_reg/tpc2_cfg_regs.h    | 1226 +++
 .../include/gaudi/asic_reg/tpc2_qm_regs.h     |  834 ++
 .../include/gaudi/asic_reg/tpc3_cfg_regs.h    | 1226 +++
 .../include/gaudi/asic_reg/tpc3_qm_regs.h     |  834 ++
 .../include/gaudi/asic_reg/tpc4_cfg_regs.h    | 1226 +++
 .../include/gaudi/asic_reg/tpc4_qm_regs.h     |  834 ++
 .../include/gaudi/asic_reg/tpc5_cfg_regs.h    | 1226 +++
 .../include/gaudi/asic_reg/tpc5_qm_regs.h     |  834 ++
 .../include/gaudi/asic_reg/tpc6_cfg_regs.h    | 1226 +++
 .../include/gaudi/asic_reg/tpc6_qm_regs.h     |  834 ++
 .../include/gaudi/asic_reg/tpc7_cfg_regs.h    | 1226 +++
 .../include/gaudi/asic_reg/tpc7_qm_regs.h     |  834 ++
 drivers/misc/habanalabs/include/gaudi/gaudi.h |   59 +
 .../include/gaudi/gaudi_async_events.h        |  310 +
 .../include/gaudi/gaudi_async_ids_map.h       |  687 ++
 .../include/gaudi/gaudi_coresight.h           |  367 +
 .../habanalabs/include/gaudi/gaudi_fw_if.h    |   36 +
 .../habanalabs/include/gaudi/gaudi_masks.h    |  450 +
 .../habanalabs/include/gaudi/gaudi_packets.h  |  212 +
 .../habanalabs/include/gaudi/gaudi_reg_map.h  |   27 +
 .../include/hw_ip/mmu/mmu_general.h           |    2 +-
 .../habanalabs/include/hw_ip/mmu/mmu_v1_1.h   |   16 +
 drivers/misc/habanalabs/sysfs.c               |    8 +-
 include/uapi/misc/habanalabs.h                |  167 +-
 110 files changed, 90045 insertions(+), 16 deletions(-)
 create mode 100644 drivers/misc/habanalabs/gaudi/Makefile
 create mode 100644 drivers/misc/habanalabs/gaudi/gaudi.c
 create mode 100644 drivers/misc/habanalabs/gaudi/gaudiP.h
 create mode 100644 drivers/misc/habanalabs/gaudi/gaudi_coresight.c
 create mode 100644 drivers/misc/habanalabs/gaudi/gaudi_hwmgr.c
 create mode 100644 drivers/misc/habanalabs/gaudi/gaudi_security.c
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/cpu_if_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma0_core_masks.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma0_core_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma0_qm_masks.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma0_qm_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma1_core_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma1_qm_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma2_core_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma2_qm_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma3_core_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma3_qm_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma4_core_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma4_qm_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma5_core_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma5_qm_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma6_core_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma6_qm_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma7_core_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma7_qm_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma_if_e_n_down_ch0_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma_if_e_n_down_ch1_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma_if_e_n_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma_if_e_s_down_ch0_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma_if_e_s_down_ch1_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma_if_e_s_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma_if_w_n_down_ch0_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma_if_w_n_down_ch1_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma_if_w_n_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma_if_w_s_down_ch0_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma_if_w_s_down_ch1_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/dma_if_w_s_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/gaudi_blocks.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/gaudi_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/mme0_ctrl_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/mme0_qm_masks.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/mme0_qm_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/mme1_ctrl_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/mme2_ctrl_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/mme2_qm_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/mme3_ctrl_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/mmu_up_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/nif_rtr_ctrl_0_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/nif_rtr_ctrl_1_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/nif_rtr_ctrl_2_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/nif_rtr_ctrl_3_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/nif_rtr_ctrl_4_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/nif_rtr_ctrl_5_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/nif_rtr_ctrl_6_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/nif_rtr_ctrl_7_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/psoc_etr_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/psoc_global_conf_masks.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/psoc_global_conf_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/psoc_hbm_pll_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/psoc_pci_pll_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/psoc_timestamp_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/sif_rtr_ctrl_0_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/sif_rtr_ctrl_1_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/sif_rtr_ctrl_2_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/sif_rtr_ctrl_3_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/sif_rtr_ctrl_4_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/sif_rtr_ctrl_5_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/sif_rtr_ctrl_6_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/sif_rtr_ctrl_7_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/stlb_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/tpc0_cfg_masks.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/tpc0_cfg_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/tpc0_qm_masks.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/tpc0_qm_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/tpc1_cfg_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/tpc1_qm_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/tpc2_cfg_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/tpc2_qm_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/tpc3_cfg_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/tpc3_qm_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/tpc4_cfg_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/tpc4_qm_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/tpc5_cfg_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/tpc5_qm_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/tpc6_cfg_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/tpc6_qm_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/tpc7_cfg_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/asic_reg/tpc7_qm_regs.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/gaudi.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/gaudi_async_events.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/gaudi_async_ids_map.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/gaudi_coresight.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/gaudi_fw_if.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/gaudi_masks.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/gaudi_packets.h
 create mode 100644 drivers/misc/habanalabs/include/gaudi/gaudi_reg_map.h
 create mode 100644 drivers/misc/habanalabs/include/hw_ip/mmu/mmu_v1_1.h

-- 
2.17.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ