]> git.baikalelectronics.ru Git - arm-tf.git/commitdiff
renesas: rzg: Add QoS support for RZ/G2M
authorBiju Das <biju.das.jz@bp.renesas.com>
Mon, 9 Nov 2020 09:38:51 +0000 (09:38 +0000)
committerBiju Das <biju.das.jz@bp.renesas.com>
Wed, 13 Jan 2021 19:15:41 +0000 (19:15 +0000)
Add QoS support for RZ/G2M SoC.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Change-Id: If541278fd629761cc83398bba71e63f09d9dbee6

19 files changed:
drivers/renesas/rzg/qos/G2M/qos_init_g2m_v10.c [new file with mode: 0644]
drivers/renesas/rzg/qos/G2M/qos_init_g2m_v10.h [new file with mode: 0644]
drivers/renesas/rzg/qos/G2M/qos_init_g2m_v10_mstat.h [new file with mode: 0644]
drivers/renesas/rzg/qos/G2M/qos_init_g2m_v11.c [new file with mode: 0644]
drivers/renesas/rzg/qos/G2M/qos_init_g2m_v11.h [new file with mode: 0644]
drivers/renesas/rzg/qos/G2M/qos_init_g2m_v11_mstat195.h [new file with mode: 0644]
drivers/renesas/rzg/qos/G2M/qos_init_g2m_v11_mstat390.h [new file with mode: 0644]
drivers/renesas/rzg/qos/G2M/qos_init_g2m_v11_qoswt195.h [new file with mode: 0644]
drivers/renesas/rzg/qos/G2M/qos_init_g2m_v11_qoswt390.h [new file with mode: 0644]
drivers/renesas/rzg/qos/G2M/qos_init_g2m_v30.c [new file with mode: 0644]
drivers/renesas/rzg/qos/G2M/qos_init_g2m_v30.h [new file with mode: 0644]
drivers/renesas/rzg/qos/G2M/qos_init_g2m_v30_mstat195.h [new file with mode: 0644]
drivers/renesas/rzg/qos/G2M/qos_init_g2m_v30_mstat390.h [new file with mode: 0644]
drivers/renesas/rzg/qos/G2M/qos_init_g2m_v30_qoswt195.h [new file with mode: 0644]
drivers/renesas/rzg/qos/G2M/qos_init_g2m_v30_qoswt390.h [new file with mode: 0644]
drivers/renesas/rzg/qos/qos.mk [new file with mode: 0644]
drivers/renesas/rzg/qos/qos_common.h [new file with mode: 0644]
drivers/renesas/rzg/qos/qos_init.c [new file with mode: 0644]
drivers/renesas/rzg/qos/qos_init.h [new file with mode: 0644]

diff --git a/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v10.c b/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v10.c
new file mode 100644 (file)
index 0000000..ceaad25
--- /dev/null
@@ -0,0 +1,148 @@
+/*
+ * Copyright (c) 2021, Renesas Electronics Corporation. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <stdint.h>
+
+#include <common/debug.h>
+#include <lib/mmio.h>
+
+#include "../qos_common.h"
+#include "qos_init_g2m_v10.h"
+#include "qos_init_g2m_v10_mstat.h"
+#include "qos_reg.h"
+
+#define RCAR_QOS_VERSION       "rev.0.19"
+
+static const struct rcar_gen3_dbsc_qos_settings g2m_v10_qos[] = {
+       /* BUFCAM settings */
+       /* DBSC_DBCAM0CNF0 not set */
+       { DBSC_DBCAM0CNF1, 0x00043218U },
+       { DBSC_DBCAM0CNF2, 0x000000F4U },
+       { DBSC_DBCAM0CNF3, 0x00000000U },
+       { DBSC_DBSCHCNT0, 0x080F0037U },
+       /* DBSC_DBSCHCNT1 not set */
+       { DBSC_DBSCHSZ0, 0x00000001U },
+       { DBSC_DBSCHRW0, 0x22421111U },
+
+       /* DDR3 */
+       { DBSC_SCFCTST2, 0x012F1123U },
+
+       /* QoS Settings */
+       { DBSC_DBSCHQOS00, 0x00000F00U },
+       { DBSC_DBSCHQOS01, 0x00000B00U },
+       { DBSC_DBSCHQOS02, 0x00000000U },
+       { DBSC_DBSCHQOS03, 0x00000000U },
+       { DBSC_DBSCHQOS40, 0x00000300U },
+       { DBSC_DBSCHQOS41, 0x000002F0U },
+       { DBSC_DBSCHQOS42, 0x00000200U },
+       { DBSC_DBSCHQOS43, 0x00000100U },
+       { DBSC_DBSCHQOS90, 0x00000300U },
+       { DBSC_DBSCHQOS91, 0x000002F0U },
+       { DBSC_DBSCHQOS92, 0x00000200U },
+       { DBSC_DBSCHQOS93, 0x00000100U },
+       { DBSC_DBSCHQOS130, 0x00000100U },
+       { DBSC_DBSCHQOS131, 0x000000F0U },
+       { DBSC_DBSCHQOS132, 0x000000A0U },
+       { DBSC_DBSCHQOS133, 0x00000040U },
+       { DBSC_DBSCHQOS140, 0x000000C0U },
+       { DBSC_DBSCHQOS141, 0x000000B0U },
+       { DBSC_DBSCHQOS142, 0x00000080U },
+       { DBSC_DBSCHQOS143, 0x00000040U },
+       { DBSC_DBSCHQOS150, 0x00000040U },
+       { DBSC_DBSCHQOS151, 0x00000030U },
+       { DBSC_DBSCHQOS152, 0x00000020U },
+       { DBSC_DBSCHQOS153, 0x00000010U },
+};
+
+void qos_init_g2m_v10(void)
+{
+       rzg_qos_dbsc_setting(g2m_v10_qos, ARRAY_SIZE(g2m_v10_qos), false);
+
+       /* DRAM split address mapping */
+#if RCAR_DRAM_SPLIT == RCAR_DRAM_SPLIT_4CH
+#if RCAR_LSI == RZ_G2M
+#error "Don't set DRAM Split 4ch(G2M)"
+#else /* RCAR_LSI == RZ_G2M */
+       ERROR("DRAM Split 4ch not supported.(G2M)");
+       panic();
+#endif /* RCAR_LSI == RZ_G2M */
+#elif (RCAR_DRAM_SPLIT == RCAR_DRAM_SPLIT_2CH) || \
+       (RCAR_DRAM_SPLIT == RCAR_DRAM_SPLIT_AUTO)
+       NOTICE("BL2: DRAM Split is 2ch\n");
+       mmio_write_32(AXI_ADSPLCR0, 0x00000000U);
+       mmio_write_32(AXI_ADSPLCR1, ADSPLCR0_ADRMODE_DEFAULT |
+                     ADSPLCR0_SPLITSEL(0xFFU) | ADSPLCR0_AREA(0x1CU) |
+                     ADSPLCR0_SWP);
+       mmio_write_32(AXI_ADSPLCR2, 0x089A0000U);
+       mmio_write_32(AXI_ADSPLCR3, 0x00000000U);
+#else /* RCAR_DRAM_SPLIT == RCAR_DRAM_SPLIT_4CH */
+       NOTICE("BL2: DRAM Split is OFF\n");
+#endif /* RCAR_DRAM_SPLIT == RCAR_DRAM_SPLIT_4CH */
+
+#if !(RCAR_QOS_TYPE == RCAR_QOS_NONE)
+#if RCAR_QOS_TYPE  == RCAR_QOS_TYPE_DEFAULT
+       NOTICE("BL2: QoS is default setting(%s)\n", RCAR_QOS_VERSION);
+#endif
+
+       /* Resource Alloc setting */
+       mmio_write_32(QOSCTRL_RAS, 0x00000028U);
+       mmio_write_32(QOSCTRL_FIXTH, 0x000F0005U);
+       mmio_write_32(QOSCTRL_REGGD, 0x00000000U);
+       mmio_write_64(QOSCTRL_DANN, 0x0101010102020201UL);
+       mmio_write_32(QOSCTRL_DANT, 0x00100804U);
+       mmio_write_32(QOSCTRL_EC, 0x00000000U);
+       mmio_write_64(QOSCTRL_EMS, 0x0000000000000000UL);
+       mmio_write_32(QOSCTRL_FSS, 0x000003e8U);
+       mmio_write_32(QOSCTRL_INSFC, 0xC7840001U);
+       mmio_write_32(QOSCTRL_BERR, 0x00000000U);
+       mmio_write_32(QOSCTRL_RACNT0, 0x00000000U);
+
+       /* QOSBW setting */
+       mmio_write_32(QOSCTRL_SL_INIT, SL_INIT_REFFSSLOT | SL_INIT_SLOTSSLOT |
+                     SL_INIT_SSLOTCLK);
+       mmio_write_32(QOSCTRL_REF_ARS, 0x00330000U);
+
+       /* QOSBW SRAM setting */
+       uint32_t i;
+
+       for (i = 0U; i < ARRAY_SIZE(mstat_fix); i++) {
+               mmio_write_64(QOSBW_FIX_QOS_BANK0 + i * 8U, mstat_fix[i]);
+               mmio_write_64(QOSBW_FIX_QOS_BANK1 + i * 8U, mstat_fix[i]);
+       }
+       for (i = 0U; i < ARRAY_SIZE(mstat_be); i++) {
+               mmio_write_64(QOSBW_BE_QOS_BANK0 + i * 8U, mstat_be[i]);
+               mmio_write_64(QOSBW_BE_QOS_BANK1 + i * 8U, mstat_be[i]);
+       }
+
+       /* 3DG bus Leaf setting */
+       mmio_write_32(0xFD820808U, 0x00001234U);
+       mmio_write_32(0xFD820800U, 0x00000006U);
+       mmio_write_32(0xFD821800U, 0x00000006U);
+       mmio_write_32(0xFD822800U, 0x00000006U);
+       mmio_write_32(0xFD823800U, 0x00000006U);
+       mmio_write_32(0xFD824800U, 0x00000006U);
+       mmio_write_32(0xFD825800U, 0x00000006U);
+       mmio_write_32(0xFD826800U, 0x00000006U);
+       mmio_write_32(0xFD827800U, 0x00000006U);
+
+       /* RT bus Leaf setting */
+       mmio_write_32(0xFFC50800U, 0x00000000U);
+       mmio_write_32(0xFFC51800U, 0x00000000U);
+
+       /* Resource Alloc start */
+       mmio_write_32(QOSCTRL_RAEN, 0x00000001U);
+
+       /* QOSBW start */
+       mmio_write_32(QOSCTRL_STATQC, 0x00000001U);
+#else /* !(RCAR_QOS_TYPE == RCAR_QOS_NONE) */
+       NOTICE("BL2: QoS is None\n");
+
+       /* Resource Alloc setting */
+       mmio_write_32(QOSCTRL_EC, 0x00000000U);
+       /* Resource Alloc start */
+       mmio_write_32(QOSCTRL_RAEN, 0x00000001U);
+#endif /* !(RCAR_QOS_TYPE == RCAR_QOS_NONE) */
+}
diff --git a/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v10.h b/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v10.h
new file mode 100644 (file)
index 0000000..627974a
--- /dev/null
@@ -0,0 +1,12 @@
+/*
+ * Copyright (c) 2020, Renesas Electronics Corporation. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef QOS_INIT_G2M_V10_H
+#define QOS_INIT_G2M_V10_H
+
+void qos_init_g2m_v10(void);
+
+#endif /* QOS_INIT_G2M_V10_H */
diff --git a/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v10_mstat.h b/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v10_mstat.h
new file mode 100644 (file)
index 0000000..c37915c
--- /dev/null
@@ -0,0 +1,232 @@
+/*
+ * Copyright (c) 2020, Renesas Electronics Corporation. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef QOS_INIT_G2M_V10_MSTAT_H
+#define QOS_INIT_G2M_V10_MSTAT_H
+
+#if RCAR_QOS_TYPE  == RCAR_QOS_TYPE_DEFAULT
+static const uint64_t mstat_fix[] = {
+       /* 0x0000, */ 0x0000000000000000UL,
+       /* 0x0008, */ 0x0000000000000000UL,
+       /* 0x0010, */ 0x0000000000000000UL,
+       /* 0x0018, */ 0x0000000000000000UL,
+       /* 0x0020, */ 0x0000000000000000UL,
+       /* 0x0028, */ 0x0000000000000000UL,
+       /* 0x0030, */ 0x001004030000FFFFUL,
+       /* 0x0038, */ 0x001004030000FFFFUL,
+       /* 0x0040, */ 0x001414090000FFFFUL,
+       /* 0x0048, */ 0x0000000000000000UL,
+       /* 0x0050, */ 0x001410010000FFFFUL,
+       /* 0x0058, */ 0x00140C090000FFFFUL,
+       /* 0x0060, */ 0x00140C090000FFFFUL,
+       /* 0x0068, */ 0x0000000000000000UL,
+       /* 0x0070, */ 0x001410010000FFFFUL,
+       /* 0x0078, */ 0x001004020000FFFFUL,
+       /* 0x0080, */ 0x0000000000000000UL,
+       /* 0x0088, */ 0x001414090000FFFFUL,
+       /* 0x0090, */ 0x001408060000FFFFUL,
+       /* 0x0098, */ 0x0000000000000000UL,
+       /* 0x00A0, */ 0x000C08020000FFFFUL,
+       /* 0x00A8, */ 0x000C04010000FFFFUL,
+       /* 0x00B0, */ 0x000C04010000FFFFUL,
+       /* 0x00B8, */ 0x0000000000000000UL,
+       /* 0x00C0, */ 0x000C08020000FFFFUL,
+       /* 0x00C8, */ 0x000C04010000FFFFUL,
+       /* 0x00D0, */ 0x000C04010000FFFFUL,
+       /* 0x00D8, */ 0x000C04030000FFFFUL,
+       /* 0x00E0, */ 0x000C100F0000FFFFUL,
+       /* 0x00E8, */ 0x0000000000000000UL,
+       /* 0x00F0, */ 0x001010080000FFFFUL,
+       /* 0x00F8, */ 0x0000000000000000UL,
+       /* 0x0100, */ 0x0000000000000000UL,
+       /* 0x0108, */ 0x0000000000000000UL,
+       /* 0x0110, */ 0x001010080000FFFFUL,
+       /* 0x0118, */ 0x0000000000000000UL,
+       /* 0x0120, */ 0x0000000000000000UL,
+       /* 0x0128, */ 0x0000000000000000UL,
+       /* 0x0130, */ 0x0000000000000000UL,
+       /* 0x0138, */ 0x00100C0A0000FFFFUL,
+       /* 0x0140, */ 0x0000000000000000UL,
+       /* 0x0148, */ 0x0000000000000000UL,
+       /* 0x0150, */ 0x00100C0A0000FFFFUL,
+       /* 0x0158, */ 0x0000000000000000UL,
+       /* 0x0160, */ 0x00100C0A0000FFFFUL,
+       /* 0x0168, */ 0x0000000000000000UL,
+       /* 0x0170, */ 0x0000000000000000UL,
+       /* 0x0178, */ 0x001008050000FFFFUL,
+       /* 0x0180, */ 0x0000000000000000UL,
+       /* 0x0188, */ 0x0000000000000000UL,
+       /* 0x0190, */ 0x001028280000FFFFUL,
+       /* 0x0198, */ 0x0000000000000000UL,
+       /* 0x01A0, */ 0x00100C0A0000FFFFUL,
+       /* 0x01A8, */ 0x0000000000000000UL,
+       /* 0x01B0, */ 0x0000000000000000UL,
+       /* 0x01B8, */ 0x0000000000000000UL,
+       /* 0x01C0, */ 0x0000000000000000UL,
+       /* 0x01C8, */ 0x0000000000000000UL,
+       /* 0x01D0, */ 0x0000000000000000UL,
+       /* 0x01D8, */ 0x0000000000000000UL,
+       /* 0x01E0, */ 0x0000000000000000UL,
+       /* 0x01E8, */ 0x0000000000000000UL,
+       /* 0x01F0, */ 0x0000000000000000UL,
+       /* 0x01F8, */ 0x0000000000000000UL,
+       /* 0x0200, */ 0x0000000000000000UL,
+       /* 0x0208, */ 0x0000000000000000UL,
+       /* 0x0210, */ 0x0000000000000000UL,
+       /* 0x0218, */ 0x0000000000000000UL,
+       /* 0x0220, */ 0x0000000000000000UL,
+       /* 0x0228, */ 0x0000000000000000UL,
+       /* 0x0230, */ 0x0000000000000000UL,
+       /* 0x0238, */ 0x0000000000000000UL,
+       /* 0x0240, */ 0x0000000000000000UL,
+       /* 0x0248, */ 0x0000000000000000UL,
+       /* 0x0250, */ 0x0000000000000000UL,
+       /* 0x0258, */ 0x0000000000000000UL,
+       /* 0x0260, */ 0x0000000000000000UL,
+       /* 0x0268, */ 0x001408010000FFFFUL,
+       /* 0x0270, */ 0x001404010000FFFFUL,
+       /* 0x0278, */ 0x0000000000000000UL,
+       /* 0x0280, */ 0x0000000000000000UL,
+       /* 0x0288, */ 0x0000000000000000UL,
+       /* 0x0290, */ 0x001408010000FFFFUL,
+       /* 0x0298, */ 0x001404010000FFFFUL,
+       /* 0x02A0, */ 0x000C04010000FFFFUL,
+       /* 0x02A8, */ 0x000C04010000FFFFUL,
+       /* 0x02B0, */ 0x001404010000FFFFUL,
+       /* 0x02B8, */ 0x0000000000000000UL,
+       /* 0x02C0, */ 0x0000000000000000UL,
+       /* 0x02C8, */ 0x0000000000000000UL,
+       /* 0x02D0, */ 0x000C04010000FFFFUL,
+       /* 0x02D8, */ 0x000C04010000FFFFUL,
+       /* 0x02E0, */ 0x001404010000FFFFUL,
+       /* 0x02E8, */ 0x0000000000000000UL,
+       /* 0x02F0, */ 0x0000000000000000UL,
+       /* 0x02F8, */ 0x0000000000000000UL,
+       /* 0x0300, */ 0x0000000000000000UL,
+       /* 0x0308, */ 0x0000000000000000UL,
+       /* 0x0310, */ 0x0000000000000000UL,
+       /* 0x0318, */ 0x0000000000000000UL,
+       /* 0x0320, */ 0x0000000000000000UL,
+       /* 0x0328, */ 0x0000000000000000UL,
+       /* 0x0330, */ 0x0000000000000000UL,
+       /* 0x0338, */ 0x0000000000000000UL,
+       /* 0x0340, */ 0x0000000000000000UL,
+       /* 0x0348, */ 0x0000000000000000UL,
+       /* 0x0350, */ 0x0000000000000000UL,
+};
+
+static const uint64_t mstat_be[] = {
+       /* 0x0000, */ 0x001200100C89C401UL,
+       /* 0x0008, */ 0x001200100C89C401UL,
+       /* 0x0010, */ 0x001200100C89C401UL,
+       /* 0x0018, */ 0x001200100C89C401UL,
+       /* 0x0020, */ 0x0000000000000000UL,
+       /* 0x0028, */ 0x001100100C803401UL,
+       /* 0x0030, */ 0x0000000000000000UL,
+       /* 0x0038, */ 0x0000000000000000UL,
+       /* 0x0040, */ 0x0000000000000000UL,
+       /* 0x0048, */ 0x0000000000000000UL,
+       /* 0x0050, */ 0x0000000000000000UL,
+       /* 0x0058, */ 0x0000000000000000UL,
+       /* 0x0060, */ 0x0000000000000000UL,
+       /* 0x0068, */ 0x0000000000000000UL,
+       /* 0x0070, */ 0x0000000000000000UL,
+       /* 0x0078, */ 0x0000000000000000UL,
+       /* 0x0080, */ 0x0000000000000000UL,
+       /* 0x0088, */ 0x0000000000000000UL,
+       /* 0x0090, */ 0x0000000000000000UL,
+       /* 0x0098, */ 0x0000000000000000UL,
+       /* 0x00A0, */ 0x0000000000000000UL,
+       /* 0x00A8, */ 0x0000000000000000UL,
+       /* 0x00B0, */ 0x0000000000000000UL,
+       /* 0x00B8, */ 0x0000000000000000UL,
+       /* 0x00C0, */ 0x0000000000000000UL,
+       /* 0x00C8, */ 0x0000000000000000UL,
+       /* 0x00D0, */ 0x0000000000000000UL,
+       /* 0x00D8, */ 0x0000000000000000UL,
+       /* 0x00E0, */ 0x0000000000000000UL,
+       /* 0x00E8, */ 0x0000000000000000UL,
+       /* 0x00F0, */ 0x0000000000000000UL,
+       /* 0x00F8, */ 0x0000000000000000UL,
+       /* 0x0100, */ 0x0000000000000000UL,
+       /* 0x0108, */ 0x0000000000000000UL,
+       /* 0x0110, */ 0x0000000000000000UL,
+       /* 0x0118, */ 0x0000000000000000UL,
+       /* 0x0120, */ 0x0000000000000000UL,
+       /* 0x0128, */ 0x0000000000000000UL,
+       /* 0x0130, */ 0x0000000000000000UL,
+       /* 0x0138, */ 0x0000000000000000UL,
+       /* 0x0140, */ 0x0000000000000000UL,
+       /* 0x0148, */ 0x0000000000000000UL,
+       /* 0x0150, */ 0x0000000000000000UL,
+       /* 0x0158, */ 0x0000000000000000UL,
+       /* 0x0160, */ 0x0000000000000000UL,
+       /* 0x0168, */ 0x0000000000000000UL,
+       /* 0x0170, */ 0x0000000000000000UL,
+       /* 0x0178, */ 0x0000000000000000UL,
+       /* 0x0180, */ 0x0000000000000000UL,
+       /* 0x0188, */ 0x0000000000000000UL,
+       /* 0x0190, */ 0x0000000000000000UL,
+       /* 0x0198, */ 0x0000000000000000UL,
+       /* 0x01A0, */ 0x0000000000000000UL,
+       /* 0x01A8, */ 0x0000000000000000UL,
+       /* 0x01B0, */ 0x0000000000000000UL,
+       /* 0x01B8, */ 0x0000000000000000UL,
+       /* 0x01C0, */ 0x001100500C8FFC01UL,
+       /* 0x01C8, */ 0x001100500C8FFC01UL,
+       /* 0x01D0, */ 0x001100500C8FFC01UL,
+       /* 0x01D8, */ 0x001100500C8FFC01UL,
+       /* 0x01E0, */ 0x0000000000000000UL,
+       /* 0x01E8, */ 0x001200100C803401UL,
+       /* 0x01F0, */ 0x001100100C80FC01UL,
+       /* 0x01F8, */ 0x0000000000000000UL,
+       /* 0x0200, */ 0x0000000000000000UL,
+       /* 0x0208, */ 0x001200100C80FC01UL,
+       /* 0x0210, */ 0x001100100C80FC01UL,
+       /* 0x0218, */ 0x001100100C825801UL,
+       /* 0x0220, */ 0x001100100C825801UL,
+       /* 0x0228, */ 0x0000000000000000UL,
+       /* 0x0230, */ 0x001100100C825801UL,
+       /* 0x0238, */ 0x001100100C825801UL,
+       /* 0x0240, */ 0x001200100C8BB801UL,
+       /* 0x0248, */ 0x001100100C8EA401UL,
+       /* 0x0250, */ 0x001200100C8BB801UL,
+       /* 0x0258, */ 0x001100100C8EA401UL,
+       /* 0x0260, */ 0x001100100C84E401UL,
+       /* 0x0268, */ 0x0000000000000000UL,
+       /* 0x0270, */ 0x0000000000000000UL,
+       /* 0x0278, */ 0x001100100C81F401UL,
+       /* 0x0280, */ 0x0000000000000000UL,
+       /* 0x0288, */ 0x0000000000000000UL,
+       /* 0x0290, */ 0x0000000000000000UL,
+       /* 0x0298, */ 0x0000000000000000UL,
+       /* 0x02A0, */ 0x0000000000000000UL,
+       /* 0x02A8, */ 0x0000000000000000UL,
+       /* 0x02B0, */ 0x0000000000000000UL,
+       /* 0x02B8, */ 0x001100100C803401UL,
+       /* 0x02C0, */ 0x0000000000000000UL,
+       /* 0x02C8, */ 0x0000000000000000UL,
+       /* 0x02D0, */ 0x0000000000000000UL,
+       /* 0x02D8, */ 0x0000000000000000UL,
+       /* 0x02E0, */ 0x0000000000000000UL,
+       /* 0x02E8, */ 0x001100100C803401UL,
+       /* 0x02F0, */ 0x001100300C8FFC01UL,
+       /* 0x02F8, */ 0x001100500C8FFC01UL,
+       /* 0x0300, */ 0x0000000000000000UL,
+       /* 0x0308, */ 0x001100300C8FFC01UL,
+       /* 0x0310, */ 0x001100500C8FFC01UL,
+       /* 0x0318, */ 0x001200100C803401UL,
+       /* 0x0320, */ 0x0000000000000000UL,
+       /* 0x0328, */ 0x0000000000000000UL,
+       /* 0x0330, */ 0x0000000000000000UL,
+       /* 0x0338, */ 0x0000000000000000UL,
+       /* 0x0340, */ 0x0000000000000000UL,
+       /* 0x0348, */ 0x0000000000000000UL,
+       /* 0x0350, */ 0x0000000000000000UL,
+};
+#endif /* RCAR_QOS_TYPE  == RCAR_QOS_TYPE_DEFAULT */
+
+#endif /* QOS_INIT_G2M_V10_MSTAT_H */
diff --git a/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v11.c b/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v11.c
new file mode 100644 (file)
index 0000000..db61858
--- /dev/null
@@ -0,0 +1,218 @@
+/*
+ * Copyright (c) 2021, Renesas Electronics Corporation. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <stdint.h>
+
+#include <common/debug.h>
+#include <lib/mmio.h>
+
+#include "../qos_common.h"
+#include "qos_init_g2m_v11.h"
+#if RCAR_QOS_TYPE  == RCAR_QOS_TYPE_DEFAULT
+#if RCAR_REF_INT == RCAR_REF_DEFAULT
+#include "qos_init_g2m_v11_mstat195.h"
+#else /* RCAR_REF_INT == RCAR_REF_DEFAULT */
+#include "qos_init_g2m_v11_mstat390.h"
+#endif /* RCAR_REF_INT == RCAR_REF_DEFAULT */
+#if RCAR_REWT_TRAINING != RCAR_REWT_TRAINING_DISABLE
+#if RCAR_REF_INT == RCAR_REF_DEFAULT
+#include "qos_init_g2m_v11_qoswt195.h"
+#else /* RCAR_REF_INT == RCAR_REF_DEFAULT */
+#include "qos_init_g2m_v11_qoswt390.h"
+#endif /* RCAR_REF_INT == RCAR_REF_DEFAULT */
+#endif /* RCAR_REWT_TRAINING != RCAR_REWT_TRAINING_DISABLE */
+#endif /* RCAR_QOS_TYPE  == RCAR_QOS_TYPE_DEFAULT */
+#include "qos_reg.h"
+
+#define RCAR_QOS_VERSION                       "rev.0.19"
+
+#define QOSWT_TIME_BANK0                       20000000U       /* unit:ns */
+
+#define QOSWT_WTEN_ENABLE                      0x1U
+
+#define QOSCTRL_REF_ARS_ARBSTOPCYCLE_G2M_11    (SL_INIT_SSLOTCLK_G2M_11 - 0x5U)
+
+#define OSWT_WTREF_SLOT0_EN_REQ1_SLOT          3U
+#define OSWT_WTREF_SLOT0_EN_REQ2_SLOT          9U
+#define QOSWT_WTREF_SLOT0_EN                           \
+       ((0x1U << OSWT_WTREF_SLOT0_EN_REQ1_SLOT) |      \
+       (0x1U << OSWT_WTREF_SLOT0_EN_REQ2_SLOT))
+#define QOSWT_WTREF_SLOT1_EN                           \
+       ((0x1U << OSWT_WTREF_SLOT0_EN_REQ1_SLOT) |      \
+       (0x1U << OSWT_WTREF_SLOT0_EN_REQ2_SLOT))
+
+#define QOSWT_WTSET0_REQ_SSLOT0                        5U
+#define WT_BASE_SUB_SLOT_NUM0                  12U
+#define QOSWT_WTSET0_PERIOD0_G2M_11                    \
+       ((QOSWT_TIME_BANK0 / QOSWT_WTSET0_CYCLE_G2M_11) - 1U)
+#define QOSWT_WTSET0_SSLOT0                    (QOSWT_WTSET0_REQ_SSLOT0 - 1U)
+#define QOSWT_WTSET0_SLOTSLOT0                 (WT_BASE_SUB_SLOT_NUM0 - 1U)
+
+#define QOSWT_WTSET1_PERIOD1_G2M_11                    \
+       ((QOSWT_TIME_BANK0 / QOSWT_WTSET0_CYCLE_G2M_11) - 1U)
+#define QOSWT_WTSET1_SSLOT1                    (QOSWT_WTSET0_REQ_SSLOT0 - 1U)
+#define QOSWT_WTSET1_SLOTSLOT1                 (WT_BASE_SUB_SLOT_NUM0 - 1U)
+
+static const struct rcar_gen3_dbsc_qos_settings g2m_v11_qos[] = {
+       /* BUFCAM settings */
+       { DBSC_DBCAM0CNF1, 0x00043218U },
+       { DBSC_DBCAM0CNF2, 0x000000F4U },
+       { DBSC_DBCAM0CNF3, 0x00000000U },
+       { DBSC_DBSCHCNT0, 0x000F0037U },
+       { DBSC_DBSCHSZ0, 0x00000001U },
+       { DBSC_DBSCHRW0, 0x22421111U },
+
+       /* DDR3 */
+       { DBSC_SCFCTST2, 0x012F1123U },
+
+       /* QoS settings */
+       { DBSC_DBSCHQOS00, 0x00000F00U },
+       { DBSC_DBSCHQOS01, 0x00000B00U },
+       { DBSC_DBSCHQOS02, 0x00000000U },
+       { DBSC_DBSCHQOS03, 0x00000000U },
+       { DBSC_DBSCHQOS40, 0x00000300U },
+       { DBSC_DBSCHQOS41, 0x000002F0U },
+       { DBSC_DBSCHQOS42, 0x00000200U },
+       { DBSC_DBSCHQOS43, 0x00000100U },
+       { DBSC_DBSCHQOS90, 0x00000100U },
+       { DBSC_DBSCHQOS91, 0x000000F0U },
+       { DBSC_DBSCHQOS92, 0x000000A0U },
+       { DBSC_DBSCHQOS93, 0x00000040U },
+       { DBSC_DBSCHQOS120, 0x00000040U },
+       { DBSC_DBSCHQOS121, 0x00000030U },
+       { DBSC_DBSCHQOS122, 0x00000020U },
+       { DBSC_DBSCHQOS123, 0x00000010U },
+       { DBSC_DBSCHQOS130, 0x00000100U },
+       { DBSC_DBSCHQOS131, 0x000000F0U },
+       { DBSC_DBSCHQOS132, 0x000000A0U },
+       { DBSC_DBSCHQOS133, 0x00000040U },
+       { DBSC_DBSCHQOS140, 0x000000C0U },
+       { DBSC_DBSCHQOS141, 0x000000B0U },
+       { DBSC_DBSCHQOS142, 0x00000080U },
+       { DBSC_DBSCHQOS143, 0x00000040U },
+       { DBSC_DBSCHQOS150, 0x00000040U },
+       { DBSC_DBSCHQOS151, 0x00000030U },
+       { DBSC_DBSCHQOS152, 0x00000020U },
+       { DBSC_DBSCHQOS153, 0x00000010U },
+};
+
+void qos_init_g2m_v11(void)
+{
+       uint32_t i;
+
+       rzg_qos_dbsc_setting(g2m_v11_qos, ARRAY_SIZE(g2m_v11_qos), false);
+
+       /* DRAM Split Address mapping */
+#if RCAR_DRAM_SPLIT == RCAR_DRAM_SPLIT_4CH
+#if RCAR_LSI == RZ_G2M
+#error "Don't set DRAM Split 4ch(G2M)"
+#else /* RCAR_LSI == RZ_G2M */
+       ERROR("DRAM Split 4ch not supported.(G2M)");
+       panic();
+#endif /* RCAR_LSI == RZ_G2M */
+#elif (RCAR_DRAM_SPLIT == RCAR_DRAM_SPLIT_2CH) || \
+       (RCAR_DRAM_SPLIT == RCAR_DRAM_SPLIT_AUTO)
+       NOTICE("BL2: DRAM Split is 2ch\n");
+       mmio_write_32(AXI_ADSPLCR0, 0x00000000U);
+       mmio_write_32(AXI_ADSPLCR1, ADSPLCR0_ADRMODE_DEFAULT |
+                     ADSPLCR0_SPLITSEL(0xFFU) | ADSPLCR0_AREA(0x1CU) |
+                     ADSPLCR0_SWP);
+       mmio_write_32(AXI_ADSPLCR2, 0x00001004U);
+       mmio_write_32(AXI_ADSPLCR3, 0x00000000U);
+#else /* RCAR_DRAM_SPLIT == RCAR_DRAM_SPLIT_4CH */
+       NOTICE("BL2: DRAM Split is OFF\n");
+#endif /* RCAR_DRAM_SPLIT == RCAR_DRAM_SPLIT_4CH */
+
+#if !(RCAR_QOS_TYPE == RCAR_QOS_NONE)
+#if RCAR_QOS_TYPE  == RCAR_QOS_TYPE_DEFAULT
+       NOTICE("BL2: QoS is default setting(%s)\n", RCAR_QOS_VERSION);
+#endif /* RCAR_QOS_TYPE  == RCAR_QOS_TYPE_DEFAULT */
+
+#if RCAR_REF_INT == RCAR_REF_DEFAULT
+       NOTICE("BL2: DRAM refresh interval 1.95 usec\n");
+#else /* RCAR_REF_INT == RCAR_REF_DEFAULT */
+       NOTICE("BL2: DRAM refresh interval 3.9 usec\n");
+#endif /* RCAR_REF_INT == RCAR_REF_DEFAULT */
+
+#if RCAR_REWT_TRAINING != RCAR_REWT_TRAINING_DISABLE
+       NOTICE("BL2: Periodic Write DQ Training\n");
+#endif /* RCAR_REWT_TRAINING != RCAR_REWT_TRAINING_DISABLE */
+
+       mmio_write_32(QOSCTRL_RAS, 0x00000044U);
+       mmio_write_64(QOSCTRL_DANN, 0x0404020002020201UL);
+       mmio_write_32(QOSCTRL_DANT, 0x0020100AU);
+       mmio_write_32(QOSCTRL_INSFC, 0x06330001U);
+       mmio_write_32(QOSCTRL_RACNT0, 0x02010003U); /* GPU Boost Mode ON */
+
+       mmio_write_32(QOSCTRL_SL_INIT,
+                   SL_INIT_REFFSSLOT | SL_INIT_SLOTSSLOT |
+                   SL_INIT_SSLOTCLK_G2M_11);
+#if RCAR_REWT_TRAINING != RCAR_REWT_TRAINING_DISABLE
+       mmio_write_32(QOSCTRL_REF_ARS,
+                     QOSCTRL_REF_ARS_ARBSTOPCYCLE_G2M_11 << 16);
+#else /* RCAR_REWT_TRAINING != RCAR_REWT_TRAINING_DISABLE */
+       mmio_write_32(QOSCTRL_REF_ARS, 0x00330000U);
+#endif /* RCAR_REWT_TRAINING != RCAR_REWT_TRAINING_DISABLE */
+
+       for (i = 0U; i < ARRAY_SIZE(mstat_fix); i++) {
+               mmio_write_64(QOSBW_FIX_QOS_BANK0 + i * 8U, mstat_fix[i]);
+               mmio_write_64(QOSBW_FIX_QOS_BANK1 + i * 8U, mstat_fix[i]);
+       }
+       for (i = 0U; i < ARRAY_SIZE(mstat_be); i++) {
+               mmio_write_64(QOSBW_BE_QOS_BANK0 + i * 8U, mstat_be[i]);
+               mmio_write_64(QOSBW_BE_QOS_BANK1 + i * 8U, mstat_be[i]);
+       }
+#if RCAR_REWT_TRAINING != RCAR_REWT_TRAINING_DISABLE
+       for (i = 0U; i < ARRAY_SIZE(qoswt_fix); i++) {
+               mmio_write_64(QOSWT_FIX_WTQOS_BANK0 + i * 8U, qoswt_fix[i]);
+               mmio_write_64(QOSWT_FIX_WTQOS_BANK1 + i * 8U, qoswt_fix[i]);
+       }
+       for (i = 0U; i < ARRAY_SIZE(qoswt_be); i++) {
+               mmio_write_64(QOSWT_BE_WTQOS_BANK0 + i * 8U, qoswt_be[i]);
+               mmio_write_64(QOSWT_BE_WTQOS_BANK1 + i * 8U, qoswt_be[i]);
+       }
+#endif /* RCAR_REWT_TRAINING != RCAR_REWT_TRAINING_DISABLE */
+
+       /* 3DG bus Leaf setting */
+       mmio_write_32(GPU_ACT_GRD, 0x00001234U);
+       mmio_write_32(GPU_ACT0, 0x00000000U);
+       mmio_write_32(GPU_ACT1, 0x00000000U);
+       mmio_write_32(GPU_ACT2, 0x00000000U);
+       mmio_write_32(GPU_ACT3, 0x00000000U);
+
+       /* RT bus Leaf setting */
+       mmio_write_32(RT_ACT0, 0x00000000U);
+       mmio_write_32(RT_ACT1, 0x00000000U);
+
+       /* CCI bus Leaf setting */
+       mmio_write_32(CPU_ACT0, 0x00000003U);
+       mmio_write_32(CPU_ACT1, 0x00000003U);
+       mmio_write_32(CPU_ACT2, 0x00000003U);
+       mmio_write_32(CPU_ACT3, 0x00000003U);
+
+       mmio_write_32(QOSCTRL_RAEN, 0x00000001U);
+
+#if RCAR_REWT_TRAINING != RCAR_REWT_TRAINING_DISABLE
+       /*  re-write training setting */
+       mmio_write_32(QOSWT_WTREF,
+                     (QOSWT_WTREF_SLOT1_EN << 16) | QOSWT_WTREF_SLOT0_EN);
+       mmio_write_32(QOSWT_WTSET0,
+                     (QOSWT_WTSET0_PERIOD0_G2M_11 << 16) |
+                     (QOSWT_WTSET0_SSLOT0 << 8) | QOSWT_WTSET0_SLOTSLOT0);
+       mmio_write_32(QOSWT_WTSET1,
+                     (QOSWT_WTSET1_PERIOD1_G2M_11 << 16) |
+                     (QOSWT_WTSET1_SSLOT1 << 8) | QOSWT_WTSET1_SLOTSLOT1);
+
+       mmio_write_32(QOSWT_WTEN, QOSWT_WTEN_ENABLE);
+#endif /* RCAR_REWT_TRAINING != RCAR_REWT_TRAINING_DISABLE */
+
+       mmio_write_32(QOSCTRL_STATQC, 0x00000001U);
+#else /* !(RCAR_QOS_TYPE == RCAR_QOS_NONE) */
+       NOTICE("BL2: QoS is None\n");
+
+       mmio_write_32(QOSCTRL_RAEN, 0x00000001U);
+#endif /* !(RCAR_QOS_TYPE == RCAR_QOS_NONE) */
+}
diff --git a/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v11.h b/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v11.h
new file mode 100644 (file)
index 0000000..d042493
--- /dev/null
@@ -0,0 +1,12 @@
+/*
+ * Copyright (c) 2020, Renesas Electronics Corporation. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef QOS_INIT_G2M_V11_H
+#define QOS_INIT_G2M_V11_H
+
+void qos_init_g2m_v11(void);
+
+#endif /* QOS_INIT_G2M_V11_H */
diff --git a/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v11_mstat195.h b/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v11_mstat195.h
new file mode 100644 (file)
index 0000000..950abd6
--- /dev/null
@@ -0,0 +1,230 @@
+/*
+ * Copyright (c) 2020, Renesas Electronics Corporation. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef QOS_INIT_G2M_V11_MSTAT195_H
+#define QOS_INIT_G2M_V11_MSTAT195_H
+
+static uint64_t mstat_fix[] = {
+       /* 0x0000, */ 0x0000000000000000UL,
+       /* 0x0008, */ 0x0000000000000000UL,
+       /* 0x0010, */ 0x0000000000000000UL,
+       /* 0x0018, */ 0x0000000000000000UL,
+       /* 0x0020, */ 0x0000000000000000UL,
+       /* 0x0028, */ 0x0000000000000000UL,
+       /* 0x0030, */ 0x001004040000FFFFUL,
+       /* 0x0038, */ 0x001004040000FFFFUL,
+       /* 0x0040, */ 0x001414090000FFFFUL,
+       /* 0x0048, */ 0x0000000000000000UL,
+       /* 0x0050, */ 0x001404010000FFFFUL,
+       /* 0x0058, */ 0x00140C0A0000FFFFUL,
+       /* 0x0060, */ 0x00140C0A0000FFFFUL,
+       /* 0x0068, */ 0x0000000000000000UL,
+       /* 0x0070, */ 0x001404010000FFFFUL,
+       /* 0x0078, */ 0x001004030000FFFFUL,
+       /* 0x0080, */ 0x0000000000000000UL,
+       /* 0x0088, */ 0x001414090000FFFFUL,
+       /* 0x0090, */ 0x001408070000FFFFUL,
+       /* 0x0098, */ 0x0000000000000000UL,
+       /* 0x00a0, */ 0x000C04020000FFFFUL,
+       /* 0x00a8, */ 0x000C04010000FFFFUL,
+       /* 0x00b0, */ 0x000C04010000FFFFUL,
+       /* 0x00b8, */ 0x0000000000000000UL,
+       /* 0x00c0, */ 0x000C04020000FFFFUL,
+       /* 0x00c8, */ 0x000C04010000FFFFUL,
+       /* 0x00d0, */ 0x000C04010000FFFFUL,
+       /* 0x00d8, */ 0x000C08050000FFFFUL,
+       /* 0x00e0, */ 0x000C14120000FFFFUL,
+       /* 0x00e8, */ 0x0000000000000000UL,
+       /* 0x00f0, */ 0x0000000000000000UL,
+       /* 0x00f8, */ 0x0000000000000000UL,
+       /* 0x0100, */ 0x0000000000000000UL,
+       /* 0x0108, */ 0x0000000000000000UL,
+       /* 0x0110, */ 0x0000000000000000UL,
+       /* 0x0118, */ 0x0000000000000000UL,
+       /* 0x0120, */ 0x0000000000000000UL,
+       /* 0x0128, */ 0x0000000000000000UL,
+       /* 0x0130, */ 0x0000000000000000UL,
+       /* 0x0138, */ 0x00100C0B0000FFFFUL,
+       /* 0x0140, */ 0x0000000000000000UL,
+       /* 0x0148, */ 0x0000000000000000UL,
+       /* 0x0150, */ 0x0010100D0000FFFFUL,
+       /* 0x0158, */ 0x0000000000000000UL,
+       /* 0x0160, */ 0x00100C0B0000FFFFUL,
+       /* 0x0168, */ 0x0000000000000000UL,
+       /* 0x0170, */ 0x0000000000000000UL,
+       /* 0x0178, */ 0x001008060000FFFFUL,
+       /* 0x0180, */ 0x0000000000000000UL,
+       /* 0x0188, */ 0x0000000000000000UL,
+       /* 0x0190, */ 0x00102C2C0000FFFFUL,
+       /* 0x0198, */ 0x0000000000000000UL,
+       /* 0x01a0, */ 0x00100C0B0000FFFFUL,
+       /* 0x01a8, */ 0x0000000000000000UL,
+       /* 0x01b0, */ 0x0000000000000000UL,
+       /* 0x01b8, */ 0x0000000000000000UL,
+       /* 0x01c0, */ 0x000C04010000FFFFUL,
+       /* 0x01c8, */ 0x000C04010000FFFFUL,
+       /* 0x01d0, */ 0x000C04010000FFFFUL,
+       /* 0x01d8, */ 0x000C04010000FFFFUL,
+       /* 0x01e0, */ 0x0000000000000000UL,
+       /* 0x01e8, */ 0x0000000000000000UL,
+       /* 0x01f0, */ 0x0000000000000000UL,
+       /* 0x01f8, */ 0x0000000000000000UL,
+       /* 0x0200, */ 0x0000000000000000UL,
+       /* 0x0208, */ 0x0000000000000000UL,
+       /* 0x0210, */ 0x0000000000000000UL,
+       /* 0x0218, */ 0x0000000000000000UL,
+       /* 0x0220, */ 0x0000000000000000UL,
+       /* 0x0228, */ 0x0000000000000000UL,
+       /* 0x0230, */ 0x0000000000000000UL,
+       /* 0x0238, */ 0x0000000000000000UL,
+       /* 0x0240, */ 0x0000000000000000UL,
+       /* 0x0248, */ 0x0000000000000000UL,
+       /* 0x0250, */ 0x0000000000000000UL,
+       /* 0x0258, */ 0x0000000000000000UL,
+       /* 0x0260, */ 0x0000000000000000UL,
+       /* 0x0268, */ 0x001408010000FFFFUL,
+       /* 0x0270, */ 0x001404010000FFFFUL,
+       /* 0x0278, */ 0x0000000000000000UL,
+       /* 0x0280, */ 0x0000000000000000UL,
+       /* 0x0288, */ 0x0000000000000000UL,
+       /* 0x0290, */ 0x001408010000FFFFUL,
+       /* 0x0298, */ 0x001404010000FFFFUL,
+       /* 0x02a0, */ 0x000C04010000FFFFUL,
+       /* 0x02a8, */ 0x000C04010000FFFFUL,
+       /* 0x02b0, */ 0x0000000000000000UL,
+       /* 0x02b8, */ 0x0000000000000000UL,
+       /* 0x02c0, */ 0x0000000000000000UL,
+       /* 0x02c8, */ 0x0000000000000000UL,
+       /* 0x02d0, */ 0x000C04010000FFFFUL,
+       /* 0x02d8, */ 0x000C04010000FFFFUL,
+       /* 0x02e0, */ 0x0000000000000000UL,
+       /* 0x02e8, */ 0x0000000000000000UL,
+       /* 0x02f0, */ 0x0000000000000000UL,
+       /* 0x02f8, */ 0x0000000000000000UL,
+       /* 0x0300, */ 0x0000000000000000UL,
+       /* 0x0308, */ 0x0000000000000000UL,
+       /* 0x0310, */ 0x0000000000000000UL,
+       /* 0x0318, */ 0x0000000000000000UL,
+       /* 0x0320, */ 0x0000000000000000UL,
+       /* 0x0328, */ 0x0000000000000000UL,
+       /* 0x0330, */ 0x0000000000000000UL,
+       /* 0x0338, */ 0x0000000000000000UL,
+       /* 0x0340, */ 0x0000000000000000UL,
+       /* 0x0348, */ 0x0000000000000000UL,
+       /* 0x0350, */ 0x0000000000000000UL,
+};
+
+static uint64_t mstat_be[] = {
+       /* 0x0000, */ 0x0000000000000000UL,
+       /* 0x0008, */ 0x0000000000000000UL,
+       /* 0x0010, */ 0x0000000000000000UL,
+       /* 0x0018, */ 0x0000000000000000UL,
+       /* 0x0020, */ 0x0000000000000000UL,
+       /* 0x0028, */ 0x001200100BD03401UL,
+       /* 0x0030, */ 0x0000000000000000UL,
+       /* 0x0038, */ 0x0000000000000000UL,
+       /* 0x0040, */ 0x0000000000000000UL,
+       /* 0x0048, */ 0x0000000000000000UL,
+       /* 0x0050, */ 0x0000000000000000UL,
+       /* 0x0058, */ 0x0000000000000000UL,
+       /* 0x0060, */ 0x0000000000000000UL,
+       /* 0x0068, */ 0x0000000000000000UL,
+       /* 0x0070, */ 0x0000000000000000UL,
+       /* 0x0078, */ 0x0000000000000000UL,
+       /* 0x0080, */ 0x0000000000000000UL,
+       /* 0x0088, */ 0x0000000000000000UL,
+       /* 0x0090, */ 0x0000000000000000UL,
+       /* 0x0098, */ 0x0000000000000000UL,
+       /* 0x00a0, */ 0x0000000000000000UL,
+       /* 0x00a8, */ 0x0000000000000000UL,
+       /* 0x00b0, */ 0x0000000000000000UL,
+       /* 0x00b8, */ 0x0000000000000000UL,
+       /* 0x00c0, */ 0x0000000000000000UL,
+       /* 0x00c8, */ 0x0000000000000000UL,
+       /* 0x00d0, */ 0x0000000000000000UL,
+       /* 0x00d8, */ 0x0000000000000000UL,
+       /* 0x00e0, */ 0x0000000000000000UL,
+       /* 0x00e8, */ 0x0000000000000000UL,
+       /* 0x00f0, */ 0x0000000000000000UL,
+       /* 0x00f8, */ 0x0000000000000000UL,
+       /* 0x0100, */ 0x0000000000000000UL,
+       /* 0x0108, */ 0x0000000000000000UL,
+       /* 0x0110, */ 0x0000000000000000UL,
+       /* 0x0118, */ 0x0000000000000000UL,
+       /* 0x0120, */ 0x0000000000000000UL,
+       /* 0x0128, */ 0x0000000000000000UL,
+       /* 0x0130, */ 0x0000000000000000UL,
+       /* 0x0138, */ 0x0000000000000000UL,
+       /* 0x0140, */ 0x0000000000000000UL,
+       /* 0x0148, */ 0x0000000000000000UL,
+       /* 0x0150, */ 0x0000000000000000UL,
+       /* 0x0158, */ 0x0000000000000000UL,
+       /* 0x0160, */ 0x0000000000000000UL,
+       /* 0x0168, */ 0x0000000000000000UL,
+       /* 0x0170, */ 0x0000000000000000UL,
+       /* 0x0178, */ 0x0000000000000000UL,
+       /* 0x0180, */ 0x0000000000000000UL,
+       /* 0x0188, */ 0x0000000000000000UL,
+       /* 0x0190, */ 0x0000000000000000UL,
+       /* 0x0198, */ 0x0000000000000000UL,
+       /* 0x01a0, */ 0x0000000000000000UL,
+       /* 0x01a8, */ 0x0000000000000000UL,
+       /* 0x01b0, */ 0x0000000000000000UL,
+       /* 0x01b8, */ 0x0000000000000000UL,
+       /* 0x01c0, */ 0x002100600BDFFC01UL,
+       /* 0x01c8, */ 0x002100600BDFFC01UL,
+       /* 0x01d0, */ 0x002100600BDFFC01UL,
+       /* 0x01d8, */ 0x002100600BDFFC01UL,
+       /* 0x01e0, */ 0x0000000000000000UL,
+       /* 0x01e8, */ 0x0000000000000000UL,
+       /* 0x01f0, */ 0x0000000000000000UL,
+       /* 0x01f8, */ 0x0000000000000000UL,
+       /* 0x0200, */ 0x0000000000000000UL,
+       /* 0x0208, */ 0x0000000000000000UL,
+       /* 0x0210, */ 0x0000000000000000UL,
+       /* 0x0218, */ 0x001100200BDFFC01UL,
+       /* 0x0220, */ 0x001100200BDFFC01UL,
+       /* 0x0228, */ 0x0000000000000000UL,
+       /* 0x0230, */ 0x001100200BDFFC01UL,
+       /* 0x0238, */ 0x001100200BDFFC01UL,
+       /* 0x0240, */ 0x001200200BDFFC01UL,
+       /* 0x0248, */ 0x001100200BDFFC01UL,
+       /* 0x0250, */ 0x001200200BDFFC01UL,
+       /* 0x0258, */ 0x001100200BDFFC01UL,
+       /* 0x0260, */ 0x0000000000000000UL,
+       /* 0x0268, */ 0x0000000000000000UL,
+       /* 0x0270, */ 0x0000000000000000UL,
+       /* 0x0278, */ 0x0000000000000000UL,
+       /* 0x0280, */ 0x0000000000000000UL,
+       /* 0x0288, */ 0x0000000000000000UL,
+       /* 0x0290, */ 0x0000000000000000UL,
+       /* 0x0298, */ 0x0000000000000000UL,
+       /* 0x02a0, */ 0x0000000000000000UL,
+       /* 0x02a8, */ 0x0000000000000000UL,
+       /* 0x02b0, */ 0x0000000000000000UL,
+       /* 0x02b8, */ 0x0000000000000000UL,
+       /* 0x02c0, */ 0x0000000000000000UL,
+       /* 0x02c8, */ 0x0000000000000000UL,
+       /* 0x02d0, */ 0x0000000000000000UL,
+       /* 0x02d8, */ 0x0000000000000000UL,
+       /* 0x02e0, */ 0x0000000000000000UL,
+       /* 0x02e8, */ 0x0000000000000000UL,
+       /* 0x02f0, */ 0x001100400BDFFC01UL,
+       /* 0x02f8, */ 0x001100600BDFFC01UL,
+       /* 0x0300, */ 0x0000000000000000UL,
+       /* 0x0308, */ 0x001100400BDFFC01UL,
+       /* 0x0310, */ 0x001100600BDFFC01UL,
+       /* 0x0318, */ 0x001200100BD03401UL,
+       /* 0x0320, */ 0x0000000000000000UL,
+       /* 0x0328, */ 0x0000000000000000UL,
+       /* 0x0330, */ 0x0000000000000000UL,
+       /* 0x0338, */ 0x0000000000000000UL,
+       /* 0x0340, */ 0x0000000000000000UL,
+       /* 0x0348, */ 0x0000000000000000UL,
+       /* 0x0350, */ 0x0000000000000000UL,
+};
+
+#endif /* QOS_INIT_G2M_V11_MSTAT195_H */
diff --git a/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v11_mstat390.h b/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v11_mstat390.h
new file mode 100644 (file)
index 0000000..5c6fd24
--- /dev/null
@@ -0,0 +1,230 @@
+/*
+ * Copyright (c) 2020, Renesas Electronics Corporation. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef QOS_INIT_G2M_V11_MSTAT390_H
+#define QOS_INIT_G2M_V11_MSTAT390_H
+
+static uint64_t mstat_fix[] = {
+       /* 0x0000, */ 0x0000000000000000UL,
+       /* 0x0008, */ 0x0000000000000000UL,
+       /* 0x0010, */ 0x0000000000000000UL,
+       /* 0x0018, */ 0x0000000000000000UL,
+       /* 0x0020, */ 0x0000000000000000UL,
+       /* 0x0028, */ 0x0000000000000000UL,
+       /* 0x0030, */ 0x001008070000FFFFUL,
+       /* 0x0038, */ 0x001008070000FFFFUL,
+       /* 0x0040, */ 0x001424120000FFFFUL,
+       /* 0x0048, */ 0x0000000000000000UL,
+       /* 0x0050, */ 0x001404010000FFFFUL,
+       /* 0x0058, */ 0x001414130000FFFFUL,
+       /* 0x0060, */ 0x001414130000FFFFUL,
+       /* 0x0068, */ 0x0000000000000000UL,
+       /* 0x0070, */ 0x001404010000FFFFUL,
+       /* 0x0078, */ 0x001008050000FFFFUL,
+       /* 0x0080, */ 0x0000000000000000UL,
+       /* 0x0088, */ 0x001424120000FFFFUL,
+       /* 0x0090, */ 0x0014100D0000FFFFUL,
+       /* 0x0098, */ 0x0000000000000000UL,
+       /* 0x00a0, */ 0x000C08040000FFFFUL,
+       /* 0x00a8, */ 0x000C04020000FFFFUL,
+       /* 0x00b0, */ 0x000C04020000FFFFUL,
+       /* 0x00b8, */ 0x0000000000000000UL,
+       /* 0x00c0, */ 0x000C08040000FFFFUL,
+       /* 0x00c8, */ 0x000C04020000FFFFUL,
+       /* 0x00d0, */ 0x000C04020000FFFFUL,
+       /* 0x00d8, */ 0x000C0C0A0000FFFFUL,
+       /* 0x00e0, */ 0x000C24230000FFFFUL,
+       /* 0x00e8, */ 0x0000000000000000UL,
+       /* 0x00f0, */ 0x001044110000FFFFUL,
+       /* 0x00f8, */ 0x0000000000000000UL,
+       /* 0x0100, */ 0x0000000000000000UL,
+       /* 0x0108, */ 0x0000000000000000UL,
+       /* 0x0110, */ 0x001014110000FFFFUL,
+       /* 0x0118, */ 0x0000000000000000UL,
+       /* 0x0120, */ 0x0000000000000000UL,
+       /* 0x0128, */ 0x0000000000000000UL,
+       /* 0x0130, */ 0x0000000000000000UL,
+       /* 0x0138, */ 0x001018150000FFFFUL,
+       /* 0x0140, */ 0x0000000000000000UL,
+       /* 0x0148, */ 0x0000000000000000UL,
+       /* 0x0150, */ 0x00101C190000FFFFUL,
+       /* 0x0158, */ 0x0000000000000000UL,
+       /* 0x0160, */ 0x001018150000FFFFUL,
+       /* 0x0168, */ 0x0000000000000000UL,
+       /* 0x0170, */ 0x0000000000000000UL,
+       /* 0x0178, */ 0x00100C0B0000FFFFUL,
+       /* 0x0180, */ 0x0000000000000000UL,
+       /* 0x0188, */ 0x0000000000000000UL,
+       /* 0x0190, */ 0x001058570000FFFFUL,
+       /* 0x0198, */ 0x0000000000000000UL,
+       /* 0x01a0, */ 0x001018150000FFFFUL,
+       /* 0x01a8, */ 0x0000000000000000UL,
+       /* 0x01b0, */ 0x0000000000000000UL,
+       /* 0x01b8, */ 0x0000000000000000UL,
+       /* 0x01c0, */ 0x000C04010000FFFFUL,
+       /* 0x01c8, */ 0x000C04010000FFFFUL,
+       /* 0x01d0, */ 0x000C04010000FFFFUL,
+       /* 0x01d8, */ 0x000C04010000FFFFUL,
+       /* 0x01e0, */ 0x0000000000000000UL,
+       /* 0x01e8, */ 0x000C04010000FFFFUL,
+       /* 0x01f0, */ 0x000C04010000FFFFUL,
+       /* 0x01f8, */ 0x0000000000000000UL,
+       /* 0x0200, */ 0x0000000000000000UL,
+       /* 0x0208, */ 0x000C04010000FFFFUL,
+       /* 0x0210, */ 0x000C04010000FFFFUL,
+       /* 0x0218, */ 0x0000000000000000UL,
+       /* 0x0220, */ 0x0000000000000000UL,
+       /* 0x0228, */ 0x0000000000000000UL,
+       /* 0x0230, */ 0x0000000000000000UL,
+       /* 0x0238, */ 0x0000000000000000UL,
+       /* 0x0240, */ 0x0000000000000000UL,
+       /* 0x0248, */ 0x0000000000000000UL,
+       /* 0x0250, */ 0x0000000000000000UL,
+       /* 0x0258, */ 0x0000000000000000UL,
+       /* 0x0260, */ 0x000C0C030000FFFFUL,
+       /* 0x0268, */ 0x001410010000FFFFUL,
+       /* 0x0270, */ 0x001404010000FFFFUL,
+       /* 0x0278, */ 0x000C08020000FFFFUL,
+       /* 0x0280, */ 0x0000000000000000UL,
+       /* 0x0288, */ 0x0000000000000000UL,
+       /* 0x0290, */ 0x001410010000FFFFUL,
+       /* 0x0298, */ 0x001404010000FFFFUL,
+       /* 0x02a0, */ 0x000C04010000FFFFUL,
+       /* 0x02a8, */ 0x000C04010000FFFFUL,
+       /* 0x02b0, */ 0x00140C010000FFFFUL,
+       /* 0x02b8, */ 0x000C04010000FFFFUL,
+       /* 0x02c0, */ 0x0000000000000000UL,
+       /* 0x02c8, */ 0x0000000000000000UL,
+       /* 0x02d0, */ 0x000C04010000FFFFUL,
+       /* 0x02d8, */ 0x000C04010000FFFFUL,
+       /* 0x02e0, */ 0x00140C010000FFFFUL,
+       /* 0x02e8, */ 0x000C04010000FFFFUL,
+       /* 0x02f0, */ 0x0000000000000000UL,
+       /* 0x02f8, */ 0x0000000000000000UL,
+       /* 0x0300, */ 0x0000000000000000UL,
+       /* 0x0308, */ 0x0000000000000000UL,
+       /* 0x0310, */ 0x0000000000000000UL,
+       /* 0x0318, */ 0x0000000000000000UL,
+       /* 0x0320, */ 0x0000000000000000UL,
+       /* 0x0328, */ 0x0000000000000000UL,
+       /* 0x0330, */ 0x0000000000000000UL,
+       /* 0x0338, */ 0x0000000000000000UL,
+       /* 0x0340, */ 0x0000000000000000UL,
+       /* 0x0348, */ 0x0000000000000000UL,
+       /* 0x0350, */ 0x0000000000000000UL,
+};
+
+static uint64_t mstat_be[] = {
+       /* 0x0000, */ 0x0012003005EFFC01UL,
+       /* 0x0008, */ 0x0012003005EFFC01UL,
+       /* 0x0010, */ 0x0012003005EFFC01UL,
+       /* 0x0018, */ 0x0012003005EFFC01UL,
+       /* 0x0020, */ 0x0000000000000000UL,
+       /* 0x0028, */ 0x0012001005E03401UL,
+       /* 0x0030, */ 0x0000000000000000UL,
+       /* 0x0038, */ 0x0000000000000000UL,
+       /* 0x0040, */ 0x0000000000000000UL,
+       /* 0x0048, */ 0x0000000000000000UL,
+       /* 0x0050, */ 0x0000000000000000UL,
+       /* 0x0058, */ 0x0000000000000000UL,
+       /* 0x0060, */ 0x0000000000000000UL,
+       /* 0x0068, */ 0x0000000000000000UL,
+       /* 0x0070, */ 0x0000000000000000UL,
+       /* 0x0078, */ 0x0000000000000000UL,
+       /* 0x0080, */ 0x0000000000000000UL,
+       /* 0x0088, */ 0x0000000000000000UL,
+       /* 0x0090, */ 0x0000000000000000UL,
+       /* 0x0098, */ 0x0000000000000000UL,
+       /* 0x00a0, */ 0x0000000000000000UL,
+       /* 0x00a8, */ 0x0000000000000000UL,
+       /* 0x00b0, */ 0x0000000000000000UL,
+       /* 0x00b8, */ 0x0000000000000000UL,
+       /* 0x00c0, */ 0x0000000000000000UL,
+       /* 0x00c8, */ 0x0000000000000000UL,
+       /* 0x00d0, */ 0x0000000000000000UL,
+       /* 0x00d8, */ 0x0000000000000000UL,
+       /* 0x00e0, */ 0x0000000000000000UL,
+       /* 0x00e8, */ 0x0000000000000000UL,
+       /* 0x00f0, */ 0x0000000000000000UL,
+       /* 0x00f8, */ 0x0000000000000000UL,
+       /* 0x0100, */ 0x0000000000000000UL,
+       /* 0x0108, */ 0x0000000000000000UL,
+       /* 0x0110, */ 0x0000000000000000UL,
+       /* 0x0118, */ 0x0000000000000000UL,
+       /* 0x0120, */ 0x0000000000000000UL,
+       /* 0x0128, */ 0x0000000000000000UL,
+       /* 0x0130, */ 0x0000000000000000UL,
+       /* 0x0138, */ 0x0000000000000000UL,
+       /* 0x0140, */ 0x0000000000000000UL,
+       /* 0x0148, */ 0x0000000000000000UL,
+       /* 0x0150, */ 0x0000000000000000UL,
+       /* 0x0158, */ 0x0000000000000000UL,
+       /* 0x0160, */ 0x0000000000000000UL,
+       /* 0x0168, */ 0x0000000000000000UL,
+       /* 0x0170, */ 0x0000000000000000UL,
+       /* 0x0178, */ 0x0000000000000000UL,
+       /* 0x0180, */ 0x0000000000000000UL,
+       /* 0x0188, */ 0x0000000000000000UL,
+       /* 0x0190, */ 0x0000000000000000UL,
+       /* 0x0198, */ 0x0000000000000000UL,
+       /* 0x01a0, */ 0x0000000000000000UL,
+       /* 0x01a8, */ 0x0000000000000000UL,
+       /* 0x01b0, */ 0x0000000000000000UL,
+       /* 0x01b8, */ 0x0000000000000000UL,
+       /* 0x01c0, */ 0x002100B005EFFC01UL,
+       /* 0x01c8, */ 0x002100B005EFFC01UL,
+       /* 0x01d0, */ 0x002100B005EFFC01UL,
+       /* 0x01d8, */ 0x002100B005EFFC01UL,
+       /* 0x01e0, */ 0x0000000000000000UL,
+       /* 0x01e8, */ 0x0000000000000000UL,
+       /* 0x01f0, */ 0x0021003005EFFC01UL,
+       /* 0x01f8, */ 0x0000000000000000UL,
+       /* 0x0200, */ 0x0000000000000000UL,
+       /* 0x0208, */ 0x0000000000000000UL,
+       /* 0x0210, */ 0x0021003005EFFC01UL,
+       /* 0x0218, */ 0x0011003005EFFC01UL,
+       /* 0x0220, */ 0x0011003005EFFC01UL,
+       /* 0x0228, */ 0x0000000000000000UL,
+       /* 0x0230, */ 0x0011003005EFFC01UL,
+       /* 0x0238, */ 0x0011003005EFFC01UL,
+       /* 0x0240, */ 0x0012003005EFFC01UL,
+       /* 0x0248, */ 0x0011003005EFFC01UL,
+       /* 0x0250, */ 0x0012003005EFFC01UL,
+       /* 0x0258, */ 0x0011003005EFFC01UL,
+       /* 0x0260, */ 0x0000000000000000UL,
+       /* 0x0268, */ 0x0000000000000000UL,
+       /* 0x0270, */ 0x0000000000000000UL,
+       /* 0x0278, */ 0x0000000000000000UL,
+       /* 0x0280, */ 0x0000000000000000UL,
+       /* 0x0288, */ 0x0000000000000000UL,
+       /* 0x0290, */ 0x0000000000000000UL,
+       /* 0x0298, */ 0x0000000000000000UL,
+       /* 0x02a0, */ 0x0000000000000000UL,
+       /* 0x02a8, */ 0x0000000000000000UL,
+       /* 0x02b0, */ 0x0000000000000000UL,
+       /* 0x02b8, */ 0x0000000000000000UL,
+       /* 0x02c0, */ 0x0000000000000000UL,
+       /* 0x02c8, */ 0x0000000000000000UL,
+       /* 0x02d0, */ 0x0000000000000000UL,
+       /* 0x02d8, */ 0x0000000000000000UL,
+       /* 0x02e0, */ 0x0000000000000000UL,
+       /* 0x02e8, */ 0x0000000000000000UL,
+       /* 0x02f0, */ 0x0011007005EFFC01UL,
+       /* 0x02f8, */ 0x001100B005EFFC01UL,
+       /* 0x0300, */ 0x0000000000000000UL,
+       /* 0x0308, */ 0x0011007005EFFC01UL,
+       /* 0x0310, */ 0x001100B005EFFC01UL,
+       /* 0x0318, */ 0x0012001005E03401UL,
+       /* 0x0320, */ 0x0000000000000000UL,
+       /* 0x0328, */ 0x0000000000000000UL,
+       /* 0x0330, */ 0x0000000000000000UL,
+       /* 0x0338, */ 0x0000000000000000UL,
+       /* 0x0340, */ 0x0000000000000000UL,
+       /* 0x0348, */ 0x0000000000000000UL,
+       /* 0x0350, */ 0x0000000000000000UL,
+};
+
+#endif /* QOS_INIT_G2M_V11_MSTAT390_H */
diff --git a/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v11_qoswt195.h b/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v11_qoswt195.h
new file mode 100644 (file)
index 0000000..f526a82
--- /dev/null
@@ -0,0 +1,230 @@
+/*
+ * Copyright (c) 2020, Renesas Electronics Corporation. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef QOS_INIT_G2M_V11_QOSWT195_H
+#define QOS_INIT_G2M_V11_QOSWT195_H
+
+static uint64_t qoswt_fix[] = {
+       /* 0x0000, */ 0x0000000000000000UL,
+       /* 0x0008, */ 0x0000000000000000UL,
+       /* 0x0010, */ 0x0000000000000000UL,
+       /* 0x0018, */ 0x0000000000000000UL,
+       /* 0x0020, */ 0x0000000000000000UL,
+       /* 0x0028, */ 0x0000000000000000UL,
+       /* 0x0030, */ 0x001004040000C010UL,
+       /* 0x0038, */ 0x001004040000C010UL,
+       /* 0x0040, */ 0x001414090000FFF0UL,
+       /* 0x0048, */ 0x0000000000000000UL,
+       /* 0x0050, */ 0x0000000000000000UL,
+       /* 0x0058, */ 0x00140C0A0000C010UL,
+       /* 0x0060, */ 0x00140C0A0000C010UL,
+       /* 0x0068, */ 0x0000000000000000UL,
+       /* 0x0070, */ 0x0000000000000000UL,
+       /* 0x0078, */ 0x001004030000C010UL,
+       /* 0x0080, */ 0x0000000000000000UL,
+       /* 0x0088, */ 0x001414090000FFF0UL,
+       /* 0x0090, */ 0x001408070000C010UL,
+       /* 0x0098, */ 0x0000000000000000UL,
+       /* 0x00a0, */ 0x0000000000000000UL,
+       /* 0x00a8, */ 0x0000000000000000UL,
+       /* 0x00b0, */ 0x0000000000000000UL,
+       /* 0x00b8, */ 0x0000000000000000UL,
+       /* 0x00c0, */ 0x0000000000000000UL,
+       /* 0x00c8, */ 0x0000000000000000UL,
+       /* 0x00d0, */ 0x0000000000000000UL,
+       /* 0x00d8, */ 0x0000000000000000UL,
+       /* 0x00e0, */ 0x0000000000000000UL,
+       /* 0x00e8, */ 0x0000000000000000UL,
+       /* 0x00f0, */ 0x0000000000000000UL,
+       /* 0x00f8, */ 0x0000000000000000UL,
+       /* 0x0100, */ 0x0000000000000000UL,
+       /* 0x0108, */ 0x0000000000000000UL,
+       /* 0x0110, */ 0x0000000000000000UL,
+       /* 0x0118, */ 0x0000000000000000UL,
+       /* 0x0120, */ 0x0000000000000000UL,
+       /* 0x0128, */ 0x0000000000000000UL,
+       /* 0x0130, */ 0x0000000000000000UL,
+       /* 0x0138, */ 0x0000000000000000UL,
+       /* 0x0140, */ 0x0000000000000000UL,
+       /* 0x0148, */ 0x0000000000000000UL,
+       /* 0x0150, */ 0x0000000000000000UL,
+       /* 0x0158, */ 0x0000000000000000UL,
+       /* 0x0160, */ 0x0000000000000000UL,
+       /* 0x0168, */ 0x0000000000000000UL,
+       /* 0x0170, */ 0x0000000000000000UL,
+       /* 0x0178, */ 0x0000000000000000UL,
+       /* 0x0180, */ 0x0000000000000000UL,
+       /* 0x0188, */ 0x0000000000000000UL,
+       /* 0x0190, */ 0x0000000000000000UL,
+       /* 0x0198, */ 0x0000000000000000UL,
+       /* 0x01a0, */ 0x0000000000000000UL,
+       /* 0x01a8, */ 0x0000000000000000UL,
+       /* 0x01b0, */ 0x0000000000000000UL,
+       /* 0x01b8, */ 0x0000000000000000UL,
+       /* 0x01c0, */ 0x0000000000000000UL,
+       /* 0x01c8, */ 0x0000000000000000UL,
+       /* 0x01d0, */ 0x0000000000000000UL,
+       /* 0x01d8, */ 0x0000000000000000UL,
+       /* 0x01e0, */ 0x0000000000000000UL,
+       /* 0x01e8, */ 0x0000000000000000UL,
+       /* 0x01f0, */ 0x0000000000000000UL,
+       /* 0x01f8, */ 0x0000000000000000UL,
+       /* 0x0200, */ 0x0000000000000000UL,
+       /* 0x0208, */ 0x0000000000000000UL,
+       /* 0x0210, */ 0x0000000000000000UL,
+       /* 0x0218, */ 0x0000000000000000UL,
+       /* 0x0220, */ 0x0000000000000000UL,
+       /* 0x0228, */ 0x0000000000000000UL,
+       /* 0x0230, */ 0x0000000000000000UL,
+       /* 0x0238, */ 0x0000000000000000UL,
+       /* 0x0240, */ 0x0000000000000000UL,
+       /* 0x0248, */ 0x0000000000000000UL,
+       /* 0x0250, */ 0x0000000000000000UL,
+       /* 0x0258, */ 0x0000000000000000UL,
+       /* 0x0260, */ 0x000C08020000FFF0UL,
+       /* 0x0268, */ 0x001408010000FFF0UL,
+       /* 0x0270, */ 0x001404010000FFF0UL,
+       /* 0x0278, */ 0x000C04010000FFF0UL,
+       /* 0x0280, */ 0x0000000000000000UL,
+       /* 0x0288, */ 0x0000000000000000UL,
+       /* 0x0290, */ 0x001408010000FFF0UL,
+       /* 0x0298, */ 0x001404010000FFF0UL,
+       /* 0x02a0, */ 0x0000000000000000UL,
+       /* 0x02a8, */ 0x0000000000000000UL,
+       /* 0x02b0, */ 0x0000000000000000UL,
+       /* 0x02b8, */ 0x0000000000000000UL,
+       /* 0x02c0, */ 0x0000000000000000UL,
+       /* 0x02c8, */ 0x0000000000000000UL,
+       /* 0x02d0, */ 0x0000000000000000UL,
+       /* 0x02d8, */ 0x0000000000000000UL,
+       /* 0x02e0, */ 0x0000000000000000UL,
+       /* 0x02e8, */ 0x0000000000000000UL,
+       /* 0x02f0, */ 0x0000000000000000UL,
+       /* 0x02f8, */ 0x0000000000000000UL,
+       /* 0x0300, */ 0x0000000000000000UL,
+       /* 0x0308, */ 0x0000000000000000UL,
+       /* 0x0310, */ 0x0000000000000000UL,
+       /* 0x0318, */ 0x0000000000000000UL,
+       /* 0x0320, */ 0x0000000000000000UL,
+       /* 0x0328, */ 0x0000000000000000UL,
+       /* 0x0330, */ 0x0000000000000000UL,
+       /* 0x0338, */ 0x0000000000000000UL,
+       /* 0x0340, */ 0x0000000000000000UL,
+       /* 0x0348, */ 0x0000000000000000UL,
+       /* 0x0350, */ 0x0000000000000000UL,
+};
+
+static uint64_t qoswt_be[] = {
+       /* 0x0000, */ 0x0000000000000000UL,
+       /* 0x0008, */ 0x0000000000000000UL,
+       /* 0x0010, */ 0x0000000000000000UL,
+       /* 0x0018, */ 0x0000000000000000UL,
+       /* 0x0020, */ 0x0000000000000000UL,
+       /* 0x0028, */ 0x0000000000000000UL,
+       /* 0x0030, */ 0x0000000000000000UL,
+       /* 0x0038, */ 0x0000000000000000UL,
+       /* 0x0040, */ 0x0000000000000000UL,
+       /* 0x0048, */ 0x0000000000000000UL,
+       /* 0x0050, */ 0x0000000000000000UL,
+       /* 0x0058, */ 0x0000000000000000UL,
+       /* 0x0060, */ 0x0000000000000000UL,
+       /* 0x0068, */ 0x0000000000000000UL,
+       /* 0x0070, */ 0x0000000000000000UL,
+       /* 0x0078, */ 0x0000000000000000UL,
+       /* 0x0080, */ 0x0000000000000000UL,
+       /* 0x0088, */ 0x0000000000000000UL,
+       /* 0x0090, */ 0x0000000000000000UL,
+       /* 0x0098, */ 0x0000000000000000UL,
+       /* 0x00a0, */ 0x0000000000000000UL,
+       /* 0x00a8, */ 0x0000000000000000UL,
+       /* 0x00b0, */ 0x0000000000000000UL,
+       /* 0x00b8, */ 0x0000000000000000UL,
+       /* 0x00c0, */ 0x0000000000000000UL,
+       /* 0x00c8, */ 0x0000000000000000UL,
+       /* 0x00d0, */ 0x0000000000000000UL,
+       /* 0x00d8, */ 0x0000000000000000UL,
+       /* 0x00e0, */ 0x0000000000000000UL,
+       /* 0x00e8, */ 0x0000000000000000UL,
+       /* 0x00f0, */ 0x0000000000000000UL,
+       /* 0x00f8, */ 0x0000000000000000UL,
+       /* 0x0100, */ 0x0000000000000000UL,
+       /* 0x0108, */ 0x0000000000000000UL,
+       /* 0x0110, */ 0x0000000000000000UL,
+       /* 0x0118, */ 0x0000000000000000UL,
+       /* 0x0120, */ 0x0000000000000000UL,
+       /* 0x0128, */ 0x0000000000000000UL,
+       /* 0x0130, */ 0x0000000000000000UL,
+       /* 0x0138, */ 0x0000000000000000UL,
+       /* 0x0140, */ 0x0000000000000000UL,
+       /* 0x0148, */ 0x0000000000000000UL,
+       /* 0x0150, */ 0x0000000000000000UL,
+       /* 0x0158, */ 0x0000000000000000UL,
+       /* 0x0160, */ 0x0000000000000000UL,
+       /* 0x0168, */ 0x0000000000000000UL,
+       /* 0x0170, */ 0x0000000000000000UL,
+       /* 0x0178, */ 0x0000000000000000UL,
+       /* 0x0180, */ 0x0000000000000000UL,
+       /* 0x0188, */ 0x0000000000000000UL,
+       /* 0x0190, */ 0x0000000000000000UL,
+       /* 0x0198, */ 0x0000000000000000UL,
+       /* 0x01a0, */ 0x0000000000000000UL,
+       /* 0x01a8, */ 0x0000000000000000UL,
+       /* 0x01b0, */ 0x0000000000000000UL,
+       /* 0x01b8, */ 0x0000000000000000UL,
+       /* 0x01c0, */ 0x0000000000000000UL,
+       /* 0x01c8, */ 0x0000000000000000UL,
+       /* 0x01d0, */ 0x0000000000000000UL,
+       /* 0x01d8, */ 0x0000000000000000UL,
+       /* 0x01e0, */ 0x0000000000000000UL,
+       /* 0x01e8, */ 0x0000000000000000UL,
+       /* 0x01f0, */ 0x0000000000000000UL,
+       /* 0x01f8, */ 0x0000000000000000UL,
+       /* 0x0200, */ 0x0000000000000000UL,
+       /* 0x0208, */ 0x0000000000000000UL,
+       /* 0x0210, */ 0x0000000000000000UL,
+       /* 0x0218, */ 0x0000000000000000UL,
+       /* 0x0220, */ 0x0000000000000000UL,
+       /* 0x0228, */ 0x0000000000000000UL,
+       /* 0x0230, */ 0x0000000000000000UL,
+       /* 0x0238, */ 0x0000000000000000UL,
+       /* 0x0240, */ 0x0000000000000000UL,
+       /* 0x0248, */ 0x0000000000000000UL,
+       /* 0x0250, */ 0x0000000000000000UL,
+       /* 0x0258, */ 0x0000000000000000UL,
+       /* 0x0260, */ 0x0000000000000000UL,
+       /* 0x0268, */ 0x0000000000000000UL,
+       /* 0x0270, */ 0x0000000000000000UL,
+       /* 0x0278, */ 0x0000000000000000UL,
+       /* 0x0280, */ 0x0000000000000000UL,
+       /* 0x0288, */ 0x0000000000000000UL,
+       /* 0x0290, */ 0x0000000000000000UL,
+       /* 0x0298, */ 0x0000000000000000UL,
+       /* 0x02a0, */ 0x0000000000000000UL,
+       /* 0x02a8, */ 0x0000000000000000UL,
+       /* 0x02b0, */ 0x0000000000000000UL,
+       /* 0x02b8, */ 0x0000000000000000UL,
+       /* 0x02c0, */ 0x0000000000000000UL,
+       /* 0x02c8, */ 0x0000000000000000UL,
+       /* 0x02d0, */ 0x0000000000000000UL,
+       /* 0x02d8, */ 0x0000000000000000UL,
+       /* 0x02e0, */ 0x0000000000000000UL,
+       /* 0x02e8, */ 0x0000000000000000UL,
+       /* 0x02f0, */ 0x0000000000000000UL,
+       /* 0x02f8, */ 0x0000000000000000UL,
+       /* 0x0300, */ 0x0000000000000000UL,
+       /* 0x0308, */ 0x0000000000000000UL,
+       /* 0x0310, */ 0x0000000000000000UL,
+       /* 0x0318, */ 0x0000000000000000UL,
+       /* 0x0320, */ 0x0000000000000000UL,
+       /* 0x0328, */ 0x0000000000000000UL,
+       /* 0x0330, */ 0x0000000000000000UL,
+       /* 0x0338, */ 0x0000000000000000UL,
+       /* 0x0340, */ 0x0000000000000000UL,
+       /* 0x0348, */ 0x0000000000000000UL,
+       /* 0x0350, */ 0x0000000000000000UL,
+};
+
+#endif /* QOS_INIT_G2M_V11_QOSWT195_H */
diff --git a/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v11_qoswt390.h b/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v11_qoswt390.h
new file mode 100644 (file)
index 0000000..bfb80e3
--- /dev/null
@@ -0,0 +1,230 @@
+/*
+ * Copyright (c) 2020, Renesas Electronics Corporation. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef QOS_INIT_G2M_V11_QOSWT390_H
+#define QOS_INIT_G2M_V11_QOSWT390_H
+
+static uint64_t qoswt_fix[] = {
+       /* 0x0000, */ 0x0000000000000000UL,
+       /* 0x0008, */ 0x0000000000000000UL,
+       /* 0x0010, */ 0x0000000000000000UL,
+       /* 0x0018, */ 0x0000000000000000UL,
+       /* 0x0020, */ 0x0000000000000000UL,
+       /* 0x0028, */ 0x0000000000000000UL,
+       /* 0x0030, */ 0x001008070000C010UL,
+       /* 0x0038, */ 0x001008070000C010UL,
+       /* 0x0040, */ 0x001424120000FFF0UL,
+       /* 0x0048, */ 0x0000000000000000UL,
+       /* 0x0050, */ 0x0000000000000000UL,
+       /* 0x0058, */ 0x001414130000C010UL,
+       /* 0x0060, */ 0x001414130000C010UL,
+       /* 0x0068, */ 0x0000000000000000UL,
+       /* 0x0070, */ 0x0000000000000000UL,
+       /* 0x0078, */ 0x001008050000C010UL,
+       /* 0x0080, */ 0x0000000000000000UL,
+       /* 0x0088, */ 0x001424120000FFF0UL,
+       /* 0x0090, */ 0x0014100D0000C010UL,
+       /* 0x0098, */ 0x0000000000000000UL,
+       /* 0x00a0, */ 0x0000000000000000UL,
+       /* 0x00a8, */ 0x0000000000000000UL,
+       /* 0x00b0, */ 0x0000000000000000UL,
+       /* 0x00b8, */ 0x0000000000000000UL,
+       /* 0x00c0, */ 0x0000000000000000UL,
+       /* 0x00c8, */ 0x0000000000000000UL,
+       /* 0x00d0, */ 0x0000000000000000UL,
+       /* 0x00d8, */ 0x0000000000000000UL,
+       /* 0x00e0, */ 0x0000000000000000UL,
+       /* 0x00e8, */ 0x0000000000000000UL,
+       /* 0x00f0, */ 0x0000000000000000UL,
+       /* 0x00f8, */ 0x0000000000000000UL,
+       /* 0x0100, */ 0x0000000000000000UL,
+       /* 0x0108, */ 0x0000000000000000UL,
+       /* 0x0110, */ 0x0000000000000000UL,
+       /* 0x0118, */ 0x0000000000000000UL,
+       /* 0x0120, */ 0x0000000000000000UL,
+       /* 0x0128, */ 0x0000000000000000UL,
+       /* 0x0130, */ 0x0000000000000000UL,
+       /* 0x0138, */ 0x0000000000000000UL,
+       /* 0x0140, */ 0x0000000000000000UL,
+       /* 0x0148, */ 0x0000000000000000UL,
+       /* 0x0150, */ 0x0000000000000000UL,
+       /* 0x0158, */ 0x0000000000000000UL,
+       /* 0x0160, */ 0x0000000000000000UL,
+       /* 0x0168, */ 0x0000000000000000UL,
+       /* 0x0170, */ 0x0000000000000000UL,
+       /* 0x0178, */ 0x0000000000000000UL,
+       /* 0x0180, */ 0x0000000000000000UL,
+       /* 0x0188, */ 0x0000000000000000UL,
+       /* 0x0190, */ 0x0000000000000000UL,
+       /* 0x0198, */ 0x0000000000000000UL,
+       /* 0x01a0, */ 0x0000000000000000UL,
+       /* 0x01a8, */ 0x0000000000000000UL,
+       /* 0x01b0, */ 0x0000000000000000UL,
+       /* 0x01b8, */ 0x0000000000000000UL,
+       /* 0x01c0, */ 0x0000000000000000UL,
+       /* 0x01c8, */ 0x0000000000000000UL,
+       /* 0x01d0, */ 0x0000000000000000UL,
+       /* 0x01d8, */ 0x0000000000000000UL,
+       /* 0x01e0, */ 0x0000000000000000UL,
+       /* 0x01e8, */ 0x0000000000000000UL,
+       /* 0x01f0, */ 0x0000000000000000UL,
+       /* 0x01f8, */ 0x0000000000000000UL,
+       /* 0x0200, */ 0x0000000000000000UL,
+       /* 0x0208, */ 0x0000000000000000UL,
+       /* 0x0210, */ 0x0000000000000000UL,
+       /* 0x0218, */ 0x0000000000000000UL,
+       /* 0x0220, */ 0x0000000000000000UL,
+       /* 0x0228, */ 0x0000000000000000UL,
+       /* 0x0230, */ 0x0000000000000000UL,
+       /* 0x0238, */ 0x0000000000000000UL,
+       /* 0x0240, */ 0x0000000000000000UL,
+       /* 0x0248, */ 0x0000000000000000UL,
+       /* 0x0250, */ 0x0000000000000000UL,
+       /* 0x0258, */ 0x0000000000000000UL,
+       /* 0x0260, */ 0x000C0C030000FFF0UL,
+       /* 0x0268, */ 0x001410010000FFF0UL,
+       /* 0x0270, */ 0x001404010000FFF0UL,
+       /* 0x0278, */ 0x000C08020000FFF0UL,
+       /* 0x0280, */ 0x0000000000000000UL,
+       /* 0x0288, */ 0x0000000000000000UL,
+       /* 0x0290, */ 0x001410010000FFF0UL,
+       /* 0x0298, */ 0x001404010000FFF0UL,
+       /* 0x02a0, */ 0x0000000000000000UL,
+       /* 0x02a8, */ 0x0000000000000000UL,
+       /* 0x02b0, */ 0x0000000000000000UL,
+       /* 0x02b8, */ 0x0000000000000000UL,
+       /* 0x02c0, */ 0x0000000000000000UL,
+       /* 0x02c8, */ 0x0000000000000000UL,
+       /* 0x02d0, */ 0x0000000000000000UL,
+       /* 0x02d8, */ 0x0000000000000000UL,
+       /* 0x02e0, */ 0x0000000000000000UL,
+       /* 0x02e8, */ 0x0000000000000000UL,
+       /* 0x02f0, */ 0x0000000000000000UL,
+       /* 0x02f8, */ 0x0000000000000000UL,
+       /* 0x0300, */ 0x0000000000000000UL,
+       /* 0x0308, */ 0x0000000000000000UL,
+       /* 0x0310, */ 0x0000000000000000UL,
+       /* 0x0318, */ 0x0000000000000000UL,
+       /* 0x0320, */ 0x0000000000000000UL,
+       /* 0x0328, */ 0x0000000000000000UL,
+       /* 0x0330, */ 0x0000000000000000UL,
+       /* 0x0338, */ 0x0000000000000000UL,
+       /* 0x0340, */ 0x0000000000000000UL,
+       /* 0x0348, */ 0x0000000000000000UL,
+       /* 0x0350, */ 0x0000000000000000UL,
+};
+
+static uint64_t qoswt_be[] = {
+       /* 0x0000, */ 0x0000000000000000UL,
+       /* 0x0008, */ 0x0000000000000000UL,
+       /* 0x0010, */ 0x0000000000000000UL,
+       /* 0x0018, */ 0x0000000000000000UL,
+       /* 0x0020, */ 0x0000000000000000UL,
+       /* 0x0028, */ 0x0000000000000000UL,
+       /* 0x0030, */ 0x0000000000000000UL,
+       /* 0x0038, */ 0x0000000000000000UL,
+       /* 0x0040, */ 0x0000000000000000UL,
+       /* 0x0048, */ 0x0000000000000000UL,
+       /* 0x0050, */ 0x0000000000000000UL,
+       /* 0x0058, */ 0x0000000000000000UL,
+       /* 0x0060, */ 0x0000000000000000UL,
+       /* 0x0068, */ 0x0000000000000000UL,
+       /* 0x0070, */ 0x0000000000000000UL,
+       /* 0x0078, */ 0x0000000000000000UL,
+       /* 0x0080, */ 0x0000000000000000UL,
+       /* 0x0088, */ 0x0000000000000000UL,
+       /* 0x0090, */ 0x0000000000000000UL,
+       /* 0x0098, */ 0x0000000000000000UL,
+       /* 0x00a0, */ 0x0000000000000000UL,
+       /* 0x00a8, */ 0x0000000000000000UL,
+       /* 0x00b0, */ 0x0000000000000000UL,
+       /* 0x00b8, */ 0x0000000000000000UL,
+       /* 0x00c0, */ 0x0000000000000000UL,
+       /* 0x00c8, */ 0x0000000000000000UL,
+       /* 0x00d0, */ 0x0000000000000000UL,
+       /* 0x00d8, */ 0x0000000000000000UL,
+       /* 0x00e0, */ 0x0000000000000000UL,
+       /* 0x00e8, */ 0x0000000000000000UL,
+       /* 0x00f0, */ 0x0000000000000000UL,
+       /* 0x00f8, */ 0x0000000000000000UL,
+       /* 0x0100, */ 0x0000000000000000UL,
+       /* 0x0108, */ 0x0000000000000000UL,
+       /* 0x0110, */ 0x0000000000000000UL,
+       /* 0x0118, */ 0x0000000000000000UL,
+       /* 0x0120, */ 0x0000000000000000UL,
+       /* 0x0128, */ 0x0000000000000000UL,
+       /* 0x0130, */ 0x0000000000000000UL,
+       /* 0x0138, */ 0x0000000000000000UL,
+       /* 0x0140, */ 0x0000000000000000UL,
+       /* 0x0148, */ 0x0000000000000000UL,
+       /* 0x0150, */ 0x0000000000000000UL,
+       /* 0x0158, */ 0x0000000000000000UL,
+       /* 0x0160, */ 0x0000000000000000UL,
+       /* 0x0168, */ 0x0000000000000000UL,
+       /* 0x0170, */ 0x0000000000000000UL,
+       /* 0x0178, */ 0x0000000000000000UL,
+       /* 0x0180, */ 0x0000000000000000UL,
+       /* 0x0188, */ 0x0000000000000000UL,
+       /* 0x0190, */ 0x0000000000000000UL,
+       /* 0x0198, */ 0x0000000000000000UL,
+       /* 0x01a0, */ 0x0000000000000000UL,
+       /* 0x01a8, */ 0x0000000000000000UL,
+       /* 0x01b0, */ 0x0000000000000000UL,
+       /* 0x01b8, */ 0x0000000000000000UL,
+       /* 0x01c0, */ 0x0000000000000000UL,
+       /* 0x01c8, */ 0x0000000000000000UL,
+       /* 0x01d0, */ 0x0000000000000000UL,
+       /* 0x01d8, */ 0x0000000000000000UL,
+       /* 0x01e0, */ 0x0000000000000000UL,
+       /* 0x01e8, */ 0x0000000000000000UL,
+       /* 0x01f0, */ 0x0000000000000000UL,
+       /* 0x01f8, */ 0x0000000000000000UL,
+       /* 0x0200, */ 0x0000000000000000UL,
+       /* 0x0208, */ 0x0000000000000000UL,
+       /* 0x0210, */ 0x0000000000000000UL,
+       /* 0x0218, */ 0x0000000000000000UL,
+       /* 0x0220, */ 0x0000000000000000UL,
+       /* 0x0228, */ 0x0000000000000000UL,
+       /* 0x0230, */ 0x0000000000000000UL,
+       /* 0x0238, */ 0x0000000000000000UL,
+       /* 0x0240, */ 0x0000000000000000UL,
+       /* 0x0248, */ 0x0000000000000000UL,
+       /* 0x0250, */ 0x0000000000000000UL,
+       /* 0x0258, */ 0x0000000000000000UL,
+       /* 0x0260, */ 0x0000000000000000UL,
+       /* 0x0268, */ 0x0000000000000000UL,
+       /* 0x0270, */ 0x0000000000000000UL,
+       /* 0x0278, */ 0x0000000000000000UL,
+       /* 0x0280, */ 0x0000000000000000UL,
+       /* 0x0288, */ 0x0000000000000000UL,
+       /* 0x0290, */ 0x0000000000000000UL,
+       /* 0x0298, */ 0x0000000000000000UL,
+       /* 0x02a0, */ 0x0000000000000000UL,
+       /* 0x02a8, */ 0x0000000000000000UL,
+       /* 0x02b0, */ 0x0000000000000000UL,
+       /* 0x02b8, */ 0x0000000000000000UL,
+       /* 0x02c0, */ 0x0000000000000000UL,
+       /* 0x02c8, */ 0x0000000000000000UL,
+       /* 0x02d0, */ 0x0000000000000000UL,
+       /* 0x02d8, */ 0x0000000000000000UL,
+       /* 0x02e0, */ 0x0000000000000000UL,
+       /* 0x02e8, */ 0x0000000000000000UL,
+       /* 0x02f0, */ 0x0000000000000000UL,
+       /* 0x02f8, */ 0x0000000000000000UL,
+       /* 0x0300, */ 0x0000000000000000UL,
+       /* 0x0308, */ 0x0000000000000000UL,
+       /* 0x0310, */ 0x0000000000000000UL,
+       /* 0x0318, */ 0x0000000000000000UL,
+       /* 0x0320, */ 0x0000000000000000UL,
+       /* 0x0328, */ 0x0000000000000000UL,
+       /* 0x0330, */ 0x0000000000000000UL,
+       /* 0x0338, */ 0x0000000000000000UL,
+       /* 0x0340, */ 0x0000000000000000UL,
+       /* 0x0348, */ 0x0000000000000000UL,
+       /* 0x0350, */ 0x0000000000000000UL,
+};
+
+#endif /* QOS_INIT_G2M_V11_QOSWT390_H */
diff --git a/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v30.c b/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v30.c
new file mode 100644 (file)
index 0000000..321cd2b
--- /dev/null
@@ -0,0 +1,210 @@
+/*
+ * Copyright (c) 2021, Renesas Electronics Corporation. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <stdint.h>
+
+#include <common/debug.h>
+#include <lib/mmio.h>
+
+#include "../qos_common.h"
+#include "qos_init_g2m_v30.h"
+#if RCAR_QOS_TYPE  == RCAR_QOS_TYPE_DEFAULT
+#if RCAR_REF_INT == RCAR_REF_DEFAULT
+#include "qos_init_g2m_v30_mstat195.h"
+#else /* RCAR_REF_INT == RCAR_REF_DEFAULT */
+#include "qos_init_g2m_v30_mstat390.h"
+#endif /* RCAR_REF_INT == RCAR_REF_DEFAULT */
+#if RCAR_REWT_TRAINING != RCAR_REWT_TRAINING_DISABLE
+#if RCAR_REF_INT == RCAR_REF_DEFAULT
+#include "qos_init_g2m_v30_qoswt195.h"
+#else /* RCAR_REF_INT == RCAR_REF_DEFAULT */
+#include "qos_init_g2m_v30_qoswt390.h"
+#endif /* RCAR_REF_INT == RCAR_REF_DEFAULT */
+#endif /* RCAR_REWT_TRAINING != RCAR_REWT_TRAINING_DISABLE */
+#endif /* RCAR_QOS_TYPE  == RCAR_QOS_TYPE_DEFAULT */
+#include "qos_reg.h"
+
+#define RCAR_QOS_VERSION                       "rev.0.04"
+
+#define QOSWT_TIME_BANK0                       20000000U       /* unit:ns */
+
+#define QOSWT_WTEN_ENABLE                      0x1U
+
+#define QOSCTRL_REF_ARS_ARBSTOPCYCLE_G2M_30    (SL_INIT_SSLOTCLK_G2M_30 - 0x5U)
+
+#define OSWT_WTREF_SLOT0_EN_REQ1_SLOT          3U
+#define OSWT_WTREF_SLOT0_EN_REQ2_SLOT          9U
+#define QOSWT_WTREF_SLOT0_EN                           \
+       ((0x1U << OSWT_WTREF_SLOT0_EN_REQ1_SLOT) |      \
+       (0x1U << OSWT_WTREF_SLOT0_EN_REQ2_SLOT))
+#define QOSWT_WTREF_SLOT1_EN                           \
+       ((0x1U << OSWT_WTREF_SLOT0_EN_REQ1_SLOT) |      \
+       (0x1U << OSWT_WTREF_SLOT0_EN_REQ2_SLOT))
+
+#define QOSWT_WTSET0_REQ_SSLOT0                        5U
+#define WT_BASE_SUB_SLOT_NUM0                  12U
+#define QOSWT_WTSET0_PERIOD0_G2M_30                    \
+       ((QOSWT_TIME_BANK0 / QOSWT_WTSET0_CYCLE_G2M_30) - 1U)
+#define QOSWT_WTSET0_SSLOT0                    (QOSWT_WTSET0_REQ_SSLOT0 - 1U)
+#define QOSWT_WTSET0_SLOTSLOT0                 (WT_BASE_SUB_SLOT_NUM0 - 1U)
+
+#define QOSWT_WTSET1_PERIOD1_G2M_30                    \
+       ((QOSWT_TIME_BANK0 / QOSWT_WTSET0_CYCLE_G2M_30) - 1U)
+#define QOSWT_WTSET1_SSLOT1                    (QOSWT_WTSET0_REQ_SSLOT0 - 1U)
+#define QOSWT_WTSET1_SLOTSLOT1                 (WT_BASE_SUB_SLOT_NUM0 - 1U)
+
+static const struct rcar_gen3_dbsc_qos_settings g2m_v30_qos[] = {
+       /* BUFCAM settings */
+       { DBSC_DBCAM0CNF1, 0x00043218U },
+       { DBSC_DBCAM0CNF2, 0x000000F4U },
+       { DBSC_DBCAM0CNF3, 0x00000000U },
+       { DBSC_DBSCHCNT0, 0x000F0037U },
+       { DBSC_DBSCHSZ0, 0x00000001U },
+       { DBSC_DBSCHRW0, 0x22421111U },
+
+       /* DDR3 */
+       { DBSC_SCFCTST2, 0x012F1123U },
+
+       /* QoS settings */
+       { DBSC_DBSCHQOS00, 0x00000F00U },
+       { DBSC_DBSCHQOS01, 0x00000B00U },
+       { DBSC_DBSCHQOS02, 0x00000000U },
+       { DBSC_DBSCHQOS03, 0x00000000U },
+       { DBSC_DBSCHQOS40, 0x00000300U },
+       { DBSC_DBSCHQOS41, 0x000002F0U },
+       { DBSC_DBSCHQOS42, 0x00000200U },
+       { DBSC_DBSCHQOS43, 0x00000100U },
+       { DBSC_DBSCHQOS90, 0x00000100U },
+       { DBSC_DBSCHQOS91, 0x000000F0U },
+       { DBSC_DBSCHQOS92, 0x000000A0U },
+       { DBSC_DBSCHQOS93, 0x00000040U },
+       { DBSC_DBSCHQOS120, 0x00000040U },
+       { DBSC_DBSCHQOS121, 0x00000030U },
+       { DBSC_DBSCHQOS122, 0x00000020U },
+       { DBSC_DBSCHQOS123, 0x00000010U },
+       { DBSC_DBSCHQOS130, 0x00000100U },
+       { DBSC_DBSCHQOS131, 0x000000F0U },
+       { DBSC_DBSCHQOS132, 0x000000A0U },
+       { DBSC_DBSCHQOS133, 0x00000040U },
+       { DBSC_DBSCHQOS140, 0x000000C0U },
+       { DBSC_DBSCHQOS141, 0x000000B0U },
+       { DBSC_DBSCHQOS142, 0x00000080U },
+       { DBSC_DBSCHQOS143, 0x00000040U },
+       { DBSC_DBSCHQOS150, 0x00000040U },
+       { DBSC_DBSCHQOS151, 0x00000030U },
+       { DBSC_DBSCHQOS152, 0x00000020U },
+       { DBSC_DBSCHQOS153, 0x00000010U },
+};
+
+void qos_init_g2m_v30(void)
+{
+       uint32_t i;
+
+       rzg_qos_dbsc_setting(g2m_v30_qos, ARRAY_SIZE(g2m_v30_qos), true);
+
+       /* DRAM Split Address mapping */
+#if RCAR_DRAM_SPLIT == RCAR_DRAM_SPLIT_4CH
+#if RCAR_LSI == RZ_G2M
+  #error "Don't set DRAM Split 4ch(G2M)"
+#else /* RCAR_LSI == RZ_G2M */
+       ERROR("DRAM Split 4ch not supported.(G2M)");
+       panic();
+#endif /* RCAR_LSI == RZ_G2M */
+#elif (RCAR_DRAM_SPLIT == RCAR_DRAM_SPLIT_2CH) || \
+       (RCAR_DRAM_SPLIT == RCAR_DRAM_SPLIT_AUTO)
+       NOTICE("BL2: DRAM Split is 2ch\n");
+       mmio_write_32(AXI_ADSPLCR0, 0x00000000U);
+       mmio_write_32(AXI_ADSPLCR1, ADSPLCR0_ADRMODE_DEFAULT |
+                     ADSPLCR0_SPLITSEL(0xFFU) | ADSPLCR0_AREA(0x1DU) |
+                     ADSPLCR0_SWP);
+       mmio_write_32(AXI_ADSPLCR2, 0x00001004U);
+       mmio_write_32(AXI_ADSPLCR3, 0x00000000U);
+#else /* RCAR_DRAM_SPLIT == RCAR_DRAM_SPLIT_4CH */
+       NOTICE("BL2: DRAM Split is OFF\n");
+#endif /* RCAR_DRAM_SPLIT == RCAR_DRAM_SPLIT_4CH */
+
+#if !(RCAR_QOS_TYPE == RCAR_QOS_NONE)
+#if RCAR_QOS_TYPE  == RCAR_QOS_TYPE_DEFAULT
+       NOTICE("BL2: QoS is default setting(%s)\n", RCAR_QOS_VERSION);
+#endif
+
+#if RCAR_REF_INT == RCAR_REF_DEFAULT
+       NOTICE("BL2: DRAM refresh interval 1.95 usec\n");
+#else /*  RCAR_REF_INT == RCAR_REF_DEFAULT */
+       NOTICE("BL2: DRAM refresh interval 3.9 usec\n");
+#endif /*  RCAR_REF_INT == RCAR_REF_DEFAULT */
+
+#if RCAR_REWT_TRAINING != RCAR_REWT_TRAINING_DISABLE
+       NOTICE("BL2: Periodic Write DQ Training\n");
+#endif /* RCAR_REWT_TRAINING != RCAR_REWT_TRAINING_DISABLE */
+
+       mmio_write_32(QOSCTRL_RAS, 0x00000044U);
+       mmio_write_64(QOSCTRL_DANN, 0x0404020002020201UL);
+       mmio_write_32(QOSCTRL_DANT, 0x0020100AU);
+       mmio_write_32(QOSCTRL_FSS, 0x0000000AU);
+       mmio_write_32(QOSCTRL_INSFC, 0x06330001U);
+       mmio_write_32(QOSCTRL_EARLYR, 0x00000001U);
+       mmio_write_32(QOSCTRL_RACNT0, 0x02010003U); /* GPU Boost Mode ON */
+
+       /* GPU Boost Mode */
+       mmio_write_32(QOSCTRL_STATGEN0, 0x00000001U);
+
+       mmio_write_32(QOSCTRL_SL_INIT,
+                     SL_INIT_REFFSSLOT | SL_INIT_SLOTSSLOT |
+                     SL_INIT_SSLOTCLK_G2M_30);
+       mmio_write_32(QOSCTRL_REF_ARS,
+                     QOSCTRL_REF_ARS_ARBSTOPCYCLE_G2M_30 << 16);
+
+       for (i = 0U; i < ARRAY_SIZE(mstat_fix); i++) {
+               mmio_write_64(QOSBW_FIX_QOS_BANK0 + i * 8U, mstat_fix[i]);
+               mmio_write_64(QOSBW_FIX_QOS_BANK1 + i * 8U, mstat_fix[i]);
+       }
+       for (i = 0U; i < ARRAY_SIZE(mstat_be); i++) {
+               mmio_write_64(QOSBW_BE_QOS_BANK0 + i * 8U, mstat_be[i]);
+               mmio_write_64(QOSBW_BE_QOS_BANK1 + i * 8U, mstat_be[i]);
+       }
+#if RCAR_REWT_TRAINING != RCAR_REWT_TRAINING_DISABLE
+       for (i = 0U; i < ARRAY_SIZE(qoswt_fix); i++) {
+               mmio_write_64(QOSWT_FIX_WTQOS_BANK0 + i * 8U, qoswt_fix[i]);
+               mmio_write_64(QOSWT_FIX_WTQOS_BANK1 + i * 8U, qoswt_fix[i]);
+       }
+       for (i = 0U; i < ARRAY_SIZE(qoswt_be); i++) {
+               mmio_write_64(QOSWT_BE_WTQOS_BANK0 + i * 8U, qoswt_be[i]);
+               mmio_write_64(QOSWT_BE_WTQOS_BANK1 + i * 8U, qoswt_be[i]);
+       }
+#endif /* RCAR_REWT_TRAINING != RCAR_REWT_TRAINING_DISABLE */
+
+       /* RT bus Leaf setting */
+       mmio_write_32(RT_ACT0, 0x00000000U);
+       mmio_write_32(RT_ACT1, 0x00000000U);
+
+       /* CCI bus Leaf setting */
+       mmio_write_32(CPU_ACT0, 0x00000003U);
+       mmio_write_32(CPU_ACT1, 0x00000003U);
+       mmio_write_32(CPU_ACT2, 0x00000003U);
+       mmio_write_32(CPU_ACT3, 0x00000003U);
+
+       mmio_write_32(QOSCTRL_RAEN, 0x00000001U);
+
+#if RCAR_REWT_TRAINING != RCAR_REWT_TRAINING_DISABLE
+       /*  re-write training setting */
+       mmio_write_32(QOSWT_WTREF,
+                     (QOSWT_WTREF_SLOT1_EN << 16) | QOSWT_WTREF_SLOT0_EN);
+       mmio_write_32(QOSWT_WTSET0, (QOSWT_WTSET0_PERIOD0_G2M_30 << 16) |
+                     (QOSWT_WTSET0_SSLOT0 << 8) | QOSWT_WTSET0_SLOTSLOT0);
+       mmio_write_32(QOSWT_WTSET1, (QOSWT_WTSET1_PERIOD1_G2M_30 << 16) |
+                     (QOSWT_WTSET1_SSLOT1 << 8) | QOSWT_WTSET1_SLOTSLOT1);
+
+       mmio_write_32(QOSWT_WTEN,   QOSWT_WTEN_ENABLE);
+#endif /* RCAR_REWT_TRAINING != RCAR_REWT_TRAINING_DISABLE */
+
+       mmio_write_32(QOSCTRL_STATQC, 0x00000001U);
+#else /* !(RCAR_QOS_TYPE == RCAR_QOS_NONE) */
+       NOTICE("BL2: QoS is None\n");
+
+       mmio_write_32(QOSCTRL_RAEN, 0x00000001U);
+#endif /* !(RCAR_QOS_TYPE == RCAR_QOS_NONE) */
+}
diff --git a/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v30.h b/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v30.h
new file mode 100644 (file)
index 0000000..f89eabf
--- /dev/null
@@ -0,0 +1,12 @@
+/*
+ * Copyright (c) 2020, Renesas Electronics Corporation. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef QOS_INIT_G2M_V30_H
+#define QOS_INIT_G2M_V30_H
+
+void qos_init_g2m_v30(void);
+
+#endif /* QOS_INIT_G2M_V30_H */
diff --git a/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v30_mstat195.h b/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v30_mstat195.h
new file mode 100644 (file)
index 0000000..fd15788
--- /dev/null
@@ -0,0 +1,230 @@
+/*
+ * Copyright (c) 2020, Renesas Electronics Corporation. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef QOS_INIT_G2M_V30_MSTAT195_H
+#define QOS_INIT_G2M_V30_MSTAT195_H
+
+static uint64_t mstat_fix[] = {
+       /* 0x0000, */ 0x0000000000000000UL,
+       /* 0x0008, */ 0x0000000000000000UL,
+       /* 0x0010, */ 0x0000000000000000UL,
+       /* 0x0018, */ 0x0000000000000000UL,
+       /* 0x0020, */ 0x0000000000000000UL,
+       /* 0x0028, */ 0x0000000000000000UL,
+       /* 0x0030, */ 0x001004040000FFFFUL,
+       /* 0x0038, */ 0x001004040000FFFFUL,
+       /* 0x0040, */ 0x001414090000FFFFUL,
+       /* 0x0048, */ 0x0000000000000000UL,
+       /* 0x0050, */ 0x001404010000FFFFUL,
+       /* 0x0058, */ 0x00140C0A0000FFFFUL,
+       /* 0x0060, */ 0x00140C0A0000FFFFUL,
+       /* 0x0068, */ 0x0000000000000000UL,
+       /* 0x0070, */ 0x001404010000FFFFUL,
+       /* 0x0078, */ 0x001004030000FFFFUL,
+       /* 0x0080, */ 0x0000000000000000UL,
+       /* 0x0088, */ 0x001414090000FFFFUL,
+       /* 0x0090, */ 0x001408070000FFFFUL,
+       /* 0x0098, */ 0x0000000000000000UL,
+       /* 0x00a0, */ 0x000C04020000FFFFUL,
+       /* 0x00a8, */ 0x000C04010000FFFFUL,
+       /* 0x00b0, */ 0x000C04010000FFFFUL,
+       /* 0x00b8, */ 0x0000000000000000UL,
+       /* 0x00c0, */ 0x000C04020000FFFFUL,
+       /* 0x00c8, */ 0x000C04010000FFFFUL,
+       /* 0x00d0, */ 0x000C04010000FFFFUL,
+       /* 0x00d8, */ 0x000C08050000FFFFUL,
+       /* 0x00e0, */ 0x000C10100000FFFFUL,
+       /* 0x00e8, */ 0x0000000000000000UL,
+       /* 0x00f0, */ 0x001024090000FFFFUL,
+       /* 0x00f8, */ 0x0000000000000000UL,
+       /* 0x0100, */ 0x0000000000000000UL,
+       /* 0x0108, */ 0x0000000000000000UL,
+       /* 0x0110, */ 0x00100C090000FFFFUL,
+       /* 0x0118, */ 0x0000000000000000UL,
+       /* 0x0120, */ 0x000C10100000FFFFUL,
+       /* 0x0128, */ 0x0000000000000000UL,
+       /* 0x0130, */ 0x0000000000000000UL,
+       /* 0x0138, */ 0x00100C0B0000FFFFUL,
+       /* 0x0140, */ 0x0000000000000000UL,
+       /* 0x0148, */ 0x0000000000000000UL,
+       /* 0x0150, */ 0x0010100D0000FFFFUL,
+       /* 0x0158, */ 0x0000000000000000UL,
+       /* 0x0160, */ 0x00100C0B0000FFFFUL,
+       /* 0x0168, */ 0x0000000000000000UL,
+       /* 0x0170, */ 0x0000000000000000UL,
+       /* 0x0178, */ 0x001008060000FFFFUL,
+       /* 0x0180, */ 0x0000000000000000UL,
+       /* 0x0188, */ 0x0000000000000000UL,
+       /* 0x0190, */ 0x00102C2C0000FFFFUL,
+       /* 0x0198, */ 0x0000000000000000UL,
+       /* 0x01a0, */ 0x00100C0B0000FFFFUL,
+       /* 0x01a8, */ 0x0000000000000000UL,
+       /* 0x01b0, */ 0x0000000000000000UL,
+       /* 0x01b8, */ 0x0000000000000000UL,
+       /* 0x01c0, */ 0x000C04010000FFFFUL,
+       /* 0x01c8, */ 0x000C04010000FFFFUL,
+       /* 0x01d0, */ 0x000C04010000FFFFUL,
+       /* 0x01d8, */ 0x000C04010000FFFFUL,
+       /* 0x01e0, */ 0x0000000000000000UL,
+       /* 0x01e8, */ 0x000C04010000FFFFUL,
+       /* 0x01f0, */ 0x000C04010000FFFFUL,
+       /* 0x01f8, */ 0x0000000000000000UL,
+       /* 0x0200, */ 0x0000000000000000UL,
+       /* 0x0208, */ 0x000C04010000FFFFUL,
+       /* 0x0210, */ 0x000C04010000FFFFUL,
+       /* 0x0218, */ 0x0000000000000000UL,
+       /* 0x0220, */ 0x0000000000000000UL,
+       /* 0x0228, */ 0x0000000000000000UL,
+       /* 0x0230, */ 0x0000000000000000UL,
+       /* 0x0238, */ 0x0000000000000000UL,
+       /* 0x0240, */ 0x0000000000000000UL,
+       /* 0x0248, */ 0x0000000000000000UL,
+       /* 0x0250, */ 0x0000000000000000UL,
+       /* 0x0258, */ 0x0000000000000000UL,
+       /* 0x0260, */ 0x000C08020000FFFFUL,
+       /* 0x0268, */ 0x001408010000FFFFUL,
+       /* 0x0270, */ 0x001404010000FFFFUL,
+       /* 0x0278, */ 0x000C04010000FFFFUL,
+       /* 0x0280, */ 0x0000000000000000UL,
+       /* 0x0288, */ 0x0000000000000000UL,
+       /* 0x0290, */ 0x001408010000FFFFUL,
+       /* 0x0298, */ 0x001404010000FFFFUL,
+       /* 0x02a0, */ 0x000C04010000FFFFUL,
+       /* 0x02a8, */ 0x000C04010000FFFFUL,
+       /* 0x02b0, */ 0x001408010000FFFFUL,
+       /* 0x02b8, */ 0x000C04010000FFFFUL,
+       /* 0x02c0, */ 0x0000000000000000UL,
+       /* 0x02c8, */ 0x0000000000000000UL,
+       /* 0x02d0, */ 0x000C04010000FFFFUL,
+       /* 0x02d8, */ 0x000C04010000FFFFUL,
+       /* 0x02e0, */ 0x001408010000FFFFUL,
+       /* 0x02e8, */ 0x000C04010000FFFFUL,
+       /* 0x02f0, */ 0x0000000000000000UL,
+       /* 0x02f8, */ 0x0000000000000000UL,
+       /* 0x0300, */ 0x0000000000000000UL,
+       /* 0x0308, */ 0x0000000000000000UL,
+       /* 0x0310, */ 0x0000000000000000UL,
+       /* 0x0318, */ 0x0000000000000000UL,
+       /* 0x0320, */ 0x0000000000000000UL,
+       /* 0x0328, */ 0x0000000000000000UL,
+       /* 0x0330, */ 0x0000000000000000UL,
+       /* 0x0338, */ 0x0000000000000000UL,
+       /* 0x0340, */ 0x0000000000000000UL,
+       /* 0x0348, */ 0x0000000000000000UL,
+       /* 0x0350, */ 0x0000000000000000UL,
+};
+
+static uint64_t mstat_be[] = {
+       /* 0x0000, */ 0x001200200BDFFC01UL,
+       /* 0x0008, */ 0x001200200BDFFC01UL,
+       /* 0x0010, */ 0x001200200BDFFC01UL,
+       /* 0x0018, */ 0x001200200BDFFC01UL,
+       /* 0x0020, */ 0x0000000000000000UL,
+       /* 0x0028, */ 0x001200100BD03401UL,
+       /* 0x0030, */ 0x0000000000000000UL,
+       /* 0x0038, */ 0x0000000000000000UL,
+       /* 0x0040, */ 0x0000000000000000UL,
+       /* 0x0048, */ 0x0000000000000000UL,
+       /* 0x0050, */ 0x0000000000000000UL,
+       /* 0x0058, */ 0x0000000000000000UL,
+       /* 0x0060, */ 0x0000000000000000UL,
+       /* 0x0068, */ 0x0000000000000000UL,
+       /* 0x0070, */ 0x0000000000000000UL,
+       /* 0x0078, */ 0x0000000000000000UL,
+       /* 0x0080, */ 0x0000000000000000UL,
+       /* 0x0088, */ 0x0000000000000000UL,
+       /* 0x0090, */ 0x0000000000000000UL,
+       /* 0x0098, */ 0x0000000000000000UL,
+       /* 0x00a0, */ 0x0000000000000000UL,
+       /* 0x00a8, */ 0x0000000000000000UL,
+       /* 0x00b0, */ 0x0000000000000000UL,
+       /* 0x00b8, */ 0x0000000000000000UL,
+       /* 0x00c0, */ 0x0000000000000000UL,
+       /* 0x00c8, */ 0x0000000000000000UL,
+       /* 0x00d0, */ 0x0000000000000000UL,
+       /* 0x00d8, */ 0x0000000000000000UL,
+       /* 0x00e0, */ 0x0000000000000000UL,
+       /* 0x00e8, */ 0x0000000000000000UL,
+       /* 0x00f0, */ 0x0000000000000000UL,
+       /* 0x00f8, */ 0x0000000000000000UL,
+       /* 0x0100, */ 0x0000000000000000UL,
+       /* 0x0108, */ 0x0000000000000000UL,
+       /* 0x0110, */ 0x0000000000000000UL,
+       /* 0x0118, */ 0x0000000000000000UL,
+       /* 0x0120, */ 0x0000000000000000UL,
+       /* 0x0128, */ 0x0000000000000000UL,
+       /* 0x0130, */ 0x0000000000000000UL,
+       /* 0x0138, */ 0x0000000000000000UL,
+       /* 0x0140, */ 0x0000000000000000UL,
+       /* 0x0148, */ 0x0000000000000000UL,
+       /* 0x0150, */ 0x0000000000000000UL,
+       /* 0x0158, */ 0x0000000000000000UL,
+       /* 0x0160, */ 0x0000000000000000UL,
+       /* 0x0168, */ 0x0000000000000000UL,
+       /* 0x0170, */ 0x0000000000000000UL,
+       /* 0x0178, */ 0x0000000000000000UL,
+       /* 0x0180, */ 0x0000000000000000UL,
+       /* 0x0188, */ 0x0000000000000000UL,
+       /* 0x0190, */ 0x0000000000000000UL,
+       /* 0x0198, */ 0x0000000000000000UL,
+       /* 0x01a0, */ 0x0000000000000000UL,
+       /* 0x01a8, */ 0x0000000000000000UL,
+       /* 0x01b0, */ 0x0000000000000000UL,
+       /* 0x01b8, */ 0x0000000000000000UL,
+       /* 0x01c0, */ 0x002100600BDFFC01UL,
+       /* 0x01c8, */ 0x002100600BDFFC01UL,
+       /* 0x01d0, */ 0x002100600BDFFC01UL,
+       /* 0x01d8, */ 0x002100600BDFFC01UL,
+       /* 0x01e0, */ 0x0000000000000000UL,
+       /* 0x01e8, */ 0x0000000000000000UL,
+       /* 0x01f0, */ 0x002100200BDFFC01UL,
+       /* 0x01f8, */ 0x0000000000000000UL,
+       /* 0x0200, */ 0x0000000000000000UL,
+       /* 0x0208, */ 0x0000000000000000UL,
+       /* 0x0210, */ 0x002100200BDFFC01UL,
+       /* 0x0218, */ 0x001100200BDFFC01UL,
+       /* 0x0220, */ 0x001100200BDFFC01UL,
+       /* 0x0228, */ 0x0000000000000000UL,
+       /* 0x0230, */ 0x001100200BDFFC01UL,
+       /* 0x0238, */ 0x001100200BDFFC01UL,
+       /* 0x0240, */ 0x001200200BDFFC01UL,
+       /* 0x0248, */ 0x001100200BDFFC01UL,
+       /* 0x0250, */ 0x001200200BDFFC01UL,
+       /* 0x0258, */ 0x001100200BDFFC01UL,
+       /* 0x0260, */ 0x0000000000000000UL,
+       /* 0x0268, */ 0x0000000000000000UL,
+       /* 0x0270, */ 0x0000000000000000UL,
+       /* 0x0278, */ 0x0000000000000000UL,
+       /* 0x0280, */ 0x0000000000000000UL,
+       /* 0x0288, */ 0x0000000000000000UL,
+       /* 0x0290, */ 0x0000000000000000UL,
+       /* 0x0298, */ 0x0000000000000000UL,
+       /* 0x02a0, */ 0x0000000000000000UL,
+       /* 0x02a8, */ 0x0000000000000000UL,
+       /* 0x02b0, */ 0x0000000000000000UL,
+       /* 0x02b8, */ 0x0000000000000000UL,
+       /* 0x02c0, */ 0x0000000000000000UL,
+       /* 0x02c8, */ 0x0000000000000000UL,
+       /* 0x02d0, */ 0x0000000000000000UL,
+       /* 0x02d8, */ 0x0000000000000000UL,
+       /* 0x02e0, */ 0x0000000000000000UL,
+       /* 0x02e8, */ 0x0000000000000000UL,
+       /* 0x02f0, */ 0x001100400BDFFC01UL,
+       /* 0x02f8, */ 0x001100600BDFFC01UL,
+       /* 0x0300, */ 0x0000000000000000UL,
+       /* 0x0308, */ 0x001100400BDFFC01UL,
+       /* 0x0310, */ 0x001100600BDFFC01UL,
+       /* 0x0318, */ 0x001200100BD03401UL,
+       /* 0x0320, */ 0x0000000000000000UL,
+       /* 0x0328, */ 0x0000000000000000UL,
+       /* 0x0330, */ 0x0000000000000000UL,
+       /* 0x0338, */ 0x0000000000000000UL,
+       /* 0x0340, */ 0x0000000000000000UL,
+       /* 0x0348, */ 0x0000000000000000UL,
+       /* 0x0350, */ 0x0000000000000000UL,
+};
+
+#endif /* QOS_INIT_G2M_V30_MSTAT195_H */
diff --git a/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v30_mstat390.h b/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v30_mstat390.h
new file mode 100644 (file)
index 0000000..aa2036d
--- /dev/null
@@ -0,0 +1,230 @@
+/*
+ * Copyright (c) 2020, Renesas Electronics Corporation. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef QOS_INIT_G2M_V30_MSTAT390_H
+#define QOS_INIT_G2M_V30_MSTAT390_H
+
+static uint64_t mstat_fix[] = {
+       /* 0x0000, */ 0x0000000000000000UL,
+       /* 0x0008, */ 0x0000000000000000UL,
+       /* 0x0010, */ 0x0000000000000000UL,
+       /* 0x0018, */ 0x0000000000000000UL,
+       /* 0x0020, */ 0x0000000000000000UL,
+       /* 0x0028, */ 0x0000000000000000UL,
+       /* 0x0030, */ 0x001008070000FFFFUL,
+       /* 0x0038, */ 0x001008070000FFFFUL,
+       /* 0x0040, */ 0x001424120000FFFFUL,
+       /* 0x0048, */ 0x0000000000000000UL,
+       /* 0x0050, */ 0x001404010000FFFFUL,
+       /* 0x0058, */ 0x001414130000FFFFUL,
+       /* 0x0060, */ 0x001414130000FFFFUL,
+       /* 0x0068, */ 0x0000000000000000UL,
+       /* 0x0070, */ 0x001404010000FFFFUL,
+       /* 0x0078, */ 0x001008050000FFFFUL,
+       /* 0x0080, */ 0x0000000000000000UL,
+       /* 0x0088, */ 0x001424120000FFFFUL,
+       /* 0x0090, */ 0x0014100D0000FFFFUL,
+       /* 0x0098, */ 0x0000000000000000UL,
+       /* 0x00a0, */ 0x000C08040000FFFFUL,
+       /* 0x00a8, */ 0x000C04020000FFFFUL,
+       /* 0x00b0, */ 0x000C04020000FFFFUL,
+       /* 0x00b8, */ 0x0000000000000000UL,
+       /* 0x00c0, */ 0x000C08040000FFFFUL,
+       /* 0x00c8, */ 0x000C04020000FFFFUL,
+       /* 0x00d0, */ 0x000C04020000FFFFUL,
+       /* 0x00d8, */ 0x000C0C0A0000FFFFUL,
+       /* 0x00e0, */ 0x000C201F0000FFFFUL,
+       /* 0x00e8, */ 0x0000000000000000UL,
+       /* 0x00f0, */ 0x001044110000FFFFUL,
+       /* 0x00f8, */ 0x0000000000000000UL,
+       /* 0x0100, */ 0x0000000000000000UL,
+       /* 0x0108, */ 0x0000000000000000UL,
+       /* 0x0110, */ 0x001014110000FFFFUL,
+       /* 0x0118, */ 0x0000000000000000UL,
+       /* 0x0120, */ 0x000C201F0000FFFFUL,
+       /* 0x0128, */ 0x0000000000000000UL,
+       /* 0x0130, */ 0x0000000000000000UL,
+       /* 0x0138, */ 0x001018150000FFFFUL,
+       /* 0x0140, */ 0x0000000000000000UL,
+       /* 0x0148, */ 0x0000000000000000UL,
+       /* 0x0150, */ 0x00101C190000FFFFUL,
+       /* 0x0158, */ 0x0000000000000000UL,
+       /* 0x0160, */ 0x001018150000FFFFUL,
+       /* 0x0168, */ 0x0000000000000000UL,
+       /* 0x0170, */ 0x0000000000000000UL,
+       /* 0x0178, */ 0x00100C0B0000FFFFUL,
+       /* 0x0180, */ 0x0000000000000000UL,
+       /* 0x0188, */ 0x0000000000000000UL,
+       /* 0x0190, */ 0x001058570000FFFFUL,
+       /* 0x0198, */ 0x0000000000000000UL,
+       /* 0x01a0, */ 0x001018150000FFFFUL,
+       /* 0x01a8, */ 0x0000000000000000UL,
+       /* 0x01b0, */ 0x0000000000000000UL,
+       /* 0x01b8, */ 0x0000000000000000UL,
+       /* 0x01c0, */ 0x000C04010000FFFFUL,
+       /* 0x01c8, */ 0x000C04010000FFFFUL,
+       /* 0x01d0, */ 0x000C04010000FFFFUL,
+       /* 0x01d8, */ 0x000C04010000FFFFUL,
+       /* 0x01e0, */ 0x0000000000000000UL,
+       /* 0x01e8, */ 0x000C04010000FFFFUL,
+       /* 0x01f0, */ 0x000C04010000FFFFUL,
+       /* 0x01f8, */ 0x0000000000000000UL,
+       /* 0x0200, */ 0x0000000000000000UL,
+       /* 0x0208, */ 0x000C04010000FFFFUL,
+       /* 0x0210, */ 0x000C04010000FFFFUL,
+       /* 0x0218, */ 0x0000000000000000UL,
+       /* 0x0220, */ 0x0000000000000000UL,
+       /* 0x0228, */ 0x0000000000000000UL,
+       /* 0x0230, */ 0x0000000000000000UL,
+       /* 0x0238, */ 0x0000000000000000UL,
+       /* 0x0240, */ 0x0000000000000000UL,
+       /* 0x0248, */ 0x0000000000000000UL,
+       /* 0x0250, */ 0x0000000000000000UL,
+       /* 0x0258, */ 0x0000000000000000UL,
+       /* 0x0260, */ 0x000C0C030000FFFFUL,
+       /* 0x0268, */ 0x001410010000FFFFUL,
+       /* 0x0270, */ 0x001404010000FFFFUL,
+       /* 0x0278, */ 0x000C08020000FFFFUL,
+       /* 0x0280, */ 0x0000000000000000UL,
+       /* 0x0288, */ 0x0000000000000000UL,
+       /* 0x0290, */ 0x001410010000FFFFUL,
+       /* 0x0298, */ 0x001404010000FFFFUL,
+       /* 0x02a0, */ 0x000C04010000FFFFUL,
+       /* 0x02a8, */ 0x000C04010000FFFFUL,
+       /* 0x02b0, */ 0x00140C010000FFFFUL,
+       /* 0x02b8, */ 0x000C04010000FFFFUL,
+       /* 0x02c0, */ 0x0000000000000000UL,
+       /* 0x02c8, */ 0x0000000000000000UL,
+       /* 0x02d0, */ 0x000C04010000FFFFUL,
+       /* 0x02d8, */ 0x000C04010000FFFFUL,
+       /* 0x02e0, */ 0x00140C010000FFFFUL,
+       /* 0x02e8, */ 0x000C04010000FFFFUL,
+       /* 0x02f0, */ 0x0000000000000000UL,
+       /* 0x02f8, */ 0x0000000000000000UL,
+       /* 0x0300, */ 0x0000000000000000UL,
+       /* 0x0308, */ 0x0000000000000000UL,
+       /* 0x0310, */ 0x0000000000000000UL,
+       /* 0x0318, */ 0x0000000000000000UL,
+       /* 0x0320, */ 0x0000000000000000UL,
+       /* 0x0328, */ 0x0000000000000000UL,
+       /* 0x0330, */ 0x0000000000000000UL,
+       /* 0x0338, */ 0x0000000000000000UL,
+       /* 0x0340, */ 0x0000000000000000UL,
+       /* 0x0348, */ 0x0000000000000000UL,
+       /* 0x0350, */ 0x0000000000000000UL,
+};
+
+static uint64_t mstat_be[] = {
+       /* 0x0000, */ 0x0012003005EFFC01UL,
+       /* 0x0008, */ 0x0012003005EFFC01UL,
+       /* 0x0010, */ 0x0012003005EFFC01UL,
+       /* 0x0018, */ 0x0012003005EFFC01UL,
+       /* 0x0020, */ 0x0000000000000000UL,
+       /* 0x0028, */ 0x0012001005E03401UL,
+       /* 0x0030, */ 0x0000000000000000UL,
+       /* 0x0038, */ 0x0000000000000000UL,
+       /* 0x0040, */ 0x0000000000000000UL,
+       /* 0x0048, */ 0x0000000000000000UL,
+       /* 0x0050, */ 0x0000000000000000UL,
+       /* 0x0058, */ 0x0000000000000000UL,
+       /* 0x0060, */ 0x0000000000000000UL,
+       /* 0x0068, */ 0x0000000000000000UL,
+       /* 0x0070, */ 0x0000000000000000UL,
+       /* 0x0078, */ 0x0000000000000000UL,
+       /* 0x0080, */ 0x0000000000000000UL,
+       /* 0x0088, */ 0x0000000000000000UL,
+       /* 0x0090, */ 0x0000000000000000UL,
+       /* 0x0098, */ 0x0000000000000000UL,
+       /* 0x00a0, */ 0x0000000000000000UL,
+       /* 0x00a8, */ 0x0000000000000000UL,
+       /* 0x00b0, */ 0x0000000000000000UL,
+       /* 0x00b8, */ 0x0000000000000000UL,
+       /* 0x00c0, */ 0x0000000000000000UL,
+       /* 0x00c8, */ 0x0000000000000000UL,
+       /* 0x00d0, */ 0x0000000000000000UL,
+       /* 0x00d8, */ 0x0000000000000000UL,
+       /* 0x00e0, */ 0x0000000000000000UL,
+       /* 0x00e8, */ 0x0000000000000000UL,
+       /* 0x00f0, */ 0x0000000000000000UL,
+       /* 0x00f8, */ 0x0000000000000000UL,
+       /* 0x0100, */ 0x0000000000000000UL,
+       /* 0x0108, */ 0x0000000000000000UL,
+       /* 0x0110, */ 0x0000000000000000UL,
+       /* 0x0118, */ 0x0000000000000000UL,
+       /* 0x0120, */ 0x0000000000000000UL,
+       /* 0x0128, */ 0x0000000000000000UL,
+       /* 0x0130, */ 0x0000000000000000UL,
+       /* 0x0138, */ 0x0000000000000000UL,
+       /* 0x0140, */ 0x0000000000000000UL,
+       /* 0x0148, */ 0x0000000000000000UL,
+       /* 0x0150, */ 0x0000000000000000UL,
+       /* 0x0158, */ 0x0000000000000000UL,
+       /* 0x0160, */ 0x0000000000000000UL,
+       /* 0x0168, */ 0x0000000000000000UL,
+       /* 0x0170, */ 0x0000000000000000UL,
+       /* 0x0178, */ 0x0000000000000000UL,
+       /* 0x0180, */ 0x0000000000000000UL,
+       /* 0x0188, */ 0x0000000000000000UL,
+       /* 0x0190, */ 0x0000000000000000UL,
+       /* 0x0198, */ 0x0000000000000000UL,
+       /* 0x01a0, */ 0x0000000000000000UL,
+       /* 0x01a8, */ 0x0000000000000000UL,
+       /* 0x01b0, */ 0x0000000000000000UL,
+       /* 0x01b8, */ 0x0000000000000000UL,
+       /* 0x01c0, */ 0x002100B005EFFC01UL,
+       /* 0x01c8, */ 0x002100B005EFFC01UL,
+       /* 0x01d0, */ 0x002100B005EFFC01UL,
+       /* 0x01d8, */ 0x002100B005EFFC01UL,
+       /* 0x01e0, */ 0x0000000000000000UL,
+       /* 0x01e8, */ 0x0000000000000000UL,
+       /* 0x01f0, */ 0x0021003005EFFC01UL,
+       /* 0x01f8, */ 0x0000000000000000UL,
+       /* 0x0200, */ 0x0000000000000000UL,
+       /* 0x0208, */ 0x0000000000000000UL,
+       /* 0x0210, */ 0x0021003005EFFC01UL,
+       /* 0x0218, */ 0x0011003005EFFC01UL,
+       /* 0x0220, */ 0x0011003005EFFC01UL,
+       /* 0x0228, */ 0x0000000000000000UL,
+       /* 0x0230, */ 0x0011003005EFFC01UL,
+       /* 0x0238, */ 0x0011003005EFFC01UL,
+       /* 0x0240, */ 0x0012003005EFFC01UL,
+       /* 0x0248, */ 0x0011003005EFFC01UL,
+       /* 0x0250, */ 0x0012003005EFFC01UL,
+       /* 0x0258, */ 0x0011003005EFFC01UL,
+       /* 0x0260, */ 0x0000000000000000UL,
+       /* 0x0268, */ 0x0000000000000000UL,
+       /* 0x0270, */ 0x0000000000000000UL,
+       /* 0x0278, */ 0x0000000000000000UL,
+       /* 0x0280, */ 0x0000000000000000UL,
+       /* 0x0288, */ 0x0000000000000000UL,
+       /* 0x0290, */ 0x0000000000000000UL,
+       /* 0x0298, */ 0x0000000000000000UL,
+       /* 0x02a0, */ 0x0000000000000000UL,
+       /* 0x02a8, */ 0x0000000000000000UL,
+       /* 0x02b0, */ 0x0000000000000000UL,
+       /* 0x02b8, */ 0x0000000000000000UL,
+       /* 0x02c0, */ 0x0000000000000000UL,
+       /* 0x02c8, */ 0x0000000000000000UL,
+       /* 0x02d0, */ 0x0000000000000000UL,
+       /* 0x02d8, */ 0x0000000000000000UL,
+       /* 0x02e0, */ 0x0000000000000000UL,
+       /* 0x02e8, */ 0x0000000000000000UL,
+       /* 0x02f0, */ 0x0011007005EFFC01UL,
+       /* 0x02f8, */ 0x001100B005EFFC01UL,
+       /* 0x0300, */ 0x0000000000000000UL,
+       /* 0x0308, */ 0x0011007005EFFC01UL,
+       /* 0x0310, */ 0x001100B005EFFC01UL,
+       /* 0x0318, */ 0x0012001005E03401UL,
+       /* 0x0320, */ 0x0000000000000000UL,
+       /* 0x0328, */ 0x0000000000000000UL,
+       /* 0x0330, */ 0x0000000000000000UL,
+       /* 0x0338, */ 0x0000000000000000UL,
+       /* 0x0340, */ 0x0000000000000000UL,
+       /* 0x0348, */ 0x0000000000000000UL,
+       /* 0x0350, */ 0x0000000000000000UL,
+};
+
+#endif /* QOS_INIT_G2M_V30_MSTAT390_H */
diff --git a/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v30_qoswt195.h b/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v30_qoswt195.h
new file mode 100644 (file)
index 0000000..27c9c51
--- /dev/null
@@ -0,0 +1,230 @@
+/*
+ * Copyright (c) 2020, Renesas Electronics Corporation. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef QOS_INIT_G2M_V30_QOSWT195_H
+#define QOS_INIT_G2M_V30_QOSWT195_H
+
+static uint64_t qoswt_fix[] = {
+       /* 0x0000, */ 0x0000000000000000UL,
+       /* 0x0008, */ 0x0000000000000000UL,
+       /* 0x0010, */ 0x0000000000000000UL,
+       /* 0x0018, */ 0x0000000000000000UL,
+       /* 0x0020, */ 0x0000000000000000UL,
+       /* 0x0028, */ 0x0000000000000000UL,
+       /* 0x0030, */ 0x001004040000C010UL,
+       /* 0x0038, */ 0x001004040000C010UL,
+       /* 0x0040, */ 0x001414090000FFF0UL,
+       /* 0x0048, */ 0x0000000000000000UL,
+       /* 0x0050, */ 0x0000000000000000UL,
+       /* 0x0058, */ 0x00140C0A0000C010UL,
+       /* 0x0060, */ 0x00140C0A0000C010UL,
+       /* 0x0068, */ 0x0000000000000000UL,
+       /* 0x0070, */ 0x0000000000000000UL,
+       /* 0x0078, */ 0x001004030000C010UL,
+       /* 0x0080, */ 0x0000000000000000UL,
+       /* 0x0088, */ 0x001414090000FFF0UL,
+       /* 0x0090, */ 0x001408070000C010UL,
+       /* 0x0098, */ 0x0000000000000000UL,
+       /* 0x00a0, */ 0x0000000000000000UL,
+       /* 0x00a8, */ 0x0000000000000000UL,
+       /* 0x00b0, */ 0x0000000000000000UL,
+       /* 0x00b8, */ 0x0000000000000000UL,
+       /* 0x00c0, */ 0x0000000000000000UL,
+       /* 0x00c8, */ 0x0000000000000000UL,
+       /* 0x00d0, */ 0x0000000000000000UL,
+       /* 0x00d8, */ 0x0000000000000000UL,
+       /* 0x00e0, */ 0x0000000000000000UL,
+       /* 0x00e8, */ 0x0000000000000000UL,
+       /* 0x00f0, */ 0x0000000000000000UL,
+       /* 0x00f8, */ 0x0000000000000000UL,
+       /* 0x0100, */ 0x0000000000000000UL,
+       /* 0x0108, */ 0x0000000000000000UL,
+       /* 0x0110, */ 0x0000000000000000UL,
+       /* 0x0118, */ 0x0000000000000000UL,
+       /* 0x0120, */ 0x0000000000000000UL,
+       /* 0x0128, */ 0x0000000000000000UL,
+       /* 0x0130, */ 0x0000000000000000UL,
+       /* 0x0138, */ 0x0000000000000000UL,
+       /* 0x0140, */ 0x0000000000000000UL,
+       /* 0x0148, */ 0x0000000000000000UL,
+       /* 0x0150, */ 0x0000000000000000UL,
+       /* 0x0158, */ 0x0000000000000000UL,
+       /* 0x0160, */ 0x0000000000000000UL,
+       /* 0x0168, */ 0x0000000000000000UL,
+       /* 0x0170, */ 0x0000000000000000UL,
+       /* 0x0178, */ 0x0000000000000000UL,
+       /* 0x0180, */ 0x0000000000000000UL,
+       /* 0x0188, */ 0x0000000000000000UL,
+       /* 0x0190, */ 0x0000000000000000UL,
+       /* 0x0198, */ 0x0000000000000000UL,
+       /* 0x01a0, */ 0x0000000000000000UL,
+       /* 0x01a8, */ 0x0000000000000000UL,
+       /* 0x01b0, */ 0x0000000000000000UL,
+       /* 0x01b8, */ 0x0000000000000000UL,
+       /* 0x01c0, */ 0x0000000000000000UL,
+       /* 0x01c8, */ 0x0000000000000000UL,
+       /* 0x01d0, */ 0x0000000000000000UL,
+       /* 0x01d8, */ 0x0000000000000000UL,
+       /* 0x01e0, */ 0x0000000000000000UL,
+       /* 0x01e8, */ 0x0000000000000000UL,
+       /* 0x01f0, */ 0x0000000000000000UL,
+       /* 0x01f8, */ 0x0000000000000000UL,
+       /* 0x0200, */ 0x0000000000000000UL,
+       /* 0x0208, */ 0x0000000000000000UL,
+       /* 0x0210, */ 0x0000000000000000UL,
+       /* 0x0218, */ 0x0000000000000000UL,
+       /* 0x0220, */ 0x0000000000000000UL,
+       /* 0x0228, */ 0x0000000000000000UL,
+       /* 0x0230, */ 0x0000000000000000UL,
+       /* 0x0238, */ 0x0000000000000000UL,
+       /* 0x0240, */ 0x0000000000000000UL,
+       /* 0x0248, */ 0x0000000000000000UL,
+       /* 0x0250, */ 0x0000000000000000UL,
+       /* 0x0258, */ 0x0000000000000000UL,
+       /* 0x0260, */ 0x000C08020000FFF0UL,
+       /* 0x0268, */ 0x001408010000FFF0UL,
+       /* 0x0270, */ 0x001404010000FFF0UL,
+       /* 0x0278, */ 0x000C04010000FFF0UL,
+       /* 0x0280, */ 0x0000000000000000UL,
+       /* 0x0288, */ 0x0000000000000000UL,
+       /* 0x0290, */ 0x001408010000FFF0UL,
+       /* 0x0298, */ 0x001404010000FFF0UL,
+       /* 0x02a0, */ 0x0000000000000000UL,
+       /* 0x02a8, */ 0x0000000000000000UL,
+       /* 0x02b0, */ 0x0000000000000000UL,
+       /* 0x02b8, */ 0x0000000000000000UL,
+       /* 0x02c0, */ 0x0000000000000000UL,
+       /* 0x02c8, */ 0x0000000000000000UL,
+       /* 0x02d0, */ 0x0000000000000000UL,
+       /* 0x02d8, */ 0x0000000000000000UL,
+       /* 0x02e0, */ 0x0000000000000000UL,
+       /* 0x02e8, */ 0x0000000000000000UL,
+       /* 0x02f0, */ 0x0000000000000000UL,
+       /* 0x02f8, */ 0x0000000000000000UL,
+       /* 0x0300, */ 0x0000000000000000UL,
+       /* 0x0308, */ 0x0000000000000000UL,
+       /* 0x0310, */ 0x0000000000000000UL,
+       /* 0x0318, */ 0x0000000000000000UL,
+       /* 0x0320, */ 0x0000000000000000UL,
+       /* 0x0328, */ 0x0000000000000000UL,
+       /* 0x0330, */ 0x0000000000000000UL,
+       /* 0x0338, */ 0x0000000000000000UL,
+       /* 0x0340, */ 0x0000000000000000UL,
+       /* 0x0348, */ 0x0000000000000000UL,
+       /* 0x0350, */ 0x0000000000000000UL,
+};
+
+static uint64_t qoswt_be[] = {
+       /* 0x0000, */ 0x0000000000000000UL,
+       /* 0x0008, */ 0x0000000000000000UL,
+       /* 0x0010, */ 0x0000000000000000UL,
+       /* 0x0018, */ 0x0000000000000000UL,
+       /* 0x0020, */ 0x0000000000000000UL,
+       /* 0x0028, */ 0x0000000000000000UL,
+       /* 0x0030, */ 0x0000000000000000UL,
+       /* 0x0038, */ 0x0000000000000000UL,
+       /* 0x0040, */ 0x0000000000000000UL,
+       /* 0x0048, */ 0x0000000000000000UL,
+       /* 0x0050, */ 0x0000000000000000UL,
+       /* 0x0058, */ 0x0000000000000000UL,
+       /* 0x0060, */ 0x0000000000000000UL,
+       /* 0x0068, */ 0x0000000000000000UL,
+       /* 0x0070, */ 0x0000000000000000UL,
+       /* 0x0078, */ 0x0000000000000000UL,
+       /* 0x0080, */ 0x0000000000000000UL,
+       /* 0x0088, */ 0x0000000000000000UL,
+       /* 0x0090, */ 0x0000000000000000UL,
+       /* 0x0098, */ 0x0000000000000000UL,
+       /* 0x00a0, */ 0x0000000000000000UL,
+       /* 0x00a8, */ 0x0000000000000000UL,
+       /* 0x00b0, */ 0x0000000000000000UL,
+       /* 0x00b8, */ 0x0000000000000000UL,
+       /* 0x00c0, */ 0x0000000000000000UL,
+       /* 0x00c8, */ 0x0000000000000000UL,
+       /* 0x00d0, */ 0x0000000000000000UL,
+       /* 0x00d8, */ 0x0000000000000000UL,
+       /* 0x00e0, */ 0x0000000000000000UL,
+       /* 0x00e8, */ 0x0000000000000000UL,
+       /* 0x00f0, */ 0x0000000000000000UL,
+       /* 0x00f8, */ 0x0000000000000000UL,
+       /* 0x0100, */ 0x0000000000000000UL,
+       /* 0x0108, */ 0x0000000000000000UL,
+       /* 0x0110, */ 0x0000000000000000UL,
+       /* 0x0118, */ 0x0000000000000000UL,
+       /* 0x0120, */ 0x0000000000000000UL,
+       /* 0x0128, */ 0x0000000000000000UL,
+       /* 0x0130, */ 0x0000000000000000UL,
+       /* 0x0138, */ 0x0000000000000000UL,
+       /* 0x0140, */ 0x0000000000000000UL,
+       /* 0x0148, */ 0x0000000000000000UL,
+       /* 0x0150, */ 0x0000000000000000UL,
+       /* 0x0158, */ 0x0000000000000000UL,
+       /* 0x0160, */ 0x0000000000000000UL,
+       /* 0x0168, */ 0x0000000000000000UL,
+       /* 0x0170, */ 0x0000000000000000UL,
+       /* 0x0178, */ 0x0000000000000000UL,
+       /* 0x0180, */ 0x0000000000000000UL,
+       /* 0x0188, */ 0x0000000000000000UL,
+       /* 0x0190, */ 0x0000000000000000UL,
+       /* 0x0198, */ 0x0000000000000000UL,
+       /* 0x01a0, */ 0x0000000000000000UL,
+       /* 0x01a8, */ 0x0000000000000000UL,
+       /* 0x01b0, */ 0x0000000000000000UL,
+       /* 0x01b8, */ 0x0000000000000000UL,
+       /* 0x01c0, */ 0x0000000000000000UL,
+       /* 0x01c8, */ 0x0000000000000000UL,
+       /* 0x01d0, */ 0x0000000000000000UL,
+       /* 0x01d8, */ 0x0000000000000000UL,
+       /* 0x01e0, */ 0x0000000000000000UL,
+       /* 0x01e8, */ 0x0000000000000000UL,
+       /* 0x01f0, */ 0x0000000000000000UL,
+       /* 0x01f8, */ 0x0000000000000000UL,
+       /* 0x0200, */ 0x0000000000000000UL,
+       /* 0x0208, */ 0x0000000000000000UL,
+       /* 0x0210, */ 0x0000000000000000UL,
+       /* 0x0218, */ 0x0000000000000000UL,
+       /* 0x0220, */ 0x0000000000000000UL,
+       /* 0x0228, */ 0x0000000000000000UL,
+       /* 0x0230, */ 0x0000000000000000UL,
+       /* 0x0238, */ 0x0000000000000000UL,
+       /* 0x0240, */ 0x0000000000000000UL,
+       /* 0x0248, */ 0x0000000000000000UL,
+       /* 0x0250, */ 0x0000000000000000UL,
+       /* 0x0258, */ 0x0000000000000000UL,
+       /* 0x0260, */ 0x0000000000000000UL,
+       /* 0x0268, */ 0x0000000000000000UL,
+       /* 0x0270, */ 0x0000000000000000UL,
+       /* 0x0278, */ 0x0000000000000000UL,
+       /* 0x0280, */ 0x0000000000000000UL,
+       /* 0x0288, */ 0x0000000000000000UL,
+       /* 0x0290, */ 0x0000000000000000UL,
+       /* 0x0298, */ 0x0000000000000000UL,
+       /* 0x02a0, */ 0x0000000000000000UL,
+       /* 0x02a8, */ 0x0000000000000000UL,
+       /* 0x02b0, */ 0x0000000000000000UL,
+       /* 0x02b8, */ 0x0000000000000000UL,
+       /* 0x02c0, */ 0x0000000000000000UL,
+       /* 0x02c8, */ 0x0000000000000000UL,
+       /* 0x02d0, */ 0x0000000000000000UL,
+       /* 0x02d8, */ 0x0000000000000000UL,
+       /* 0x02e0, */ 0x0000000000000000UL,
+       /* 0x02e8, */ 0x0000000000000000UL,
+       /* 0x02f0, */ 0x0000000000000000UL,
+       /* 0x02f8, */ 0x0000000000000000UL,
+       /* 0x0300, */ 0x0000000000000000UL,
+       /* 0x0308, */ 0x0000000000000000UL,
+       /* 0x0310, */ 0x0000000000000000UL,
+       /* 0x0318, */ 0x0000000000000000UL,
+       /* 0x0320, */ 0x0000000000000000UL,
+       /* 0x0328, */ 0x0000000000000000UL,
+       /* 0x0330, */ 0x0000000000000000UL,
+       /* 0x0338, */ 0x0000000000000000UL,
+       /* 0x0340, */ 0x0000000000000000UL,
+       /* 0x0348, */ 0x0000000000000000UL,
+       /* 0x0350, */ 0x0000000000000000UL,
+};
+
+#endif /* QOS_INIT_G2M_V30_QOSWT195_H */
diff --git a/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v30_qoswt390.h b/drivers/renesas/rzg/qos/G2M/qos_init_g2m_v30_qoswt390.h
new file mode 100644 (file)
index 0000000..5d18212
--- /dev/null
@@ -0,0 +1,230 @@
+/*
+ * Copyright (c) 2020, Renesas Electronics Corporation. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef QOS_INIT_G2M_V30_QOSWT390_H
+#define QOS_INIT_G2M_V30_QOSWT390_H
+
+static uint64_t qoswt_fix[] = {
+       /* 0x0000, */ 0x0000000000000000UL,
+       /* 0x0008, */ 0x0000000000000000UL,
+       /* 0x0010, */ 0x0000000000000000UL,
+       /* 0x0018, */ 0x0000000000000000UL,
+       /* 0x0020, */ 0x0000000000000000UL,
+       /* 0x0028, */ 0x0000000000000000UL,
+       /* 0x0030, */ 0x001008070000C010UL,
+       /* 0x0038, */ 0x001008070000C010UL,
+       /* 0x0040, */ 0x001424120000FFF0UL,
+       /* 0x0048, */ 0x0000000000000000UL,
+       /* 0x0050, */ 0x0000000000000000UL,
+       /* 0x0058, */ 0x001414130000C010UL,
+       /* 0x0060, */ 0x001414130000C010UL,
+       /* 0x0068, */ 0x0000000000000000UL,
+       /* 0x0070, */ 0x0000000000000000UL,
+       /* 0x0078, */ 0x001008050000C010UL,
+       /* 0x0080, */ 0x0000000000000000UL,
+       /* 0x0088, */ 0x001424120000FFF0UL,
+       /* 0x0090, */ 0x0014100D0000C010UL,
+       /* 0x0098, */ 0x0000000000000000UL,
+       /* 0x00a0, */ 0x0000000000000000UL,
+       /* 0x00a8, */ 0x0000000000000000UL,
+       /* 0x00b0, */ 0x0000000000000000UL,
+       /* 0x00b8, */ 0x0000000000000000UL,
+       /* 0x00c0, */ 0x0000000000000000UL,
+       /* 0x00c8, */ 0x0000000000000000UL,
+       /* 0x00d0, */ 0x0000000000000000UL,
+       /* 0x00d8, */ 0x0000000000000000UL,
+       /* 0x00e0, */ 0x0000000000000000UL,
+       /* 0x00e8, */ 0x0000000000000000UL,
+       /* 0x00f0, */ 0x0000000000000000UL,
+       /* 0x00f8, */ 0x0000000000000000UL,
+       /* 0x0100, */ 0x0000000000000000UL,
+       /* 0x0108, */ 0x0000000000000000UL,
+       /* 0x0110, */ 0x0000000000000000UL,
+       /* 0x0118, */ 0x0000000000000000UL,
+       /* 0x0120, */ 0x0000000000000000UL,
+       /* 0x0128, */ 0x0000000000000000UL,
+       /* 0x0130, */ 0x0000000000000000UL,
+       /* 0x0138, */ 0x0000000000000000UL,
+       /* 0x0140, */ 0x0000000000000000UL,
+       /* 0x0148, */ 0x0000000000000000UL,
+       /* 0x0150, */ 0x0000000000000000UL,
+       /* 0x0158, */ 0x0000000000000000UL,
+       /* 0x0160, */ 0x0000000000000000UL,
+       /* 0x0168, */ 0x0000000000000000UL,
+       /* 0x0170, */ 0x0000000000000000UL,
+       /* 0x0178, */ 0x0000000000000000UL,
+       /* 0x0180, */ 0x0000000000000000UL,
+       /* 0x0188, */ 0x0000000000000000UL,
+       /* 0x0190, */ 0x0000000000000000UL,
+       /* 0x0198, */ 0x0000000000000000UL,
+       /* 0x01a0, */ 0x0000000000000000UL,
+       /* 0x01a8, */ 0x0000000000000000UL,
+       /* 0x01b0, */ 0x0000000000000000UL,
+       /* 0x01b8, */ 0x0000000000000000UL,
+       /* 0x01c0, */ 0x0000000000000000UL,
+       /* 0x01c8, */ 0x0000000000000000UL,
+       /* 0x01d0, */ 0x0000000000000000UL,
+       /* 0x01d8, */ 0x0000000000000000UL,
+       /* 0x01e0, */ 0x0000000000000000UL,
+       /* 0x01e8, */ 0x0000000000000000UL,
+       /* 0x01f0, */ 0x0000000000000000UL,
+       /* 0x01f8, */ 0x0000000000000000UL,
+       /* 0x0200, */ 0x0000000000000000UL,
+       /* 0x0208, */ 0x0000000000000000UL,
+       /* 0x0210, */ 0x0000000000000000UL,
+       /* 0x0218, */ 0x0000000000000000UL,
+       /* 0x0220, */ 0x0000000000000000UL,
+       /* 0x0228, */ 0x0000000000000000UL,
+       /* 0x0230, */ 0x0000000000000000UL,
+       /* 0x0238, */ 0x0000000000000000UL,
+       /* 0x0240, */ 0x0000000000000000UL,
+       /* 0x0248, */ 0x0000000000000000UL,
+       /* 0x0250, */ 0x0000000000000000UL,
+       /* 0x0258, */ 0x0000000000000000UL,
+       /* 0x0260, */ 0x000C0C030000FFF0UL,
+       /* 0x0268, */ 0x001410010000FFF0UL,
+       /* 0x0270, */ 0x001404010000FFF0UL,
+       /* 0x0278, */ 0x000C08020000FFF0UL,
+       /* 0x0280, */ 0x0000000000000000UL,
+       /* 0x0288, */ 0x0000000000000000UL,
+       /* 0x0290, */ 0x001410010000FFF0UL,
+       /* 0x0298, */ 0x001404010000FFF0UL,
+       /* 0x02a0, */ 0x0000000000000000UL,
+       /* 0x02a8, */ 0x0000000000000000UL,
+       /* 0x02b0, */ 0x0000000000000000UL,
+       /* 0x02b8, */ 0x0000000000000000UL,
+       /* 0x02c0, */ 0x0000000000000000UL,
+       /* 0x02c8, */ 0x0000000000000000UL,
+       /* 0x02d0, */ 0x0000000000000000UL,
+       /* 0x02d8, */ 0x0000000000000000UL,
+       /* 0x02e0, */ 0x0000000000000000UL,
+       /* 0x02e8, */ 0x0000000000000000UL,
+       /* 0x02f0, */ 0x0000000000000000UL,
+       /* 0x02f8, */ 0x0000000000000000UL,
+       /* 0x0300, */ 0x0000000000000000UL,
+       /* 0x0308, */ 0x0000000000000000UL,
+       /* 0x0310, */ 0x0000000000000000UL,
+       /* 0x0318, */ 0x0000000000000000UL,
+       /* 0x0320, */ 0x0000000000000000UL,
+       /* 0x0328, */ 0x0000000000000000UL,
+       /* 0x0330, */ 0x0000000000000000UL,
+       /* 0x0338, */ 0x0000000000000000UL,
+       /* 0x0340, */ 0x0000000000000000UL,
+       /* 0x0348, */ 0x0000000000000000UL,
+       /* 0x0350, */ 0x0000000000000000UL,
+};
+
+static uint64_t qoswt_be[] = {
+       /* 0x0000, */ 0x0000000000000000UL,
+       /* 0x0008, */ 0x0000000000000000UL,
+       /* 0x0010, */ 0x0000000000000000UL,
+       /* 0x0018, */ 0x0000000000000000UL,
+       /* 0x0020, */ 0x0000000000000000UL,
+       /* 0x0028, */ 0x0000000000000000UL,
+       /* 0x0030, */ 0x0000000000000000UL,
+       /* 0x0038, */ 0x0000000000000000UL,
+       /* 0x0040, */ 0x0000000000000000UL,
+       /* 0x0048, */ 0x0000000000000000UL,
+       /* 0x0050, */ 0x0000000000000000UL,
+       /* 0x0058, */ 0x0000000000000000UL,
+       /* 0x0060, */ 0x0000000000000000UL,
+       /* 0x0068, */ 0x0000000000000000UL,
+       /* 0x0070, */ 0x0000000000000000UL,
+       /* 0x0078, */ 0x0000000000000000UL,
+       /* 0x0080, */ 0x0000000000000000UL,
+       /* 0x0088, */ 0x0000000000000000UL,
+       /* 0x0090, */ 0x0000000000000000UL,
+       /* 0x0098, */ 0x0000000000000000UL,
+       /* 0x00a0, */ 0x0000000000000000UL,
+       /* 0x00a8, */ 0x0000000000000000UL,
+       /* 0x00b0, */ 0x0000000000000000UL,
+       /* 0x00b8, */ 0x0000000000000000UL,
+       /* 0x00c0, */ 0x0000000000000000UL,
+       /* 0x00c8, */ 0x0000000000000000UL,
+       /* 0x00d0, */ 0x0000000000000000UL,
+       /* 0x00d8, */ 0x0000000000000000UL,
+       /* 0x00e0, */ 0x0000000000000000UL,
+       /* 0x00e8, */ 0x0000000000000000UL,
+       /* 0x00f0, */ 0x0000000000000000UL,
+       /* 0x00f8, */ 0x0000000000000000UL,
+       /* 0x0100, */ 0x0000000000000000UL,
+       /* 0x0108, */ 0x0000000000000000UL,
+       /* 0x0110, */ 0x0000000000000000UL,
+       /* 0x0118, */ 0x0000000000000000UL,
+       /* 0x0120, */ 0x0000000000000000UL,
+       /* 0x0128, */ 0x0000000000000000UL,
+       /* 0x0130, */ 0x0000000000000000UL,
+       /* 0x0138, */ 0x0000000000000000UL,
+       /* 0x0140, */ 0x0000000000000000UL,
+       /* 0x0148, */ 0x0000000000000000UL,
+       /* 0x0150, */ 0x0000000000000000UL,
+       /* 0x0158, */ 0x0000000000000000UL,
+       /* 0x0160, */ 0x0000000000000000UL,
+       /* 0x0168, */ 0x0000000000000000UL,
+       /* 0x0170, */ 0x0000000000000000UL,
+       /* 0x0178, */ 0x0000000000000000UL,
+       /* 0x0180, */ 0x0000000000000000UL,
+       /* 0x0188, */ 0x0000000000000000UL,
+       /* 0x0190, */ 0x0000000000000000UL,
+       /* 0x0198, */ 0x0000000000000000UL,
+       /* 0x01a0, */ 0x0000000000000000UL,
+       /* 0x01a8, */ 0x0000000000000000UL,
+       /* 0x01b0, */ 0x0000000000000000UL,
+       /* 0x01b8, */ 0x0000000000000000UL,
+       /* 0x01c0, */ 0x0000000000000000UL,
+       /* 0x01c8, */ 0x0000000000000000UL,
+       /* 0x01d0, */ 0x0000000000000000UL,
+       /* 0x01d8, */ 0x0000000000000000UL,
+       /* 0x01e0, */ 0x0000000000000000UL,
+       /* 0x01e8, */ 0x0000000000000000UL,
+       /* 0x01f0, */ 0x0000000000000000UL,
+       /* 0x01f8, */ 0x0000000000000000UL,
+       /* 0x0200, */ 0x0000000000000000UL,
+       /* 0x0208, */ 0x0000000000000000UL,
+       /* 0x0210, */ 0x0000000000000000UL,
+       /* 0x0218, */ 0x0000000000000000UL,
+       /* 0x0220, */ 0x0000000000000000UL,
+       /* 0x0228, */ 0x0000000000000000UL,
+       /* 0x0230, */ 0x0000000000000000UL,
+       /* 0x0238, */ 0x0000000000000000UL,
+       /* 0x0240, */ 0x0000000000000000UL,
+       /* 0x0248, */ 0x0000000000000000UL,
+       /* 0x0250, */ 0x0000000000000000UL,
+       /* 0x0258, */ 0x0000000000000000UL,
+       /* 0x0260, */ 0x0000000000000000UL,
+       /* 0x0268, */ 0x0000000000000000UL,
+       /* 0x0270, */ 0x0000000000000000UL,
+       /* 0x0278, */ 0x0000000000000000UL,
+       /* 0x0280, */ 0x0000000000000000UL,
+       /* 0x0288, */ 0x0000000000000000UL,
+       /* 0x0290, */ 0x0000000000000000UL,
+       /* 0x0298, */ 0x0000000000000000UL,
+       /* 0x02a0, */ 0x0000000000000000UL,
+       /* 0x02a8, */ 0x0000000000000000UL,
+       /* 0x02b0, */ 0x0000000000000000UL,
+       /* 0x02b8, */ 0x0000000000000000UL,
+       /* 0x02c0, */ 0x0000000000000000UL,
+       /* 0x02c8, */ 0x0000000000000000UL,
+       /* 0x02d0, */ 0x0000000000000000UL,
+       /* 0x02d8, */ 0x0000000000000000UL,
+       /* 0x02e0, */ 0x0000000000000000UL,
+       /* 0x02e8, */ 0x0000000000000000UL,
+       /* 0x02f0, */ 0x0000000000000000UL,
+       /* 0x02f8, */ 0x0000000000000000UL,
+       /* 0x0300, */ 0x0000000000000000UL,
+       /* 0x0308, */ 0x0000000000000000UL,
+       /* 0x0310, */ 0x0000000000000000UL,
+       /* 0x0318, */ 0x0000000000000000UL,
+       /* 0x0320, */ 0x0000000000000000UL,
+       /* 0x0328, */ 0x0000000000000000UL,
+       /* 0x0330, */ 0x0000000000000000UL,
+       /* 0x0338, */ 0x0000000000000000UL,
+       /* 0x0340, */ 0x0000000000000000UL,
+       /* 0x0348, */ 0x0000000000000000UL,
+       /* 0x0350, */ 0x0000000000000000UL,
+};
+
+#endif /* QOS_INIT_G2M_V30_QOSWT390_H */
diff --git a/drivers/renesas/rzg/qos/qos.mk b/drivers/renesas/rzg/qos/qos.mk
new file mode 100644 (file)
index 0000000..f06c685
--- /dev/null
@@ -0,0 +1,34 @@
+#
+# Copyright (c) 2020, Renesas Electronics Corporation. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+ifeq (${RCAR_LSI},${RCAR_AUTO})
+    BL2_SOURCES += drivers/renesas/rzg/qos/G2M/qos_init_g2m_v10.c
+    BL2_SOURCES += drivers/renesas/rzg/qos/G2M/qos_init_g2m_v11.c
+    BL2_SOURCES += drivers/renesas/rzg/qos/G2M/qos_init_g2m_v30.c
+else ifeq (${RCAR_LSI_CUT_COMPAT},1)
+  ifeq (${RCAR_LSI},${RZ_G2M})
+    BL2_SOURCES += drivers/renesas/rzg/qos/G2M/qos_init_g2m_v10.c
+    BL2_SOURCES += drivers/renesas/rzg/qos/G2M/qos_init_g2m_v11.c
+    BL2_SOURCES += drivers/renesas/rzg/qos/G2M/qos_init_g2m_v30.c
+  endif
+else
+  ifeq (${RCAR_LSI},${RZ_G2M})
+    ifeq (${LSI_CUT},10)
+     BL2_SOURCES += drivers/renesas/rzg/qos/G2M/qos_init_g2m_v10.c
+    else ifeq (${LSI_CUT},11)
+     BL2_SOURCES += drivers/renesas/rzg/qos/G2M/qos_init_g2m_v11.c
+    else ifeq (${LSI_CUT},13)
+     BL2_SOURCES += drivers/renesas/rzg/qos/G2M/qos_init_g2m_v11.c
+    else ifeq (${LSI_CUT},30)
+     BL2_SOURCES += drivers/renesas/rzg/qos/G2M/qos_init_g2m_v30.c
+    else
+#    LSI_CUT 30 or later
+     BL2_SOURCES += drivers/renesas/rzg/qos/G2M/qos_init_g2m_v30.c
+    endif
+  endif
+endif
+
+BL2_SOURCES += drivers/renesas/rzg/qos/qos_init.c
diff --git a/drivers/renesas/rzg/qos/qos_common.h b/drivers/renesas/rzg/qos/qos_common.h
new file mode 100644 (file)
index 0000000..6e0cf0e
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2021, Renesas Electronics Corporation. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef QOS_COMMON_H
+#define QOS_COMMON_H
+
+#define RCAR_REF_DEFAULT               0U
+
+/* define used for get_refperiod. */
+/* REFPERIOD_CYCLE need smaller than QOSWT_WTSET0_CYCLEs */
+#if (RCAR_REF_INT == RCAR_REF_DEFAULT) /* REF default */
+#define REFPERIOD_CYCLE                /* unit:ns */   \
+       ((126U * BASE_SUB_SLOT_NUM * 1000U) / 400U)
+#else                                  /* REF option */
+#define REFPERIOD_CYCLE                /* unit:ns */   \
+       ((252U * BASE_SUB_SLOT_NUM * 1000U) / 400U)
+#endif
+
+#if (RCAR_LSI == RCAR_AUTO) || (RCAR_LSI == RZ_G2M)
+/* define used for G2M */
+#if (RCAR_REF_INT == RCAR_REF_DEFAULT) /* REF 1.95usec */
+#define SUB_SLOT_CYCLE_G2M_11          0x7EU   /* 126 */
+#define SUB_SLOT_CYCLE_G2M_30          0x7EU   /* 126 */
+#else /* REF 3.9usec */
+#define SUB_SLOT_CYCLE_G2M_11          0xFCU   /* 252 */
+#define SUB_SLOT_CYCLE_G2M_30          0xFCU   /* 252 */
+#endif /* (RCAR_REF_INT == RCAR_REF_DEFAULT) */
+
+#define SL_INIT_SSLOTCLK_G2M_11                (SUB_SLOT_CYCLE_G2M_11 - 1U)
+#define SL_INIT_SSLOTCLK_G2M_30                (SUB_SLOT_CYCLE_G2M_30 - 1U)
+#define QOSWT_WTSET0_CYCLE_G2M_11      /* unit:ns */   \
+       ((SUB_SLOT_CYCLE_G2M_11 * BASE_SUB_SLOT_NUM * 1000U) / OPERATING_FREQ)
+#define QOSWT_WTSET0_CYCLE_G2M_30      /* unit:ns */   \
+       ((SUB_SLOT_CYCLE_G2M_30 * BASE_SUB_SLOT_NUM * 1000U) / OPERATING_FREQ)
+#endif
+
+#define OPERATING_FREQ                 400U    /* MHz */
+#define BASE_SUB_SLOT_NUM              0x6U
+#define SUB_SLOT_CYCLE                 0x7EU   /* 126 */
+
+#define QOSWT_WTSET0_CYCLE             /* unit:ns */   \
+       ((SUB_SLOT_CYCLE * BASE_SUB_SLOT_NUM * 1000U) / OPERATING_FREQ)
+
+#define SL_INIT_REFFSSLOT              (0x3U << 24U)
+#define SL_INIT_SLOTSSLOT              ((BASE_SUB_SLOT_NUM - 1U) << 16U)
+#define SL_INIT_SSLOTCLK               (SUB_SLOT_CYCLE - 1U)
+
+typedef struct {
+       uintptr_t addr;
+       uint64_t value;
+} mstat_slot_t;
+
+struct rcar_gen3_dbsc_qos_settings {
+       uint32_t        reg;
+       uint32_t        val;
+};
+
+extern uint32_t qos_init_ddr_ch;
+extern uint8_t qos_init_ddr_phyvalid;
+
+void rzg_qos_dbsc_setting(const struct rcar_gen3_dbsc_qos_settings *qos,
+                         unsigned int qos_size, bool dbsc_wren);
+
+#endif /* QOS_COMMON_H */
diff --git a/drivers/renesas/rzg/qos/qos_init.c b/drivers/renesas/rzg/qos/qos_init.c
new file mode 100644 (file)
index 0000000..2d5aece
--- /dev/null
@@ -0,0 +1,175 @@
+/*
+ * Copyright (c) 2021, Renesas Electronics Corporation. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <stdint.h>
+
+#include <common/debug.h>
+#include <lib/mmio.h>
+
+#if RCAR_LSI == RCAR_AUTO
+#include "G2M/qos_init_g2m_v10.h"
+#include "G2M/qos_init_g2m_v11.h"
+#include "G2M/qos_init_g2m_v30.h"
+#endif /* RCAR_LSI == RCAR_AUTO */
+#if (RCAR_LSI == RZ_G2M)
+#include "G2M/qos_init_g2m_v10.h"
+#include "G2M/qos_init_g2m_v11.h"
+#include "G2M/qos_init_g2m_v30.h"
+#endif /* RCAR_LSI == RZ_G2M */
+#include "qos_common.h"
+#include "qos_init.h"
+#include "qos_reg.h"
+#include "rcar_def.h"
+
+#define DRAM_CH_CNT    0x04U
+uint32_t qos_init_ddr_ch;
+uint8_t qos_init_ddr_phyvalid;
+
+#define PRR_PRODUCT_ERR(reg)                           \
+       {                                               \
+               ERROR("LSI Product ID(PRR=0x%x) QoS "   \
+               "initialize not supported.\n", reg);    \
+               panic();                                \
+       }
+
+#define PRR_CUT_ERR(reg)                               \
+       {                                               \
+               ERROR("LSI Cut ID(PRR=0x%x) QoS "       \
+               "initialize not supported.\n", reg);    \
+               panic();                                \
+       }
+
+void rzg_qos_init(void)
+{
+       uint32_t reg;
+       uint32_t i;
+
+       qos_init_ddr_ch = 0U;
+       qos_init_ddr_phyvalid = rzg_get_boardcnf_phyvalid();
+       for (i = 0U; i < DRAM_CH_CNT; i++) {
+               if ((qos_init_ddr_phyvalid & (1U << i))) {
+                       qos_init_ddr_ch++;
+               }
+       }
+
+       reg = mmio_read_32(PRR);
+#if (RCAR_LSI == RCAR_AUTO) || RCAR_LSI_CUT_COMPAT
+       switch (reg & PRR_PRODUCT_MASK) {
+       case PRR_PRODUCT_M3:
+#if (RCAR_LSI == RCAR_AUTO) || (RCAR_LSI == RZ_G2M)
+               switch (reg & PRR_CUT_MASK) {
+               case PRR_PRODUCT_10:
+                       qos_init_g2m_v10();
+                       break;
+               case PRR_PRODUCT_21: /* G2M Cut 13 */
+                       qos_init_g2m_v11();
+                       break;
+               case PRR_PRODUCT_30: /* G2M Cut 30 */
+               default:
+                       qos_init_g2m_v30();
+                       break;
+               }
+#else /* (RCAR_LSI == RCAR_AUTO) || (RCAR_LSI == RZ_G2M) */
+               PRR_PRODUCT_ERR(reg);
+#endif /* (RCAR_LSI == RCAR_AUTO) || (RCAR_LSI == RZ_G2M) */
+               break;
+       default:
+               PRR_PRODUCT_ERR(reg);
+               break;
+       }
+#else /* RCAR_LSI == RCAR_AUTO || RCAR_LSI_CUT_COMPAT */
+#if (RCAR_LSI == RZ_G2M)
+#if RCAR_LSI_CUT == RCAR_CUT_10
+       /* G2M Cut 10 */
+       if ((PRR_PRODUCT_M3 | PRR_PRODUCT_10)
+           != (reg & (PRR_PRODUCT_MASK | PRR_CUT_MASK))) {
+               PRR_PRODUCT_ERR(reg);
+       }
+       qos_init_g2m_v10();
+#elif RCAR_LSI_CUT == RCAR_CUT_11
+       /* G2M Cut 11 */
+       if ((PRR_PRODUCT_M3 | PRR_PRODUCT_20)
+           != (reg & (PRR_PRODUCT_MASK | PRR_CUT_MASK))) {
+               PRR_PRODUCT_ERR(reg);
+       }
+       qos_init_g2m_v11();
+#elif RCAR_LSI_CUT == RCAR_CUT_13
+       /* G2M Cut 13 */
+       if ((PRR_PRODUCT_M3 | PRR_PRODUCT_21)
+           != (reg & (PRR_PRODUCT_MASK | PRR_CUT_MASK))) {
+               PRR_PRODUCT_ERR(reg);
+       }
+       qos_init_g2m_v11();
+#else
+       /* G2M Cut 30 or later */
+       if ((PRR_PRODUCT_M3)
+           != (reg & (PRR_PRODUCT_MASK))) {
+               PRR_PRODUCT_ERR(reg);
+       }
+       qos_init_g2m_v30();
+#endif /* RCAR_LSI_CUT == RCAR_CUT_10 */
+#else /* (RCAR_LSI == RZ_G2M) */
+#error "Don't have QoS initialize routine(Unknown chip)."
+#endif /* (RCAR_LSI == RZ_G2M) */
+#endif /* RCAR_LSI == RCAR_AUTO || RCAR_LSI_CUT_COMPAT */
+}
+
+uint32_t get_refperiod(void)
+{
+       uint32_t refperiod = QOSWT_WTSET0_CYCLE;
+
+#if (RCAR_LSI == RCAR_AUTO) || RCAR_LSI_CUT_COMPAT
+       uint32_t reg;
+
+       reg = mmio_read_32(PRR);
+       switch (reg & PRR_PRODUCT_MASK) {
+#if (RCAR_LSI == RCAR_AUTO) || (RCAR_LSI == RZ_G2M)
+       case PRR_PRODUCT_M3:
+               switch (reg & PRR_CUT_MASK) {
+               case PRR_PRODUCT_10:
+                       break;
+               case PRR_PRODUCT_20: /* G2M Cut 11 */
+               case PRR_PRODUCT_21: /* G2M Cut 13 */
+               case PRR_PRODUCT_30: /* G2M Cut 30 */
+               default:
+                       refperiod = REFPERIOD_CYCLE;
+                       break;
+               }
+               break;
+#endif /* (RCAR_LSI == RCAR_AUTO) || (RCAR_LSI == RZ_G2M) */
+       default:
+               break;
+       }
+#elif RCAR_LSI == RZ_G2M
+#if RCAR_LSI_CUT == RCAR_CUT_10
+       /* G2M Cut 10 */
+#else /* RCAR_LSI_CUT == RCAR_CUT_10 */
+       /* G2M Cut 11|13|30 or later */
+       refperiod = REFPERIOD_CYCLE;
+#endif /* RCAR_LSI_CUT == RCAR_CUT_10 */
+#endif /* RCAR_LSI == RCAR_AUTO || RCAR_LSI_CUT_COMPAT */
+       return refperiod;
+}
+
+void rzg_qos_dbsc_setting(const struct rcar_gen3_dbsc_qos_settings *qos,
+                         unsigned int qos_size, bool dbsc_wren)
+{
+       unsigned int i;
+
+       /* Register write enable */
+       if (dbsc_wren) {
+               mmio_write_32(DBSC_DBSYSCNT0, 0x00001234U);
+       }
+
+       for (i = 0; i < qos_size; i++) {
+               mmio_write_32(qos[i].reg, qos[i].val);
+       }
+
+       /* Register write protect */
+       if (dbsc_wren) {
+               mmio_write_32(DBSC_DBSYSCNT0, 0x00000000U);
+       }
+}
diff --git a/drivers/renesas/rzg/qos/qos_init.h b/drivers/renesas/rzg/qos/qos_init.h
new file mode 100644 (file)
index 0000000..10f60e7
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ * Copyright (c) 2020, Renesas Electronics Corporation. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef RZG_QOS_INIT_H
+#define RZG_QOS_INIT_H
+
+void rzg_qos_init(void);
+uint8_t rzg_get_boardcnf_phyvalid(void);
+
+#endif /* RZG_QOS_INIT_H */