From 8c583b8221fa9fa4317d99b94ed54666f5f43fe6 Mon Sep 17 00:00:00 2001
From: Suryanarayana Raju Sangani <ssangani@xilinx.com>
Date: Sat, 12 Nov 2022 00:30:28 +0530
Subject: [PATCH] Linux Driver 2022.1.5 patch: Added support for PF/VF 4k
 queues

---
 QDMA/linux-kernel/COPYING                     |    0
 QDMA/linux-kernel/LICENSE                     |    0
 QDMA/linux-kernel/Makefile                    |    4 +-
 QDMA/linux-kernel/RELEASE                     |   21 +-
 QDMA/linux-kernel/apps/Makefile               |    4 +-
 QDMA/linux-kernel/apps/dma-ctl/Makefile       |    4 +-
 QDMA/linux-kernel/apps/dma-ctl/cmd_parse.c    |    6 +-
 QDMA/linux-kernel/apps/dma-ctl/cmd_parse.h    |   40 +-
 QDMA/linux-kernel/apps/dma-ctl/main.c         |    4 +-
 QDMA/linux-kernel/apps/dma-ctl/version.h      |    6 +-
 .../apps/dma-from-device/Makefile             |   54 +-
 .../apps/dma-from-device/dma_from_device.c    |  472 +-
 .../apps/dma-from-device/version.h            |    6 +-
 QDMA/linux-kernel/apps/dma-latency/Makefile   |   78 +-
 QDMA/linux-kernel/apps/dma-latency/Readme.txt |    4 +-
 QDMA/linux-kernel/apps/dma-latency/dmalat.c   |    6 +-
 .../dma-latency/sample_dma_latency_config.txt |    4 +-
 QDMA/linux-kernel/apps/dma-latency/version.h  |    6 +-
 QDMA/linux-kernel/apps/dma-perf/Makefile      |   78 +-
 QDMA/linux-kernel/apps/dma-perf/dmaperf.c     |    6 +-
 .../apps/dma-perf/dmaperf_config/mm-bi.zip    |  Bin 18447 -> 0 bytes
 .../apps/dma-perf/dmaperf_config/mm-c2h.zip   |  Bin 18719 -> 0 bytes
 .../apps/dma-perf/dmaperf_config/mm-h2c.zip   |  Bin 17146 -> 0 bytes
 .../apps/dma-perf/dmaperf_config/st-bi.zip    |  Bin 90077 -> 0 bytes
 .../dmaperf_config/st-c2h-pfetch1.zip         |  Bin 102427 -> 0 bytes
 .../apps/dma-perf/dmaperf_config/st-h2c.zip   |  Bin 83913 -> 0 bytes
 QDMA/linux-kernel/apps/dma-perf/version.h     |    6 +-
 QDMA/linux-kernel/apps/dma-to-device/Makefile |   78 +-
 .../apps/dma-to-device/dma_to_device.c        |  530 +-
 .../linux-kernel/apps/dma-to-device/version.h |    6 +-
 QDMA/linux-kernel/apps/dma-utils/Makefile     |   52 +-
 .../apps/dma-utils/dma_xfer_utils.c           |  428 +-
 QDMA/linux-kernel/apps/dma-utils/dmactl.c     |   13 +-
 .../apps/dma-utils/dmactl_internal.h          |   46 +-
 QDMA/linux-kernel/apps/dma-utils/dmactl_reg.c |    0
 QDMA/linux-kernel/apps/dma-utils/dmautils.c   |    0
 QDMA/linux-kernel/apps/dma-utils/dmautils.h   |    0
 QDMA/linux-kernel/apps/dma-utils/dmaxfer.c    |    4 +-
 QDMA/linux-kernel/apps/dma-utils/dmaxfer.h    |    0
 QDMA/linux-kernel/apps/dma-utils/version.h    |    6 +-
 QDMA/linux-kernel/apps/dma-xfer/Makefile      |    4 +-
 QDMA/linux-kernel/apps/dma-xfer/dmaxfer.c     |    4 +-
 .../apps/dma-xfer/sample_qdma_xfer_config.txt |    4 +-
 QDMA/linux-kernel/apps/dma-xfer/version.h     |    6 +-
 QDMA/linux-kernel/apps/include/qdma_nl.h      |   24 +-
 .../apps/include/qdma_user_reg_dump.h         |   24 +-
 QDMA/linux-kernel/apps/include/xdev_regs.h    |   24 +-
 QDMA/linux-kernel/bsd_license.txt             |   24 +-
 QDMA/linux-kernel/docs/README                 |    4 +-
 QDMA/linux-kernel/docs/dma-ctl.8.gz           |  Bin
 QDMA/linux-kernel/docs/dmactl.8.gz            |  Bin 2338 -> 0 bytes
 QDMA/linux-kernel/driver/Makefile             |    4 +-
 QDMA/linux-kernel/driver/include/qdma_nl.h    |    4 +-
 .../driver/include/qdma_user_reg_dump.h       |    4 +-
 QDMA/linux-kernel/driver/include/xdev_regs.h  |    4 +-
 QDMA/linux-kernel/driver/libqdma/Makefile     |    4 +-
 .../driver/libqdma/libqdma_config.c           |    4 +-
 .../driver/libqdma/libqdma_config.h           |    4 +-
 .../driver/libqdma/libqdma_export.c           |    4 +-
 .../driver/libqdma/libqdma_export.h           |    7 +-
 .../eqdma_cpm5_access/eqdma_cpm5_access.c     |    5 +-
 .../eqdma_cpm5_access/eqdma_cpm5_access.h     |    3 +-
 .../eqdma_cpm5_access/eqdma_cpm5_reg.h        |  526 +-
 .../eqdma_cpm5_access/eqdma_cpm5_reg_dump.c   |  232 +-
 .../eqdma_soft_access/eqdma_soft_access.c     |  124 +-
 .../eqdma_soft_access/eqdma_soft_access.h     |   13 +-
 .../eqdma_soft_access/eqdma_soft_reg.h        |  422 +-
 .../eqdma_soft_access/eqdma_soft_reg_dump.c   | 3939 +++++---
 .../libqdma/qdma_access/qdma_access_common.c  |   51 +-
 .../libqdma/qdma_access/qdma_access_common.h  |    8 +-
 .../libqdma/qdma_access/qdma_access_errors.h  |    3 +-
 .../libqdma/qdma_access/qdma_access_export.h  |    3 +-
 .../libqdma/qdma_access/qdma_access_version.h |    5 +-
 .../qdma_cpm4_access/qdma_cpm4_access.c       |    3 +-
 .../qdma_cpm4_access/qdma_cpm4_access.h       |    3 +-
 .../qdma_cpm4_access/qdma_cpm4_reg.h          |    3 +-
 .../qdma_cpm4_access/qdma_cpm4_reg_dump.c     |    3 +-
 .../driver/libqdma/qdma_access/qdma_list.c    |    3 +-
 .../driver/libqdma/qdma_access/qdma_list.h    |    3 +-
 .../libqdma/qdma_access/qdma_mbox_protocol.c  |    3 +-
 .../libqdma/qdma_access/qdma_mbox_protocol.h  |    3 +-
 .../libqdma/qdma_access/qdma_platform.h       |    3 +-
 .../libqdma/qdma_access/qdma_reg_dump.h       |    3 +-
 .../libqdma/qdma_access/qdma_resource_mgmt.c  |    3 +-
 .../libqdma/qdma_access/qdma_resource_mgmt.h  |    3 +-
 .../qdma_s80_hard_access.c                    | 5894 ------------
 .../qdma_s80_hard_access.h                    |  278 -
 .../qdma_s80_hard_access/qdma_s80_hard_reg.h  | 2045 -----
 .../qdma_s80_hard_reg_dump.c                  | 8024 -----------------
 .../qdma_soft_access/qdma_soft_access.c       |    5 +-
 .../qdma_soft_access/qdma_soft_access.h       |    3 +-
 .../qdma_soft_access/qdma_soft_reg.h          |    3 +-
 .../linux-kernel/driver/libqdma/qdma_compat.h |    4 +-
 .../driver/libqdma/qdma_context.c             |    6 +-
 .../driver/libqdma/qdma_context.h             |   12 +-
 .../driver/libqdma/qdma_debugfs.c             |    4 +-
 .../driver/libqdma/qdma_debugfs.h             |    4 +-
 .../driver/libqdma/qdma_debugfs_dev.c         |    4 +-
 .../driver/libqdma/qdma_debugfs_dev.h         |    4 +-
 .../driver/libqdma/qdma_debugfs_queue.c       |    4 +-
 .../driver/libqdma/qdma_debugfs_queue.h       |    4 +-
 QDMA/linux-kernel/driver/libqdma/qdma_descq.c |    4 +-
 QDMA/linux-kernel/driver/libqdma/qdma_descq.h |    4 +-
 .../linux-kernel/driver/libqdma/qdma_device.c |   19 +-
 .../linux-kernel/driver/libqdma/qdma_device.h |    4 +-
 QDMA/linux-kernel/driver/libqdma/qdma_intr.c  |    8 +-
 QDMA/linux-kernel/driver/libqdma/qdma_intr.h  |    4 +-
 .../driver/libqdma/qdma_license.h             |    4 +-
 QDMA/linux-kernel/driver/libqdma/qdma_mbox.c  |    4 +-
 QDMA/linux-kernel/driver/libqdma/qdma_mbox.h  |    4 +-
 .../driver/libqdma/qdma_platform.c            |    4 +-
 .../driver/libqdma/qdma_platform_env.h        |    4 +-
 QDMA/linux-kernel/driver/libqdma/qdma_regs.c  |    4 +-
 QDMA/linux-kernel/driver/libqdma/qdma_regs.h  |    4 +-
 QDMA/linux-kernel/driver/libqdma/qdma_sriov.c |    4 +-
 .../linux-kernel/driver/libqdma/qdma_st_c2h.c |    4 +-
 .../linux-kernel/driver/libqdma/qdma_st_c2h.h |    4 +-
 .../linux-kernel/driver/libqdma/qdma_thread.c |    4 +-
 .../linux-kernel/driver/libqdma/qdma_thread.h |    4 +-
 .../linux-kernel/driver/libqdma/qdma_ul_ext.h |    4 +-
 QDMA/linux-kernel/driver/libqdma/thread.c     |    4 +-
 QDMA/linux-kernel/driver/libqdma/thread.h     |    4 +-
 QDMA/linux-kernel/driver/libqdma/version.h    |    6 +-
 QDMA/linux-kernel/driver/libqdma/xdev.c       |    9 +-
 QDMA/linux-kernel/driver/libqdma/xdev.h       |    4 +-
 .../driver/make_rules/common_flags.mk         |    4 +-
 .../driver/make_rules/distro_check.mk         |    4 +-
 .../driver/make_rules/kernel_check.mk         |    4 +-
 QDMA/linux-kernel/driver/src/Makefile         |    4 +-
 QDMA/linux-kernel/driver/src/cdev.c           |    4 +-
 QDMA/linux-kernel/driver/src/cdev.h           |    4 +-
 QDMA/linux-kernel/driver/src/nl.c             |    4 +-
 QDMA/linux-kernel/driver/src/nl.h             |    4 +-
 QDMA/linux-kernel/driver/src/pci_ids.h        |   18 +-
 QDMA/linux-kernel/driver/src/qdma_mod.c       |    4 +-
 QDMA/linux-kernel/driver/src/qdma_mod.h       |    4 +-
 QDMA/linux-kernel/driver/src/version.h        |    6 +-
 QDMA/linux-kernel/license.txt                 |    0
 .../license-for-datafile_16bit_pattern.txt    |   36 +-
 .../scripts/qdma_generate_conf_file.sh        |    6 +-
 .../scripts/qdma_run_test_mm_vf.sh            |    4 +-
 QDMA/linux-kernel/scripts/qdma_run_test_pf.sh |    4 +-
 .../scripts/qdma_run_test_st_vf.sh            |    4 +-
 QDMA/linux-kernel/scripts/qdma_vf_auto_tst.sh |    4 +-
 144 files changed, 4902 insertions(+), 19139 deletions(-)
 mode change 100644 => 100755 QDMA/linux-kernel/COPYING
 mode change 100644 => 100755 QDMA/linux-kernel/LICENSE
 mode change 100644 => 100755 QDMA/linux-kernel/Makefile
 mode change 100644 => 100755 QDMA/linux-kernel/RELEASE
 mode change 100644 => 100755 QDMA/linux-kernel/apps/Makefile
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-ctl/Makefile
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-ctl/cmd_parse.c
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-ctl/cmd_parse.h
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-ctl/main.c
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-ctl/version.h
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-from-device/Makefile
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-from-device/dma_from_device.c
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-from-device/version.h
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-latency/Makefile
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-latency/Readme.txt
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-latency/dmalat.c
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-latency/sample_dma_latency_config.txt
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-latency/version.h
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-perf/Makefile
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-perf/dmaperf.c
 delete mode 100644 QDMA/linux-kernel/apps/dma-perf/dmaperf_config/mm-bi.zip
 delete mode 100644 QDMA/linux-kernel/apps/dma-perf/dmaperf_config/mm-c2h.zip
 delete mode 100644 QDMA/linux-kernel/apps/dma-perf/dmaperf_config/mm-h2c.zip
 delete mode 100644 QDMA/linux-kernel/apps/dma-perf/dmaperf_config/st-bi.zip
 delete mode 100644 QDMA/linux-kernel/apps/dma-perf/dmaperf_config/st-c2h-pfetch1.zip
 delete mode 100644 QDMA/linux-kernel/apps/dma-perf/dmaperf_config/st-h2c.zip
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-perf/version.h
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-to-device/Makefile
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-to-device/dma_to_device.c
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-to-device/version.h
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-utils/Makefile
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-utils/dma_xfer_utils.c
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-utils/dmactl.c
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-utils/dmactl_internal.h
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-utils/dmactl_reg.c
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-utils/dmautils.c
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-utils/dmautils.h
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-utils/dmaxfer.c
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-utils/dmaxfer.h
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-utils/version.h
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-xfer/Makefile
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-xfer/dmaxfer.c
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-xfer/sample_qdma_xfer_config.txt
 mode change 100644 => 100755 QDMA/linux-kernel/apps/dma-xfer/version.h
 mode change 100644 => 100755 QDMA/linux-kernel/apps/include/qdma_nl.h
 mode change 100644 => 100755 QDMA/linux-kernel/apps/include/qdma_user_reg_dump.h
 mode change 100644 => 100755 QDMA/linux-kernel/apps/include/xdev_regs.h
 mode change 100644 => 100755 QDMA/linux-kernel/bsd_license.txt
 mode change 100644 => 100755 QDMA/linux-kernel/docs/README
 mode change 100644 => 100755 QDMA/linux-kernel/docs/dma-ctl.8.gz
 delete mode 100644 QDMA/linux-kernel/docs/dmactl.8.gz
 mode change 100644 => 100755 QDMA/linux-kernel/driver/Makefile
 mode change 100644 => 100755 QDMA/linux-kernel/driver/include/qdma_nl.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/include/qdma_user_reg_dump.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/include/xdev_regs.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/Makefile
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/libqdma_config.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/libqdma_config.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/libqdma_export.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/libqdma_export.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_cpm5_access/eqdma_cpm5_access.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_cpm5_access/eqdma_cpm5_access.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_cpm5_access/eqdma_cpm5_reg.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_cpm5_access/eqdma_cpm5_reg_dump.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_soft_access/eqdma_soft_access.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_soft_access/eqdma_soft_access.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_soft_access/eqdma_soft_reg.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_soft_access/eqdma_soft_reg_dump.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_common.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_common.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_errors.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_export.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_version.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_cpm4_access/qdma_cpm4_access.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_cpm4_access/qdma_cpm4_access.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_cpm4_access/qdma_cpm4_reg.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_cpm4_access/qdma_cpm4_reg_dump.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_list.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_list.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_mbox_protocol.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_mbox_protocol.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_platform.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_reg_dump.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_resource_mgmt.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_resource_mgmt.h
 delete mode 100644 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_s80_hard_access/qdma_s80_hard_access.c
 delete mode 100644 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_s80_hard_access/qdma_s80_hard_access.h
 delete mode 100644 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_s80_hard_access/qdma_s80_hard_reg.h
 delete mode 100644 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_s80_hard_access/qdma_s80_hard_reg_dump.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_soft_access/qdma_soft_access.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_soft_access/qdma_soft_access.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_soft_access/qdma_soft_reg.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_compat.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_context.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_context.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_debugfs.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_debugfs.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_debugfs_dev.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_debugfs_dev.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_debugfs_queue.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_debugfs_queue.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_descq.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_descq.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_device.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_device.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_intr.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_intr.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_license.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_mbox.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_mbox.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_platform.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_platform_env.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_regs.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_regs.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_sriov.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_st_c2h.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_st_c2h.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_thread.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_thread.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/qdma_ul_ext.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/thread.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/thread.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/version.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/xdev.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/libqdma/xdev.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/make_rules/common_flags.mk
 mode change 100644 => 100755 QDMA/linux-kernel/driver/make_rules/distro_check.mk
 mode change 100644 => 100755 QDMA/linux-kernel/driver/make_rules/kernel_check.mk
 mode change 100644 => 100755 QDMA/linux-kernel/driver/src/Makefile
 mode change 100644 => 100755 QDMA/linux-kernel/driver/src/cdev.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/src/cdev.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/src/nl.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/src/nl.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/src/pci_ids.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/src/qdma_mod.c
 mode change 100644 => 100755 QDMA/linux-kernel/driver/src/qdma_mod.h
 mode change 100644 => 100755 QDMA/linux-kernel/driver/src/version.h
 mode change 100644 => 100755 QDMA/linux-kernel/license.txt
 mode change 100644 => 100755 QDMA/linux-kernel/scripts/license-for-datafile_16bit_pattern.txt
 mode change 100644 => 100755 QDMA/linux-kernel/scripts/qdma_generate_conf_file.sh
 mode change 100644 => 100755 QDMA/linux-kernel/scripts/qdma_vf_auto_tst.sh

diff --git a/QDMA/linux-kernel/COPYING b/QDMA/linux-kernel/COPYING
old mode 100644
new mode 100755
diff --git a/QDMA/linux-kernel/LICENSE b/QDMA/linux-kernel/LICENSE
old mode 100644
new mode 100755
diff --git a/QDMA/linux-kernel/Makefile b/QDMA/linux-kernel/Makefile
old mode 100644
new mode 100755
index a85bc0c..e8fd7de
--- a/QDMA/linux-kernel/Makefile
+++ b/QDMA/linux-kernel/Makefile
@@ -1,8 +1,8 @@
 #/*
 # * This file is part of the Xilinx DMA IP Core driver for Linux
 # *
-# * Copyright (c) 2017-2022,  Xilinx, Inc.
-# * All rights reserved.
+# * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+# * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
 # *
 # * This source code is free software; you can redistribute it and/or modify it
 # * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/RELEASE b/QDMA/linux-kernel/RELEASE
old mode 100644
new mode 100755
index 7f3b4c3..67a56ec
--- a/QDMA/linux-kernel/RELEASE
+++ b/QDMA/linux-kernel/RELEASE
@@ -1,9 +1,11 @@
-RELEASE: 2022.1.4 Patch
+RELEASE: 2022.1.5 Patch
 =======================
 
-This release is validated for
-	- QDMA4.0 2020.1 Patch based example design
-	- XCVP1202 for CPM5 2022.1 example design
+This release is validated
+	- On VCU1525 for QDMA5.0 2022.1 example design
+	- On VCU1525 for QDMA4.0 2020.2 example design
+	- On VCU1525 for QDMA3.1 2019.2 example design
+	- On XCVP1202 for CPM5 2022.1 example design
 
 SUPPORTED FEATURES:
 ===================
@@ -121,11 +123,14 @@ CPM5
 - Added support for more than 2K queues for PF/VF
 - Added support for Fedora36
 
+2022.1.5 Patch Updates
+----------------------
+- Added PF/VF 4K queues support for CPM5 design. This feature is applicable only when corresponding RTL support is added.
+
 KNOWN ISSUES:
 =============
 - CPM5 Only
-	- Sufficient host memory is required to accommodate 4K queues. Tested only upto 2099 queues for PFs with our test environment though driver supports 4K queues.
-	- VF 4K queue support is not fully verified due to pdi issues
+	- Adding >3000 queues using dma-ctl application throwing an error message even though the queues are added successfully. For now error message can be ignored and this will be fixed in subsequent releases.
 
 - All Designs
 	- In interrupt mode, Sometimes completions are not received when C2H PIDX updates are held for 64 descriptors
@@ -151,8 +156,8 @@ DRIVER LIMITATIONS:
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/apps/Makefile b/QDMA/linux-kernel/apps/Makefile
old mode 100644
new mode 100755
index 8df2c52..b4febd2
--- a/QDMA/linux-kernel/apps/Makefile
+++ b/QDMA/linux-kernel/apps/Makefile
@@ -3,8 +3,8 @@
 # * This file is part of the QDMA userspace application
 # * to enable the user to execute the QDMA functionality
 # *
-# * Copyright (c) 2018-2022,  Xilinx, Inc.
-# * All rights reserved.
+# * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+# * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
 # *
 # * This source code is licensed under BSD-style license (found in the
 # * LICENSE file in the root directory of this source tree)
diff --git a/QDMA/linux-kernel/apps/dma-ctl/Makefile b/QDMA/linux-kernel/apps/dma-ctl/Makefile
old mode 100644
new mode 100755
index 0d7fca6..04a5bed
--- a/QDMA/linux-kernel/apps/dma-ctl/Makefile
+++ b/QDMA/linux-kernel/apps/dma-ctl/Makefile
@@ -3,8 +3,8 @@
 # * This file is part of the QDMA userspace application
 # * to enable the user to execute the QDMA functionality
 # *
-# * Copyright (c) 2018-2022,  Xilinx, Inc.
-# * All rights reserved.
+# * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+# * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
 # *
 # * This source code is licensed under BSD-style license (found in the
 # * LICENSE file in the root directory of this source tree)
diff --git a/QDMA/linux-kernel/apps/dma-ctl/cmd_parse.c b/QDMA/linux-kernel/apps/dma-ctl/cmd_parse.c
old mode 100644
new mode 100755
index 9b1af52..b2a9202
--- a/QDMA/linux-kernel/apps/dma-ctl/cmd_parse.c
+++ b/QDMA/linux-kernel/apps/dma-ctl/cmd_parse.c
@@ -2,8 +2,8 @@
  * This file is part of the QDMA userspace application
  * to enable the user to execute the QDMA functionality
  *
- * Copyright (c) 2018-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is licensed under BSD-style license (found in the
  * LICENSE file in the root directory of this source tree)
@@ -331,7 +331,7 @@ static int validate_regcmd(enum xnl_op_t qcmd, struct xcmd_reg	*regcmd)
 		case XNL_CMD_REG_RD:
 		case XNL_CMD_REG_INFO_READ:
 		case XNL_CMD_REG_WRT:
-			if ((regcmd->bar != 0) && (regcmd->bar != 2)) {
+			if ((regcmd->bar != 0) && (regcmd->bar != 2) && (regcmd->bar != 4)) {
 				printf("dmactl: bar %u number out of range\n",
 				       regcmd->bar);
 				invalid = -EINVAL;
diff --git a/QDMA/linux-kernel/apps/dma-ctl/cmd_parse.h b/QDMA/linux-kernel/apps/dma-ctl/cmd_parse.h
old mode 100644
new mode 100755
index c1c224a..82518d8
--- a/QDMA/linux-kernel/apps/dma-ctl/cmd_parse.h
+++ b/QDMA/linux-kernel/apps/dma-ctl/cmd_parse.h
@@ -1,20 +1,20 @@
-/*
- * This file is part of the QDMA userspace application
- * to enable the user to execute the QDMA functionality
- *
- * Copyright (c) 2018-2022,  Xilinx, Inc.
- * All rights reserved.
- *
- * This source code is licensed under BSD-style license (found in the
- * LICENSE file in the root directory of this source tree)
- */
-
-#ifndef USER_CLI_CMD_PARSE_H_
-#define USER_CLI_CMD_PARSE_H_
-
-#include "qdma_nl.h"
-#include "dmautils.h"
-
-int parse_cmd(int argc, char *argv[], struct xcmd_info *xcmd);
-
-#endif /* USER_CLI_CMD_PARSE_H_ */
+/*
+ * This file is part of the QDMA userspace application
+ * to enable the user to execute the QDMA functionality
+ *
+ * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
+ *
+ * This source code is licensed under BSD-style license (found in the
+ * LICENSE file in the root directory of this source tree)
+ */
+
+#ifndef USER_CLI_CMD_PARSE_H_
+#define USER_CLI_CMD_PARSE_H_
+
+#include "qdma_nl.h"
+#include "dmautils.h"
+
+int parse_cmd(int argc, char *argv[], struct xcmd_info *xcmd);
+
+#endif /* USER_CLI_CMD_PARSE_H_ */
diff --git a/QDMA/linux-kernel/apps/dma-ctl/main.c b/QDMA/linux-kernel/apps/dma-ctl/main.c
old mode 100644
new mode 100755
index 3b56f7f..5c3e4c7
--- a/QDMA/linux-kernel/apps/dma-ctl/main.c
+++ b/QDMA/linux-kernel/apps/dma-ctl/main.c
@@ -2,8 +2,8 @@
  * This file is part of the QDMA userspace application
  * to enable the user to execute the QDMA functionality
  *
- * Copyright (c) 2018-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is licensed under BSD-style license (found in the
  * LICENSE file in the root directory of this source tree)
diff --git a/QDMA/linux-kernel/apps/dma-ctl/version.h b/QDMA/linux-kernel/apps/dma-ctl/version.h
old mode 100644
new mode 100755
index 8ca346e..0318816
--- a/QDMA/linux-kernel/apps/dma-ctl/version.h
+++ b/QDMA/linux-kernel/apps/dma-ctl/version.h
@@ -2,8 +2,8 @@
  * This file is part of the QDMA userspace application
  * to enable the user to execute the QDMA functionality
  *
- * Copyright (c) 2018-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is licensed under BSD-style license (found in the
  * LICENSE file in the root directory of this source tree)
@@ -13,7 +13,7 @@
 #define __DMA_CTL_VERSION_H
 
 #define PROGNAME "dma-ctl"
-#define VERSION "2022.1.0"
+#define VERSION "2022.2.0"
 #define COPYRIGHT "Copyright (c) 2018-2022 Xilinx Inc."
 
 #endif
diff --git a/QDMA/linux-kernel/apps/dma-from-device/Makefile b/QDMA/linux-kernel/apps/dma-from-device/Makefile
old mode 100644
new mode 100755
index 87cd35e..95e66d2
--- a/QDMA/linux-kernel/apps/dma-from-device/Makefile
+++ b/QDMA/linux-kernel/apps/dma-from-device/Makefile
@@ -1,27 +1,27 @@
-CC ?= gcc
-
-CFLAGS += -g
-#CFLAGS += -O2 -fno-inline -Wall -Wstrict-prototypes
-CFLAGS += -I. -I../include -I../dma-utils
-CFLAGS += $(EXTRA_FLAGS)
-
-DMA-FROM-DEVICE = dma-from-device
-DMA-UTILS_OBJS := $(patsubst %.c,%.o,$(wildcard ../dma-utils/*.c))
-DMA-FROM-DEVICE_OBJS := dma_from_device.o
-DMA-FROM-DEVICE_OBJS += $(DMA-UTILS_OBJS)
-
-ifneq ($(CROSS_COMPILE_FLAG),)
-	CC=$(CROSS_COMPILE_FLAG)gcc
-endif
-
-all: clean dma-from-device
-
-dma-from-device: $(DMA-FROM-DEVICE_OBJS)
-	$(CC) -lrt -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
-
-%.o: %.c
-	$(CC) $(CFLAGS) -c -std=c99 -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE -D_AIO_AIX_SOURCE
-
-clean:
-	@rm -f *.o */*.o ../dma-utils/*.o
-	rm -rf *.o *.bin dma-from-device
+CC ?= gcc
+
+CFLAGS += -g
+#CFLAGS += -O2 -fno-inline -Wall -Wstrict-prototypes
+CFLAGS += -I. -I../include -I../dma-utils
+CFLAGS += $(EXTRA_FLAGS)
+
+DMA-FROM-DEVICE = dma-from-device
+DMA-UTILS_OBJS := $(patsubst %.c,%.o,$(wildcard ../dma-utils/*.c))
+DMA-FROM-DEVICE_OBJS := dma_from_device.o
+DMA-FROM-DEVICE_OBJS += $(DMA-UTILS_OBJS)
+
+ifneq ($(CROSS_COMPILE_FLAG),)
+	CC=$(CROSS_COMPILE_FLAG)gcc
+endif
+
+all: clean dma-from-device
+
+dma-from-device: $(DMA-FROM-DEVICE_OBJS)
+	$(CC) -lrt -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
+
+%.o: %.c
+	$(CC) $(CFLAGS) -c -std=c99 -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE -D_AIO_AIX_SOURCE
+
+clean:
+	@rm -f *.o */*.o ../dma-utils/*.o
+	rm -rf *.o *.bin dma-from-device
diff --git a/QDMA/linux-kernel/apps/dma-from-device/dma_from_device.c b/QDMA/linux-kernel/apps/dma-from-device/dma_from_device.c
old mode 100644
new mode 100755
index 18cda60..30623f4
--- a/QDMA/linux-kernel/apps/dma-from-device/dma_from_device.c
+++ b/QDMA/linux-kernel/apps/dma-from-device/dma_from_device.c
@@ -1,236 +1,236 @@
-/*
- * This file is part of the QDMA userspace application
- * to enable the user to execute the QDMA functionality
- *
- * Copyright (c) 2018-2022,  Xilinx, Inc.
- * All rights reserved.
- *
- * This source code is licensed under BSD-style license (found in the
- * LICENSE file in the root directory of this source tree)
- */
-
-#define _DEFAULT_SOURCE
-#define _XOPEN_SOURCE 500
-#include <assert.h>
-#include <fcntl.h>
-#include <getopt.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <time.h>
-
-#include <sys/mman.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-#include "dma_xfer_utils.c"
-
-#define DEVICE_NAME_DEFAULT "/dev/qdma01000-MM-0"
-#define SIZE_DEFAULT (32)
-#define COUNT_DEFAULT (1)
-
-
-
-
-static struct option const long_opts[] = {
-	{"device", required_argument, NULL, 'd'},
-	{"address", required_argument, NULL, 'a'},
-	{"size", required_argument, NULL, 's'},
-	{"offset", required_argument, NULL, 'o'},
-	{"count", required_argument, NULL, 'c'},
-	{"file", required_argument, NULL, 'f'},
-	{"help", no_argument, NULL, 'h'},
-	{"verbose", no_argument, NULL, 'v'},
-	{0, 0, 0, 0}
-};
-
-static int test_dma(char *devname, uint64_t addr, uint64_t size,
-		    uint64_t offset, uint64_t count, char *ofname);
-static int no_write = 0;
-
-static void usage(const char *name)
-{
-	int i = 0;
-	fprintf(stdout, "%s\n\n", name);
-	fprintf(stdout, "usage: %s [OPTIONS]\n\n", name);
-	fprintf(stdout, "Read via SGDMA, optionally save output to a file\n\n");
-
-	fprintf(stdout, "  -%c (--%s) device (defaults to %s)\n",
-		long_opts[i].val, long_opts[i].name, DEVICE_NAME_DEFAULT);
-	i++;
-	fprintf(stdout, "  -%c (--%s) the start address on the AXI bus\n",
-	       long_opts[i].val, long_opts[i].name);
-	i++;
-	fprintf(stdout,
-		"  -%c (--%s) size of a single transfer in bytes, default %d.\n",
-		long_opts[i].val, long_opts[i].name, SIZE_DEFAULT);
-	i++;
-	fprintf(stdout, "  -%c (--%s) page offset of transfer\n",
-		long_opts[i].val, long_opts[i].name);
-	i++;
-	fprintf(stdout, "  -%c (--%s) number of transfers, default is %d.\n",
-	       long_opts[i].val, long_opts[i].name, COUNT_DEFAULT);
-	i++;
-	fprintf(stdout,
-		"  -%c (--%s) file to write the data of the transfers\n",
-		long_opts[i].val, long_opts[i].name);
-	i++;
-	fprintf(stdout, "  -%c (--%s) print usage help and exit\n",
-		long_opts[i].val, long_opts[i].name);
-	i++;
-	fprintf(stdout, "  -%c (--%s) verbose output\n",
-		long_opts[i].val, long_opts[i].name);
-}
-
-int main(int argc, char *argv[])
-{
-	int cmd_opt;
-	char *device = DEVICE_NAME_DEFAULT;
-	uint64_t address = 0;
-	uint64_t size = SIZE_DEFAULT;
-	uint64_t offset = 0;
-	uint64_t count = COUNT_DEFAULT;
-	char *ofname = NULL;
-
-	while ((cmd_opt = getopt_long(argc, argv, "vhxc:f:d:a:s:o:", long_opts,
-			    NULL)) != -1) {
-		switch (cmd_opt) {
-		case 0:
-			/* long option */
-			break;
-		case 'd':
-			/* device node name */
-			device = strdup(optarg);
-			break;
-		case 'a':
-			/* RAM address on the AXI bus in bytes */
-			address = getopt_integer(optarg);
-			break;
-			/* RAM size in bytes */
-		case 's':
-			size = getopt_integer(optarg);
-			break;
-		case 'o':
-			offset = getopt_integer(optarg) & 4095;
-			break;
-			/* count */
-		case 'c':
-			count = getopt_integer(optarg);
-			break;
-			/* count */
-		case 'f':
-			ofname = strdup(optarg);
-			break;
-			/* print usage help and exit */
-    		case 'x':
-			no_write++;
-			break;
-		case 'v':
-			verbose = 1;
-			break;
-		case 'h':
-		default:
-			usage(argv[0]);
-			exit(0);
-			break;
-		}
-	}
-	if (verbose)
-	fprintf(stdout,
-		"dev %s, addr 0x%lx, size 0x%lx, offset 0x%lx, count %lu\n",
-		device, address, size, offset, count);
-
-	return test_dma(device, address, size, offset, count, ofname);
-}
-
-static int test_dma(char *devname, uint64_t addr, uint64_t size,
-		    uint64_t offset, uint64_t count, char *ofname)
-{
-	ssize_t rc;
-	uint64_t i;
-	char *buffer = NULL;
-	char *allocated = NULL;
-	struct timespec ts_start, ts_end;
-	int out_fd = -1;
-	int fpga_fd = open(devname, O_RDWR | O_NONBLOCK);
-	double total_time = 0;
-	double result;
-	double avg_time = 0;
-
-	if (fpga_fd < 0) {
-                fprintf(stderr, "unable to open device %s, %d.\n",
-                        devname, fpga_fd);
-		perror("open device");
-                return -EINVAL;
-        }
-
-	/* create file to write data to */
-	if (ofname) {
-		out_fd = open(ofname, O_RDWR | O_CREAT | O_TRUNC | O_SYNC,
-				0666);
-		if (out_fd < 0) {
-                        fprintf(stderr, "unable to open output file %s, %d.\n",
-                                ofname, out_fd);
-			perror("open output file");
-                        rc = -EINVAL;
-                        goto out;
-                }
-	}
-
-	posix_memalign((void **)&allocated, 4096 /*alignment */ , size + 4096);
-	if (!allocated) {
-		fprintf(stderr, "OOM %lu.\n", size + 4096);
-		rc = -ENOMEM;
-		goto out;
-	}
-
-	buffer = allocated + offset;
-	if (verbose)
-	fprintf(stdout, "host buffer 0x%lx, %p.\n", size + 4096, buffer);
-
-	for (i = 0; i < count; i++) {
-		clock_gettime(CLOCK_MONOTONIC, &ts_start);
-		/* lseek & read data from AXI MM into buffer using SGDMA */
-		rc = read_to_buffer(devname, fpga_fd, buffer, size, addr);
-		if (rc < 0)
-			goto out;
-		clock_gettime(CLOCK_MONOTONIC, &ts_end);
-
-		/* subtract the start time from the end time */
-		timespec_sub(&ts_end, &ts_start);
-		total_time += (ts_end.tv_sec + ((double)ts_end.tv_nsec/NSEC_DIV));
-		/* a bit less accurate but side-effects are accounted for */
-		if (verbose)
-		fprintf(stdout,
-			"#%lu: CLOCK_MONOTONIC %ld.%09ld sec. read %lu bytes\n",
-			i, ts_end.tv_sec, ts_end.tv_nsec, size);
-
-		/* file argument given? */
-		if ((out_fd >= 0) & (no_write == 0)) {
-			rc = write_from_buffer(ofname, out_fd, buffer,
-					 size, i*size);
-			if (rc < 0)
-				goto out;
-		}
-	}
-	avg_time = (double)total_time/(double)count;
-	result = ((double)size)/avg_time;
-	if (verbose)
-	printf("** Avg time device %s, total time %f nsec, avg_time = %f, size = %lu, BW = %f bytes/sec\n",
-		devname, total_time, avg_time, size, result);
-	dump_throughput_result(size, result);
-
-	rc = 0;
-
-out:
-	close(fpga_fd);
-	if (out_fd >= 0)
-		close(out_fd);
-	free(allocated);
-
-	return rc;
-}
+/*
+ * This file is part of the QDMA userspace application
+ * to enable the user to execute the QDMA functionality
+ *
+ * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
+ *
+ * This source code is licensed under BSD-style license (found in the
+ * LICENSE file in the root directory of this source tree)
+ */
+
+#define _DEFAULT_SOURCE
+#define _XOPEN_SOURCE 500
+#include <assert.h>
+#include <fcntl.h>
+#include <getopt.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <time.h>
+
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include "dma_xfer_utils.c"
+
+#define DEVICE_NAME_DEFAULT "/dev/qdma01000-MM-0"
+#define SIZE_DEFAULT (32)
+#define COUNT_DEFAULT (1)
+
+
+
+
+static struct option const long_opts[] = {
+	{"device", required_argument, NULL, 'd'},
+	{"address", required_argument, NULL, 'a'},
+	{"size", required_argument, NULL, 's'},
+	{"offset", required_argument, NULL, 'o'},
+	{"count", required_argument, NULL, 'c'},
+	{"file", required_argument, NULL, 'f'},
+	{"help", no_argument, NULL, 'h'},
+	{"verbose", no_argument, NULL, 'v'},
+	{0, 0, 0, 0}
+};
+
+static int test_dma(char *devname, uint64_t addr, uint64_t size,
+		    uint64_t offset, uint64_t count, char *ofname);
+static int no_write = 0;
+
+static void usage(const char *name)
+{
+	int i = 0;
+	fprintf(stdout, "%s\n\n", name);
+	fprintf(stdout, "usage: %s [OPTIONS]\n\n", name);
+	fprintf(stdout, "Read via SGDMA, optionally save output to a file\n\n");
+
+	fprintf(stdout, "  -%c (--%s) device (defaults to %s)\n",
+		long_opts[i].val, long_opts[i].name, DEVICE_NAME_DEFAULT);
+	i++;
+	fprintf(stdout, "  -%c (--%s) the start address on the AXI bus\n",
+	       long_opts[i].val, long_opts[i].name);
+	i++;
+	fprintf(stdout,
+		"  -%c (--%s) size of a single transfer in bytes, default %d.\n",
+		long_opts[i].val, long_opts[i].name, SIZE_DEFAULT);
+	i++;
+	fprintf(stdout, "  -%c (--%s) page offset of transfer\n",
+		long_opts[i].val, long_opts[i].name);
+	i++;
+	fprintf(stdout, "  -%c (--%s) number of transfers, default is %d.\n",
+	       long_opts[i].val, long_opts[i].name, COUNT_DEFAULT);
+	i++;
+	fprintf(stdout,
+		"  -%c (--%s) file to write the data of the transfers\n",
+		long_opts[i].val, long_opts[i].name);
+	i++;
+	fprintf(stdout, "  -%c (--%s) print usage help and exit\n",
+		long_opts[i].val, long_opts[i].name);
+	i++;
+	fprintf(stdout, "  -%c (--%s) verbose output\n",
+		long_opts[i].val, long_opts[i].name);
+}
+
+int main(int argc, char *argv[])
+{
+	int cmd_opt;
+	char *device = DEVICE_NAME_DEFAULT;
+	uint64_t address = 0;
+	uint64_t size = SIZE_DEFAULT;
+	uint64_t offset = 0;
+	uint64_t count = COUNT_DEFAULT;
+	char *ofname = NULL;
+
+	while ((cmd_opt = getopt_long(argc, argv, "vhxc:f:d:a:s:o:", long_opts,
+			    NULL)) != -1) {
+		switch (cmd_opt) {
+		case 0:
+			/* long option */
+			break;
+		case 'd':
+			/* device node name */
+			device = strdup(optarg);
+			break;
+		case 'a':
+			/* RAM address on the AXI bus in bytes */
+			address = getopt_integer(optarg);
+			break;
+			/* RAM size in bytes */
+		case 's':
+			size = getopt_integer(optarg);
+			break;
+		case 'o':
+			offset = getopt_integer(optarg) & 4095;
+			break;
+			/* count */
+		case 'c':
+			count = getopt_integer(optarg);
+			break;
+			/* count */
+		case 'f':
+			ofname = strdup(optarg);
+			break;
+			/* print usage help and exit */
+    		case 'x':
+			no_write++;
+			break;
+		case 'v':
+			verbose = 1;
+			break;
+		case 'h':
+		default:
+			usage(argv[0]);
+			exit(0);
+			break;
+		}
+	}
+	if (verbose)
+	fprintf(stdout,
+		"dev %s, addr 0x%lx, size 0x%lx, offset 0x%lx, count %lu\n",
+		device, address, size, offset, count);
+
+	return test_dma(device, address, size, offset, count, ofname);
+}
+
+static int test_dma(char *devname, uint64_t addr, uint64_t size,
+		    uint64_t offset, uint64_t count, char *ofname)
+{
+	ssize_t rc;
+	uint64_t i;
+	char *buffer = NULL;
+	char *allocated = NULL;
+	struct timespec ts_start, ts_end;
+	int out_fd = -1;
+	int fpga_fd = open(devname, O_RDWR | O_NONBLOCK);
+	double total_time = 0;
+	double result;
+	double avg_time = 0;
+
+	if (fpga_fd < 0) {
+                fprintf(stderr, "unable to open device %s, %d.\n",
+                        devname, fpga_fd);
+		perror("open device");
+                return -EINVAL;
+        }
+
+	/* create file to write data to */
+	if (ofname) {
+		out_fd = open(ofname, O_RDWR | O_CREAT | O_TRUNC | O_SYNC,
+				0666);
+		if (out_fd < 0) {
+                        fprintf(stderr, "unable to open output file %s, %d.\n",
+                                ofname, out_fd);
+			perror("open output file");
+                        rc = -EINVAL;
+                        goto out;
+                }
+	}
+
+	posix_memalign((void **)&allocated, 4096 /*alignment */ , size + 4096);
+	if (!allocated) {
+		fprintf(stderr, "OOM %lu.\n", size + 4096);
+		rc = -ENOMEM;
+		goto out;
+	}
+
+	buffer = allocated + offset;
+	if (verbose)
+	fprintf(stdout, "host buffer 0x%lx, %p.\n", size + 4096, buffer);
+
+	for (i = 0; i < count; i++) {
+		clock_gettime(CLOCK_MONOTONIC, &ts_start);
+		/* lseek & read data from AXI MM into buffer using SGDMA */
+		rc = read_to_buffer(devname, fpga_fd, buffer, size, addr);
+		if (rc < 0)
+			goto out;
+		clock_gettime(CLOCK_MONOTONIC, &ts_end);
+
+		/* subtract the start time from the end time */
+		timespec_sub(&ts_end, &ts_start);
+		total_time += (ts_end.tv_sec + ((double)ts_end.tv_nsec/NSEC_DIV));
+		/* a bit less accurate but side-effects are accounted for */
+		if (verbose)
+		fprintf(stdout,
+			"#%lu: CLOCK_MONOTONIC %ld.%09ld sec. read %lu bytes\n",
+			i, ts_end.tv_sec, ts_end.tv_nsec, size);
+
+		/* file argument given? */
+		if ((out_fd >= 0) & (no_write == 0)) {
+			rc = write_from_buffer(ofname, out_fd, buffer,
+					 size, i*size);
+			if (rc < 0)
+				goto out;
+		}
+	}
+	avg_time = (double)total_time/(double)count;
+	result = ((double)size)/avg_time;
+	if (verbose)
+	printf("** Avg time device %s, total time %f nsec, avg_time = %f, size = %lu, BW = %f bytes/sec\n",
+		devname, total_time, avg_time, size, result);
+	dump_throughput_result(size, result);
+
+	rc = 0;
+
+out:
+	close(fpga_fd);
+	if (out_fd >= 0)
+		close(out_fd);
+	free(allocated);
+
+	return rc;
+}
diff --git a/QDMA/linux-kernel/apps/dma-from-device/version.h b/QDMA/linux-kernel/apps/dma-from-device/version.h
old mode 100644
new mode 100755
index 8211daa..f98c1db
--- a/QDMA/linux-kernel/apps/dma-from-device/version.h
+++ b/QDMA/linux-kernel/apps/dma-from-device/version.h
@@ -2,8 +2,8 @@
  * This file is part of the QDMA userspace application
  * to enable the user to execute the QDMA functionality
  *
- * Copyright (c) 2018-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is licensed under BSD-style license (found in the
  * LICENSE file in the root directory of this source tree)
@@ -13,7 +13,7 @@
 #define __DMA_FROM_DEVICE_VERSION_H
 
 #define PROGNAME "dma-from-device"
-#define VERSION "2022.1.0"
+#define VERSION "2022.2.0"
 #define COPYRIGHT "Copyright (c) 2018-2022 Xilinx Inc."
 
 #endif
diff --git a/QDMA/linux-kernel/apps/dma-latency/Makefile b/QDMA/linux-kernel/apps/dma-latency/Makefile
old mode 100644
new mode 100755
index 8ff6e8e..8e49270
--- a/QDMA/linux-kernel/apps/dma-latency/Makefile
+++ b/QDMA/linux-kernel/apps/dma-latency/Makefile
@@ -1,39 +1,39 @@
-#
-#/*
-# * This file is part of the QDMA userspace application
-# * to enable the user to execute the QDMA functionality
-# *
-# * Copyright (c) 2018-2022,  Xilinx, Inc.
-# * All rights reserved.
-# *
-# * This source code is licensed under BSD-style license (found in the
-# * LICENSE file in the root directory of this source tree)
-# */
-
-CC ?= gcc
-
-CFLAGS += -g
-#CFLAGS += -O2 -fno-inline -Wall -Wstrict-prototypes
-CFLAGS += -I. -I../include -I../dma-utils
-CFLAGS += $(EXTRA_FLAGS)
-
-DMA-LATENCY = dma-latency
-DMA-UTILS_OBJS := $(patsubst %.c,%.o,$(wildcard ../dma-utils/*.c))
-DMA-LAT_OBJS := dmalat.o
-DMA-LAT_OBJS += $(DMA-UTILS_OBJS)
-
-ifneq ($(CROSS_COMPILE_FLAG),)
-	CC=$(CROSS_COMPILE_FLAG)gcc
-endif
-
-all: clean dma-latency
-
-dma-latency: $(DMA-LAT_OBJS)
-	$(CC) -pthread -lrt -o $@ $^ -laio -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
-
-%.o: %.c
-	$(CC) $(CFLAGS) -c -std=c99 -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE -D_AIO_AIX_SOURCE
-
-clean:
-	@rm -f *.o */*.o ../dma-utils/*.o
-	rm -rf *.o *.bin dma-latency
+#
+#/*
+# * This file is part of the QDMA userspace application
+# * to enable the user to execute the QDMA functionality
+# *
+# * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+# * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
+# *
+# * This source code is licensed under BSD-style license (found in the
+# * LICENSE file in the root directory of this source tree)
+# */
+
+CC ?= gcc
+
+CFLAGS += -g
+#CFLAGS += -O2 -fno-inline -Wall -Wstrict-prototypes
+CFLAGS += -I. -I../include -I../dma-utils
+CFLAGS += $(EXTRA_FLAGS)
+
+DMA-LATENCY = dma-latency
+DMA-UTILS_OBJS := $(patsubst %.c,%.o,$(wildcard ../dma-utils/*.c))
+DMA-LAT_OBJS := dmalat.o
+DMA-LAT_OBJS += $(DMA-UTILS_OBJS)
+
+ifneq ($(CROSS_COMPILE_FLAG),)
+	CC=$(CROSS_COMPILE_FLAG)gcc
+endif
+
+all: clean dma-latency
+
+dma-latency: $(DMA-LAT_OBJS)
+	$(CC) -pthread -lrt -o $@ $^ -laio -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
+
+%.o: %.c
+	$(CC) $(CFLAGS) -c -std=c99 -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE -D_AIO_AIX_SOURCE
+
+clean:
+	@rm -f *.o */*.o ../dma-utils/*.o
+	rm -rf *.o *.bin dma-latency
diff --git a/QDMA/linux-kernel/apps/dma-latency/Readme.txt b/QDMA/linux-kernel/apps/dma-latency/Readme.txt
old mode 100644
new mode 100755
index 6e75878..952f1db
--- a/QDMA/linux-kernel/apps/dma-latency/Readme.txt
+++ b/QDMA/linux-kernel/apps/dma-latency/Readme.txt
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2018-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is licensed under both the BSD-style license (found in the
  * LICENSE file in the root directory of this source tree) and the GPLv2 (found
diff --git a/QDMA/linux-kernel/apps/dma-latency/dmalat.c b/QDMA/linux-kernel/apps/dma-latency/dmalat.c
old mode 100644
new mode 100755
index 308a50b..24a53aa
--- a/QDMA/linux-kernel/apps/dma-latency/dmalat.c
+++ b/QDMA/linux-kernel/apps/dma-latency/dmalat.c
@@ -2,8 +2,8 @@
  * This file is part of the QDMA userspace application
  * to enable the user to execute the QDMA functionality
  *
- * Copyright (c) 2018-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is licensed under BSD-style license (found in the
  * LICENSE file in the root directory of this source tree)
@@ -871,7 +871,7 @@ static void parse_config_file(const char *cfg_fname)
 		printf("Could not open %s\n", rng_sz_path);
 		exit(1);
 	}
-	ret = read(rng_sz_fd, &rng_sz[1], 99);
+	ret = read(rng_sz_fd, &rng_sz[1], 100);
 	if (ret < 0) {
 		printf("Error: Could not read the file\n");
 		exit(1);
diff --git a/QDMA/linux-kernel/apps/dma-latency/sample_dma_latency_config.txt b/QDMA/linux-kernel/apps/dma-latency/sample_dma_latency_config.txt
old mode 100644
new mode 100755
index 6796428..4ef735e
--- a/QDMA/linux-kernel/apps/dma-latency/sample_dma_latency_config.txt
+++ b/QDMA/linux-kernel/apps/dma-latency/sample_dma_latency_config.txt
@@ -3,8 +3,8 @@
 # * This file is part of the QDMA userspace application
 # * to enable the user to execute the QDMA functionality
 # *
-# * Copyright (c) 2018-2022,  Xilinx, Inc.
-# * All rights reserved.
+# * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
 # *
 # * This source code is licensed under BSD-style license (found in the
 # * LICENSE file in the root directory of this source tree)
diff --git a/QDMA/linux-kernel/apps/dma-latency/version.h b/QDMA/linux-kernel/apps/dma-latency/version.h
old mode 100644
new mode 100755
index 6b6b769..9a3e4af
--- a/QDMA/linux-kernel/apps/dma-latency/version.h
+++ b/QDMA/linux-kernel/apps/dma-latency/version.h
@@ -2,8 +2,8 @@
  * This file is part of the QDMA userspace application
  * to enable the user to execute the QDMA functionality
  *
- * Copyright (c) 2018-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is licensed under BSD-style license (found in the
  * LICENSE file in the root directory of this source tree)
@@ -13,7 +13,7 @@
 #define __DMA_LATENCY_VERSION_H
 
 #define PROGNAME "dma-latency"
-#define VERSION "2022.1.0"
+#define VERSION "2022.2.0"
 #define COPYRIGHT "Copyright (c) 2018-2022 Xilinx Inc."
 
 #endif
diff --git a/QDMA/linux-kernel/apps/dma-perf/Makefile b/QDMA/linux-kernel/apps/dma-perf/Makefile
old mode 100644
new mode 100755
index 54bdb75..bacabd6
--- a/QDMA/linux-kernel/apps/dma-perf/Makefile
+++ b/QDMA/linux-kernel/apps/dma-perf/Makefile
@@ -1,39 +1,39 @@
-#
-#/*
-# * This file is part of the QDMA userspace application
-# * to enable the user to execute the QDMA functionality
-# *
-# * Copyright (c) 2018-2022,  Xilinx, Inc.
-# * All rights reserved.
-# *
-# * This source code is licensed under BSD-style license (found in the
-# * LICENSE file in the root directory of this source tree)
-# */
-
-CC ?= gcc
-
-CFLAGS += -g
-#CFLAGS += -O2 -fno-inline -Wall -Wstrict-prototypes
-CFLAGS += -I. -I../include -I../dma-utils
-CFLAGS += $(EXTRA_FLAGS)
-
-DMA-PERF = dma-perf
-DMA-UTILS_OBJS := $(patsubst %.c,%.o,$(wildcard ../dma-utils/*.c))
-DMA-PERF_OBJS := dmaperf.o
-DMA-PERF_OBJS += $(DMA-UTILS_OBJS)
-
-ifneq ($(CROSS_COMPILE_FLAG),)
-	CC=$(CROSS_COMPILE_FLAG)gcc
-endif
-
-all: clean dma-perf
-
-dma-perf: $(DMA-PERF_OBJS)
-	$(CC) -pthread -lrt -o $@ $^ -laio -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
-
-%.o: %.c
-	$(CC) $(CFLAGS) -c -std=c99 -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE -D_AIO_AIX_SOURCE
-
-clean:
-	@rm -f *.o */*.o ../dma-utils/*.o
-	rm -rf *.o *.bin dma-perf
+#
+#/*
+# * This file is part of the QDMA userspace application
+# * to enable the user to execute the QDMA functionality
+# *
+# * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+# * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
+# *
+# * This source code is licensed under BSD-style license (found in the
+# * LICENSE file in the root directory of this source tree)
+# */
+
+CC ?= gcc
+
+CFLAGS += -g
+#CFLAGS += -O2 -fno-inline -Wall -Wstrict-prototypes
+CFLAGS += -I. -I../include -I../dma-utils
+CFLAGS += $(EXTRA_FLAGS)
+
+DMA-PERF = dma-perf
+DMA-UTILS_OBJS := $(patsubst %.c,%.o,$(wildcard ../dma-utils/*.c))
+DMA-PERF_OBJS := dmaperf.o
+DMA-PERF_OBJS += $(DMA-UTILS_OBJS)
+
+ifneq ($(CROSS_COMPILE_FLAG),)
+	CC=$(CROSS_COMPILE_FLAG)gcc
+endif
+
+all: clean dma-perf
+
+dma-perf: $(DMA-PERF_OBJS)
+	$(CC) -pthread -lrt -o $@ $^ -laio -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
+
+%.o: %.c
+	$(CC) $(CFLAGS) -c -std=c99 -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE -D_AIO_AIX_SOURCE
+
+clean:
+	@rm -f *.o */*.o ../dma-utils/*.o
+	rm -rf *.o *.bin dma-perf
diff --git a/QDMA/linux-kernel/apps/dma-perf/dmaperf.c b/QDMA/linux-kernel/apps/dma-perf/dmaperf.c
old mode 100644
new mode 100755
index 03e3f09..3ff22bf
--- a/QDMA/linux-kernel/apps/dma-perf/dmaperf.c
+++ b/QDMA/linux-kernel/apps/dma-perf/dmaperf.c
@@ -2,8 +2,8 @@
  * This file is part of the QDMA userspace application
  * to enable the user to execute the QDMA functionality
  *
- * Copyright (c) 2018-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is licensed under BSD-style license (found in the
  * LICENSE file in the root directory of this source tree)
@@ -1051,7 +1051,7 @@ static void parse_config_file(const char *cfg_fname)
 		printf("Could not open %s\n", rng_sz_path);
 		exit(1);
 	}
-	ret = read(rng_sz_fd, &rng_sz[1], 99);
+	ret = read(rng_sz_fd, &rng_sz[1], 100);
 	if (ret < 0) {
 		printf("Error: Could not read the file\n");
 		exit(1);
diff --git a/QDMA/linux-kernel/apps/dma-perf/dmaperf_config/mm-bi.zip b/QDMA/linux-kernel/apps/dma-perf/dmaperf_config/mm-bi.zip
deleted file mode 100644
index 548e1c8804b13ea7d67fb91e0fb3694e856f291e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 18447
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
AQvd(}

diff --git a/QDMA/linux-kernel/apps/dma-perf/dmaperf_config/mm-c2h.zip b/QDMA/linux-kernel/apps/dma-perf/dmaperf_config/mm-c2h.zip
deleted file mode 100644
index 64f01c3f65065b11324fcbd04798e243c226efba..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 18719
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
K!0<#5!~+1M8UarL

diff --git a/QDMA/linux-kernel/apps/dma-perf/dmaperf_config/mm-h2c.zip b/QDMA/linux-kernel/apps/dma-perf/dmaperf_config/mm-h2c.zip
deleted file mode 100644
index 2ae62697b21ecaa3af4f58b59de729d20471f8d1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 17146
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

diff --git a/QDMA/linux-kernel/apps/dma-perf/dmaperf_config/st-bi.zip b/QDMA/linux-kernel/apps/dma-perf/dmaperf_config/st-bi.zip
deleted file mode 100644
index d7463397e04e20c4751af0b759ccf73336ee52e6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 90077
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

diff --git a/QDMA/linux-kernel/apps/dma-perf/dmaperf_config/st-c2h-pfetch1.zip b/QDMA/linux-kernel/apps/dma-perf/dmaperf_config/st-c2h-pfetch1.zip
deleted file mode 100644
index 47a9e2bf22af5d74892799394bf2a083759ce543..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 102427
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
a@DtQctZWPn3=FJ{tc-uBF)(oa1n~f<IKGAe

diff --git a/QDMA/linux-kernel/apps/dma-perf/dmaperf_config/st-h2c.zip b/QDMA/linux-kernel/apps/dma-perf/dmaperf_config/st-h2c.zip
deleted file mode 100644
index bd5d571360ae445644cae508235359bb653dc278..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 83913
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
F0RSYKP`>~G

diff --git a/QDMA/linux-kernel/apps/dma-perf/version.h b/QDMA/linux-kernel/apps/dma-perf/version.h
old mode 100644
new mode 100755
index cd12b6c..392bc47
--- a/QDMA/linux-kernel/apps/dma-perf/version.h
+++ b/QDMA/linux-kernel/apps/dma-perf/version.h
@@ -2,8 +2,8 @@
  * This file is part of the QDMA userspace application
  * to enable the user to execute the QDMA functionality
  *
- * Copyright (c) 2018-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is licensed under BSD-style license (found in the
  * LICENSE file in the root directory of this source tree)
@@ -13,7 +13,7 @@
 #define __DMA_PERF_VERSION_H
 
 #define PROGNAME "dma-perf"
-#define VERSION "2022.1.0"
+#define VERSION "2022.2.0"
 #define COPYRIGHT "Copyright (c) 2018-2022 Xilinx Inc."
 
 #endif
diff --git a/QDMA/linux-kernel/apps/dma-to-device/Makefile b/QDMA/linux-kernel/apps/dma-to-device/Makefile
old mode 100644
new mode 100755
index 85ceb65..fab351e
--- a/QDMA/linux-kernel/apps/dma-to-device/Makefile
+++ b/QDMA/linux-kernel/apps/dma-to-device/Makefile
@@ -1,39 +1,39 @@
-#
-#/*
-# * This file is part of the QDMA userspace application
-# * to enable the user to execute the QDMA functionality
-# *
-# * Copyright (c) 2018-2022,  Xilinx, Inc.
-# * All rights reserved.
-# *
-# * This source code is licensed under BSD-style license (found in the
-# * LICENSE file in the root directory of this source tree)
-# */
-
-CC ?= gcc
-
-CFLAGS += -g
-#CFLAGS += -O2 -fno-inline -Wall -Wstrict-prototypes
-CFLAGS += -I. -I../include -I../dma-utils
-CFLAGS += $(EXTRA_FLAGS)
-
-DMA-TO-DEVICE = dma-to-device
-DMA-UTILS_OBJS := $(patsubst %.c,%.o,$(wildcard ../dma-utils/*.c))
-DMA-TO-DEVICE_OBJS := dma_to_device.o
-DMA-TO-DEVICE_OBJS += $(DMA-UTILS_OBJS)
-
-ifneq ($(CROSS_COMPILE_FLAG),)
-	CC=$(CROSS_COMPILE_FLAG)gcc
-endif
-
-all: clean dma-to-device
-
-dma-to-device: $(DMA-TO-DEVICE_OBJS)
-	$(CC) -lrt -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
-
-%.o: %.c
-	$(CC) $(CFLAGS) -c -std=c99 -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE -D_AIO_AIX_SOURCE
-
-clean:
-	@rm -f *.o */*.o ../dma-utils/*.o
-	rm -rf *.o *.bin dma-to-device
+#
+#/*
+# * This file is part of the QDMA userspace application
+# * to enable the user to execute the QDMA functionality
+# *
+# * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+# * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
+# *
+# * This source code is licensed under BSD-style license (found in the
+# * LICENSE file in the root directory of this source tree)
+# */
+
+CC ?= gcc
+
+CFLAGS += -g
+#CFLAGS += -O2 -fno-inline -Wall -Wstrict-prototypes
+CFLAGS += -I. -I../include -I../dma-utils
+CFLAGS += $(EXTRA_FLAGS)
+
+DMA-TO-DEVICE = dma-to-device
+DMA-UTILS_OBJS := $(patsubst %.c,%.o,$(wildcard ../dma-utils/*.c))
+DMA-TO-DEVICE_OBJS := dma_to_device.o
+DMA-TO-DEVICE_OBJS += $(DMA-UTILS_OBJS)
+
+ifneq ($(CROSS_COMPILE_FLAG),)
+	CC=$(CROSS_COMPILE_FLAG)gcc
+endif
+
+all: clean dma-to-device
+
+dma-to-device: $(DMA-TO-DEVICE_OBJS)
+	$(CC) -lrt -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE
+
+%.o: %.c
+	$(CC) $(CFLAGS) -c -std=c99 -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE -D_AIO_AIX_SOURCE
+
+clean:
+	@rm -f *.o */*.o ../dma-utils/*.o
+	rm -rf *.o *.bin dma-to-device
diff --git a/QDMA/linux-kernel/apps/dma-to-device/dma_to_device.c b/QDMA/linux-kernel/apps/dma-to-device/dma_to_device.c
old mode 100644
new mode 100755
index a632472..9f12143
--- a/QDMA/linux-kernel/apps/dma-to-device/dma_to_device.c
+++ b/QDMA/linux-kernel/apps/dma-to-device/dma_to_device.c
@@ -1,265 +1,265 @@
-/*
- * This file is part of the QDMA userspace application
- * to enable the user to execute the QDMA functionality
- *
- * Copyright (c) 2018-2022,  Xilinx, Inc.
- * All rights reserved.
- *
- * This source code is licensed under BSD-style license (found in the
- * LICENSE file in the root directory of this source tree)
- */
-
-#define _DEFAULT_SOURCE
-#define _XOPEN_SOURCE 500
-#include <assert.h>
-#include <fcntl.h>
-#include <getopt.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-#include <time.h>
-
-#include <sys/mman.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-#include "dma_xfer_utils.c"
-
-#define DEVICE_NAME_DEFAULT "/dev/qdma01000-MM-0"
-#define SIZE_DEFAULT (32)
-#define COUNT_DEFAULT (1)
-
-static struct option const long_opts[] = {
-	{"device", required_argument, NULL, 'd'},
-	{"address", required_argument, NULL, 'a'},
-	{"size", required_argument, NULL, 's'},
-	{"offset", required_argument, NULL, 'o'},
-	{"count", required_argument, NULL, 'c'},
-	{"data infile", required_argument, NULL, 'f'},
-	{"data outfile", required_argument, NULL, 'w'},
-	{"help", no_argument, NULL, 'h'},
-	{"verbose", no_argument, NULL, 'v'},
-	{0, 0, 0, 0}
-};
-
-static int test_dma(char *devname, uint64_t addr, uint64_t size,
-		    uint64_t offset, uint64_t count, char *infname, char *);
-
-static void usage(const char *name)
-{
-	int i = 0;
-
-	fprintf(stdout, "%s\n\n", name);
-	fprintf(stdout, "usage: %s [OPTIONS]\n\n", name);
-	fprintf(stdout,
-		"Write via SGDMA, optionally read input from a file.\n\n");
-
-	fprintf(stdout, "  -%c (--%s) device (defaults to %s)\n",
-		long_opts[i].val, long_opts[i].name, DEVICE_NAME_DEFAULT);
-	i++;
-	fprintf(stdout, "  -%c (--%s) the start address on the AXI bus\n",
-		long_opts[i].val, long_opts[i].name);
-	i++;
-	fprintf(stdout,
-		"  -%c (--%s) size of a single transfer in bytes, default %d,\n",
-		long_opts[i].val, long_opts[i].name, SIZE_DEFAULT);
-	i++;
-	fprintf(stdout, "  -%c (--%s) page offset of transfer\n",
-		long_opts[i].val, long_opts[i].name);
-	i++;
-	fprintf(stdout, "  -%c (--%s) number of transfers, default %d\n",
-		long_opts[i].val, long_opts[i].name, COUNT_DEFAULT);
-	i++;
-	fprintf(stdout, "  -%c (--%s) filename to read the data from.\n",
-		long_opts[i].val, long_opts[i].name);
-	i++;
-	fprintf(stdout,
-		"  -%c (--%s) filename to write the data of the transfers\n",
-		long_opts[i].val, long_opts[i].name);
-	i++;
-	fprintf(stdout, "  -%c (--%s) print usage help and exit\n",
-		long_opts[i].val, long_opts[i].name);
-	i++;
-	fprintf(stdout, "  -%c (--%s) verbose output\n",
-		long_opts[i].val, long_opts[i].name);
-}
-
-int main(int argc, char *argv[])
-{
-	int cmd_opt;
-	char *device = DEVICE_NAME_DEFAULT;
-	uint64_t address = 0;
-	uint64_t size = SIZE_DEFAULT;
-	uint64_t offset = 0;
-	uint64_t count = COUNT_DEFAULT;
-	char *infname = NULL;
-	char *ofname = NULL;
-
-	while ((cmd_opt =
-		getopt_long(argc, argv, "vhc:f:d:a:s:o:w:", long_opts,
-			    NULL)) != -1) {
-		switch (cmd_opt) {
-		case 0:
-			/* long option */
-			break;
-		case 'd':
-			/* device node name */
-			//fprintf(stdout, "'%s'\n", optarg);
-			device = strdup(optarg);
-			break;
-		case 'a':
-			/* RAM address on the AXI bus in bytes */
-			address = getopt_integer(optarg);
-			break;
-		case 's':
-			/* size in bytes */
-			size = getopt_integer(optarg);
-			break;
-		case 'o':
-			offset = getopt_integer(optarg) & 4095;
-			break;
-			/* count */
-		case 'c':
-			count = getopt_integer(optarg);
-			break;
-			/* count */
-		case 'f':
-			infname = strdup(optarg);
-			break;
-		case 'w':
-			ofname = strdup(optarg);
-			break;
-			/* print usage help and exit */
-		case 'v':
-			verbose = 1;
-			break;
-		case 'h':
-		default:
-			usage(argv[0]);
-			exit(0);
-			break;
-		}
-	}
-
-	if (verbose)
-		fprintf(stdout,
-		"dev %s, address 0x%lx, size 0x%lx, offset 0x%lx, count %lu\n",
-		device, address, size, offset, count);
-
-	return test_dma(device, address, size, offset, count, infname, ofname);
-}
-
-static int test_dma(char *devname, uint64_t addr, uint64_t size,
-		    uint64_t offset, uint64_t count, char *infname,
-		    char *ofname)
-{
-	uint64_t i;
-	ssize_t rc;
-	char *buffer = NULL;
-	char *allocated = NULL;
-	struct timespec ts_start, ts_end;
-	int infile_fd = -1;
-	int outfile_fd = -1;
-	int fpga_fd = open(devname, O_RDWR);
-	double total_time = 0;
-	double result;
-	double avg_time = 0;
-
-
-	if (fpga_fd < 0) {
-		fprintf(stderr, "unable to open device %s, %d.\n",
-			devname, fpga_fd);
-		perror("open device");
-		return -EINVAL;
-	}
-
-	if (infname) {
-		infile_fd = open(infname, O_RDONLY);
-		if (infile_fd < 0) {
-			fprintf(stderr, "unable to open input file %s, %d.\n",
-				infname, infile_fd);
-			perror("open input file");
-			rc = -EINVAL;
-			goto out;
-		}
-	}
-
-	if (ofname) {
-		outfile_fd =
-		    open(ofname, O_RDWR | O_CREAT | O_TRUNC | O_SYNC,
-			 0666);
-		if (outfile_fd < 0) {
-			fprintf(stderr, "unable to open output file %s, %d.\n",
-				ofname, outfile_fd);
-			perror("open output file");
-			rc = -EINVAL;
-			goto out;
-		}
-	}
-
-	posix_memalign((void **)&allocated, 4096 /*alignment */ , size + 4096);
-	if (!allocated) {
-		fprintf(stderr, "OOM %lu.\n", size + 4096);
-		rc = -ENOMEM;
-		goto out;
-	}
-	buffer = allocated + offset;
-	if (verbose)
-		fprintf(stdout, "host buffer 0x%lx = %p\n",
-			size + 4096, buffer);
-
-	if (infile_fd >= 0) {
-		rc = read_to_buffer(infname, infile_fd, buffer, size, 0);
-		if (rc < 0)
-			goto out;
-	}
-
-	for (i = 0; i < count; i++) {
-		/* write buffer to AXI MM address using SGDMA */
-		clock_gettime(CLOCK_MONOTONIC, &ts_start);
-
-		rc = write_from_buffer(devname, fpga_fd, buffer, size, addr);
-		if (rc < 0)
-			goto out;
-
-		rc = clock_gettime(CLOCK_MONOTONIC, &ts_end);
-		/* subtract the start time from the end time */
-		timespec_sub(&ts_end, &ts_start);
-		total_time += (ts_end.tv_sec + ((double)ts_end.tv_nsec/NSEC_DIV));
-		/* a bit less accurate but side-effects are accounted for */
-		if (verbose)
-		fprintf(stdout,
-			"#%lu: CLOCK_MONOTONIC %ld.%09ld sec. write %lu bytes\n",
-			i, ts_end.tv_sec, ts_end.tv_nsec, size);
-
-		if (outfile_fd >= 0) {
-			rc = write_from_buffer(ofname, outfile_fd, buffer,
-						 size, i * size);
-			if (rc < 0)
-				goto out;
-		}
-	}
-	avg_time = (double)total_time/(double)count;
-	result = ((double)size)/avg_time;
-	if (verbose)
-	printf("** Avg time device %s, total time %f nsec, avg_time = %f, size = %lu, BW = %f bytes/sec\n",
-		devname, total_time, avg_time, size, result);
-	dump_throughput_result(size, result);
-
-	rc = 0;
-
-out:
-	close(fpga_fd);
-	if (infile_fd >= 0)
-		close(infile_fd);
-	if (outfile_fd >= 0)
-		close(outfile_fd);
-	free(allocated);
-
-	return rc;
-}
+/*
+ * This file is part of the QDMA userspace application
+ * to enable the user to execute the QDMA functionality
+ *
+ * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
+ *
+ * This source code is licensed under BSD-style license (found in the
+ * LICENSE file in the root directory of this source tree)
+ */
+
+#define _DEFAULT_SOURCE
+#define _XOPEN_SOURCE 500
+#include <assert.h>
+#include <fcntl.h>
+#include <getopt.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+#include <time.h>
+
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include "dma_xfer_utils.c"
+
+#define DEVICE_NAME_DEFAULT "/dev/qdma01000-MM-0"
+#define SIZE_DEFAULT (32)
+#define COUNT_DEFAULT (1)
+
+static struct option const long_opts[] = {
+	{"device", required_argument, NULL, 'd'},
+	{"address", required_argument, NULL, 'a'},
+	{"size", required_argument, NULL, 's'},
+	{"offset", required_argument, NULL, 'o'},
+	{"count", required_argument, NULL, 'c'},
+	{"data infile", required_argument, NULL, 'f'},
+	{"data outfile", required_argument, NULL, 'w'},
+	{"help", no_argument, NULL, 'h'},
+	{"verbose", no_argument, NULL, 'v'},
+	{0, 0, 0, 0}
+};
+
+static int test_dma(char *devname, uint64_t addr, uint64_t size,
+		    uint64_t offset, uint64_t count, char *infname, char *);
+
+static void usage(const char *name)
+{
+	int i = 0;
+
+	fprintf(stdout, "%s\n\n", name);
+	fprintf(stdout, "usage: %s [OPTIONS]\n\n", name);
+	fprintf(stdout,
+		"Write via SGDMA, optionally read input from a file.\n\n");
+
+	fprintf(stdout, "  -%c (--%s) device (defaults to %s)\n",
+		long_opts[i].val, long_opts[i].name, DEVICE_NAME_DEFAULT);
+	i++;
+	fprintf(stdout, "  -%c (--%s) the start address on the AXI bus\n",
+		long_opts[i].val, long_opts[i].name);
+	i++;
+	fprintf(stdout,
+		"  -%c (--%s) size of a single transfer in bytes, default %d,\n",
+		long_opts[i].val, long_opts[i].name, SIZE_DEFAULT);
+	i++;
+	fprintf(stdout, "  -%c (--%s) page offset of transfer\n",
+		long_opts[i].val, long_opts[i].name);
+	i++;
+	fprintf(stdout, "  -%c (--%s) number of transfers, default %d\n",
+		long_opts[i].val, long_opts[i].name, COUNT_DEFAULT);
+	i++;
+	fprintf(stdout, "  -%c (--%s) filename to read the data from.\n",
+		long_opts[i].val, long_opts[i].name);
+	i++;
+	fprintf(stdout,
+		"  -%c (--%s) filename to write the data of the transfers\n",
+		long_opts[i].val, long_opts[i].name);
+	i++;
+	fprintf(stdout, "  -%c (--%s) print usage help and exit\n",
+		long_opts[i].val, long_opts[i].name);
+	i++;
+	fprintf(stdout, "  -%c (--%s) verbose output\n",
+		long_opts[i].val, long_opts[i].name);
+}
+
+int main(int argc, char *argv[])
+{
+	int cmd_opt;
+	char *device = DEVICE_NAME_DEFAULT;
+	uint64_t address = 0;
+	uint64_t size = SIZE_DEFAULT;
+	uint64_t offset = 0;
+	uint64_t count = COUNT_DEFAULT;
+	char *infname = NULL;
+	char *ofname = NULL;
+
+	while ((cmd_opt =
+		getopt_long(argc, argv, "vhc:f:d:a:s:o:w:", long_opts,
+			    NULL)) != -1) {
+		switch (cmd_opt) {
+		case 0:
+			/* long option */
+			break;
+		case 'd':
+			/* device node name */
+			//fprintf(stdout, "'%s'\n", optarg);
+			device = strdup(optarg);
+			break;
+		case 'a':
+			/* RAM address on the AXI bus in bytes */
+			address = getopt_integer(optarg);
+			break;
+		case 's':
+			/* size in bytes */
+			size = getopt_integer(optarg);
+			break;
+		case 'o':
+			offset = getopt_integer(optarg) & 4095;
+			break;
+			/* count */
+		case 'c':
+			count = getopt_integer(optarg);
+			break;
+			/* count */
+		case 'f':
+			infname = strdup(optarg);
+			break;
+		case 'w':
+			ofname = strdup(optarg);
+			break;
+			/* print usage help and exit */
+		case 'v':
+			verbose = 1;
+			break;
+		case 'h':
+		default:
+			usage(argv[0]);
+			exit(0);
+			break;
+		}
+	}
+
+	if (verbose)
+		fprintf(stdout,
+		"dev %s, address 0x%lx, size 0x%lx, offset 0x%lx, count %lu\n",
+		device, address, size, offset, count);
+
+	return test_dma(device, address, size, offset, count, infname, ofname);
+}
+
+static int test_dma(char *devname, uint64_t addr, uint64_t size,
+		    uint64_t offset, uint64_t count, char *infname,
+		    char *ofname)
+{
+	uint64_t i;
+	ssize_t rc;
+	char *buffer = NULL;
+	char *allocated = NULL;
+	struct timespec ts_start, ts_end;
+	int infile_fd = -1;
+	int outfile_fd = -1;
+	int fpga_fd = open(devname, O_RDWR);
+	double total_time = 0;
+	double result;
+	double avg_time = 0;
+
+
+	if (fpga_fd < 0) {
+		fprintf(stderr, "unable to open device %s, %d.\n",
+			devname, fpga_fd);
+		perror("open device");
+		return -EINVAL;
+	}
+
+	if (infname) {
+		infile_fd = open(infname, O_RDONLY);
+		if (infile_fd < 0) {
+			fprintf(stderr, "unable to open input file %s, %d.\n",
+				infname, infile_fd);
+			perror("open input file");
+			rc = -EINVAL;
+			goto out;
+		}
+	}
+
+	if (ofname) {
+		outfile_fd =
+		    open(ofname, O_RDWR | O_CREAT | O_TRUNC | O_SYNC,
+			 0666);
+		if (outfile_fd < 0) {
+			fprintf(stderr, "unable to open output file %s, %d.\n",
+				ofname, outfile_fd);
+			perror("open output file");
+			rc = -EINVAL;
+			goto out;
+		}
+	}
+
+	posix_memalign((void **)&allocated, 4096 /*alignment */ , size + 4096);
+	if (!allocated) {
+		fprintf(stderr, "OOM %lu.\n", size + 4096);
+		rc = -ENOMEM;
+		goto out;
+	}
+	buffer = allocated + offset;
+	if (verbose)
+		fprintf(stdout, "host buffer 0x%lx = %p\n",
+			size + 4096, buffer);
+
+	if (infile_fd >= 0) {
+		rc = read_to_buffer(infname, infile_fd, buffer, size, 0);
+		if (rc < 0)
+			goto out;
+	}
+
+	for (i = 0; i < count; i++) {
+		/* write buffer to AXI MM address using SGDMA */
+		clock_gettime(CLOCK_MONOTONIC, &ts_start);
+
+		rc = write_from_buffer(devname, fpga_fd, buffer, size, addr);
+		if (rc < 0)
+			goto out;
+
+		rc = clock_gettime(CLOCK_MONOTONIC, &ts_end);
+		/* subtract the start time from the end time */
+		timespec_sub(&ts_end, &ts_start);
+		total_time += (ts_end.tv_sec + ((double)ts_end.tv_nsec/NSEC_DIV));
+		/* a bit less accurate but side-effects are accounted for */
+		if (verbose)
+		fprintf(stdout,
+			"#%lu: CLOCK_MONOTONIC %ld.%09ld sec. write %lu bytes\n",
+			i, ts_end.tv_sec, ts_end.tv_nsec, size);
+
+		if (outfile_fd >= 0) {
+			rc = write_from_buffer(ofname, outfile_fd, buffer,
+						 size, i * size);
+			if (rc < 0)
+				goto out;
+		}
+	}
+	avg_time = (double)total_time/(double)count;
+	result = ((double)size)/avg_time;
+	if (verbose)
+	printf("** Avg time device %s, total time %f nsec, avg_time = %f, size = %lu, BW = %f bytes/sec\n",
+		devname, total_time, avg_time, size, result);
+	dump_throughput_result(size, result);
+
+	rc = 0;
+
+out:
+	close(fpga_fd);
+	if (infile_fd >= 0)
+		close(infile_fd);
+	if (outfile_fd >= 0)
+		close(outfile_fd);
+	free(allocated);
+
+	return rc;
+}
diff --git a/QDMA/linux-kernel/apps/dma-to-device/version.h b/QDMA/linux-kernel/apps/dma-to-device/version.h
old mode 100644
new mode 100755
index 32560b8..2cd20e0
--- a/QDMA/linux-kernel/apps/dma-to-device/version.h
+++ b/QDMA/linux-kernel/apps/dma-to-device/version.h
@@ -2,8 +2,8 @@
  * This file is part of the QDMA userspace application
  * to enable the user to execute the QDMA functionality
  *
- * Copyright (c) 2018-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is licensed under BSD-style license (found in the
  * LICENSE file in the root directory of this source tree)
@@ -13,7 +13,7 @@
 #define __DMA_TO_DEVICE_VERSION_H
 
 #define PROGNAME "dma-to-device"
-#define VERSION "2022.1.0"
+#define VERSION "2022.2.0"
 #define COPYRIGHT "Copyright (c) 2018-2022 Xilinx Inc."
 
 #endif
diff --git a/QDMA/linux-kernel/apps/dma-utils/Makefile b/QDMA/linux-kernel/apps/dma-utils/Makefile
old mode 100644
new mode 100755
index ec67873..1fb3558
--- a/QDMA/linux-kernel/apps/dma-utils/Makefile
+++ b/QDMA/linux-kernel/apps/dma-utils/Makefile
@@ -1,26 +1,26 @@
-#
-#/*
-# * This file is part of the QDMA userspace application
-# * to enable the user to execute the QDMA functionality
-# *
-# * Copyright (c) 2018-2022,  Xilinx, Inc.
-# * All rights reserved.
-# *
-# * This source code is licensed under BSD-style license (found in the
-# * LICENSE file in the root directory of this source tree)
-# */
-
-CC ?= gcc
-
-CFLAGS += -g
-#CFLAGS += -O2 -fno-inline -Wall -Wstrict-prototypes
-CFLAGS += -I. -I../include
-CFLAGS += $(EXTRA_FLAGS)
-
-all: dmautils.o dmactl.o dmactl_reg.o dmaxfer.o dma_xfer_utils.o
-
-%.o: %.c
-	$(CC) $(CFLAGS) -c -std=c99 -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE -D_AIO_AIX_SOURCE
-
-clean:
-	rm -rf *.o
+#
+#/*
+# * This file is part of the QDMA userspace application
+# * to enable the user to execute the QDMA functionality
+# *
+# * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+# * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
+# *
+# * This source code is licensed under BSD-style license (found in the
+# * LICENSE file in the root directory of this source tree)
+# */
+
+CC ?= gcc
+
+CFLAGS += -g
+#CFLAGS += -O2 -fno-inline -Wall -Wstrict-prototypes
+CFLAGS += -I. -I../include
+CFLAGS += $(EXTRA_FLAGS)
+
+all: dmautils.o dmactl.o dmactl_reg.o dmaxfer.o dma_xfer_utils.o
+
+%.o: %.c
+	$(CC) $(CFLAGS) -c -std=c99 -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE -D_AIO_AIX_SOURCE
+
+clean:
+	rm -rf *.o
diff --git a/QDMA/linux-kernel/apps/dma-utils/dma_xfer_utils.c b/QDMA/linux-kernel/apps/dma-utils/dma_xfer_utils.c
old mode 100644
new mode 100755
index 3d9b224..0dbc313
--- a/QDMA/linux-kernel/apps/dma-utils/dma_xfer_utils.c
+++ b/QDMA/linux-kernel/apps/dma-utils/dma_xfer_utils.c
@@ -1,214 +1,214 @@
-/*
- * This file is part of the QDMA userspace application
- * to enable the user to execute the QDMA functionality
- *
- * Copyright (c) 2018-2022,  Xilinx, Inc.
- * All rights reserved.
- *
- * This source code is licensed under BSD-style license (found in the
- * LICENSE file in the root directory of this source tree)
- */
-
-#include <stdio.h>
-#include <stdint.h>
-#include <unistd.h>
-#include <time.h>
-#include <errno.h>
-#include <sys/types.h>
-
-/*
- * man 2 write:
- * On Linux, write() (and similar system calls) will transfer at most
- * 	0x7ffff000 (2,147,479,552) bytes, returning the number of bytes
- *	actually transferred.  (This is true on both 32-bit and 64-bit
- *	systems.)
- */
-
-#define RW_MAX_SIZE	0x7ffff000
-#define GB_DIV 1000000000
-#define MB_DIV 1000000
-#define KB_DIV 1000
-#define NSEC_DIV 1000000000
-
-int verbose = 0;
-
-void dump_throughput_result(uint64_t size, float result) {
-	printf("size=%lu ", size);
-	if (((long long)(result)/GB_DIV)) {
-		printf("Average BW = %f GB/sec\n", ((double)result/GB_DIV));
-	} else if (((long long)(result)/MB_DIV)) {
-		printf("Average BW = %f MB/sec\n", ((double)result/MB_DIV));
-	} else if (((long long)(result)/KB_DIV)) {
-		printf("Average BW = %f KB/sec\n", ((double)result/KB_DIV));
-	} else
-		printf("Average BW = %f Bytes/sec\n", ((double)result));
-}
-
-uint64_t getopt_integer(char *optarg)
-{
-	int rc;
-	uint64_t value;
-
-	rc = sscanf(optarg, "0x%lx", &value);
-	if (rc <= 0)
-		sscanf(optarg, "%lu", &value);
-	//printf("sscanf() = %d, value = 0x%lx\n", rc, value);
-
-	return value;
-}
-
-ssize_t read_to_buffer(char *fname, int fd, char *buffer, uint64_t size,
-			uint64_t base)
-{
-	ssize_t rc;
-	uint64_t count = 0;
-	char *buf = buffer;
-	off_t offset = base;
-
-	do { /* Support zero byte transfer */
-		uint64_t bytes = size - count;
-
-		if (bytes > RW_MAX_SIZE)
-			bytes = RW_MAX_SIZE;
-
-		if (offset) {
-			rc = lseek(fd, offset, SEEK_SET);
-			if (rc < 0) {
-				fprintf(stderr,
-					"%s, seek off 0x%lx failed %zd.\n",
-					fname, offset, rc);
-				perror("seek file");
-				return -EIO;
-			}
-			if (rc != offset) {
-				fprintf(stderr,
-					"%s, seek off 0x%lx != 0x%lx.\n",
-					fname, rc, offset);
-				return -EIO;
-			}
-		}
-
-		/* read data from file into memory buffer */
-		rc = read(fd, buf, bytes);
-		if (rc < 0) {
-			fprintf(stderr,
-				"%s, read off 0x%lx + 0x%lx failed %zd.\n",
-				fname, offset, bytes, rc);
-			perror("read file");
-			return -EIO;
-		}
-		if (rc != bytes) {
-			fprintf(stderr,
-				"%s, R off 0x%lx, 0x%lx != 0x%lx.\n",
-				fname, count, rc, bytes);
-			return -EIO;
-		}
-
-		count += bytes;
-		buf += bytes;
-		offset += bytes;
-	} while (count < size);
-
-	if (count != size) {
-		fprintf(stderr, "%s, R failed 0x%lx != 0x%lx.\n",
-				fname, count, size);
-		return -EIO;
-	}
-	return count;
-}
-
-ssize_t write_from_buffer(char *fname, int fd, char *buffer, uint64_t size,
-			uint64_t base)
-{
-	ssize_t rc;
-	uint64_t count = 0;
-	char *buf = buffer;
-	off_t offset = base;
-
-	do { /* Support zero byte transfer */
-		uint64_t bytes = size - count;
-
-		if (bytes > RW_MAX_SIZE)
-			bytes = RW_MAX_SIZE;
-
-		if (offset) {
-			rc = lseek(fd, offset, SEEK_SET);
-			if (rc < 0) {
-				fprintf(stderr,
-					"%s, seek off 0x%lx failed %zd.\n",
-					fname, offset, rc);
-				perror("seek file");
-				return -EIO;
-			}
-			if (rc != offset) {
-				fprintf(stderr,
-					"%s, seek off 0x%lx != 0x%lx.\n",
-					fname, rc, offset);
-				return -EIO;
-			}
-		}
-
-		/* write data to file from memory buffer */
-		rc = write(fd, buf, bytes);
-		if (rc < 0) {
-			fprintf(stderr, "%s, W off 0x%lx, 0x%lx failed %zd.\n",
-				fname, offset, bytes, rc);
-			perror("write file");
-			return -EIO;
-		}
-		if (rc != bytes) {
-			fprintf(stderr, "%s, W off 0x%lx, 0x%lx != 0x%lx.\n",
-				fname, offset, rc, bytes);
-			return -EIO;
-		}
-
-		count += bytes;
-		buf += bytes;
-		offset += bytes;
-	} while (count < size);
-
-	if (count != size) {
-		fprintf(stderr, "%s, R failed 0x%lx != 0x%lx.\n",
-				fname, count, size);
-		return -EIO;
-	}
-	return count;
-}
-
-
-/* Subtract timespec t2 from t1
- *
- * Both t1 and t2 must already be normalized
- * i.e. 0 <= nsec < 1000000000
- */
-static int timespec_check(struct timespec *t)
-{
-	if ((t->tv_nsec < 0) || (t->tv_nsec >= 1000000000))
-		return -1;
-	return 0;
-
-}
-
-void timespec_sub(struct timespec *t1, struct timespec *t2)
-{
-	if (timespec_check(t1) < 0) {
-		fprintf(stderr, "invalid time #1: %lld.%.9ld.\n",
-			(long long)t1->tv_sec, t1->tv_nsec);
-		return;
-	}
-	if (timespec_check(t2) < 0) {
-		fprintf(stderr, "invalid time #2: %lld.%.9ld.\n",
-			(long long)t2->tv_sec, t2->tv_nsec);
-		return;
-	}
-	t1->tv_sec -= t2->tv_sec;
-	t1->tv_nsec -= t2->tv_nsec;
-	if (t1->tv_nsec >= 1000000000) {
-		t1->tv_sec++;
-		t1->tv_nsec -= 1000000000;
-	} else if (t1->tv_nsec < 0) {
-		t1->tv_sec--;
-		t1->tv_nsec += 1000000000;
-	}
-}
-
+/*
+ * This file is part of the QDMA userspace application
+ * to enable the user to execute the QDMA functionality
+ *
+ * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
+ *
+ * This source code is licensed under BSD-style license (found in the
+ * LICENSE file in the root directory of this source tree)
+ */
+
+#include <stdio.h>
+#include <stdint.h>
+#include <unistd.h>
+#include <time.h>
+#include <errno.h>
+#include <sys/types.h>
+
+/*
+ * man 2 write:
+ * On Linux, write() (and similar system calls) will transfer at most
+ * 	0x7ffff000 (2,147,479,552) bytes, returning the number of bytes
+ *	actually transferred.  (This is true on both 32-bit and 64-bit
+ *	systems.)
+ */
+
+#define RW_MAX_SIZE	0x7ffff000
+#define GB_DIV 1000000000
+#define MB_DIV 1000000
+#define KB_DIV 1000
+#define NSEC_DIV 1000000000
+
+int verbose = 0;
+
+void dump_throughput_result(uint64_t size, float result) {
+	printf("size=%lu ", size);
+	if (((long long)(result)/GB_DIV)) {
+		printf("Average BW = %f GB/sec\n", ((double)result/GB_DIV));
+	} else if (((long long)(result)/MB_DIV)) {
+		printf("Average BW = %f MB/sec\n", ((double)result/MB_DIV));
+	} else if (((long long)(result)/KB_DIV)) {
+		printf("Average BW = %f KB/sec\n", ((double)result/KB_DIV));
+	} else
+		printf("Average BW = %f Bytes/sec\n", ((double)result));
+}
+
+uint64_t getopt_integer(char *optarg)
+{
+	int rc;
+	uint64_t value;
+
+	rc = sscanf(optarg, "0x%lx", &value);
+	if (rc <= 0)
+		sscanf(optarg, "%lu", &value);
+	//printf("sscanf() = %d, value = 0x%lx\n", rc, value);
+
+	return value;
+}
+
+ssize_t read_to_buffer(char *fname, int fd, char *buffer, uint64_t size,
+			uint64_t base)
+{
+	ssize_t rc;
+	uint64_t count = 0;
+	char *buf = buffer;
+	off_t offset = base;
+
+	do { /* Support zero byte transfer */
+		uint64_t bytes = size - count;
+
+		if (bytes > RW_MAX_SIZE)
+			bytes = RW_MAX_SIZE;
+
+		if (offset) {
+			rc = lseek(fd, offset, SEEK_SET);
+			if (rc < 0) {
+				fprintf(stderr,
+					"%s, seek off 0x%lx failed %zd.\n",
+					fname, offset, rc);
+				perror("seek file");
+				return -EIO;
+			}
+			if (rc != offset) {
+				fprintf(stderr,
+					"%s, seek off 0x%lx != 0x%lx.\n",
+					fname, rc, offset);
+				return -EIO;
+			}
+		}
+
+		/* read data from file into memory buffer */
+		rc = read(fd, buf, bytes);
+		if (rc < 0) {
+			fprintf(stderr,
+				"%s, read off 0x%lx + 0x%lx failed %zd.\n",
+				fname, offset, bytes, rc);
+			perror("read file");
+			return -EIO;
+		}
+		if (rc != bytes) {
+			fprintf(stderr,
+				"%s, R off 0x%lx, 0x%lx != 0x%lx.\n",
+				fname, count, rc, bytes);
+			return -EIO;
+		}
+
+		count += bytes;
+		buf += bytes;
+		offset += bytes;
+	} while (count < size);
+
+	if (count != size) {
+		fprintf(stderr, "%s, R failed 0x%lx != 0x%lx.\n",
+				fname, count, size);
+		return -EIO;
+	}
+	return count;
+}
+
+ssize_t write_from_buffer(char *fname, int fd, char *buffer, uint64_t size,
+			uint64_t base)
+{
+	ssize_t rc;
+	uint64_t count = 0;
+	char *buf = buffer;
+	off_t offset = base;
+
+	do { /* Support zero byte transfer */
+		uint64_t bytes = size - count;
+
+		if (bytes > RW_MAX_SIZE)
+			bytes = RW_MAX_SIZE;
+
+		if (offset) {
+			rc = lseek(fd, offset, SEEK_SET);
+			if (rc < 0) {
+				fprintf(stderr,
+					"%s, seek off 0x%lx failed %zd.\n",
+					fname, offset, rc);
+				perror("seek file");
+				return -EIO;
+			}
+			if (rc != offset) {
+				fprintf(stderr,
+					"%s, seek off 0x%lx != 0x%lx.\n",
+					fname, rc, offset);
+				return -EIO;
+			}
+		}
+
+		/* write data to file from memory buffer */
+		rc = write(fd, buf, bytes);
+		if (rc < 0) {
+			fprintf(stderr, "%s, W off 0x%lx, 0x%lx failed %zd.\n",
+				fname, offset, bytes, rc);
+			perror("write file");
+			return -EIO;
+		}
+		if (rc != bytes) {
+			fprintf(stderr, "%s, W off 0x%lx, 0x%lx != 0x%lx.\n",
+				fname, offset, rc, bytes);
+			return -EIO;
+		}
+
+		count += bytes;
+		buf += bytes;
+		offset += bytes;
+	} while (count < size);
+
+	if (count != size) {
+		fprintf(stderr, "%s, R failed 0x%lx != 0x%lx.\n",
+				fname, count, size);
+		return -EIO;
+	}
+	return count;
+}
+
+
+/* Subtract timespec t2 from t1
+ *
+ * Both t1 and t2 must already be normalized
+ * i.e. 0 <= nsec < 1000000000
+ */
+static int timespec_check(struct timespec *t)
+{
+	if ((t->tv_nsec < 0) || (t->tv_nsec >= 1000000000))
+		return -1;
+	return 0;
+
+}
+
+void timespec_sub(struct timespec *t1, struct timespec *t2)
+{
+	if (timespec_check(t1) < 0) {
+		fprintf(stderr, "invalid time #1: %lld.%.9ld.\n",
+			(long long)t1->tv_sec, t1->tv_nsec);
+		return;
+	}
+	if (timespec_check(t2) < 0) {
+		fprintf(stderr, "invalid time #2: %lld.%.9ld.\n",
+			(long long)t2->tv_sec, t2->tv_nsec);
+		return;
+	}
+	t1->tv_sec -= t2->tv_sec;
+	t1->tv_nsec -= t2->tv_nsec;
+	if (t1->tv_nsec >= 1000000000) {
+		t1->tv_sec++;
+		t1->tv_nsec -= 1000000000;
+	} else if (t1->tv_nsec < 0) {
+		t1->tv_sec--;
+		t1->tv_nsec += 1000000000;
+	}
+}
+
diff --git a/QDMA/linux-kernel/apps/dma-utils/dmactl.c b/QDMA/linux-kernel/apps/dma-utils/dmactl.c
old mode 100644
new mode 100755
index ba57858..84ef8cc
--- a/QDMA/linux-kernel/apps/dma-utils/dmactl.c
+++ b/QDMA/linux-kernel/apps/dma-utils/dmactl.c
@@ -2,8 +2,8 @@
  * This file is part of the QDMA userspace application
  * to enable the user to execute the QDMA functionality
  *
- * Copyright (c) 2019-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2019-2022,  Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022,  Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is licensed under BSD-style license (found in the
  * LICENSE file in the root directory of this source tree)
@@ -175,12 +175,11 @@ static int xnl_connect(struct xnl_cb *cb, int vf, void (*log_err)(const char *))
 	cb->family = CTRL_ATTR_FAMILY_NAME;
 
 	if (vf) {
-        	attr->nla_len = strlen(XNL_NAME_VF) + 1 + NLA_HDRLEN;
-        	strcpy((char *)(attr + 1), XNL_NAME_VF);
-
+		attr->nla_len = strlen(XNL_NAME_VF) + 1 + NLA_HDRLEN;
+		memcpy((char *)(attr + 1), XNL_NAME_VF, sizeof(XNL_NAME_VF) - 1);
 	} else {
-        	attr->nla_len = strlen(XNL_NAME_PF) + 1 + NLA_HDRLEN;
-        	strcpy((char *)(attr + 1), XNL_NAME_PF);
+		attr->nla_len = strlen(XNL_NAME_PF) + 1 + NLA_HDRLEN;
+		memcpy((char *)(attr + 1), XNL_NAME_PF, sizeof(XNL_NAME_PF) - 1);
 	}
         hdr->n.nlmsg_len += NLMSG_ALIGN(attr->nla_len);
 
diff --git a/QDMA/linux-kernel/apps/dma-utils/dmactl_internal.h b/QDMA/linux-kernel/apps/dma-utils/dmactl_internal.h
old mode 100644
new mode 100755
index 8b03854..7283f7c
--- a/QDMA/linux-kernel/apps/dma-utils/dmactl_internal.h
+++ b/QDMA/linux-kernel/apps/dma-utils/dmactl_internal.h
@@ -1,23 +1,23 @@
-/*
- * This file is part of the QDMA userspace application
- * to enable the user to execute the QDMA functionality
- *
- * Copyright (c) 2019 - 2022,  Xilinx, Inc.
- * All rights reserved.
- *
- * This source code is licensed under BSD-style license (found in the
- * LICENSE file in the root directory of this source tree)
- */
-
-#ifndef _QDMACTL_INTERNAL_H_
-#define _QDMACTL_INTERNAL_H_
-
-#include <stdint.h>
-
-#include "dmautils.h"
-
-int proc_reg_cmd(struct xcmd_info *xcmd);
-int is_valid_addr(unsigned char bar_no, unsigned int reg_addr);
-int xnl_common_msg_send(struct xcmd_info *cmd, uint32_t *attrs);
-
-#endif /* _QDMACTL_INTERNAL_H_ */
+/*
+ * This file is part of the QDMA userspace application
+ * to enable the user to execute the QDMA functionality
+ *
+ * Copyright (c) 2019 - 2022,  Xilinx, Inc.
+ * All rights reserved.
+ *
+ * This source code is licensed under BSD-style license (found in the
+ * LICENSE file in the root directory of this source tree)
+ */
+
+#ifndef _QDMACTL_INTERNAL_H_
+#define _QDMACTL_INTERNAL_H_
+
+#include <stdint.h>
+
+#include "dmautils.h"
+
+int proc_reg_cmd(struct xcmd_info *xcmd);
+int is_valid_addr(unsigned char bar_no, unsigned int reg_addr);
+int xnl_common_msg_send(struct xcmd_info *cmd, uint32_t *attrs);
+
+#endif /* _QDMACTL_INTERNAL_H_ */
diff --git a/QDMA/linux-kernel/apps/dma-utils/dmactl_reg.c b/QDMA/linux-kernel/apps/dma-utils/dmactl_reg.c
old mode 100644
new mode 100755
diff --git a/QDMA/linux-kernel/apps/dma-utils/dmautils.c b/QDMA/linux-kernel/apps/dma-utils/dmautils.c
old mode 100644
new mode 100755
diff --git a/QDMA/linux-kernel/apps/dma-utils/dmautils.h b/QDMA/linux-kernel/apps/dma-utils/dmautils.h
old mode 100644
new mode 100755
diff --git a/QDMA/linux-kernel/apps/dma-utils/dmaxfer.c b/QDMA/linux-kernel/apps/dma-utils/dmaxfer.c
old mode 100644
new mode 100755
index a151a64..db94d7d
--- a/QDMA/linux-kernel/apps/dma-utils/dmaxfer.c
+++ b/QDMA/linux-kernel/apps/dma-utils/dmaxfer.c
@@ -2,8 +2,8 @@
  * This file is part of the QDMA userspace application
  * to enable the user to execute the QDMA functionality
  *
- * Copyright (c) 2018-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is licensed under BSD-style license (found in the
  * LICENSE file in the root directory of this source tree)
diff --git a/QDMA/linux-kernel/apps/dma-utils/dmaxfer.h b/QDMA/linux-kernel/apps/dma-utils/dmaxfer.h
old mode 100644
new mode 100755
diff --git a/QDMA/linux-kernel/apps/dma-utils/version.h b/QDMA/linux-kernel/apps/dma-utils/version.h
old mode 100644
new mode 100755
index 0a6dabd..30d8b17
--- a/QDMA/linux-kernel/apps/dma-utils/version.h
+++ b/QDMA/linux-kernel/apps/dma-utils/version.h
@@ -2,8 +2,8 @@
  * This file is part of the QDMA userspace application
  * to enable the user to execute the QDMA functionality
  *
- * Copyright (c) 2019-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2019-2022,  Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022,  Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is licensed under BSD-style license (found in the
  * LICENSE file in the root directory of this source tree)
@@ -13,7 +13,7 @@
 #define __DMA_UTILS_VERSION_H
 
 #define LIBNAME "dma-utils"
-#define QDMATUILS_VERSION "2022.1.0"
+#define QDMATUILS_VERSION "2022.2.0"
 #define COPYRIGHT "Copyright (c) 2019-2022 Xilinx Inc."
 
 #endif
diff --git a/QDMA/linux-kernel/apps/dma-xfer/Makefile b/QDMA/linux-kernel/apps/dma-xfer/Makefile
old mode 100644
new mode 100755
index dbfeb18..b89fe3b
--- a/QDMA/linux-kernel/apps/dma-xfer/Makefile
+++ b/QDMA/linux-kernel/apps/dma-xfer/Makefile
@@ -3,8 +3,8 @@
 # * This file is part of the QDMA userspace application
 # * to enable the user to execute the QDMA functionality
 # *
-# * Copyright (c) 2018-2022,  Xilinx, Inc.
-# * All rights reserved.
+# * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+# * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
 # *
 # * This source code is licensed under BSD-style license (found in the
 # * LICENSE file in the root directory of this source tree)
diff --git a/QDMA/linux-kernel/apps/dma-xfer/dmaxfer.c b/QDMA/linux-kernel/apps/dma-xfer/dmaxfer.c
old mode 100644
new mode 100755
index 2878e8d..cab6031
--- a/QDMA/linux-kernel/apps/dma-xfer/dmaxfer.c
+++ b/QDMA/linux-kernel/apps/dma-xfer/dmaxfer.c
@@ -2,8 +2,8 @@
  * This file is part of the QDMA userspace application
  * to enable the user to execute the QDMA functionality
  *
- * Copyright (c) 2018-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is licensed under BSD-style license (found in the
  * LICENSE file in the root directory of this source tree)
diff --git a/QDMA/linux-kernel/apps/dma-xfer/sample_qdma_xfer_config.txt b/QDMA/linux-kernel/apps/dma-xfer/sample_qdma_xfer_config.txt
old mode 100644
new mode 100755
index 93382da..5f364f0
--- a/QDMA/linux-kernel/apps/dma-xfer/sample_qdma_xfer_config.txt
+++ b/QDMA/linux-kernel/apps/dma-xfer/sample_qdma_xfer_config.txt
@@ -3,8 +3,8 @@
 # * This file is part of the QDMA userspace application
 # * to enable the user to execute the QDMA functionality
 # *
-# * Copyright (c) 2018-2022,  Xilinx, Inc.
-# * All rights reserved.
+# * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+# * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
 # *
 # * This source code is licensed under BSD-style license (found in the
 # * LICENSE file in the root directory of this source tree)
diff --git a/QDMA/linux-kernel/apps/dma-xfer/version.h b/QDMA/linux-kernel/apps/dma-xfer/version.h
old mode 100644
new mode 100755
index fb29da1..0f1d5ec
--- a/QDMA/linux-kernel/apps/dma-xfer/version.h
+++ b/QDMA/linux-kernel/apps/dma-xfer/version.h
@@ -2,8 +2,8 @@
  * This file is part of the QDMA userspace application
  * to enable the user to execute the QDMA functionality
  *
- * Copyright (c) 2019-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2019-2022,  Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022,  Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is licensed under BSD-style license (found in the
  * LICENSE file in the root directory of this source tree)
@@ -12,7 +12,7 @@
 #define __DMA_XFER_VERSION_H
 
 #define PROGNAME "dma-xfer"
-#define VERSION "2022.1.0"
+#define VERSION "2022.2.0"
 #define COPYRIGHT "Copyright (c) 2019-2022 Xilinx Inc."
 
 #endif
diff --git a/QDMA/linux-kernel/apps/include/qdma_nl.h b/QDMA/linux-kernel/apps/include/qdma_nl.h
old mode 100644
new mode 100755
index 614bc3f..09d7ad1
--- a/QDMA/linux-kernel/apps/include/qdma_nl.h
+++ b/QDMA/linux-kernel/apps/include/qdma_nl.h
@@ -1,15 +1,15 @@
-/*
- * This file is part of the Xilinx DMA IP Core driver for Linux
- *
- * Copyright (c) 2018-2022,  Xilinx, Inc.
- * All rights reserved.
- *
- * This source code is licensed under both the BSD-style license (found in the
- * LICENSE file in the root directory of this source tree) and the GPLv2 (found
- * in the COPYING file in the root directory of this source tree).
- * You may select, at your option, one of the above-listed licenses.
- */
-
+/*
+ * This file is part of the Xilinx DMA IP Core driver for Linux
+ *
+ * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
+ *
+ * This source code is licensed under both the BSD-style license (found in the
+ * LICENSE file in the root directory of this source tree) and the GPLv2 (found
+ * in the COPYING file in the root directory of this source tree).
+ * You may select, at your option, one of the above-listed licenses.
+ */
+
 #ifndef QDMA_NL_H__
 #define QDMA_NL_H__
 /**
diff --git a/QDMA/linux-kernel/apps/include/qdma_user_reg_dump.h b/QDMA/linux-kernel/apps/include/qdma_user_reg_dump.h
old mode 100644
new mode 100755
index c76a3e7..337ce81
--- a/QDMA/linux-kernel/apps/include/qdma_user_reg_dump.h
+++ b/QDMA/linux-kernel/apps/include/qdma_user_reg_dump.h
@@ -1,15 +1,15 @@
-/*
- * This file is part of the Xilinx DMA IP Core driver for Linux
- *
- * Copyright (c) 2018-2022,  Xilinx, Inc.
- * All rights reserved.
- *
- * This source code is licensed under both the BSD-style license (found in the
- * LICENSE file in the root directory of this source tree) and the GPLv2 (found
- * in the COPYING file in the root directory of this source tree).
- * You may select, at your option, one of the above-listed licenses.
- */
-
+/*
+ * This file is part of the Xilinx DMA IP Core driver for Linux
+ *
+ * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
+ *
+ * This source code is licensed under both the BSD-style license (found in the
+ * LICENSE file in the root directory of this source tree) and the GPLv2 (found
+ * in the COPYING file in the root directory of this source tree).
+ * You may select, at your option, one of the above-listed licenses.
+ */
+
 #include "qdma_reg_dump.h"
 
 #ifndef __QDMA_USER_REG_DUMP_H__
diff --git a/QDMA/linux-kernel/apps/include/xdev_regs.h b/QDMA/linux-kernel/apps/include/xdev_regs.h
old mode 100644
new mode 100755
index 7efbad4..feebb98
--- a/QDMA/linux-kernel/apps/include/xdev_regs.h
+++ b/QDMA/linux-kernel/apps/include/xdev_regs.h
@@ -1,15 +1,15 @@
-/*
- * This file is part of the Xilinx DMA IP Core driver for Linux
- *
- * Copyright (c) 2018-2022,  Xilinx, Inc.
- * All rights reserved.
- *
- * This source code is licensed under both the BSD-style license (found in the
- * LICENSE file in the root directory of this source tree) and the GPLv2 (found
- * in the COPYING file in the root directory of this source tree).
- * You may select, at your option, one of the above-listed licenses.
- */
-
+/*
+ * This file is part of the Xilinx DMA IP Core driver for Linux
+ *
+ * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
+ *
+ * This source code is licensed under both the BSD-style license (found in the
+ * LICENSE file in the root directory of this source tree) and the GPLv2 (found
+ * in the COPYING file in the root directory of this source tree).
+ * You may select, at your option, one of the above-listed licenses.
+ */
+
 #ifndef __XDEV_REGS_H__
 #define __XDEV_REGS_H__
 
diff --git a/QDMA/linux-kernel/bsd_license.txt b/QDMA/linux-kernel/bsd_license.txt
old mode 100644
new mode 100755
index 82d71f1..0759917
--- a/QDMA/linux-kernel/bsd_license.txt
+++ b/QDMA/linux-kernel/bsd_license.txt
@@ -1,12 +1,12 @@
-/*
- * This file is part of the Xilinx DMA IP Core driver for Linux
- *
- * Copyright (c) 2018-2022,  Xilinx, Inc.
- * All rights reserved.
- *
- * This source code is licensed under both the BSD-style license (found in the
- * LICENSE file in the root directory of this source tree) and the GPLv2 (found
- * in the COPYING file in the root directory of this source tree).
- * You may select, at your option, one of the above-listed licenses.
- */
-
+/*
+ * This file is part of the Xilinx DMA IP Core driver for Linux
+ *
+ * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
+ *
+ * This source code is licensed under both the BSD-style license (found in the
+ * LICENSE file in the root directory of this source tree) and the GPLv2 (found
+ * in the COPYING file in the root directory of this source tree).
+ * You may select, at your option, one of the above-listed licenses.
+ */
+
diff --git a/QDMA/linux-kernel/docs/README b/QDMA/linux-kernel/docs/README
old mode 100644
new mode 100755
index 4a8ca14..bc04f89
--- a/QDMA/linux-kernel/docs/README
+++ b/QDMA/linux-kernel/docs/README
@@ -302,8 +302,8 @@ _____________________________________________________________________________
   /*
   * This file is part of the Xilinx DMA IP Core driver for Linux
   *
-  * Copyright (c) 2017-2022,  Xilinx, Inc.
-  * All rights reserved.
+  * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+  * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
   *
   * This source code is free software; you can redistribute it and/or modify it
   * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/docs/dma-ctl.8.gz b/QDMA/linux-kernel/docs/dma-ctl.8.gz
old mode 100644
new mode 100755
diff --git a/QDMA/linux-kernel/docs/dmactl.8.gz b/QDMA/linux-kernel/docs/dmactl.8.gz
deleted file mode 100644
index 54119d1b01f92a4a76eed90bf7bcb1b8dd9b7969..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2338
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
YMx*m*^HnO(?$<LgY@Sv7LXUv~06779$^ZZW

diff --git a/QDMA/linux-kernel/driver/Makefile b/QDMA/linux-kernel/driver/Makefile
old mode 100644
new mode 100755
index 28935bb..9b8e6a3
--- a/QDMA/linux-kernel/driver/Makefile
+++ b/QDMA/linux-kernel/driver/Makefile
@@ -1,8 +1,8 @@
 #/*
 # * This file is part of the Xilinx DMA IP Core driver for Linux
 # *
-# * Copyright (c) 2017-2022,  Xilinx, Inc.
-# * All rights reserved.
+# * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+# * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
 # *
 # * This source code is free software; you can redistribute it and/or modify it
 # * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/include/qdma_nl.h b/QDMA/linux-kernel/driver/include/qdma_nl.h
old mode 100644
new mode 100755
index 82ca667..eaa10d7
--- a/QDMA/linux-kernel/driver/include/qdma_nl.h
+++ b/QDMA/linux-kernel/driver/include/qdma_nl.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/include/qdma_user_reg_dump.h b/QDMA/linux-kernel/driver/include/qdma_user_reg_dump.h
old mode 100644
new mode 100755
index 79c25a9..8975825
--- a/QDMA/linux-kernel/driver/include/qdma_user_reg_dump.h
+++ b/QDMA/linux-kernel/driver/include/qdma_user_reg_dump.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2018-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/include/xdev_regs.h b/QDMA/linux-kernel/driver/include/xdev_regs.h
old mode 100644
new mode 100755
index e27040f..73091dc
--- a/QDMA/linux-kernel/driver/include/xdev_regs.h
+++ b/QDMA/linux-kernel/driver/include/xdev_regs.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2018-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2018-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/Makefile b/QDMA/linux-kernel/driver/libqdma/Makefile
old mode 100644
new mode 100755
index b854f62..3184572
--- a/QDMA/linux-kernel/driver/libqdma/Makefile
+++ b/QDMA/linux-kernel/driver/libqdma/Makefile
@@ -1,8 +1,8 @@
 #/*
 # * This file is part of the Xilinx DMA IP Core driver for Linux
 # *
-# * Copyright (c) 2017-2022,  Xilinx, Inc.
-# * All rights reserved.
+# * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+# * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
 # *
 # * This source code is free software; you can redistribute it and/or modify it
 # * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/libqdma_config.c b/QDMA/linux-kernel/driver/libqdma/libqdma_config.c
old mode 100644
new mode 100755
index d3895a4..69fbf63
--- a/QDMA/linux-kernel/driver/libqdma/libqdma_config.c
+++ b/QDMA/linux-kernel/driver/libqdma/libqdma_config.c
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/libqdma_config.h b/QDMA/linux-kernel/driver/libqdma/libqdma_config.h
old mode 100644
new mode 100755
index c0ebb1f..99ae261
--- a/QDMA/linux-kernel/driver/libqdma/libqdma_config.h
+++ b/QDMA/linux-kernel/driver/libqdma/libqdma_config.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/libqdma_export.c b/QDMA/linux-kernel/driver/libqdma/libqdma_export.c
old mode 100644
new mode 100755
index 1b2672a..9add26f
--- a/QDMA/linux-kernel/driver/libqdma/libqdma_export.c
+++ b/QDMA/linux-kernel/driver/libqdma/libqdma_export.c
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/libqdma_export.h b/QDMA/linux-kernel/driver/libqdma/libqdma_export.h
old mode 100644
new mode 100755
index f9b2eb3..2cf6c27
--- a/QDMA/linux-kernel/driver/libqdma/libqdma_export.h
+++ b/QDMA/linux-kernel/driver/libqdma/libqdma_export.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -486,7 +486,8 @@ struct qdma_dev_conf {
 	 *  @param irq_index    Interrupt index
 	 *  @param uld		upper layer data, i.e. callback data
 	 */
-	void (*fp_user_isr_handler)(unsigned long dev_hndl,int irq_index, unsigned long uld);
+	void (*fp_user_isr_handler)(unsigned long dev_hndl, int irq_index,
+			unsigned long uld);
 #endif
 	/**
 	 *  @brief  Q interrupt top,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_cpm5_access/eqdma_cpm5_access.c b/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_cpm5_access/eqdma_cpm5_access.c
old mode 100644
new mode 100755
index 59fc504..239105b
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_cpm5_access/eqdma_cpm5_access.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_cpm5_access/eqdma_cpm5_access.c
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -2776,7 +2777,7 @@ int eqdma_cpm5_get_version(void *dev_hndl, uint8_t is_vf,
 
 	reg_val = qdma_reg_read(dev_hndl, reg_addr);
 
-	qdma_fetch_version_details(is_vf, reg_val, version_info);
+	qdma_fetch_version_details(dev_hndl, is_vf, reg_val, version_info);
 
 	return QDMA_SUCCESS;
 }
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_cpm5_access/eqdma_cpm5_access.h b/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_cpm5_access/eqdma_cpm5_access.h
old mode 100644
new mode 100755
index a302e78..93662d2
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_cpm5_access/eqdma_cpm5_access.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_cpm5_access/eqdma_cpm5_access.h
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_cpm5_access/eqdma_cpm5_reg.h b/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_cpm5_access/eqdma_cpm5_reg.h
old mode 100644
new mode 100755
index cf3cc13..4027484
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_cpm5_access/eqdma_cpm5_reg.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_cpm5_access/eqdma_cpm5_reg.h
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -14,8 +15,8 @@
  * the file called "COPYING".
  */
 
-#ifndef __EQDMA_SOFT_REG_H
-#define __EQDMA_SOFT_REG_H
+#ifndef __EQDMA_CPM5_REG_H
+#define __EQDMA_CPM5_REG_H
 
 
 #ifdef __cplusplus
@@ -73,49 +74,49 @@ extern "C" {
 
 uint32_t eqdma_cpm5_config_num_regs_get(void);
 struct xreg_info *eqdma_cpm5_config_regs_get(void);
-#define EQDMA_CPM5_CFG_BLK_IDENTIFIER_ADDR                      0x00
+#define EQDMA_CPM5_CFG_BLK_IDENTIFIER_ADDR                 0x00
 #define CFG_BLK_IDENTIFIER_MASK                           GENMASK(31, 20)
 #define CFG_BLK_IDENTIFIER_1_MASK                         GENMASK(19, 16)
 #define CFG_BLK_IDENTIFIER_RSVD_1_MASK                     GENMASK(15, 8)
 #define CFG_BLK_IDENTIFIER_VERSION_MASK                    GENMASK(7, 0)
-#define EQDMA_CPM5_CFG_BLK_PCIE_MAX_PLD_SIZE_ADDR               0x08
+#define EQDMA_CPM5_CFG_BLK_PCIE_MAX_PLD_SIZE_ADDR          0x08
 #define CFG_BLK_PCIE_MAX_PLD_SIZE_RSVD_1_MASK              GENMASK(31, 7)
 #define CFG_BLK_PCIE_MAX_PLD_SIZE_PROG_MASK                GENMASK(6, 4)
 #define CFG_BLK_PCIE_MAX_PLD_SIZE_RSVD_2_MASK              BIT(3)
 #define CFG_BLK_PCIE_MAX_PLD_SIZE_ISSUED_MASK              GENMASK(2, 0)
-#define EQDMA_CPM5_CFG_BLK_PCIE_MAX_READ_REQ_SIZE_ADDR          0x0C
+#define EQDMA_CPM5_CFG_BLK_PCIE_MAX_READ_REQ_SIZE_ADDR     0x0C
 #define CFG_BLK_PCIE_MAX_READ_REQ_SIZE_RSVD_1_MASK         GENMASK(31, 7)
 #define CFG_BLK_PCIE_MAX_READ_REQ_SIZE_PROG_MASK           GENMASK(6, 4)
 #define CFG_BLK_PCIE_MAX_READ_REQ_SIZE_RSVD_2_MASK         BIT(3)
 #define CFG_BLK_PCIE_MAX_READ_REQ_SIZE_ISSUED_MASK         GENMASK(2, 0)
-#define EQDMA_CPM5_CFG_BLK_SYSTEM_ID_ADDR                       0x10
+#define EQDMA_CPM5_CFG_BLK_SYSTEM_ID_ADDR                  0x10
 #define CFG_BLK_SYSTEM_ID_RSVD_1_MASK                      GENMASK(31, 17)
 #define CFG_BLK_SYSTEM_ID_INST_TYPE_MASK                   BIT(16)
 #define CFG_BLK_SYSTEM_ID_MASK                            GENMASK(15, 0)
-#define EQDMA_CPM5_CFG_BLK_MSIX_ENABLE_ADDR                     0x014
+#define EQDMA_CPM5_CFG_BLK_MSIX_ENABLE_ADDR                0x014
 #define CFG_BLK_MSIX_ENABLE_MASK                          GENMASK(31, 0)
-#define EQDMA_CPM5_CFG_PCIE_DATA_WIDTH_ADDR                     0x18
+#define EQDMA_CPM5_CFG_PCIE_DATA_WIDTH_ADDR                0x18
 #define CFG_PCIE_DATA_WIDTH_RSVD_1_MASK                    GENMASK(31, 3)
 #define CFG_PCIE_DATA_WIDTH_DATAPATH_MASK                  GENMASK(2, 0)
-#define EQDMA_CPM5_CFG_PCIE_CTL_ADDR                            0x1C
+#define EQDMA_CPM5_CFG_PCIE_CTL_ADDR                       0x1C
 #define CFG_PCIE_CTL_RSVD_1_MASK                           GENMASK(31, 18)
 #define CFG_PCIE_CTL_MGMT_AXIL_CTRL_MASK                   GENMASK(17, 16)
 #define CFG_PCIE_CTL_RSVD_2_MASK                           GENMASK(15, 2)
 #define CFG_PCIE_CTL_RRQ_DISABLE_MASK                      BIT(1)
 #define CFG_PCIE_CTL_RELAXED_ORDERING_MASK                 BIT(0)
-#define EQDMA_CPM5_CFG_BLK_MSI_ENABLE_ADDR                      0x20
+#define EQDMA_CPM5_CFG_BLK_MSI_ENABLE_ADDR                 0x20
 #define CFG_BLK_MSI_ENABLE_MASK                           GENMASK(31, 0)
-#define EQDMA_CPM5_CFG_AXI_USER_MAX_PLD_SIZE_ADDR               0x40
+#define EQDMA_CPM5_CFG_AXI_USER_MAX_PLD_SIZE_ADDR          0x40
 #define CFG_AXI_USER_MAX_PLD_SIZE_RSVD_1_MASK              GENMASK(31, 7)
 #define CFG_AXI_USER_MAX_PLD_SIZE_ISSUED_MASK              GENMASK(6, 4)
 #define CFG_AXI_USER_MAX_PLD_SIZE_RSVD_2_MASK              BIT(3)
 #define CFG_AXI_USER_MAX_PLD_SIZE_PROG_MASK                GENMASK(2, 0)
-#define EQDMA_CPM5_CFG_AXI_USER_MAX_READ_REQ_SIZE_ADDR          0x44
+#define EQDMA_CPM5_CFG_AXI_USER_MAX_READ_REQ_SIZE_ADDR     0x44
 #define CFG_AXI_USER_MAX_READ_REQ_SIZE_RSVD_1_MASK         GENMASK(31, 7)
 #define CFG_AXI_USER_MAX_READ_REQ_SIZE_USISSUED_MASK       GENMASK(6, 4)
 #define CFG_AXI_USER_MAX_READ_REQ_SIZE_RSVD_2_MASK         BIT(3)
 #define CFG_AXI_USER_MAX_READ_REQ_SIZE_USPROG_MASK         GENMASK(2, 0)
-#define EQDMA_CPM5_CFG_BLK_MISC_CTL_ADDR                        0x4C
+#define EQDMA_CPM5_CFG_BLK_MISC_CTL_ADDR                   0x4C
 #define CFG_BLK_MISC_CTL_RSVD_1_MASK                       GENMASK(31, 24)
 #define CFG_BLK_MISC_CTL_10B_TAG_EN_MASK                   BIT(23)
 #define CFG_BLK_MISC_CTL_RSVD_2_MASK                       BIT(22)
@@ -124,37 +125,37 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define CFG_BLK_MISC_CTL_NUM_TAG_MASK                      GENMASK(19, 8)
 #define CFG_BLK_MISC_CTL_RSVD_3_MASK                       GENMASK(7, 5)
 #define CFG_BLK_MISC_CTL_RQ_METERING_MULTIPLIER_MASK       GENMASK(4, 0)
-#define EQDMA_CPM5_CFG_PL_CRED_CTL_ADDR                         0x68
+#define EQDMA_CPM5_CFG_PL_CRED_CTL_ADDR                    0x68
 #define CFG_PL_CRED_CTL_RSVD_1_MASK                        GENMASK(31, 5)
 #define CFG_PL_CRED_CTL_SLAVE_CRD_RLS_MASK                 BIT(4)
 #define CFG_PL_CRED_CTL_RSVD_2_MASK                        GENMASK(3, 1)
 #define CFG_PL_CRED_CTL_MASTER_CRD_RST_MASK                BIT(0)
-#define EQDMA_CPM5_CFG_BLK_SCRATCH_ADDR                         0x80
+#define EQDMA_CPM5_CFG_BLK_SCRATCH_ADDR                    0x80
 #define CFG_BLK_SCRATCH_MASK                              GENMASK(31, 0)
-#define EQDMA_CPM5_CFG_GIC_ADDR                                 0xA0
+#define EQDMA_CPM5_CFG_GIC_ADDR                            0xA0
 #define CFG_GIC_RSVD_1_MASK                                GENMASK(31, 1)
 #define CFG_GIC_GIC_IRQ_MASK                               BIT(0)
-#define EQDMA_CPM5_RAM_SBE_MSK_1_A_ADDR                         0xE0
+#define EQDMA_CPM5_RAM_SBE_MSK_1_A_ADDR                    0xE0
 #define RAM_SBE_MSK_1_A_MASK                          GENMASK(31, 0)
-#define EQDMA_CPM5_RAM_SBE_STS_1_A_ADDR                         0xE4
+#define EQDMA_CPM5_RAM_SBE_STS_1_A_ADDR                    0xE4
 #define RAM_SBE_STS_1_A_RSVD_MASK                          GENMASK(31, 5)
 #define RAM_SBE_STS_1_A_PFCH_CTXT_CAM_RAM_1_MASK           BIT(4)
 #define RAM_SBE_STS_1_A_PFCH_CTXT_CAM_RAM_0_MASK           BIT(3)
 #define RAM_SBE_STS_1_A_TAG_EVEN_RAM_MASK                  BIT(2)
 #define RAM_SBE_STS_1_A_TAG_ODD_RAM_MASK                   BIT(1)
 #define RAM_SBE_STS_1_A_RC_RRQ_EVEN_RAM_MASK               BIT(0)
-#define EQDMA_CPM5_RAM_DBE_MSK_1_A_ADDR                         0xE8
+#define EQDMA_CPM5_RAM_DBE_MSK_1_A_ADDR                    0xE8
 #define RAM_DBE_MSK_1_A_MASK                          GENMASK(31, 0)
-#define EQDMA_CPM5_RAM_DBE_STS_1_A_ADDR                         0xEC
+#define EQDMA_CPM5_RAM_DBE_STS_1_A_ADDR                    0xEC
 #define RAM_DBE_STS_1_A_RSVD_MASK                          GENMASK(31, 5)
 #define RAM_DBE_STS_1_A_PFCH_CTXT_CAM_RAM_1_MASK           BIT(4)
 #define RAM_DBE_STS_1_A_PFCH_CTXT_CAM_RAM_0_MASK           BIT(3)
 #define RAM_DBE_STS_1_A_TAG_EVEN_RAM_MASK                  BIT(2)
 #define RAM_DBE_STS_1_A_TAG_ODD_RAM_MASK                   BIT(1)
 #define RAM_DBE_STS_1_A_RC_RRQ_EVEN_RAM_MASK               BIT(0)
-#define EQDMA_CPM5_RAM_SBE_MSK_A_ADDR                           0xF0
+#define EQDMA_CPM5_RAM_SBE_MSK_A_ADDR                      0xF0
 #define RAM_SBE_MSK_A_MASK                            GENMASK(31, 0)
-#define EQDMA_CPM5_RAM_SBE_STS_A_ADDR                           0xF4
+#define EQDMA_CPM5_RAM_SBE_STS_A_ADDR                      0xF4
 #define RAM_SBE_STS_A_RC_RRQ_ODD_RAM_MASK                  BIT(31)
 #define RAM_SBE_STS_A_PEND_FIFO_RAM_MASK                   BIT(30)
 #define RAM_SBE_STS_A_PFCH_LL_RAM_MASK                     BIT(29)
@@ -184,9 +185,9 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define RAM_SBE_STS_A_MI_H2C2_DAT_MASK                     BIT(2)
 #define RAM_SBE_STS_A_MI_H2C1_DAT_MASK                     BIT(1)
 #define RAM_SBE_STS_A_MI_H2C0_DAT_MASK                     BIT(0)
-#define EQDMA_CPM5_RAM_DBE_MSK_A_ADDR                           0xF8
+#define EQDMA_CPM5_RAM_DBE_MSK_A_ADDR                      0xF8
 #define RAM_DBE_MSK_A_MASK                            GENMASK(31, 0)
-#define EQDMA_CPM5_RAM_DBE_STS_A_ADDR                           0xFC
+#define EQDMA_CPM5_RAM_DBE_STS_A_ADDR                      0xFC
 #define RAM_DBE_STS_A_RC_RRQ_ODD_RAM_MASK                  BIT(31)
 #define RAM_DBE_STS_A_PEND_FIFO_RAM_MASK                   BIT(30)
 #define RAM_DBE_STS_A_PFCH_LL_RAM_MASK                     BIT(29)
@@ -216,10 +217,10 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define RAM_DBE_STS_A_MI_H2C2_DAT_MASK                     BIT(2)
 #define RAM_DBE_STS_A_MI_H2C1_DAT_MASK                     BIT(1)
 #define RAM_DBE_STS_A_MI_H2C0_DAT_MASK                     BIT(0)
-#define EQDMA_CPM5_GLBL2_IDENTIFIER_ADDR                        0x100
+#define EQDMA_CPM5_GLBL2_IDENTIFIER_ADDR                   0x100
 #define GLBL2_IDENTIFIER_MASK                             GENMASK(31, 8)
 #define GLBL2_IDENTIFIER_VERSION_MASK                      GENMASK(7, 0)
-#define EQDMA_CPM5_GLBL2_CHANNEL_INST_ADDR                      0x114
+#define EQDMA_CPM5_GLBL2_CHANNEL_INST_ADDR                 0x114
 #define GLBL2_CHANNEL_INST_RSVD_1_MASK                     GENMASK(31, 18)
 #define GLBL2_CHANNEL_INST_C2H_ST_MASK                     BIT(17)
 #define GLBL2_CHANNEL_INST_H2C_ST_MASK                     BIT(16)
@@ -227,7 +228,7 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define GLBL2_CHANNEL_INST_C2H_ENG_MASK                    GENMASK(11, 8)
 #define GLBL2_CHANNEL_INST_RSVD_3_MASK                     GENMASK(7, 4)
 #define GLBL2_CHANNEL_INST_H2C_ENG_MASK                    GENMASK(3, 0)
-#define EQDMA_CPM5_GLBL2_CHANNEL_MDMA_ADDR                      0x118
+#define EQDMA_CPM5_GLBL2_CHANNEL_MDMA_ADDR                 0x118
 #define GLBL2_CHANNEL_MDMA_RSVD_1_MASK                     GENMASK(31, 18)
 #define GLBL2_CHANNEL_MDMA_C2H_ST_MASK                     BIT(17)
 #define GLBL2_CHANNEL_MDMA_H2C_ST_MASK                     BIT(16)
@@ -235,7 +236,7 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define GLBL2_CHANNEL_MDMA_C2H_ENG_MASK                    GENMASK(11, 8)
 #define GLBL2_CHANNEL_MDMA_RSVD_3_MASK                     GENMASK(7, 4)
 #define GLBL2_CHANNEL_MDMA_H2C_ENG_MASK                    GENMASK(3, 0)
-#define EQDMA_CPM5_GLBL2_CHANNEL_STRM_ADDR                      0x11C
+#define EQDMA_CPM5_GLBL2_CHANNEL_STRM_ADDR                 0x11C
 #define GLBL2_CHANNEL_STRM_RSVD_1_MASK                     GENMASK(31, 18)
 #define GLBL2_CHANNEL_STRM_C2H_ST_MASK                     BIT(17)
 #define GLBL2_CHANNEL_STRM_H2C_ST_MASK                     BIT(16)
@@ -243,24 +244,24 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define GLBL2_CHANNEL_STRM_C2H_ENG_MASK                    GENMASK(11, 8)
 #define GLBL2_CHANNEL_STRM_RSVD_3_MASK                     GENMASK(7, 4)
 #define GLBL2_CHANNEL_STRM_H2C_ENG_MASK                    GENMASK(3, 0)
-#define EQDMA_CPM5_GLBL2_CHANNEL_CAP_ADDR                       0x120
+#define EQDMA_CPM5_GLBL2_CHANNEL_CAP_ADDR                  0x120
 #define GLBL2_CHANNEL_CAP_RSVD_1_MASK                      GENMASK(31, 12)
 #define GLBL2_CHANNEL_CAP_MULTIQ_MAX_MASK                  GENMASK(11, 0)
-#define EQDMA_CPM5_GLBL2_CHANNEL_PASID_CAP_ADDR                 0x128
+#define EQDMA_CPM5_GLBL2_CHANNEL_PASID_CAP_ADDR            0x128
 #define GLBL2_CHANNEL_PASID_CAP_RSVD_1_MASK                GENMASK(31, 2)
 #define GLBL2_CHANNEL_PASID_CAP_BRIDGEEN_MASK              BIT(1)
 #define GLBL2_CHANNEL_PASID_CAP_DMAEN_MASK                 BIT(0)
-#define EQDMA_CPM5_GLBL2_SYSTEM_ID_ADDR                         0x130
+#define EQDMA_CPM5_GLBL2_SYSTEM_ID_ADDR                    0x130
 #define GLBL2_SYSTEM_ID_RSVD_1_MASK                        GENMASK(31, 16)
 #define GLBL2_SYSTEM_ID_MASK                              GENMASK(15, 0)
-#define EQDMA_CPM5_GLBL2_MISC_CAP_ADDR                          0x134
+#define EQDMA_CPM5_GLBL2_MISC_CAP_ADDR                     0x134
 #define GLBL2_MISC_CAP_MASK                               GENMASK(31, 0)
-#define EQDMA_CPM5_GLBL2_DBG_PCIE_RQ0_ADDR                      0x1B8
+#define EQDMA_CPM5_GLBL2_DBG_PCIE_RQ0_ADDR                 0x1B8
 #define GLBL2_PCIE_RQ0_NPH_AVL_MASK                    GENMASK(31, 20)
 #define GLBL2_PCIE_RQ0_RCB_AVL_MASK                    GENMASK(19, 9)
 #define GLBL2_PCIE_RQ0_SLV_RD_CREDS_MASK               GENMASK(8, 2)
 #define GLBL2_PCIE_RQ0_TAG_EP_MASK                     GENMASK(1, 0)
-#define EQDMA_CPM5_GLBL2_DBG_PCIE_RQ1_ADDR                      0x1BC
+#define EQDMA_CPM5_GLBL2_DBG_PCIE_RQ1_ADDR                 0x1BC
 #define GLBL2_PCIE_RQ1_RSVD_1_MASK                     GENMASK(31, 21)
 #define GLBL2_PCIE_RQ1_TAG_FL_MASK                     GENMASK(20, 19)
 #define GLBL2_PCIE_RQ1_WTLP_HEADER_FIFO_FL_MASK        BIT(18)
@@ -278,7 +279,7 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define GLBL2_PCIE_RQ1_RREQ1_RDY_MASK                  BIT(2)
 #define GLBL2_PCIE_RQ1_WTLP_REQ_MASK                   BIT(1)
 #define GLBL2_PCIE_RQ1_WTLP_STRADDLE_MASK              BIT(0)
-#define EQDMA_CPM5_GLBL2_DBG_AXIMM_WR0_ADDR                     0x1C0
+#define EQDMA_CPM5_GLBL2_DBG_AXIMM_WR0_ADDR                0x1C0
 #define GLBL2_AXIMM_WR0_RSVD_1_MASK                    GENMASK(31, 27)
 #define GLBL2_AXIMM_WR0_WR_REQ_MASK                    BIT(26)
 #define GLBL2_AXIMM_WR0_WR_CHN_MASK                    GENMASK(25, 23)
@@ -294,14 +295,14 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define GLBL2_AXIMM_WR0_AWID_MASK                      GENMASK(4, 2)
 #define GLBL2_AXIMM_WR0_AWVALID_MASK                   BIT(1)
 #define GLBL2_AXIMM_WR0_AWREADY_MASK                   BIT(0)
-#define EQDMA_CPM5_GLBL2_DBG_AXIMM_WR1_ADDR                     0x1C4
+#define EQDMA_CPM5_GLBL2_DBG_AXIMM_WR1_ADDR                0x1C4
 #define GLBL2_AXIMM_WR1_RSVD_1_MASK                    GENMASK(31, 30)
 #define GLBL2_AXIMM_WR1_BRSP_CNT4_MASK                 GENMASK(29, 24)
 #define GLBL2_AXIMM_WR1_BRSP_CNT3_MASK                 GENMASK(23, 18)
 #define GLBL2_AXIMM_WR1_BRSP_CNT2_MASK                 GENMASK(17, 12)
 #define GLBL2_AXIMM_WR1_BRSP_CNT1_MASK                 GENMASK(11, 6)
 #define GLBL2_AXIMM_WR1_BRSP_CNT0_MASK                 GENMASK(5, 0)
-#define EQDMA_CPM5_GLBL2_DBG_AXIMM_RD0_ADDR                     0x1C8
+#define EQDMA_CPM5_GLBL2_DBG_AXIMM_RD0_ADDR                0x1C8
 #define GLBL2_AXIMM_RD0_RSVD_1_MASK                    GENMASK(31, 23)
 #define GLBL2_AXIMM_RD0_PND_CNT_MASK                   GENMASK(22, 17)
 #define GLBL2_AXIMM_RD0_RD_REQ_MASK                    BIT(16)
@@ -313,14 +314,14 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define GLBL2_AXIMM_RD0_ARID_MASK                      GENMASK(4, 2)
 #define GLBL2_AXIMM_RD0_ARVALID_MASK                   BIT(1)
 #define GLBL2_AXIMM_RD0_ARREADY_MASK                   BIT(0)
-#define EQDMA_CPM5_GLBL2_DBG_AXIMM_RD1_ADDR                     0x1CC
+#define EQDMA_CPM5_GLBL2_DBG_AXIMM_RD1_ADDR                0x1CC
 #define GLBL2_AXIMM_RD1_RSVD_1_MASK                    GENMASK(31, 30)
 #define GLBL2_AXIMM_RD1_RRSP_CNT4_MASK                 GENMASK(29, 24)
 #define GLBL2_AXIMM_RD1_RRSP_CNT3_MASK                 GENMASK(23, 18)
 #define GLBL2_AXIMM_RD1_RRSP_CNT2_MASK                 GENMASK(17, 12)
 #define GLBL2_AXIMM_RD1_RRSP_CNT1_MASK                 GENMASK(11, 6)
 #define GLBL2_AXIMM_RD1_RRSP_CNT0_MASK                 GENMASK(5, 0)
-#define EQDMA_CPM5_GLBL2_DBG_FAB0_ADDR                          0x1D0
+#define EQDMA_CPM5_GLBL2_DBG_FAB0_ADDR                     0x1D0
 #define GLBL2_FAB0_H2C_INB_CONV_IN_VLD_MASK            BIT(31)
 #define GLBL2_FAB0_H2C_INB_CONV_IN_RDY_MASK            BIT(30)
 #define GLBL2_FAB0_H2C_SEG_IN_VLD_MASK                 BIT(29)
@@ -341,7 +342,7 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define GLBL2_FAB0_IRQ_IN_AFIFO_FULL_MASK              BIT(2)
 #define GLBL2_FAB0_IRQ_IN_AFIFO_EMPTY_MASK             BIT(1)
 #define GLBL2_FAB0_IMM_CRD_AFIFO_EMPTY_MASK            BIT(0)
-#define EQDMA_CPM5_GLBL2_DBG_FAB1_ADDR                          0x1D4
+#define EQDMA_CPM5_GLBL2_DBG_FAB1_ADDR                     0x1D4
 #define GLBL2_FAB1_BYP_OUT_CRDT_STAT_MASK              GENMASK(31, 25)
 #define GLBL2_FAB1_TM_DSC_STS_CRDT_STAT_MASK           GENMASK(24, 18)
 #define GLBL2_FAB1_C2H_CMN_AFIFO_FULL_MASK             BIT(17)
@@ -354,66 +355,66 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define GLBL2_FAB1_H2C_BYP_IN_AFIFO_FULL_MASK          BIT(4)
 #define GLBL2_FAB1_RSVD_4_MASK                         GENMASK(3, 1)
 #define GLBL2_FAB1_H2C_BYP_IN_AFIFO_EMPTY_MASK         BIT(0)
-#define EQDMA_CPM5_GLBL2_DBG_MATCH_SEL_ADDR                     0x1F4
+#define EQDMA_CPM5_GLBL2_DBG_MATCH_SEL_ADDR                0x1F4
 #define GLBL2_MATCH_SEL_RSV_MASK                       GENMASK(31, 18)
 #define GLBL2_MATCH_SEL_CSR_SEL_MASK                   GENMASK(17, 13)
 #define GLBL2_MATCH_SEL_CSR_EN_MASK                    BIT(12)
 #define GLBL2_MATCH_SEL_ROTATE1_MASK                   GENMASK(11, 10)
 #define GLBL2_MATCH_SEL_ROTATE0_MASK                   GENMASK(9, 8)
 #define GLBL2_MATCH_SEL_SEL_MASK                       GENMASK(7, 0)
-#define EQDMA_CPM5_GLBL2_DBG_MATCH_MSK_ADDR                     0x1F8
+#define EQDMA_CPM5_GLBL2_DBG_MATCH_MSK_ADDR                0x1F8
 #define GLBL2_MATCH_MSK_MASK                      GENMASK(31, 0)
-#define EQDMA_CPM5_GLBL2_DBG_MATCH_PAT_ADDR                     0x1FC
+#define EQDMA_CPM5_GLBL2_DBG_MATCH_PAT_ADDR                0x1FC
 #define GLBL2_MATCH_PAT_PATTERN_MASK                   GENMASK(31, 0)
-#define EQDMA_CPM5_GLBL_RNG_SZ_1_ADDR                           0x204
+#define EQDMA_CPM5_GLBL_RNG_SZ_1_ADDR                      0x204
 #define GLBL_RNG_SZ_1_RSVD_1_MASK                          GENMASK(31, 16)
 #define GLBL_RNG_SZ_1_RING_SIZE_MASK                       GENMASK(15, 0)
-#define EQDMA_CPM5_GLBL_RNG_SZ_2_ADDR                           0x208
+#define EQDMA_CPM5_GLBL_RNG_SZ_2_ADDR                      0x208
 #define GLBL_RNG_SZ_2_RSVD_1_MASK                          GENMASK(31, 16)
 #define GLBL_RNG_SZ_2_RING_SIZE_MASK                       GENMASK(15, 0)
-#define EQDMA_CPM5_GLBL_RNG_SZ_3_ADDR                           0x20C
+#define EQDMA_CPM5_GLBL_RNG_SZ_3_ADDR                      0x20C
 #define GLBL_RNG_SZ_3_RSVD_1_MASK                          GENMASK(31, 16)
 #define GLBL_RNG_SZ_3_RING_SIZE_MASK                       GENMASK(15, 0)
-#define EQDMA_CPM5_GLBL_RNG_SZ_4_ADDR                           0x210
+#define EQDMA_CPM5_GLBL_RNG_SZ_4_ADDR                      0x210
 #define GLBL_RNG_SZ_4_RSVD_1_MASK                          GENMASK(31, 16)
 #define GLBL_RNG_SZ_4_RING_SIZE_MASK                       GENMASK(15, 0)
-#define EQDMA_CPM5_GLBL_RNG_SZ_5_ADDR                           0x214
+#define EQDMA_CPM5_GLBL_RNG_SZ_5_ADDR                      0x214
 #define GLBL_RNG_SZ_5_RSVD_1_MASK                          GENMASK(31, 16)
 #define GLBL_RNG_SZ_5_RING_SIZE_MASK                       GENMASK(15, 0)
-#define EQDMA_CPM5_GLBL_RNG_SZ_6_ADDR                           0x218
+#define EQDMA_CPM5_GLBL_RNG_SZ_6_ADDR                      0x218
 #define GLBL_RNG_SZ_6_RSVD_1_MASK                          GENMASK(31, 16)
 #define GLBL_RNG_SZ_6_RING_SIZE_MASK                       GENMASK(15, 0)
-#define EQDMA_CPM5_GLBL_RNG_SZ_7_ADDR                           0x21C
+#define EQDMA_CPM5_GLBL_RNG_SZ_7_ADDR                      0x21C
 #define GLBL_RNG_SZ_7_RSVD_1_MASK                          GENMASK(31, 16)
 #define GLBL_RNG_SZ_7_RING_SIZE_MASK                       GENMASK(15, 0)
-#define EQDMA_CPM5_GLBL_RNG_SZ_8_ADDR                           0x220
+#define EQDMA_CPM5_GLBL_RNG_SZ_8_ADDR                      0x220
 #define GLBL_RNG_SZ_8_RSVD_1_MASK                          GENMASK(31, 16)
 #define GLBL_RNG_SZ_8_RING_SIZE_MASK                       GENMASK(15, 0)
-#define EQDMA_CPM5_GLBL_RNG_SZ_9_ADDR                           0x224
+#define EQDMA_CPM5_GLBL_RNG_SZ_9_ADDR                      0x224
 #define GLBL_RNG_SZ_9_RSVD_1_MASK                          GENMASK(31, 16)
 #define GLBL_RNG_SZ_9_RING_SIZE_MASK                       GENMASK(15, 0)
-#define EQDMA_CPM5_GLBL_RNG_SZ_A_ADDR                           0x228
+#define EQDMA_CPM5_GLBL_RNG_SZ_A_ADDR                      0x228
 #define GLBL_RNG_SZ_A_RSVD_1_MASK                          GENMASK(31, 16)
 #define GLBL_RNG_SZ_A_RING_SIZE_MASK                       GENMASK(15, 0)
-#define EQDMA_CPM5_GLBL_RNG_SZ_B_ADDR                           0x22C
+#define EQDMA_CPM5_GLBL_RNG_SZ_B_ADDR                      0x22C
 #define GLBL_RNG_SZ_B_RSVD_1_MASK                          GENMASK(31, 16)
 #define GLBL_RNG_SZ_B_RING_SIZE_MASK                       GENMASK(15, 0)
-#define EQDMA_CPM5_GLBL_RNG_SZ_C_ADDR                           0x230
+#define EQDMA_CPM5_GLBL_RNG_SZ_C_ADDR                      0x230
 #define GLBL_RNG_SZ_C_RSVD_1_MASK                          GENMASK(31, 16)
 #define GLBL_RNG_SZ_C_RING_SIZE_MASK                       GENMASK(15, 0)
-#define EQDMA_CPM5_GLBL_RNG_SZ_D_ADDR                           0x234
+#define EQDMA_CPM5_GLBL_RNG_SZ_D_ADDR                      0x234
 #define GLBL_RNG_SZ_D_RSVD_1_MASK                          GENMASK(31, 16)
 #define GLBL_RNG_SZ_D_RING_SIZE_MASK                       GENMASK(15, 0)
-#define EQDMA_CPM5_GLBL_RNG_SZ_E_ADDR                           0x238
+#define EQDMA_CPM5_GLBL_RNG_SZ_E_ADDR                      0x238
 #define GLBL_RNG_SZ_E_RSVD_1_MASK                          GENMASK(31, 16)
 #define GLBL_RNG_SZ_E_RING_SIZE_MASK                       GENMASK(15, 0)
-#define EQDMA_CPM5_GLBL_RNG_SZ_F_ADDR                           0x23C
+#define EQDMA_CPM5_GLBL_RNG_SZ_F_ADDR                      0x23C
 #define GLBL_RNG_SZ_F_RSVD_1_MASK                          GENMASK(31, 16)
 #define GLBL_RNG_SZ_F_RING_SIZE_MASK                       GENMASK(15, 0)
-#define EQDMA_CPM5_GLBL_RNG_SZ_10_ADDR                          0x240
+#define EQDMA_CPM5_GLBL_RNG_SZ_10_ADDR                     0x240
 #define GLBL_RNG_SZ_10_RSVD_1_MASK                         GENMASK(31, 16)
 #define GLBL_RNG_SZ_10_RING_SIZE_MASK                      GENMASK(15, 0)
-#define EQDMA_CPM5_GLBL_ERR_STAT_ADDR                           0x248
+#define EQDMA_CPM5_GLBL_ERR_STAT_ADDR                      0x248
 #define GLBL_ERR_STAT_RSVD_1_MASK                          GENMASK(31, 18)
 #define GLBL_ERR_STAT_ERR_FAB_MASK                         BIT(17)
 #define GLBL_ERR_STAT_ERR_H2C_ST_MASK                      BIT(16)
@@ -428,16 +429,16 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define GLBL_ERR_STAT_ERR_DSC_MASK                         BIT(2)
 #define GLBL_ERR_STAT_ERR_RAM_DBE_MASK                     BIT(1)
 #define GLBL_ERR_STAT_ERR_RAM_SBE_MASK                     BIT(0)
-#define EQDMA_CPM5_GLBL_ERR_MASK_ADDR                           0x24C
+#define EQDMA_CPM5_GLBL_ERR_MASK_ADDR                      0x24C
 #define GLBL_ERR_MASK                            GENMASK(31, 0)
-#define EQDMA_CPM5_GLBL_DSC_CFG_ADDR                            0x250
+#define EQDMA_CPM5_GLBL_DSC_CFG_ADDR                       0x250
 #define GLBL_DSC_CFG_RSVD_1_MASK                           GENMASK(31, 10)
 #define GLBL_DSC_CFG_UNC_OVR_COR_MASK                      BIT(9)
 #define GLBL_DSC_CFG_CTXT_FER_DIS_MASK                     BIT(8)
 #define GLBL_DSC_CFG_RSVD_2_MASK                           GENMASK(7, 6)
 #define GLBL_DSC_CFG_MAXFETCH_MASK                         GENMASK(5, 3)
 #define GLBL_DSC_CFG_WB_ACC_INT_MASK                       GENMASK(2, 0)
-#define EQDMA_CPM5_GLBL_DSC_ERR_STS_ADDR                        0x254
+#define EQDMA_CPM5_GLBL_DSC_ERR_STS_ADDR                   0x254
 #define GLBL_DSC_ERR_STS_RSVD_1_MASK                       GENMASK(31, 26)
 #define GLBL_DSC_ERR_STS_PORT_ID_MASK                      BIT(25)
 #define GLBL_DSC_ERR_STS_SBE_MASK                          BIT(24)
@@ -456,20 +457,20 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define GLBL_DSC_ERR_STS_BCNT_MASK                         BIT(3)
 #define GLBL_DSC_ERR_STS_UR_CA_MASK                        BIT(2)
 #define GLBL_DSC_ERR_STS_POISON_MASK                       BIT(1)
-#define EQDMA_CPM5_GLBL_DSC_ERR_MSK_ADDR                        0x258
+#define EQDMA_CPM5_GLBL_DSC_ERR_MSK_ADDR                   0x258
 #define GLBL_DSC_ERR_MSK_MASK                         GENMASK(31, 0)
-#define EQDMA_CPM5_GLBL_DSC_ERR_LOG0_ADDR                       0x25C
+#define EQDMA_CPM5_GLBL_DSC_ERR_LOG0_ADDR                  0x25C
 #define GLBL_DSC_ERR_LOG0_VALID_MASK                       BIT(31)
 #define GLBL_DSC_ERR_LOG0_SEL_MASK                         BIT(30)
 #define GLBL_DSC_ERR_LOG0_RSVD_1_MASK                      GENMASK(29, 13)
 #define GLBL_DSC_ERR_LOG0_QID_MASK                         GENMASK(12, 0)
-#define EQDMA_CPM5_GLBL_DSC_ERR_LOG1_ADDR                       0x260
+#define EQDMA_CPM5_GLBL_DSC_ERR_LOG1_ADDR                  0x260
 #define GLBL_DSC_ERR_LOG1_RSVD_1_MASK                      GENMASK(31, 28)
 #define GLBL_DSC_ERR_LOG1_CIDX_MASK                        GENMASK(27, 12)
 #define GLBL_DSC_ERR_LOG1_RSVD_2_MASK                      GENMASK(11, 9)
 #define GLBL_DSC_ERR_LOG1_SUB_TYPE_MASK                    GENMASK(8, 5)
 #define GLBL_DSC_ERR_LOG1_ERR_TYPE_MASK                    GENMASK(4, 0)
-#define EQDMA_CPM5_GLBL_TRQ_ERR_STS_ADDR                        0x264
+#define EQDMA_CPM5_GLBL_TRQ_ERR_STS_ADDR                   0x264
 #define GLBL_TRQ_ERR_STS_RSVD_1_MASK                       GENMASK(31, 8)
 #define GLBL_TRQ_ERR_STS_TCP_QSPC_TIMEOUT_MASK             BIT(7)
 #define GLBL_TRQ_ERR_STS_RSVD_2_MASK                       BIT(6)
@@ -479,14 +480,14 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define GLBL_TRQ_ERR_STS_RSVD_3_MASK                       BIT(2)
 #define GLBL_TRQ_ERR_STS_VF_ACCESS_ERR_MASK                BIT(1)
 #define GLBL_TRQ_ERR_STS_CSR_UNMAPPED_MASK                 BIT(0)
-#define EQDMA_CPM5_GLBL_TRQ_ERR_MSK_ADDR                        0x268
+#define EQDMA_CPM5_GLBL_TRQ_ERR_MSK_ADDR                   0x268
 #define GLBL_TRQ_ERR_MSK_MASK                         GENMASK(31, 0)
-#define EQDMA_CPM5_GLBL_TRQ_ERR_LOG_ADDR                        0x26C
+#define EQDMA_CPM5_GLBL_TRQ_ERR_LOG_ADDR                   0x26C
 #define GLBL_TRQ_ERR_LOG_SRC_MASK                          BIT(31)
 #define GLBL_TRQ_ERR_LOG_TARGET_MASK                       GENMASK(30, 27)
 #define GLBL_TRQ_ERR_LOG_FUNC_MASK                         GENMASK(26, 17)
 #define GLBL_TRQ_ERR_LOG_ADDRESS_MASK                      GENMASK(16, 0)
-#define EQDMA_CPM5_GLBL_DSC_DBG_DAT0_ADDR                       0x270
+#define EQDMA_CPM5_GLBL_DSC_DBG_DAT0_ADDR                  0x270
 #define GLBL_DSC_DAT0_RSVD_1_MASK                      GENMASK(31, 30)
 #define GLBL_DSC_DAT0_CTXT_ARB_DIR_MASK                BIT(29)
 #define GLBL_DSC_DAT0_CTXT_ARB_QID_MASK                GENMASK(28, 17)
@@ -498,23 +499,23 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define GLBL_DSC_DAT0_RRQ_FIFO_SPC_STALL_MASK          GENMASK(5, 4)
 #define GLBL_DSC_DAT0_FAB_MRKR_RSP_STALL_MASK          GENMASK(3, 2)
 #define GLBL_DSC_DAT0_DSC_OUT_STALL_MASK               GENMASK(1, 0)
-#define EQDMA_CPM5_GLBL_DSC_DBG_DAT1_ADDR                       0x274
+#define EQDMA_CPM5_GLBL_DSC_DBG_DAT1_ADDR                  0x274
 #define GLBL_DSC_DAT1_RSVD_1_MASK                      GENMASK(31, 28)
 #define GLBL_DSC_DAT1_EVT_SPC_C2H_MASK                 GENMASK(27, 22)
 #define GLBL_DSC_DAT1_EVT_SP_H2C_MASK                  GENMASK(21, 16)
 #define GLBL_DSC_DAT1_DSC_SPC_C2H_MASK                 GENMASK(15, 8)
 #define GLBL_DSC_DAT1_DSC_SPC_H2C_MASK                 GENMASK(7, 0)
-#define EQDMA_CPM5_GLBL_DSC_DBG_CTL_ADDR                        0x278
+#define EQDMA_CPM5_GLBL_DSC_DBG_CTL_ADDR                   0x278
 #define GLBL_DSC_CTL_RSVD_1_MASK                       GENMASK(31, 3)
 #define GLBL_DSC_CTL_SELECT_MASK                       GENMASK(2, 0)
-#define EQDMA_CPM5_GLBL_DSC_ERR_LOG2_ADDR                       0x27c
+#define EQDMA_CPM5_GLBL_DSC_ERR_LOG2_ADDR                  0x27c
 #define GLBL_DSC_ERR_LOG2_OLD_PIDX_MASK                    GENMASK(31, 16)
 #define GLBL_DSC_ERR_LOG2_NEW_PIDX_MASK                    GENMASK(15, 0)
-#define EQDMA_CPM5_GLBL_GLBL_INTERRUPT_CFG_ADDR                 0x2c4
+#define EQDMA_CPM5_GLBL_GLBL_INTERRUPT_CFG_ADDR            0x2c4
 #define GLBL_GLBL_INTERRUPT_CFG_RSVD_1_MASK                GENMASK(31, 2)
 #define GLBL_GLBL_INTERRUPT_CFG_LGCY_INTR_PENDING_MASK     BIT(1)
 #define GLBL_GLBL_INTERRUPT_CFG_EN_LGCY_INTR_MASK          BIT(0)
-#define EQDMA_CPM5_GLBL_VCH_HOST_PROFILE_ADDR                   0x2c8
+#define EQDMA_CPM5_GLBL_VCH_HOST_PROFILE_ADDR              0x2c8
 #define GLBL_VCH_HOST_PROFILE_RSVD_1_MASK                  GENMASK(31, 28)
 #define GLBL_VCH_HOST_PROFILE_2C_MM_MASK                   GENMASK(27, 24)
 #define GLBL_VCH_HOST_PROFILE_2C_ST_MASK                   GENMASK(23, 20)
@@ -523,68 +524,63 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define GLBL_VCH_HOST_PROFILE_VCH_INT_AGGR_MASK            GENMASK(11, 8)
 #define GLBL_VCH_HOST_PROFILE_VCH_CMPT_MASK                GENMASK(7, 4)
 #define GLBL_VCH_HOST_PROFILE_VCH_C2H_PLD_MASK             GENMASK(3, 0)
-#define EQDMA_CPM5_GLBL_BRIDGE_HOST_PROFILE_ADDR                0x308
+#define EQDMA_CPM5_GLBL_BRIDGE_HOST_PROFILE_ADDR           0x308
 #define GLBL_BRIDGE_HOST_PROFILE_RSVD_1_MASK               GENMASK(31, 4)
 #define GLBL_BRIDGE_HOST_PROFILE_BDGID_MASK                GENMASK(3, 0)
-#define EQDMA_CPM5_AXIMM_IRQ_DEST_ADDR_ADDR                     0x30c
+#define EQDMA_CPM5_AXIMM_IRQ_DEST_ADDR_ADDR                0x30c
 #define AXIMM_IRQ_DEST_ADDR_ADDR_MASK                      GENMASK(31, 0)
-#define EQDMA_CPM5_FAB_ERR_LOG_ADDR                             0x314
+#define EQDMA_CPM5_FAB_ERR_LOG_ADDR                        0x314
 #define FAB_ERR_LOG_RSVD_1_MASK                            GENMASK(31, 7)
 #define FAB_ERR_LOG_SRC_MASK                               GENMASK(6, 0)
-#define EQDMA_CPM5_GLBL_REQ_ERR_STS_ADDR                        0x318
-#define GLBL_REQ_ERR_STS_RSVD_1_MASK                       GENMASK(31, 11)
-#define GLBL_REQ_ERR_STS_RC_DISCONTINUE_MASK               BIT(10)
-#define GLBL_REQ_ERR_STS_RC_PRTY_MASK                      BIT(9)
-#define GLBL_REQ_ERR_STS_RC_FLR_MASK                       BIT(8)
-#define GLBL_REQ_ERR_STS_RC_TIMEOUT_MASK                   BIT(7)
-#define GLBL_REQ_ERR_STS_RC_INV_BCNT_MASK                  BIT(6)
-#define GLBL_REQ_ERR_STS_RC_INV_TAG_MASK                   BIT(5)
-#define GLBL_REQ_ERR_STS_RC_START_ADDR_MISMCH_MASK         BIT(4)
-#define GLBL_REQ_ERR_STS_RC_RID_TC_ATTR_MISMCH_MASK        BIT(3)
-#define GLBL_REQ_ERR_STS_RC_NO_DATA_MASK                   BIT(2)
-#define GLBL_REQ_ERR_STS_RC_UR_CA_CRS_MASK                 BIT(1)
-#define GLBL_REQ_ERR_STS_RC_POISONED_MASK                  BIT(0)
-#define EQDMA_CPM5_GLBL_REQ_ERR_MSK_ADDR                        0x31C
-#define GLBL_REQ_ERR_MSK_MASK                         GENMASK(31, 0)
-#define EQDMA_CPM5_IND_CTXT_DATA_ADDR                           0x804
+#define EQDMA_CPM5_IND_CTXT_DATA_ADDR                      0x804
 #define IND_CTXT_DATA_DATA_MASK                            GENMASK(31, 0)
-#define EQDMA_CPM5_IND_CTXT_MASK_ADDR                           0x824
+#define EQDMA_CPM5_IND_CTXT_MASK_ADDR                      0x824
 #define IND_CTXT_MASK                            GENMASK(31, 0)
-#define EQDMA_CPM5_IND_CTXT_CMD_ADDR                            0x844
+#define EQDMA_CPM5_IND_CTXT_CMD_ADDR                       0x844
 #define IND_CTXT_CMD_RSVD_1_MASK                           GENMASK(31, 20)
 #define IND_CTXT_CMD_QID_MASK                              GENMASK(19, 7)
 #define IND_CTXT_CMD_OP_MASK                               GENMASK(6, 5)
 #define IND_CTXT_CMD_SEL_MASK                              GENMASK(4, 1)
 #define IND_CTXT_CMD_BUSY_MASK                             BIT(0)
-#define EQDMA_CPM5_C2H_TIMER_CNT_ADDR                           0xA00
+#define EQDMA_CPM5_C2H_TIMER_CNT_ADDR                      0xA00
 #define C2H_TIMER_CNT_RSVD_1_MASK                          GENMASK(31, 16)
 #define C2H_TIMER_CNT_MASK                                GENMASK(15, 0)
-#define EQDMA_CPM5_C2H_CNT_TH_ADDR                              0xA40
+#define EQDMA_CPM5_C2H_CNT_TH_ADDR                         0xA40
 #define C2H_CNT_TH_RSVD_1_MASK                             GENMASK(31, 16)
 #define C2H_CNT_TH_THESHOLD_CNT_MASK                       GENMASK(15, 0)
-#define EQDMA_CPM5_C2H_STAT_S_AXIS_C2H_ACCEPTED_ADDR            0xA88
-#define C2H_STAT_S_AXIS_C2H_ACCEPTED_MASK                 GENMASK(31, 0)
-#define EQDMA_CPM5_C2H_STAT_S_AXIS_WRB_ACCEPTED_ADDR            0xA8C
-#define C2H_STAT_S_AXIS_WRB_ACCEPTED_MASK                 GENMASK(31, 0)
-#define EQDMA_CPM5_C2H_STAT_DESC_RSP_PKT_ACCEPTED_ADDR          0xA90
-#define C2H_STAT_DESC_RSP_PKT_ACCEPTED_D_MASK              GENMASK(31, 0)
-#define EQDMA_CPM5_C2H_STAT_AXIS_PKG_CMP_ADDR                   0xA94
-#define C2H_STAT_AXIS_PKG_CMP_MASK                        GENMASK(31, 0)
-#define EQDMA_CPM5_C2H_STAT_DESC_RSP_ACCEPTED_ADDR              0xA98
-#define C2H_STAT_DESC_RSP_ACCEPTED_D_MASK                  GENMASK(31, 0)
-#define EQDMA_CPM5_C2H_STAT_DESC_RSP_CMP_ADDR                   0xA9C
-#define C2H_STAT_DESC_RSP_CMP_D_MASK                       GENMASK(31, 0)
-#define EQDMA_CPM5_C2H_STAT_WRQ_OUT_ADDR                        0xAA0
-#define C2H_STAT_WRQ_OUT_MASK                             GENMASK(31, 0)
-#define EQDMA_CPM5_C2H_STAT_WPL_REN_ACCEPTED_ADDR               0xAA4
-#define C2H_STAT_WPL_REN_ACCEPTED_MASK                    GENMASK(31, 0)
-#define EQDMA_CPM5_C2H_STAT_TOTAL_WRQ_LEN_ADDR                  0xAA8
-#define C2H_STAT_TOTAL_WRQ_LEN_MASK                       GENMASK(31, 0)
-#define EQDMA_CPM5_C2H_STAT_TOTAL_WPL_LEN_ADDR                  0xAAC
-#define C2H_STAT_TOTAL_WPL_LEN_MASK                       GENMASK(31, 0)
-#define EQDMA_CPM5_C2H_BUF_SZ_ADDR                              0xAB0
+#define EQDMA_CPM5_C2H_STAT_S_AXIS_C2H_ACCEPTED_ADDR       0xA88
+#define C2H_STAT_S_AXIS_C2H_ACCEPTED_RSVD_1_MASK           GENMASK(31, 18)
+#define C2H_STAT_S_AXIS_C2H_ACCEPTED_MASK                 GENMASK(17, 0)
+#define EQDMA_CPM5_C2H_STAT_S_AXIS_WRB_ACCEPTED_ADDR       0xA8C
+#define C2H_STAT_S_AXIS_WRB_ACCEPTED_RSVD_1_MASK           GENMASK(31, 18)
+#define C2H_STAT_S_AXIS_WRB_ACCEPTED_MASK                 GENMASK(17, 0)
+#define EQDMA_CPM5_C2H_STAT_DESC_RSP_PKT_ACCEPTED_ADDR     0xA90
+#define C2H_STAT_DESC_RSP_PKT_ACCEPTED_RSVD_1_MASK         GENMASK(31, 18)
+#define C2H_STAT_DESC_RSP_PKT_ACCEPTED_D_MASK              GENMASK(17, 0)
+#define EQDMA_CPM5_C2H_STAT_AXIS_PKG_CMP_ADDR              0xA94
+#define C2H_STAT_AXIS_PKG_CMP_RSVD_1_MASK                  GENMASK(31, 18)
+#define C2H_STAT_AXIS_PKG_CMP_MASK                        GENMASK(17, 0)
+#define EQDMA_CPM5_C2H_STAT_DESC_RSP_ACCEPTED_ADDR         0xA98
+#define C2H_STAT_DESC_RSP_ACCEPTED_RSVD_1_MASK             GENMASK(31, 18)
+#define C2H_STAT_DESC_RSP_ACCEPTED_D_MASK                  GENMASK(17, 0)
+#define EQDMA_CPM5_C2H_STAT_DESC_RSP_CMP_ADDR              0xA9C
+#define C2H_STAT_DESC_RSP_CMP_RSVD_1_MASK                  GENMASK(31, 18)
+#define C2H_STAT_DESC_RSP_CMP_D_MASK                       GENMASK(17, 0)
+#define EQDMA_CPM5_C2H_STAT_WRQ_OUT_ADDR                   0xAA0
+#define C2H_STAT_WRQ_OUT_RSVD_1_MASK                       GENMASK(31, 18)
+#define C2H_STAT_WRQ_OUT_MASK                             GENMASK(17, 0)
+#define EQDMA_CPM5_C2H_STAT_WPL_REN_ACCEPTED_ADDR          0xAA4
+#define C2H_STAT_WPL_REN_ACCEPTED_RSVD_1_MASK              GENMASK(31, 18)
+#define C2H_STAT_WPL_REN_ACCEPTED_MASK                    GENMASK(17, 0)
+#define EQDMA_CPM5_C2H_STAT_TOTAL_WRQ_LEN_ADDR             0xAA8
+#define C2H_STAT_TOTAL_WRQ_LEN_RSVD_1_MASK                 GENMASK(31, 18)
+#define C2H_STAT_TOTAL_WRQ_LEN_MASK                       GENMASK(17, 0)
+#define EQDMA_CPM5_C2H_STAT_TOTAL_WPL_LEN_ADDR             0xAAC
+#define C2H_STAT_TOTAL_WPL_LEN_RSVD_1_MASK                 GENMASK(31, 18)
+#define C2H_STAT_TOTAL_WPL_LEN_MASK                       GENMASK(17, 0)
+#define EQDMA_CPM5_C2H_BUF_SZ_ADDR                         0xAB0
 #define C2H_BUF_SZ_IZE_MASK                                GENMASK(31, 0)
-#define EQDMA_CPM5_C2H_ERR_STAT_ADDR                            0xAF0
+#define EQDMA_CPM5_C2H_ERR_STAT_ADDR                       0xAF0
 #define C2H_ERR_STAT_RSVD_1_MASK                           GENMASK(31, 21)
 #define C2H_ERR_STAT_WRB_PORT_ID_ERR_MASK                  BIT(20)
 #define C2H_ERR_STAT_HDR_PAR_ERR_MASK                      BIT(19)
@@ -607,9 +603,9 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define C2H_ERR_STAT_SH_CMPT_DSC_ERR_MASK                  BIT(2)
 #define C2H_ERR_STAT_LEN_MISMATCH_MASK                     BIT(1)
 #define C2H_ERR_STAT_MTY_MISMATCH_MASK                     BIT(0)
-#define EQDMA_CPM5_C2H_ERR_MASK_ADDR                            0xAF4
+#define EQDMA_CPM5_C2H_ERR_MASK_ADDR                       0xAF4
 #define C2H_ERR_EN_MASK                          GENMASK(31, 0)
-#define EQDMA_CPM5_C2H_FATAL_ERR_STAT_ADDR                      0xAF8
+#define EQDMA_CPM5_C2H_FATAL_ERR_STAT_ADDR                 0xAF8
 #define C2H_FATAL_ERR_STAT_RSVD_1_MASK                     GENMASK(31, 21)
 #define C2H_FATAL_ERR_STAT_HDR_ECC_UNC_ERR_MASK            BIT(20)
 #define C2H_FATAL_ERR_STAT_AVL_RING_FIFO_RAM_RDBE_MASK     BIT(19)
@@ -629,13 +625,13 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define C2H_FATAL_ERR_STAT_RESERVED1_MASK                  BIT(2)
 #define C2H_FATAL_ERR_STAT_LEN_MISMATCH_MASK               BIT(1)
 #define C2H_FATAL_ERR_STAT_MTY_MISMATCH_MASK               BIT(0)
-#define EQDMA_CPM5_C2H_FATAL_ERR_MASK_ADDR                      0xAFC
+#define EQDMA_CPM5_C2H_FATAL_ERR_MASK_ADDR                 0xAFC
 #define C2H_FATAL_ERR_C2HEN_MASK                 GENMASK(31, 0)
-#define EQDMA_CPM5_C2H_FATAL_ERR_ENABLE_ADDR                    0xB00
+#define EQDMA_CPM5_C2H_FATAL_ERR_ENABLE_ADDR               0xB00
 #define C2H_FATAL_ERR_ENABLE_RSVD_1_MASK                   GENMASK(31, 2)
 #define C2H_FATAL_ERR_ENABLE_WPL_PAR_INV_MASK             BIT(1)
 #define C2H_FATAL_ERR_ENABLE_WRQ_DIS_MASK                 BIT(0)
-#define EQDMA_CPM5_GLBL_ERR_INT_ADDR                            0xB04
+#define EQDMA_CPM5_GLBL_ERR_INT_ADDR                       0xB04
 #define GLBL_ERR_INT_RSVD_1_MASK                           GENMASK(31, 30)
 #define GLBL_ERR_INT_HOST_ID_MASK                          GENMASK(29, 26)
 #define GLBL_ERR_INT_DIS_INTR_ON_VF_MASK                   BIT(25)
@@ -643,28 +639,31 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define GLBL_ERR_INT_EN_COAL_MASK                          BIT(23)
 #define GLBL_ERR_INT_VEC_MASK                              GENMASK(22, 12)
 #define GLBL_ERR_INT_FUNC_MASK                             GENMASK(11, 0)
-#define EQDMA_CPM5_C2H_PFCH_CFG_ADDR                            0xB08
+#define EQDMA_CPM5_C2H_PFCH_CFG_ADDR                       0xB08
 #define C2H_PFCH_CFG_EVTFL_TH_MASK                         GENMASK(31, 16)
 #define C2H_PFCH_CFG_FL_TH_MASK                            GENMASK(15, 0)
-#define EQDMA_CPM5_C2H_PFCH_CFG_1_ADDR                          0xA80
+#define EQDMA_CPM5_C2H_PFCH_CFG_1_ADDR                     0xA80
 #define C2H_PFCH_CFG_1_EVT_QCNT_TH_MASK                    GENMASK(31, 16)
 #define C2H_PFCH_CFG_1_QCNT_MASK                           GENMASK(15, 0)
-#define EQDMA_CPM5_C2H_PFCH_CFG_2_ADDR                          0xA84
+#define EQDMA_CPM5_C2H_PFCH_CFG_2_ADDR                     0xA84
 #define C2H_PFCH_CFG_2_FENCE_MASK                          BIT(31)
 #define C2H_PFCH_CFG_2_RSVD_MASK                           GENMASK(30, 29)
 #define C2H_PFCH_CFG_2_VAR_DESC_NO_DROP_MASK               BIT(28)
 #define C2H_PFCH_CFG_2_LL_SZ_TH_MASK                       GENMASK(27, 12)
 #define C2H_PFCH_CFG_2_VAR_DESC_NUM_MASK                   GENMASK(11, 6)
 #define C2H_PFCH_CFG_2_NUM_MASK                            GENMASK(5, 0)
-#define EQDMA_CPM5_C2H_INT_TIMER_TICK_ADDR                      0xB0C
+#define EQDMA_CPM5_C2H_INT_TIMER_TICK_ADDR                 0xB0C
 #define C2H_INT_TIMER_TICK_MASK                           GENMASK(31, 0)
-#define EQDMA_CPM5_C2H_STAT_DESC_RSP_DROP_ACCEPTED_ADDR         0xB10
-#define C2H_STAT_DESC_RSP_DROP_ACCEPTED_D_MASK             GENMASK(31, 0)
-#define EQDMA_CPM5_C2H_STAT_DESC_RSP_ERR_ACCEPTED_ADDR          0xB14
-#define C2H_STAT_DESC_RSP_ERR_ACCEPTED_D_MASK              GENMASK(31, 0)
-#define EQDMA_CPM5_C2H_STAT_DESC_REQ_ADDR                       0xB18
-#define C2H_STAT_DESC_REQ_MASK                            GENMASK(31, 0)
-#define EQDMA_CPM5_C2H_STAT_DBG_DMA_ENG_0_ADDR                  0xB1C
+#define EQDMA_CPM5_C2H_STAT_DESC_RSP_DROP_ACCEPTED_ADDR    0xB10
+#define C2H_STAT_DESC_RSP_DROP_ACCEPTED_RSVD_1_MASK        GENMASK(31, 18)
+#define C2H_STAT_DESC_RSP_DROP_ACCEPTED_D_MASK             GENMASK(17, 0)
+#define EQDMA_CPM5_C2H_STAT_DESC_RSP_ERR_ACCEPTED_ADDR     0xB14
+#define C2H_STAT_DESC_RSP_ERR_ACCEPTED_RSVD_1_MASK         GENMASK(31, 18)
+#define C2H_STAT_DESC_RSP_ERR_ACCEPTED_D_MASK              GENMASK(17, 0)
+#define EQDMA_CPM5_C2H_STAT_DESC_REQ_ADDR                  0xB18
+#define C2H_STAT_DESC_REQ_RSVD_1_MASK                      GENMASK(31, 18)
+#define C2H_STAT_DESC_REQ_MASK                            GENMASK(17, 0)
+#define EQDMA_CPM5_C2H_STAT_DBG_DMA_ENG_0_ADDR             0xB1C
 #define C2H_STAT_DMA_ENG_0_S_AXIS_C2H_TVALID_MASK      BIT(31)
 #define C2H_STAT_DMA_ENG_0_S_AXIS_C2H_TREADY_MASK      BIT(30)
 #define C2H_STAT_DMA_ENG_0_S_AXIS_WRB_TVALID_MASK      GENMASK(29, 27)
@@ -677,17 +676,17 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define C2H_STAT_DMA_ENG_0_WRB_FIFO_OUT_CNT_MASK       GENMASK(7, 5)
 #define C2H_STAT_DMA_ENG_0_WRB_SM_CS_MASK              BIT(4)
 #define C2H_STAT_DMA_ENG_0_MAIN_SM_CS_MASK             GENMASK(3, 0)
-#define EQDMA_CPM5_C2H_STAT_DBG_DMA_ENG_1_ADDR                  0xB20
+#define EQDMA_CPM5_C2H_STAT_DBG_DMA_ENG_1_ADDR             0xB20
 #define C2H_STAT_DMA_ENG_1_RSVD_1_MASK                 GENMASK(31, 29)
 #define C2H_STAT_DMA_ENG_1_QID_FIFO_OUT_CNT_MASK       GENMASK(28, 18)
 #define C2H_STAT_DMA_ENG_1_PLD_FIFO_OUT_CNT_MASK       GENMASK(17, 7)
 #define C2H_STAT_DMA_ENG_1_PLD_ST_FIFO_CNT_MASK        GENMASK(6, 0)
-#define EQDMA_CPM5_C2H_STAT_DBG_DMA_ENG_2_ADDR                  0xB24
+#define EQDMA_CPM5_C2H_STAT_DBG_DMA_ENG_2_ADDR             0xB24
 #define C2H_STAT_DMA_ENG_2_RSVD_1_MASK                 GENMASK(31, 29)
 #define C2H_STAT_DMA_ENG_2_QID_FIFO_OUT_CNT_MASK       GENMASK(28, 18)
 #define C2H_STAT_DMA_ENG_2_PLD_FIFO_OUT_CNT_MASK       GENMASK(17, 7)
 #define C2H_STAT_DMA_ENG_2_PLD_ST_FIFO_CNT_MASK        GENMASK(6, 0)
-#define EQDMA_CPM5_C2H_STAT_DBG_DMA_ENG_3_ADDR                  0xB28
+#define EQDMA_CPM5_C2H_STAT_DBG_DMA_ENG_3_ADDR             0xB28
 #define C2H_STAT_DMA_ENG_3_RSVD_1_MASK                 GENMASK(31, 24)
 #define C2H_STAT_DMA_ENG_3_WRQ_FIFO_OUT_CNT_MASK       GENMASK(23, 19)
 #define C2H_STAT_DMA_ENG_3_QID_FIFO_OUT_VLD_MASK       BIT(18)
@@ -709,84 +708,84 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define C2H_STAT_DMA_ENG_3_WRQ_PACKET_PRE_EOR_MASK     BIT(2)
 #define C2H_STAT_DMA_ENG_3_WCP_FIFO_IN_RDY_MASK        BIT(1)
 #define C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_IN_RDY_MASK     BIT(0)
-#define EQDMA_CPM5_C2H_DBG_PFCH_ERR_CTXT_ADDR                   0xB2C
+#define EQDMA_CPM5_C2H_DBG_PFCH_ERR_CTXT_ADDR              0xB2C
 #define C2H_PFCH_ERR_CTXT_RSVD_1_MASK                  GENMASK(31, 14)
 #define C2H_PFCH_ERR_CTXT_ERR_STAT_MASK                BIT(13)
 #define C2H_PFCH_ERR_CTXT_CMD_WR_MASK                  BIT(12)
 #define C2H_PFCH_ERR_CTXT_QID_MASK                     GENMASK(11, 1)
 #define C2H_PFCH_ERR_CTXT_DONE_MASK                    BIT(0)
-#define EQDMA_CPM5_C2H_FIRST_ERR_QID_ADDR                       0xB30
+#define EQDMA_CPM5_C2H_FIRST_ERR_QID_ADDR                  0xB30
 #define C2H_FIRST_ERR_QID_RSVD_1_MASK                      GENMASK(31, 21)
 #define C2H_FIRST_ERR_QID_ERR_TYPE_MASK                    GENMASK(20, 16)
 #define C2H_FIRST_ERR_QID_RSVD_MASK                        GENMASK(15, 13)
 #define C2H_FIRST_ERR_QID_QID_MASK                         GENMASK(12, 0)
-#define EQDMA_CPM5_STAT_NUM_WRB_IN_ADDR                         0xB34
+#define EQDMA_CPM5_STAT_NUM_WRB_IN_ADDR                    0xB34
 #define STAT_NUM_WRB_IN_RSVD_1_MASK                        GENMASK(31, 16)
 #define STAT_NUM_WRB_IN_WRB_CNT_MASK                       GENMASK(15, 0)
-#define EQDMA_CPM5_STAT_NUM_WRB_OUT_ADDR                        0xB38
+#define EQDMA_CPM5_STAT_NUM_WRB_OUT_ADDR                   0xB38
 #define STAT_NUM_WRB_OUT_RSVD_1_MASK                       GENMASK(31, 16)
 #define STAT_NUM_WRB_OUT_WRB_CNT_MASK                      GENMASK(15, 0)
-#define EQDMA_CPM5_STAT_NUM_WRB_DRP_ADDR                        0xB3C
+#define EQDMA_CPM5_STAT_NUM_WRB_DRP_ADDR                   0xB3C
 #define STAT_NUM_WRB_DRP_RSVD_1_MASK                       GENMASK(31, 16)
 #define STAT_NUM_WRB_DRP_WRB_CNT_MASK                      GENMASK(15, 0)
-#define EQDMA_CPM5_STAT_NUM_STAT_DESC_OUT_ADDR                  0xB40
+#define EQDMA_CPM5_STAT_NUM_STAT_DESC_OUT_ADDR             0xB40
 #define STAT_NUM_STAT_DESC_OUT_RSVD_1_MASK                 GENMASK(31, 16)
 #define STAT_NUM_STAT_DESC_OUT_CNT_MASK                    GENMASK(15, 0)
-#define EQDMA_CPM5_STAT_NUM_DSC_CRDT_SENT_ADDR                  0xB44
+#define EQDMA_CPM5_STAT_NUM_DSC_CRDT_SENT_ADDR             0xB44
 #define STAT_NUM_DSC_CRDT_SENT_RSVD_1_MASK                 GENMASK(31, 16)
 #define STAT_NUM_DSC_CRDT_SENT_CNT_MASK                    GENMASK(15, 0)
-#define EQDMA_CPM5_STAT_NUM_FCH_DSC_RCVD_ADDR                   0xB48
+#define EQDMA_CPM5_STAT_NUM_FCH_DSC_RCVD_ADDR              0xB48
 #define STAT_NUM_FCH_DSC_RCVD_RSVD_1_MASK                  GENMASK(31, 16)
 #define STAT_NUM_FCH_DSC_RCVD_DSC_CNT_MASK                 GENMASK(15, 0)
-#define EQDMA_CPM5_STAT_NUM_BYP_DSC_RCVD_ADDR                   0xB4C
+#define EQDMA_CPM5_STAT_NUM_BYP_DSC_RCVD_ADDR              0xB4C
 #define STAT_NUM_BYP_DSC_RCVD_RSVD_1_MASK                  GENMASK(31, 11)
 #define STAT_NUM_BYP_DSC_RCVD_DSC_CNT_MASK                 GENMASK(10, 0)
-#define EQDMA_CPM5_C2H_WRB_COAL_CFG_ADDR                        0xB50
+#define EQDMA_CPM5_C2H_WRB_COAL_CFG_ADDR                   0xB50
 #define C2H_WRB_COAL_CFG_MAX_BUF_SZ_MASK                   GENMASK(31, 26)
 #define C2H_WRB_COAL_CFG_TICK_VAL_MASK                     GENMASK(25, 14)
 #define C2H_WRB_COAL_CFG_TICK_CNT_MASK                     GENMASK(13, 2)
 #define C2H_WRB_COAL_CFG_SET_GLB_FLUSH_MASK                BIT(1)
 #define C2H_WRB_COAL_CFG_DONE_GLB_FLUSH_MASK               BIT(0)
-#define EQDMA_CPM5_C2H_INTR_H2C_REQ_ADDR                        0xB54
+#define EQDMA_CPM5_C2H_INTR_H2C_REQ_ADDR                   0xB54
 #define C2H_INTR_H2C_REQ_RSVD_1_MASK                       GENMASK(31, 18)
 #define C2H_INTR_H2C_REQ_CNT_MASK                          GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_INTR_C2H_MM_REQ_ADDR                     0xB58
+#define EQDMA_CPM5_C2H_INTR_C2H_MM_REQ_ADDR                0xB58
 #define C2H_INTR_C2H_MM_REQ_RSVD_1_MASK                    GENMASK(31, 18)
 #define C2H_INTR_C2H_MM_REQ_CNT_MASK                       GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_INTR_ERR_INT_REQ_ADDR                    0xB5C
+#define EQDMA_CPM5_C2H_INTR_ERR_INT_REQ_ADDR               0xB5C
 #define C2H_INTR_ERR_INT_REQ_RSVD_1_MASK                   GENMASK(31, 18)
 #define C2H_INTR_ERR_INT_REQ_CNT_MASK                      GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_INTR_C2H_ST_REQ_ADDR                     0xB60
+#define EQDMA_CPM5_C2H_INTR_C2H_ST_REQ_ADDR                0xB60
 #define C2H_INTR_C2H_ST_REQ_RSVD_1_MASK                    GENMASK(31, 18)
 #define C2H_INTR_C2H_ST_REQ_CNT_MASK                       GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_INTR_H2C_ERR_C2H_MM_MSIX_ACK_ADDR        0xB64
+#define EQDMA_CPM5_C2H_INTR_H2C_ERR_C2H_MM_MSIX_ACK_ADDR   0xB64
 #define C2H_INTR_H2C_ERR_C2H_MM_MSIX_ACK_RSVD_1_MASK       GENMASK(31, 18)
 #define C2H_INTR_H2C_ERR_C2H_MM_MSIX_ACK_CNT_MASK          GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_INTR_H2C_ERR_C2H_MM_MSIX_FAIL_ADDR       0xB68
+#define EQDMA_CPM5_C2H_INTR_H2C_ERR_C2H_MM_MSIX_FAIL_ADDR  0xB68
 #define C2H_INTR_H2C_ERR_C2H_MM_MSIX_FAIL_RSVD_1_MASK      GENMASK(31, 18)
 #define C2H_INTR_H2C_ERR_C2H_MM_MSIX_FAIL_CNT_MASK         GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_INTR_H2C_ERR_C2H_MM_MSIX_NO_MSIX_ADDR    0xB6C
+#define EQDMA_CPM5_C2H_INTR_H2C_ERR_C2H_MM_MSIX_NO_MSIX_ADDR 0xB6C
 #define C2H_INTR_H2C_ERR_C2H_MM_MSIX_NO_MSIX_RSVD_1_MASK   GENMASK(31, 18)
 #define C2H_INTR_H2C_ERR_C2H_MM_MSIX_NO_MSIX_CNT_MASK      GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_INTR_H2C_ERR_C2H_MM_CTXT_INVAL_ADDR      0xB70
+#define EQDMA_CPM5_C2H_INTR_H2C_ERR_C2H_MM_CTXT_INVAL_ADDR 0xB70
 #define C2H_INTR_H2C_ERR_C2H_MM_CTXT_INVAL_RSVD_1_MASK     GENMASK(31, 18)
 #define C2H_INTR_H2C_ERR_C2H_MM_CTXT_INVAL_CNT_MASK        GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_INTR_C2H_ST_MSIX_ACK_ADDR                0xB74
+#define EQDMA_CPM5_C2H_INTR_C2H_ST_MSIX_ACK_ADDR           0xB74
 #define C2H_INTR_C2H_ST_MSIX_ACK_RSVD_1_MASK               GENMASK(31, 18)
 #define C2H_INTR_C2H_ST_MSIX_ACK_CNT_MASK                  GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_INTR_C2H_ST_MSIX_FAIL_ADDR               0xB78
+#define EQDMA_CPM5_C2H_INTR_C2H_ST_MSIX_FAIL_ADDR          0xB78
 #define C2H_INTR_C2H_ST_MSIX_FAIL_RSVD_1_MASK              GENMASK(31, 18)
 #define C2H_INTR_C2H_ST_MSIX_FAIL_CNT_MASK                 GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_INTR_C2H_ST_NO_MSIX_ADDR                 0xB7C
+#define EQDMA_CPM5_C2H_INTR_C2H_ST_NO_MSIX_ADDR            0xB7C
 #define C2H_INTR_C2H_ST_NO_MSIX_RSVD_1_MASK                GENMASK(31, 18)
 #define C2H_INTR_C2H_ST_NO_MSIX_CNT_MASK                   GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_INTR_C2H_ST_CTXT_INVAL_ADDR              0xB80
+#define EQDMA_CPM5_C2H_INTR_C2H_ST_CTXT_INVAL_ADDR         0xB80
 #define C2H_INTR_C2H_ST_CTXT_INVAL_RSVD_1_MASK             GENMASK(31, 18)
 #define C2H_INTR_C2H_ST_CTXT_INVAL_CNT_MASK                GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_STAT_WR_CMP_ADDR                         0xB84
+#define EQDMA_CPM5_C2H_STAT_WR_CMP_ADDR                    0xB84
 #define C2H_STAT_WR_CMP_RSVD_1_MASK                        GENMASK(31, 18)
 #define C2H_STAT_WR_CMP_CNT_MASK                           GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_STAT_DBG_DMA_ENG_4_ADDR                  0xB88
+#define EQDMA_CPM5_C2H_STAT_DBG_DMA_ENG_4_ADDR             0xB88
 #define C2H_STAT_DMA_ENG_4_RSVD_1_MASK                 GENMASK(31, 24)
 #define C2H_STAT_DMA_ENG_4_WRQ_FIFO_OUT_CNT_MASK       GENMASK(23, 19)
 #define C2H_STAT_DMA_ENG_4_QID_FIFO_OUT_VLD_MASK       BIT(18)
@@ -808,7 +807,7 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define C2H_STAT_DMA_ENG_4_WRQ_PACKET_PRE_EOR_MASK     BIT(2)
 #define C2H_STAT_DMA_ENG_4_WCP_FIFO_IN_RDY_MASK        BIT(1)
 #define C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_IN_RDY_MASK     BIT(0)
-#define EQDMA_CPM5_C2H_STAT_DBG_DMA_ENG_5_ADDR                  0xB8C
+#define EQDMA_CPM5_C2H_STAT_DBG_DMA_ENG_5_ADDR             0xB8C
 #define C2H_STAT_DMA_ENG_5_RSVD_1_MASK                 GENMASK(31, 30)
 #define C2H_STAT_DMA_ENG_5_WRB_SM_VIRT_CH_MASK         BIT(29)
 #define C2H_STAT_DMA_ENG_5_WRB_FIFO_IN_REQ_MASK        GENMASK(28, 24)
@@ -820,93 +819,93 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_NUM_BUF_OV_MASK BIT(2)
 #define C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_MARKER_MASK BIT(1)
 #define C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_HAS_CMPT_MASK BIT(0)
-#define EQDMA_CPM5_C2H_DBG_PFCH_QID_ADDR                        0xB90
+#define EQDMA_CPM5_C2H_DBG_PFCH_QID_ADDR                   0xB90
 #define C2H_PFCH_QID_RSVD_1_MASK                       GENMASK(31, 16)
 #define C2H_PFCH_QID_ERR_CTXT_MASK                     BIT(15)
 #define C2H_PFCH_QID_TARGET_MASK                       GENMASK(14, 12)
 #define C2H_PFCH_QID_QID_OR_TAG_MASK                   GENMASK(11, 0)
-#define EQDMA_CPM5_C2H_DBG_PFCH_ADDR                            0xB94
+#define EQDMA_CPM5_C2H_DBG_PFCH_ADDR                       0xB94
 #define C2H_PFCH_DATA_MASK                             GENMASK(31, 0)
-#define EQDMA_CPM5_C2H_INT_DBG_ADDR                             0xB98
+#define EQDMA_CPM5_C2H_INT_DBG_ADDR                        0xB98
 #define C2H_INT_RSVD_1_MASK                            GENMASK(31, 8)
 #define C2H_INT_INT_COAL_SM_MASK                       GENMASK(7, 4)
 #define C2H_INT_INT_SM_MASK                            GENMASK(3, 0)
-#define EQDMA_CPM5_C2H_STAT_IMM_ACCEPTED_ADDR                   0xB9C
+#define EQDMA_CPM5_C2H_STAT_IMM_ACCEPTED_ADDR              0xB9C
 #define C2H_STAT_IMM_ACCEPTED_RSVD_1_MASK                  GENMASK(31, 18)
 #define C2H_STAT_IMM_ACCEPTED_CNT_MASK                     GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_STAT_MARKER_ACCEPTED_ADDR                0xBA0
+#define EQDMA_CPM5_C2H_STAT_MARKER_ACCEPTED_ADDR           0xBA0
 #define C2H_STAT_MARKER_ACCEPTED_RSVD_1_MASK               GENMASK(31, 18)
 #define C2H_STAT_MARKER_ACCEPTED_CNT_MASK                  GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_STAT_DISABLE_CMP_ACCEPTED_ADDR           0xBA4
+#define EQDMA_CPM5_C2H_STAT_DISABLE_CMP_ACCEPTED_ADDR      0xBA4
 #define C2H_STAT_DISABLE_CMP_ACCEPTED_RSVD_1_MASK          GENMASK(31, 18)
 #define C2H_STAT_DISABLE_CMP_ACCEPTED_CNT_MASK             GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_PLD_FIFO_CRDT_CNT_ADDR                   0xBA8
+#define EQDMA_CPM5_C2H_PLD_FIFO_CRDT_CNT_ADDR              0xBA8
 #define C2H_PLD_FIFO_CRDT_CNT_RSVD_1_MASK                  GENMASK(31, 18)
 #define C2H_PLD_FIFO_CRDT_CNT_CNT_MASK                     GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_INTR_DYN_REQ_ADDR                        0xBAC
+#define EQDMA_CPM5_C2H_INTR_DYN_REQ_ADDR                   0xBAC
 #define C2H_INTR_DYN_REQ_RSVD_1_MASK                       GENMASK(31, 18)
 #define C2H_INTR_DYN_REQ_CNT_MASK                          GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_INTR_DYN_MISC_ADDR                       0xBB0
+#define EQDMA_CPM5_C2H_INTR_DYN_MISC_ADDR                  0xBB0
 #define C2H_INTR_DYN_MISC_RSVD_1_MASK                      GENMASK(31, 18)
 #define C2H_INTR_DYN_MISC_CNT_MASK                         GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_DROP_LEN_MISMATCH_ADDR                   0xBB4
+#define EQDMA_CPM5_C2H_DROP_LEN_MISMATCH_ADDR              0xBB4
 #define C2H_DROP_LEN_MISMATCH_RSVD_1_MASK                  GENMASK(31, 18)
 #define C2H_DROP_LEN_MISMATCH_CNT_MASK                     GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_DROP_DESC_RSP_LEN_ADDR                   0xBB8
+#define EQDMA_CPM5_C2H_DROP_DESC_RSP_LEN_ADDR              0xBB8
 #define C2H_DROP_DESC_RSP_LEN_RSVD_1_MASK                  GENMASK(31, 18)
 #define C2H_DROP_DESC_RSP_LEN_CNT_MASK                     GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_DROP_QID_FIFO_LEN_ADDR                   0xBBC
+#define EQDMA_CPM5_C2H_DROP_QID_FIFO_LEN_ADDR              0xBBC
 #define C2H_DROP_QID_FIFO_LEN_RSVD_1_MASK                  GENMASK(31, 18)
 #define C2H_DROP_QID_FIFO_LEN_CNT_MASK                     GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_DROP_PLD_CNT_ADDR                        0xBC0
+#define EQDMA_CPM5_C2H_DROP_PLD_CNT_ADDR                   0xBC0
 #define C2H_DROP_PLD_CNT_RSVD_1_MASK                       GENMASK(31, 18)
 #define C2H_DROP_PLD_CNT_CNT_MASK                          GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_CMPT_FORMAT_0_ADDR                       0xBC4
+#define EQDMA_CPM5_C2H_CMPT_FORMAT_0_ADDR                  0xBC4
 #define C2H_CMPT_FORMAT_0_DESC_ERR_LOC_MASK                GENMASK(31, 16)
 #define C2H_CMPT_FORMAT_0_COLOR_LOC_MASK                   GENMASK(15, 0)
-#define EQDMA_CPM5_C2H_CMPT_FORMAT_1_ADDR                       0xBC8
+#define EQDMA_CPM5_C2H_CMPT_FORMAT_1_ADDR                  0xBC8
 #define C2H_CMPT_FORMAT_1_DESC_ERR_LOC_MASK                GENMASK(31, 16)
 #define C2H_CMPT_FORMAT_1_COLOR_LOC_MASK                   GENMASK(15, 0)
-#define EQDMA_CPM5_C2H_CMPT_FORMAT_2_ADDR                       0xBCC
+#define EQDMA_CPM5_C2H_CMPT_FORMAT_2_ADDR                  0xBCC
 #define C2H_CMPT_FORMAT_2_DESC_ERR_LOC_MASK                GENMASK(31, 16)
 #define C2H_CMPT_FORMAT_2_COLOR_LOC_MASK                   GENMASK(15, 0)
-#define EQDMA_CPM5_C2H_CMPT_FORMAT_3_ADDR                       0xBD0
+#define EQDMA_CPM5_C2H_CMPT_FORMAT_3_ADDR                  0xBD0
 #define C2H_CMPT_FORMAT_3_DESC_ERR_LOC_MASK                GENMASK(31, 16)
 #define C2H_CMPT_FORMAT_3_COLOR_LOC_MASK                   GENMASK(15, 0)
-#define EQDMA_CPM5_C2H_CMPT_FORMAT_4_ADDR                       0xBD4
+#define EQDMA_CPM5_C2H_CMPT_FORMAT_4_ADDR                  0xBD4
 #define C2H_CMPT_FORMAT_4_DESC_ERR_LOC_MASK                GENMASK(31, 16)
 #define C2H_CMPT_FORMAT_4_COLOR_LOC_MASK                   GENMASK(15, 0)
-#define EQDMA_CPM5_C2H_CMPT_FORMAT_5_ADDR                       0xBD8
+#define EQDMA_CPM5_C2H_CMPT_FORMAT_5_ADDR                  0xBD8
 #define C2H_CMPT_FORMAT_5_DESC_ERR_LOC_MASK                GENMASK(31, 16)
 #define C2H_CMPT_FORMAT_5_COLOR_LOC_MASK                   GENMASK(15, 0)
-#define EQDMA_CPM5_C2H_CMPT_FORMAT_6_ADDR                       0xBDC
+#define EQDMA_CPM5_C2H_CMPT_FORMAT_6_ADDR                  0xBDC
 #define C2H_CMPT_FORMAT_6_DESC_ERR_LOC_MASK                GENMASK(31, 16)
 #define C2H_CMPT_FORMAT_6_COLOR_LOC_MASK                   GENMASK(15, 0)
-#define EQDMA_CPM5_C2H_PFCH_CACHE_DEPTH_ADDR                    0xBE0
+#define EQDMA_CPM5_C2H_PFCH_CACHE_DEPTH_ADDR               0xBE0
 #define C2H_PFCH_CACHE_DEPTH_MAX_STBUF_MASK                GENMASK(23, 16)
 #define C2H_PFCH_CACHE_DEPTH_MASK                         GENMASK(7, 0)
-#define EQDMA_CPM5_C2H_WRB_COAL_BUF_DEPTH_ADDR                  0xBE4
+#define EQDMA_CPM5_C2H_WRB_COAL_BUF_DEPTH_ADDR             0xBE4
 #define C2H_WRB_COAL_BUF_DEPTH_RSVD_1_MASK                 GENMASK(31, 8)
 #define C2H_WRB_COAL_BUF_DEPTH_BUFFER_MASK                 GENMASK(7, 0)
-#define EQDMA_CPM5_C2H_PFCH_CRDT_ADDR                           0xBE8
+#define EQDMA_CPM5_C2H_PFCH_CRDT_ADDR                      0xBE8
 #define C2H_PFCH_CRDT_RSVD_1_MASK                          GENMASK(31, 1)
 #define C2H_PFCH_CRDT_RSVD_2_MASK                          BIT(0)
-#define EQDMA_CPM5_C2H_STAT_HAS_CMPT_ACCEPTED_ADDR              0xBEC
+#define EQDMA_CPM5_C2H_STAT_HAS_CMPT_ACCEPTED_ADDR         0xBEC
 #define C2H_STAT_HAS_CMPT_ACCEPTED_RSVD_1_MASK             GENMASK(31, 18)
 #define C2H_STAT_HAS_CMPT_ACCEPTED_CNT_MASK                GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_STAT_HAS_PLD_ACCEPTED_ADDR               0xBF0
+#define EQDMA_CPM5_C2H_STAT_HAS_PLD_ACCEPTED_ADDR          0xBF0
 #define C2H_STAT_HAS_PLD_ACCEPTED_RSVD_1_MASK              GENMASK(31, 18)
 #define C2H_STAT_HAS_PLD_ACCEPTED_CNT_MASK                 GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_PLD_PKT_ID_ADDR                          0xBF4
+#define EQDMA_CPM5_C2H_PLD_PKT_ID_ADDR                     0xBF4
 #define C2H_PLD_PKT_ID_CMPT_WAIT_MASK                      GENMASK(31, 16)
 #define C2H_PLD_PKT_ID_DATA_MASK                           GENMASK(15, 0)
-#define EQDMA_CPM5_C2H_PLD_PKT_ID_1_ADDR                        0xBF8
+#define EQDMA_CPM5_C2H_PLD_PKT_ID_1_ADDR                   0xBF8
 #define C2H_PLD_PKT_ID_1_CMPT_WAIT_MASK                    GENMASK(31, 16)
 #define C2H_PLD_PKT_ID_1_DATA_MASK                         GENMASK(15, 0)
-#define EQDMA_CPM5_C2H_DROP_PLD_CNT_1_ADDR                      0xBFC
+#define EQDMA_CPM5_C2H_DROP_PLD_CNT_1_ADDR                 0xBFC
 #define C2H_DROP_PLD_CNT_1_RSVD_1_MASK                     GENMASK(31, 18)
 #define C2H_DROP_PLD_CNT_1_CNT_MASK                        GENMASK(17, 0)
-#define EQDMA_CPM5_H2C_ERR_STAT_ADDR                            0xE00
+#define EQDMA_CPM5_H2C_ERR_STAT_ADDR                       0xE00
 #define H2C_ERR_STAT_RSVD_1_MASK                           GENMASK(31, 6)
 #define H2C_ERR_STAT_PAR_ERR_MASK                          BIT(5)
 #define H2C_ERR_STAT_SBE_MASK                              BIT(4)
@@ -914,23 +913,23 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define H2C_ERR_STAT_NO_DMA_DS_MASK                        BIT(2)
 #define H2C_ERR_STAT_SDI_MRKR_REQ_MOP_ERR_MASK             BIT(1)
 #define H2C_ERR_STAT_ZERO_LEN_DS_MASK                      BIT(0)
-#define EQDMA_CPM5_H2C_ERR_MASK_ADDR                            0xE04
+#define EQDMA_CPM5_H2C_ERR_MASK_ADDR                       0xE04
 #define H2C_ERR_EN_MASK                          GENMASK(31, 0)
-#define EQDMA_CPM5_H2C_FIRST_ERR_QID_ADDR                       0xE08
+#define EQDMA_CPM5_H2C_FIRST_ERR_QID_ADDR                  0xE08
 #define H2C_FIRST_ERR_QID_RSVD_1_MASK                      GENMASK(31, 20)
 #define H2C_FIRST_ERR_QID_ERR_TYPE_MASK                    GENMASK(19, 16)
 #define H2C_FIRST_ERR_QID_RSVD_2_MASK                      GENMASK(15, 13)
 #define H2C_FIRST_ERR_QID_QID_MASK                         GENMASK(12, 0)
-#define EQDMA_CPM5_H2C_DBG_REG0_ADDR                            0xE0C
+#define EQDMA_CPM5_H2C_DBG_REG0_ADDR                       0xE0C
 #define H2C_REG0_NUM_DSC_RCVD_MASK                     GENMASK(31, 16)
 #define H2C_REG0_NUM_WRB_SENT_MASK                     GENMASK(15, 0)
-#define EQDMA_CPM5_H2C_DBG_REG1_ADDR                            0xE10
+#define EQDMA_CPM5_H2C_DBG_REG1_ADDR                       0xE10
 #define H2C_REG1_NUM_REQ_SENT_MASK                     GENMASK(31, 16)
 #define H2C_REG1_NUM_CMP_SENT_MASK                     GENMASK(15, 0)
-#define EQDMA_CPM5_H2C_DBG_REG2_ADDR                            0xE14
+#define EQDMA_CPM5_H2C_DBG_REG2_ADDR                       0xE14
 #define H2C_REG2_RSVD_1_MASK                           GENMASK(31, 16)
 #define H2C_REG2_NUM_ERR_DSC_RCVD_MASK                 GENMASK(15, 0)
-#define EQDMA_CPM5_H2C_DBG_REG3_ADDR                            0xE18
+#define EQDMA_CPM5_H2C_DBG_REG3_ADDR                       0xE18
 #define H2C_REG3_RSVD_1_MASK                           BIT(31)
 #define H2C_REG3_DSCO_FIFO_EMPTY_MASK                  BIT(30)
 #define H2C_REG3_DSCO_FIFO_FULL_MASK                   BIT(29)
@@ -942,34 +941,34 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define H2C_REG3_CUR_RQ_STATE_MASK                     GENMASK(3, 2)
 #define H2C_REG3_DSCI_FIFO_FULL_MASK                   BIT(1)
 #define H2C_REG3_DSCI_FIFO_EMPTY_MASK                  BIT(0)
-#define EQDMA_CPM5_H2C_DBG_REG4_ADDR                            0xE1C
+#define EQDMA_CPM5_H2C_DBG_REG4_ADDR                       0xE1C
 #define H2C_REG4_RDREQ_ADDR_MASK                       GENMASK(31, 0)
-#define EQDMA_CPM5_H2C_FATAL_ERR_EN_ADDR                        0xE20
+#define EQDMA_CPM5_H2C_FATAL_ERR_EN_ADDR                   0xE20
 #define H2C_FATAL_ERR_EN_RSVD_1_MASK                       GENMASK(31, 1)
 #define H2C_FATAL_ERR_EN_H2C_MASK                          BIT(0)
-#define EQDMA_CPM5_H2C_REQ_THROT_PCIE_ADDR                      0xE24
+#define EQDMA_CPM5_H2C_REQ_THROT_PCIE_ADDR                 0xE24
 #define H2C_REQ_THROT_PCIE_EN_REQ_MASK                     BIT(31)
 #define H2C_REQ_THROT_PCIE_MASK                           GENMASK(30, 19)
 #define H2C_REQ_THROT_PCIE_EN_DATA_MASK                    BIT(18)
 #define H2C_REQ_THROT_PCIE_DATA_THRESH_MASK                GENMASK(17, 0)
-#define EQDMA_CPM5_H2C_ALN_DBG_REG0_ADDR                        0xE28
+#define EQDMA_CPM5_H2C_ALN_DBG_REG0_ADDR                   0xE28
 #define H2C_ALN_REG0_NUM_PKT_SENT_MASK                 GENMASK(15, 0)
-#define EQDMA_CPM5_H2C_REQ_THROT_AXIMM_ADDR                     0xE2C
+#define EQDMA_CPM5_H2C_REQ_THROT_AXIMM_ADDR                0xE2C
 #define H2C_REQ_THROT_AXIMM_EN_REQ_MASK                    BIT(31)
 #define H2C_REQ_THROT_AXIMM_MASK                          GENMASK(30, 19)
 #define H2C_REQ_THROT_AXIMM_EN_DATA_MASK                   BIT(18)
 #define H2C_REQ_THROT_AXIMM_DATA_THRESH_MASK               GENMASK(17, 0)
-#define EQDMA_CPM5_C2H_MM_CTL_ADDR                              0x1004
+#define EQDMA_CPM5_C2H_MM_CTL_ADDR                         0x1004
 #define C2H_MM_CTL_RESERVED1_MASK                          GENMASK(31, 9)
 #define C2H_MM_CTL_ERRC_EN_MASK                            BIT(8)
 #define C2H_MM_CTL_RESERVED0_MASK                          GENMASK(7, 1)
 #define C2H_MM_CTL_RUN_MASK                                BIT(0)
-#define EQDMA_CPM5_C2H_MM_STATUS_ADDR                           0x1040
+#define EQDMA_CPM5_C2H_MM_STATUS_ADDR                      0x1040
 #define C2H_MM_STATUS_RSVD_1_MASK                          GENMASK(31, 1)
 #define C2H_MM_STATUS_RUN_MASK                             BIT(0)
-#define EQDMA_CPM5_C2H_MM_CMPL_DESC_CNT_ADDR                    0x1048
+#define EQDMA_CPM5_C2H_MM_CMPL_DESC_CNT_ADDR               0x1048
 #define C2H_MM_CMPL_DESC_CNT_C2H_CO_MASK                   GENMASK(31, 0)
-#define EQDMA_CPM5_C2H_MM_ERR_CODE_ENABLE_MASK_ADDR             0x1054
+#define EQDMA_CPM5_C2H_MM_ERR_CODE_ENABLE_MASK_ADDR        0x1054
 #define C2H_MM_ERR_CODE_ENABLE_RESERVED1_MASK         BIT(31)
 #define C2H_MM_ERR_CODE_ENABLE_WR_UC_RAM_MASK         BIT(30)
 #define C2H_MM_ERR_CODE_ENABLE_WR_UR_MASK             BIT(29)
@@ -977,34 +976,34 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define C2H_MM_ERR_CODE_ENABLE_RESERVED0_MASK         GENMASK(27, 2)
 #define C2H_MM_ERR_CODE_ENABLE_RD_SLV_ERR_MASK        BIT(1)
 #define C2H_MM_ERR_CODE_ENABLE_WR_SLV_ERR_MASK        BIT(0)
-#define EQDMA_CPM5_C2H_MM_ERR_CODE_ADDR                         0x1058
+#define EQDMA_CPM5_C2H_MM_ERR_CODE_ADDR                    0x1058
 #define C2H_MM_ERR_CODE_RESERVED1_MASK                     GENMASK(31, 28)
 #define C2H_MM_ERR_CODE_CIDX_MASK                          GENMASK(27, 12)
 #define C2H_MM_ERR_CODE_RESERVED0_MASK                     GENMASK(11, 10)
 #define C2H_MM_ERR_CODE_SUB_TYPE_MASK                      GENMASK(9, 5)
 #define C2H_MM_ERR_CODE_MASK                              GENMASK(4, 0)
-#define EQDMA_CPM5_C2H_MM_ERR_INFO_ADDR                         0x105C
+#define EQDMA_CPM5_C2H_MM_ERR_INFO_ADDR                    0x105C
 #define C2H_MM_ERR_INFO_VALID_MASK                         BIT(31)
 #define C2H_MM_ERR_INFO_SEL_MASK                           BIT(30)
 #define C2H_MM_ERR_INFO_RSVD_1_MASK                        GENMASK(29, 24)
 #define C2H_MM_ERR_INFO_QID_MASK                           GENMASK(23, 0)
-#define EQDMA_CPM5_C2H_MM_PERF_MON_CTL_ADDR                     0x10C0
+#define EQDMA_CPM5_C2H_MM_PERF_MON_CTL_ADDR                0x10C0
 #define C2H_MM_PERF_MON_CTL_RSVD_1_MASK                    GENMASK(31, 4)
 #define C2H_MM_PERF_MON_CTL_IMM_START_MASK                 BIT(3)
 #define C2H_MM_PERF_MON_CTL_RUN_START_MASK                 BIT(2)
 #define C2H_MM_PERF_MON_CTL_IMM_CLEAR_MASK                 BIT(1)
 #define C2H_MM_PERF_MON_CTL_RUN_CLEAR_MASK                 BIT(0)
-#define EQDMA_CPM5_C2H_MM_PERF_MON_CYCLE_CNT0_ADDR              0x10C4
+#define EQDMA_CPM5_C2H_MM_PERF_MON_CYCLE_CNT0_ADDR         0x10C4
 #define C2H_MM_PERF_MON_CYCLE_CNT0_CYC_CNT_MASK            GENMASK(31, 0)
-#define EQDMA_CPM5_C2H_MM_PERF_MON_CYCLE_CNT1_ADDR              0x10C8
+#define EQDMA_CPM5_C2H_MM_PERF_MON_CYCLE_CNT1_ADDR         0x10C8
 #define C2H_MM_PERF_MON_CYCLE_CNT1_RSVD_1_MASK             GENMASK(31, 10)
 #define C2H_MM_PERF_MON_CYCLE_CNT1_CYC_CNT_MASK            GENMASK(9, 0)
-#define EQDMA_CPM5_C2H_MM_PERF_MON_DATA_CNT0_ADDR               0x10CC
+#define EQDMA_CPM5_C2H_MM_PERF_MON_DATA_CNT0_ADDR          0x10CC
 #define C2H_MM_PERF_MON_DATA_CNT0_DCNT_MASK                GENMASK(31, 0)
-#define EQDMA_CPM5_C2H_MM_PERF_MON_DATA_CNT1_ADDR               0x10D0
+#define EQDMA_CPM5_C2H_MM_PERF_MON_DATA_CNT1_ADDR          0x10D0
 #define C2H_MM_PERF_MON_DATA_CNT1_RSVD_1_MASK              GENMASK(31, 10)
 #define C2H_MM_PERF_MON_DATA_CNT1_DCNT_MASK                GENMASK(9, 0)
-#define EQDMA_CPM5_C2H_MM_DBG_ADDR                              0x10E8
+#define EQDMA_CPM5_C2H_MM_DBG_ADDR                         0x10E8
 #define C2H_MM_RSVD_1_MASK                             GENMASK(31, 24)
 #define C2H_MM_RRQ_ENTRIES_MASK                        GENMASK(23, 17)
 #define C2H_MM_DAT_FIFO_SPC_MASK                       GENMASK(16, 7)
@@ -1015,17 +1014,17 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define C2H_MM_WBK_STALL_MASK                          BIT(2)
 #define C2H_MM_DSC_FIFO_EP_MASK                        BIT(1)
 #define C2H_MM_DSC_FIFO_FL_MASK                        BIT(0)
-#define EQDMA_CPM5_H2C_MM_CTL_ADDR                              0x1204
+#define EQDMA_CPM5_H2C_MM_CTL_ADDR                         0x1204
 #define H2C_MM_CTL_RESERVED1_MASK                          GENMASK(31, 9)
 #define H2C_MM_CTL_ERRC_EN_MASK                            BIT(8)
 #define H2C_MM_CTL_RESERVED0_MASK                          GENMASK(7, 1)
 #define H2C_MM_CTL_RUN_MASK                                BIT(0)
-#define EQDMA_CPM5_H2C_MM_STATUS_ADDR                           0x1240
+#define EQDMA_CPM5_H2C_MM_STATUS_ADDR                      0x1240
 #define H2C_MM_STATUS_RSVD_1_MASK                          GENMASK(31, 1)
 #define H2C_MM_STATUS_RUN_MASK                             BIT(0)
-#define EQDMA_CPM5_H2C_MM_CMPL_DESC_CNT_ADDR                    0x1248
+#define EQDMA_CPM5_H2C_MM_CMPL_DESC_CNT_ADDR               0x1248
 #define H2C_MM_CMPL_DESC_CNT_H2C_CO_MASK                   GENMASK(31, 0)
-#define EQDMA_CPM5_H2C_MM_ERR_CODE_ENABLE_MASK_ADDR             0x1254
+#define EQDMA_CPM5_H2C_MM_ERR_CODE_ENABLE_MASK_ADDR        0x1254
 #define H2C_MM_ERR_CODE_ENABLE_RESERVED5_MASK         GENMASK(31, 30)
 #define H2C_MM_ERR_CODE_ENABLE_WR_SLV_ERR_MASK        BIT(29)
 #define H2C_MM_ERR_CODE_ENABLE_WR_DEC_ERR_MASK        BIT(28)
@@ -1042,34 +1041,34 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define H2C_MM_ERR_CODE_ENABLE_RD_UR_CA_MASK          BIT(2)
 #define H2C_MM_ERR_CODE_ENABLE_RD_HRD_POISON_ERR_MASK BIT(1)
 #define H2C_MM_ERR_CODE_ENABLE_RESERVED0_MASK         BIT(0)
-#define EQDMA_CPM5_H2C_MM_ERR_CODE_ADDR                         0x1258
+#define EQDMA_CPM5_H2C_MM_ERR_CODE_ADDR                    0x1258
 #define H2C_MM_ERR_CODE_RSVD_1_MASK                        GENMASK(31, 28)
 #define H2C_MM_ERR_CODE_CIDX_MASK                          GENMASK(27, 12)
 #define H2C_MM_ERR_CODE_RESERVED0_MASK                     GENMASK(11, 10)
 #define H2C_MM_ERR_CODE_SUB_TYPE_MASK                      GENMASK(9, 5)
 #define H2C_MM_ERR_CODE_MASK                              GENMASK(4, 0)
-#define EQDMA_CPM5_H2C_MM_ERR_INFO_ADDR                         0x125C
+#define EQDMA_CPM5_H2C_MM_ERR_INFO_ADDR                    0x125C
 #define H2C_MM_ERR_INFO_VALID_MASK                         BIT(31)
 #define H2C_MM_ERR_INFO_SEL_MASK                           BIT(30)
 #define H2C_MM_ERR_INFO_RSVD_1_MASK                        GENMASK(29, 24)
 #define H2C_MM_ERR_INFO_QID_MASK                           GENMASK(23, 0)
-#define EQDMA_CPM5_H2C_MM_PERF_MON_CTL_ADDR                     0x12C0
+#define EQDMA_CPM5_H2C_MM_PERF_MON_CTL_ADDR                0x12C0
 #define H2C_MM_PERF_MON_CTL_RSVD_1_MASK                    GENMASK(31, 4)
 #define H2C_MM_PERF_MON_CTL_IMM_START_MASK                 BIT(3)
 #define H2C_MM_PERF_MON_CTL_RUN_START_MASK                 BIT(2)
 #define H2C_MM_PERF_MON_CTL_IMM_CLEAR_MASK                 BIT(1)
 #define H2C_MM_PERF_MON_CTL_RUN_CLEAR_MASK                 BIT(0)
-#define EQDMA_CPM5_H2C_MM_PERF_MON_CYCLE_CNT0_ADDR              0x12C4
+#define EQDMA_CPM5_H2C_MM_PERF_MON_CYCLE_CNT0_ADDR         0x12C4
 #define H2C_MM_PERF_MON_CYCLE_CNT0_CYC_CNT_MASK            GENMASK(31, 0)
-#define EQDMA_CPM5_H2C_MM_PERF_MON_CYCLE_CNT1_ADDR              0x12C8
+#define EQDMA_CPM5_H2C_MM_PERF_MON_CYCLE_CNT1_ADDR         0x12C8
 #define H2C_MM_PERF_MON_CYCLE_CNT1_RSVD_1_MASK             GENMASK(31, 10)
 #define H2C_MM_PERF_MON_CYCLE_CNT1_CYC_CNT_MASK            GENMASK(9, 0)
-#define EQDMA_CPM5_H2C_MM_PERF_MON_DATA_CNT0_ADDR               0x12CC
+#define EQDMA_CPM5_H2C_MM_PERF_MON_DATA_CNT0_ADDR          0x12CC
 #define H2C_MM_PERF_MON_DATA_CNT0_DCNT_MASK                GENMASK(31, 0)
-#define EQDMA_CPM5_H2C_MM_PERF_MON_DATA_CNT1_ADDR               0x12D0
+#define EQDMA_CPM5_H2C_MM_PERF_MON_DATA_CNT1_ADDR          0x12D0
 #define H2C_MM_PERF_MON_DATA_CNT1_RSVD_1_MASK              GENMASK(31, 10)
 #define H2C_MM_PERF_MON_DATA_CNT1_DCNT_MASK                GENMASK(9, 0)
-#define EQDMA_CPM5_H2C_MM_DBG_ADDR                              0x12E8
+#define EQDMA_CPM5_H2C_MM_DBG_ADDR                         0x12E8
 #define H2C_MM_RSVD_1_MASK                             GENMASK(31, 24)
 #define H2C_MM_RRQ_ENTRIES_MASK                        GENMASK(23, 17)
 #define H2C_MM_DAT_FIFO_SPC_MASK                       GENMASK(16, 7)
@@ -1080,26 +1079,41 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define H2C_MM_WBK_STALL_MASK                          BIT(2)
 #define H2C_MM_DSC_FIFO_EP_MASK                        BIT(1)
 #define H2C_MM_DSC_FIFO_FL_MASK                        BIT(0)
-#define EQDMA_CPM5_C2H_CRDT_COAL_CFG_1_ADDR                     0x1400
+#define EQDMA_CPM5_C2H_CRDT_COAL_CFG_1_ADDR                0x1400
 #define C2H_CRDT_COAL_CFG_1_RSVD_1_MASK                    GENMASK(31, 18)
 #define C2H_CRDT_COAL_CFG_1_PLD_FIFO_TH_MASK               GENMASK(17, 10)
 #define C2H_CRDT_COAL_CFG_1_TIMER_TH_MASK                  GENMASK(9, 0)
-#define EQDMA_CPM5_C2H_CRDT_COAL_CFG_2_ADDR                     0x1404
+#define EQDMA_CPM5_C2H_CRDT_COAL_CFG_2_ADDR                0x1404
 #define C2H_CRDT_COAL_CFG_2_RSVD_1_MASK                    GENMASK(31, 24)
 #define C2H_CRDT_COAL_CFG_2_FIFO_TH_MASK                   GENMASK(23, 16)
 #define C2H_CRDT_COAL_CFG_2_RESERVED1_MASK                 GENMASK(15, 11)
 #define C2H_CRDT_COAL_CFG_2_NT_TH_MASK                     GENMASK(10, 0)
-#define EQDMA_CPM5_C2H_PFCH_BYP_QID_ADDR                        0x1408
+#define EQDMA_CPM5_C2H_PFCH_BYP_QID_ADDR                   0x1408
 #define C2H_PFCH_BYP_QID_RSVD_1_MASK                       GENMASK(31, 12)
 #define C2H_PFCH_BYP_QID_MASK                             GENMASK(11, 0)
-#define EQDMA_CPM5_C2H_PFCH_BYP_TAG_ADDR                        0x140C
+#define EQDMA_CPM5_C2H_PFCH_BYP_TAG_ADDR                   0x140C
 #define C2H_PFCH_BYP_TAG_RSVD_1_MASK                       GENMASK(31, 20)
 #define C2H_PFCH_BYP_TAG_BYP_QID_MASK                      GENMASK(19, 8)
 #define C2H_PFCH_BYP_TAG_RSVD_2_MASK                       BIT(7)
 #define C2H_PFCH_BYP_TAG_MASK                             GENMASK(6, 0)
-#define EQDMA_CPM5_C2H_WATER_MARK_ADDR                          0x1500
+#define EQDMA_CPM5_C2H_WATER_MARK_ADDR                     0x1500
 #define C2H_WATER_MARK_HIGH_WM_MASK                        GENMASK(31, 16)
 #define C2H_WATER_MARK_LOW_WM_MASK                         GENMASK(15, 0)
+#define EQDMA_CPM5_C2H_NOTIFY_EMPTY_ADDR                   0x1800
+#define C2H_NOTIFY_EMPTY_RSVD_1_MASK                       GENMASK(31, 16)
+#define C2H_NOTIFY_EMPTY_NOE_MASK                          GENMASK(15, 0)
+#define EQDMA_CPM5_C2H_STAT_S_AXIS_C2H_ACCEPTED_1_ADDR     0x1804
+#define C2H_STAT_S_AXIS_C2H_ACCEPTED_1_MASK               GENMASK(31, 0)
+#define EQDMA_CPM5_C2H_STAT_S_AXIS_WRB_ACCEPTED_1_ADDR     0x1808
+#define C2H_STAT_S_AXIS_WRB_ACCEPTED_1_MASK               GENMASK(31, 0)
+#define EQDMA_CPM5_C2H_STAT_DESC_RSP_PKT_ACCEPTED_1_ADDR   0x180C
+#define C2H_STAT_DESC_RSP_PKT_ACCEPTED_1_D_MASK            GENMASK(31, 0)
+#define EQDMA_CPM5_C2H_STAT_AXIS_PKG_CMP_1_ADDR            0x1810
+#define C2H_STAT_AXIS_PKG_CMP_1_MASK                      GENMASK(31, 0)
+#define EQDMA_CPM5_C2H_STAT_S_AXIS_WRB_ACCEPTED_2_ADDR     0x1814
+#define C2H_STAT_S_AXIS_WRB_ACCEPTED_2_MASK               GENMASK(31, 0)
+#define EQDMA_CPM5_C2H_ST_PLD_FIFO_DEPTH_ADDR              0x1818
+#define C2H_ST_PLD_FIFO_DEPTH_MASK                        GENMASK(31, 0)
 #define SW_IND_CTXT_DATA_W7_VIRTIO_DSC_BASE_H_MASK        GENMASK(10, 0)
 #define SW_IND_CTXT_DATA_W6_VIRTIO_DSC_BASE_M_MASK        GENMASK(31, 0)
 #define SW_IND_CTXT_DATA_W5_VIRTIO_DSC_BASE_L_MASK        GENMASK(31, 11)
@@ -1217,6 +1231,50 @@ struct xreg_info *eqdma_cpm5_config_regs_get(void);
 #define INTR_CTXT_DATA_W0_RSVD1_MASK                      BIT(12)
 #define INTR_CTXT_DATA_W0_VEC_MASK                        GENMASK(11, 1)
 #define INTR_CTXT_DATA_W0_VALID_MASK                      BIT(0)
+#define HOSTID_TABLE_W6_SMID_MASK                          GENMASK(9, 0)
+#define HOSTID_TABLE_W5_H2C_MM_AWPROT_MASK                 GENMASK(27, 26)
+#define HOSTID_TABLE_W5_H2C_MM_AWCACHE_MASK                GENMASK(25, 22)
+#define HOSTID_TABLE_W5_H2C_MM_AWSTEERING_MASK             GENMASK(20, 18)
+#define HOSTID_TABLE_W5_DSC_AWPROT_MASK                    GENMASK(17, 16)
+#define HOSTID_TABLE_W5_DSC_AWCACHE_MASK                   GENMASK(15, 12)
+#define HOSTID_TABLE_W5_DSC_AWSTEERING_MASK                GENMASK(11, 8)
+#define HOSTID_TABLE_W5_INT_MSG_AWPROT_MASK                GENMASK(7, 6)
+#define HOSTID_TABLE_W5_INT_MSG_AWCACHE_MASK               GENMASK(5, 2)
+#define HOSTID_TABLE_W5_INT_MSG_AWSTEERING_H_MASK          GENMASK(0, 0)
+#define HOSTID_TABLE_W4_INT_MSG_AWSTEERING_L_MASK          GENMASK(31, 30)
+#define HOSTID_TABLE_W4_INT_AGGR_AWPROT_MASK               GENMASK(29, 28)
+#define HOSTID_TABLE_W4_INT_AGGR_AWCACHE_MASK              GENMASK(27, 24)
+#define HOSTID_TABLE_W4_INT_AGGR_AWSTEERING_MASK           GENMASK(22, 20)
+#define HOSTID_TABLE_W4_CMPT_AWPROT_MASK                   GENMASK(19, 18)
+#define HOSTID_TABLE_W4_CMPT_AWCACHE_MASK                  GENMASK(17, 14)
+#define HOSTID_TABLE_W4_CMPT_AWSTEERING_MASK               GENMASK(12, 10)
+#define HOSTID_TABLE_W4_C2H_PLD_AWPROT_MASK                GENMASK(9, 8)
+#define HOSTID_TABLE_W4_C2H_PLD_AWCACHE_MASK               GENMASK(7, 4)
+#define HOSTID_TABLE_W4_C2H_PLD_AWSTEERING_MASK            GENMASK(2, 0)
+#define HOSTID_TABLE_W3_C2H_MM_ARPROT_MASK                 GENMASK(7, 6)
+#define HOSTID_TABLE_W3_C2H_MM_ARCACHE_MASK                GENMASK(5, 2)
+#define HOSTID_TABLE_W3_C2H_MM_ARSTEERING_H_MASK           GENMASK(0, 0)
+#define HOSTID_TABLE_W2_C2H_MM_ARSTEERING_L_MASK           GENMASK(31, 30)
+#define HOSTID_TABLE_W2_H2C_MM_ARPROT_MASK                 GENMASK(29, 28)
+#define HOSTID_TABLE_W2_H2C_MM_ARCACHE_MASK                GENMASK(27, 24)
+#define HOSTID_TABLE_W2_H2C_MM_ARSTEERING_MASK             GENMASK(22, 20)
+#define HOSTID_TABLE_W2_H2C_ST_ARPROT_MASK                 GENMASK(19, 18)
+#define HOSTID_TABLE_W2_H2C_ST_ARCACHE_MASK                GENMASK(17, 14)
+#define HOSTID_TABLE_W2_H2C_ST_ARSTEERING_MASK             GENMASK(12, 10)
+#define HOSTID_TABLE_W2_DSC_ARPOT_MASK                     GENMASK(9, 8)
+#define HOSTID_TABLE_W2_DSC_ARCACHE_MASK                   GENMASK(7, 4)
+#define HOSTID_TABLE_W2_DSC_ARSTEERING_MASK                GENMASK(2, 0)
+#define HOSTID_TABLE_W0_VCH_H2C_MM_MASK                    GENMASK(27, 24)
+#define HOSTID_TABLE_W0_VCH_H2C_ST_MASK                    GENMASK(23, 20)
+#define HOSTID_TABLE_W0_VCH_DSC_MASK                       GENMASK(19, 16)
+#define HOSTID_TABLE_W0_VCH_INT_MSG_MASK                   GENMASK(15, 12)
+#define HOSTID_TABLE_W0_VCH_INT_AGGR_MASK                  GENMASK(11, 8)
+#define HOSTID_TABLE_W0_VCH_CMPT_MASK                      GENMASK(7, 4)
+#define HOSTID_TABLE_W0_VCH_H2C_PLD_MASK                   GENMASK(3, 0)
+#define CTXT_SELC_FNC_STS_W0_MSIX_MASK                GENMASK(3, 3)
+#define CTXT_SELC_FNC_STS_W0_MSIX_ENABLE_MASK              GENMASK(2, 2)
+#define CTXT_SELC_FNC_STS_W0_MEM_SPACE_ENABLE_MASK         GENMASK(1, 1)
+#define CTXT_SELC_FNC_STS_W0_BUS_MASTER_ENABLE_MASK        GENMASK(0, 0)
 
 #ifdef __cplusplus
 }
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_cpm5_access/eqdma_cpm5_reg_dump.c b/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_cpm5_access/eqdma_cpm5_reg_dump.c
old mode 100644
new mode 100755
index 38d897c..2c71d01
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_cpm5_access/eqdma_cpm5_reg_dump.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_cpm5_access/eqdma_cpm5_reg_dump.c
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -1166,42 +1167,6 @@ static struct regfield_info
 };
 
 
-static struct regfield_info
-	glbl_req_err_sts_field_info[] = {
-	{"GLBL_REQ_ERR_STS_RSVD_1",
-		GLBL_REQ_ERR_STS_RSVD_1_MASK},
-	{"GLBL_REQ_ERR_STS_RC_DISCONTINUE",
-		GLBL_REQ_ERR_STS_RC_DISCONTINUE_MASK},
-	{"GLBL_REQ_ERR_STS_RC_PRTY",
-		GLBL_REQ_ERR_STS_RC_PRTY_MASK},
-	{"GLBL_REQ_ERR_STS_RC_FLR",
-		GLBL_REQ_ERR_STS_RC_FLR_MASK},
-	{"GLBL_REQ_ERR_STS_RC_TIMEOUT",
-		GLBL_REQ_ERR_STS_RC_TIMEOUT_MASK},
-	{"GLBL_REQ_ERR_STS_RC_INV_BCNT",
-		GLBL_REQ_ERR_STS_RC_INV_BCNT_MASK},
-	{"GLBL_REQ_ERR_STS_RC_INV_TAG",
-		GLBL_REQ_ERR_STS_RC_INV_TAG_MASK},
-	{"GLBL_REQ_ERR_STS_RC_START_ADDR_MISMCH",
-		GLBL_REQ_ERR_STS_RC_START_ADDR_MISMCH_MASK},
-	{"GLBL_REQ_ERR_STS_RC_RID_TC_ATTR_MISMCH",
-		GLBL_REQ_ERR_STS_RC_RID_TC_ATTR_MISMCH_MASK},
-	{"GLBL_REQ_ERR_STS_RC_NO_DATA",
-		GLBL_REQ_ERR_STS_RC_NO_DATA_MASK},
-	{"GLBL_REQ_ERR_STS_RC_UR_CA_CRS",
-		GLBL_REQ_ERR_STS_RC_UR_CA_CRS_MASK},
-	{"GLBL_REQ_ERR_STS_RC_POISONED",
-		GLBL_REQ_ERR_STS_RC_POISONED_MASK},
-};
-
-
-static struct regfield_info
-	glbl_req_err_msk_field_info[] = {
-	{"GLBL_REQ_ERR_MSK",
-		GLBL_REQ_ERR_MSK_MASK},
-};
-
-
 static struct regfield_info
 	ind_ctxt_data_field_info[] = {
 	{"IND_CTXT_DATA_DATA",
@@ -1251,6 +1216,8 @@ static struct regfield_info
 
 static struct regfield_info
 	c2h_stat_s_axis_c2h_accepted_field_info[] = {
+	{"C2H_STAT_S_AXIS_C2H_ACCEPTED_RSVD_1",
+		C2H_STAT_S_AXIS_C2H_ACCEPTED_RSVD_1_MASK},
 	{"C2H_STAT_S_AXIS_C2H_ACCEPTED",
 		C2H_STAT_S_AXIS_C2H_ACCEPTED_MASK},
 };
@@ -1258,6 +1225,8 @@ static struct regfield_info
 
 static struct regfield_info
 	c2h_stat_s_axis_wrb_accepted_field_info[] = {
+	{"C2H_STAT_S_AXIS_WRB_ACCEPTED_RSVD_1",
+		C2H_STAT_S_AXIS_WRB_ACCEPTED_RSVD_1_MASK},
 	{"C2H_STAT_S_AXIS_WRB_ACCEPTED",
 		C2H_STAT_S_AXIS_WRB_ACCEPTED_MASK},
 };
@@ -1265,6 +1234,8 @@ static struct regfield_info
 
 static struct regfield_info
 	c2h_stat_desc_rsp_pkt_accepted_field_info[] = {
+	{"C2H_STAT_DESC_RSP_PKT_ACCEPTED_RSVD_1",
+		C2H_STAT_DESC_RSP_PKT_ACCEPTED_RSVD_1_MASK},
 	{"C2H_STAT_DESC_RSP_PKT_ACCEPTED_D",
 		C2H_STAT_DESC_RSP_PKT_ACCEPTED_D_MASK},
 };
@@ -1272,6 +1243,8 @@ static struct regfield_info
 
 static struct regfield_info
 	c2h_stat_axis_pkg_cmp_field_info[] = {
+	{"C2H_STAT_AXIS_PKG_CMP_RSVD_1",
+		C2H_STAT_AXIS_PKG_CMP_RSVD_1_MASK},
 	{"C2H_STAT_AXIS_PKG_CMP",
 		C2H_STAT_AXIS_PKG_CMP_MASK},
 };
@@ -1279,6 +1252,8 @@ static struct regfield_info
 
 static struct regfield_info
 	c2h_stat_desc_rsp_accepted_field_info[] = {
+	{"C2H_STAT_DESC_RSP_ACCEPTED_RSVD_1",
+		C2H_STAT_DESC_RSP_ACCEPTED_RSVD_1_MASK},
 	{"C2H_STAT_DESC_RSP_ACCEPTED_D",
 		C2H_STAT_DESC_RSP_ACCEPTED_D_MASK},
 };
@@ -1286,6 +1261,8 @@ static struct regfield_info
 
 static struct regfield_info
 	c2h_stat_desc_rsp_cmp_field_info[] = {
+	{"C2H_STAT_DESC_RSP_CMP_RSVD_1",
+		C2H_STAT_DESC_RSP_CMP_RSVD_1_MASK},
 	{"C2H_STAT_DESC_RSP_CMP_D",
 		C2H_STAT_DESC_RSP_CMP_D_MASK},
 };
@@ -1293,6 +1270,8 @@ static struct regfield_info
 
 static struct regfield_info
 	c2h_stat_wrq_out_field_info[] = {
+	{"C2H_STAT_WRQ_OUT_RSVD_1",
+		C2H_STAT_WRQ_OUT_RSVD_1_MASK},
 	{"C2H_STAT_WRQ_OUT",
 		C2H_STAT_WRQ_OUT_MASK},
 };
@@ -1300,6 +1279,8 @@ static struct regfield_info
 
 static struct regfield_info
 	c2h_stat_wpl_ren_accepted_field_info[] = {
+	{"C2H_STAT_WPL_REN_ACCEPTED_RSVD_1",
+		C2H_STAT_WPL_REN_ACCEPTED_RSVD_1_MASK},
 	{"C2H_STAT_WPL_REN_ACCEPTED",
 		C2H_STAT_WPL_REN_ACCEPTED_MASK},
 };
@@ -1307,6 +1288,8 @@ static struct regfield_info
 
 static struct regfield_info
 	c2h_stat_total_wrq_len_field_info[] = {
+	{"C2H_STAT_TOTAL_WRQ_LEN_RSVD_1",
+		C2H_STAT_TOTAL_WRQ_LEN_RSVD_1_MASK},
 	{"C2H_STAT_TOTAL_WRQ_LEN",
 		C2H_STAT_TOTAL_WRQ_LEN_MASK},
 };
@@ -1314,6 +1297,8 @@ static struct regfield_info
 
 static struct regfield_info
 	c2h_stat_total_wpl_len_field_info[] = {
+	{"C2H_STAT_TOTAL_WPL_LEN_RSVD_1",
+		C2H_STAT_TOTAL_WPL_LEN_RSVD_1_MASK},
 	{"C2H_STAT_TOTAL_WPL_LEN",
 		C2H_STAT_TOTAL_WPL_LEN_MASK},
 };
@@ -1506,6 +1491,8 @@ static struct regfield_info
 
 static struct regfield_info
 	c2h_stat_desc_rsp_drop_accepted_field_info[] = {
+	{"C2H_STAT_DESC_RSP_DROP_ACCEPTED_RSVD_1",
+		C2H_STAT_DESC_RSP_DROP_ACCEPTED_RSVD_1_MASK},
 	{"C2H_STAT_DESC_RSP_DROP_ACCEPTED_D",
 		C2H_STAT_DESC_RSP_DROP_ACCEPTED_D_MASK},
 };
@@ -1513,6 +1500,8 @@ static struct regfield_info
 
 static struct regfield_info
 	c2h_stat_desc_rsp_err_accepted_field_info[] = {
+	{"C2H_STAT_DESC_RSP_ERR_ACCEPTED_RSVD_1",
+		C2H_STAT_DESC_RSP_ERR_ACCEPTED_RSVD_1_MASK},
 	{"C2H_STAT_DESC_RSP_ERR_ACCEPTED_D",
 		C2H_STAT_DESC_RSP_ERR_ACCEPTED_D_MASK},
 };
@@ -1520,6 +1509,8 @@ static struct regfield_info
 
 static struct regfield_info
 	c2h_stat_desc_req_field_info[] = {
+	{"C2H_STAT_DESC_REQ_RSVD_1",
+		C2H_STAT_DESC_REQ_RSVD_1_MASK},
 	{"C2H_STAT_DESC_REQ",
 		C2H_STAT_DESC_REQ_MASK},
 };
@@ -2690,6 +2681,57 @@ static struct regfield_info
 		C2H_WATER_MARK_LOW_WM_MASK},
 };
 
+
+static struct regfield_info
+	c2h_notify_empty_field_info[] = {
+	{"C2H_NOTIFY_EMPTY_RSVD_1",
+		C2H_NOTIFY_EMPTY_RSVD_1_MASK},
+	{"C2H_NOTIFY_EMPTY_NOE",
+		C2H_NOTIFY_EMPTY_NOE_MASK},
+};
+
+
+static struct regfield_info
+	c2h_stat_s_axis_c2h_accepted_1_field_info[] = {
+	{"C2H_STAT_S_AXIS_C2H_ACCEPTED_1",
+		C2H_STAT_S_AXIS_C2H_ACCEPTED_1_MASK},
+};
+
+
+static struct regfield_info
+	c2h_stat_s_axis_wrb_accepted_1_field_info[] = {
+	{"C2H_STAT_S_AXIS_WRB_ACCEPTED_1",
+		C2H_STAT_S_AXIS_WRB_ACCEPTED_1_MASK},
+};
+
+
+static struct regfield_info
+	c2h_stat_desc_rsp_pkt_accepted_1_field_info[] = {
+	{"C2H_STAT_DESC_RSP_PKT_ACCEPTED_1_D",
+		C2H_STAT_DESC_RSP_PKT_ACCEPTED_1_D_MASK},
+};
+
+
+static struct regfield_info
+	c2h_stat_axis_pkg_cmp_1_field_info[] = {
+	{"C2H_STAT_AXIS_PKG_CMP_1",
+		C2H_STAT_AXIS_PKG_CMP_1_MASK},
+};
+
+
+static struct regfield_info
+	c2h_stat_s_axis_wrb_accepted_2_field_info[] = {
+	{"C2H_STAT_S_AXIS_WRB_ACCEPTED_2",
+		C2H_STAT_S_AXIS_WRB_ACCEPTED_2_MASK},
+};
+
+
+static struct regfield_info
+	c2h_st_pld_fifo_depth_field_info[] = {
+	{"C2H_ST_PLD_FIFO_DEPTH",
+		C2H_ST_PLD_FIFO_DEPTH_MASK},
+};
+
 static struct xreg_info eqdma_cpm5_config_regs[] = {
 {"CFG_BLK_IDENTIFIER", 0x00,
 	1, 0, 0, 0,
@@ -3147,18 +3189,6 @@ static struct xreg_info eqdma_cpm5_config_regs[] = {
 	ARRAY_SIZE(fab_err_log_field_info),
 	fab_err_log_field_info
 },
-{"GLBL_REQ_ERR_STS", 0x318,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl_req_err_sts_field_info),
-	glbl_req_err_sts_field_info
-},
-{"GLBL_REQ_ERR_MSK", 0x31c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl_req_err_msk_field_info),
-	glbl_req_err_msk_field_info
-},
 {"IND_CTXT_DATA", 0x804,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
@@ -3191,61 +3221,61 @@ static struct xreg_info eqdma_cpm5_config_regs[] = {
 },
 {"C2H_STAT_S_AXIS_C2H_ACCEPTED", 0xa88,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
 	ARRAY_SIZE(c2h_stat_s_axis_c2h_accepted_field_info),
 	c2h_stat_s_axis_c2h_accepted_field_info
 },
 {"C2H_STAT_S_AXIS_WRB_ACCEPTED", 0xa8c,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
 	ARRAY_SIZE(c2h_stat_s_axis_wrb_accepted_field_info),
 	c2h_stat_s_axis_wrb_accepted_field_info
 },
 {"C2H_STAT_DESC_RSP_PKT_ACCEPTED", 0xa90,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
 	ARRAY_SIZE(c2h_stat_desc_rsp_pkt_accepted_field_info),
 	c2h_stat_desc_rsp_pkt_accepted_field_info
 },
 {"C2H_STAT_AXIS_PKG_CMP", 0xa94,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
 	ARRAY_SIZE(c2h_stat_axis_pkg_cmp_field_info),
 	c2h_stat_axis_pkg_cmp_field_info
 },
 {"C2H_STAT_DESC_RSP_ACCEPTED", 0xa98,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(c2h_stat_desc_rsp_accepted_field_info),
 	c2h_stat_desc_rsp_accepted_field_info
 },
 {"C2H_STAT_DESC_RSP_CMP", 0xa9c,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(c2h_stat_desc_rsp_cmp_field_info),
 	c2h_stat_desc_rsp_cmp_field_info
 },
 {"C2H_STAT_WRQ_OUT", 0xaa0,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(c2h_stat_wrq_out_field_info),
 	c2h_stat_wrq_out_field_info
 },
 {"C2H_STAT_WPL_REN_ACCEPTED", 0xaa4,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(c2h_stat_wpl_ren_accepted_field_info),
 	c2h_stat_wpl_ren_accepted_field_info
 },
 {"C2H_STAT_TOTAL_WRQ_LEN", 0xaa8,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(c2h_stat_total_wrq_len_field_info),
 	c2h_stat_total_wrq_len_field_info
 },
 {"C2H_STAT_TOTAL_WPL_LEN", 0xaac,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(c2h_stat_total_wpl_len_field_info),
 	c2h_stat_total_wpl_len_field_info
 },
@@ -3299,13 +3329,13 @@ static struct xreg_info eqdma_cpm5_config_regs[] = {
 },
 {"C2H_PFCH_CFG_1", 0xa80,
 	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
 	ARRAY_SIZE(c2h_pfch_cfg_1_field_info),
 	c2h_pfch_cfg_1_field_info
 },
 {"C2H_PFCH_CFG_2", 0xa84,
 	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
 	ARRAY_SIZE(c2h_pfch_cfg_2_field_info),
 	c2h_pfch_cfg_2_field_info
 },
@@ -3317,43 +3347,43 @@ static struct xreg_info eqdma_cpm5_config_regs[] = {
 },
 {"C2H_STAT_DESC_RSP_DROP_ACCEPTED", 0xb10,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
 	ARRAY_SIZE(c2h_stat_desc_rsp_drop_accepted_field_info),
 	c2h_stat_desc_rsp_drop_accepted_field_info
 },
 {"C2H_STAT_DESC_RSP_ERR_ACCEPTED", 0xb14,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
 	ARRAY_SIZE(c2h_stat_desc_rsp_err_accepted_field_info),
 	c2h_stat_desc_rsp_err_accepted_field_info
 },
 {"C2H_STAT_DESC_REQ", 0xb18,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(c2h_stat_desc_req_field_info),
 	c2h_stat_desc_req_field_info
 },
 {"C2H_STAT_DBG_DMA_ENG_0", 0xb1c,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(c2h_stat_dbg_dma_eng_0_field_info),
 	c2h_stat_dbg_dma_eng_0_field_info
 },
 {"C2H_STAT_DBG_DMA_ENG_1", 0xb20,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(c2h_stat_dbg_dma_eng_1_field_info),
 	c2h_stat_dbg_dma_eng_1_field_info
 },
 {"C2H_STAT_DBG_DMA_ENG_2", 0xb24,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(c2h_stat_dbg_dma_eng_2_field_info),
 	c2h_stat_dbg_dma_eng_2_field_info
 },
 {"C2H_STAT_DBG_DMA_ENG_3", 0xb28,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(c2h_stat_dbg_dma_eng_3_field_info),
 	c2h_stat_dbg_dma_eng_3_field_info
 },
@@ -3371,25 +3401,25 @@ static struct xreg_info eqdma_cpm5_config_regs[] = {
 },
 {"STAT_NUM_WRB_IN", 0xb34,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(stat_num_wrb_in_field_info),
 	stat_num_wrb_in_field_info
 },
 {"STAT_NUM_WRB_OUT", 0xb38,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(stat_num_wrb_out_field_info),
 	stat_num_wrb_out_field_info
 },
 {"STAT_NUM_WRB_DRP", 0xb3c,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(stat_num_wrb_drp_field_info),
 	stat_num_wrb_drp_field_info
 },
 {"STAT_NUM_STAT_DESC_OUT", 0xb40,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(stat_num_stat_desc_out_field_info),
 	stat_num_stat_desc_out_field_info
 },
@@ -3647,13 +3677,13 @@ static struct xreg_info eqdma_cpm5_config_regs[] = {
 },
 {"C2H_STAT_HAS_CMPT_ACCEPTED", 0xbec,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(c2h_stat_has_cmpt_accepted_field_info),
 	c2h_stat_has_cmpt_accepted_field_info
 },
 {"C2H_STAT_HAS_PLD_ACCEPTED", 0xbf0,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(c2h_stat_has_pld_accepted_field_info),
 	c2h_stat_has_pld_accepted_field_info
 },
@@ -3695,31 +3725,31 @@ static struct xreg_info eqdma_cpm5_config_regs[] = {
 },
 {"H2C_DBG_REG0", 0xe0c,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(h2c_dbg_reg0_field_info),
 	h2c_dbg_reg0_field_info
 },
 {"H2C_DBG_REG1", 0xe10,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(h2c_dbg_reg1_field_info),
 	h2c_dbg_reg1_field_info
 },
 {"H2C_DBG_REG2", 0xe14,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(h2c_dbg_reg2_field_info),
 	h2c_dbg_reg2_field_info
 },
 {"H2C_DBG_REG3", 0xe18,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(h2c_dbg_reg3_field_info),
 	h2c_dbg_reg3_field_info
 },
 {"H2C_DBG_REG4", 0xe1c,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(h2c_dbg_reg4_field_info),
 	h2c_dbg_reg4_field_info
 },
@@ -3737,7 +3767,7 @@ static struct xreg_info eqdma_cpm5_config_regs[] = {
 },
 {"H2C_ALN_DBG_REG0", 0xe28,
 	1, 0, 0, 0,
-	1, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(h2c_aln_dbg_reg0_field_info),
 	h2c_aln_dbg_reg0_field_info
 },
@@ -3921,6 +3951,48 @@ static struct xreg_info eqdma_cpm5_config_regs[] = {
 	ARRAY_SIZE(c2h_water_mark_field_info),
 	c2h_water_mark_field_info
 },
+{"C2H_NOTIFY_EMPTY", 0x1800,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(c2h_notify_empty_field_info),
+	c2h_notify_empty_field_info
+},
+{"C2H_STAT_S_AXIS_C2H_ACCEPTED_1", 0x1804,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(c2h_stat_s_axis_c2h_accepted_1_field_info),
+	c2h_stat_s_axis_c2h_accepted_1_field_info
+},
+{"C2H_STAT_S_AXIS_WRB_ACCEPTED_1", 0x1808,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(c2h_stat_s_axis_wrb_accepted_1_field_info),
+	c2h_stat_s_axis_wrb_accepted_1_field_info
+},
+{"C2H_STAT_DESC_RSP_PKT_ACCEPTED_1", 0x180c,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(c2h_stat_desc_rsp_pkt_accepted_1_field_info),
+	c2h_stat_desc_rsp_pkt_accepted_1_field_info
+},
+{"C2H_STAT_AXIS_PKG_CMP_1", 0x1810,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(c2h_stat_axis_pkg_cmp_1_field_info),
+	c2h_stat_axis_pkg_cmp_1_field_info
+},
+{"C2H_STAT_S_AXIS_WRB_ACCEPTED_2", 0x1814,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(c2h_stat_s_axis_wrb_accepted_2_field_info),
+	c2h_stat_s_axis_wrb_accepted_2_field_info
+},
+{"C2H_ST_PLD_FIFO_DEPTH", 0x1818,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(c2h_st_pld_fifo_depth_field_info),
+	c2h_st_pld_fifo_depth_field_info
+},
 
 };
 
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_soft_access/eqdma_soft_access.c b/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_soft_access/eqdma_soft_access.c
old mode 100644
new mode 100755
index f918f1b..19105c1
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_soft_access/eqdma_soft_access.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_soft_access/eqdma_soft_access.c
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -49,12 +50,23 @@
 #define EQDMA_MM_C2H_ERR_ALL_MASK			0X70000003
 #define EQDMA_MM_H2C0_ERR_ALL_MASK		    0X3041013E
 
-/* H2C Throttle settings */
+/* H2C Throttle settings for QDMA 4.0 */
 #define EQDMA_H2C_THROT_DATA_THRESH       0x5000
 #define EQDMA_THROT_EN_DATA               1
 #define EQDMA_THROT_EN_REQ                0
 #define EQDMA_H2C_THROT_REQ_THRESH        0xC0
 
+/* H2C Throttle settings for QDMA 5.0 */
+#define EQDMA5_H2C_THROT_DATA_THRESH       0x5000
+#define EQDMA5_THROT_EN_DATA               1
+#define EQDMA5_THROT_EN_REQ                1
+#define EQDMA5_H2C_THROT_REQ_THRESH        0xC0
+
+/* CSR Default values for QDMA 5.0 */
+#define EQDMA5_DEFAULT_H2C_UODSC_LIMIT     4
+#define EQDMA5_DEFAULT_MAX_DSC_FETCH       3
+#define EQDMA5_DEFAULT_WRB_INT             QDMA_WRB_INTERVAL_128
+
 /** Auxillary Bitmasks for fields spanning multiple words */
 #define EQDMA_SW_CTXT_PASID_GET_H_MASK              GENMASK(21, 12)
 #define EQDMA_SW_CTXT_PASID_GET_L_MASK              GENMASK(11, 0)
@@ -84,6 +96,9 @@
 #define EQDMA_FMAP_CTXT_W1_QID_MAX_MASK         GENMASK(11, 0)
 #define EQDMA_FMAP_CTXT_W0_QID_MASK             GENMASK(10, 0)
 
+#define EQDMA_GLBL2_IP_VERSION_MASK             GENMASK(23, 20)
+#define EQDMA_GLBL2_VF_IP_VERSION_MASK          GENMASK(7, 4)
+
 static void eqdma_hw_st_h2c_err_process(void *dev_hndl);
 static void eqdma_hw_st_c2h_err_process(void *dev_hndl);
 static void eqdma_hw_desc_err_process(void *dev_hndl);
@@ -1877,6 +1892,34 @@ static int eqdma_indirect_reg_write(void *dev_hndl, enum ind_ctxt_cmd_sel sel,
 	return QDMA_SUCCESS;
 }
 
+int eqdma_get_ip_version(void *dev_hndl, uint8_t is_vf,
+			uint32_t *ip_version)
+{
+	uint32_t ver_reg_val = 0;
+	uint32_t reg_addr = (is_vf) ? EQDMA_OFFSET_VF_VERSION :
+			EQDMA_GLBL2_MISC_CAP_ADDR;
+
+	if (!dev_hndl) {
+		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
+				__func__, -QDMA_ERR_INV_PARAM);
+		return -QDMA_ERR_INV_PARAM;
+	}
+
+	ver_reg_val = qdma_reg_read(dev_hndl, reg_addr);
+
+	if (!is_vf) {
+		*ip_version =
+			FIELD_GET(EQDMA_GLBL2_IP_VERSION_MASK,
+				ver_reg_val);
+	} else {
+		*ip_version =
+			FIELD_GET(EQDMA_GLBL2_VF_IP_VERSION_MASK,
+					ver_reg_val);
+	}
+
+	return QDMA_SUCCESS;
+}
+
 /*
  * eqdma_fill_sw_ctxt() - Helper function to fill sw context into structure
  *
@@ -2056,6 +2099,8 @@ static void eqdma_fill_intr_ctxt(struct qdma_indirect_intr_ctxt *intr_ctxt)
  *****************************************************************************/
 int eqdma_set_default_global_csr(void *dev_hndl)
 {
+	int rv = QDMA_SUCCESS;
+
 	/* Default values */
 	uint32_t cfg_val = 0, reg_val = 0;
 	uint32_t rng_sz[QDMA_NUM_RING_SIZES] = {2049, 65, 129, 193, 257, 385,
@@ -2068,6 +2113,7 @@ int eqdma_set_default_global_csr(void *dev_hndl)
 		2048, 3968, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 8192,
 		9018, 16384};
 	struct qdma_dev_attributes dev_cap;
+	uint32_t eqdma_ip_version;
 
 	if (!dev_hndl) {
 		qdma_log_error("%s: dev_handle is NULL, err:%d\n", __func__,
@@ -2077,6 +2123,10 @@ int eqdma_set_default_global_csr(void *dev_hndl)
 
 	eqdma_get_device_attributes(dev_hndl, &dev_cap);
 
+	rv = eqdma_get_ip_version(dev_hndl, 0, &eqdma_ip_version);
+	if (rv != QDMA_SUCCESS)
+		return rv;
+
 	/* Configuring CSR registers */
 	/* Global ring sizes */
 	qdma_write_csr_values(dev_hndl, EQDMA_GLBL_RNG_SZ_1_ADDR, 0,
@@ -2091,13 +2141,30 @@ int eqdma_set_default_global_csr(void *dev_hndl)
 		qdma_write_csr_values(dev_hndl, EQDMA_C2H_TIMER_CNT_ADDR, 0,
 				QDMA_NUM_C2H_TIMERS, tmr_cnt);
 
-
 		/* Writeback Interval */
-		reg_val =
-			FIELD_SET(GLBL_DSC_CFG_MAXFETCH_MASK,
-					DEFAULT_MAX_DSC_FETCH) |
-			FIELD_SET(GLBL_DSC_CFG_WB_ACC_INT_MASK,
-					DEFAULT_WRB_INT);
+		if (eqdma_ip_version == EQDMA_IP_VERSION_4) {
+			reg_val =
+				FIELD_SET(GLBL_DSC_CFG_MAXFETCH_MASK,
+						DEFAULT_MAX_DSC_FETCH) |
+				FIELD_SET(GLBL_DSC_CFG_WB_ACC_INT_MASK,
+						DEFAULT_WRB_INT);
+		} else if (eqdma_ip_version == EQDMA_IP_VERSION_5) {
+			/* For QDMA4.0 and QDMA5.0, HW design and register map
+			 * is same except some performance optimizations
+			 */
+			reg_val =
+				FIELD_SET(GLBL_DSC_CFG_H2C_UODSC_LIMIT_MASK,
+					EQDMA5_DEFAULT_H2C_UODSC_LIMIT) |
+				FIELD_SET(GLBL_DSC_CFG_MAXFETCH_MASK,
+					EQDMA5_DEFAULT_MAX_DSC_FETCH) |
+				FIELD_SET(GLBL_DSC_CFG_WB_ACC_INT_MASK,
+					EQDMA5_DEFAULT_WRB_INT);
+		} else {
+			qdma_log_error("%s: ip_type = %d is invalid, err:%d\n",
+				__func__, eqdma_ip_version,
+				-QDMA_ERR_INV_PARAM);
+			return -QDMA_ERR_INV_PARAM;
+		}
 		qdma_reg_write(dev_hndl, EQDMA_GLBL_DSC_CFG_ADDR, reg_val);
 	}
 
@@ -2135,16 +2202,35 @@ int eqdma_set_default_global_csr(void *dev_hndl)
 		qdma_reg_write(dev_hndl, EQDMA_C2H_WRB_COAL_CFG_ADDR, reg_val);
 
 		/* H2C throttle Configuration*/
-
-		reg_val =
-			FIELD_SET(H2C_REQ_THROT_PCIE_DATA_THRESH_MASK,
-					EQDMA_H2C_THROT_DATA_THRESH) |
-			FIELD_SET(H2C_REQ_THROT_PCIE_EN_DATA_MASK,
-					EQDMA_THROT_EN_DATA) |
-			FIELD_SET(H2C_REQ_THROT_PCIE_MASK,
-					EQDMA_H2C_THROT_REQ_THRESH) |
-			FIELD_SET(H2C_REQ_THROT_PCIE_EN_REQ_MASK,
-					EQDMA_THROT_EN_REQ);
+		if (eqdma_ip_version == EQDMA_IP_VERSION_4) {
+			reg_val =
+				FIELD_SET(H2C_REQ_THROT_PCIE_DATA_THRESH_MASK,
+						EQDMA_H2C_THROT_DATA_THRESH) |
+				FIELD_SET(H2C_REQ_THROT_PCIE_EN_DATA_MASK,
+						EQDMA_THROT_EN_DATA) |
+				FIELD_SET(H2C_REQ_THROT_PCIE_MASK,
+						EQDMA_H2C_THROT_REQ_THRESH) |
+				FIELD_SET(H2C_REQ_THROT_PCIE_EN_REQ_MASK,
+						EQDMA_THROT_EN_REQ);
+		} else if (eqdma_ip_version == EQDMA_IP_VERSION_5) {
+			/* For QDMA4.0 and QDMA5.0, HW design and register map
+			 * is same except some performance optimizations
+			 */
+			reg_val =
+				FIELD_SET(H2C_REQ_THROT_PCIE_DATA_THRESH_MASK,
+						EQDMA5_H2C_THROT_DATA_THRESH) |
+				FIELD_SET(H2C_REQ_THROT_PCIE_EN_DATA_MASK,
+						EQDMA5_THROT_EN_DATA) |
+				FIELD_SET(H2C_REQ_THROT_PCIE_MASK,
+						EQDMA5_H2C_THROT_REQ_THRESH) |
+				FIELD_SET(H2C_REQ_THROT_PCIE_EN_REQ_MASK,
+						EQDMA5_THROT_EN_REQ);
+		} else {
+			qdma_log_error("%s: ip_type = %d is invalid, err:%d\n",
+						__func__, eqdma_ip_version,
+					   -QDMA_ERR_INV_PARAM);
+			return -QDMA_ERR_INV_PARAM;
+		}
 		qdma_reg_write(dev_hndl, EQDMA_H2C_REQ_THROT_PCIE_ADDR,
 			reg_val);
 	}
@@ -2746,7 +2832,7 @@ int eqdma_get_version(void *dev_hndl, uint8_t is_vf,
 
 	reg_val = qdma_reg_read(dev_hndl, reg_addr);
 
-	qdma_fetch_version_details(is_vf, reg_val, version_info);
+	qdma_fetch_version_details(dev_hndl, is_vf, reg_val, version_info);
 
 	return QDMA_SUCCESS;
 }
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_soft_access/eqdma_soft_access.h b/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_soft_access/eqdma_soft_access.h
old mode 100644
new mode 100755
index 1574b44..4cc8ca9
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_soft_access/eqdma_soft_access.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_soft_access/eqdma_soft_access.h
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -217,6 +218,13 @@ struct eqdma_hw_err_info {
 	void (*eqdma_hw_err_process)(void *dev_hndl);
 };
 
+/* In QDMA_GLBL2_MISC_CAP(0x134) register,
+ * Bits [23:20] gives QDMA IP version.
+ * 0: QDMA3.1, 1: QDMA4.0, 2: QDMA5.0
+ */
+#define EQDMA_IP_VERSION_4                1
+#define EQDMA_IP_VERSION_5                2
+
 #define EQDMA_OFFSET_VF_VERSION           0x5014
 #define EQDMA_OFFSET_VF_USER_BAR		  0x5018
 
@@ -232,6 +240,9 @@ int eqdma_init_ctxt_memory(void *dev_hndl);
 int eqdma_get_version(void *dev_hndl, uint8_t is_vf,
 		struct qdma_hw_version_info *version_info);
 
+int eqdma_get_ip_version(void *dev_hndl, uint8_t is_vf,
+			uint32_t *ip_version);
+
 int eqdma_sw_ctx_conf(void *dev_hndl, uint8_t c2h, uint16_t hw_qid,
 			struct qdma_descq_sw_ctxt *ctxt,
 			enum qdma_hw_access_type access_type);
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_soft_access/eqdma_soft_reg.h b/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_soft_access/eqdma_soft_reg.h
old mode 100644
new mode 100755
index 6589573..0905d50
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_soft_access/eqdma_soft_reg.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_soft_access/eqdma_soft_reg.h
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -255,6 +256,35 @@ struct xreg_info *eqdma_config_regs_get(void);
 #define GLBL2_SYSTEM_ID_MASK                              GENMASK(15, 0)
 #define EQDMA_GLBL2_MISC_CAP_ADDR                          0x134
 #define GLBL2_MISC_CAP_MASK                               GENMASK(31, 0)
+#define EQDMA_GLBL2_RRQ_BRG_THROT_ADDR                     0x158
+#define GLBL2_RRQ_BRG_THROT_REQ_EN_MASK                    BIT(31)
+#define GLBL2_RRQ_BRG_THROT_REQ_MASK                       GENMASK(30, 19)
+#define GLBL2_RRQ_BRG_THROT_DAT_EN_MASK                    BIT(18)
+#define GLBL2_RRQ_BRG_THROT_DAT_MASK                       GENMASK(17, 0)
+#define EQDMA_GLBL2_RRQ_PCIE_THROT_ADDR                    0x15C
+#define GLBL2_RRQ_PCIE_THROT_REQ_EN_MASK                   BIT(31)
+#define GLBL2_RRQ_PCIE_THROT_REQ_MASK                      GENMASK(30, 19)
+#define GLBL2_RRQ_PCIE_THROT_DAT_EN_MASK                   BIT(18)
+#define GLBL2_RRQ_PCIE_THROT_DAT_MASK                      GENMASK(17, 0)
+#define EQDMA_GLBL2_RRQ_AXIMM_THROT_ADDR                   0x160
+#define GLBL2_RRQ_AXIMM_THROT_REQ_EN_MASK                  BIT(31)
+#define GLBL2_RRQ_AXIMM_THROT_REQ_MASK                     GENMASK(30, 19)
+#define GLBL2_RRQ_AXIMM_THROT_DAT_EN_MASK                  BIT(18)
+#define GLBL2_RRQ_AXIMM_THROT_DAT_MASK                     GENMASK(17, 0)
+#define EQDMA_GLBL2_RRQ_PCIE_LAT0_ADDR                     0x164
+#define GLBL2_RRQ_PCIE_LAT0_MAX_MASK                      GENMASK(31, 16)
+#define GLBL2_RRQ_PCIE_LAT0_MIN_MASK                      GENMASK(15, 0)
+#define EQDMA_GLBL2_RRQ_PCIE_LAT1_ADDR                     0x168
+#define GLBL2_RRQ_PCIE_LAT1_RSVD_MASK                      GENMASK(31, 17)
+#define GLBL2_RRQ_PCIE_LAT1_OVFL_MASK                     BIT(16)
+#define GLBL2_RRQ_PCIE_LAT1_AVG_MASK                      GENMASK(15, 0)
+#define EQDMA_GLBL2_RRQ_AXIMM_LAT0_ADDR                    0x16C
+#define GLBL2_RRQ_AXIMM_LAT0_MAX_MASK                     GENMASK(31, 16)
+#define GLBL2_RRQ_AXIMM_LAT0_MIN_MASK                     GENMASK(15, 0)
+#define EQDMA_GLBL2_RRQ_AXIMM_LAT1_ADDR                    0x170
+#define GLBL2_RRQ_AXIMM_LAT1_RSVD_MASK                     GENMASK(31, 17)
+#define GLBL2_RRQ_AXIMM_LAT1_OVFL_MASK                    BIT(16)
+#define GLBL2_RRQ_AXIMM_LAT1_AVG_MASK                     GENMASK(15, 0)
 #define EQDMA_GLBL2_DBG_PCIE_RQ0_ADDR                      0x1B8
 #define GLBL2_PCIE_RQ0_NPH_AVL_MASK                    GENMASK(31, 20)
 #define GLBL2_PCIE_RQ0_RCB_AVL_MASK                    GENMASK(19, 9)
@@ -431,7 +461,9 @@ struct xreg_info *eqdma_config_regs_get(void);
 #define EQDMA_GLBL_ERR_MASK_ADDR                           0x24C
 #define GLBL_ERR_MASK                            GENMASK(31, 0)
 #define EQDMA_GLBL_DSC_CFG_ADDR                            0x250
-#define GLBL_DSC_CFG_RSVD_1_MASK                           GENMASK(31, 10)
+#define GLBL_DSC_CFG_RSVD_1_MASK                           GENMASK(31, 30)
+#define GLBL_DSC_CFG_C2H_UODSC_LIMIT_MASK                  GENMASK(29, 20)
+#define GLBL_DSC_CFG_H2C_UODSC_LIMIT_MASK                  GENMASK(19, 10)
 #define GLBL_DSC_CFG_UNC_OVR_COR_MASK                      BIT(9)
 #define GLBL_DSC_CFG_CTXT_FER_DIS_MASK                     BIT(8)
 #define GLBL_DSC_CFG_RSVD_2_MASK                           GENMASK(7, 6)
@@ -505,7 +537,9 @@ struct xreg_info *eqdma_config_regs_get(void);
 #define GLBL_DSC_DAT1_DSC_SPC_C2H_MASK                 GENMASK(15, 8)
 #define GLBL_DSC_DAT1_DSC_SPC_H2C_MASK                 GENMASK(7, 0)
 #define EQDMA_GLBL_DSC_DBG_CTL_ADDR                        0x278
-#define GLBL_DSC_CTL_RSVD_1_MASK                       GENMASK(31, 3)
+#define GLBL_DSC_CTL_RSVD_1_MASK                       GENMASK(31, 16)
+#define GLBL_DSC_CTL_LAT_QID_MASK                  GENMASK(15, 4)
+#define GLBL_DSC_CTL_DSC_ENG_LAT_CLR_MASK              BIT(3)
 #define GLBL_DSC_CTL_SELECT_MASK                       GENMASK(2, 0)
 #define EQDMA_GLBL_DSC_ERR_LOG2_ADDR                       0x27c
 #define GLBL_DSC_ERR_LOG2_OLD_PIDX_MASK                    GENMASK(31, 16)
@@ -546,6 +580,183 @@ struct xreg_info *eqdma_config_regs_get(void);
 #define GLBL_REQ_ERR_STS_RC_POISONED_MASK                  BIT(0)
 #define EQDMA_GLBL_REQ_ERR_MSK_ADDR                        0x31C
 #define GLBL_REQ_ERR_MSK_MASK                         GENMASK(31, 0)
+#define EQDMA_GLBL_DSC_DBG_LAT0_A_ADDR                     0x320
+#define GLBL_DSC_LAT0_A_LAT_MAX_MASK                   GENMASK(31, 16)
+#define GLBL_DSC_LAT0_A_LAT_MIN_MASK                   GENMASK(15, 0)
+#define EQDMA_GLBL_DSC_DBG_LAT1_A_ADDR                     0x324
+#define GLBL_DSC_LAT1_A_RSVD_MASK                      GENMASK(31, 17)
+#define GLBL_DSC_LAT1_A_LAT_OVF_MASK                   BIT(16)
+#define GLBL_DSC_LAT1_A_LAT_AVG_MASK                   GENMASK(15, 0)
+#define EQDMA_GLBL_DSC_CRD_CTR0_A_ADDR                     0x328
+#define GLBL_DSC_CRD_CTR0_A_CRD_RCV_CNT_MASK               GENMASK(31, 0)
+#define EQDMA_GLBL_DSC_CRD_CTR1_A_ADDR                     0x32C
+#define GLBL_DSC_CRD_CTR1_A_CRD_RCV_CNT_MASK               GENMASK(31, 0)
+#define EQDMA_GLBL_DSC_CRD_CTR2_A_ADDR                     0x330
+#define GLBL_DSC_CRD_CTR2_A_CRD_RCV_NRDY_CNT_MASK          GENMASK(31, 0)
+#define EQDMA_GLBL_DSC_CRD_CTR3_A_ADDR                     0x334
+#define GLBL_DSC_CRD_CTR3_A_CRD_RCV_NRDY_CNT_MASK          GENMASK(31, 0)
+#define EQDMA_GLBL_DSC_IMM_CRD_CTR0_A_ADDR                 0x338
+#define GLBL_DSC_IMM_CRD_CTR0_A_RCV_CNT_MASK               GENMASK(31, 0)
+#define EQDMA_GLBL_DSC_IMM_CRD_CTR1_A_ADDR                 0x33C
+#define GLBL_DSC_IMM_CRD_CTR1_A_RCV_CNT_MASK               GENMASK(31, 0)
+#define EQDMA_GLBL_DSC_IMM_CRD_CTR2_A_ADDR                 0x340
+#define GLBL_DSC_IMM_CRD_CTR2_A_RCV_NRDY_CNT_MASK          GENMASK(31, 0)
+#define EQDMA_GLBL_DSC_IMM_CRD_CTR3_A_ADDR                 0x344
+#define GLBL_DSC_IMM_CRD_CTR3_A_RCV_NRDY_CNT_MASK          GENMASK(31, 0)
+#define EQDMA_GLBL_DSC_H2C_OUT_CTR0_A_ADDR                 0x348
+#define GLBL_DSC_H2C_OUT_CTR0_A_H2CVLD_CNT_MASK            GENMASK(31, 0)
+#define EQDMA_GLBL_DSC_H2C_OUT_CTR1_A_ADDR                 0x34C
+#define GLBL_DSC_H2C_OUT_CTR1_A_H2CVLD_CNT_MASK            GENMASK(31, 0)
+#define EQDMA_GLBL_DSC_H2C_OUT_CTR2_A_ADDR                 0x350
+#define GLBL_DSC_H2C_OUT_CTR2_A_H2CVLD_NRDY_CNT_MASK       GENMASK(31, 0)
+#define EQDMA_GLBL_DSC_H2C_OUT_CTR3_A_ADDR                 0x354
+#define GLBL_DSC_H2C_OUT_CTR3_A_H2CVLD_NRDY_CNT_MASK       GENMASK(31, 0)
+#define EQDMA_GLBL_DSC_C2H_OUT_CTR0_A_ADDR                 0x358
+#define GLBL_DSC_C2H_OUT_CTR0_A_C2HVLD_CNT_MASK            GENMASK(31, 0)
+#define EQDMA_GLBL_DSC_C2H_OUT_CTR1_A_ADDR                 0x35C
+#define GLBL_DSC_C2H_OUT_CTR1_A_C2HVLD_CNT_MASK            GENMASK(31, 0)
+#define EQDMA_GLBL_DSC_C2H_OUT_CTR2_A_ADDR                 0x360
+#define GLBL_DSC_C2H_OUT_CTR2_A_C2HVLD_NRDY_CNT_MASK       GENMASK(31, 0)
+#define EQDMA_GLBL_DSC_C2H_OUT_CTR3_A_ADDR                 0x364
+#define GLBL_DSC_C2H_OUT_CTR3_A_C2HVLD_NRDY_CNT_MASK       GENMASK(31, 0)
+#define EQDMA_T_ADDR                                       0x368
+#define T_USER_CTR_MAX_MASK                                GENMASK(31, 0)
+#define EQDMA_GLBL_PERF_CNTR_CTL_A1_ADDR                   0x36C
+#define GLBL_PERF_CNTR_CTL_A1_RSVD_MASK                    GENMASK(31, 18)
+#define GLBL_PERF_CNTR_CTL_A1_USER_CTR_CLEAR_MASK          BIT(17)
+#define GLBL_PERF_CNTR_CTL_A1_USER_CTR_READ_MASK           BIT(16)
+#define GLBL_PERF_CNTR_CTL_A1_USER_CTR_MAX_MASK            GENMASK(15, 0)
+#define EQDMA_GLBL_FREE_CNT_A0_ADDR                        0x370
+#define GLBL_FREE_CNT_A0_S_MASK                            GENMASK(31, 0)
+#define EQDMA_GLBL_FREE_CNT_A1_ADDR                        0x374
+#define GLBL_FREE_CNT_A1_RSVD_MASK                         GENMASK(31, 16)
+#define GLBL_FREE_CNT_A1_S_MASK                            GENMASK(15, 0)
+#define EQDMA_GLBL_AXIS_H2C_CNT_A0_ADDR                    0x378
+#define GLBL_AXIS_H2C_CNT_A0_MPKT_CNTS_MASK                GENMASK(31, 0)
+#define EQDMA_GLBL_AXIS_H2C_CNT_A1_ADDR                    0x37C
+#define GLBL_AXIS_H2C_CNT_A1_MIDLE_CNTS_MASK               GENMASK(15, 0)
+#define GLBL_AXIS_H2C_CNT_A1_MPKT_CNTS_MASK                GENMASK(15, 0)
+#define EQDMA_GLBL_AXIS_H2C_CNT_A2_ADDR                    0x380
+#define GLBL_AXIS_H2C_CNT_A2_MIDLE_CNTS_MASK               GENMASK(31, 0)
+#define EQDMA_GLBL_AXIS_H2C_CNT_A3_ADDR                    0x384
+#define GLBL_AXIS_H2C_CNT_A3_MACTV_CNTS_MASK               GENMASK(31, 0)
+#define EQDMA_GLBL_AXIS_H2C_CNT_A4_ADDR                    0x388
+#define GLBL_AXIS_H2C_CNT_A4_MBUSY_CNTS_MASK               GENMASK(15, 0)
+#define GLBL_AXIS_H2C_CNT_A4_MACTV_CNTS_MASK               GENMASK(15, 0)
+#define EQDMA_GLBL_AXIS_H2C_CNT_A5_ADDR                    0x38C
+#define GLBL_AXIS_H2C_CNT_A5_MBUSY_CNTS_MASK               GENMASK(31, 0)
+#define EQDMA_GLBL_AXIS_C2H_CNT_A0_ADDR                    0x390
+#define GLBL_AXIS_C2H_CNT_A0_SPKT_CNTS_MASK                GENMASK(31, 0)
+#define EQDMA_GLBL_AXIS_C2H_CNT_A1_ADDR                    0x394
+#define GLBL_AXIS_C2H_CNT_A1_SIDLE_CNTS_MASK               GENMASK(15, 0)
+#define GLBL_AXIS_C2H_CNT_A1_SPKT_CNTS_MASK                GENMASK(15, 0)
+#define EQDMA_GLBL_AXIS_C2H_CNT_A2_ADDR                    0x398
+#define GLBL_AXIS_C2H_CNT_A2_SIDLE_CNTS_MASK               GENMASK(31, 0)
+#define EQDMA_GLBL_AXIS_C2H_CNT_A3_ADDR                    0x39C
+#define GLBL_AXIS_C2H_CNT_A3_SACTV_CNTS_MASK               GENMASK(31, 0)
+#define EQDMA_GLBL_AXIS_C2H_CNT_A4_ADDR                    0x3A0
+#define GLBL_AXIS_C2H_CNT_A4_SBUSY_CNTS_MASK               GENMASK(15, 0)
+#define GLBL_AXIS_C2H_CNT_A4_SACTV_CNTS_MASK               GENMASK(15, 0)
+#define EQDMA_GLBL_AXIS_C2H_CNT_A5_ADDR                    0x3A4
+#define GLBL_AXIS_C2H_CNT_A5_SBUSY_CNTS_MASK               GENMASK(31, 0)
+#define EQDMA_GLBL_M_AXI_WR_CNT_A0_ADDR                    0x3A8
+#define GLBL_M_AXI_WR_CNT_A0_PKT_CNTS_MASK                 GENMASK(31, 0)
+#define EQDMA_GLBL_M_AXI_WR_CNT_A1_ADDR                    0x3AC
+#define GLBL_M_AXI_WR_CNT_A1_IDLE_CNTS_MASK                GENMASK(15, 0)
+#define GLBL_M_AXI_WR_CNT_A1_PKT_CNTS_MASK                 GENMASK(15, 0)
+#define EQDMA_GLBL_M_AXI_WR_CNT_A2_ADDR                    0x3B0
+#define GLBL_M_AXI_WR_CNT_A2_IDLE_CNTS_MASK                GENMASK(31, 0)
+#define EQDMA_GLBL_M_AXI_WR_CNT_A3_ADDR                    0x3B4
+#define GLBL_M_AXI_WR_CNT_A3_ACTV_CNTS_MASK                GENMASK(31, 0)
+#define EQDMA_GLBL_M_AXI_WR_CNT_A4_ADDR                    0x3B8
+#define GLBL_M_AXI_WR_CNT_A4_BUSY_CNTS_MASK                GENMASK(15, 0)
+#define GLBL_M_AXI_WR_CNT_A4_ACTV_CNTS_MASK                GENMASK(15, 0)
+#define EQDMA_GLBL_M_AXI_WR_CNT_A5_ADDR                    0x3BC
+#define GLBL_M_AXI_WR_CNT_A5_BUSY_CNTS_MASK                GENMASK(31, 0)
+#define EQDMA_GLBL_M_AXI_RD_CNT_A0_ADDR                    0x3C0
+#define GLBL_M_AXI_RD_CNT_A0_PKT_CNTS_MASK                 GENMASK(31, 0)
+#define EQDMA_GLBL_M_AXI_RD_CNT_A1_ADDR                    0x3C4
+#define GLBL_M_AXI_RD_CNT_A1_IDLE_CNTS_MASK                GENMASK(15, 0)
+#define GLBL_M_AXI_RD_CNT_A1_PKT_CNTS_MASK                 GENMASK(15, 0)
+#define EQDMA_GLBL_M_AXI_RD_CNT_A2_ADDR                    0x3C8
+#define GLBL_M_AXI_RD_CNT_A2_IDLE_CNTS_MASK                GENMASK(31, 0)
+#define EQDMA_GLBL_M_AXI_RD_CNT_A3_ADDR                    0x3CC
+#define GLBL_M_AXI_RD_CNT_A3_ACTV_CNTS_MASK                GENMASK(31, 0)
+#define EQDMA_GLBL_M_AXI_RD_CNT_A4_ADDR                    0x3D0
+#define GLBL_M_AXI_RD_CNT_A4_BUSY_CNTS_MASK                GENMASK(15, 0)
+#define GLBL_M_AXI_RD_CNT_A4_ACTV_CNTS_MASK                GENMASK(15, 0)
+#define EQDMA_GLBL_M_AXI_RD_CNT_A5_ADDR                    0x3D4
+#define GLBL_M_AXI_RD_CNT_A5_BUSY_CNTS_MASK                GENMASK(31, 0)
+#define EQDMA_GLBL_M_AXIB_WR_CNT_A0_ADDR                   0x3D8
+#define GLBL_M_AXIB_WR_CNT_A0_PKT_CNTS_MASK                GENMASK(31, 0)
+#define EQDMA_GLBL_M_AXIB_WR_CNT_A1_ADDR                   0x3DC
+#define GLBL_M_AXIB_WR_CNT_A1_IDLE_CNTS_MASK               GENMASK(15, 0)
+#define GLBL_M_AXIB_WR_CNT_A1_PKT_CNTS_MASK                GENMASK(15, 0)
+#define EQDMA_GLBL_M_AXIB_WR_CNT_A2_ADDR                   0x3E0
+#define GLBL_M_AXIB_WR_CNT_A2_IDLE_CNTS_MASK               GENMASK(31, 0)
+#define EQDMA_GLBL_M_AXIB_WR_CNT_A3_ADDR                   0x3E4
+#define GLBL_M_AXIB_WR_CNT_A3_ACTV_CNTS_MASK               GENMASK(31, 0)
+#define EQDMA_GLBL_M_AXIB_WR_CNT_A4_ADDR                   0x3E8
+#define GLBL_M_AXIB_WR_CNT_A4_BUSY_CNTS_MASK               GENMASK(15, 0)
+#define GLBL_M_AXIB_WR_CNT_A4_ACTV_CNTS_MASK               GENMASK(15, 0)
+#define EQDMA_GLBL_M_AXIB_WR_CNT_A5_ADDR                   0x3EC
+#define GLBL_M_AXIB_WR_CNT_A5_BUSY_CNTS_MASK               GENMASK(31, 0)
+#define EQDMA_GLBL_M_AXIB_RD_CNT_A0_ADDR                   0x3F0
+#define GLBL_M_AXIB_RD_CNT_A0_PKT_CNTS_MASK                GENMASK(31, 0)
+#define EQDMA_GLBL_M_AXIB_RD_CNT_A1_ADDR                   0x3F4
+#define GLBL_M_AXIB_RD_CNT_A1_IDLE_CNTS_MASK               GENMASK(15, 0)
+#define GLBL_M_AXIB_RD_CNT_A1_PKT_CNTS_MASK                GENMASK(15, 0)
+#define EQDMA_GLBL_M_AXIB_RD_CNT_A2_ADDR                   0x3F8
+#define GLBL_M_AXIB_RD_CNT_A2_IDLE_CNTS_MASK               GENMASK(31, 0)
+#define EQDMA_GLBL_M_AXIB_RD_CNT_A3_ADDR                   0x3FC
+#define GLBL_M_AXIB_RD_CNT_A3_ACTV_CNTS_MASK               GENMASK(31, 0)
+#define EQDMA_GLBL_M_AXIB_RD_CNT_A4_ADDR                   0x400
+#define GLBL_M_AXIB_RD_CNT_A4_BUSY_CNTS_MASK               GENMASK(15, 0)
+#define GLBL_M_AXIB_RD_CNT_A4_ACTV_CNTS_MASK               GENMASK(15, 0)
+#define EQDMA_GLBL_M_AXIB_RD_CNT_A5_ADDR                   0x404
+#define GLBL_M_AXIB_RD_CNT_A5_BUSY_CNTS_MASK               GENMASK(31, 0)
+#define EQDMA_GLBL_S_AXI_WR_CNT_A0_ADDR                    0x408
+#define GLBL_S_AXI_WR_CNT_A0_PKT_CNTS_MASK                 GENMASK(31, 0)
+#define EQDMA_GLBL_S_AXI_WR_CNT_A1_ADDR                    0x40C
+#define GLBL_S_AXI_WR_CNT_A1_IDLE_CNTS_MASK                GENMASK(15, 0)
+#define GLBL_S_AXI_WR_CNT_A1_PKT_CNTS_MASK                 GENMASK(15, 0)
+#define EQDMA_GLBL_S_AXI_WR_CNT_A2_ADDR                    0x410
+#define GLBL_S_AXI_WR_CNT_A2_IDLE_CNTS_MASK                GENMASK(31, 0)
+#define EQDMA_GLBL_S_AXI_WR_CNT_A3_ADDR                    0x414
+#define GLBL_S_AXI_WR_CNT_A3_ACTV_CNTS_MASK                GENMASK(31, 0)
+#define EQDMA_GLBL_S_AXI_WR_CNT_A4_ADDR                    0x418
+#define GLBL_S_AXI_WR_CNT_A4_BUSY_CNTS_MASK                GENMASK(15, 0)
+#define GLBL_S_AXI_WR_CNT_A4_ACTV_CNTS_MASK                GENMASK(15, 0)
+#define EQDMA_GLBL_S_AXI_WR_CNT_A5_ADDR                    0x41C
+#define GLBL_S_AXI_WR_CNT_A5_BUSY_CNTS_MASK                GENMASK(31, 0)
+#define EQDMA_GLBL_S_AXI_RD_CNT_A0_ADDR                    0x420
+#define GLBL_S_AXI_RD_CNT_A0_PKT_CNTS_MASK                 GENMASK(31, 0)
+#define EQDMA_GLBL_S_AXI_RD_CNT_A1_ADDR                    0x424
+#define GLBL_S_AXI_RD_CNT_A1_IDLE_CNTS_MASK                GENMASK(15, 0)
+#define GLBL_S_AXI_RD_CNT_A1_PKT_CNTS_MASK                 GENMASK(15, 0)
+#define EQDMA_GLBL_S_AXI_RD_CNT_A2_ADDR                    0x428
+#define GLBL_S_AXI_RD_CNT_A2_IDLE_CNTS_MASK                GENMASK(31, 0)
+#define EQDMA_GLBL_S_AXI_RD_CNT_A3_ADDR                    0x42C
+#define GLBL_S_AXI_RD_CNT_A3_ACTV_CNTS_MASK                GENMASK(31, 0)
+#define EQDMA_GLBL_S_AXI_RD_CNT_A4_ADDR                    0x430
+#define GLBL_S_AXI_RD_CNT_A4_BUSY_CNTS_MASK                GENMASK(15, 0)
+#define GLBL_S_AXI_RD_CNT_A4_ACTV_CNTS_MASK                GENMASK(15, 0)
+#define EQDMA_GLBL_S_AXI_RD_CNT_A5_ADDR                    0x434
+#define GLBL_S_AXI_RD_CNT_A5_BUSY_CNTS_MASK                GENMASK(31, 0)
+#define EQDMA_GLBL_S_AXIS_CMP_CNT_A0_ADDR                  0x438
+#define GLBL_S_AXIS_CMP_CNT_A0_PKT_CNTS_MASK               GENMASK(31, 0)
+#define EQDMA_GLBL_S_AXIS_CMP_CNT_A1_ADDR                  0x43C
+#define GLBL_S_AXIS_CMP_CNT_A1_IDLE_CNTS_MASK              GENMASK(15, 0)
+#define GLBL_S_AXIS_CMP_CNT_A1_PKT_CNTS_MASK               GENMASK(15, 0)
+#define EQDMA_GLBL_S_AXIS_CMP_CNT_A2_ADDR                  0x440
+#define GLBL_S_AXIS_CMP_CNT_A2_IDLE_CNTS_MASK              GENMASK(31, 0)
+#define EQDMA_GLBL_S_AXIS_CMP_CNT_A3_ADDR                  0x444
+#define GLBL_S_AXIS_CMP_CNT_A3_ACTV_CNTS_MASK              GENMASK(31, 0)
+#define EQDMA_GLBL_S_AXIS_CMP_CNT_A4_ADDR                  0x448
+#define GLBL_S_AXIS_CMP_CNT_A4_BUSY_CNTS_MASK              GENMASK(15, 0)
+#define GLBL_S_AXIS_CMP_CNT_A4_ACTV_CNTS_MASK              GENMASK(15, 0)
+#define EQDMA_GLBL_S_AXIS_CMP_CNT_A5_ADDR                  0x44C
+#define GLBL_S_AXIS_CMP_CNT_A5_BUSY_CNTS_MASK              GENMASK(31, 0)
 #define EQDMA_IND_CTXT_DATA_ADDR                           0x804
 #define IND_CTXT_DATA_DATA_MASK                            GENMASK(31, 0)
 #define EQDMA_IND_CTXT_MASK_ADDR                           0x824
@@ -562,6 +773,16 @@ struct xreg_info *eqdma_config_regs_get(void);
 #define EQDMA_C2H_CNT_TH_ADDR                              0xA40
 #define C2H_CNT_TH_RSVD_1_MASK                             GENMASK(31, 16)
 #define C2H_CNT_TH_THESHOLD_CNT_MASK                       GENMASK(15, 0)
+#define EQDMA_C2H_PFCH_CFG_1_ADDR                          0xA80
+#define C2H_PFCH_CFG_1_EVT_QCNT_TH_MASK                    GENMASK(31, 16)
+#define C2H_PFCH_CFG_1_QCNT_MASK                           GENMASK(15, 0)
+#define EQDMA_C2H_PFCH_CFG_2_ADDR                          0xA84
+#define C2H_PFCH_CFG_2_FENCE_MASK                          BIT(31)
+#define C2H_PFCH_CFG_2_RSVD_MASK                           GENMASK(30, 29)
+#define C2H_PFCH_CFG_2_VAR_DESC_NO_DROP_MASK               BIT(28)
+#define C2H_PFCH_CFG_2_LL_SZ_TH_MASK                       GENMASK(27, 12)
+#define C2H_PFCH_CFG_2_VAR_DESC_NUM_MASK                   GENMASK(11, 6)
+#define C2H_PFCH_CFG_2_NUM_MASK                            GENMASK(5, 0)
 #define EQDMA_C2H_STAT_S_AXIS_C2H_ACCEPTED_ADDR            0xA88
 #define C2H_STAT_S_AXIS_C2H_ACCEPTED_MASK                 GENMASK(31, 0)
 #define EQDMA_C2H_STAT_S_AXIS_WRB_ACCEPTED_ADDR            0xA8C
@@ -646,16 +867,6 @@ struct xreg_info *eqdma_config_regs_get(void);
 #define EQDMA_C2H_PFCH_CFG_ADDR                            0xB08
 #define C2H_PFCH_CFG_EVTFL_TH_MASK                         GENMASK(31, 16)
 #define C2H_PFCH_CFG_FL_TH_MASK                            GENMASK(15, 0)
-#define EQDMA_C2H_PFCH_CFG_1_ADDR                          0xA80
-#define C2H_PFCH_CFG_1_EVT_QCNT_TH_MASK                    GENMASK(31, 16)
-#define C2H_PFCH_CFG_1_QCNT_MASK                           GENMASK(15, 0)
-#define EQDMA_C2H_PFCH_CFG_2_ADDR                          0xA84
-#define C2H_PFCH_CFG_2_FENCE_MASK                          BIT(31)
-#define C2H_PFCH_CFG_2_RSVD_MASK                           GENMASK(30, 29)
-#define C2H_PFCH_CFG_2_VAR_DESC_NO_DROP_MASK               BIT(28)
-#define C2H_PFCH_CFG_2_LL_SZ_TH_MASK                       GENMASK(27, 12)
-#define C2H_PFCH_CFG_2_VAR_DESC_NUM_MASK                   GENMASK(11, 6)
-#define C2H_PFCH_CFG_2_NUM_MASK                            GENMASK(5, 0)
 #define EQDMA_C2H_INT_TIMER_TICK_ADDR                      0xB0C
 #define C2H_INT_TIMER_TICK_MASK                           GENMASK(31, 0)
 #define EQDMA_C2H_STAT_DESC_RSP_DROP_ACCEPTED_ADDR         0xB10
@@ -678,35 +889,33 @@ struct xreg_info *eqdma_config_regs_get(void);
 #define C2H_STAT_DMA_ENG_0_WRB_SM_CS_MASK              BIT(4)
 #define C2H_STAT_DMA_ENG_0_MAIN_SM_CS_MASK             GENMASK(3, 0)
 #define EQDMA_C2H_STAT_DBG_DMA_ENG_1_ADDR                  0xB20
-#define C2H_STAT_DMA_ENG_1_RSVD_1_MASK                 GENMASK(31, 29)
+#define C2H_STAT_DMA_ENG_1_WRB_USER_0_CMPT_TYPE_MASK   GENMASK(31, 30)
+#define C2H_STAT_DMA_ENG_1_DESC_RSP_FIFO_OUT_VLD_MASK  GENMASK(29, 29)
 #define C2H_STAT_DMA_ENG_1_QID_FIFO_OUT_CNT_MASK       GENMASK(28, 18)
 #define C2H_STAT_DMA_ENG_1_PLD_FIFO_OUT_CNT_MASK       GENMASK(17, 7)
 #define C2H_STAT_DMA_ENG_1_PLD_ST_FIFO_CNT_MASK        GENMASK(6, 0)
 #define EQDMA_C2H_STAT_DBG_DMA_ENG_2_ADDR                  0xB24
-#define C2H_STAT_DMA_ENG_2_RSVD_1_MASK                 GENMASK(31, 29)
-#define C2H_STAT_DMA_ENG_2_QID_FIFO_OUT_CNT_MASK       GENMASK(28, 18)
-#define C2H_STAT_DMA_ENG_2_PLD_FIFO_OUT_CNT_MASK       GENMASK(17, 7)
-#define C2H_STAT_DMA_ENG_2_PLD_ST_FIFO_CNT_MASK        GENMASK(6, 0)
+#define C2H_STAT_DMA_ENG_2_WRB_USER_1_CMPT_TYPE_MASK   GENMASK(31, 30)
+#define C2H_STAT_DMA_ENG_2_DESC_RSP_FIFO_OUT_VLD_1_MASK GENMASK(29, 29)
+#define C2H_STAT_DMA_ENG_2_QID_FIFO_OUT_CNT_1_MASK     GENMASK(28, 18)
+#define C2H_STAT_DMA_ENG_2_PLD_FIFO_OUT_CNT_1_MASK     GENMASK(17, 7)
+#define C2H_STAT_DMA_ENG_2_PLD_ST_FIFO_CNT_1_MASK      GENMASK(6, 0)
 #define EQDMA_C2H_STAT_DBG_DMA_ENG_3_ADDR                  0xB28
-#define C2H_STAT_DMA_ENG_3_RSVD_1_MASK                 GENMASK(31, 24)
-#define C2H_STAT_DMA_ENG_3_WRQ_FIFO_OUT_CNT_MASK       GENMASK(23, 19)
-#define C2H_STAT_DMA_ENG_3_QID_FIFO_OUT_VLD_MASK       BIT(18)
-#define C2H_STAT_DMA_ENG_3_PLD_FIFO_OUT_VLD_MASK       BIT(17)
-#define C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_VLD_MASK    BIT(16)
-#define C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_EOP_MASK BIT(15)
-#define C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_AVL_IDX_ENABLE_MASK BIT(14)
-#define C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_DROP_MASK BIT(13)
-#define C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_ERR_MASK BIT(12)
-#define C2H_STAT_DMA_ENG_3_DESC_CNT_FIFO_IN_RDY_MASK   BIT(11)
-#define C2H_STAT_DMA_ENG_3_DESC_RSP_FIFO_IN_RDY_MASK   BIT(10)
-#define C2H_STAT_DMA_ENG_3_PLD_PKT_ID_LARGER_0_MASK    BIT(9)
-#define C2H_STAT_DMA_ENG_3_WRQ_VLD_MASK                BIT(8)
-#define C2H_STAT_DMA_ENG_3_WRQ_RDY_MASK                BIT(7)
-#define C2H_STAT_DMA_ENG_3_WRQ_FIFO_OUT_RDY_MASK       BIT(6)
-#define C2H_STAT_DMA_ENG_3_WRQ_PACKET_OUT_DATA_DROP_MASK BIT(5)
-#define C2H_STAT_DMA_ENG_3_WRQ_PACKET_OUT_DATA_ERR_MASK BIT(4)
-#define C2H_STAT_DMA_ENG_3_WRQ_PACKET_OUT_DATA_MARKER_MASK BIT(3)
-#define C2H_STAT_DMA_ENG_3_WRQ_PACKET_PRE_EOR_MASK     BIT(2)
+#define C2H_STAT_DMA_ENG_3_QID_FIFO_OUT_DAT_HAS_CMPT_MASK BIT(31)
+#define C2H_STAT_DMA_ENG_3_QID_FIFO_OUT_DAT_MARKER_MASK BIT(30)
+#define C2H_STAT_DMA_ENG_3_QID_FIFO_OUT_DAT_DROP_REQ_MASK BIT(29)
+#define C2H_STAT_DMA_ENG_3_QID_FIFO_OUT_DAT_QID_MASK   GENMASK(28, 17)
+#define C2H_STAT_DMA_ENG_3_WR_HDR_FIFO_OUT_CNT_MASK    GENMASK(16, 12)
+#define C2H_STAT_DMA_ENG_3_QID_FIFO_OUT_VLD_MASK       BIT(11)
+#define C2H_STAT_DMA_ENG_3_PLD_FIFO_OUT_VLD_MASK       BIT(10)
+#define C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_VLD_MASK    BIT(9)
+#define C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_EOP_MASK BIT(8)
+#define C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_AVL_IDX_ENABLE_MASK BIT(7)
+#define C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_DROP_MASK BIT(6)
+#define C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_ERR_MASK BIT(5)
+#define C2H_STAT_DMA_ENG_3_DESC_CNT_FIFO_IN_RDY_MASK   BIT(4)
+#define C2H_STAT_DMA_ENG_3_DESC_RSP_FIFO_IN_RDY_MASK   BIT(3)
+#define C2H_STAT_DMA_ENG_3_PLD_PKT_ID_LARGER_MASK      BIT(2)
 #define C2H_STAT_DMA_ENG_3_WCP_FIFO_IN_RDY_MASK        BIT(1)
 #define C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_IN_RDY_MASK     BIT(0)
 #define EQDMA_C2H_DBG_PFCH_ERR_CTXT_ADDR                   0xB2C
@@ -787,31 +996,27 @@ struct xreg_info *eqdma_config_regs_get(void);
 #define C2H_STAT_WR_CMP_RSVD_1_MASK                        GENMASK(31, 18)
 #define C2H_STAT_WR_CMP_CNT_MASK                           GENMASK(17, 0)
 #define EQDMA_C2H_STAT_DBG_DMA_ENG_4_ADDR                  0xB88
-#define C2H_STAT_DMA_ENG_4_RSVD_1_MASK                 GENMASK(31, 24)
-#define C2H_STAT_DMA_ENG_4_WRQ_FIFO_OUT_CNT_MASK       GENMASK(23, 19)
-#define C2H_STAT_DMA_ENG_4_QID_FIFO_OUT_VLD_MASK       BIT(18)
-#define C2H_STAT_DMA_ENG_4_PLD_FIFO_OUT_VLD_MASK       BIT(17)
-#define C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_VLD_MASK    BIT(16)
-#define C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_EOP_MASK BIT(15)
-#define C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_AVL_IDX_ENABLE_MASK BIT(14)
-#define C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_DROP_MASK BIT(13)
-#define C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_ERR_MASK BIT(12)
-#define C2H_STAT_DMA_ENG_4_DESC_CNT_FIFO_IN_RDY_MASK   BIT(11)
-#define C2H_STAT_DMA_ENG_4_DESC_RSP_FIFO_IN_RDY_MASK   BIT(10)
-#define C2H_STAT_DMA_ENG_4_PLD_PKT_ID_LARGER_0_MASK    BIT(9)
-#define C2H_STAT_DMA_ENG_4_WRQ_VLD_MASK                BIT(8)
-#define C2H_STAT_DMA_ENG_4_WRQ_RDY_MASK                BIT(7)
-#define C2H_STAT_DMA_ENG_4_WRQ_FIFO_OUT_RDY_MASK       BIT(6)
-#define C2H_STAT_DMA_ENG_4_WRQ_PACKET_OUT_DATA_DROP_MASK BIT(5)
-#define C2H_STAT_DMA_ENG_4_WRQ_PACKET_OUT_DATA_ERR_MASK BIT(4)
-#define C2H_STAT_DMA_ENG_4_WRQ_PACKET_OUT_DATA_MARKER_MASK BIT(3)
-#define C2H_STAT_DMA_ENG_4_WRQ_PACKET_PRE_EOR_MASK     BIT(2)
-#define C2H_STAT_DMA_ENG_4_WCP_FIFO_IN_RDY_MASK        BIT(1)
-#define C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_IN_RDY_MASK     BIT(0)
+#define C2H_STAT_DMA_ENG_4_QID_FIFO_OUT_DAT_HAS_CMPT_1_MASK BIT(31)
+#define C2H_STAT_DMA_ENG_4_QID_FIFO_OUT_DAT_MARKER_1_MASK BIT(30)
+#define C2H_STAT_DMA_ENG_4_QID_FIFO_OUT_DAT_DROP_REQ_1_MASK BIT(29)
+#define C2H_STAT_DMA_ENG_4_QID_FIFO_OUT_DAT_QID_1_MASK GENMASK(28, 17)
+#define C2H_STAT_DMA_ENG_4_WR_HDR_FIFO_OUT_CNT_1_MASK  GENMASK(16, 12)
+#define C2H_STAT_DMA_ENG_4_QID_FIFO_OUT_VLD_1_MASK     BIT(11)
+#define C2H_STAT_DMA_ENG_4_PLD_FIFO_OUT_VLD_1_MASK     BIT(10)
+#define C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_VLD_1_MASK  BIT(9)
+#define C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_EOP_1_MASK BIT(8)
+#define C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_AVL_IDX_ENABLE_1_MASK BIT(7)
+#define C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_DROP_1_MASK BIT(6)
+#define C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_ERR_1_MASK BIT(5)
+#define C2H_STAT_DMA_ENG_4_DESC_CNT_FIFO_IN_RDY_1_MASK BIT(4)
+#define C2H_STAT_DMA_ENG_4_DESC_RSP_FIFO_IN_RDY_1_MASK BIT(3)
+#define C2H_STAT_DMA_ENG_4_PLD_PKT_ID_LARGER_1_MASK    BIT(2)
+#define C2H_STAT_DMA_ENG_4_WCP_FIFO_IN_RDY_1_MASK      BIT(1)
+#define C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_IN_RDY_1_MASK   BIT(0)
 #define EQDMA_C2H_STAT_DBG_DMA_ENG_5_ADDR                  0xB8C
-#define C2H_STAT_DMA_ENG_5_RSVD_1_MASK                 GENMASK(31, 30)
-#define C2H_STAT_DMA_ENG_5_WRB_SM_VIRT_CH_MASK         BIT(29)
-#define C2H_STAT_DMA_ENG_5_WRB_FIFO_IN_REQ_MASK        GENMASK(28, 24)
+#define C2H_STAT_DMA_ENG_5_ARB_FIFO_IN_RDY_MASK        BIT(31)
+#define C2H_STAT_DMA_ENG_5_WRB_SM_VIRT_CH_MASK         BIT(30)
+#define C2H_STAT_DMA_ENG_5_WRB_FIFO_IN_REQ_MASK        GENMASK(29, 24)
 #define C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_CNT_MASK       GENMASK(23, 22)
 #define C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_LEN_MASK  GENMASK(21, 6)
 #define C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_VIRT_CH_MASK BIT(5)
@@ -1080,6 +1285,10 @@ struct xreg_info *eqdma_config_regs_get(void);
 #define H2C_MM_WBK_STALL_MASK                          BIT(2)
 #define H2C_MM_DSC_FIFO_EP_MASK                        BIT(1)
 #define H2C_MM_DSC_FIFO_FL_MASK                        BIT(0)
+#define EQDMA_H2C_MM_DATA_THROTTLE_ADDR                    0x12EC
+#define H2C_MM_DATA_THROTTLE_RSVD_1_MASK                   GENMASK(31, 17)
+#define H2C_MM_DATA_THROTTLE_DAT_EN_MASK                   BIT(16)
+#define H2C_MM_DATA_THROTTLE_DAT_MASK                      GENMASK(15, 0)
 #define EQDMA_C2H_CRDT_COAL_CFG_1_ADDR                     0x1400
 #define C2H_CRDT_COAL_CFG_1_RSVD_1_MASK                    GENMASK(31, 18)
 #define C2H_CRDT_COAL_CFG_1_PLD_FIFO_TH_MASK               GENMASK(17, 10)
@@ -1097,9 +1306,54 @@ struct xreg_info *eqdma_config_regs_get(void);
 #define C2H_PFCH_BYP_TAG_BYP_QID_MASK                      GENMASK(19, 8)
 #define C2H_PFCH_BYP_TAG_RSVD_2_MASK                       BIT(7)
 #define C2H_PFCH_BYP_TAG_MASK                             GENMASK(6, 0)
-#define EQDMA_C2H_WATER_MARK_ADDR                          0x1500
+#define EQDMA_C2H_WATER_MARK_ADDR                          0x1410
 #define C2H_WATER_MARK_HIGH_WM_MASK                        GENMASK(31, 16)
 #define C2H_WATER_MARK_LOW_WM_MASK                         GENMASK(15, 0)
+#define EQDMA_C2H_NOTIFY_EMPTY_ADDR                        0x1450
+#define C2H_NOTIFY_EMPTY_RSVD_1_MASK                       GENMASK(31, 16)
+#define C2H_NOTIFY_EMPTY_NOE_MASK                          GENMASK(15, 0)
+#define EQDMA_C2H_STAT_S_AXIS_C2H_ACCEPTED_1_ADDR          0x1454
+#define C2H_STAT_S_AXIS_C2H_ACCEPTED_1_MASK               GENMASK(31, 0)
+#define EQDMA_C2H_STAT_S_AXIS_WRB_ACCEPTED_1_ADDR          0x1458
+#define C2H_STAT_S_AXIS_WRB_ACCEPTED_1_MASK               GENMASK(31, 0)
+#define EQDMA_C2H_STAT_DESC_RSP_PKT_ACCEPTED_1_ADDR        0x145C
+#define C2H_STAT_DESC_RSP_PKT_ACCEPTED_1_D_MASK            GENMASK(31, 0)
+#define EQDMA_C2H_STAT_AXIS_PKG_CMP_1_ADDR                 0x1460
+#define C2H_STAT_AXIS_PKG_CMP_1_MASK                      GENMASK(31, 0)
+#define EQDMA_C2H_STAT_S_AXIS_WRB_ACCEPTED_2_ADDR          0x1464
+#define C2H_STAT_S_AXIS_WRB_ACCEPTED_2_MASK               GENMASK(31, 0)
+#define EQDMA_C2H_ST_PLD_FIFO_DEPTH_ADDR                   0x1468
+#define C2H_ST_PLD_FIFO_DEPTH_MASK                        GENMASK(31, 0)
+#define EQDMA_C2H_STAT_DBG_DMA_ENG_6_ADDR                  0x146C
+#define C2H_STAT_DMA_ENG_6_RSVD_MASK                   GENMASK(31, 29)
+#define C2H_STAT_DMA_ENG_6_PLD_ST_FIFO_OUT_DATA_QID_MASK GENMASK(28, 17)
+#define C2H_STAT_DMA_ENG_6_PLD_STS_FIFO_OUT_DATA_PLD_ST_PKT_ID_MASK \
+	GENMASK(16, 1)
+#define C2H_STAT_DMA_ENG_6_PLD_PKT_ID_LARGER_PLD_ST_MASK BIT(0)
+#define EQDMA_C2H_STAT_DBG_DMA_ENG_7_ADDR                  0x1470
+#define C2H_STAT_DMA_ENG_7_RSVD_MASK                   GENMASK(31, 29)
+#define C2H_STAT_DMA_ENG_7_PLD_ST_FIFO_OUT_DATA_QID_1_MASK GENMASK(28, 17)
+#define C2H_STAT_DMA_ENG_7_PLD_STS_FIFO_OUT_DATA_PLD_ST_PKT_ID_1_MASK \
+	GENMASK(16, 1)
+#define C2H_STAT_DMA_ENG_7_PLD_PKT_ID_LARGER_PLD_ST_1_MASK BIT(0)
+#define EQDMA_C2H_STAT_PCIE_CMP_1_ADDR                     0x1474
+#define C2H_STAT_PCIE_CMP_1_DEPTH_MASK                     GENMASK(31, 0)
+#define EQDMA_C2H_PLD_FIFO_ALMOST_FULL_ADDR                0x1478
+#define C2H_PLD_FIFO_ALMOST_FULL_ENABLE_MASK               BIT(31)
+#define C2H_PLD_FIFO_ALMOST_FULL_TH_MASK                   GENMASK(30, 0)
+#define EQDMA_PFCH_CFG_3_ADDR                              0x147C
+#define PFCH_CFG_3_RSVD_MASK                               GENMASK(31, 16)
+#define PFCH_CFG_3_VAR_DESC_FL_FREE_CNT_TH_MASK            GENMASK(15, 7)
+#define PFCH_CFG_3_VAR_DESC_LG_PKT_CAM_CN_TH_MASK          GENMASK(6, 0)
+#define EQDMA_CMPT_CFG_0_ADDR                              0x1480
+#define CMPT_CFG_0_RSVD_MASK                               GENMASK(31, 2)
+#define CMPT_CFG_0_VIO_SPRS_INT_AFTER_RTY_MASK             BIT(1)
+#define CMPT_CFG_0_VIO_EVNT_SUP_EN_MASK                    BIT(0)
+#define EQDMA_PFCH_CFG_4_ADDR                              0x1484
+#define PFCH_CFG_4_GLB_EVT_TIMER_TICK_MASK                 GENMASK(31, 17)
+#define PFCH_CFG_4_DISABLE_GLB_EVT_TIMER_MASK              BIT(16)
+#define PFCH_CFG_4_EVT_TIMER_TICK_MASK                     GENMASK(15, 1)
+#define PFCH_CFG_4_DISABLE_EVT_TIMER_MASK                  BIT(0)
 #define SW_IND_CTXT_DATA_W7_VIRTIO_DSC_BASE_H_MASK        GENMASK(10, 0)
 #define SW_IND_CTXT_DATA_W6_VIRTIO_DSC_BASE_M_MASK        GENMASK(31, 0)
 #define SW_IND_CTXT_DATA_W5_VIRTIO_DSC_BASE_L_MASK        GENMASK(31, 11)
@@ -1217,6 +1471,50 @@ struct xreg_info *eqdma_config_regs_get(void);
 #define INTR_CTXT_DATA_W0_RSVD1_MASK                      BIT(12)
 #define INTR_CTXT_DATA_W0_VEC_MASK                        GENMASK(11, 1)
 #define INTR_CTXT_DATA_W0_VALID_MASK                      BIT(0)
+#define HOSTID_TABLE_W6_SMID_MASK                          GENMASK(9, 0)
+#define HOSTID_TABLE_W5_H2C_MM_AWPROT_MASK                 GENMASK(27, 26)
+#define HOSTID_TABLE_W5_H2C_MM_AWCACHE_MASK                GENMASK(25, 22)
+#define HOSTID_TABLE_W5_H2C_MM_AWSTEERING_MASK             GENMASK(20, 18)
+#define HOSTID_TABLE_W5_DSC_AWPROT_MASK                    GENMASK(17, 16)
+#define HOSTID_TABLE_W5_DSC_AWCACHE_MASK                   GENMASK(15, 12)
+#define HOSTID_TABLE_W5_DSC_AWSTEERING_MASK                GENMASK(11, 8)
+#define HOSTID_TABLE_W5_INT_MSG_AWPROT_MASK                GENMASK(7, 6)
+#define HOSTID_TABLE_W5_INT_MSG_AWCACHE_MASK               GENMASK(5, 2)
+#define HOSTID_TABLE_W5_INT_MSG_AWSTEERING_H_MASK          GENMASK(0, 0)
+#define HOSTID_TABLE_W4_INT_MSG_AWSTEERING_L_MASK          GENMASK(31, 30)
+#define HOSTID_TABLE_W4_INT_AGGR_AWPROT_MASK               GENMASK(29, 28)
+#define HOSTID_TABLE_W4_INT_AGGR_AWCACHE_MASK              GENMASK(27, 24)
+#define HOSTID_TABLE_W4_INT_AGGR_AWSTEERING_MASK           GENMASK(22, 20)
+#define HOSTID_TABLE_W4_CMPT_AWPROT_MASK                   GENMASK(19, 18)
+#define HOSTID_TABLE_W4_CMPT_AWCACHE_MASK                  GENMASK(17, 14)
+#define HOSTID_TABLE_W4_CMPT_AWSTEERING_MASK               GENMASK(12, 10)
+#define HOSTID_TABLE_W4_C2H_PLD_AWPROT_MASK                GENMASK(9, 8)
+#define HOSTID_TABLE_W4_C2H_PLD_AWCACHE_MASK               GENMASK(7, 4)
+#define HOSTID_TABLE_W4_C2H_PLD_AWSTEERING_MASK            GENMASK(2, 0)
+#define HOSTID_TABLE_W3_C2H_MM_ARPROT_MASK                 GENMASK(7, 6)
+#define HOSTID_TABLE_W3_C2H_MM_ARCACHE_MASK                GENMASK(5, 2)
+#define HOSTID_TABLE_W3_C2H_MM_ARSTEERING_H_MASK           GENMASK(0, 0)
+#define HOSTID_TABLE_W2_C2H_MM_ARSTEERING_L_MASK           GENMASK(31, 30)
+#define HOSTID_TABLE_W2_H2C_MM_ARPROT_MASK                 GENMASK(29, 28)
+#define HOSTID_TABLE_W2_H2C_MM_ARCACHE_MASK                GENMASK(27, 24)
+#define HOSTID_TABLE_W2_H2C_MM_ARSTEERING_MASK             GENMASK(22, 20)
+#define HOSTID_TABLE_W2_H2C_ST_ARPROT_MASK                 GENMASK(19, 18)
+#define HOSTID_TABLE_W2_H2C_ST_ARCACHE_MASK                GENMASK(17, 14)
+#define HOSTID_TABLE_W2_H2C_ST_ARSTEERING_MASK             GENMASK(12, 10)
+#define HOSTID_TABLE_W2_DSC_ARPOT_MASK                     GENMASK(9, 8)
+#define HOSTID_TABLE_W2_DSC_ARCACHE_MASK                   GENMASK(7, 4)
+#define HOSTID_TABLE_W2_DSC_ARSTEERING_MASK                GENMASK(2, 0)
+#define HOSTID_TABLE_W0_VCH_H2C_MM_MASK                    GENMASK(27, 24)
+#define HOSTID_TABLE_W0_VCH_H2C_ST_MASK                    GENMASK(23, 20)
+#define HOSTID_TABLE_W0_VCH_DSC_MASK                       GENMASK(19, 16)
+#define HOSTID_TABLE_W0_VCH_INT_MSG_MASK                   GENMASK(15, 12)
+#define HOSTID_TABLE_W0_VCH_INT_AGGR_MASK                  GENMASK(11, 8)
+#define HOSTID_TABLE_W0_VCH_CMPT_MASK                      GENMASK(7, 4)
+#define HOSTID_TABLE_W0_VCH_H2C_PLD_MASK                   GENMASK(3, 0)
+#define CTXT_SELC_FNC_STS_W0_MSIX_MASK                GENMASK(3, 3)
+#define CTXT_SELC_FNC_STS_W0_MSIX_ENABLE_MASK              GENMASK(2, 2)
+#define CTXT_SELC_FNC_STS_W0_MEM_SPACE_ENABLE_MASK         GENMASK(1, 1)
+#define CTXT_SELC_FNC_STS_W0_BUS_MASTER_ENABLE_MASK        GENMASK(0, 0)
 
 #ifdef __cplusplus
 }
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_soft_access/eqdma_soft_reg_dump.c b/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_soft_access/eqdma_soft_reg_dump.c
old mode 100644
new mode 100755
index cd60617..8754fb7
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_soft_access/eqdma_soft_reg_dump.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/eqdma_soft_access/eqdma_soft_reg_dump.c
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -476,6 +477,85 @@ static struct regfield_info
 };
 
 
+static struct regfield_info
+	glbl2_rrq_brg_throt_field_info[] = {
+	{"GLBL2_RRQ_BRG_THROT_REQ_EN",
+		GLBL2_RRQ_BRG_THROT_REQ_EN_MASK},
+	{"GLBL2_RRQ_BRG_THROT_REQ",
+		GLBL2_RRQ_BRG_THROT_REQ_MASK},
+	{"GLBL2_RRQ_BRG_THROT_DAT_EN",
+		GLBL2_RRQ_BRG_THROT_DAT_EN_MASK},
+	{"GLBL2_RRQ_BRG_THROT_DAT",
+		GLBL2_RRQ_BRG_THROT_DAT_MASK},
+};
+
+
+static struct regfield_info
+	glbl2_rrq_pcie_throt_field_info[] = {
+	{"GLBL2_RRQ_PCIE_THROT_REQ_EN",
+		GLBL2_RRQ_PCIE_THROT_REQ_EN_MASK},
+	{"GLBL2_RRQ_PCIE_THROT_REQ",
+		GLBL2_RRQ_PCIE_THROT_REQ_MASK},
+	{"GLBL2_RRQ_PCIE_THROT_DAT_EN",
+		GLBL2_RRQ_PCIE_THROT_DAT_EN_MASK},
+	{"GLBL2_RRQ_PCIE_THROT_DAT",
+		GLBL2_RRQ_PCIE_THROT_DAT_MASK},
+};
+
+
+static struct regfield_info
+	glbl2_rrq_aximm_throt_field_info[] = {
+	{"GLBL2_RRQ_AXIMM_THROT_REQ_EN",
+		GLBL2_RRQ_AXIMM_THROT_REQ_EN_MASK},
+	{"GLBL2_RRQ_AXIMM_THROT_REQ",
+		GLBL2_RRQ_AXIMM_THROT_REQ_MASK},
+	{"GLBL2_RRQ_AXIMM_THROT_DAT_EN",
+		GLBL2_RRQ_AXIMM_THROT_DAT_EN_MASK},
+	{"GLBL2_RRQ_AXIMM_THROT_DAT",
+		GLBL2_RRQ_AXIMM_THROT_DAT_MASK},
+};
+
+
+static struct regfield_info
+	glbl2_rrq_pcie_lat0_field_info[] = {
+	{"GLBL2_RRQ_PCIE_LAT0_MAX",
+		GLBL2_RRQ_PCIE_LAT0_MAX_MASK},
+	{"GLBL2_RRQ_PCIE_LAT0_MIN",
+		GLBL2_RRQ_PCIE_LAT0_MIN_MASK},
+};
+
+
+static struct regfield_info
+	glbl2_rrq_pcie_lat1_field_info[] = {
+	{"GLBL2_RRQ_PCIE_LAT1_RSVD",
+		GLBL2_RRQ_PCIE_LAT1_RSVD_MASK},
+	{"GLBL2_RRQ_PCIE_LAT1_OVFL",
+		GLBL2_RRQ_PCIE_LAT1_OVFL_MASK},
+	{"GLBL2_RRQ_PCIE_LAT1_AVG",
+		GLBL2_RRQ_PCIE_LAT1_AVG_MASK},
+};
+
+
+static struct regfield_info
+	glbl2_rrq_aximm_lat0_field_info[] = {
+	{"GLBL2_RRQ_AXIMM_LAT0_MAX",
+		GLBL2_RRQ_AXIMM_LAT0_MAX_MASK},
+	{"GLBL2_RRQ_AXIMM_LAT0_MIN",
+		GLBL2_RRQ_AXIMM_LAT0_MIN_MASK},
+};
+
+
+static struct regfield_info
+	glbl2_rrq_aximm_lat1_field_info[] = {
+	{"GLBL2_RRQ_AXIMM_LAT1_RSVD",
+		GLBL2_RRQ_AXIMM_LAT1_RSVD_MASK},
+	{"GLBL2_RRQ_AXIMM_LAT1_OVFL",
+		GLBL2_RRQ_AXIMM_LAT1_OVFL_MASK},
+	{"GLBL2_RRQ_AXIMM_LAT1_AVG",
+		GLBL2_RRQ_AXIMM_LAT1_AVG_MASK},
+};
+
+
 static struct regfield_info
 	glbl2_dbg_pcie_rq0_field_info[] = {
 	{"GLBL2_PCIE_RQ0_NPH_AVL",
@@ -917,6 +997,10 @@ static struct regfield_info
 	glbl_dsc_cfg_field_info[] = {
 	{"GLBL_DSC_CFG_RSVD_1",
 		GLBL_DSC_CFG_RSVD_1_MASK},
+	{"GLBL_DSC_CFG_C2H_UODSC_LIMIT",
+		GLBL_DSC_CFG_C2H_UODSC_LIMIT_MASK},
+	{"GLBL_DSC_CFG_H2C_UODSC_LIMIT",
+		GLBL_DSC_CFG_H2C_UODSC_LIMIT_MASK},
 	{"GLBL_DSC_CFG_UNC_OVR_COR",
 		GLBL_DSC_CFG_UNC_OVR_COR_MASK},
 	{"GLBL_DSC_CFG_CTXT_FER_DIS",
@@ -1095,6 +1179,10 @@ static struct regfield_info
 	glbl_dsc_dbg_ctl_field_info[] = {
 	{"GLBL_DSC_CTL_RSVD_1",
 		GLBL_DSC_CTL_RSVD_1_MASK},
+	{"GLBL_DSC_CTL_LAT_QID",
+		GLBL_DSC_CTL_LAT_QID_MASK},
+	{"GLBL_DSC_CTL_DSC_ENG_LAT_CLR",
+		GLBL_DSC_CTL_DSC_ENG_LAT_CLR_MASK},
 	{"GLBL_DSC_CTL_SELECT",
 		GLBL_DSC_CTL_SELECT_MASK},
 };
@@ -1203,1961 +1291,3168 @@ static struct regfield_info
 
 
 static struct regfield_info
-	ind_ctxt_data_field_info[] = {
-	{"IND_CTXT_DATA_DATA",
-		IND_CTXT_DATA_DATA_MASK},
+	glbl_dsc_dbg_lat0_a_field_info[] = {
+	{"GLBL_DSC_LAT0_A_LAT_MAX",
+		GLBL_DSC_LAT0_A_LAT_MAX_MASK},
+	{"GLBL_DSC_LAT0_A_LAT_MIN",
+		GLBL_DSC_LAT0_A_LAT_MIN_MASK},
 };
 
 
 static struct regfield_info
-	ind_ctxt_mask_field_info[] = {
-	{"IND_CTXT",
-		IND_CTXT_MASK},
+	glbl_dsc_dbg_lat1_a_field_info[] = {
+	{"GLBL_DSC_LAT1_A_RSVD",
+		GLBL_DSC_LAT1_A_RSVD_MASK},
+	{"GLBL_DSC_LAT1_A_LAT_OVF",
+		GLBL_DSC_LAT1_A_LAT_OVF_MASK},
+	{"GLBL_DSC_LAT1_A_LAT_AVG",
+		GLBL_DSC_LAT1_A_LAT_AVG_MASK},
 };
 
 
 static struct regfield_info
-	ind_ctxt_cmd_field_info[] = {
-	{"IND_CTXT_CMD_RSVD_1",
-		IND_CTXT_CMD_RSVD_1_MASK},
-	{"IND_CTXT_CMD_QID",
-		IND_CTXT_CMD_QID_MASK},
-	{"IND_CTXT_CMD_OP",
-		IND_CTXT_CMD_OP_MASK},
-	{"IND_CTXT_CMD_SEL",
-		IND_CTXT_CMD_SEL_MASK},
-	{"IND_CTXT_CMD_BUSY",
-		IND_CTXT_CMD_BUSY_MASK},
+	glbl_dsc_crd_ctr0_a_field_info[] = {
+	{"GLBL_DSC_CRD_CTR0_A_CRD_RCV_CNT",
+		GLBL_DSC_CRD_CTR0_A_CRD_RCV_CNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_timer_cnt_field_info[] = {
-	{"C2H_TIMER_CNT_RSVD_1",
-		C2H_TIMER_CNT_RSVD_1_MASK},
-	{"C2H_TIMER_CNT",
-		C2H_TIMER_CNT_MASK},
+	glbl_dsc_crd_ctr1_a_field_info[] = {
+	{"GLBL_DSC_CRD_CTR1_A_CRD_RCV_CNT",
+		GLBL_DSC_CRD_CTR1_A_CRD_RCV_CNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_cnt_th_field_info[] = {
-	{"C2H_CNT_TH_RSVD_1",
-		C2H_CNT_TH_RSVD_1_MASK},
-	{"C2H_CNT_TH_THESHOLD_CNT",
-		C2H_CNT_TH_THESHOLD_CNT_MASK},
+	glbl_dsc_crd_ctr2_a_field_info[] = {
+	{"GLBL_DSC_CRD_CTR2_A_CRD_RCV_NRDY_CNT",
+		GLBL_DSC_CRD_CTR2_A_CRD_RCV_NRDY_CNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_s_axis_c2h_accepted_field_info[] = {
-	{"C2H_STAT_S_AXIS_C2H_ACCEPTED",
-		C2H_STAT_S_AXIS_C2H_ACCEPTED_MASK},
+	glbl_dsc_crd_ctr3_a_field_info[] = {
+	{"GLBL_DSC_CRD_CTR3_A_CRD_RCV_NRDY_CNT",
+		GLBL_DSC_CRD_CTR3_A_CRD_RCV_NRDY_CNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_s_axis_wrb_accepted_field_info[] = {
-	{"C2H_STAT_S_AXIS_WRB_ACCEPTED",
-		C2H_STAT_S_AXIS_WRB_ACCEPTED_MASK},
+	glbl_dsc_imm_crd_ctr0_a_field_info[] = {
+	{"GLBL_DSC_IMM_CRD_CTR0_A_RCV_CNT",
+		GLBL_DSC_IMM_CRD_CTR0_A_RCV_CNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_desc_rsp_pkt_accepted_field_info[] = {
-	{"C2H_STAT_DESC_RSP_PKT_ACCEPTED_D",
-		C2H_STAT_DESC_RSP_PKT_ACCEPTED_D_MASK},
+	glbl_dsc_imm_crd_ctr1_a_field_info[] = {
+	{"GLBL_DSC_IMM_CRD_CTR1_A_RCV_CNT",
+		GLBL_DSC_IMM_CRD_CTR1_A_RCV_CNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_axis_pkg_cmp_field_info[] = {
-	{"C2H_STAT_AXIS_PKG_CMP",
-		C2H_STAT_AXIS_PKG_CMP_MASK},
+	glbl_dsc_imm_crd_ctr2_a_field_info[] = {
+	{"GLBL_DSC_IMM_CRD_CTR2_A_RCV_NRDY_CNT",
+		GLBL_DSC_IMM_CRD_CTR2_A_RCV_NRDY_CNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_desc_rsp_accepted_field_info[] = {
-	{"C2H_STAT_DESC_RSP_ACCEPTED_D",
-		C2H_STAT_DESC_RSP_ACCEPTED_D_MASK},
+	glbl_dsc_imm_crd_ctr3_a_field_info[] = {
+	{"GLBL_DSC_IMM_CRD_CTR3_A_RCV_NRDY_CNT",
+		GLBL_DSC_IMM_CRD_CTR3_A_RCV_NRDY_CNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_desc_rsp_cmp_field_info[] = {
-	{"C2H_STAT_DESC_RSP_CMP_D",
-		C2H_STAT_DESC_RSP_CMP_D_MASK},
+	glbl_dsc_h2c_out_ctr0_a_field_info[] = {
+	{"GLBL_DSC_H2C_OUT_CTR0_A_H2CVLD_CNT",
+		GLBL_DSC_H2C_OUT_CTR0_A_H2CVLD_CNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_wrq_out_field_info[] = {
-	{"C2H_STAT_WRQ_OUT",
-		C2H_STAT_WRQ_OUT_MASK},
+	glbl_dsc_h2c_out_ctr1_a_field_info[] = {
+	{"GLBL_DSC_H2C_OUT_CTR1_A_H2CVLD_CNT",
+		GLBL_DSC_H2C_OUT_CTR1_A_H2CVLD_CNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_wpl_ren_accepted_field_info[] = {
-	{"C2H_STAT_WPL_REN_ACCEPTED",
-		C2H_STAT_WPL_REN_ACCEPTED_MASK},
+	glbl_dsc_h2c_out_ctr2_a_field_info[] = {
+	{"GLBL_DSC_H2C_OUT_CTR2_A_H2CVLD_NRDY_CNT",
+		GLBL_DSC_H2C_OUT_CTR2_A_H2CVLD_NRDY_CNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_total_wrq_len_field_info[] = {
-	{"C2H_STAT_TOTAL_WRQ_LEN",
-		C2H_STAT_TOTAL_WRQ_LEN_MASK},
+	glbl_dsc_h2c_out_ctr3_a_field_info[] = {
+	{"GLBL_DSC_H2C_OUT_CTR3_A_H2CVLD_NRDY_CNT",
+		GLBL_DSC_H2C_OUT_CTR3_A_H2CVLD_NRDY_CNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_total_wpl_len_field_info[] = {
-	{"C2H_STAT_TOTAL_WPL_LEN",
-		C2H_STAT_TOTAL_WPL_LEN_MASK},
+	glbl_dsc_c2h_out_ctr0_a_field_info[] = {
+	{"GLBL_DSC_C2H_OUT_CTR0_A_C2HVLD_CNT",
+		GLBL_DSC_C2H_OUT_CTR0_A_C2HVLD_CNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_buf_sz_field_info[] = {
-	{"C2H_BUF_SZ_IZE",
-		C2H_BUF_SZ_IZE_MASK},
+	glbl_dsc_c2h_out_ctr1_a_field_info[] = {
+	{"GLBL_DSC_C2H_OUT_CTR1_A_C2HVLD_CNT",
+		GLBL_DSC_C2H_OUT_CTR1_A_C2HVLD_CNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_err_stat_field_info[] = {
-	{"C2H_ERR_STAT_RSVD_1",
-		C2H_ERR_STAT_RSVD_1_MASK},
-	{"C2H_ERR_STAT_WRB_PORT_ID_ERR",
-		C2H_ERR_STAT_WRB_PORT_ID_ERR_MASK},
-	{"C2H_ERR_STAT_HDR_PAR_ERR",
-		C2H_ERR_STAT_HDR_PAR_ERR_MASK},
-	{"C2H_ERR_STAT_HDR_ECC_COR_ERR",
-		C2H_ERR_STAT_HDR_ECC_COR_ERR_MASK},
-	{"C2H_ERR_STAT_HDR_ECC_UNC_ERR",
-		C2H_ERR_STAT_HDR_ECC_UNC_ERR_MASK},
-	{"C2H_ERR_STAT_AVL_RING_DSC_ERR",
-		C2H_ERR_STAT_AVL_RING_DSC_ERR_MASK},
-	{"C2H_ERR_STAT_WRB_PRTY_ERR",
-		C2H_ERR_STAT_WRB_PRTY_ERR_MASK},
-	{"C2H_ERR_STAT_WRB_CIDX_ERR",
-		C2H_ERR_STAT_WRB_CIDX_ERR_MASK},
-	{"C2H_ERR_STAT_WRB_QFULL_ERR",
-		C2H_ERR_STAT_WRB_QFULL_ERR_MASK},
-	{"C2H_ERR_STAT_WRB_INV_Q_ERR",
-		C2H_ERR_STAT_WRB_INV_Q_ERR_MASK},
-	{"C2H_ERR_STAT_RSVD_2",
-		C2H_ERR_STAT_RSVD_2_MASK},
-	{"C2H_ERR_STAT_PORT_ID_CTXT_MISMATCH",
-		C2H_ERR_STAT_PORT_ID_CTXT_MISMATCH_MASK},
-	{"C2H_ERR_STAT_ERR_DESC_CNT",
-		C2H_ERR_STAT_ERR_DESC_CNT_MASK},
-	{"C2H_ERR_STAT_RSVD_3",
-		C2H_ERR_STAT_RSVD_3_MASK},
-	{"C2H_ERR_STAT_MSI_INT_FAIL",
-		C2H_ERR_STAT_MSI_INT_FAIL_MASK},
-	{"C2H_ERR_STAT_ENG_WPL_DATA_PAR_ERR",
-		C2H_ERR_STAT_ENG_WPL_DATA_PAR_ERR_MASK},
-	{"C2H_ERR_STAT_RSVD_4",
-		C2H_ERR_STAT_RSVD_4_MASK},
-	{"C2H_ERR_STAT_DESC_RSP_ERR",
-		C2H_ERR_STAT_DESC_RSP_ERR_MASK},
-	{"C2H_ERR_STAT_QID_MISMATCH",
-		C2H_ERR_STAT_QID_MISMATCH_MASK},
-	{"C2H_ERR_STAT_SH_CMPT_DSC_ERR",
-		C2H_ERR_STAT_SH_CMPT_DSC_ERR_MASK},
-	{"C2H_ERR_STAT_LEN_MISMATCH",
-		C2H_ERR_STAT_LEN_MISMATCH_MASK},
-	{"C2H_ERR_STAT_MTY_MISMATCH",
-		C2H_ERR_STAT_MTY_MISMATCH_MASK},
+	glbl_dsc_c2h_out_ctr2_a_field_info[] = {
+	{"GLBL_DSC_C2H_OUT_CTR2_A_C2HVLD_NRDY_CNT",
+		GLBL_DSC_C2H_OUT_CTR2_A_C2HVLD_NRDY_CNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_err_mask_field_info[] = {
-	{"C2H_ERR_EN",
-		C2H_ERR_EN_MASK},
+	glbl_dsc_c2h_out_ctr3_a_field_info[] = {
+	{"GLBL_DSC_C2H_OUT_CTR3_A_C2HVLD_NRDY_CNT",
+		GLBL_DSC_C2H_OUT_CTR3_A_C2HVLD_NRDY_CNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_fatal_err_stat_field_info[] = {
-	{"C2H_FATAL_ERR_STAT_RSVD_1",
-		C2H_FATAL_ERR_STAT_RSVD_1_MASK},
-	{"C2H_FATAL_ERR_STAT_HDR_ECC_UNC_ERR",
-		C2H_FATAL_ERR_STAT_HDR_ECC_UNC_ERR_MASK},
-	{"C2H_FATAL_ERR_STAT_AVL_RING_FIFO_RAM_RDBE",
-		C2H_FATAL_ERR_STAT_AVL_RING_FIFO_RAM_RDBE_MASK},
-	{"C2H_FATAL_ERR_STAT_WPL_DATA_PAR_ERR",
-		C2H_FATAL_ERR_STAT_WPL_DATA_PAR_ERR_MASK},
-	{"C2H_FATAL_ERR_STAT_PLD_FIFO_RAM_RDBE",
-		C2H_FATAL_ERR_STAT_PLD_FIFO_RAM_RDBE_MASK},
-	{"C2H_FATAL_ERR_STAT_QID_FIFO_RAM_RDBE",
-		C2H_FATAL_ERR_STAT_QID_FIFO_RAM_RDBE_MASK},
-	{"C2H_FATAL_ERR_STAT_CMPT_FIFO_RAM_RDBE",
-		C2H_FATAL_ERR_STAT_CMPT_FIFO_RAM_RDBE_MASK},
-	{"C2H_FATAL_ERR_STAT_WRB_COAL_DATA_RAM_RDBE",
-		C2H_FATAL_ERR_STAT_WRB_COAL_DATA_RAM_RDBE_MASK},
-	{"C2H_FATAL_ERR_STAT_RESERVED2",
-		C2H_FATAL_ERR_STAT_RESERVED2_MASK},
-	{"C2H_FATAL_ERR_STAT_INT_CTXT_RAM_RDBE",
-		C2H_FATAL_ERR_STAT_INT_CTXT_RAM_RDBE_MASK},
-	{"C2H_FATAL_ERR_STAT_DESC_REQ_FIFO_RAM_RDBE",
-		C2H_FATAL_ERR_STAT_DESC_REQ_FIFO_RAM_RDBE_MASK},
-	{"C2H_FATAL_ERR_STAT_PFCH_CTXT_RAM_RDBE",
-		C2H_FATAL_ERR_STAT_PFCH_CTXT_RAM_RDBE_MASK},
-	{"C2H_FATAL_ERR_STAT_WRB_CTXT_RAM_RDBE",
-		C2H_FATAL_ERR_STAT_WRB_CTXT_RAM_RDBE_MASK},
-	{"C2H_FATAL_ERR_STAT_PFCH_LL_RAM_RDBE",
-		C2H_FATAL_ERR_STAT_PFCH_LL_RAM_RDBE_MASK},
-	{"C2H_FATAL_ERR_STAT_TIMER_FIFO_RAM_RDBE",
-		C2H_FATAL_ERR_STAT_TIMER_FIFO_RAM_RDBE_MASK},
-	{"C2H_FATAL_ERR_STAT_QID_MISMATCH",
-		C2H_FATAL_ERR_STAT_QID_MISMATCH_MASK},
-	{"C2H_FATAL_ERR_STAT_RESERVED1",
-		C2H_FATAL_ERR_STAT_RESERVED1_MASK},
-	{"C2H_FATAL_ERR_STAT_LEN_MISMATCH",
-		C2H_FATAL_ERR_STAT_LEN_MISMATCH_MASK},
-	{"C2H_FATAL_ERR_STAT_MTY_MISMATCH",
-		C2H_FATAL_ERR_STAT_MTY_MISMATCH_MASK},
+	t_field_info[] = {
+	{"T_USER_CTR_MAX",
+		T_USER_CTR_MAX_MASK},
 };
 
 
 static struct regfield_info
-	c2h_fatal_err_mask_field_info[] = {
-	{"C2H_FATAL_ERR_C2HEN",
-		C2H_FATAL_ERR_C2HEN_MASK},
+	glbl_perf_cntr_ctl_a1_field_info[] = {
+	{"GLBL_PERF_CNTR_CTL_A1_RSVD",
+		GLBL_PERF_CNTR_CTL_A1_RSVD_MASK},
+	{"GLBL_PERF_CNTR_CTL_A1_USER_CTR_CLEAR",
+		GLBL_PERF_CNTR_CTL_A1_USER_CTR_CLEAR_MASK},
+	{"GLBL_PERF_CNTR_CTL_A1_USER_CTR_READ",
+		GLBL_PERF_CNTR_CTL_A1_USER_CTR_READ_MASK},
+	{"GLBL_PERF_CNTR_CTL_A1_USER_CTR_MAX",
+		GLBL_PERF_CNTR_CTL_A1_USER_CTR_MAX_MASK},
 };
 
 
 static struct regfield_info
-	c2h_fatal_err_enable_field_info[] = {
-	{"C2H_FATAL_ERR_ENABLE_RSVD_1",
-		C2H_FATAL_ERR_ENABLE_RSVD_1_MASK},
-	{"C2H_FATAL_ERR_ENABLE_WPL_PAR_INV",
-		C2H_FATAL_ERR_ENABLE_WPL_PAR_INV_MASK},
-	{"C2H_FATAL_ERR_ENABLE_WRQ_DIS",
-		C2H_FATAL_ERR_ENABLE_WRQ_DIS_MASK},
+	glbl_free_cnt_a0_field_info[] = {
+	{"GLBL_FREE_CNT_A0_S",
+		GLBL_FREE_CNT_A0_S_MASK},
 };
 
 
 static struct regfield_info
-	glbl_err_int_field_info[] = {
-	{"GLBL_ERR_INT_RSVD_1",
-		GLBL_ERR_INT_RSVD_1_MASK},
-	{"GLBL_ERR_INT_HOST_ID",
-		GLBL_ERR_INT_HOST_ID_MASK},
-	{"GLBL_ERR_INT_DIS_INTR_ON_VF",
-		GLBL_ERR_INT_DIS_INTR_ON_VF_MASK},
-	{"GLBL_ERR_INT_ARM",
-		GLBL_ERR_INT_ARM_MASK},
-	{"GLBL_ERR_INT_EN_COAL",
-		GLBL_ERR_INT_EN_COAL_MASK},
-	{"GLBL_ERR_INT_VEC",
-		GLBL_ERR_INT_VEC_MASK},
-	{"GLBL_ERR_INT_FUNC",
-		GLBL_ERR_INT_FUNC_MASK},
+	glbl_free_cnt_a1_field_info[] = {
+	{"GLBL_FREE_CNT_A1_RSVD",
+		GLBL_FREE_CNT_A1_RSVD_MASK},
+	{"GLBL_FREE_CNT_A1_S",
+		GLBL_FREE_CNT_A1_S_MASK},
 };
 
 
 static struct regfield_info
-	c2h_pfch_cfg_field_info[] = {
-	{"C2H_PFCH_CFG_EVTFL_TH",
-		C2H_PFCH_CFG_EVTFL_TH_MASK},
-	{"C2H_PFCH_CFG_FL_TH",
-		C2H_PFCH_CFG_FL_TH_MASK},
+	glbl_axis_h2c_cnt_a0_field_info[] = {
+	{"GLBL_AXIS_H2C_CNT_A0_MPKT_CNTS",
+		GLBL_AXIS_H2C_CNT_A0_MPKT_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_pfch_cfg_1_field_info[] = {
-	{"C2H_PFCH_CFG_1_EVT_QCNT_TH",
-		C2H_PFCH_CFG_1_EVT_QCNT_TH_MASK},
-	{"C2H_PFCH_CFG_1_QCNT",
-		C2H_PFCH_CFG_1_QCNT_MASK},
+	glbl_axis_h2c_cnt_a1_field_info[] = {
+	{"GLBL_AXIS_H2C_CNT_A1_MIDLE_CNTS",
+		GLBL_AXIS_H2C_CNT_A1_MIDLE_CNTS_MASK},
+	{"GLBL_AXIS_H2C_CNT_A1_MPKT_CNTS",
+		GLBL_AXIS_H2C_CNT_A1_MPKT_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_pfch_cfg_2_field_info[] = {
-	{"C2H_PFCH_CFG_2_FENCE",
-		C2H_PFCH_CFG_2_FENCE_MASK},
-	{"C2H_PFCH_CFG_2_RSVD",
-		C2H_PFCH_CFG_2_RSVD_MASK},
-	{"C2H_PFCH_CFG_2_VAR_DESC_NO_DROP",
-		C2H_PFCH_CFG_2_VAR_DESC_NO_DROP_MASK},
-	{"C2H_PFCH_CFG_2_LL_SZ_TH",
-		C2H_PFCH_CFG_2_LL_SZ_TH_MASK},
-	{"C2H_PFCH_CFG_2_VAR_DESC_NUM",
-		C2H_PFCH_CFG_2_VAR_DESC_NUM_MASK},
-	{"C2H_PFCH_CFG_2_NUM",
-		C2H_PFCH_CFG_2_NUM_MASK},
+	glbl_axis_h2c_cnt_a2_field_info[] = {
+	{"GLBL_AXIS_H2C_CNT_A2_MIDLE_CNTS",
+		GLBL_AXIS_H2C_CNT_A2_MIDLE_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_int_timer_tick_field_info[] = {
-	{"C2H_INT_TIMER_TICK",
-		C2H_INT_TIMER_TICK_MASK},
+	glbl_axis_h2c_cnt_a3_field_info[] = {
+	{"GLBL_AXIS_H2C_CNT_A3_MACTV_CNTS",
+		GLBL_AXIS_H2C_CNT_A3_MACTV_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_desc_rsp_drop_accepted_field_info[] = {
-	{"C2H_STAT_DESC_RSP_DROP_ACCEPTED_D",
-		C2H_STAT_DESC_RSP_DROP_ACCEPTED_D_MASK},
+	glbl_axis_h2c_cnt_a4_field_info[] = {
+	{"GLBL_AXIS_H2C_CNT_A4_MBUSY_CNTS",
+		GLBL_AXIS_H2C_CNT_A4_MBUSY_CNTS_MASK},
+	{"GLBL_AXIS_H2C_CNT_A4_MACTV_CNTS",
+		GLBL_AXIS_H2C_CNT_A4_MACTV_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_desc_rsp_err_accepted_field_info[] = {
-	{"C2H_STAT_DESC_RSP_ERR_ACCEPTED_D",
-		C2H_STAT_DESC_RSP_ERR_ACCEPTED_D_MASK},
+	glbl_axis_h2c_cnt_a5_field_info[] = {
+	{"GLBL_AXIS_H2C_CNT_A5_MBUSY_CNTS",
+		GLBL_AXIS_H2C_CNT_A5_MBUSY_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_desc_req_field_info[] = {
-	{"C2H_STAT_DESC_REQ",
-		C2H_STAT_DESC_REQ_MASK},
+	glbl_axis_c2h_cnt_a0_field_info[] = {
+	{"GLBL_AXIS_C2H_CNT_A0_SPKT_CNTS",
+		GLBL_AXIS_C2H_CNT_A0_SPKT_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_dbg_dma_eng_0_field_info[] = {
-	{"C2H_STAT_DMA_ENG_0_S_AXIS_C2H_TVALID",
-		C2H_STAT_DMA_ENG_0_S_AXIS_C2H_TVALID_MASK},
-	{"C2H_STAT_DMA_ENG_0_S_AXIS_C2H_TREADY",
-		C2H_STAT_DMA_ENG_0_S_AXIS_C2H_TREADY_MASK},
-	{"C2H_STAT_DMA_ENG_0_S_AXIS_WRB_TVALID",
-		C2H_STAT_DMA_ENG_0_S_AXIS_WRB_TVALID_MASK},
-	{"C2H_STAT_DMA_ENG_0_S_AXIS_WRB_TREADY",
-		C2H_STAT_DMA_ENG_0_S_AXIS_WRB_TREADY_MASK},
-	{"C2H_STAT_DMA_ENG_0_PLD_FIFO_IN_RDY",
-		C2H_STAT_DMA_ENG_0_PLD_FIFO_IN_RDY_MASK},
-	{"C2H_STAT_DMA_ENG_0_QID_FIFO_IN_RDY",
-		C2H_STAT_DMA_ENG_0_QID_FIFO_IN_RDY_MASK},
-	{"C2H_STAT_DMA_ENG_0_ARB_FIFO_OUT_VLD",
-		C2H_STAT_DMA_ENG_0_ARB_FIFO_OUT_VLD_MASK},
-	{"C2H_STAT_DMA_ENG_0_ARB_FIFO_OUT_QID",
-		C2H_STAT_DMA_ENG_0_ARB_FIFO_OUT_QID_MASK},
-	{"C2H_STAT_DMA_ENG_0_WRB_FIFO_IN_RDY",
-		C2H_STAT_DMA_ENG_0_WRB_FIFO_IN_RDY_MASK},
-	{"C2H_STAT_DMA_ENG_0_WRB_FIFO_OUT_CNT",
-		C2H_STAT_DMA_ENG_0_WRB_FIFO_OUT_CNT_MASK},
-	{"C2H_STAT_DMA_ENG_0_WRB_SM_CS",
-		C2H_STAT_DMA_ENG_0_WRB_SM_CS_MASK},
-	{"C2H_STAT_DMA_ENG_0_MAIN_SM_CS",
-		C2H_STAT_DMA_ENG_0_MAIN_SM_CS_MASK},
+	glbl_axis_c2h_cnt_a1_field_info[] = {
+	{"GLBL_AXIS_C2H_CNT_A1_SIDLE_CNTS",
+		GLBL_AXIS_C2H_CNT_A1_SIDLE_CNTS_MASK},
+	{"GLBL_AXIS_C2H_CNT_A1_SPKT_CNTS",
+		GLBL_AXIS_C2H_CNT_A1_SPKT_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_dbg_dma_eng_1_field_info[] = {
-	{"C2H_STAT_DMA_ENG_1_RSVD_1",
-		C2H_STAT_DMA_ENG_1_RSVD_1_MASK},
-	{"C2H_STAT_DMA_ENG_1_QID_FIFO_OUT_CNT",
-		C2H_STAT_DMA_ENG_1_QID_FIFO_OUT_CNT_MASK},
-	{"C2H_STAT_DMA_ENG_1_PLD_FIFO_OUT_CNT",
-		C2H_STAT_DMA_ENG_1_PLD_FIFO_OUT_CNT_MASK},
-	{"C2H_STAT_DMA_ENG_1_PLD_ST_FIFO_CNT",
-		C2H_STAT_DMA_ENG_1_PLD_ST_FIFO_CNT_MASK},
+	glbl_axis_c2h_cnt_a2_field_info[] = {
+	{"GLBL_AXIS_C2H_CNT_A2_SIDLE_CNTS",
+		GLBL_AXIS_C2H_CNT_A2_SIDLE_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_dbg_dma_eng_2_field_info[] = {
-	{"C2H_STAT_DMA_ENG_2_RSVD_1",
-		C2H_STAT_DMA_ENG_2_RSVD_1_MASK},
-	{"C2H_STAT_DMA_ENG_2_QID_FIFO_OUT_CNT",
-		C2H_STAT_DMA_ENG_2_QID_FIFO_OUT_CNT_MASK},
-	{"C2H_STAT_DMA_ENG_2_PLD_FIFO_OUT_CNT",
-		C2H_STAT_DMA_ENG_2_PLD_FIFO_OUT_CNT_MASK},
-	{"C2H_STAT_DMA_ENG_2_PLD_ST_FIFO_CNT",
-		C2H_STAT_DMA_ENG_2_PLD_ST_FIFO_CNT_MASK},
+	glbl_axis_c2h_cnt_a3_field_info[] = {
+	{"GLBL_AXIS_C2H_CNT_A3_SACTV_CNTS",
+		GLBL_AXIS_C2H_CNT_A3_SACTV_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_dbg_dma_eng_3_field_info[] = {
-	{"C2H_STAT_DMA_ENG_3_RSVD_1",
-		C2H_STAT_DMA_ENG_3_RSVD_1_MASK},
-	{"C2H_STAT_DMA_ENG_3_WRQ_FIFO_OUT_CNT",
-		C2H_STAT_DMA_ENG_3_WRQ_FIFO_OUT_CNT_MASK},
-	{"C2H_STAT_DMA_ENG_3_QID_FIFO_OUT_VLD",
-		C2H_STAT_DMA_ENG_3_QID_FIFO_OUT_VLD_MASK},
-	{"C2H_STAT_DMA_ENG_3_PLD_FIFO_OUT_VLD",
-		C2H_STAT_DMA_ENG_3_PLD_FIFO_OUT_VLD_MASK},
-	{"C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_VLD",
-		C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_VLD_MASK},
-	{"C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_EOP",
-		C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_EOP_MASK},
-	{"C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_AVL_IDX_ENABLE",
-		C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_AVL_IDX_ENABLE_MASK},
-	{"C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_DROP",
-		C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_DROP_MASK},
-	{"C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_ERR",
-		C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_ERR_MASK},
-	{"C2H_STAT_DMA_ENG_3_DESC_CNT_FIFO_IN_RDY",
-		C2H_STAT_DMA_ENG_3_DESC_CNT_FIFO_IN_RDY_MASK},
-	{"C2H_STAT_DMA_ENG_3_DESC_RSP_FIFO_IN_RDY",
-		C2H_STAT_DMA_ENG_3_DESC_RSP_FIFO_IN_RDY_MASK},
-	{"C2H_STAT_DMA_ENG_3_PLD_PKT_ID_LARGER_0",
-		C2H_STAT_DMA_ENG_3_PLD_PKT_ID_LARGER_0_MASK},
-	{"C2H_STAT_DMA_ENG_3_WRQ_VLD",
-		C2H_STAT_DMA_ENG_3_WRQ_VLD_MASK},
-	{"C2H_STAT_DMA_ENG_3_WRQ_RDY",
-		C2H_STAT_DMA_ENG_3_WRQ_RDY_MASK},
-	{"C2H_STAT_DMA_ENG_3_WRQ_FIFO_OUT_RDY",
-		C2H_STAT_DMA_ENG_3_WRQ_FIFO_OUT_RDY_MASK},
-	{"C2H_STAT_DMA_ENG_3_WRQ_PACKET_OUT_DATA_DROP",
-		C2H_STAT_DMA_ENG_3_WRQ_PACKET_OUT_DATA_DROP_MASK},
-	{"C2H_STAT_DMA_ENG_3_WRQ_PACKET_OUT_DATA_ERR",
-		C2H_STAT_DMA_ENG_3_WRQ_PACKET_OUT_DATA_ERR_MASK},
-	{"C2H_STAT_DMA_ENG_3_WRQ_PACKET_OUT_DATA_MARKER",
-		C2H_STAT_DMA_ENG_3_WRQ_PACKET_OUT_DATA_MARKER_MASK},
-	{"C2H_STAT_DMA_ENG_3_WRQ_PACKET_PRE_EOR",
-		C2H_STAT_DMA_ENG_3_WRQ_PACKET_PRE_EOR_MASK},
-	{"C2H_STAT_DMA_ENG_3_WCP_FIFO_IN_RDY",
-		C2H_STAT_DMA_ENG_3_WCP_FIFO_IN_RDY_MASK},
-	{"C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_IN_RDY",
-		C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_IN_RDY_MASK},
+	glbl_axis_c2h_cnt_a4_field_info[] = {
+	{"GLBL_AXIS_C2H_CNT_A4_SBUSY_CNTS",
+		GLBL_AXIS_C2H_CNT_A4_SBUSY_CNTS_MASK},
+	{"GLBL_AXIS_C2H_CNT_A4_SACTV_CNTS",
+		GLBL_AXIS_C2H_CNT_A4_SACTV_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_dbg_pfch_err_ctxt_field_info[] = {
-	{"C2H_PFCH_ERR_CTXT_RSVD_1",
-		C2H_PFCH_ERR_CTXT_RSVD_1_MASK},
-	{"C2H_PFCH_ERR_CTXT_ERR_STAT",
-		C2H_PFCH_ERR_CTXT_ERR_STAT_MASK},
-	{"C2H_PFCH_ERR_CTXT_CMD_WR",
-		C2H_PFCH_ERR_CTXT_CMD_WR_MASK},
-	{"C2H_PFCH_ERR_CTXT_QID",
-		C2H_PFCH_ERR_CTXT_QID_MASK},
-	{"C2H_PFCH_ERR_CTXT_DONE",
-		C2H_PFCH_ERR_CTXT_DONE_MASK},
+	glbl_axis_c2h_cnt_a5_field_info[] = {
+	{"GLBL_AXIS_C2H_CNT_A5_SBUSY_CNTS",
+		GLBL_AXIS_C2H_CNT_A5_SBUSY_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_first_err_qid_field_info[] = {
-	{"C2H_FIRST_ERR_QID_RSVD_1",
-		C2H_FIRST_ERR_QID_RSVD_1_MASK},
-	{"C2H_FIRST_ERR_QID_ERR_TYPE",
-		C2H_FIRST_ERR_QID_ERR_TYPE_MASK},
-	{"C2H_FIRST_ERR_QID_RSVD",
-		C2H_FIRST_ERR_QID_RSVD_MASK},
-	{"C2H_FIRST_ERR_QID_QID",
-		C2H_FIRST_ERR_QID_QID_MASK},
+	glbl_m_axi_wr_cnt_a0_field_info[] = {
+	{"GLBL_M_AXI_WR_CNT_A0_PKT_CNTS",
+		GLBL_M_AXI_WR_CNT_A0_PKT_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	stat_num_wrb_in_field_info[] = {
-	{"STAT_NUM_WRB_IN_RSVD_1",
-		STAT_NUM_WRB_IN_RSVD_1_MASK},
-	{"STAT_NUM_WRB_IN_WRB_CNT",
-		STAT_NUM_WRB_IN_WRB_CNT_MASK},
+	glbl_m_axi_wr_cnt_a1_field_info[] = {
+	{"GLBL_M_AXI_WR_CNT_A1_IDLE_CNTS",
+		GLBL_M_AXI_WR_CNT_A1_IDLE_CNTS_MASK},
+	{"GLBL_M_AXI_WR_CNT_A1_PKT_CNTS",
+		GLBL_M_AXI_WR_CNT_A1_PKT_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	stat_num_wrb_out_field_info[] = {
-	{"STAT_NUM_WRB_OUT_RSVD_1",
-		STAT_NUM_WRB_OUT_RSVD_1_MASK},
-	{"STAT_NUM_WRB_OUT_WRB_CNT",
-		STAT_NUM_WRB_OUT_WRB_CNT_MASK},
+	glbl_m_axi_wr_cnt_a2_field_info[] = {
+	{"GLBL_M_AXI_WR_CNT_A2_IDLE_CNTS",
+		GLBL_M_AXI_WR_CNT_A2_IDLE_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	stat_num_wrb_drp_field_info[] = {
-	{"STAT_NUM_WRB_DRP_RSVD_1",
-		STAT_NUM_WRB_DRP_RSVD_1_MASK},
-	{"STAT_NUM_WRB_DRP_WRB_CNT",
-		STAT_NUM_WRB_DRP_WRB_CNT_MASK},
+	glbl_m_axi_wr_cnt_a3_field_info[] = {
+	{"GLBL_M_AXI_WR_CNT_A3_ACTV_CNTS",
+		GLBL_M_AXI_WR_CNT_A3_ACTV_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	stat_num_stat_desc_out_field_info[] = {
-	{"STAT_NUM_STAT_DESC_OUT_RSVD_1",
-		STAT_NUM_STAT_DESC_OUT_RSVD_1_MASK},
-	{"STAT_NUM_STAT_DESC_OUT_CNT",
-		STAT_NUM_STAT_DESC_OUT_CNT_MASK},
+	glbl_m_axi_wr_cnt_a4_field_info[] = {
+	{"GLBL_M_AXI_WR_CNT_A4_BUSY_CNTS",
+		GLBL_M_AXI_WR_CNT_A4_BUSY_CNTS_MASK},
+	{"GLBL_M_AXI_WR_CNT_A4_ACTV_CNTS",
+		GLBL_M_AXI_WR_CNT_A4_ACTV_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	stat_num_dsc_crdt_sent_field_info[] = {
-	{"STAT_NUM_DSC_CRDT_SENT_RSVD_1",
-		STAT_NUM_DSC_CRDT_SENT_RSVD_1_MASK},
-	{"STAT_NUM_DSC_CRDT_SENT_CNT",
-		STAT_NUM_DSC_CRDT_SENT_CNT_MASK},
+	glbl_m_axi_wr_cnt_a5_field_info[] = {
+	{"GLBL_M_AXI_WR_CNT_A5_BUSY_CNTS",
+		GLBL_M_AXI_WR_CNT_A5_BUSY_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	stat_num_fch_dsc_rcvd_field_info[] = {
-	{"STAT_NUM_FCH_DSC_RCVD_RSVD_1",
-		STAT_NUM_FCH_DSC_RCVD_RSVD_1_MASK},
-	{"STAT_NUM_FCH_DSC_RCVD_DSC_CNT",
-		STAT_NUM_FCH_DSC_RCVD_DSC_CNT_MASK},
+	glbl_m_axi_rd_cnt_a0_field_info[] = {
+	{"GLBL_M_AXI_RD_CNT_A0_PKT_CNTS",
+		GLBL_M_AXI_RD_CNT_A0_PKT_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	stat_num_byp_dsc_rcvd_field_info[] = {
-	{"STAT_NUM_BYP_DSC_RCVD_RSVD_1",
-		STAT_NUM_BYP_DSC_RCVD_RSVD_1_MASK},
-	{"STAT_NUM_BYP_DSC_RCVD_DSC_CNT",
-		STAT_NUM_BYP_DSC_RCVD_DSC_CNT_MASK},
+	glbl_m_axi_rd_cnt_a1_field_info[] = {
+	{"GLBL_M_AXI_RD_CNT_A1_IDLE_CNTS",
+		GLBL_M_AXI_RD_CNT_A1_IDLE_CNTS_MASK},
+	{"GLBL_M_AXI_RD_CNT_A1_PKT_CNTS",
+		GLBL_M_AXI_RD_CNT_A1_PKT_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_wrb_coal_cfg_field_info[] = {
-	{"C2H_WRB_COAL_CFG_MAX_BUF_SZ",
-		C2H_WRB_COAL_CFG_MAX_BUF_SZ_MASK},
-	{"C2H_WRB_COAL_CFG_TICK_VAL",
-		C2H_WRB_COAL_CFG_TICK_VAL_MASK},
-	{"C2H_WRB_COAL_CFG_TICK_CNT",
-		C2H_WRB_COAL_CFG_TICK_CNT_MASK},
-	{"C2H_WRB_COAL_CFG_SET_GLB_FLUSH",
-		C2H_WRB_COAL_CFG_SET_GLB_FLUSH_MASK},
-	{"C2H_WRB_COAL_CFG_DONE_GLB_FLUSH",
-		C2H_WRB_COAL_CFG_DONE_GLB_FLUSH_MASK},
+	glbl_m_axi_rd_cnt_a2_field_info[] = {
+	{"GLBL_M_AXI_RD_CNT_A2_IDLE_CNTS",
+		GLBL_M_AXI_RD_CNT_A2_IDLE_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_intr_h2c_req_field_info[] = {
-	{"C2H_INTR_H2C_REQ_RSVD_1",
-		C2H_INTR_H2C_REQ_RSVD_1_MASK},
-	{"C2H_INTR_H2C_REQ_CNT",
-		C2H_INTR_H2C_REQ_CNT_MASK},
+	glbl_m_axi_rd_cnt_a3_field_info[] = {
+	{"GLBL_M_AXI_RD_CNT_A3_ACTV_CNTS",
+		GLBL_M_AXI_RD_CNT_A3_ACTV_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_intr_c2h_mm_req_field_info[] = {
-	{"C2H_INTR_C2H_MM_REQ_RSVD_1",
-		C2H_INTR_C2H_MM_REQ_RSVD_1_MASK},
-	{"C2H_INTR_C2H_MM_REQ_CNT",
-		C2H_INTR_C2H_MM_REQ_CNT_MASK},
+	glbl_m_axi_rd_cnt_a4_field_info[] = {
+	{"GLBL_M_AXI_RD_CNT_A4_BUSY_CNTS",
+		GLBL_M_AXI_RD_CNT_A4_BUSY_CNTS_MASK},
+	{"GLBL_M_AXI_RD_CNT_A4_ACTV_CNTS",
+		GLBL_M_AXI_RD_CNT_A4_ACTV_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_intr_err_int_req_field_info[] = {
-	{"C2H_INTR_ERR_INT_REQ_RSVD_1",
-		C2H_INTR_ERR_INT_REQ_RSVD_1_MASK},
-	{"C2H_INTR_ERR_INT_REQ_CNT",
-		C2H_INTR_ERR_INT_REQ_CNT_MASK},
+	glbl_m_axi_rd_cnt_a5_field_info[] = {
+	{"GLBL_M_AXI_RD_CNT_A5_BUSY_CNTS",
+		GLBL_M_AXI_RD_CNT_A5_BUSY_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_intr_c2h_st_req_field_info[] = {
-	{"C2H_INTR_C2H_ST_REQ_RSVD_1",
-		C2H_INTR_C2H_ST_REQ_RSVD_1_MASK},
-	{"C2H_INTR_C2H_ST_REQ_CNT",
-		C2H_INTR_C2H_ST_REQ_CNT_MASK},
+	glbl_m_axib_wr_cnt_a0_field_info[] = {
+	{"GLBL_M_AXIB_WR_CNT_A0_PKT_CNTS",
+		GLBL_M_AXIB_WR_CNT_A0_PKT_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_intr_h2c_err_c2h_mm_msix_ack_field_info[] = {
-	{"C2H_INTR_H2C_ERR_C2H_MM_MSIX_ACK_RSVD_1",
-		C2H_INTR_H2C_ERR_C2H_MM_MSIX_ACK_RSVD_1_MASK},
-	{"C2H_INTR_H2C_ERR_C2H_MM_MSIX_ACK_CNT",
-		C2H_INTR_H2C_ERR_C2H_MM_MSIX_ACK_CNT_MASK},
+	glbl_m_axib_wr_cnt_a1_field_info[] = {
+	{"GLBL_M_AXIB_WR_CNT_A1_IDLE_CNTS",
+		GLBL_M_AXIB_WR_CNT_A1_IDLE_CNTS_MASK},
+	{"GLBL_M_AXIB_WR_CNT_A1_PKT_CNTS",
+		GLBL_M_AXIB_WR_CNT_A1_PKT_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_intr_h2c_err_c2h_mm_msix_fail_field_info[] = {
-	{"C2H_INTR_H2C_ERR_C2H_MM_MSIX_FAIL_RSVD_1",
-		C2H_INTR_H2C_ERR_C2H_MM_MSIX_FAIL_RSVD_1_MASK},
-	{"C2H_INTR_H2C_ERR_C2H_MM_MSIX_FAIL_CNT",
-		C2H_INTR_H2C_ERR_C2H_MM_MSIX_FAIL_CNT_MASK},
+	glbl_m_axib_wr_cnt_a2_field_info[] = {
+	{"GLBL_M_AXIB_WR_CNT_A2_IDLE_CNTS",
+		GLBL_M_AXIB_WR_CNT_A2_IDLE_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_intr_h2c_err_c2h_mm_msix_no_msix_field_info[] = {
-	{"C2H_INTR_H2C_ERR_C2H_MM_MSIX_NO_MSIX_RSVD_1",
-		C2H_INTR_H2C_ERR_C2H_MM_MSIX_NO_MSIX_RSVD_1_MASK},
-	{"C2H_INTR_H2C_ERR_C2H_MM_MSIX_NO_MSIX_CNT",
-		C2H_INTR_H2C_ERR_C2H_MM_MSIX_NO_MSIX_CNT_MASK},
+	glbl_m_axib_wr_cnt_a3_field_info[] = {
+	{"GLBL_M_AXIB_WR_CNT_A3_ACTV_CNTS",
+		GLBL_M_AXIB_WR_CNT_A3_ACTV_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_intr_h2c_err_c2h_mm_ctxt_inval_field_info[] = {
-	{"C2H_INTR_H2C_ERR_C2H_MM_CTXT_INVAL_RSVD_1",
-		C2H_INTR_H2C_ERR_C2H_MM_CTXT_INVAL_RSVD_1_MASK},
-	{"C2H_INTR_H2C_ERR_C2H_MM_CTXT_INVAL_CNT",
-		C2H_INTR_H2C_ERR_C2H_MM_CTXT_INVAL_CNT_MASK},
+	glbl_m_axib_wr_cnt_a4_field_info[] = {
+	{"GLBL_M_AXIB_WR_CNT_A4_BUSY_CNTS",
+		GLBL_M_AXIB_WR_CNT_A4_BUSY_CNTS_MASK},
+	{"GLBL_M_AXIB_WR_CNT_A4_ACTV_CNTS",
+		GLBL_M_AXIB_WR_CNT_A4_ACTV_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_intr_c2h_st_msix_ack_field_info[] = {
-	{"C2H_INTR_C2H_ST_MSIX_ACK_RSVD_1",
-		C2H_INTR_C2H_ST_MSIX_ACK_RSVD_1_MASK},
-	{"C2H_INTR_C2H_ST_MSIX_ACK_CNT",
-		C2H_INTR_C2H_ST_MSIX_ACK_CNT_MASK},
+	glbl_m_axib_wr_cnt_a5_field_info[] = {
+	{"GLBL_M_AXIB_WR_CNT_A5_BUSY_CNTS",
+		GLBL_M_AXIB_WR_CNT_A5_BUSY_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_intr_c2h_st_msix_fail_field_info[] = {
-	{"C2H_INTR_C2H_ST_MSIX_FAIL_RSVD_1",
-		C2H_INTR_C2H_ST_MSIX_FAIL_RSVD_1_MASK},
-	{"C2H_INTR_C2H_ST_MSIX_FAIL_CNT",
-		C2H_INTR_C2H_ST_MSIX_FAIL_CNT_MASK},
+	glbl_m_axib_rd_cnt_a0_field_info[] = {
+	{"GLBL_M_AXIB_RD_CNT_A0_PKT_CNTS",
+		GLBL_M_AXIB_RD_CNT_A0_PKT_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_intr_c2h_st_no_msix_field_info[] = {
-	{"C2H_INTR_C2H_ST_NO_MSIX_RSVD_1",
-		C2H_INTR_C2H_ST_NO_MSIX_RSVD_1_MASK},
-	{"C2H_INTR_C2H_ST_NO_MSIX_CNT",
-		C2H_INTR_C2H_ST_NO_MSIX_CNT_MASK},
+	glbl_m_axib_rd_cnt_a1_field_info[] = {
+	{"GLBL_M_AXIB_RD_CNT_A1_IDLE_CNTS",
+		GLBL_M_AXIB_RD_CNT_A1_IDLE_CNTS_MASK},
+	{"GLBL_M_AXIB_RD_CNT_A1_PKT_CNTS",
+		GLBL_M_AXIB_RD_CNT_A1_PKT_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_intr_c2h_st_ctxt_inval_field_info[] = {
-	{"C2H_INTR_C2H_ST_CTXT_INVAL_RSVD_1",
-		C2H_INTR_C2H_ST_CTXT_INVAL_RSVD_1_MASK},
-	{"C2H_INTR_C2H_ST_CTXT_INVAL_CNT",
-		C2H_INTR_C2H_ST_CTXT_INVAL_CNT_MASK},
+	glbl_m_axib_rd_cnt_a2_field_info[] = {
+	{"GLBL_M_AXIB_RD_CNT_A2_IDLE_CNTS",
+		GLBL_M_AXIB_RD_CNT_A2_IDLE_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_wr_cmp_field_info[] = {
-	{"C2H_STAT_WR_CMP_RSVD_1",
-		C2H_STAT_WR_CMP_RSVD_1_MASK},
-	{"C2H_STAT_WR_CMP_CNT",
-		C2H_STAT_WR_CMP_CNT_MASK},
+	glbl_m_axib_rd_cnt_a3_field_info[] = {
+	{"GLBL_M_AXIB_RD_CNT_A3_ACTV_CNTS",
+		GLBL_M_AXIB_RD_CNT_A3_ACTV_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_dbg_dma_eng_4_field_info[] = {
-	{"C2H_STAT_DMA_ENG_4_RSVD_1",
-		C2H_STAT_DMA_ENG_4_RSVD_1_MASK},
-	{"C2H_STAT_DMA_ENG_4_WRQ_FIFO_OUT_CNT",
-		C2H_STAT_DMA_ENG_4_WRQ_FIFO_OUT_CNT_MASK},
-	{"C2H_STAT_DMA_ENG_4_QID_FIFO_OUT_VLD",
-		C2H_STAT_DMA_ENG_4_QID_FIFO_OUT_VLD_MASK},
-	{"C2H_STAT_DMA_ENG_4_PLD_FIFO_OUT_VLD",
-		C2H_STAT_DMA_ENG_4_PLD_FIFO_OUT_VLD_MASK},
-	{"C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_VLD",
-		C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_VLD_MASK},
-	{"C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_EOP",
-		C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_EOP_MASK},
-	{"C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_AVL_IDX_ENABLE",
-		C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_AVL_IDX_ENABLE_MASK},
-	{"C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_DROP",
-		C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_DROP_MASK},
-	{"C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_ERR",
-		C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_ERR_MASK},
-	{"C2H_STAT_DMA_ENG_4_DESC_CNT_FIFO_IN_RDY",
-		C2H_STAT_DMA_ENG_4_DESC_CNT_FIFO_IN_RDY_MASK},
-	{"C2H_STAT_DMA_ENG_4_DESC_RSP_FIFO_IN_RDY",
-		C2H_STAT_DMA_ENG_4_DESC_RSP_FIFO_IN_RDY_MASK},
-	{"C2H_STAT_DMA_ENG_4_PLD_PKT_ID_LARGER_0",
-		C2H_STAT_DMA_ENG_4_PLD_PKT_ID_LARGER_0_MASK},
-	{"C2H_STAT_DMA_ENG_4_WRQ_VLD",
-		C2H_STAT_DMA_ENG_4_WRQ_VLD_MASK},
-	{"C2H_STAT_DMA_ENG_4_WRQ_RDY",
-		C2H_STAT_DMA_ENG_4_WRQ_RDY_MASK},
-	{"C2H_STAT_DMA_ENG_4_WRQ_FIFO_OUT_RDY",
-		C2H_STAT_DMA_ENG_4_WRQ_FIFO_OUT_RDY_MASK},
-	{"C2H_STAT_DMA_ENG_4_WRQ_PACKET_OUT_DATA_DROP",
-		C2H_STAT_DMA_ENG_4_WRQ_PACKET_OUT_DATA_DROP_MASK},
-	{"C2H_STAT_DMA_ENG_4_WRQ_PACKET_OUT_DATA_ERR",
-		C2H_STAT_DMA_ENG_4_WRQ_PACKET_OUT_DATA_ERR_MASK},
-	{"C2H_STAT_DMA_ENG_4_WRQ_PACKET_OUT_DATA_MARKER",
-		C2H_STAT_DMA_ENG_4_WRQ_PACKET_OUT_DATA_MARKER_MASK},
-	{"C2H_STAT_DMA_ENG_4_WRQ_PACKET_PRE_EOR",
-		C2H_STAT_DMA_ENG_4_WRQ_PACKET_PRE_EOR_MASK},
-	{"C2H_STAT_DMA_ENG_4_WCP_FIFO_IN_RDY",
-		C2H_STAT_DMA_ENG_4_WCP_FIFO_IN_RDY_MASK},
-	{"C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_IN_RDY",
-		C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_IN_RDY_MASK},
+	glbl_m_axib_rd_cnt_a4_field_info[] = {
+	{"GLBL_M_AXIB_RD_CNT_A4_BUSY_CNTS",
+		GLBL_M_AXIB_RD_CNT_A4_BUSY_CNTS_MASK},
+	{"GLBL_M_AXIB_RD_CNT_A4_ACTV_CNTS",
+		GLBL_M_AXIB_RD_CNT_A4_ACTV_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_dbg_dma_eng_5_field_info[] = {
-	{"C2H_STAT_DMA_ENG_5_RSVD_1",
-		C2H_STAT_DMA_ENG_5_RSVD_1_MASK},
-	{"C2H_STAT_DMA_ENG_5_WRB_SM_VIRT_CH",
-		C2H_STAT_DMA_ENG_5_WRB_SM_VIRT_CH_MASK},
-	{"C2H_STAT_DMA_ENG_5_WRB_FIFO_IN_REQ",
-		C2H_STAT_DMA_ENG_5_WRB_FIFO_IN_REQ_MASK},
-	{"C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_CNT",
-		C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_CNT_MASK},
-	{"C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_LEN",
-		C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_LEN_MASK},
-	{"C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_VIRT_CH",
-		C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_VIRT_CH_MASK},
-	{"C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_VAR_DESC",
-		C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_VAR_DESC_MASK},
-	{"C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_DROP_REQ",
-		C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_DROP_REQ_MASK},
-	{"C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_NUM_BUF_OV",
-		C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_NUM_BUF_OV_MASK},
-	{"C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_MARKER",
-		C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_MARKER_MASK},
-	{"C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_HAS_CMPT",
-		C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_HAS_CMPT_MASK},
+	glbl_m_axib_rd_cnt_a5_field_info[] = {
+	{"GLBL_M_AXIB_RD_CNT_A5_BUSY_CNTS",
+		GLBL_M_AXIB_RD_CNT_A5_BUSY_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_dbg_pfch_qid_field_info[] = {
-	{"C2H_PFCH_QID_RSVD_1",
-		C2H_PFCH_QID_RSVD_1_MASK},
-	{"C2H_PFCH_QID_ERR_CTXT",
-		C2H_PFCH_QID_ERR_CTXT_MASK},
-	{"C2H_PFCH_QID_TARGET",
-		C2H_PFCH_QID_TARGET_MASK},
-	{"C2H_PFCH_QID_QID_OR_TAG",
-		C2H_PFCH_QID_QID_OR_TAG_MASK},
+	glbl_s_axi_wr_cnt_a0_field_info[] = {
+	{"GLBL_S_AXI_WR_CNT_A0_PKT_CNTS",
+		GLBL_S_AXI_WR_CNT_A0_PKT_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_dbg_pfch_field_info[] = {
-	{"C2H_PFCH_DATA",
-		C2H_PFCH_DATA_MASK},
+	glbl_s_axi_wr_cnt_a1_field_info[] = {
+	{"GLBL_S_AXI_WR_CNT_A1_IDLE_CNTS",
+		GLBL_S_AXI_WR_CNT_A1_IDLE_CNTS_MASK},
+	{"GLBL_S_AXI_WR_CNT_A1_PKT_CNTS",
+		GLBL_S_AXI_WR_CNT_A1_PKT_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_int_dbg_field_info[] = {
-	{"C2H_INT_RSVD_1",
-		C2H_INT_RSVD_1_MASK},
-	{"C2H_INT_INT_COAL_SM",
-		C2H_INT_INT_COAL_SM_MASK},
-	{"C2H_INT_INT_SM",
-		C2H_INT_INT_SM_MASK},
+	glbl_s_axi_wr_cnt_a2_field_info[] = {
+	{"GLBL_S_AXI_WR_CNT_A2_IDLE_CNTS",
+		GLBL_S_AXI_WR_CNT_A2_IDLE_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_imm_accepted_field_info[] = {
-	{"C2H_STAT_IMM_ACCEPTED_RSVD_1",
-		C2H_STAT_IMM_ACCEPTED_RSVD_1_MASK},
-	{"C2H_STAT_IMM_ACCEPTED_CNT",
-		C2H_STAT_IMM_ACCEPTED_CNT_MASK},
+	glbl_s_axi_wr_cnt_a3_field_info[] = {
+	{"GLBL_S_AXI_WR_CNT_A3_ACTV_CNTS",
+		GLBL_S_AXI_WR_CNT_A3_ACTV_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_marker_accepted_field_info[] = {
-	{"C2H_STAT_MARKER_ACCEPTED_RSVD_1",
-		C2H_STAT_MARKER_ACCEPTED_RSVD_1_MASK},
-	{"C2H_STAT_MARKER_ACCEPTED_CNT",
-		C2H_STAT_MARKER_ACCEPTED_CNT_MASK},
+	glbl_s_axi_wr_cnt_a4_field_info[] = {
+	{"GLBL_S_AXI_WR_CNT_A4_BUSY_CNTS",
+		GLBL_S_AXI_WR_CNT_A4_BUSY_CNTS_MASK},
+	{"GLBL_S_AXI_WR_CNT_A4_ACTV_CNTS",
+		GLBL_S_AXI_WR_CNT_A4_ACTV_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_disable_cmp_accepted_field_info[] = {
-	{"C2H_STAT_DISABLE_CMP_ACCEPTED_RSVD_1",
-		C2H_STAT_DISABLE_CMP_ACCEPTED_RSVD_1_MASK},
-	{"C2H_STAT_DISABLE_CMP_ACCEPTED_CNT",
-		C2H_STAT_DISABLE_CMP_ACCEPTED_CNT_MASK},
+	glbl_s_axi_wr_cnt_a5_field_info[] = {
+	{"GLBL_S_AXI_WR_CNT_A5_BUSY_CNTS",
+		GLBL_S_AXI_WR_CNT_A5_BUSY_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_pld_fifo_crdt_cnt_field_info[] = {
-	{"C2H_PLD_FIFO_CRDT_CNT_RSVD_1",
-		C2H_PLD_FIFO_CRDT_CNT_RSVD_1_MASK},
-	{"C2H_PLD_FIFO_CRDT_CNT_CNT",
-		C2H_PLD_FIFO_CRDT_CNT_CNT_MASK},
+	glbl_s_axi_rd_cnt_a0_field_info[] = {
+	{"GLBL_S_AXI_RD_CNT_A0_PKT_CNTS",
+		GLBL_S_AXI_RD_CNT_A0_PKT_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_intr_dyn_req_field_info[] = {
-	{"C2H_INTR_DYN_REQ_RSVD_1",
-		C2H_INTR_DYN_REQ_RSVD_1_MASK},
-	{"C2H_INTR_DYN_REQ_CNT",
-		C2H_INTR_DYN_REQ_CNT_MASK},
+	glbl_s_axi_rd_cnt_a1_field_info[] = {
+	{"GLBL_S_AXI_RD_CNT_A1_IDLE_CNTS",
+		GLBL_S_AXI_RD_CNT_A1_IDLE_CNTS_MASK},
+	{"GLBL_S_AXI_RD_CNT_A1_PKT_CNTS",
+		GLBL_S_AXI_RD_CNT_A1_PKT_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_intr_dyn_misc_field_info[] = {
-	{"C2H_INTR_DYN_MISC_RSVD_1",
-		C2H_INTR_DYN_MISC_RSVD_1_MASK},
-	{"C2H_INTR_DYN_MISC_CNT",
-		C2H_INTR_DYN_MISC_CNT_MASK},
+	glbl_s_axi_rd_cnt_a2_field_info[] = {
+	{"GLBL_S_AXI_RD_CNT_A2_IDLE_CNTS",
+		GLBL_S_AXI_RD_CNT_A2_IDLE_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_drop_len_mismatch_field_info[] = {
-	{"C2H_DROP_LEN_MISMATCH_RSVD_1",
-		C2H_DROP_LEN_MISMATCH_RSVD_1_MASK},
-	{"C2H_DROP_LEN_MISMATCH_CNT",
-		C2H_DROP_LEN_MISMATCH_CNT_MASK},
+	glbl_s_axi_rd_cnt_a3_field_info[] = {
+	{"GLBL_S_AXI_RD_CNT_A3_ACTV_CNTS",
+		GLBL_S_AXI_RD_CNT_A3_ACTV_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_drop_desc_rsp_len_field_info[] = {
-	{"C2H_DROP_DESC_RSP_LEN_RSVD_1",
-		C2H_DROP_DESC_RSP_LEN_RSVD_1_MASK},
-	{"C2H_DROP_DESC_RSP_LEN_CNT",
-		C2H_DROP_DESC_RSP_LEN_CNT_MASK},
+	glbl_s_axi_rd_cnt_a4_field_info[] = {
+	{"GLBL_S_AXI_RD_CNT_A4_BUSY_CNTS",
+		GLBL_S_AXI_RD_CNT_A4_BUSY_CNTS_MASK},
+	{"GLBL_S_AXI_RD_CNT_A4_ACTV_CNTS",
+		GLBL_S_AXI_RD_CNT_A4_ACTV_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_drop_qid_fifo_len_field_info[] = {
-	{"C2H_DROP_QID_FIFO_LEN_RSVD_1",
-		C2H_DROP_QID_FIFO_LEN_RSVD_1_MASK},
-	{"C2H_DROP_QID_FIFO_LEN_CNT",
-		C2H_DROP_QID_FIFO_LEN_CNT_MASK},
+	glbl_s_axi_rd_cnt_a5_field_info[] = {
+	{"GLBL_S_AXI_RD_CNT_A5_BUSY_CNTS",
+		GLBL_S_AXI_RD_CNT_A5_BUSY_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_drop_pld_cnt_field_info[] = {
-	{"C2H_DROP_PLD_CNT_RSVD_1",
-		C2H_DROP_PLD_CNT_RSVD_1_MASK},
-	{"C2H_DROP_PLD_CNT_CNT",
-		C2H_DROP_PLD_CNT_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_cmpt_format_0_field_info[] = {
-	{"C2H_CMPT_FORMAT_0_DESC_ERR_LOC",
-		C2H_CMPT_FORMAT_0_DESC_ERR_LOC_MASK},
-	{"C2H_CMPT_FORMAT_0_COLOR_LOC",
-		C2H_CMPT_FORMAT_0_COLOR_LOC_MASK},
-};
-
-
-static struct regfield_info
-	c2h_cmpt_format_1_field_info[] = {
-	{"C2H_CMPT_FORMAT_1_DESC_ERR_LOC",
-		C2H_CMPT_FORMAT_1_DESC_ERR_LOC_MASK},
-	{"C2H_CMPT_FORMAT_1_COLOR_LOC",
-		C2H_CMPT_FORMAT_1_COLOR_LOC_MASK},
-};
-
-
-static struct regfield_info
-	c2h_cmpt_format_2_field_info[] = {
-	{"C2H_CMPT_FORMAT_2_DESC_ERR_LOC",
-		C2H_CMPT_FORMAT_2_DESC_ERR_LOC_MASK},
-	{"C2H_CMPT_FORMAT_2_COLOR_LOC",
-		C2H_CMPT_FORMAT_2_COLOR_LOC_MASK},
+	glbl_s_axis_cmp_cnt_a0_field_info[] = {
+	{"GLBL_S_AXIS_CMP_CNT_A0_PKT_CNTS",
+		GLBL_S_AXIS_CMP_CNT_A0_PKT_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_cmpt_format_3_field_info[] = {
-	{"C2H_CMPT_FORMAT_3_DESC_ERR_LOC",
-		C2H_CMPT_FORMAT_3_DESC_ERR_LOC_MASK},
-	{"C2H_CMPT_FORMAT_3_COLOR_LOC",
-		C2H_CMPT_FORMAT_3_COLOR_LOC_MASK},
+	glbl_s_axis_cmp_cnt_a1_field_info[] = {
+	{"GLBL_S_AXIS_CMP_CNT_A1_IDLE_CNTS",
+		GLBL_S_AXIS_CMP_CNT_A1_IDLE_CNTS_MASK},
+	{"GLBL_S_AXIS_CMP_CNT_A1_PKT_CNTS",
+		GLBL_S_AXIS_CMP_CNT_A1_PKT_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_cmpt_format_4_field_info[] = {
-	{"C2H_CMPT_FORMAT_4_DESC_ERR_LOC",
-		C2H_CMPT_FORMAT_4_DESC_ERR_LOC_MASK},
-	{"C2H_CMPT_FORMAT_4_COLOR_LOC",
-		C2H_CMPT_FORMAT_4_COLOR_LOC_MASK},
+	glbl_s_axis_cmp_cnt_a2_field_info[] = {
+	{"GLBL_S_AXIS_CMP_CNT_A2_IDLE_CNTS",
+		GLBL_S_AXIS_CMP_CNT_A2_IDLE_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_cmpt_format_5_field_info[] = {
-	{"C2H_CMPT_FORMAT_5_DESC_ERR_LOC",
-		C2H_CMPT_FORMAT_5_DESC_ERR_LOC_MASK},
-	{"C2H_CMPT_FORMAT_5_COLOR_LOC",
-		C2H_CMPT_FORMAT_5_COLOR_LOC_MASK},
+	glbl_s_axis_cmp_cnt_a3_field_info[] = {
+	{"GLBL_S_AXIS_CMP_CNT_A3_ACTV_CNTS",
+		GLBL_S_AXIS_CMP_CNT_A3_ACTV_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_cmpt_format_6_field_info[] = {
-	{"C2H_CMPT_FORMAT_6_DESC_ERR_LOC",
-		C2H_CMPT_FORMAT_6_DESC_ERR_LOC_MASK},
-	{"C2H_CMPT_FORMAT_6_COLOR_LOC",
-		C2H_CMPT_FORMAT_6_COLOR_LOC_MASK},
+	glbl_s_axis_cmp_cnt_a4_field_info[] = {
+	{"GLBL_S_AXIS_CMP_CNT_A4_BUSY_CNTS",
+		GLBL_S_AXIS_CMP_CNT_A4_BUSY_CNTS_MASK},
+	{"GLBL_S_AXIS_CMP_CNT_A4_ACTV_CNTS",
+		GLBL_S_AXIS_CMP_CNT_A4_ACTV_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_pfch_cache_depth_field_info[] = {
-	{"C2H_PFCH_CACHE_DEPTH_MAX_STBUF",
-		C2H_PFCH_CACHE_DEPTH_MAX_STBUF_MASK},
-	{"C2H_PFCH_CACHE_DEPTH",
-		C2H_PFCH_CACHE_DEPTH_MASK},
+	glbl_s_axis_cmp_cnt_a5_field_info[] = {
+	{"GLBL_S_AXIS_CMP_CNT_A5_BUSY_CNTS",
+		GLBL_S_AXIS_CMP_CNT_A5_BUSY_CNTS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_wrb_coal_buf_depth_field_info[] = {
-	{"C2H_WRB_COAL_BUF_DEPTH_RSVD_1",
-		C2H_WRB_COAL_BUF_DEPTH_RSVD_1_MASK},
-	{"C2H_WRB_COAL_BUF_DEPTH_BUFFER",
-		C2H_WRB_COAL_BUF_DEPTH_BUFFER_MASK},
+	ind_ctxt_data_field_info[] = {
+	{"IND_CTXT_DATA_DATA",
+		IND_CTXT_DATA_DATA_MASK},
 };
 
 
 static struct regfield_info
-	c2h_pfch_crdt_field_info[] = {
-	{"C2H_PFCH_CRDT_RSVD_1",
-		C2H_PFCH_CRDT_RSVD_1_MASK},
-	{"C2H_PFCH_CRDT_RSVD_2",
-		C2H_PFCH_CRDT_RSVD_2_MASK},
+	ind_ctxt_mask_field_info[] = {
+	{"IND_CTXT",
+		IND_CTXT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_has_cmpt_accepted_field_info[] = {
-	{"C2H_STAT_HAS_CMPT_ACCEPTED_RSVD_1",
-		C2H_STAT_HAS_CMPT_ACCEPTED_RSVD_1_MASK},
-	{"C2H_STAT_HAS_CMPT_ACCEPTED_CNT",
-		C2H_STAT_HAS_CMPT_ACCEPTED_CNT_MASK},
+	ind_ctxt_cmd_field_info[] = {
+	{"IND_CTXT_CMD_RSVD_1",
+		IND_CTXT_CMD_RSVD_1_MASK},
+	{"IND_CTXT_CMD_QID",
+		IND_CTXT_CMD_QID_MASK},
+	{"IND_CTXT_CMD_OP",
+		IND_CTXT_CMD_OP_MASK},
+	{"IND_CTXT_CMD_SEL",
+		IND_CTXT_CMD_SEL_MASK},
+	{"IND_CTXT_CMD_BUSY",
+		IND_CTXT_CMD_BUSY_MASK},
 };
 
 
 static struct regfield_info
-	c2h_stat_has_pld_accepted_field_info[] = {
-	{"C2H_STAT_HAS_PLD_ACCEPTED_RSVD_1",
-		C2H_STAT_HAS_PLD_ACCEPTED_RSVD_1_MASK},
-	{"C2H_STAT_HAS_PLD_ACCEPTED_CNT",
-		C2H_STAT_HAS_PLD_ACCEPTED_CNT_MASK},
+	c2h_timer_cnt_field_info[] = {
+	{"C2H_TIMER_CNT_RSVD_1",
+		C2H_TIMER_CNT_RSVD_1_MASK},
+	{"C2H_TIMER_CNT",
+		C2H_TIMER_CNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_pld_pkt_id_field_info[] = {
-	{"C2H_PLD_PKT_ID_CMPT_WAIT",
-		C2H_PLD_PKT_ID_CMPT_WAIT_MASK},
-	{"C2H_PLD_PKT_ID_DATA",
-		C2H_PLD_PKT_ID_DATA_MASK},
+	c2h_cnt_th_field_info[] = {
+	{"C2H_CNT_TH_RSVD_1",
+		C2H_CNT_TH_RSVD_1_MASK},
+	{"C2H_CNT_TH_THESHOLD_CNT",
+		C2H_CNT_TH_THESHOLD_CNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_pld_pkt_id_1_field_info[] = {
-	{"C2H_PLD_PKT_ID_1_CMPT_WAIT",
-		C2H_PLD_PKT_ID_1_CMPT_WAIT_MASK},
-	{"C2H_PLD_PKT_ID_1_DATA",
-		C2H_PLD_PKT_ID_1_DATA_MASK},
+	c2h_pfch_cfg_1_field_info[] = {
+	{"C2H_PFCH_CFG_1_EVT_QCNT_TH",
+		C2H_PFCH_CFG_1_EVT_QCNT_TH_MASK},
+	{"C2H_PFCH_CFG_1_QCNT",
+		C2H_PFCH_CFG_1_QCNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_drop_pld_cnt_1_field_info[] = {
-	{"C2H_DROP_PLD_CNT_1_RSVD_1",
-		C2H_DROP_PLD_CNT_1_RSVD_1_MASK},
-	{"C2H_DROP_PLD_CNT_1_CNT",
-		C2H_DROP_PLD_CNT_1_CNT_MASK},
+	c2h_pfch_cfg_2_field_info[] = {
+	{"C2H_PFCH_CFG_2_FENCE",
+		C2H_PFCH_CFG_2_FENCE_MASK},
+	{"C2H_PFCH_CFG_2_RSVD",
+		C2H_PFCH_CFG_2_RSVD_MASK},
+	{"C2H_PFCH_CFG_2_VAR_DESC_NO_DROP",
+		C2H_PFCH_CFG_2_VAR_DESC_NO_DROP_MASK},
+	{"C2H_PFCH_CFG_2_LL_SZ_TH",
+		C2H_PFCH_CFG_2_LL_SZ_TH_MASK},
+	{"C2H_PFCH_CFG_2_VAR_DESC_NUM",
+		C2H_PFCH_CFG_2_VAR_DESC_NUM_MASK},
+	{"C2H_PFCH_CFG_2_NUM",
+		C2H_PFCH_CFG_2_NUM_MASK},
 };
 
 
 static struct regfield_info
-	h2c_err_stat_field_info[] = {
-	{"H2C_ERR_STAT_RSVD_1",
-		H2C_ERR_STAT_RSVD_1_MASK},
-	{"H2C_ERR_STAT_PAR_ERR",
-		H2C_ERR_STAT_PAR_ERR_MASK},
-	{"H2C_ERR_STAT_SBE",
-		H2C_ERR_STAT_SBE_MASK},
-	{"H2C_ERR_STAT_DBE",
-		H2C_ERR_STAT_DBE_MASK},
-	{"H2C_ERR_STAT_NO_DMA_DS",
-		H2C_ERR_STAT_NO_DMA_DS_MASK},
-	{"H2C_ERR_STAT_SDI_MRKR_REQ_MOP_ERR",
-		H2C_ERR_STAT_SDI_MRKR_REQ_MOP_ERR_MASK},
-	{"H2C_ERR_STAT_ZERO_LEN_DS",
-		H2C_ERR_STAT_ZERO_LEN_DS_MASK},
+	c2h_stat_s_axis_c2h_accepted_field_info[] = {
+	{"C2H_STAT_S_AXIS_C2H_ACCEPTED",
+		C2H_STAT_S_AXIS_C2H_ACCEPTED_MASK},
 };
 
 
 static struct regfield_info
-	h2c_err_mask_field_info[] = {
-	{"H2C_ERR_EN",
-		H2C_ERR_EN_MASK},
+	c2h_stat_s_axis_wrb_accepted_field_info[] = {
+	{"C2H_STAT_S_AXIS_WRB_ACCEPTED",
+		C2H_STAT_S_AXIS_WRB_ACCEPTED_MASK},
 };
 
 
 static struct regfield_info
-	h2c_first_err_qid_field_info[] = {
-	{"H2C_FIRST_ERR_QID_RSVD_1",
-		H2C_FIRST_ERR_QID_RSVD_1_MASK},
-	{"H2C_FIRST_ERR_QID_ERR_TYPE",
-		H2C_FIRST_ERR_QID_ERR_TYPE_MASK},
-	{"H2C_FIRST_ERR_QID_RSVD_2",
-		H2C_FIRST_ERR_QID_RSVD_2_MASK},
-	{"H2C_FIRST_ERR_QID_QID",
-		H2C_FIRST_ERR_QID_QID_MASK},
+	c2h_stat_desc_rsp_pkt_accepted_field_info[] = {
+	{"C2H_STAT_DESC_RSP_PKT_ACCEPTED_D",
+		C2H_STAT_DESC_RSP_PKT_ACCEPTED_D_MASK},
 };
 
 
 static struct regfield_info
-	h2c_dbg_reg0_field_info[] = {
-	{"H2C_REG0_NUM_DSC_RCVD",
-		H2C_REG0_NUM_DSC_RCVD_MASK},
-	{"H2C_REG0_NUM_WRB_SENT",
-		H2C_REG0_NUM_WRB_SENT_MASK},
+	c2h_stat_axis_pkg_cmp_field_info[] = {
+	{"C2H_STAT_AXIS_PKG_CMP",
+		C2H_STAT_AXIS_PKG_CMP_MASK},
 };
 
 
 static struct regfield_info
-	h2c_dbg_reg1_field_info[] = {
-	{"H2C_REG1_NUM_REQ_SENT",
-		H2C_REG1_NUM_REQ_SENT_MASK},
-	{"H2C_REG1_NUM_CMP_SENT",
-		H2C_REG1_NUM_CMP_SENT_MASK},
+	c2h_stat_desc_rsp_accepted_field_info[] = {
+	{"C2H_STAT_DESC_RSP_ACCEPTED_D",
+		C2H_STAT_DESC_RSP_ACCEPTED_D_MASK},
 };
 
 
 static struct regfield_info
-	h2c_dbg_reg2_field_info[] = {
-	{"H2C_REG2_RSVD_1",
-		H2C_REG2_RSVD_1_MASK},
-	{"H2C_REG2_NUM_ERR_DSC_RCVD",
-		H2C_REG2_NUM_ERR_DSC_RCVD_MASK},
+	c2h_stat_desc_rsp_cmp_field_info[] = {
+	{"C2H_STAT_DESC_RSP_CMP_D",
+		C2H_STAT_DESC_RSP_CMP_D_MASK},
 };
 
 
 static struct regfield_info
-	h2c_dbg_reg3_field_info[] = {
-	{"H2C_REG3_RSVD_1",
-		H2C_REG3_RSVD_1_MASK},
-	{"H2C_REG3_DSCO_FIFO_EMPTY",
-		H2C_REG3_DSCO_FIFO_EMPTY_MASK},
-	{"H2C_REG3_DSCO_FIFO_FULL",
-		H2C_REG3_DSCO_FIFO_FULL_MASK},
-	{"H2C_REG3_CUR_RC_STATE",
-		H2C_REG3_CUR_RC_STATE_MASK},
-	{"H2C_REG3_RDREQ_LINES",
-		H2C_REG3_RDREQ_LINES_MASK},
-	{"H2C_REG3_RDATA_LINES_AVAIL",
-		H2C_REG3_RDATA_LINES_AVAIL_MASK},
-	{"H2C_REG3_PEND_FIFO_EMPTY",
-		H2C_REG3_PEND_FIFO_EMPTY_MASK},
-	{"H2C_REG3_PEND_FIFO_FULL",
-		H2C_REG3_PEND_FIFO_FULL_MASK},
-	{"H2C_REG3_CUR_RQ_STATE",
-		H2C_REG3_CUR_RQ_STATE_MASK},
-	{"H2C_REG3_DSCI_FIFO_FULL",
-		H2C_REG3_DSCI_FIFO_FULL_MASK},
-	{"H2C_REG3_DSCI_FIFO_EMPTY",
-		H2C_REG3_DSCI_FIFO_EMPTY_MASK},
+	c2h_stat_wrq_out_field_info[] = {
+	{"C2H_STAT_WRQ_OUT",
+		C2H_STAT_WRQ_OUT_MASK},
 };
 
 
 static struct regfield_info
-	h2c_dbg_reg4_field_info[] = {
-	{"H2C_REG4_RDREQ_ADDR",
-		H2C_REG4_RDREQ_ADDR_MASK},
+	c2h_stat_wpl_ren_accepted_field_info[] = {
+	{"C2H_STAT_WPL_REN_ACCEPTED",
+		C2H_STAT_WPL_REN_ACCEPTED_MASK},
 };
 
 
 static struct regfield_info
-	h2c_fatal_err_en_field_info[] = {
-	{"H2C_FATAL_ERR_EN_RSVD_1",
-		H2C_FATAL_ERR_EN_RSVD_1_MASK},
-	{"H2C_FATAL_ERR_EN_H2C",
-		H2C_FATAL_ERR_EN_H2C_MASK},
+	c2h_stat_total_wrq_len_field_info[] = {
+	{"C2H_STAT_TOTAL_WRQ_LEN",
+		C2H_STAT_TOTAL_WRQ_LEN_MASK},
 };
 
 
 static struct regfield_info
-	h2c_req_throt_pcie_field_info[] = {
-	{"H2C_REQ_THROT_PCIE_EN_REQ",
-		H2C_REQ_THROT_PCIE_EN_REQ_MASK},
-	{"H2C_REQ_THROT_PCIE",
-		H2C_REQ_THROT_PCIE_MASK},
-	{"H2C_REQ_THROT_PCIE_EN_DATA",
-		H2C_REQ_THROT_PCIE_EN_DATA_MASK},
-	{"H2C_REQ_THROT_PCIE_DATA_THRESH",
-		H2C_REQ_THROT_PCIE_DATA_THRESH_MASK},
+	c2h_stat_total_wpl_len_field_info[] = {
+	{"C2H_STAT_TOTAL_WPL_LEN",
+		C2H_STAT_TOTAL_WPL_LEN_MASK},
 };
 
 
 static struct regfield_info
-	h2c_aln_dbg_reg0_field_info[] = {
-	{"H2C_ALN_REG0_NUM_PKT_SENT",
-		H2C_ALN_REG0_NUM_PKT_SENT_MASK},
+	c2h_buf_sz_field_info[] = {
+	{"C2H_BUF_SZ_IZE",
+		C2H_BUF_SZ_IZE_MASK},
 };
 
 
 static struct regfield_info
-	h2c_req_throt_aximm_field_info[] = {
-	{"H2C_REQ_THROT_AXIMM_EN_REQ",
-		H2C_REQ_THROT_AXIMM_EN_REQ_MASK},
-	{"H2C_REQ_THROT_AXIMM",
-		H2C_REQ_THROT_AXIMM_MASK},
-	{"H2C_REQ_THROT_AXIMM_EN_DATA",
-		H2C_REQ_THROT_AXIMM_EN_DATA_MASK},
-	{"H2C_REQ_THROT_AXIMM_DATA_THRESH",
-		H2C_REQ_THROT_AXIMM_DATA_THRESH_MASK},
+	c2h_err_stat_field_info[] = {
+	{"C2H_ERR_STAT_RSVD_1",
+		C2H_ERR_STAT_RSVD_1_MASK},
+	{"C2H_ERR_STAT_WRB_PORT_ID_ERR",
+		C2H_ERR_STAT_WRB_PORT_ID_ERR_MASK},
+	{"C2H_ERR_STAT_HDR_PAR_ERR",
+		C2H_ERR_STAT_HDR_PAR_ERR_MASK},
+	{"C2H_ERR_STAT_HDR_ECC_COR_ERR",
+		C2H_ERR_STAT_HDR_ECC_COR_ERR_MASK},
+	{"C2H_ERR_STAT_HDR_ECC_UNC_ERR",
+		C2H_ERR_STAT_HDR_ECC_UNC_ERR_MASK},
+	{"C2H_ERR_STAT_AVL_RING_DSC_ERR",
+		C2H_ERR_STAT_AVL_RING_DSC_ERR_MASK},
+	{"C2H_ERR_STAT_WRB_PRTY_ERR",
+		C2H_ERR_STAT_WRB_PRTY_ERR_MASK},
+	{"C2H_ERR_STAT_WRB_CIDX_ERR",
+		C2H_ERR_STAT_WRB_CIDX_ERR_MASK},
+	{"C2H_ERR_STAT_WRB_QFULL_ERR",
+		C2H_ERR_STAT_WRB_QFULL_ERR_MASK},
+	{"C2H_ERR_STAT_WRB_INV_Q_ERR",
+		C2H_ERR_STAT_WRB_INV_Q_ERR_MASK},
+	{"C2H_ERR_STAT_RSVD_2",
+		C2H_ERR_STAT_RSVD_2_MASK},
+	{"C2H_ERR_STAT_PORT_ID_CTXT_MISMATCH",
+		C2H_ERR_STAT_PORT_ID_CTXT_MISMATCH_MASK},
+	{"C2H_ERR_STAT_ERR_DESC_CNT",
+		C2H_ERR_STAT_ERR_DESC_CNT_MASK},
+	{"C2H_ERR_STAT_RSVD_3",
+		C2H_ERR_STAT_RSVD_3_MASK},
+	{"C2H_ERR_STAT_MSI_INT_FAIL",
+		C2H_ERR_STAT_MSI_INT_FAIL_MASK},
+	{"C2H_ERR_STAT_ENG_WPL_DATA_PAR_ERR",
+		C2H_ERR_STAT_ENG_WPL_DATA_PAR_ERR_MASK},
+	{"C2H_ERR_STAT_RSVD_4",
+		C2H_ERR_STAT_RSVD_4_MASK},
+	{"C2H_ERR_STAT_DESC_RSP_ERR",
+		C2H_ERR_STAT_DESC_RSP_ERR_MASK},
+	{"C2H_ERR_STAT_QID_MISMATCH",
+		C2H_ERR_STAT_QID_MISMATCH_MASK},
+	{"C2H_ERR_STAT_SH_CMPT_DSC_ERR",
+		C2H_ERR_STAT_SH_CMPT_DSC_ERR_MASK},
+	{"C2H_ERR_STAT_LEN_MISMATCH",
+		C2H_ERR_STAT_LEN_MISMATCH_MASK},
+	{"C2H_ERR_STAT_MTY_MISMATCH",
+		C2H_ERR_STAT_MTY_MISMATCH_MASK},
 };
 
 
 static struct regfield_info
-	c2h_mm_ctl_field_info[] = {
-	{"C2H_MM_CTL_RESERVED1",
-		C2H_MM_CTL_RESERVED1_MASK},
-	{"C2H_MM_CTL_ERRC_EN",
-		C2H_MM_CTL_ERRC_EN_MASK},
-	{"C2H_MM_CTL_RESERVED0",
-		C2H_MM_CTL_RESERVED0_MASK},
-	{"C2H_MM_CTL_RUN",
-		C2H_MM_CTL_RUN_MASK},
+	c2h_err_mask_field_info[] = {
+	{"C2H_ERR_EN",
+		C2H_ERR_EN_MASK},
 };
 
 
 static struct regfield_info
-	c2h_mm_status_field_info[] = {
-	{"C2H_MM_STATUS_RSVD_1",
-		C2H_MM_STATUS_RSVD_1_MASK},
-	{"C2H_MM_STATUS_RUN",
-		C2H_MM_STATUS_RUN_MASK},
+	c2h_fatal_err_stat_field_info[] = {
+	{"C2H_FATAL_ERR_STAT_RSVD_1",
+		C2H_FATAL_ERR_STAT_RSVD_1_MASK},
+	{"C2H_FATAL_ERR_STAT_HDR_ECC_UNC_ERR",
+		C2H_FATAL_ERR_STAT_HDR_ECC_UNC_ERR_MASK},
+	{"C2H_FATAL_ERR_STAT_AVL_RING_FIFO_RAM_RDBE",
+		C2H_FATAL_ERR_STAT_AVL_RING_FIFO_RAM_RDBE_MASK},
+	{"C2H_FATAL_ERR_STAT_WPL_DATA_PAR_ERR",
+		C2H_FATAL_ERR_STAT_WPL_DATA_PAR_ERR_MASK},
+	{"C2H_FATAL_ERR_STAT_PLD_FIFO_RAM_RDBE",
+		C2H_FATAL_ERR_STAT_PLD_FIFO_RAM_RDBE_MASK},
+	{"C2H_FATAL_ERR_STAT_QID_FIFO_RAM_RDBE",
+		C2H_FATAL_ERR_STAT_QID_FIFO_RAM_RDBE_MASK},
+	{"C2H_FATAL_ERR_STAT_CMPT_FIFO_RAM_RDBE",
+		C2H_FATAL_ERR_STAT_CMPT_FIFO_RAM_RDBE_MASK},
+	{"C2H_FATAL_ERR_STAT_WRB_COAL_DATA_RAM_RDBE",
+		C2H_FATAL_ERR_STAT_WRB_COAL_DATA_RAM_RDBE_MASK},
+	{"C2H_FATAL_ERR_STAT_RESERVED2",
+		C2H_FATAL_ERR_STAT_RESERVED2_MASK},
+	{"C2H_FATAL_ERR_STAT_INT_CTXT_RAM_RDBE",
+		C2H_FATAL_ERR_STAT_INT_CTXT_RAM_RDBE_MASK},
+	{"C2H_FATAL_ERR_STAT_DESC_REQ_FIFO_RAM_RDBE",
+		C2H_FATAL_ERR_STAT_DESC_REQ_FIFO_RAM_RDBE_MASK},
+	{"C2H_FATAL_ERR_STAT_PFCH_CTXT_RAM_RDBE",
+		C2H_FATAL_ERR_STAT_PFCH_CTXT_RAM_RDBE_MASK},
+	{"C2H_FATAL_ERR_STAT_WRB_CTXT_RAM_RDBE",
+		C2H_FATAL_ERR_STAT_WRB_CTXT_RAM_RDBE_MASK},
+	{"C2H_FATAL_ERR_STAT_PFCH_LL_RAM_RDBE",
+		C2H_FATAL_ERR_STAT_PFCH_LL_RAM_RDBE_MASK},
+	{"C2H_FATAL_ERR_STAT_TIMER_FIFO_RAM_RDBE",
+		C2H_FATAL_ERR_STAT_TIMER_FIFO_RAM_RDBE_MASK},
+	{"C2H_FATAL_ERR_STAT_QID_MISMATCH",
+		C2H_FATAL_ERR_STAT_QID_MISMATCH_MASK},
+	{"C2H_FATAL_ERR_STAT_RESERVED1",
+		C2H_FATAL_ERR_STAT_RESERVED1_MASK},
+	{"C2H_FATAL_ERR_STAT_LEN_MISMATCH",
+		C2H_FATAL_ERR_STAT_LEN_MISMATCH_MASK},
+	{"C2H_FATAL_ERR_STAT_MTY_MISMATCH",
+		C2H_FATAL_ERR_STAT_MTY_MISMATCH_MASK},
 };
 
 
 static struct regfield_info
-	c2h_mm_cmpl_desc_cnt_field_info[] = {
-	{"C2H_MM_CMPL_DESC_CNT_C2H_CO",
-		C2H_MM_CMPL_DESC_CNT_C2H_CO_MASK},
+	c2h_fatal_err_mask_field_info[] = {
+	{"C2H_FATAL_ERR_C2HEN",
+		C2H_FATAL_ERR_C2HEN_MASK},
 };
 
 
 static struct regfield_info
-	c2h_mm_err_code_enable_mask_field_info[] = {
-	{"C2H_MM_ERR_CODE_ENABLE_RESERVED1",
-		C2H_MM_ERR_CODE_ENABLE_RESERVED1_MASK},
-	{"C2H_MM_ERR_CODE_ENABLE_WR_UC_RAM",
-		C2H_MM_ERR_CODE_ENABLE_WR_UC_RAM_MASK},
-	{"C2H_MM_ERR_CODE_ENABLE_WR_UR",
-		C2H_MM_ERR_CODE_ENABLE_WR_UR_MASK},
-	{"C2H_MM_ERR_CODE_ENABLE_WR_FLR",
-		C2H_MM_ERR_CODE_ENABLE_WR_FLR_MASK},
-	{"C2H_MM_ERR_CODE_ENABLE_RESERVED0",
-		C2H_MM_ERR_CODE_ENABLE_RESERVED0_MASK},
-	{"C2H_MM_ERR_CODE_ENABLE_RD_SLV_ERR",
-		C2H_MM_ERR_CODE_ENABLE_RD_SLV_ERR_MASK},
-	{"C2H_MM_ERR_CODE_ENABLE_WR_SLV_ERR",
-		C2H_MM_ERR_CODE_ENABLE_WR_SLV_ERR_MASK},
+	c2h_fatal_err_enable_field_info[] = {
+	{"C2H_FATAL_ERR_ENABLE_RSVD_1",
+		C2H_FATAL_ERR_ENABLE_RSVD_1_MASK},
+	{"C2H_FATAL_ERR_ENABLE_WPL_PAR_INV",
+		C2H_FATAL_ERR_ENABLE_WPL_PAR_INV_MASK},
+	{"C2H_FATAL_ERR_ENABLE_WRQ_DIS",
+		C2H_FATAL_ERR_ENABLE_WRQ_DIS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_mm_err_code_field_info[] = {
-	{"C2H_MM_ERR_CODE_RESERVED1",
-		C2H_MM_ERR_CODE_RESERVED1_MASK},
-	{"C2H_MM_ERR_CODE_CIDX",
-		C2H_MM_ERR_CODE_CIDX_MASK},
-	{"C2H_MM_ERR_CODE_RESERVED0",
-		C2H_MM_ERR_CODE_RESERVED0_MASK},
-	{"C2H_MM_ERR_CODE_SUB_TYPE",
-		C2H_MM_ERR_CODE_SUB_TYPE_MASK},
-	{"C2H_MM_ERR_CODE",
-		C2H_MM_ERR_CODE_MASK},
+	glbl_err_int_field_info[] = {
+	{"GLBL_ERR_INT_RSVD_1",
+		GLBL_ERR_INT_RSVD_1_MASK},
+	{"GLBL_ERR_INT_HOST_ID",
+		GLBL_ERR_INT_HOST_ID_MASK},
+	{"GLBL_ERR_INT_DIS_INTR_ON_VF",
+		GLBL_ERR_INT_DIS_INTR_ON_VF_MASK},
+	{"GLBL_ERR_INT_ARM",
+		GLBL_ERR_INT_ARM_MASK},
+	{"GLBL_ERR_INT_EN_COAL",
+		GLBL_ERR_INT_EN_COAL_MASK},
+	{"GLBL_ERR_INT_VEC",
+		GLBL_ERR_INT_VEC_MASK},
+	{"GLBL_ERR_INT_FUNC",
+		GLBL_ERR_INT_FUNC_MASK},
 };
 
 
 static struct regfield_info
-	c2h_mm_err_info_field_info[] = {
-	{"C2H_MM_ERR_INFO_VALID",
-		C2H_MM_ERR_INFO_VALID_MASK},
-	{"C2H_MM_ERR_INFO_SEL",
-		C2H_MM_ERR_INFO_SEL_MASK},
-	{"C2H_MM_ERR_INFO_RSVD_1",
-		C2H_MM_ERR_INFO_RSVD_1_MASK},
-	{"C2H_MM_ERR_INFO_QID",
-		C2H_MM_ERR_INFO_QID_MASK},
+	c2h_pfch_cfg_field_info[] = {
+	{"C2H_PFCH_CFG_EVTFL_TH",
+		C2H_PFCH_CFG_EVTFL_TH_MASK},
+	{"C2H_PFCH_CFG_FL_TH",
+		C2H_PFCH_CFG_FL_TH_MASK},
 };
 
 
 static struct regfield_info
-	c2h_mm_perf_mon_ctl_field_info[] = {
-	{"C2H_MM_PERF_MON_CTL_RSVD_1",
-		C2H_MM_PERF_MON_CTL_RSVD_1_MASK},
-	{"C2H_MM_PERF_MON_CTL_IMM_START",
-		C2H_MM_PERF_MON_CTL_IMM_START_MASK},
-	{"C2H_MM_PERF_MON_CTL_RUN_START",
-		C2H_MM_PERF_MON_CTL_RUN_START_MASK},
-	{"C2H_MM_PERF_MON_CTL_IMM_CLEAR",
-		C2H_MM_PERF_MON_CTL_IMM_CLEAR_MASK},
-	{"C2H_MM_PERF_MON_CTL_RUN_CLEAR",
-		C2H_MM_PERF_MON_CTL_RUN_CLEAR_MASK},
+	c2h_int_timer_tick_field_info[] = {
+	{"C2H_INT_TIMER_TICK",
+		C2H_INT_TIMER_TICK_MASK},
 };
 
 
 static struct regfield_info
-	c2h_mm_perf_mon_cycle_cnt0_field_info[] = {
-	{"C2H_MM_PERF_MON_CYCLE_CNT0_CYC_CNT",
-		C2H_MM_PERF_MON_CYCLE_CNT0_CYC_CNT_MASK},
+	c2h_stat_desc_rsp_drop_accepted_field_info[] = {
+	{"C2H_STAT_DESC_RSP_DROP_ACCEPTED_D",
+		C2H_STAT_DESC_RSP_DROP_ACCEPTED_D_MASK},
 };
 
 
 static struct regfield_info
-	c2h_mm_perf_mon_cycle_cnt1_field_info[] = {
-	{"C2H_MM_PERF_MON_CYCLE_CNT1_RSVD_1",
-		C2H_MM_PERF_MON_CYCLE_CNT1_RSVD_1_MASK},
-	{"C2H_MM_PERF_MON_CYCLE_CNT1_CYC_CNT",
-		C2H_MM_PERF_MON_CYCLE_CNT1_CYC_CNT_MASK},
+	c2h_stat_desc_rsp_err_accepted_field_info[] = {
+	{"C2H_STAT_DESC_RSP_ERR_ACCEPTED_D",
+		C2H_STAT_DESC_RSP_ERR_ACCEPTED_D_MASK},
 };
 
 
 static struct regfield_info
-	c2h_mm_perf_mon_data_cnt0_field_info[] = {
-	{"C2H_MM_PERF_MON_DATA_CNT0_DCNT",
-		C2H_MM_PERF_MON_DATA_CNT0_DCNT_MASK},
+	c2h_stat_desc_req_field_info[] = {
+	{"C2H_STAT_DESC_REQ",
+		C2H_STAT_DESC_REQ_MASK},
 };
 
 
 static struct regfield_info
-	c2h_mm_perf_mon_data_cnt1_field_info[] = {
-	{"C2H_MM_PERF_MON_DATA_CNT1_RSVD_1",
-		C2H_MM_PERF_MON_DATA_CNT1_RSVD_1_MASK},
-	{"C2H_MM_PERF_MON_DATA_CNT1_DCNT",
-		C2H_MM_PERF_MON_DATA_CNT1_DCNT_MASK},
+	c2h_stat_dbg_dma_eng_0_field_info[] = {
+	{"C2H_STAT_DMA_ENG_0_S_AXIS_C2H_TVALID",
+		C2H_STAT_DMA_ENG_0_S_AXIS_C2H_TVALID_MASK},
+	{"C2H_STAT_DMA_ENG_0_S_AXIS_C2H_TREADY",
+		C2H_STAT_DMA_ENG_0_S_AXIS_C2H_TREADY_MASK},
+	{"C2H_STAT_DMA_ENG_0_S_AXIS_WRB_TVALID",
+		C2H_STAT_DMA_ENG_0_S_AXIS_WRB_TVALID_MASK},
+	{"C2H_STAT_DMA_ENG_0_S_AXIS_WRB_TREADY",
+		C2H_STAT_DMA_ENG_0_S_AXIS_WRB_TREADY_MASK},
+	{"C2H_STAT_DMA_ENG_0_PLD_FIFO_IN_RDY",
+		C2H_STAT_DMA_ENG_0_PLD_FIFO_IN_RDY_MASK},
+	{"C2H_STAT_DMA_ENG_0_QID_FIFO_IN_RDY",
+		C2H_STAT_DMA_ENG_0_QID_FIFO_IN_RDY_MASK},
+	{"C2H_STAT_DMA_ENG_0_ARB_FIFO_OUT_VLD",
+		C2H_STAT_DMA_ENG_0_ARB_FIFO_OUT_VLD_MASK},
+	{"C2H_STAT_DMA_ENG_0_ARB_FIFO_OUT_QID",
+		C2H_STAT_DMA_ENG_0_ARB_FIFO_OUT_QID_MASK},
+	{"C2H_STAT_DMA_ENG_0_WRB_FIFO_IN_RDY",
+		C2H_STAT_DMA_ENG_0_WRB_FIFO_IN_RDY_MASK},
+	{"C2H_STAT_DMA_ENG_0_WRB_FIFO_OUT_CNT",
+		C2H_STAT_DMA_ENG_0_WRB_FIFO_OUT_CNT_MASK},
+	{"C2H_STAT_DMA_ENG_0_WRB_SM_CS",
+		C2H_STAT_DMA_ENG_0_WRB_SM_CS_MASK},
+	{"C2H_STAT_DMA_ENG_0_MAIN_SM_CS",
+		C2H_STAT_DMA_ENG_0_MAIN_SM_CS_MASK},
 };
 
 
 static struct regfield_info
-	c2h_mm_dbg_field_info[] = {
-	{"C2H_MM_RSVD_1",
-		C2H_MM_RSVD_1_MASK},
-	{"C2H_MM_RRQ_ENTRIES",
-		C2H_MM_RRQ_ENTRIES_MASK},
-	{"C2H_MM_DAT_FIFO_SPC",
-		C2H_MM_DAT_FIFO_SPC_MASK},
-	{"C2H_MM_RD_STALL",
-		C2H_MM_RD_STALL_MASK},
-	{"C2H_MM_RRQ_FIFO_FI",
-		C2H_MM_RRQ_FIFO_FI_MASK},
-	{"C2H_MM_WR_STALL",
-		C2H_MM_WR_STALL_MASK},
-	{"C2H_MM_WRQ_FIFO_FI",
-		C2H_MM_WRQ_FIFO_FI_MASK},
-	{"C2H_MM_WBK_STALL",
-		C2H_MM_WBK_STALL_MASK},
-	{"C2H_MM_DSC_FIFO_EP",
-		C2H_MM_DSC_FIFO_EP_MASK},
-	{"C2H_MM_DSC_FIFO_FL",
-		C2H_MM_DSC_FIFO_FL_MASK},
+	c2h_stat_dbg_dma_eng_1_field_info[] = {
+	{"C2H_STAT_DMA_ENG_1_WRB_USER_0_CMPT_TYPE",
+		C2H_STAT_DMA_ENG_1_WRB_USER_0_CMPT_TYPE_MASK},
+	{"C2H_STAT_DMA_ENG_1_DESC_RSP_FIFO_OUT_VLD",
+		C2H_STAT_DMA_ENG_1_DESC_RSP_FIFO_OUT_VLD_MASK},
+	{"C2H_STAT_DMA_ENG_1_QID_FIFO_OUT_CNT",
+		C2H_STAT_DMA_ENG_1_QID_FIFO_OUT_CNT_MASK},
+	{"C2H_STAT_DMA_ENG_1_PLD_FIFO_OUT_CNT",
+		C2H_STAT_DMA_ENG_1_PLD_FIFO_OUT_CNT_MASK},
+	{"C2H_STAT_DMA_ENG_1_PLD_ST_FIFO_CNT",
+		C2H_STAT_DMA_ENG_1_PLD_ST_FIFO_CNT_MASK},
 };
 
 
 static struct regfield_info
-	h2c_mm_ctl_field_info[] = {
-	{"H2C_MM_CTL_RESERVED1",
-		H2C_MM_CTL_RESERVED1_MASK},
-	{"H2C_MM_CTL_ERRC_EN",
-		H2C_MM_CTL_ERRC_EN_MASK},
-	{"H2C_MM_CTL_RESERVED0",
-		H2C_MM_CTL_RESERVED0_MASK},
-	{"H2C_MM_CTL_RUN",
-		H2C_MM_CTL_RUN_MASK},
+	c2h_stat_dbg_dma_eng_2_field_info[] = {
+	{"C2H_STAT_DMA_ENG_2_WRB_USER_1_CMPT_TYPE",
+		C2H_STAT_DMA_ENG_2_WRB_USER_1_CMPT_TYPE_MASK},
+	{"C2H_STAT_DMA_ENG_2_DESC_RSP_FIFO_OUT_VLD_1",
+		C2H_STAT_DMA_ENG_2_DESC_RSP_FIFO_OUT_VLD_1_MASK},
+	{"C2H_STAT_DMA_ENG_2_QID_FIFO_OUT_CNT_1",
+		C2H_STAT_DMA_ENG_2_QID_FIFO_OUT_CNT_1_MASK},
+	{"C2H_STAT_DMA_ENG_2_PLD_FIFO_OUT_CNT_1",
+		C2H_STAT_DMA_ENG_2_PLD_FIFO_OUT_CNT_1_MASK},
+	{"C2H_STAT_DMA_ENG_2_PLD_ST_FIFO_CNT_1",
+		C2H_STAT_DMA_ENG_2_PLD_ST_FIFO_CNT_1_MASK},
 };
 
 
 static struct regfield_info
-	h2c_mm_status_field_info[] = {
-	{"H2C_MM_STATUS_RSVD_1",
-		H2C_MM_STATUS_RSVD_1_MASK},
-	{"H2C_MM_STATUS_RUN",
-		H2C_MM_STATUS_RUN_MASK},
+	c2h_stat_dbg_dma_eng_3_field_info[] = {
+	{"C2H_STAT_DMA_ENG_3_QID_FIFO_OUT_DAT_HAS_CMPT",
+		C2H_STAT_DMA_ENG_3_QID_FIFO_OUT_DAT_HAS_CMPT_MASK},
+	{"C2H_STAT_DMA_ENG_3_QID_FIFO_OUT_DAT_MARKER",
+		C2H_STAT_DMA_ENG_3_QID_FIFO_OUT_DAT_MARKER_MASK},
+	{"C2H_STAT_DMA_ENG_3_QID_FIFO_OUT_DAT_DROP_REQ",
+		C2H_STAT_DMA_ENG_3_QID_FIFO_OUT_DAT_DROP_REQ_MASK},
+	{"C2H_STAT_DMA_ENG_3_QID_FIFO_OUT_DAT_QID",
+		C2H_STAT_DMA_ENG_3_QID_FIFO_OUT_DAT_QID_MASK},
+	{"C2H_STAT_DMA_ENG_3_WR_HDR_FIFO_OUT_CNT",
+		C2H_STAT_DMA_ENG_3_WR_HDR_FIFO_OUT_CNT_MASK},
+	{"C2H_STAT_DMA_ENG_3_QID_FIFO_OUT_VLD",
+		C2H_STAT_DMA_ENG_3_QID_FIFO_OUT_VLD_MASK},
+	{"C2H_STAT_DMA_ENG_3_PLD_FIFO_OUT_VLD",
+		C2H_STAT_DMA_ENG_3_PLD_FIFO_OUT_VLD_MASK},
+	{"C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_VLD",
+		C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_VLD_MASK},
+	{"C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_EOP",
+		C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_EOP_MASK},
+	{"C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_AVL_IDX_ENABLE",
+		C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_AVL_IDX_ENABLE_MASK},
+	{"C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_DROP",
+		C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_DROP_MASK},
+	{"C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_ERR",
+		C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_OUT_DATA_ERR_MASK},
+	{"C2H_STAT_DMA_ENG_3_DESC_CNT_FIFO_IN_RDY",
+		C2H_STAT_DMA_ENG_3_DESC_CNT_FIFO_IN_RDY_MASK},
+	{"C2H_STAT_DMA_ENG_3_DESC_RSP_FIFO_IN_RDY",
+		C2H_STAT_DMA_ENG_3_DESC_RSP_FIFO_IN_RDY_MASK},
+	{"C2H_STAT_DMA_ENG_3_PLD_PKT_ID_LARGER",
+		C2H_STAT_DMA_ENG_3_PLD_PKT_ID_LARGER_MASK},
+	{"C2H_STAT_DMA_ENG_3_WCP_FIFO_IN_RDY",
+		C2H_STAT_DMA_ENG_3_WCP_FIFO_IN_RDY_MASK},
+	{"C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_IN_RDY",
+		C2H_STAT_DMA_ENG_3_PLD_ST_FIFO_IN_RDY_MASK},
 };
 
 
 static struct regfield_info
-	h2c_mm_cmpl_desc_cnt_field_info[] = {
-	{"H2C_MM_CMPL_DESC_CNT_H2C_CO",
-		H2C_MM_CMPL_DESC_CNT_H2C_CO_MASK},
+	c2h_dbg_pfch_err_ctxt_field_info[] = {
+	{"C2H_PFCH_ERR_CTXT_RSVD_1",
+		C2H_PFCH_ERR_CTXT_RSVD_1_MASK},
+	{"C2H_PFCH_ERR_CTXT_ERR_STAT",
+		C2H_PFCH_ERR_CTXT_ERR_STAT_MASK},
+	{"C2H_PFCH_ERR_CTXT_CMD_WR",
+		C2H_PFCH_ERR_CTXT_CMD_WR_MASK},
+	{"C2H_PFCH_ERR_CTXT_QID",
+		C2H_PFCH_ERR_CTXT_QID_MASK},
+	{"C2H_PFCH_ERR_CTXT_DONE",
+		C2H_PFCH_ERR_CTXT_DONE_MASK},
 };
 
 
 static struct regfield_info
-	h2c_mm_err_code_enable_mask_field_info[] = {
-	{"H2C_MM_ERR_CODE_ENABLE_RESERVED5",
-		H2C_MM_ERR_CODE_ENABLE_RESERVED5_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_WR_SLV_ERR",
-		H2C_MM_ERR_CODE_ENABLE_WR_SLV_ERR_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_WR_DEC_ERR",
-		H2C_MM_ERR_CODE_ENABLE_WR_DEC_ERR_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RESERVED4",
-		H2C_MM_ERR_CODE_ENABLE_RESERVED4_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RD_RQ_DIS_ERR",
-		H2C_MM_ERR_CODE_ENABLE_RD_RQ_DIS_ERR_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RESERVED3",
-		H2C_MM_ERR_CODE_ENABLE_RESERVED3_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RD_DAT_POISON_ERR",
-		H2C_MM_ERR_CODE_ENABLE_RD_DAT_POISON_ERR_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RESERVED2",
-		H2C_MM_ERR_CODE_ENABLE_RESERVED2_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RD_FLR_ERR",
-		H2C_MM_ERR_CODE_ENABLE_RD_FLR_ERR_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RESERVED1",
-		H2C_MM_ERR_CODE_ENABLE_RESERVED1_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RD_HDR_ADR_ERR",
-		H2C_MM_ERR_CODE_ENABLE_RD_HDR_ADR_ERR_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RD_HDR_PARA",
-		H2C_MM_ERR_CODE_ENABLE_RD_HDR_PARA_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RD_HDR_BYTE_ERR",
-		H2C_MM_ERR_CODE_ENABLE_RD_HDR_BYTE_ERR_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RD_UR_CA",
-		H2C_MM_ERR_CODE_ENABLE_RD_UR_CA_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RD_HRD_POISON_ERR",
-		H2C_MM_ERR_CODE_ENABLE_RD_HRD_POISON_ERR_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RESERVED0",
-		H2C_MM_ERR_CODE_ENABLE_RESERVED0_MASK},
+	c2h_first_err_qid_field_info[] = {
+	{"C2H_FIRST_ERR_QID_RSVD_1",
+		C2H_FIRST_ERR_QID_RSVD_1_MASK},
+	{"C2H_FIRST_ERR_QID_ERR_TYPE",
+		C2H_FIRST_ERR_QID_ERR_TYPE_MASK},
+	{"C2H_FIRST_ERR_QID_RSVD",
+		C2H_FIRST_ERR_QID_RSVD_MASK},
+	{"C2H_FIRST_ERR_QID_QID",
+		C2H_FIRST_ERR_QID_QID_MASK},
 };
 
 
 static struct regfield_info
-	h2c_mm_err_code_field_info[] = {
-	{"H2C_MM_ERR_CODE_RSVD_1",
-		H2C_MM_ERR_CODE_RSVD_1_MASK},
-	{"H2C_MM_ERR_CODE_CIDX",
-		H2C_MM_ERR_CODE_CIDX_MASK},
-	{"H2C_MM_ERR_CODE_RESERVED0",
-		H2C_MM_ERR_CODE_RESERVED0_MASK},
-	{"H2C_MM_ERR_CODE_SUB_TYPE",
-		H2C_MM_ERR_CODE_SUB_TYPE_MASK},
-	{"H2C_MM_ERR_CODE",
-		H2C_MM_ERR_CODE_MASK},
+	stat_num_wrb_in_field_info[] = {
+	{"STAT_NUM_WRB_IN_RSVD_1",
+		STAT_NUM_WRB_IN_RSVD_1_MASK},
+	{"STAT_NUM_WRB_IN_WRB_CNT",
+		STAT_NUM_WRB_IN_WRB_CNT_MASK},
 };
 
 
 static struct regfield_info
-	h2c_mm_err_info_field_info[] = {
-	{"H2C_MM_ERR_INFO_VALID",
-		H2C_MM_ERR_INFO_VALID_MASK},
-	{"H2C_MM_ERR_INFO_SEL",
-		H2C_MM_ERR_INFO_SEL_MASK},
-	{"H2C_MM_ERR_INFO_RSVD_1",
-		H2C_MM_ERR_INFO_RSVD_1_MASK},
-	{"H2C_MM_ERR_INFO_QID",
-		H2C_MM_ERR_INFO_QID_MASK},
+	stat_num_wrb_out_field_info[] = {
+	{"STAT_NUM_WRB_OUT_RSVD_1",
+		STAT_NUM_WRB_OUT_RSVD_1_MASK},
+	{"STAT_NUM_WRB_OUT_WRB_CNT",
+		STAT_NUM_WRB_OUT_WRB_CNT_MASK},
 };
 
 
 static struct regfield_info
-	h2c_mm_perf_mon_ctl_field_info[] = {
-	{"H2C_MM_PERF_MON_CTL_RSVD_1",
-		H2C_MM_PERF_MON_CTL_RSVD_1_MASK},
-	{"H2C_MM_PERF_MON_CTL_IMM_START",
-		H2C_MM_PERF_MON_CTL_IMM_START_MASK},
-	{"H2C_MM_PERF_MON_CTL_RUN_START",
-		H2C_MM_PERF_MON_CTL_RUN_START_MASK},
-	{"H2C_MM_PERF_MON_CTL_IMM_CLEAR",
-		H2C_MM_PERF_MON_CTL_IMM_CLEAR_MASK},
-	{"H2C_MM_PERF_MON_CTL_RUN_CLEAR",
-		H2C_MM_PERF_MON_CTL_RUN_CLEAR_MASK},
+	stat_num_wrb_drp_field_info[] = {
+	{"STAT_NUM_WRB_DRP_RSVD_1",
+		STAT_NUM_WRB_DRP_RSVD_1_MASK},
+	{"STAT_NUM_WRB_DRP_WRB_CNT",
+		STAT_NUM_WRB_DRP_WRB_CNT_MASK},
 };
 
 
 static struct regfield_info
-	h2c_mm_perf_mon_cycle_cnt0_field_info[] = {
-	{"H2C_MM_PERF_MON_CYCLE_CNT0_CYC_CNT",
-		H2C_MM_PERF_MON_CYCLE_CNT0_CYC_CNT_MASK},
+	stat_num_stat_desc_out_field_info[] = {
+	{"STAT_NUM_STAT_DESC_OUT_RSVD_1",
+		STAT_NUM_STAT_DESC_OUT_RSVD_1_MASK},
+	{"STAT_NUM_STAT_DESC_OUT_CNT",
+		STAT_NUM_STAT_DESC_OUT_CNT_MASK},
 };
 
 
 static struct regfield_info
-	h2c_mm_perf_mon_cycle_cnt1_field_info[] = {
-	{"H2C_MM_PERF_MON_CYCLE_CNT1_RSVD_1",
-		H2C_MM_PERF_MON_CYCLE_CNT1_RSVD_1_MASK},
-	{"H2C_MM_PERF_MON_CYCLE_CNT1_CYC_CNT",
-		H2C_MM_PERF_MON_CYCLE_CNT1_CYC_CNT_MASK},
+	stat_num_dsc_crdt_sent_field_info[] = {
+	{"STAT_NUM_DSC_CRDT_SENT_RSVD_1",
+		STAT_NUM_DSC_CRDT_SENT_RSVD_1_MASK},
+	{"STAT_NUM_DSC_CRDT_SENT_CNT",
+		STAT_NUM_DSC_CRDT_SENT_CNT_MASK},
 };
 
 
 static struct regfield_info
-	h2c_mm_perf_mon_data_cnt0_field_info[] = {
-	{"H2C_MM_PERF_MON_DATA_CNT0_DCNT",
-		H2C_MM_PERF_MON_DATA_CNT0_DCNT_MASK},
+	stat_num_fch_dsc_rcvd_field_info[] = {
+	{"STAT_NUM_FCH_DSC_RCVD_RSVD_1",
+		STAT_NUM_FCH_DSC_RCVD_RSVD_1_MASK},
+	{"STAT_NUM_FCH_DSC_RCVD_DSC_CNT",
+		STAT_NUM_FCH_DSC_RCVD_DSC_CNT_MASK},
 };
 
 
 static struct regfield_info
-	h2c_mm_perf_mon_data_cnt1_field_info[] = {
-	{"H2C_MM_PERF_MON_DATA_CNT1_RSVD_1",
-		H2C_MM_PERF_MON_DATA_CNT1_RSVD_1_MASK},
-	{"H2C_MM_PERF_MON_DATA_CNT1_DCNT",
-		H2C_MM_PERF_MON_DATA_CNT1_DCNT_MASK},
+	stat_num_byp_dsc_rcvd_field_info[] = {
+	{"STAT_NUM_BYP_DSC_RCVD_RSVD_1",
+		STAT_NUM_BYP_DSC_RCVD_RSVD_1_MASK},
+	{"STAT_NUM_BYP_DSC_RCVD_DSC_CNT",
+		STAT_NUM_BYP_DSC_RCVD_DSC_CNT_MASK},
 };
 
 
 static struct regfield_info
-	h2c_mm_dbg_field_info[] = {
-	{"H2C_MM_RSVD_1",
-		H2C_MM_RSVD_1_MASK},
-	{"H2C_MM_RRQ_ENTRIES",
-		H2C_MM_RRQ_ENTRIES_MASK},
-	{"H2C_MM_DAT_FIFO_SPC",
-		H2C_MM_DAT_FIFO_SPC_MASK},
-	{"H2C_MM_RD_STALL",
-		H2C_MM_RD_STALL_MASK},
-	{"H2C_MM_RRQ_FIFO_FI",
-		H2C_MM_RRQ_FIFO_FI_MASK},
-	{"H2C_MM_WR_STALL",
-		H2C_MM_WR_STALL_MASK},
-	{"H2C_MM_WRQ_FIFO_FI",
-		H2C_MM_WRQ_FIFO_FI_MASK},
-	{"H2C_MM_WBK_STALL",
-		H2C_MM_WBK_STALL_MASK},
-	{"H2C_MM_DSC_FIFO_EP",
-		H2C_MM_DSC_FIFO_EP_MASK},
-	{"H2C_MM_DSC_FIFO_FL",
-		H2C_MM_DSC_FIFO_FL_MASK},
+	c2h_wrb_coal_cfg_field_info[] = {
+	{"C2H_WRB_COAL_CFG_MAX_BUF_SZ",
+		C2H_WRB_COAL_CFG_MAX_BUF_SZ_MASK},
+	{"C2H_WRB_COAL_CFG_TICK_VAL",
+		C2H_WRB_COAL_CFG_TICK_VAL_MASK},
+	{"C2H_WRB_COAL_CFG_TICK_CNT",
+		C2H_WRB_COAL_CFG_TICK_CNT_MASK},
+	{"C2H_WRB_COAL_CFG_SET_GLB_FLUSH",
+		C2H_WRB_COAL_CFG_SET_GLB_FLUSH_MASK},
+	{"C2H_WRB_COAL_CFG_DONE_GLB_FLUSH",
+		C2H_WRB_COAL_CFG_DONE_GLB_FLUSH_MASK},
 };
 
 
 static struct regfield_info
-	c2h_crdt_coal_cfg_1_field_info[] = {
-	{"C2H_CRDT_COAL_CFG_1_RSVD_1",
-		C2H_CRDT_COAL_CFG_1_RSVD_1_MASK},
-	{"C2H_CRDT_COAL_CFG_1_PLD_FIFO_TH",
-		C2H_CRDT_COAL_CFG_1_PLD_FIFO_TH_MASK},
-	{"C2H_CRDT_COAL_CFG_1_TIMER_TH",
-		C2H_CRDT_COAL_CFG_1_TIMER_TH_MASK},
+	c2h_intr_h2c_req_field_info[] = {
+	{"C2H_INTR_H2C_REQ_RSVD_1",
+		C2H_INTR_H2C_REQ_RSVD_1_MASK},
+	{"C2H_INTR_H2C_REQ_CNT",
+		C2H_INTR_H2C_REQ_CNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_crdt_coal_cfg_2_field_info[] = {
-	{"C2H_CRDT_COAL_CFG_2_RSVD_1",
-		C2H_CRDT_COAL_CFG_2_RSVD_1_MASK},
-	{"C2H_CRDT_COAL_CFG_2_FIFO_TH",
-		C2H_CRDT_COAL_CFG_2_FIFO_TH_MASK},
-	{"C2H_CRDT_COAL_CFG_2_RESERVED1",
-		C2H_CRDT_COAL_CFG_2_RESERVED1_MASK},
-	{"C2H_CRDT_COAL_CFG_2_NT_TH",
-		C2H_CRDT_COAL_CFG_2_NT_TH_MASK},
+	c2h_intr_c2h_mm_req_field_info[] = {
+	{"C2H_INTR_C2H_MM_REQ_RSVD_1",
+		C2H_INTR_C2H_MM_REQ_RSVD_1_MASK},
+	{"C2H_INTR_C2H_MM_REQ_CNT",
+		C2H_INTR_C2H_MM_REQ_CNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_pfch_byp_qid_field_info[] = {
-	{"C2H_PFCH_BYP_QID_RSVD_1",
-		C2H_PFCH_BYP_QID_RSVD_1_MASK},
-	{"C2H_PFCH_BYP_QID",
-		C2H_PFCH_BYP_QID_MASK},
+	c2h_intr_err_int_req_field_info[] = {
+	{"C2H_INTR_ERR_INT_REQ_RSVD_1",
+		C2H_INTR_ERR_INT_REQ_RSVD_1_MASK},
+	{"C2H_INTR_ERR_INT_REQ_CNT",
+		C2H_INTR_ERR_INT_REQ_CNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_pfch_byp_tag_field_info[] = {
-	{"C2H_PFCH_BYP_TAG_RSVD_1",
-		C2H_PFCH_BYP_TAG_RSVD_1_MASK},
-	{"C2H_PFCH_BYP_TAG_BYP_QID",
-		C2H_PFCH_BYP_TAG_BYP_QID_MASK},
-	{"C2H_PFCH_BYP_TAG_RSVD_2",
-		C2H_PFCH_BYP_TAG_RSVD_2_MASK},
-	{"C2H_PFCH_BYP_TAG",
-		C2H_PFCH_BYP_TAG_MASK},
+	c2h_intr_c2h_st_req_field_info[] = {
+	{"C2H_INTR_C2H_ST_REQ_RSVD_1",
+		C2H_INTR_C2H_ST_REQ_RSVD_1_MASK},
+	{"C2H_INTR_C2H_ST_REQ_CNT",
+		C2H_INTR_C2H_ST_REQ_CNT_MASK},
 };
 
 
 static struct regfield_info
-	c2h_water_mark_field_info[] = {
-	{"C2H_WATER_MARK_HIGH_WM",
-		C2H_WATER_MARK_HIGH_WM_MASK},
-	{"C2H_WATER_MARK_LOW_WM",
-		C2H_WATER_MARK_LOW_WM_MASK},
+	c2h_intr_h2c_err_c2h_mm_msix_ack_field_info[] = {
+	{"C2H_INTR_H2C_ERR_C2H_MM_MSIX_ACK_RSVD_1",
+		C2H_INTR_H2C_ERR_C2H_MM_MSIX_ACK_RSVD_1_MASK},
+	{"C2H_INTR_H2C_ERR_C2H_MM_MSIX_ACK_CNT",
+		C2H_INTR_H2C_ERR_C2H_MM_MSIX_ACK_CNT_MASK},
 };
 
-static struct xreg_info eqdma_config_regs[] = {
-{"CFG_BLK_IDENTIFIER", 0x00,
+
+static struct regfield_info
+	c2h_intr_h2c_err_c2h_mm_msix_fail_field_info[] = {
+	{"C2H_INTR_H2C_ERR_C2H_MM_MSIX_FAIL_RSVD_1",
+		C2H_INTR_H2C_ERR_C2H_MM_MSIX_FAIL_RSVD_1_MASK},
+	{"C2H_INTR_H2C_ERR_C2H_MM_MSIX_FAIL_CNT",
+		C2H_INTR_H2C_ERR_C2H_MM_MSIX_FAIL_CNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_intr_h2c_err_c2h_mm_msix_no_msix_field_info[] = {
+	{"C2H_INTR_H2C_ERR_C2H_MM_MSIX_NO_MSIX_RSVD_1",
+		C2H_INTR_H2C_ERR_C2H_MM_MSIX_NO_MSIX_RSVD_1_MASK},
+	{"C2H_INTR_H2C_ERR_C2H_MM_MSIX_NO_MSIX_CNT",
+		C2H_INTR_H2C_ERR_C2H_MM_MSIX_NO_MSIX_CNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_intr_h2c_err_c2h_mm_ctxt_inval_field_info[] = {
+	{"C2H_INTR_H2C_ERR_C2H_MM_CTXT_INVAL_RSVD_1",
+		C2H_INTR_H2C_ERR_C2H_MM_CTXT_INVAL_RSVD_1_MASK},
+	{"C2H_INTR_H2C_ERR_C2H_MM_CTXT_INVAL_CNT",
+		C2H_INTR_H2C_ERR_C2H_MM_CTXT_INVAL_CNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_intr_c2h_st_msix_ack_field_info[] = {
+	{"C2H_INTR_C2H_ST_MSIX_ACK_RSVD_1",
+		C2H_INTR_C2H_ST_MSIX_ACK_RSVD_1_MASK},
+	{"C2H_INTR_C2H_ST_MSIX_ACK_CNT",
+		C2H_INTR_C2H_ST_MSIX_ACK_CNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_intr_c2h_st_msix_fail_field_info[] = {
+	{"C2H_INTR_C2H_ST_MSIX_FAIL_RSVD_1",
+		C2H_INTR_C2H_ST_MSIX_FAIL_RSVD_1_MASK},
+	{"C2H_INTR_C2H_ST_MSIX_FAIL_CNT",
+		C2H_INTR_C2H_ST_MSIX_FAIL_CNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_intr_c2h_st_no_msix_field_info[] = {
+	{"C2H_INTR_C2H_ST_NO_MSIX_RSVD_1",
+		C2H_INTR_C2H_ST_NO_MSIX_RSVD_1_MASK},
+	{"C2H_INTR_C2H_ST_NO_MSIX_CNT",
+		C2H_INTR_C2H_ST_NO_MSIX_CNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_intr_c2h_st_ctxt_inval_field_info[] = {
+	{"C2H_INTR_C2H_ST_CTXT_INVAL_RSVD_1",
+		C2H_INTR_C2H_ST_CTXT_INVAL_RSVD_1_MASK},
+	{"C2H_INTR_C2H_ST_CTXT_INVAL_CNT",
+		C2H_INTR_C2H_ST_CTXT_INVAL_CNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_stat_wr_cmp_field_info[] = {
+	{"C2H_STAT_WR_CMP_RSVD_1",
+		C2H_STAT_WR_CMP_RSVD_1_MASK},
+	{"C2H_STAT_WR_CMP_CNT",
+		C2H_STAT_WR_CMP_CNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_stat_dbg_dma_eng_4_field_info[] = {
+	{"C2H_STAT_DMA_ENG_4_QID_FIFO_OUT_DAT_HAS_CMPT_1",
+		C2H_STAT_DMA_ENG_4_QID_FIFO_OUT_DAT_HAS_CMPT_1_MASK},
+	{"C2H_STAT_DMA_ENG_4_QID_FIFO_OUT_DAT_MARKER_1",
+		C2H_STAT_DMA_ENG_4_QID_FIFO_OUT_DAT_MARKER_1_MASK},
+	{"C2H_STAT_DMA_ENG_4_QID_FIFO_OUT_DAT_DROP_REQ_1",
+		C2H_STAT_DMA_ENG_4_QID_FIFO_OUT_DAT_DROP_REQ_1_MASK},
+	{"C2H_STAT_DMA_ENG_4_QID_FIFO_OUT_DAT_QID_1",
+		C2H_STAT_DMA_ENG_4_QID_FIFO_OUT_DAT_QID_1_MASK},
+	{"C2H_STAT_DMA_ENG_4_WR_HDR_FIFO_OUT_CNT_1",
+		C2H_STAT_DMA_ENG_4_WR_HDR_FIFO_OUT_CNT_1_MASK},
+	{"C2H_STAT_DMA_ENG_4_QID_FIFO_OUT_VLD_1",
+		C2H_STAT_DMA_ENG_4_QID_FIFO_OUT_VLD_1_MASK},
+	{"C2H_STAT_DMA_ENG_4_PLD_FIFO_OUT_VLD_1",
+		C2H_STAT_DMA_ENG_4_PLD_FIFO_OUT_VLD_1_MASK},
+	{"C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_VLD_1",
+		C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_VLD_1_MASK},
+	{"C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_EOP_1",
+		C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_EOP_1_MASK},
+	{"C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_AVL_IDX_ENABLE_1",
+		C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_AVL_IDX_ENABLE_1_MASK},
+	{"C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_DROP_1",
+		C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_DROP_1_MASK},
+	{"C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_ERR_1",
+		C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_OUT_DATA_ERR_1_MASK},
+	{"C2H_STAT_DMA_ENG_4_DESC_CNT_FIFO_IN_RDY_1",
+		C2H_STAT_DMA_ENG_4_DESC_CNT_FIFO_IN_RDY_1_MASK},
+	{"C2H_STAT_DMA_ENG_4_DESC_RSP_FIFO_IN_RDY_1",
+		C2H_STAT_DMA_ENG_4_DESC_RSP_FIFO_IN_RDY_1_MASK},
+	{"C2H_STAT_DMA_ENG_4_PLD_PKT_ID_LARGER_1",
+		C2H_STAT_DMA_ENG_4_PLD_PKT_ID_LARGER_1_MASK},
+	{"C2H_STAT_DMA_ENG_4_WCP_FIFO_IN_RDY_1",
+		C2H_STAT_DMA_ENG_4_WCP_FIFO_IN_RDY_1_MASK},
+	{"C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_IN_RDY_1",
+		C2H_STAT_DMA_ENG_4_PLD_ST_FIFO_IN_RDY_1_MASK},
+};
+
+
+static struct regfield_info
+	c2h_stat_dbg_dma_eng_5_field_info[] = {
+	{"C2H_STAT_DMA_ENG_5_ARB_FIFO_IN_RDY",
+		C2H_STAT_DMA_ENG_5_ARB_FIFO_IN_RDY_MASK},
+	{"C2H_STAT_DMA_ENG_5_WRB_SM_VIRT_CH",
+		C2H_STAT_DMA_ENG_5_WRB_SM_VIRT_CH_MASK},
+	{"C2H_STAT_DMA_ENG_5_WRB_FIFO_IN_REQ",
+		C2H_STAT_DMA_ENG_5_WRB_FIFO_IN_REQ_MASK},
+	{"C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_CNT",
+		C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_CNT_MASK},
+	{"C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_LEN",
+		C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_LEN_MASK},
+	{"C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_VIRT_CH",
+		C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_VIRT_CH_MASK},
+	{"C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_VAR_DESC",
+		C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_VAR_DESC_MASK},
+	{"C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_DROP_REQ",
+		C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_DROP_REQ_MASK},
+	{"C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_NUM_BUF_OV",
+		C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_NUM_BUF_OV_MASK},
+	{"C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_MARKER",
+		C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_MARKER_MASK},
+	{"C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_HAS_CMPT",
+		C2H_STAT_DMA_ENG_5_ARB_FIFO_OUT_DATA_HAS_CMPT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_dbg_pfch_qid_field_info[] = {
+	{"C2H_PFCH_QID_RSVD_1",
+		C2H_PFCH_QID_RSVD_1_MASK},
+	{"C2H_PFCH_QID_ERR_CTXT",
+		C2H_PFCH_QID_ERR_CTXT_MASK},
+	{"C2H_PFCH_QID_TARGET",
+		C2H_PFCH_QID_TARGET_MASK},
+	{"C2H_PFCH_QID_QID_OR_TAG",
+		C2H_PFCH_QID_QID_OR_TAG_MASK},
+};
+
+
+static struct regfield_info
+	c2h_dbg_pfch_field_info[] = {
+	{"C2H_PFCH_DATA",
+		C2H_PFCH_DATA_MASK},
+};
+
+
+static struct regfield_info
+	c2h_int_dbg_field_info[] = {
+	{"C2H_INT_RSVD_1",
+		C2H_INT_RSVD_1_MASK},
+	{"C2H_INT_INT_COAL_SM",
+		C2H_INT_INT_COAL_SM_MASK},
+	{"C2H_INT_INT_SM",
+		C2H_INT_INT_SM_MASK},
+};
+
+
+static struct regfield_info
+	c2h_stat_imm_accepted_field_info[] = {
+	{"C2H_STAT_IMM_ACCEPTED_RSVD_1",
+		C2H_STAT_IMM_ACCEPTED_RSVD_1_MASK},
+	{"C2H_STAT_IMM_ACCEPTED_CNT",
+		C2H_STAT_IMM_ACCEPTED_CNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_stat_marker_accepted_field_info[] = {
+	{"C2H_STAT_MARKER_ACCEPTED_RSVD_1",
+		C2H_STAT_MARKER_ACCEPTED_RSVD_1_MASK},
+	{"C2H_STAT_MARKER_ACCEPTED_CNT",
+		C2H_STAT_MARKER_ACCEPTED_CNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_stat_disable_cmp_accepted_field_info[] = {
+	{"C2H_STAT_DISABLE_CMP_ACCEPTED_RSVD_1",
+		C2H_STAT_DISABLE_CMP_ACCEPTED_RSVD_1_MASK},
+	{"C2H_STAT_DISABLE_CMP_ACCEPTED_CNT",
+		C2H_STAT_DISABLE_CMP_ACCEPTED_CNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_pld_fifo_crdt_cnt_field_info[] = {
+	{"C2H_PLD_FIFO_CRDT_CNT_RSVD_1",
+		C2H_PLD_FIFO_CRDT_CNT_RSVD_1_MASK},
+	{"C2H_PLD_FIFO_CRDT_CNT_CNT",
+		C2H_PLD_FIFO_CRDT_CNT_CNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_intr_dyn_req_field_info[] = {
+	{"C2H_INTR_DYN_REQ_RSVD_1",
+		C2H_INTR_DYN_REQ_RSVD_1_MASK},
+	{"C2H_INTR_DYN_REQ_CNT",
+		C2H_INTR_DYN_REQ_CNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_intr_dyn_misc_field_info[] = {
+	{"C2H_INTR_DYN_MISC_RSVD_1",
+		C2H_INTR_DYN_MISC_RSVD_1_MASK},
+	{"C2H_INTR_DYN_MISC_CNT",
+		C2H_INTR_DYN_MISC_CNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_drop_len_mismatch_field_info[] = {
+	{"C2H_DROP_LEN_MISMATCH_RSVD_1",
+		C2H_DROP_LEN_MISMATCH_RSVD_1_MASK},
+	{"C2H_DROP_LEN_MISMATCH_CNT",
+		C2H_DROP_LEN_MISMATCH_CNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_drop_desc_rsp_len_field_info[] = {
+	{"C2H_DROP_DESC_RSP_LEN_RSVD_1",
+		C2H_DROP_DESC_RSP_LEN_RSVD_1_MASK},
+	{"C2H_DROP_DESC_RSP_LEN_CNT",
+		C2H_DROP_DESC_RSP_LEN_CNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_drop_qid_fifo_len_field_info[] = {
+	{"C2H_DROP_QID_FIFO_LEN_RSVD_1",
+		C2H_DROP_QID_FIFO_LEN_RSVD_1_MASK},
+	{"C2H_DROP_QID_FIFO_LEN_CNT",
+		C2H_DROP_QID_FIFO_LEN_CNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_drop_pld_cnt_field_info[] = {
+	{"C2H_DROP_PLD_CNT_RSVD_1",
+		C2H_DROP_PLD_CNT_RSVD_1_MASK},
+	{"C2H_DROP_PLD_CNT_CNT",
+		C2H_DROP_PLD_CNT_CNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_cmpt_format_0_field_info[] = {
+	{"C2H_CMPT_FORMAT_0_DESC_ERR_LOC",
+		C2H_CMPT_FORMAT_0_DESC_ERR_LOC_MASK},
+	{"C2H_CMPT_FORMAT_0_COLOR_LOC",
+		C2H_CMPT_FORMAT_0_COLOR_LOC_MASK},
+};
+
+
+static struct regfield_info
+	c2h_cmpt_format_1_field_info[] = {
+	{"C2H_CMPT_FORMAT_1_DESC_ERR_LOC",
+		C2H_CMPT_FORMAT_1_DESC_ERR_LOC_MASK},
+	{"C2H_CMPT_FORMAT_1_COLOR_LOC",
+		C2H_CMPT_FORMAT_1_COLOR_LOC_MASK},
+};
+
+
+static struct regfield_info
+	c2h_cmpt_format_2_field_info[] = {
+	{"C2H_CMPT_FORMAT_2_DESC_ERR_LOC",
+		C2H_CMPT_FORMAT_2_DESC_ERR_LOC_MASK},
+	{"C2H_CMPT_FORMAT_2_COLOR_LOC",
+		C2H_CMPT_FORMAT_2_COLOR_LOC_MASK},
+};
+
+
+static struct regfield_info
+	c2h_cmpt_format_3_field_info[] = {
+	{"C2H_CMPT_FORMAT_3_DESC_ERR_LOC",
+		C2H_CMPT_FORMAT_3_DESC_ERR_LOC_MASK},
+	{"C2H_CMPT_FORMAT_3_COLOR_LOC",
+		C2H_CMPT_FORMAT_3_COLOR_LOC_MASK},
+};
+
+
+static struct regfield_info
+	c2h_cmpt_format_4_field_info[] = {
+	{"C2H_CMPT_FORMAT_4_DESC_ERR_LOC",
+		C2H_CMPT_FORMAT_4_DESC_ERR_LOC_MASK},
+	{"C2H_CMPT_FORMAT_4_COLOR_LOC",
+		C2H_CMPT_FORMAT_4_COLOR_LOC_MASK},
+};
+
+
+static struct regfield_info
+	c2h_cmpt_format_5_field_info[] = {
+	{"C2H_CMPT_FORMAT_5_DESC_ERR_LOC",
+		C2H_CMPT_FORMAT_5_DESC_ERR_LOC_MASK},
+	{"C2H_CMPT_FORMAT_5_COLOR_LOC",
+		C2H_CMPT_FORMAT_5_COLOR_LOC_MASK},
+};
+
+
+static struct regfield_info
+	c2h_cmpt_format_6_field_info[] = {
+	{"C2H_CMPT_FORMAT_6_DESC_ERR_LOC",
+		C2H_CMPT_FORMAT_6_DESC_ERR_LOC_MASK},
+	{"C2H_CMPT_FORMAT_6_COLOR_LOC",
+		C2H_CMPT_FORMAT_6_COLOR_LOC_MASK},
+};
+
+
+static struct regfield_info
+	c2h_pfch_cache_depth_field_info[] = {
+	{"C2H_PFCH_CACHE_DEPTH_MAX_STBUF",
+		C2H_PFCH_CACHE_DEPTH_MAX_STBUF_MASK},
+	{"C2H_PFCH_CACHE_DEPTH",
+		C2H_PFCH_CACHE_DEPTH_MASK},
+};
+
+
+static struct regfield_info
+	c2h_wrb_coal_buf_depth_field_info[] = {
+	{"C2H_WRB_COAL_BUF_DEPTH_RSVD_1",
+		C2H_WRB_COAL_BUF_DEPTH_RSVD_1_MASK},
+	{"C2H_WRB_COAL_BUF_DEPTH_BUFFER",
+		C2H_WRB_COAL_BUF_DEPTH_BUFFER_MASK},
+};
+
+
+static struct regfield_info
+	c2h_pfch_crdt_field_info[] = {
+	{"C2H_PFCH_CRDT_RSVD_1",
+		C2H_PFCH_CRDT_RSVD_1_MASK},
+	{"C2H_PFCH_CRDT_RSVD_2",
+		C2H_PFCH_CRDT_RSVD_2_MASK},
+};
+
+
+static struct regfield_info
+	c2h_stat_has_cmpt_accepted_field_info[] = {
+	{"C2H_STAT_HAS_CMPT_ACCEPTED_RSVD_1",
+		C2H_STAT_HAS_CMPT_ACCEPTED_RSVD_1_MASK},
+	{"C2H_STAT_HAS_CMPT_ACCEPTED_CNT",
+		C2H_STAT_HAS_CMPT_ACCEPTED_CNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_stat_has_pld_accepted_field_info[] = {
+	{"C2H_STAT_HAS_PLD_ACCEPTED_RSVD_1",
+		C2H_STAT_HAS_PLD_ACCEPTED_RSVD_1_MASK},
+	{"C2H_STAT_HAS_PLD_ACCEPTED_CNT",
+		C2H_STAT_HAS_PLD_ACCEPTED_CNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_pld_pkt_id_field_info[] = {
+	{"C2H_PLD_PKT_ID_CMPT_WAIT",
+		C2H_PLD_PKT_ID_CMPT_WAIT_MASK},
+	{"C2H_PLD_PKT_ID_DATA",
+		C2H_PLD_PKT_ID_DATA_MASK},
+};
+
+
+static struct regfield_info
+	c2h_pld_pkt_id_1_field_info[] = {
+	{"C2H_PLD_PKT_ID_1_CMPT_WAIT",
+		C2H_PLD_PKT_ID_1_CMPT_WAIT_MASK},
+	{"C2H_PLD_PKT_ID_1_DATA",
+		C2H_PLD_PKT_ID_1_DATA_MASK},
+};
+
+
+static struct regfield_info
+	c2h_drop_pld_cnt_1_field_info[] = {
+	{"C2H_DROP_PLD_CNT_1_RSVD_1",
+		C2H_DROP_PLD_CNT_1_RSVD_1_MASK},
+	{"C2H_DROP_PLD_CNT_1_CNT",
+		C2H_DROP_PLD_CNT_1_CNT_MASK},
+};
+
+
+static struct regfield_info
+	h2c_err_stat_field_info[] = {
+	{"H2C_ERR_STAT_RSVD_1",
+		H2C_ERR_STAT_RSVD_1_MASK},
+	{"H2C_ERR_STAT_PAR_ERR",
+		H2C_ERR_STAT_PAR_ERR_MASK},
+	{"H2C_ERR_STAT_SBE",
+		H2C_ERR_STAT_SBE_MASK},
+	{"H2C_ERR_STAT_DBE",
+		H2C_ERR_STAT_DBE_MASK},
+	{"H2C_ERR_STAT_NO_DMA_DS",
+		H2C_ERR_STAT_NO_DMA_DS_MASK},
+	{"H2C_ERR_STAT_SDI_MRKR_REQ_MOP_ERR",
+		H2C_ERR_STAT_SDI_MRKR_REQ_MOP_ERR_MASK},
+	{"H2C_ERR_STAT_ZERO_LEN_DS",
+		H2C_ERR_STAT_ZERO_LEN_DS_MASK},
+};
+
+
+static struct regfield_info
+	h2c_err_mask_field_info[] = {
+	{"H2C_ERR_EN",
+		H2C_ERR_EN_MASK},
+};
+
+
+static struct regfield_info
+	h2c_first_err_qid_field_info[] = {
+	{"H2C_FIRST_ERR_QID_RSVD_1",
+		H2C_FIRST_ERR_QID_RSVD_1_MASK},
+	{"H2C_FIRST_ERR_QID_ERR_TYPE",
+		H2C_FIRST_ERR_QID_ERR_TYPE_MASK},
+	{"H2C_FIRST_ERR_QID_RSVD_2",
+		H2C_FIRST_ERR_QID_RSVD_2_MASK},
+	{"H2C_FIRST_ERR_QID_QID",
+		H2C_FIRST_ERR_QID_QID_MASK},
+};
+
+
+static struct regfield_info
+	h2c_dbg_reg0_field_info[] = {
+	{"H2C_REG0_NUM_DSC_RCVD",
+		H2C_REG0_NUM_DSC_RCVD_MASK},
+	{"H2C_REG0_NUM_WRB_SENT",
+		H2C_REG0_NUM_WRB_SENT_MASK},
+};
+
+
+static struct regfield_info
+	h2c_dbg_reg1_field_info[] = {
+	{"H2C_REG1_NUM_REQ_SENT",
+		H2C_REG1_NUM_REQ_SENT_MASK},
+	{"H2C_REG1_NUM_CMP_SENT",
+		H2C_REG1_NUM_CMP_SENT_MASK},
+};
+
+
+static struct regfield_info
+	h2c_dbg_reg2_field_info[] = {
+	{"H2C_REG2_RSVD_1",
+		H2C_REG2_RSVD_1_MASK},
+	{"H2C_REG2_NUM_ERR_DSC_RCVD",
+		H2C_REG2_NUM_ERR_DSC_RCVD_MASK},
+};
+
+
+static struct regfield_info
+	h2c_dbg_reg3_field_info[] = {
+	{"H2C_REG3_RSVD_1",
+		H2C_REG3_RSVD_1_MASK},
+	{"H2C_REG3_DSCO_FIFO_EMPTY",
+		H2C_REG3_DSCO_FIFO_EMPTY_MASK},
+	{"H2C_REG3_DSCO_FIFO_FULL",
+		H2C_REG3_DSCO_FIFO_FULL_MASK},
+	{"H2C_REG3_CUR_RC_STATE",
+		H2C_REG3_CUR_RC_STATE_MASK},
+	{"H2C_REG3_RDREQ_LINES",
+		H2C_REG3_RDREQ_LINES_MASK},
+	{"H2C_REG3_RDATA_LINES_AVAIL",
+		H2C_REG3_RDATA_LINES_AVAIL_MASK},
+	{"H2C_REG3_PEND_FIFO_EMPTY",
+		H2C_REG3_PEND_FIFO_EMPTY_MASK},
+	{"H2C_REG3_PEND_FIFO_FULL",
+		H2C_REG3_PEND_FIFO_FULL_MASK},
+	{"H2C_REG3_CUR_RQ_STATE",
+		H2C_REG3_CUR_RQ_STATE_MASK},
+	{"H2C_REG3_DSCI_FIFO_FULL",
+		H2C_REG3_DSCI_FIFO_FULL_MASK},
+	{"H2C_REG3_DSCI_FIFO_EMPTY",
+		H2C_REG3_DSCI_FIFO_EMPTY_MASK},
+};
+
+
+static struct regfield_info
+	h2c_dbg_reg4_field_info[] = {
+	{"H2C_REG4_RDREQ_ADDR",
+		H2C_REG4_RDREQ_ADDR_MASK},
+};
+
+
+static struct regfield_info
+	h2c_fatal_err_en_field_info[] = {
+	{"H2C_FATAL_ERR_EN_RSVD_1",
+		H2C_FATAL_ERR_EN_RSVD_1_MASK},
+	{"H2C_FATAL_ERR_EN_H2C",
+		H2C_FATAL_ERR_EN_H2C_MASK},
+};
+
+
+static struct regfield_info
+	h2c_req_throt_pcie_field_info[] = {
+	{"H2C_REQ_THROT_PCIE_EN_REQ",
+		H2C_REQ_THROT_PCIE_EN_REQ_MASK},
+	{"H2C_REQ_THROT_PCIE",
+		H2C_REQ_THROT_PCIE_MASK},
+	{"H2C_REQ_THROT_PCIE_EN_DATA",
+		H2C_REQ_THROT_PCIE_EN_DATA_MASK},
+	{"H2C_REQ_THROT_PCIE_DATA_THRESH",
+		H2C_REQ_THROT_PCIE_DATA_THRESH_MASK},
+};
+
+
+static struct regfield_info
+	h2c_aln_dbg_reg0_field_info[] = {
+	{"H2C_ALN_REG0_NUM_PKT_SENT",
+		H2C_ALN_REG0_NUM_PKT_SENT_MASK},
+};
+
+
+static struct regfield_info
+	h2c_req_throt_aximm_field_info[] = {
+	{"H2C_REQ_THROT_AXIMM_EN_REQ",
+		H2C_REQ_THROT_AXIMM_EN_REQ_MASK},
+	{"H2C_REQ_THROT_AXIMM",
+		H2C_REQ_THROT_AXIMM_MASK},
+	{"H2C_REQ_THROT_AXIMM_EN_DATA",
+		H2C_REQ_THROT_AXIMM_EN_DATA_MASK},
+	{"H2C_REQ_THROT_AXIMM_DATA_THRESH",
+		H2C_REQ_THROT_AXIMM_DATA_THRESH_MASK},
+};
+
+
+static struct regfield_info
+	c2h_mm_ctl_field_info[] = {
+	{"C2H_MM_CTL_RESERVED1",
+		C2H_MM_CTL_RESERVED1_MASK},
+	{"C2H_MM_CTL_ERRC_EN",
+		C2H_MM_CTL_ERRC_EN_MASK},
+	{"C2H_MM_CTL_RESERVED0",
+		C2H_MM_CTL_RESERVED0_MASK},
+	{"C2H_MM_CTL_RUN",
+		C2H_MM_CTL_RUN_MASK},
+};
+
+
+static struct regfield_info
+	c2h_mm_status_field_info[] = {
+	{"C2H_MM_STATUS_RSVD_1",
+		C2H_MM_STATUS_RSVD_1_MASK},
+	{"C2H_MM_STATUS_RUN",
+		C2H_MM_STATUS_RUN_MASK},
+};
+
+
+static struct regfield_info
+	c2h_mm_cmpl_desc_cnt_field_info[] = {
+	{"C2H_MM_CMPL_DESC_CNT_C2H_CO",
+		C2H_MM_CMPL_DESC_CNT_C2H_CO_MASK},
+};
+
+
+static struct regfield_info
+	c2h_mm_err_code_enable_mask_field_info[] = {
+	{"C2H_MM_ERR_CODE_ENABLE_RESERVED1",
+		C2H_MM_ERR_CODE_ENABLE_RESERVED1_MASK},
+	{"C2H_MM_ERR_CODE_ENABLE_WR_UC_RAM",
+		C2H_MM_ERR_CODE_ENABLE_WR_UC_RAM_MASK},
+	{"C2H_MM_ERR_CODE_ENABLE_WR_UR",
+		C2H_MM_ERR_CODE_ENABLE_WR_UR_MASK},
+	{"C2H_MM_ERR_CODE_ENABLE_WR_FLR",
+		C2H_MM_ERR_CODE_ENABLE_WR_FLR_MASK},
+	{"C2H_MM_ERR_CODE_ENABLE_RESERVED0",
+		C2H_MM_ERR_CODE_ENABLE_RESERVED0_MASK},
+	{"C2H_MM_ERR_CODE_ENABLE_RD_SLV_ERR",
+		C2H_MM_ERR_CODE_ENABLE_RD_SLV_ERR_MASK},
+	{"C2H_MM_ERR_CODE_ENABLE_WR_SLV_ERR",
+		C2H_MM_ERR_CODE_ENABLE_WR_SLV_ERR_MASK},
+};
+
+
+static struct regfield_info
+	c2h_mm_err_code_field_info[] = {
+	{"C2H_MM_ERR_CODE_RESERVED1",
+		C2H_MM_ERR_CODE_RESERVED1_MASK},
+	{"C2H_MM_ERR_CODE_CIDX",
+		C2H_MM_ERR_CODE_CIDX_MASK},
+	{"C2H_MM_ERR_CODE_RESERVED0",
+		C2H_MM_ERR_CODE_RESERVED0_MASK},
+	{"C2H_MM_ERR_CODE_SUB_TYPE",
+		C2H_MM_ERR_CODE_SUB_TYPE_MASK},
+	{"C2H_MM_ERR_CODE",
+		C2H_MM_ERR_CODE_MASK},
+};
+
+
+static struct regfield_info
+	c2h_mm_err_info_field_info[] = {
+	{"C2H_MM_ERR_INFO_VALID",
+		C2H_MM_ERR_INFO_VALID_MASK},
+	{"C2H_MM_ERR_INFO_SEL",
+		C2H_MM_ERR_INFO_SEL_MASK},
+	{"C2H_MM_ERR_INFO_RSVD_1",
+		C2H_MM_ERR_INFO_RSVD_1_MASK},
+	{"C2H_MM_ERR_INFO_QID",
+		C2H_MM_ERR_INFO_QID_MASK},
+};
+
+
+static struct regfield_info
+	c2h_mm_perf_mon_ctl_field_info[] = {
+	{"C2H_MM_PERF_MON_CTL_RSVD_1",
+		C2H_MM_PERF_MON_CTL_RSVD_1_MASK},
+	{"C2H_MM_PERF_MON_CTL_IMM_START",
+		C2H_MM_PERF_MON_CTL_IMM_START_MASK},
+	{"C2H_MM_PERF_MON_CTL_RUN_START",
+		C2H_MM_PERF_MON_CTL_RUN_START_MASK},
+	{"C2H_MM_PERF_MON_CTL_IMM_CLEAR",
+		C2H_MM_PERF_MON_CTL_IMM_CLEAR_MASK},
+	{"C2H_MM_PERF_MON_CTL_RUN_CLEAR",
+		C2H_MM_PERF_MON_CTL_RUN_CLEAR_MASK},
+};
+
+
+static struct regfield_info
+	c2h_mm_perf_mon_cycle_cnt0_field_info[] = {
+	{"C2H_MM_PERF_MON_CYCLE_CNT0_CYC_CNT",
+		C2H_MM_PERF_MON_CYCLE_CNT0_CYC_CNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_mm_perf_mon_cycle_cnt1_field_info[] = {
+	{"C2H_MM_PERF_MON_CYCLE_CNT1_RSVD_1",
+		C2H_MM_PERF_MON_CYCLE_CNT1_RSVD_1_MASK},
+	{"C2H_MM_PERF_MON_CYCLE_CNT1_CYC_CNT",
+		C2H_MM_PERF_MON_CYCLE_CNT1_CYC_CNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_mm_perf_mon_data_cnt0_field_info[] = {
+	{"C2H_MM_PERF_MON_DATA_CNT0_DCNT",
+		C2H_MM_PERF_MON_DATA_CNT0_DCNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_mm_perf_mon_data_cnt1_field_info[] = {
+	{"C2H_MM_PERF_MON_DATA_CNT1_RSVD_1",
+		C2H_MM_PERF_MON_DATA_CNT1_RSVD_1_MASK},
+	{"C2H_MM_PERF_MON_DATA_CNT1_DCNT",
+		C2H_MM_PERF_MON_DATA_CNT1_DCNT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_mm_dbg_field_info[] = {
+	{"C2H_MM_RSVD_1",
+		C2H_MM_RSVD_1_MASK},
+	{"C2H_MM_RRQ_ENTRIES",
+		C2H_MM_RRQ_ENTRIES_MASK},
+	{"C2H_MM_DAT_FIFO_SPC",
+		C2H_MM_DAT_FIFO_SPC_MASK},
+	{"C2H_MM_RD_STALL",
+		C2H_MM_RD_STALL_MASK},
+	{"C2H_MM_RRQ_FIFO_FI",
+		C2H_MM_RRQ_FIFO_FI_MASK},
+	{"C2H_MM_WR_STALL",
+		C2H_MM_WR_STALL_MASK},
+	{"C2H_MM_WRQ_FIFO_FI",
+		C2H_MM_WRQ_FIFO_FI_MASK},
+	{"C2H_MM_WBK_STALL",
+		C2H_MM_WBK_STALL_MASK},
+	{"C2H_MM_DSC_FIFO_EP",
+		C2H_MM_DSC_FIFO_EP_MASK},
+	{"C2H_MM_DSC_FIFO_FL",
+		C2H_MM_DSC_FIFO_FL_MASK},
+};
+
+
+static struct regfield_info
+	h2c_mm_ctl_field_info[] = {
+	{"H2C_MM_CTL_RESERVED1",
+		H2C_MM_CTL_RESERVED1_MASK},
+	{"H2C_MM_CTL_ERRC_EN",
+		H2C_MM_CTL_ERRC_EN_MASK},
+	{"H2C_MM_CTL_RESERVED0",
+		H2C_MM_CTL_RESERVED0_MASK},
+	{"H2C_MM_CTL_RUN",
+		H2C_MM_CTL_RUN_MASK},
+};
+
+
+static struct regfield_info
+	h2c_mm_status_field_info[] = {
+	{"H2C_MM_STATUS_RSVD_1",
+		H2C_MM_STATUS_RSVD_1_MASK},
+	{"H2C_MM_STATUS_RUN",
+		H2C_MM_STATUS_RUN_MASK},
+};
+
+
+static struct regfield_info
+	h2c_mm_cmpl_desc_cnt_field_info[] = {
+	{"H2C_MM_CMPL_DESC_CNT_H2C_CO",
+		H2C_MM_CMPL_DESC_CNT_H2C_CO_MASK},
+};
+
+
+static struct regfield_info
+	h2c_mm_err_code_enable_mask_field_info[] = {
+	{"H2C_MM_ERR_CODE_ENABLE_RESERVED5",
+		H2C_MM_ERR_CODE_ENABLE_RESERVED5_MASK},
+	{"H2C_MM_ERR_CODE_ENABLE_WR_SLV_ERR",
+		H2C_MM_ERR_CODE_ENABLE_WR_SLV_ERR_MASK},
+	{"H2C_MM_ERR_CODE_ENABLE_WR_DEC_ERR",
+		H2C_MM_ERR_CODE_ENABLE_WR_DEC_ERR_MASK},
+	{"H2C_MM_ERR_CODE_ENABLE_RESERVED4",
+		H2C_MM_ERR_CODE_ENABLE_RESERVED4_MASK},
+	{"H2C_MM_ERR_CODE_ENABLE_RD_RQ_DIS_ERR",
+		H2C_MM_ERR_CODE_ENABLE_RD_RQ_DIS_ERR_MASK},
+	{"H2C_MM_ERR_CODE_ENABLE_RESERVED3",
+		H2C_MM_ERR_CODE_ENABLE_RESERVED3_MASK},
+	{"H2C_MM_ERR_CODE_ENABLE_RD_DAT_POISON_ERR",
+		H2C_MM_ERR_CODE_ENABLE_RD_DAT_POISON_ERR_MASK},
+	{"H2C_MM_ERR_CODE_ENABLE_RESERVED2",
+		H2C_MM_ERR_CODE_ENABLE_RESERVED2_MASK},
+	{"H2C_MM_ERR_CODE_ENABLE_RD_FLR_ERR",
+		H2C_MM_ERR_CODE_ENABLE_RD_FLR_ERR_MASK},
+	{"H2C_MM_ERR_CODE_ENABLE_RESERVED1",
+		H2C_MM_ERR_CODE_ENABLE_RESERVED1_MASK},
+	{"H2C_MM_ERR_CODE_ENABLE_RD_HDR_ADR_ERR",
+		H2C_MM_ERR_CODE_ENABLE_RD_HDR_ADR_ERR_MASK},
+	{"H2C_MM_ERR_CODE_ENABLE_RD_HDR_PARA",
+		H2C_MM_ERR_CODE_ENABLE_RD_HDR_PARA_MASK},
+	{"H2C_MM_ERR_CODE_ENABLE_RD_HDR_BYTE_ERR",
+		H2C_MM_ERR_CODE_ENABLE_RD_HDR_BYTE_ERR_MASK},
+	{"H2C_MM_ERR_CODE_ENABLE_RD_UR_CA",
+		H2C_MM_ERR_CODE_ENABLE_RD_UR_CA_MASK},
+	{"H2C_MM_ERR_CODE_ENABLE_RD_HRD_POISON_ERR",
+		H2C_MM_ERR_CODE_ENABLE_RD_HRD_POISON_ERR_MASK},
+	{"H2C_MM_ERR_CODE_ENABLE_RESERVED0",
+		H2C_MM_ERR_CODE_ENABLE_RESERVED0_MASK},
+};
+
+
+static struct regfield_info
+	h2c_mm_err_code_field_info[] = {
+	{"H2C_MM_ERR_CODE_RSVD_1",
+		H2C_MM_ERR_CODE_RSVD_1_MASK},
+	{"H2C_MM_ERR_CODE_CIDX",
+		H2C_MM_ERR_CODE_CIDX_MASK},
+	{"H2C_MM_ERR_CODE_RESERVED0",
+		H2C_MM_ERR_CODE_RESERVED0_MASK},
+	{"H2C_MM_ERR_CODE_SUB_TYPE",
+		H2C_MM_ERR_CODE_SUB_TYPE_MASK},
+	{"H2C_MM_ERR_CODE",
+		H2C_MM_ERR_CODE_MASK},
+};
+
+
+static struct regfield_info
+	h2c_mm_err_info_field_info[] = {
+	{"H2C_MM_ERR_INFO_VALID",
+		H2C_MM_ERR_INFO_VALID_MASK},
+	{"H2C_MM_ERR_INFO_SEL",
+		H2C_MM_ERR_INFO_SEL_MASK},
+	{"H2C_MM_ERR_INFO_RSVD_1",
+		H2C_MM_ERR_INFO_RSVD_1_MASK},
+	{"H2C_MM_ERR_INFO_QID",
+		H2C_MM_ERR_INFO_QID_MASK},
+};
+
+
+static struct regfield_info
+	h2c_mm_perf_mon_ctl_field_info[] = {
+	{"H2C_MM_PERF_MON_CTL_RSVD_1",
+		H2C_MM_PERF_MON_CTL_RSVD_1_MASK},
+	{"H2C_MM_PERF_MON_CTL_IMM_START",
+		H2C_MM_PERF_MON_CTL_IMM_START_MASK},
+	{"H2C_MM_PERF_MON_CTL_RUN_START",
+		H2C_MM_PERF_MON_CTL_RUN_START_MASK},
+	{"H2C_MM_PERF_MON_CTL_IMM_CLEAR",
+		H2C_MM_PERF_MON_CTL_IMM_CLEAR_MASK},
+	{"H2C_MM_PERF_MON_CTL_RUN_CLEAR",
+		H2C_MM_PERF_MON_CTL_RUN_CLEAR_MASK},
+};
+
+
+static struct regfield_info
+	h2c_mm_perf_mon_cycle_cnt0_field_info[] = {
+	{"H2C_MM_PERF_MON_CYCLE_CNT0_CYC_CNT",
+		H2C_MM_PERF_MON_CYCLE_CNT0_CYC_CNT_MASK},
+};
+
+
+static struct regfield_info
+	h2c_mm_perf_mon_cycle_cnt1_field_info[] = {
+	{"H2C_MM_PERF_MON_CYCLE_CNT1_RSVD_1",
+		H2C_MM_PERF_MON_CYCLE_CNT1_RSVD_1_MASK},
+	{"H2C_MM_PERF_MON_CYCLE_CNT1_CYC_CNT",
+		H2C_MM_PERF_MON_CYCLE_CNT1_CYC_CNT_MASK},
+};
+
+
+static struct regfield_info
+	h2c_mm_perf_mon_data_cnt0_field_info[] = {
+	{"H2C_MM_PERF_MON_DATA_CNT0_DCNT",
+		H2C_MM_PERF_MON_DATA_CNT0_DCNT_MASK},
+};
+
+
+static struct regfield_info
+	h2c_mm_perf_mon_data_cnt1_field_info[] = {
+	{"H2C_MM_PERF_MON_DATA_CNT1_RSVD_1",
+		H2C_MM_PERF_MON_DATA_CNT1_RSVD_1_MASK},
+	{"H2C_MM_PERF_MON_DATA_CNT1_DCNT",
+		H2C_MM_PERF_MON_DATA_CNT1_DCNT_MASK},
+};
+
+
+static struct regfield_info
+	h2c_mm_dbg_field_info[] = {
+	{"H2C_MM_RSVD_1",
+		H2C_MM_RSVD_1_MASK},
+	{"H2C_MM_RRQ_ENTRIES",
+		H2C_MM_RRQ_ENTRIES_MASK},
+	{"H2C_MM_DAT_FIFO_SPC",
+		H2C_MM_DAT_FIFO_SPC_MASK},
+	{"H2C_MM_RD_STALL",
+		H2C_MM_RD_STALL_MASK},
+	{"H2C_MM_RRQ_FIFO_FI",
+		H2C_MM_RRQ_FIFO_FI_MASK},
+	{"H2C_MM_WR_STALL",
+		H2C_MM_WR_STALL_MASK},
+	{"H2C_MM_WRQ_FIFO_FI",
+		H2C_MM_WRQ_FIFO_FI_MASK},
+	{"H2C_MM_WBK_STALL",
+		H2C_MM_WBK_STALL_MASK},
+	{"H2C_MM_DSC_FIFO_EP",
+		H2C_MM_DSC_FIFO_EP_MASK},
+	{"H2C_MM_DSC_FIFO_FL",
+		H2C_MM_DSC_FIFO_FL_MASK},
+};
+
+
+static struct regfield_info
+	h2c_mm_data_throttle_field_info[] = {
+	{"H2C_MM_DATA_THROTTLE_RSVD_1",
+		H2C_MM_DATA_THROTTLE_RSVD_1_MASK},
+	{"H2C_MM_DATA_THROTTLE_DAT_EN",
+		H2C_MM_DATA_THROTTLE_DAT_EN_MASK},
+	{"H2C_MM_DATA_THROTTLE_DAT",
+		H2C_MM_DATA_THROTTLE_DAT_MASK},
+};
+
+
+static struct regfield_info
+	c2h_crdt_coal_cfg_1_field_info[] = {
+	{"C2H_CRDT_COAL_CFG_1_RSVD_1",
+		C2H_CRDT_COAL_CFG_1_RSVD_1_MASK},
+	{"C2H_CRDT_COAL_CFG_1_PLD_FIFO_TH",
+		C2H_CRDT_COAL_CFG_1_PLD_FIFO_TH_MASK},
+	{"C2H_CRDT_COAL_CFG_1_TIMER_TH",
+		C2H_CRDT_COAL_CFG_1_TIMER_TH_MASK},
+};
+
+
+static struct regfield_info
+	c2h_crdt_coal_cfg_2_field_info[] = {
+	{"C2H_CRDT_COAL_CFG_2_RSVD_1",
+		C2H_CRDT_COAL_CFG_2_RSVD_1_MASK},
+	{"C2H_CRDT_COAL_CFG_2_FIFO_TH",
+		C2H_CRDT_COAL_CFG_2_FIFO_TH_MASK},
+	{"C2H_CRDT_COAL_CFG_2_RESERVED1",
+		C2H_CRDT_COAL_CFG_2_RESERVED1_MASK},
+	{"C2H_CRDT_COAL_CFG_2_NT_TH",
+		C2H_CRDT_COAL_CFG_2_NT_TH_MASK},
+};
+
+
+static struct regfield_info
+	c2h_pfch_byp_qid_field_info[] = {
+	{"C2H_PFCH_BYP_QID_RSVD_1",
+		C2H_PFCH_BYP_QID_RSVD_1_MASK},
+	{"C2H_PFCH_BYP_QID",
+		C2H_PFCH_BYP_QID_MASK},
+};
+
+
+static struct regfield_info
+	c2h_pfch_byp_tag_field_info[] = {
+	{"C2H_PFCH_BYP_TAG_RSVD_1",
+		C2H_PFCH_BYP_TAG_RSVD_1_MASK},
+	{"C2H_PFCH_BYP_TAG_BYP_QID",
+		C2H_PFCH_BYP_TAG_BYP_QID_MASK},
+	{"C2H_PFCH_BYP_TAG_RSVD_2",
+		C2H_PFCH_BYP_TAG_RSVD_2_MASK},
+	{"C2H_PFCH_BYP_TAG",
+		C2H_PFCH_BYP_TAG_MASK},
+};
+
+
+static struct regfield_info
+	c2h_water_mark_field_info[] = {
+	{"C2H_WATER_MARK_HIGH_WM",
+		C2H_WATER_MARK_HIGH_WM_MASK},
+	{"C2H_WATER_MARK_LOW_WM",
+		C2H_WATER_MARK_LOW_WM_MASK},
+};
+
+
+static struct regfield_info
+	c2h_notify_empty_field_info[] = {
+	{"C2H_NOTIFY_EMPTY_RSVD_1",
+		C2H_NOTIFY_EMPTY_RSVD_1_MASK},
+	{"C2H_NOTIFY_EMPTY_NOE",
+		C2H_NOTIFY_EMPTY_NOE_MASK},
+};
+
+
+static struct regfield_info
+	c2h_stat_s_axis_c2h_accepted_1_field_info[] = {
+	{"C2H_STAT_S_AXIS_C2H_ACCEPTED_1",
+		C2H_STAT_S_AXIS_C2H_ACCEPTED_1_MASK},
+};
+
+
+static struct regfield_info
+	c2h_stat_s_axis_wrb_accepted_1_field_info[] = {
+	{"C2H_STAT_S_AXIS_WRB_ACCEPTED_1",
+		C2H_STAT_S_AXIS_WRB_ACCEPTED_1_MASK},
+};
+
+
+static struct regfield_info
+	c2h_stat_desc_rsp_pkt_accepted_1_field_info[] = {
+	{"C2H_STAT_DESC_RSP_PKT_ACCEPTED_1_D",
+		C2H_STAT_DESC_RSP_PKT_ACCEPTED_1_D_MASK},
+};
+
+
+static struct regfield_info
+	c2h_stat_axis_pkg_cmp_1_field_info[] = {
+	{"C2H_STAT_AXIS_PKG_CMP_1",
+		C2H_STAT_AXIS_PKG_CMP_1_MASK},
+};
+
+
+static struct regfield_info
+	c2h_stat_s_axis_wrb_accepted_2_field_info[] = {
+	{"C2H_STAT_S_AXIS_WRB_ACCEPTED_2",
+		C2H_STAT_S_AXIS_WRB_ACCEPTED_2_MASK},
+};
+
+
+static struct regfield_info
+	c2h_st_pld_fifo_depth_field_info[] = {
+	{"C2H_ST_PLD_FIFO_DEPTH",
+		C2H_ST_PLD_FIFO_DEPTH_MASK},
+};
+
+
+static struct regfield_info
+	c2h_stat_dbg_dma_eng_6_field_info[] = {
+	{"C2H_STAT_DMA_ENG_6_RSVD",
+		C2H_STAT_DMA_ENG_6_RSVD_MASK},
+	{"C2H_STAT_DMA_ENG_6_PLD_ST_FIFO_OUT_DATA_QID",
+		C2H_STAT_DMA_ENG_6_PLD_ST_FIFO_OUT_DATA_QID_MASK},
+	{"C2H_STAT_DMA_ENG_6_PLD_STS_FIFO_OUT_DATA_PLD_ST_PKT_ID",
+		C2H_STAT_DMA_ENG_6_PLD_STS_FIFO_OUT_DATA_PLD_ST_PKT_ID_MASK},
+	{"C2H_STAT_DMA_ENG_6_PLD_PKT_ID_LARGER_PLD_ST",
+		C2H_STAT_DMA_ENG_6_PLD_PKT_ID_LARGER_PLD_ST_MASK},
+};
+
+
+static struct regfield_info
+	c2h_stat_dbg_dma_eng_7_field_info[] = {
+	{"C2H_STAT_DMA_ENG_7_RSVD",
+		C2H_STAT_DMA_ENG_7_RSVD_MASK},
+	{"C2H_STAT_DMA_ENG_7_PLD_ST_FIFO_OUT_DATA_QID_1",
+		C2H_STAT_DMA_ENG_7_PLD_ST_FIFO_OUT_DATA_QID_1_MASK},
+	{"C2H_STAT_DMA_ENG_7_PLD_STS_FIFO_OUT_DATA_PLD_ST_PKT_ID_1",
+		C2H_STAT_DMA_ENG_7_PLD_STS_FIFO_OUT_DATA_PLD_ST_PKT_ID_1_MASK},
+	{"C2H_STAT_DMA_ENG_7_PLD_PKT_ID_LARGER_PLD_ST_1",
+		C2H_STAT_DMA_ENG_7_PLD_PKT_ID_LARGER_PLD_ST_1_MASK},
+};
+
+
+static struct regfield_info
+	c2h_stat_pcie_cmp_1_field_info[] = {
+	{"C2H_STAT_PCIE_CMP_1_DEPTH",
+		C2H_STAT_PCIE_CMP_1_DEPTH_MASK},
+};
+
+
+static struct regfield_info
+	c2h_pld_fifo_almost_full_field_info[] = {
+	{"C2H_PLD_FIFO_ALMOST_FULL_ENABLE",
+		C2H_PLD_FIFO_ALMOST_FULL_ENABLE_MASK},
+	{"C2H_PLD_FIFO_ALMOST_FULL_TH",
+		C2H_PLD_FIFO_ALMOST_FULL_TH_MASK},
+};
+
+
+static struct regfield_info
+	pfch_cfg_3_field_info[] = {
+	{"PFCH_CFG_3_RSVD",
+		PFCH_CFG_3_RSVD_MASK},
+	{"PFCH_CFG_3_VAR_DESC_FL_FREE_CNT_TH",
+		PFCH_CFG_3_VAR_DESC_FL_FREE_CNT_TH_MASK},
+	{"PFCH_CFG_3_VAR_DESC_LG_PKT_CAM_CN_TH",
+		PFCH_CFG_3_VAR_DESC_LG_PKT_CAM_CN_TH_MASK},
+};
+
+
+static struct regfield_info
+	cmpt_cfg_0_field_info[] = {
+	{"CMPT_CFG_0_RSVD",
+		CMPT_CFG_0_RSVD_MASK},
+	{"CMPT_CFG_0_VIO_SPRS_INT_AFTER_RTY",
+		CMPT_CFG_0_VIO_SPRS_INT_AFTER_RTY_MASK},
+	{"CMPT_CFG_0_VIO_EVNT_SUP_EN",
+		CMPT_CFG_0_VIO_EVNT_SUP_EN_MASK},
+};
+
+
+static struct regfield_info
+	pfch_cfg_4_field_info[] = {
+	{"PFCH_CFG_4_GLB_EVT_TIMER_TICK",
+		PFCH_CFG_4_GLB_EVT_TIMER_TICK_MASK},
+	{"PFCH_CFG_4_DISABLE_GLB_EVT_TIMER",
+		PFCH_CFG_4_DISABLE_GLB_EVT_TIMER_MASK},
+	{"PFCH_CFG_4_EVT_TIMER_TICK",
+		PFCH_CFG_4_EVT_TIMER_TICK_MASK},
+	{"PFCH_CFG_4_DISABLE_EVT_TIMER",
+		PFCH_CFG_4_DISABLE_EVT_TIMER_MASK},
+};
+
+static struct xreg_info eqdma_config_regs[] = {
+{"CFG_BLK_IDENTIFIER", 0x00,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(cfg_blk_identifier_field_info),
+	cfg_blk_identifier_field_info
+},
+{"CFG_BLK_PCIE_MAX_PLD_SIZE", 0x08,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(cfg_blk_pcie_max_pld_size_field_info),
+	cfg_blk_pcie_max_pld_size_field_info
+},
+{"CFG_BLK_PCIE_MAX_READ_REQ_SIZE", 0x0c,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(cfg_blk_pcie_max_read_req_size_field_info),
+	cfg_blk_pcie_max_read_req_size_field_info
+},
+{"CFG_BLK_SYSTEM_ID", 0x10,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(cfg_blk_system_id_field_info),
+	cfg_blk_system_id_field_info
+},
+{"CFG_BLK_MSIX_ENABLE", 0x014,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(cfg_blk_msix_enable_field_info),
+	cfg_blk_msix_enable_field_info
+},
+{"CFG_PCIE_DATA_WIDTH", 0x18,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(cfg_pcie_data_width_field_info),
+	cfg_pcie_data_width_field_info
+},
+{"CFG_PCIE_CTL", 0x1c,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(cfg_pcie_ctl_field_info),
+	cfg_pcie_ctl_field_info
+},
+{"CFG_BLK_MSI_ENABLE", 0x20,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(cfg_blk_msi_enable_field_info),
+	cfg_blk_msi_enable_field_info
+},
+{"CFG_AXI_USER_MAX_PLD_SIZE", 0x40,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(cfg_axi_user_max_pld_size_field_info),
+	cfg_axi_user_max_pld_size_field_info
+},
+{"CFG_AXI_USER_MAX_READ_REQ_SIZE", 0x44,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(cfg_axi_user_max_read_req_size_field_info),
+	cfg_axi_user_max_read_req_size_field_info
+},
+{"CFG_BLK_MISC_CTL", 0x4c,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(cfg_blk_misc_ctl_field_info),
+	cfg_blk_misc_ctl_field_info
+},
+{"CFG_PL_CRED_CTL", 0x68,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(cfg_pl_cred_ctl_field_info),
+	cfg_pl_cred_ctl_field_info
+},
+{"CFG_BLK_SCRATCH", 0x80,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(cfg_blk_scratch_field_info),
+	cfg_blk_scratch_field_info
+},
+{"CFG_GIC", 0xa0,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(cfg_gic_field_info),
+	cfg_gic_field_info
+},
+{"RAM_SBE_MSK_1_A", 0xe0,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(ram_sbe_msk_1_a_field_info),
+	ram_sbe_msk_1_a_field_info
+},
+{"RAM_SBE_STS_1_A", 0xe4,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(ram_sbe_sts_1_a_field_info),
+	ram_sbe_sts_1_a_field_info
+},
+{"RAM_DBE_MSK_1_A", 0xe8,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(ram_dbe_msk_1_a_field_info),
+	ram_dbe_msk_1_a_field_info
+},
+{"RAM_DBE_STS_1_A", 0xec,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(ram_dbe_sts_1_a_field_info),
+	ram_dbe_sts_1_a_field_info
+},
+{"RAM_SBE_MSK_A", 0xf0,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(ram_sbe_msk_a_field_info),
+	ram_sbe_msk_a_field_info
+},
+{"RAM_SBE_STS_A", 0xf4,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(ram_sbe_sts_a_field_info),
+	ram_sbe_sts_a_field_info
+},
+{"RAM_DBE_MSK_A", 0xf8,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(ram_dbe_msk_a_field_info),
+	ram_dbe_msk_a_field_info
+},
+{"RAM_DBE_STS_A", 0xfc,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(ram_dbe_sts_a_field_info),
+	ram_dbe_sts_a_field_info
+},
+{"GLBL2_IDENTIFIER", 0x100,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_identifier_field_info),
+	glbl2_identifier_field_info
+},
+{"GLBL2_CHANNEL_INST", 0x114,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_channel_inst_field_info),
+	glbl2_channel_inst_field_info
+},
+{"GLBL2_CHANNEL_MDMA", 0x118,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_channel_mdma_field_info),
+	glbl2_channel_mdma_field_info
+},
+{"GLBL2_CHANNEL_STRM", 0x11c,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_channel_strm_field_info),
+	glbl2_channel_strm_field_info
+},
+{"GLBL2_CHANNEL_CAP", 0x120,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_channel_cap_field_info),
+	glbl2_channel_cap_field_info
+},
+{"GLBL2_CHANNEL_PASID_CAP", 0x128,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_channel_pasid_cap_field_info),
+	glbl2_channel_pasid_cap_field_info
+},
+{"GLBL2_SYSTEM_ID", 0x130,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_system_id_field_info),
+	glbl2_system_id_field_info
+},
+{"GLBL2_MISC_CAP", 0x134,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_misc_cap_field_info),
+	glbl2_misc_cap_field_info
+},
+{"GLBL2_RRQ_BRG_THROT", 0x158,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_rrq_brg_throt_field_info),
+	glbl2_rrq_brg_throt_field_info
+},
+{"GLBL2_RRQ_PCIE_THROT", 0x15c,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_rrq_pcie_throt_field_info),
+	glbl2_rrq_pcie_throt_field_info
+},
+{"GLBL2_RRQ_AXIMM_THROT", 0x160,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_rrq_aximm_throt_field_info),
+	glbl2_rrq_aximm_throt_field_info
+},
+{"GLBL2_RRQ_PCIE_LAT0", 0x164,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_rrq_pcie_lat0_field_info),
+	glbl2_rrq_pcie_lat0_field_info
+},
+{"GLBL2_RRQ_PCIE_LAT1", 0x168,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_rrq_pcie_lat1_field_info),
+	glbl2_rrq_pcie_lat1_field_info
+},
+{"GLBL2_RRQ_AXIMM_LAT0", 0x16c,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_rrq_aximm_lat0_field_info),
+	glbl2_rrq_aximm_lat0_field_info
+},
+{"GLBL2_RRQ_AXIMM_LAT1", 0x170,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_rrq_aximm_lat1_field_info),
+	glbl2_rrq_aximm_lat1_field_info
+},
+{"GLBL2_DBG_PCIE_RQ0", 0x1b8,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_dbg_pcie_rq0_field_info),
+	glbl2_dbg_pcie_rq0_field_info
+},
+{"GLBL2_DBG_PCIE_RQ1", 0x1bc,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_dbg_pcie_rq1_field_info),
+	glbl2_dbg_pcie_rq1_field_info
+},
+{"GLBL2_DBG_AXIMM_WR0", 0x1c0,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_dbg_aximm_wr0_field_info),
+	glbl2_dbg_aximm_wr0_field_info
+},
+{"GLBL2_DBG_AXIMM_WR1", 0x1c4,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_dbg_aximm_wr1_field_info),
+	glbl2_dbg_aximm_wr1_field_info
+},
+{"GLBL2_DBG_AXIMM_RD0", 0x1c8,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_dbg_aximm_rd0_field_info),
+	glbl2_dbg_aximm_rd0_field_info
+},
+{"GLBL2_DBG_AXIMM_RD1", 0x1cc,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_dbg_aximm_rd1_field_info),
+	glbl2_dbg_aximm_rd1_field_info
+},
+{"GLBL2_DBG_FAB0", 0x1d0,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_dbg_fab0_field_info),
+	glbl2_dbg_fab0_field_info
+},
+{"GLBL2_DBG_FAB1", 0x1d4,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_dbg_fab1_field_info),
+	glbl2_dbg_fab1_field_info
+},
+{"GLBL2_DBG_MATCH_SEL", 0x1f4,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_dbg_match_sel_field_info),
+	glbl2_dbg_match_sel_field_info
+},
+{"GLBL2_DBG_MATCH_MSK", 0x1f8,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_dbg_match_msk_field_info),
+	glbl2_dbg_match_msk_field_info
+},
+{"GLBL2_DBG_MATCH_PAT", 0x1fc,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl2_dbg_match_pat_field_info),
+	glbl2_dbg_match_pat_field_info
+},
+{"GLBL_RNG_SZ_1", 0x204,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_rng_sz_1_field_info),
+	glbl_rng_sz_1_field_info
+},
+{"GLBL_RNG_SZ_2", 0x208,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_rng_sz_2_field_info),
+	glbl_rng_sz_2_field_info
+},
+{"GLBL_RNG_SZ_3", 0x20c,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_rng_sz_3_field_info),
+	glbl_rng_sz_3_field_info
+},
+{"GLBL_RNG_SZ_4", 0x210,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_rng_sz_4_field_info),
+	glbl_rng_sz_4_field_info
+},
+{"GLBL_RNG_SZ_5", 0x214,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_rng_sz_5_field_info),
+	glbl_rng_sz_5_field_info
+},
+{"GLBL_RNG_SZ_6", 0x218,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_rng_sz_6_field_info),
+	glbl_rng_sz_6_field_info
+},
+{"GLBL_RNG_SZ_7", 0x21c,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_rng_sz_7_field_info),
+	glbl_rng_sz_7_field_info
+},
+{"GLBL_RNG_SZ_8", 0x220,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_rng_sz_8_field_info),
+	glbl_rng_sz_8_field_info
+},
+{"GLBL_RNG_SZ_9", 0x224,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_rng_sz_9_field_info),
+	glbl_rng_sz_9_field_info
+},
+{"GLBL_RNG_SZ_A", 0x228,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_rng_sz_a_field_info),
+	glbl_rng_sz_a_field_info
+},
+{"GLBL_RNG_SZ_B", 0x22c,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_rng_sz_b_field_info),
+	glbl_rng_sz_b_field_info
+},
+{"GLBL_RNG_SZ_C", 0x230,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_rng_sz_c_field_info),
+	glbl_rng_sz_c_field_info
+},
+{"GLBL_RNG_SZ_D", 0x234,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_rng_sz_d_field_info),
+	glbl_rng_sz_d_field_info
+},
+{"GLBL_RNG_SZ_E", 0x238,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_rng_sz_e_field_info),
+	glbl_rng_sz_e_field_info
+},
+{"GLBL_RNG_SZ_F", 0x23c,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_rng_sz_f_field_info),
+	glbl_rng_sz_f_field_info
+},
+{"GLBL_RNG_SZ_10", 0x240,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_rng_sz_10_field_info),
+	glbl_rng_sz_10_field_info
+},
+{"GLBL_ERR_STAT", 0x248,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_err_stat_field_info),
+	glbl_err_stat_field_info
+},
+{"GLBL_ERR_MASK", 0x24c,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_err_mask_field_info),
+	glbl_err_mask_field_info
+},
+{"GLBL_DSC_CFG", 0x250,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_dsc_cfg_field_info),
+	glbl_dsc_cfg_field_info
+},
+{"GLBL_DSC_ERR_STS", 0x254,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_dsc_err_sts_field_info),
+	glbl_dsc_err_sts_field_info
+},
+{"GLBL_DSC_ERR_MSK", 0x258,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_dsc_err_msk_field_info),
+	glbl_dsc_err_msk_field_info
+},
+{"GLBL_DSC_ERR_LOG0", 0x25c,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_dsc_err_log0_field_info),
+	glbl_dsc_err_log0_field_info
+},
+{"GLBL_DSC_ERR_LOG1", 0x260,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_dsc_err_log1_field_info),
+	glbl_dsc_err_log1_field_info
+},
+{"GLBL_TRQ_ERR_STS", 0x264,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_trq_err_sts_field_info),
+	glbl_trq_err_sts_field_info
+},
+{"GLBL_TRQ_ERR_MSK", 0x268,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_trq_err_msk_field_info),
+	glbl_trq_err_msk_field_info
+},
+{"GLBL_TRQ_ERR_LOG", 0x26c,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_trq_err_log_field_info),
+	glbl_trq_err_log_field_info
+},
+{"GLBL_DSC_DBG_DAT0", 0x270,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_dsc_dbg_dat0_field_info),
+	glbl_dsc_dbg_dat0_field_info
+},
+{"GLBL_DSC_DBG_DAT1", 0x274,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_dsc_dbg_dat1_field_info),
+	glbl_dsc_dbg_dat1_field_info
+},
+{"GLBL_DSC_DBG_CTL", 0x278,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_dsc_dbg_ctl_field_info),
+	glbl_dsc_dbg_ctl_field_info
+},
+{"GLBL_DSC_ERR_LOG2", 0x27c,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_dsc_err_log2_field_info),
+	glbl_dsc_err_log2_field_info
+},
+{"GLBL_GLBL_INTERRUPT_CFG", 0x2c4,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_glbl_interrupt_cfg_field_info),
+	glbl_glbl_interrupt_cfg_field_info
+},
+{"GLBL_VCH_HOST_PROFILE", 0x2c8,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_vch_host_profile_field_info),
+	glbl_vch_host_profile_field_info
+},
+{"GLBL_BRIDGE_HOST_PROFILE", 0x308,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(glbl_bridge_host_profile_field_info),
+	glbl_bridge_host_profile_field_info
+},
+{"AXIMM_IRQ_DEST_ADDR", 0x30c,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(aximm_irq_dest_addr_field_info),
+	aximm_irq_dest_addr_field_info
+},
+{"FAB_ERR_LOG", 0x314,
+	1, 0, 0, 0,
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(fab_err_log_field_info),
+	fab_err_log_field_info
+},
+{"GLBL_REQ_ERR_STS", 0x318,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_identifier_field_info),
-	cfg_blk_identifier_field_info
+	ARRAY_SIZE(glbl_req_err_sts_field_info),
+	glbl_req_err_sts_field_info
 },
-{"CFG_BLK_PCIE_MAX_PLD_SIZE", 0x08,
+{"GLBL_REQ_ERR_MSK", 0x31c,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_pcie_max_pld_size_field_info),
-	cfg_blk_pcie_max_pld_size_field_info
+	ARRAY_SIZE(glbl_req_err_msk_field_info),
+	glbl_req_err_msk_field_info
 },
-{"CFG_BLK_PCIE_MAX_READ_REQ_SIZE", 0x0c,
+{"GLBL_DSC_DBG_LAT0_A", 0x320,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_pcie_max_read_req_size_field_info),
-	cfg_blk_pcie_max_read_req_size_field_info
+	ARRAY_SIZE(glbl_dsc_dbg_lat0_a_field_info),
+	glbl_dsc_dbg_lat0_a_field_info
 },
-{"CFG_BLK_SYSTEM_ID", 0x10,
+{"GLBL_DSC_DBG_LAT1_A", 0x324,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_system_id_field_info),
-	cfg_blk_system_id_field_info
+	ARRAY_SIZE(glbl_dsc_dbg_lat1_a_field_info),
+	glbl_dsc_dbg_lat1_a_field_info
 },
-{"CFG_BLK_MSIX_ENABLE", 0x014,
+{"GLBL_DSC_CRD_CTR0_A", 0x328,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_msix_enable_field_info),
-	cfg_blk_msix_enable_field_info
+	ARRAY_SIZE(glbl_dsc_crd_ctr0_a_field_info),
+	glbl_dsc_crd_ctr0_a_field_info
 },
-{"CFG_PCIE_DATA_WIDTH", 0x18,
+{"GLBL_DSC_CRD_CTR1_A", 0x32c,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_pcie_data_width_field_info),
-	cfg_pcie_data_width_field_info
+	ARRAY_SIZE(glbl_dsc_crd_ctr1_a_field_info),
+	glbl_dsc_crd_ctr1_a_field_info
 },
-{"CFG_PCIE_CTL", 0x1c,
+{"GLBL_DSC_CRD_CTR2_A", 0x330,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_pcie_ctl_field_info),
-	cfg_pcie_ctl_field_info
+	ARRAY_SIZE(glbl_dsc_crd_ctr2_a_field_info),
+	glbl_dsc_crd_ctr2_a_field_info
 },
-{"CFG_BLK_MSI_ENABLE", 0x20,
+{"GLBL_DSC_CRD_CTR3_A", 0x334,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_msi_enable_field_info),
-	cfg_blk_msi_enable_field_info
+	ARRAY_SIZE(glbl_dsc_crd_ctr3_a_field_info),
+	glbl_dsc_crd_ctr3_a_field_info
 },
-{"CFG_AXI_USER_MAX_PLD_SIZE", 0x40,
+{"GLBL_DSC_IMM_CRD_CTR0_A", 0x338,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_axi_user_max_pld_size_field_info),
-	cfg_axi_user_max_pld_size_field_info
+	ARRAY_SIZE(glbl_dsc_imm_crd_ctr0_a_field_info),
+	glbl_dsc_imm_crd_ctr0_a_field_info
 },
-{"CFG_AXI_USER_MAX_READ_REQ_SIZE", 0x44,
+{"GLBL_DSC_IMM_CRD_CTR1_A", 0x33c,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_axi_user_max_read_req_size_field_info),
-	cfg_axi_user_max_read_req_size_field_info
+	ARRAY_SIZE(glbl_dsc_imm_crd_ctr1_a_field_info),
+	glbl_dsc_imm_crd_ctr1_a_field_info
 },
-{"CFG_BLK_MISC_CTL", 0x4c,
+{"GLBL_DSC_IMM_CRD_CTR2_A", 0x340,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_misc_ctl_field_info),
-	cfg_blk_misc_ctl_field_info
+	ARRAY_SIZE(glbl_dsc_imm_crd_ctr2_a_field_info),
+	glbl_dsc_imm_crd_ctr2_a_field_info
 },
-{"CFG_PL_CRED_CTL", 0x68,
+{"GLBL_DSC_IMM_CRD_CTR3_A", 0x344,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_pl_cred_ctl_field_info),
-	cfg_pl_cred_ctl_field_info
+	ARRAY_SIZE(glbl_dsc_imm_crd_ctr3_a_field_info),
+	glbl_dsc_imm_crd_ctr3_a_field_info
 },
-{"CFG_BLK_SCRATCH", 0x80,
+{"GLBL_DSC_H2C_OUT_CTR0_A", 0x348,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_scratch_field_info),
-	cfg_blk_scratch_field_info
+	ARRAY_SIZE(glbl_dsc_h2c_out_ctr0_a_field_info),
+	glbl_dsc_h2c_out_ctr0_a_field_info
 },
-{"CFG_GIC", 0xa0,
+{"GLBL_DSC_H2C_OUT_CTR1_A", 0x34c,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_gic_field_info),
-	cfg_gic_field_info
+	ARRAY_SIZE(glbl_dsc_h2c_out_ctr1_a_field_info),
+	glbl_dsc_h2c_out_ctr1_a_field_info
 },
-{"RAM_SBE_MSK_1_A", 0xe0,
+{"GLBL_DSC_H2C_OUT_CTR2_A", 0x350,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(ram_sbe_msk_1_a_field_info),
-	ram_sbe_msk_1_a_field_info
+	ARRAY_SIZE(glbl_dsc_h2c_out_ctr2_a_field_info),
+	glbl_dsc_h2c_out_ctr2_a_field_info
 },
-{"RAM_SBE_STS_1_A", 0xe4,
+{"GLBL_DSC_H2C_OUT_CTR3_A", 0x354,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(ram_sbe_sts_1_a_field_info),
-	ram_sbe_sts_1_a_field_info
+	ARRAY_SIZE(glbl_dsc_h2c_out_ctr3_a_field_info),
+	glbl_dsc_h2c_out_ctr3_a_field_info
 },
-{"RAM_DBE_MSK_1_A", 0xe8,
+{"GLBL_DSC_C2H_OUT_CTR0_A", 0x358,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(ram_dbe_msk_1_a_field_info),
-	ram_dbe_msk_1_a_field_info
+	ARRAY_SIZE(glbl_dsc_c2h_out_ctr0_a_field_info),
+	glbl_dsc_c2h_out_ctr0_a_field_info
 },
-{"RAM_DBE_STS_1_A", 0xec,
+{"GLBL_DSC_C2H_OUT_CTR1_A", 0x35c,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(ram_dbe_sts_1_a_field_info),
-	ram_dbe_sts_1_a_field_info
+	ARRAY_SIZE(glbl_dsc_c2h_out_ctr1_a_field_info),
+	glbl_dsc_c2h_out_ctr1_a_field_info
 },
-{"RAM_SBE_MSK_A", 0xf0,
+{"GLBL_DSC_C2H_OUT_CTR2_A", 0x360,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(ram_sbe_msk_a_field_info),
-	ram_sbe_msk_a_field_info
+	ARRAY_SIZE(glbl_dsc_c2h_out_ctr2_a_field_info),
+	glbl_dsc_c2h_out_ctr2_a_field_info
 },
-{"RAM_SBE_STS_A", 0xf4,
+{"GLBL_DSC_C2H_OUT_CTR3_A", 0x364,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(ram_sbe_sts_a_field_info),
-	ram_sbe_sts_a_field_info
+	ARRAY_SIZE(glbl_dsc_c2h_out_ctr3_a_field_info),
+	glbl_dsc_c2h_out_ctr3_a_field_info
 },
-{"RAM_DBE_MSK_A", 0xf8,
+{"T", 0x368,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(ram_dbe_msk_a_field_info),
-	ram_dbe_msk_a_field_info
+	ARRAY_SIZE(t_field_info),
+	t_field_info
 },
-{"RAM_DBE_STS_A", 0xfc,
+{"GLBL_PERF_CNTR_CTL_A1", 0x36c,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(ram_dbe_sts_a_field_info),
-	ram_dbe_sts_a_field_info
+	ARRAY_SIZE(glbl_perf_cntr_ctl_a1_field_info),
+	glbl_perf_cntr_ctl_a1_field_info
 },
-{"GLBL2_IDENTIFIER", 0x100,
+{"GLBL_FREE_CNT_A0", 0x370,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_identifier_field_info),
-	glbl2_identifier_field_info
+	ARRAY_SIZE(glbl_free_cnt_a0_field_info),
+	glbl_free_cnt_a0_field_info
 },
-{"GLBL2_CHANNEL_INST", 0x114,
+{"GLBL_FREE_CNT_A1", 0x374,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_channel_inst_field_info),
-	glbl2_channel_inst_field_info
+	ARRAY_SIZE(glbl_free_cnt_a1_field_info),
+	glbl_free_cnt_a1_field_info
 },
-{"GLBL2_CHANNEL_MDMA", 0x118,
+{"GLBL_AXIS_H2C_CNT_A0", 0x378,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_channel_mdma_field_info),
-	glbl2_channel_mdma_field_info
+	ARRAY_SIZE(glbl_axis_h2c_cnt_a0_field_info),
+	glbl_axis_h2c_cnt_a0_field_info
 },
-{"GLBL2_CHANNEL_STRM", 0x11c,
+{"GLBL_AXIS_H2C_CNT_A1", 0x37c,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_channel_strm_field_info),
-	glbl2_channel_strm_field_info
+	ARRAY_SIZE(glbl_axis_h2c_cnt_a1_field_info),
+	glbl_axis_h2c_cnt_a1_field_info
 },
-{"GLBL2_CHANNEL_CAP", 0x120,
+{"GLBL_AXIS_H2C_CNT_A2", 0x380,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_channel_cap_field_info),
-	glbl2_channel_cap_field_info
+	ARRAY_SIZE(glbl_axis_h2c_cnt_a2_field_info),
+	glbl_axis_h2c_cnt_a2_field_info
 },
-{"GLBL2_CHANNEL_PASID_CAP", 0x128,
+{"GLBL_AXIS_H2C_CNT_A3", 0x384,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_channel_pasid_cap_field_info),
-	glbl2_channel_pasid_cap_field_info
+	ARRAY_SIZE(glbl_axis_h2c_cnt_a3_field_info),
+	glbl_axis_h2c_cnt_a3_field_info
 },
-{"GLBL2_SYSTEM_ID", 0x130,
+{"GLBL_AXIS_H2C_CNT_A4", 0x388,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_system_id_field_info),
-	glbl2_system_id_field_info
+	ARRAY_SIZE(glbl_axis_h2c_cnt_a4_field_info),
+	glbl_axis_h2c_cnt_a4_field_info
 },
-{"GLBL2_MISC_CAP", 0x134,
+{"GLBL_AXIS_H2C_CNT_A5", 0x38c,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_misc_cap_field_info),
-	glbl2_misc_cap_field_info
+	ARRAY_SIZE(glbl_axis_h2c_cnt_a5_field_info),
+	glbl_axis_h2c_cnt_a5_field_info
 },
-{"GLBL2_DBG_PCIE_RQ0", 0x1b8,
+{"GLBL_AXIS_C2H_CNT_A0", 0x390,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_dbg_pcie_rq0_field_info),
-	glbl2_dbg_pcie_rq0_field_info
+	ARRAY_SIZE(glbl_axis_c2h_cnt_a0_field_info),
+	glbl_axis_c2h_cnt_a0_field_info
 },
-{"GLBL2_DBG_PCIE_RQ1", 0x1bc,
+{"GLBL_AXIS_C2H_CNT_A1", 0x394,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_dbg_pcie_rq1_field_info),
-	glbl2_dbg_pcie_rq1_field_info
+	ARRAY_SIZE(glbl_axis_c2h_cnt_a1_field_info),
+	glbl_axis_c2h_cnt_a1_field_info
 },
-{"GLBL2_DBG_AXIMM_WR0", 0x1c0,
+{"GLBL_AXIS_C2H_CNT_A2", 0x398,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_dbg_aximm_wr0_field_info),
-	glbl2_dbg_aximm_wr0_field_info
+	ARRAY_SIZE(glbl_axis_c2h_cnt_a2_field_info),
+	glbl_axis_c2h_cnt_a2_field_info
 },
-{"GLBL2_DBG_AXIMM_WR1", 0x1c4,
+{"GLBL_AXIS_C2H_CNT_A3", 0x39c,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_dbg_aximm_wr1_field_info),
-	glbl2_dbg_aximm_wr1_field_info
+	ARRAY_SIZE(glbl_axis_c2h_cnt_a3_field_info),
+	glbl_axis_c2h_cnt_a3_field_info
 },
-{"GLBL2_DBG_AXIMM_RD0", 0x1c8,
+{"GLBL_AXIS_C2H_CNT_A4", 0x3a0,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_dbg_aximm_rd0_field_info),
-	glbl2_dbg_aximm_rd0_field_info
+	ARRAY_SIZE(glbl_axis_c2h_cnt_a4_field_info),
+	glbl_axis_c2h_cnt_a4_field_info
 },
-{"GLBL2_DBG_AXIMM_RD1", 0x1cc,
+{"GLBL_AXIS_C2H_CNT_A5", 0x3a4,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_dbg_aximm_rd1_field_info),
-	glbl2_dbg_aximm_rd1_field_info
+	ARRAY_SIZE(glbl_axis_c2h_cnt_a5_field_info),
+	glbl_axis_c2h_cnt_a5_field_info
 },
-{"GLBL2_DBG_FAB0", 0x1d0,
+{"GLBL_M_AXI_WR_CNT_A0", 0x3a8,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_dbg_fab0_field_info),
-	glbl2_dbg_fab0_field_info
+	ARRAY_SIZE(glbl_m_axi_wr_cnt_a0_field_info),
+	glbl_m_axi_wr_cnt_a0_field_info
 },
-{"GLBL2_DBG_FAB1", 0x1d4,
+{"GLBL_M_AXI_WR_CNT_A1", 0x3ac,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_dbg_fab1_field_info),
-	glbl2_dbg_fab1_field_info
+	ARRAY_SIZE(glbl_m_axi_wr_cnt_a1_field_info),
+	glbl_m_axi_wr_cnt_a1_field_info
 },
-{"GLBL2_DBG_MATCH_SEL", 0x1f4,
+{"GLBL_M_AXI_WR_CNT_A2", 0x3b0,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_dbg_match_sel_field_info),
-	glbl2_dbg_match_sel_field_info
+	ARRAY_SIZE(glbl_m_axi_wr_cnt_a2_field_info),
+	glbl_m_axi_wr_cnt_a2_field_info
 },
-{"GLBL2_DBG_MATCH_MSK", 0x1f8,
+{"GLBL_M_AXI_WR_CNT_A3", 0x3b4,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_dbg_match_msk_field_info),
-	glbl2_dbg_match_msk_field_info
+	ARRAY_SIZE(glbl_m_axi_wr_cnt_a3_field_info),
+	glbl_m_axi_wr_cnt_a3_field_info
 },
-{"GLBL2_DBG_MATCH_PAT", 0x1fc,
+{"GLBL_M_AXI_WR_CNT_A4", 0x3b8,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_dbg_match_pat_field_info),
-	glbl2_dbg_match_pat_field_info
+	ARRAY_SIZE(glbl_m_axi_wr_cnt_a4_field_info),
+	glbl_m_axi_wr_cnt_a4_field_info
 },
-{"GLBL_RNG_SZ_1", 0x204,
+{"GLBL_M_AXI_WR_CNT_A5", 0x3bc,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_1_field_info),
-	glbl_rng_sz_1_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_m_axi_wr_cnt_a5_field_info),
+	glbl_m_axi_wr_cnt_a5_field_info
 },
-{"GLBL_RNG_SZ_2", 0x208,
+{"GLBL_M_AXI_RD_CNT_A0", 0x3c0,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_2_field_info),
-	glbl_rng_sz_2_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_m_axi_rd_cnt_a0_field_info),
+	glbl_m_axi_rd_cnt_a0_field_info
 },
-{"GLBL_RNG_SZ_3", 0x20c,
+{"GLBL_M_AXI_RD_CNT_A1", 0x3c4,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_3_field_info),
-	glbl_rng_sz_3_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_m_axi_rd_cnt_a1_field_info),
+	glbl_m_axi_rd_cnt_a1_field_info
 },
-{"GLBL_RNG_SZ_4", 0x210,
+{"GLBL_M_AXI_RD_CNT_A2", 0x3c8,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_4_field_info),
-	glbl_rng_sz_4_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_m_axi_rd_cnt_a2_field_info),
+	glbl_m_axi_rd_cnt_a2_field_info
 },
-{"GLBL_RNG_SZ_5", 0x214,
+{"GLBL_M_AXI_RD_CNT_A3", 0x3cc,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_5_field_info),
-	glbl_rng_sz_5_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_m_axi_rd_cnt_a3_field_info),
+	glbl_m_axi_rd_cnt_a3_field_info
 },
-{"GLBL_RNG_SZ_6", 0x218,
+{"GLBL_M_AXI_RD_CNT_A4", 0x3d0,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_6_field_info),
-	glbl_rng_sz_6_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_m_axi_rd_cnt_a4_field_info),
+	glbl_m_axi_rd_cnt_a4_field_info
 },
-{"GLBL_RNG_SZ_7", 0x21c,
+{"GLBL_M_AXI_RD_CNT_A5", 0x3d4,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_7_field_info),
-	glbl_rng_sz_7_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_m_axi_rd_cnt_a5_field_info),
+	glbl_m_axi_rd_cnt_a5_field_info
 },
-{"GLBL_RNG_SZ_8", 0x220,
+{"GLBL_M_AXIB_WR_CNT_A0", 0x3d8,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_8_field_info),
-	glbl_rng_sz_8_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_m_axib_wr_cnt_a0_field_info),
+	glbl_m_axib_wr_cnt_a0_field_info
 },
-{"GLBL_RNG_SZ_9", 0x224,
+{"GLBL_M_AXIB_WR_CNT_A1", 0x3dc,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_9_field_info),
-	glbl_rng_sz_9_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_m_axib_wr_cnt_a1_field_info),
+	glbl_m_axib_wr_cnt_a1_field_info
 },
-{"GLBL_RNG_SZ_A", 0x228,
+{"GLBL_M_AXIB_WR_CNT_A2", 0x3e0,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_a_field_info),
-	glbl_rng_sz_a_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_m_axib_wr_cnt_a2_field_info),
+	glbl_m_axib_wr_cnt_a2_field_info
 },
-{"GLBL_RNG_SZ_B", 0x22c,
+{"GLBL_M_AXIB_WR_CNT_A3", 0x3e4,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_b_field_info),
-	glbl_rng_sz_b_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_m_axib_wr_cnt_a3_field_info),
+	glbl_m_axib_wr_cnt_a3_field_info
 },
-{"GLBL_RNG_SZ_C", 0x230,
+{"GLBL_M_AXIB_WR_CNT_A4", 0x3e8,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_c_field_info),
-	glbl_rng_sz_c_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_m_axib_wr_cnt_a4_field_info),
+	glbl_m_axib_wr_cnt_a4_field_info
 },
-{"GLBL_RNG_SZ_D", 0x234,
+{"GLBL_M_AXIB_WR_CNT_A5", 0x3ec,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_d_field_info),
-	glbl_rng_sz_d_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_m_axib_wr_cnt_a5_field_info),
+	glbl_m_axib_wr_cnt_a5_field_info
 },
-{"GLBL_RNG_SZ_E", 0x238,
+{"GLBL_M_AXIB_RD_CNT_A0", 0x3f0,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_e_field_info),
-	glbl_rng_sz_e_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_m_axib_rd_cnt_a0_field_info),
+	glbl_m_axib_rd_cnt_a0_field_info
 },
-{"GLBL_RNG_SZ_F", 0x23c,
+{"GLBL_M_AXIB_RD_CNT_A1", 0x3f4,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_f_field_info),
-	glbl_rng_sz_f_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_m_axib_rd_cnt_a1_field_info),
+	glbl_m_axib_rd_cnt_a1_field_info
 },
-{"GLBL_RNG_SZ_10", 0x240,
+{"GLBL_M_AXIB_RD_CNT_A2", 0x3f8,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_10_field_info),
-	glbl_rng_sz_10_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_m_axib_rd_cnt_a2_field_info),
+	glbl_m_axib_rd_cnt_a2_field_info
 },
-{"GLBL_ERR_STAT", 0x248,
+{"GLBL_M_AXIB_RD_CNT_A3", 0x3fc,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_err_stat_field_info),
-	glbl_err_stat_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_m_axib_rd_cnt_a3_field_info),
+	glbl_m_axib_rd_cnt_a3_field_info
 },
-{"GLBL_ERR_MASK", 0x24c,
+{"GLBL_M_AXIB_RD_CNT_A4", 0x400,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_err_mask_field_info),
-	glbl_err_mask_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_m_axib_rd_cnt_a4_field_info),
+	glbl_m_axib_rd_cnt_a4_field_info
 },
-{"GLBL_DSC_CFG", 0x250,
+{"GLBL_M_AXIB_RD_CNT_A5", 0x404,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_dsc_cfg_field_info),
-	glbl_dsc_cfg_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_m_axib_rd_cnt_a5_field_info),
+	glbl_m_axib_rd_cnt_a5_field_info
 },
-{"GLBL_DSC_ERR_STS", 0x254,
+{"GLBL_S_AXI_WR_CNT_A0", 0x408,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_dsc_err_sts_field_info),
-	glbl_dsc_err_sts_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_s_axi_wr_cnt_a0_field_info),
+	glbl_s_axi_wr_cnt_a0_field_info
 },
-{"GLBL_DSC_ERR_MSK", 0x258,
+{"GLBL_S_AXI_WR_CNT_A1", 0x40c,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_dsc_err_msk_field_info),
-	glbl_dsc_err_msk_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_s_axi_wr_cnt_a1_field_info),
+	glbl_s_axi_wr_cnt_a1_field_info
 },
-{"GLBL_DSC_ERR_LOG0", 0x25c,
+{"GLBL_S_AXI_WR_CNT_A2", 0x410,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_dsc_err_log0_field_info),
-	glbl_dsc_err_log0_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_s_axi_wr_cnt_a2_field_info),
+	glbl_s_axi_wr_cnt_a2_field_info
 },
-{"GLBL_DSC_ERR_LOG1", 0x260,
+{"GLBL_S_AXI_WR_CNT_A3", 0x414,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_dsc_err_log1_field_info),
-	glbl_dsc_err_log1_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_s_axi_wr_cnt_a3_field_info),
+	glbl_s_axi_wr_cnt_a3_field_info
 },
-{"GLBL_TRQ_ERR_STS", 0x264,
+{"GLBL_S_AXI_WR_CNT_A4", 0x418,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_trq_err_sts_field_info),
-	glbl_trq_err_sts_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_s_axi_wr_cnt_a4_field_info),
+	glbl_s_axi_wr_cnt_a4_field_info
 },
-{"GLBL_TRQ_ERR_MSK", 0x268,
+{"GLBL_S_AXI_WR_CNT_A5", 0x41c,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_trq_err_msk_field_info),
-	glbl_trq_err_msk_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_s_axi_wr_cnt_a5_field_info),
+	glbl_s_axi_wr_cnt_a5_field_info
 },
-{"GLBL_TRQ_ERR_LOG", 0x26c,
+{"GLBL_S_AXI_RD_CNT_A0", 0x420,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_trq_err_log_field_info),
-	glbl_trq_err_log_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_s_axi_rd_cnt_a0_field_info),
+	glbl_s_axi_rd_cnt_a0_field_info
 },
-{"GLBL_DSC_DBG_DAT0", 0x270,
+{"GLBL_S_AXI_RD_CNT_A1", 0x424,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_dsc_dbg_dat0_field_info),
-	glbl_dsc_dbg_dat0_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_s_axi_rd_cnt_a1_field_info),
+	glbl_s_axi_rd_cnt_a1_field_info
 },
-{"GLBL_DSC_DBG_DAT1", 0x274,
+{"GLBL_S_AXI_RD_CNT_A2", 0x428,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_dsc_dbg_dat1_field_info),
-	glbl_dsc_dbg_dat1_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_s_axi_rd_cnt_a2_field_info),
+	glbl_s_axi_rd_cnt_a2_field_info
 },
-{"GLBL_DSC_DBG_CTL", 0x278,
+{"GLBL_S_AXI_RD_CNT_A3", 0x42c,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_dsc_dbg_ctl_field_info),
-	glbl_dsc_dbg_ctl_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_s_axi_rd_cnt_a3_field_info),
+	glbl_s_axi_rd_cnt_a3_field_info
 },
-{"GLBL_DSC_ERR_LOG2", 0x27c,
+{"GLBL_S_AXI_RD_CNT_A4", 0x430,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_dsc_err_log2_field_info),
-	glbl_dsc_err_log2_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_s_axi_rd_cnt_a4_field_info),
+	glbl_s_axi_rd_cnt_a4_field_info
 },
-{"GLBL_GLBL_INTERRUPT_CFG", 0x2c4,
+{"GLBL_S_AXI_RD_CNT_A5", 0x434,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_glbl_interrupt_cfg_field_info),
-	glbl_glbl_interrupt_cfg_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_s_axi_rd_cnt_a5_field_info),
+	glbl_s_axi_rd_cnt_a5_field_info
 },
-{"GLBL_VCH_HOST_PROFILE", 0x2c8,
+{"GLBL_S_AXIS_CMP_CNT_A0", 0x438,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_vch_host_profile_field_info),
-	glbl_vch_host_profile_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_s_axis_cmp_cnt_a0_field_info),
+	glbl_s_axis_cmp_cnt_a0_field_info
 },
-{"GLBL_BRIDGE_HOST_PROFILE", 0x308,
+{"GLBL_S_AXIS_CMP_CNT_A1", 0x43c,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_bridge_host_profile_field_info),
-	glbl_bridge_host_profile_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_s_axis_cmp_cnt_a1_field_info),
+	glbl_s_axis_cmp_cnt_a1_field_info
 },
-{"AXIMM_IRQ_DEST_ADDR", 0x30c,
+{"GLBL_S_AXIS_CMP_CNT_A2", 0x440,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(aximm_irq_dest_addr_field_info),
-	aximm_irq_dest_addr_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_s_axis_cmp_cnt_a2_field_info),
+	glbl_s_axis_cmp_cnt_a2_field_info
 },
-{"FAB_ERR_LOG", 0x314,
+{"GLBL_S_AXIS_CMP_CNT_A3", 0x444,
 	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(fab_err_log_field_info),
-	fab_err_log_field_info
+	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(glbl_s_axis_cmp_cnt_a3_field_info),
+	glbl_s_axis_cmp_cnt_a3_field_info
 },
-{"GLBL_REQ_ERR_STS", 0x318,
+{"GLBL_S_AXIS_CMP_CNT_A4", 0x448,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl_req_err_sts_field_info),
-	glbl_req_err_sts_field_info
+	ARRAY_SIZE(glbl_s_axis_cmp_cnt_a4_field_info),
+	glbl_s_axis_cmp_cnt_a4_field_info
 },
-{"GLBL_REQ_ERR_MSK", 0x31c,
+{"GLBL_S_AXIS_CMP_CNT_A5", 0x44c,
 	1, 0, 0, 0,
 	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl_req_err_msk_field_info),
-	glbl_req_err_msk_field_info
+	ARRAY_SIZE(glbl_s_axis_cmp_cnt_a5_field_info),
+	glbl_s_axis_cmp_cnt_a5_field_info
 },
 {"IND_CTXT_DATA", 0x804,
 	1, 0, 0, 0,
@@ -3189,6 +4484,18 @@ static struct xreg_info eqdma_config_regs[] = {
 	ARRAY_SIZE(c2h_cnt_th_field_info),
 	c2h_cnt_th_field_info
 },
+{"C2H_PFCH_CFG_1", 0xa80,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(c2h_pfch_cfg_1_field_info),
+	c2h_pfch_cfg_1_field_info
+},
+{"C2H_PFCH_CFG_2", 0xa84,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
+	ARRAY_SIZE(c2h_pfch_cfg_2_field_info),
+	c2h_pfch_cfg_2_field_info
+},
 {"C2H_STAT_S_AXIS_C2H_ACCEPTED", 0xa88,
 	1, 0, 0, 0,
 	1, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
@@ -3297,18 +4604,6 @@ static struct xreg_info eqdma_config_regs[] = {
 	ARRAY_SIZE(c2h_pfch_cfg_field_info),
 	c2h_pfch_cfg_field_info
 },
-{"C2H_PFCH_CFG_1", 0xa80,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_pfch_cfg_1_field_info),
-	c2h_pfch_cfg_1_field_info
-},
-{"C2H_PFCH_CFG_2", 0xa84,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_pfch_cfg_2_field_info),
-	c2h_pfch_cfg_2_field_info
-},
 {"C2H_INT_TIMER_TICK", 0xb0c,
 	1, 0, 0, 0,
 	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
@@ -3891,6 +5186,12 @@ static struct xreg_info eqdma_config_regs[] = {
 	ARRAY_SIZE(h2c_mm_dbg_field_info),
 	h2c_mm_dbg_field_info
 },
+{"H2C_MM_DATA_THROTTLE", 0x12ec,
+	1, 0, 0, 0,
+	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(h2c_mm_data_throttle_field_info),
+	h2c_mm_data_throttle_field_info
+},
 {"C2H_CRDT_COAL_CFG_1", 0x1400,
 	1, 0, 0, 0,
 	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
@@ -3915,12 +5216,96 @@ static struct xreg_info eqdma_config_regs[] = {
 	ARRAY_SIZE(c2h_pfch_byp_tag_field_info),
 	c2h_pfch_byp_tag_field_info
 },
-{"C2H_WATER_MARK", 0x1500,
+{"C2H_WATER_MARK", 0x1410,
 	1, 0, 0, 0,
 	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
 	ARRAY_SIZE(c2h_water_mark_field_info),
 	c2h_water_mark_field_info
 },
+{"C2H_NOTIFY_EMPTY", 0x1450,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(c2h_notify_empty_field_info),
+	c2h_notify_empty_field_info
+},
+{"C2H_STAT_S_AXIS_C2H_ACCEPTED_1", 0x1454,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(c2h_stat_s_axis_c2h_accepted_1_field_info),
+	c2h_stat_s_axis_c2h_accepted_1_field_info
+},
+{"C2H_STAT_S_AXIS_WRB_ACCEPTED_1", 0x1458,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(c2h_stat_s_axis_wrb_accepted_1_field_info),
+	c2h_stat_s_axis_wrb_accepted_1_field_info
+},
+{"C2H_STAT_DESC_RSP_PKT_ACCEPTED_1", 0x145c,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(c2h_stat_desc_rsp_pkt_accepted_1_field_info),
+	c2h_stat_desc_rsp_pkt_accepted_1_field_info
+},
+{"C2H_STAT_AXIS_PKG_CMP_1", 0x1460,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(c2h_stat_axis_pkg_cmp_1_field_info),
+	c2h_stat_axis_pkg_cmp_1_field_info
+},
+{"C2H_STAT_S_AXIS_WRB_ACCEPTED_2", 0x1464,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(c2h_stat_s_axis_wrb_accepted_2_field_info),
+	c2h_stat_s_axis_wrb_accepted_2_field_info
+},
+{"C2H_ST_PLD_FIFO_DEPTH", 0x1468,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(c2h_st_pld_fifo_depth_field_info),
+	c2h_st_pld_fifo_depth_field_info
+},
+{"C2H_STAT_DBG_DMA_ENG_6", 0x146c,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(c2h_stat_dbg_dma_eng_6_field_info),
+	c2h_stat_dbg_dma_eng_6_field_info
+},
+{"C2H_STAT_DBG_DMA_ENG_7", 0x1470,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(c2h_stat_dbg_dma_eng_7_field_info),
+	c2h_stat_dbg_dma_eng_7_field_info
+},
+{"C2H_STAT_PCIE_CMP_1", 0x1474,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(c2h_stat_pcie_cmp_1_field_info),
+	c2h_stat_pcie_cmp_1_field_info
+},
+{"C2H_PLD_FIFO_ALMOST_FULL", 0x1478,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(c2h_pld_fifo_almost_full_field_info),
+	c2h_pld_fifo_almost_full_field_info
+},
+{"PFCH_CFG_3", 0x147c,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(pfch_cfg_3_field_info),
+	pfch_cfg_3_field_info
+},
+{"CMPT_CFG_0", 0x1480,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(cmpt_cfg_0_field_info),
+	cmpt_cfg_0_field_info
+},
+{"PFCH_CFG_4", 0x1484,
+	1, 0, 0, 0,
+	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
+	ARRAY_SIZE(pfch_cfg_4_field_info),
+	pfch_cfg_4_field_info
+},
 
 };
 
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_common.c b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_common.c
old mode 100644
new mode 100755
index 00b9b36..6b468d5
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_common.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_common.c
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -104,12 +105,24 @@ static const char *qdma_get_rtl_version(enum qdma_rtl_version rtl_version)
 /**
  * qdma_get_ip_type() - Function to get the ip type in string format
  *
- * @ip_type: IP Type
+ * @dev_hndl:  device handle
+ * @is_vf:	   Whether PF or VF
+ * @ip_type:   IP Type
  *
  * Return: string - success and NULL on failure
  *****************************************************************************/
-static const char *qdma_get_ip_type(enum qdma_ip_type ip_type)
+static const char *qdma_get_ip_type(void *dev_hndl, uint8_t is_vf,
+		enum qdma_ip_type ip_type)
 {
+	uint32_t ip_version;
+	int rv = QDMA_SUCCESS;
+
+	if (!dev_hndl) {
+		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
+				__func__, -QDMA_ERR_INV_PARAM);
+		return NULL;
+	}
+
 	switch (ip_type) {
 	case QDMA_VERSAL_HARD_IP:
 		return "Versal Hard IP";
@@ -118,7 +131,18 @@ static const char *qdma_get_ip_type(enum qdma_ip_type ip_type)
 	case QDMA_SOFT_IP:
 		return "QDMA Soft IP";
 	case EQDMA_SOFT_IP:
-		return "EQDMA Soft IP";
+		rv = eqdma_get_ip_version(dev_hndl, is_vf, &ip_version);
+		if (rv != QDMA_SUCCESS)
+			return NULL;
+
+		if (ip_version == EQDMA_IP_VERSION_4)
+			return "EQDMA4.0 Soft IP";
+		else if (ip_version == EQDMA_IP_VERSION_5)
+			return "EQDMA5.0 Soft IP";
+
+		qdma_log_error("%s: invalid eqdma ip version(%d), err:%d\n",
+				__func__, ip_version, -QDMA_ERR_INV_PARAM);
+		return NULL;
 	default:
 		qdma_log_error("%s: invalid ip type(%d), err:%d\n",
 				__func__, ip_type, -QDMA_ERR_INV_PARAM);
@@ -211,12 +235,18 @@ void qdma_read_csr_values(void *dev_hndl, uint32_t reg_offst,
 	}
 }
 
-void qdma_fetch_version_details(uint8_t is_vf, uint32_t version_reg_val,
-		struct qdma_hw_version_info *version_info)
+void qdma_fetch_version_details(void *dev_hndl, uint8_t is_vf,
+	uint32_t version_reg_val, struct qdma_hw_version_info *version_info)
 {
 	uint32_t rtl_version, vivado_release_id, ip_type, device_type;
 	const char *version_str;
 
+	if (!dev_hndl) {
+		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
+				__func__, -QDMA_ERR_INV_PARAM);
+		return;
+	}
+
 	if (!is_vf) {
 		rtl_version = FIELD_GET(QDMA_GLBL2_RTL_VERSION_MASK,
 				version_reg_val);
@@ -287,6 +317,11 @@ void qdma_fetch_version_details(uint8_t is_vf, uint32_t version_reg_val,
 			version_info->ip_type = QDMA_SOFT_IP;
 			break;
 		case 1:
+		case 2:
+			/* For QDMA4.0 and QDMA5.0, HW design and
+			 * register map is same except some
+			 * performance optimizations
+			 */
 			version_info->ip_type = EQDMA_SOFT_IP;
 			break;
 		default:
@@ -305,7 +340,7 @@ void qdma_fetch_version_details(uint8_t is_vf, uint32_t version_reg_val,
 		}
 	}
 
-	version_str = qdma_get_ip_type(version_info->ip_type);
+	version_str = qdma_get_ip_type(dev_hndl, is_vf, version_info->ip_type);
 	if (version_str != NULL)
 		qdma_strncpy(version_info->qdma_ip_type_str,
 			version_str,
@@ -1330,7 +1365,7 @@ int qdma_hw_access_init(void *dev_hndl, uint8_t is_vf,
 			qdma_get_device_type(version_info.device_type));
 
 	qdma_log_info("IP Type: %s\n",
-			qdma_get_ip_type(version_info.ip_type));
+		qdma_get_ip_type(dev_hndl, is_vf, version_info.ip_type));
 
 	qdma_log_info("Vivado Release: %s\n",
 		qdma_get_vivado_release_id(version_info.vivado_release));
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_common.h b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_common.h
old mode 100644
new mode 100755
index 5521c00..00f6bb6
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_common.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_common.h
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -908,9 +909,8 @@ int qdma_get_error_code(int acc_err_code);
  *
  * Return:	Nothing
  *****************************************************************************/
-void qdma_fetch_version_details(uint8_t is_vf, uint32_t version_reg_val,
-		struct qdma_hw_version_info *version_info);
-
+void qdma_fetch_version_details(void *dev_hndl, uint8_t is_vf,
+	uint32_t version_reg_val, struct qdma_hw_version_info *version_info);
 
 #ifdef __cplusplus
 }
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_errors.h b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_errors.h
old mode 100644
new mode 100755
index aceb36f..c8b28c9
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_errors.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_errors.h
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_export.h b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_export.h
old mode 100644
new mode 100755
index 2fd24ae..66eaa32
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_export.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_export.h
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_version.h b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_version.h
old mode 100644
new mode 100755
index 7a7134d..c560b46
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_version.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_access_version.h
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -20,7 +21,7 @@
 
 #define QDMA_VERSION_MAJOR	2022
 #define QDMA_VERSION_MINOR	1
-#define QDMA_VERSION_PATCH	4
+#define QDMA_VERSION_PATCH	5
 
 #define QDMA_VERSION_STR	\
 	__stringify(QDMA_VERSION_MAJOR) "." \
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_cpm4_access/qdma_cpm4_access.c b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_cpm4_access/qdma_cpm4_access.c
old mode 100644
new mode 100755
index bf2d7af..757662f
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_cpm4_access/qdma_cpm4_access.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_cpm4_access/qdma_cpm4_access.c
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_cpm4_access/qdma_cpm4_access.h b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_cpm4_access/qdma_cpm4_access.h
old mode 100644
new mode 100755
index 50c1d51..b238c33
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_cpm4_access/qdma_cpm4_access.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_cpm4_access/qdma_cpm4_access.h
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_cpm4_access/qdma_cpm4_reg.h b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_cpm4_access/qdma_cpm4_reg.h
old mode 100644
new mode 100755
index e480e41..dee28b4
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_cpm4_access/qdma_cpm4_reg.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_cpm4_access/qdma_cpm4_reg.h
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_cpm4_access/qdma_cpm4_reg_dump.c b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_cpm4_access/qdma_cpm4_reg_dump.c
old mode 100644
new mode 100755
index 16f33db..dcfb94f
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_cpm4_access/qdma_cpm4_reg_dump.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_cpm4_access/qdma_cpm4_reg_dump.c
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_list.c b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_list.c
old mode 100644
new mode 100755
index 4ccd2b0..b7fabf7
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_list.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_list.c
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_list.h b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_list.h
old mode 100644
new mode 100755
index 221a1dd..dd5f7d4
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_list.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_list.h
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_mbox_protocol.c b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_mbox_protocol.c
old mode 100644
new mode 100755
index 0dbaa5f..67e7268
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_mbox_protocol.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_mbox_protocol.c
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_mbox_protocol.h b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_mbox_protocol.h
old mode 100644
new mode 100755
index a3f90fc..b29a8c0
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_mbox_protocol.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_mbox_protocol.h
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_platform.h b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_platform.h
old mode 100644
new mode 100755
index df9db37..a6c7d1c
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_platform.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_platform.h
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_reg_dump.h b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_reg_dump.h
old mode 100644
new mode 100755
index d66a138..f774bf6
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_reg_dump.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_reg_dump.h
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_resource_mgmt.c b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_resource_mgmt.c
old mode 100644
new mode 100755
index 8777976..1875ac4
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_resource_mgmt.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_resource_mgmt.c
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_resource_mgmt.h b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_resource_mgmt.h
old mode 100644
new mode 100755
index b0cc090..5c53c47
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_resource_mgmt.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_resource_mgmt.h
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_s80_hard_access/qdma_s80_hard_access.c b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_s80_hard_access/qdma_s80_hard_access.c
deleted file mode 100644
index 6640741..0000000
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_s80_hard_access/qdma_s80_hard_access.c
+++ /dev/null
@@ -1,5894 +0,0 @@
-/*
- * Copyright(c) 2019-2020 Xilinx, Inc. All rights reserved.
- *
- * This source code is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
- * more details.
- *
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- */
-
-#include "qdma_s80_hard_access.h"
-#include "qdma_s80_hard_reg.h"
-#include "qdma_reg_dump.h"
-
-#ifdef ENABLE_WPP_TRACING
-#include "qdma_s80_hard_access.tmh"
-#endif
-
-/** QDMA S80 Hard Context array size */
-#define QDMA_S80_HARD_SW_CONTEXT_NUM_WORDS              4
-#define QDMA_S80_HARD_CMPT_CONTEXT_NUM_WORDS            4
-#define QDMA_S80_HARD_QID2VEC_CONTEXT_NUM_WORDS         1
-#define QDMA_S80_HARD_HW_CONTEXT_NUM_WORDS              2
-#define QDMA_S80_HARD_CR_CONTEXT_NUM_WORDS              1
-#define QDMA_S80_HARD_IND_INTR_CONTEXT_NUM_WORDS        3
-#define QDMA_S80_HARD_PFETCH_CONTEXT_NUM_WORDS          2
-
-#define QDMA_S80_HARD_VF_USER_BAR_ID   2
-
-#define QDMA_S80_REG_GROUP_1_START_ADDR	0x000
-#define QDMA_S80_REG_GROUP_2_START_ADDR	0x400
-#define QDMA_S80_REG_GROUP_3_START_ADDR	0xB00
-#define QDMA_S80_REG_GROUP_4_START_ADDR	0x1014
-
-#define QDMA_S80_HARD_REG_TRQ_SEL_FMAP_STEP	4
-
-#define QDMA_S80_HARD_IND_CTXT_DATA_NUM_REGS	4
-
-#define QDMA_S80_HARD_TOTAL_LEAF_ERROR_AGGREGATORS	7
-#define QDMA_S80_HARD_GLBL_TRQ_ERR_ALL_MASK			0XB3
-#define QDMA_S80_HARD_GLBL_DSC_ERR_ALL_MASK			0X1F9037E
-#define QDMA_S80_HARD_C2H_ERR_ALL_MASK				0X3F6DF
-#define QDMA_S80_HARD_C2H_FATAL_ERR_ALL_MASK			0X1FDF1B
-#define QDMA_S80_HARD_H2C_ERR_ALL_MASK				0X3F
-#define QDMA_S80_HARD_SBE_ERR_ALL_MASK				0XFFFFFFFF
-#define QDMA_S80_HARD_DBE_ERR_ALL_MASK				0XFFFFFFFF
-
-#define QDMA_S80_HARD_OFFSET_DMAP_SEL_INT_CIDX                  0x6400
-#define QDMA_S80_HARD_OFFSET_DMAP_SEL_H2C_DSC_PIDX          0x6404
-#define QDMA_S80_HARD_OFFSET_DMAP_SEL_C2H_DSC_PIDX          0x6408
-#define QDMA_S80_HARD_OFFSET_DMAP_SEL_CMPT_CIDX               0x640C
-
-#define QDMA_S80_HARD_OFFSET_VF_DMAP_SEL_INT_CIDX             0x3000
-#define QDMA_S80_HARD_OFFSET_VF_DMAP_SEL_H2C_DSC_PIDX     0x3004
-#define QDMA_S80_HARD_OFFSET_VF_DMAP_SEL_C2H_DSC_PIDX     0x3008
-#define QDMA_S80_HARD_OFFSET_VF_DMAP_SEL_CMPT_CIDX          0x300C
-
-#define QDMA_S80_HARD_DMA_SEL_INT_SW_CIDX_MASK               GENMASK(15, 0)
-#define QDMA_S80_HARD_DMA_SEL_INT_RING_IDX_MASK              GENMASK(23, 16)
-#define QDMA_S80_HARD_DMA_SEL_DESC_PIDX_MASK                   GENMASK(15, 0)
-#define QDMA_S80_HARD_DMA_SEL_IRQ_EN_MASK                        BIT(16)
-#define QDMA_S80_HARD_DMAP_SEL_CMPT_IRQ_EN_MASK             BIT(28)
-#define QDMA_S80_HARD_DMAP_SEL_CMPT_STS_DESC_EN_MASK    BIT(27)
-#define QDMA_S80_HARD_DMAP_SEL_CMPT_TRG_MODE_MASK        GENMASK(26, 24)
-#define QDMA_S80_HARD_DMAP_SEL_CMPT_TMR_CNT_MASK          GENMASK(23, 20)
-#define QDMA_S80_HARD_DMAP_SEL_CMPT_CNT_THRESH_MASK     GENMASK(19, 16)
-#define QDMA_S80_HARD_DMAP_SEL_CMPT_WRB_CIDX_MASK        GENMASK(15, 0)
-#define QDMA_S80_HARD_INTR_CTXT_BADDR_GET_H_MASK     GENMASK_ULL(63, 35)
-#define QDMA_S80_HARD_INTR_CTXT_BADDR_GET_L_MASK     GENMASK_ULL(34, 12)
-#define QDMA_S80_HARD_COMPL_CTXT_BADDR_GET_H_MASK    GENMASK_ULL(63, 42)
-#define QDMA_S80_HARD_COMPL_CTXT_BADDR_GET_M_MASK    GENMASK_ULL(41, 10)
-#define QDMA_S80_HARD_COMPL_CTXT_BADDR_GET_L_MASK    GENMASK_ULL(9, 6)
-#define QDMA_S80_HARD_COMPL_CTXT_PIDX_GET_H_MASK     GENMASK(15, 8)
-#define QDMA_S80_HARD_COMPL_CTXT_PIDX_GET_L_MASK     GENMASK(7, 0)
-#define QDMA_S80_HARD_QID2VEC_H2C_VECTOR             GENMASK(16, 9)
-#define QDMA_S80_HARD_QID2VEC_H2C_COAL_EN            BIT(17)
-
-static void qdma_s80_hard_hw_st_h2c_err_process(void *dev_hndl);
-static void qdma_s80_hard_hw_st_c2h_err_process(void *dev_hndl);
-static void qdma_s80_hard_hw_desc_err_process(void *dev_hndl);
-static void qdma_s80_hard_hw_trq_err_process(void *dev_hndl);
-static void qdma_s80_hard_hw_ram_sbe_err_process(void *dev_hndl);
-static void qdma_s80_hard_hw_ram_dbe_err_process(void *dev_hndl);
-
-static struct qdma_s80_hard_hw_err_info
-		qdma_s80_hard_err_info[QDMA_S80_HARD_ERRS_ALL] = {
-	/* Descriptor errors */
-	{
-		QDMA_S80_HARD_DSC_ERR_POISON,
-		"Poison error",
-		QDMA_S80_HARD_GLBL_DSC_ERR_MSK_ADDR,
-		QDMA_S80_HARD_GLBL_DSC_ERR_STS_ADDR,
-		GLBL_DSC_ERR_STS_POISON_MASK,
-		GLBL_ERR_STAT_ERR_DSC_MASK,
-		&qdma_s80_hard_hw_desc_err_process
-	},
-	{
-		QDMA_S80_HARD_DSC_ERR_UR_CA,
-		"Unsupported request or completer aborted error",
-		QDMA_S80_HARD_GLBL_DSC_ERR_MSK_ADDR,
-		QDMA_S80_HARD_GLBL_DSC_ERR_STS_ADDR,
-		GLBL_DSC_ERR_STS_UR_CA_MASK,
-		GLBL_ERR_STAT_ERR_DSC_MASK,
-		&qdma_s80_hard_hw_desc_err_process
-	},
-	{
-		QDMA_S80_HARD_DSC_ERR_PARAM,
-		"Parameter mismatch error",
-		QDMA_S80_HARD_GLBL_DSC_ERR_MSK_ADDR,
-		QDMA_S80_HARD_GLBL_DSC_ERR_STS_ADDR,
-		GLBL_DSC_ERR_STS_PARAM_MASK,
-		GLBL_ERR_STAT_ERR_DSC_MASK,
-		&qdma_s80_hard_hw_desc_err_process
-	},
-	{
-		QDMA_S80_HARD_DSC_ERR_ADDR,
-		"Address mismatch error",
-		QDMA_S80_HARD_GLBL_DSC_ERR_MSK_ADDR,
-		QDMA_S80_HARD_GLBL_DSC_ERR_STS_ADDR,
-		GLBL_DSC_ERR_STS_ADDR_MASK,
-		GLBL_ERR_STAT_ERR_DSC_MASK,
-		&qdma_s80_hard_hw_desc_err_process
-	},
-	{
-		QDMA_S80_HARD_DSC_ERR_TAG,
-		"Unexpected tag error",
-		QDMA_S80_HARD_GLBL_DSC_ERR_MSK_ADDR,
-		QDMA_S80_HARD_GLBL_DSC_ERR_STS_ADDR,
-		GLBL_DSC_ERR_STS_TAG_MASK,
-		GLBL_ERR_STAT_ERR_DSC_MASK,
-		&qdma_s80_hard_hw_desc_err_process
-	},
-	{
-		QDMA_S80_HARD_DSC_ERR_FLR,
-		"FLR error",
-		QDMA_S80_HARD_GLBL_DSC_ERR_MSK_ADDR,
-		QDMA_S80_HARD_GLBL_DSC_ERR_STS_ADDR,
-		GLBL_DSC_ERR_STS_FLR_MASK,
-		GLBL_ERR_STAT_ERR_DSC_MASK,
-		&qdma_s80_hard_hw_desc_err_process
-	},
-	{
-		QDMA_S80_HARD_DSC_ERR_TIMEOUT,
-		"Timed out error",
-		QDMA_S80_HARD_GLBL_DSC_ERR_MSK_ADDR,
-		QDMA_S80_HARD_GLBL_DSC_ERR_STS_ADDR,
-		GLBL_DSC_ERR_STS_TIMEOUT_MASK,
-		GLBL_ERR_STAT_ERR_DSC_MASK,
-		&qdma_s80_hard_hw_desc_err_process
-	},
-	{
-		QDMA_S80_HARD_DSC_ERR_DAT_POISON,
-		"Poison data error",
-		QDMA_S80_HARD_GLBL_DSC_ERR_MSK_ADDR,
-		QDMA_S80_HARD_GLBL_DSC_ERR_STS_ADDR,
-		GLBL_DSC_ERR_STS_DAT_POISON_MASK,
-		GLBL_ERR_STAT_ERR_DSC_MASK,
-		&qdma_s80_hard_hw_desc_err_process
-	},
-	{
-		QDMA_S80_HARD_DSC_ERR_FLR_CANCEL,
-		"Descriptor fetch cancelled due to FLR error",
-		QDMA_S80_HARD_GLBL_DSC_ERR_MSK_ADDR,
-		QDMA_S80_HARD_GLBL_DSC_ERR_STS_ADDR,
-		GLBL_DSC_ERR_STS_FLR_CANCEL_MASK,
-		GLBL_ERR_STAT_ERR_DSC_MASK,
-		&qdma_s80_hard_hw_desc_err_process
-	},
-	{
-		QDMA_S80_HARD_DSC_ERR_DMA,
-		"DMA engine error",
-		QDMA_S80_HARD_GLBL_DSC_ERR_MSK_ADDR,
-		QDMA_S80_HARD_GLBL_DSC_ERR_STS_ADDR,
-		GLBL_DSC_ERR_STS_DMA_MASK,
-		GLBL_ERR_STAT_ERR_DSC_MASK,
-		&qdma_s80_hard_hw_desc_err_process
-	},
-	{
-		QDMA_S80_HARD_DSC_ERR_DSC,
-		"Invalid PIDX update error",
-		QDMA_S80_HARD_GLBL_DSC_ERR_MSK_ADDR,
-		QDMA_S80_HARD_GLBL_DSC_ERR_STS_ADDR,
-		GLBL_DSC_ERR_STS_DSC_MASK,
-		GLBL_ERR_STAT_ERR_DSC_MASK,
-		&qdma_s80_hard_hw_desc_err_process
-	},
-	{
-		QDMA_S80_HARD_DSC_ERR_RQ_CANCEL,
-		"Descriptor fetch cancelled due to disable register status error",
-		QDMA_S80_HARD_GLBL_DSC_ERR_MSK_ADDR,
-		QDMA_S80_HARD_GLBL_DSC_ERR_STS_ADDR,
-		GLBL_DSC_ERR_STS_RQ_CANCEL_MASK,
-		GLBL_ERR_STAT_ERR_DSC_MASK,
-		&qdma_s80_hard_hw_desc_err_process
-	},
-	{
-		QDMA_S80_HARD_DSC_ERR_DBE,
-		"UNC_ERR_RAM_DBE error",
-		QDMA_S80_HARD_GLBL_DSC_ERR_MSK_ADDR,
-		QDMA_S80_HARD_GLBL_DSC_ERR_STS_ADDR,
-		GLBL_DSC_ERR_STS_DBE_MASK,
-		GLBL_ERR_STAT_ERR_DSC_MASK,
-		&qdma_s80_hard_hw_desc_err_process
-	},
-	{
-		QDMA_S80_HARD_DSC_ERR_SBE,
-		"UNC_ERR_RAM_SBE error",
-		QDMA_S80_HARD_GLBL_DSC_ERR_MSK_ADDR,
-		QDMA_S80_HARD_GLBL_DSC_ERR_STS_ADDR,
-		GLBL_DSC_ERR_STS_SBE_MASK,
-		GLBL_ERR_STAT_ERR_DSC_MASK,
-		&qdma_s80_hard_hw_desc_err_process
-	},
-	{
-		QDMA_S80_HARD_DSC_ERR_ALL,
-		"All Descriptor errors",
-		QDMA_S80_HARD_GLBL_DSC_ERR_MSK_ADDR,
-		QDMA_S80_HARD_GLBL_DSC_ERR_STS_ADDR,
-		QDMA_S80_HARD_DBE_ERR_ALL_MASK,
-		GLBL_ERR_STAT_ERR_DSC_MASK,
-		&qdma_s80_hard_hw_desc_err_process
-	},
-
-	/* TRQ errors */
-	{
-		QDMA_S80_HARD_TRQ_ERR_UNMAPPED,
-		"Access targeted unmapped register space via CSR pathway error",
-		QDMA_S80_HARD_GLBL_TRQ_ERR_MSK_ADDR,
-		QDMA_S80_HARD_GLBL_TRQ_ERR_STS_ADDR,
-		GLBL_TRQ_ERR_STS_UNMAPPED_MASK,
-		GLBL_ERR_STAT_ERR_TRQ_MASK,
-		&qdma_s80_hard_hw_trq_err_process
-	},
-	{
-		QDMA_S80_HARD_TRQ_ERR_QID_RANGE,
-		"Qid range error",
-		QDMA_S80_HARD_GLBL_TRQ_ERR_MSK_ADDR,
-		QDMA_S80_HARD_GLBL_TRQ_ERR_STS_ADDR,
-		GLBL_TRQ_ERR_STS_QID_RANGE_MASK,
-		GLBL_ERR_STAT_ERR_TRQ_MASK,
-		&qdma_s80_hard_hw_trq_err_process
-	},
-	{
-		QDMA_S80_HARD_TRQ_ERR_VF_ACCESS_ERR,
-		"VF attempted to access Global register space or Function map",
-		QDMA_S80_HARD_GLBL_TRQ_ERR_MSK_ADDR,
-		QDMA_S80_HARD_GLBL_TRQ_ERR_STS_ADDR,
-		GLBL_TRQ_ERR_STS_VF_ACCESS_ERR_MASK,
-		GLBL_ERR_STAT_ERR_TRQ_MASK,
-		&qdma_s80_hard_hw_trq_err_process
-	},
-	{
-		QDMA_S80_HARD_TRQ_ERR_TCP_TIMEOUT,
-		"Timeout on request to dma internal csr register",
-		QDMA_S80_HARD_GLBL_TRQ_ERR_MSK_ADDR,
-		QDMA_S80_HARD_GLBL_TRQ_ERR_STS_ADDR,
-		GLBL_TRQ_ERR_STS_TCP_TIMEOUT_MASK,
-		GLBL_ERR_STAT_ERR_TRQ_MASK,
-		&qdma_s80_hard_hw_trq_err_process
-	},
-	{
-		QDMA_S80_HARD_TRQ_ERR_ALL,
-		"All TRQ errors",
-		QDMA_S80_HARD_GLBL_TRQ_ERR_MSK_ADDR,
-		QDMA_S80_HARD_GLBL_TRQ_ERR_STS_ADDR,
-		QDMA_S80_HARD_GLBL_TRQ_ERR_ALL_MASK,
-		GLBL_ERR_STAT_ERR_TRQ_MASK,
-		&qdma_s80_hard_hw_trq_err_process
-	},
-
-	/* C2H Errors*/
-	{
-		QDMA_S80_HARD_ST_C2H_ERR_MTY_MISMATCH,
-		"MTY mismatch error",
-		QDMA_S80_HARD_C2H_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_ERR_STAT_ADDR,
-		C2H_ERR_STAT_MTY_MISMATCH_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_C2H_ERR_LEN_MISMATCH,
-		"Packet length mismatch error",
-		QDMA_S80_HARD_C2H_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_ERR_STAT_ADDR,
-		C2H_ERR_STAT_LEN_MISMATCH_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_C2H_ERR_QID_MISMATCH,
-		"Qid mismatch error",
-		QDMA_S80_HARD_C2H_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_ERR_STAT_ADDR,
-		C2H_ERR_STAT_QID_MISMATCH_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_C2H_ERR_DESC_RSP_ERR,
-		"Descriptor error bit set",
-		QDMA_S80_HARD_C2H_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_ERR_STAT_ADDR,
-		C2H_ERR_STAT_DESC_RSP_ERR_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_C2H_ERR_ENG_WPL_DATA_PAR_ERR,
-		"Data parity error",
-		QDMA_S80_HARD_C2H_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_ERR_STAT_ADDR,
-		C2H_ERR_STAT_ENG_WPL_DATA_PAR_ERR_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_C2H_ERR_MSI_INT_FAIL,
-		"MSI got a fail response error",
-		QDMA_S80_HARD_C2H_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_ERR_STAT_ADDR,
-		C2H_ERR_STAT_MSI_INT_FAIL_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_C2H_ERR_ERR_DESC_CNT,
-		"Descriptor count error",
-		QDMA_S80_HARD_C2H_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_ERR_STAT_ADDR,
-		C2H_ERR_STAT_ERR_DESC_CNT_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_C2H_ERR_PORTID_CTXT_MISMATCH,
-		"Port id in packet and pfetch ctxt mismatch error",
-		QDMA_S80_HARD_C2H_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_ERR_STAT_ADDR,
-		C2H_ERR_STAT_PORT_ID_CTXT_MISMATCH_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_C2H_ERR_PORTID_BYP_IN_MISMATCH,
-		"Port id in packet and bypass in mismatch error",
-		QDMA_S80_HARD_C2H_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_ERR_STAT_ADDR,
-		C2H_ERR_STAT_PORT_ID_CTXT_MISMATCH_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_C2H_ERR_WRB_INV_Q_ERR,
-		"Writeback on invalid queue error",
-		QDMA_S80_HARD_C2H_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_ERR_STAT_ADDR,
-		C2H_ERR_STAT_WRB_INV_Q_ERR_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_C2H_ERR_WRB_QFULL_ERR,
-		"Completion queue gets full error",
-		QDMA_S80_HARD_C2H_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_ERR_STAT_ADDR,
-		C2H_ERR_STAT_WRB_QFULL_ERR_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_C2H_ERR_WRB_CIDX_ERR,
-		"Bad CIDX update by the software error",
-		QDMA_S80_HARD_C2H_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_ERR_STAT_ADDR,
-		C2H_ERR_STAT_WRB_CIDX_ERR_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_C2H_ERR_WRB_PRTY_ERR,
-		"C2H completion Parity error",
-		QDMA_S80_HARD_C2H_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_ERR_STAT_ADDR,
-		C2H_ERR_STAT_WRB_PRTY_ERR_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_C2H_ERR_ALL,
-		"All C2h errors",
-		QDMA_S80_HARD_C2H_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_ERR_STAT_ADDR,
-		QDMA_S80_HARD_C2H_ERR_ALL_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-
-	/* C2H fatal errors */
-	{
-		QDMA_S80_HARD_ST_FATAL_ERR_MTY_MISMATCH,
-		"Fatal MTY mismatch error",
-		QDMA_S80_HARD_C2H_FATAL_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_FATAL_ERR_STAT_ADDR,
-		C2H_FATAL_ERR_STAT_MTY_MISMATCH_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_FATAL_ERR_LEN_MISMATCH,
-		"Fatal Len mismatch error",
-		QDMA_S80_HARD_C2H_FATAL_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_FATAL_ERR_STAT_ADDR,
-		C2H_FATAL_ERR_STAT_LEN_MISMATCH_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_FATAL_ERR_QID_MISMATCH,
-		"Fatal Qid mismatch error",
-		QDMA_S80_HARD_C2H_FATAL_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_FATAL_ERR_STAT_ADDR,
-		C2H_FATAL_ERR_STAT_QID_MISMATCH_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_FATAL_ERR_TIMER_FIFO_RAM_RDBE,
-		"RAM double bit fatal error",
-		QDMA_S80_HARD_C2H_FATAL_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_FATAL_ERR_STAT_ADDR,
-		C2H_FATAL_ERR_STAT_TIMER_FIFO_RAM_RDBE_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_FATAL_ERR_PFCH_II_RAM_RDBE,
-		"RAM double bit fatal error",
-		QDMA_S80_HARD_C2H_FATAL_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_FATAL_ERR_STAT_ADDR,
-		C2H_FATAL_ERR_STAT_PFCH_LL_RAM_RDBE_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_FATAL_ERR_WRB_CTXT_RAM_RDBE,
-		"RAM double bit fatal error",
-		QDMA_S80_HARD_C2H_FATAL_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_FATAL_ERR_STAT_ADDR,
-		C2H_FATAL_ERR_STAT_WRB_CTXT_RAM_RDBE_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_FATAL_ERR_PFCH_CTXT_RAM_RDBE,
-		"RAM double bit fatal error",
-		QDMA_S80_HARD_C2H_FATAL_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_FATAL_ERR_STAT_ADDR,
-		C2H_FATAL_ERR_STAT_PFCH_CTXT_RAM_RDBE_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_FATAL_ERR_DESC_REQ_FIFO_RAM_RDBE,
-		"RAM double bit fatal error",
-		QDMA_S80_HARD_C2H_FATAL_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_FATAL_ERR_STAT_ADDR,
-		C2H_FATAL_ERR_STAT_DESC_REQ_FIFO_RAM_RDBE_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_FATAL_ERR_INT_CTXT_RAM_RDBE,
-		"RAM double bit fatal error",
-		QDMA_S80_HARD_C2H_FATAL_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_FATAL_ERR_STAT_ADDR,
-		C2H_FATAL_ERR_STAT_INT_CTXT_RAM_RDBE_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_FATAL_ERR_INT_QID2VEC_RAM_RDBE,
-		"RAM double bit fatal error",
-		QDMA_S80_HARD_C2H_FATAL_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_FATAL_ERR_STAT_ADDR,
-		C2H_FATAL_ERR_STAT_INT_QID2VEC_RAM_RDBE_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_FATAL_ERR_WRB_COAL_DATA_RAM_RDBE,
-		"RAM double bit fatal error",
-		QDMA_S80_HARD_C2H_FATAL_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_FATAL_ERR_STAT_ADDR,
-		C2H_FATAL_ERR_STAT_WRB_COAL_DATA_RAM_RDBE_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_FATAL_ERR_TUSER_FIFO_RAM_RDBE,
-		"RAM double bit fatal error",
-		QDMA_S80_HARD_C2H_FATAL_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_FATAL_ERR_STAT_ADDR,
-		C2H_FATAL_ERR_STAT_TUSER_FIFO_RAM_RDBE_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_FATAL_ERR_QID_FIFO_RAM_RDBE,
-		"RAM double bit fatal error",
-		QDMA_S80_HARD_C2H_FATAL_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_FATAL_ERR_STAT_ADDR,
-		C2H_FATAL_ERR_STAT_QID_FIFO_RAM_RDBE_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_FATAL_ERR_PAYLOAD_FIFO_RAM_RDBE,
-		"RAM double bit fatal error",
-		QDMA_S80_HARD_C2H_FATAL_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_FATAL_ERR_STAT_ADDR,
-		C2H_FATAL_ERR_STAT_PLD_FIFO_RAM_RDBE_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_FATAL_ERR_WPL_DATA_PAR_ERR,
-		"RAM double bit fatal error",
-		QDMA_S80_HARD_C2H_FATAL_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_FATAL_ERR_STAT_ADDR,
-		C2H_FATAL_ERR_STAT_WPL_DATA_PAR_ERR_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_FATAL_ERR_ALL,
-		"All fatal errors",
-		QDMA_S80_HARD_C2H_FATAL_ERR_MASK_ADDR,
-		QDMA_S80_HARD_C2H_FATAL_ERR_STAT_ADDR,
-		QDMA_S80_HARD_C2H_FATAL_ERR_ALL_MASK,
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK,
-		&qdma_s80_hard_hw_st_c2h_err_process
-	},
-
-	/* H2C St errors */
-	{
-		QDMA_S80_HARD_ST_H2C_ERR_ZERO_LEN_DESC_ERR,
-		"Zero length descriptor error",
-		QDMA_S80_HARD_H2C_ERR_MASK_ADDR,
-		QDMA_S80_HARD_H2C_ERR_STAT_ADDR,
-		H2C_ERR_STAT_ZERO_LEN_DS_MASK,
-		GLBL_ERR_STAT_ERR_H2C_ST_MASK,
-		&qdma_s80_hard_hw_st_h2c_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_H2C_ERR_SDI_MRKR_REQ_MOP_ERR,
-		"A non-EOP descriptor received",
-		QDMA_S80_HARD_H2C_ERR_MASK_ADDR,
-		QDMA_S80_HARD_H2C_ERR_STAT_ADDR,
-		H2C_ERR_STAT_SDI_MRKR_REQ_MOP_ERR_MASK,
-		GLBL_ERR_STAT_ERR_H2C_ST_MASK,
-		&qdma_s80_hard_hw_st_h2c_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_H2C_ERR_NO_DMA_DSC,
-		"No DMA descriptor received error",
-		QDMA_S80_HARD_H2C_ERR_MASK_ADDR,
-		QDMA_S80_HARD_H2C_ERR_STAT_ADDR,
-		H2C_ERR_STAT_NO_DMA_DS_MASK,
-		GLBL_ERR_STAT_ERR_H2C_ST_MASK,
-		&qdma_s80_hard_hw_st_h2c_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_H2C_ERR_DBE,
-		"Double bit error detected on H2C-ST data error",
-		QDMA_S80_HARD_H2C_ERR_MASK_ADDR,
-		QDMA_S80_HARD_H2C_ERR_STAT_ADDR,
-		H2C_ERR_STAT_DBE_MASK,
-		GLBL_ERR_STAT_ERR_H2C_ST_MASK,
-		&qdma_s80_hard_hw_st_h2c_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_H2C_ERR_SBE,
-		"Single bit error detected on H2C-ST data error",
-		QDMA_S80_HARD_H2C_ERR_MASK_ADDR,
-		QDMA_S80_HARD_H2C_ERR_STAT_ADDR,
-		H2C_ERR_STAT_SBE_MASK,
-		GLBL_ERR_STAT_ERR_H2C_ST_MASK,
-		&qdma_s80_hard_hw_st_h2c_err_process
-	},
-	{
-		QDMA_S80_HARD_ST_H2C_ERR_ALL,
-		"All H2C errors",
-		QDMA_S80_HARD_H2C_ERR_MASK_ADDR,
-		QDMA_S80_HARD_H2C_ERR_STAT_ADDR,
-		QDMA_S80_HARD_H2C_ERR_ALL_MASK,
-		GLBL_ERR_STAT_ERR_H2C_ST_MASK,
-		&qdma_s80_hard_hw_st_h2c_err_process
-	},
-
-	/* SBE errors */
-	{
-		QDMA_S80_HARD_SBE_ERR_MI_H2C0_DAT,
-		"H2C MM data buffer single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_MI_H2C0_DAT_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_MI_C2H0_DAT,
-		"C2H MM data buffer single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_MI_C2H0_DAT_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_H2C_RD_BRG_DAT,
-		"Bridge master read single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_H2C_RD_BRG_DAT_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_H2C_WR_BRG_DAT,
-		"Bridge master write single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_H2C_WR_BRG_DAT_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_C2H_RD_BRG_DAT,
-		"Bridge slave read data buffer single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_C2H_RD_BRG_DAT_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_C2H_WR_BRG_DAT,
-		"Bridge slave write data buffer single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_C2H_WR_BRG_DAT_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_FUNC_MAP,
-		"Function map RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_FUNC_MAP_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_DSC_HW_CTXT,
-		"Descriptor engine hardware context RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_DSC_HW_CTXT_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_DSC_CRD_RCV,
-		"Descriptor engine receive credit context RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_DSC_CRD_RCV_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_DSC_SW_CTXT,
-		"Descriptor engine software context RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_DSC_SW_CTXT_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_DSC_CPLI,
-		"Descriptor engine fetch completion information RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_DSC_CPLI_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_DSC_CPLD,
-		"Descriptor engine fetch completion data RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_DSC_CPLD_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_PASID_CTXT_RAM,
-		"Pasid ctxt FIFO RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_PASID_CTXT_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_TIMER_FIFO_RAM,
-		"Timer fifo RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_TIMER_FIFO_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_PAYLOAD_FIFO_RAM,
-		"C2H ST payload FIFO RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_PLD_FIFO_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_QID_FIFO_RAM,
-		"C2H ST QID FIFO RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_QID_FIFO_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_TUSER_FIFO_RAM,
-		"C2H ST TUSER FIFO RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_TUSER_FIFO_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_WRB_COAL_DATA_RAM,
-		"Writeback Coalescing RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_WRB_COAL_DATA_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_INT_QID2VEC_RAM,
-		"Interrupt QID2VEC RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_INT_QID2VEC_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_INT_CTXT_RAM,
-		"Interrupt context RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_INT_CTXT_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_DESC_REQ_FIFO_RAM,
-		"C2H ST descriptor request RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_DESC_REQ_FIFO_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_PFCH_CTXT_RAM,
-		"C2H ST prefetch RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_PFCH_CTXT_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_WRB_CTXT_RAM,
-		"C2H ST completion context RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_WRB_CTXT_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_PFCH_LL_RAM,
-		"C2H ST prefetch list RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		RAM_SBE_STS_A_PFCH_LL_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-	{
-		QDMA_S80_HARD_SBE_ERR_ALL,
-		"All SBE errors",
-		QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-		QDMA_S80_HARD_SBE_ERR_ALL_MASK,
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK,
-		&qdma_s80_hard_hw_ram_sbe_err_process
-	},
-
-
-	/* DBE errors */
-	{
-		QDMA_S80_HARD_DBE_ERR_MI_H2C0_DAT,
-		"H2C MM data buffer single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_MI_H2C0_DAT_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_MI_C2H0_DAT,
-		"C2H MM data buffer single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_MI_C2H0_DAT_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_H2C_RD_BRG_DAT,
-		"Bridge master read single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_H2C_RD_BRG_DAT_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_H2C_WR_BRG_DAT,
-		"Bridge master write single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_H2C_WR_BRG_DAT_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_C2H_RD_BRG_DAT,
-		"Bridge slave read data buffer single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_C2H_RD_BRG_DAT_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_C2H_WR_BRG_DAT,
-		"Bridge slave write data buffer single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_C2H_WR_BRG_DAT_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_FUNC_MAP,
-		"Function map RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_FUNC_MAP_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_DSC_HW_CTXT,
-		"Descriptor engine hardware context RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_DSC_HW_CTXT_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_DSC_CRD_RCV,
-		"Descriptor engine receive credit context RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_DSC_CRD_RCV_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_DSC_SW_CTXT,
-		"Descriptor engine software context RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_DSC_SW_CTXT_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_DSC_CPLI,
-		"Descriptor engine fetch completion information RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_DSC_CPLI_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_DSC_CPLD,
-		"Descriptor engine fetch completion data RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_DSC_CPLD_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_PASID_CTXT_RAM,
-		"PASID CTXT RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_PASID_CTXT_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_TIMER_FIFO_RAM,
-		"Timer fifo RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_TIMER_FIFO_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_PAYLOAD_FIFO_RAM,
-		"Payload fifo RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_PLD_FIFO_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_QID_FIFO_RAM,
-		"C2H ST QID FIFO RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_QID_FIFO_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_WRB_COAL_DATA_RAM,
-		"Writeback Coalescing RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_WRB_COAL_DATA_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_INT_QID2VEC_RAM,
-		"QID2VEC RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_INT_QID2VEC_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_INT_CTXT_RAM,
-		"Interrupt context RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_INT_CTXT_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_DESC_REQ_FIFO_RAM,
-		"C2H ST descriptor request RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_DESC_REQ_FIFO_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_PFCH_CTXT_RAM,
-		"C2H ST prefetch RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_PFCH_CTXT_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_WRB_CTXT_RAM,
-		"C2H ST completion context RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_WRB_CTXT_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_PFCH_LL_RAM,
-		"C2H ST prefetch list RAM single bit ECC error",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		RAM_DBE_STS_A_PFCH_LL_RAM_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	},
-	{
-		QDMA_S80_HARD_DBE_ERR_ALL,
-		"All DBE errors",
-		QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR,
-		QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-		QDMA_S80_HARD_DBE_ERR_ALL_MASK,
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK,
-		&qdma_s80_hard_hw_ram_dbe_err_process
-	}
-};
-
-static int32_t all_qdma_s80_hard_hw_errs[
-		QDMA_S80_HARD_TOTAL_LEAF_ERROR_AGGREGATORS] = {
-
-	QDMA_S80_HARD_DSC_ERR_ALL,
-	QDMA_S80_HARD_TRQ_ERR_ALL,
-	QDMA_S80_HARD_ST_C2H_ERR_ALL,
-	QDMA_S80_HARD_ST_FATAL_ERR_ALL,
-	QDMA_S80_HARD_ST_H2C_ERR_ALL,
-	QDMA_S80_HARD_SBE_ERR_ALL,
-	QDMA_S80_HARD_DBE_ERR_ALL
-};
-
-
-
-union qdma_s80_hard_ind_ctxt_cmd {
-	uint32_t word;
-	struct {
-		uint32_t busy:1;
-		uint32_t sel:4;
-		uint32_t op:2;
-		uint32_t qid:11;
-		uint32_t rsvd:14;
-	} bits;
-};
-
-struct qdma_s80_hard_indirect_ctxt_regs {
-	uint32_t qdma_ind_ctxt_data[QDMA_S80_HARD_IND_CTXT_DATA_NUM_REGS];
-	uint32_t qdma_ind_ctxt_mask[QDMA_S80_HARD_IND_CTXT_DATA_NUM_REGS];
-	union qdma_s80_hard_ind_ctxt_cmd cmd;
-};
-
-static struct qctx_entry qdma_s80_hard_sw_ctxt_entries[] = {
-	{"PIDX", 0},
-	{"IRQ Arm", 0},
-	{"Queue Enable", 0},
-	{"Fetch Credit Enable", 0},
-	{"Write back/Intr Check", 0},
-	{"Write back/Intr Interval", 0},
-	{"Function Id", 0},
-	{"Ring Size", 0},
-	{"Descriptor Size", 0},
-	{"Bypass Enable", 0},
-	{"MM Channel", 0},
-	{"Writeback Enable", 0},
-	{"Interrupt Enable", 0},
-	{"Port Id", 0},
-	{"Interrupt No Last", 0},
-	{"Error", 0},
-	{"Writeback Error Sent", 0},
-	{"IRQ Request", 0},
-	{"Marker Disable", 0},
-	{"Is Memory Mapped", 0},
-	{"Descriptor Ring Base Addr (Low)", 0},
-	{"Descriptor Ring Base Addr (High)", 0},
-};
-
-static struct qctx_entry qdma_s80_hard_hw_ctxt_entries[] = {
-	{"CIDX", 0},
-	{"Credits Consumed", 0},
-	{"Descriptors Pending", 0},
-	{"Queue Invalid No Desc Pending", 0},
-	{"Eviction Pending", 0},
-	{"Fetch Pending", 0},
-};
-
-static struct qctx_entry qdma_s80_hard_credit_ctxt_entries[] = {
-	{"Credit", 0},
-};
-
-static struct qctx_entry qdma_s80_hard_cmpt_ctxt_entries[] = {
-	{"Enable Status Desc Update", 0},
-	{"Enable Interrupt", 0},
-	{"Trigger Mode", 0},
-	{"Function Id", 0},
-	{"Counter Index", 0},
-	{"Timer Index", 0},
-	{"Interrupt State", 0},
-	{"Color", 0},
-	{"Ring Size", 0},
-	{"Base Address (Low)", 0},
-	{"Base Address (High)", 0},
-	{"Descriptor Size", 0},
-	{"PIDX", 0},
-	{"CIDX", 0},
-	{"Valid", 0},
-	{"Error", 0},
-	{"Trigger Pending", 0},
-	{"Timer Running", 0},
-	{"Full Update", 0},
-};
-
-static struct qctx_entry qdma_s80_hard_c2h_pftch_ctxt_entries[] = {
-	{"Bypass", 0},
-	{"Buffer Size Index", 0},
-	{"Port Id", 0},
-	{"Error", 0},
-	{"Prefetch Enable", 0},
-	{"In Prefetch", 0},
-	{"Software Credit", 0},
-	{"Valid", 0},
-};
-
-static struct qctx_entry qdma_s80_hard_qid2vec_ctxt_entries[] = {
-	{"c2h_vector", 0},
-	{"c2h_en_coal", 0},
-	{"h2c_vector", 0},
-	{"h2c_en_coal", 0},
-};
-
-static struct qctx_entry qdma_s80_hard_ind_intr_ctxt_entries[] = {
-	{"valid", 0},
-	{"vec", 0},
-	{"int_st", 0},
-	{"color", 0},
-	{"baddr_4k (Low)", 0},
-	{"baddr_4k (High)", 0},
-	{"page_size", 0},
-	{"pidx", 0},
-};
-
-static int qdma_s80_hard_indirect_reg_invalidate(void *dev_hndl,
-		enum ind_ctxt_cmd_sel sel, uint16_t hw_qid);
-static int qdma_s80_hard_indirect_reg_clear(void *dev_hndl,
-		enum ind_ctxt_cmd_sel sel, uint16_t hw_qid);
-static int qdma_s80_hard_indirect_reg_read(void *dev_hndl,
-		enum ind_ctxt_cmd_sel sel,
-		uint16_t hw_qid, uint32_t cnt, uint32_t *data);
-static int qdma_s80_hard_indirect_reg_write(void *dev_hndl,
-		enum ind_ctxt_cmd_sel sel,
-		uint16_t hw_qid, uint32_t *data, uint16_t cnt);
-
-uint32_t qdma_s80_hard_get_config_num_regs(void)
-{
-	return qdma_s80_hard_config_num_regs_get();
-}
-
-struct xreg_info *qdma_s80_hard_get_config_regs(void)
-{
-	return qdma_s80_hard_config_regs_get();
-}
-
-uint32_t qdma_s80_hard_reg_dump_buf_len(void)
-{
-	uint32_t length = (qdma_s80_hard_config_num_regs_get() + 1)
-			* REG_DUMP_SIZE_PER_LINE;
-	return length;
-}
-
-int qdma_s80_hard_context_buf_len(uint8_t st,
-		enum qdma_dev_q_type q_type, uint32_t *req_buflen)
-{
-	uint32_t len = 0;
-	int rv = 0;
-
-	if (q_type == QDMA_DEV_Q_TYPE_CMPT) {
-		len += (((sizeof(qdma_s80_hard_cmpt_ctxt_entries) /
-			sizeof(qdma_s80_hard_cmpt_ctxt_entries[0])) + 1) *
-			REG_DUMP_SIZE_PER_LINE);
-	} else {
-		len += (((sizeof(qdma_s80_hard_sw_ctxt_entries) /
-				sizeof(qdma_s80_hard_sw_ctxt_entries[0])) + 1) *
-				REG_DUMP_SIZE_PER_LINE);
-
-		len += (((sizeof(qdma_s80_hard_hw_ctxt_entries) /
-			sizeof(qdma_s80_hard_hw_ctxt_entries[0])) + 1) *
-			REG_DUMP_SIZE_PER_LINE);
-
-		len += (((sizeof(qdma_s80_hard_credit_ctxt_entries) /
-			sizeof(qdma_s80_hard_credit_ctxt_entries[0])) + 1) *
-			REG_DUMP_SIZE_PER_LINE);
-
-		if (st && (q_type == QDMA_DEV_Q_TYPE_C2H)) {
-			len += (((sizeof(qdma_s80_hard_cmpt_ctxt_entries) /
-			sizeof(qdma_s80_hard_cmpt_ctxt_entries[0])) + 1) *
-			REG_DUMP_SIZE_PER_LINE);
-
-			len += (((sizeof(qdma_s80_hard_c2h_pftch_ctxt_entries) /
-			sizeof(qdma_s80_hard_c2h_pftch_ctxt_entries[0])) + 1) *
-			REG_DUMP_SIZE_PER_LINE);
-		}
-	}
-
-	*req_buflen = len;
-	return rv;
-}
-
-static uint32_t qdma_s80_hard_intr_context_buf_len(void)
-{
-	uint32_t len = 0;
-
-	len += (((sizeof(qdma_s80_hard_ind_intr_ctxt_entries) /
-			sizeof(qdma_s80_hard_ind_intr_ctxt_entries[0])) + 1) *
-			REG_DUMP_SIZE_PER_LINE);
-	return len;
-}
-
-/*
- * qdma_acc_fill_sw_ctxt() - Helper function to fill sw context into structure
- *
- */
-static void qdma_s80_hard_fill_sw_ctxt(struct qdma_descq_sw_ctxt *sw_ctxt)
-{
-	qdma_s80_hard_sw_ctxt_entries[0].value = sw_ctxt->pidx;
-	qdma_s80_hard_sw_ctxt_entries[1].value = sw_ctxt->irq_arm;
-	qdma_s80_hard_sw_ctxt_entries[2].value = sw_ctxt->qen;
-	qdma_s80_hard_sw_ctxt_entries[3].value = sw_ctxt->frcd_en;
-	qdma_s80_hard_sw_ctxt_entries[4].value = sw_ctxt->wbi_chk;
-	qdma_s80_hard_sw_ctxt_entries[5].value = sw_ctxt->wbi_intvl_en;
-	qdma_s80_hard_sw_ctxt_entries[6].value = sw_ctxt->fnc_id;
-	qdma_s80_hard_sw_ctxt_entries[7].value = sw_ctxt->rngsz_idx;
-	qdma_s80_hard_sw_ctxt_entries[8].value = sw_ctxt->desc_sz;
-	qdma_s80_hard_sw_ctxt_entries[9].value = sw_ctxt->bypass;
-	qdma_s80_hard_sw_ctxt_entries[10].value = sw_ctxt->mm_chn;
-	qdma_s80_hard_sw_ctxt_entries[11].value = sw_ctxt->wbk_en;
-	qdma_s80_hard_sw_ctxt_entries[12].value = sw_ctxt->irq_en;
-	qdma_s80_hard_sw_ctxt_entries[13].value = sw_ctxt->port_id;
-	qdma_s80_hard_sw_ctxt_entries[14].value = sw_ctxt->irq_no_last;
-	qdma_s80_hard_sw_ctxt_entries[15].value = sw_ctxt->err;
-	qdma_s80_hard_sw_ctxt_entries[16].value = sw_ctxt->err_wb_sent;
-	qdma_s80_hard_sw_ctxt_entries[17].value = sw_ctxt->irq_req;
-	qdma_s80_hard_sw_ctxt_entries[18].value = sw_ctxt->mrkr_dis;
-	qdma_s80_hard_sw_ctxt_entries[19].value = sw_ctxt->is_mm;
-	qdma_s80_hard_sw_ctxt_entries[20].value =
-			sw_ctxt->ring_bs_addr & 0xFFFFFFFF;
-	qdma_s80_hard_sw_ctxt_entries[21].value =
-		(sw_ctxt->ring_bs_addr >> 32) & 0xFFFFFFFF;
-}
-
-/*
- * qdma_acc_fill_cmpt_ctxt() - Helper function to fill completion context
- *                         into structure
- *
- */
-static void qdma_s80_hard_fill_cmpt_ctxt(struct qdma_descq_cmpt_ctxt *cmpt_ctxt)
-{
-	qdma_s80_hard_cmpt_ctxt_entries[0].value = cmpt_ctxt->en_stat_desc;
-	qdma_s80_hard_cmpt_ctxt_entries[1].value = cmpt_ctxt->en_int;
-	qdma_s80_hard_cmpt_ctxt_entries[2].value = cmpt_ctxt->trig_mode;
-	qdma_s80_hard_cmpt_ctxt_entries[3].value = cmpt_ctxt->fnc_id;
-	qdma_s80_hard_cmpt_ctxt_entries[4].value = cmpt_ctxt->counter_idx;
-	qdma_s80_hard_cmpt_ctxt_entries[5].value = cmpt_ctxt->timer_idx;
-	qdma_s80_hard_cmpt_ctxt_entries[6].value = cmpt_ctxt->in_st;
-	qdma_s80_hard_cmpt_ctxt_entries[7].value = cmpt_ctxt->color;
-	qdma_s80_hard_cmpt_ctxt_entries[8].value = cmpt_ctxt->ringsz_idx;
-	qdma_s80_hard_cmpt_ctxt_entries[9].value =
-			cmpt_ctxt->bs_addr & 0xFFFFFFFF;
-	qdma_s80_hard_cmpt_ctxt_entries[10].value =
-		(cmpt_ctxt->bs_addr >> 32) & 0xFFFFFFFF;
-	qdma_s80_hard_cmpt_ctxt_entries[11].value = cmpt_ctxt->desc_sz;
-	qdma_s80_hard_cmpt_ctxt_entries[12].value = cmpt_ctxt->pidx;
-	qdma_s80_hard_cmpt_ctxt_entries[13].value = cmpt_ctxt->cidx;
-	qdma_s80_hard_cmpt_ctxt_entries[14].value = cmpt_ctxt->valid;
-	qdma_s80_hard_cmpt_ctxt_entries[15].value = cmpt_ctxt->err;
-	qdma_s80_hard_cmpt_ctxt_entries[16].value = cmpt_ctxt->user_trig_pend;
-	qdma_s80_hard_cmpt_ctxt_entries[17].value = cmpt_ctxt->timer_running;
-	qdma_s80_hard_cmpt_ctxt_entries[18].value = cmpt_ctxt->full_upd;
-
-}
-
-/*
- * qdma_acc_fill_hw_ctxt() - Helper function to fill HW context into structure
- *
- */
-static void qdma_s80_hard_fill_hw_ctxt(struct qdma_descq_hw_ctxt *hw_ctxt)
-{
-	qdma_s80_hard_hw_ctxt_entries[0].value = hw_ctxt->cidx;
-	qdma_s80_hard_hw_ctxt_entries[1].value = hw_ctxt->crd_use;
-	qdma_s80_hard_hw_ctxt_entries[2].value = hw_ctxt->dsc_pend;
-	qdma_s80_hard_hw_ctxt_entries[3].value = hw_ctxt->idl_stp_b;
-	qdma_s80_hard_hw_ctxt_entries[4].value = hw_ctxt->evt_pnd;
-	qdma_s80_hard_hw_ctxt_entries[5].value = hw_ctxt->fetch_pnd;
-}
-
-/*
- * qdma_acc_fill_credit_ctxt() - Helper function to fill Credit context
- *                           into structure
- *
- */
-static void qdma_s80_hard_fill_credit_ctxt(
-		struct qdma_descq_credit_ctxt *cr_ctxt)
-{
-	qdma_s80_hard_credit_ctxt_entries[0].value = cr_ctxt->credit;
-}
-
-/*
- * qdma_acc_fill_pfetch_ctxt() - Helper function to fill Prefetch context
- *                           into structure
- *
- */
-static void qdma_s80_hard_fill_pfetch_ctxt(
-		struct qdma_descq_prefetch_ctxt *pfetch_ctxt)
-{
-	qdma_s80_hard_c2h_pftch_ctxt_entries[0].value = pfetch_ctxt->bypass;
-	qdma_s80_hard_c2h_pftch_ctxt_entries[1].value = pfetch_ctxt->bufsz_idx;
-	qdma_s80_hard_c2h_pftch_ctxt_entries[2].value = pfetch_ctxt->port_id;
-	qdma_s80_hard_c2h_pftch_ctxt_entries[3].value = pfetch_ctxt->err;
-	qdma_s80_hard_c2h_pftch_ctxt_entries[4].value = pfetch_ctxt->pfch_en;
-	qdma_s80_hard_c2h_pftch_ctxt_entries[5].value = pfetch_ctxt->pfch;
-	qdma_s80_hard_c2h_pftch_ctxt_entries[6].value = pfetch_ctxt->sw_crdt;
-	qdma_s80_hard_c2h_pftch_ctxt_entries[7].value = pfetch_ctxt->valid;
-}
-
-static void qdma_s80_hard_fill_qid2vec_ctxt(struct qdma_qid2vec *qid2vec_ctxt)
-{
-	qdma_s80_hard_qid2vec_ctxt_entries[0].value = qid2vec_ctxt->c2h_vector;
-	qdma_s80_hard_qid2vec_ctxt_entries[1].value = qid2vec_ctxt->c2h_en_coal;
-	qdma_s80_hard_qid2vec_ctxt_entries[2].value = qid2vec_ctxt->h2c_vector;
-	qdma_s80_hard_qid2vec_ctxt_entries[3].value = qid2vec_ctxt->h2c_en_coal;
-}
-
-static void qdma_s80_hard_fill_intr_ctxt(
-		struct qdma_indirect_intr_ctxt *intr_ctxt)
-{
-	qdma_s80_hard_ind_intr_ctxt_entries[0].value = intr_ctxt->valid;
-	qdma_s80_hard_ind_intr_ctxt_entries[1].value = intr_ctxt->vec;
-	qdma_s80_hard_ind_intr_ctxt_entries[2].value = intr_ctxt->int_st;
-	qdma_s80_hard_ind_intr_ctxt_entries[3].value = intr_ctxt->color;
-	qdma_s80_hard_ind_intr_ctxt_entries[4].value =
-			intr_ctxt->baddr_4k & 0xFFFFFFFF;
-	qdma_s80_hard_ind_intr_ctxt_entries[5].value =
-			(intr_ctxt->baddr_4k >> 32) & 0xFFFFFFFF;
-	qdma_s80_hard_ind_intr_ctxt_entries[6].value = intr_ctxt->page_size;
-	qdma_s80_hard_ind_intr_ctxt_entries[7].value = intr_ctxt->pidx;
-}
-
-/*
- * dump_s80_hard_context() - Helper function to dump queue context into string
- *
- * return len - length of the string copied into buffer
- */
-static int dump_s80_hard_context(struct qdma_descq_context *queue_context,
-		uint8_t st,	enum qdma_dev_q_type q_type,
-		char *buf, int buf_sz)
-{
-	int i = 0;
-	int n;
-	int len = 0;
-	int rv;
-	char banner[DEBGFS_LINE_SZ];
-
-	if (queue_context == NULL) {
-		qdma_log_error("%s: queue_context is NULL, err:%d\n",
-						__func__,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if (q_type >= QDMA_DEV_Q_TYPE_CMPT) {
-		qdma_log_error("%s: Invalid queue type(%d), err:%d\n",
-						__func__,
-						q_type,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	qdma_s80_hard_fill_sw_ctxt(&queue_context->sw_ctxt);
-	qdma_s80_hard_fill_hw_ctxt(&queue_context->hw_ctxt);
-	qdma_s80_hard_fill_credit_ctxt(&queue_context->cr_ctxt);
-	qdma_s80_hard_fill_qid2vec_ctxt(&queue_context->qid2vec);
-	if (st && (q_type == QDMA_DEV_Q_TYPE_C2H)) {
-		qdma_s80_hard_fill_pfetch_ctxt(&queue_context->pfetch_ctxt);
-		qdma_s80_hard_fill_cmpt_ctxt(&queue_context->cmpt_ctxt);
-	}
-
-	if (q_type != QDMA_DEV_Q_TYPE_CMPT) {
-		for (i = 0; i < DEBGFS_LINE_SZ - 5; i++) {
-			rv = QDMA_SNPRINTF_S(banner + i,
-				(DEBGFS_LINE_SZ - i),
-				sizeof("-"), "-");
-			if ((rv < 0) || (rv > (int)sizeof("-"))) {
-				qdma_log_error(
-					"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-					__LINE__, __func__,
-					rv);
-				goto INSUF_BUF_EXIT;
-			}
-		}
-
-		/* SW context dump */
-		n = sizeof(qdma_s80_hard_sw_ctxt_entries) /
-				sizeof((qdma_s80_hard_sw_ctxt_entries)[0]);
-		for (i = 0; i < n; i++) {
-			if ((len >= buf_sz) ||
-				((len + DEBGFS_LINE_SZ) >= buf_sz))
-				goto INSUF_BUF_EXIT;
-
-			if (i == 0) {
-				if ((len + (3 * DEBGFS_LINE_SZ)) >= buf_sz)
-					goto INSUF_BUF_EXIT;
-				rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-					DEBGFS_LINE_SZ, "\n%s", banner);
-				if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-					qdma_log_error(
-						"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-						__LINE__, __func__,
-						rv);
-					goto INSUF_BUF_EXIT;
-				}
-				len += rv;
-
-				rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-					DEBGFS_LINE_SZ, "\n%40s", "SW Context");
-				if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-					qdma_log_error(
-						"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-						__LINE__, __func__,
-						rv);
-					goto INSUF_BUF_EXIT;
-				}
-				len += rv;
-
-				rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-					DEBGFS_LINE_SZ, "\n%s\n", banner);
-				if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-					qdma_log_error(
-						"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-						__LINE__, __func__,
-						rv);
-					goto INSUF_BUF_EXIT;
-				}
-				len += rv;
-			}
-
-			rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-				DEBGFS_LINE_SZ,
-				"%-47s %#-10x %u\n",
-				qdma_s80_hard_sw_ctxt_entries[i].name,
-				qdma_s80_hard_sw_ctxt_entries[i].value,
-				qdma_s80_hard_sw_ctxt_entries[i].value);
-			if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-				qdma_log_error(
-					"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-					__LINE__, __func__,
-					rv);
-				goto INSUF_BUF_EXIT;
-			}
-			len += rv;
-		}
-
-		/* HW context dump */
-		n = sizeof(qdma_s80_hard_hw_ctxt_entries) /
-				sizeof((qdma_s80_hard_hw_ctxt_entries)[0]);
-		for (i = 0; i < n; i++) {
-			if ((len >= buf_sz) ||
-				((len + DEBGFS_LINE_SZ) >= buf_sz))
-				goto INSUF_BUF_EXIT;
-
-			if (i == 0) {
-				if ((len + (3 * DEBGFS_LINE_SZ)) >= buf_sz)
-					goto INSUF_BUF_EXIT;
-
-				rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-					DEBGFS_LINE_SZ, "\n%s", banner);
-				if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-					qdma_log_error(
-						"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-						__LINE__, __func__,
-						rv);
-					goto INSUF_BUF_EXIT;
-				}
-				len += rv;
-
-				rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-					DEBGFS_LINE_SZ, "\n%40s", "HW Context");
-				if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-					qdma_log_error(
-						"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-						__LINE__, __func__,
-						rv);
-					goto INSUF_BUF_EXIT;
-				}
-				len += rv;
-
-				rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-					DEBGFS_LINE_SZ, "\n%s\n", banner);
-				if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-					qdma_log_error(
-						"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-						__LINE__, __func__,
-						rv);
-					goto INSUF_BUF_EXIT;
-				}
-				len += rv;
-			}
-
-			rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-				DEBGFS_LINE_SZ,
-				"%-47s %#-10x %u\n",
-				qdma_s80_hard_hw_ctxt_entries[i].name,
-				qdma_s80_hard_hw_ctxt_entries[i].value,
-				qdma_s80_hard_hw_ctxt_entries[i].value);
-			if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-				qdma_log_error(
-					"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-					__LINE__, __func__,
-					rv);
-				goto INSUF_BUF_EXIT;
-			}
-			len += rv;
-		}
-
-		/* Credit context dump */
-		n = sizeof(qdma_s80_hard_credit_ctxt_entries) /
-			sizeof((qdma_s80_hard_credit_ctxt_entries)[0]);
-		for (i = 0; i < n; i++) {
-			if ((len >= buf_sz) ||
-				((len + DEBGFS_LINE_SZ) >= buf_sz))
-				goto INSUF_BUF_EXIT;
-
-			if (i == 0) {
-				if ((len + (3 * DEBGFS_LINE_SZ)) >= buf_sz)
-					goto INSUF_BUF_EXIT;
-
-				rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-					DEBGFS_LINE_SZ, "\n%s", banner);
-				if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-					qdma_log_error(
-						"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-						__LINE__, __func__,
-						rv);
-					goto INSUF_BUF_EXIT;
-				}
-				len += rv;
-
-				rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-					DEBGFS_LINE_SZ, "\n%40s",
-					"Credit Context");
-				if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-					qdma_log_error(
-						"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-						__LINE__, __func__,
-						rv);
-					goto INSUF_BUF_EXIT;
-				}
-				len += rv;
-
-				rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-					DEBGFS_LINE_SZ, "\n%s\n", banner);
-				if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-					qdma_log_error(
-						"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-						__LINE__, __func__,
-						rv);
-					goto INSUF_BUF_EXIT;
-				}
-				len += rv;
-			}
-
-			rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-				DEBGFS_LINE_SZ,
-				"%-47s %#-10x %u\n",
-				qdma_s80_hard_credit_ctxt_entries[i].name,
-				qdma_s80_hard_credit_ctxt_entries[i].value,
-				qdma_s80_hard_credit_ctxt_entries[i].value);
-			if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-				qdma_log_error(
-					"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-					__LINE__, __func__,
-					rv);
-				goto INSUF_BUF_EXIT;
-			}
-			len += rv;
-		}
-	}
-
-	/* SW context dump */
-	n = sizeof(qdma_s80_hard_qid2vec_ctxt_entries) /
-			sizeof((qdma_s80_hard_qid2vec_ctxt_entries)[0]);
-	for (i = 0; i < n; i++) {
-		if ((len >= buf_sz) ||
-			((len + DEBGFS_LINE_SZ) >= buf_sz))
-			goto INSUF_BUF_EXIT;
-
-		if (i == 0) {
-			if ((len + (3 * DEBGFS_LINE_SZ)) >= buf_sz)
-				goto INSUF_BUF_EXIT;
-			rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-				DEBGFS_LINE_SZ, "\n%s", banner);
-			if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-				qdma_log_error(
-					"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-					__LINE__, __func__,
-					rv);
-				goto INSUF_BUF_EXIT;
-			}
-			len += rv;
-
-			rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-				DEBGFS_LINE_SZ, "\n%40s",
-				"QID2VEC Context");
-			if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-				qdma_log_error(
-					"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-					__LINE__, __func__,
-					rv);
-				goto INSUF_BUF_EXIT;
-			}
-			len += rv;
-
-			rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-				DEBGFS_LINE_SZ, "\n%s\n", banner);
-			if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-				qdma_log_error(
-					"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-					__LINE__, __func__,
-					rv);
-				goto INSUF_BUF_EXIT;
-			}
-			len += rv;
-		}
-
-		rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len), DEBGFS_LINE_SZ,
-			"%-47s %#-10x %u\n",
-			qdma_s80_hard_qid2vec_ctxt_entries[i].name,
-			qdma_s80_hard_qid2vec_ctxt_entries[i].value,
-			qdma_s80_hard_qid2vec_ctxt_entries[i].value);
-		if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-			qdma_log_error(
-				"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-				__LINE__, __func__,
-				rv);
-			goto INSUF_BUF_EXIT;
-		}
-		len += rv;
-	}
-
-
-	if ((q_type == QDMA_DEV_Q_TYPE_CMPT) ||
-			(st && q_type == QDMA_DEV_Q_TYPE_C2H)) {
-		/* Completion context dump */
-		n = sizeof(qdma_s80_hard_cmpt_ctxt_entries) /
-				sizeof((qdma_s80_hard_cmpt_ctxt_entries)[0]);
-		for (i = 0; i < n; i++) {
-			if ((len >= buf_sz) ||
-				((len + DEBGFS_LINE_SZ) >= buf_sz))
-				goto INSUF_BUF_EXIT;
-
-			if (i == 0) {
-				if ((len + (3 * DEBGFS_LINE_SZ)) >= buf_sz)
-					goto INSUF_BUF_EXIT;
-
-				rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-					DEBGFS_LINE_SZ, "\n%s", banner);
-				if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-					qdma_log_error(
-						"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-						__LINE__, __func__,
-						rv);
-					goto INSUF_BUF_EXIT;
-				}
-				len += rv;
-
-				rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-					DEBGFS_LINE_SZ, "\n%40s",
-					"Completion Context");
-				if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-					qdma_log_error(
-						"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-						__LINE__, __func__,
-						rv);
-					goto INSUF_BUF_EXIT;
-				}
-				len += rv;
-
-				rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-					DEBGFS_LINE_SZ, "\n%s\n", banner);
-				if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-					qdma_log_error(
-						"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-						__LINE__, __func__,
-						rv);
-					goto INSUF_BUF_EXIT;
-				}
-				len += rv;
-			}
-
-			rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-				DEBGFS_LINE_SZ,
-				"%-47s %#-10x %u\n",
-				qdma_s80_hard_cmpt_ctxt_entries[i].name,
-				qdma_s80_hard_cmpt_ctxt_entries[i].value,
-				qdma_s80_hard_cmpt_ctxt_entries[i].value);
-			if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-				qdma_log_error(
-					"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-					__LINE__, __func__,
-					rv);
-				goto INSUF_BUF_EXIT;
-			}
-			len += rv;
-		}
-	}
-
-	if (st && q_type == QDMA_DEV_Q_TYPE_C2H) {
-		/* Prefetch context dump */
-		n = sizeof(qdma_s80_hard_c2h_pftch_ctxt_entries) /
-			sizeof(qdma_s80_hard_c2h_pftch_ctxt_entries[0]);
-		for (i = 0; i < n; i++) {
-			if ((len >= buf_sz) ||
-				((len + DEBGFS_LINE_SZ) >= buf_sz))
-				goto INSUF_BUF_EXIT;
-
-			if (i == 0) {
-				if ((len + (3 * DEBGFS_LINE_SZ)) >= buf_sz)
-					goto INSUF_BUF_EXIT;
-
-				rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-					DEBGFS_LINE_SZ, "\n%s", banner);
-				if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-					qdma_log_error(
-						"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-						__LINE__, __func__,
-						rv);
-					goto INSUF_BUF_EXIT;
-				}
-				len += rv;
-
-				rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-					DEBGFS_LINE_SZ, "\n%40s",
-					"Prefetch Context");
-				if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-					qdma_log_error(
-						"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-						__LINE__, __func__,
-						rv);
-					goto INSUF_BUF_EXIT;
-				}
-				len += rv;
-
-				rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-					DEBGFS_LINE_SZ, "\n%s\n", banner);
-				if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-					qdma_log_error(
-						"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-						__LINE__, __func__,
-						rv);
-					goto INSUF_BUF_EXIT;
-				}
-				len += rv;
-			}
-
-			rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-				DEBGFS_LINE_SZ,
-				"%-47s %#-10x %u\n",
-				qdma_s80_hard_c2h_pftch_ctxt_entries[i].name,
-				qdma_s80_hard_c2h_pftch_ctxt_entries[i].value,
-				qdma_s80_hard_c2h_pftch_ctxt_entries[i].value);
-			if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-				qdma_log_error(
-					"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-					__LINE__, __func__,
-					rv);
-				goto INSUF_BUF_EXIT;
-			}
-			len += rv;
-		}
-	}
-
-	return len;
-
-INSUF_BUF_EXIT:
-	if (buf_sz > DEBGFS_LINE_SZ) {
-		rv = QDMA_SNPRINTF_S((buf + buf_sz - DEBGFS_LINE_SZ),
-			buf_sz, DEBGFS_LINE_SZ,
-			"\n\nInsufficient buffer size, partial context dump\n");
-		if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-			qdma_log_error(
-				"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-				__LINE__, __func__,
-				rv);
-		}
-	}
-
-	qdma_log_error("%s: Insufficient buffer size, err:%d\n",
-		__func__, -QDMA_ERR_NO_MEM);
-
-	return -QDMA_ERR_NO_MEM;
-}
-
-static int dump_s80_hard_intr_context(struct qdma_indirect_intr_ctxt *intr_ctx,
-		int ring_index,
-		char *buf, int buf_sz)
-{
-	int i = 0;
-	int n;
-	int len = 0;
-	int rv;
-	char banner[DEBGFS_LINE_SZ];
-
-	qdma_s80_hard_fill_intr_ctxt(intr_ctx);
-
-	for (i = 0; i < DEBGFS_LINE_SZ - 5; i++) {
-		rv = QDMA_SNPRINTF_S(banner + i,
-			(DEBGFS_LINE_SZ - i),
-			sizeof("-"), "-");
-		if ((rv < 0) || (rv > (int)sizeof("-"))) {
-			qdma_log_error(
-				"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-				__LINE__, __func__,
-				rv);
-			goto INSUF_BUF_EXIT;
-		}
-	}
-
-	/* Interrupt context dump */
-	n = sizeof(qdma_s80_hard_ind_intr_ctxt_entries) /
-			sizeof((qdma_s80_hard_ind_intr_ctxt_entries)[0]);
-	for (i = 0; i < n; i++) {
-		if ((len >= buf_sz) || ((len + DEBGFS_LINE_SZ) >= buf_sz))
-			goto INSUF_BUF_EXIT;
-
-		if (i == 0) {
-			if ((len + (3 * DEBGFS_LINE_SZ)) >= buf_sz)
-				goto INSUF_BUF_EXIT;
-
-			rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-				DEBGFS_LINE_SZ, "\n%s", banner);
-			if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-				qdma_log_error(
-					"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-					__LINE__, __func__,
-					rv);
-				goto INSUF_BUF_EXIT;
-			}
-			len += rv;
-
-			rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-				DEBGFS_LINE_SZ, "\n%50s %d",
-				"Interrupt Context for ring#", ring_index);
-			if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-				qdma_log_error(
-					"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-					__LINE__, __func__,
-					rv);
-				goto INSUF_BUF_EXIT;
-			}
-			len += rv;
-
-			rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len),
-				DEBGFS_LINE_SZ, "\n%s\n", banner);
-			if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-				qdma_log_error(
-					"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-					__LINE__, __func__,
-					rv);
-				goto INSUF_BUF_EXIT;
-			}
-			len += rv;
-		}
-
-		rv = QDMA_SNPRINTF_S(buf + len, (buf_sz - len), DEBGFS_LINE_SZ,
-			"%-47s %#-10x %u\n",
-			qdma_s80_hard_ind_intr_ctxt_entries[i].name,
-			qdma_s80_hard_ind_intr_ctxt_entries[i].value,
-			qdma_s80_hard_ind_intr_ctxt_entries[i].value);
-		if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-			qdma_log_error(
-				"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-				__LINE__, __func__,
-				rv);
-			goto INSUF_BUF_EXIT;
-		}
-		len += rv;
-	}
-
-	return len;
-
-INSUF_BUF_EXIT:
-	if (buf_sz > DEBGFS_LINE_SZ) {
-		rv = QDMA_SNPRINTF_S((buf + buf_sz - DEBGFS_LINE_SZ),
-			buf_sz, DEBGFS_LINE_SZ,
-			"\n\nInsufficient buffer size, partial intr context dump\n");
-		if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-			qdma_log_error(
-				"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-				__LINE__, __func__,
-				rv);
-		}
-	}
-
-	qdma_log_error("%s: Insufficient buffer size, err:%d\n",
-		__func__, -QDMA_ERR_NO_MEM);
-
-	return -QDMA_ERR_NO_MEM;
-}
-
-/*
- * qdma_s80_hard_indirect_reg_invalidate() - helper function to invalidate
- * indirect context registers.
- *
- * return -QDMA_ERR_HWACC_BUSY_TIMEOUT if register
- *	value didn't match, QDMA_SUCCESS other wise
- */
-static int qdma_s80_hard_indirect_reg_invalidate(void *dev_hndl,
-		enum ind_ctxt_cmd_sel sel, uint16_t hw_qid)
-{
-	union qdma_s80_hard_ind_ctxt_cmd cmd;
-
-	qdma_reg_access_lock(dev_hndl);
-
-	/* set command register */
-	cmd.word = 0;
-	cmd.bits.qid = hw_qid;
-	cmd.bits.op = QDMA_CTXT_CMD_INV;
-	cmd.bits.sel = sel;
-	qdma_reg_write(dev_hndl, QDMA_S80_HARD_IND_CTXT_CMD_ADDR, cmd.word);
-
-	/* check if the operation went through well */
-	if (hw_monitor_reg(dev_hndl, QDMA_S80_HARD_IND_CTXT_CMD_ADDR,
-			IND_CTXT_CMD_BUSY_MASK, 0,
-			QDMA_REG_POLL_DFLT_INTERVAL_US,
-			QDMA_REG_POLL_DFLT_TIMEOUT_US)) {
-		qdma_reg_access_release(dev_hndl);
-		qdma_log_error("%s: hw_monitor_reg failed, err:%d\n",
-					__func__,
-					-QDMA_ERR_HWACC_BUSY_TIMEOUT);
-		return -QDMA_ERR_HWACC_BUSY_TIMEOUT;
-	}
-
-	qdma_reg_access_release(dev_hndl);
-
-	return QDMA_SUCCESS;
-}
-
-/*
- * qdma_s80_hard_indirect_reg_clear() - helper function to clear indirect
- *				context registers.
- *
- * return -QDMA_ERR_HWACC_BUSY_TIMEOUT if register
- *	value didn't match, QDMA_SUCCESS other wise
- */
-static int qdma_s80_hard_indirect_reg_clear(void *dev_hndl,
-		enum ind_ctxt_cmd_sel sel, uint16_t hw_qid)
-{
-	union qdma_s80_hard_ind_ctxt_cmd cmd;
-
-	qdma_reg_access_lock(dev_hndl);
-
-	/* set command register */
-	cmd.word = 0;
-	cmd.bits.qid = hw_qid;
-	cmd.bits.op = QDMA_CTXT_CMD_CLR;
-	cmd.bits.sel = sel;
-
-	qdma_reg_write(dev_hndl, QDMA_S80_HARD_IND_CTXT_CMD_ADDR, cmd.word);
-
-	/* check if the operation went through well */
-	if (hw_monitor_reg(dev_hndl, QDMA_S80_HARD_IND_CTXT_CMD_ADDR,
-			IND_CTXT_CMD_BUSY_MASK, 0,
-			QDMA_REG_POLL_DFLT_INTERVAL_US,
-			QDMA_REG_POLL_DFLT_TIMEOUT_US)) {
-		qdma_reg_access_release(dev_hndl);
-		qdma_log_error("%s: hw_monitor_reg failed, err:%d\n",
-					__func__,
-					-QDMA_ERR_HWACC_BUSY_TIMEOUT);
-		return -QDMA_ERR_HWACC_BUSY_TIMEOUT;
-	}
-
-	qdma_reg_access_release(dev_hndl);
-
-	return QDMA_SUCCESS;
-}
-
-/*
- * qdma_s80_hard_indirect_reg_read() - helper function to read indirect
- *				context registers.
- *
- * return -QDMA_ERR_HWACC_BUSY_TIMEOUT if register
- *	value didn't match, QDMA_SUCCESS other wise
- */
-static int qdma_s80_hard_indirect_reg_read(void *dev_hndl,
-		enum ind_ctxt_cmd_sel sel,
-		uint16_t hw_qid, uint32_t cnt, uint32_t *data)
-{
-	uint32_t index = 0, reg_addr = QDMA_S80_HARD_IND_CTXT_DATA_3_ADDR;
-	union qdma_s80_hard_ind_ctxt_cmd cmd;
-
-	qdma_reg_access_lock(dev_hndl);
-
-	/* set command register */
-	cmd.word = 0;
-	cmd.bits.qid = hw_qid;
-	cmd.bits.op = QDMA_CTXT_CMD_RD;
-	cmd.bits.sel = sel;
-	qdma_reg_write(dev_hndl, QDMA_S80_HARD_IND_CTXT_CMD_ADDR, cmd.word);
-
-	/* check if the operation went through well */
-	if (hw_monitor_reg(dev_hndl, QDMA_S80_HARD_IND_CTXT_CMD_ADDR,
-			IND_CTXT_CMD_BUSY_MASK, 0,
-			QDMA_REG_POLL_DFLT_INTERVAL_US,
-			QDMA_REG_POLL_DFLT_TIMEOUT_US)) {
-		qdma_reg_access_release(dev_hndl);
-		qdma_log_error("%s: hw_monitor_reg failed, err:%d\n",
-					__func__,
-					-QDMA_ERR_HWACC_BUSY_TIMEOUT);
-		return -QDMA_ERR_HWACC_BUSY_TIMEOUT;
-	}
-
-	for (index = 0; index < cnt; index++, reg_addr += sizeof(uint32_t))
-		data[index] = qdma_reg_read(dev_hndl, reg_addr);
-
-	qdma_reg_access_release(dev_hndl);
-
-	return QDMA_SUCCESS;
-}
-
-/*
- * qdma_s80_hard_indirect_reg_write() - helper function to write indirect
- *				context registers.
- *
- * return -QDMA_ERR_HWACC_BUSY_TIMEOUT if register
- *	value didn't match, QDMA_SUCCESS other wise
- */
-static int qdma_s80_hard_indirect_reg_write(void *dev_hndl,
-		enum ind_ctxt_cmd_sel sel,
-		uint16_t hw_qid, uint32_t *data, uint16_t cnt)
-{
-	uint32_t index, reg_addr;
-	struct qdma_s80_hard_indirect_ctxt_regs regs;
-	uint32_t *wr_data = (uint32_t *)&regs;
-
-	qdma_reg_access_lock(dev_hndl);
-
-	/* write the context data */
-	for (index = 0; index < QDMA_S80_HARD_IND_CTXT_DATA_NUM_REGS;
-			index++) {
-		if (index < cnt)
-			regs.qdma_ind_ctxt_data[index] = data[index];
-		else
-			regs.qdma_ind_ctxt_data[index] = 0;
-		regs.qdma_ind_ctxt_mask[index] = 0xFFFFFFFF;
-	}
-
-	regs.cmd.word = 0;
-	regs.cmd.bits.qid = hw_qid;
-	regs.cmd.bits.op = QDMA_CTXT_CMD_WR;
-	regs.cmd.bits.sel = sel;
-	reg_addr = QDMA_S80_HARD_IND_CTXT_DATA_3_ADDR;
-
-	for (index = 0;
-		index < ((2 * QDMA_S80_HARD_IND_CTXT_DATA_NUM_REGS) + 1);
-			index++, reg_addr += sizeof(uint32_t))
-		qdma_reg_write(dev_hndl, reg_addr, wr_data[index]);
-
-	/* check if the operation went through well */
-	if (hw_monitor_reg(dev_hndl, QDMA_S80_HARD_IND_CTXT_CMD_ADDR,
-			IND_CTXT_CMD_BUSY_MASK, 0,
-			QDMA_REG_POLL_DFLT_INTERVAL_US,
-			QDMA_REG_POLL_DFLT_TIMEOUT_US)) {
-		qdma_reg_access_release(dev_hndl);
-		qdma_log_error("%s: hw_monitor_reg failed, err:%d\n",
-						__func__,
-					   -QDMA_ERR_HWACC_BUSY_TIMEOUT);
-		return -QDMA_ERR_HWACC_BUSY_TIMEOUT;
-	}
-
-	qdma_reg_access_release(dev_hndl);
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_qid2vec_write() - create qid2vec context and program it
- *
- * @dev_hndl:	device handle
- * @c2h:	is c2h queue
- * @hw_qid:	hardware qid of the queue
- * @ctxt:	pointer to the context data
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_qid2vec_write(void *dev_hndl, uint8_t c2h,
-		uint16_t hw_qid, struct qdma_qid2vec *ctxt)
-{
-	uint32_t qid2vec = 0;
-	enum ind_ctxt_cmd_sel sel = QDMA_CTXT_SEL_FMAP;
-	int rv = 0;
-
-	if (!dev_hndl || !ctxt) {
-		qdma_log_error("%s: dev_hndl=%p qid2vec=%p, err:%d\n",
-				__func__, dev_hndl, ctxt, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	rv = qdma_s80_hard_indirect_reg_read(dev_hndl, sel, hw_qid,
-			1, &qid2vec);
-	if (rv < 0)
-		return rv;
-	if (c2h) {
-		qid2vec = qid2vec & (QDMA_S80_HARD_QID2VEC_H2C_VECTOR |
-					QDMA_S80_HARD_QID2VEC_H2C_COAL_EN);
-		qid2vec |= FIELD_SET(C2H_QID2VEC_MAP_C2H_VECTOR_MASK,
-				     ctxt->c2h_vector) |
-			FIELD_SET(C2H_QID2VEC_MAP_C2H_EN_COAL_MASK,
-				  ctxt->c2h_en_coal);
-	} else {
-		qid2vec = qid2vec & (C2H_QID2VEC_MAP_C2H_VECTOR_MASK |
-					C2H_QID2VEC_MAP_C2H_EN_COAL_MASK);
-		qid2vec |=
-			FIELD_SET(QDMA_S80_HARD_QID2VEC_H2C_VECTOR,
-				  ctxt->h2c_vector) |
-			FIELD_SET(QDMA_S80_HARD_QID2VEC_H2C_COAL_EN,
-				  ctxt->h2c_en_coal);
-	}
-
-	return qdma_s80_hard_indirect_reg_write(dev_hndl, sel, hw_qid,
-			&qid2vec, QDMA_S80_HARD_QID2VEC_CONTEXT_NUM_WORDS);
-
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_qid2vec_read() - read qid2vec context
- *
- * @dev_hndl:	device handle
- * @c2h:	is c2h queue
- * @hw_qid:	hardware qid of the queue
- * @ctxt:	pointer to the context data
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_qid2vec_read(void *dev_hndl, uint8_t c2h,
-		uint16_t hw_qid, struct qdma_qid2vec *ctxt)
-{
-	int rv = 0;
-	uint32_t qid2vec[QDMA_S80_HARD_QID2VEC_CONTEXT_NUM_WORDS] = {0};
-	enum ind_ctxt_cmd_sel sel = QDMA_CTXT_SEL_FMAP;
-
-	if (!dev_hndl || !ctxt) {
-		qdma_log_error("%s: dev_hndl=%p qid2vec=%p, err:%d\n",
-				__func__, dev_hndl, ctxt, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	rv = qdma_s80_hard_indirect_reg_read(dev_hndl, sel, hw_qid,
-			QDMA_S80_HARD_QID2VEC_CONTEXT_NUM_WORDS, qid2vec);
-	if (rv < 0)
-		return rv;
-
-	if (c2h) {
-		ctxt->c2h_vector = FIELD_GET(C2H_QID2VEC_MAP_C2H_VECTOR_MASK,
-						qid2vec[0]);
-		ctxt->c2h_en_coal =
-			(uint8_t)(FIELD_GET(C2H_QID2VEC_MAP_C2H_EN_COAL_MASK,
-						qid2vec[0]));
-	} else {
-		ctxt->h2c_vector =
-			(uint8_t)(FIELD_GET(QDMA_S80_HARD_QID2VEC_H2C_VECTOR,
-								qid2vec[0]));
-		ctxt->h2c_en_coal =
-			(uint8_t)(FIELD_GET(QDMA_S80_HARD_QID2VEC_H2C_COAL_EN,
-								qid2vec[0]));
-	}
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_qid2vec_clear() - clear qid2vec context
- *
- * @dev_hndl:	device handle
- * @hw_qid:	hardware qid of the queue
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_qid2vec_clear(void *dev_hndl, uint16_t hw_qid)
-{
-	enum ind_ctxt_cmd_sel sel = QDMA_CTXT_SEL_FMAP;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	return qdma_s80_hard_indirect_reg_clear(dev_hndl, sel, hw_qid);
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_qid2vec_invalidate() - invalidate qid2vec context
- *
- * @dev_hndl:	device handle
- * @hw_qid:	hardware qid of the queue
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_qid2vec_invalidate(void *dev_hndl, uint16_t hw_qid)
-{
-	enum ind_ctxt_cmd_sel sel = QDMA_CTXT_SEL_FMAP;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	return qdma_s80_hard_indirect_reg_invalidate(dev_hndl, sel, hw_qid);
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_qid2vec_conf() - configure qid2vector context
- *
- * @dev_hndl:	device handle
- * @c2h:	is c2h queue
- * @hw_qid:	hardware qid of the queue
- * @ctxt:	pointer to the context data
- * @access_type HW access type (qdma_hw_access_type enum) value
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-int qdma_s80_hard_qid2vec_conf(void *dev_hndl, uint8_t c2h, uint16_t hw_qid,
-			 struct qdma_qid2vec *ctxt,
-			 enum qdma_hw_access_type access_type)
-{
-	int ret_val = 0;
-
-	switch (access_type) {
-	case QDMA_HW_ACCESS_READ:
-		ret_val = qdma_s80_hard_qid2vec_read(dev_hndl, c2h,
-				hw_qid, ctxt);
-		break;
-	case QDMA_HW_ACCESS_WRITE:
-		ret_val = qdma_s80_hard_qid2vec_write(dev_hndl, c2h,
-				hw_qid, ctxt);
-		break;
-	case QDMA_HW_ACCESS_CLEAR:
-		ret_val = qdma_s80_hard_qid2vec_clear(dev_hndl, hw_qid);
-		break;
-	case QDMA_HW_ACCESS_INVALIDATE:
-		ret_val = qdma_s80_hard_qid2vec_invalidate(dev_hndl, hw_qid);
-		break;
-	default:
-		qdma_log_error("%s: access_type=%d is invalid, err:%d\n",
-					   __func__, access_type,
-					   -QDMA_ERR_INV_PARAM);
-		ret_val = -QDMA_ERR_INV_PARAM;
-		break;
-	}
-
-	return ret_val;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_fmap_write() - create fmap context and program it
- *
- * @dev_hndl:	device handle
- * @func_id:	function id of the device
- * @config:	pointer to the fmap data strucutre
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_fmap_write(void *dev_hndl, uint16_t func_id,
-		   const struct qdma_fmap_cfg *config)
-{
-	uint32_t fmap = 0;
-
-	if (!dev_hndl || !config) {
-		qdma_log_error("%s: dev_handle or config is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	fmap = FIELD_SET(TRQ_SEL_FMAP_0_QID_BASE_MASK, config->qbase) |
-		FIELD_SET(TRQ_SEL_FMAP_0_QID_MAX_MASK,
-				config->qmax);
-
-	qdma_reg_write(dev_hndl, QDMA_S80_HARD_TRQ_SEL_FMAP_0_ADDR +
-			func_id * QDMA_S80_HARD_REG_TRQ_SEL_FMAP_STEP,
-			fmap);
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_fmap_read() - read fmap context
- *
- * @dev_hndl:	device handle
- * @func_id:	function id of the device
- * @config:	pointer to the output fmap data
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_fmap_read(void *dev_hndl, uint16_t func_id,
-			 struct qdma_fmap_cfg *config)
-{
-	uint32_t fmap = 0;
-
-	if (!dev_hndl || !config) {
-		qdma_log_error("%s: dev_handle=%p fmap=%p NULL, err:%d\n",
-						__func__, dev_hndl, config,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	fmap = qdma_reg_read(dev_hndl, QDMA_S80_HARD_TRQ_SEL_FMAP_0_ADDR +
-			     func_id * QDMA_S80_HARD_REG_TRQ_SEL_FMAP_STEP);
-
-	config->qbase = FIELD_GET(TRQ_SEL_FMAP_0_QID_BASE_MASK, fmap);
-	config->qmax =
-		(uint16_t)(FIELD_GET(TRQ_SEL_FMAP_0_QID_MAX_MASK,
-				fmap));
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_fmap_clear() - clear fmap context
- *
- * @dev_hndl:	device handle
- * @func_id:	function id of the device
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_fmap_clear(void *dev_hndl, uint16_t func_id)
-{
-	uint32_t fmap = 0;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	qdma_reg_write(dev_hndl, QDMA_S80_HARD_TRQ_SEL_FMAP_0_ADDR +
-			func_id * QDMA_S80_HARD_REG_TRQ_SEL_FMAP_STEP,
-			fmap);
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_fmap_conf() - configure fmap context
- *
- * @dev_hndl:	device handle
- * @func_id:	function id of the device
- * @config:	pointer to the fmap data
- * @access_type HW access type (qdma_hw_access_type enum) value
- *		QDMA_HW_ACCESS_INVALIDATE unsupported
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-int qdma_s80_hard_fmap_conf(void *dev_hndl, uint16_t func_id,
-				struct qdma_fmap_cfg *config,
-				enum qdma_hw_access_type access_type)
-{
-	int ret_val = 0;
-
-	switch (access_type) {
-	case QDMA_HW_ACCESS_READ:
-		ret_val = qdma_s80_hard_fmap_read(dev_hndl, func_id, config);
-		break;
-	case QDMA_HW_ACCESS_WRITE:
-		ret_val = qdma_s80_hard_fmap_write(dev_hndl, func_id, config);
-		break;
-	case QDMA_HW_ACCESS_CLEAR:
-		ret_val = qdma_s80_hard_fmap_clear(dev_hndl, func_id);
-		break;
-	case QDMA_HW_ACCESS_INVALIDATE:
-	default:
-		qdma_log_error("%s: access_type=%d is invalid, err:%d\n",
-					   __func__, access_type,
-					   -QDMA_ERR_INV_PARAM);
-		ret_val = -QDMA_ERR_INV_PARAM;
-		break;
-	}
-
-	return ret_val;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_sw_context_write() - create sw context and program it
- *
- * @dev_hndl:	device handle
- * @c2h:	is c2h queue
- * @hw_qid:	hardware qid of the queue
- * @ctxt:	pointer to the SW context data strucutre
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_sw_context_write(void *dev_hndl, uint8_t c2h,
-			 uint16_t hw_qid,
-			 const struct qdma_descq_sw_ctxt *ctxt)
-{
-	uint32_t sw_ctxt[QDMA_S80_HARD_SW_CONTEXT_NUM_WORDS] = {0};
-	uint16_t num_words_count = 0;
-	enum ind_ctxt_cmd_sel sel = c2h ?
-			QDMA_CTXT_SEL_SW_C2H : QDMA_CTXT_SEL_SW_H2C;
-
-	/* Input args check */
-	if (!dev_hndl || !ctxt) {
-		qdma_log_error("%s: dev_hndl or ctxt is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if ((ctxt->desc_sz > QDMA_DESC_SIZE_64B) ||
-		(ctxt->rngsz_idx >= QDMA_NUM_RING_SIZES)) {
-		qdma_log_error("%s: Invalid desc_sz(%d)/rngidx(%d), err:%d\n",
-					__func__,
-					ctxt->desc_sz,
-					ctxt->rngsz_idx,
-					-QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	sw_ctxt[num_words_count++] =
-		FIELD_SET(SW_IND_CTXT_DATA_W0_PIDX_MASK, ctxt->pidx) |
-		FIELD_SET(SW_IND_CTXT_DATA_W0_IRQ_ARM_MASK, ctxt->irq_arm);
-
-	sw_ctxt[num_words_count++] =
-		FIELD_SET(SW_IND_CTXT_DATA_W1_QEN_MASK, ctxt->qen) |
-		FIELD_SET(SW_IND_CTXT_DATA_W1_FCRD_EN_MASK, ctxt->frcd_en) |
-		FIELD_SET(SW_IND_CTXT_DATA_W1_WBI_CHK_MASK, ctxt->wbi_chk) |
-		FIELD_SET(SW_IND_CTXT_DATA_W1_WBI_INTVL_EN_MASK,
-			ctxt->wbi_intvl_en) |
-		FIELD_SET(SW_IND_CTXT_DATA_W1_FNC_ID_MASK, ctxt->fnc_id) |
-		FIELD_SET(SW_IND_CTXT_DATA_W1_RNG_SZ_MASK, ctxt->rngsz_idx) |
-		FIELD_SET(SW_IND_CTXT_DATA_W1_DSC_SZ_MASK, ctxt->desc_sz) |
-		FIELD_SET(SW_IND_CTXT_DATA_W1_BYPASS_MASK, ctxt->bypass) |
-		FIELD_SET(SW_IND_CTXT_DATA_W1_MM_CHN_MASK, ctxt->mm_chn) |
-		FIELD_SET(SW_IND_CTXT_DATA_W1_WBK_EN_MASK, ctxt->wbk_en) |
-		FIELD_SET(SW_IND_CTXT_DATA_W1_IRQ_EN_MASK, ctxt->irq_en) |
-		FIELD_SET(SW_IND_CTXT_DATA_W1_PORT_ID_MASK, ctxt->port_id) |
-		FIELD_SET(SW_IND_CTXT_DATA_W1_IRQ_NO_LAST_MASK,
-			ctxt->irq_no_last) |
-		FIELD_SET(SW_IND_CTXT_DATA_W1_ERR_MASK, ctxt->err) |
-		FIELD_SET(SW_IND_CTXT_DATA_W1_ERR_WB_SENT_MASK,
-			ctxt->err_wb_sent) |
-		FIELD_SET(SW_IND_CTXT_DATA_W1_IRQ_REQ_MASK, ctxt->irq_req) |
-		FIELD_SET(SW_IND_CTXT_DATA_W1_MRKR_DIS_MASK, ctxt->mrkr_dis) |
-		FIELD_SET(SW_IND_CTXT_DATA_W1_IS_MM_MASK, ctxt->is_mm);
-
-	sw_ctxt[num_words_count++] = ctxt->ring_bs_addr & 0xffffffff;
-	sw_ctxt[num_words_count++] = (ctxt->ring_bs_addr >> 32) & 0xffffffff;
-
-	return qdma_s80_hard_indirect_reg_write(dev_hndl, sel, hw_qid,
-			sw_ctxt, num_words_count);
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_sw_context_read() - read sw context
- *
- * @dev_hndl:	device handle
- * @c2h:	is c2h queue
- * @hw_qid:	hardware qid of the queue
- * @ctxt:	pointer to the output context data
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_sw_context_read(void *dev_hndl, uint8_t c2h,
-			 uint16_t hw_qid,
-			 struct qdma_descq_sw_ctxt *ctxt)
-{
-	int rv = 0;
-	uint32_t sw_ctxt[QDMA_S80_HARD_SW_CONTEXT_NUM_WORDS] = {0};
-	enum ind_ctxt_cmd_sel sel = c2h ?
-			QDMA_CTXT_SEL_SW_C2H : QDMA_CTXT_SEL_SW_H2C;
-	struct qdma_qid2vec qid2vec_ctxt = {0};
-
-	if (!dev_hndl || !ctxt) {
-		qdma_log_error("%s: dev_hndl=%p sw_ctxt=%p, err:%d\n",
-					   __func__, dev_hndl, ctxt,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	rv = qdma_s80_hard_indirect_reg_read(dev_hndl, sel, hw_qid,
-			QDMA_S80_HARD_SW_CONTEXT_NUM_WORDS, sw_ctxt);
-	if (rv < 0)
-		return rv;
-
-	ctxt->pidx = FIELD_GET(SW_IND_CTXT_DATA_W0_PIDX_MASK, sw_ctxt[0]);
-	ctxt->irq_arm =
-		(uint8_t)(FIELD_GET(SW_IND_CTXT_DATA_W0_IRQ_ARM_MASK,
-			sw_ctxt[0]));
-
-	ctxt->qen = FIELD_GET(SW_IND_CTXT_DATA_W1_QEN_MASK, sw_ctxt[1]);
-	ctxt->frcd_en = FIELD_GET(SW_IND_CTXT_DATA_W1_FCRD_EN_MASK,
-			sw_ctxt[1]);
-	ctxt->wbi_chk = FIELD_GET(SW_IND_CTXT_DATA_W1_WBI_CHK_MASK,
-			sw_ctxt[1]);
-	ctxt->wbi_intvl_en =
-		FIELD_GET(SW_IND_CTXT_DATA_W1_WBI_INTVL_EN_MASK,
-			sw_ctxt[1]);
-	ctxt->fnc_id =
-		(uint8_t)(FIELD_GET(SW_IND_CTXT_DATA_W1_FNC_ID_MASK,
-			sw_ctxt[1]));
-	ctxt->rngsz_idx =
-		(uint8_t)(FIELD_GET(SW_IND_CTXT_DATA_W1_RNG_SZ_MASK,
-		sw_ctxt[1]));
-	ctxt->desc_sz =
-		(uint8_t)(FIELD_GET(SW_IND_CTXT_DATA_W1_DSC_SZ_MASK,
-			sw_ctxt[1]));
-	ctxt->bypass =
-		(uint8_t)(FIELD_GET(SW_IND_CTXT_DATA_W1_BYPASS_MASK,
-			sw_ctxt[1]));
-	ctxt->mm_chn =
-		(uint8_t)(FIELD_GET(SW_IND_CTXT_DATA_W1_MM_CHN_MASK,
-			sw_ctxt[1]));
-	ctxt->wbk_en =
-		(uint8_t)(FIELD_GET(SW_IND_CTXT_DATA_W1_WBK_EN_MASK,
-			sw_ctxt[1]));
-	ctxt->irq_en =
-		(uint8_t)(FIELD_GET(SW_IND_CTXT_DATA_W1_IRQ_EN_MASK,
-			sw_ctxt[1]));
-	ctxt->port_id =
-		(uint8_t)(FIELD_GET(SW_IND_CTXT_DATA_W1_PORT_ID_MASK,
-			sw_ctxt[1]));
-	ctxt->irq_no_last =
-		(uint8_t)(FIELD_GET(SW_IND_CTXT_DATA_W1_IRQ_NO_LAST_MASK,
-			sw_ctxt[1]));
-	ctxt->err =
-		(uint8_t)(FIELD_GET(SW_IND_CTXT_DATA_W1_ERR_MASK, sw_ctxt[1]));
-	ctxt->err_wb_sent =
-		(uint8_t)(FIELD_GET(SW_IND_CTXT_DATA_W1_ERR_WB_SENT_MASK,
-			sw_ctxt[1]));
-	ctxt->irq_req =
-		(uint8_t)(FIELD_GET(SW_IND_CTXT_DATA_W1_IRQ_REQ_MASK,
-			sw_ctxt[1]));
-	ctxt->mrkr_dis =
-		(uint8_t)(FIELD_GET(SW_IND_CTXT_DATA_W1_MRKR_DIS_MASK,
-			sw_ctxt[1]));
-	ctxt->is_mm =
-		(uint8_t)(FIELD_GET(SW_IND_CTXT_DATA_W1_IS_MM_MASK,
-			sw_ctxt[1]));
-
-	ctxt->ring_bs_addr = ((uint64_t)sw_ctxt[3] << 32) | (sw_ctxt[2]);
-
-	/** Read the QID2VEC Context Data */
-	rv = qdma_s80_hard_qid2vec_read(dev_hndl, c2h, hw_qid, &qid2vec_ctxt);
-	if (rv < 0)
-		return rv;
-
-	if (c2h) {
-		ctxt->vec = qid2vec_ctxt.c2h_vector;
-		ctxt->intr_aggr = qid2vec_ctxt.c2h_en_coal;
-	} else {
-		ctxt->vec = qid2vec_ctxt.h2c_vector;
-		ctxt->intr_aggr = qid2vec_ctxt.h2c_en_coal;
-	}
-
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_sw_context_clear() - clear sw context
- *
- * @dev_hndl:	device handle
- * @c2h:	is c2h queue
- * @hw_qid:	hardware qid of the queue
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_sw_context_clear(void *dev_hndl, uint8_t c2h,
-			  uint16_t hw_qid)
-{
-	enum ind_ctxt_cmd_sel sel = c2h ?
-			QDMA_CTXT_SEL_SW_C2H : QDMA_CTXT_SEL_SW_H2C;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	return qdma_s80_hard_indirect_reg_clear(dev_hndl, sel, hw_qid);
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_sw_context_invalidate() - invalidate sw context
- *
- * @dev_hndl:	device handle
- * @c2h:	is c2h queue
- * @hw_qid:	hardware qid of the queue
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_sw_context_invalidate(void *dev_hndl, uint8_t c2h,
-		uint16_t hw_qid)
-{
-	enum ind_ctxt_cmd_sel sel = c2h ?
-			QDMA_CTXT_SEL_SW_C2H : QDMA_CTXT_SEL_SW_H2C;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	return qdma_s80_hard_indirect_reg_invalidate(dev_hndl, sel, hw_qid);
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_sw_ctx_conf() - configure SW context
- *
- * @dev_hndl:	device handle
- * @c2h:	is c2h queue
- * @hw_qid:	hardware qid of the queue
- * @ctxt:	pointer to the context data
- * @access_type HW access type (qdma_hw_access_type enum) value
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-int qdma_s80_hard_sw_ctx_conf(void *dev_hndl, uint8_t c2h, uint16_t hw_qid,
-				struct qdma_descq_sw_ctxt *ctxt,
-				enum qdma_hw_access_type access_type)
-{
-	int ret_val = 0;
-
-	switch (access_type) {
-	case QDMA_HW_ACCESS_READ:
-		ret_val = qdma_s80_hard_sw_context_read(dev_hndl, c2h, hw_qid,
-				ctxt);
-		break;
-	case QDMA_HW_ACCESS_WRITE:
-		ret_val = qdma_s80_hard_sw_context_write(dev_hndl, c2h, hw_qid,
-				ctxt);
-		break;
-	case QDMA_HW_ACCESS_CLEAR:
-		ret_val = qdma_s80_hard_sw_context_clear(dev_hndl, c2h, hw_qid);
-		break;
-	case QDMA_HW_ACCESS_INVALIDATE:
-		ret_val = qdma_s80_hard_sw_context_invalidate(dev_hndl,
-				c2h, hw_qid);
-		break;
-	default:
-		qdma_log_error("%s: access_type=%d is invalid, err:%d\n",
-					   __func__, access_type,
-					   -QDMA_ERR_INV_PARAM);
-		ret_val = -QDMA_ERR_INV_PARAM;
-		break;
-	}
-	return ret_val;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_pfetch_context_write() - create prefetch context and program it
- *
- * @dev_hndl:	device handle
- * @hw_qid:	hardware qid of the queue
- * @ctxt:	pointer to the prefetch context data strucutre
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_pfetch_context_write(void *dev_hndl, uint16_t hw_qid,
-		const struct qdma_descq_prefetch_ctxt *ctxt)
-{
-	uint32_t pfetch_ctxt[QDMA_S80_HARD_PFETCH_CONTEXT_NUM_WORDS] = {0};
-	enum ind_ctxt_cmd_sel sel = QDMA_CTXT_SEL_PFTCH;
-	uint32_t sw_crdt_l, sw_crdt_h;
-	uint16_t num_words_count = 0;
-
-	if (!dev_hndl || !ctxt) {
-		qdma_log_error("%s: dev_hndl=%p pfetch_ctxt=%p, err:%d\n",
-					   __func__, dev_hndl, ctxt,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	sw_crdt_l =
-		FIELD_GET(QDMA_PFTCH_CTXT_SW_CRDT_GET_L_MASK, ctxt->sw_crdt);
-	sw_crdt_h =
-		FIELD_GET(QDMA_PFTCH_CTXT_SW_CRDT_GET_H_MASK, ctxt->sw_crdt);
-
-	pfetch_ctxt[num_words_count++] =
-		FIELD_SET(PREFETCH_CTXT_DATA_W0_BYPASS_MASK, ctxt->bypass) |
-		FIELD_SET(PREFETCH_CTXT_DATA_W0_BUF_SIZE_IDX_MASK,
-				ctxt->bufsz_idx) |
-		FIELD_SET(PREFETCH_CTXT_DATA_W0_PORT_ID_MASK, ctxt->port_id) |
-		FIELD_SET(PREFETCH_CTXT_DATA_W0_ERR_MASK, ctxt->err) |
-		FIELD_SET(PREFETCH_CTXT_DATA_W0_PFCH_EN_MASK, ctxt->pfch_en) |
-		FIELD_SET(PREFETCH_CTXT_DATA_W0_PFCH_MASK, ctxt->pfch) |
-		FIELD_SET(PREFETCH_CTXT_DATA_W0_SW_CRDT_L_MASK, sw_crdt_l);
-
-	pfetch_ctxt[num_words_count++] =
-		FIELD_SET(PREFETCH_CTXT_DATA_W1_SW_CRDT_H_MASK, sw_crdt_h) |
-		FIELD_SET(PREFETCH_CTXT_DATA_W1_VALID_MASK, ctxt->valid);
-
-	return qdma_s80_hard_indirect_reg_write(dev_hndl, sel, hw_qid,
-			pfetch_ctxt, num_words_count);
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_pfetch_context_read() - read prefetch context
- *
- * @dev_hndl:	device handle
- * @hw_qid:	hardware qid of the queue
- * @ctxt:	pointer to the output context data
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_pfetch_context_read(void *dev_hndl, uint16_t hw_qid,
-		struct qdma_descq_prefetch_ctxt *ctxt)
-{
-	int rv = 0;
-	uint32_t pfetch_ctxt[QDMA_S80_HARD_PFETCH_CONTEXT_NUM_WORDS] = {0};
-	enum ind_ctxt_cmd_sel sel = QDMA_CTXT_SEL_PFTCH;
-	uint32_t sw_crdt_l, sw_crdt_h;
-
-	if (!dev_hndl || !ctxt) {
-		qdma_log_error("%s: dev_hndl=%p pfetch_ctxt=%p, err:%d\n",
-					   __func__, dev_hndl, ctxt,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	rv = qdma_s80_hard_indirect_reg_read(dev_hndl, sel, hw_qid,
-			QDMA_S80_HARD_PFETCH_CONTEXT_NUM_WORDS, pfetch_ctxt);
-	if (rv < 0)
-		return rv;
-
-	ctxt->bypass =
-		(uint8_t)(FIELD_GET(PREFETCH_CTXT_DATA_W0_BYPASS_MASK,
-			pfetch_ctxt[0]));
-	ctxt->bufsz_idx =
-		(uint8_t)(FIELD_GET(PREFETCH_CTXT_DATA_W0_BUF_SIZE_IDX_MASK,
-				pfetch_ctxt[0]));
-	ctxt->port_id =
-		(uint8_t)(FIELD_GET(PREFETCH_CTXT_DATA_W0_PORT_ID_MASK,
-			pfetch_ctxt[0]));
-	ctxt->err =
-		(uint8_t)(FIELD_GET(PREFETCH_CTXT_DATA_W0_ERR_MASK,
-			pfetch_ctxt[0]));
-	ctxt->pfch_en =
-		(uint8_t)(FIELD_GET(PREFETCH_CTXT_DATA_W0_PFCH_EN_MASK,
-			pfetch_ctxt[0]));
-	ctxt->pfch =
-		(uint8_t)(FIELD_GET(PREFETCH_CTXT_DATA_W0_PFCH_MASK,
-			pfetch_ctxt[0]));
-	sw_crdt_l =
-		(uint32_t)FIELD_GET(PREFETCH_CTXT_DATA_W0_SW_CRDT_L_MASK,
-			pfetch_ctxt[0]);
-
-	sw_crdt_h =
-		(uint32_t)FIELD_GET(PREFETCH_CTXT_DATA_W1_SW_CRDT_H_MASK,
-			pfetch_ctxt[1]);
-	ctxt->valid =
-		(uint8_t)(FIELD_GET(PREFETCH_CTXT_DATA_W1_VALID_MASK,
-			pfetch_ctxt[1]));
-
-	ctxt->sw_crdt =
-		(uint16_t)(FIELD_SET(QDMA_PFTCH_CTXT_SW_CRDT_GET_L_MASK,
-			sw_crdt_l) |
-		FIELD_SET(QDMA_PFTCH_CTXT_SW_CRDT_GET_H_MASK, sw_crdt_h));
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_pfetch_context_clear() - clear prefetch context
- *
- * @dev_hndl:	device handle
- * @hw_qid:	hardware qid of the queue
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_pfetch_context_clear(void *dev_hndl, uint16_t hw_qid)
-{
-	enum ind_ctxt_cmd_sel sel = QDMA_CTXT_SEL_PFTCH;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	return qdma_s80_hard_indirect_reg_clear(dev_hndl, sel, hw_qid);
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_pfetch_context_invalidate() - invalidate prefetch context
- *
- * @dev_hndl:	device handle
- * @hw_qid:	hardware qid of the queue
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_pfetch_context_invalidate(void *dev_hndl,
-		uint16_t hw_qid)
-{
-	enum ind_ctxt_cmd_sel sel = QDMA_CTXT_SEL_PFTCH;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	return qdma_s80_hard_indirect_reg_invalidate(dev_hndl, sel, hw_qid);
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_pfetch_ctx_conf() - configure prefetch context
- *
- * @dev_hndl:	device handle
- * @hw_qid:	hardware qid of the queue
- * @ctxt:	pointer to context data
- * @access_type HW access type (qdma_hw_access_type enum) value
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-int qdma_s80_hard_pfetch_ctx_conf(void *dev_hndl, uint16_t hw_qid,
-				struct qdma_descq_prefetch_ctxt *ctxt,
-				enum qdma_hw_access_type access_type)
-{
-	int ret_val = 0;
-
-	switch (access_type) {
-	case QDMA_HW_ACCESS_READ:
-		ret_val = qdma_s80_hard_pfetch_context_read(dev_hndl,
-				hw_qid, ctxt);
-		break;
-	case QDMA_HW_ACCESS_WRITE:
-		ret_val = qdma_s80_hard_pfetch_context_write(dev_hndl,
-				hw_qid, ctxt);
-		break;
-	case QDMA_HW_ACCESS_CLEAR:
-		ret_val = qdma_s80_hard_pfetch_context_clear(dev_hndl, hw_qid);
-		break;
-	case QDMA_HW_ACCESS_INVALIDATE:
-		ret_val = qdma_s80_hard_pfetch_context_invalidate(dev_hndl,
-				hw_qid);
-		break;
-	default:
-		qdma_log_error("%s: access_type=%d is invalid, err:%d\n",
-					   __func__, access_type,
-					   -QDMA_ERR_INV_PARAM);
-		ret_val = -QDMA_ERR_INV_PARAM;
-		break;
-	}
-
-	return ret_val;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_cmpt_context_write() - create completion context and program it
- *
- * @dev_hndl:	device handle
- * @hw_qid:	hardware qid of the queue
- * @ctxt:	pointer to the cmpt context data strucutre
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_cmpt_context_write(void *dev_hndl, uint16_t hw_qid,
-			   const struct qdma_descq_cmpt_ctxt *ctxt)
-{
-	uint32_t cmpt_ctxt[QDMA_S80_HARD_CMPT_CONTEXT_NUM_WORDS] = {0};
-	uint16_t num_words_count = 0;
-	uint32_t baddr_l, baddr_h, baddr_m, pidx_l, pidx_h;
-	enum ind_ctxt_cmd_sel sel = QDMA_CTXT_SEL_CMPT;
-
-	/* Input args check */
-	if (!dev_hndl || !ctxt) {
-		qdma_log_error("%s: dev_hndl=%p cmpt_ctxt=%p, err:%d\n",
-					   __func__, dev_hndl, ctxt,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if ((ctxt->desc_sz > QDMA_DESC_SIZE_32B) ||
-		(ctxt->ringsz_idx >= QDMA_NUM_RING_SIZES) ||
-		(ctxt->counter_idx >= QDMA_NUM_C2H_COUNTERS) ||
-		(ctxt->timer_idx >= QDMA_NUM_C2H_TIMERS) ||
-		(ctxt->trig_mode > QDMA_CMPT_UPDATE_TRIG_MODE_TMR_CNTR)) {
-		qdma_log_error
-		("%s Inv dsz(%d)/ridx(%d)/cntr(%d)/tmr(%d)/tm(%d), err:%d\n",
-				__func__,
-				ctxt->desc_sz,
-				ctxt->ringsz_idx,
-				ctxt->counter_idx,
-				ctxt->timer_idx,
-				ctxt->trig_mode,
-				-QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	baddr_l =
-		(uint32_t)FIELD_GET(QDMA_S80_HARD_COMPL_CTXT_BADDR_GET_L_MASK,
-			ctxt->bs_addr);
-	baddr_m =
-		(uint32_t)FIELD_GET(QDMA_S80_HARD_COMPL_CTXT_BADDR_GET_M_MASK,
-			ctxt->bs_addr);
-	baddr_h =
-		(uint32_t)FIELD_GET(QDMA_S80_HARD_COMPL_CTXT_BADDR_GET_H_MASK,
-			ctxt->bs_addr);
-
-	pidx_l = FIELD_GET(QDMA_S80_HARD_COMPL_CTXT_PIDX_GET_L_MASK,
-			ctxt->pidx);
-	pidx_h = FIELD_GET(QDMA_S80_HARD_COMPL_CTXT_PIDX_GET_H_MASK,
-			ctxt->pidx);
-
-	cmpt_ctxt[num_words_count++] =
-		FIELD_SET(CMPL_CTXT_DATA_W0_EN_STAT_DESC_MASK,
-				ctxt->en_stat_desc) |
-		FIELD_SET(CMPL_CTXT_DATA_W0_EN_INT_MASK, ctxt->en_int) |
-		FIELD_SET(CMPL_CTXT_DATA_W0_TRIG_MODE_MASK, ctxt->trig_mode) |
-		FIELD_SET(CMPL_CTXT_DATA_W0_FNC_ID_MASK, ctxt->fnc_id) |
-		FIELD_SET(CMPL_CTXT_DATA_W0_CNTER_IDX_MASK,
-				ctxt->counter_idx) |
-		FIELD_SET(CMPL_CTXT_DATA_W0_TIMER_IDX_MASK,
-				ctxt->timer_idx) |
-		FIELD_SET(CMPL_CTXT_DATA_W0_INT_ST_MASK,
-				ctxt->in_st) |
-		FIELD_SET(CMPL_CTXT_DATA_W0_COLOR_MASK,
-				ctxt->color) |
-		FIELD_SET(CMPL_CTXT_DATA_W0_QSIZE_IDX_MASK,
-				ctxt->ringsz_idx) |
-		FIELD_SET(CMPL_CTXT_DATA_W0_BADDR_64_L_MASK,
-				baddr_l);
-
-	cmpt_ctxt[num_words_count++] =
-		FIELD_SET(CMPL_CTXT_DATA_W1_BADDR_64_M_MASK,
-				baddr_m);
-
-	cmpt_ctxt[num_words_count++] =
-		FIELD_SET(CMPL_CTXT_DATA_W2_BADDR_64_H_MASK,
-				baddr_h) |
-		FIELD_SET(CMPL_CTXT_DATA_W2_DESC_SIZE_MASK,
-				ctxt->desc_sz) |
-		FIELD_SET(CMPL_CTXT_DATA_W2_PIDX_L_MASK,
-				pidx_l);
-
-	cmpt_ctxt[num_words_count++] =
-		FIELD_SET(CMPL_CTXT_DATA_W3_PIDX_H_MASK,
-				pidx_h) |
-		FIELD_SET(CMPL_CTXT_DATA_W3_CIDX_MASK, ctxt->cidx) |
-		FIELD_SET(CMPL_CTXT_DATA_W3_VALID_MASK, ctxt->valid) |
-		FIELD_SET(CMPL_CTXT_DATA_W3_ERR_MASK, ctxt->err) |
-		FIELD_SET(CMPL_CTXT_DATA_W3_USER_TRIG_PEND_MASK,
-				ctxt->user_trig_pend) |
-		FIELD_SET(CMPL_CTXT_DATA_W3_TIMER_RUNNING_MASK,
-				ctxt->timer_running) |
-		FIELD_SET(CMPL_CTXT_DATA_W3_FULL_UPD_MASK,
-				ctxt->full_upd);
-
-	return qdma_s80_hard_indirect_reg_write(dev_hndl, sel, hw_qid,
-			cmpt_ctxt, num_words_count);
-
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_cmpt_context_read() - read completion context
- *
- * @dev_hndl:	device handle
- * @hw_qid:	hardware qid of the queue
- * @ctxt:	    pointer to the context data
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_cmpt_context_read(void *dev_hndl, uint16_t hw_qid,
-			   struct qdma_descq_cmpt_ctxt *ctxt)
-{
-	int rv = 0;
-	uint32_t cmpt_ctxt[QDMA_S80_HARD_CMPT_CONTEXT_NUM_WORDS] = {0};
-	enum ind_ctxt_cmd_sel sel = QDMA_CTXT_SEL_CMPT;
-	uint32_t baddr_l, baddr_h, baddr_m,
-			 pidx_l, pidx_h;
-
-	if (!dev_hndl || !ctxt) {
-		qdma_log_error("%s: dev_hndl=%p cmpt_ctxt=%p, err:%d\n",
-					   __func__, dev_hndl, ctxt,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	rv = qdma_s80_hard_indirect_reg_read(dev_hndl, sel, hw_qid,
-			QDMA_S80_HARD_CMPT_CONTEXT_NUM_WORDS, cmpt_ctxt);
-	if (rv < 0)
-		return rv;
-
-	ctxt->en_stat_desc =
-		FIELD_GET(CMPL_CTXT_DATA_W0_EN_STAT_DESC_MASK, cmpt_ctxt[0]);
-	ctxt->en_int = FIELD_GET(CMPL_CTXT_DATA_W0_EN_INT_MASK,
-		cmpt_ctxt[0]);
-	ctxt->trig_mode =
-		FIELD_GET(CMPL_CTXT_DATA_W0_TRIG_MODE_MASK, cmpt_ctxt[0]);
-	ctxt->fnc_id =
-		(uint8_t)(FIELD_GET(CMPL_CTXT_DATA_W0_FNC_ID_MASK,
-			cmpt_ctxt[0]));
-	ctxt->counter_idx =
-		(uint8_t)(FIELD_GET(
-			CMPL_CTXT_DATA_W0_CNTER_IDX_MASK,
-			cmpt_ctxt[0]));
-	ctxt->timer_idx =
-		(uint8_t)(FIELD_GET(CMPL_CTXT_DATA_W0_TIMER_IDX_MASK,
-				cmpt_ctxt[0]));
-	ctxt->in_st =
-		(uint8_t)(FIELD_GET(CMPL_CTXT_DATA_W0_INT_ST_MASK,
-			cmpt_ctxt[0]));
-	ctxt->color =
-		(uint8_t)(FIELD_GET(CMPL_CTXT_DATA_W0_COLOR_MASK,
-			cmpt_ctxt[0]));
-	ctxt->ringsz_idx =
-		(uint8_t)(FIELD_GET(CMPL_CTXT_DATA_W0_QSIZE_IDX_MASK,
-			cmpt_ctxt[0]));
-
-	baddr_l =
-		FIELD_GET(CMPL_CTXT_DATA_W0_BADDR_64_L_MASK,
-				cmpt_ctxt[0]);
-	baddr_m =
-		FIELD_GET(CMPL_CTXT_DATA_W1_BADDR_64_M_MASK,
-				cmpt_ctxt[1]);
-	baddr_h =
-		FIELD_GET(CMPL_CTXT_DATA_W2_BADDR_64_H_MASK,
-				cmpt_ctxt[2]);
-
-	ctxt->desc_sz =
-		(uint8_t)(FIELD_GET(CMPL_CTXT_DATA_W2_DESC_SIZE_MASK,
-			cmpt_ctxt[2]));
-	pidx_l = FIELD_GET(CMPL_CTXT_DATA_W2_PIDX_L_MASK,
-			cmpt_ctxt[2]);
-
-	pidx_h = FIELD_GET(CMPL_CTXT_DATA_W3_PIDX_H_MASK,
-			cmpt_ctxt[3]);
-	ctxt->cidx =
-		(uint16_t)(FIELD_GET(CMPL_CTXT_DATA_W3_CIDX_MASK,
-			cmpt_ctxt[3]));
-	ctxt->valid =
-		(uint8_t)(FIELD_GET(CMPL_CTXT_DATA_W3_VALID_MASK,
-			cmpt_ctxt[3]));
-	ctxt->err =
-		(uint8_t)(FIELD_GET(CMPL_CTXT_DATA_W3_ERR_MASK,
-			cmpt_ctxt[3]));
-	ctxt->user_trig_pend =
-		(uint8_t)(FIELD_GET(
-		CMPL_CTXT_DATA_W3_USER_TRIG_PEND_MASK, cmpt_ctxt[3]));
-
-	ctxt->timer_running =
-		(uint8_t)(FIELD_GET(CMPL_CTXT_DATA_W3_TIMER_RUNNING_MASK,
-			cmpt_ctxt[3]));
-	ctxt->full_upd =
-		(uint8_t)(FIELD_GET(CMPL_CTXT_DATA_W3_FULL_UPD_MASK,
-			cmpt_ctxt[3]));
-
-	ctxt->bs_addr =
-		FIELD_SET(QDMA_S80_HARD_COMPL_CTXT_BADDR_GET_L_MASK,
-			(uint64_t)baddr_l) |
-		FIELD_SET(QDMA_S80_HARD_COMPL_CTXT_BADDR_GET_M_MASK,
-			(uint64_t)baddr_m) |
-		FIELD_SET(QDMA_S80_HARD_COMPL_CTXT_BADDR_GET_H_MASK,
-			(uint64_t)baddr_h);
-
-	ctxt->pidx =
-		(uint16_t)(FIELD_SET(QDMA_S80_HARD_COMPL_CTXT_PIDX_GET_L_MASK,
-			pidx_l) |
-		FIELD_SET(QDMA_S80_HARD_COMPL_CTXT_PIDX_GET_H_MASK,
-			pidx_h));
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_cmpt_context_clear() - clear completion context
- *
- * @dev_hndl:	device handle
- * @hw_qid:	hardware qid of the queue
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_cmpt_context_clear(void *dev_hndl, uint16_t hw_qid)
-{
-	enum ind_ctxt_cmd_sel sel = QDMA_CTXT_SEL_CMPT;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	return qdma_s80_hard_indirect_reg_clear(dev_hndl, sel, hw_qid);
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_cmpt_context_invalidate() - invalidate completion context
- *
- * @dev_hndl:	device handle
- * @hw_qid:	hardware qid of the queue
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_cmpt_context_invalidate(void *dev_hndl,
-		uint16_t hw_qid)
-{
-	enum ind_ctxt_cmd_sel sel = QDMA_CTXT_SEL_CMPT;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	return qdma_s80_hard_indirect_reg_invalidate(dev_hndl, sel, hw_qid);
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_cmpt_ctx_conf() - configure completion context
- *
- * @dev_hndl:	device handle
- * @hw_qid:	hardware qid of the queue
- * @ctxt:	pointer to context data
- * @access_type HW access type (qdma_hw_access_type enum) value
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-int qdma_s80_hard_cmpt_ctx_conf(void *dev_hndl, uint16_t hw_qid,
-			struct qdma_descq_cmpt_ctxt *ctxt,
-			enum qdma_hw_access_type access_type)
-{
-	int ret_val = 0;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	switch (access_type) {
-	case QDMA_HW_ACCESS_READ:
-		ret_val = qdma_s80_hard_cmpt_context_read(dev_hndl,
-				hw_qid, ctxt);
-		break;
-	case QDMA_HW_ACCESS_WRITE:
-		ret_val = qdma_s80_hard_cmpt_context_write(dev_hndl,
-				hw_qid, ctxt);
-		break;
-	case QDMA_HW_ACCESS_CLEAR:
-		ret_val = qdma_s80_hard_cmpt_context_clear(dev_hndl, hw_qid);
-		break;
-	case QDMA_HW_ACCESS_INVALIDATE:
-		ret_val = qdma_s80_hard_cmpt_context_invalidate(dev_hndl,
-				hw_qid);
-		break;
-	default:
-		qdma_log_error("%s: access_type=%d is invalid, err:%d\n",
-					   __func__, access_type,
-					   -QDMA_ERR_INV_PARAM);
-		ret_val = -QDMA_ERR_INV_PARAM;
-		break;
-	}
-
-	return ret_val;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_hw_context_read() - read hardware context
- *
- * @dev_hndl:	device handle
- * @c2h:	is c2h queue
- * @hw_qid:	hardware qid of the queue
- * @ctxt:	pointer to the output context data
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_hw_context_read(void *dev_hndl, uint8_t c2h,
-			 uint16_t hw_qid, struct qdma_descq_hw_ctxt *ctxt)
-{
-	int rv = 0;
-	uint32_t hw_ctxt[QDMA_S80_HARD_HW_CONTEXT_NUM_WORDS] = {0};
-	enum ind_ctxt_cmd_sel sel = c2h ? QDMA_CTXT_SEL_HW_C2H :
-			QDMA_CTXT_SEL_HW_H2C;
-
-	if (!dev_hndl || !ctxt) {
-		qdma_log_error("%s: dev_hndl=%p hw_ctxt=%p, err:%d\n",
-						__func__, dev_hndl, ctxt,
-						-QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	rv = qdma_s80_hard_indirect_reg_read(dev_hndl, sel, hw_qid,
-				   QDMA_S80_HARD_HW_CONTEXT_NUM_WORDS, hw_ctxt);
-	if (rv < 0)
-		return rv;
-
-	ctxt->cidx = FIELD_GET(HW_IND_CTXT_DATA_W0_CIDX_MASK, hw_ctxt[0]);
-	ctxt->crd_use =
-		(uint16_t)(FIELD_GET(HW_IND_CTXT_DATA_W0_CRD_USE_MASK,
-				hw_ctxt[0]));
-
-	ctxt->dsc_pend =
-		(uint8_t)(FIELD_GET(HW_IND_CTXT_DATA_W1_DSC_PND_MASK,
-				hw_ctxt[1]));
-	ctxt->idl_stp_b =
-		(uint8_t)(FIELD_GET(HW_IND_CTXT_DATA_W1_IDL_STP_B_MASK,
-			hw_ctxt[1]));
-	ctxt->fetch_pnd =
-		(uint8_t)(FIELD_GET(HW_IND_CTXT_DATA_W1_FETCH_PND_MASK,
-			hw_ctxt[1]));
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_hw_context_clear() - clear hardware context
- *
- * @dev_hndl:	device handle
- * @c2h:	is c2h queue
- * @hw_qid:	hardware qid of the queue
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_hw_context_clear(void *dev_hndl, uint8_t c2h,
-			  uint16_t hw_qid)
-{
-	enum ind_ctxt_cmd_sel sel = c2h ? QDMA_CTXT_SEL_HW_C2H :
-			QDMA_CTXT_SEL_HW_H2C;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	return qdma_s80_hard_indirect_reg_clear(dev_hndl, sel, hw_qid);
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_hw_context_invalidate() - invalidate hardware context
- *
- * @dev_hndl:	device handle
- * @c2h:	is c2h queue
- * @hw_qid:	hardware qid of the queue
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_hw_context_invalidate(void *dev_hndl, uint8_t c2h,
-				   uint16_t hw_qid)
-{
-	enum ind_ctxt_cmd_sel sel = c2h ? QDMA_CTXT_SEL_HW_C2H :
-			QDMA_CTXT_SEL_HW_H2C;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	return qdma_s80_hard_indirect_reg_invalidate(dev_hndl, sel, hw_qid);
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_hw_ctx_conf() - configure HW context
- *
- * @dev_hndl:	device handle
- * @c2h:	is c2h queue
- * @hw_qid:	hardware qid of the queue
- * @ctxt:	pointer to context data
- * @access_type HW access type (qdma_hw_access_type enum) value
- *		QDMA_HW_ACCESS_WRITE unsupported
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-int qdma_s80_hard_hw_ctx_conf(void *dev_hndl, uint8_t c2h, uint16_t hw_qid,
-				struct qdma_descq_hw_ctxt *ctxt,
-				enum qdma_hw_access_type access_type)
-{
-	int ret_val = 0;
-
-	switch (access_type) {
-	case QDMA_HW_ACCESS_READ:
-		ret_val = qdma_s80_hard_hw_context_read(dev_hndl, c2h, hw_qid,
-				ctxt);
-		break;
-	case QDMA_HW_ACCESS_CLEAR:
-		ret_val = qdma_s80_hard_hw_context_clear(dev_hndl, c2h, hw_qid);
-		break;
-	case QDMA_HW_ACCESS_INVALIDATE:
-		ret_val = qdma_s80_hard_hw_context_invalidate(dev_hndl, c2h,
-				hw_qid);
-		break;
-	case QDMA_HW_ACCESS_WRITE:
-	default:
-		qdma_log_error("%s: access_type=%d is invalid, err:%d\n",
-						__func__, access_type,
-						-QDMA_ERR_INV_PARAM);
-		ret_val = -QDMA_ERR_INV_PARAM;
-		break;
-	}
-
-
-	return ret_val;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_indirect_intr_context_write() - create indirect
- * interrupt context and program it
- *
- * @dev_hndl:   device handle
- * @ring_index: indirect interrupt ring index
- * @ctxt:	pointer to the interrupt context data strucutre
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_indirect_intr_context_write(void *dev_hndl,
-		uint16_t ring_index, const struct qdma_indirect_intr_ctxt *ctxt)
-{
-	uint32_t intr_ctxt[QDMA_S80_HARD_IND_INTR_CONTEXT_NUM_WORDS] = {0};
-	enum ind_ctxt_cmd_sel sel = QDMA_CTXT_SEL_INT_COAL;
-	uint16_t num_words_count = 0;
-	uint32_t baddr_l, baddr_h;
-
-	if (!dev_hndl || !ctxt) {
-		qdma_log_error("%s: dev_hndl=%p intr_ctxt=%p, err:%d\n",
-						__func__, dev_hndl, ctxt,
-						-QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if (ctxt->page_size > QDMA_INDIRECT_INTR_RING_SIZE_32KB) {
-		qdma_log_error("%s: ctxt->page_size=%u is too big, err:%d\n",
-					   __func__, ctxt->page_size,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	baddr_l =
-		(uint32_t)FIELD_GET(QDMA_S80_HARD_INTR_CTXT_BADDR_GET_L_MASK,
-			ctxt->baddr_4k);
-	baddr_h =
-		(uint32_t)FIELD_GET(QDMA_S80_HARD_INTR_CTXT_BADDR_GET_H_MASK,
-			ctxt->baddr_4k);
-
-	intr_ctxt[num_words_count++] =
-		FIELD_SET(INTR_CTXT_DATA_W0_VALID_MASK, ctxt->valid) |
-		FIELD_SET(INTR_CTXT_DATA_W0_VEC_MASK, ctxt->vec) |
-		FIELD_SET(INTR_CTXT_DATA_W0_INT_ST_MASK,
-				ctxt->int_st) |
-		FIELD_SET(INTR_CTXT_DATA_W0_COLOR_MASK, ctxt->color) |
-		FIELD_SET(INTR_CTXT_DATA_W0_BADDR_4K_L_MASK, baddr_l);
-
-	intr_ctxt[num_words_count++] =
-		FIELD_SET(INTR_CTXT_DATA_W1_BADDR_4K_H_MASK, baddr_h) |
-		FIELD_SET(INTR_CTXT_DATA_W1_PAGE_SIZE_MASK,
-				ctxt->page_size);
-
-	intr_ctxt[num_words_count++] =
-		FIELD_SET(INTR_CTXT_DATA_W2_PIDX_MASK, ctxt->pidx);
-
-	return qdma_s80_hard_indirect_reg_write(dev_hndl, sel, ring_index,
-			intr_ctxt, num_words_count);
-}
-
-/*****************************************************************************/
-/**
- * qdma_indirect_intr_context_read() - read indirect interrupt context
- *
- * @dev_hndl:	device handle
- * @ring_index:	indirect interrupt ring index
- * @ctxt:	pointer to the output context data
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_indirect_intr_context_read(void *dev_hndl,
-		uint16_t ring_index, struct qdma_indirect_intr_ctxt *ctxt)
-{
-	int rv = 0;
-	uint32_t intr_ctxt[QDMA_S80_HARD_IND_INTR_CONTEXT_NUM_WORDS] = {0};
-	enum ind_ctxt_cmd_sel sel = QDMA_CTXT_SEL_INT_COAL;
-	uint64_t baddr_l, baddr_h;
-
-	if (!dev_hndl || !ctxt) {
-		qdma_log_error("%s: dev_hndl=%p intr_ctxt=%p, err:%d\n",
-					   __func__, dev_hndl, ctxt,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	rv = qdma_s80_hard_indirect_reg_read(dev_hndl, sel, ring_index,
-			QDMA_S80_HARD_IND_INTR_CONTEXT_NUM_WORDS, intr_ctxt);
-	if (rv < 0)
-		return rv;
-
-	ctxt->valid = FIELD_GET(INTR_CTXT_DATA_W0_VALID_MASK, intr_ctxt[0]);
-	ctxt->vec = FIELD_GET(INTR_CTXT_DATA_W0_VEC_MASK,
-			intr_ctxt[0]);
-	ctxt->int_st = FIELD_GET(INTR_CTXT_DATA_W0_INT_ST_MASK,
-			intr_ctxt[0]);
-	ctxt->color =
-		(uint8_t)(FIELD_GET(INTR_CTXT_DATA_W0_COLOR_MASK,
-			intr_ctxt[0]));
-	baddr_l = FIELD_GET(INTR_CTXT_DATA_W0_BADDR_4K_L_MASK,
-			intr_ctxt[0]);
-
-	baddr_h = FIELD_GET(INTR_CTXT_DATA_W1_BADDR_4K_H_MASK,
-			intr_ctxt[1]);
-	ctxt->page_size =
-		(uint8_t)(FIELD_GET(INTR_CTXT_DATA_W1_PAGE_SIZE_MASK,
-			intr_ctxt[1]));
-	ctxt->pidx = FIELD_GET(INTR_CTXT_DATA_W2_PIDX_MASK,
-			intr_ctxt[2]);
-
-	ctxt->baddr_4k =
-		FIELD_SET(QDMA_S80_HARD_INTR_CTXT_BADDR_GET_L_MASK, baddr_l) |
-		FIELD_SET(QDMA_S80_HARD_INTR_CTXT_BADDR_GET_H_MASK, baddr_h);
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_indirect_intr_context_clear() - clear indirect
- * interrupt context
- *
- * @dev_hndl:	device handle
- * @ring_index:	indirect interrupt ring index
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_indirect_intr_context_clear(void *dev_hndl,
-		uint16_t ring_index)
-{
-	enum ind_ctxt_cmd_sel sel = QDMA_CTXT_SEL_INT_COAL;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	return qdma_s80_hard_indirect_reg_clear(dev_hndl, sel, ring_index);
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_indirect_intr_context_invalidate() - invalidate
- * indirect interrupt context
- *
- * @dev_hndl:	device handle
- * @ring_index:	indirect interrupt ring index
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_indirect_intr_context_invalidate(void *dev_hndl,
-					  uint16_t ring_index)
-{
-	enum ind_ctxt_cmd_sel sel = QDMA_CTXT_SEL_INT_COAL;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	return qdma_s80_hard_indirect_reg_invalidate(dev_hndl, sel, ring_index);
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_indirect_intr_ctx_conf() - configure indirect interrupt context
- *
- * @dev_hndl:	device handle
- * @ring_index:	indirect interrupt ring index
- * @ctxt:	pointer to context data
- * @access_type HW access type (qdma_hw_access_type enum) value
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-int qdma_s80_hard_indirect_intr_ctx_conf(void *dev_hndl, uint16_t ring_index,
-				struct qdma_indirect_intr_ctxt *ctxt,
-				enum qdma_hw_access_type access_type)
-{
-	int ret_val = 0;
-
-	switch (access_type) {
-	case QDMA_HW_ACCESS_READ:
-		ret_val = qdma_s80_hard_indirect_intr_context_read(dev_hndl,
-							      ring_index,
-							      ctxt);
-		break;
-	case QDMA_HW_ACCESS_WRITE:
-		ret_val = qdma_s80_hard_indirect_intr_context_write(dev_hndl,
-							       ring_index,
-							       ctxt);
-		break;
-	case QDMA_HW_ACCESS_CLEAR:
-		ret_val = qdma_s80_hard_indirect_intr_context_clear(dev_hndl,
-							   ring_index);
-		break;
-	case QDMA_HW_ACCESS_INVALIDATE:
-		ret_val = qdma_s80_hard_indirect_intr_context_invalidate(
-				dev_hndl, ring_index);
-		break;
-	default:
-		qdma_log_error("%s: access_type=%d is invalid, err:%d\n",
-					   __func__, access_type,
-					   -QDMA_ERR_INV_PARAM);
-		ret_val = -QDMA_ERR_INV_PARAM;
-		break;
-	}
-
-	return ret_val;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_set_default_global_csr() - function to set the global
- *  CSR register to default values. The value can be modified later by using
- *  the set/get csr functions
- *
- * @dev_hndl:	device handle
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-int qdma_s80_hard_set_default_global_csr(void *dev_hndl)
-{
-	/* Default values */
-	uint32_t reg_val = 0;
-	uint32_t rng_sz[QDMA_NUM_RING_SIZES] = {2049, 65, 129, 193, 257,
-				385, 513, 769, 1025, 1537, 3073, 4097, 6145,
-				8193, 12289, 16385};
-	uint32_t tmr_cnt[QDMA_NUM_C2H_TIMERS] = {1, 2, 4, 5, 8, 10, 15, 20, 25,
-				30, 50, 75, 100, 125, 150, 200};
-	uint32_t cnt_th[QDMA_NUM_C2H_COUNTERS] = {2, 4, 8, 16, 24,
-				32, 48, 64, 80, 96, 112, 128, 144,
-				160, 176, 192};
-	uint32_t buf_sz[QDMA_NUM_C2H_BUFFER_SIZES] = {4096, 256, 512, 1024,
-				2048, 3968, 4096, 4096, 4096, 4096, 4096, 4096,
-				4096, 8192, 9018, 16384};
-	struct qdma_dev_attributes dev_cap;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	qdma_s80_hard_get_device_attributes(dev_hndl, &dev_cap);
-
-	/* Configuring CSR registers */
-	/* Global ring sizes */
-	qdma_write_csr_values(dev_hndl, QDMA_S80_HARD_GLBL_RNG_SZ_1_ADDR, 0,
-					QDMA_NUM_RING_SIZES, rng_sz);
-
-	if (dev_cap.st_en || dev_cap.mm_cmpt_en) {
-		/* Counter thresholds */
-		qdma_write_csr_values(dev_hndl,
-				QDMA_S80_HARD_C2H_CNT_TH_1_ADDR, 0,
-				QDMA_NUM_C2H_COUNTERS, cnt_th);
-
-		/* Timer Counters */
-		qdma_write_csr_values(dev_hndl,
-				QDMA_S80_HARD_C2H_TIMER_CNT_1_ADDR, 0,
-				QDMA_NUM_C2H_TIMERS, tmr_cnt);
-
-
-		/* Writeback Interval */
-		reg_val =
-			FIELD_SET(GLBL_DSC_CFG_MAXFETCH_MASK,
-				  DEFAULT_MAX_DSC_FETCH) |
-				  FIELD_SET(GLBL_DSC_CFG_WB_ACC_INT_MASK,
-				  DEFAULT_WRB_INT);
-		qdma_reg_write(dev_hndl,
-				QDMA_S80_HARD_GLBL_DSC_CFG_ADDR, reg_val);
-	}
-
-	if (dev_cap.st_en) {
-		/* Buffer Sizes */
-		qdma_write_csr_values(dev_hndl,
-				QDMA_S80_HARD_C2H_BUF_SZ_0_ADDR, 0,
-				QDMA_NUM_C2H_BUFFER_SIZES, buf_sz);
-
-		/* Prefetch Configuration */
-		reg_val =
-			FIELD_SET(C2H_PFCH_CFG_FL_TH_MASK,
-				DEFAULT_PFCH_STOP_THRESH) |
-				FIELD_SET(C2H_PFCH_CFG_NUM_MASK,
-				DEFAULT_PFCH_NUM_ENTRIES_PER_Q) |
-				FIELD_SET(C2H_PFCH_CFG_QCNT_MASK,
-				DEFAULT_PFCH_MAX_Q_CNT) |
-				FIELD_SET(C2H_PFCH_CFG_EVT_QCNT_TH_MASK,
-				DEFAULT_C2H_INTR_TIMER_TICK);
-		qdma_reg_write(dev_hndl,
-				QDMA_S80_HARD_C2H_PFCH_CFG_ADDR, reg_val);
-
-		/* C2H interrupt timer tick */
-		qdma_reg_write(dev_hndl, QDMA_S80_HARD_C2H_INT_TIMER_TICK_ADDR,
-						DEFAULT_C2H_INTR_TIMER_TICK);
-
-		/* C2h Completion Coalesce Configuration */
-		reg_val =
-			FIELD_SET(C2H_WRB_COAL_CFG_TICK_CNT_MASK,
-				DEFAULT_CMPT_COAL_TIMER_CNT) |
-				FIELD_SET(C2H_WRB_COAL_CFG_TICK_VAL_MASK,
-				DEFAULT_CMPT_COAL_TIMER_TICK) |
-				FIELD_SET(C2H_WRB_COAL_CFG_MAX_BUF_SZ_MASK,
-				DEFAULT_CMPT_COAL_MAX_BUF_SZ);
-		qdma_reg_write(dev_hndl,
-				QDMA_S80_HARD_C2H_WRB_COAL_CFG_ADDR, reg_val);
-
-#if 0
-		/* H2C throttle Configuration*/
-		reg_val =
-			FIELD_SET(QDMA_H2C_DATA_THRESH_MASK,
-				DEFAULT_H2C_THROT_DATA_THRESH) |
-				FIELD_SET(QDMA_H2C_REQ_THROT_EN_DATA_MASK,
-				DEFAULT_THROT_EN_DATA);
-		qdma_reg_write(dev_hndl, QDMA_OFFSET_H2C_REQ_THROT, reg_val);
-#endif
-	}
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_queue_pidx_update() - function to update the desc PIDX
- *
- * @dev_hndl:	device handle
- * @is_vf:	Whether PF or VF
- * @qid:	Queue id relative to the PF/VF calling this API
- * @is_c2h:	Queue direction. Set 1 for C2H and 0 for H2C
- * @reg_info:	data needed for the PIDX register update
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-int qdma_s80_hard_queue_pidx_update(void *dev_hndl, uint8_t is_vf, uint16_t qid,
-		uint8_t is_c2h, const struct qdma_q_pidx_reg_info *reg_info)
-{
-	uint32_t reg_addr = 0;
-	uint32_t reg_val = 0;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-	if (!reg_info) {
-		qdma_log_error("%s: reg_info is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if (!is_vf) {
-		reg_addr = (is_c2h) ?
-			QDMA_S80_HARD_OFFSET_DMAP_SEL_C2H_DSC_PIDX :
-			QDMA_S80_HARD_OFFSET_DMAP_SEL_H2C_DSC_PIDX;
-	} else {
-		reg_addr = (is_c2h) ?
-			QDMA_S80_HARD_OFFSET_VF_DMAP_SEL_C2H_DSC_PIDX :
-			QDMA_S80_HARD_OFFSET_VF_DMAP_SEL_H2C_DSC_PIDX;
-	}
-
-	reg_addr += (qid * QDMA_PIDX_STEP);
-
-	reg_val = FIELD_SET(QDMA_S80_HARD_DMA_SEL_DESC_PIDX_MASK,
-					reg_info->pidx) |
-			  FIELD_SET(QDMA_S80_HARD_DMA_SEL_IRQ_EN_MASK,
-					reg_info->irq_en);
-
-	qdma_reg_write(dev_hndl, reg_addr, reg_val);
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_queue_cmpt_cidx_update() - function to update the CMPT
- * CIDX update
- *
- * @dev_hndl:	device handle
- * @is_vf:	Whether PF or VF
- * @qid:	Queue id relative to the PF/VF calling this API
- * @reg_info:	data needed for the CIDX register update
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-int qdma_s80_hard_queue_cmpt_cidx_update(void *dev_hndl, uint8_t is_vf,
-		uint16_t qid, const struct qdma_q_cmpt_cidx_reg_info *reg_info)
-{
-	uint32_t reg_addr = (is_vf) ?
-		QDMA_S80_HARD_OFFSET_VF_DMAP_SEL_CMPT_CIDX :
-		QDMA_S80_HARD_OFFSET_DMAP_SEL_CMPT_CIDX;
-	uint32_t reg_val = 0;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if (!reg_info) {
-		qdma_log_error("%s: reg_info is NULL, err:%d\n",
-						__func__,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	reg_addr += (qid * QDMA_CMPT_CIDX_STEP);
-
-	reg_val =
-		FIELD_SET(QDMA_S80_HARD_DMAP_SEL_CMPT_WRB_CIDX_MASK,
-				reg_info->wrb_cidx) |
-		FIELD_SET(QDMA_S80_HARD_DMAP_SEL_CMPT_CNT_THRESH_MASK,
-				reg_info->counter_idx) |
-		FIELD_SET(QDMA_S80_HARD_DMAP_SEL_CMPT_TMR_CNT_MASK,
-				reg_info->timer_idx) |
-		FIELD_SET(QDMA_S80_HARD_DMAP_SEL_CMPT_TRG_MODE_MASK,
-				reg_info->trig_mode) |
-		FIELD_SET(QDMA_S80_HARD_DMAP_SEL_CMPT_STS_DESC_EN_MASK,
-				reg_info->wrb_en) |
-		FIELD_SET(QDMA_S80_HARD_DMAP_SEL_CMPT_IRQ_EN_MASK,
-				reg_info->irq_en);
-
-	qdma_reg_write(dev_hndl, reg_addr, reg_val);
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_queue_intr_cidx_update() - function to update the
- * CMPT CIDX update
- *
- * @dev_hndl:	device handle
- * @is_vf:	Whether PF or VF
- * @qid:	Queue id relative to the PF/VF calling this API
- * @reg_info:	data needed for the CIDX register update
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-int qdma_s80_hard_queue_intr_cidx_update(void *dev_hndl, uint8_t is_vf,
-		uint16_t qid, const struct qdma_intr_cidx_reg_info *reg_info)
-{
-	uint32_t reg_addr = (is_vf) ?
-		QDMA_S80_HARD_OFFSET_VF_DMAP_SEL_INT_CIDX :
-		QDMA_S80_HARD_OFFSET_DMAP_SEL_INT_CIDX;
-	uint32_t reg_val = 0;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if (!reg_info) {
-		qdma_log_error("%s: reg_info is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	reg_addr += qid * QDMA_INT_CIDX_STEP;
-
-	reg_val =
-		FIELD_SET(QDMA_S80_HARD_DMA_SEL_INT_SW_CIDX_MASK,
-			reg_info->sw_cidx) |
-		FIELD_SET(QDMA_S80_HARD_DMA_SEL_INT_RING_IDX_MASK,
-			reg_info->rng_idx);
-
-	qdma_reg_write(dev_hndl, reg_addr, reg_val);
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_cmp_get_user_bar() - Function to get the
- *			AXI Master Lite(user bar) number
- * @dev_hndl:	device handle
- * @is_vf:	Whether PF or VF
- * @func_id:	function id of the PF
- * @user_bar:	pointer to hold the AXI Master Lite(user bar) number
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-int qdma_cmp_get_user_bar(void *dev_hndl, uint8_t is_vf,
-		uint8_t func_id, uint8_t *user_bar)
-{
-	uint8_t bar_found = 0;
-	uint8_t bar_idx = 0;
-	uint32_t user_bar_id = 0;
-	uint32_t reg_addr = 0;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if (!user_bar) {
-		qdma_log_error("%s: user_bar is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	reg_addr = (is_vf) ? QDMA_S80_HARD_GLBL2_PF_VF_BARLITE_EXT_ADDR :
-			QDMA_S80_HARD_GLBL2_PF_BARLITE_EXT_ADDR;
-
-	if (!is_vf) {
-		user_bar_id = qdma_reg_read(dev_hndl, reg_addr);
-		user_bar_id = (user_bar_id >> (6 * func_id)) & 0x3F;
-	} else {
-		*user_bar = QDMA_S80_HARD_VF_USER_BAR_ID;
-		return QDMA_SUCCESS;
-	}
-
-	for (bar_idx = 0; bar_idx < QDMA_BAR_NUM; bar_idx++) {
-		if (user_bar_id & (1 << bar_idx)) {
-			*user_bar = bar_idx;
-			bar_found = 1;
-			break;
-		}
-	}
-	if (bar_found == 0) {
-		*user_bar = 0;
-		qdma_log_error("%s: Bar not found, err:%d\n",
-					__func__,
-					-QDMA_ERR_HWACC_BAR_NOT_FOUND);
-		return -QDMA_ERR_HWACC_BAR_NOT_FOUND;
-	}
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_hw_ram_sbe_err_process() -Function to dump SBE err debug info
- *
- * @dev_hndl: device handle
- * @buf: Bufffer for the debug info to be dumped in
- * @buflen: Length of the buffer
- *
- * Return: void
- *****************************************************************************/
-static void qdma_s80_hard_hw_ram_sbe_err_process(void *dev_hndl)
-{
-	qdma_s80_hard_dump_reg_info(dev_hndl, QDMA_S80_HARD_RAM_SBE_STS_A_ADDR,
-						1, NULL, 0);
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_hw_ram_dbe_err_process() -Function to dump DBE err debug info
- *
- * @dev_hndl: device handle
- * @buf: Bufffer for the debug info to be dumped in
- * @buflen: Length of the buffer
- *
- * Return: void
- *****************************************************************************/
-static void qdma_s80_hard_hw_ram_dbe_err_process(void *dev_hndl)
-{
-	qdma_s80_hard_dump_reg_info(dev_hndl, QDMA_S80_HARD_RAM_DBE_STS_A_ADDR,
-						1, NULL, 0);
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_hw_desc_err_process() -Function to dump Descriptor Error info
- *
- * @dev_hndl: device handle
- * @buf: Bufffer for the debug info to be dumped in
- * @buflen: Length of the buffer
- *
- * Return: void
- *****************************************************************************/
-static void qdma_s80_hard_hw_desc_err_process(void *dev_hndl)
-{
-	int i = 0;
-	uint32_t desc_err_reg_list[] = {
-		QDMA_S80_HARD_GLBL_DSC_ERR_STS_ADDR,
-		QDMA_S80_HARD_GLBL_DSC_ERR_LOG0_ADDR,
-		QDMA_S80_HARD_GLBL_DSC_ERR_LOG1_ADDR,
-		QDMA_S80_HARD_GLBL_DSC_DBG_DAT0_ADDR,
-		QDMA_S80_HARD_GLBL_DSC_DBG_DAT1_ADDR
-	};
-	int desc_err_num_regs = sizeof(desc_err_reg_list)/sizeof(uint32_t);
-
-	for (i = 0; i < desc_err_num_regs; i++) {
-		qdma_s80_hard_dump_reg_info(dev_hndl,
-					desc_err_reg_list[i],
-					1, NULL, 0);
-	}
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_hw_trq_err_process() -Function to dump Target Access Err info
- *
- * @dev_hndl: device handle
- * @buf: Bufffer for the debug info to be dumped in
- * @buflen: Length of the buffer
- *
- * Return: void
- *****************************************************************************/
-static void qdma_s80_hard_hw_trq_err_process(void *dev_hndl)
-{
-	int i = 0;
-	uint32_t trq_err_reg_list[] = {
-		QDMA_S80_HARD_GLBL_TRQ_ERR_STS_ADDR,
-		QDMA_S80_HARD_GLBL_TRQ_ERR_LOG_ADDR
-	};
-	int trq_err_reg_num_regs = sizeof(trq_err_reg_list)/sizeof(uint32_t);
-
-	for (i = 0; i < trq_err_reg_num_regs; i++) {
-		qdma_s80_hard_dump_reg_info(dev_hndl, trq_err_reg_list[i],
-					1, NULL, 0);
-	}
-
-
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_hw_st_h2c_err_process() - Function to dump MM H2C Error info
- *
- * @dev_hndl: device handle
- * @buf: Bufffer for the debug info to be dumped in
- * @buflen: Length of the buffer
- *
- * Return: void
- *****************************************************************************/
-static void qdma_s80_hard_hw_st_h2c_err_process(void *dev_hndl)
-{
-	int i = 0;
-	uint32_t st_h2c_err_reg_list[] = {
-		QDMA_S80_HARD_H2C_ERR_STAT_ADDR,
-		QDMA_S80_HARD_H2C_FIRST_ERR_QID_ADDR,
-		QDMA_S80_HARD_H2C_DBG_REG0_ADDR,
-		QDMA_S80_HARD_H2C_DBG_REG1_ADDR,
-		QDMA_S80_HARD_H2C_DBG_REG2_ADDR,
-		QDMA_S80_HARD_H2C_DBG_REG3_ADDR,
-		QDMA_S80_HARD_H2C_DBG_REG4_ADDR
-	};
-	int st_h2c_err_num_regs = sizeof(st_h2c_err_reg_list)/sizeof(uint32_t);
-
-	for (i = 0; i < st_h2c_err_num_regs; i++) {
-		qdma_s80_hard_dump_reg_info(dev_hndl,
-					st_h2c_err_reg_list[i],
-					1, NULL, 0);
-	}
-}
-
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_hw_st_c2h_err_process() - Function to dump MM H2C Error info
- *
- * @dev_hndl: device handle
- * @buf: Bufffer for the debug info to be dumped in
- * @buflen: Length of the buffer
- *
- * Return: void
- *****************************************************************************/
-static void qdma_s80_hard_hw_st_c2h_err_process(void *dev_hndl)
-{
-	int i = 0;
-	uint32_t st_c2h_err_reg_list[] = {
-		QDMA_S80_HARD_C2H_ERR_STAT_ADDR,
-		QDMA_S80_HARD_C2H_FATAL_ERR_STAT_ADDR,
-		QDMA_S80_HARD_C2H_FIRST_ERR_QID_ADDR,
-		QDMA_S80_HARD_C2H_STAT_S_AXIS_C2H_ACCEPTED_ADDR,
-		QDMA_S80_HARD_C2H_STAT_S_AXIS_WRB_ACCEPTED_ADDR,
-		QDMA_S80_HARD_C2H_STAT_DESC_RSP_PKT_ACCEPTED_ADDR,
-		QDMA_S80_HARD_C2H_STAT_AXIS_PKG_CMP_ADDR,
-		QDMA_S80_HARD_C2H_STAT_DBG_DMA_ENG_0_ADDR,
-		QDMA_S80_HARD_C2H_STAT_DBG_DMA_ENG_1_ADDR,
-		QDMA_S80_HARD_C2H_STAT_DBG_DMA_ENG_2_ADDR,
-		QDMA_S80_HARD_C2H_STAT_DBG_DMA_ENG_3_ADDR,
-		QDMA_S80_HARD_C2H_STAT_DESC_RSP_DROP_ACCEPTED_ADDR,
-		QDMA_S80_HARD_C2H_STAT_DESC_RSP_ERR_ACCEPTED_ADDR
-	};
-	int st_c2h_err_num_regs = sizeof(st_c2h_err_reg_list)/sizeof(uint32_t);
-
-	for (i = 0; i < st_c2h_err_num_regs; i++) {
-		qdma_s80_hard_dump_reg_info(dev_hndl,
-					st_c2h_err_reg_list[i],
-					1, NULL, 0);
-	}
-}
-
-
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_hw_get_error_name() - Function to get the error in str format
- *
- * @err_idx: error index
- *
- * Return: string - success and NULL on failure
- *****************************************************************************/
-const char *qdma_s80_hard_hw_get_error_name(uint32_t err_idx)
-{
-	if (err_idx >= QDMA_S80_HARD_ERRS_ALL) {
-		qdma_log_error("%s: err_idx=%d is invalid, returning NULL\n",
-			__func__,
-			(enum qdma_s80_hard_error_idx)err_idx);
-		return NULL;
-	}
-
-	return qdma_s80_hard_err_info[
-			(enum qdma_s80_hard_error_idx)err_idx].err_name;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_hw_error_process() - Function to find the error that got
- * triggered and call the handler qdma_hw_error_handler of that
- * particular error.
- *
- * @dev_hndl: device handle
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-int qdma_s80_hard_hw_error_process(void *dev_hndl)
-{
-	uint32_t glbl_err_stat = 0, err_stat = 0;
-	uint32_t i = 0, j = 0;
-	int32_t idx = 0;
-	struct qdma_dev_attributes dev_cap;
-	uint32_t hw_err_position[QDMA_S80_HARD_TOTAL_LEAF_ERROR_AGGREGATORS] = {
-		QDMA_S80_HARD_DSC_ERR_POISON,
-		QDMA_S80_HARD_TRQ_ERR_UNMAPPED,
-		QDMA_S80_HARD_ST_C2H_ERR_MTY_MISMATCH,
-		QDMA_S80_HARD_ST_FATAL_ERR_MTY_MISMATCH,
-		QDMA_S80_HARD_ST_H2C_ERR_ZERO_LEN_DESC_ERR,
-		QDMA_S80_HARD_SBE_ERR_MI_H2C0_DAT,
-		QDMA_S80_HARD_DBE_ERR_MI_H2C0_DAT
-	};
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-				__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-
-	qdma_s80_hard_get_device_attributes(dev_hndl, &dev_cap);
-
-	glbl_err_stat = qdma_reg_read(dev_hndl,
-			QDMA_S80_HARD_GLBL_ERR_STAT_ADDR);
-	if (!glbl_err_stat)
-		return QDMA_HW_ERR_NOT_DETECTED;
-
-	qdma_log_info("%s: Global Err Reg(0x%x) = 0x%x\n",
-				  __func__, QDMA_S80_HARD_GLBL_ERR_STAT_ADDR,
-				  glbl_err_stat);
-
-	for (i = 0; i < QDMA_S80_HARD_TOTAL_LEAF_ERROR_AGGREGATORS; i++) {
-		j = hw_err_position[i];
-
-		if ((!dev_cap.st_en) &&
-			(j == QDMA_S80_HARD_ST_C2H_ERR_MTY_MISMATCH ||
-			j == QDMA_S80_HARD_ST_FATAL_ERR_MTY_MISMATCH ||
-			j == QDMA_S80_HARD_ST_H2C_ERR_ZERO_LEN_DESC_ERR))
-			continue;
-
-		err_stat = qdma_reg_read(dev_hndl,
-				qdma_s80_hard_err_info[j].stat_reg_addr);
-		if (err_stat) {
-			qdma_log_info("addr = 0x%08x val = 0x%08x",
-				qdma_s80_hard_err_info[j].stat_reg_addr,
-				err_stat);
-
-			qdma_s80_hard_err_info[j].qdma_s80_hard_hw_err_process(
-				dev_hndl);
-			for (idx = j;
-				idx < all_qdma_s80_hard_hw_errs[i];
-				idx++) {
-				/* call the platform specific handler */
-				if (err_stat &
-				qdma_s80_hard_err_info[idx].leaf_err_mask)
-					qdma_log_error("%s detected %s\n",
-						__func__,
-						qdma_s80_hard_hw_get_error_name(
-							idx));
-			}
-			qdma_reg_write(dev_hndl,
-				qdma_s80_hard_err_info[j].stat_reg_addr,
-				err_stat);
-		}
-
-	}
-
-	/* Write 1 to the global status register to clear the bits */
-	qdma_reg_write(dev_hndl,
-			QDMA_S80_HARD_GLBL_ERR_STAT_ADDR, glbl_err_stat);
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_hw_error_enable() - Function to enable all or a specific error
- *
- * @dev_hndl: device handle
- * @err_idx: error index
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-int qdma_s80_hard_hw_error_enable(void *dev_hndl, uint32_t err_idx)
-{
-	uint32_t idx = 0, i = 0;
-	uint32_t reg_val = 0;
-	struct qdma_dev_attributes dev_cap;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-				__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if (err_idx > QDMA_S80_HARD_ERRS_ALL) {
-		qdma_log_error("%s: err_idx=%d is invalid, err:%d\n",
-				__func__, (enum qdma_s80_hard_error_idx)err_idx,
-				-QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	qdma_s80_hard_get_device_attributes(dev_hndl, &dev_cap);
-
-	if (err_idx == QDMA_S80_HARD_ERRS_ALL) {
-		for (i = 0;
-				i < QDMA_S80_HARD_TOTAL_LEAF_ERROR_AGGREGATORS;
-				i++) {
-
-			idx = all_qdma_s80_hard_hw_errs[i];
-
-			/* Don't access streaming registers in
-			 * MM only bitstreams
-			 */
-			if (!dev_cap.st_en) {
-				if (idx == QDMA_S80_HARD_ST_C2H_ERR_ALL ||
-					idx == QDMA_S80_HARD_ST_FATAL_ERR_ALL ||
-					idx == QDMA_S80_HARD_ST_H2C_ERR_ALL)
-					continue;
-			}
-
-			reg_val = qdma_s80_hard_err_info[idx].leaf_err_mask;
-			qdma_reg_write(dev_hndl,
-				qdma_s80_hard_err_info[idx].mask_reg_addr,
-					reg_val);
-
-			reg_val = qdma_reg_read(dev_hndl,
-					QDMA_S80_HARD_GLBL_ERR_MASK_ADDR);
-			reg_val |= FIELD_SET(
-				qdma_s80_hard_err_info[idx].global_err_mask, 1);
-			qdma_reg_write(dev_hndl,
-					QDMA_S80_HARD_GLBL_ERR_MASK_ADDR,
-					reg_val);
-		}
-
-	} else {
-		/* Don't access streaming registers in MM only bitstreams
-		 *  QDMA_C2H_ERR_MTY_MISMATCH to QDMA_H2C_ERR_ALL are all
-		 *  ST errors
-		 */
-		if (!dev_cap.st_en) {
-			if (err_idx >= QDMA_S80_HARD_ST_C2H_ERR_MTY_MISMATCH &&
-					err_idx <= QDMA_S80_HARD_ST_H2C_ERR_ALL)
-				return QDMA_SUCCESS;
-		}
-
-		reg_val = qdma_reg_read(dev_hndl,
-				qdma_s80_hard_err_info[err_idx].mask_reg_addr);
-		reg_val |=
-			FIELD_SET(qdma_s80_hard_err_info[err_idx].leaf_err_mask,
-				1);
-		qdma_reg_write(dev_hndl,
-				qdma_s80_hard_err_info[err_idx].mask_reg_addr,
-						reg_val);
-
-		reg_val = qdma_reg_read(dev_hndl,
-			QDMA_S80_HARD_GLBL_ERR_MASK_ADDR);
-		reg_val |=
-			FIELD_SET(
-				qdma_s80_hard_err_info[err_idx].global_err_mask,
-				1);
-		qdma_reg_write(dev_hndl,
-			QDMA_S80_HARD_GLBL_ERR_MASK_ADDR, reg_val);
-	}
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_get_device_attributes() - Function to get the qdma
- * device attributes
- *
- * @dev_hndl:	device handle
- * @dev_info:	pointer to hold the device info
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-int qdma_s80_hard_get_device_attributes(void *dev_hndl,
-		struct qdma_dev_attributes *dev_info)
-{
-	uint8_t count = 0;
-	uint32_t reg_val = 0;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-	if (!dev_info) {
-		qdma_log_error("%s: dev_info is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	/* number of PFs */
-	reg_val = qdma_reg_read(dev_hndl,
-		QDMA_S80_HARD_GLBL2_PF_BARLITE_INT_ADDR);
-	if (FIELD_GET(GLBL2_PF_BARLITE_INT_PF0_BAR_MAP_MASK, reg_val))
-		count++;
-	if (FIELD_GET(GLBL2_PF_BARLITE_INT_PF1_BAR_MAP_MASK, reg_val))
-		count++;
-	if (FIELD_GET(GLBL2_PF_BARLITE_INT_PF2_BAR_MAP_MASK, reg_val))
-		count++;
-	if (FIELD_GET(GLBL2_PF_BARLITE_INT_PF3_BAR_MAP_MASK, reg_val))
-		count++;
-	dev_info->num_pfs = count;
-
-	/* Number of Qs */
-	reg_val = qdma_reg_read(dev_hndl, QDMA_S80_HARD_GLBL2_CHANNEL_CAP_ADDR);
-	dev_info->num_qs = (FIELD_GET(GLBL2_CHANNEL_CAP_MULTIQ_MAX_MASK,
-			reg_val));
-
-	/* FLR present */
-	reg_val = qdma_reg_read(dev_hndl, QDMA_S80_HARD_GLBL2_MISC_CAP_ADDR);
-	dev_info->mailbox_en  = FIELD_GET(QDMA_GLBL2_MAILBOX_EN_MASK, reg_val);
-	dev_info->flr_present = FIELD_GET(QDMA_GLBL2_FLR_PRESENT_MASK, reg_val);
-	dev_info->mm_cmpt_en  = 0;
-
-	/* ST/MM enabled? */
-	reg_val = qdma_reg_read(dev_hndl,
-		QDMA_S80_HARD_GLBL2_CHANNEL_MDMA_ADDR);
-	dev_info->mm_en = (FIELD_GET(GLBL2_CHANNEL_MDMA_C2H_ENG_MASK, reg_val)
-		&& FIELD_GET(GLBL2_CHANNEL_MDMA_H2C_ENG_MASK, reg_val)) ? 1 : 0;
-	dev_info->st_en = (FIELD_GET(GLBL2_CHANNEL_MDMA_C2H_ST_MASK, reg_val)
-		&& FIELD_GET(GLBL2_CHANNEL_MDMA_H2C_ST_MASK,
-		reg_val)) ? 1 : 0;
-
-	/* num of mm channels for Versal Hard is 2 */
-	dev_info->mm_channel_max = 2;
-
-	dev_info->debug_mode = 0;
-	dev_info->desc_eng_mode = 0;
-	dev_info->qid2vec_ctx = 1;
-	dev_info->cmpt_ovf_chk_dis = 0;
-	dev_info->mailbox_intr = 0;
-	dev_info->sw_desc_64b = 0;
-	dev_info->cmpt_desc_64b = 0;
-	dev_info->dynamic_bar = 0;
-	dev_info->legacy_intr = 0;
-	dev_info->cmpt_trig_count_timer = 0;
-
-	return QDMA_SUCCESS;
-}
-
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_credit_context_read() - read credit context
- *
- * @dev_hndl:	device handle
- * @c2h     :	is c2h queue
- * @hw_qid  :	hardware qid of the queue
- * @ctxt    :	pointer to the context data
- *
- * Return   :	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_credit_context_read(void *dev_hndl, uint8_t c2h,
-			 uint16_t hw_qid,
-			 struct qdma_descq_credit_ctxt *ctxt)
-{
-	int rv = QDMA_SUCCESS;
-	uint32_t cr_ctxt[QDMA_S80_HARD_CR_CONTEXT_NUM_WORDS] = {0};
-	enum ind_ctxt_cmd_sel sel = c2h ? QDMA_CTXT_SEL_CR_C2H :
-			QDMA_CTXT_SEL_CR_H2C;
-
-	if (!dev_hndl || !ctxt) {
-		qdma_log_error("%s: dev_hndl=%p credit_ctxt=%p, err:%d\n",
-						__func__, dev_hndl, ctxt,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	rv = qdma_s80_hard_indirect_reg_read(dev_hndl, sel, hw_qid,
-			QDMA_S80_HARD_CR_CONTEXT_NUM_WORDS, cr_ctxt);
-	if (rv < 0)
-		return rv;
-
-	ctxt->credit = FIELD_GET(CRED_CTXT_DATA_W0_CREDT_MASK,
-			cr_ctxt[0]);
-
-	qdma_log_debug("%s: credit=%u\n", __func__, ctxt->credit);
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_credit_context_clear() - clear credit context
- *
- * @dev_hndl:	device handle
- * @c2h     :	is c2h queue
- * @hw_qid  :	hardware qid of the queue
- *
- * Return   :	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_credit_context_clear(void *dev_hndl, uint8_t c2h,
-			  uint16_t hw_qid)
-{
-	enum ind_ctxt_cmd_sel sel = c2h ? QDMA_CTXT_SEL_CR_C2H :
-			QDMA_CTXT_SEL_CR_H2C;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n", __func__,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	return qdma_s80_hard_indirect_reg_clear(dev_hndl, sel, hw_qid);
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_credit_context_invalidate() - invalidate credit context
- *
- * @dev_hndl:	device handle
- * @c2h     :	is c2h queue
- * @hw_qid  :	hardware qid of the queue
- *
- * Return   :	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_credit_context_invalidate(void *dev_hndl, uint8_t c2h,
-				   uint16_t hw_qid)
-{
-	enum ind_ctxt_cmd_sel sel = c2h ? QDMA_CTXT_SEL_CR_C2H :
-			QDMA_CTXT_SEL_CR_H2C;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n", __func__,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	return qdma_s80_hard_indirect_reg_invalidate(dev_hndl, sel, hw_qid);
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_credit_ctx_conf() - configure credit context
- *
- * @dev_hndl    :	device handle
- * @c2h         :	is c2h queue
- * @hw_qid      :	hardware qid of the queue
- * @ctxt        :	pointer to the context data
- * @access_type :	HW access type (qdma_hw_access_type enum) value
- *		QDMA_HW_ACCESS_WRITE Not supported
- *
- * Return       :	0   - success and < 0 - failure
- *****************************************************************************/
-int qdma_s80_hard_credit_ctx_conf(void *dev_hndl, uint8_t c2h, uint16_t hw_qid,
-			struct qdma_descq_credit_ctxt *ctxt,
-			enum qdma_hw_access_type access_type)
-{
-	int rv = QDMA_SUCCESS;
-
-	switch (access_type) {
-	case QDMA_HW_ACCESS_READ:
-		rv = qdma_s80_hard_credit_context_read(dev_hndl, c2h,
-				hw_qid, ctxt);
-		break;
-	case QDMA_HW_ACCESS_CLEAR:
-		rv = qdma_s80_hard_credit_context_clear(dev_hndl, c2h, hw_qid);
-		break;
-	case QDMA_HW_ACCESS_INVALIDATE:
-		rv = qdma_s80_hard_credit_context_invalidate(dev_hndl, c2h,
-				hw_qid);
-		break;
-	case QDMA_HW_ACCESS_WRITE:
-	default:
-		qdma_log_error("%s: Invalid access type=%d, err:%d\n",
-					   __func__, access_type,
-					   -QDMA_ERR_INV_PARAM);
-		rv = -QDMA_ERR_INV_PARAM;
-		break;
-	}
-
-	return rv;
-}
-
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_dump_config_regs() - Function to get qdma config register
- * dump in a buffer
- *
- * @dev_hndl:	device handle
- * @is_vf:	Whether PF or VF
- * @buf :	pointer to buffer to be filled
- * @buflen :	Length of the buffer
- *
- * Return:	Length up-till the buffer is filled -success and < 0 - failure
- *****************************************************************************/
-int qdma_s80_hard_dump_config_regs(void *dev_hndl, uint8_t is_vf,
-		char *buf, uint32_t buflen)
-{
-	uint32_t i = 0, j = 0;
-	struct xreg_info *reg_info;
-	uint32_t num_regs = qdma_s80_hard_config_num_regs_get();
-	uint32_t len = 0, val = 0;
-	int rv = QDMA_SUCCESS;
-	char name[DEBGFS_GEN_NAME_SZ] = "";
-	struct qdma_dev_attributes dev_cap;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					   __func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if (buflen < qdma_s80_hard_reg_dump_buf_len()) {
-		qdma_log_error("%s: Buffer too small, err:%d\n", __func__,
-					   -QDMA_ERR_NO_MEM);
-		return -QDMA_ERR_NO_MEM;
-	}
-
-	if (is_vf) {
-		qdma_log_error("%s: Wrong API used for VF, err:%d\n",
-				__func__,
-				-QDMA_ERR_HWACC_FEATURE_NOT_SUPPORTED);
-		return -QDMA_ERR_HWACC_FEATURE_NOT_SUPPORTED;
-	}
-
-	qdma_s80_hard_get_device_attributes(dev_hndl, &dev_cap);
-
-	reg_info = qdma_s80_hard_config_regs_get();
-
-	for (i = 0; i < num_regs; i++) {
-		if ((GET_CAPABILITY_MASK(dev_cap.mm_en, dev_cap.st_en,
-				dev_cap.mm_cmpt_en, dev_cap.mailbox_en)
-				& reg_info[i].mode) == 0)
-			continue;
-
-		for (j = 0; j < reg_info[i].repeat; j++) {
-			rv = QDMA_SNPRINTF_S(name, DEBGFS_GEN_NAME_SZ,
-					DEBGFS_GEN_NAME_SZ,
-					"%s_%d", reg_info[i].name, j);
-			if ((rv < 0) || (rv > DEBGFS_GEN_NAME_SZ)) {
-				qdma_log_error(
-					"%d:%s QDMA_SNPRINTF_S() failed, err:%d\n",
-					__LINE__, __func__,
-					rv);
-				return -QDMA_ERR_NO_MEM;
-			}
-
-			val = qdma_reg_read(dev_hndl,
-					(reg_info[i].addr + (j * 4)));
-			rv = dump_reg(buf + len, buflen - len,
-					(reg_info[i].addr + (j * 4)),
-					name, val);
-			if (rv < 0) {
-				qdma_log_error(
-				"%s Buff too small, err:%d\n",
-				__func__,
-				-QDMA_ERR_NO_MEM);
-				return -QDMA_ERR_NO_MEM;
-			}
-			len += rv;
-		}
-	}
-
-	return len;
-}
-
-/*****************************************************************************/
-/**
- * qdma_dump_s80_hard_queue_context() - Function to get qdma queue context dump
- * in a buffer
- *
- * @dev_hndl:   device handle
- * @hw_qid:     queue id
- * @buf :       pointer to buffer to be filled
- * @buflen :    Length of the buffer
- *
- * Return:	Length up-till the buffer is filled -success and < 0 - failure
- *****************************************************************************/
-int qdma_s80_hard_dump_queue_context(void *dev_hndl,
-		uint8_t st,
-		enum qdma_dev_q_type q_type,
-		struct qdma_descq_context *ctxt_data,
-		char *buf, uint32_t buflen)
-{
-	int rv = 0;
-	uint32_t req_buflen = 0;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-			__func__, -QDMA_ERR_INV_PARAM);
-
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if (!ctxt_data) {
-		qdma_log_error("%s: ctxt_data is NULL, err:%d\n",
-			__func__, -QDMA_ERR_INV_PARAM);
-
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if (!buf) {
-		qdma_log_error("%s: buf is NULL, err:%d\n",
-			__func__, -QDMA_ERR_INV_PARAM);
-
-		return -QDMA_ERR_INV_PARAM;
-	}
-	if (q_type >= QDMA_DEV_Q_TYPE_MAX) {
-		qdma_log_error("%s: invalid q_type, err:%d\n",
-			__func__, -QDMA_ERR_INV_PARAM);
-
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	rv = qdma_s80_hard_context_buf_len(st, q_type, &req_buflen);
-	if (rv != QDMA_SUCCESS)
-		return rv;
-
-	if (buflen < req_buflen) {
-		qdma_log_error("%s: Too small buffer(%d), reqd(%d), err:%d\n",
-			__func__, buflen, req_buflen, -QDMA_ERR_NO_MEM);
-		return -QDMA_ERR_NO_MEM;
-	}
-
-	rv = dump_s80_hard_context(ctxt_data, st, q_type,
-				buf, buflen);
-
-	return rv;
-}
-
-/*****************************************************************************/
-/**
- * qdma_dump_s80_hard_intr_context() - Function to get qdma interrupt
- * context dump in a buffer
- *
- * @dev_hndl:   device handle
- * @hw_qid:     queue id
- * @buf :       pointer to buffer to be filled
- * @buflen :    Length of the buffer
- *
- * Return:	Length up-till the buffer is filled -success and < 0 - failure
- *****************************************************************************/
-int qdma_s80_hard_dump_intr_context(void *dev_hndl,
-		struct qdma_indirect_intr_ctxt *intr_ctx,
-		int ring_index,
-		char *buf, uint32_t buflen)
-{
-	int rv = 0;
-	uint32_t req_buflen = 0;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-			__func__, -QDMA_ERR_INV_PARAM);
-
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if (!intr_ctx) {
-		qdma_log_error("%s: intr_ctx is NULL, err:%d\n",
-			__func__, -QDMA_ERR_INV_PARAM);
-
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if (!buf) {
-		qdma_log_error("%s: buf is NULL, err:%d\n",
-			__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-	req_buflen = qdma_s80_hard_intr_context_buf_len();
-	if (buflen < req_buflen) {
-		qdma_log_error("%s: Too small buffer(%d), reqd(%d), err:%d\n",
-			__func__, buflen, req_buflen, -QDMA_ERR_NO_MEM);
-		return -QDMA_ERR_NO_MEM;
-	}
-
-	rv = dump_s80_hard_intr_context(intr_ctx, ring_index, buf, buflen);
-
-	return rv;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_read_dump_queue_context() - Function to read and dump the queue
- * context in a buffer
- *
- * @dev_hndl:   device handle
- * @hw_qid:     queue id
- * @st:			Queue Mode(ST or MM)
- * @q_type:		Queue type(H2C/C2H/CMPT)
- * @buf :       pointer to buffer to be filled
- * @buflen :    Length of the buffer
- *
- * Return:	Length up-till the buffer is filled -success and < 0 - failure
- *****************************************************************************/
-int qdma_s80_hard_read_dump_queue_context(void *dev_hndl,
-		uint16_t qid_hw,
-		uint8_t st,
-		enum qdma_dev_q_type q_type,
-		char *buf, uint32_t buflen)
-{
-	int rv = QDMA_SUCCESS;
-	uint32_t req_buflen = 0;
-	struct qdma_descq_context context;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-			__func__, -QDMA_ERR_INV_PARAM);
-
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if (!buf) {
-		qdma_log_error("%s: buf is NULL, err:%d\n",
-			__func__, -QDMA_ERR_INV_PARAM);
-
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if (q_type >= QDMA_DEV_Q_TYPE_CMPT) {
-		qdma_log_error("%s: Not supported for q_type, err = %d\n",
-			__func__, -QDMA_ERR_INV_PARAM);
-
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	rv = qdma_s80_hard_context_buf_len(st, q_type, &req_buflen);
-
-	if (rv != QDMA_SUCCESS)
-		return rv;
-
-	if (buflen < req_buflen) {
-		qdma_log_error("%s: Too small buffer(%d), reqd(%d), err:%d\n",
-			__func__, buflen, req_buflen, -QDMA_ERR_NO_MEM);
-		return -QDMA_ERR_NO_MEM;
-	}
-
-	qdma_memset(&context, 0, sizeof(struct qdma_descq_context));
-
-	if (q_type != QDMA_DEV_Q_TYPE_CMPT) {
-		rv = qdma_s80_hard_sw_ctx_conf(dev_hndl, (uint8_t)q_type,
-				qid_hw, &(context.sw_ctxt),
-				QDMA_HW_ACCESS_READ);
-		if (rv < 0) {
-			qdma_log_error(
-			"%s: Failed to read sw context, err = %d",
-					__func__, rv);
-			return rv;
-		}
-
-		rv = qdma_s80_hard_hw_ctx_conf(dev_hndl, (uint8_t)q_type,
-				qid_hw, &(context.hw_ctxt),
-				QDMA_HW_ACCESS_READ);
-		if (rv < 0) {
-			qdma_log_error(
-			"%s: Failed to read hw context, err = %d",
-					__func__, rv);
-			return rv;
-		}
-
-		rv = qdma_s80_hard_qid2vec_conf(dev_hndl, (uint8_t)q_type,
-				qid_hw, &(context.qid2vec),
-				QDMA_HW_ACCESS_READ);
-		if (rv < 0) {
-			qdma_log_error(
-			"%s: Failed to read qid2vec context, err = %d",
-					__func__, rv);
-			return rv;
-		}
-
-		rv = qdma_s80_hard_credit_ctx_conf(dev_hndl, (uint8_t)q_type,
-				qid_hw, &(context.cr_ctxt),
-				QDMA_HW_ACCESS_READ);
-		if (rv < 0) {
-			qdma_log_error(
-			"%s: Failed to read credit context, err = %d",
-					__func__, rv);
-			return rv;
-		}
-
-		if (st && (q_type == QDMA_DEV_Q_TYPE_C2H)) {
-			rv = qdma_s80_hard_pfetch_ctx_conf(dev_hndl,
-					qid_hw,
-					&(context.pfetch_ctxt),
-					QDMA_HW_ACCESS_READ);
-			if (rv < 0) {
-				qdma_log_error(
-			"%s: Failed to read pftech context, err = %d",
-						__func__, rv);
-				return rv;
-			}
-		}
-	}
-
-	if ((st && (q_type == QDMA_DEV_Q_TYPE_C2H)) ||
-			(!st && (q_type == QDMA_DEV_Q_TYPE_CMPT))) {
-		rv = qdma_s80_hard_cmpt_ctx_conf(dev_hndl, qid_hw,
-						&(context.cmpt_ctxt),
-						 QDMA_HW_ACCESS_READ);
-		if (rv < 0) {
-			qdma_log_error(
-			"%s: Failed to read cmpt context, err = %d",
-					__func__, rv);
-			return rv;
-		}
-	}
-
-
-
-	rv = dump_s80_hard_context(&context, st, q_type,
-				buf, buflen);
-
-	return rv;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_init_ctxt_memory() - Initialize the context for all queues
- *
- * @dev_hndl    :	device handle
- *
- * Return       :	0   - success and < 0 - failure
- *****************************************************************************/
-
-int qdma_s80_hard_init_ctxt_memory(void *dev_hndl)
-{
-#ifdef ENABLE_INIT_CTXT_MEMORY
-	uint32_t data[QDMA_REG_IND_CTXT_REG_COUNT];
-	uint16_t i = 0;
-	struct qdma_dev_attributes dev_info;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	qdma_memset(data, 0, sizeof(uint32_t) * QDMA_REG_IND_CTXT_REG_COUNT);
-	qdma_s80_hard_get_device_attributes(dev_hndl, &dev_info);
-	qdma_log_info("%s: clearing the context for all qs",
-			__func__);
-	for (; i < dev_info.num_qs; i++) {
-		int sel = QDMA_CTXT_SEL_SW_C2H;
-		int rv;
-
-		for (; sel <= QDMA_CTXT_SEL_PFTCH; sel++) {
-			/** if the st mode(h2c/c2h) not enabled
-			 *  in the design, then skip the PFTCH
-			 *  and CMPT context setup
-			 */
-			if ((dev_info.st_en == 0) &&
-			    (sel == QDMA_CTXT_SEL_PFTCH ||
-				sel == QDMA_CTXT_SEL_CMPT)) {
-				qdma_log_debug("%s: ST context is skipped:",
-					__func__);
-				qdma_log_debug(" sel = %d", sel);
-				continue;
-			}
-
-			rv = qdma_s80_hard_indirect_reg_clear(dev_hndl,
-					(enum ind_ctxt_cmd_sel)sel, i);
-			if (rv < 0)
-				return rv;
-		}
-	}
-
-	/* fmap */
-	for (i = 0; i < dev_info.num_pfs; i++)
-		qdma_s80_hard_fmap_clear(dev_hndl, i);
-#else
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-#endif
-	return 0;
-}
-
-static int get_reg_entry(uint32_t reg_addr, int *reg_entry)
-{
-	uint32_t i = 0;
-	struct xreg_info *reg_info;
-	uint32_t num_regs = qdma_s80_hard_config_num_regs_get();
-
-	reg_info = qdma_s80_hard_config_regs_get();
-
-	for (i = 0; (i < num_regs - 1); i++) {
-		if (reg_info[i].addr == reg_addr) {
-			*reg_entry = i;
-			break;
-		}
-	}
-
-	if (i >= num_regs - 1) {
-		qdma_log_error("%s: 0x%08x is missing register list, err:%d\n",
-					__func__,
-					reg_addr,
-					-QDMA_ERR_INV_PARAM);
-		*reg_entry = -1;
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	return 0;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_dump_config_reg_list() - Dump the registers
- *
- * @dev_hndl:		device handle
- * @total_regs :	Max registers to read
- * @reg_list :		array of reg addr and reg values
- * @buf :		pointer to buffer to be filled
- * @buflen :		Length of the buffer
- *
- * Return: returns the platform specific error code
- *****************************************************************************/
-int qdma_s80_hard_dump_config_reg_list(void *dev_hndl, uint32_t total_regs,
-		struct qdma_reg_data *reg_list, char *buf, uint32_t buflen)
-{
-	uint32_t j = 0, len = 0;
-	uint32_t reg_count = 0;
-	int reg_data_entry;
-	int rv = 0;
-	char name[DEBGFS_GEN_NAME_SZ] = "";
-	struct xreg_info *reg_info = qdma_s80_hard_config_regs_get();
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-				__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if (!buf) {
-		qdma_log_error("%s: buf is NULL, err:%d\n",
-				__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	for (reg_count = 0;
-			(reg_count < total_regs);) {
-
-		rv = get_reg_entry(reg_list[reg_count].reg_addr,
-					&reg_data_entry);
-		if (rv < 0) {
-			qdma_log_error("%s: register missing in list, err:%d\n",
-						   __func__,
-						   -QDMA_ERR_INV_PARAM);
-			return rv;
-		}
-
-		for (j = 0; j < reg_info[reg_data_entry].repeat; j++) {
-			rv = QDMA_SNPRINTF_S(name, DEBGFS_GEN_NAME_SZ,
-					DEBGFS_GEN_NAME_SZ,
-					"%s_%d",
-					reg_info[reg_data_entry].name, j);
-			if ((rv < 0) || (rv > DEBGFS_GEN_NAME_SZ)) {
-				qdma_log_error(
-					"%d:%s snprintf failed, err:%d\n",
-					__LINE__, __func__,
-					rv);
-				return -QDMA_ERR_NO_MEM;
-			}
-			rv = dump_reg(buf + len, buflen - len,
-				(reg_info[reg_data_entry].addr + (j * 4)),
-					name,
-					reg_list[reg_count + j].reg_val);
-			if (rv < 0) {
-				qdma_log_error(
-				"%s Buff too small, err:%d\n",
-				__func__,
-				-QDMA_ERR_NO_MEM);
-				return -QDMA_ERR_NO_MEM;
-			}
-			len += rv;
-		}
-		reg_count += j;
-	}
-
-	return len;
-
-}
-
-
-/*****************************************************************************/
-/**
- * qdma_read_reg_list() - read the register values
- *
- * @dev_hndl:		device handle
- * @is_vf:		Whether PF or VF
- * @total_regs :	Max registers to read
- * @reg_list :		array of reg addr and reg values
- *
- * Return: returns the platform specific error code
- *****************************************************************************/
-int qdma_s80_hard_read_reg_list(void *dev_hndl, uint8_t is_vf,
-		uint16_t reg_rd_slot,
-		uint16_t *total_regs,
-		struct qdma_reg_data *reg_list)
-{
-	uint16_t reg_count = 0, i = 0, j = 0;
-	uint32_t num_regs = qdma_s80_hard_config_num_regs_get();
-	struct xreg_info *reg_info = qdma_s80_hard_config_regs_get();
-	struct qdma_dev_attributes dev_cap;
-	uint32_t reg_start_addr = 0;
-	int reg_index = 0;
-	int rv = 0;
-
-	if (!is_vf) {
-		qdma_log_error("%s: not supported for PF, err:%d\n",
-				__func__,
-				-QDMA_ERR_HWACC_FEATURE_NOT_SUPPORTED);
-		return -QDMA_ERR_HWACC_FEATURE_NOT_SUPPORTED;
-	}
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-					   __func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if (!reg_list) {
-		qdma_log_error("%s: reg_list is NULL, err:%d\n",
-					   __func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	qdma_s80_hard_get_device_attributes(dev_hndl, &dev_cap);
-
-	switch (reg_rd_slot) {
-	case QDMA_REG_READ_GROUP_1:
-			reg_start_addr = QDMA_S80_REG_GROUP_1_START_ADDR;
-			break;
-	case QDMA_REG_READ_GROUP_2:
-			reg_start_addr = QDMA_S80_REG_GROUP_2_START_ADDR;
-			break;
-	case QDMA_REG_READ_GROUP_3:
-			reg_start_addr = QDMA_S80_REG_GROUP_3_START_ADDR;
-			break;
-	case QDMA_REG_READ_GROUP_4:
-			reg_start_addr = QDMA_S80_REG_GROUP_4_START_ADDR;
-			break;
-	default:
-		qdma_log_error("%s: Invalid slot received\n",
-			   __func__);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	rv = get_reg_entry(reg_start_addr, &reg_index);
-	if (rv < 0) {
-		qdma_log_error("%s: register missing in list, err:%d\n",
-					   __func__,
-					   -QDMA_ERR_INV_PARAM);
-		return rv;
-	}
-
-	for (i = 0, reg_count = 0;
-			((i < num_regs - 1 - reg_index) &&
-			(reg_count < QDMA_MAX_REGISTER_DUMP)); i++) {
-
-		if (((GET_CAPABILITY_MASK(dev_cap.mm_en, dev_cap.st_en,
-				dev_cap.mm_cmpt_en, dev_cap.mailbox_en)
-				& reg_info[i].mode) == 0) ||
-			(reg_info[i].read_type == QDMA_REG_READ_PF_ONLY))
-			continue;
-
-		for (j = 0; j < reg_info[i].repeat &&
-				(reg_count < QDMA_MAX_REGISTER_DUMP);
-				j++) {
-			reg_list[reg_count].reg_addr =
-					(reg_info[i].addr + (j * 4));
-			reg_list[reg_count].reg_val =
-				qdma_reg_read(dev_hndl,
-					reg_list[reg_count].reg_addr);
-			reg_count++;
-		}
-	}
-
-	*total_regs = reg_count;
-	return rv;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_write_global_ring_sizes() - set the global ring size array
- *
- * @dev_hndl:   device handle
- * @index: Index from where the values needs to written
- * @count: number of entries to be written
- * @glbl_rng_sz: pointer to the array having the values to write
- *
- * (index + count) shall not be more than 16
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_write_global_ring_sizes(void *dev_hndl, uint8_t index,
-				uint8_t count, const uint32_t *glbl_rng_sz)
-{
-	if (!dev_hndl || !glbl_rng_sz || !count) {
-		qdma_log_error("%s: dev_hndl=%p glbl_rng_sz=%p, err:%d\n",
-					   __func__, dev_hndl, glbl_rng_sz,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if ((index + count) > QDMA_NUM_RING_SIZES) {
-		qdma_log_error("%s: index=%u count=%u > %d, err:%d\n",
-					   __func__, index, count,
-					   QDMA_NUM_RING_SIZES,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	qdma_write_csr_values(dev_hndl,
-			QDMA_S80_HARD_GLBL_RNG_SZ_1_ADDR, index, count,
-			glbl_rng_sz);
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_read_global_ring_sizes() - function to get the
- *	global rng_sz array
- *
- * @dev_hndl:   device handle
- * @index:	 Index from where the values needs to read
- * @count:	 number of entries to be read
- * @glbl_rng_sz: pointer to array to hold the values read
- *
- * (index + count) shall not be more than 16
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_read_global_ring_sizes(void *dev_hndl, uint8_t index,
-				uint8_t count, uint32_t *glbl_rng_sz)
-{
-	if (!dev_hndl || !glbl_rng_sz || !count) {
-		qdma_log_error("%s: dev_hndl=%p glbl_rng_sz=%p, err:%d\n",
-					   __func__, dev_hndl, glbl_rng_sz,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if ((index + count) > QDMA_NUM_RING_SIZES) {
-		qdma_log_error("%s: index=%u count=%u > %d, err:%d\n",
-					   __func__, index, count,
-					   QDMA_NUM_C2H_BUFFER_SIZES,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	qdma_read_csr_values(dev_hndl,
-			QDMA_S80_HARD_GLBL_RNG_SZ_1_ADDR, index, count,
-			glbl_rng_sz);
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_write_global_timer_count() - function to set the timer values
- *
- * @dev_hndl:   device handle
- * @glbl_tmr_cnt: pointer to the array having the values to write
- * @index:	 Index from where the values needs to written
- * @count:	 number of entries to be written
- *
- * (index + count) shall not be more than 16
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_write_global_timer_count(void *dev_hndl, uint8_t index,
-				uint8_t count, const uint32_t *glbl_tmr_cnt)
-{
-	struct qdma_dev_attributes dev_cap;
-
-	if (!dev_hndl || !glbl_tmr_cnt || !count) {
-		qdma_log_error("%s: dev_hndl=%p glbl_tmr_cnt=%p, err:%d\n",
-					   __func__, dev_hndl, glbl_tmr_cnt,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if ((index + count) > QDMA_NUM_C2H_TIMERS) {
-		qdma_log_error("%s: index=%u count=%u > %d, err:%d\n",
-					   __func__, index, count,
-					   QDMA_NUM_C2H_TIMERS,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	qdma_s80_hard_get_device_attributes(dev_hndl, &dev_cap);
-
-	if (dev_cap.st_en || dev_cap.mm_cmpt_en)
-		qdma_write_csr_values(dev_hndl,
-				QDMA_S80_HARD_C2H_TIMER_CNT_1_ADDR,
-				index, count, glbl_tmr_cnt);
-	else {
-		qdma_log_error("%s: ST or MM cmpt not supported, err:%d\n",
-				__func__,
-				-QDMA_ERR_HWACC_FEATURE_NOT_SUPPORTED);
-		return -QDMA_ERR_HWACC_FEATURE_NOT_SUPPORTED;
-	}
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_read_global_timer_count() - function to get the timer values
- *
- * @dev_hndl:   device handle
- * @index:	 Index from where the values needs to read
- * @count:	 number of entries to be read
- * @glbl_tmr_cnt: pointer to array to hold the values read
- *
- * (index + count) shall not be more than 16
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_read_global_timer_count(void *dev_hndl, uint8_t index,
-				uint8_t count, uint32_t *glbl_tmr_cnt)
-{
-	struct qdma_dev_attributes dev_cap;
-
-	if (!dev_hndl || !glbl_tmr_cnt || !count) {
-		qdma_log_error("%s: dev_hndl=%p glbl_tmr_cnt=%p, err:%d\n",
-					   __func__, dev_hndl, glbl_tmr_cnt,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if ((index + count) > QDMA_NUM_C2H_TIMERS) {
-		qdma_log_error("%s: index=%u count=%u > %d, err:%d\n",
-					   __func__, index, count,
-					   QDMA_NUM_C2H_TIMERS,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	qdma_s80_hard_get_device_attributes(dev_hndl, &dev_cap);
-
-	if (dev_cap.st_en || dev_cap.mm_cmpt_en)
-		qdma_read_csr_values(dev_hndl,
-				QDMA_S80_HARD_C2H_TIMER_CNT_1_ADDR, index,
-				count, glbl_tmr_cnt);
-	else {
-		qdma_log_error("%s: ST or MM cmpt not supported, err:%d\n",
-				__func__,
-				-QDMA_ERR_HWACC_FEATURE_NOT_SUPPORTED);
-		return -QDMA_ERR_HWACC_FEATURE_NOT_SUPPORTED;
-	}
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_write_global_counter_threshold() - function to set the counter
- *						threshold values
- *
- * @dev_hndl:   device handle
- * @index:	 Index from where the values needs to written
- * @count:	 number of entries to be written
- * @glbl_cnt_th: pointer to the array having the values to write
- *
- * (index + count) shall not be more than 16
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_write_global_counter_threshold(void *dev_hndl,
-		uint8_t index,
-		uint8_t count, const uint32_t *glbl_cnt_th)
-{
-	struct qdma_dev_attributes dev_cap;
-
-	if (!dev_hndl || !glbl_cnt_th || !count) {
-		qdma_log_error("%s: dev_hndl=%p glbl_cnt_th=%p, err:%d\n",
-					   __func__, dev_hndl, glbl_cnt_th,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if ((index + count) > QDMA_NUM_C2H_COUNTERS) {
-		qdma_log_error("%s: index=%u count=%u > %d, err:%d\n",
-					   __func__, index, count,
-					   QDMA_NUM_C2H_BUFFER_SIZES,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	qdma_s80_hard_get_device_attributes(dev_hndl, &dev_cap);
-
-	if (dev_cap.st_en || dev_cap.mm_cmpt_en)
-		qdma_write_csr_values(dev_hndl,
-				QDMA_S80_HARD_C2H_CNT_TH_1_ADDR, index,
-				count, glbl_cnt_th);
-	else {
-		qdma_log_error("%s: ST or MM cmpt not supported, err:%d\n",
-				__func__,
-				-QDMA_ERR_HWACC_FEATURE_NOT_SUPPORTED);
-		return -QDMA_ERR_HWACC_FEATURE_NOT_SUPPORTED;
-	}
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_read_global_counter_threshold() - get the counter
- *	threshold values
- *
- * @dev_hndl:   device handle
- * @index:	 Index from where the values needs to read
- * @count:	 number of entries to be read
- * @glbl_cnt_th: pointer to array to hold the values read
- *
- * (index + count) shall not be more than 16
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_read_global_counter_threshold(void *dev_hndl,
-		uint8_t index,
-		uint8_t count, uint32_t *glbl_cnt_th)
-{
-	struct qdma_dev_attributes dev_cap;
-
-	if (!dev_hndl || !glbl_cnt_th || !count) {
-		qdma_log_error("%s: dev_hndl=%p glbl_cnt_th=%p, err:%d\n",
-					   __func__, dev_hndl, glbl_cnt_th,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if ((index + count) > QDMA_NUM_C2H_COUNTERS) {
-		qdma_log_error("%s: index=%u count=%u > %d, err:%d\n",
-					   __func__, index, count,
-					   QDMA_NUM_C2H_COUNTERS,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	qdma_s80_hard_get_device_attributes(dev_hndl, &dev_cap);
-
-	if (dev_cap.st_en || dev_cap.mm_cmpt_en)
-		qdma_read_csr_values(dev_hndl,
-				QDMA_S80_HARD_C2H_CNT_TH_1_ADDR, index,
-				count, glbl_cnt_th);
-	else {
-		qdma_log_error("%s: ST or MM cmpt not supported, err:%d\n",
-			   __func__, -QDMA_ERR_HWACC_FEATURE_NOT_SUPPORTED);
-		return -QDMA_ERR_HWACC_FEATURE_NOT_SUPPORTED;
-	}
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_write_global_buffer_sizes() - function to set the buffer sizes
- *
- * @dev_hndl:   device handle
- * @index:	 Index from where the values needs to written
- * @count:	 number of entries to be written
- * @glbl_buf_sz: pointer to the array having the values to write
- *
- * (index + count) shall not be more than 16
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_write_global_buffer_sizes(void *dev_hndl,
-		uint8_t index,
-		uint8_t count, const uint32_t *glbl_buf_sz)
-{
-	struct qdma_dev_attributes dev_cap;
-
-	if (!dev_hndl || !glbl_buf_sz || !count) {
-		qdma_log_error("%s: dev_hndl=%p glbl_buf_sz=%p, err:%d\n",
-					   __func__, dev_hndl, glbl_buf_sz,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if ((index + count) > QDMA_NUM_C2H_BUFFER_SIZES) {
-		qdma_log_error("%s: index=%u count=%u > %d, err:%d\n",
-					   __func__, index, count,
-					   QDMA_NUM_C2H_BUFFER_SIZES,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	qdma_s80_hard_get_device_attributes(dev_hndl, &dev_cap);
-
-	if (dev_cap.st_en)
-		qdma_write_csr_values(dev_hndl,
-				QDMA_S80_HARD_C2H_BUF_SZ_0_ADDR, index,
-				count, glbl_buf_sz);
-	else {
-		qdma_log_error("%s: ST not supported, err:%d\n",
-				__func__,
-				-QDMA_ERR_HWACC_FEATURE_NOT_SUPPORTED);
-		return -QDMA_ERR_HWACC_FEATURE_NOT_SUPPORTED;
-	}
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_read_global_buffer_sizes() - function to get the buffer sizes
- *
- * @dev_hndl:   device handle
- * @index:	 Index from where the values needs to read
- * @count:	 number of entries to be read
- * @glbl_buf_sz: pointer to array to hold the values read
- *
- * (index + count) shall not be more than 16
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_read_global_buffer_sizes(void *dev_hndl, uint8_t index,
-				uint8_t count, uint32_t *glbl_buf_sz)
-{
-	struct qdma_dev_attributes dev_cap;
-
-	if (!dev_hndl || !glbl_buf_sz || !count) {
-		qdma_log_error("%s: dev_hndl=%p glbl_buf_sz=%p, err:%d\n",
-					   __func__, dev_hndl, glbl_buf_sz,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if ((index + count) > QDMA_NUM_C2H_BUFFER_SIZES) {
-		qdma_log_error("%s: index=%u count=%u > %d, err:%d\n",
-					   __func__, index, count,
-					   QDMA_NUM_C2H_BUFFER_SIZES,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	qdma_s80_hard_get_device_attributes(dev_hndl, &dev_cap);
-
-	if (dev_cap.st_en)
-		qdma_read_csr_values(dev_hndl,
-				QDMA_S80_HARD_C2H_BUF_SZ_0_ADDR, index,
-				count, glbl_buf_sz);
-	else {
-		qdma_log_error("%s: ST is not supported, err:%d\n",
-					__func__,
-					-QDMA_ERR_HWACC_FEATURE_NOT_SUPPORTED);
-		return -QDMA_ERR_HWACC_FEATURE_NOT_SUPPORTED;
-	}
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_global_csr_conf() - function to configure global csr
- *
- * @dev_hndl:	device handle
- * @index:	Index from where the values needs to read
- * @count:	number of entries to be read
- * @csr_val:	uint32_t pointer to csr value
- * @csr_type:	Type of the CSR (qdma_global_csr_type enum) to configure
- * @access_type HW access type (qdma_hw_access_type enum) value
- *		QDMA_HW_ACCESS_CLEAR - Not supported
- *		QDMA_HW_ACCESS_INVALIDATE - Not supported
- *
- * (index + count) shall not be more than 16
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-int qdma_s80_hard_global_csr_conf(void *dev_hndl, uint8_t index, uint8_t count,
-				uint32_t *csr_val,
-				enum qdma_global_csr_type csr_type,
-				enum qdma_hw_access_type access_type)
-{
-	int rv = QDMA_SUCCESS;
-
-	switch (csr_type) {
-	case QDMA_CSR_RING_SZ:
-		switch (access_type) {
-		case QDMA_HW_ACCESS_READ:
-			rv = qdma_s80_hard_read_global_ring_sizes(
-						dev_hndl,
-						index,
-						count,
-						csr_val);
-			break;
-		case QDMA_HW_ACCESS_WRITE:
-			rv = qdma_s80_hard_write_global_ring_sizes(
-						dev_hndl,
-						index,
-						count,
-						csr_val);
-			break;
-		default:
-			qdma_log_error("%s: access_type(%d) invalid, err:%d\n",
-							__func__,
-							access_type,
-						   -QDMA_ERR_INV_PARAM);
-			rv = -QDMA_ERR_INV_PARAM;
-			break;
-		}
-		break;
-	case QDMA_CSR_TIMER_CNT:
-		switch (access_type) {
-		case QDMA_HW_ACCESS_READ:
-			rv = qdma_s80_hard_read_global_timer_count(
-						dev_hndl,
-						index,
-						count,
-						csr_val);
-			break;
-		case QDMA_HW_ACCESS_WRITE:
-			rv = qdma_s80_hard_write_global_timer_count(
-						dev_hndl,
-						index,
-						count,
-						csr_val);
-			break;
-		default:
-			qdma_log_error("%s: access_type(%d) invalid, err:%d\n",
-							__func__,
-							access_type,
-						   -QDMA_ERR_INV_PARAM);
-			rv = -QDMA_ERR_INV_PARAM;
-			break;
-		}
-		break;
-	case QDMA_CSR_CNT_TH:
-		switch (access_type) {
-		case QDMA_HW_ACCESS_READ:
-			rv =
-			qdma_s80_hard_read_global_counter_threshold(
-						dev_hndl,
-						index,
-						count,
-						csr_val);
-			break;
-		case QDMA_HW_ACCESS_WRITE:
-			rv =
-			qdma_s80_hard_write_global_counter_threshold(
-						dev_hndl,
-						index,
-						count,
-						csr_val);
-			break;
-		default:
-			qdma_log_error("%s: access_type(%d) invalid, err:%d\n",
-							__func__,
-							access_type,
-						   -QDMA_ERR_INV_PARAM);
-			rv = -QDMA_ERR_INV_PARAM;
-			break;
-		}
-		break;
-	case QDMA_CSR_BUF_SZ:
-		switch (access_type) {
-		case QDMA_HW_ACCESS_READ:
-			rv =
-			qdma_s80_hard_read_global_buffer_sizes(dev_hndl,
-						index,
-						count,
-						csr_val);
-			break;
-		case QDMA_HW_ACCESS_WRITE:
-			rv =
-			qdma_s80_hard_write_global_buffer_sizes(dev_hndl,
-						index,
-						count,
-						csr_val);
-			break;
-		default:
-			qdma_log_error("%s: access_type(%d) invalid, err:%d\n",
-							__func__,
-							access_type,
-						   -QDMA_ERR_INV_PARAM);
-			rv = -QDMA_ERR_INV_PARAM;
-			break;
-		}
-		break;
-	default:
-		qdma_log_error("%s: csr_type(%d) invalid, err:%d\n",
-						__func__,
-						csr_type,
-					   -QDMA_ERR_INV_PARAM);
-		rv = -QDMA_ERR_INV_PARAM;
-		break;
-	}
-
-	return rv;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_global_writeback_interval_write() -  function to set the
- * writeback interval
- *
- * @dev_hndl	device handle
- * @wb_int:	Writeback Interval
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_global_writeback_interval_write(void *dev_hndl,
-		enum qdma_wrb_interval wb_int)
-{
-	uint32_t reg_val;
-	struct qdma_dev_attributes dev_cap;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n", __func__,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if (wb_int >=  QDMA_NUM_WRB_INTERVALS) {
-		qdma_log_error("%s: wb_int=%d is invalid, err:%d\n",
-					   __func__, wb_int,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	qdma_s80_hard_get_device_attributes(dev_hndl, &dev_cap);
-
-	if (dev_cap.st_en || dev_cap.mm_cmpt_en) {
-		reg_val = qdma_reg_read(dev_hndl,
-				QDMA_S80_HARD_GLBL_DSC_CFG_ADDR);
-		reg_val |= FIELD_SET(GLBL_DSC_CFG_WB_ACC_INT_MASK, wb_int);
-
-		qdma_reg_write(dev_hndl,
-				QDMA_S80_HARD_GLBL_DSC_CFG_ADDR, reg_val);
-	} else {
-		qdma_log_error("%s: ST or MM cmpt not supported, err:%d\n",
-			   __func__, -QDMA_ERR_HWACC_FEATURE_NOT_SUPPORTED);
-		return -QDMA_ERR_HWACC_FEATURE_NOT_SUPPORTED;
-	}
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_global_writeback_interval_read() -  function to get the
- * writeback interval
- *
- * @dev_hndl:	device handle
- * @wb_int:	pointer to the data to hold Writeback Interval
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-static int qdma_s80_hard_global_writeback_interval_read(void *dev_hndl,
-		enum qdma_wrb_interval *wb_int)
-{
-	uint32_t reg_val;
-	struct qdma_dev_attributes dev_cap;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n", __func__,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	if (!wb_int) {
-		qdma_log_error("%s: wb_int is NULL, err:%d\n", __func__,
-					   -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	qdma_s80_hard_get_device_attributes(dev_hndl, &dev_cap);
-
-	if (dev_cap.st_en || dev_cap.mm_cmpt_en) {
-		reg_val = qdma_reg_read(dev_hndl,
-				QDMA_S80_HARD_GLBL_DSC_CFG_ADDR);
-		*wb_int = (enum qdma_wrb_interval)FIELD_GET(
-				GLBL_DSC_CFG_WB_ACC_INT_MASK, reg_val);
-	} else {
-		qdma_log_error("%s: ST or MM cmpt not supported, err:%d\n",
-			   __func__, -QDMA_ERR_HWACC_FEATURE_NOT_SUPPORTED);
-		return -QDMA_ERR_HWACC_FEATURE_NOT_SUPPORTED;
-	}
-
-	return QDMA_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_global_writeback_interval_conf() - function to configure
- *					the writeback interval
- *
- * @dev_hndl:   device handle
- * @wb_int:	pointer to the data to hold Writeback Interval
- * @access_type HW access type (qdma_hw_access_type enum) value
- *		QDMA_HW_ACCESS_CLEAR - Not supported
- *		QDMA_HW_ACCESS_INVALIDATE - Not supported
- *
- * Return:	0   - success and < 0 - failure
- *****************************************************************************/
-int qdma_s80_hard_global_writeback_interval_conf(void *dev_hndl,
-				enum qdma_wrb_interval *wb_int,
-				enum qdma_hw_access_type access_type)
-{
-	int rv = QDMA_SUCCESS;
-
-	switch (access_type) {
-	case QDMA_HW_ACCESS_READ:
-		rv =
-		qdma_s80_hard_global_writeback_interval_read(dev_hndl, wb_int);
-		break;
-	case QDMA_HW_ACCESS_WRITE:
-		rv =
-		qdma_s80_hard_global_writeback_interval_write(dev_hndl,
-								*wb_int);
-		break;
-	case QDMA_HW_ACCESS_CLEAR:
-	case QDMA_HW_ACCESS_INVALIDATE:
-	default:
-		qdma_log_error("%s: access_type(%d) invalid, err:%d\n",
-						__func__,
-						access_type,
-					   -QDMA_ERR_INV_PARAM);
-		rv = -QDMA_ERR_INV_PARAM;
-		break;
-	}
-
-	return rv;
-}
-
-
-/*****************************************************************************/
-/**
- * qdma_s80_hard_mm_channel_conf() - Function to enable/disable the MM channel
- *
- * @dev_hndl:	device handle
- * @channel:	MM channel number
- * @is_c2h:	Queue direction. Set 1 for C2H and 0 for H2C
- * @enable:	Enable or disable MM channel
- *
- * Presently, we have only 1 MM channel
- *
- * Return:   0   - success and < 0 - failure
- *****************************************************************************/
-int qdma_s80_hard_mm_channel_conf(void *dev_hndl, uint8_t channel,
-				uint8_t is_c2h,
-				uint8_t enable)
-{
-	uint32_t reg_addr = (is_c2h) ?  QDMA_S80_HARD_C2H_CHANNEL_CTL_ADDR :
-			QDMA_S80_HARD_H2C_CHANNEL_CTL_ADDR;
-	struct qdma_dev_attributes dev_cap;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-				__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	qdma_s80_hard_get_device_attributes(dev_hndl, &dev_cap);
-
-	if (dev_cap.mm_en) {
-		qdma_reg_write(dev_hndl,
-				reg_addr + (channel * QDMA_MM_CONTROL_STEP),
-				enable);
-	}
-
-	return QDMA_SUCCESS;
-}
-
-int qdma_s80_hard_dump_reg_info(void *dev_hndl, uint32_t reg_addr,
-		uint32_t num_regs, char *buf, uint32_t buflen)
-{
-	uint32_t total_num_regs = qdma_s80_hard_config_num_regs_get();
-	struct xreg_info *config_regs  = qdma_s80_hard_config_regs_get();
-	const char *bitfield_name;
-	uint32_t i = 0, num_regs_idx = 0, k = 0, j = 0,
-			bitfield = 0, lsb = 0, msb = 31;
-	int rv = 0;
-	uint32_t reg_val;
-	uint32_t data_len = 0;
-
-	if (!dev_hndl) {
-		qdma_log_error("%s: dev_handle is NULL, err:%d\n",
-				__func__, -QDMA_ERR_INV_PARAM);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	for (i = 0; i < total_num_regs; i++) {
-		if (reg_addr == config_regs[i].addr) {
-			j = i;
-			break;
-		}
-	}
-
-	if (i == total_num_regs) {
-		qdma_log_error("%s: Register not found err:%d\n",
-				__func__, -QDMA_ERR_INV_PARAM);
-		if (buf)
-			QDMA_SNPRINTF_S(buf, buflen,
-					DEBGFS_LINE_SZ,
-					"Register not found 0x%x\n", reg_addr);
-		return -QDMA_ERR_INV_PARAM;
-	}
-
-	num_regs_idx = (j + num_regs < total_num_regs) ?
-					(j + num_regs) : total_num_regs;
-
-	for (; j < num_regs_idx ; j++) {
-		reg_val = qdma_reg_read(dev_hndl,
-				config_regs[j].addr);
-
-		if (buf) {
-			rv = QDMA_SNPRINTF_S(buf, buflen,
-						DEBGFS_LINE_SZ,
-						"\n%-40s 0x%-7x %-#10x %-10d\n",
-						config_regs[j].name,
-						config_regs[j].addr,
-						reg_val, reg_val);
-			if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-				qdma_log_error(
-					"%s: Insufficient buffer, err:%d\n",
-					__func__, -QDMA_ERR_NO_MEM);
-				return -QDMA_ERR_NO_MEM;
-			}
-			buf += rv;
-			data_len += rv;
-			buflen -= rv;
-		} else
-			qdma_log_info("%-40s 0x%-7x %-#10x %-10d\n",
-						  config_regs[j].name,
-						  config_regs[j].addr,
-						  reg_val, reg_val);
-
-
-		for (k = 0;
-			 k < config_regs[j].num_bitfields; k++) {
-
-			bitfield =
-				config_regs[j].bitfields[k].field_mask;
-			bitfield_name =
-				config_regs[i].bitfields[k].field_name;
-			lsb = 0;
-			msb = 31;
-
-			while (!(BIT(lsb) & bitfield))
-				lsb++;
-
-			while (!(BIT(msb) & bitfield))
-				msb--;
-
-			if (msb != lsb) {
-				if (buf) {
-					rv = QDMA_SNPRINTF_S(buf, buflen,
-							DEBGFS_LINE_SZ,
-							"%-40s [%2u,%2u]   %#-10x\n",
-							bitfield_name,
-							msb, lsb,
-							(reg_val & bitfield) >>
-								lsb);
-					if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-						qdma_log_error(
-							"%s: Insufficient buffer, err:%d\n",
-							__func__,
-							-QDMA_ERR_NO_MEM);
-						return -QDMA_ERR_NO_MEM;
-					}
-					buf += rv;
-					data_len += rv;
-					buflen -= rv;
-				} else
-					qdma_log_info(
-						"%-40s [%2u,%2u]   %#-10x\n",
-						bitfield_name,
-						msb, lsb,
-						(reg_val & bitfield) >> lsb);
-
-
-			} else {
-				if (buf) {
-					rv = QDMA_SNPRINTF_S(buf, buflen,
-							DEBGFS_LINE_SZ,
-							"%-40s [%5u]   %#-10x\n",
-							bitfield_name,
-							lsb,
-							(reg_val & bitfield) >>
-								lsb);
-					if ((rv < 0) || (rv > DEBGFS_LINE_SZ)) {
-						qdma_log_error(
-							"%s: Insufficient buffer, err:%d\n",
-							__func__,
-							-QDMA_ERR_NO_MEM);
-						return -QDMA_ERR_NO_MEM;
-					}
-					buf += rv;
-					data_len += rv;
-					buflen -= rv;
-				} else
-					qdma_log_info(
-						"%-40s [%5u]   %#-10x\n",
-						bitfield_name,
-						lsb,
-						(reg_val & bitfield) >> lsb);
-
-			}
-		}
-	}
-
-	return data_len;
-
-}
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_s80_hard_access/qdma_s80_hard_access.h b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_s80_hard_access/qdma_s80_hard_access.h
deleted file mode 100644
index f0a93ae..0000000
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_s80_hard_access/qdma_s80_hard_access.h
+++ /dev/null
@@ -1,278 +0,0 @@
-/*
- * Copyright(c) 2019-2020 Xilinx, Inc. All rights reserved.
- *
- * This source code is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
- * more details.
- *
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- */
-
-#ifndef __QDMA_S80_HARD_ACCESS_H_
-#define __QDMA_S80_HARD_ACCESS_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "qdma_platform.h"
-
-/**
- * enum qdma_error_idx - qdma errors
- */
-enum qdma_s80_hard_error_idx {
-	/* Descriptor errors */
-	QDMA_S80_HARD_DSC_ERR_POISON,
-	QDMA_S80_HARD_DSC_ERR_UR_CA,
-	QDMA_S80_HARD_DSC_ERR_PARAM,
-	QDMA_S80_HARD_DSC_ERR_ADDR,
-	QDMA_S80_HARD_DSC_ERR_TAG,
-	QDMA_S80_HARD_DSC_ERR_FLR,
-	QDMA_S80_HARD_DSC_ERR_TIMEOUT,
-	QDMA_S80_HARD_DSC_ERR_DAT_POISON,
-	QDMA_S80_HARD_DSC_ERR_FLR_CANCEL,
-	QDMA_S80_HARD_DSC_ERR_DMA,
-	QDMA_S80_HARD_DSC_ERR_DSC,
-	QDMA_S80_HARD_DSC_ERR_RQ_CANCEL,
-	QDMA_S80_HARD_DSC_ERR_DBE,
-	QDMA_S80_HARD_DSC_ERR_SBE,
-	QDMA_S80_HARD_DSC_ERR_ALL,
-
-	/* TRQ Errors */
-	QDMA_S80_HARD_TRQ_ERR_UNMAPPED,
-	QDMA_S80_HARD_TRQ_ERR_QID_RANGE,
-	QDMA_S80_HARD_TRQ_ERR_VF_ACCESS_ERR,
-	QDMA_S80_HARD_TRQ_ERR_TCP_TIMEOUT,
-	QDMA_S80_HARD_TRQ_ERR_ALL,
-
-	/* C2H Errors */
-	QDMA_S80_HARD_ST_C2H_ERR_MTY_MISMATCH,
-	QDMA_S80_HARD_ST_C2H_ERR_LEN_MISMATCH,
-	QDMA_S80_HARD_ST_C2H_ERR_QID_MISMATCH,
-	QDMA_S80_HARD_ST_C2H_ERR_DESC_RSP_ERR,
-	QDMA_S80_HARD_ST_C2H_ERR_ENG_WPL_DATA_PAR_ERR,
-	QDMA_S80_HARD_ST_C2H_ERR_MSI_INT_FAIL,
-	QDMA_S80_HARD_ST_C2H_ERR_ERR_DESC_CNT,
-	QDMA_S80_HARD_ST_C2H_ERR_PORTID_CTXT_MISMATCH,
-	QDMA_S80_HARD_ST_C2H_ERR_PORTID_BYP_IN_MISMATCH,
-	QDMA_S80_HARD_ST_C2H_ERR_WRB_INV_Q_ERR,
-	QDMA_S80_HARD_ST_C2H_ERR_WRB_QFULL_ERR,
-	QDMA_S80_HARD_ST_C2H_ERR_WRB_CIDX_ERR,
-	QDMA_S80_HARD_ST_C2H_ERR_WRB_PRTY_ERR,
-	QDMA_S80_HARD_ST_C2H_ERR_ALL,
-
-	/* Fatal Errors */
-	QDMA_S80_HARD_ST_FATAL_ERR_MTY_MISMATCH,
-	QDMA_S80_HARD_ST_FATAL_ERR_LEN_MISMATCH,
-	QDMA_S80_HARD_ST_FATAL_ERR_QID_MISMATCH,
-	QDMA_S80_HARD_ST_FATAL_ERR_TIMER_FIFO_RAM_RDBE,
-	QDMA_S80_HARD_ST_FATAL_ERR_PFCH_II_RAM_RDBE,
-	QDMA_S80_HARD_ST_FATAL_ERR_WRB_CTXT_RAM_RDBE,
-	QDMA_S80_HARD_ST_FATAL_ERR_PFCH_CTXT_RAM_RDBE,
-	QDMA_S80_HARD_ST_FATAL_ERR_DESC_REQ_FIFO_RAM_RDBE,
-	QDMA_S80_HARD_ST_FATAL_ERR_INT_CTXT_RAM_RDBE,
-	QDMA_S80_HARD_ST_FATAL_ERR_INT_QID2VEC_RAM_RDBE,
-	QDMA_S80_HARD_ST_FATAL_ERR_WRB_COAL_DATA_RAM_RDBE,
-	QDMA_S80_HARD_ST_FATAL_ERR_TUSER_FIFO_RAM_RDBE,
-	QDMA_S80_HARD_ST_FATAL_ERR_QID_FIFO_RAM_RDBE,
-	QDMA_S80_HARD_ST_FATAL_ERR_PAYLOAD_FIFO_RAM_RDBE,
-	QDMA_S80_HARD_ST_FATAL_ERR_WPL_DATA_PAR_ERR,
-	QDMA_S80_HARD_ST_FATAL_ERR_ALL,
-
-	/* H2C Errors */
-	QDMA_S80_HARD_ST_H2C_ERR_ZERO_LEN_DESC_ERR,
-	QDMA_S80_HARD_ST_H2C_ERR_SDI_MRKR_REQ_MOP_ERR,
-	QDMA_S80_HARD_ST_H2C_ERR_NO_DMA_DSC,
-	QDMA_S80_HARD_ST_H2C_ERR_DBE,
-	QDMA_S80_HARD_ST_H2C_ERR_SBE,
-	QDMA_S80_HARD_ST_H2C_ERR_ALL,
-
-	/* Single bit errors */
-	QDMA_S80_HARD_SBE_ERR_MI_H2C0_DAT,
-	QDMA_S80_HARD_SBE_ERR_MI_C2H0_DAT,
-	QDMA_S80_HARD_SBE_ERR_H2C_RD_BRG_DAT,
-	QDMA_S80_HARD_SBE_ERR_H2C_WR_BRG_DAT,
-	QDMA_S80_HARD_SBE_ERR_C2H_RD_BRG_DAT,
-	QDMA_S80_HARD_SBE_ERR_C2H_WR_BRG_DAT,
-	QDMA_S80_HARD_SBE_ERR_FUNC_MAP,
-	QDMA_S80_HARD_SBE_ERR_DSC_HW_CTXT,
-	QDMA_S80_HARD_SBE_ERR_DSC_CRD_RCV,
-	QDMA_S80_HARD_SBE_ERR_DSC_SW_CTXT,
-	QDMA_S80_HARD_SBE_ERR_DSC_CPLI,
-	QDMA_S80_HARD_SBE_ERR_DSC_CPLD,
-	QDMA_S80_HARD_SBE_ERR_PASID_CTXT_RAM,
-	QDMA_S80_HARD_SBE_ERR_TIMER_FIFO_RAM,
-	QDMA_S80_HARD_SBE_ERR_PAYLOAD_FIFO_RAM,
-	QDMA_S80_HARD_SBE_ERR_QID_FIFO_RAM,
-	QDMA_S80_HARD_SBE_ERR_TUSER_FIFO_RAM,
-	QDMA_S80_HARD_SBE_ERR_WRB_COAL_DATA_RAM,
-	QDMA_S80_HARD_SBE_ERR_INT_QID2VEC_RAM,
-	QDMA_S80_HARD_SBE_ERR_INT_CTXT_RAM,
-	QDMA_S80_HARD_SBE_ERR_DESC_REQ_FIFO_RAM,
-	QDMA_S80_HARD_SBE_ERR_PFCH_CTXT_RAM,
-	QDMA_S80_HARD_SBE_ERR_WRB_CTXT_RAM,
-	QDMA_S80_HARD_SBE_ERR_PFCH_LL_RAM,
-	QDMA_S80_HARD_SBE_ERR_ALL,
-
-	/* Double bit Errors */
-	QDMA_S80_HARD_DBE_ERR_MI_H2C0_DAT,
-	QDMA_S80_HARD_DBE_ERR_MI_C2H0_DAT,
-	QDMA_S80_HARD_DBE_ERR_H2C_RD_BRG_DAT,
-	QDMA_S80_HARD_DBE_ERR_H2C_WR_BRG_DAT,
-	QDMA_S80_HARD_DBE_ERR_C2H_RD_BRG_DAT,
-	QDMA_S80_HARD_DBE_ERR_C2H_WR_BRG_DAT,
-	QDMA_S80_HARD_DBE_ERR_FUNC_MAP,
-	QDMA_S80_HARD_DBE_ERR_DSC_HW_CTXT,
-	QDMA_S80_HARD_DBE_ERR_DSC_CRD_RCV,
-	QDMA_S80_HARD_DBE_ERR_DSC_SW_CTXT,
-	QDMA_S80_HARD_DBE_ERR_DSC_CPLI,
-	QDMA_S80_HARD_DBE_ERR_DSC_CPLD,
-	QDMA_S80_HARD_DBE_ERR_PASID_CTXT_RAM,
-	QDMA_S80_HARD_DBE_ERR_TIMER_FIFO_RAM,
-	QDMA_S80_HARD_DBE_ERR_PAYLOAD_FIFO_RAM,
-	QDMA_S80_HARD_DBE_ERR_QID_FIFO_RAM,
-	QDMA_S80_HARD_DBE_ERR_WRB_COAL_DATA_RAM,
-	QDMA_S80_HARD_DBE_ERR_INT_QID2VEC_RAM,
-	QDMA_S80_HARD_DBE_ERR_INT_CTXT_RAM,
-	QDMA_S80_HARD_DBE_ERR_DESC_REQ_FIFO_RAM,
-	QDMA_S80_HARD_DBE_ERR_PFCH_CTXT_RAM,
-	QDMA_S80_HARD_DBE_ERR_WRB_CTXT_RAM,
-	QDMA_S80_HARD_DBE_ERR_PFCH_LL_RAM,
-	QDMA_S80_HARD_DBE_ERR_ALL,
-
-	QDMA_S80_HARD_ERRS_ALL
-};
-
-struct qdma_s80_hard_hw_err_info {
-	enum qdma_s80_hard_error_idx idx;
-	const char *err_name;
-	uint32_t mask_reg_addr;
-	uint32_t stat_reg_addr;
-	uint32_t leaf_err_mask;
-	uint32_t global_err_mask;
-	void (*qdma_s80_hard_hw_err_process)(void *dev_hndl);
-};
-
-
-int qdma_s80_hard_init_ctxt_memory(void *dev_hndl);
-
-int qdma_s80_hard_qid2vec_conf(void *dev_hndl, uint8_t c2h, uint16_t hw_qid,
-			 struct qdma_qid2vec *ctxt,
-			 enum qdma_hw_access_type access_type);
-
-int qdma_s80_hard_fmap_conf(void *dev_hndl, uint16_t func_id,
-			struct qdma_fmap_cfg *config,
-			enum qdma_hw_access_type access_type);
-
-int qdma_s80_hard_sw_ctx_conf(void *dev_hndl, uint8_t c2h, uint16_t hw_qid,
-				struct qdma_descq_sw_ctxt *ctxt,
-				enum qdma_hw_access_type access_type);
-
-int qdma_s80_hard_pfetch_ctx_conf(void *dev_hndl, uint16_t hw_qid,
-				struct qdma_descq_prefetch_ctxt *ctxt,
-				enum qdma_hw_access_type access_type);
-
-int qdma_s80_hard_cmpt_ctx_conf(void *dev_hndl, uint16_t hw_qid,
-			struct qdma_descq_cmpt_ctxt *ctxt,
-			enum qdma_hw_access_type access_type);
-
-int qdma_s80_hard_hw_ctx_conf(void *dev_hndl, uint8_t c2h, uint16_t hw_qid,
-				struct qdma_descq_hw_ctxt *ctxt,
-				enum qdma_hw_access_type access_type);
-
-int qdma_s80_hard_credit_ctx_conf(void *dev_hndl, uint8_t c2h, uint16_t hw_qid,
-			struct qdma_descq_credit_ctxt *ctxt,
-			enum qdma_hw_access_type access_type);
-
-int qdma_s80_hard_indirect_intr_ctx_conf(void *dev_hndl, uint16_t ring_index,
-				struct qdma_indirect_intr_ctxt *ctxt,
-				enum qdma_hw_access_type access_type);
-
-int qdma_s80_hard_set_default_global_csr(void *dev_hndl);
-
-int qdma_s80_hard_queue_pidx_update(void *dev_hndl, uint8_t is_vf, uint16_t qid,
-		uint8_t is_c2h, const struct qdma_q_pidx_reg_info *reg_info);
-
-int qdma_s80_hard_queue_cmpt_cidx_update(void *dev_hndl, uint8_t is_vf,
-		uint16_t qid, const struct qdma_q_cmpt_cidx_reg_info *reg_info);
-
-int qdma_s80_hard_queue_intr_cidx_update(void *dev_hndl, uint8_t is_vf,
-		uint16_t qid, const struct qdma_intr_cidx_reg_info *reg_info);
-
-int qdma_cmp_get_user_bar(void *dev_hndl, uint8_t is_vf,
-		uint8_t func_id, uint8_t *user_bar);
-
-int qdma_s80_hard_get_device_attributes(void *dev_hndl,
-		struct qdma_dev_attributes *dev_info);
-
-uint32_t qdma_s80_hard_reg_dump_buf_len(void);
-
-int qdma_s80_hard_context_buf_len(uint8_t st,
-		enum qdma_dev_q_type q_type, uint32_t *req_buflen);
-
-int qdma_s80_hard_dump_config_regs(void *dev_hndl, uint8_t is_vf,
-		char *buf, uint32_t buflen);
-
-int qdma_s80_hard_hw_error_process(void *dev_hndl);
-const char *qdma_s80_hard_hw_get_error_name(uint32_t err_idx);
-int qdma_s80_hard_hw_error_enable(void *dev_hndl, uint32_t err_idx);
-
-int qdma_s80_hard_dump_queue_context(void *dev_hndl,
-		uint8_t st,
-		enum qdma_dev_q_type q_type,
-		struct qdma_descq_context *ctxt_data,
-		char *buf, uint32_t buflen);
-
-int qdma_s80_hard_dump_intr_context(void *dev_hndl,
-		struct qdma_indirect_intr_ctxt *intr_ctx,
-		int ring_index,
-		char *buf, uint32_t buflen);
-
-int qdma_s80_hard_read_dump_queue_context(void *dev_hndl,
-		uint16_t qid_hw,
-		uint8_t st,
-		enum qdma_dev_q_type q_type,
-		char *buf, uint32_t buflen);
-
-int qdma_s80_hard_dump_config_reg_list(void *dev_hndl,
-		uint32_t total_regs,
-		struct qdma_reg_data *reg_list,
-		char *buf, uint32_t buflen);
-
-int qdma_s80_hard_read_reg_list(void *dev_hndl, uint8_t is_vf,
-		uint16_t reg_rd_slot,
-		uint16_t *total_regs,
-		struct qdma_reg_data *reg_list);
-
-int qdma_s80_hard_global_csr_conf(void *dev_hndl, uint8_t index,
-				uint8_t count,
-				uint32_t *csr_val,
-				enum qdma_global_csr_type csr_type,
-				enum qdma_hw_access_type access_type);
-
-int qdma_s80_hard_global_writeback_interval_conf(void *dev_hndl,
-				enum qdma_wrb_interval *wb_int,
-				enum qdma_hw_access_type access_type);
-
-int qdma_s80_hard_mm_channel_conf(void *dev_hndl, uint8_t channel,
-				uint8_t is_c2h,
-				uint8_t enable);
-
-int qdma_s80_hard_dump_reg_info(void *dev_hndl, uint32_t reg_addr,
-				uint32_t num_regs, char *buf, uint32_t buflen);
-
-uint32_t qdma_s80_hard_get_config_num_regs(void);
-
-struct xreg_info *qdma_s80_hard_get_config_regs(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __QDMA_S80_HARD_ACCESS_H_ */
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_s80_hard_access/qdma_s80_hard_reg.h b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_s80_hard_access/qdma_s80_hard_reg.h
deleted file mode 100644
index 5bc3c22..0000000
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_s80_hard_access/qdma_s80_hard_reg.h
+++ /dev/null
@@ -1,2045 +0,0 @@
-/*
- * Copyright(c) 2019-2020 Xilinx, Inc. All rights reserved.
- *
- * This source code is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
- * more details.
- *
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- */
-
-#ifndef __QDMA_S80_HARD_REG_H
-#define __QDMA_S80_HARD_REG_H
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "qdma_platform.h"
-
-#ifdef CHAR_BIT
-#undef CHAR_BIT
-#endif
-#define CHAR_BIT 8
-
-#ifdef BIT
-#undef BIT
-#endif
-#define BIT(n)                  (1u << (n))
-
-#ifdef BITS_PER_BYTE
-#undef BITS_PER_BYTE
-#endif
-#define BITS_PER_BYTE           CHAR_BIT
-
-#ifdef BITS_PER_LONG
-#undef BITS_PER_LONG
-#endif
-#define BITS_PER_LONG           (sizeof(uint32_t) * BITS_PER_BYTE)
-
-#ifdef BITS_PER_LONG_LONG
-#undef BITS_PER_LONG_LONG
-#endif
-#define BITS_PER_LONG_LONG      (sizeof(uint64_t) * BITS_PER_BYTE)
-
-#ifdef GENMASK
-#undef GENMASK
-#endif
-#define GENMASK(h, l) \
-	((0xFFFFFFFF << (l)) & (0xFFFFFFFF >> (BITS_PER_LONG - 1 - (h))))
-
-#ifdef GENMASK_ULL
-#undef GENMASK_ULL
-#endif
-#define GENMASK_ULL(h, l) \
-	((0xFFFFFFFFFFFFFFFF << (l)) & \
-			(0xFFFFFFFFFFFFFFFF >> (BITS_PER_LONG_LONG - 1 - (h))))
-
-#define DEBGFS_LINE_SZ			(81)
-
-#ifdef ARRAY_SIZE
-#undef ARRAY_SIZE
-#endif
-#define ARRAY_SIZE(arr) (sizeof(arr) / \
-							sizeof(arr[0]))
-
-
-uint32_t qdma_s80_hard_config_num_regs_get(void);
-struct xreg_info *qdma_s80_hard_config_regs_get(void);
-#define QDMA_S80_HARD_CFG_BLK_IDENTIFIER_ADDR              0x00
-#define CFG_BLK_IDENTIFIER_MASK                           GENMASK(31, 20)
-#define CFG_BLK_IDENTIFIER_1_MASK                         GENMASK(19, 16)
-#define CFG_BLK_IDENTIFIER_RSVD_1_MASK                     GENMASK(15, 8)
-#define CFG_BLK_IDENTIFIER_VERSION_MASK                    GENMASK(7, 0)
-#define QDMA_S80_HARD_CFG_BLK_BUSDEV_ADDR                  0x04
-#define CFG_BLK_BUSDEV_BDF_MASK                            GENMASK(15, 0)
-#define QDMA_S80_HARD_CFG_BLK_PCIE_MAX_PLD_SIZE_ADDR       0x08
-#define CFG_BLK_PCIE_MAX_PLD_SIZE_MASK                    GENMASK(2, 0)
-#define QDMA_S80_HARD_CFG_BLK_PCIE_MAX_READ_REQ_SIZE_ADDR  0x0C
-#define CFG_BLK_PCIE_MAX_READ_REQ_SIZE_MASK               GENMASK(2, 0)
-#define QDMA_S80_HARD_CFG_BLK_SYSTEM_ID_ADDR               0x10
-#define CFG_BLK_SYSTEM_ID_MASK                            GENMASK(15, 0)
-#define QDMA_S80_HARD_CFG_BLK_MSI_ENABLE_ADDR              0x014
-#define CFG_BLK_MSI_ENABLE_3_MASK                          BIT(17)
-#define CFG_BLK_MSI_ENABLE_MSIX3_MASK                      BIT(16)
-#define CFG_BLK_MSI_ENABLE_2_MASK                          BIT(13)
-#define CFG_BLK_MSI_ENABLE_MSIX2_MASK                      BIT(12)
-#define CFG_BLK_MSI_ENABLE_1_MASK                          BIT(9)
-#define CFG_BLK_MSI_ENABLE_MSIX1_MASK                      BIT(8)
-#define CFG_BLK_MSI_ENABLE_0_MASK                          BIT(1)
-#define CFG_BLK_MSI_ENABLE_MSIX0_MASK                      BIT(0)
-#define QDMA_S80_HARD_CFG_PCIE_DATA_WIDTH_ADDR             0x18
-#define CFG_PCIE_DATA_WIDTH_DATAPATH_MASK                  GENMASK(2, 0)
-#define QDMA_S80_HARD_CFG_PCIE_CTL_ADDR                    0x1C
-#define CFG_PCIE_CTL_RRQ_DISABLE_MASK                      BIT(1)
-#define CFG_PCIE_CTL_RELAXED_ORDERING_MASK                 BIT(0)
-#define QDMA_S80_HARD_CFG_AXI_USER_MAX_PLD_SIZE_ADDR       0x40
-#define CFG_AXI_USER_MAX_PLD_SIZE_ISSUED_MASK              GENMASK(6, 4)
-#define CFG_AXI_USER_MAX_PLD_SIZE_PROG_MASK                GENMASK(2, 0)
-#define QDMA_S80_HARD_CFG_AXI_USER_MAX_READ_REQ_SIZE_ADDR  0x44
-#define CFG_AXI_USER_MAX_READ_REQ_SIZE_USISSUED_MASK       GENMASK(6, 4)
-#define CFG_AXI_USER_MAX_READ_REQ_SIZE_USPROG_MASK         GENMASK(2, 0)
-#define QDMA_S80_HARD_CFG_BLK_MISC_CTL_ADDR                0x4C
-#define CFG_BLK_MISC_CTL_NUM_TAG_MASK                      GENMASK(19, 8)
-#define CFG_BLK_MISC_CTL_RQ_METERING_MULTIPLIER_MASK       GENMASK(4, 0)
-#define QDMA_S80_HARD_CFG_BLK_SCRATCH_0_ADDR               0x80
-#define CFG_BLK_SCRATCH_0_MASK                            GENMASK(31, 0)
-#define QDMA_S80_HARD_CFG_BLK_SCRATCH_1_ADDR               0x84
-#define CFG_BLK_SCRATCH_1_MASK                            GENMASK(31, 0)
-#define QDMA_S80_HARD_CFG_BLK_SCRATCH_2_ADDR               0x88
-#define CFG_BLK_SCRATCH_2_MASK                            GENMASK(31, 0)
-#define QDMA_S80_HARD_CFG_BLK_SCRATCH_3_ADDR               0x8C
-#define CFG_BLK_SCRATCH_3_MASK                            GENMASK(31, 0)
-#define QDMA_S80_HARD_CFG_BLK_SCRATCH_4_ADDR               0x90
-#define CFG_BLK_SCRATCH_4_MASK                            GENMASK(31, 0)
-#define QDMA_S80_HARD_CFG_BLK_SCRATCH_5_ADDR               0x94
-#define CFG_BLK_SCRATCH_5_MASK                            GENMASK(31, 0)
-#define QDMA_S80_HARD_CFG_BLK_SCRATCH_6_ADDR               0x98
-#define CFG_BLK_SCRATCH_6_MASK                            GENMASK(31, 0)
-#define QDMA_S80_HARD_CFG_BLK_SCRATCH_7_ADDR               0x9C
-#define CFG_BLK_SCRATCH_7_MASK                            GENMASK(31, 0)
-#define QDMA_S80_HARD_RAM_SBE_MSK_A_ADDR                   0xF0
-#define RAM_SBE_MSK_A_MASK                            GENMASK(31, 0)
-#define QDMA_S80_HARD_RAM_SBE_STS_A_ADDR                   0xF4
-#define RAM_SBE_STS_A_RSVD_1_MASK                          BIT(31)
-#define RAM_SBE_STS_A_PFCH_LL_RAM_MASK                     BIT(30)
-#define RAM_SBE_STS_A_WRB_CTXT_RAM_MASK                    BIT(29)
-#define RAM_SBE_STS_A_PFCH_CTXT_RAM_MASK                   BIT(28)
-#define RAM_SBE_STS_A_DESC_REQ_FIFO_RAM_MASK               BIT(27)
-#define RAM_SBE_STS_A_INT_CTXT_RAM_MASK                    BIT(26)
-#define RAM_SBE_STS_A_INT_QID2VEC_RAM_MASK                 BIT(25)
-#define RAM_SBE_STS_A_WRB_COAL_DATA_RAM_MASK               BIT(24)
-#define RAM_SBE_STS_A_TUSER_FIFO_RAM_MASK                  BIT(23)
-#define RAM_SBE_STS_A_QID_FIFO_RAM_MASK                    BIT(22)
-#define RAM_SBE_STS_A_PLD_FIFO_RAM_MASK                    BIT(21)
-#define RAM_SBE_STS_A_TIMER_FIFO_RAM_MASK                  BIT(20)
-#define RAM_SBE_STS_A_PASID_CTXT_RAM_MASK                  BIT(19)
-#define RAM_SBE_STS_A_DSC_CPLD_MASK                        BIT(18)
-#define RAM_SBE_STS_A_DSC_CPLI_MASK                        BIT(17)
-#define RAM_SBE_STS_A_DSC_SW_CTXT_MASK                     BIT(16)
-#define RAM_SBE_STS_A_DSC_CRD_RCV_MASK                     BIT(15)
-#define RAM_SBE_STS_A_DSC_HW_CTXT_MASK                     BIT(14)
-#define RAM_SBE_STS_A_FUNC_MAP_MASK                        BIT(13)
-#define RAM_SBE_STS_A_C2H_WR_BRG_DAT_MASK                  BIT(12)
-#define RAM_SBE_STS_A_C2H_RD_BRG_DAT_MASK                  BIT(11)
-#define RAM_SBE_STS_A_H2C_WR_BRG_DAT_MASK                  BIT(10)
-#define RAM_SBE_STS_A_H2C_RD_BRG_DAT_MASK                  BIT(9)
-#define RAM_SBE_STS_A_RSVD_2_MASK                          GENMASK(8, 5)
-#define RAM_SBE_STS_A_MI_C2H0_DAT_MASK                     BIT(4)
-#define RAM_SBE_STS_A_RSVD_3_MASK                          GENMASK(3, 1)
-#define RAM_SBE_STS_A_MI_H2C0_DAT_MASK                     BIT(0)
-#define QDMA_S80_HARD_RAM_DBE_MSK_A_ADDR                   0xF8
-#define RAM_DBE_MSK_A_MASK                            GENMASK(31, 0)
-#define QDMA_S80_HARD_RAM_DBE_STS_A_ADDR                   0xFC
-#define RAM_DBE_STS_A_RSVD_1_MASK                          BIT(31)
-#define RAM_DBE_STS_A_PFCH_LL_RAM_MASK                     BIT(30)
-#define RAM_DBE_STS_A_WRB_CTXT_RAM_MASK                    BIT(29)
-#define RAM_DBE_STS_A_PFCH_CTXT_RAM_MASK                   BIT(28)
-#define RAM_DBE_STS_A_DESC_REQ_FIFO_RAM_MASK               BIT(27)
-#define RAM_DBE_STS_A_INT_CTXT_RAM_MASK                    BIT(26)
-#define RAM_DBE_STS_A_INT_QID2VEC_RAM_MASK                 BIT(25)
-#define RAM_DBE_STS_A_WRB_COAL_DATA_RAM_MASK               BIT(24)
-#define RAM_DBE_STS_A_TUSER_FIFO_RAM_MASK                  BIT(23)
-#define RAM_DBE_STS_A_QID_FIFO_RAM_MASK                    BIT(22)
-#define RAM_DBE_STS_A_PLD_FIFO_RAM_MASK                    BIT(21)
-#define RAM_DBE_STS_A_TIMER_FIFO_RAM_MASK                  BIT(20)
-#define RAM_DBE_STS_A_PASID_CTXT_RAM_MASK                  BIT(19)
-#define RAM_DBE_STS_A_DSC_CPLD_MASK                        BIT(18)
-#define RAM_DBE_STS_A_DSC_CPLI_MASK                        BIT(17)
-#define RAM_DBE_STS_A_DSC_SW_CTXT_MASK                     BIT(16)
-#define RAM_DBE_STS_A_DSC_CRD_RCV_MASK                     BIT(15)
-#define RAM_DBE_STS_A_DSC_HW_CTXT_MASK                     BIT(14)
-#define RAM_DBE_STS_A_FUNC_MAP_MASK                        BIT(13)
-#define RAM_DBE_STS_A_C2H_WR_BRG_DAT_MASK                  BIT(12)
-#define RAM_DBE_STS_A_C2H_RD_BRG_DAT_MASK                  BIT(11)
-#define RAM_DBE_STS_A_H2C_WR_BRG_DAT_MASK                  BIT(10)
-#define RAM_DBE_STS_A_H2C_RD_BRG_DAT_MASK                  BIT(9)
-#define RAM_DBE_STS_A_RSVD_2_MASK                          GENMASK(8, 5)
-#define RAM_DBE_STS_A_MI_C2H0_DAT_MASK                     BIT(4)
-#define RAM_DBE_STS_A_RSVD_3_MASK                          GENMASK(3, 1)
-#define RAM_DBE_STS_A_MI_H2C0_DAT_MASK                     BIT(0)
-#define QDMA_S80_HARD_GLBL2_IDENTIFIER_ADDR                0x100
-#define GLBL2_IDENTIFIER_MASK                             GENMASK(31, 8)
-#define GLBL2_IDENTIFIER_VERSION_MASK                      GENMASK(7, 0)
-#define QDMA_S80_HARD_GLBL2_PF_BARLITE_INT_ADDR            0x104
-#define GLBL2_PF_BARLITE_INT_PF3_BAR_MAP_MASK              GENMASK(23, 18)
-#define GLBL2_PF_BARLITE_INT_PF2_BAR_MAP_MASK              GENMASK(17, 12)
-#define GLBL2_PF_BARLITE_INT_PF1_BAR_MAP_MASK              GENMASK(11, 6)
-#define GLBL2_PF_BARLITE_INT_PF0_BAR_MAP_MASK              GENMASK(5, 0)
-#define QDMA_S80_HARD_GLBL2_PF_VF_BARLITE_INT_ADDR         0x108
-#define GLBL2_PF_VF_BARLITE_INT_PF3_MAP_MASK               GENMASK(23, 18)
-#define GLBL2_PF_VF_BARLITE_INT_PF2_MAP_MASK               GENMASK(17, 12)
-#define GLBL2_PF_VF_BARLITE_INT_PF1_MAP_MASK               GENMASK(11, 6)
-#define GLBL2_PF_VF_BARLITE_INT_PF0_MAP_MASK               GENMASK(5, 0)
-#define QDMA_S80_HARD_GLBL2_PF_BARLITE_EXT_ADDR            0x10C
-#define GLBL2_PF_BARLITE_EXT_PF3_BAR_MAP_MASK              GENMASK(23, 18)
-#define GLBL2_PF_BARLITE_EXT_PF2_BAR_MAP_MASK              GENMASK(17, 12)
-#define GLBL2_PF_BARLITE_EXT_PF1_BAR_MAP_MASK              GENMASK(11, 6)
-#define GLBL2_PF_BARLITE_EXT_PF0_BAR_MAP_MASK              GENMASK(5, 0)
-#define QDMA_S80_HARD_GLBL2_PF_VF_BARLITE_EXT_ADDR         0x110
-#define GLBL2_PF_VF_BARLITE_EXT_PF3_MAP_MASK               GENMASK(23, 18)
-#define GLBL2_PF_VF_BARLITE_EXT_PF2_MAP_MASK               GENMASK(17, 12)
-#define GLBL2_PF_VF_BARLITE_EXT_PF1_MAP_MASK               GENMASK(11, 6)
-#define GLBL2_PF_VF_BARLITE_EXT_PF0_MAP_MASK               GENMASK(5, 0)
-#define QDMA_S80_HARD_GLBL2_CHANNEL_INST_ADDR              0x114
-#define GLBL2_CHANNEL_INST_RSVD_1_MASK                     GENMASK(31, 18)
-#define GLBL2_CHANNEL_INST_C2H_ST_MASK                     BIT(17)
-#define GLBL2_CHANNEL_INST_H2C_ST_MASK                     BIT(16)
-#define GLBL2_CHANNEL_INST_RSVD_2_MASK                     GENMASK(15, 9)
-#define GLBL2_CHANNEL_INST_C2H_ENG_MASK                    BIT(8)
-#define GLBL2_CHANNEL_INST_RSVD_3_MASK                     GENMASK(7, 1)
-#define GLBL2_CHANNEL_INST_H2C_ENG_MASK                    BIT(0)
-#define QDMA_S80_HARD_GLBL2_CHANNEL_MDMA_ADDR              0x118
-#define GLBL2_CHANNEL_MDMA_RSVD_1_MASK                     GENMASK(31, 18)
-#define GLBL2_CHANNEL_MDMA_C2H_ST_MASK                     BIT(17)
-#define GLBL2_CHANNEL_MDMA_H2C_ST_MASK                     BIT(16)
-#define GLBL2_CHANNEL_MDMA_RSVD_2_MASK                     GENMASK(15, 9)
-#define GLBL2_CHANNEL_MDMA_C2H_ENG_MASK                    BIT(8)
-#define GLBL2_CHANNEL_MDMA_RSVD_3_MASK                     GENMASK(7, 1)
-#define GLBL2_CHANNEL_MDMA_H2C_ENG_MASK                    BIT(0)
-#define QDMA_S80_HARD_GLBL2_CHANNEL_STRM_ADDR              0x11C
-#define GLBL2_CHANNEL_STRM_RSVD_1_MASK                     GENMASK(31, 18)
-#define GLBL2_CHANNEL_STRM_C2H_ST_MASK                     BIT(17)
-#define GLBL2_CHANNEL_STRM_H2C_ST_MASK                     BIT(16)
-#define GLBL2_CHANNEL_STRM_RSVD_2_MASK                     GENMASK(15, 9)
-#define GLBL2_CHANNEL_STRM_C2H_ENG_MASK                    BIT(8)
-#define GLBL2_CHANNEL_STRM_RSVD_3_MASK                     GENMASK(7, 1)
-#define GLBL2_CHANNEL_STRM_H2C_ENG_MASK                    BIT(0)
-#define QDMA_S80_HARD_GLBL2_CHANNEL_CAP_ADDR               0x120
-#define GLBL2_CHANNEL_CAP_RSVD_1_MASK                      GENMASK(31, 12)
-#define GLBL2_CHANNEL_CAP_MULTIQ_MAX_MASK                  GENMASK(11, 0)
-#define QDMA_S80_HARD_GLBL2_CHANNEL_PASID_CAP_ADDR         0x128
-#define GLBL2_CHANNEL_PASID_CAP_RSVD_1_MASK                GENMASK(31, 16)
-#define GLBL2_CHANNEL_PASID_CAP_BRIDGEOFFSET_MASK          GENMASK(15, 4)
-#define GLBL2_CHANNEL_PASID_CAP_RSVD_2_MASK                GENMASK(3, 2)
-#define GLBL2_CHANNEL_PASID_CAP_BRIDGEEN_MASK              BIT(1)
-#define GLBL2_CHANNEL_PASID_CAP_DMAEN_MASK                 BIT(0)
-#define QDMA_S80_HARD_GLBL2_CHANNEL_FUNC_RET_ADDR          0x12C
-#define GLBL2_CHANNEL_FUNC_RET_RSVD_1_MASK                 GENMASK(31, 8)
-#define GLBL2_CHANNEL_FUNC_RET_FUNC_MASK                   GENMASK(7, 0)
-#define QDMA_S80_HARD_GLBL2_SYSTEM_ID_ADDR                 0x130
-#define GLBL2_SYSTEM_ID_RSVD_1_MASK                        GENMASK(31, 16)
-#define GLBL2_SYSTEM_ID_MASK                              GENMASK(15, 0)
-#define QDMA_S80_HARD_GLBL2_MISC_CAP_ADDR                  0x134
-#define GLBL2_MISC_CAP_RSVD_1_MASK                         GENMASK(31, 0)
-#define QDMA_S80_HARD_GLBL2_DBG_PCIE_RQ0_ADDR              0x1B8
-#define GLBL2_PCIE_RQ0_NPH_AVL_MASK                    GENMASK(31, 20)
-#define GLBL2_PCIE_RQ0_RCB_AVL_MASK                    GENMASK(19, 10)
-#define GLBL2_PCIE_RQ0_SLV_RD_CREDS_MASK               GENMASK(9, 4)
-#define GLBL2_PCIE_RQ0_TAG_EP_MASK                     GENMASK(3, 2)
-#define GLBL2_PCIE_RQ0_TAG_FL_MASK                     GENMASK(1, 0)
-#define QDMA_S80_HARD_GLBL2_DBG_PCIE_RQ1_ADDR              0x1BC
-#define GLBL2_PCIE_RQ1_RSVD_1_MASK                     GENMASK(31, 17)
-#define GLBL2_PCIE_RQ1_WTLP_REQ_MASK                   BIT(16)
-#define GLBL2_PCIE_RQ1_WTLP_HEADER_FIFO_FL_MASK        BIT(15)
-#define GLBL2_PCIE_RQ1_WTLP_HEADER_FIFO_EP_MASK        BIT(14)
-#define GLBL2_PCIE_RQ1_RQ_FIFO_EP_MASK                 BIT(13)
-#define GLBL2_PCIE_RQ1_RQ_FIFO_FL_MASK                 BIT(12)
-#define GLBL2_PCIE_RQ1_TLPSM_MASK                      GENMASK(11, 9)
-#define GLBL2_PCIE_RQ1_TLPSM512_MASK                   GENMASK(8, 6)
-#define GLBL2_PCIE_RQ1_RREQ0_RCB_OK_MASK               BIT(5)
-#define GLBL2_PCIE_RQ1_RREQ0_SLV_MASK                  BIT(4)
-#define GLBL2_PCIE_RQ1_RREQ0_VLD_MASK                  BIT(3)
-#define GLBL2_PCIE_RQ1_RREQ1_RCB_OK_MASK               BIT(2)
-#define GLBL2_PCIE_RQ1_RREQ1_SLV_MASK                  BIT(1)
-#define GLBL2_PCIE_RQ1_RREQ1_VLD_MASK                  BIT(0)
-#define QDMA_S80_HARD_GLBL2_DBG_AXIMM_WR0_ADDR             0x1C0
-#define GLBL2_AXIMM_WR0_RSVD_1_MASK                    GENMASK(31, 27)
-#define GLBL2_AXIMM_WR0_WR_REQ_MASK                    BIT(26)
-#define GLBL2_AXIMM_WR0_WR_CHN_MASK                    GENMASK(25, 23)
-#define GLBL2_AXIMM_WR0_WTLP_DATA_FIFO_EP_MASK         BIT(22)
-#define GLBL2_AXIMM_WR0_WPL_FIFO_EP_MASK               BIT(21)
-#define GLBL2_AXIMM_WR0_BRSP_CLAIM_CHN_MASK            GENMASK(20, 18)
-#define GLBL2_AXIMM_WR0_WRREQ_CNT_MASK                 GENMASK(17, 12)
-#define GLBL2_AXIMM_WR0_BID_MASK                       GENMASK(11, 9)
-#define GLBL2_AXIMM_WR0_BVALID_MASK                    BIT(8)
-#define GLBL2_AXIMM_WR0_BREADY_MASK                    BIT(7)
-#define GLBL2_AXIMM_WR0_WVALID_MASK                    BIT(6)
-#define GLBL2_AXIMM_WR0_WREADY_MASK                    BIT(5)
-#define GLBL2_AXIMM_WR0_AWID_MASK                      GENMASK(4, 2)
-#define GLBL2_AXIMM_WR0_AWVALID_MASK                   BIT(1)
-#define GLBL2_AXIMM_WR0_AWREADY_MASK                   BIT(0)
-#define QDMA_S80_HARD_GLBL2_DBG_AXIMM_WR1_ADDR             0x1C4
-#define GLBL2_AXIMM_WR1_RSVD_1_MASK                    GENMASK(31, 30)
-#define GLBL2_AXIMM_WR1_BRSP_CNT4_MASK                 GENMASK(29, 24)
-#define GLBL2_AXIMM_WR1_BRSP_CNT3_MASK                 GENMASK(23, 18)
-#define GLBL2_AXIMM_WR1_BRSP_CNT2_MASK                 GENMASK(17, 12)
-#define GLBL2_AXIMM_WR1_BRSP_CNT1_MASK                 GENMASK(11, 6)
-#define GLBL2_AXIMM_WR1_BRSP_CNT0_MASK                 GENMASK(5, 0)
-#define QDMA_S80_HARD_GLBL2_DBG_AXIMM_RD0_ADDR             0x1C8
-#define GLBL2_AXIMM_RD0_RSVD_1_MASK                    GENMASK(31, 23)
-#define GLBL2_AXIMM_RD0_PND_CNT_MASK                   GENMASK(22, 17)
-#define GLBL2_AXIMM_RD0_RD_CHNL_MASK                   GENMASK(16, 14)
-#define GLBL2_AXIMM_RD0_RD_REQ_MASK                    BIT(13)
-#define GLBL2_AXIMM_RD0_RRSP_CLAIM_CHNL_MASK           GENMASK(12, 10)
-#define GLBL2_AXIMM_RD0_RID_MASK                       GENMASK(9, 7)
-#define GLBL2_AXIMM_RD0_RVALID_MASK                    BIT(6)
-#define GLBL2_AXIMM_RD0_RREADY_MASK                    BIT(5)
-#define GLBL2_AXIMM_RD0_ARID_MASK                      GENMASK(4, 2)
-#define GLBL2_AXIMM_RD0_ARVALID_MASK                   BIT(1)
-#define GLBL2_AXIMM_RD0_ARREADY_MASK                   BIT(0)
-#define QDMA_S80_HARD_GLBL2_DBG_AXIMM_RD1_ADDR             0x1CC
-#define GLBL2_AXIMM_RD1_RSVD_1_MASK                    GENMASK(31, 30)
-#define GLBL2_AXIMM_RD1_RRSP_CNT4_MASK                 GENMASK(29, 24)
-#define GLBL2_AXIMM_RD1_RRSP_CNT3_MASK                 GENMASK(23, 18)
-#define GLBL2_AXIMM_RD1_RRSP_CNT2_MASK                 GENMASK(17, 12)
-#define GLBL2_AXIMM_RD1_RRSP_CNT1_MASK                 GENMASK(11, 6)
-#define GLBL2_AXIMM_RD1_RRSP_CNT0_MASK                 GENMASK(5, 0)
-#define QDMA_S80_HARD_GLBL_RNG_SZ_1_ADDR                   0x204
-#define GLBL_RNG_SZ_1_RSVD_1_MASK                          GENMASK(31, 16)
-#define GLBL_RNG_SZ_1_RING_SIZE_MASK                       GENMASK(15, 0)
-#define QDMA_S80_HARD_GLBL_RNG_SZ_2_ADDR                   0x208
-#define GLBL_RNG_SZ_2_RSVD_1_MASK                          GENMASK(31, 16)
-#define GLBL_RNG_SZ_2_RING_SIZE_MASK                       GENMASK(15, 0)
-#define QDMA_S80_HARD_GLBL_RNG_SZ_3_ADDR                   0x20C
-#define GLBL_RNG_SZ_3_RSVD_1_MASK                          GENMASK(31, 16)
-#define GLBL_RNG_SZ_3_RING_SIZE_MASK                       GENMASK(15, 0)
-#define QDMA_S80_HARD_GLBL_RNG_SZ_4_ADDR                   0x210
-#define GLBL_RNG_SZ_4_RSVD_1_MASK                          GENMASK(31, 16)
-#define GLBL_RNG_SZ_4_RING_SIZE_MASK                       GENMASK(15, 0)
-#define QDMA_S80_HARD_GLBL_RNG_SZ_5_ADDR                   0x214
-#define GLBL_RNG_SZ_5_RSVD_1_MASK                          GENMASK(31, 16)
-#define GLBL_RNG_SZ_5_RING_SIZE_MASK                       GENMASK(15, 0)
-#define QDMA_S80_HARD_GLBL_RNG_SZ_6_ADDR                   0x218
-#define GLBL_RNG_SZ_6_RSVD_1_MASK                          GENMASK(31, 16)
-#define GLBL_RNG_SZ_6_RING_SIZE_MASK                       GENMASK(15, 0)
-#define QDMA_S80_HARD_GLBL_RNG_SZ_7_ADDR                   0x21C
-#define GLBL_RNG_SZ_7_RSVD_1_MASK                          GENMASK(31, 16)
-#define GLBL_RNG_SZ_7_RING_SIZE_MASK                       GENMASK(15, 0)
-#define QDMA_S80_HARD_GLBL_RNG_SZ_8_ADDR                   0x220
-#define GLBL_RNG_SZ_8_RSVD_1_MASK                          GENMASK(31, 16)
-#define GLBL_RNG_SZ_8_RING_SIZE_MASK                       GENMASK(15, 0)
-#define QDMA_S80_HARD_GLBL_RNG_SZ_9_ADDR                   0x224
-#define GLBL_RNG_SZ_9_RSVD_1_MASK                          GENMASK(31, 16)
-#define GLBL_RNG_SZ_9_RING_SIZE_MASK                       GENMASK(15, 0)
-#define QDMA_S80_HARD_GLBL_RNG_SZ_A_ADDR                   0x228
-#define GLBL_RNG_SZ_A_RSVD_1_MASK                          GENMASK(31, 16)
-#define GLBL_RNG_SZ_A_RING_SIZE_MASK                       GENMASK(15, 0)
-#define QDMA_S80_HARD_GLBL_RNG_SZ_B_ADDR                   0x22C
-#define GLBL_RNG_SZ_B_RSVD_1_MASK                          GENMASK(31, 16)
-#define GLBL_RNG_SZ_B_RING_SIZE_MASK                       GENMASK(15, 0)
-#define QDMA_S80_HARD_GLBL_RNG_SZ_C_ADDR                   0x230
-#define GLBL_RNG_SZ_C_RSVD_1_MASK                          GENMASK(31, 16)
-#define GLBL_RNG_SZ_C_RING_SIZE_MASK                       GENMASK(15, 0)
-#define QDMA_S80_HARD_GLBL_RNG_SZ_D_ADDR                   0x234
-#define GLBL_RNG_SZ_D_RSVD_1_MASK                          GENMASK(31, 16)
-#define GLBL_RNG_SZ_D_RING_SIZE_MASK                       GENMASK(15, 0)
-#define QDMA_S80_HARD_GLBL_RNG_SZ_E_ADDR                   0x238
-#define GLBL_RNG_SZ_E_RSVD_1_MASK                          GENMASK(31, 16)
-#define GLBL_RNG_SZ_E_RING_SIZE_MASK                       GENMASK(15, 0)
-#define QDMA_S80_HARD_GLBL_RNG_SZ_F_ADDR                   0x23C
-#define GLBL_RNG_SZ_F_RSVD_1_MASK                          GENMASK(31, 16)
-#define GLBL_RNG_SZ_F_RING_SIZE_MASK                       GENMASK(15, 0)
-#define QDMA_S80_HARD_GLBL_RNG_SZ_10_ADDR                  0x240
-#define GLBL_RNG_SZ_10_RSVD_1_MASK                         GENMASK(31, 16)
-#define GLBL_RNG_SZ_10_RING_SIZE_MASK                      GENMASK(15, 0)
-#define QDMA_S80_HARD_GLBL_ERR_STAT_ADDR                   0x248
-#define GLBL_ERR_STAT_RSVD_1_MASK                          GENMASK(31, 12)
-#define GLBL_ERR_STAT_ERR_H2C_ST_MASK                      BIT(11)
-#define GLBL_ERR_STAT_ERR_BDG_MASK                         BIT(10)
-#define GLBL_ERR_STAT_IND_CTXT_CMD_ERR_MASK                BIT(9)
-#define GLBL_ERR_STAT_ERR_C2H_ST_MASK                      BIT(8)
-#define GLBL_ERR_STAT_ERR_C2H_MM_1_MASK                    BIT(7)
-#define GLBL_ERR_STAT_ERR_C2H_MM_0_MASK                    BIT(6)
-#define GLBL_ERR_STAT_ERR_H2C_MM_1_MASK                    BIT(5)
-#define GLBL_ERR_STAT_ERR_H2C_MM_0_MASK                    BIT(4)
-#define GLBL_ERR_STAT_ERR_TRQ_MASK                         BIT(3)
-#define GLBL_ERR_STAT_ERR_DSC_MASK                         BIT(2)
-#define GLBL_ERR_STAT_ERR_RAM_DBE_MASK                     BIT(1)
-#define GLBL_ERR_STAT_ERR_RAM_SBE_MASK                     BIT(0)
-#define QDMA_S80_HARD_GLBL_ERR_MASK_ADDR                   0x24C
-#define GLBL_ERR_RSVD_1_MASK                          GENMASK(31, 9)
-#define GLBL_ERR_MASK                            GENMASK(8, 0)
-#define QDMA_S80_HARD_GLBL_DSC_CFG_ADDR                    0x250
-#define GLBL_DSC_CFG_RSVD_1_MASK                           GENMASK(31, 10)
-#define GLBL_DSC_CFG_UNC_OVR_COR_MASK                      BIT(9)
-#define GLBL_DSC_CFG_CTXT_FER_DIS_MASK                     BIT(8)
-#define GLBL_DSC_CFG_RSVD_2_MASK                           GENMASK(7, 6)
-#define GLBL_DSC_CFG_MAXFETCH_MASK                         GENMASK(5, 3)
-#define GLBL_DSC_CFG_WB_ACC_INT_MASK                       GENMASK(2, 0)
-#define QDMA_S80_HARD_GLBL_DSC_ERR_STS_ADDR                0x254
-#define GLBL_DSC_ERR_STS_RSVD_1_MASK                       GENMASK(31, 25)
-#define GLBL_DSC_ERR_STS_SBE_MASK                          BIT(24)
-#define GLBL_DSC_ERR_STS_DBE_MASK                          BIT(23)
-#define GLBL_DSC_ERR_STS_RQ_CANCEL_MASK                    BIT(22)
-#define GLBL_DSC_ERR_STS_DSC_MASK                          BIT(21)
-#define GLBL_DSC_ERR_STS_DMA_MASK                          BIT(20)
-#define GLBL_DSC_ERR_STS_FLR_CANCEL_MASK                   BIT(19)
-#define GLBL_DSC_ERR_STS_RSVD_2_MASK                       GENMASK(18, 17)
-#define GLBL_DSC_ERR_STS_DAT_POISON_MASK                   BIT(16)
-#define GLBL_DSC_ERR_STS_TIMEOUT_MASK                      BIT(9)
-#define GLBL_DSC_ERR_STS_FLR_MASK                          BIT(5)
-#define GLBL_DSC_ERR_STS_TAG_MASK                          BIT(4)
-#define GLBL_DSC_ERR_STS_ADDR_MASK                         BIT(3)
-#define GLBL_DSC_ERR_STS_PARAM_MASK                        BIT(2)
-#define GLBL_DSC_ERR_STS_UR_CA_MASK                        BIT(1)
-#define GLBL_DSC_ERR_STS_POISON_MASK                       BIT(0)
-#define QDMA_S80_HARD_GLBL_DSC_ERR_MSK_ADDR                0x258
-#define GLBL_DSC_ERR_MSK_MASK                         GENMASK(8, 0)
-#define QDMA_S80_HARD_GLBL_DSC_ERR_LOG0_ADDR               0x25C
-#define GLBL_DSC_ERR_LOG0_VALID_MASK                       BIT(31)
-#define GLBL_DSC_ERR_LOG0_RSVD_1_MASK                      GENMASK(30, 29)
-#define GLBL_DSC_ERR_LOG0_QID_MASK                         GENMASK(28, 17)
-#define GLBL_DSC_ERR_LOG0_SEL_MASK                         BIT(16)
-#define GLBL_DSC_ERR_LOG0_CIDX_MASK                        GENMASK(15, 0)
-#define QDMA_S80_HARD_GLBL_DSC_ERR_LOG1_ADDR               0x260
-#define GLBL_DSC_ERR_LOG1_RSVD_1_MASK                      GENMASK(31, 9)
-#define GLBL_DSC_ERR_LOG1_SUB_TYPE_MASK                    GENMASK(8, 5)
-#define GLBL_DSC_ERR_LOG1_ERR_TYPE_MASK                    GENMASK(4, 0)
-#define QDMA_S80_HARD_GLBL_TRQ_ERR_STS_ADDR                0x264
-#define GLBL_TRQ_ERR_STS_RSVD_1_MASK                       GENMASK(31, 4)
-#define GLBL_TRQ_ERR_STS_TCP_TIMEOUT_MASK                  BIT(3)
-#define GLBL_TRQ_ERR_STS_VF_ACCESS_ERR_MASK                BIT(2)
-#define GLBL_TRQ_ERR_STS_QID_RANGE_MASK                    BIT(1)
-#define GLBL_TRQ_ERR_STS_UNMAPPED_MASK                     BIT(0)
-#define QDMA_S80_HARD_GLBL_TRQ_ERR_MSK_ADDR                0x268
-#define GLBL_TRQ_ERR_MSK_MASK                         GENMASK(31, 0)
-#define QDMA_S80_HARD_GLBL_TRQ_ERR_LOG_ADDR                0x26C
-#define GLBL_TRQ_ERR_LOG_RSVD_1_MASK                       GENMASK(31, 28)
-#define GLBL_TRQ_ERR_LOG_TARGET_MASK                       GENMASK(27, 24)
-#define GLBL_TRQ_ERR_LOG_FUNC_MASK                         GENMASK(23, 16)
-#define GLBL_TRQ_ERR_LOG_ADDRESS_MASK                      GENMASK(15, 0)
-#define QDMA_S80_HARD_GLBL_DSC_DBG_DAT0_ADDR               0x270
-#define GLBL_DSC_DAT0_RSVD_1_MASK                      GENMASK(31, 30)
-#define GLBL_DSC_DAT0_CTXT_ARB_DIR_MASK                BIT(29)
-#define GLBL_DSC_DAT0_CTXT_ARB_QID_MASK                GENMASK(28, 17)
-#define GLBL_DSC_DAT0_CTXT_ARB_REQ_MASK                GENMASK(16, 12)
-#define GLBL_DSC_DAT0_IRQ_FIFO_FL_MASK                 BIT(11)
-#define GLBL_DSC_DAT0_TMSTALL_MASK                     BIT(10)
-#define GLBL_DSC_DAT0_RRQ_STALL_MASK                   GENMASK(9, 8)
-#define GLBL_DSC_DAT0_RCP_FIFO_SPC_STALL_MASK          GENMASK(7, 6)
-#define GLBL_DSC_DAT0_RRQ_FIFO_SPC_STALL_MASK          GENMASK(5, 4)
-#define GLBL_DSC_DAT0_FAB_MRKR_RSP_STALL_MASK          GENMASK(3, 2)
-#define GLBL_DSC_DAT0_DSC_OUT_STALL_MASK               GENMASK(1, 0)
-#define QDMA_S80_HARD_GLBL_DSC_DBG_DAT1_ADDR               0x274
-#define GLBL_DSC_DAT1_RSVD_1_MASK                      GENMASK(31, 28)
-#define GLBL_DSC_DAT1_EVT_SPC_C2H_MASK                 GENMASK(27, 22)
-#define GLBL_DSC_DAT1_EVT_SP_H2C_MASK                  GENMASK(21, 16)
-#define GLBL_DSC_DAT1_DSC_SPC_C2H_MASK                 GENMASK(15, 8)
-#define GLBL_DSC_DAT1_DSC_SPC_H2C_MASK                 GENMASK(7, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_0_ADDR                  0x400
-#define TRQ_SEL_FMAP_0_RSVD_1_MASK                         GENMASK(31, 23)
-#define TRQ_SEL_FMAP_0_QID_MAX_MASK                        GENMASK(22, 11)
-#define TRQ_SEL_FMAP_0_QID_BASE_MASK                       GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_1_ADDR                  0x404
-#define TRQ_SEL_FMAP_1_RSVD_1_MASK                         GENMASK(31, 23)
-#define TRQ_SEL_FMAP_1_QID_MAX_MASK                        GENMASK(22, 11)
-#define TRQ_SEL_FMAP_1_QID_BASE_MASK                       GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_2_ADDR                  0x408
-#define TRQ_SEL_FMAP_2_RSVD_1_MASK                         GENMASK(31, 23)
-#define TRQ_SEL_FMAP_2_QID_MAX_MASK                        GENMASK(22, 11)
-#define TRQ_SEL_FMAP_2_QID_BASE_MASK                       GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_3_ADDR                  0x40C
-#define TRQ_SEL_FMAP_3_RSVD_1_MASK                         GENMASK(31, 23)
-#define TRQ_SEL_FMAP_3_QID_MAX_MASK                        GENMASK(22, 11)
-#define TRQ_SEL_FMAP_3_QID_BASE_MASK                       GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_4_ADDR                  0x410
-#define TRQ_SEL_FMAP_4_RSVD_1_MASK                         GENMASK(31, 23)
-#define TRQ_SEL_FMAP_4_QID_MAX_MASK                        GENMASK(22, 11)
-#define TRQ_SEL_FMAP_4_QID_BASE_MASK                       GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_5_ADDR                  0x414
-#define TRQ_SEL_FMAP_5_RSVD_1_MASK                         GENMASK(31, 23)
-#define TRQ_SEL_FMAP_5_QID_MAX_MASK                        GENMASK(22, 11)
-#define TRQ_SEL_FMAP_5_QID_BASE_MASK                       GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_6_ADDR                  0x418
-#define TRQ_SEL_FMAP_6_RSVD_1_MASK                         GENMASK(31, 23)
-#define TRQ_SEL_FMAP_6_QID_MAX_MASK                        GENMASK(22, 11)
-#define TRQ_SEL_FMAP_6_QID_BASE_MASK                       GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_7_ADDR                  0x41C
-#define TRQ_SEL_FMAP_7_RSVD_1_MASK                         GENMASK(31, 23)
-#define TRQ_SEL_FMAP_7_QID_MAX_MASK                        GENMASK(22, 11)
-#define TRQ_SEL_FMAP_7_QID_BASE_MASK                       GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_8_ADDR                  0x420
-#define TRQ_SEL_FMAP_8_RSVD_1_MASK                         GENMASK(31, 23)
-#define TRQ_SEL_FMAP_8_QID_MAX_MASK                        GENMASK(22, 11)
-#define TRQ_SEL_FMAP_8_QID_BASE_MASK                       GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_9_ADDR                  0x424
-#define TRQ_SEL_FMAP_9_RSVD_1_MASK                         GENMASK(31, 23)
-#define TRQ_SEL_FMAP_9_QID_MAX_MASK                        GENMASK(22, 11)
-#define TRQ_SEL_FMAP_9_QID_BASE_MASK                       GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_A_ADDR                  0x428
-#define TRQ_SEL_FMAP_A_RSVD_1_MASK                         GENMASK(31, 23)
-#define TRQ_SEL_FMAP_A_QID_MAX_MASK                        GENMASK(22, 11)
-#define TRQ_SEL_FMAP_A_QID_BASE_MASK                       GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_B_ADDR                  0x42C
-#define TRQ_SEL_FMAP_B_RSVD_1_MASK                         GENMASK(31, 23)
-#define TRQ_SEL_FMAP_B_QID_MAX_MASK                        GENMASK(22, 11)
-#define TRQ_SEL_FMAP_B_QID_BASE_MASK                       GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_D_ADDR                  0x430
-#define TRQ_SEL_FMAP_D_RSVD_1_MASK                         GENMASK(31, 23)
-#define TRQ_SEL_FMAP_D_QID_MAX_MASK                        GENMASK(22, 11)
-#define TRQ_SEL_FMAP_D_QID_BASE_MASK                       GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_E_ADDR                  0x434
-#define TRQ_SEL_FMAP_E_RSVD_1_MASK                         GENMASK(31, 23)
-#define TRQ_SEL_FMAP_E_QID_MAX_MASK                        GENMASK(22, 11)
-#define TRQ_SEL_FMAP_E_QID_BASE_MASK                       GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_F_ADDR                  0x438
-#define TRQ_SEL_FMAP_F_RSVD_1_MASK                         GENMASK(31, 23)
-#define TRQ_SEL_FMAP_F_QID_MAX_MASK                        GENMASK(22, 11)
-#define TRQ_SEL_FMAP_F_QID_BASE_MASK                       GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_10_ADDR                 0x43C
-#define TRQ_SEL_FMAP_10_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_10_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_10_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_11_ADDR                 0x440
-#define TRQ_SEL_FMAP_11_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_11_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_11_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_12_ADDR                 0x444
-#define TRQ_SEL_FMAP_12_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_12_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_12_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_13_ADDR                 0x448
-#define TRQ_SEL_FMAP_13_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_13_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_13_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_14_ADDR                 0x44C
-#define TRQ_SEL_FMAP_14_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_14_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_14_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_15_ADDR                 0x450
-#define TRQ_SEL_FMAP_15_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_15_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_15_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_16_ADDR                 0x454
-#define TRQ_SEL_FMAP_16_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_16_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_16_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_17_ADDR                 0x458
-#define TRQ_SEL_FMAP_17_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_17_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_17_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_18_ADDR                 0x45C
-#define TRQ_SEL_FMAP_18_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_18_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_18_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_19_ADDR                 0x460
-#define TRQ_SEL_FMAP_19_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_19_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_19_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_1A_ADDR                 0x464
-#define TRQ_SEL_FMAP_1A_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_1A_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_1A_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_1B_ADDR                 0x468
-#define TRQ_SEL_FMAP_1B_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_1B_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_1B_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_1C_ADDR                 0x46C
-#define TRQ_SEL_FMAP_1C_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_1C_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_1C_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_1D_ADDR                 0x470
-#define TRQ_SEL_FMAP_1D_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_1D_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_1D_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_1E_ADDR                 0x474
-#define TRQ_SEL_FMAP_1E_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_1E_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_1E_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_1F_ADDR                 0x478
-#define TRQ_SEL_FMAP_1F_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_1F_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_1F_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_20_ADDR                 0x47C
-#define TRQ_SEL_FMAP_20_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_20_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_20_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_21_ADDR                 0x480
-#define TRQ_SEL_FMAP_21_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_21_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_21_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_22_ADDR                 0x484
-#define TRQ_SEL_FMAP_22_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_22_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_22_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_23_ADDR                 0x488
-#define TRQ_SEL_FMAP_23_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_23_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_23_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_24_ADDR                 0x48C
-#define TRQ_SEL_FMAP_24_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_24_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_24_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_25_ADDR                 0x490
-#define TRQ_SEL_FMAP_25_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_25_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_25_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_26_ADDR                 0x494
-#define TRQ_SEL_FMAP_26_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_26_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_26_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_27_ADDR                 0x498
-#define TRQ_SEL_FMAP_27_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_27_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_27_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_28_ADDR                 0x49C
-#define TRQ_SEL_FMAP_28_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_28_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_28_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_29_ADDR                 0x4A0
-#define TRQ_SEL_FMAP_29_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_29_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_29_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_2A_ADDR                 0x4A4
-#define TRQ_SEL_FMAP_2A_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_2A_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_2A_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_2B_ADDR                 0x4A8
-#define TRQ_SEL_FMAP_2B_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_2B_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_2B_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_2C_ADDR                 0x4AC
-#define TRQ_SEL_FMAP_2C_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_2C_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_2C_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_2D_ADDR                 0x4B0
-#define TRQ_SEL_FMAP_2D_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_2D_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_2D_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_2E_ADDR                 0x4B4
-#define TRQ_SEL_FMAP_2E_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_2E_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_2E_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_2F_ADDR                 0x4B8
-#define TRQ_SEL_FMAP_2F_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_2F_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_2F_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_30_ADDR                 0x4BC
-#define TRQ_SEL_FMAP_30_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_30_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_30_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_31_ADDR                 0x4D0
-#define TRQ_SEL_FMAP_31_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_31_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_31_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_32_ADDR                 0x4D4
-#define TRQ_SEL_FMAP_32_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_32_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_32_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_33_ADDR                 0x4D8
-#define TRQ_SEL_FMAP_33_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_33_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_33_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_34_ADDR                 0x4DC
-#define TRQ_SEL_FMAP_34_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_34_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_34_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_35_ADDR                 0x4E0
-#define TRQ_SEL_FMAP_35_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_35_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_35_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_36_ADDR                 0x4E4
-#define TRQ_SEL_FMAP_36_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_36_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_36_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_37_ADDR                 0x4E8
-#define TRQ_SEL_FMAP_37_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_37_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_37_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_38_ADDR                 0x4EC
-#define TRQ_SEL_FMAP_38_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_38_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_38_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_39_ADDR                 0x4F0
-#define TRQ_SEL_FMAP_39_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_39_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_39_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_3A_ADDR                 0x4F4
-#define TRQ_SEL_FMAP_3A_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_3A_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_3A_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_3B_ADDR                 0x4F8
-#define TRQ_SEL_FMAP_3B_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_3B_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_3B_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_3C_ADDR                 0x4FC
-#define TRQ_SEL_FMAP_3C_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_3C_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_3C_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_3D_ADDR                 0x500
-#define TRQ_SEL_FMAP_3D_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_3D_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_3D_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_3E_ADDR                 0x504
-#define TRQ_SEL_FMAP_3E_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_3E_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_3E_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_3F_ADDR                 0x508
-#define TRQ_SEL_FMAP_3F_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_3F_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_3F_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_40_ADDR                 0x50C
-#define TRQ_SEL_FMAP_40_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_40_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_40_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_41_ADDR                 0x510
-#define TRQ_SEL_FMAP_41_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_41_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_41_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_42_ADDR                 0x514
-#define TRQ_SEL_FMAP_42_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_42_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_42_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_43_ADDR                 0x518
-#define TRQ_SEL_FMAP_43_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_43_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_43_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_44_ADDR                 0x51C
-#define TRQ_SEL_FMAP_44_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_44_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_44_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_45_ADDR                 0x520
-#define TRQ_SEL_FMAP_45_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_45_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_45_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_46_ADDR                 0x524
-#define TRQ_SEL_FMAP_46_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_46_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_46_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_47_ADDR                 0x528
-#define TRQ_SEL_FMAP_47_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_47_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_47_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_48_ADDR                 0x52C
-#define TRQ_SEL_FMAP_48_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_48_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_48_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_49_ADDR                 0x530
-#define TRQ_SEL_FMAP_49_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_49_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_49_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_4A_ADDR                 0x534
-#define TRQ_SEL_FMAP_4A_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_4A_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_4A_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_4B_ADDR                 0x538
-#define TRQ_SEL_FMAP_4B_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_4B_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_4B_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_4C_ADDR                 0x53C
-#define TRQ_SEL_FMAP_4C_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_4C_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_4C_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_4D_ADDR                 0x540
-#define TRQ_SEL_FMAP_4D_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_4D_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_4D_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_4E_ADDR                 0x544
-#define TRQ_SEL_FMAP_4E_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_4E_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_4E_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_4F_ADDR                 0x548
-#define TRQ_SEL_FMAP_4F_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_4F_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_4F_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_50_ADDR                 0x54C
-#define TRQ_SEL_FMAP_50_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_50_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_50_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_51_ADDR                 0x550
-#define TRQ_SEL_FMAP_51_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_51_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_51_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_52_ADDR                 0x554
-#define TRQ_SEL_FMAP_52_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_52_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_52_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_53_ADDR                 0x558
-#define TRQ_SEL_FMAP_53_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_53_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_53_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_54_ADDR                 0x55C
-#define TRQ_SEL_FMAP_54_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_54_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_54_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_55_ADDR                 0x560
-#define TRQ_SEL_FMAP_55_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_55_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_55_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_56_ADDR                 0x564
-#define TRQ_SEL_FMAP_56_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_56_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_56_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_57_ADDR                 0x568
-#define TRQ_SEL_FMAP_57_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_57_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_57_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_58_ADDR                 0x56C
-#define TRQ_SEL_FMAP_58_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_58_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_58_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_59_ADDR                 0x570
-#define TRQ_SEL_FMAP_59_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_59_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_59_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_5A_ADDR                 0x574
-#define TRQ_SEL_FMAP_5A_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_5A_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_5A_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_5B_ADDR                 0x578
-#define TRQ_SEL_FMAP_5B_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_5B_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_5B_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_5C_ADDR                 0x57C
-#define TRQ_SEL_FMAP_5C_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_5C_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_5C_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_5D_ADDR                 0x580
-#define TRQ_SEL_FMAP_5D_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_5D_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_5D_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_5E_ADDR                 0x584
-#define TRQ_SEL_FMAP_5E_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_5E_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_5E_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_5F_ADDR                 0x588
-#define TRQ_SEL_FMAP_5F_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_5F_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_5F_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_60_ADDR                 0x58C
-#define TRQ_SEL_FMAP_60_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_60_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_60_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_61_ADDR                 0x590
-#define TRQ_SEL_FMAP_61_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_61_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_61_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_62_ADDR                 0x594
-#define TRQ_SEL_FMAP_62_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_62_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_62_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_63_ADDR                 0x598
-#define TRQ_SEL_FMAP_63_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_63_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_63_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_64_ADDR                 0x59C
-#define TRQ_SEL_FMAP_64_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_64_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_64_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_65_ADDR                 0x5A0
-#define TRQ_SEL_FMAP_65_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_65_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_65_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_66_ADDR                 0x5A4
-#define TRQ_SEL_FMAP_66_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_66_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_66_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_67_ADDR                 0x5A8
-#define TRQ_SEL_FMAP_67_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_67_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_67_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_68_ADDR                 0x5AC
-#define TRQ_SEL_FMAP_68_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_68_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_68_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_69_ADDR                 0x5B0
-#define TRQ_SEL_FMAP_69_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_69_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_69_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_6A_ADDR                 0x5B4
-#define TRQ_SEL_FMAP_6A_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_6A_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_6A_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_6B_ADDR                 0x5B8
-#define TRQ_SEL_FMAP_6B_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_6B_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_6B_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_6C_ADDR                 0x5BC
-#define TRQ_SEL_FMAP_6C_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_6C_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_6C_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_6D_ADDR                 0x5C0
-#define TRQ_SEL_FMAP_6D_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_6D_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_6D_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_6E_ADDR                 0x5C4
-#define TRQ_SEL_FMAP_6E_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_6E_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_6E_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_6F_ADDR                 0x5C8
-#define TRQ_SEL_FMAP_6F_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_6F_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_6F_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_70_ADDR                 0x5CC
-#define TRQ_SEL_FMAP_70_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_70_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_70_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_71_ADDR                 0x5D0
-#define TRQ_SEL_FMAP_71_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_71_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_71_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_72_ADDR                 0x5D4
-#define TRQ_SEL_FMAP_72_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_72_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_72_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_73_ADDR                 0x5D8
-#define TRQ_SEL_FMAP_73_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_73_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_73_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_74_ADDR                 0x5DC
-#define TRQ_SEL_FMAP_74_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_74_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_74_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_75_ADDR                 0x5E0
-#define TRQ_SEL_FMAP_75_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_75_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_75_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_76_ADDR                 0x5E4
-#define TRQ_SEL_FMAP_76_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_76_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_76_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_77_ADDR                 0x5E8
-#define TRQ_SEL_FMAP_77_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_77_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_77_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_78_ADDR                 0x5EC
-#define TRQ_SEL_FMAP_78_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_78_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_78_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_79_ADDR                 0x5F0
-#define TRQ_SEL_FMAP_79_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_79_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_79_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_7A_ADDR                 0x5F4
-#define TRQ_SEL_FMAP_7A_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_7A_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_7A_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_7B_ADDR                 0x5F8
-#define TRQ_SEL_FMAP_7B_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_7B_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_7B_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_7C_ADDR                 0x5FC
-#define TRQ_SEL_FMAP_7C_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_7C_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_7C_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_7D_ADDR                 0x600
-#define TRQ_SEL_FMAP_7D_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_7D_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_7D_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_7E_ADDR                 0x604
-#define TRQ_SEL_FMAP_7E_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_7E_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_7E_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_7F_ADDR                 0x608
-#define TRQ_SEL_FMAP_7F_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_7F_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_7F_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_80_ADDR                 0x60C
-#define TRQ_SEL_FMAP_80_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_80_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_80_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_81_ADDR                 0x610
-#define TRQ_SEL_FMAP_81_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_81_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_81_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_82_ADDR                 0x614
-#define TRQ_SEL_FMAP_82_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_82_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_82_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_83_ADDR                 0x618
-#define TRQ_SEL_FMAP_83_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_83_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_83_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_84_ADDR                 0x61C
-#define TRQ_SEL_FMAP_84_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_84_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_84_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_85_ADDR                 0x620
-#define TRQ_SEL_FMAP_85_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_85_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_85_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_86_ADDR                 0x624
-#define TRQ_SEL_FMAP_86_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_86_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_86_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_87_ADDR                 0x628
-#define TRQ_SEL_FMAP_87_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_87_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_87_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_88_ADDR                 0x62C
-#define TRQ_SEL_FMAP_88_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_88_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_88_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_89_ADDR                 0x630
-#define TRQ_SEL_FMAP_89_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_89_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_89_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_8A_ADDR                 0x634
-#define TRQ_SEL_FMAP_8A_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_8A_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_8A_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_8B_ADDR                 0x638
-#define TRQ_SEL_FMAP_8B_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_8B_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_8B_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_8C_ADDR                 0x63C
-#define TRQ_SEL_FMAP_8C_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_8C_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_8C_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_8D_ADDR                 0x640
-#define TRQ_SEL_FMAP_8D_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_8D_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_8D_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_8E_ADDR                 0x644
-#define TRQ_SEL_FMAP_8E_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_8E_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_8E_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_8F_ADDR                 0x648
-#define TRQ_SEL_FMAP_8F_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_8F_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_8F_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_90_ADDR                 0x64C
-#define TRQ_SEL_FMAP_90_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_90_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_90_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_91_ADDR                 0x650
-#define TRQ_SEL_FMAP_91_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_91_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_91_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_92_ADDR                 0x654
-#define TRQ_SEL_FMAP_92_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_92_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_92_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_93_ADDR                 0x658
-#define TRQ_SEL_FMAP_93_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_93_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_93_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_94_ADDR                 0x65C
-#define TRQ_SEL_FMAP_94_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_94_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_94_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_95_ADDR                 0x660
-#define TRQ_SEL_FMAP_95_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_95_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_95_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_96_ADDR                 0x664
-#define TRQ_SEL_FMAP_96_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_96_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_96_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_97_ADDR                 0x668
-#define TRQ_SEL_FMAP_97_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_97_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_97_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_98_ADDR                 0x66C
-#define TRQ_SEL_FMAP_98_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_98_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_98_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_99_ADDR                 0x670
-#define TRQ_SEL_FMAP_99_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_99_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_99_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_9A_ADDR                 0x674
-#define TRQ_SEL_FMAP_9A_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_9A_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_9A_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_9B_ADDR                 0x678
-#define TRQ_SEL_FMAP_9B_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_9B_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_9B_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_9C_ADDR                 0x67C
-#define TRQ_SEL_FMAP_9C_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_9C_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_9C_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_9D_ADDR                 0x680
-#define TRQ_SEL_FMAP_9D_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_9D_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_9D_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_9E_ADDR                 0x684
-#define TRQ_SEL_FMAP_9E_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_9E_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_9E_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_9F_ADDR                 0x688
-#define TRQ_SEL_FMAP_9F_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_9F_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_9F_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_A0_ADDR                 0x68C
-#define TRQ_SEL_FMAP_A0_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_A0_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_A0_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_A1_ADDR                 0x690
-#define TRQ_SEL_FMAP_A1_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_A1_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_A1_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_A2_ADDR                 0x694
-#define TRQ_SEL_FMAP_A2_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_A2_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_A2_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_A3_ADDR                 0x698
-#define TRQ_SEL_FMAP_A3_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_A3_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_A3_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_A4_ADDR                 0x69C
-#define TRQ_SEL_FMAP_A4_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_A4_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_A4_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_A5_ADDR                 0x6A0
-#define TRQ_SEL_FMAP_A5_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_A5_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_A5_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_A6_ADDR                 0x6A4
-#define TRQ_SEL_FMAP_A6_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_A6_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_A6_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_A7_ADDR                 0x6A8
-#define TRQ_SEL_FMAP_A7_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_A7_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_A7_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_A8_ADDR                 0x6AC
-#define TRQ_SEL_FMAP_A8_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_A8_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_A8_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_A9_ADDR                 0x6B0
-#define TRQ_SEL_FMAP_A9_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_A9_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_A9_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_AA_ADDR                 0x6B4
-#define TRQ_SEL_FMAP_AA_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_AA_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_AA_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_AB_ADDR                 0x6B8
-#define TRQ_SEL_FMAP_AB_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_AB_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_AB_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_AC_ADDR                 0x6BC
-#define TRQ_SEL_FMAP_AC_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_AC_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_AC_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_AD_ADDR                 0x6D0
-#define TRQ_SEL_FMAP_AD_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_AD_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_AD_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_AE_ADDR                 0x6D4
-#define TRQ_SEL_FMAP_AE_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_AE_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_AE_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_AF_ADDR                 0x6D8
-#define TRQ_SEL_FMAP_AF_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_AF_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_AF_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_B0_ADDR                 0x6DC
-#define TRQ_SEL_FMAP_B0_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_B0_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_B0_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_B1_ADDR                 0x6E0
-#define TRQ_SEL_FMAP_B1_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_B1_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_B1_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_B2_ADDR                 0x6E4
-#define TRQ_SEL_FMAP_B2_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_B2_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_B2_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_B3_ADDR                 0x6E8
-#define TRQ_SEL_FMAP_B3_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_B3_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_B3_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_B4_ADDR                 0x6EC
-#define TRQ_SEL_FMAP_B4_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_B4_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_B4_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_B5_ADDR                 0x6F0
-#define TRQ_SEL_FMAP_B5_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_B5_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_B5_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_B6_ADDR                 0x6F4
-#define TRQ_SEL_FMAP_B6_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_B6_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_B6_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_B7_ADDR                 0x6F8
-#define TRQ_SEL_FMAP_B7_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_B7_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_B7_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_B8_ADDR                 0x6FC
-#define TRQ_SEL_FMAP_B8_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_B8_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_B8_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_B9_ADDR                 0x700
-#define TRQ_SEL_FMAP_B9_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_B9_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_B9_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_BA_ADDR                 0x704
-#define TRQ_SEL_FMAP_BA_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_BA_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_BA_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_BB_ADDR                 0x708
-#define TRQ_SEL_FMAP_BB_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_BB_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_BB_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_BC_ADDR                 0x70C
-#define TRQ_SEL_FMAP_BC_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_BC_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_BC_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_BD_ADDR                 0x710
-#define TRQ_SEL_FMAP_BD_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_BD_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_BD_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_BE_ADDR                 0x714
-#define TRQ_SEL_FMAP_BE_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_BE_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_BE_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_BF_ADDR                 0x718
-#define TRQ_SEL_FMAP_BF_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_BF_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_BF_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_C0_ADDR                 0x71C
-#define TRQ_SEL_FMAP_C0_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_C0_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_C0_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_C1_ADDR                 0x720
-#define TRQ_SEL_FMAP_C1_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_C1_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_C1_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_C2_ADDR                 0x734
-#define TRQ_SEL_FMAP_C2_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_C2_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_C2_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_C3_ADDR                 0x748
-#define TRQ_SEL_FMAP_C3_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_C3_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_C3_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_C4_ADDR                 0x74C
-#define TRQ_SEL_FMAP_C4_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_C4_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_C4_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_C5_ADDR                 0x750
-#define TRQ_SEL_FMAP_C5_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_C5_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_C5_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_C6_ADDR                 0x754
-#define TRQ_SEL_FMAP_C6_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_C6_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_C6_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_C7_ADDR                 0x758
-#define TRQ_SEL_FMAP_C7_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_C7_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_C7_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_C8_ADDR                 0x75C
-#define TRQ_SEL_FMAP_C8_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_C8_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_C8_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_C9_ADDR                 0x760
-#define TRQ_SEL_FMAP_C9_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_C9_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_C9_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_CA_ADDR                 0x764
-#define TRQ_SEL_FMAP_CA_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_CA_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_CA_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_CB_ADDR                 0x768
-#define TRQ_SEL_FMAP_CB_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_CB_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_CB_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_CC_ADDR                 0x76C
-#define TRQ_SEL_FMAP_CC_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_CC_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_CC_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_CD_ADDR                 0x770
-#define TRQ_SEL_FMAP_CD_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_CD_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_CD_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_CE_ADDR                 0x774
-#define TRQ_SEL_FMAP_CE_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_CE_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_CE_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_CF_ADDR                 0x778
-#define TRQ_SEL_FMAP_CF_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_CF_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_CF_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_D0_ADDR                 0x77C
-#define TRQ_SEL_FMAP_D0_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_D0_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_D0_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_D1_ADDR                 0x780
-#define TRQ_SEL_FMAP_D1_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_D1_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_D1_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_D2_ADDR                 0x784
-#define TRQ_SEL_FMAP_D2_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_D2_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_D2_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_D3_ADDR                 0x788
-#define TRQ_SEL_FMAP_D3_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_D3_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_D3_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_D4_ADDR                 0x78C
-#define TRQ_SEL_FMAP_D4_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_D4_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_D4_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_D5_ADDR                 0x790
-#define TRQ_SEL_FMAP_D5_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_D5_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_D5_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_D6_ADDR                 0x794
-#define TRQ_SEL_FMAP_D6_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_D6_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_D6_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_D7_ADDR                 0x798
-#define TRQ_SEL_FMAP_D7_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_D7_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_D7_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_D8_ADDR                 0x79C
-#define TRQ_SEL_FMAP_D8_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_D8_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_D8_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_D9_ADDR                 0x7A0
-#define TRQ_SEL_FMAP_D9_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_D9_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_D9_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_DA_ADDR                 0x7A4
-#define TRQ_SEL_FMAP_DA_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_DA_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_DA_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_DB_ADDR                 0x7A8
-#define TRQ_SEL_FMAP_DB_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_DB_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_DB_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_DC_ADDR                 0x7AC
-#define TRQ_SEL_FMAP_DC_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_DC_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_DC_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_DD_ADDR                 0x7B0
-#define TRQ_SEL_FMAP_DD_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_DD_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_DD_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_DE_ADDR                 0x7B4
-#define TRQ_SEL_FMAP_DE_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_DE_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_DE_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_DF_ADDR                 0x7B8
-#define TRQ_SEL_FMAP_DF_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_DF_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_DF_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_E0_ADDR                 0x7BC
-#define TRQ_SEL_FMAP_E0_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_E0_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_E0_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_E1_ADDR                 0x7C0
-#define TRQ_SEL_FMAP_E1_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_E1_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_E1_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_E2_ADDR                 0x7C4
-#define TRQ_SEL_FMAP_E2_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_E2_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_E2_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_E3_ADDR                 0x7C8
-#define TRQ_SEL_FMAP_E3_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_E3_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_E3_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_E4_ADDR                 0x7CC
-#define TRQ_SEL_FMAP_E4_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_E4_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_E4_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_E5_ADDR                 0x7D0
-#define TRQ_SEL_FMAP_E5_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_E5_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_E5_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_E6_ADDR                 0x7D4
-#define TRQ_SEL_FMAP_E6_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_E6_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_E6_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_E7_ADDR                 0x7D8
-#define TRQ_SEL_FMAP_E7_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_E7_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_E7_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_E8_ADDR                 0x7DC
-#define TRQ_SEL_FMAP_E8_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_E8_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_E8_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_E9_ADDR                 0x7E0
-#define TRQ_SEL_FMAP_E9_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_E9_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_E9_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_EA_ADDR                 0x7E4
-#define TRQ_SEL_FMAP_EA_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_EA_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_EA_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_EB_ADDR                 0x7E8
-#define TRQ_SEL_FMAP_EB_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_EB_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_EB_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_EC_ADDR                 0x7EC
-#define TRQ_SEL_FMAP_EC_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_EC_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_EC_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_ED_ADDR                 0x7F0
-#define TRQ_SEL_FMAP_ED_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_ED_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_ED_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_EE_ADDR                 0x7F4
-#define TRQ_SEL_FMAP_EE_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_EE_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_EE_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_EF_ADDR                 0x7F8
-#define TRQ_SEL_FMAP_EF_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_EF_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_EF_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_TRQ_SEL_FMAP_F0_ADDR                 0x7FC
-#define TRQ_SEL_FMAP_F0_RSVD_1_MASK                        GENMASK(31, 23)
-#define TRQ_SEL_FMAP_F0_QID_MAX_MASK                       GENMASK(22, 11)
-#define TRQ_SEL_FMAP_F0_QID_BASE_MASK                      GENMASK(10, 0)
-#define QDMA_S80_HARD_IND_CTXT_DATA_3_ADDR                 0x804
-#define IND_CTXT_DATA_3_DATA_MASK                          GENMASK(31, 0)
-#define QDMA_S80_HARD_IND_CTXT_DATA_2_ADDR                 0x808
-#define IND_CTXT_DATA_2_DATA_MASK                          GENMASK(31, 0)
-#define QDMA_S80_HARD_IND_CTXT_DATA_1_ADDR                 0x80C
-#define IND_CTXT_DATA_1_DATA_MASK                          GENMASK(31, 0)
-#define QDMA_S80_HARD_IND_CTXT_DATA_0_ADDR                 0x810
-#define IND_CTXT_DATA_0_DATA_MASK                          GENMASK(31, 0)
-#define QDMA_S80_HARD_IND_CTXT3_ADDR                       0x814
-#define IND_CTXT3_MASK                                GENMASK(31, 0)
-#define QDMA_S80_HARD_IND_CTXT2_ADDR                       0x818
-#define IND_CTXT2_MASK                                GENMASK(31, 0)
-#define QDMA_S80_HARD_IND_CTXT1_ADDR                       0x81C
-#define IND_CTXT1_MASK                                GENMASK(31, 0)
-#define QDMA_S80_HARD_IND_CTXT0_ADDR                       0x820
-#define IND_CTXT0_MASK                                GENMASK(31, 0)
-#define QDMA_S80_HARD_IND_CTXT_CMD_ADDR                    0x824
-#define IND_CTXT_CMD_RSVD_1_MASK                           GENMASK(31, 18)
-#define IND_CTXT_CMD_QID_MASK                              GENMASK(17, 7)
-#define IND_CTXT_CMD_OP_MASK                               GENMASK(6, 5)
-#define IND_CTXT_CMD_SET_MASK                              GENMASK(4, 1)
-#define IND_CTXT_CMD_BUSY_MASK                             BIT(0)
-#define QDMA_S80_HARD_C2H_TIMER_CNT_1_ADDR                 0xA00
-#define C2H_TIMER_CNT_1_RSVD_1_MASK                        GENMASK(31, 8)
-#define C2H_TIMER_CNT_1_MASK                              GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_TIMER_CNT_2_ADDR                 0xA04
-#define C2H_TIMER_CNT_2_RSVD_1_MASK                        GENMASK(31, 8)
-#define C2H_TIMER_CNT_2_MASK                              GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_TIMER_CNT_3_ADDR                 0xA08
-#define C2H_TIMER_CNT_3_RSVD_1_MASK                        GENMASK(31, 8)
-#define C2H_TIMER_CNT_3_MASK                              GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_TIMER_CNT_4_ADDR                 0xA0C
-#define C2H_TIMER_CNT_4_RSVD_1_MASK                        GENMASK(31, 8)
-#define C2H_TIMER_CNT_4_MASK                              GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_TIMER_CNT_5_ADDR                 0xA10
-#define C2H_TIMER_CNT_5_RSVD_1_MASK                        GENMASK(31, 8)
-#define C2H_TIMER_CNT_5_MASK                              GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_TIMER_CNT_6_ADDR                 0xA14
-#define C2H_TIMER_CNT_6_RSVD_1_MASK                        GENMASK(31, 8)
-#define C2H_TIMER_CNT_6_MASK                              GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_TIMER_CNT_7_ADDR                 0xA18
-#define C2H_TIMER_CNT_7_RSVD_1_MASK                        GENMASK(31, 8)
-#define C2H_TIMER_CNT_7_MASK                              GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_TIMER_CNT_8_ADDR                 0xA1C
-#define C2H_TIMER_CNT_8_RSVD_1_MASK                        GENMASK(31, 8)
-#define C2H_TIMER_CNT_8_MASK                              GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_TIMER_CNT_9_ADDR                 0xA20
-#define C2H_TIMER_CNT_9_RSVD_1_MASK                        GENMASK(31, 8)
-#define C2H_TIMER_CNT_9_MASK                              GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_TIMER_CNT_A_ADDR                 0xA24
-#define C2H_TIMER_CNT_A_RSVD_1_MASK                        GENMASK(31, 8)
-#define C2H_TIMER_CNT_A_MASK                              GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_TIMER_CNT_B_ADDR                 0xA28
-#define C2H_TIMER_CNT_B_RSVD_1_MASK                        GENMASK(31, 8)
-#define C2H_TIMER_CNT_B_MASK                              GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_TIMER_CNT_C_ADDR                 0xA2C
-#define C2H_TIMER_CNT_C_RSVD_1_MASK                        GENMASK(31, 8)
-#define C2H_TIMER_CNT_C_MASK                              GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_TIMER_CNT_D_ADDR                 0xA30
-#define C2H_TIMER_CNT_D_RSVD_1_MASK                        GENMASK(31, 8)
-#define C2H_TIMER_CNT_D_MASK                              GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_TIMER_CNT_E_ADDR                 0xA34
-#define C2H_TIMER_CNT_E_RSVD_1_MASK                        GENMASK(31, 8)
-#define C2H_TIMER_CNT_E_MASK                              GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_TIMER_CNT_F_ADDR                 0xA38
-#define C2H_TIMER_CNT_F_RSVD_1_MASK                        GENMASK(31, 8)
-#define C2H_TIMER_CNT_F_MASK                              GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_TIMER_CNT_10_ADDR                0xA3C
-#define C2H_TIMER_CNT_10_RSVD_1_MASK                       GENMASK(31, 8)
-#define C2H_TIMER_CNT_10_MASK                             GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_CNT_TH_1_ADDR                    0xA40
-#define C2H_CNT_TH_1_RSVD_1_MASK                           GENMASK(31, 8)
-#define C2H_CNT_TH_1_THESHOLD_CNT_MASK                     GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_CNT_TH_2_ADDR                    0xA44
-#define C2H_CNT_TH_2_RSVD_1_MASK                           GENMASK(31, 8)
-#define C2H_CNT_TH_2_THESHOLD_CNT_MASK                     GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_CNT_TH_3_ADDR                    0xA48
-#define C2H_CNT_TH_3_RSVD_1_MASK                           GENMASK(31, 8)
-#define C2H_CNT_TH_3_THESHOLD_CNT_MASK                     GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_CNT_TH_4_ADDR                    0xA4C
-#define C2H_CNT_TH_4_RSVD_1_MASK                           GENMASK(31, 8)
-#define C2H_CNT_TH_4_THESHOLD_CNT_MASK                     GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_CNT_TH_5_ADDR                    0xA50
-#define C2H_CNT_TH_5_RSVD_1_MASK                           GENMASK(31, 8)
-#define C2H_CNT_TH_5_THESHOLD_CNT_MASK                     GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_CNT_TH_6_ADDR                    0xA54
-#define C2H_CNT_TH_6_RSVD_1_MASK                           GENMASK(31, 8)
-#define C2H_CNT_TH_6_THESHOLD_CNT_MASK                     GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_CNT_TH_7_ADDR                    0xA58
-#define C2H_CNT_TH_7_RSVD_1_MASK                           GENMASK(31, 8)
-#define C2H_CNT_TH_7_THESHOLD_CNT_MASK                     GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_CNT_TH_8_ADDR                    0xA5C
-#define C2H_CNT_TH_8_RSVD_1_MASK                           GENMASK(31, 8)
-#define C2H_CNT_TH_8_THESHOLD_CNT_MASK                     GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_CNT_TH_9_ADDR                    0xA60
-#define C2H_CNT_TH_9_RSVD_1_MASK                           GENMASK(31, 8)
-#define C2H_CNT_TH_9_THESHOLD_CNT_MASK                     GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_CNT_TH_A_ADDR                    0xA64
-#define C2H_CNT_TH_A_RSVD_1_MASK                           GENMASK(31, 8)
-#define C2H_CNT_TH_A_THESHOLD_CNT_MASK                     GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_CNT_TH_B_ADDR                    0xA68
-#define C2H_CNT_TH_B_RSVD_1_MASK                           GENMASK(31, 8)
-#define C2H_CNT_TH_B_THESHOLD_CNT_MASK                     GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_CNT_TH_C_ADDR                    0xA6C
-#define C2H_CNT_TH_C_RSVD_1_MASK                           GENMASK(31, 8)
-#define C2H_CNT_TH_C_THESHOLD_CNT_MASK                     GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_CNT_TH_D_ADDR                    0xA70
-#define C2H_CNT_TH_D_RSVD_1_MASK                           GENMASK(31, 8)
-#define C2H_CNT_TH_D_THESHOLD_CNT_MASK                     GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_CNT_TH_E_ADDR                    0xA74
-#define C2H_CNT_TH_E_RSVD_1_MASK                           GENMASK(31, 8)
-#define C2H_CNT_TH_E_THESHOLD_CNT_MASK                     GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_CNT_TH_F_ADDR                    0xA78
-#define C2H_CNT_TH_F_RSVD_1_MASK                           GENMASK(31, 8)
-#define C2H_CNT_TH_F_THESHOLD_CNT_MASK                     GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_CNT_TH_10_ADDR                   0xA7C
-#define C2H_CNT_TH_10_RSVD_1_MASK                          GENMASK(31, 8)
-#define C2H_CNT_TH_10_THESHOLD_CNT_MASK                    GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_QID2VEC_MAP_QID_ADDR             0xA80
-#define C2H_QID2VEC_MAP_QID_RSVD_1_MASK                    GENMASK(31, 11)
-#define C2H_QID2VEC_MAP_QID_QID_MASK                       GENMASK(10, 0)
-#define QDMA_S80_HARD_C2H_QID2VEC_MAP_ADDR                 0xA84
-#define C2H_QID2VEC_MAP_RSVD_1_MASK                        GENMASK(31, 19)
-#define C2H_QID2VEC_MAP_H2C_EN_COAL_MASK                   BIT(18)
-#define C2H_QID2VEC_MAP_H2C_VECTOR_MASK                    GENMASK(17, 9)
-#define C2H_QID2VEC_MAP_C2H_EN_COAL_MASK                   BIT(8)
-#define C2H_QID2VEC_MAP_C2H_VECTOR_MASK                    GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_STAT_S_AXIS_C2H_ACCEPTED_ADDR    0xA88
-#define C2H_STAT_S_AXIS_C2H_ACCEPTED_MASK                 GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_STAT_S_AXIS_WRB_ACCEPTED_ADDR    0xA8C
-#define C2H_STAT_S_AXIS_WRB_ACCEPTED_MASK                 GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_STAT_DESC_RSP_PKT_ACCEPTED_ADDR  0xA90
-#define C2H_STAT_DESC_RSP_PKT_ACCEPTED_D_MASK              GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_STAT_AXIS_PKG_CMP_ADDR           0xA94
-#define C2H_STAT_AXIS_PKG_CMP_MASK                        GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_STAT_DESC_RSP_ACCEPTED_ADDR      0xA98
-#define C2H_STAT_DESC_RSP_ACCEPTED_D_MASK                  GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_STAT_DESC_RSP_CMP_ADDR           0xA9C
-#define C2H_STAT_DESC_RSP_CMP_D_MASK                       GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_STAT_WRQ_OUT_ADDR                0xAA0
-#define C2H_STAT_WRQ_OUT_MASK                             GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_STAT_WPL_REN_ACCEPTED_ADDR       0xAA4
-#define C2H_STAT_WPL_REN_ACCEPTED_MASK                    GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_STAT_TOTAL_WRQ_LEN_ADDR          0xAA8
-#define C2H_STAT_TOTAL_WRQ_LEN_MASK                       GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_STAT_TOTAL_WPL_LEN_ADDR          0xAAC
-#define C2H_STAT_TOTAL_WPL_LEN_MASK                       GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_BUF_SZ_0_ADDR                    0xAB0
-#define C2H_BUF_SZ_0_SIZE_MASK                             GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_BUF_SZ_1_ADDR                    0xAB4
-#define C2H_BUF_SZ_1_SIZE_MASK                             GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_BUF_SZ_2_ADDR                    0xAB8
-#define C2H_BUF_SZ_2_SIZE_MASK                             GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_BUF_SZ_3_ADDR                    0xABC
-#define C2H_BUF_SZ_3_SIZE_MASK                             GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_BUF_SZ_4_ADDR                    0xAC0
-#define C2H_BUF_SZ_4_SIZE_MASK                             GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_BUF_SZ_5_ADDR                    0xAC4
-#define C2H_BUF_SZ_5_SIZE_MASK                             GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_BUF_SZ_7_ADDR                    0XAC8
-#define C2H_BUF_SZ_7_SIZE_MASK                             GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_BUF_SZ_8_ADDR                    0XACC
-#define C2H_BUF_SZ_8_SIZE_MASK                             GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_BUF_SZ_9_ADDR                    0xAD0
-#define C2H_BUF_SZ_9_SIZE_MASK                             GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_BUF_SZ_10_ADDR                   0xAD4
-#define C2H_BUF_SZ_10_SIZE_MASK                            GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_BUF_SZ_11_ADDR                   0xAD8
-#define C2H_BUF_SZ_11_SIZE_MASK                            GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_BUF_SZ_12_ADDR                   0xAE0
-#define C2H_BUF_SZ_12_SIZE_MASK                            GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_BUF_SZ_13_ADDR                   0xAE4
-#define C2H_BUF_SZ_13_SIZE_MASK                            GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_BUF_SZ_14_ADDR                   0xAE8
-#define C2H_BUF_SZ_14_SIZE_MASK                            GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_BUF_SZ_15_ADDR                   0XAEC
-#define C2H_BUF_SZ_15_SIZE_MASK                            GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_ERR_STAT_ADDR                    0xAF0
-#define C2H_ERR_STAT_RSVD_1_MASK                           GENMASK(31, 16)
-#define C2H_ERR_STAT_WRB_PRTY_ERR_MASK                     BIT(15)
-#define C2H_ERR_STAT_WRB_CIDX_ERR_MASK                     BIT(14)
-#define C2H_ERR_STAT_WRB_QFULL_ERR_MASK                    BIT(13)
-#define C2H_ERR_STAT_WRB_INV_Q_ERR_MASK                    BIT(12)
-#define C2H_ERR_STAT_PORT_ID_BYP_IN_MISMATCH_MASK          BIT(11)
-#define C2H_ERR_STAT_PORT_ID_CTXT_MISMATCH_MASK            BIT(10)
-#define C2H_ERR_STAT_ERR_DESC_CNT_MASK                     BIT(9)
-#define C2H_ERR_STAT_RSVD_2_MASK                           BIT(8)
-#define C2H_ERR_STAT_MSI_INT_FAIL_MASK                     BIT(7)
-#define C2H_ERR_STAT_ENG_WPL_DATA_PAR_ERR_MASK             BIT(6)
-#define C2H_ERR_STAT_RSVD_3_MASK                           BIT(5)
-#define C2H_ERR_STAT_DESC_RSP_ERR_MASK                     BIT(4)
-#define C2H_ERR_STAT_QID_MISMATCH_MASK                     BIT(3)
-#define C2H_ERR_STAT_RSVD_4_MASK                           BIT(2)
-#define C2H_ERR_STAT_LEN_MISMATCH_MASK                     BIT(1)
-#define C2H_ERR_STAT_MTY_MISMATCH_MASK                     BIT(0)
-#define QDMA_S80_HARD_C2H_ERR_MASK_ADDR                    0xAF4
-#define C2H_ERR_EN_MASK                          GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_FATAL_ERR_STAT_ADDR              0xAF8
-#define C2H_FATAL_ERR_STAT_RSVD_1_MASK                     GENMASK(31, 19)
-#define C2H_FATAL_ERR_STAT_WPL_DATA_PAR_ERR_MASK           BIT(18)
-#define C2H_FATAL_ERR_STAT_PLD_FIFO_RAM_RDBE_MASK          BIT(17)
-#define C2H_FATAL_ERR_STAT_QID_FIFO_RAM_RDBE_MASK          BIT(16)
-#define C2H_FATAL_ERR_STAT_TUSER_FIFO_RAM_RDBE_MASK        BIT(15)
-#define C2H_FATAL_ERR_STAT_WRB_COAL_DATA_RAM_RDBE_MASK     BIT(14)
-#define C2H_FATAL_ERR_STAT_INT_QID2VEC_RAM_RDBE_MASK       BIT(13)
-#define C2H_FATAL_ERR_STAT_INT_CTXT_RAM_RDBE_MASK          BIT(12)
-#define C2H_FATAL_ERR_STAT_DESC_REQ_FIFO_RAM_RDBE_MASK     BIT(11)
-#define C2H_FATAL_ERR_STAT_PFCH_CTXT_RAM_RDBE_MASK         BIT(10)
-#define C2H_FATAL_ERR_STAT_WRB_CTXT_RAM_RDBE_MASK          BIT(9)
-#define C2H_FATAL_ERR_STAT_PFCH_LL_RAM_RDBE_MASK           BIT(8)
-#define C2H_FATAL_ERR_STAT_TIMER_FIFO_RAM_RDBE_MASK        GENMASK(7, 4)
-#define C2H_FATAL_ERR_STAT_QID_MISMATCH_MASK               BIT(3)
-#define C2H_FATAL_ERR_STAT_RSVD_2_MASK                     BIT(2)
-#define C2H_FATAL_ERR_STAT_LEN_MISMATCH_MASK               BIT(1)
-#define C2H_FATAL_ERR_STAT_MTY_MISMATCH_MASK               BIT(0)
-#define QDMA_S80_HARD_C2H_FATAL_ERR_MASK_ADDR              0xAFC
-#define C2H_FATAL_ERR_C2HEN_MASK                 GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_FATAL_ERR_ENABLE_ADDR            0xB00
-#define C2H_FATAL_ERR_ENABLE_RSVD_1_MASK                   GENMASK(31, 2)
-#define C2H_FATAL_ERR_ENABLE_WPL_PAR_INV_MASK             BIT(1)
-#define C2H_FATAL_ERR_ENABLE_WRQ_DIS_MASK                 BIT(0)
-#define QDMA_S80_HARD_GLBL_ERR_INT_ADDR                    0xB04
-#define GLBL_ERR_INT_RSVD_1_MASK                           GENMASK(31, 18)
-#define GLBL_ERR_INT_ARM_MASK                             BIT(17)
-#define GLBL_ERR_INT_EN_COAL_MASK                          BIT(16)
-#define GLBL_ERR_INT_VEC_MASK                              GENMASK(15, 8)
-#define GLBL_ERR_INT_FUNC_MASK                             GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_PFCH_CFG_ADDR                    0xB08
-#define C2H_PFCH_CFG_EVT_QCNT_TH_MASK                      GENMASK(31, 25)
-#define C2H_PFCH_CFG_QCNT_MASK                             GENMASK(24, 16)
-#define C2H_PFCH_CFG_NUM_MASK                              GENMASK(15, 8)
-#define C2H_PFCH_CFG_FL_TH_MASK                            GENMASK(7, 0)
-#define QDMA_S80_HARD_C2H_INT_TIMER_TICK_ADDR              0xB0C
-#define C2H_INT_TIMER_TICK_MASK                           GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_STAT_DESC_RSP_DROP_ACCEPTED_ADDR 0xB10
-#define C2H_STAT_DESC_RSP_DROP_ACCEPTED_D_MASK             GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_STAT_DESC_RSP_ERR_ACCEPTED_ADDR  0xB14
-#define C2H_STAT_DESC_RSP_ERR_ACCEPTED_D_MASK              GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_STAT_DESC_REQ_ADDR               0xB18
-#define C2H_STAT_DESC_REQ_MASK                            GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_STAT_DBG_DMA_ENG_0_ADDR          0xB1C
-#define C2H_STAT_DMA_ENG_0_RSVD_1_MASK                 BIT(31)
-#define C2H_STAT_DMA_ENG_0_WRB_FIFO_OUT_CNT_MASK       GENMASK(30, 28)
-#define C2H_STAT_DMA_ENG_0_QID_FIFO_OUT_CNT_MASK       GENMASK(27, 18)
-#define C2H_STAT_DMA_ENG_0_PLD_FIFO_OUT_CNT_MASK       GENMASK(17, 8)
-#define C2H_STAT_DMA_ENG_0_WRQ_FIFO_OUT_CNT_MASK       GENMASK(7, 5)
-#define C2H_STAT_DMA_ENG_0_WRB_SM_CS_MASK              BIT(4)
-#define C2H_STAT_DMA_ENG_0_MAIN_SM_CS_MASK             GENMASK(3, 0)
-#define QDMA_S80_HARD_C2H_STAT_DBG_DMA_ENG_1_ADDR          0xB20
-#define C2H_STAT_DMA_ENG_1_RSVD_1_MASK                 BIT(31)
-#define C2H_STAT_DMA_ENG_1_DESC_RSP_LAST_MASK          BIT(30)
-#define C2H_STAT_DMA_ENG_1_PLD_FIFO_IN_CNT_MASK        GENMASK(29, 20)
-#define C2H_STAT_DMA_ENG_1_PLD_FIFO_OUTPUT_CNT_MASK    GENMASK(19, 10)
-#define C2H_STAT_DMA_ENG_1_QID_FIFO_IN_CNT_MASK        GENMASK(9, 0)
-#define QDMA_S80_HARD_C2H_STAT_DBG_DMA_ENG_2_ADDR          0xB24
-#define C2H_STAT_DMA_ENG_2_RSVD_1_MASK                 GENMASK(31, 30)
-#define C2H_STAT_DMA_ENG_2_WRB_FIFO_IN_CNT_MASK        GENMASK(29, 20)
-#define C2H_STAT_DMA_ENG_2_WRB_FIFO_OUTPUT_CNT_MASK    GENMASK(19, 10)
-#define C2H_STAT_DMA_ENG_2_QID_FIFO_OUTPUT_CNT_MASK    GENMASK(9, 0)
-#define QDMA_S80_HARD_C2H_STAT_DBG_DMA_ENG_3_ADDR          0xB28
-#define C2H_STAT_DMA_ENG_3_RSVD_1_MASK                 GENMASK(31, 30)
-#define C2H_STAT_DMA_ENG_3_ADDR_4K_SPLIT_CNT_MASK      GENMASK(29, 20)
-#define C2H_STAT_DMA_ENG_3_WRQ_FIFO_IN_CNT_MASK        GENMASK(19, 10)
-#define C2H_STAT_DMA_ENG_3_WRQ_FIFO_OUTPUT_CNT_MASK    GENMASK(9, 0)
-#define QDMA_S80_HARD_C2H_DBG_PFCH_ERR_CTXT_ADDR           0xB2C
-#define C2H_PFCH_ERR_CTXT_RSVD_1_MASK                  GENMASK(31, 14)
-#define C2H_PFCH_ERR_CTXT_ERR_STAT_MASK                BIT(13)
-#define C2H_PFCH_ERR_CTXT_CMD_WR_MASK                  BIT(12)
-#define C2H_PFCH_ERR_CTXT_QID_MASK                     GENMASK(11, 1)
-#define C2H_PFCH_ERR_CTXT_DONE_MASK                    BIT(0)
-#define QDMA_S80_HARD_C2H_FIRST_ERR_QID_ADDR               0xB30
-#define C2H_FIRST_ERR_QID_RSVD_1_MASK                      GENMASK(31, 21)
-#define C2H_FIRST_ERR_QID_ERR_STAT_MASK                    GENMASK(20, 16)
-#define C2H_FIRST_ERR_QID_CMD_WR_MASK                      GENMASK(15, 12)
-#define C2H_FIRST_ERR_QID_QID_MASK                         GENMASK(11, 0)
-#define QDMA_S80_HARD_STAT_NUM_WRB_IN_ADDR                 0xB34
-#define STAT_NUM_WRB_IN_RSVD_1_MASK                        GENMASK(31, 16)
-#define STAT_NUM_WRB_IN_WRB_CNT_MASK                       GENMASK(15, 0)
-#define QDMA_S80_HARD_STAT_NUM_WRB_OUT_ADDR                0xB38
-#define STAT_NUM_WRB_OUT_RSVD_1_MASK                       GENMASK(31, 16)
-#define STAT_NUM_WRB_OUT_WRB_CNT_MASK                      GENMASK(15, 0)
-#define QDMA_S80_HARD_STAT_NUM_WRB_DRP_ADDR                0xB3C
-#define STAT_NUM_WRB_DRP_RSVD_1_MASK                       GENMASK(31, 16)
-#define STAT_NUM_WRB_DRP_WRB_CNT_MASK                      GENMASK(15, 0)
-#define QDMA_S80_HARD_STAT_NUM_STAT_DESC_OUT_ADDR          0xB40
-#define STAT_NUM_STAT_DESC_OUT_RSVD_1_MASK                 GENMASK(31, 16)
-#define STAT_NUM_STAT_DESC_OUT_CNT_MASK                    GENMASK(15, 0)
-#define QDMA_S80_HARD_STAT_NUM_DSC_CRDT_SENT_ADDR          0xB44
-#define STAT_NUM_DSC_CRDT_SENT_RSVD_1_MASK                 GENMASK(31, 16)
-#define STAT_NUM_DSC_CRDT_SENT_CNT_MASK                    GENMASK(15, 0)
-#define QDMA_S80_HARD_STAT_NUM_FCH_DSC_RCVD_ADDR           0xB48
-#define STAT_NUM_FCH_DSC_RCVD_RSVD_1_MASK                  GENMASK(31, 16)
-#define STAT_NUM_FCH_DSC_RCVD_DSC_CNT_MASK                 GENMASK(15, 0)
-#define QDMA_S80_HARD_STAT_NUM_BYP_DSC_RCVD_ADDR           0xB4C
-#define STAT_NUM_BYP_DSC_RCVD_RSVD_1_MASK                  GENMASK(31, 11)
-#define STAT_NUM_BYP_DSC_RCVD_DSC_CNT_MASK                 GENMASK(10, 0)
-#define QDMA_S80_HARD_C2H_WRB_COAL_CFG_ADDR                0xB50
-#define C2H_WRB_COAL_CFG_MAX_BUF_SZ_MASK                   GENMASK(31, 26)
-#define C2H_WRB_COAL_CFG_TICK_VAL_MASK                     GENMASK(25, 14)
-#define C2H_WRB_COAL_CFG_TICK_CNT_MASK                     GENMASK(13, 2)
-#define C2H_WRB_COAL_CFG_SET_GLB_FLUSH_MASK                BIT(1)
-#define C2H_WRB_COAL_CFG_DONE_GLB_FLUSH_MASK               BIT(0)
-#define QDMA_S80_HARD_C2H_INTR_H2C_REQ_ADDR                0xB54
-#define C2H_INTR_H2C_REQ_RSVD_1_MASK                       GENMASK(31, 18)
-#define C2H_INTR_H2C_REQ_CNT_MASK                          GENMASK(17, 0)
-#define QDMA_S80_HARD_C2H_INTR_C2H_MM_REQ_ADDR             0xB58
-#define C2H_INTR_C2H_MM_REQ_RSVD_1_MASK                    GENMASK(31, 18)
-#define C2H_INTR_C2H_MM_REQ_CNT_MASK                       GENMASK(17, 0)
-#define QDMA_S80_HARD_C2H_INTR_ERR_INT_REQ_ADDR            0xB5C
-#define C2H_INTR_ERR_INT_REQ_RSVD_1_MASK                   GENMASK(31, 18)
-#define C2H_INTR_ERR_INT_REQ_CNT_MASK                      GENMASK(17, 0)
-#define QDMA_S80_HARD_C2H_INTR_C2H_ST_REQ_ADDR             0xB60
-#define C2H_INTR_C2H_ST_REQ_RSVD_1_MASK                    GENMASK(31, 18)
-#define C2H_INTR_C2H_ST_REQ_CNT_MASK                       GENMASK(17, 0)
-#define QDMA_S80_HARD_C2H_INTR_H2C_ERR_C2H_MM_MSIX_ACK_ADDR 0xB64
-#define C2H_INTR_H2C_ERR_C2H_MM_MSIX_ACK_RSVD_1_MASK       GENMASK(31, 18)
-#define C2H_INTR_H2C_ERR_C2H_MM_MSIX_ACK_CNT_MASK          GENMASK(17, 0)
-#define QDMA_S80_HARD_C2H_INTR_H2C_ERR_C2H_MM_MSIX_FAIL_ADDR 0xB68
-#define C2H_INTR_H2C_ERR_C2H_MM_MSIX_FAIL_RSVD_1_MASK      GENMASK(31, 18)
-#define C2H_INTR_H2C_ERR_C2H_MM_MSIX_FAIL_CNT_MASK         GENMASK(17, 0)
-#define QDMA_S80_HARD_C2H_INTR_H2C_ERR_C2H_MM_MSIX_NO_MSIX_ADDR 0xB6C
-#define C2H_INTR_H2C_ERR_C2H_MM_MSIX_NO_MSIX_RSVD_1_MASK   GENMASK(31, 18)
-#define C2H_INTR_H2C_ERR_C2H_MM_MSIX_NO_MSIX_CNT_MASK      GENMASK(17, 0)
-#define QDMA_S80_HARD_C2H_INTR_H2C_ERR_C2H_MM_CTXT_INVAL_ADDR 0xB70
-#define C2H_INTR_H2C_ERR_C2H_MM_CTXT_INVAL_RSVD_1_MASK     GENMASK(31, 18)
-#define C2H_INTR_H2C_ERR_C2H_MM_CTXT_INVAL_CNT_MASK        GENMASK(17, 0)
-#define QDMA_S80_HARD_C2H_INTR_C2H_ST_MSIX_ACK_ADDR        0xB74
-#define C2H_INTR_C2H_ST_MSIX_ACK_RSVD_1_MASK               GENMASK(31, 18)
-#define C2H_INTR_C2H_ST_MSIX_ACK_CNT_MASK                  GENMASK(17, 0)
-#define QDMA_S80_HARD_C2H_INTR_C2H_ST_MSIX_FAIL_ADDR       0xB78
-#define C2H_INTR_C2H_ST_MSIX_FAIL_RSVD_1_MASK              GENMASK(31, 18)
-#define C2H_INTR_C2H_ST_MSIX_FAIL_CNT_MASK                 GENMASK(17, 0)
-#define QDMA_S80_HARD_C2H_INTR_C2H_ST_NO_MSIX_ADDR         0xB7C
-#define C2H_INTR_C2H_ST_NO_MSIX_RSVD_1_MASK                GENMASK(31, 18)
-#define C2H_INTR_C2H_ST_NO_MSIX_CNT_MASK                   GENMASK(17, 0)
-#define QDMA_S80_HARD_C2H_INTR_C2H_ST_CTXT_INVAL_ADDR      0xB80
-#define C2H_INTR_C2H_ST_CTXT_INVAL_RSVD_1_MASK             GENMASK(31, 18)
-#define C2H_INTR_C2H_ST_CTXT_INVAL_CNT_MASK                GENMASK(17, 0)
-#define QDMA_S80_HARD_C2H_STAT_WR_CMP_ADDR                 0xB84
-#define C2H_STAT_WR_CMP_RSVD_1_MASK                        GENMASK(31, 18)
-#define C2H_STAT_WR_CMP_CNT_MASK                           GENMASK(17, 0)
-#define QDMA_S80_HARD_C2H_STAT_DBG_DMA_ENG_4_ADDR          0xB88
-#define C2H_STAT_DMA_ENG_4_TUSER_FIFO_OUT_VLD_MASK     BIT(31)
-#define C2H_STAT_DMA_ENG_4_WRB_FIFO_IN_RDY_MASK        BIT(30)
-#define C2H_STAT_DMA_ENG_4_TUSER_FIFO_IN_CNT_MASK      GENMASK(29, 20)
-#define C2H_STAT_DMA_ENG_4_TUSER_FIFO_OUTPUT_CNT_MASK  GENMASK(19, 10)
-#define C2H_STAT_DMA_ENG_4_TUSER_FIFO_OUT_CNT_MASK     GENMASK(9, 0)
-#define QDMA_S80_HARD_C2H_STAT_DBG_DMA_ENG_5_ADDR          0xB8C
-#define C2H_STAT_DMA_ENG_5_RSVD_1_MASK                 GENMASK(31, 25)
-#define C2H_STAT_DMA_ENG_5_TUSER_COMB_OUT_VLD_MASK     BIT(24)
-#define C2H_STAT_DMA_ENG_5_TUSER_FIFO_IN_RDY_MASK      BIT(23)
-#define C2H_STAT_DMA_ENG_5_TUSER_COMB_IN_CNT_MASK      GENMASK(22, 13)
-#define C2H_STAT_DMA_ENG_5_TUSE_COMB_OUTPUT_CNT_MASK   GENMASK(12, 3)
-#define C2H_STAT_DMA_ENG_5_TUSER_COMB_CNT_MASK         GENMASK(2, 0)
-#define QDMA_S80_HARD_C2H_DBG_PFCH_QID_ADDR                0xB90
-#define C2H_PFCH_QID_RSVD_1_MASK                       GENMASK(31, 15)
-#define C2H_PFCH_QID_ERR_CTXT_MASK                     BIT(14)
-#define C2H_PFCH_QID_TARGET_MASK                       GENMASK(13, 11)
-#define C2H_PFCH_QID_QID_OR_TAG_MASK                   GENMASK(10, 0)
-#define QDMA_S80_HARD_C2H_DBG_PFCH_ADDR                    0xB94
-#define C2H_PFCH_DATA_MASK                             GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_INT_DBG_ADDR                     0xB98
-#define C2H_INT_RSVD_1_MASK                            GENMASK(31, 8)
-#define C2H_INT_INT_COAL_SM_MASK                       GENMASK(7, 4)
-#define C2H_INT_INT_SM_MASK                            GENMASK(3, 0)
-#define QDMA_S80_HARD_C2H_STAT_IMM_ACCEPTED_ADDR           0xB9C
-#define C2H_STAT_IMM_ACCEPTED_RSVD_1_MASK                  GENMASK(31, 18)
-#define C2H_STAT_IMM_ACCEPTED_CNT_MASK                     GENMASK(17, 0)
-#define QDMA_S80_HARD_C2H_STAT_MARKER_ACCEPTED_ADDR        0xBA0
-#define C2H_STAT_MARKER_ACCEPTED_RSVD_1_MASK               GENMASK(31, 18)
-#define C2H_STAT_MARKER_ACCEPTED_CNT_MASK                  GENMASK(17, 0)
-#define QDMA_S80_HARD_C2H_STAT_DISABLE_CMP_ACCEPTED_ADDR   0xBA4
-#define C2H_STAT_DISABLE_CMP_ACCEPTED_RSVD_1_MASK          GENMASK(31, 18)
-#define C2H_STAT_DISABLE_CMP_ACCEPTED_CNT_MASK             GENMASK(17, 0)
-#define QDMA_S80_HARD_C2H_PLD_FIFO_CRDT_CNT_ADDR           0xBA8
-#define C2H_PLD_FIFO_CRDT_CNT_RSVD_1_MASK                  GENMASK(31, 18)
-#define C2H_PLD_FIFO_CRDT_CNT_CNT_MASK                     GENMASK(17, 0)
-#define QDMA_S80_HARD_H2C_ERR_STAT_ADDR                    0xE00
-#define H2C_ERR_STAT_RSVD_1_MASK                           GENMASK(31, 5)
-#define H2C_ERR_STAT_SBE_MASK                              BIT(4)
-#define H2C_ERR_STAT_DBE_MASK                              BIT(3)
-#define H2C_ERR_STAT_NO_DMA_DS_MASK                        BIT(2)
-#define H2C_ERR_STAT_SDI_MRKR_REQ_MOP_ERR_MASK             BIT(1)
-#define H2C_ERR_STAT_ZERO_LEN_DS_MASK                      BIT(0)
-#define QDMA_S80_HARD_H2C_ERR_MASK_ADDR                    0xE04
-#define H2C_ERR_EN_MASK                          GENMASK(31, 0)
-#define QDMA_S80_HARD_H2C_FIRST_ERR_QID_ADDR               0xE08
-#define H2C_FIRST_ERR_QID_RSVD_1_MASK                      GENMASK(31, 20)
-#define H2C_FIRST_ERR_QID_ERR_TYPE_MASK                    GENMASK(19, 16)
-#define H2C_FIRST_ERR_QID_RSVD_2_MASK                      GENMASK(15, 12)
-#define H2C_FIRST_ERR_QID_QID_MASK                         GENMASK(11, 0)
-#define QDMA_S80_HARD_H2C_DBG_REG0_ADDR                    0xE0C
-#define H2C_REG0_NUM_DSC_RCVD_MASK                     GENMASK(31, 16)
-#define H2C_REG0_NUM_WRB_SENT_MASK                     GENMASK(15, 0)
-#define QDMA_S80_HARD_H2C_DBG_REG1_ADDR                    0xE10
-#define H2C_REG1_NUM_REQ_SENT_MASK                     GENMASK(31, 16)
-#define H2C_REG1_NUM_CMP_SENT_MASK                     GENMASK(15, 0)
-#define QDMA_S80_HARD_H2C_DBG_REG2_ADDR                    0xE14
-#define H2C_REG2_RSVD_1_MASK                           GENMASK(31, 16)
-#define H2C_REG2_NUM_ERR_DSC_RCVD_MASK                 GENMASK(15, 0)
-#define QDMA_S80_HARD_H2C_DBG_REG3_ADDR                    0xE18
-#define H2C_REG3_MASK                              BIT(31)
-#define H2C_REG3_DSCO_FIFO_EMPTY_MASK                  BIT(30)
-#define H2C_REG3_DSCO_FIFO_FULL_MASK                   BIT(29)
-#define H2C_REG3_CUR_RC_STATE_MASK                     GENMASK(28, 26)
-#define H2C_REG3_RDREQ_LINES_MASK                      GENMASK(25, 16)
-#define H2C_REG3_RDATA_LINES_AVAIL_MASK                GENMASK(15, 6)
-#define H2C_REG3_PEND_FIFO_EMPTY_MASK                  BIT(5)
-#define H2C_REG3_PEND_FIFO_FULL_MASK                   BIT(4)
-#define H2C_REG3_CUR_RQ_STATE_MASK                     GENMASK(3, 2)
-#define H2C_REG3_DSCI_FIFO_FULL_MASK                   BIT(1)
-#define H2C_REG3_DSCI_FIFO_EMPTY_MASK                  BIT(0)
-#define QDMA_S80_HARD_H2C_DBG_REG4_ADDR                    0xE1C
-#define H2C_REG4_RDREQ_ADDR_MASK                       GENMASK(31, 0)
-#define QDMA_S80_HARD_H2C_FATAL_ERR_EN_ADDR                0xE20
-#define H2C_FATAL_ERR_EN_RSVD_1_MASK                       GENMASK(31, 1)
-#define H2C_FATAL_ERR_EN_H2C_MASK                          BIT(0)
-#define QDMA_S80_HARD_C2H_CHANNEL_CTL_ADDR                 0x1004
-#define C2H_CHANNEL_CTL_RSVD_1_MASK                        GENMASK(31, 1)
-#define C2H_CHANNEL_CTL_RUN_MASK                           BIT(0)
-#define QDMA_S80_HARD_C2H_CHANNEL_CTL_1_ADDR               0x1008
-#define C2H_CHANNEL_CTL_1_RUN_MASK                         GENMASK(31, 1)
-#define C2H_CHANNEL_CTL_1_RUN_1_MASK                       BIT(0)
-#define QDMA_S80_HARD_C2H_MM_STATUS_ADDR                   0x1040
-#define C2H_MM_STATUS_RSVD_1_MASK                          GENMASK(31, 1)
-#define C2H_MM_STATUS_RUN_MASK                             BIT(0)
-#define QDMA_S80_HARD_C2H_CHANNEL_CMPL_DESC_CNT_ADDR       0x1048
-#define C2H_CHANNEL_CMPL_DESC_CNT_C2H_CO_MASK              GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_MM_ERR_CODE_ENABLE_MASK_ADDR     0x1054
-#define C2H_MM_ERR_CODE_ENABLE_RSVD_1_MASK            BIT(31)
-#define C2H_MM_ERR_CODE_ENABLE_WR_UC_RAM_MASK         BIT(30)
-#define C2H_MM_ERR_CODE_ENABLE_WR_UR_MASK             BIT(29)
-#define C2H_MM_ERR_CODE_ENABLE_WR_FLR_MASK            BIT(28)
-#define C2H_MM_ERR_CODE_ENABLE_RSVD_2_MASK            GENMASK(27, 2)
-#define C2H_MM_ERR_CODE_ENABLE_RD_SLV_ERR_MASK        BIT(1)
-#define C2H_MM_ERR_CODE_ENABLE_WR_SLV_ERR_MASK        BIT(0)
-#define QDMA_S80_HARD_C2H_MM_ERR_CODE_ADDR                 0x1058
-#define C2H_MM_ERR_CODE_RSVD_1_MASK                        GENMASK(31, 18)
-#define C2H_MM_ERR_CODE_VALID_MASK                         BIT(17)
-#define C2H_MM_ERR_CODE_RDWR_MASK                          BIT(16)
-#define C2H_MM_ERR_CODE_MASK                              GENMASK(4, 0)
-#define QDMA_S80_HARD_C2H_MM_ERR_INFO_ADDR                 0x105C
-#define C2H_MM_ERR_INFO_RSVD_1_MASK                        GENMASK(31, 29)
-#define C2H_MM_ERR_INFO_QID_MASK                           GENMASK(28, 17)
-#define C2H_MM_ERR_INFO_DIR_MASK                           BIT(16)
-#define C2H_MM_ERR_INFO_CIDX_MASK                          GENMASK(15, 0)
-#define QDMA_S80_HARD_C2H_MM_PERF_MON_CTL_ADDR             0x10C0
-#define C2H_MM_PERF_MON_CTL_RSVD_1_MASK                    GENMASK(31, 4)
-#define C2H_MM_PERF_MON_CTL_IMM_START_MASK                 BIT(3)
-#define C2H_MM_PERF_MON_CTL_RUN_START_MASK                 BIT(2)
-#define C2H_MM_PERF_MON_CTL_IMM_CLEAR_MASK                 BIT(1)
-#define C2H_MM_PERF_MON_CTL_RUN_CLEAR_MASK                 BIT(0)
-#define QDMA_S80_HARD_C2H_MM_PERF_MON_CYCLE_CNT0_ADDR      0x10C4
-#define C2H_MM_PERF_MON_CYCLE_CNT0_CYC_CNT_MASK            GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_MM_PERF_MON_CYCLE_CNT1_ADDR      0x10C8
-#define C2H_MM_PERF_MON_CYCLE_CNT1_RSVD_1_MASK             GENMASK(31, 10)
-#define C2H_MM_PERF_MON_CYCLE_CNT1_CYC_CNT_MASK            GENMASK(9, 0)
-#define QDMA_S80_HARD_C2H_MM_PERF_MON_DATA_CNT0_ADDR       0x10CC
-#define C2H_MM_PERF_MON_DATA_CNT0_DCNT_MASK                GENMASK(31, 0)
-#define QDMA_S80_HARD_C2H_MM_PERF_MON_DATA_CNT1_ADDR       0x10D0
-#define C2H_MM_PERF_MON_DATA_CNT1_RSVD_1_MASK              GENMASK(31, 10)
-#define C2H_MM_PERF_MON_DATA_CNT1_DCNT_MASK                GENMASK(9, 0)
-#define QDMA_S80_HARD_C2H_MM_DBG_ADDR                      0x10E8
-#define C2H_MM_RSVD_1_MASK                             GENMASK(31, 24)
-#define C2H_MM_RRQ_ENTRIES_MASK                        GENMASK(23, 17)
-#define C2H_MM_DAT_FIFO_SPC_MASK                       GENMASK(16, 7)
-#define C2H_MM_RD_STALL_MASK                           BIT(6)
-#define C2H_MM_RRQ_FIFO_FI_MASK                        BIT(5)
-#define C2H_MM_WR_STALL_MASK                           BIT(4)
-#define C2H_MM_WRQ_FIFO_FI_MASK                        BIT(3)
-#define C2H_MM_WBK_STALL_MASK                          BIT(2)
-#define C2H_MM_DSC_FIFO_EP_MASK                        BIT(1)
-#define C2H_MM_DSC_FIFO_FL_MASK                        BIT(0)
-#define QDMA_S80_HARD_H2C_CHANNEL_CTL_ADDR                 0x1204
-#define H2C_CHANNEL_CTL_RSVD_1_MASK                        GENMASK(31, 1)
-#define H2C_CHANNEL_CTL_RUN_MASK                           BIT(0)
-#define QDMA_S80_HARD_H2C_CHANNEL_CTL_1_ADDR               0x1208
-#define H2C_CHANNEL_CTL_1_RUN_MASK                         BIT(0)
-#define QDMA_S80_HARD_H2C_CHANNEL_CTL_2_ADDR               0x120C
-#define H2C_CHANNEL_CTL_2_RUN_MASK                         BIT(0)
-#define QDMA_S80_HARD_H2C_MM_STATUS_ADDR                   0x1240
-#define H2C_MM_STATUS_RSVD_1_MASK                          GENMASK(31, 1)
-#define H2C_MM_STATUS_RUN_MASK                             BIT(0)
-#define QDMA_S80_HARD_H2C_CHANNEL_CMPL_DESC_CNT_ADDR       0x1248
-#define H2C_CHANNEL_CMPL_DESC_CNT_H2C_CO_MASK              GENMASK(31, 0)
-#define QDMA_S80_HARD_H2C_MM_ERR_CODE_ENABLE_MASK_ADDR     0x1254
-#define H2C_MM_ERR_CODE_ENABLE_RSVD_1_MASK            GENMASK(31, 30)
-#define H2C_MM_ERR_CODE_ENABLE_WR_SLV_ERR_MASK        BIT(29)
-#define H2C_MM_ERR_CODE_ENABLE_WR_DEC_ERR_MASK        BIT(28)
-#define H2C_MM_ERR_CODE_ENABLE_RSVD_2_MASK            GENMASK(27, 23)
-#define H2C_MM_ERR_CODE_ENABLE_RD_RQ_DIS_ERR_MASK     BIT(22)
-#define H2C_MM_ERR_CODE_ENABLE_RSVD_3_MASK            GENMASK(21, 17)
-#define H2C_MM_ERR_CODE_ENABLE_RD_DAT_POISON_ERR_MASK BIT(16)
-#define H2C_MM_ERR_CODE_ENABLE_RSVD_4_MASK            GENMASK(15, 9)
-#define H2C_MM_ERR_CODE_ENABLE_RD_FLR_ERR_MASK        BIT(8)
-#define H2C_MM_ERR_CODE_ENABLE_RSVD_5_MASK            GENMASK(7, 6)
-#define H2C_MM_ERR_CODE_ENABLE_RD_HDR_ADR_ERR_MASK    BIT(5)
-#define H2C_MM_ERR_CODE_ENABLE_RD_HDR_PARA_MASK       BIT(4)
-#define H2C_MM_ERR_CODE_ENABLE_RD_HDR_BYTE_ERR_MASK   BIT(3)
-#define H2C_MM_ERR_CODE_ENABLE_RD_UR_CA_MASK          BIT(2)
-#define H2C_MM_ERR_CODE_ENABLE_RD_HRD_POISON_ERR_MASK BIT(1)
-#define H2C_MM_ERR_CODE_ENABLE_RSVD_6_MASK            BIT(0)
-#define QDMA_S80_HARD_H2C_MM_ERR_CODE_ADDR                 0x1258
-#define H2C_MM_ERR_CODE_RSVD_1_MASK                        GENMASK(31, 18)
-#define H2C_MM_ERR_CODE_VALID_MASK                         BIT(17)
-#define H2C_MM_ERR_CODE_RDWR_MASK                          BIT(16)
-#define H2C_MM_ERR_CODE_MASK                              GENMASK(4, 0)
-#define QDMA_S80_HARD_H2C_MM_ERR_INFO_ADDR                 0x125C
-#define H2C_MM_ERR_INFO_RSVD_1_MASK                        GENMASK(31, 29)
-#define H2C_MM_ERR_INFO_QID_MASK                           GENMASK(28, 17)
-#define H2C_MM_ERR_INFO_DIR_MASK                           BIT(16)
-#define H2C_MM_ERR_INFO_CIDX_MASK                          GENMASK(15, 0)
-#define QDMA_S80_HARD_H2C_MM_PERF_MON_CTL_ADDR             0x12C0
-#define H2C_MM_PERF_MON_CTL_RSVD_1_MASK                    GENMASK(31, 4)
-#define H2C_MM_PERF_MON_CTL_IMM_START_MASK                 BIT(3)
-#define H2C_MM_PERF_MON_CTL_RUN_START_MASK                 BIT(2)
-#define H2C_MM_PERF_MON_CTL_IMM_CLEAR_MASK                 BIT(1)
-#define H2C_MM_PERF_MON_CTL_RUN_CLEAR_MASK                 BIT(0)
-#define QDMA_S80_HARD_H2C_MM_PERF_MON_CYCLE_CNT0_ADDR      0x12C4
-#define H2C_MM_PERF_MON_CYCLE_CNT0_CYC_CNT_MASK            GENMASK(31, 0)
-#define QDMA_S80_HARD_H2C_MM_PERF_MON_CYCLE_CNT1_ADDR      0x12C8
-#define H2C_MM_PERF_MON_CYCLE_CNT1_RSVD_1_MASK             GENMASK(31, 10)
-#define H2C_MM_PERF_MON_CYCLE_CNT1_CYC_CNT_MASK            GENMASK(9, 0)
-#define QDMA_S80_HARD_H2C_MM_PERF_MON_DATA_CNT0_ADDR       0x12CC
-#define H2C_MM_PERF_MON_DATA_CNT0_DCNT_MASK                GENMASK(31, 0)
-#define QDMA_S80_HARD_H2C_MM_PERF_MON_DATA_CNT1_ADDR       0x12D0
-#define H2C_MM_PERF_MON_DATA_CNT1_RSVD_1_MASK              GENMASK(31, 10)
-#define H2C_MM_PERF_MON_DATA_CNT1_DCNT_MASK                GENMASK(9, 0)
-#define QDMA_S80_HARD_H2C_MM_DBG_ADDR                      0x12E8
-#define H2C_MM_RSVD_1_MASK                             GENMASK(31, 24)
-#define H2C_MM_RRQ_ENTRIES_MASK                        GENMASK(23, 17)
-#define H2C_MM_DAT_FIFO_SPC_MASK                       GENMASK(16, 7)
-#define H2C_MM_RD_STALL_MASK                           BIT(6)
-#define H2C_MM_RRQ_FIFO_FI_MASK                        BIT(5)
-#define H2C_MM_WR_STALL_MASK                           BIT(4)
-#define H2C_MM_WRQ_FIFO_FI_MASK                        BIT(3)
-#define H2C_MM_WBK_STALL_MASK                          BIT(2)
-#define H2C_MM_DSC_FIFO_EP_MASK                        BIT(1)
-#define H2C_MM_DSC_FIFO_FL_MASK                        BIT(0)
-#define QDMA_S80_HARD_FUNC_STATUS_REG_ADDR                 0x2400
-#define FUNC_STATUS_REG_RSVD_1_MASK                        GENMASK(31, 12)
-#define FUNC_STATUS_REG_CUR_SRC_FN_MASK                    GENMASK(11, 4)
-#define FUNC_STATUS_REG_ACK_MASK                           BIT(2)
-#define FUNC_STATUS_REG_O_MSG_MASK                         BIT(1)
-#define FUNC_STATUS_REG_I_MSG_MASK                         BIT(0)
-#define QDMA_S80_HARD_FUNC_CMD_REG_ADDR                    0x2404
-#define FUNC_CMD_REG_RSVD_1_MASK                           GENMASK(31, 3)
-#define FUNC_CMD_REG_RSVD_2_MASK                           BIT(2)
-#define FUNC_CMD_REG_MSG_RCV_MASK                          BIT(1)
-#define FUNC_CMD_REG_MSG_SENT_MASK                         BIT(0)
-#define QDMA_S80_HARD_FUNC_INTERRUPT_VECTOR_REG_ADDR       0x2408
-#define FUNC_INTERRUPT_VECTOR_REG_RSVD_1_MASK              GENMASK(31, 5)
-#define FUNC_INTERRUPT_VECTOR_REG_IN_MASK                  GENMASK(4, 0)
-#define QDMA_S80_HARD_TARGET_FUNC_REG_ADDR                 0x240C
-#define TARGET_FUNC_REG_RSVD_1_MASK                        GENMASK(31, 8)
-#define TARGET_FUNC_REG_N_ID_MASK                          GENMASK(7, 0)
-#define QDMA_S80_HARD_FUNC_INTERRUPT_CTL_REG_ADDR          0x2410
-#define FUNC_INTERRUPT_CTL_REG_RSVD_1_MASK                 GENMASK(31, 1)
-#define FUNC_INTERRUPT_CTL_REG_INT_EN_MASK                 BIT(0)
-#define SW_IND_CTXT_DATA_W3_DSC_BASE_H_MASK               GENMASK(31, 0)
-#define SW_IND_CTXT_DATA_W2_DSC_BASE_L_MASK               GENMASK(31, 0)
-#define SW_IND_CTXT_DATA_W1_IS_MM_MASK                    BIT(31)
-#define SW_IND_CTXT_DATA_W1_MRKR_DIS_MASK                 BIT(30)
-#define SW_IND_CTXT_DATA_W1_IRQ_REQ_MASK                  BIT(29)
-#define SW_IND_CTXT_DATA_W1_ERR_WB_SENT_MASK              BIT(28)
-#define SW_IND_CTXT_DATA_W1_ERR_MASK                      GENMASK(27, 26)
-#define SW_IND_CTXT_DATA_W1_IRQ_NO_LAST_MASK              BIT(25)
-#define SW_IND_CTXT_DATA_W1_PORT_ID_MASK                  GENMASK(24, 22)
-#define SW_IND_CTXT_DATA_W1_IRQ_EN_MASK                   BIT(21)
-#define SW_IND_CTXT_DATA_W1_WBK_EN_MASK                   BIT(20)
-#define SW_IND_CTXT_DATA_W1_MM_CHN_MASK                   BIT(19)
-#define SW_IND_CTXT_DATA_W1_BYPASS_MASK                   BIT(18)
-#define SW_IND_CTXT_DATA_W1_DSC_SZ_MASK                   GENMASK(17, 16)
-#define SW_IND_CTXT_DATA_W1_RNG_SZ_MASK                   GENMASK(15, 12)
-#define SW_IND_CTXT_DATA_W1_FNC_ID_MASK                   GENMASK(11, 4)
-#define SW_IND_CTXT_DATA_W1_WBI_INTVL_EN_MASK             BIT(3)
-#define SW_IND_CTXT_DATA_W1_WBI_CHK_MASK                  BIT(2)
-#define SW_IND_CTXT_DATA_W1_FCRD_EN_MASK                  BIT(1)
-#define SW_IND_CTXT_DATA_W1_QEN_MASK                      BIT(0)
-#define SW_IND_CTXT_DATA_W0_RSV_MASK                      GENMASK(31, 17)
-#define SW_IND_CTXT_DATA_W0_IRQ_ARM_MASK                  BIT(16)
-#define SW_IND_CTXT_DATA_W0_PIDX_MASK                     GENMASK(15, 0)
-#define HW_IND_CTXT_DATA_W1_RSVD_MASK                     GENMASK(15, 11)
-#define HW_IND_CTXT_DATA_W1_FETCH_PND_MASK                BIT(10)
-#define HW_IND_CTXT_DATA_W1_IDL_STP_B_MASK                BIT(9)
-#define HW_IND_CTXT_DATA_W1_DSC_PND_MASK                  BIT(8)
-#define HW_IND_CTXT_DATA_W1_RSVD_1_MASK                   GENMASK(7, 0)
-#define HW_IND_CTXT_DATA_W0_CRD_USE_MASK                  GENMASK(31, 16)
-#define HW_IND_CTXT_DATA_W0_CIDX_MASK                     GENMASK(15, 0)
-#define CRED_CTXT_DATA_W0_RSVD_1_MASK                     GENMASK(31, 16)
-#define CRED_CTXT_DATA_W0_CREDT_MASK                      GENMASK(15, 0)
-#define PREFETCH_CTXT_DATA_W1_VALID_MASK                  BIT(13)
-#define PREFETCH_CTXT_DATA_W1_SW_CRDT_H_MASK              GENMASK(12, 0)
-#define PREFETCH_CTXT_DATA_W0_SW_CRDT_L_MASK              GENMASK(31, 29)
-#define PREFETCH_CTXT_DATA_W0_PFCH_MASK                   BIT(28)
-#define PREFETCH_CTXT_DATA_W0_PFCH_EN_MASK                BIT(27)
-#define PREFETCH_CTXT_DATA_W0_ERR_MASK                    BIT(26)
-#define PREFETCH_CTXT_DATA_W0_RSVD_MASK                   GENMASK(25, 8)
-#define PREFETCH_CTXT_DATA_W0_PORT_ID_MASK                GENMASK(7, 5)
-#define PREFETCH_CTXT_DATA_W0_BUF_SIZE_IDX_MASK           GENMASK(4, 1)
-#define PREFETCH_CTXT_DATA_W0_BYPASS_MASK                 BIT(0)
-#define CMPL_CTXT_DATA_W3_RSVD_MASK                       GENMASK(31, 30)
-#define CMPL_CTXT_DATA_W3_FULL_UPD_MASK                   BIT(29)
-#define CMPL_CTXT_DATA_W3_TIMER_RUNNING_MASK              BIT(28)
-#define CMPL_CTXT_DATA_W3_USER_TRIG_PEND_MASK             BIT(27)
-#define CMPL_CTXT_DATA_W3_ERR_MASK                        GENMASK(26, 25)
-#define CMPL_CTXT_DATA_W3_VALID_MASK                      BIT(24)
-#define CMPL_CTXT_DATA_W3_CIDX_MASK                       GENMASK(23, 8)
-#define CMPL_CTXT_DATA_W3_PIDX_H_MASK                     GENMASK(7, 0)
-#define CMPL_CTXT_DATA_W2_PIDX_L_MASK                     GENMASK(31, 24)
-#define CMPL_CTXT_DATA_W2_DESC_SIZE_MASK                  GENMASK(23, 22)
-#define CMPL_CTXT_DATA_W2_BADDR_64_H_MASK                 GENMASK(21, 0)
-#define CMPL_CTXT_DATA_W1_BADDR_64_M_MASK                 GENMASK(31, 0)
-#define CMPL_CTXT_DATA_W0_BADDR_64_L_MASK                 GENMASK(31, 28)
-#define CMPL_CTXT_DATA_W0_QSIZE_IDX_MASK                  GENMASK(27, 24)
-#define CMPL_CTXT_DATA_W0_COLOR_MASK                      BIT(23)
-#define CMPL_CTXT_DATA_W0_INT_ST_MASK                     GENMASK(22, 21)
-#define CMPL_CTXT_DATA_W0_TIMER_IDX_MASK                  GENMASK(20, 17)
-#define CMPL_CTXT_DATA_W0_CNTER_IDX_MASK                  GENMASK(16, 13)
-#define CMPL_CTXT_DATA_W0_FNC_ID_MASK                     GENMASK(12, 5)
-#define CMPL_CTXT_DATA_W0_TRIG_MODE_MASK                  GENMASK(4, 2)
-#define CMPL_CTXT_DATA_W0_EN_INT_MASK                     BIT(1)
-#define CMPL_CTXT_DATA_W0_EN_STAT_DESC_MASK               BIT(0)
-#define INTR_CTXT_DATA_W2_PIDX_MASK                       GENMASK(11, 0)
-#define INTR_CTXT_DATA_W1_PAGE_SIZE_MASK                  GENMASK(31, 29)
-#define INTR_CTXT_DATA_W1_BADDR_4K_H_MASK                 GENMASK(28, 0)
-#define INTR_CTXT_DATA_W0_BADDR_4K_L_MASK                 GENMASK(31, 9)
-#define INTR_CTXT_DATA_W0_COLOR_MASK                      BIT(8)
-#define INTR_CTXT_DATA_W0_INT_ST_MASK                     BIT(7)
-#define INTR_CTXT_DATA_W0_RSVD_MASK                       BIT(6)
-#define INTR_CTXT_DATA_W0_VEC_MASK                        GENMASK(5, 1)
-#define INTR_CTXT_DATA_W0_VALID_MASK                      BIT(0)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_s80_hard_access/qdma_s80_hard_reg_dump.c b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_s80_hard_access/qdma_s80_hard_reg_dump.c
deleted file mode 100644
index 638d592..0000000
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_s80_hard_access/qdma_s80_hard_reg_dump.c
+++ /dev/null
@@ -1,8024 +0,0 @@
-/*
- * Copyright(c) 2019-2020 Xilinx, Inc. All rights reserved.
- *
- * This source code is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
- * more details.
- *
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * This source code is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
- * more details.
- *
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- */
-
-#include "qdma_s80_hard_reg.h"
-#include "qdma_reg_dump.h"
-
-#ifdef ENABLE_WPP_TRACING
-#include "qdma_s80_hard_reg_dump.tmh"
-#endif
-
-
-static struct regfield_info
-	cfg_blk_identifier_field_info[] = {
-	{"CFG_BLK_IDENTIFIER",
-		CFG_BLK_IDENTIFIER_MASK},
-	{"CFG_BLK_IDENTIFIER_1",
-		CFG_BLK_IDENTIFIER_1_MASK},
-	{"CFG_BLK_IDENTIFIER_RSVD_1",
-		CFG_BLK_IDENTIFIER_RSVD_1_MASK},
-	{"CFG_BLK_IDENTIFIER_VERSION",
-		CFG_BLK_IDENTIFIER_VERSION_MASK},
-};
-
-
-static struct regfield_info
-	cfg_blk_busdev_field_info[] = {
-	{"CFG_BLK_BUSDEV_BDF",
-		CFG_BLK_BUSDEV_BDF_MASK},
-};
-
-
-static struct regfield_info
-	cfg_blk_pcie_max_pld_size_field_info[] = {
-	{"CFG_BLK_PCIE_MAX_PLD_SIZE",
-		CFG_BLK_PCIE_MAX_PLD_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	cfg_blk_pcie_max_read_req_size_field_info[] = {
-	{"CFG_BLK_PCIE_MAX_READ_REQ_SIZE",
-		CFG_BLK_PCIE_MAX_READ_REQ_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	cfg_blk_system_id_field_info[] = {
-	{"CFG_BLK_SYSTEM_ID",
-		CFG_BLK_SYSTEM_ID_MASK},
-};
-
-
-static struct regfield_info
-	cfg_blk_msi_enable_field_info[] = {
-	{"CFG_BLK_MSI_ENABLE_3",
-		CFG_BLK_MSI_ENABLE_3_MASK},
-	{"CFG_BLK_MSI_ENABLE_MSIX3",
-		CFG_BLK_MSI_ENABLE_MSIX3_MASK},
-	{"CFG_BLK_MSI_ENABLE_2",
-		CFG_BLK_MSI_ENABLE_2_MASK},
-	{"CFG_BLK_MSI_ENABLE_MSIX2",
-		CFG_BLK_MSI_ENABLE_MSIX2_MASK},
-	{"CFG_BLK_MSI_ENABLE_1",
-		CFG_BLK_MSI_ENABLE_1_MASK},
-	{"CFG_BLK_MSI_ENABLE_MSIX1",
-		CFG_BLK_MSI_ENABLE_MSIX1_MASK},
-	{"CFG_BLK_MSI_ENABLE_0",
-		CFG_BLK_MSI_ENABLE_0_MASK},
-	{"CFG_BLK_MSI_ENABLE_MSIX0",
-		CFG_BLK_MSI_ENABLE_MSIX0_MASK},
-};
-
-
-static struct regfield_info
-	cfg_pcie_data_width_field_info[] = {
-	{"CFG_PCIE_DATA_WIDTH_DATAPATH",
-		CFG_PCIE_DATA_WIDTH_DATAPATH_MASK},
-};
-
-
-static struct regfield_info
-	cfg_pcie_ctl_field_info[] = {
-	{"CFG_PCIE_CTL_RRQ_DISABLE",
-		CFG_PCIE_CTL_RRQ_DISABLE_MASK},
-	{"CFG_PCIE_CTL_RELAXED_ORDERING",
-		CFG_PCIE_CTL_RELAXED_ORDERING_MASK},
-};
-
-
-static struct regfield_info
-	cfg_axi_user_max_pld_size_field_info[] = {
-	{"CFG_AXI_USER_MAX_PLD_SIZE_ISSUED",
-		CFG_AXI_USER_MAX_PLD_SIZE_ISSUED_MASK},
-	{"CFG_AXI_USER_MAX_PLD_SIZE_PROG",
-		CFG_AXI_USER_MAX_PLD_SIZE_PROG_MASK},
-};
-
-
-static struct regfield_info
-	cfg_axi_user_max_read_req_size_field_info[] = {
-	{"CFG_AXI_USER_MAX_READ_REQ_SIZE_USISSUED",
-		CFG_AXI_USER_MAX_READ_REQ_SIZE_USISSUED_MASK},
-	{"CFG_AXI_USER_MAX_READ_REQ_SIZE_USPROG",
-		CFG_AXI_USER_MAX_READ_REQ_SIZE_USPROG_MASK},
-};
-
-
-static struct regfield_info
-	cfg_blk_misc_ctl_field_info[] = {
-	{"CFG_BLK_MISC_CTL_NUM_TAG",
-		CFG_BLK_MISC_CTL_NUM_TAG_MASK},
-	{"CFG_BLK_MISC_CTL_RQ_METERING_MULTIPLIER",
-		CFG_BLK_MISC_CTL_RQ_METERING_MULTIPLIER_MASK},
-};
-
-
-static struct regfield_info
-	cfg_blk_scratch_0_field_info[] = {
-	{"CFG_BLK_SCRATCH_0",
-		CFG_BLK_SCRATCH_0_MASK},
-};
-
-
-static struct regfield_info
-	cfg_blk_scratch_1_field_info[] = {
-	{"CFG_BLK_SCRATCH_1",
-		CFG_BLK_SCRATCH_1_MASK},
-};
-
-
-static struct regfield_info
-	cfg_blk_scratch_2_field_info[] = {
-	{"CFG_BLK_SCRATCH_2",
-		CFG_BLK_SCRATCH_2_MASK},
-};
-
-
-static struct regfield_info
-	cfg_blk_scratch_3_field_info[] = {
-	{"CFG_BLK_SCRATCH_3",
-		CFG_BLK_SCRATCH_3_MASK},
-};
-
-
-static struct regfield_info
-	cfg_blk_scratch_4_field_info[] = {
-	{"CFG_BLK_SCRATCH_4",
-		CFG_BLK_SCRATCH_4_MASK},
-};
-
-
-static struct regfield_info
-	cfg_blk_scratch_5_field_info[] = {
-	{"CFG_BLK_SCRATCH_5",
-		CFG_BLK_SCRATCH_5_MASK},
-};
-
-
-static struct regfield_info
-	cfg_blk_scratch_6_field_info[] = {
-	{"CFG_BLK_SCRATCH_6",
-		CFG_BLK_SCRATCH_6_MASK},
-};
-
-
-static struct regfield_info
-	cfg_blk_scratch_7_field_info[] = {
-	{"CFG_BLK_SCRATCH_7",
-		CFG_BLK_SCRATCH_7_MASK},
-};
-
-
-static struct regfield_info
-	ram_sbe_msk_a_field_info[] = {
-	{"RAM_SBE_MSK_A",
-		RAM_SBE_MSK_A_MASK},
-};
-
-
-static struct regfield_info
-	ram_sbe_sts_a_field_info[] = {
-	{"RAM_SBE_STS_A_RSVD_1",
-		RAM_SBE_STS_A_RSVD_1_MASK},
-	{"RAM_SBE_STS_A_PFCH_LL_RAM",
-		RAM_SBE_STS_A_PFCH_LL_RAM_MASK},
-	{"RAM_SBE_STS_A_WRB_CTXT_RAM",
-		RAM_SBE_STS_A_WRB_CTXT_RAM_MASK},
-	{"RAM_SBE_STS_A_PFCH_CTXT_RAM",
-		RAM_SBE_STS_A_PFCH_CTXT_RAM_MASK},
-	{"RAM_SBE_STS_A_DESC_REQ_FIFO_RAM",
-		RAM_SBE_STS_A_DESC_REQ_FIFO_RAM_MASK},
-	{"RAM_SBE_STS_A_INT_CTXT_RAM",
-		RAM_SBE_STS_A_INT_CTXT_RAM_MASK},
-	{"RAM_SBE_STS_A_INT_QID2VEC_RAM",
-		RAM_SBE_STS_A_INT_QID2VEC_RAM_MASK},
-	{"RAM_SBE_STS_A_WRB_COAL_DATA_RAM",
-		RAM_SBE_STS_A_WRB_COAL_DATA_RAM_MASK},
-	{"RAM_SBE_STS_A_TUSER_FIFO_RAM",
-		RAM_SBE_STS_A_TUSER_FIFO_RAM_MASK},
-	{"RAM_SBE_STS_A_QID_FIFO_RAM",
-		RAM_SBE_STS_A_QID_FIFO_RAM_MASK},
-	{"RAM_SBE_STS_A_PLD_FIFO_RAM",
-		RAM_SBE_STS_A_PLD_FIFO_RAM_MASK},
-	{"RAM_SBE_STS_A_TIMER_FIFO_RAM",
-		RAM_SBE_STS_A_TIMER_FIFO_RAM_MASK},
-	{"RAM_SBE_STS_A_PASID_CTXT_RAM",
-		RAM_SBE_STS_A_PASID_CTXT_RAM_MASK},
-	{"RAM_SBE_STS_A_DSC_CPLD",
-		RAM_SBE_STS_A_DSC_CPLD_MASK},
-	{"RAM_SBE_STS_A_DSC_CPLI",
-		RAM_SBE_STS_A_DSC_CPLI_MASK},
-	{"RAM_SBE_STS_A_DSC_SW_CTXT",
-		RAM_SBE_STS_A_DSC_SW_CTXT_MASK},
-	{"RAM_SBE_STS_A_DSC_CRD_RCV",
-		RAM_SBE_STS_A_DSC_CRD_RCV_MASK},
-	{"RAM_SBE_STS_A_DSC_HW_CTXT",
-		RAM_SBE_STS_A_DSC_HW_CTXT_MASK},
-	{"RAM_SBE_STS_A_FUNC_MAP",
-		RAM_SBE_STS_A_FUNC_MAP_MASK},
-	{"RAM_SBE_STS_A_C2H_WR_BRG_DAT",
-		RAM_SBE_STS_A_C2H_WR_BRG_DAT_MASK},
-	{"RAM_SBE_STS_A_C2H_RD_BRG_DAT",
-		RAM_SBE_STS_A_C2H_RD_BRG_DAT_MASK},
-	{"RAM_SBE_STS_A_H2C_WR_BRG_DAT",
-		RAM_SBE_STS_A_H2C_WR_BRG_DAT_MASK},
-	{"RAM_SBE_STS_A_H2C_RD_BRG_DAT",
-		RAM_SBE_STS_A_H2C_RD_BRG_DAT_MASK},
-	{"RAM_SBE_STS_A_RSVD_2",
-		RAM_SBE_STS_A_RSVD_2_MASK},
-	{"RAM_SBE_STS_A_MI_C2H0_DAT",
-		RAM_SBE_STS_A_MI_C2H0_DAT_MASK},
-	{"RAM_SBE_STS_A_RSVD_3",
-		RAM_SBE_STS_A_RSVD_3_MASK},
-	{"RAM_SBE_STS_A_MI_H2C0_DAT",
-		RAM_SBE_STS_A_MI_H2C0_DAT_MASK},
-};
-
-
-static struct regfield_info
-	ram_dbe_msk_a_field_info[] = {
-	{"RAM_DBE_MSK_A",
-		RAM_DBE_MSK_A_MASK},
-};
-
-
-static struct regfield_info
-	ram_dbe_sts_a_field_info[] = {
-	{"RAM_DBE_STS_A_RSVD_1",
-		RAM_DBE_STS_A_RSVD_1_MASK},
-	{"RAM_DBE_STS_A_PFCH_LL_RAM",
-		RAM_DBE_STS_A_PFCH_LL_RAM_MASK},
-	{"RAM_DBE_STS_A_WRB_CTXT_RAM",
-		RAM_DBE_STS_A_WRB_CTXT_RAM_MASK},
-	{"RAM_DBE_STS_A_PFCH_CTXT_RAM",
-		RAM_DBE_STS_A_PFCH_CTXT_RAM_MASK},
-	{"RAM_DBE_STS_A_DESC_REQ_FIFO_RAM",
-		RAM_DBE_STS_A_DESC_REQ_FIFO_RAM_MASK},
-	{"RAM_DBE_STS_A_INT_CTXT_RAM",
-		RAM_DBE_STS_A_INT_CTXT_RAM_MASK},
-	{"RAM_DBE_STS_A_INT_QID2VEC_RAM",
-		RAM_DBE_STS_A_INT_QID2VEC_RAM_MASK},
-	{"RAM_DBE_STS_A_WRB_COAL_DATA_RAM",
-		RAM_DBE_STS_A_WRB_COAL_DATA_RAM_MASK},
-	{"RAM_DBE_STS_A_TUSER_FIFO_RAM",
-		RAM_DBE_STS_A_TUSER_FIFO_RAM_MASK},
-	{"RAM_DBE_STS_A_QID_FIFO_RAM",
-		RAM_DBE_STS_A_QID_FIFO_RAM_MASK},
-	{"RAM_DBE_STS_A_PLD_FIFO_RAM",
-		RAM_DBE_STS_A_PLD_FIFO_RAM_MASK},
-	{"RAM_DBE_STS_A_TIMER_FIFO_RAM",
-		RAM_DBE_STS_A_TIMER_FIFO_RAM_MASK},
-	{"RAM_DBE_STS_A_PASID_CTXT_RAM",
-		RAM_DBE_STS_A_PASID_CTXT_RAM_MASK},
-	{"RAM_DBE_STS_A_DSC_CPLD",
-		RAM_DBE_STS_A_DSC_CPLD_MASK},
-	{"RAM_DBE_STS_A_DSC_CPLI",
-		RAM_DBE_STS_A_DSC_CPLI_MASK},
-	{"RAM_DBE_STS_A_DSC_SW_CTXT",
-		RAM_DBE_STS_A_DSC_SW_CTXT_MASK},
-	{"RAM_DBE_STS_A_DSC_CRD_RCV",
-		RAM_DBE_STS_A_DSC_CRD_RCV_MASK},
-	{"RAM_DBE_STS_A_DSC_HW_CTXT",
-		RAM_DBE_STS_A_DSC_HW_CTXT_MASK},
-	{"RAM_DBE_STS_A_FUNC_MAP",
-		RAM_DBE_STS_A_FUNC_MAP_MASK},
-	{"RAM_DBE_STS_A_C2H_WR_BRG_DAT",
-		RAM_DBE_STS_A_C2H_WR_BRG_DAT_MASK},
-	{"RAM_DBE_STS_A_C2H_RD_BRG_DAT",
-		RAM_DBE_STS_A_C2H_RD_BRG_DAT_MASK},
-	{"RAM_DBE_STS_A_H2C_WR_BRG_DAT",
-		RAM_DBE_STS_A_H2C_WR_BRG_DAT_MASK},
-	{"RAM_DBE_STS_A_H2C_RD_BRG_DAT",
-		RAM_DBE_STS_A_H2C_RD_BRG_DAT_MASK},
-	{"RAM_DBE_STS_A_RSVD_2",
-		RAM_DBE_STS_A_RSVD_2_MASK},
-	{"RAM_DBE_STS_A_MI_C2H0_DAT",
-		RAM_DBE_STS_A_MI_C2H0_DAT_MASK},
-	{"RAM_DBE_STS_A_RSVD_3",
-		RAM_DBE_STS_A_RSVD_3_MASK},
-	{"RAM_DBE_STS_A_MI_H2C0_DAT",
-		RAM_DBE_STS_A_MI_H2C0_DAT_MASK},
-};
-
-
-static struct regfield_info
-	glbl2_identifier_field_info[] = {
-	{"GLBL2_IDENTIFIER",
-		GLBL2_IDENTIFIER_MASK},
-	{"GLBL2_IDENTIFIER_VERSION",
-		GLBL2_IDENTIFIER_VERSION_MASK},
-};
-
-
-static struct regfield_info
-	glbl2_pf_barlite_int_field_info[] = {
-	{"GLBL2_PF_BARLITE_INT_PF3_BAR_MAP",
-		GLBL2_PF_BARLITE_INT_PF3_BAR_MAP_MASK},
-	{"GLBL2_PF_BARLITE_INT_PF2_BAR_MAP",
-		GLBL2_PF_BARLITE_INT_PF2_BAR_MAP_MASK},
-	{"GLBL2_PF_BARLITE_INT_PF1_BAR_MAP",
-		GLBL2_PF_BARLITE_INT_PF1_BAR_MAP_MASK},
-	{"GLBL2_PF_BARLITE_INT_PF0_BAR_MAP",
-		GLBL2_PF_BARLITE_INT_PF0_BAR_MAP_MASK},
-};
-
-
-static struct regfield_info
-	glbl2_pf_vf_barlite_int_field_info[] = {
-	{"GLBL2_PF_VF_BARLITE_INT_PF3_MAP",
-		GLBL2_PF_VF_BARLITE_INT_PF3_MAP_MASK},
-	{"GLBL2_PF_VF_BARLITE_INT_PF2_MAP",
-		GLBL2_PF_VF_BARLITE_INT_PF2_MAP_MASK},
-	{"GLBL2_PF_VF_BARLITE_INT_PF1_MAP",
-		GLBL2_PF_VF_BARLITE_INT_PF1_MAP_MASK},
-	{"GLBL2_PF_VF_BARLITE_INT_PF0_MAP",
-		GLBL2_PF_VF_BARLITE_INT_PF0_MAP_MASK},
-};
-
-
-static struct regfield_info
-	glbl2_pf_barlite_ext_field_info[] = {
-	{"GLBL2_PF_BARLITE_EXT_PF3_BAR_MAP",
-		GLBL2_PF_BARLITE_EXT_PF3_BAR_MAP_MASK},
-	{"GLBL2_PF_BARLITE_EXT_PF2_BAR_MAP",
-		GLBL2_PF_BARLITE_EXT_PF2_BAR_MAP_MASK},
-	{"GLBL2_PF_BARLITE_EXT_PF1_BAR_MAP",
-		GLBL2_PF_BARLITE_EXT_PF1_BAR_MAP_MASK},
-	{"GLBL2_PF_BARLITE_EXT_PF0_BAR_MAP",
-		GLBL2_PF_BARLITE_EXT_PF0_BAR_MAP_MASK},
-};
-
-
-static struct regfield_info
-	glbl2_pf_vf_barlite_ext_field_info[] = {
-	{"GLBL2_PF_VF_BARLITE_EXT_PF3_MAP",
-		GLBL2_PF_VF_BARLITE_EXT_PF3_MAP_MASK},
-	{"GLBL2_PF_VF_BARLITE_EXT_PF2_MAP",
-		GLBL2_PF_VF_BARLITE_EXT_PF2_MAP_MASK},
-	{"GLBL2_PF_VF_BARLITE_EXT_PF1_MAP",
-		GLBL2_PF_VF_BARLITE_EXT_PF1_MAP_MASK},
-	{"GLBL2_PF_VF_BARLITE_EXT_PF0_MAP",
-		GLBL2_PF_VF_BARLITE_EXT_PF0_MAP_MASK},
-};
-
-
-static struct regfield_info
-	glbl2_channel_inst_field_info[] = {
-	{"GLBL2_CHANNEL_INST_RSVD_1",
-		GLBL2_CHANNEL_INST_RSVD_1_MASK},
-	{"GLBL2_CHANNEL_INST_C2H_ST",
-		GLBL2_CHANNEL_INST_C2H_ST_MASK},
-	{"GLBL2_CHANNEL_INST_H2C_ST",
-		GLBL2_CHANNEL_INST_H2C_ST_MASK},
-	{"GLBL2_CHANNEL_INST_RSVD_2",
-		GLBL2_CHANNEL_INST_RSVD_2_MASK},
-	{"GLBL2_CHANNEL_INST_C2H_ENG",
-		GLBL2_CHANNEL_INST_C2H_ENG_MASK},
-	{"GLBL2_CHANNEL_INST_RSVD_3",
-		GLBL2_CHANNEL_INST_RSVD_3_MASK},
-	{"GLBL2_CHANNEL_INST_H2C_ENG",
-		GLBL2_CHANNEL_INST_H2C_ENG_MASK},
-};
-
-
-static struct regfield_info
-	glbl2_channel_mdma_field_info[] = {
-	{"GLBL2_CHANNEL_MDMA_RSVD_1",
-		GLBL2_CHANNEL_MDMA_RSVD_1_MASK},
-	{"GLBL2_CHANNEL_MDMA_C2H_ST",
-		GLBL2_CHANNEL_MDMA_C2H_ST_MASK},
-	{"GLBL2_CHANNEL_MDMA_H2C_ST",
-		GLBL2_CHANNEL_MDMA_H2C_ST_MASK},
-	{"GLBL2_CHANNEL_MDMA_RSVD_2",
-		GLBL2_CHANNEL_MDMA_RSVD_2_MASK},
-	{"GLBL2_CHANNEL_MDMA_C2H_ENG",
-		GLBL2_CHANNEL_MDMA_C2H_ENG_MASK},
-	{"GLBL2_CHANNEL_MDMA_RSVD_3",
-		GLBL2_CHANNEL_MDMA_RSVD_3_MASK},
-	{"GLBL2_CHANNEL_MDMA_H2C_ENG",
-		GLBL2_CHANNEL_MDMA_H2C_ENG_MASK},
-};
-
-
-static struct regfield_info
-	glbl2_channel_strm_field_info[] = {
-	{"GLBL2_CHANNEL_STRM_RSVD_1",
-		GLBL2_CHANNEL_STRM_RSVD_1_MASK},
-	{"GLBL2_CHANNEL_STRM_C2H_ST",
-		GLBL2_CHANNEL_STRM_C2H_ST_MASK},
-	{"GLBL2_CHANNEL_STRM_H2C_ST",
-		GLBL2_CHANNEL_STRM_H2C_ST_MASK},
-	{"GLBL2_CHANNEL_STRM_RSVD_2",
-		GLBL2_CHANNEL_STRM_RSVD_2_MASK},
-	{"GLBL2_CHANNEL_STRM_C2H_ENG",
-		GLBL2_CHANNEL_STRM_C2H_ENG_MASK},
-	{"GLBL2_CHANNEL_STRM_RSVD_3",
-		GLBL2_CHANNEL_STRM_RSVD_3_MASK},
-	{"GLBL2_CHANNEL_STRM_H2C_ENG",
-		GLBL2_CHANNEL_STRM_H2C_ENG_MASK},
-};
-
-
-static struct regfield_info
-	glbl2_channel_cap_field_info[] = {
-	{"GLBL2_CHANNEL_CAP_RSVD_1",
-		GLBL2_CHANNEL_CAP_RSVD_1_MASK},
-	{"GLBL2_CHANNEL_CAP_MULTIQ_MAX",
-		GLBL2_CHANNEL_CAP_MULTIQ_MAX_MASK},
-};
-
-
-static struct regfield_info
-	glbl2_channel_pasid_cap_field_info[] = {
-	{"GLBL2_CHANNEL_PASID_CAP_RSVD_1",
-		GLBL2_CHANNEL_PASID_CAP_RSVD_1_MASK},
-	{"GLBL2_CHANNEL_PASID_CAP_BRIDGEOFFSET",
-		GLBL2_CHANNEL_PASID_CAP_BRIDGEOFFSET_MASK},
-	{"GLBL2_CHANNEL_PASID_CAP_RSVD_2",
-		GLBL2_CHANNEL_PASID_CAP_RSVD_2_MASK},
-	{"GLBL2_CHANNEL_PASID_CAP_BRIDGEEN",
-		GLBL2_CHANNEL_PASID_CAP_BRIDGEEN_MASK},
-	{"GLBL2_CHANNEL_PASID_CAP_DMAEN",
-		GLBL2_CHANNEL_PASID_CAP_DMAEN_MASK},
-};
-
-
-static struct regfield_info
-	glbl2_channel_func_ret_field_info[] = {
-	{"GLBL2_CHANNEL_FUNC_RET_RSVD_1",
-		GLBL2_CHANNEL_FUNC_RET_RSVD_1_MASK},
-	{"GLBL2_CHANNEL_FUNC_RET_FUNC",
-		GLBL2_CHANNEL_FUNC_RET_FUNC_MASK},
-};
-
-
-static struct regfield_info
-	glbl2_system_id_field_info[] = {
-	{"GLBL2_SYSTEM_ID_RSVD_1",
-		GLBL2_SYSTEM_ID_RSVD_1_MASK},
-	{"GLBL2_SYSTEM_ID",
-		GLBL2_SYSTEM_ID_MASK},
-};
-
-
-static struct regfield_info
-	glbl2_misc_cap_field_info[] = {
-	{"GLBL2_MISC_CAP_RSVD_1",
-		GLBL2_MISC_CAP_RSVD_1_MASK},
-};
-
-
-static struct regfield_info
-	glbl2_dbg_pcie_rq0_field_info[] = {
-	{"GLBL2_PCIE_RQ0_NPH_AVL",
-		GLBL2_PCIE_RQ0_NPH_AVL_MASK},
-	{"GLBL2_PCIE_RQ0_RCB_AVL",
-		GLBL2_PCIE_RQ0_RCB_AVL_MASK},
-	{"GLBL2_PCIE_RQ0_SLV_RD_CREDS",
-		GLBL2_PCIE_RQ0_SLV_RD_CREDS_MASK},
-	{"GLBL2_PCIE_RQ0_TAG_EP",
-		GLBL2_PCIE_RQ0_TAG_EP_MASK},
-	{"GLBL2_PCIE_RQ0_TAG_FL",
-		GLBL2_PCIE_RQ0_TAG_FL_MASK},
-};
-
-
-static struct regfield_info
-	glbl2_dbg_pcie_rq1_field_info[] = {
-	{"GLBL2_PCIE_RQ1_RSVD_1",
-		GLBL2_PCIE_RQ1_RSVD_1_MASK},
-	{"GLBL2_PCIE_RQ1_WTLP_REQ",
-		GLBL2_PCIE_RQ1_WTLP_REQ_MASK},
-	{"GLBL2_PCIE_RQ1_WTLP_HEADER_FIFO_FL",
-		GLBL2_PCIE_RQ1_WTLP_HEADER_FIFO_FL_MASK},
-	{"GLBL2_PCIE_RQ1_WTLP_HEADER_FIFO_EP",
-		GLBL2_PCIE_RQ1_WTLP_HEADER_FIFO_EP_MASK},
-	{"GLBL2_PCIE_RQ1_RQ_FIFO_EP",
-		GLBL2_PCIE_RQ1_RQ_FIFO_EP_MASK},
-	{"GLBL2_PCIE_RQ1_RQ_FIFO_FL",
-		GLBL2_PCIE_RQ1_RQ_FIFO_FL_MASK},
-	{"GLBL2_PCIE_RQ1_TLPSM",
-		GLBL2_PCIE_RQ1_TLPSM_MASK},
-	{"GLBL2_PCIE_RQ1_TLPSM512",
-		GLBL2_PCIE_RQ1_TLPSM512_MASK},
-	{"GLBL2_PCIE_RQ1_RREQ0_RCB_OK",
-		GLBL2_PCIE_RQ1_RREQ0_RCB_OK_MASK},
-	{"GLBL2_PCIE_RQ1_RREQ0_SLV",
-		GLBL2_PCIE_RQ1_RREQ0_SLV_MASK},
-	{"GLBL2_PCIE_RQ1_RREQ0_VLD",
-		GLBL2_PCIE_RQ1_RREQ0_VLD_MASK},
-	{"GLBL2_PCIE_RQ1_RREQ1_RCB_OK",
-		GLBL2_PCIE_RQ1_RREQ1_RCB_OK_MASK},
-	{"GLBL2_PCIE_RQ1_RREQ1_SLV",
-		GLBL2_PCIE_RQ1_RREQ1_SLV_MASK},
-	{"GLBL2_PCIE_RQ1_RREQ1_VLD",
-		GLBL2_PCIE_RQ1_RREQ1_VLD_MASK},
-};
-
-
-static struct regfield_info
-	glbl2_dbg_aximm_wr0_field_info[] = {
-	{"GLBL2_AXIMM_WR0_RSVD_1",
-		GLBL2_AXIMM_WR0_RSVD_1_MASK},
-	{"GLBL2_AXIMM_WR0_WR_REQ",
-		GLBL2_AXIMM_WR0_WR_REQ_MASK},
-	{"GLBL2_AXIMM_WR0_WR_CHN",
-		GLBL2_AXIMM_WR0_WR_CHN_MASK},
-	{"GLBL2_AXIMM_WR0_WTLP_DATA_FIFO_EP",
-		GLBL2_AXIMM_WR0_WTLP_DATA_FIFO_EP_MASK},
-	{"GLBL2_AXIMM_WR0_WPL_FIFO_EP",
-		GLBL2_AXIMM_WR0_WPL_FIFO_EP_MASK},
-	{"GLBL2_AXIMM_WR0_BRSP_CLAIM_CHN",
-		GLBL2_AXIMM_WR0_BRSP_CLAIM_CHN_MASK},
-	{"GLBL2_AXIMM_WR0_WRREQ_CNT",
-		GLBL2_AXIMM_WR0_WRREQ_CNT_MASK},
-	{"GLBL2_AXIMM_WR0_BID",
-		GLBL2_AXIMM_WR0_BID_MASK},
-	{"GLBL2_AXIMM_WR0_BVALID",
-		GLBL2_AXIMM_WR0_BVALID_MASK},
-	{"GLBL2_AXIMM_WR0_BREADY",
-		GLBL2_AXIMM_WR0_BREADY_MASK},
-	{"GLBL2_AXIMM_WR0_WVALID",
-		GLBL2_AXIMM_WR0_WVALID_MASK},
-	{"GLBL2_AXIMM_WR0_WREADY",
-		GLBL2_AXIMM_WR0_WREADY_MASK},
-	{"GLBL2_AXIMM_WR0_AWID",
-		GLBL2_AXIMM_WR0_AWID_MASK},
-	{"GLBL2_AXIMM_WR0_AWVALID",
-		GLBL2_AXIMM_WR0_AWVALID_MASK},
-	{"GLBL2_AXIMM_WR0_AWREADY",
-		GLBL2_AXIMM_WR0_AWREADY_MASK},
-};
-
-
-static struct regfield_info
-	glbl2_dbg_aximm_wr1_field_info[] = {
-	{"GLBL2_AXIMM_WR1_RSVD_1",
-		GLBL2_AXIMM_WR1_RSVD_1_MASK},
-	{"GLBL2_AXIMM_WR1_BRSP_CNT4",
-		GLBL2_AXIMM_WR1_BRSP_CNT4_MASK},
-	{"GLBL2_AXIMM_WR1_BRSP_CNT3",
-		GLBL2_AXIMM_WR1_BRSP_CNT3_MASK},
-	{"GLBL2_AXIMM_WR1_BRSP_CNT2",
-		GLBL2_AXIMM_WR1_BRSP_CNT2_MASK},
-	{"GLBL2_AXIMM_WR1_BRSP_CNT1",
-		GLBL2_AXIMM_WR1_BRSP_CNT1_MASK},
-	{"GLBL2_AXIMM_WR1_BRSP_CNT0",
-		GLBL2_AXIMM_WR1_BRSP_CNT0_MASK},
-};
-
-
-static struct regfield_info
-	glbl2_dbg_aximm_rd0_field_info[] = {
-	{"GLBL2_AXIMM_RD0_RSVD_1",
-		GLBL2_AXIMM_RD0_RSVD_1_MASK},
-	{"GLBL2_AXIMM_RD0_PND_CNT",
-		GLBL2_AXIMM_RD0_PND_CNT_MASK},
-	{"GLBL2_AXIMM_RD0_RD_CHNL",
-		GLBL2_AXIMM_RD0_RD_CHNL_MASK},
-	{"GLBL2_AXIMM_RD0_RD_REQ",
-		GLBL2_AXIMM_RD0_RD_REQ_MASK},
-	{"GLBL2_AXIMM_RD0_RRSP_CLAIM_CHNL",
-		GLBL2_AXIMM_RD0_RRSP_CLAIM_CHNL_MASK},
-	{"GLBL2_AXIMM_RD0_RID",
-		GLBL2_AXIMM_RD0_RID_MASK},
-	{"GLBL2_AXIMM_RD0_RVALID",
-		GLBL2_AXIMM_RD0_RVALID_MASK},
-	{"GLBL2_AXIMM_RD0_RREADY",
-		GLBL2_AXIMM_RD0_RREADY_MASK},
-	{"GLBL2_AXIMM_RD0_ARID",
-		GLBL2_AXIMM_RD0_ARID_MASK},
-	{"GLBL2_AXIMM_RD0_ARVALID",
-		GLBL2_AXIMM_RD0_ARVALID_MASK},
-	{"GLBL2_AXIMM_RD0_ARREADY",
-		GLBL2_AXIMM_RD0_ARREADY_MASK},
-};
-
-
-static struct regfield_info
-	glbl2_dbg_aximm_rd1_field_info[] = {
-	{"GLBL2_AXIMM_RD1_RSVD_1",
-		GLBL2_AXIMM_RD1_RSVD_1_MASK},
-	{"GLBL2_AXIMM_RD1_RRSP_CNT4",
-		GLBL2_AXIMM_RD1_RRSP_CNT4_MASK},
-	{"GLBL2_AXIMM_RD1_RRSP_CNT3",
-		GLBL2_AXIMM_RD1_RRSP_CNT3_MASK},
-	{"GLBL2_AXIMM_RD1_RRSP_CNT2",
-		GLBL2_AXIMM_RD1_RRSP_CNT2_MASK},
-	{"GLBL2_AXIMM_RD1_RRSP_CNT1",
-		GLBL2_AXIMM_RD1_RRSP_CNT1_MASK},
-	{"GLBL2_AXIMM_RD1_RRSP_CNT0",
-		GLBL2_AXIMM_RD1_RRSP_CNT0_MASK},
-};
-
-
-static struct regfield_info
-	glbl_rng_sz_1_field_info[] = {
-	{"GLBL_RNG_SZ_1_RSVD_1",
-		GLBL_RNG_SZ_1_RSVD_1_MASK},
-	{"GLBL_RNG_SZ_1_RING_SIZE",
-		GLBL_RNG_SZ_1_RING_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	glbl_rng_sz_2_field_info[] = {
-	{"GLBL_RNG_SZ_2_RSVD_1",
-		GLBL_RNG_SZ_2_RSVD_1_MASK},
-	{"GLBL_RNG_SZ_2_RING_SIZE",
-		GLBL_RNG_SZ_2_RING_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	glbl_rng_sz_3_field_info[] = {
-	{"GLBL_RNG_SZ_3_RSVD_1",
-		GLBL_RNG_SZ_3_RSVD_1_MASK},
-	{"GLBL_RNG_SZ_3_RING_SIZE",
-		GLBL_RNG_SZ_3_RING_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	glbl_rng_sz_4_field_info[] = {
-	{"GLBL_RNG_SZ_4_RSVD_1",
-		GLBL_RNG_SZ_4_RSVD_1_MASK},
-	{"GLBL_RNG_SZ_4_RING_SIZE",
-		GLBL_RNG_SZ_4_RING_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	glbl_rng_sz_5_field_info[] = {
-	{"GLBL_RNG_SZ_5_RSVD_1",
-		GLBL_RNG_SZ_5_RSVD_1_MASK},
-	{"GLBL_RNG_SZ_5_RING_SIZE",
-		GLBL_RNG_SZ_5_RING_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	glbl_rng_sz_6_field_info[] = {
-	{"GLBL_RNG_SZ_6_RSVD_1",
-		GLBL_RNG_SZ_6_RSVD_1_MASK},
-	{"GLBL_RNG_SZ_6_RING_SIZE",
-		GLBL_RNG_SZ_6_RING_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	glbl_rng_sz_7_field_info[] = {
-	{"GLBL_RNG_SZ_7_RSVD_1",
-		GLBL_RNG_SZ_7_RSVD_1_MASK},
-	{"GLBL_RNG_SZ_7_RING_SIZE",
-		GLBL_RNG_SZ_7_RING_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	glbl_rng_sz_8_field_info[] = {
-	{"GLBL_RNG_SZ_8_RSVD_1",
-		GLBL_RNG_SZ_8_RSVD_1_MASK},
-	{"GLBL_RNG_SZ_8_RING_SIZE",
-		GLBL_RNG_SZ_8_RING_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	glbl_rng_sz_9_field_info[] = {
-	{"GLBL_RNG_SZ_9_RSVD_1",
-		GLBL_RNG_SZ_9_RSVD_1_MASK},
-	{"GLBL_RNG_SZ_9_RING_SIZE",
-		GLBL_RNG_SZ_9_RING_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	glbl_rng_sz_a_field_info[] = {
-	{"GLBL_RNG_SZ_A_RSVD_1",
-		GLBL_RNG_SZ_A_RSVD_1_MASK},
-	{"GLBL_RNG_SZ_A_RING_SIZE",
-		GLBL_RNG_SZ_A_RING_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	glbl_rng_sz_b_field_info[] = {
-	{"GLBL_RNG_SZ_B_RSVD_1",
-		GLBL_RNG_SZ_B_RSVD_1_MASK},
-	{"GLBL_RNG_SZ_B_RING_SIZE",
-		GLBL_RNG_SZ_B_RING_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	glbl_rng_sz_c_field_info[] = {
-	{"GLBL_RNG_SZ_C_RSVD_1",
-		GLBL_RNG_SZ_C_RSVD_1_MASK},
-	{"GLBL_RNG_SZ_C_RING_SIZE",
-		GLBL_RNG_SZ_C_RING_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	glbl_rng_sz_d_field_info[] = {
-	{"GLBL_RNG_SZ_D_RSVD_1",
-		GLBL_RNG_SZ_D_RSVD_1_MASK},
-	{"GLBL_RNG_SZ_D_RING_SIZE",
-		GLBL_RNG_SZ_D_RING_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	glbl_rng_sz_e_field_info[] = {
-	{"GLBL_RNG_SZ_E_RSVD_1",
-		GLBL_RNG_SZ_E_RSVD_1_MASK},
-	{"GLBL_RNG_SZ_E_RING_SIZE",
-		GLBL_RNG_SZ_E_RING_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	glbl_rng_sz_f_field_info[] = {
-	{"GLBL_RNG_SZ_F_RSVD_1",
-		GLBL_RNG_SZ_F_RSVD_1_MASK},
-	{"GLBL_RNG_SZ_F_RING_SIZE",
-		GLBL_RNG_SZ_F_RING_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	glbl_rng_sz_10_field_info[] = {
-	{"GLBL_RNG_SZ_10_RSVD_1",
-		GLBL_RNG_SZ_10_RSVD_1_MASK},
-	{"GLBL_RNG_SZ_10_RING_SIZE",
-		GLBL_RNG_SZ_10_RING_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	glbl_err_stat_field_info[] = {
-	{"GLBL_ERR_STAT_RSVD_1",
-		GLBL_ERR_STAT_RSVD_1_MASK},
-	{"GLBL_ERR_STAT_ERR_H2C_ST",
-		GLBL_ERR_STAT_ERR_H2C_ST_MASK},
-	{"GLBL_ERR_STAT_ERR_BDG",
-		GLBL_ERR_STAT_ERR_BDG_MASK},
-	{"GLBL_ERR_STAT_IND_CTXT_CMD_ERR",
-		GLBL_ERR_STAT_IND_CTXT_CMD_ERR_MASK},
-	{"GLBL_ERR_STAT_ERR_C2H_ST",
-		GLBL_ERR_STAT_ERR_C2H_ST_MASK},
-	{"GLBL_ERR_STAT_ERR_C2H_MM_1",
-		GLBL_ERR_STAT_ERR_C2H_MM_1_MASK},
-	{"GLBL_ERR_STAT_ERR_C2H_MM_0",
-		GLBL_ERR_STAT_ERR_C2H_MM_0_MASK},
-	{"GLBL_ERR_STAT_ERR_H2C_MM_1",
-		GLBL_ERR_STAT_ERR_H2C_MM_1_MASK},
-	{"GLBL_ERR_STAT_ERR_H2C_MM_0",
-		GLBL_ERR_STAT_ERR_H2C_MM_0_MASK},
-	{"GLBL_ERR_STAT_ERR_TRQ",
-		GLBL_ERR_STAT_ERR_TRQ_MASK},
-	{"GLBL_ERR_STAT_ERR_DSC",
-		GLBL_ERR_STAT_ERR_DSC_MASK},
-	{"GLBL_ERR_STAT_ERR_RAM_DBE",
-		GLBL_ERR_STAT_ERR_RAM_DBE_MASK},
-	{"GLBL_ERR_STAT_ERR_RAM_SBE",
-		GLBL_ERR_STAT_ERR_RAM_SBE_MASK},
-};
-
-
-static struct regfield_info
-	glbl_err_mask_field_info[] = {
-	{"GLBL_ERR_RSVD_1",
-		GLBL_ERR_RSVD_1_MASK},
-	{"GLBL_ERR",
-		GLBL_ERR_MASK},
-};
-
-
-static struct regfield_info
-	glbl_dsc_cfg_field_info[] = {
-	{"GLBL_DSC_CFG_RSVD_1",
-		GLBL_DSC_CFG_RSVD_1_MASK},
-	{"GLBL_DSC_CFG_UNC_OVR_COR",
-		GLBL_DSC_CFG_UNC_OVR_COR_MASK},
-	{"GLBL_DSC_CFG_CTXT_FER_DIS",
-		GLBL_DSC_CFG_CTXT_FER_DIS_MASK},
-	{"GLBL_DSC_CFG_RSVD_2",
-		GLBL_DSC_CFG_RSVD_2_MASK},
-	{"GLBL_DSC_CFG_MAXFETCH",
-		GLBL_DSC_CFG_MAXFETCH_MASK},
-	{"GLBL_DSC_CFG_WB_ACC_INT",
-		GLBL_DSC_CFG_WB_ACC_INT_MASK},
-};
-
-
-static struct regfield_info
-	glbl_dsc_err_sts_field_info[] = {
-	{"GLBL_DSC_ERR_STS_RSVD_1",
-		GLBL_DSC_ERR_STS_RSVD_1_MASK},
-	{"GLBL_DSC_ERR_STS_SBE",
-		GLBL_DSC_ERR_STS_SBE_MASK},
-	{"GLBL_DSC_ERR_STS_DBE",
-		GLBL_DSC_ERR_STS_DBE_MASK},
-	{"GLBL_DSC_ERR_STS_RQ_CANCEL",
-		GLBL_DSC_ERR_STS_RQ_CANCEL_MASK},
-	{"GLBL_DSC_ERR_STS_DSC",
-		GLBL_DSC_ERR_STS_DSC_MASK},
-	{"GLBL_DSC_ERR_STS_DMA",
-		GLBL_DSC_ERR_STS_DMA_MASK},
-	{"GLBL_DSC_ERR_STS_FLR_CANCEL",
-		GLBL_DSC_ERR_STS_FLR_CANCEL_MASK},
-	{"GLBL_DSC_ERR_STS_RSVD_2",
-		GLBL_DSC_ERR_STS_RSVD_2_MASK},
-	{"GLBL_DSC_ERR_STS_DAT_POISON",
-		GLBL_DSC_ERR_STS_DAT_POISON_MASK},
-	{"GLBL_DSC_ERR_STS_TIMEOUT",
-		GLBL_DSC_ERR_STS_TIMEOUT_MASK},
-	{"GLBL_DSC_ERR_STS_FLR",
-		GLBL_DSC_ERR_STS_FLR_MASK},
-	{"GLBL_DSC_ERR_STS_TAG",
-		GLBL_DSC_ERR_STS_TAG_MASK},
-	{"GLBL_DSC_ERR_STS_ADDR",
-		GLBL_DSC_ERR_STS_ADDR_MASK},
-	{"GLBL_DSC_ERR_STS_PARAM",
-		GLBL_DSC_ERR_STS_PARAM_MASK},
-	{"GLBL_DSC_ERR_STS_UR_CA",
-		GLBL_DSC_ERR_STS_UR_CA_MASK},
-	{"GLBL_DSC_ERR_STS_POISON",
-		GLBL_DSC_ERR_STS_POISON_MASK},
-};
-
-
-static struct regfield_info
-	glbl_dsc_err_msk_field_info[] = {
-	{"GLBL_DSC_ERR_MSK",
-		GLBL_DSC_ERR_MSK_MASK},
-};
-
-
-static struct regfield_info
-	glbl_dsc_err_log0_field_info[] = {
-	{"GLBL_DSC_ERR_LOG0_VALID",
-		GLBL_DSC_ERR_LOG0_VALID_MASK},
-	{"GLBL_DSC_ERR_LOG0_RSVD_1",
-		GLBL_DSC_ERR_LOG0_RSVD_1_MASK},
-	{"GLBL_DSC_ERR_LOG0_QID",
-		GLBL_DSC_ERR_LOG0_QID_MASK},
-	{"GLBL_DSC_ERR_LOG0_SEL",
-		GLBL_DSC_ERR_LOG0_SEL_MASK},
-	{"GLBL_DSC_ERR_LOG0_CIDX",
-		GLBL_DSC_ERR_LOG0_CIDX_MASK},
-};
-
-
-static struct regfield_info
-	glbl_dsc_err_log1_field_info[] = {
-	{"GLBL_DSC_ERR_LOG1_RSVD_1",
-		GLBL_DSC_ERR_LOG1_RSVD_1_MASK},
-	{"GLBL_DSC_ERR_LOG1_SUB_TYPE",
-		GLBL_DSC_ERR_LOG1_SUB_TYPE_MASK},
-	{"GLBL_DSC_ERR_LOG1_ERR_TYPE",
-		GLBL_DSC_ERR_LOG1_ERR_TYPE_MASK},
-};
-
-
-static struct regfield_info
-	glbl_trq_err_sts_field_info[] = {
-	{"GLBL_TRQ_ERR_STS_RSVD_1",
-		GLBL_TRQ_ERR_STS_RSVD_1_MASK},
-	{"GLBL_TRQ_ERR_STS_TCP_TIMEOUT",
-		GLBL_TRQ_ERR_STS_TCP_TIMEOUT_MASK},
-	{"GLBL_TRQ_ERR_STS_VF_ACCESS_ERR",
-		GLBL_TRQ_ERR_STS_VF_ACCESS_ERR_MASK},
-	{"GLBL_TRQ_ERR_STS_QID_RANGE",
-		GLBL_TRQ_ERR_STS_QID_RANGE_MASK},
-	{"GLBL_TRQ_ERR_STS_UNMAPPED",
-		GLBL_TRQ_ERR_STS_UNMAPPED_MASK},
-};
-
-
-static struct regfield_info
-	glbl_trq_err_msk_field_info[] = {
-	{"GLBL_TRQ_ERR_MSK",
-		GLBL_TRQ_ERR_MSK_MASK},
-};
-
-
-static struct regfield_info
-	glbl_trq_err_log_field_info[] = {
-	{"GLBL_TRQ_ERR_LOG_RSVD_1",
-		GLBL_TRQ_ERR_LOG_RSVD_1_MASK},
-	{"GLBL_TRQ_ERR_LOG_TARGET",
-		GLBL_TRQ_ERR_LOG_TARGET_MASK},
-	{"GLBL_TRQ_ERR_LOG_FUNC",
-		GLBL_TRQ_ERR_LOG_FUNC_MASK},
-	{"GLBL_TRQ_ERR_LOG_ADDRESS",
-		GLBL_TRQ_ERR_LOG_ADDRESS_MASK},
-};
-
-
-static struct regfield_info
-	glbl_dsc_dbg_dat0_field_info[] = {
-	{"GLBL_DSC_DAT0_RSVD_1",
-		GLBL_DSC_DAT0_RSVD_1_MASK},
-	{"GLBL_DSC_DAT0_CTXT_ARB_DIR",
-		GLBL_DSC_DAT0_CTXT_ARB_DIR_MASK},
-	{"GLBL_DSC_DAT0_CTXT_ARB_QID",
-		GLBL_DSC_DAT0_CTXT_ARB_QID_MASK},
-	{"GLBL_DSC_DAT0_CTXT_ARB_REQ",
-		GLBL_DSC_DAT0_CTXT_ARB_REQ_MASK},
-	{"GLBL_DSC_DAT0_IRQ_FIFO_FL",
-		GLBL_DSC_DAT0_IRQ_FIFO_FL_MASK},
-	{"GLBL_DSC_DAT0_TMSTALL",
-		GLBL_DSC_DAT0_TMSTALL_MASK},
-	{"GLBL_DSC_DAT0_RRQ_STALL",
-		GLBL_DSC_DAT0_RRQ_STALL_MASK},
-	{"GLBL_DSC_DAT0_RCP_FIFO_SPC_STALL",
-		GLBL_DSC_DAT0_RCP_FIFO_SPC_STALL_MASK},
-	{"GLBL_DSC_DAT0_RRQ_FIFO_SPC_STALL",
-		GLBL_DSC_DAT0_RRQ_FIFO_SPC_STALL_MASK},
-	{"GLBL_DSC_DAT0_FAB_MRKR_RSP_STALL",
-		GLBL_DSC_DAT0_FAB_MRKR_RSP_STALL_MASK},
-	{"GLBL_DSC_DAT0_DSC_OUT_STALL",
-		GLBL_DSC_DAT0_DSC_OUT_STALL_MASK},
-};
-
-
-static struct regfield_info
-	glbl_dsc_dbg_dat1_field_info[] = {
-	{"GLBL_DSC_DAT1_RSVD_1",
-		GLBL_DSC_DAT1_RSVD_1_MASK},
-	{"GLBL_DSC_DAT1_EVT_SPC_C2H",
-		GLBL_DSC_DAT1_EVT_SPC_C2H_MASK},
-	{"GLBL_DSC_DAT1_EVT_SP_H2C",
-		GLBL_DSC_DAT1_EVT_SP_H2C_MASK},
-	{"GLBL_DSC_DAT1_DSC_SPC_C2H",
-		GLBL_DSC_DAT1_DSC_SPC_C2H_MASK},
-	{"GLBL_DSC_DAT1_DSC_SPC_H2C",
-		GLBL_DSC_DAT1_DSC_SPC_H2C_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_0_field_info[] = {
-	{"TRQ_SEL_FMAP_0_RSVD_1",
-		TRQ_SEL_FMAP_0_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_0_QID_MAX",
-		TRQ_SEL_FMAP_0_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_0_QID_BASE",
-		TRQ_SEL_FMAP_0_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_1_field_info[] = {
-	{"TRQ_SEL_FMAP_1_RSVD_1",
-		TRQ_SEL_FMAP_1_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_1_QID_MAX",
-		TRQ_SEL_FMAP_1_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_1_QID_BASE",
-		TRQ_SEL_FMAP_1_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_2_field_info[] = {
-	{"TRQ_SEL_FMAP_2_RSVD_1",
-		TRQ_SEL_FMAP_2_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_2_QID_MAX",
-		TRQ_SEL_FMAP_2_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_2_QID_BASE",
-		TRQ_SEL_FMAP_2_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_3_field_info[] = {
-	{"TRQ_SEL_FMAP_3_RSVD_1",
-		TRQ_SEL_FMAP_3_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_3_QID_MAX",
-		TRQ_SEL_FMAP_3_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_3_QID_BASE",
-		TRQ_SEL_FMAP_3_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_4_field_info[] = {
-	{"TRQ_SEL_FMAP_4_RSVD_1",
-		TRQ_SEL_FMAP_4_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_4_QID_MAX",
-		TRQ_SEL_FMAP_4_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_4_QID_BASE",
-		TRQ_SEL_FMAP_4_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_5_field_info[] = {
-	{"TRQ_SEL_FMAP_5_RSVD_1",
-		TRQ_SEL_FMAP_5_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_5_QID_MAX",
-		TRQ_SEL_FMAP_5_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_5_QID_BASE",
-		TRQ_SEL_FMAP_5_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_6_field_info[] = {
-	{"TRQ_SEL_FMAP_6_RSVD_1",
-		TRQ_SEL_FMAP_6_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_6_QID_MAX",
-		TRQ_SEL_FMAP_6_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_6_QID_BASE",
-		TRQ_SEL_FMAP_6_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_7_field_info[] = {
-	{"TRQ_SEL_FMAP_7_RSVD_1",
-		TRQ_SEL_FMAP_7_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_7_QID_MAX",
-		TRQ_SEL_FMAP_7_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_7_QID_BASE",
-		TRQ_SEL_FMAP_7_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_8_field_info[] = {
-	{"TRQ_SEL_FMAP_8_RSVD_1",
-		TRQ_SEL_FMAP_8_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_8_QID_MAX",
-		TRQ_SEL_FMAP_8_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_8_QID_BASE",
-		TRQ_SEL_FMAP_8_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_9_field_info[] = {
-	{"TRQ_SEL_FMAP_9_RSVD_1",
-		TRQ_SEL_FMAP_9_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_9_QID_MAX",
-		TRQ_SEL_FMAP_9_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_9_QID_BASE",
-		TRQ_SEL_FMAP_9_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_a_field_info[] = {
-	{"TRQ_SEL_FMAP_A_RSVD_1",
-		TRQ_SEL_FMAP_A_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_A_QID_MAX",
-		TRQ_SEL_FMAP_A_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_A_QID_BASE",
-		TRQ_SEL_FMAP_A_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_b_field_info[] = {
-	{"TRQ_SEL_FMAP_B_RSVD_1",
-		TRQ_SEL_FMAP_B_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_B_QID_MAX",
-		TRQ_SEL_FMAP_B_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_B_QID_BASE",
-		TRQ_SEL_FMAP_B_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_d_field_info[] = {
-	{"TRQ_SEL_FMAP_D_RSVD_1",
-		TRQ_SEL_FMAP_D_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_D_QID_MAX",
-		TRQ_SEL_FMAP_D_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_D_QID_BASE",
-		TRQ_SEL_FMAP_D_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_e_field_info[] = {
-	{"TRQ_SEL_FMAP_E_RSVD_1",
-		TRQ_SEL_FMAP_E_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_E_QID_MAX",
-		TRQ_SEL_FMAP_E_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_E_QID_BASE",
-		TRQ_SEL_FMAP_E_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_f_field_info[] = {
-	{"TRQ_SEL_FMAP_F_RSVD_1",
-		TRQ_SEL_FMAP_F_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_F_QID_MAX",
-		TRQ_SEL_FMAP_F_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_F_QID_BASE",
-		TRQ_SEL_FMAP_F_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_10_field_info[] = {
-	{"TRQ_SEL_FMAP_10_RSVD_1",
-		TRQ_SEL_FMAP_10_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_10_QID_MAX",
-		TRQ_SEL_FMAP_10_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_10_QID_BASE",
-		TRQ_SEL_FMAP_10_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_11_field_info[] = {
-	{"TRQ_SEL_FMAP_11_RSVD_1",
-		TRQ_SEL_FMAP_11_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_11_QID_MAX",
-		TRQ_SEL_FMAP_11_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_11_QID_BASE",
-		TRQ_SEL_FMAP_11_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_12_field_info[] = {
-	{"TRQ_SEL_FMAP_12_RSVD_1",
-		TRQ_SEL_FMAP_12_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_12_QID_MAX",
-		TRQ_SEL_FMAP_12_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_12_QID_BASE",
-		TRQ_SEL_FMAP_12_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_13_field_info[] = {
-	{"TRQ_SEL_FMAP_13_RSVD_1",
-		TRQ_SEL_FMAP_13_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_13_QID_MAX",
-		TRQ_SEL_FMAP_13_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_13_QID_BASE",
-		TRQ_SEL_FMAP_13_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_14_field_info[] = {
-	{"TRQ_SEL_FMAP_14_RSVD_1",
-		TRQ_SEL_FMAP_14_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_14_QID_MAX",
-		TRQ_SEL_FMAP_14_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_14_QID_BASE",
-		TRQ_SEL_FMAP_14_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_15_field_info[] = {
-	{"TRQ_SEL_FMAP_15_RSVD_1",
-		TRQ_SEL_FMAP_15_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_15_QID_MAX",
-		TRQ_SEL_FMAP_15_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_15_QID_BASE",
-		TRQ_SEL_FMAP_15_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_16_field_info[] = {
-	{"TRQ_SEL_FMAP_16_RSVD_1",
-		TRQ_SEL_FMAP_16_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_16_QID_MAX",
-		TRQ_SEL_FMAP_16_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_16_QID_BASE",
-		TRQ_SEL_FMAP_16_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_17_field_info[] = {
-	{"TRQ_SEL_FMAP_17_RSVD_1",
-		TRQ_SEL_FMAP_17_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_17_QID_MAX",
-		TRQ_SEL_FMAP_17_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_17_QID_BASE",
-		TRQ_SEL_FMAP_17_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_18_field_info[] = {
-	{"TRQ_SEL_FMAP_18_RSVD_1",
-		TRQ_SEL_FMAP_18_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_18_QID_MAX",
-		TRQ_SEL_FMAP_18_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_18_QID_BASE",
-		TRQ_SEL_FMAP_18_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_19_field_info[] = {
-	{"TRQ_SEL_FMAP_19_RSVD_1",
-		TRQ_SEL_FMAP_19_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_19_QID_MAX",
-		TRQ_SEL_FMAP_19_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_19_QID_BASE",
-		TRQ_SEL_FMAP_19_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_1a_field_info[] = {
-	{"TRQ_SEL_FMAP_1A_RSVD_1",
-		TRQ_SEL_FMAP_1A_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_1A_QID_MAX",
-		TRQ_SEL_FMAP_1A_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_1A_QID_BASE",
-		TRQ_SEL_FMAP_1A_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_1b_field_info[] = {
-	{"TRQ_SEL_FMAP_1B_RSVD_1",
-		TRQ_SEL_FMAP_1B_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_1B_QID_MAX",
-		TRQ_SEL_FMAP_1B_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_1B_QID_BASE",
-		TRQ_SEL_FMAP_1B_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_1c_field_info[] = {
-	{"TRQ_SEL_FMAP_1C_RSVD_1",
-		TRQ_SEL_FMAP_1C_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_1C_QID_MAX",
-		TRQ_SEL_FMAP_1C_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_1C_QID_BASE",
-		TRQ_SEL_FMAP_1C_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_1d_field_info[] = {
-	{"TRQ_SEL_FMAP_1D_RSVD_1",
-		TRQ_SEL_FMAP_1D_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_1D_QID_MAX",
-		TRQ_SEL_FMAP_1D_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_1D_QID_BASE",
-		TRQ_SEL_FMAP_1D_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_1e_field_info[] = {
-	{"TRQ_SEL_FMAP_1E_RSVD_1",
-		TRQ_SEL_FMAP_1E_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_1E_QID_MAX",
-		TRQ_SEL_FMAP_1E_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_1E_QID_BASE",
-		TRQ_SEL_FMAP_1E_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_1f_field_info[] = {
-	{"TRQ_SEL_FMAP_1F_RSVD_1",
-		TRQ_SEL_FMAP_1F_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_1F_QID_MAX",
-		TRQ_SEL_FMAP_1F_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_1F_QID_BASE",
-		TRQ_SEL_FMAP_1F_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_20_field_info[] = {
-	{"TRQ_SEL_FMAP_20_RSVD_1",
-		TRQ_SEL_FMAP_20_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_20_QID_MAX",
-		TRQ_SEL_FMAP_20_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_20_QID_BASE",
-		TRQ_SEL_FMAP_20_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_21_field_info[] = {
-	{"TRQ_SEL_FMAP_21_RSVD_1",
-		TRQ_SEL_FMAP_21_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_21_QID_MAX",
-		TRQ_SEL_FMAP_21_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_21_QID_BASE",
-		TRQ_SEL_FMAP_21_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_22_field_info[] = {
-	{"TRQ_SEL_FMAP_22_RSVD_1",
-		TRQ_SEL_FMAP_22_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_22_QID_MAX",
-		TRQ_SEL_FMAP_22_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_22_QID_BASE",
-		TRQ_SEL_FMAP_22_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_23_field_info[] = {
-	{"TRQ_SEL_FMAP_23_RSVD_1",
-		TRQ_SEL_FMAP_23_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_23_QID_MAX",
-		TRQ_SEL_FMAP_23_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_23_QID_BASE",
-		TRQ_SEL_FMAP_23_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_24_field_info[] = {
-	{"TRQ_SEL_FMAP_24_RSVD_1",
-		TRQ_SEL_FMAP_24_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_24_QID_MAX",
-		TRQ_SEL_FMAP_24_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_24_QID_BASE",
-		TRQ_SEL_FMAP_24_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_25_field_info[] = {
-	{"TRQ_SEL_FMAP_25_RSVD_1",
-		TRQ_SEL_FMAP_25_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_25_QID_MAX",
-		TRQ_SEL_FMAP_25_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_25_QID_BASE",
-		TRQ_SEL_FMAP_25_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_26_field_info[] = {
-	{"TRQ_SEL_FMAP_26_RSVD_1",
-		TRQ_SEL_FMAP_26_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_26_QID_MAX",
-		TRQ_SEL_FMAP_26_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_26_QID_BASE",
-		TRQ_SEL_FMAP_26_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_27_field_info[] = {
-	{"TRQ_SEL_FMAP_27_RSVD_1",
-		TRQ_SEL_FMAP_27_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_27_QID_MAX",
-		TRQ_SEL_FMAP_27_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_27_QID_BASE",
-		TRQ_SEL_FMAP_27_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_28_field_info[] = {
-	{"TRQ_SEL_FMAP_28_RSVD_1",
-		TRQ_SEL_FMAP_28_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_28_QID_MAX",
-		TRQ_SEL_FMAP_28_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_28_QID_BASE",
-		TRQ_SEL_FMAP_28_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_29_field_info[] = {
-	{"TRQ_SEL_FMAP_29_RSVD_1",
-		TRQ_SEL_FMAP_29_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_29_QID_MAX",
-		TRQ_SEL_FMAP_29_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_29_QID_BASE",
-		TRQ_SEL_FMAP_29_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_2a_field_info[] = {
-	{"TRQ_SEL_FMAP_2A_RSVD_1",
-		TRQ_SEL_FMAP_2A_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_2A_QID_MAX",
-		TRQ_SEL_FMAP_2A_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_2A_QID_BASE",
-		TRQ_SEL_FMAP_2A_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_2b_field_info[] = {
-	{"TRQ_SEL_FMAP_2B_RSVD_1",
-		TRQ_SEL_FMAP_2B_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_2B_QID_MAX",
-		TRQ_SEL_FMAP_2B_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_2B_QID_BASE",
-		TRQ_SEL_FMAP_2B_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_2c_field_info[] = {
-	{"TRQ_SEL_FMAP_2C_RSVD_1",
-		TRQ_SEL_FMAP_2C_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_2C_QID_MAX",
-		TRQ_SEL_FMAP_2C_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_2C_QID_BASE",
-		TRQ_SEL_FMAP_2C_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_2d_field_info[] = {
-	{"TRQ_SEL_FMAP_2D_RSVD_1",
-		TRQ_SEL_FMAP_2D_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_2D_QID_MAX",
-		TRQ_SEL_FMAP_2D_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_2D_QID_BASE",
-		TRQ_SEL_FMAP_2D_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_2e_field_info[] = {
-	{"TRQ_SEL_FMAP_2E_RSVD_1",
-		TRQ_SEL_FMAP_2E_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_2E_QID_MAX",
-		TRQ_SEL_FMAP_2E_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_2E_QID_BASE",
-		TRQ_SEL_FMAP_2E_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_2f_field_info[] = {
-	{"TRQ_SEL_FMAP_2F_RSVD_1",
-		TRQ_SEL_FMAP_2F_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_2F_QID_MAX",
-		TRQ_SEL_FMAP_2F_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_2F_QID_BASE",
-		TRQ_SEL_FMAP_2F_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_30_field_info[] = {
-	{"TRQ_SEL_FMAP_30_RSVD_1",
-		TRQ_SEL_FMAP_30_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_30_QID_MAX",
-		TRQ_SEL_FMAP_30_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_30_QID_BASE",
-		TRQ_SEL_FMAP_30_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_31_field_info[] = {
-	{"TRQ_SEL_FMAP_31_RSVD_1",
-		TRQ_SEL_FMAP_31_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_31_QID_MAX",
-		TRQ_SEL_FMAP_31_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_31_QID_BASE",
-		TRQ_SEL_FMAP_31_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_32_field_info[] = {
-	{"TRQ_SEL_FMAP_32_RSVD_1",
-		TRQ_SEL_FMAP_32_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_32_QID_MAX",
-		TRQ_SEL_FMAP_32_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_32_QID_BASE",
-		TRQ_SEL_FMAP_32_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_33_field_info[] = {
-	{"TRQ_SEL_FMAP_33_RSVD_1",
-		TRQ_SEL_FMAP_33_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_33_QID_MAX",
-		TRQ_SEL_FMAP_33_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_33_QID_BASE",
-		TRQ_SEL_FMAP_33_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_34_field_info[] = {
-	{"TRQ_SEL_FMAP_34_RSVD_1",
-		TRQ_SEL_FMAP_34_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_34_QID_MAX",
-		TRQ_SEL_FMAP_34_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_34_QID_BASE",
-		TRQ_SEL_FMAP_34_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_35_field_info[] = {
-	{"TRQ_SEL_FMAP_35_RSVD_1",
-		TRQ_SEL_FMAP_35_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_35_QID_MAX",
-		TRQ_SEL_FMAP_35_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_35_QID_BASE",
-		TRQ_SEL_FMAP_35_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_36_field_info[] = {
-	{"TRQ_SEL_FMAP_36_RSVD_1",
-		TRQ_SEL_FMAP_36_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_36_QID_MAX",
-		TRQ_SEL_FMAP_36_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_36_QID_BASE",
-		TRQ_SEL_FMAP_36_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_37_field_info[] = {
-	{"TRQ_SEL_FMAP_37_RSVD_1",
-		TRQ_SEL_FMAP_37_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_37_QID_MAX",
-		TRQ_SEL_FMAP_37_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_37_QID_BASE",
-		TRQ_SEL_FMAP_37_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_38_field_info[] = {
-	{"TRQ_SEL_FMAP_38_RSVD_1",
-		TRQ_SEL_FMAP_38_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_38_QID_MAX",
-		TRQ_SEL_FMAP_38_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_38_QID_BASE",
-		TRQ_SEL_FMAP_38_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_39_field_info[] = {
-	{"TRQ_SEL_FMAP_39_RSVD_1",
-		TRQ_SEL_FMAP_39_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_39_QID_MAX",
-		TRQ_SEL_FMAP_39_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_39_QID_BASE",
-		TRQ_SEL_FMAP_39_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_3a_field_info[] = {
-	{"TRQ_SEL_FMAP_3A_RSVD_1",
-		TRQ_SEL_FMAP_3A_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_3A_QID_MAX",
-		TRQ_SEL_FMAP_3A_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_3A_QID_BASE",
-		TRQ_SEL_FMAP_3A_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_3b_field_info[] = {
-	{"TRQ_SEL_FMAP_3B_RSVD_1",
-		TRQ_SEL_FMAP_3B_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_3B_QID_MAX",
-		TRQ_SEL_FMAP_3B_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_3B_QID_BASE",
-		TRQ_SEL_FMAP_3B_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_3c_field_info[] = {
-	{"TRQ_SEL_FMAP_3C_RSVD_1",
-		TRQ_SEL_FMAP_3C_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_3C_QID_MAX",
-		TRQ_SEL_FMAP_3C_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_3C_QID_BASE",
-		TRQ_SEL_FMAP_3C_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_3d_field_info[] = {
-	{"TRQ_SEL_FMAP_3D_RSVD_1",
-		TRQ_SEL_FMAP_3D_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_3D_QID_MAX",
-		TRQ_SEL_FMAP_3D_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_3D_QID_BASE",
-		TRQ_SEL_FMAP_3D_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_3e_field_info[] = {
-	{"TRQ_SEL_FMAP_3E_RSVD_1",
-		TRQ_SEL_FMAP_3E_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_3E_QID_MAX",
-		TRQ_SEL_FMAP_3E_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_3E_QID_BASE",
-		TRQ_SEL_FMAP_3E_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_3f_field_info[] = {
-	{"TRQ_SEL_FMAP_3F_RSVD_1",
-		TRQ_SEL_FMAP_3F_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_3F_QID_MAX",
-		TRQ_SEL_FMAP_3F_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_3F_QID_BASE",
-		TRQ_SEL_FMAP_3F_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_40_field_info[] = {
-	{"TRQ_SEL_FMAP_40_RSVD_1",
-		TRQ_SEL_FMAP_40_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_40_QID_MAX",
-		TRQ_SEL_FMAP_40_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_40_QID_BASE",
-		TRQ_SEL_FMAP_40_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_41_field_info[] = {
-	{"TRQ_SEL_FMAP_41_RSVD_1",
-		TRQ_SEL_FMAP_41_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_41_QID_MAX",
-		TRQ_SEL_FMAP_41_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_41_QID_BASE",
-		TRQ_SEL_FMAP_41_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_42_field_info[] = {
-	{"TRQ_SEL_FMAP_42_RSVD_1",
-		TRQ_SEL_FMAP_42_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_42_QID_MAX",
-		TRQ_SEL_FMAP_42_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_42_QID_BASE",
-		TRQ_SEL_FMAP_42_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_43_field_info[] = {
-	{"TRQ_SEL_FMAP_43_RSVD_1",
-		TRQ_SEL_FMAP_43_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_43_QID_MAX",
-		TRQ_SEL_FMAP_43_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_43_QID_BASE",
-		TRQ_SEL_FMAP_43_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_44_field_info[] = {
-	{"TRQ_SEL_FMAP_44_RSVD_1",
-		TRQ_SEL_FMAP_44_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_44_QID_MAX",
-		TRQ_SEL_FMAP_44_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_44_QID_BASE",
-		TRQ_SEL_FMAP_44_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_45_field_info[] = {
-	{"TRQ_SEL_FMAP_45_RSVD_1",
-		TRQ_SEL_FMAP_45_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_45_QID_MAX",
-		TRQ_SEL_FMAP_45_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_45_QID_BASE",
-		TRQ_SEL_FMAP_45_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_46_field_info[] = {
-	{"TRQ_SEL_FMAP_46_RSVD_1",
-		TRQ_SEL_FMAP_46_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_46_QID_MAX",
-		TRQ_SEL_FMAP_46_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_46_QID_BASE",
-		TRQ_SEL_FMAP_46_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_47_field_info[] = {
-	{"TRQ_SEL_FMAP_47_RSVD_1",
-		TRQ_SEL_FMAP_47_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_47_QID_MAX",
-		TRQ_SEL_FMAP_47_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_47_QID_BASE",
-		TRQ_SEL_FMAP_47_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_48_field_info[] = {
-	{"TRQ_SEL_FMAP_48_RSVD_1",
-		TRQ_SEL_FMAP_48_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_48_QID_MAX",
-		TRQ_SEL_FMAP_48_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_48_QID_BASE",
-		TRQ_SEL_FMAP_48_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_49_field_info[] = {
-	{"TRQ_SEL_FMAP_49_RSVD_1",
-		TRQ_SEL_FMAP_49_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_49_QID_MAX",
-		TRQ_SEL_FMAP_49_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_49_QID_BASE",
-		TRQ_SEL_FMAP_49_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_4a_field_info[] = {
-	{"TRQ_SEL_FMAP_4A_RSVD_1",
-		TRQ_SEL_FMAP_4A_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_4A_QID_MAX",
-		TRQ_SEL_FMAP_4A_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_4A_QID_BASE",
-		TRQ_SEL_FMAP_4A_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_4b_field_info[] = {
-	{"TRQ_SEL_FMAP_4B_RSVD_1",
-		TRQ_SEL_FMAP_4B_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_4B_QID_MAX",
-		TRQ_SEL_FMAP_4B_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_4B_QID_BASE",
-		TRQ_SEL_FMAP_4B_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_4c_field_info[] = {
-	{"TRQ_SEL_FMAP_4C_RSVD_1",
-		TRQ_SEL_FMAP_4C_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_4C_QID_MAX",
-		TRQ_SEL_FMAP_4C_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_4C_QID_BASE",
-		TRQ_SEL_FMAP_4C_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_4d_field_info[] = {
-	{"TRQ_SEL_FMAP_4D_RSVD_1",
-		TRQ_SEL_FMAP_4D_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_4D_QID_MAX",
-		TRQ_SEL_FMAP_4D_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_4D_QID_BASE",
-		TRQ_SEL_FMAP_4D_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_4e_field_info[] = {
-	{"TRQ_SEL_FMAP_4E_RSVD_1",
-		TRQ_SEL_FMAP_4E_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_4E_QID_MAX",
-		TRQ_SEL_FMAP_4E_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_4E_QID_BASE",
-		TRQ_SEL_FMAP_4E_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_4f_field_info[] = {
-	{"TRQ_SEL_FMAP_4F_RSVD_1",
-		TRQ_SEL_FMAP_4F_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_4F_QID_MAX",
-		TRQ_SEL_FMAP_4F_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_4F_QID_BASE",
-		TRQ_SEL_FMAP_4F_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_50_field_info[] = {
-	{"TRQ_SEL_FMAP_50_RSVD_1",
-		TRQ_SEL_FMAP_50_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_50_QID_MAX",
-		TRQ_SEL_FMAP_50_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_50_QID_BASE",
-		TRQ_SEL_FMAP_50_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_51_field_info[] = {
-	{"TRQ_SEL_FMAP_51_RSVD_1",
-		TRQ_SEL_FMAP_51_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_51_QID_MAX",
-		TRQ_SEL_FMAP_51_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_51_QID_BASE",
-		TRQ_SEL_FMAP_51_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_52_field_info[] = {
-	{"TRQ_SEL_FMAP_52_RSVD_1",
-		TRQ_SEL_FMAP_52_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_52_QID_MAX",
-		TRQ_SEL_FMAP_52_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_52_QID_BASE",
-		TRQ_SEL_FMAP_52_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_53_field_info[] = {
-	{"TRQ_SEL_FMAP_53_RSVD_1",
-		TRQ_SEL_FMAP_53_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_53_QID_MAX",
-		TRQ_SEL_FMAP_53_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_53_QID_BASE",
-		TRQ_SEL_FMAP_53_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_54_field_info[] = {
-	{"TRQ_SEL_FMAP_54_RSVD_1",
-		TRQ_SEL_FMAP_54_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_54_QID_MAX",
-		TRQ_SEL_FMAP_54_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_54_QID_BASE",
-		TRQ_SEL_FMAP_54_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_55_field_info[] = {
-	{"TRQ_SEL_FMAP_55_RSVD_1",
-		TRQ_SEL_FMAP_55_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_55_QID_MAX",
-		TRQ_SEL_FMAP_55_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_55_QID_BASE",
-		TRQ_SEL_FMAP_55_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_56_field_info[] = {
-	{"TRQ_SEL_FMAP_56_RSVD_1",
-		TRQ_SEL_FMAP_56_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_56_QID_MAX",
-		TRQ_SEL_FMAP_56_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_56_QID_BASE",
-		TRQ_SEL_FMAP_56_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_57_field_info[] = {
-	{"TRQ_SEL_FMAP_57_RSVD_1",
-		TRQ_SEL_FMAP_57_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_57_QID_MAX",
-		TRQ_SEL_FMAP_57_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_57_QID_BASE",
-		TRQ_SEL_FMAP_57_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_58_field_info[] = {
-	{"TRQ_SEL_FMAP_58_RSVD_1",
-		TRQ_SEL_FMAP_58_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_58_QID_MAX",
-		TRQ_SEL_FMAP_58_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_58_QID_BASE",
-		TRQ_SEL_FMAP_58_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_59_field_info[] = {
-	{"TRQ_SEL_FMAP_59_RSVD_1",
-		TRQ_SEL_FMAP_59_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_59_QID_MAX",
-		TRQ_SEL_FMAP_59_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_59_QID_BASE",
-		TRQ_SEL_FMAP_59_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_5a_field_info[] = {
-	{"TRQ_SEL_FMAP_5A_RSVD_1",
-		TRQ_SEL_FMAP_5A_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_5A_QID_MAX",
-		TRQ_SEL_FMAP_5A_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_5A_QID_BASE",
-		TRQ_SEL_FMAP_5A_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_5b_field_info[] = {
-	{"TRQ_SEL_FMAP_5B_RSVD_1",
-		TRQ_SEL_FMAP_5B_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_5B_QID_MAX",
-		TRQ_SEL_FMAP_5B_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_5B_QID_BASE",
-		TRQ_SEL_FMAP_5B_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_5c_field_info[] = {
-	{"TRQ_SEL_FMAP_5C_RSVD_1",
-		TRQ_SEL_FMAP_5C_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_5C_QID_MAX",
-		TRQ_SEL_FMAP_5C_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_5C_QID_BASE",
-		TRQ_SEL_FMAP_5C_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_5d_field_info[] = {
-	{"TRQ_SEL_FMAP_5D_RSVD_1",
-		TRQ_SEL_FMAP_5D_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_5D_QID_MAX",
-		TRQ_SEL_FMAP_5D_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_5D_QID_BASE",
-		TRQ_SEL_FMAP_5D_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_5e_field_info[] = {
-	{"TRQ_SEL_FMAP_5E_RSVD_1",
-		TRQ_SEL_FMAP_5E_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_5E_QID_MAX",
-		TRQ_SEL_FMAP_5E_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_5E_QID_BASE",
-		TRQ_SEL_FMAP_5E_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_5f_field_info[] = {
-	{"TRQ_SEL_FMAP_5F_RSVD_1",
-		TRQ_SEL_FMAP_5F_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_5F_QID_MAX",
-		TRQ_SEL_FMAP_5F_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_5F_QID_BASE",
-		TRQ_SEL_FMAP_5F_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_60_field_info[] = {
-	{"TRQ_SEL_FMAP_60_RSVD_1",
-		TRQ_SEL_FMAP_60_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_60_QID_MAX",
-		TRQ_SEL_FMAP_60_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_60_QID_BASE",
-		TRQ_SEL_FMAP_60_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_61_field_info[] = {
-	{"TRQ_SEL_FMAP_61_RSVD_1",
-		TRQ_SEL_FMAP_61_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_61_QID_MAX",
-		TRQ_SEL_FMAP_61_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_61_QID_BASE",
-		TRQ_SEL_FMAP_61_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_62_field_info[] = {
-	{"TRQ_SEL_FMAP_62_RSVD_1",
-		TRQ_SEL_FMAP_62_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_62_QID_MAX",
-		TRQ_SEL_FMAP_62_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_62_QID_BASE",
-		TRQ_SEL_FMAP_62_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_63_field_info[] = {
-	{"TRQ_SEL_FMAP_63_RSVD_1",
-		TRQ_SEL_FMAP_63_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_63_QID_MAX",
-		TRQ_SEL_FMAP_63_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_63_QID_BASE",
-		TRQ_SEL_FMAP_63_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_64_field_info[] = {
-	{"TRQ_SEL_FMAP_64_RSVD_1",
-		TRQ_SEL_FMAP_64_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_64_QID_MAX",
-		TRQ_SEL_FMAP_64_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_64_QID_BASE",
-		TRQ_SEL_FMAP_64_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_65_field_info[] = {
-	{"TRQ_SEL_FMAP_65_RSVD_1",
-		TRQ_SEL_FMAP_65_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_65_QID_MAX",
-		TRQ_SEL_FMAP_65_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_65_QID_BASE",
-		TRQ_SEL_FMAP_65_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_66_field_info[] = {
-	{"TRQ_SEL_FMAP_66_RSVD_1",
-		TRQ_SEL_FMAP_66_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_66_QID_MAX",
-		TRQ_SEL_FMAP_66_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_66_QID_BASE",
-		TRQ_SEL_FMAP_66_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_67_field_info[] = {
-	{"TRQ_SEL_FMAP_67_RSVD_1",
-		TRQ_SEL_FMAP_67_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_67_QID_MAX",
-		TRQ_SEL_FMAP_67_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_67_QID_BASE",
-		TRQ_SEL_FMAP_67_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_68_field_info[] = {
-	{"TRQ_SEL_FMAP_68_RSVD_1",
-		TRQ_SEL_FMAP_68_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_68_QID_MAX",
-		TRQ_SEL_FMAP_68_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_68_QID_BASE",
-		TRQ_SEL_FMAP_68_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_69_field_info[] = {
-	{"TRQ_SEL_FMAP_69_RSVD_1",
-		TRQ_SEL_FMAP_69_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_69_QID_MAX",
-		TRQ_SEL_FMAP_69_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_69_QID_BASE",
-		TRQ_SEL_FMAP_69_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_6a_field_info[] = {
-	{"TRQ_SEL_FMAP_6A_RSVD_1",
-		TRQ_SEL_FMAP_6A_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_6A_QID_MAX",
-		TRQ_SEL_FMAP_6A_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_6A_QID_BASE",
-		TRQ_SEL_FMAP_6A_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_6b_field_info[] = {
-	{"TRQ_SEL_FMAP_6B_RSVD_1",
-		TRQ_SEL_FMAP_6B_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_6B_QID_MAX",
-		TRQ_SEL_FMAP_6B_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_6B_QID_BASE",
-		TRQ_SEL_FMAP_6B_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_6c_field_info[] = {
-	{"TRQ_SEL_FMAP_6C_RSVD_1",
-		TRQ_SEL_FMAP_6C_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_6C_QID_MAX",
-		TRQ_SEL_FMAP_6C_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_6C_QID_BASE",
-		TRQ_SEL_FMAP_6C_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_6d_field_info[] = {
-	{"TRQ_SEL_FMAP_6D_RSVD_1",
-		TRQ_SEL_FMAP_6D_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_6D_QID_MAX",
-		TRQ_SEL_FMAP_6D_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_6D_QID_BASE",
-		TRQ_SEL_FMAP_6D_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_6e_field_info[] = {
-	{"TRQ_SEL_FMAP_6E_RSVD_1",
-		TRQ_SEL_FMAP_6E_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_6E_QID_MAX",
-		TRQ_SEL_FMAP_6E_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_6E_QID_BASE",
-		TRQ_SEL_FMAP_6E_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_6f_field_info[] = {
-	{"TRQ_SEL_FMAP_6F_RSVD_1",
-		TRQ_SEL_FMAP_6F_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_6F_QID_MAX",
-		TRQ_SEL_FMAP_6F_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_6F_QID_BASE",
-		TRQ_SEL_FMAP_6F_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_70_field_info[] = {
-	{"TRQ_SEL_FMAP_70_RSVD_1",
-		TRQ_SEL_FMAP_70_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_70_QID_MAX",
-		TRQ_SEL_FMAP_70_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_70_QID_BASE",
-		TRQ_SEL_FMAP_70_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_71_field_info[] = {
-	{"TRQ_SEL_FMAP_71_RSVD_1",
-		TRQ_SEL_FMAP_71_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_71_QID_MAX",
-		TRQ_SEL_FMAP_71_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_71_QID_BASE",
-		TRQ_SEL_FMAP_71_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_72_field_info[] = {
-	{"TRQ_SEL_FMAP_72_RSVD_1",
-		TRQ_SEL_FMAP_72_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_72_QID_MAX",
-		TRQ_SEL_FMAP_72_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_72_QID_BASE",
-		TRQ_SEL_FMAP_72_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_73_field_info[] = {
-	{"TRQ_SEL_FMAP_73_RSVD_1",
-		TRQ_SEL_FMAP_73_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_73_QID_MAX",
-		TRQ_SEL_FMAP_73_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_73_QID_BASE",
-		TRQ_SEL_FMAP_73_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_74_field_info[] = {
-	{"TRQ_SEL_FMAP_74_RSVD_1",
-		TRQ_SEL_FMAP_74_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_74_QID_MAX",
-		TRQ_SEL_FMAP_74_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_74_QID_BASE",
-		TRQ_SEL_FMAP_74_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_75_field_info[] = {
-	{"TRQ_SEL_FMAP_75_RSVD_1",
-		TRQ_SEL_FMAP_75_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_75_QID_MAX",
-		TRQ_SEL_FMAP_75_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_75_QID_BASE",
-		TRQ_SEL_FMAP_75_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_76_field_info[] = {
-	{"TRQ_SEL_FMAP_76_RSVD_1",
-		TRQ_SEL_FMAP_76_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_76_QID_MAX",
-		TRQ_SEL_FMAP_76_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_76_QID_BASE",
-		TRQ_SEL_FMAP_76_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_77_field_info[] = {
-	{"TRQ_SEL_FMAP_77_RSVD_1",
-		TRQ_SEL_FMAP_77_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_77_QID_MAX",
-		TRQ_SEL_FMAP_77_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_77_QID_BASE",
-		TRQ_SEL_FMAP_77_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_78_field_info[] = {
-	{"TRQ_SEL_FMAP_78_RSVD_1",
-		TRQ_SEL_FMAP_78_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_78_QID_MAX",
-		TRQ_SEL_FMAP_78_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_78_QID_BASE",
-		TRQ_SEL_FMAP_78_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_79_field_info[] = {
-	{"TRQ_SEL_FMAP_79_RSVD_1",
-		TRQ_SEL_FMAP_79_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_79_QID_MAX",
-		TRQ_SEL_FMAP_79_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_79_QID_BASE",
-		TRQ_SEL_FMAP_79_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_7a_field_info[] = {
-	{"TRQ_SEL_FMAP_7A_RSVD_1",
-		TRQ_SEL_FMAP_7A_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_7A_QID_MAX",
-		TRQ_SEL_FMAP_7A_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_7A_QID_BASE",
-		TRQ_SEL_FMAP_7A_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_7b_field_info[] = {
-	{"TRQ_SEL_FMAP_7B_RSVD_1",
-		TRQ_SEL_FMAP_7B_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_7B_QID_MAX",
-		TRQ_SEL_FMAP_7B_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_7B_QID_BASE",
-		TRQ_SEL_FMAP_7B_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_7c_field_info[] = {
-	{"TRQ_SEL_FMAP_7C_RSVD_1",
-		TRQ_SEL_FMAP_7C_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_7C_QID_MAX",
-		TRQ_SEL_FMAP_7C_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_7C_QID_BASE",
-		TRQ_SEL_FMAP_7C_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_7d_field_info[] = {
-	{"TRQ_SEL_FMAP_7D_RSVD_1",
-		TRQ_SEL_FMAP_7D_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_7D_QID_MAX",
-		TRQ_SEL_FMAP_7D_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_7D_QID_BASE",
-		TRQ_SEL_FMAP_7D_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_7e_field_info[] = {
-	{"TRQ_SEL_FMAP_7E_RSVD_1",
-		TRQ_SEL_FMAP_7E_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_7E_QID_MAX",
-		TRQ_SEL_FMAP_7E_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_7E_QID_BASE",
-		TRQ_SEL_FMAP_7E_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_7f_field_info[] = {
-	{"TRQ_SEL_FMAP_7F_RSVD_1",
-		TRQ_SEL_FMAP_7F_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_7F_QID_MAX",
-		TRQ_SEL_FMAP_7F_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_7F_QID_BASE",
-		TRQ_SEL_FMAP_7F_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_80_field_info[] = {
-	{"TRQ_SEL_FMAP_80_RSVD_1",
-		TRQ_SEL_FMAP_80_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_80_QID_MAX",
-		TRQ_SEL_FMAP_80_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_80_QID_BASE",
-		TRQ_SEL_FMAP_80_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_81_field_info[] = {
-	{"TRQ_SEL_FMAP_81_RSVD_1",
-		TRQ_SEL_FMAP_81_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_81_QID_MAX",
-		TRQ_SEL_FMAP_81_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_81_QID_BASE",
-		TRQ_SEL_FMAP_81_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_82_field_info[] = {
-	{"TRQ_SEL_FMAP_82_RSVD_1",
-		TRQ_SEL_FMAP_82_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_82_QID_MAX",
-		TRQ_SEL_FMAP_82_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_82_QID_BASE",
-		TRQ_SEL_FMAP_82_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_83_field_info[] = {
-	{"TRQ_SEL_FMAP_83_RSVD_1",
-		TRQ_SEL_FMAP_83_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_83_QID_MAX",
-		TRQ_SEL_FMAP_83_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_83_QID_BASE",
-		TRQ_SEL_FMAP_83_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_84_field_info[] = {
-	{"TRQ_SEL_FMAP_84_RSVD_1",
-		TRQ_SEL_FMAP_84_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_84_QID_MAX",
-		TRQ_SEL_FMAP_84_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_84_QID_BASE",
-		TRQ_SEL_FMAP_84_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_85_field_info[] = {
-	{"TRQ_SEL_FMAP_85_RSVD_1",
-		TRQ_SEL_FMAP_85_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_85_QID_MAX",
-		TRQ_SEL_FMAP_85_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_85_QID_BASE",
-		TRQ_SEL_FMAP_85_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_86_field_info[] = {
-	{"TRQ_SEL_FMAP_86_RSVD_1",
-		TRQ_SEL_FMAP_86_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_86_QID_MAX",
-		TRQ_SEL_FMAP_86_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_86_QID_BASE",
-		TRQ_SEL_FMAP_86_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_87_field_info[] = {
-	{"TRQ_SEL_FMAP_87_RSVD_1",
-		TRQ_SEL_FMAP_87_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_87_QID_MAX",
-		TRQ_SEL_FMAP_87_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_87_QID_BASE",
-		TRQ_SEL_FMAP_87_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_88_field_info[] = {
-	{"TRQ_SEL_FMAP_88_RSVD_1",
-		TRQ_SEL_FMAP_88_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_88_QID_MAX",
-		TRQ_SEL_FMAP_88_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_88_QID_BASE",
-		TRQ_SEL_FMAP_88_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_89_field_info[] = {
-	{"TRQ_SEL_FMAP_89_RSVD_1",
-		TRQ_SEL_FMAP_89_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_89_QID_MAX",
-		TRQ_SEL_FMAP_89_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_89_QID_BASE",
-		TRQ_SEL_FMAP_89_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_8a_field_info[] = {
-	{"TRQ_SEL_FMAP_8A_RSVD_1",
-		TRQ_SEL_FMAP_8A_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_8A_QID_MAX",
-		TRQ_SEL_FMAP_8A_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_8A_QID_BASE",
-		TRQ_SEL_FMAP_8A_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_8b_field_info[] = {
-	{"TRQ_SEL_FMAP_8B_RSVD_1",
-		TRQ_SEL_FMAP_8B_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_8B_QID_MAX",
-		TRQ_SEL_FMAP_8B_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_8B_QID_BASE",
-		TRQ_SEL_FMAP_8B_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_8c_field_info[] = {
-	{"TRQ_SEL_FMAP_8C_RSVD_1",
-		TRQ_SEL_FMAP_8C_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_8C_QID_MAX",
-		TRQ_SEL_FMAP_8C_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_8C_QID_BASE",
-		TRQ_SEL_FMAP_8C_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_8d_field_info[] = {
-	{"TRQ_SEL_FMAP_8D_RSVD_1",
-		TRQ_SEL_FMAP_8D_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_8D_QID_MAX",
-		TRQ_SEL_FMAP_8D_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_8D_QID_BASE",
-		TRQ_SEL_FMAP_8D_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_8e_field_info[] = {
-	{"TRQ_SEL_FMAP_8E_RSVD_1",
-		TRQ_SEL_FMAP_8E_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_8E_QID_MAX",
-		TRQ_SEL_FMAP_8E_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_8E_QID_BASE",
-		TRQ_SEL_FMAP_8E_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_8f_field_info[] = {
-	{"TRQ_SEL_FMAP_8F_RSVD_1",
-		TRQ_SEL_FMAP_8F_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_8F_QID_MAX",
-		TRQ_SEL_FMAP_8F_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_8F_QID_BASE",
-		TRQ_SEL_FMAP_8F_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_90_field_info[] = {
-	{"TRQ_SEL_FMAP_90_RSVD_1",
-		TRQ_SEL_FMAP_90_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_90_QID_MAX",
-		TRQ_SEL_FMAP_90_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_90_QID_BASE",
-		TRQ_SEL_FMAP_90_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_91_field_info[] = {
-	{"TRQ_SEL_FMAP_91_RSVD_1",
-		TRQ_SEL_FMAP_91_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_91_QID_MAX",
-		TRQ_SEL_FMAP_91_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_91_QID_BASE",
-		TRQ_SEL_FMAP_91_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_92_field_info[] = {
-	{"TRQ_SEL_FMAP_92_RSVD_1",
-		TRQ_SEL_FMAP_92_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_92_QID_MAX",
-		TRQ_SEL_FMAP_92_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_92_QID_BASE",
-		TRQ_SEL_FMAP_92_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_93_field_info[] = {
-	{"TRQ_SEL_FMAP_93_RSVD_1",
-		TRQ_SEL_FMAP_93_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_93_QID_MAX",
-		TRQ_SEL_FMAP_93_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_93_QID_BASE",
-		TRQ_SEL_FMAP_93_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_94_field_info[] = {
-	{"TRQ_SEL_FMAP_94_RSVD_1",
-		TRQ_SEL_FMAP_94_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_94_QID_MAX",
-		TRQ_SEL_FMAP_94_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_94_QID_BASE",
-		TRQ_SEL_FMAP_94_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_95_field_info[] = {
-	{"TRQ_SEL_FMAP_95_RSVD_1",
-		TRQ_SEL_FMAP_95_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_95_QID_MAX",
-		TRQ_SEL_FMAP_95_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_95_QID_BASE",
-		TRQ_SEL_FMAP_95_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_96_field_info[] = {
-	{"TRQ_SEL_FMAP_96_RSVD_1",
-		TRQ_SEL_FMAP_96_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_96_QID_MAX",
-		TRQ_SEL_FMAP_96_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_96_QID_BASE",
-		TRQ_SEL_FMAP_96_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_97_field_info[] = {
-	{"TRQ_SEL_FMAP_97_RSVD_1",
-		TRQ_SEL_FMAP_97_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_97_QID_MAX",
-		TRQ_SEL_FMAP_97_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_97_QID_BASE",
-		TRQ_SEL_FMAP_97_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_98_field_info[] = {
-	{"TRQ_SEL_FMAP_98_RSVD_1",
-		TRQ_SEL_FMAP_98_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_98_QID_MAX",
-		TRQ_SEL_FMAP_98_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_98_QID_BASE",
-		TRQ_SEL_FMAP_98_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_99_field_info[] = {
-	{"TRQ_SEL_FMAP_99_RSVD_1",
-		TRQ_SEL_FMAP_99_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_99_QID_MAX",
-		TRQ_SEL_FMAP_99_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_99_QID_BASE",
-		TRQ_SEL_FMAP_99_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_9a_field_info[] = {
-	{"TRQ_SEL_FMAP_9A_RSVD_1",
-		TRQ_SEL_FMAP_9A_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_9A_QID_MAX",
-		TRQ_SEL_FMAP_9A_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_9A_QID_BASE",
-		TRQ_SEL_FMAP_9A_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_9b_field_info[] = {
-	{"TRQ_SEL_FMAP_9B_RSVD_1",
-		TRQ_SEL_FMAP_9B_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_9B_QID_MAX",
-		TRQ_SEL_FMAP_9B_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_9B_QID_BASE",
-		TRQ_SEL_FMAP_9B_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_9c_field_info[] = {
-	{"TRQ_SEL_FMAP_9C_RSVD_1",
-		TRQ_SEL_FMAP_9C_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_9C_QID_MAX",
-		TRQ_SEL_FMAP_9C_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_9C_QID_BASE",
-		TRQ_SEL_FMAP_9C_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_9d_field_info[] = {
-	{"TRQ_SEL_FMAP_9D_RSVD_1",
-		TRQ_SEL_FMAP_9D_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_9D_QID_MAX",
-		TRQ_SEL_FMAP_9D_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_9D_QID_BASE",
-		TRQ_SEL_FMAP_9D_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_9e_field_info[] = {
-	{"TRQ_SEL_FMAP_9E_RSVD_1",
-		TRQ_SEL_FMAP_9E_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_9E_QID_MAX",
-		TRQ_SEL_FMAP_9E_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_9E_QID_BASE",
-		TRQ_SEL_FMAP_9E_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_9f_field_info[] = {
-	{"TRQ_SEL_FMAP_9F_RSVD_1",
-		TRQ_SEL_FMAP_9F_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_9F_QID_MAX",
-		TRQ_SEL_FMAP_9F_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_9F_QID_BASE",
-		TRQ_SEL_FMAP_9F_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_a0_field_info[] = {
-	{"TRQ_SEL_FMAP_A0_RSVD_1",
-		TRQ_SEL_FMAP_A0_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_A0_QID_MAX",
-		TRQ_SEL_FMAP_A0_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_A0_QID_BASE",
-		TRQ_SEL_FMAP_A0_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_a1_field_info[] = {
-	{"TRQ_SEL_FMAP_A1_RSVD_1",
-		TRQ_SEL_FMAP_A1_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_A1_QID_MAX",
-		TRQ_SEL_FMAP_A1_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_A1_QID_BASE",
-		TRQ_SEL_FMAP_A1_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_a2_field_info[] = {
-	{"TRQ_SEL_FMAP_A2_RSVD_1",
-		TRQ_SEL_FMAP_A2_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_A2_QID_MAX",
-		TRQ_SEL_FMAP_A2_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_A2_QID_BASE",
-		TRQ_SEL_FMAP_A2_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_a3_field_info[] = {
-	{"TRQ_SEL_FMAP_A3_RSVD_1",
-		TRQ_SEL_FMAP_A3_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_A3_QID_MAX",
-		TRQ_SEL_FMAP_A3_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_A3_QID_BASE",
-		TRQ_SEL_FMAP_A3_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_a4_field_info[] = {
-	{"TRQ_SEL_FMAP_A4_RSVD_1",
-		TRQ_SEL_FMAP_A4_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_A4_QID_MAX",
-		TRQ_SEL_FMAP_A4_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_A4_QID_BASE",
-		TRQ_SEL_FMAP_A4_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_a5_field_info[] = {
-	{"TRQ_SEL_FMAP_A5_RSVD_1",
-		TRQ_SEL_FMAP_A5_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_A5_QID_MAX",
-		TRQ_SEL_FMAP_A5_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_A5_QID_BASE",
-		TRQ_SEL_FMAP_A5_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_a6_field_info[] = {
-	{"TRQ_SEL_FMAP_A6_RSVD_1",
-		TRQ_SEL_FMAP_A6_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_A6_QID_MAX",
-		TRQ_SEL_FMAP_A6_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_A6_QID_BASE",
-		TRQ_SEL_FMAP_A6_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_a7_field_info[] = {
-	{"TRQ_SEL_FMAP_A7_RSVD_1",
-		TRQ_SEL_FMAP_A7_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_A7_QID_MAX",
-		TRQ_SEL_FMAP_A7_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_A7_QID_BASE",
-		TRQ_SEL_FMAP_A7_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_a8_field_info[] = {
-	{"TRQ_SEL_FMAP_A8_RSVD_1",
-		TRQ_SEL_FMAP_A8_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_A8_QID_MAX",
-		TRQ_SEL_FMAP_A8_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_A8_QID_BASE",
-		TRQ_SEL_FMAP_A8_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_a9_field_info[] = {
-	{"TRQ_SEL_FMAP_A9_RSVD_1",
-		TRQ_SEL_FMAP_A9_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_A9_QID_MAX",
-		TRQ_SEL_FMAP_A9_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_A9_QID_BASE",
-		TRQ_SEL_FMAP_A9_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_aa_field_info[] = {
-	{"TRQ_SEL_FMAP_AA_RSVD_1",
-		TRQ_SEL_FMAP_AA_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_AA_QID_MAX",
-		TRQ_SEL_FMAP_AA_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_AA_QID_BASE",
-		TRQ_SEL_FMAP_AA_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_ab_field_info[] = {
-	{"TRQ_SEL_FMAP_AB_RSVD_1",
-		TRQ_SEL_FMAP_AB_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_AB_QID_MAX",
-		TRQ_SEL_FMAP_AB_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_AB_QID_BASE",
-		TRQ_SEL_FMAP_AB_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_ac_field_info[] = {
-	{"TRQ_SEL_FMAP_AC_RSVD_1",
-		TRQ_SEL_FMAP_AC_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_AC_QID_MAX",
-		TRQ_SEL_FMAP_AC_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_AC_QID_BASE",
-		TRQ_SEL_FMAP_AC_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_ad_field_info[] = {
-	{"TRQ_SEL_FMAP_AD_RSVD_1",
-		TRQ_SEL_FMAP_AD_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_AD_QID_MAX",
-		TRQ_SEL_FMAP_AD_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_AD_QID_BASE",
-		TRQ_SEL_FMAP_AD_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_ae_field_info[] = {
-	{"TRQ_SEL_FMAP_AE_RSVD_1",
-		TRQ_SEL_FMAP_AE_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_AE_QID_MAX",
-		TRQ_SEL_FMAP_AE_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_AE_QID_BASE",
-		TRQ_SEL_FMAP_AE_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_af_field_info[] = {
-	{"TRQ_SEL_FMAP_AF_RSVD_1",
-		TRQ_SEL_FMAP_AF_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_AF_QID_MAX",
-		TRQ_SEL_FMAP_AF_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_AF_QID_BASE",
-		TRQ_SEL_FMAP_AF_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_b0_field_info[] = {
-	{"TRQ_SEL_FMAP_B0_RSVD_1",
-		TRQ_SEL_FMAP_B0_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_B0_QID_MAX",
-		TRQ_SEL_FMAP_B0_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_B0_QID_BASE",
-		TRQ_SEL_FMAP_B0_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_b1_field_info[] = {
-	{"TRQ_SEL_FMAP_B1_RSVD_1",
-		TRQ_SEL_FMAP_B1_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_B1_QID_MAX",
-		TRQ_SEL_FMAP_B1_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_B1_QID_BASE",
-		TRQ_SEL_FMAP_B1_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_b2_field_info[] = {
-	{"TRQ_SEL_FMAP_B2_RSVD_1",
-		TRQ_SEL_FMAP_B2_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_B2_QID_MAX",
-		TRQ_SEL_FMAP_B2_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_B2_QID_BASE",
-		TRQ_SEL_FMAP_B2_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_b3_field_info[] = {
-	{"TRQ_SEL_FMAP_B3_RSVD_1",
-		TRQ_SEL_FMAP_B3_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_B3_QID_MAX",
-		TRQ_SEL_FMAP_B3_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_B3_QID_BASE",
-		TRQ_SEL_FMAP_B3_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_b4_field_info[] = {
-	{"TRQ_SEL_FMAP_B4_RSVD_1",
-		TRQ_SEL_FMAP_B4_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_B4_QID_MAX",
-		TRQ_SEL_FMAP_B4_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_B4_QID_BASE",
-		TRQ_SEL_FMAP_B4_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_b5_field_info[] = {
-	{"TRQ_SEL_FMAP_B5_RSVD_1",
-		TRQ_SEL_FMAP_B5_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_B5_QID_MAX",
-		TRQ_SEL_FMAP_B5_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_B5_QID_BASE",
-		TRQ_SEL_FMAP_B5_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_b6_field_info[] = {
-	{"TRQ_SEL_FMAP_B6_RSVD_1",
-		TRQ_SEL_FMAP_B6_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_B6_QID_MAX",
-		TRQ_SEL_FMAP_B6_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_B6_QID_BASE",
-		TRQ_SEL_FMAP_B6_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_b7_field_info[] = {
-	{"TRQ_SEL_FMAP_B7_RSVD_1",
-		TRQ_SEL_FMAP_B7_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_B7_QID_MAX",
-		TRQ_SEL_FMAP_B7_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_B7_QID_BASE",
-		TRQ_SEL_FMAP_B7_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_b8_field_info[] = {
-	{"TRQ_SEL_FMAP_B8_RSVD_1",
-		TRQ_SEL_FMAP_B8_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_B8_QID_MAX",
-		TRQ_SEL_FMAP_B8_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_B8_QID_BASE",
-		TRQ_SEL_FMAP_B8_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_b9_field_info[] = {
-	{"TRQ_SEL_FMAP_B9_RSVD_1",
-		TRQ_SEL_FMAP_B9_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_B9_QID_MAX",
-		TRQ_SEL_FMAP_B9_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_B9_QID_BASE",
-		TRQ_SEL_FMAP_B9_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_ba_field_info[] = {
-	{"TRQ_SEL_FMAP_BA_RSVD_1",
-		TRQ_SEL_FMAP_BA_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_BA_QID_MAX",
-		TRQ_SEL_FMAP_BA_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_BA_QID_BASE",
-		TRQ_SEL_FMAP_BA_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_bb_field_info[] = {
-	{"TRQ_SEL_FMAP_BB_RSVD_1",
-		TRQ_SEL_FMAP_BB_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_BB_QID_MAX",
-		TRQ_SEL_FMAP_BB_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_BB_QID_BASE",
-		TRQ_SEL_FMAP_BB_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_bc_field_info[] = {
-	{"TRQ_SEL_FMAP_BC_RSVD_1",
-		TRQ_SEL_FMAP_BC_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_BC_QID_MAX",
-		TRQ_SEL_FMAP_BC_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_BC_QID_BASE",
-		TRQ_SEL_FMAP_BC_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_bd_field_info[] = {
-	{"TRQ_SEL_FMAP_BD_RSVD_1",
-		TRQ_SEL_FMAP_BD_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_BD_QID_MAX",
-		TRQ_SEL_FMAP_BD_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_BD_QID_BASE",
-		TRQ_SEL_FMAP_BD_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_be_field_info[] = {
-	{"TRQ_SEL_FMAP_BE_RSVD_1",
-		TRQ_SEL_FMAP_BE_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_BE_QID_MAX",
-		TRQ_SEL_FMAP_BE_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_BE_QID_BASE",
-		TRQ_SEL_FMAP_BE_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_bf_field_info[] = {
-	{"TRQ_SEL_FMAP_BF_RSVD_1",
-		TRQ_SEL_FMAP_BF_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_BF_QID_MAX",
-		TRQ_SEL_FMAP_BF_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_BF_QID_BASE",
-		TRQ_SEL_FMAP_BF_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_c0_field_info[] = {
-	{"TRQ_SEL_FMAP_C0_RSVD_1",
-		TRQ_SEL_FMAP_C0_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_C0_QID_MAX",
-		TRQ_SEL_FMAP_C0_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_C0_QID_BASE",
-		TRQ_SEL_FMAP_C0_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_c1_field_info[] = {
-	{"TRQ_SEL_FMAP_C1_RSVD_1",
-		TRQ_SEL_FMAP_C1_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_C1_QID_MAX",
-		TRQ_SEL_FMAP_C1_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_C1_QID_BASE",
-		TRQ_SEL_FMAP_C1_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_c2_field_info[] = {
-	{"TRQ_SEL_FMAP_C2_RSVD_1",
-		TRQ_SEL_FMAP_C2_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_C2_QID_MAX",
-		TRQ_SEL_FMAP_C2_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_C2_QID_BASE",
-		TRQ_SEL_FMAP_C2_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_c3_field_info[] = {
-	{"TRQ_SEL_FMAP_C3_RSVD_1",
-		TRQ_SEL_FMAP_C3_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_C3_QID_MAX",
-		TRQ_SEL_FMAP_C3_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_C3_QID_BASE",
-		TRQ_SEL_FMAP_C3_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_c4_field_info[] = {
-	{"TRQ_SEL_FMAP_C4_RSVD_1",
-		TRQ_SEL_FMAP_C4_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_C4_QID_MAX",
-		TRQ_SEL_FMAP_C4_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_C4_QID_BASE",
-		TRQ_SEL_FMAP_C4_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_c5_field_info[] = {
-	{"TRQ_SEL_FMAP_C5_RSVD_1",
-		TRQ_SEL_FMAP_C5_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_C5_QID_MAX",
-		TRQ_SEL_FMAP_C5_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_C5_QID_BASE",
-		TRQ_SEL_FMAP_C5_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_c6_field_info[] = {
-	{"TRQ_SEL_FMAP_C6_RSVD_1",
-		TRQ_SEL_FMAP_C6_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_C6_QID_MAX",
-		TRQ_SEL_FMAP_C6_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_C6_QID_BASE",
-		TRQ_SEL_FMAP_C6_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_c7_field_info[] = {
-	{"TRQ_SEL_FMAP_C7_RSVD_1",
-		TRQ_SEL_FMAP_C7_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_C7_QID_MAX",
-		TRQ_SEL_FMAP_C7_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_C7_QID_BASE",
-		TRQ_SEL_FMAP_C7_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_c8_field_info[] = {
-	{"TRQ_SEL_FMAP_C8_RSVD_1",
-		TRQ_SEL_FMAP_C8_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_C8_QID_MAX",
-		TRQ_SEL_FMAP_C8_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_C8_QID_BASE",
-		TRQ_SEL_FMAP_C8_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_c9_field_info[] = {
-	{"TRQ_SEL_FMAP_C9_RSVD_1",
-		TRQ_SEL_FMAP_C9_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_C9_QID_MAX",
-		TRQ_SEL_FMAP_C9_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_C9_QID_BASE",
-		TRQ_SEL_FMAP_C9_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_ca_field_info[] = {
-	{"TRQ_SEL_FMAP_CA_RSVD_1",
-		TRQ_SEL_FMAP_CA_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_CA_QID_MAX",
-		TRQ_SEL_FMAP_CA_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_CA_QID_BASE",
-		TRQ_SEL_FMAP_CA_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_cb_field_info[] = {
-	{"TRQ_SEL_FMAP_CB_RSVD_1",
-		TRQ_SEL_FMAP_CB_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_CB_QID_MAX",
-		TRQ_SEL_FMAP_CB_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_CB_QID_BASE",
-		TRQ_SEL_FMAP_CB_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_cc_field_info[] = {
-	{"TRQ_SEL_FMAP_CC_RSVD_1",
-		TRQ_SEL_FMAP_CC_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_CC_QID_MAX",
-		TRQ_SEL_FMAP_CC_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_CC_QID_BASE",
-		TRQ_SEL_FMAP_CC_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_cd_field_info[] = {
-	{"TRQ_SEL_FMAP_CD_RSVD_1",
-		TRQ_SEL_FMAP_CD_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_CD_QID_MAX",
-		TRQ_SEL_FMAP_CD_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_CD_QID_BASE",
-		TRQ_SEL_FMAP_CD_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_ce_field_info[] = {
-	{"TRQ_SEL_FMAP_CE_RSVD_1",
-		TRQ_SEL_FMAP_CE_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_CE_QID_MAX",
-		TRQ_SEL_FMAP_CE_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_CE_QID_BASE",
-		TRQ_SEL_FMAP_CE_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_cf_field_info[] = {
-	{"TRQ_SEL_FMAP_CF_RSVD_1",
-		TRQ_SEL_FMAP_CF_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_CF_QID_MAX",
-		TRQ_SEL_FMAP_CF_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_CF_QID_BASE",
-		TRQ_SEL_FMAP_CF_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_d0_field_info[] = {
-	{"TRQ_SEL_FMAP_D0_RSVD_1",
-		TRQ_SEL_FMAP_D0_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_D0_QID_MAX",
-		TRQ_SEL_FMAP_D0_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_D0_QID_BASE",
-		TRQ_SEL_FMAP_D0_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_d1_field_info[] = {
-	{"TRQ_SEL_FMAP_D1_RSVD_1",
-		TRQ_SEL_FMAP_D1_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_D1_QID_MAX",
-		TRQ_SEL_FMAP_D1_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_D1_QID_BASE",
-		TRQ_SEL_FMAP_D1_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_d2_field_info[] = {
-	{"TRQ_SEL_FMAP_D2_RSVD_1",
-		TRQ_SEL_FMAP_D2_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_D2_QID_MAX",
-		TRQ_SEL_FMAP_D2_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_D2_QID_BASE",
-		TRQ_SEL_FMAP_D2_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_d3_field_info[] = {
-	{"TRQ_SEL_FMAP_D3_RSVD_1",
-		TRQ_SEL_FMAP_D3_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_D3_QID_MAX",
-		TRQ_SEL_FMAP_D3_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_D3_QID_BASE",
-		TRQ_SEL_FMAP_D3_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_d4_field_info[] = {
-	{"TRQ_SEL_FMAP_D4_RSVD_1",
-		TRQ_SEL_FMAP_D4_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_D4_QID_MAX",
-		TRQ_SEL_FMAP_D4_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_D4_QID_BASE",
-		TRQ_SEL_FMAP_D4_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_d5_field_info[] = {
-	{"TRQ_SEL_FMAP_D5_RSVD_1",
-		TRQ_SEL_FMAP_D5_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_D5_QID_MAX",
-		TRQ_SEL_FMAP_D5_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_D5_QID_BASE",
-		TRQ_SEL_FMAP_D5_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_d6_field_info[] = {
-	{"TRQ_SEL_FMAP_D6_RSVD_1",
-		TRQ_SEL_FMAP_D6_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_D6_QID_MAX",
-		TRQ_SEL_FMAP_D6_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_D6_QID_BASE",
-		TRQ_SEL_FMAP_D6_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_d7_field_info[] = {
-	{"TRQ_SEL_FMAP_D7_RSVD_1",
-		TRQ_SEL_FMAP_D7_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_D7_QID_MAX",
-		TRQ_SEL_FMAP_D7_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_D7_QID_BASE",
-		TRQ_SEL_FMAP_D7_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_d8_field_info[] = {
-	{"TRQ_SEL_FMAP_D8_RSVD_1",
-		TRQ_SEL_FMAP_D8_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_D8_QID_MAX",
-		TRQ_SEL_FMAP_D8_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_D8_QID_BASE",
-		TRQ_SEL_FMAP_D8_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_d9_field_info[] = {
-	{"TRQ_SEL_FMAP_D9_RSVD_1",
-		TRQ_SEL_FMAP_D9_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_D9_QID_MAX",
-		TRQ_SEL_FMAP_D9_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_D9_QID_BASE",
-		TRQ_SEL_FMAP_D9_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_da_field_info[] = {
-	{"TRQ_SEL_FMAP_DA_RSVD_1",
-		TRQ_SEL_FMAP_DA_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_DA_QID_MAX",
-		TRQ_SEL_FMAP_DA_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_DA_QID_BASE",
-		TRQ_SEL_FMAP_DA_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_db_field_info[] = {
-	{"TRQ_SEL_FMAP_DB_RSVD_1",
-		TRQ_SEL_FMAP_DB_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_DB_QID_MAX",
-		TRQ_SEL_FMAP_DB_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_DB_QID_BASE",
-		TRQ_SEL_FMAP_DB_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_dc_field_info[] = {
-	{"TRQ_SEL_FMAP_DC_RSVD_1",
-		TRQ_SEL_FMAP_DC_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_DC_QID_MAX",
-		TRQ_SEL_FMAP_DC_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_DC_QID_BASE",
-		TRQ_SEL_FMAP_DC_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_dd_field_info[] = {
-	{"TRQ_SEL_FMAP_DD_RSVD_1",
-		TRQ_SEL_FMAP_DD_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_DD_QID_MAX",
-		TRQ_SEL_FMAP_DD_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_DD_QID_BASE",
-		TRQ_SEL_FMAP_DD_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_de_field_info[] = {
-	{"TRQ_SEL_FMAP_DE_RSVD_1",
-		TRQ_SEL_FMAP_DE_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_DE_QID_MAX",
-		TRQ_SEL_FMAP_DE_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_DE_QID_BASE",
-		TRQ_SEL_FMAP_DE_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_df_field_info[] = {
-	{"TRQ_SEL_FMAP_DF_RSVD_1",
-		TRQ_SEL_FMAP_DF_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_DF_QID_MAX",
-		TRQ_SEL_FMAP_DF_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_DF_QID_BASE",
-		TRQ_SEL_FMAP_DF_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_e0_field_info[] = {
-	{"TRQ_SEL_FMAP_E0_RSVD_1",
-		TRQ_SEL_FMAP_E0_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_E0_QID_MAX",
-		TRQ_SEL_FMAP_E0_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_E0_QID_BASE",
-		TRQ_SEL_FMAP_E0_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_e1_field_info[] = {
-	{"TRQ_SEL_FMAP_E1_RSVD_1",
-		TRQ_SEL_FMAP_E1_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_E1_QID_MAX",
-		TRQ_SEL_FMAP_E1_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_E1_QID_BASE",
-		TRQ_SEL_FMAP_E1_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_e2_field_info[] = {
-	{"TRQ_SEL_FMAP_E2_RSVD_1",
-		TRQ_SEL_FMAP_E2_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_E2_QID_MAX",
-		TRQ_SEL_FMAP_E2_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_E2_QID_BASE",
-		TRQ_SEL_FMAP_E2_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_e3_field_info[] = {
-	{"TRQ_SEL_FMAP_E3_RSVD_1",
-		TRQ_SEL_FMAP_E3_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_E3_QID_MAX",
-		TRQ_SEL_FMAP_E3_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_E3_QID_BASE",
-		TRQ_SEL_FMAP_E3_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_e4_field_info[] = {
-	{"TRQ_SEL_FMAP_E4_RSVD_1",
-		TRQ_SEL_FMAP_E4_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_E4_QID_MAX",
-		TRQ_SEL_FMAP_E4_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_E4_QID_BASE",
-		TRQ_SEL_FMAP_E4_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_e5_field_info[] = {
-	{"TRQ_SEL_FMAP_E5_RSVD_1",
-		TRQ_SEL_FMAP_E5_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_E5_QID_MAX",
-		TRQ_SEL_FMAP_E5_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_E5_QID_BASE",
-		TRQ_SEL_FMAP_E5_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_e6_field_info[] = {
-	{"TRQ_SEL_FMAP_E6_RSVD_1",
-		TRQ_SEL_FMAP_E6_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_E6_QID_MAX",
-		TRQ_SEL_FMAP_E6_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_E6_QID_BASE",
-		TRQ_SEL_FMAP_E6_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_e7_field_info[] = {
-	{"TRQ_SEL_FMAP_E7_RSVD_1",
-		TRQ_SEL_FMAP_E7_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_E7_QID_MAX",
-		TRQ_SEL_FMAP_E7_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_E7_QID_BASE",
-		TRQ_SEL_FMAP_E7_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_e8_field_info[] = {
-	{"TRQ_SEL_FMAP_E8_RSVD_1",
-		TRQ_SEL_FMAP_E8_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_E8_QID_MAX",
-		TRQ_SEL_FMAP_E8_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_E8_QID_BASE",
-		TRQ_SEL_FMAP_E8_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_e9_field_info[] = {
-	{"TRQ_SEL_FMAP_E9_RSVD_1",
-		TRQ_SEL_FMAP_E9_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_E9_QID_MAX",
-		TRQ_SEL_FMAP_E9_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_E9_QID_BASE",
-		TRQ_SEL_FMAP_E9_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_ea_field_info[] = {
-	{"TRQ_SEL_FMAP_EA_RSVD_1",
-		TRQ_SEL_FMAP_EA_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_EA_QID_MAX",
-		TRQ_SEL_FMAP_EA_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_EA_QID_BASE",
-		TRQ_SEL_FMAP_EA_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_eb_field_info[] = {
-	{"TRQ_SEL_FMAP_EB_RSVD_1",
-		TRQ_SEL_FMAP_EB_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_EB_QID_MAX",
-		TRQ_SEL_FMAP_EB_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_EB_QID_BASE",
-		TRQ_SEL_FMAP_EB_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_ec_field_info[] = {
-	{"TRQ_SEL_FMAP_EC_RSVD_1",
-		TRQ_SEL_FMAP_EC_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_EC_QID_MAX",
-		TRQ_SEL_FMAP_EC_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_EC_QID_BASE",
-		TRQ_SEL_FMAP_EC_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_ed_field_info[] = {
-	{"TRQ_SEL_FMAP_ED_RSVD_1",
-		TRQ_SEL_FMAP_ED_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_ED_QID_MAX",
-		TRQ_SEL_FMAP_ED_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_ED_QID_BASE",
-		TRQ_SEL_FMAP_ED_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_ee_field_info[] = {
-	{"TRQ_SEL_FMAP_EE_RSVD_1",
-		TRQ_SEL_FMAP_EE_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_EE_QID_MAX",
-		TRQ_SEL_FMAP_EE_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_EE_QID_BASE",
-		TRQ_SEL_FMAP_EE_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_ef_field_info[] = {
-	{"TRQ_SEL_FMAP_EF_RSVD_1",
-		TRQ_SEL_FMAP_EF_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_EF_QID_MAX",
-		TRQ_SEL_FMAP_EF_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_EF_QID_BASE",
-		TRQ_SEL_FMAP_EF_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	trq_sel_fmap_f0_field_info[] = {
-	{"TRQ_SEL_FMAP_F0_RSVD_1",
-		TRQ_SEL_FMAP_F0_RSVD_1_MASK},
-	{"TRQ_SEL_FMAP_F0_QID_MAX",
-		TRQ_SEL_FMAP_F0_QID_MAX_MASK},
-	{"TRQ_SEL_FMAP_F0_QID_BASE",
-		TRQ_SEL_FMAP_F0_QID_BASE_MASK},
-};
-
-
-static struct regfield_info
-	ind_ctxt_data_3_field_info[] = {
-	{"IND_CTXT_DATA_3_DATA",
-		IND_CTXT_DATA_3_DATA_MASK},
-};
-
-
-static struct regfield_info
-	ind_ctxt_data_2_field_info[] = {
-	{"IND_CTXT_DATA_2_DATA",
-		IND_CTXT_DATA_2_DATA_MASK},
-};
-
-
-static struct regfield_info
-	ind_ctxt_data_1_field_info[] = {
-	{"IND_CTXT_DATA_1_DATA",
-		IND_CTXT_DATA_1_DATA_MASK},
-};
-
-
-static struct regfield_info
-	ind_ctxt_data_0_field_info[] = {
-	{"IND_CTXT_DATA_0_DATA",
-		IND_CTXT_DATA_0_DATA_MASK},
-};
-
-
-static struct regfield_info
-	ind_ctxt3_field_info[] = {
-	{"IND_CTXT3",
-		IND_CTXT3_MASK},
-};
-
-
-static struct regfield_info
-	ind_ctxt2_field_info[] = {
-	{"IND_CTXT2",
-		IND_CTXT2_MASK},
-};
-
-
-static struct regfield_info
-	ind_ctxt1_field_info[] = {
-	{"IND_CTXT1",
-		IND_CTXT1_MASK},
-};
-
-
-static struct regfield_info
-	ind_ctxt0_field_info[] = {
-	{"IND_CTXT0",
-		IND_CTXT0_MASK},
-};
-
-
-static struct regfield_info
-	ind_ctxt_cmd_field_info[] = {
-	{"IND_CTXT_CMD_RSVD_1",
-		IND_CTXT_CMD_RSVD_1_MASK},
-	{"IND_CTXT_CMD_QID",
-		IND_CTXT_CMD_QID_MASK},
-	{"IND_CTXT_CMD_OP",
-		IND_CTXT_CMD_OP_MASK},
-	{"IND_CTXT_CMD_SET",
-		IND_CTXT_CMD_SET_MASK},
-	{"IND_CTXT_CMD_BUSY",
-		IND_CTXT_CMD_BUSY_MASK},
-};
-
-
-static struct regfield_info
-	c2h_timer_cnt_1_field_info[] = {
-	{"C2H_TIMER_CNT_1_RSVD_1",
-		C2H_TIMER_CNT_1_RSVD_1_MASK},
-	{"C2H_TIMER_CNT_1",
-		C2H_TIMER_CNT_1_MASK},
-};
-
-
-static struct regfield_info
-	c2h_timer_cnt_2_field_info[] = {
-	{"C2H_TIMER_CNT_2_RSVD_1",
-		C2H_TIMER_CNT_2_RSVD_1_MASK},
-	{"C2H_TIMER_CNT_2",
-		C2H_TIMER_CNT_2_MASK},
-};
-
-
-static struct regfield_info
-	c2h_timer_cnt_3_field_info[] = {
-	{"C2H_TIMER_CNT_3_RSVD_1",
-		C2H_TIMER_CNT_3_RSVD_1_MASK},
-	{"C2H_TIMER_CNT_3",
-		C2H_TIMER_CNT_3_MASK},
-};
-
-
-static struct regfield_info
-	c2h_timer_cnt_4_field_info[] = {
-	{"C2H_TIMER_CNT_4_RSVD_1",
-		C2H_TIMER_CNT_4_RSVD_1_MASK},
-	{"C2H_TIMER_CNT_4",
-		C2H_TIMER_CNT_4_MASK},
-};
-
-
-static struct regfield_info
-	c2h_timer_cnt_5_field_info[] = {
-	{"C2H_TIMER_CNT_5_RSVD_1",
-		C2H_TIMER_CNT_5_RSVD_1_MASK},
-	{"C2H_TIMER_CNT_5",
-		C2H_TIMER_CNT_5_MASK},
-};
-
-
-static struct regfield_info
-	c2h_timer_cnt_6_field_info[] = {
-	{"C2H_TIMER_CNT_6_RSVD_1",
-		C2H_TIMER_CNT_6_RSVD_1_MASK},
-	{"C2H_TIMER_CNT_6",
-		C2H_TIMER_CNT_6_MASK},
-};
-
-
-static struct regfield_info
-	c2h_timer_cnt_7_field_info[] = {
-	{"C2H_TIMER_CNT_7_RSVD_1",
-		C2H_TIMER_CNT_7_RSVD_1_MASK},
-	{"C2H_TIMER_CNT_7",
-		C2H_TIMER_CNT_7_MASK},
-};
-
-
-static struct regfield_info
-	c2h_timer_cnt_8_field_info[] = {
-	{"C2H_TIMER_CNT_8_RSVD_1",
-		C2H_TIMER_CNT_8_RSVD_1_MASK},
-	{"C2H_TIMER_CNT_8",
-		C2H_TIMER_CNT_8_MASK},
-};
-
-
-static struct regfield_info
-	c2h_timer_cnt_9_field_info[] = {
-	{"C2H_TIMER_CNT_9_RSVD_1",
-		C2H_TIMER_CNT_9_RSVD_1_MASK},
-	{"C2H_TIMER_CNT_9",
-		C2H_TIMER_CNT_9_MASK},
-};
-
-
-static struct regfield_info
-	c2h_timer_cnt_a_field_info[] = {
-	{"C2H_TIMER_CNT_A_RSVD_1",
-		C2H_TIMER_CNT_A_RSVD_1_MASK},
-	{"C2H_TIMER_CNT_A",
-		C2H_TIMER_CNT_A_MASK},
-};
-
-
-static struct regfield_info
-	c2h_timer_cnt_b_field_info[] = {
-	{"C2H_TIMER_CNT_B_RSVD_1",
-		C2H_TIMER_CNT_B_RSVD_1_MASK},
-	{"C2H_TIMER_CNT_B",
-		C2H_TIMER_CNT_B_MASK},
-};
-
-
-static struct regfield_info
-	c2h_timer_cnt_c_field_info[] = {
-	{"C2H_TIMER_CNT_C_RSVD_1",
-		C2H_TIMER_CNT_C_RSVD_1_MASK},
-	{"C2H_TIMER_CNT_C",
-		C2H_TIMER_CNT_C_MASK},
-};
-
-
-static struct regfield_info
-	c2h_timer_cnt_d_field_info[] = {
-	{"C2H_TIMER_CNT_D_RSVD_1",
-		C2H_TIMER_CNT_D_RSVD_1_MASK},
-	{"C2H_TIMER_CNT_D",
-		C2H_TIMER_CNT_D_MASK},
-};
-
-
-static struct regfield_info
-	c2h_timer_cnt_e_field_info[] = {
-	{"C2H_TIMER_CNT_E_RSVD_1",
-		C2H_TIMER_CNT_E_RSVD_1_MASK},
-	{"C2H_TIMER_CNT_E",
-		C2H_TIMER_CNT_E_MASK},
-};
-
-
-static struct regfield_info
-	c2h_timer_cnt_f_field_info[] = {
-	{"C2H_TIMER_CNT_F_RSVD_1",
-		C2H_TIMER_CNT_F_RSVD_1_MASK},
-	{"C2H_TIMER_CNT_F",
-		C2H_TIMER_CNT_F_MASK},
-};
-
-
-static struct regfield_info
-	c2h_timer_cnt_10_field_info[] = {
-	{"C2H_TIMER_CNT_10_RSVD_1",
-		C2H_TIMER_CNT_10_RSVD_1_MASK},
-	{"C2H_TIMER_CNT_10",
-		C2H_TIMER_CNT_10_MASK},
-};
-
-
-static struct regfield_info
-	c2h_cnt_th_1_field_info[] = {
-	{"C2H_CNT_TH_1_RSVD_1",
-		C2H_CNT_TH_1_RSVD_1_MASK},
-	{"C2H_CNT_TH_1_THESHOLD_CNT",
-		C2H_CNT_TH_1_THESHOLD_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_cnt_th_2_field_info[] = {
-	{"C2H_CNT_TH_2_RSVD_1",
-		C2H_CNT_TH_2_RSVD_1_MASK},
-	{"C2H_CNT_TH_2_THESHOLD_CNT",
-		C2H_CNT_TH_2_THESHOLD_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_cnt_th_3_field_info[] = {
-	{"C2H_CNT_TH_3_RSVD_1",
-		C2H_CNT_TH_3_RSVD_1_MASK},
-	{"C2H_CNT_TH_3_THESHOLD_CNT",
-		C2H_CNT_TH_3_THESHOLD_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_cnt_th_4_field_info[] = {
-	{"C2H_CNT_TH_4_RSVD_1",
-		C2H_CNT_TH_4_RSVD_1_MASK},
-	{"C2H_CNT_TH_4_THESHOLD_CNT",
-		C2H_CNT_TH_4_THESHOLD_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_cnt_th_5_field_info[] = {
-	{"C2H_CNT_TH_5_RSVD_1",
-		C2H_CNT_TH_5_RSVD_1_MASK},
-	{"C2H_CNT_TH_5_THESHOLD_CNT",
-		C2H_CNT_TH_5_THESHOLD_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_cnt_th_6_field_info[] = {
-	{"C2H_CNT_TH_6_RSVD_1",
-		C2H_CNT_TH_6_RSVD_1_MASK},
-	{"C2H_CNT_TH_6_THESHOLD_CNT",
-		C2H_CNT_TH_6_THESHOLD_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_cnt_th_7_field_info[] = {
-	{"C2H_CNT_TH_7_RSVD_1",
-		C2H_CNT_TH_7_RSVD_1_MASK},
-	{"C2H_CNT_TH_7_THESHOLD_CNT",
-		C2H_CNT_TH_7_THESHOLD_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_cnt_th_8_field_info[] = {
-	{"C2H_CNT_TH_8_RSVD_1",
-		C2H_CNT_TH_8_RSVD_1_MASK},
-	{"C2H_CNT_TH_8_THESHOLD_CNT",
-		C2H_CNT_TH_8_THESHOLD_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_cnt_th_9_field_info[] = {
-	{"C2H_CNT_TH_9_RSVD_1",
-		C2H_CNT_TH_9_RSVD_1_MASK},
-	{"C2H_CNT_TH_9_THESHOLD_CNT",
-		C2H_CNT_TH_9_THESHOLD_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_cnt_th_a_field_info[] = {
-	{"C2H_CNT_TH_A_RSVD_1",
-		C2H_CNT_TH_A_RSVD_1_MASK},
-	{"C2H_CNT_TH_A_THESHOLD_CNT",
-		C2H_CNT_TH_A_THESHOLD_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_cnt_th_b_field_info[] = {
-	{"C2H_CNT_TH_B_RSVD_1",
-		C2H_CNT_TH_B_RSVD_1_MASK},
-	{"C2H_CNT_TH_B_THESHOLD_CNT",
-		C2H_CNT_TH_B_THESHOLD_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_cnt_th_c_field_info[] = {
-	{"C2H_CNT_TH_C_RSVD_1",
-		C2H_CNT_TH_C_RSVD_1_MASK},
-	{"C2H_CNT_TH_C_THESHOLD_CNT",
-		C2H_CNT_TH_C_THESHOLD_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_cnt_th_d_field_info[] = {
-	{"C2H_CNT_TH_D_RSVD_1",
-		C2H_CNT_TH_D_RSVD_1_MASK},
-	{"C2H_CNT_TH_D_THESHOLD_CNT",
-		C2H_CNT_TH_D_THESHOLD_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_cnt_th_e_field_info[] = {
-	{"C2H_CNT_TH_E_RSVD_1",
-		C2H_CNT_TH_E_RSVD_1_MASK},
-	{"C2H_CNT_TH_E_THESHOLD_CNT",
-		C2H_CNT_TH_E_THESHOLD_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_cnt_th_f_field_info[] = {
-	{"C2H_CNT_TH_F_RSVD_1",
-		C2H_CNT_TH_F_RSVD_1_MASK},
-	{"C2H_CNT_TH_F_THESHOLD_CNT",
-		C2H_CNT_TH_F_THESHOLD_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_cnt_th_10_field_info[] = {
-	{"C2H_CNT_TH_10_RSVD_1",
-		C2H_CNT_TH_10_RSVD_1_MASK},
-	{"C2H_CNT_TH_10_THESHOLD_CNT",
-		C2H_CNT_TH_10_THESHOLD_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_qid2vec_map_qid_field_info[] = {
-	{"C2H_QID2VEC_MAP_QID_RSVD_1",
-		C2H_QID2VEC_MAP_QID_RSVD_1_MASK},
-	{"C2H_QID2VEC_MAP_QID_QID",
-		C2H_QID2VEC_MAP_QID_QID_MASK},
-};
-
-
-static struct regfield_info
-	c2h_qid2vec_map_field_info[] = {
-	{"C2H_QID2VEC_MAP_RSVD_1",
-		C2H_QID2VEC_MAP_RSVD_1_MASK},
-	{"C2H_QID2VEC_MAP_H2C_EN_COAL",
-		C2H_QID2VEC_MAP_H2C_EN_COAL_MASK},
-	{"C2H_QID2VEC_MAP_H2C_VECTOR",
-		C2H_QID2VEC_MAP_H2C_VECTOR_MASK},
-	{"C2H_QID2VEC_MAP_C2H_EN_COAL",
-		C2H_QID2VEC_MAP_C2H_EN_COAL_MASK},
-	{"C2H_QID2VEC_MAP_C2H_VECTOR",
-		C2H_QID2VEC_MAP_C2H_VECTOR_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_s_axis_c2h_accepted_field_info[] = {
-	{"C2H_STAT_S_AXIS_C2H_ACCEPTED",
-		C2H_STAT_S_AXIS_C2H_ACCEPTED_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_s_axis_wrb_accepted_field_info[] = {
-	{"C2H_STAT_S_AXIS_WRB_ACCEPTED",
-		C2H_STAT_S_AXIS_WRB_ACCEPTED_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_desc_rsp_pkt_accepted_field_info[] = {
-	{"C2H_STAT_DESC_RSP_PKT_ACCEPTED_D",
-		C2H_STAT_DESC_RSP_PKT_ACCEPTED_D_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_axis_pkg_cmp_field_info[] = {
-	{"C2H_STAT_AXIS_PKG_CMP",
-		C2H_STAT_AXIS_PKG_CMP_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_desc_rsp_accepted_field_info[] = {
-	{"C2H_STAT_DESC_RSP_ACCEPTED_D",
-		C2H_STAT_DESC_RSP_ACCEPTED_D_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_desc_rsp_cmp_field_info[] = {
-	{"C2H_STAT_DESC_RSP_CMP_D",
-		C2H_STAT_DESC_RSP_CMP_D_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_wrq_out_field_info[] = {
-	{"C2H_STAT_WRQ_OUT",
-		C2H_STAT_WRQ_OUT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_wpl_ren_accepted_field_info[] = {
-	{"C2H_STAT_WPL_REN_ACCEPTED",
-		C2H_STAT_WPL_REN_ACCEPTED_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_total_wrq_len_field_info[] = {
-	{"C2H_STAT_TOTAL_WRQ_LEN",
-		C2H_STAT_TOTAL_WRQ_LEN_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_total_wpl_len_field_info[] = {
-	{"C2H_STAT_TOTAL_WPL_LEN",
-		C2H_STAT_TOTAL_WPL_LEN_MASK},
-};
-
-
-static struct regfield_info
-	c2h_buf_sz_0_field_info[] = {
-	{"C2H_BUF_SZ_0_SIZE",
-		C2H_BUF_SZ_0_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	c2h_buf_sz_1_field_info[] = {
-	{"C2H_BUF_SZ_1_SIZE",
-		C2H_BUF_SZ_1_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	c2h_buf_sz_2_field_info[] = {
-	{"C2H_BUF_SZ_2_SIZE",
-		C2H_BUF_SZ_2_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	c2h_buf_sz_3_field_info[] = {
-	{"C2H_BUF_SZ_3_SIZE",
-		C2H_BUF_SZ_3_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	c2h_buf_sz_4_field_info[] = {
-	{"C2H_BUF_SZ_4_SIZE",
-		C2H_BUF_SZ_4_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	c2h_buf_sz_5_field_info[] = {
-	{"C2H_BUF_SZ_5_SIZE",
-		C2H_BUF_SZ_5_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	c2h_buf_sz_7_field_info[] = {
-	{"C2H_BUF_SZ_7_SIZE",
-		C2H_BUF_SZ_7_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	c2h_buf_sz_8_field_info[] = {
-	{"C2H_BUF_SZ_8_SIZE",
-		C2H_BUF_SZ_8_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	c2h_buf_sz_9_field_info[] = {
-	{"C2H_BUF_SZ_9_SIZE",
-		C2H_BUF_SZ_9_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	c2h_buf_sz_10_field_info[] = {
-	{"C2H_BUF_SZ_10_SIZE",
-		C2H_BUF_SZ_10_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	c2h_buf_sz_11_field_info[] = {
-	{"C2H_BUF_SZ_11_SIZE",
-		C2H_BUF_SZ_11_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	c2h_buf_sz_12_field_info[] = {
-	{"C2H_BUF_SZ_12_SIZE",
-		C2H_BUF_SZ_12_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	c2h_buf_sz_13_field_info[] = {
-	{"C2H_BUF_SZ_13_SIZE",
-		C2H_BUF_SZ_13_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	c2h_buf_sz_14_field_info[] = {
-	{"C2H_BUF_SZ_14_SIZE",
-		C2H_BUF_SZ_14_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	c2h_buf_sz_15_field_info[] = {
-	{"C2H_BUF_SZ_15_SIZE",
-		C2H_BUF_SZ_15_SIZE_MASK},
-};
-
-
-static struct regfield_info
-	c2h_err_stat_field_info[] = {
-	{"C2H_ERR_STAT_RSVD_1",
-		C2H_ERR_STAT_RSVD_1_MASK},
-	{"C2H_ERR_STAT_WRB_PRTY_ERR",
-		C2H_ERR_STAT_WRB_PRTY_ERR_MASK},
-	{"C2H_ERR_STAT_WRB_CIDX_ERR",
-		C2H_ERR_STAT_WRB_CIDX_ERR_MASK},
-	{"C2H_ERR_STAT_WRB_QFULL_ERR",
-		C2H_ERR_STAT_WRB_QFULL_ERR_MASK},
-	{"C2H_ERR_STAT_WRB_INV_Q_ERR",
-		C2H_ERR_STAT_WRB_INV_Q_ERR_MASK},
-	{"C2H_ERR_STAT_PORT_ID_BYP_IN_MISMATCH",
-		C2H_ERR_STAT_PORT_ID_BYP_IN_MISMATCH_MASK},
-	{"C2H_ERR_STAT_PORT_ID_CTXT_MISMATCH",
-		C2H_ERR_STAT_PORT_ID_CTXT_MISMATCH_MASK},
-	{"C2H_ERR_STAT_ERR_DESC_CNT",
-		C2H_ERR_STAT_ERR_DESC_CNT_MASK},
-	{"C2H_ERR_STAT_RSVD_2",
-		C2H_ERR_STAT_RSVD_2_MASK},
-	{"C2H_ERR_STAT_MSI_INT_FAIL",
-		C2H_ERR_STAT_MSI_INT_FAIL_MASK},
-	{"C2H_ERR_STAT_ENG_WPL_DATA_PAR_ERR",
-		C2H_ERR_STAT_ENG_WPL_DATA_PAR_ERR_MASK},
-	{"C2H_ERR_STAT_RSVD_3",
-		C2H_ERR_STAT_RSVD_3_MASK},
-	{"C2H_ERR_STAT_DESC_RSP_ERR",
-		C2H_ERR_STAT_DESC_RSP_ERR_MASK},
-	{"C2H_ERR_STAT_QID_MISMATCH",
-		C2H_ERR_STAT_QID_MISMATCH_MASK},
-	{"C2H_ERR_STAT_RSVD_4",
-		C2H_ERR_STAT_RSVD_4_MASK},
-	{"C2H_ERR_STAT_LEN_MISMATCH",
-		C2H_ERR_STAT_LEN_MISMATCH_MASK},
-	{"C2H_ERR_STAT_MTY_MISMATCH",
-		C2H_ERR_STAT_MTY_MISMATCH_MASK},
-};
-
-
-static struct regfield_info
-	c2h_err_mask_field_info[] = {
-	{"C2H_ERR_EN",
-		C2H_ERR_EN_MASK},
-};
-
-
-static struct regfield_info
-	c2h_fatal_err_stat_field_info[] = {
-	{"C2H_FATAL_ERR_STAT_RSVD_1",
-		C2H_FATAL_ERR_STAT_RSVD_1_MASK},
-	{"C2H_FATAL_ERR_STAT_WPL_DATA_PAR_ERR",
-		C2H_FATAL_ERR_STAT_WPL_DATA_PAR_ERR_MASK},
-	{"C2H_FATAL_ERR_STAT_PLD_FIFO_RAM_RDBE",
-		C2H_FATAL_ERR_STAT_PLD_FIFO_RAM_RDBE_MASK},
-	{"C2H_FATAL_ERR_STAT_QID_FIFO_RAM_RDBE",
-		C2H_FATAL_ERR_STAT_QID_FIFO_RAM_RDBE_MASK},
-	{"C2H_FATAL_ERR_STAT_TUSER_FIFO_RAM_RDBE",
-		C2H_FATAL_ERR_STAT_TUSER_FIFO_RAM_RDBE_MASK},
-	{"C2H_FATAL_ERR_STAT_WRB_COAL_DATA_RAM_RDBE",
-		C2H_FATAL_ERR_STAT_WRB_COAL_DATA_RAM_RDBE_MASK},
-	{"C2H_FATAL_ERR_STAT_INT_QID2VEC_RAM_RDBE",
-		C2H_FATAL_ERR_STAT_INT_QID2VEC_RAM_RDBE_MASK},
-	{"C2H_FATAL_ERR_STAT_INT_CTXT_RAM_RDBE",
-		C2H_FATAL_ERR_STAT_INT_CTXT_RAM_RDBE_MASK},
-	{"C2H_FATAL_ERR_STAT_DESC_REQ_FIFO_RAM_RDBE",
-		C2H_FATAL_ERR_STAT_DESC_REQ_FIFO_RAM_RDBE_MASK},
-	{"C2H_FATAL_ERR_STAT_PFCH_CTXT_RAM_RDBE",
-		C2H_FATAL_ERR_STAT_PFCH_CTXT_RAM_RDBE_MASK},
-	{"C2H_FATAL_ERR_STAT_WRB_CTXT_RAM_RDBE",
-		C2H_FATAL_ERR_STAT_WRB_CTXT_RAM_RDBE_MASK},
-	{"C2H_FATAL_ERR_STAT_PFCH_LL_RAM_RDBE",
-		C2H_FATAL_ERR_STAT_PFCH_LL_RAM_RDBE_MASK},
-	{"C2H_FATAL_ERR_STAT_TIMER_FIFO_RAM_RDBE",
-		C2H_FATAL_ERR_STAT_TIMER_FIFO_RAM_RDBE_MASK},
-	{"C2H_FATAL_ERR_STAT_QID_MISMATCH",
-		C2H_FATAL_ERR_STAT_QID_MISMATCH_MASK},
-	{"C2H_FATAL_ERR_STAT_RSVD_2",
-		C2H_FATAL_ERR_STAT_RSVD_2_MASK},
-	{"C2H_FATAL_ERR_STAT_LEN_MISMATCH",
-		C2H_FATAL_ERR_STAT_LEN_MISMATCH_MASK},
-	{"C2H_FATAL_ERR_STAT_MTY_MISMATCH",
-		C2H_FATAL_ERR_STAT_MTY_MISMATCH_MASK},
-};
-
-
-static struct regfield_info
-	c2h_fatal_err_mask_field_info[] = {
-	{"C2H_FATAL_ERR_C2HEN",
-		C2H_FATAL_ERR_C2HEN_MASK},
-};
-
-
-static struct regfield_info
-	c2h_fatal_err_enable_field_info[] = {
-	{"C2H_FATAL_ERR_ENABLE_RSVD_1",
-		C2H_FATAL_ERR_ENABLE_RSVD_1_MASK},
-	{"C2H_FATAL_ERR_ENABLE_WPL_PAR_INV",
-		C2H_FATAL_ERR_ENABLE_WPL_PAR_INV_MASK},
-	{"C2H_FATAL_ERR_ENABLE_WRQ_DIS",
-		C2H_FATAL_ERR_ENABLE_WRQ_DIS_MASK},
-};
-
-
-static struct regfield_info
-	glbl_err_int_field_info[] = {
-	{"GLBL_ERR_INT_RSVD_1",
-		GLBL_ERR_INT_RSVD_1_MASK},
-	{"GLBL_ERR_INT_ARM",
-		GLBL_ERR_INT_ARM_MASK},
-	{"GLBL_ERR_INT_EN_COAL",
-		GLBL_ERR_INT_EN_COAL_MASK},
-	{"GLBL_ERR_INT_VEC",
-		GLBL_ERR_INT_VEC_MASK},
-	{"GLBL_ERR_INT_FUNC",
-		GLBL_ERR_INT_FUNC_MASK},
-};
-
-
-static struct regfield_info
-	c2h_pfch_cfg_field_info[] = {
-	{"C2H_PFCH_CFG_EVT_QCNT_TH",
-		C2H_PFCH_CFG_EVT_QCNT_TH_MASK},
-	{"C2H_PFCH_CFG_QCNT",
-		C2H_PFCH_CFG_QCNT_MASK},
-	{"C2H_PFCH_CFG_NUM",
-		C2H_PFCH_CFG_NUM_MASK},
-	{"C2H_PFCH_CFG_FL_TH",
-		C2H_PFCH_CFG_FL_TH_MASK},
-};
-
-
-static struct regfield_info
-	c2h_int_timer_tick_field_info[] = {
-	{"C2H_INT_TIMER_TICK",
-		C2H_INT_TIMER_TICK_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_desc_rsp_drop_accepted_field_info[] = {
-	{"C2H_STAT_DESC_RSP_DROP_ACCEPTED_D",
-		C2H_STAT_DESC_RSP_DROP_ACCEPTED_D_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_desc_rsp_err_accepted_field_info[] = {
-	{"C2H_STAT_DESC_RSP_ERR_ACCEPTED_D",
-		C2H_STAT_DESC_RSP_ERR_ACCEPTED_D_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_desc_req_field_info[] = {
-	{"C2H_STAT_DESC_REQ",
-		C2H_STAT_DESC_REQ_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_dbg_dma_eng_0_field_info[] = {
-	{"C2H_STAT_DMA_ENG_0_RSVD_1",
-		C2H_STAT_DMA_ENG_0_RSVD_1_MASK},
-	{"C2H_STAT_DMA_ENG_0_WRB_FIFO_OUT_CNT",
-		C2H_STAT_DMA_ENG_0_WRB_FIFO_OUT_CNT_MASK},
-	{"C2H_STAT_DMA_ENG_0_QID_FIFO_OUT_CNT",
-		C2H_STAT_DMA_ENG_0_QID_FIFO_OUT_CNT_MASK},
-	{"C2H_STAT_DMA_ENG_0_PLD_FIFO_OUT_CNT",
-		C2H_STAT_DMA_ENG_0_PLD_FIFO_OUT_CNT_MASK},
-	{"C2H_STAT_DMA_ENG_0_WRQ_FIFO_OUT_CNT",
-		C2H_STAT_DMA_ENG_0_WRQ_FIFO_OUT_CNT_MASK},
-	{"C2H_STAT_DMA_ENG_0_WRB_SM_CS",
-		C2H_STAT_DMA_ENG_0_WRB_SM_CS_MASK},
-	{"C2H_STAT_DMA_ENG_0_MAIN_SM_CS",
-		C2H_STAT_DMA_ENG_0_MAIN_SM_CS_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_dbg_dma_eng_1_field_info[] = {
-	{"C2H_STAT_DMA_ENG_1_RSVD_1",
-		C2H_STAT_DMA_ENG_1_RSVD_1_MASK},
-	{"C2H_STAT_DMA_ENG_1_DESC_RSP_LAST",
-		C2H_STAT_DMA_ENG_1_DESC_RSP_LAST_MASK},
-	{"C2H_STAT_DMA_ENG_1_PLD_FIFO_IN_CNT",
-		C2H_STAT_DMA_ENG_1_PLD_FIFO_IN_CNT_MASK},
-	{"C2H_STAT_DMA_ENG_1_PLD_FIFO_OUTPUT_CNT",
-		C2H_STAT_DMA_ENG_1_PLD_FIFO_OUTPUT_CNT_MASK},
-	{"C2H_STAT_DMA_ENG_1_QID_FIFO_IN_CNT",
-		C2H_STAT_DMA_ENG_1_QID_FIFO_IN_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_dbg_dma_eng_2_field_info[] = {
-	{"C2H_STAT_DMA_ENG_2_RSVD_1",
-		C2H_STAT_DMA_ENG_2_RSVD_1_MASK},
-	{"C2H_STAT_DMA_ENG_2_WRB_FIFO_IN_CNT",
-		C2H_STAT_DMA_ENG_2_WRB_FIFO_IN_CNT_MASK},
-	{"C2H_STAT_DMA_ENG_2_WRB_FIFO_OUTPUT_CNT",
-		C2H_STAT_DMA_ENG_2_WRB_FIFO_OUTPUT_CNT_MASK},
-	{"C2H_STAT_DMA_ENG_2_QID_FIFO_OUTPUT_CNT",
-		C2H_STAT_DMA_ENG_2_QID_FIFO_OUTPUT_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_dbg_dma_eng_3_field_info[] = {
-	{"C2H_STAT_DMA_ENG_3_RSVD_1",
-		C2H_STAT_DMA_ENG_3_RSVD_1_MASK},
-	{"C2H_STAT_DMA_ENG_3_ADDR_4K_SPLIT_CNT",
-		C2H_STAT_DMA_ENG_3_ADDR_4K_SPLIT_CNT_MASK},
-	{"C2H_STAT_DMA_ENG_3_WRQ_FIFO_IN_CNT",
-		C2H_STAT_DMA_ENG_3_WRQ_FIFO_IN_CNT_MASK},
-	{"C2H_STAT_DMA_ENG_3_WRQ_FIFO_OUTPUT_CNT",
-		C2H_STAT_DMA_ENG_3_WRQ_FIFO_OUTPUT_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_dbg_pfch_err_ctxt_field_info[] = {
-	{"C2H_PFCH_ERR_CTXT_RSVD_1",
-		C2H_PFCH_ERR_CTXT_RSVD_1_MASK},
-	{"C2H_PFCH_ERR_CTXT_ERR_STAT",
-		C2H_PFCH_ERR_CTXT_ERR_STAT_MASK},
-	{"C2H_PFCH_ERR_CTXT_CMD_WR",
-		C2H_PFCH_ERR_CTXT_CMD_WR_MASK},
-	{"C2H_PFCH_ERR_CTXT_QID",
-		C2H_PFCH_ERR_CTXT_QID_MASK},
-	{"C2H_PFCH_ERR_CTXT_DONE",
-		C2H_PFCH_ERR_CTXT_DONE_MASK},
-};
-
-
-static struct regfield_info
-	c2h_first_err_qid_field_info[] = {
-	{"C2H_FIRST_ERR_QID_RSVD_1",
-		C2H_FIRST_ERR_QID_RSVD_1_MASK},
-	{"C2H_FIRST_ERR_QID_ERR_STAT",
-		C2H_FIRST_ERR_QID_ERR_STAT_MASK},
-	{"C2H_FIRST_ERR_QID_CMD_WR",
-		C2H_FIRST_ERR_QID_CMD_WR_MASK},
-	{"C2H_FIRST_ERR_QID_QID",
-		C2H_FIRST_ERR_QID_QID_MASK},
-};
-
-
-static struct regfield_info
-	stat_num_wrb_in_field_info[] = {
-	{"STAT_NUM_WRB_IN_RSVD_1",
-		STAT_NUM_WRB_IN_RSVD_1_MASK},
-	{"STAT_NUM_WRB_IN_WRB_CNT",
-		STAT_NUM_WRB_IN_WRB_CNT_MASK},
-};
-
-
-static struct regfield_info
-	stat_num_wrb_out_field_info[] = {
-	{"STAT_NUM_WRB_OUT_RSVD_1",
-		STAT_NUM_WRB_OUT_RSVD_1_MASK},
-	{"STAT_NUM_WRB_OUT_WRB_CNT",
-		STAT_NUM_WRB_OUT_WRB_CNT_MASK},
-};
-
-
-static struct regfield_info
-	stat_num_wrb_drp_field_info[] = {
-	{"STAT_NUM_WRB_DRP_RSVD_1",
-		STAT_NUM_WRB_DRP_RSVD_1_MASK},
-	{"STAT_NUM_WRB_DRP_WRB_CNT",
-		STAT_NUM_WRB_DRP_WRB_CNT_MASK},
-};
-
-
-static struct regfield_info
-	stat_num_stat_desc_out_field_info[] = {
-	{"STAT_NUM_STAT_DESC_OUT_RSVD_1",
-		STAT_NUM_STAT_DESC_OUT_RSVD_1_MASK},
-	{"STAT_NUM_STAT_DESC_OUT_CNT",
-		STAT_NUM_STAT_DESC_OUT_CNT_MASK},
-};
-
-
-static struct regfield_info
-	stat_num_dsc_crdt_sent_field_info[] = {
-	{"STAT_NUM_DSC_CRDT_SENT_RSVD_1",
-		STAT_NUM_DSC_CRDT_SENT_RSVD_1_MASK},
-	{"STAT_NUM_DSC_CRDT_SENT_CNT",
-		STAT_NUM_DSC_CRDT_SENT_CNT_MASK},
-};
-
-
-static struct regfield_info
-	stat_num_fch_dsc_rcvd_field_info[] = {
-	{"STAT_NUM_FCH_DSC_RCVD_RSVD_1",
-		STAT_NUM_FCH_DSC_RCVD_RSVD_1_MASK},
-	{"STAT_NUM_FCH_DSC_RCVD_DSC_CNT",
-		STAT_NUM_FCH_DSC_RCVD_DSC_CNT_MASK},
-};
-
-
-static struct regfield_info
-	stat_num_byp_dsc_rcvd_field_info[] = {
-	{"STAT_NUM_BYP_DSC_RCVD_RSVD_1",
-		STAT_NUM_BYP_DSC_RCVD_RSVD_1_MASK},
-	{"STAT_NUM_BYP_DSC_RCVD_DSC_CNT",
-		STAT_NUM_BYP_DSC_RCVD_DSC_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_wrb_coal_cfg_field_info[] = {
-	{"C2H_WRB_COAL_CFG_MAX_BUF_SZ",
-		C2H_WRB_COAL_CFG_MAX_BUF_SZ_MASK},
-	{"C2H_WRB_COAL_CFG_TICK_VAL",
-		C2H_WRB_COAL_CFG_TICK_VAL_MASK},
-	{"C2H_WRB_COAL_CFG_TICK_CNT",
-		C2H_WRB_COAL_CFG_TICK_CNT_MASK},
-	{"C2H_WRB_COAL_CFG_SET_GLB_FLUSH",
-		C2H_WRB_COAL_CFG_SET_GLB_FLUSH_MASK},
-	{"C2H_WRB_COAL_CFG_DONE_GLB_FLUSH",
-		C2H_WRB_COAL_CFG_DONE_GLB_FLUSH_MASK},
-};
-
-
-static struct regfield_info
-	c2h_intr_h2c_req_field_info[] = {
-	{"C2H_INTR_H2C_REQ_RSVD_1",
-		C2H_INTR_H2C_REQ_RSVD_1_MASK},
-	{"C2H_INTR_H2C_REQ_CNT",
-		C2H_INTR_H2C_REQ_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_intr_c2h_mm_req_field_info[] = {
-	{"C2H_INTR_C2H_MM_REQ_RSVD_1",
-		C2H_INTR_C2H_MM_REQ_RSVD_1_MASK},
-	{"C2H_INTR_C2H_MM_REQ_CNT",
-		C2H_INTR_C2H_MM_REQ_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_intr_err_int_req_field_info[] = {
-	{"C2H_INTR_ERR_INT_REQ_RSVD_1",
-		C2H_INTR_ERR_INT_REQ_RSVD_1_MASK},
-	{"C2H_INTR_ERR_INT_REQ_CNT",
-		C2H_INTR_ERR_INT_REQ_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_intr_c2h_st_req_field_info[] = {
-	{"C2H_INTR_C2H_ST_REQ_RSVD_1",
-		C2H_INTR_C2H_ST_REQ_RSVD_1_MASK},
-	{"C2H_INTR_C2H_ST_REQ_CNT",
-		C2H_INTR_C2H_ST_REQ_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_intr_h2c_err_c2h_mm_msix_ack_field_info[] = {
-	{"C2H_INTR_H2C_ERR_C2H_MM_MSIX_ACK_RSVD_1",
-		C2H_INTR_H2C_ERR_C2H_MM_MSIX_ACK_RSVD_1_MASK},
-	{"C2H_INTR_H2C_ERR_C2H_MM_MSIX_ACK_CNT",
-		C2H_INTR_H2C_ERR_C2H_MM_MSIX_ACK_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_intr_h2c_err_c2h_mm_msix_fail_field_info[] = {
-	{"C2H_INTR_H2C_ERR_C2H_MM_MSIX_FAIL_RSVD_1",
-		C2H_INTR_H2C_ERR_C2H_MM_MSIX_FAIL_RSVD_1_MASK},
-	{"C2H_INTR_H2C_ERR_C2H_MM_MSIX_FAIL_CNT",
-		C2H_INTR_H2C_ERR_C2H_MM_MSIX_FAIL_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_intr_h2c_err_c2h_mm_msix_no_msix_field_info[] = {
-	{"C2H_INTR_H2C_ERR_C2H_MM_MSIX_NO_MSIX_RSVD_1",
-		C2H_INTR_H2C_ERR_C2H_MM_MSIX_NO_MSIX_RSVD_1_MASK},
-	{"C2H_INTR_H2C_ERR_C2H_MM_MSIX_NO_MSIX_CNT",
-		C2H_INTR_H2C_ERR_C2H_MM_MSIX_NO_MSIX_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_intr_h2c_err_c2h_mm_ctxt_inval_field_info[] = {
-	{"C2H_INTR_H2C_ERR_C2H_MM_CTXT_INVAL_RSVD_1",
-		C2H_INTR_H2C_ERR_C2H_MM_CTXT_INVAL_RSVD_1_MASK},
-	{"C2H_INTR_H2C_ERR_C2H_MM_CTXT_INVAL_CNT",
-		C2H_INTR_H2C_ERR_C2H_MM_CTXT_INVAL_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_intr_c2h_st_msix_ack_field_info[] = {
-	{"C2H_INTR_C2H_ST_MSIX_ACK_RSVD_1",
-		C2H_INTR_C2H_ST_MSIX_ACK_RSVD_1_MASK},
-	{"C2H_INTR_C2H_ST_MSIX_ACK_CNT",
-		C2H_INTR_C2H_ST_MSIX_ACK_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_intr_c2h_st_msix_fail_field_info[] = {
-	{"C2H_INTR_C2H_ST_MSIX_FAIL_RSVD_1",
-		C2H_INTR_C2H_ST_MSIX_FAIL_RSVD_1_MASK},
-	{"C2H_INTR_C2H_ST_MSIX_FAIL_CNT",
-		C2H_INTR_C2H_ST_MSIX_FAIL_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_intr_c2h_st_no_msix_field_info[] = {
-	{"C2H_INTR_C2H_ST_NO_MSIX_RSVD_1",
-		C2H_INTR_C2H_ST_NO_MSIX_RSVD_1_MASK},
-	{"C2H_INTR_C2H_ST_NO_MSIX_CNT",
-		C2H_INTR_C2H_ST_NO_MSIX_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_intr_c2h_st_ctxt_inval_field_info[] = {
-	{"C2H_INTR_C2H_ST_CTXT_INVAL_RSVD_1",
-		C2H_INTR_C2H_ST_CTXT_INVAL_RSVD_1_MASK},
-	{"C2H_INTR_C2H_ST_CTXT_INVAL_CNT",
-		C2H_INTR_C2H_ST_CTXT_INVAL_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_wr_cmp_field_info[] = {
-	{"C2H_STAT_WR_CMP_RSVD_1",
-		C2H_STAT_WR_CMP_RSVD_1_MASK},
-	{"C2H_STAT_WR_CMP_CNT",
-		C2H_STAT_WR_CMP_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_dbg_dma_eng_4_field_info[] = {
-	{"C2H_STAT_DMA_ENG_4_TUSER_FIFO_OUT_VLD",
-		C2H_STAT_DMA_ENG_4_TUSER_FIFO_OUT_VLD_MASK},
-	{"C2H_STAT_DMA_ENG_4_WRB_FIFO_IN_RDY",
-		C2H_STAT_DMA_ENG_4_WRB_FIFO_IN_RDY_MASK},
-	{"C2H_STAT_DMA_ENG_4_TUSER_FIFO_IN_CNT",
-		C2H_STAT_DMA_ENG_4_TUSER_FIFO_IN_CNT_MASK},
-	{"C2H_STAT_DMA_ENG_4_TUSER_FIFO_OUTPUT_CNT",
-		C2H_STAT_DMA_ENG_4_TUSER_FIFO_OUTPUT_CNT_MASK},
-	{"C2H_STAT_DMA_ENG_4_TUSER_FIFO_OUT_CNT",
-		C2H_STAT_DMA_ENG_4_TUSER_FIFO_OUT_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_dbg_dma_eng_5_field_info[] = {
-	{"C2H_STAT_DMA_ENG_5_RSVD_1",
-		C2H_STAT_DMA_ENG_5_RSVD_1_MASK},
-	{"C2H_STAT_DMA_ENG_5_TUSER_COMB_OUT_VLD",
-		C2H_STAT_DMA_ENG_5_TUSER_COMB_OUT_VLD_MASK},
-	{"C2H_STAT_DMA_ENG_5_TUSER_FIFO_IN_RDY",
-		C2H_STAT_DMA_ENG_5_TUSER_FIFO_IN_RDY_MASK},
-	{"C2H_STAT_DMA_ENG_5_TUSER_COMB_IN_CNT",
-		C2H_STAT_DMA_ENG_5_TUSER_COMB_IN_CNT_MASK},
-	{"C2H_STAT_DMA_ENG_5_TUSE_COMB_OUTPUT_CNT",
-		C2H_STAT_DMA_ENG_5_TUSE_COMB_OUTPUT_CNT_MASK},
-	{"C2H_STAT_DMA_ENG_5_TUSER_COMB_CNT",
-		C2H_STAT_DMA_ENG_5_TUSER_COMB_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_dbg_pfch_qid_field_info[] = {
-	{"C2H_PFCH_QID_RSVD_1",
-		C2H_PFCH_QID_RSVD_1_MASK},
-	{"C2H_PFCH_QID_ERR_CTXT",
-		C2H_PFCH_QID_ERR_CTXT_MASK},
-	{"C2H_PFCH_QID_TARGET",
-		C2H_PFCH_QID_TARGET_MASK},
-	{"C2H_PFCH_QID_QID_OR_TAG",
-		C2H_PFCH_QID_QID_OR_TAG_MASK},
-};
-
-
-static struct regfield_info
-	c2h_dbg_pfch_field_info[] = {
-	{"C2H_PFCH_DATA",
-		C2H_PFCH_DATA_MASK},
-};
-
-
-static struct regfield_info
-	c2h_int_dbg_field_info[] = {
-	{"C2H_INT_RSVD_1",
-		C2H_INT_RSVD_1_MASK},
-	{"C2H_INT_INT_COAL_SM",
-		C2H_INT_INT_COAL_SM_MASK},
-	{"C2H_INT_INT_SM",
-		C2H_INT_INT_SM_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_imm_accepted_field_info[] = {
-	{"C2H_STAT_IMM_ACCEPTED_RSVD_1",
-		C2H_STAT_IMM_ACCEPTED_RSVD_1_MASK},
-	{"C2H_STAT_IMM_ACCEPTED_CNT",
-		C2H_STAT_IMM_ACCEPTED_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_marker_accepted_field_info[] = {
-	{"C2H_STAT_MARKER_ACCEPTED_RSVD_1",
-		C2H_STAT_MARKER_ACCEPTED_RSVD_1_MASK},
-	{"C2H_STAT_MARKER_ACCEPTED_CNT",
-		C2H_STAT_MARKER_ACCEPTED_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_stat_disable_cmp_accepted_field_info[] = {
-	{"C2H_STAT_DISABLE_CMP_ACCEPTED_RSVD_1",
-		C2H_STAT_DISABLE_CMP_ACCEPTED_RSVD_1_MASK},
-	{"C2H_STAT_DISABLE_CMP_ACCEPTED_CNT",
-		C2H_STAT_DISABLE_CMP_ACCEPTED_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_pld_fifo_crdt_cnt_field_info[] = {
-	{"C2H_PLD_FIFO_CRDT_CNT_RSVD_1",
-		C2H_PLD_FIFO_CRDT_CNT_RSVD_1_MASK},
-	{"C2H_PLD_FIFO_CRDT_CNT_CNT",
-		C2H_PLD_FIFO_CRDT_CNT_CNT_MASK},
-};
-
-
-static struct regfield_info
-	h2c_err_stat_field_info[] = {
-	{"H2C_ERR_STAT_RSVD_1",
-		H2C_ERR_STAT_RSVD_1_MASK},
-	{"H2C_ERR_STAT_SBE",
-		H2C_ERR_STAT_SBE_MASK},
-	{"H2C_ERR_STAT_DBE",
-		H2C_ERR_STAT_DBE_MASK},
-	{"H2C_ERR_STAT_NO_DMA_DS",
-		H2C_ERR_STAT_NO_DMA_DS_MASK},
-	{"H2C_ERR_STAT_SDI_MRKR_REQ_MOP_ERR",
-		H2C_ERR_STAT_SDI_MRKR_REQ_MOP_ERR_MASK},
-	{"H2C_ERR_STAT_ZERO_LEN_DS",
-		H2C_ERR_STAT_ZERO_LEN_DS_MASK},
-};
-
-
-static struct regfield_info
-	h2c_err_mask_field_info[] = {
-	{"H2C_ERR_EN",
-		H2C_ERR_EN_MASK},
-};
-
-
-static struct regfield_info
-	h2c_first_err_qid_field_info[] = {
-	{"H2C_FIRST_ERR_QID_RSVD_1",
-		H2C_FIRST_ERR_QID_RSVD_1_MASK},
-	{"H2C_FIRST_ERR_QID_ERR_TYPE",
-		H2C_FIRST_ERR_QID_ERR_TYPE_MASK},
-	{"H2C_FIRST_ERR_QID_RSVD_2",
-		H2C_FIRST_ERR_QID_RSVD_2_MASK},
-	{"H2C_FIRST_ERR_QID_QID",
-		H2C_FIRST_ERR_QID_QID_MASK},
-};
-
-
-static struct regfield_info
-	h2c_dbg_reg0_field_info[] = {
-	{"H2C_REG0_NUM_DSC_RCVD",
-		H2C_REG0_NUM_DSC_RCVD_MASK},
-	{"H2C_REG0_NUM_WRB_SENT",
-		H2C_REG0_NUM_WRB_SENT_MASK},
-};
-
-
-static struct regfield_info
-	h2c_dbg_reg1_field_info[] = {
-	{"H2C_REG1_NUM_REQ_SENT",
-		H2C_REG1_NUM_REQ_SENT_MASK},
-	{"H2C_REG1_NUM_CMP_SENT",
-		H2C_REG1_NUM_CMP_SENT_MASK},
-};
-
-
-static struct regfield_info
-	h2c_dbg_reg2_field_info[] = {
-	{"H2C_REG2_RSVD_1",
-		H2C_REG2_RSVD_1_MASK},
-	{"H2C_REG2_NUM_ERR_DSC_RCVD",
-		H2C_REG2_NUM_ERR_DSC_RCVD_MASK},
-};
-
-
-static struct regfield_info
-	h2c_dbg_reg3_field_info[] = {
-	{"H2C_REG3",
-		H2C_REG3_MASK},
-	{"H2C_REG3_DSCO_FIFO_EMPTY",
-		H2C_REG3_DSCO_FIFO_EMPTY_MASK},
-	{"H2C_REG3_DSCO_FIFO_FULL",
-		H2C_REG3_DSCO_FIFO_FULL_MASK},
-	{"H2C_REG3_CUR_RC_STATE",
-		H2C_REG3_CUR_RC_STATE_MASK},
-	{"H2C_REG3_RDREQ_LINES",
-		H2C_REG3_RDREQ_LINES_MASK},
-	{"H2C_REG3_RDATA_LINES_AVAIL",
-		H2C_REG3_RDATA_LINES_AVAIL_MASK},
-	{"H2C_REG3_PEND_FIFO_EMPTY",
-		H2C_REG3_PEND_FIFO_EMPTY_MASK},
-	{"H2C_REG3_PEND_FIFO_FULL",
-		H2C_REG3_PEND_FIFO_FULL_MASK},
-	{"H2C_REG3_CUR_RQ_STATE",
-		H2C_REG3_CUR_RQ_STATE_MASK},
-	{"H2C_REG3_DSCI_FIFO_FULL",
-		H2C_REG3_DSCI_FIFO_FULL_MASK},
-	{"H2C_REG3_DSCI_FIFO_EMPTY",
-		H2C_REG3_DSCI_FIFO_EMPTY_MASK},
-};
-
-
-static struct regfield_info
-	h2c_dbg_reg4_field_info[] = {
-	{"H2C_REG4_RDREQ_ADDR",
-		H2C_REG4_RDREQ_ADDR_MASK},
-};
-
-
-static struct regfield_info
-	h2c_fatal_err_en_field_info[] = {
-	{"H2C_FATAL_ERR_EN_RSVD_1",
-		H2C_FATAL_ERR_EN_RSVD_1_MASK},
-	{"H2C_FATAL_ERR_EN_H2C",
-		H2C_FATAL_ERR_EN_H2C_MASK},
-};
-
-
-static struct regfield_info
-	c2h_channel_ctl_field_info[] = {
-	{"C2H_CHANNEL_CTL_RSVD_1",
-		C2H_CHANNEL_CTL_RSVD_1_MASK},
-	{"C2H_CHANNEL_CTL_RUN",
-		C2H_CHANNEL_CTL_RUN_MASK},
-};
-
-
-static struct regfield_info
-	c2h_channel_ctl_1_field_info[] = {
-	{"C2H_CHANNEL_CTL_1_RUN",
-		C2H_CHANNEL_CTL_1_RUN_MASK},
-	{"C2H_CHANNEL_CTL_1_RUN_1",
-		C2H_CHANNEL_CTL_1_RUN_1_MASK},
-};
-
-
-static struct regfield_info
-	c2h_mm_status_field_info[] = {
-	{"C2H_MM_STATUS_RSVD_1",
-		C2H_MM_STATUS_RSVD_1_MASK},
-	{"C2H_MM_STATUS_RUN",
-		C2H_MM_STATUS_RUN_MASK},
-};
-
-
-static struct regfield_info
-	c2h_channel_cmpl_desc_cnt_field_info[] = {
-	{"C2H_CHANNEL_CMPL_DESC_CNT_C2H_CO",
-		C2H_CHANNEL_CMPL_DESC_CNT_C2H_CO_MASK},
-};
-
-
-static struct regfield_info
-	c2h_mm_err_code_enable_mask_field_info[] = {
-	{"C2H_MM_ERR_CODE_ENABLE_RSVD_1",
-		C2H_MM_ERR_CODE_ENABLE_RSVD_1_MASK},
-	{"C2H_MM_ERR_CODE_ENABLE_WR_UC_RAM",
-		C2H_MM_ERR_CODE_ENABLE_WR_UC_RAM_MASK},
-	{"C2H_MM_ERR_CODE_ENABLE_WR_UR",
-		C2H_MM_ERR_CODE_ENABLE_WR_UR_MASK},
-	{"C2H_MM_ERR_CODE_ENABLE_WR_FLR",
-		C2H_MM_ERR_CODE_ENABLE_WR_FLR_MASK},
-	{"C2H_MM_ERR_CODE_ENABLE_RSVD_2",
-		C2H_MM_ERR_CODE_ENABLE_RSVD_2_MASK},
-	{"C2H_MM_ERR_CODE_ENABLE_RD_SLV_ERR",
-		C2H_MM_ERR_CODE_ENABLE_RD_SLV_ERR_MASK},
-	{"C2H_MM_ERR_CODE_ENABLE_WR_SLV_ERR",
-		C2H_MM_ERR_CODE_ENABLE_WR_SLV_ERR_MASK},
-};
-
-
-static struct regfield_info
-	c2h_mm_err_code_field_info[] = {
-	{"C2H_MM_ERR_CODE_RSVD_1",
-		C2H_MM_ERR_CODE_RSVD_1_MASK},
-	{"C2H_MM_ERR_CODE_VALID",
-		C2H_MM_ERR_CODE_VALID_MASK},
-	{"C2H_MM_ERR_CODE_RDWR",
-		C2H_MM_ERR_CODE_RDWR_MASK},
-	{"C2H_MM_ERR_CODE",
-		C2H_MM_ERR_CODE_MASK},
-};
-
-
-static struct regfield_info
-	c2h_mm_err_info_field_info[] = {
-	{"C2H_MM_ERR_INFO_RSVD_1",
-		C2H_MM_ERR_INFO_RSVD_1_MASK},
-	{"C2H_MM_ERR_INFO_QID",
-		C2H_MM_ERR_INFO_QID_MASK},
-	{"C2H_MM_ERR_INFO_DIR",
-		C2H_MM_ERR_INFO_DIR_MASK},
-	{"C2H_MM_ERR_INFO_CIDX",
-		C2H_MM_ERR_INFO_CIDX_MASK},
-};
-
-
-static struct regfield_info
-	c2h_mm_perf_mon_ctl_field_info[] = {
-	{"C2H_MM_PERF_MON_CTL_RSVD_1",
-		C2H_MM_PERF_MON_CTL_RSVD_1_MASK},
-	{"C2H_MM_PERF_MON_CTL_IMM_START",
-		C2H_MM_PERF_MON_CTL_IMM_START_MASK},
-	{"C2H_MM_PERF_MON_CTL_RUN_START",
-		C2H_MM_PERF_MON_CTL_RUN_START_MASK},
-	{"C2H_MM_PERF_MON_CTL_IMM_CLEAR",
-		C2H_MM_PERF_MON_CTL_IMM_CLEAR_MASK},
-	{"C2H_MM_PERF_MON_CTL_RUN_CLEAR",
-		C2H_MM_PERF_MON_CTL_RUN_CLEAR_MASK},
-};
-
-
-static struct regfield_info
-	c2h_mm_perf_mon_cycle_cnt0_field_info[] = {
-	{"C2H_MM_PERF_MON_CYCLE_CNT0_CYC_CNT",
-		C2H_MM_PERF_MON_CYCLE_CNT0_CYC_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_mm_perf_mon_cycle_cnt1_field_info[] = {
-	{"C2H_MM_PERF_MON_CYCLE_CNT1_RSVD_1",
-		C2H_MM_PERF_MON_CYCLE_CNT1_RSVD_1_MASK},
-	{"C2H_MM_PERF_MON_CYCLE_CNT1_CYC_CNT",
-		C2H_MM_PERF_MON_CYCLE_CNT1_CYC_CNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_mm_perf_mon_data_cnt0_field_info[] = {
-	{"C2H_MM_PERF_MON_DATA_CNT0_DCNT",
-		C2H_MM_PERF_MON_DATA_CNT0_DCNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_mm_perf_mon_data_cnt1_field_info[] = {
-	{"C2H_MM_PERF_MON_DATA_CNT1_RSVD_1",
-		C2H_MM_PERF_MON_DATA_CNT1_RSVD_1_MASK},
-	{"C2H_MM_PERF_MON_DATA_CNT1_DCNT",
-		C2H_MM_PERF_MON_DATA_CNT1_DCNT_MASK},
-};
-
-
-static struct regfield_info
-	c2h_mm_dbg_field_info[] = {
-	{"C2H_MM_RSVD_1",
-		C2H_MM_RSVD_1_MASK},
-	{"C2H_MM_RRQ_ENTRIES",
-		C2H_MM_RRQ_ENTRIES_MASK},
-	{"C2H_MM_DAT_FIFO_SPC",
-		C2H_MM_DAT_FIFO_SPC_MASK},
-	{"C2H_MM_RD_STALL",
-		C2H_MM_RD_STALL_MASK},
-	{"C2H_MM_RRQ_FIFO_FI",
-		C2H_MM_RRQ_FIFO_FI_MASK},
-	{"C2H_MM_WR_STALL",
-		C2H_MM_WR_STALL_MASK},
-	{"C2H_MM_WRQ_FIFO_FI",
-		C2H_MM_WRQ_FIFO_FI_MASK},
-	{"C2H_MM_WBK_STALL",
-		C2H_MM_WBK_STALL_MASK},
-	{"C2H_MM_DSC_FIFO_EP",
-		C2H_MM_DSC_FIFO_EP_MASK},
-	{"C2H_MM_DSC_FIFO_FL",
-		C2H_MM_DSC_FIFO_FL_MASK},
-};
-
-
-static struct regfield_info
-	h2c_channel_ctl_field_info[] = {
-	{"H2C_CHANNEL_CTL_RSVD_1",
-		H2C_CHANNEL_CTL_RSVD_1_MASK},
-	{"H2C_CHANNEL_CTL_RUN",
-		H2C_CHANNEL_CTL_RUN_MASK},
-};
-
-
-static struct regfield_info
-	h2c_channel_ctl_1_field_info[] = {
-	{"H2C_CHANNEL_CTL_1_RUN",
-		H2C_CHANNEL_CTL_1_RUN_MASK},
-};
-
-
-static struct regfield_info
-	h2c_channel_ctl_2_field_info[] = {
-	{"H2C_CHANNEL_CTL_2_RUN",
-		H2C_CHANNEL_CTL_2_RUN_MASK},
-};
-
-
-static struct regfield_info
-	h2c_mm_status_field_info[] = {
-	{"H2C_MM_STATUS_RSVD_1",
-		H2C_MM_STATUS_RSVD_1_MASK},
-	{"H2C_MM_STATUS_RUN",
-		H2C_MM_STATUS_RUN_MASK},
-};
-
-
-static struct regfield_info
-	h2c_channel_cmpl_desc_cnt_field_info[] = {
-	{"H2C_CHANNEL_CMPL_DESC_CNT_H2C_CO",
-		H2C_CHANNEL_CMPL_DESC_CNT_H2C_CO_MASK},
-};
-
-
-static struct regfield_info
-	h2c_mm_err_code_enable_mask_field_info[] = {
-	{"H2C_MM_ERR_CODE_ENABLE_RSVD_1",
-		H2C_MM_ERR_CODE_ENABLE_RSVD_1_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_WR_SLV_ERR",
-		H2C_MM_ERR_CODE_ENABLE_WR_SLV_ERR_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_WR_DEC_ERR",
-		H2C_MM_ERR_CODE_ENABLE_WR_DEC_ERR_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RSVD_2",
-		H2C_MM_ERR_CODE_ENABLE_RSVD_2_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RD_RQ_DIS_ERR",
-		H2C_MM_ERR_CODE_ENABLE_RD_RQ_DIS_ERR_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RSVD_3",
-		H2C_MM_ERR_CODE_ENABLE_RSVD_3_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RD_DAT_POISON_ERR",
-		H2C_MM_ERR_CODE_ENABLE_RD_DAT_POISON_ERR_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RSVD_4",
-		H2C_MM_ERR_CODE_ENABLE_RSVD_4_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RD_FLR_ERR",
-		H2C_MM_ERR_CODE_ENABLE_RD_FLR_ERR_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RSVD_5",
-		H2C_MM_ERR_CODE_ENABLE_RSVD_5_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RD_HDR_ADR_ERR",
-		H2C_MM_ERR_CODE_ENABLE_RD_HDR_ADR_ERR_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RD_HDR_PARA",
-		H2C_MM_ERR_CODE_ENABLE_RD_HDR_PARA_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RD_HDR_BYTE_ERR",
-		H2C_MM_ERR_CODE_ENABLE_RD_HDR_BYTE_ERR_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RD_UR_CA",
-		H2C_MM_ERR_CODE_ENABLE_RD_UR_CA_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RD_HRD_POISON_ERR",
-		H2C_MM_ERR_CODE_ENABLE_RD_HRD_POISON_ERR_MASK},
-	{"H2C_MM_ERR_CODE_ENABLE_RSVD_6",
-		H2C_MM_ERR_CODE_ENABLE_RSVD_6_MASK},
-};
-
-
-static struct regfield_info
-	h2c_mm_err_code_field_info[] = {
-	{"H2C_MM_ERR_CODE_RSVD_1",
-		H2C_MM_ERR_CODE_RSVD_1_MASK},
-	{"H2C_MM_ERR_CODE_VALID",
-		H2C_MM_ERR_CODE_VALID_MASK},
-	{"H2C_MM_ERR_CODE_RDWR",
-		H2C_MM_ERR_CODE_RDWR_MASK},
-	{"H2C_MM_ERR_CODE",
-		H2C_MM_ERR_CODE_MASK},
-};
-
-
-static struct regfield_info
-	h2c_mm_err_info_field_info[] = {
-	{"H2C_MM_ERR_INFO_RSVD_1",
-		H2C_MM_ERR_INFO_RSVD_1_MASK},
-	{"H2C_MM_ERR_INFO_QID",
-		H2C_MM_ERR_INFO_QID_MASK},
-	{"H2C_MM_ERR_INFO_DIR",
-		H2C_MM_ERR_INFO_DIR_MASK},
-	{"H2C_MM_ERR_INFO_CIDX",
-		H2C_MM_ERR_INFO_CIDX_MASK},
-};
-
-
-static struct regfield_info
-	h2c_mm_perf_mon_ctl_field_info[] = {
-	{"H2C_MM_PERF_MON_CTL_RSVD_1",
-		H2C_MM_PERF_MON_CTL_RSVD_1_MASK},
-	{"H2C_MM_PERF_MON_CTL_IMM_START",
-		H2C_MM_PERF_MON_CTL_IMM_START_MASK},
-	{"H2C_MM_PERF_MON_CTL_RUN_START",
-		H2C_MM_PERF_MON_CTL_RUN_START_MASK},
-	{"H2C_MM_PERF_MON_CTL_IMM_CLEAR",
-		H2C_MM_PERF_MON_CTL_IMM_CLEAR_MASK},
-	{"H2C_MM_PERF_MON_CTL_RUN_CLEAR",
-		H2C_MM_PERF_MON_CTL_RUN_CLEAR_MASK},
-};
-
-
-static struct regfield_info
-	h2c_mm_perf_mon_cycle_cnt0_field_info[] = {
-	{"H2C_MM_PERF_MON_CYCLE_CNT0_CYC_CNT",
-		H2C_MM_PERF_MON_CYCLE_CNT0_CYC_CNT_MASK},
-};
-
-
-static struct regfield_info
-	h2c_mm_perf_mon_cycle_cnt1_field_info[] = {
-	{"H2C_MM_PERF_MON_CYCLE_CNT1_RSVD_1",
-		H2C_MM_PERF_MON_CYCLE_CNT1_RSVD_1_MASK},
-	{"H2C_MM_PERF_MON_CYCLE_CNT1_CYC_CNT",
-		H2C_MM_PERF_MON_CYCLE_CNT1_CYC_CNT_MASK},
-};
-
-
-static struct regfield_info
-	h2c_mm_perf_mon_data_cnt0_field_info[] = {
-	{"H2C_MM_PERF_MON_DATA_CNT0_DCNT",
-		H2C_MM_PERF_MON_DATA_CNT0_DCNT_MASK},
-};
-
-
-static struct regfield_info
-	h2c_mm_perf_mon_data_cnt1_field_info[] = {
-	{"H2C_MM_PERF_MON_DATA_CNT1_RSVD_1",
-		H2C_MM_PERF_MON_DATA_CNT1_RSVD_1_MASK},
-	{"H2C_MM_PERF_MON_DATA_CNT1_DCNT",
-		H2C_MM_PERF_MON_DATA_CNT1_DCNT_MASK},
-};
-
-
-static struct regfield_info
-	h2c_mm_dbg_field_info[] = {
-	{"H2C_MM_RSVD_1",
-		H2C_MM_RSVD_1_MASK},
-	{"H2C_MM_RRQ_ENTRIES",
-		H2C_MM_RRQ_ENTRIES_MASK},
-	{"H2C_MM_DAT_FIFO_SPC",
-		H2C_MM_DAT_FIFO_SPC_MASK},
-	{"H2C_MM_RD_STALL",
-		H2C_MM_RD_STALL_MASK},
-	{"H2C_MM_RRQ_FIFO_FI",
-		H2C_MM_RRQ_FIFO_FI_MASK},
-	{"H2C_MM_WR_STALL",
-		H2C_MM_WR_STALL_MASK},
-	{"H2C_MM_WRQ_FIFO_FI",
-		H2C_MM_WRQ_FIFO_FI_MASK},
-	{"H2C_MM_WBK_STALL",
-		H2C_MM_WBK_STALL_MASK},
-	{"H2C_MM_DSC_FIFO_EP",
-		H2C_MM_DSC_FIFO_EP_MASK},
-	{"H2C_MM_DSC_FIFO_FL",
-		H2C_MM_DSC_FIFO_FL_MASK},
-};
-
-
-static struct regfield_info
-	func_status_reg_field_info[] = {
-	{"FUNC_STATUS_REG_RSVD_1",
-		FUNC_STATUS_REG_RSVD_1_MASK},
-	{"FUNC_STATUS_REG_CUR_SRC_FN",
-		FUNC_STATUS_REG_CUR_SRC_FN_MASK},
-	{"FUNC_STATUS_REG_ACK",
-		FUNC_STATUS_REG_ACK_MASK},
-	{"FUNC_STATUS_REG_O_MSG",
-		FUNC_STATUS_REG_O_MSG_MASK},
-	{"FUNC_STATUS_REG_I_MSG",
-		FUNC_STATUS_REG_I_MSG_MASK},
-};
-
-
-static struct regfield_info
-	func_cmd_reg_field_info[] = {
-	{"FUNC_CMD_REG_RSVD_1",
-		FUNC_CMD_REG_RSVD_1_MASK},
-	{"FUNC_CMD_REG_RSVD_2",
-		FUNC_CMD_REG_RSVD_2_MASK},
-	{"FUNC_CMD_REG_MSG_RCV",
-		FUNC_CMD_REG_MSG_RCV_MASK},
-	{"FUNC_CMD_REG_MSG_SENT",
-		FUNC_CMD_REG_MSG_SENT_MASK},
-};
-
-
-static struct regfield_info
-	func_interrupt_vector_reg_field_info[] = {
-	{"FUNC_INTERRUPT_VECTOR_REG_RSVD_1",
-		FUNC_INTERRUPT_VECTOR_REG_RSVD_1_MASK},
-	{"FUNC_INTERRUPT_VECTOR_REG_IN",
-		FUNC_INTERRUPT_VECTOR_REG_IN_MASK},
-};
-
-
-static struct regfield_info
-	target_func_reg_field_info[] = {
-	{"TARGET_FUNC_REG_RSVD_1",
-		TARGET_FUNC_REG_RSVD_1_MASK},
-	{"TARGET_FUNC_REG_N_ID",
-		TARGET_FUNC_REG_N_ID_MASK},
-};
-
-
-static struct regfield_info
-	func_interrupt_ctl_reg_field_info[] = {
-	{"FUNC_INTERRUPT_CTL_REG_RSVD_1",
-		FUNC_INTERRUPT_CTL_REG_RSVD_1_MASK},
-	{"FUNC_INTERRUPT_CTL_REG_INT_EN",
-		FUNC_INTERRUPT_CTL_REG_INT_EN_MASK},
-};
-
-static struct xreg_info qdma_s80_hard_config_regs[] = {
-{"CFG_BLK_IDENTIFIER", 0x00,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_identifier_field_info),
-	cfg_blk_identifier_field_info
-},
-{"CFG_BLK_BUSDEV", 0x04,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_busdev_field_info),
-	cfg_blk_busdev_field_info
-},
-{"CFG_BLK_PCIE_MAX_PLD_SIZE", 0x08,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_pcie_max_pld_size_field_info),
-	cfg_blk_pcie_max_pld_size_field_info
-},
-{"CFG_BLK_PCIE_MAX_READ_REQ_SIZE", 0x0c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_pcie_max_read_req_size_field_info),
-	cfg_blk_pcie_max_read_req_size_field_info
-},
-{"CFG_BLK_SYSTEM_ID", 0x10,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_system_id_field_info),
-	cfg_blk_system_id_field_info
-},
-{"CFG_BLK_MSI_ENABLE", 0x014,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_msi_enable_field_info),
-	cfg_blk_msi_enable_field_info
-},
-{"CFG_PCIE_DATA_WIDTH", 0x18,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_pcie_data_width_field_info),
-	cfg_pcie_data_width_field_info
-},
-{"CFG_PCIE_CTL", 0x1c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_pcie_ctl_field_info),
-	cfg_pcie_ctl_field_info
-},
-{"CFG_AXI_USER_MAX_PLD_SIZE", 0x40,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_axi_user_max_pld_size_field_info),
-	cfg_axi_user_max_pld_size_field_info
-},
-{"CFG_AXI_USER_MAX_READ_REQ_SIZE", 0x44,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_axi_user_max_read_req_size_field_info),
-	cfg_axi_user_max_read_req_size_field_info
-},
-{"CFG_BLK_MISC_CTL", 0x4c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_misc_ctl_field_info),
-	cfg_blk_misc_ctl_field_info
-},
-{"CFG_BLK_SCRATCH_0", 0x80,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_scratch_0_field_info),
-	cfg_blk_scratch_0_field_info
-},
-{"CFG_BLK_SCRATCH_1", 0x84,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_scratch_1_field_info),
-	cfg_blk_scratch_1_field_info
-},
-{"CFG_BLK_SCRATCH_2", 0x88,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_scratch_2_field_info),
-	cfg_blk_scratch_2_field_info
-},
-{"CFG_BLK_SCRATCH_3", 0x8c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_scratch_3_field_info),
-	cfg_blk_scratch_3_field_info
-},
-{"CFG_BLK_SCRATCH_4", 0x90,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_scratch_4_field_info),
-	cfg_blk_scratch_4_field_info
-},
-{"CFG_BLK_SCRATCH_5", 0x94,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_scratch_5_field_info),
-	cfg_blk_scratch_5_field_info
-},
-{"CFG_BLK_SCRATCH_6", 0x98,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_scratch_6_field_info),
-	cfg_blk_scratch_6_field_info
-},
-{"CFG_BLK_SCRATCH_7", 0x9c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(cfg_blk_scratch_7_field_info),
-	cfg_blk_scratch_7_field_info
-},
-{"RAM_SBE_MSK_A", 0xf0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(ram_sbe_msk_a_field_info),
-	ram_sbe_msk_a_field_info
-},
-{"RAM_SBE_STS_A", 0xf4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(ram_sbe_sts_a_field_info),
-	ram_sbe_sts_a_field_info
-},
-{"RAM_DBE_MSK_A", 0xf8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(ram_dbe_msk_a_field_info),
-	ram_dbe_msk_a_field_info
-},
-{"RAM_DBE_STS_A", 0xfc,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(ram_dbe_sts_a_field_info),
-	ram_dbe_sts_a_field_info
-},
-{"GLBL2_IDENTIFIER", 0x100,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_identifier_field_info),
-	glbl2_identifier_field_info
-},
-{"GLBL2_PF_BARLITE_INT", 0x104,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_pf_barlite_int_field_info),
-	glbl2_pf_barlite_int_field_info
-},
-{"GLBL2_PF_VF_BARLITE_INT", 0x108,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_pf_vf_barlite_int_field_info),
-	glbl2_pf_vf_barlite_int_field_info
-},
-{"GLBL2_PF_BARLITE_EXT", 0x10c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_pf_barlite_ext_field_info),
-	glbl2_pf_barlite_ext_field_info
-},
-{"GLBL2_PF_VF_BARLITE_EXT", 0x110,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_pf_vf_barlite_ext_field_info),
-	glbl2_pf_vf_barlite_ext_field_info
-},
-{"GLBL2_CHANNEL_INST", 0x114,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_channel_inst_field_info),
-	glbl2_channel_inst_field_info
-},
-{"GLBL2_CHANNEL_MDMA", 0x118,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_channel_mdma_field_info),
-	glbl2_channel_mdma_field_info
-},
-{"GLBL2_CHANNEL_STRM", 0x11c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_channel_strm_field_info),
-	glbl2_channel_strm_field_info
-},
-{"GLBL2_CHANNEL_CAP", 0x120,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_channel_cap_field_info),
-	glbl2_channel_cap_field_info
-},
-{"GLBL2_CHANNEL_PASID_CAP", 0x128,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_channel_pasid_cap_field_info),
-	glbl2_channel_pasid_cap_field_info
-},
-{"GLBL2_CHANNEL_FUNC_RET", 0x12c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_channel_func_ret_field_info),
-	glbl2_channel_func_ret_field_info
-},
-{"GLBL2_SYSTEM_ID", 0x130,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_system_id_field_info),
-	glbl2_system_id_field_info
-},
-{"GLBL2_MISC_CAP", 0x134,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_misc_cap_field_info),
-	glbl2_misc_cap_field_info
-},
-{"GLBL2_DBG_PCIE_RQ0", 0x1b8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_dbg_pcie_rq0_field_info),
-	glbl2_dbg_pcie_rq0_field_info
-},
-{"GLBL2_DBG_PCIE_RQ1", 0x1bc,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_dbg_pcie_rq1_field_info),
-	glbl2_dbg_pcie_rq1_field_info
-},
-{"GLBL2_DBG_AXIMM_WR0", 0x1c0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_dbg_aximm_wr0_field_info),
-	glbl2_dbg_aximm_wr0_field_info
-},
-{"GLBL2_DBG_AXIMM_WR1", 0x1c4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_dbg_aximm_wr1_field_info),
-	glbl2_dbg_aximm_wr1_field_info
-},
-{"GLBL2_DBG_AXIMM_RD0", 0x1c8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_dbg_aximm_rd0_field_info),
-	glbl2_dbg_aximm_rd0_field_info
-},
-{"GLBL2_DBG_AXIMM_RD1", 0x1cc,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(glbl2_dbg_aximm_rd1_field_info),
-	glbl2_dbg_aximm_rd1_field_info
-},
-{"GLBL_RNG_SZ_1", 0x204,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_1_field_info),
-	glbl_rng_sz_1_field_info
-},
-{"GLBL_RNG_SZ_2", 0x208,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_2_field_info),
-	glbl_rng_sz_2_field_info
-},
-{"GLBL_RNG_SZ_3", 0x20c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_3_field_info),
-	glbl_rng_sz_3_field_info
-},
-{"GLBL_RNG_SZ_4", 0x210,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_4_field_info),
-	glbl_rng_sz_4_field_info
-},
-{"GLBL_RNG_SZ_5", 0x214,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_5_field_info),
-	glbl_rng_sz_5_field_info
-},
-{"GLBL_RNG_SZ_6", 0x218,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_6_field_info),
-	glbl_rng_sz_6_field_info
-},
-{"GLBL_RNG_SZ_7", 0x21c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_7_field_info),
-	glbl_rng_sz_7_field_info
-},
-{"GLBL_RNG_SZ_8", 0x220,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_8_field_info),
-	glbl_rng_sz_8_field_info
-},
-{"GLBL_RNG_SZ_9", 0x224,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_9_field_info),
-	glbl_rng_sz_9_field_info
-},
-{"GLBL_RNG_SZ_A", 0x228,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_a_field_info),
-	glbl_rng_sz_a_field_info
-},
-{"GLBL_RNG_SZ_B", 0x22c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_b_field_info),
-	glbl_rng_sz_b_field_info
-},
-{"GLBL_RNG_SZ_C", 0x230,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_c_field_info),
-	glbl_rng_sz_c_field_info
-},
-{"GLBL_RNG_SZ_D", 0x234,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_d_field_info),
-	glbl_rng_sz_d_field_info
-},
-{"GLBL_RNG_SZ_E", 0x238,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_e_field_info),
-	glbl_rng_sz_e_field_info
-},
-{"GLBL_RNG_SZ_F", 0x23c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_f_field_info),
-	glbl_rng_sz_f_field_info
-},
-{"GLBL_RNG_SZ_10", 0x240,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_rng_sz_10_field_info),
-	glbl_rng_sz_10_field_info
-},
-{"GLBL_ERR_STAT", 0x248,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_err_stat_field_info),
-	glbl_err_stat_field_info
-},
-{"GLBL_ERR_MASK", 0x24c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_err_mask_field_info),
-	glbl_err_mask_field_info
-},
-{"GLBL_DSC_CFG", 0x250,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_dsc_cfg_field_info),
-	glbl_dsc_cfg_field_info
-},
-{"GLBL_DSC_ERR_STS", 0x254,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_dsc_err_sts_field_info),
-	glbl_dsc_err_sts_field_info
-},
-{"GLBL_DSC_ERR_MSK", 0x258,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_dsc_err_msk_field_info),
-	glbl_dsc_err_msk_field_info
-},
-{"GLBL_DSC_ERR_LOG0", 0x25c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_dsc_err_log0_field_info),
-	glbl_dsc_err_log0_field_info
-},
-{"GLBL_DSC_ERR_LOG1", 0x260,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_dsc_err_log1_field_info),
-	glbl_dsc_err_log1_field_info
-},
-{"GLBL_TRQ_ERR_STS", 0x264,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_trq_err_sts_field_info),
-	glbl_trq_err_sts_field_info
-},
-{"GLBL_TRQ_ERR_MSK", 0x268,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_trq_err_msk_field_info),
-	glbl_trq_err_msk_field_info
-},
-{"GLBL_TRQ_ERR_LOG", 0x26c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_trq_err_log_field_info),
-	glbl_trq_err_log_field_info
-},
-{"GLBL_DSC_DBG_DAT0", 0x270,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_dsc_dbg_dat0_field_info),
-	glbl_dsc_dbg_dat0_field_info
-},
-{"GLBL_DSC_DBG_DAT1", 0x274,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_dsc_dbg_dat1_field_info),
-	glbl_dsc_dbg_dat1_field_info
-},
-{"TRQ_SEL_FMAP_0", 0x400,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_0_field_info),
-	trq_sel_fmap_0_field_info
-},
-{"TRQ_SEL_FMAP_1", 0x404,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_1_field_info),
-	trq_sel_fmap_1_field_info
-},
-{"TRQ_SEL_FMAP_2", 0x408,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_2_field_info),
-	trq_sel_fmap_2_field_info
-},
-{"TRQ_SEL_FMAP_3", 0x40c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_3_field_info),
-	trq_sel_fmap_3_field_info
-},
-{"TRQ_SEL_FMAP_4", 0x410,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_4_field_info),
-	trq_sel_fmap_4_field_info
-},
-{"TRQ_SEL_FMAP_5", 0x414,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_5_field_info),
-	trq_sel_fmap_5_field_info
-},
-{"TRQ_SEL_FMAP_6", 0x418,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_6_field_info),
-	trq_sel_fmap_6_field_info
-},
-{"TRQ_SEL_FMAP_7", 0x41c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_7_field_info),
-	trq_sel_fmap_7_field_info
-},
-{"TRQ_SEL_FMAP_8", 0x420,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_8_field_info),
-	trq_sel_fmap_8_field_info
-},
-{"TRQ_SEL_FMAP_9", 0x424,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_9_field_info),
-	trq_sel_fmap_9_field_info
-},
-{"TRQ_SEL_FMAP_A", 0x428,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_a_field_info),
-	trq_sel_fmap_a_field_info
-},
-{"TRQ_SEL_FMAP_B", 0x42c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_b_field_info),
-	trq_sel_fmap_b_field_info
-},
-{"TRQ_SEL_FMAP_D", 0x430,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_d_field_info),
-	trq_sel_fmap_d_field_info
-},
-{"TRQ_SEL_FMAP_E", 0x434,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_e_field_info),
-	trq_sel_fmap_e_field_info
-},
-{"TRQ_SEL_FMAP_F", 0x438,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_f_field_info),
-	trq_sel_fmap_f_field_info
-},
-{"TRQ_SEL_FMAP_10", 0x43c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_10_field_info),
-	trq_sel_fmap_10_field_info
-},
-{"TRQ_SEL_FMAP_11", 0x440,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_11_field_info),
-	trq_sel_fmap_11_field_info
-},
-{"TRQ_SEL_FMAP_12", 0x444,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_12_field_info),
-	trq_sel_fmap_12_field_info
-},
-{"TRQ_SEL_FMAP_13", 0x448,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_13_field_info),
-	trq_sel_fmap_13_field_info
-},
-{"TRQ_SEL_FMAP_14", 0x44c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_14_field_info),
-	trq_sel_fmap_14_field_info
-},
-{"TRQ_SEL_FMAP_15", 0x450,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_15_field_info),
-	trq_sel_fmap_15_field_info
-},
-{"TRQ_SEL_FMAP_16", 0x454,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_16_field_info),
-	trq_sel_fmap_16_field_info
-},
-{"TRQ_SEL_FMAP_17", 0x458,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_17_field_info),
-	trq_sel_fmap_17_field_info
-},
-{"TRQ_SEL_FMAP_18", 0x45c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_18_field_info),
-	trq_sel_fmap_18_field_info
-},
-{"TRQ_SEL_FMAP_19", 0x460,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_19_field_info),
-	trq_sel_fmap_19_field_info
-},
-{"TRQ_SEL_FMAP_1A", 0x464,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_1a_field_info),
-	trq_sel_fmap_1a_field_info
-},
-{"TRQ_SEL_FMAP_1B", 0x468,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_1b_field_info),
-	trq_sel_fmap_1b_field_info
-},
-{"TRQ_SEL_FMAP_1C", 0x46c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_1c_field_info),
-	trq_sel_fmap_1c_field_info
-},
-{"TRQ_SEL_FMAP_1D", 0x470,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_1d_field_info),
-	trq_sel_fmap_1d_field_info
-},
-{"TRQ_SEL_FMAP_1E", 0x474,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_1e_field_info),
-	trq_sel_fmap_1e_field_info
-},
-{"TRQ_SEL_FMAP_1F", 0x478,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_1f_field_info),
-	trq_sel_fmap_1f_field_info
-},
-{"TRQ_SEL_FMAP_20", 0x47c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_20_field_info),
-	trq_sel_fmap_20_field_info
-},
-{"TRQ_SEL_FMAP_21", 0x480,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_21_field_info),
-	trq_sel_fmap_21_field_info
-},
-{"TRQ_SEL_FMAP_22", 0x484,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_22_field_info),
-	trq_sel_fmap_22_field_info
-},
-{"TRQ_SEL_FMAP_23", 0x488,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_23_field_info),
-	trq_sel_fmap_23_field_info
-},
-{"TRQ_SEL_FMAP_24", 0x48c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_24_field_info),
-	trq_sel_fmap_24_field_info
-},
-{"TRQ_SEL_FMAP_25", 0x490,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_25_field_info),
-	trq_sel_fmap_25_field_info
-},
-{"TRQ_SEL_FMAP_26", 0x494,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_26_field_info),
-	trq_sel_fmap_26_field_info
-},
-{"TRQ_SEL_FMAP_27", 0x498,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_27_field_info),
-	trq_sel_fmap_27_field_info
-},
-{"TRQ_SEL_FMAP_28", 0x49c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_28_field_info),
-	trq_sel_fmap_28_field_info
-},
-{"TRQ_SEL_FMAP_29", 0x4a0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_29_field_info),
-	trq_sel_fmap_29_field_info
-},
-{"TRQ_SEL_FMAP_2A", 0x4a4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_2a_field_info),
-	trq_sel_fmap_2a_field_info
-},
-{"TRQ_SEL_FMAP_2B", 0x4a8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_2b_field_info),
-	trq_sel_fmap_2b_field_info
-},
-{"TRQ_SEL_FMAP_2C", 0x4ac,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_2c_field_info),
-	trq_sel_fmap_2c_field_info
-},
-{"TRQ_SEL_FMAP_2D", 0x4b0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_2d_field_info),
-	trq_sel_fmap_2d_field_info
-},
-{"TRQ_SEL_FMAP_2E", 0x4b4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_2e_field_info),
-	trq_sel_fmap_2e_field_info
-},
-{"TRQ_SEL_FMAP_2F", 0x4b8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_2f_field_info),
-	trq_sel_fmap_2f_field_info
-},
-{"TRQ_SEL_FMAP_30", 0x4bc,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_30_field_info),
-	trq_sel_fmap_30_field_info
-},
-{"TRQ_SEL_FMAP_31", 0x4d0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_31_field_info),
-	trq_sel_fmap_31_field_info
-},
-{"TRQ_SEL_FMAP_32", 0x4d4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_32_field_info),
-	trq_sel_fmap_32_field_info
-},
-{"TRQ_SEL_FMAP_33", 0x4d8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_33_field_info),
-	trq_sel_fmap_33_field_info
-},
-{"TRQ_SEL_FMAP_34", 0x4dc,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_34_field_info),
-	trq_sel_fmap_34_field_info
-},
-{"TRQ_SEL_FMAP_35", 0x4e0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_35_field_info),
-	trq_sel_fmap_35_field_info
-},
-{"TRQ_SEL_FMAP_36", 0x4e4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_36_field_info),
-	trq_sel_fmap_36_field_info
-},
-{"TRQ_SEL_FMAP_37", 0x4e8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_37_field_info),
-	trq_sel_fmap_37_field_info
-},
-{"TRQ_SEL_FMAP_38", 0x4ec,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_38_field_info),
-	trq_sel_fmap_38_field_info
-},
-{"TRQ_SEL_FMAP_39", 0x4f0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_39_field_info),
-	trq_sel_fmap_39_field_info
-},
-{"TRQ_SEL_FMAP_3A", 0x4f4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_3a_field_info),
-	trq_sel_fmap_3a_field_info
-},
-{"TRQ_SEL_FMAP_3B", 0x4f8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_3b_field_info),
-	trq_sel_fmap_3b_field_info
-},
-{"TRQ_SEL_FMAP_3C", 0x4fc,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_3c_field_info),
-	trq_sel_fmap_3c_field_info
-},
-{"TRQ_SEL_FMAP_3D", 0x500,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_3d_field_info),
-	trq_sel_fmap_3d_field_info
-},
-{"TRQ_SEL_FMAP_3E", 0x504,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_3e_field_info),
-	trq_sel_fmap_3e_field_info
-},
-{"TRQ_SEL_FMAP_3F", 0x508,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_3f_field_info),
-	trq_sel_fmap_3f_field_info
-},
-{"TRQ_SEL_FMAP_40", 0x50c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_40_field_info),
-	trq_sel_fmap_40_field_info
-},
-{"TRQ_SEL_FMAP_41", 0x510,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_41_field_info),
-	trq_sel_fmap_41_field_info
-},
-{"TRQ_SEL_FMAP_42", 0x514,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_42_field_info),
-	trq_sel_fmap_42_field_info
-},
-{"TRQ_SEL_FMAP_43", 0x518,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_43_field_info),
-	trq_sel_fmap_43_field_info
-},
-{"TRQ_SEL_FMAP_44", 0x51c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_44_field_info),
-	trq_sel_fmap_44_field_info
-},
-{"TRQ_SEL_FMAP_45", 0x520,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_45_field_info),
-	trq_sel_fmap_45_field_info
-},
-{"TRQ_SEL_FMAP_46", 0x524,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_46_field_info),
-	trq_sel_fmap_46_field_info
-},
-{"TRQ_SEL_FMAP_47", 0x528,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_47_field_info),
-	trq_sel_fmap_47_field_info
-},
-{"TRQ_SEL_FMAP_48", 0x52c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_48_field_info),
-	trq_sel_fmap_48_field_info
-},
-{"TRQ_SEL_FMAP_49", 0x530,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_49_field_info),
-	trq_sel_fmap_49_field_info
-},
-{"TRQ_SEL_FMAP_4A", 0x534,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_4a_field_info),
-	trq_sel_fmap_4a_field_info
-},
-{"TRQ_SEL_FMAP_4B", 0x538,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_4b_field_info),
-	trq_sel_fmap_4b_field_info
-},
-{"TRQ_SEL_FMAP_4C", 0x53c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_4c_field_info),
-	trq_sel_fmap_4c_field_info
-},
-{"TRQ_SEL_FMAP_4D", 0x540,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_4d_field_info),
-	trq_sel_fmap_4d_field_info
-},
-{"TRQ_SEL_FMAP_4E", 0x544,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_4e_field_info),
-	trq_sel_fmap_4e_field_info
-},
-{"TRQ_SEL_FMAP_4F", 0x548,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_4f_field_info),
-	trq_sel_fmap_4f_field_info
-},
-{"TRQ_SEL_FMAP_50", 0x54c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_50_field_info),
-	trq_sel_fmap_50_field_info
-},
-{"TRQ_SEL_FMAP_51", 0x550,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_51_field_info),
-	trq_sel_fmap_51_field_info
-},
-{"TRQ_SEL_FMAP_52", 0x554,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_52_field_info),
-	trq_sel_fmap_52_field_info
-},
-{"TRQ_SEL_FMAP_53", 0x558,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_53_field_info),
-	trq_sel_fmap_53_field_info
-},
-{"TRQ_SEL_FMAP_54", 0x55c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_54_field_info),
-	trq_sel_fmap_54_field_info
-},
-{"TRQ_SEL_FMAP_55", 0x560,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_55_field_info),
-	trq_sel_fmap_55_field_info
-},
-{"TRQ_SEL_FMAP_56", 0x564,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_56_field_info),
-	trq_sel_fmap_56_field_info
-},
-{"TRQ_SEL_FMAP_57", 0x568,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_57_field_info),
-	trq_sel_fmap_57_field_info
-},
-{"TRQ_SEL_FMAP_58", 0x56c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_58_field_info),
-	trq_sel_fmap_58_field_info
-},
-{"TRQ_SEL_FMAP_59", 0x570,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_59_field_info),
-	trq_sel_fmap_59_field_info
-},
-{"TRQ_SEL_FMAP_5A", 0x574,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_5a_field_info),
-	trq_sel_fmap_5a_field_info
-},
-{"TRQ_SEL_FMAP_5B", 0x578,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_5b_field_info),
-	trq_sel_fmap_5b_field_info
-},
-{"TRQ_SEL_FMAP_5C", 0x57c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_5c_field_info),
-	trq_sel_fmap_5c_field_info
-},
-{"TRQ_SEL_FMAP_5D", 0x580,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_5d_field_info),
-	trq_sel_fmap_5d_field_info
-},
-{"TRQ_SEL_FMAP_5E", 0x584,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_5e_field_info),
-	trq_sel_fmap_5e_field_info
-},
-{"TRQ_SEL_FMAP_5F", 0x588,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_5f_field_info),
-	trq_sel_fmap_5f_field_info
-},
-{"TRQ_SEL_FMAP_60", 0x58c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_60_field_info),
-	trq_sel_fmap_60_field_info
-},
-{"TRQ_SEL_FMAP_61", 0x590,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_61_field_info),
-	trq_sel_fmap_61_field_info
-},
-{"TRQ_SEL_FMAP_62", 0x594,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_62_field_info),
-	trq_sel_fmap_62_field_info
-},
-{"TRQ_SEL_FMAP_63", 0x598,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_63_field_info),
-	trq_sel_fmap_63_field_info
-},
-{"TRQ_SEL_FMAP_64", 0x59c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_64_field_info),
-	trq_sel_fmap_64_field_info
-},
-{"TRQ_SEL_FMAP_65", 0x5a0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_65_field_info),
-	trq_sel_fmap_65_field_info
-},
-{"TRQ_SEL_FMAP_66", 0x5a4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_66_field_info),
-	trq_sel_fmap_66_field_info
-},
-{"TRQ_SEL_FMAP_67", 0x5a8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_67_field_info),
-	trq_sel_fmap_67_field_info
-},
-{"TRQ_SEL_FMAP_68", 0x5ac,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_68_field_info),
-	trq_sel_fmap_68_field_info
-},
-{"TRQ_SEL_FMAP_69", 0x5b0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_69_field_info),
-	trq_sel_fmap_69_field_info
-},
-{"TRQ_SEL_FMAP_6A", 0x5b4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_6a_field_info),
-	trq_sel_fmap_6a_field_info
-},
-{"TRQ_SEL_FMAP_6B", 0x5b8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_6b_field_info),
-	trq_sel_fmap_6b_field_info
-},
-{"TRQ_SEL_FMAP_6C", 0x5bc,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_6c_field_info),
-	trq_sel_fmap_6c_field_info
-},
-{"TRQ_SEL_FMAP_6D", 0x5c0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_6d_field_info),
-	trq_sel_fmap_6d_field_info
-},
-{"TRQ_SEL_FMAP_6E", 0x5c4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_6e_field_info),
-	trq_sel_fmap_6e_field_info
-},
-{"TRQ_SEL_FMAP_6F", 0x5c8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_6f_field_info),
-	trq_sel_fmap_6f_field_info
-},
-{"TRQ_SEL_FMAP_70", 0x5cc,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_70_field_info),
-	trq_sel_fmap_70_field_info
-},
-{"TRQ_SEL_FMAP_71", 0x5d0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_71_field_info),
-	trq_sel_fmap_71_field_info
-},
-{"TRQ_SEL_FMAP_72", 0x5d4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_72_field_info),
-	trq_sel_fmap_72_field_info
-},
-{"TRQ_SEL_FMAP_73", 0x5d8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_73_field_info),
-	trq_sel_fmap_73_field_info
-},
-{"TRQ_SEL_FMAP_74", 0x5dc,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_74_field_info),
-	trq_sel_fmap_74_field_info
-},
-{"TRQ_SEL_FMAP_75", 0x5e0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_75_field_info),
-	trq_sel_fmap_75_field_info
-},
-{"TRQ_SEL_FMAP_76", 0x5e4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_76_field_info),
-	trq_sel_fmap_76_field_info
-},
-{"TRQ_SEL_FMAP_77", 0x5e8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_77_field_info),
-	trq_sel_fmap_77_field_info
-},
-{"TRQ_SEL_FMAP_78", 0x5ec,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_78_field_info),
-	trq_sel_fmap_78_field_info
-},
-{"TRQ_SEL_FMAP_79", 0x5f0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_79_field_info),
-	trq_sel_fmap_79_field_info
-},
-{"TRQ_SEL_FMAP_7A", 0x5f4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_7a_field_info),
-	trq_sel_fmap_7a_field_info
-},
-{"TRQ_SEL_FMAP_7B", 0x5f8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_7b_field_info),
-	trq_sel_fmap_7b_field_info
-},
-{"TRQ_SEL_FMAP_7C", 0x5fc,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_7c_field_info),
-	trq_sel_fmap_7c_field_info
-},
-{"TRQ_SEL_FMAP_7D", 0x600,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_7d_field_info),
-	trq_sel_fmap_7d_field_info
-},
-{"TRQ_SEL_FMAP_7E", 0x604,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_7e_field_info),
-	trq_sel_fmap_7e_field_info
-},
-{"TRQ_SEL_FMAP_7F", 0x608,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_7f_field_info),
-	trq_sel_fmap_7f_field_info
-},
-{"TRQ_SEL_FMAP_80", 0x60c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_80_field_info),
-	trq_sel_fmap_80_field_info
-},
-{"TRQ_SEL_FMAP_81", 0x610,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_81_field_info),
-	trq_sel_fmap_81_field_info
-},
-{"TRQ_SEL_FMAP_82", 0x614,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_82_field_info),
-	trq_sel_fmap_82_field_info
-},
-{"TRQ_SEL_FMAP_83", 0x618,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_83_field_info),
-	trq_sel_fmap_83_field_info
-},
-{"TRQ_SEL_FMAP_84", 0x61c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_84_field_info),
-	trq_sel_fmap_84_field_info
-},
-{"TRQ_SEL_FMAP_85", 0x620,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_85_field_info),
-	trq_sel_fmap_85_field_info
-},
-{"TRQ_SEL_FMAP_86", 0x624,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_86_field_info),
-	trq_sel_fmap_86_field_info
-},
-{"TRQ_SEL_FMAP_87", 0x628,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_87_field_info),
-	trq_sel_fmap_87_field_info
-},
-{"TRQ_SEL_FMAP_88", 0x62c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_88_field_info),
-	trq_sel_fmap_88_field_info
-},
-{"TRQ_SEL_FMAP_89", 0x630,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_89_field_info),
-	trq_sel_fmap_89_field_info
-},
-{"TRQ_SEL_FMAP_8A", 0x634,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_8a_field_info),
-	trq_sel_fmap_8a_field_info
-},
-{"TRQ_SEL_FMAP_8B", 0x638,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_8b_field_info),
-	trq_sel_fmap_8b_field_info
-},
-{"TRQ_SEL_FMAP_8C", 0x63c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_8c_field_info),
-	trq_sel_fmap_8c_field_info
-},
-{"TRQ_SEL_FMAP_8D", 0x640,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_8d_field_info),
-	trq_sel_fmap_8d_field_info
-},
-{"TRQ_SEL_FMAP_8E", 0x644,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_8e_field_info),
-	trq_sel_fmap_8e_field_info
-},
-{"TRQ_SEL_FMAP_8F", 0x648,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_8f_field_info),
-	trq_sel_fmap_8f_field_info
-},
-{"TRQ_SEL_FMAP_90", 0x64c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_90_field_info),
-	trq_sel_fmap_90_field_info
-},
-{"TRQ_SEL_FMAP_91", 0x650,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_91_field_info),
-	trq_sel_fmap_91_field_info
-},
-{"TRQ_SEL_FMAP_92", 0x654,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_92_field_info),
-	trq_sel_fmap_92_field_info
-},
-{"TRQ_SEL_FMAP_93", 0x658,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_93_field_info),
-	trq_sel_fmap_93_field_info
-},
-{"TRQ_SEL_FMAP_94", 0x65c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_94_field_info),
-	trq_sel_fmap_94_field_info
-},
-{"TRQ_SEL_FMAP_95", 0x660,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_95_field_info),
-	trq_sel_fmap_95_field_info
-},
-{"TRQ_SEL_FMAP_96", 0x664,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_96_field_info),
-	trq_sel_fmap_96_field_info
-},
-{"TRQ_SEL_FMAP_97", 0x668,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_97_field_info),
-	trq_sel_fmap_97_field_info
-},
-{"TRQ_SEL_FMAP_98", 0x66c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_98_field_info),
-	trq_sel_fmap_98_field_info
-},
-{"TRQ_SEL_FMAP_99", 0x670,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_99_field_info),
-	trq_sel_fmap_99_field_info
-},
-{"TRQ_SEL_FMAP_9A", 0x674,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_9a_field_info),
-	trq_sel_fmap_9a_field_info
-},
-{"TRQ_SEL_FMAP_9B", 0x678,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_9b_field_info),
-	trq_sel_fmap_9b_field_info
-},
-{"TRQ_SEL_FMAP_9C", 0x67c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_9c_field_info),
-	trq_sel_fmap_9c_field_info
-},
-{"TRQ_SEL_FMAP_9D", 0x680,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_9d_field_info),
-	trq_sel_fmap_9d_field_info
-},
-{"TRQ_SEL_FMAP_9E", 0x684,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_9e_field_info),
-	trq_sel_fmap_9e_field_info
-},
-{"TRQ_SEL_FMAP_9F", 0x688,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_9f_field_info),
-	trq_sel_fmap_9f_field_info
-},
-{"TRQ_SEL_FMAP_A0", 0x68c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_a0_field_info),
-	trq_sel_fmap_a0_field_info
-},
-{"TRQ_SEL_FMAP_A1", 0x690,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_a1_field_info),
-	trq_sel_fmap_a1_field_info
-},
-{"TRQ_SEL_FMAP_A2", 0x694,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_a2_field_info),
-	trq_sel_fmap_a2_field_info
-},
-{"TRQ_SEL_FMAP_A3", 0x698,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_a3_field_info),
-	trq_sel_fmap_a3_field_info
-},
-{"TRQ_SEL_FMAP_A4", 0x69c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_a4_field_info),
-	trq_sel_fmap_a4_field_info
-},
-{"TRQ_SEL_FMAP_A5", 0x6a0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_a5_field_info),
-	trq_sel_fmap_a5_field_info
-},
-{"TRQ_SEL_FMAP_A6", 0x6a4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_a6_field_info),
-	trq_sel_fmap_a6_field_info
-},
-{"TRQ_SEL_FMAP_A7", 0x6a8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_a7_field_info),
-	trq_sel_fmap_a7_field_info
-},
-{"TRQ_SEL_FMAP_A8", 0x6ac,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_a8_field_info),
-	trq_sel_fmap_a8_field_info
-},
-{"TRQ_SEL_FMAP_A9", 0x6b0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_a9_field_info),
-	trq_sel_fmap_a9_field_info
-},
-{"TRQ_SEL_FMAP_AA", 0x6b4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_aa_field_info),
-	trq_sel_fmap_aa_field_info
-},
-{"TRQ_SEL_FMAP_AB", 0x6b8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_ab_field_info),
-	trq_sel_fmap_ab_field_info
-},
-{"TRQ_SEL_FMAP_AC", 0x6bc,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_ac_field_info),
-	trq_sel_fmap_ac_field_info
-},
-{"TRQ_SEL_FMAP_AD", 0x6d0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_ad_field_info),
-	trq_sel_fmap_ad_field_info
-},
-{"TRQ_SEL_FMAP_AE", 0x6d4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_ae_field_info),
-	trq_sel_fmap_ae_field_info
-},
-{"TRQ_SEL_FMAP_AF", 0x6d8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_af_field_info),
-	trq_sel_fmap_af_field_info
-},
-{"TRQ_SEL_FMAP_B0", 0x6dc,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_b0_field_info),
-	trq_sel_fmap_b0_field_info
-},
-{"TRQ_SEL_FMAP_B1", 0x6e0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_b1_field_info),
-	trq_sel_fmap_b1_field_info
-},
-{"TRQ_SEL_FMAP_B2", 0x6e4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_b2_field_info),
-	trq_sel_fmap_b2_field_info
-},
-{"TRQ_SEL_FMAP_B3", 0x6e8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_b3_field_info),
-	trq_sel_fmap_b3_field_info
-},
-{"TRQ_SEL_FMAP_B4", 0x6ec,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_b4_field_info),
-	trq_sel_fmap_b4_field_info
-},
-{"TRQ_SEL_FMAP_B5", 0x6f0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_b5_field_info),
-	trq_sel_fmap_b5_field_info
-},
-{"TRQ_SEL_FMAP_B6", 0x6f4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_b6_field_info),
-	trq_sel_fmap_b6_field_info
-},
-{"TRQ_SEL_FMAP_B7", 0x6f8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_b7_field_info),
-	trq_sel_fmap_b7_field_info
-},
-{"TRQ_SEL_FMAP_B8", 0x6fc,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_b8_field_info),
-	trq_sel_fmap_b8_field_info
-},
-{"TRQ_SEL_FMAP_B9", 0x700,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_b9_field_info),
-	trq_sel_fmap_b9_field_info
-},
-{"TRQ_SEL_FMAP_BA", 0x704,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_ba_field_info),
-	trq_sel_fmap_ba_field_info
-},
-{"TRQ_SEL_FMAP_BB", 0x708,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_bb_field_info),
-	trq_sel_fmap_bb_field_info
-},
-{"TRQ_SEL_FMAP_BC", 0x70c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_bc_field_info),
-	trq_sel_fmap_bc_field_info
-},
-{"TRQ_SEL_FMAP_BD", 0x710,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_bd_field_info),
-	trq_sel_fmap_bd_field_info
-},
-{"TRQ_SEL_FMAP_BE", 0x714,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_be_field_info),
-	trq_sel_fmap_be_field_info
-},
-{"TRQ_SEL_FMAP_BF", 0x718,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_bf_field_info),
-	trq_sel_fmap_bf_field_info
-},
-{"TRQ_SEL_FMAP_C0", 0x71c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_c0_field_info),
-	trq_sel_fmap_c0_field_info
-},
-{"TRQ_SEL_FMAP_C1", 0x720,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_c1_field_info),
-	trq_sel_fmap_c1_field_info
-},
-{"TRQ_SEL_FMAP_C2", 0x734,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_c2_field_info),
-	trq_sel_fmap_c2_field_info
-},
-{"TRQ_SEL_FMAP_C3", 0x748,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_c3_field_info),
-	trq_sel_fmap_c3_field_info
-},
-{"TRQ_SEL_FMAP_C4", 0x74c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_c4_field_info),
-	trq_sel_fmap_c4_field_info
-},
-{"TRQ_SEL_FMAP_C5", 0x750,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_c5_field_info),
-	trq_sel_fmap_c5_field_info
-},
-{"TRQ_SEL_FMAP_C6", 0x754,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_c6_field_info),
-	trq_sel_fmap_c6_field_info
-},
-{"TRQ_SEL_FMAP_C7", 0x758,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_c7_field_info),
-	trq_sel_fmap_c7_field_info
-},
-{"TRQ_SEL_FMAP_C8", 0x75c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_c8_field_info),
-	trq_sel_fmap_c8_field_info
-},
-{"TRQ_SEL_FMAP_C9", 0x760,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_c9_field_info),
-	trq_sel_fmap_c9_field_info
-},
-{"TRQ_SEL_FMAP_CA", 0x764,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_ca_field_info),
-	trq_sel_fmap_ca_field_info
-},
-{"TRQ_SEL_FMAP_CB", 0x768,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_cb_field_info),
-	trq_sel_fmap_cb_field_info
-},
-{"TRQ_SEL_FMAP_CC", 0x76c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_cc_field_info),
-	trq_sel_fmap_cc_field_info
-},
-{"TRQ_SEL_FMAP_CD", 0x770,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_cd_field_info),
-	trq_sel_fmap_cd_field_info
-},
-{"TRQ_SEL_FMAP_CE", 0x774,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_ce_field_info),
-	trq_sel_fmap_ce_field_info
-},
-{"TRQ_SEL_FMAP_CF", 0x778,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_cf_field_info),
-	trq_sel_fmap_cf_field_info
-},
-{"TRQ_SEL_FMAP_D0", 0x77c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_d0_field_info),
-	trq_sel_fmap_d0_field_info
-},
-{"TRQ_SEL_FMAP_D1", 0x780,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_d1_field_info),
-	trq_sel_fmap_d1_field_info
-},
-{"TRQ_SEL_FMAP_D2", 0x784,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_d2_field_info),
-	trq_sel_fmap_d2_field_info
-},
-{"TRQ_SEL_FMAP_D3", 0x788,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_d3_field_info),
-	trq_sel_fmap_d3_field_info
-},
-{"TRQ_SEL_FMAP_D4", 0x78c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_d4_field_info),
-	trq_sel_fmap_d4_field_info
-},
-{"TRQ_SEL_FMAP_D5", 0x790,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_d5_field_info),
-	trq_sel_fmap_d5_field_info
-},
-{"TRQ_SEL_FMAP_D6", 0x794,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_d6_field_info),
-	trq_sel_fmap_d6_field_info
-},
-{"TRQ_SEL_FMAP_D7", 0x798,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_d7_field_info),
-	trq_sel_fmap_d7_field_info
-},
-{"TRQ_SEL_FMAP_D8", 0x79c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_d8_field_info),
-	trq_sel_fmap_d8_field_info
-},
-{"TRQ_SEL_FMAP_D9", 0x7a0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_d9_field_info),
-	trq_sel_fmap_d9_field_info
-},
-{"TRQ_SEL_FMAP_DA", 0x7a4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_da_field_info),
-	trq_sel_fmap_da_field_info
-},
-{"TRQ_SEL_FMAP_DB", 0x7a8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_db_field_info),
-	trq_sel_fmap_db_field_info
-},
-{"TRQ_SEL_FMAP_DC", 0x7ac,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_dc_field_info),
-	trq_sel_fmap_dc_field_info
-},
-{"TRQ_SEL_FMAP_DD", 0x7b0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_dd_field_info),
-	trq_sel_fmap_dd_field_info
-},
-{"TRQ_SEL_FMAP_DE", 0x7b4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_de_field_info),
-	trq_sel_fmap_de_field_info
-},
-{"TRQ_SEL_FMAP_DF", 0x7b8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_df_field_info),
-	trq_sel_fmap_df_field_info
-},
-{"TRQ_SEL_FMAP_E0", 0x7bc,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_e0_field_info),
-	trq_sel_fmap_e0_field_info
-},
-{"TRQ_SEL_FMAP_E1", 0x7c0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_e1_field_info),
-	trq_sel_fmap_e1_field_info
-},
-{"TRQ_SEL_FMAP_E2", 0x7c4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_e2_field_info),
-	trq_sel_fmap_e2_field_info
-},
-{"TRQ_SEL_FMAP_E3", 0x7c8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_e3_field_info),
-	trq_sel_fmap_e3_field_info
-},
-{"TRQ_SEL_FMAP_E4", 0x7cc,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_e4_field_info),
-	trq_sel_fmap_e4_field_info
-},
-{"TRQ_SEL_FMAP_E5", 0x7d0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_e5_field_info),
-	trq_sel_fmap_e5_field_info
-},
-{"TRQ_SEL_FMAP_E6", 0x7d4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_e6_field_info),
-	trq_sel_fmap_e6_field_info
-},
-{"TRQ_SEL_FMAP_E7", 0x7d8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_e7_field_info),
-	trq_sel_fmap_e7_field_info
-},
-{"TRQ_SEL_FMAP_E8", 0x7dc,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_e8_field_info),
-	trq_sel_fmap_e8_field_info
-},
-{"TRQ_SEL_FMAP_E9", 0x7e0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_e9_field_info),
-	trq_sel_fmap_e9_field_info
-},
-{"TRQ_SEL_FMAP_EA", 0x7e4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_ea_field_info),
-	trq_sel_fmap_ea_field_info
-},
-{"TRQ_SEL_FMAP_EB", 0x7e8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_eb_field_info),
-	trq_sel_fmap_eb_field_info
-},
-{"TRQ_SEL_FMAP_EC", 0x7ec,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_ec_field_info),
-	trq_sel_fmap_ec_field_info
-},
-{"TRQ_SEL_FMAP_ED", 0x7f0,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_ed_field_info),
-	trq_sel_fmap_ed_field_info
-},
-{"TRQ_SEL_FMAP_EE", 0x7f4,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_ee_field_info),
-	trq_sel_fmap_ee_field_info
-},
-{"TRQ_SEL_FMAP_EF", 0x7f8,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_ef_field_info),
-	trq_sel_fmap_ef_field_info
-},
-{"TRQ_SEL_FMAP_F0", 0x7fc,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(trq_sel_fmap_f0_field_info),
-	trq_sel_fmap_f0_field_info
-},
-{"IND_CTXT_DATA_3", 0x804,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(ind_ctxt_data_3_field_info),
-	ind_ctxt_data_3_field_info
-},
-{"IND_CTXT_DATA_2", 0x808,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(ind_ctxt_data_2_field_info),
-	ind_ctxt_data_2_field_info
-},
-{"IND_CTXT_DATA_1", 0x80c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(ind_ctxt_data_1_field_info),
-	ind_ctxt_data_1_field_info
-},
-{"IND_CTXT_DATA_0", 0x810,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(ind_ctxt_data_0_field_info),
-	ind_ctxt_data_0_field_info
-},
-{"IND_CTXT3", 0x814,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(ind_ctxt3_field_info),
-	ind_ctxt3_field_info
-},
-{"IND_CTXT2", 0x818,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(ind_ctxt2_field_info),
-	ind_ctxt2_field_info
-},
-{"IND_CTXT1", 0x81c,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(ind_ctxt1_field_info),
-	ind_ctxt1_field_info
-},
-{"IND_CTXT0", 0x820,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(ind_ctxt0_field_info),
-	ind_ctxt0_field_info
-},
-{"IND_CTXT_CMD", 0x824,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(ind_ctxt_cmd_field_info),
-	ind_ctxt_cmd_field_info
-},
-{"C2H_TIMER_CNT_1", 0xa00,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_timer_cnt_1_field_info),
-	c2h_timer_cnt_1_field_info
-},
-{"C2H_TIMER_CNT_2", 0xa04,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_timer_cnt_2_field_info),
-	c2h_timer_cnt_2_field_info
-},
-{"C2H_TIMER_CNT_3", 0xa08,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_timer_cnt_3_field_info),
-	c2h_timer_cnt_3_field_info
-},
-{"C2H_TIMER_CNT_4", 0xa0c,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_timer_cnt_4_field_info),
-	c2h_timer_cnt_4_field_info
-},
-{"C2H_TIMER_CNT_5", 0xa10,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_timer_cnt_5_field_info),
-	c2h_timer_cnt_5_field_info
-},
-{"C2H_TIMER_CNT_6", 0xa14,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_timer_cnt_6_field_info),
-	c2h_timer_cnt_6_field_info
-},
-{"C2H_TIMER_CNT_7", 0xa18,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_timer_cnt_7_field_info),
-	c2h_timer_cnt_7_field_info
-},
-{"C2H_TIMER_CNT_8", 0xa1c,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_timer_cnt_8_field_info),
-	c2h_timer_cnt_8_field_info
-},
-{"C2H_TIMER_CNT_9", 0xa20,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_timer_cnt_9_field_info),
-	c2h_timer_cnt_9_field_info
-},
-{"C2H_TIMER_CNT_A", 0xa24,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_timer_cnt_a_field_info),
-	c2h_timer_cnt_a_field_info
-},
-{"C2H_TIMER_CNT_B", 0xa28,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_timer_cnt_b_field_info),
-	c2h_timer_cnt_b_field_info
-},
-{"C2H_TIMER_CNT_C", 0xa2c,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_timer_cnt_c_field_info),
-	c2h_timer_cnt_c_field_info
-},
-{"C2H_TIMER_CNT_D", 0xa30,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_timer_cnt_d_field_info),
-	c2h_timer_cnt_d_field_info
-},
-{"C2H_TIMER_CNT_E", 0xa34,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_timer_cnt_e_field_info),
-	c2h_timer_cnt_e_field_info
-},
-{"C2H_TIMER_CNT_F", 0xa38,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_timer_cnt_f_field_info),
-	c2h_timer_cnt_f_field_info
-},
-{"C2H_TIMER_CNT_10", 0xa3c,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_timer_cnt_10_field_info),
-	c2h_timer_cnt_10_field_info
-},
-{"C2H_CNT_TH_1", 0xa40,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_cnt_th_1_field_info),
-	c2h_cnt_th_1_field_info
-},
-{"C2H_CNT_TH_2", 0xa44,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_cnt_th_2_field_info),
-	c2h_cnt_th_2_field_info
-},
-{"C2H_CNT_TH_3", 0xa48,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_cnt_th_3_field_info),
-	c2h_cnt_th_3_field_info
-},
-{"C2H_CNT_TH_4", 0xa4c,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_cnt_th_4_field_info),
-	c2h_cnt_th_4_field_info
-},
-{"C2H_CNT_TH_5", 0xa50,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_cnt_th_5_field_info),
-	c2h_cnt_th_5_field_info
-},
-{"C2H_CNT_TH_6", 0xa54,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_cnt_th_6_field_info),
-	c2h_cnt_th_6_field_info
-},
-{"C2H_CNT_TH_7", 0xa58,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_cnt_th_7_field_info),
-	c2h_cnt_th_7_field_info
-},
-{"C2H_CNT_TH_8", 0xa5c,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_cnt_th_8_field_info),
-	c2h_cnt_th_8_field_info
-},
-{"C2H_CNT_TH_9", 0xa60,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_cnt_th_9_field_info),
-	c2h_cnt_th_9_field_info
-},
-{"C2H_CNT_TH_A", 0xa64,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_cnt_th_a_field_info),
-	c2h_cnt_th_a_field_info
-},
-{"C2H_CNT_TH_B", 0xa68,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_cnt_th_b_field_info),
-	c2h_cnt_th_b_field_info
-},
-{"C2H_CNT_TH_C", 0xa6c,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_cnt_th_c_field_info),
-	c2h_cnt_th_c_field_info
-},
-{"C2H_CNT_TH_D", 0xa70,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_cnt_th_d_field_info),
-	c2h_cnt_th_d_field_info
-},
-{"C2H_CNT_TH_E", 0xa74,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_cnt_th_e_field_info),
-	c2h_cnt_th_e_field_info
-},
-{"C2H_CNT_TH_F", 0xa78,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_cnt_th_f_field_info),
-	c2h_cnt_th_f_field_info
-},
-{"C2H_CNT_TH_10", 0xa7c,
-	1, 0, 0, 0,
-	0, QDMA_COMPLETION_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_cnt_th_10_field_info),
-	c2h_cnt_th_10_field_info
-},
-{"C2H_QID2VEC_MAP_QID", 0xa80,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_qid2vec_map_qid_field_info),
-	c2h_qid2vec_map_qid_field_info
-},
-{"C2H_QID2VEC_MAP", 0xa84,
-	1, 0, 0, 0,
-	0, QDMA_MM_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_qid2vec_map_field_info),
-	c2h_qid2vec_map_field_info
-},
-{"C2H_STAT_S_AXIS_C2H_ACCEPTED", 0xa88,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(c2h_stat_s_axis_c2h_accepted_field_info),
-	c2h_stat_s_axis_c2h_accepted_field_info
-},
-{"C2H_STAT_S_AXIS_WRB_ACCEPTED", 0xa8c,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(c2h_stat_s_axis_wrb_accepted_field_info),
-	c2h_stat_s_axis_wrb_accepted_field_info
-},
-{"C2H_STAT_DESC_RSP_PKT_ACCEPTED", 0xa90,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(c2h_stat_desc_rsp_pkt_accepted_field_info),
-	c2h_stat_desc_rsp_pkt_accepted_field_info
-},
-{"C2H_STAT_AXIS_PKG_CMP", 0xa94,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(c2h_stat_axis_pkg_cmp_field_info),
-	c2h_stat_axis_pkg_cmp_field_info
-},
-{"C2H_STAT_DESC_RSP_ACCEPTED", 0xa98,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_stat_desc_rsp_accepted_field_info),
-	c2h_stat_desc_rsp_accepted_field_info
-},
-{"C2H_STAT_DESC_RSP_CMP", 0xa9c,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_stat_desc_rsp_cmp_field_info),
-	c2h_stat_desc_rsp_cmp_field_info
-},
-{"C2H_STAT_WRQ_OUT", 0xaa0,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_stat_wrq_out_field_info),
-	c2h_stat_wrq_out_field_info
-},
-{"C2H_STAT_WPL_REN_ACCEPTED", 0xaa4,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_stat_wpl_ren_accepted_field_info),
-	c2h_stat_wpl_ren_accepted_field_info
-},
-{"C2H_STAT_TOTAL_WRQ_LEN", 0xaa8,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_stat_total_wrq_len_field_info),
-	c2h_stat_total_wrq_len_field_info
-},
-{"C2H_STAT_TOTAL_WPL_LEN", 0xaac,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_stat_total_wpl_len_field_info),
-	c2h_stat_total_wpl_len_field_info
-},
-{"C2H_BUF_SZ_0", 0xab0,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_buf_sz_0_field_info),
-	c2h_buf_sz_0_field_info
-},
-{"C2H_BUF_SZ_1", 0xab4,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_buf_sz_1_field_info),
-	c2h_buf_sz_1_field_info
-},
-{"C2H_BUF_SZ_2", 0xab8,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_buf_sz_2_field_info),
-	c2h_buf_sz_2_field_info
-},
-{"C2H_BUF_SZ_3", 0xabc,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_buf_sz_3_field_info),
-	c2h_buf_sz_3_field_info
-},
-{"C2H_BUF_SZ_4", 0xac0,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_buf_sz_4_field_info),
-	c2h_buf_sz_4_field_info
-},
-{"C2H_BUF_SZ_5", 0xac4,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_buf_sz_5_field_info),
-	c2h_buf_sz_5_field_info
-},
-{"C2H_BUF_SZ_7", 0xac8,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_buf_sz_7_field_info),
-	c2h_buf_sz_7_field_info
-},
-{"C2H_BUF_SZ_8", 0xacc,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_buf_sz_8_field_info),
-	c2h_buf_sz_8_field_info
-},
-{"C2H_BUF_SZ_9", 0xad0,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_buf_sz_9_field_info),
-	c2h_buf_sz_9_field_info
-},
-{"C2H_BUF_SZ_10", 0xad4,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_buf_sz_10_field_info),
-	c2h_buf_sz_10_field_info
-},
-{"C2H_BUF_SZ_11", 0xad8,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_buf_sz_11_field_info),
-	c2h_buf_sz_11_field_info
-},
-{"C2H_BUF_SZ_12", 0xae0,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_buf_sz_12_field_info),
-	c2h_buf_sz_12_field_info
-},
-{"C2H_BUF_SZ_13", 0xae4,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_buf_sz_13_field_info),
-	c2h_buf_sz_13_field_info
-},
-{"C2H_BUF_SZ_14", 0xae8,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_buf_sz_14_field_info),
-	c2h_buf_sz_14_field_info
-},
-{"C2H_BUF_SZ_15", 0xaec,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_buf_sz_15_field_info),
-	c2h_buf_sz_15_field_info
-},
-{"C2H_ERR_STAT", 0xaf0,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(c2h_err_stat_field_info),
-	c2h_err_stat_field_info
-},
-{"C2H_ERR_MASK", 0xaf4,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(c2h_err_mask_field_info),
-	c2h_err_mask_field_info
-},
-{"C2H_FATAL_ERR_STAT", 0xaf8,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(c2h_fatal_err_stat_field_info),
-	c2h_fatal_err_stat_field_info
-},
-{"C2H_FATAL_ERR_MASK", 0xafc,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(c2h_fatal_err_mask_field_info),
-	c2h_fatal_err_mask_field_info
-},
-{"C2H_FATAL_ERR_ENABLE", 0xb00,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(c2h_fatal_err_enable_field_info),
-	c2h_fatal_err_enable_field_info
-},
-{"GLBL_ERR_INT", 0xb04,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(glbl_err_int_field_info),
-	glbl_err_int_field_info
-},
-{"C2H_PFCH_CFG", 0xb08,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_pfch_cfg_field_info),
-	c2h_pfch_cfg_field_info
-},
-{"C2H_INT_TIMER_TICK", 0xb0c,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_int_timer_tick_field_info),
-	c2h_int_timer_tick_field_info
-},
-{"C2H_STAT_DESC_RSP_DROP_ACCEPTED", 0xb10,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(c2h_stat_desc_rsp_drop_accepted_field_info),
-	c2h_stat_desc_rsp_drop_accepted_field_info
-},
-{"C2H_STAT_DESC_RSP_ERR_ACCEPTED", 0xb14,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(c2h_stat_desc_rsp_err_accepted_field_info),
-	c2h_stat_desc_rsp_err_accepted_field_info
-},
-{"C2H_STAT_DESC_REQ", 0xb18,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_stat_desc_req_field_info),
-	c2h_stat_desc_req_field_info
-},
-{"C2H_STAT_DBG_DMA_ENG_0", 0xb1c,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_stat_dbg_dma_eng_0_field_info),
-	c2h_stat_dbg_dma_eng_0_field_info
-},
-{"C2H_STAT_DBG_DMA_ENG_1", 0xb20,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_stat_dbg_dma_eng_1_field_info),
-	c2h_stat_dbg_dma_eng_1_field_info
-},
-{"C2H_STAT_DBG_DMA_ENG_2", 0xb24,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_stat_dbg_dma_eng_2_field_info),
-	c2h_stat_dbg_dma_eng_2_field_info
-},
-{"C2H_STAT_DBG_DMA_ENG_3", 0xb28,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_stat_dbg_dma_eng_3_field_info),
-	c2h_stat_dbg_dma_eng_3_field_info
-},
-{"C2H_DBG_PFCH_ERR_CTXT", 0xb2c,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_dbg_pfch_err_ctxt_field_info),
-	c2h_dbg_pfch_err_ctxt_field_info
-},
-{"C2H_FIRST_ERR_QID", 0xb30,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(c2h_first_err_qid_field_info),
-	c2h_first_err_qid_field_info
-},
-{"STAT_NUM_WRB_IN", 0xb34,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(stat_num_wrb_in_field_info),
-	stat_num_wrb_in_field_info
-},
-{"STAT_NUM_WRB_OUT", 0xb38,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(stat_num_wrb_out_field_info),
-	stat_num_wrb_out_field_info
-},
-{"STAT_NUM_WRB_DRP", 0xb3c,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(stat_num_wrb_drp_field_info),
-	stat_num_wrb_drp_field_info
-},
-{"STAT_NUM_STAT_DESC_OUT", 0xb40,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(stat_num_stat_desc_out_field_info),
-	stat_num_stat_desc_out_field_info
-},
-{"STAT_NUM_DSC_CRDT_SENT", 0xb44,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(stat_num_dsc_crdt_sent_field_info),
-	stat_num_dsc_crdt_sent_field_info
-},
-{"STAT_NUM_FCH_DSC_RCVD", 0xb48,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(stat_num_fch_dsc_rcvd_field_info),
-	stat_num_fch_dsc_rcvd_field_info
-},
-{"STAT_NUM_BYP_DSC_RCVD", 0xb4c,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(stat_num_byp_dsc_rcvd_field_info),
-	stat_num_byp_dsc_rcvd_field_info
-},
-{"C2H_WRB_COAL_CFG", 0xb50,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_wrb_coal_cfg_field_info),
-	c2h_wrb_coal_cfg_field_info
-},
-{"C2H_INTR_H2C_REQ", 0xb54,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(c2h_intr_h2c_req_field_info),
-	c2h_intr_h2c_req_field_info
-},
-{"C2H_INTR_C2H_MM_REQ", 0xb58,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(c2h_intr_c2h_mm_req_field_info),
-	c2h_intr_c2h_mm_req_field_info
-},
-{"C2H_INTR_ERR_INT_REQ", 0xb5c,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(c2h_intr_err_int_req_field_info),
-	c2h_intr_err_int_req_field_info
-},
-{"C2H_INTR_C2H_ST_REQ", 0xb60,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(c2h_intr_c2h_st_req_field_info),
-	c2h_intr_c2h_st_req_field_info
-},
-{"C2H_INTR_H2C_ERR_C2H_MM_MSIX_ACK", 0xb64,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_intr_h2c_err_c2h_mm_msix_ack_field_info),
-	c2h_intr_h2c_err_c2h_mm_msix_ack_field_info
-},
-{"C2H_INTR_H2C_ERR_C2H_MM_MSIX_FAIL", 0xb68,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_intr_h2c_err_c2h_mm_msix_fail_field_info),
-	c2h_intr_h2c_err_c2h_mm_msix_fail_field_info
-},
-{"C2H_INTR_H2C_ERR_C2H_MM_MSIX_NO_MSIX", 0xb6c,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_intr_h2c_err_c2h_mm_msix_no_msix_field_info),
-	c2h_intr_h2c_err_c2h_mm_msix_no_msix_field_info
-},
-{"C2H_INTR_H2C_ERR_C2H_MM_CTXT_INVAL", 0xb70,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_intr_h2c_err_c2h_mm_ctxt_inval_field_info),
-	c2h_intr_h2c_err_c2h_mm_ctxt_inval_field_info
-},
-{"C2H_INTR_C2H_ST_MSIX_ACK", 0xb74,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(c2h_intr_c2h_st_msix_ack_field_info),
-	c2h_intr_c2h_st_msix_ack_field_info
-},
-{"C2H_INTR_C2H_ST_MSIX_FAIL", 0xb78,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(c2h_intr_c2h_st_msix_fail_field_info),
-	c2h_intr_c2h_st_msix_fail_field_info
-},
-{"C2H_INTR_C2H_ST_NO_MSIX", 0xb7c,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_intr_c2h_st_no_msix_field_info),
-	c2h_intr_c2h_st_no_msix_field_info
-},
-{"C2H_INTR_C2H_ST_CTXT_INVAL", 0xb80,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_intr_c2h_st_ctxt_inval_field_info),
-	c2h_intr_c2h_st_ctxt_inval_field_info
-},
-{"C2H_STAT_WR_CMP", 0xb84,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_stat_wr_cmp_field_info),
-	c2h_stat_wr_cmp_field_info
-},
-{"C2H_STAT_DBG_DMA_ENG_4", 0xb88,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_stat_dbg_dma_eng_4_field_info),
-	c2h_stat_dbg_dma_eng_4_field_info
-},
-{"C2H_STAT_DBG_DMA_ENG_5", 0xb8c,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_stat_dbg_dma_eng_5_field_info),
-	c2h_stat_dbg_dma_eng_5_field_info
-},
-{"C2H_DBG_PFCH_QID", 0xb90,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_dbg_pfch_qid_field_info),
-	c2h_dbg_pfch_qid_field_info
-},
-{"C2H_DBG_PFCH", 0xb94,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_dbg_pfch_field_info),
-	c2h_dbg_pfch_field_info
-},
-{"C2H_INT_DBG", 0xb98,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_int_dbg_field_info),
-	c2h_int_dbg_field_info
-},
-{"C2H_STAT_IMM_ACCEPTED", 0xb9c,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_stat_imm_accepted_field_info),
-	c2h_stat_imm_accepted_field_info
-},
-{"C2H_STAT_MARKER_ACCEPTED", 0xba0,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_stat_marker_accepted_field_info),
-	c2h_stat_marker_accepted_field_info
-},
-{"C2H_STAT_DISABLE_CMP_ACCEPTED", 0xba4,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_stat_disable_cmp_accepted_field_info),
-	c2h_stat_disable_cmp_accepted_field_info
-},
-{"C2H_PLD_FIFO_CRDT_CNT", 0xba8,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_pld_fifo_crdt_cnt_field_info),
-	c2h_pld_fifo_crdt_cnt_field_info
-},
-{"H2C_ERR_STAT", 0xe00,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(h2c_err_stat_field_info),
-	h2c_err_stat_field_info
-},
-{"H2C_ERR_MASK", 0xe04,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(h2c_err_mask_field_info),
-	h2c_err_mask_field_info
-},
-{"H2C_FIRST_ERR_QID", 0xe08,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(h2c_first_err_qid_field_info),
-	h2c_first_err_qid_field_info
-},
-{"H2C_DBG_REG0", 0xe0c,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(h2c_dbg_reg0_field_info),
-	h2c_dbg_reg0_field_info
-},
-{"H2C_DBG_REG1", 0xe10,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(h2c_dbg_reg1_field_info),
-	h2c_dbg_reg1_field_info
-},
-{"H2C_DBG_REG2", 0xe14,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(h2c_dbg_reg2_field_info),
-	h2c_dbg_reg2_field_info
-},
-{"H2C_DBG_REG3", 0xe18,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(h2c_dbg_reg3_field_info),
-	h2c_dbg_reg3_field_info
-},
-{"H2C_DBG_REG4", 0xe1c,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(h2c_dbg_reg4_field_info),
-	h2c_dbg_reg4_field_info
-},
-{"H2C_FATAL_ERR_EN", 0xe20,
-	1, 0, 0, 0,
-	0, QDMA_ST_MODE, QDMA_REG_READ_PF_VF,
-	ARRAY_SIZE(h2c_fatal_err_en_field_info),
-	h2c_fatal_err_en_field_info
-},
-{"C2H_CHANNEL_CTL", 0x1004,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_channel_ctl_field_info),
-	c2h_channel_ctl_field_info
-},
-{"C2H_CHANNEL_CTL_1", 0x1008,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_channel_ctl_1_field_info),
-	c2h_channel_ctl_1_field_info
-},
-{"C2H_MM_STATUS", 0x1040,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_mm_status_field_info),
-	c2h_mm_status_field_info
-},
-{"C2H_CHANNEL_CMPL_DESC_CNT", 0x1048,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_channel_cmpl_desc_cnt_field_info),
-	c2h_channel_cmpl_desc_cnt_field_info
-},
-{"C2H_MM_ERR_CODE_ENABLE_MASK", 0x1054,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_mm_err_code_enable_mask_field_info),
-	c2h_mm_err_code_enable_mask_field_info
-},
-{"C2H_MM_ERR_CODE", 0x1058,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_mm_err_code_field_info),
-	c2h_mm_err_code_field_info
-},
-{"C2H_MM_ERR_INFO", 0x105c,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_mm_err_info_field_info),
-	c2h_mm_err_info_field_info
-},
-{"C2H_MM_PERF_MON_CTL", 0x10c0,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_mm_perf_mon_ctl_field_info),
-	c2h_mm_perf_mon_ctl_field_info
-},
-{"C2H_MM_PERF_MON_CYCLE_CNT0", 0x10c4,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_mm_perf_mon_cycle_cnt0_field_info),
-	c2h_mm_perf_mon_cycle_cnt0_field_info
-},
-{"C2H_MM_PERF_MON_CYCLE_CNT1", 0x10c8,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_mm_perf_mon_cycle_cnt1_field_info),
-	c2h_mm_perf_mon_cycle_cnt1_field_info
-},
-{"C2H_MM_PERF_MON_DATA_CNT0", 0x10cc,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_mm_perf_mon_data_cnt0_field_info),
-	c2h_mm_perf_mon_data_cnt0_field_info
-},
-{"C2H_MM_PERF_MON_DATA_CNT1", 0x10d0,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_mm_perf_mon_data_cnt1_field_info),
-	c2h_mm_perf_mon_data_cnt1_field_info
-},
-{"C2H_MM_DBG", 0x10e8,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(c2h_mm_dbg_field_info),
-	c2h_mm_dbg_field_info
-},
-{"H2C_CHANNEL_CTL", 0x1204,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(h2c_channel_ctl_field_info),
-	h2c_channel_ctl_field_info
-},
-{"H2C_CHANNEL_CTL_1", 0x1208,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(h2c_channel_ctl_1_field_info),
-	h2c_channel_ctl_1_field_info
-},
-{"H2C_CHANNEL_CTL_2", 0x120c,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(h2c_channel_ctl_2_field_info),
-	h2c_channel_ctl_2_field_info
-},
-{"H2C_MM_STATUS", 0x1240,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(h2c_mm_status_field_info),
-	h2c_mm_status_field_info
-},
-{"H2C_CHANNEL_CMPL_DESC_CNT", 0x1248,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(h2c_channel_cmpl_desc_cnt_field_info),
-	h2c_channel_cmpl_desc_cnt_field_info
-},
-{"H2C_MM_ERR_CODE_ENABLE_MASK", 0x1254,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(h2c_mm_err_code_enable_mask_field_info),
-	h2c_mm_err_code_enable_mask_field_info
-},
-{"H2C_MM_ERR_CODE", 0x1258,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(h2c_mm_err_code_field_info),
-	h2c_mm_err_code_field_info
-},
-{"H2C_MM_ERR_INFO", 0x125c,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(h2c_mm_err_info_field_info),
-	h2c_mm_err_info_field_info
-},
-{"H2C_MM_PERF_MON_CTL", 0x12c0,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(h2c_mm_perf_mon_ctl_field_info),
-	h2c_mm_perf_mon_ctl_field_info
-},
-{"H2C_MM_PERF_MON_CYCLE_CNT0", 0x12c4,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(h2c_mm_perf_mon_cycle_cnt0_field_info),
-	h2c_mm_perf_mon_cycle_cnt0_field_info
-},
-{"H2C_MM_PERF_MON_CYCLE_CNT1", 0x12c8,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(h2c_mm_perf_mon_cycle_cnt1_field_info),
-	h2c_mm_perf_mon_cycle_cnt1_field_info
-},
-{"H2C_MM_PERF_MON_DATA_CNT0", 0x12cc,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(h2c_mm_perf_mon_data_cnt0_field_info),
-	h2c_mm_perf_mon_data_cnt0_field_info
-},
-{"H2C_MM_PERF_MON_DATA_CNT1", 0x12d0,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(h2c_mm_perf_mon_data_cnt1_field_info),
-	h2c_mm_perf_mon_data_cnt1_field_info
-},
-{"H2C_MM_DBG", 0x12e8,
-	1, 0, 0, 0,
-	0, QDMA_MM_MODE, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(h2c_mm_dbg_field_info),
-	h2c_mm_dbg_field_info
-},
-{"FUNC_STATUS_REG", 0x2400,
-	1, 0, 0, 0,
-	0, QDMA_MAILBOX, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(func_status_reg_field_info),
-	func_status_reg_field_info
-},
-{"FUNC_CMD_REG", 0x2404,
-	1, 0, 0, 0,
-	0, QDMA_MAILBOX, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(func_cmd_reg_field_info),
-	func_cmd_reg_field_info
-},
-{"FUNC_INTERRUPT_VECTOR_REG", 0x2408,
-	1, 0, 0, 0,
-	0, QDMA_MAILBOX, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(func_interrupt_vector_reg_field_info),
-	func_interrupt_vector_reg_field_info
-},
-{"TARGET_FUNC_REG", 0x240c,
-	1, 0, 0, 0,
-	0, QDMA_MAILBOX, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(target_func_reg_field_info),
-	target_func_reg_field_info
-},
-{"FUNC_INTERRUPT_CTL_REG", 0x2410,
-	1, 0, 0, 0,
-	0, QDMA_MAILBOX, QDMA_REG_READ_PF_ONLY,
-	ARRAY_SIZE(func_interrupt_ctl_reg_field_info),
-	func_interrupt_ctl_reg_field_info
-},
-
-};
-
-uint32_t qdma_s80_hard_config_num_regs_get(void)
-{
-	return (sizeof(qdma_s80_hard_config_regs)/
-		sizeof(qdma_s80_hard_config_regs[0]));
-}
-
-struct xreg_info *qdma_s80_hard_config_regs_get(void)
-{
-	return qdma_s80_hard_config_regs;
-}
-
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_soft_access/qdma_soft_access.c b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_soft_access/qdma_soft_access.c
old mode 100644
new mode 100755
index 00c288b..26d10b2
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_soft_access/qdma_soft_access.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_soft_access/qdma_soft_access.c
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -2462,7 +2463,7 @@ int qdma_get_version(void *dev_hndl, uint8_t is_vf,
 
 	reg_val = qdma_reg_read(dev_hndl, reg_addr);
 
-	qdma_fetch_version_details(is_vf, reg_val, version_info);
+	qdma_fetch_version_details(dev_hndl, is_vf, reg_val, version_info);
 
 	return QDMA_SUCCESS;
 }
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_soft_access/qdma_soft_access.h b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_soft_access/qdma_soft_access.h
old mode 100644
new mode 100755
index 0dc74e2..9cb5247
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_soft_access/qdma_soft_access.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_soft_access/qdma_soft_access.h
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_soft_access/qdma_soft_reg.h b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_soft_access/qdma_soft_reg.h
old mode 100644
new mode 100755
index dae0e87..d3876c0
--- a/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_soft_access/qdma_soft_reg.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_access/qdma_soft_access/qdma_soft_reg.h
@@ -1,5 +1,6 @@
 /*
- * Copyright(c) 2019-2022 Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2019-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_compat.h b/QDMA/linux-kernel/driver/libqdma/qdma_compat.h
old mode 100644
new mode 100755
index a25ccc1..ded71b5
--- a/QDMA/linux-kernel/driver/libqdma/qdma_compat.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_compat.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_context.c b/QDMA/linux-kernel/driver/libqdma/qdma_context.c
old mode 100644
new mode 100755
index 5c16fe0..246280b
--- a/QDMA/linux-kernel/driver/libqdma/qdma_context.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_context.c
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -90,9 +90,11 @@ static int make_sw_context(struct qdma_descq *descq,
 			(descq->conf.sw_desc_sz == DESC_SZ_64B)) {
 		sw_ctxt->desc_sz = descq->conf.sw_desc_sz;
 	} else {
+		sw_ctxt->fetch_max = FETCH_MAX_NUM;
 		if (!descq->conf.st) { /* mm h2c/c2h */
 			sw_ctxt->desc_sz = DESC_SZ_32B;
 			sw_ctxt->mm_chn = descq->channel;
+			sw_ctxt->host_id = descq->channel;
 		} else if (descq->conf.q_type == Q_C2H) {  /* st c2h */
 			sw_ctxt->frcd_en = descq->conf.fetch_credit;
 			sw_ctxt->desc_sz = DESC_SZ_8B;
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_context.h b/QDMA/linux-kernel/driver/libqdma/qdma_context.h
old mode 100644
new mode 100755
index ad8cf33..9d21d48
--- a/QDMA/linux-kernel/driver/libqdma/qdma_context.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_context.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -27,6 +27,14 @@
 #include "xdev.h"
 #include "qdma_mbox.h"
 
+/*
+ * fetch_max [40:37]
+ * Description: Maximum number of descriptor fetches outstanding for this queue.
+ * The max outstanding is fetch_max + 1 .
+ * Higher value can increase the single queue performance.
+ */
+#define FETCH_MAX_NUM 7
+
 /*****************************************************************************/
 /**
  * qdma_intr_context_setup() - handler to set the qdma interrupt context
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_debugfs.c b/QDMA/linux-kernel/driver/libqdma/qdma_debugfs.c
old mode 100644
new mode 100755
index b82d36c..0c61bad
--- a/QDMA/linux-kernel/driver/libqdma/qdma_debugfs.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_debugfs.c
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_debugfs.h b/QDMA/linux-kernel/driver/libqdma/qdma_debugfs.h
old mode 100644
new mode 100755
index 5eb16aa..2b3600a
--- a/QDMA/linux-kernel/driver/libqdma/qdma_debugfs.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_debugfs.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_debugfs_dev.c b/QDMA/linux-kernel/driver/libqdma/qdma_debugfs_dev.c
old mode 100644
new mode 100755
index 68c69a4..3daa36a
--- a/QDMA/linux-kernel/driver/libqdma/qdma_debugfs_dev.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_debugfs_dev.c
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_debugfs_dev.h b/QDMA/linux-kernel/driver/libqdma/qdma_debugfs_dev.h
old mode 100644
new mode 100755
index 93fd985..5a74c79
--- a/QDMA/linux-kernel/driver/libqdma/qdma_debugfs_dev.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_debugfs_dev.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_debugfs_queue.c b/QDMA/linux-kernel/driver/libqdma/qdma_debugfs_queue.c
old mode 100644
new mode 100755
index 4ac7682..c323c47
--- a/QDMA/linux-kernel/driver/libqdma/qdma_debugfs_queue.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_debugfs_queue.c
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_debugfs_queue.h b/QDMA/linux-kernel/driver/libqdma/qdma_debugfs_queue.h
old mode 100644
new mode 100755
index 28c9d6e..37d62e7
--- a/QDMA/linux-kernel/driver/libqdma/qdma_debugfs_queue.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_debugfs_queue.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_descq.c b/QDMA/linux-kernel/driver/libqdma/qdma_descq.c
old mode 100644
new mode 100755
index 18c52aa..f62a927
--- a/QDMA/linux-kernel/driver/libqdma/qdma_descq.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_descq.c
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_descq.h b/QDMA/linux-kernel/driver/libqdma/qdma_descq.h
old mode 100644
new mode 100755
index f8e90e5..bb1ba36
--- a/QDMA/linux-kernel/driver/libqdma/qdma_descq.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_descq.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_device.c b/QDMA/linux-kernel/driver/libqdma/qdma_device.c
old mode 100644
new mode 100755
index e0e6b2a..a0ea5fc
--- a/QDMA/linux-kernel/driver/libqdma/qdma_device.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_device.c
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -232,8 +232,8 @@ int qdma_device_init(struct xlnx_dma_dev *xdev)
 
 	memset(&fmap, 0, sizeof(struct qdma_fmap_cfg));
 
-	qdev = kzalloc(sizeof(struct qdma_dev) +
-			sizeof(struct qdma_descq) * qmax * 3, GFP_KERNEL);
+	qdev = kzalloc(sizeof(struct qdma_dev), GFP_KERNEL);
+
 	if (!qdev) {
 		pr_err("dev %s qmax %d OOM.\n",
 			dev_name(&xdev->conf.pdev->dev), qmax);
@@ -254,9 +254,10 @@ int qdma_device_init(struct xlnx_dma_dev *xdev)
 #endif
 
 	descq = (struct qdma_descq *)(qdev + 1);
-	qdev->h2c_descq = descq;
-	qdev->c2h_descq = descq + qmax;
-	qdev->cmpt_descq = descq + (2 * qmax);
+	qdev->h2c_descq = kmalloc(sizeof(struct qdma_descq) * qmax, GFP_KERNEL);
+	qdev->c2h_descq = kmalloc(sizeof(struct qdma_descq) * qmax, GFP_KERNEL);
+	qdev->cmpt_descq = kmalloc(sizeof(struct qdma_descq) * qmax,
+					GFP_KERNEL);
 
 	qdev->qmax = qmax;
 	qdev->init_qrange = 0;
@@ -316,6 +317,10 @@ void qdma_device_cleanup(struct xlnx_dma_dev *xdev)
 			qdma_queue_remove((unsigned long int)xdev,
 					  i + qdev->qmax, buf, QDMA_BUF_LEN);
 	}
+
+	kfree(qdev->h2c_descq);
+	kfree(qdev->c2h_descq);
+	kfree(qdev->cmpt_descq);
 	xdev->dev_priv = NULL;
 	kfree(qdev);
 }
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_device.h b/QDMA/linux-kernel/driver/libqdma/qdma_device.h
old mode 100644
new mode 100755
index e88193e..c860467
--- a/QDMA/linux-kernel/driver/libqdma/qdma_device.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_device.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_intr.c b/QDMA/linux-kernel/driver/libqdma/qdma_intr.c
old mode 100644
new mode 100755
index 8de030d..14e88ca
--- a/QDMA/linux-kernel/driver/libqdma/qdma_intr.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_intr.c
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -260,10 +260,10 @@ static void data_intr_aggregate(struct xlnx_dma_dev *xdev, int vidx, int irq,
 		queue_intr_cidx_update(descq->xdev,
 			descq->conf.qidx, &coal_entry->intr_cidx_info);
 	} else if (num_entries_processed == 0) {
-		pr_warn("No entries processed\n");
+		pr_debug("No entries processed\n");
 		descq = xdev->prev_descq;
 		if (descq) {
-			pr_warn("Doing stale update\n");
+			pr_debug("Doing stale update\n");
 			queue_intr_cidx_update(descq->xdev,
 				descq->conf.qidx, &coal_entry->intr_cidx_info);
 		}
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_intr.h b/QDMA/linux-kernel/driver/libqdma/qdma_intr.h
old mode 100644
new mode 100755
index 7d428ec..c26174e
--- a/QDMA/linux-kernel/driver/libqdma/qdma_intr.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_intr.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_license.h b/QDMA/linux-kernel/driver/libqdma/qdma_license.h
old mode 100644
new mode 100755
index b2173d5..3175073
--- a/QDMA/linux-kernel/driver/libqdma/qdma_license.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_license.h
@@ -3,8 +3,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_mbox.c b/QDMA/linux-kernel/driver/libqdma/qdma_mbox.c
old mode 100644
new mode 100755
index 57f8c8e..0161d04
--- a/QDMA/linux-kernel/driver/libqdma/qdma_mbox.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_mbox.c
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_mbox.h b/QDMA/linux-kernel/driver/libqdma/qdma_mbox.h
old mode 100644
new mode 100755
index 269cd87..e027eda
--- a/QDMA/linux-kernel/driver/libqdma/qdma_mbox.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_mbox.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_platform.c b/QDMA/linux-kernel/driver/libqdma/qdma_platform.c
old mode 100644
new mode 100755
index ed7c54a..2f1470f
--- a/QDMA/linux-kernel/driver/libqdma/qdma_platform.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_platform.c
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_platform_env.h b/QDMA/linux-kernel/driver/libqdma/qdma_platform_env.h
old mode 100644
new mode 100755
index 45f3295..6649bfc
--- a/QDMA/linux-kernel/driver/libqdma/qdma_platform_env.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_platform_env.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_regs.c b/QDMA/linux-kernel/driver/libqdma/qdma_regs.c
old mode 100644
new mode 100755
index 743f8e1..ba45e1c
--- a/QDMA/linux-kernel/driver/libqdma/qdma_regs.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_regs.c
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_regs.h b/QDMA/linux-kernel/driver/libqdma/qdma_regs.h
old mode 100644
new mode 100755
index 6bc43a2..4e1d1bb
--- a/QDMA/linux-kernel/driver/libqdma/qdma_regs.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_regs.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_sriov.c b/QDMA/linux-kernel/driver/libqdma/qdma_sriov.c
old mode 100644
new mode 100755
index d5fda8d..4911bf8
--- a/QDMA/linux-kernel/driver/libqdma/qdma_sriov.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_sriov.c
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_st_c2h.c b/QDMA/linux-kernel/driver/libqdma/qdma_st_c2h.c
old mode 100644
new mode 100755
index e1da45b..fe3355e
--- a/QDMA/linux-kernel/driver/libqdma/qdma_st_c2h.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_st_c2h.c
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_st_c2h.h b/QDMA/linux-kernel/driver/libqdma/qdma_st_c2h.h
old mode 100644
new mode 100755
index 2233b3a..1d6971f
--- a/QDMA/linux-kernel/driver/libqdma/qdma_st_c2h.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_st_c2h.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_thread.c b/QDMA/linux-kernel/driver/libqdma/qdma_thread.c
old mode 100644
new mode 100755
index 930b3e0..cf96fd2
--- a/QDMA/linux-kernel/driver/libqdma/qdma_thread.c
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_thread.c
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_thread.h b/QDMA/linux-kernel/driver/libqdma/qdma_thread.h
old mode 100644
new mode 100755
index a2161ca..48b2680
--- a/QDMA/linux-kernel/driver/libqdma/qdma_thread.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_thread.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/qdma_ul_ext.h b/QDMA/linux-kernel/driver/libqdma/qdma_ul_ext.h
old mode 100644
new mode 100755
index fa84a0f..ae69938
--- a/QDMA/linux-kernel/driver/libqdma/qdma_ul_ext.h
+++ b/QDMA/linux-kernel/driver/libqdma/qdma_ul_ext.h
@@ -3,8 +3,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/thread.c b/QDMA/linux-kernel/driver/libqdma/thread.c
old mode 100644
new mode 100755
index 6598f4c..d0c0909
--- a/QDMA/linux-kernel/driver/libqdma/thread.c
+++ b/QDMA/linux-kernel/driver/libqdma/thread.c
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/thread.h b/QDMA/linux-kernel/driver/libqdma/thread.h
old mode 100644
new mode 100755
index ccbfc33..56346ce
--- a/QDMA/linux-kernel/driver/libqdma/thread.h
+++ b/QDMA/linux-kernel/driver/libqdma/thread.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/libqdma/version.h b/QDMA/linux-kernel/driver/libqdma/version.h
old mode 100644
new mode 100755
index 90bdbed..5d9a25a
--- a/QDMA/linux-kernel/driver/libqdma/version.h
+++ b/QDMA/linux-kernel/driver/libqdma/version.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -25,7 +25,7 @@
 
 #define LIBQDMA_VERSION_MAJOR	2022
 #define LIBQDMA_VERSION_MINOR	1
-#define LIBQDMA_VERSION_PATCH	4
+#define LIBQDMA_VERSION_PATCH	5
 
 #define LIBQDMA_VERSION_STR	\
 	__stringify(LIBQDMA_VERSION_MAJOR) "." \
diff --git a/QDMA/linux-kernel/driver/libqdma/xdev.c b/QDMA/linux-kernel/driver/libqdma/xdev.c
old mode 100644
new mode 100755
index 18cf9ee..3ef679e
--- a/QDMA/linux-kernel/driver/libqdma/xdev.c
+++ b/QDMA/linux-kernel/driver/libqdma/xdev.c
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -53,6 +53,11 @@
 #define QDMA_QBASE 0
 #endif
 #ifndef QDMA_TOTAL_Q
+/**
+ * CPM5 supports 4095 Qs & all other designs supports 2048 Qs.
+ * Though the number here is given as 2K Qs,
+ * actual qmax is extracted from dev cap.
+ */
 #define QDMA_TOTAL_Q 2048
 #endif
 #endif
diff --git a/QDMA/linux-kernel/driver/libqdma/xdev.h b/QDMA/linux-kernel/driver/libqdma/xdev.h
old mode 100644
new mode 100755
index a2ba48d..47c26b4
--- a/QDMA/linux-kernel/driver/libqdma/xdev.h
+++ b/QDMA/linux-kernel/driver/libqdma/xdev.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/make_rules/common_flags.mk b/QDMA/linux-kernel/driver/make_rules/common_flags.mk
old mode 100644
new mode 100755
index f824747..5929b0c
--- a/QDMA/linux-kernel/driver/make_rules/common_flags.mk
+++ b/QDMA/linux-kernel/driver/make_rules/common_flags.mk
@@ -1,8 +1,8 @@
 #/*
 # * This file is part of the Xilinx DMA IP Core driver for Linux
 # *
-# * Copyright (c) 2017-2022,  Xilinx, Inc.
-# * All rights reserved.
+# * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+# * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
 # *
 # * This source code is free software; you can redistribute it and/or modify it
 # * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/make_rules/distro_check.mk b/QDMA/linux-kernel/driver/make_rules/distro_check.mk
old mode 100644
new mode 100755
index 726c1a5..104c288
--- a/QDMA/linux-kernel/driver/make_rules/distro_check.mk
+++ b/QDMA/linux-kernel/driver/make_rules/distro_check.mk
@@ -1,8 +1,8 @@
 #/*
 # * This file is part of the Xilinx DMA IP Core driver for Linux
 # *
-# * Copyright (c) 2017-2022,  Xilinx, Inc.
-# * All rights reserved.
+# * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+# * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
 # *
 # * This source code is free software; you can redistribute it and/or modify it
 # * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/make_rules/kernel_check.mk b/QDMA/linux-kernel/driver/make_rules/kernel_check.mk
old mode 100644
new mode 100755
index 54afd23..c9a1f0b
--- a/QDMA/linux-kernel/driver/make_rules/kernel_check.mk
+++ b/QDMA/linux-kernel/driver/make_rules/kernel_check.mk
@@ -1,8 +1,8 @@
 #/*
 # * This file is part of the Xilinx DMA IP Core driver for Linux
 # *
-# * Copyright (c) 2017-2022,  Xilinx, Inc.
-# * All rights reserved.
+# * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+# * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
 # *
 # * This source code is free software; you can redistribute it and/or modify it
 # * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/src/Makefile b/QDMA/linux-kernel/driver/src/Makefile
old mode 100644
new mode 100755
index 1d77564..fcbe577
--- a/QDMA/linux-kernel/driver/src/Makefile
+++ b/QDMA/linux-kernel/driver/src/Makefile
@@ -1,8 +1,8 @@
 #/*
 # * This file is part of the Xilinx DMA IP Core driver for Linux
 # *
-# * Copyright (c) 2017-2022,  Xilinx, Inc.
-# * All rights reserved.
+# * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+# * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
 # *
 # * This source code is free software; you can redistribute it and/or modify it
 # * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/src/cdev.c b/QDMA/linux-kernel/driver/src/cdev.c
old mode 100644
new mode 100755
index 8318897..2a7de5b
--- a/QDMA/linux-kernel/driver/src/cdev.c
+++ b/QDMA/linux-kernel/driver/src/cdev.c
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/src/cdev.h b/QDMA/linux-kernel/driver/src/cdev.h
old mode 100644
new mode 100755
index ef046b0..616aec8
--- a/QDMA/linux-kernel/driver/src/cdev.h
+++ b/QDMA/linux-kernel/driver/src/cdev.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/src/nl.c b/QDMA/linux-kernel/driver/src/nl.c
old mode 100644
new mode 100755
index 741cd75..55812f1
--- a/QDMA/linux-kernel/driver/src/nl.c
+++ b/QDMA/linux-kernel/driver/src/nl.c
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/src/nl.h b/QDMA/linux-kernel/driver/src/nl.h
old mode 100644
new mode 100755
index 3b3ff07..40d91f2
--- a/QDMA/linux-kernel/driver/src/nl.h
+++ b/QDMA/linux-kernel/driver/src/nl.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/src/pci_ids.h b/QDMA/linux-kernel/driver/src/pci_ids.h
old mode 100644
new mode 100755
index a059419..1411045
--- a/QDMA/linux-kernel/driver/src/pci_ids.h
+++ b/QDMA/linux-kernel/driver/src/pci_ids.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -244,6 +244,13 @@ static const struct pci_device_id pci_ids[] = {
 	{ PCI_DEVICE(0x10ee, 0xc148), },	/** VF on PF 1 */
 	{ PCI_DEVICE(0x10ee, 0xc248), },	/** VF on PF 2 */
 	{ PCI_DEVICE(0x10ee, 0xc348), },	/** VF on PF 3 */
+
+	/** Gen 5 VF */
+	/** PCIe lane width x8 */
+	{ PCI_DEVICE(0x10ee, 0xc058), },	/** VF on PF 0 */
+	{ PCI_DEVICE(0x10ee, 0xc158), },	/** VF on PF 1 */
+	{ PCI_DEVICE(0x10ee, 0xc258), },	/** VF on PF 2 */
+	{ PCI_DEVICE(0x10ee, 0xc358), },	/** VF on PF 3 */
 #else
 	/** Gen 1 PF */
 	/** PCIe lane width x1 */
@@ -452,6 +459,13 @@ static const struct pci_device_id pci_ids[] = {
 	{ PCI_DEVICE(0x10ee, 0xb148), },	/** PF 1 */
 	{ PCI_DEVICE(0x10ee, 0xb248), },	/** PF 2 */
 	{ PCI_DEVICE(0x10ee, 0xb348), },	/** PF 3 */
+
+	/** Gen 5 PF */
+	/** PCIe lane width x8 */
+	{ PCI_DEVICE(0x10ee, 0xb058), },	/** PF 0 */
+	{ PCI_DEVICE(0x10ee, 0xb158), },	/** PF 1 */
+	{ PCI_DEVICE(0x10ee, 0xb258), },	/** PF 2 */
+	{ PCI_DEVICE(0x10ee, 0xb358), },	/** PF 3 */
 #endif
 
 	{0,}
diff --git a/QDMA/linux-kernel/driver/src/qdma_mod.c b/QDMA/linux-kernel/driver/src/qdma_mod.c
old mode 100644
new mode 100755
index 3b63785..ae2a923
--- a/QDMA/linux-kernel/driver/src/qdma_mod.c
+++ b/QDMA/linux-kernel/driver/src/qdma_mod.c
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/src/qdma_mod.h b/QDMA/linux-kernel/driver/src/qdma_mod.h
old mode 100644
new mode 100755
index 2a74c03..079d95a
--- a/QDMA/linux-kernel/driver/src/qdma_mod.h
+++ b/QDMA/linux-kernel/driver/src/qdma_mod.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/driver/src/version.h b/QDMA/linux-kernel/driver/src/version.h
old mode 100644
new mode 100755
index e32d03a..5906c95
--- a/QDMA/linux-kernel/driver/src/version.h
+++ b/QDMA/linux-kernel/driver/src/version.h
@@ -1,8 +1,8 @@
 /*
  * This file is part of the Xilinx DMA IP Core driver for Linux
  *
- * Copyright (c) 2017-2022,  Xilinx, Inc.
- * All rights reserved.
+ * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+ * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
  *
  * This source code is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -33,7 +33,7 @@
 
 #define DRV_MOD_MAJOR		2022
 #define DRV_MOD_MINOR		1
-#define DRV_MOD_PATCHLEVEL	4
+#define DRV_MOD_PATCHLEVEL	5
 
 #define DRV_MODULE_VERSION      \
 	__stringify(DRV_MOD_MAJOR) "." \
diff --git a/QDMA/linux-kernel/license.txt b/QDMA/linux-kernel/license.txt
old mode 100644
new mode 100755
diff --git a/QDMA/linux-kernel/scripts/license-for-datafile_16bit_pattern.txt b/QDMA/linux-kernel/scripts/license-for-datafile_16bit_pattern.txt
old mode 100644
new mode 100755
index c419203..15469ad
--- a/QDMA/linux-kernel/scripts/license-for-datafile_16bit_pattern.txt
+++ b/QDMA/linux-kernel/scripts/license-for-datafile_16bit_pattern.txt
@@ -1,19 +1,19 @@
-/*
- * THIS BINARY FILE IS GENERATED FROM XILINX TOOLS AND IS AVAILABLE EXCLUSIVELY IN BINARY FORMAT.
- *
- * Copyright © 2022 Xilinx, Inc.
- *
- * Redistribution and use in binary form only, without modification, is permitted provided that the following conditions are met:
- *
- * Redistributions must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- * The name of Xilinx, Inc. may not be used to endorse or promote products redistributed with this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED BY XILINX, INC. "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL XILINX, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
+/*
+ * THIS BINARY FILE IS GENERATED FROM XILINX TOOLS AND IS AVAILABLE EXCLUSIVELY IN BINARY FORMAT.
+ *
+ * Copyright © 2022 Xilinx, Inc.
+ *
+ * Redistribution and use in binary form only, without modification, is permitted provided that the following conditions are met:
+ *
+ * Redistributions must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+ * The name of Xilinx, Inc. may not be used to endorse or promote products redistributed with this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED BY XILINX, INC. "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL XILINX, INC. BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
  */
\ No newline at end of file
diff --git a/QDMA/linux-kernel/scripts/qdma_generate_conf_file.sh b/QDMA/linux-kernel/scripts/qdma_generate_conf_file.sh
old mode 100644
new mode 100755
index c31100c..07d5b3a
--- a/QDMA/linux-kernel/scripts/qdma_generate_conf_file.sh
+++ b/QDMA/linux-kernel/scripts/qdma_generate_conf_file.sh
@@ -1,8 +1,8 @@
 #/*
 # * This file is part of the Xilinx DMA IP Core driver for Linux
 # *
-# * Copyright (c) 2017-2022,  Xilinx, Inc.
-# * All rights reserved.
+# * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+# * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
 # *
 # * This source code is free software; you can redistribute it and/or modify it
 # * under the terms and conditions of the GNU General Public License,
@@ -118,4 +118,4 @@ generate_conf()
 	rm -rf conf_file
 }
 
-generate_conf
\ No newline at end of file
+generate_conf
diff --git a/QDMA/linux-kernel/scripts/qdma_run_test_mm_vf.sh b/QDMA/linux-kernel/scripts/qdma_run_test_mm_vf.sh
index f0d7145..de584fe 100755
--- a/QDMA/linux-kernel/scripts/qdma_run_test_mm_vf.sh
+++ b/QDMA/linux-kernel/scripts/qdma_run_test_mm_vf.sh
@@ -1,8 +1,8 @@
 #/*
 # * This file is part of the Xilinx DMA IP Core driver for Linux
 # *
-# * Copyright (c) 2017-2022,  Xilinx, Inc.
-# * All rights reserved.
+# * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+# * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
 # *
 # * This source code is free software; you can redistribute it and/or modify it
 # * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/scripts/qdma_run_test_pf.sh b/QDMA/linux-kernel/scripts/qdma_run_test_pf.sh
index ae106aa..d328ec9 100755
--- a/QDMA/linux-kernel/scripts/qdma_run_test_pf.sh
+++ b/QDMA/linux-kernel/scripts/qdma_run_test_pf.sh
@@ -1,8 +1,8 @@
 #/*
 # * This file is part of the Xilinx DMA IP Core driver for Linux
 # *
-# * Copyright (c) 2017-2022,  Xilinx, Inc.
-# * All rights reserved.
+# * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+# * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
 # *
 # * This source code is free software; you can redistribute it and/or modify it
 # * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/scripts/qdma_run_test_st_vf.sh b/QDMA/linux-kernel/scripts/qdma_run_test_st_vf.sh
index 45d2c20..a9b620d 100755
--- a/QDMA/linux-kernel/scripts/qdma_run_test_st_vf.sh
+++ b/QDMA/linux-kernel/scripts/qdma_run_test_st_vf.sh
@@ -1,8 +1,8 @@
 #/*
 # * This file is part of the Xilinx DMA IP Core driver for Linux
 # *
-# * Copyright (c) 2017-2022,  Xilinx, Inc.
-# * All rights reserved.
+# * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+# * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
 # *
 # * This source code is free software; you can redistribute it and/or modify it
 # * under the terms and conditions of the GNU General Public License,
diff --git a/QDMA/linux-kernel/scripts/qdma_vf_auto_tst.sh b/QDMA/linux-kernel/scripts/qdma_vf_auto_tst.sh
old mode 100644
new mode 100755
index a0d2585..bcb84d7
--- a/QDMA/linux-kernel/scripts/qdma_vf_auto_tst.sh
+++ b/QDMA/linux-kernel/scripts/qdma_vf_auto_tst.sh
@@ -1,8 +1,8 @@
 #/*
 # * This file is part of the Xilinx DMA IP Core driver for Linux
 # *
-# * Copyright (c) 2017-2022,  Xilinx, Inc.
-# * All rights reserved.
+# * Copyright (c) 2017-2022, Xilinx, Inc. All rights reserved.
+# * Copyright (c) 2022, Advanced Micro Devices, Inc. All rights reserved.
 # *
 # * This source code is free software; you can redistribute it and/or modify it
 # * under the terms and conditions of the GNU General Public License,
-- 
GitLab