959 lines
26 KiB
C
959 lines
26 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (c) 2019 MediaTek Inc.
|
|
*/
|
|
#include <mt-plat/mtk_io.h>
|
|
#include <mt-plat/sync_write.h>
|
|
#ifdef CONFIG_MTK_AEE_FEATURE
|
|
#include <mt-plat/aee.h>
|
|
#include <mt-plat/mboot_params.h>
|
|
#endif
|
|
#include <linux/of_address.h>
|
|
#include <linux/device.h>
|
|
#include <linux/of.h>
|
|
#include <linux/of_address.h>
|
|
#include <linux/delay.h>
|
|
#include <mtk_dramc.h>
|
|
|
|
#include "emi_mbw.h"
|
|
#include "emi_bwl.h"
|
|
|
|
static void __iomem *CEN_EMI_BASE; /* not initialise statics to 0 or NULL */
|
|
static void __iomem *CHA_EMI_BASE;
|
|
static void __iomem *INFRACFG_BASE;
|
|
static void __iomem *INFRA_AO_BASE;
|
|
|
|
void BM_Init(void)
|
|
{
|
|
struct device_node *node;
|
|
|
|
CEN_EMI_BASE = mt_cen_emi_base_get();
|
|
CHA_EMI_BASE = mt_chn_emi_base_get();
|
|
|
|
if (INFRACFG_BASE == NULL) {
|
|
node = of_find_compatible_node(NULL, NULL, "mediatek,infracfg");
|
|
if (node) {
|
|
INFRACFG_BASE = of_iomap(node, 0);
|
|
pr_debug("get INFRACFG_BASE@ %p\n", INFRACFG_BASE);
|
|
} else
|
|
pr_debug("can't find compatible node for INFRACFG_BASE\n");
|
|
}
|
|
|
|
if (INFRA_AO_BASE == NULL) {
|
|
node = of_find_compatible_node(NULL, NULL, "mediatek,infracfg_ao");
|
|
if (node) {
|
|
INFRA_AO_BASE = of_iomap(node, 0);
|
|
pr_info("get INFRA_AO_BASE@ %p\n", INFRACFG_BASE);
|
|
} else
|
|
pr_info("can't find compatible node for INFRA_AO_BASE\n");
|
|
}
|
|
}
|
|
|
|
void BM_DeInit(void)
|
|
{
|
|
}
|
|
|
|
void BM_Enable(const unsigned int enable)
|
|
{
|
|
const unsigned int value = readl(IOMEM(EMI_BMEN));
|
|
|
|
mt_reg_sync_writel((value & ~(BUS_MON_PAUSE | BUS_MON_EN)) |
|
|
(enable ? BUS_MON_EN : 0), EMI_BMEN);
|
|
}
|
|
|
|
void BM_Pause(void)
|
|
{
|
|
const unsigned int value = readl(IOMEM(EMI_BMEN));
|
|
|
|
mt_reg_sync_writel(value | BUS_MON_PAUSE, EMI_BMEN);
|
|
}
|
|
|
|
void BM_Continue(void)
|
|
{
|
|
const unsigned int value = readl(IOMEM(EMI_BMEN));
|
|
|
|
mt_reg_sync_writel(value & (~BUS_MON_PAUSE), EMI_BMEN);
|
|
}
|
|
|
|
unsigned int BM_IsOverrun(void)
|
|
{
|
|
/*
|
|
* return 0 if EMI_BCNT(bus cycle counts)
|
|
* or EMI_WACT(total word counts) is overrun,
|
|
* otherwise return an !0 value
|
|
*/
|
|
const unsigned int value = readl(IOMEM(EMI_BMEN));
|
|
|
|
return value & BC_OVERRUN;
|
|
}
|
|
|
|
void BM_SetReadWriteType(const unsigned int ReadWriteType)
|
|
{
|
|
const unsigned int value = readl(IOMEM(EMI_BMEN));
|
|
|
|
/*
|
|
* ReadWriteType: 00/11 --> both R/W
|
|
* 01 --> only R
|
|
* 10 --> only W
|
|
*/
|
|
mt_reg_sync_writel((value & 0xFFFFFFCF) |
|
|
(ReadWriteType << 4), EMI_BMEN);
|
|
}
|
|
|
|
int BM_GetBusCycCount(void)
|
|
{
|
|
return BM_IsOverrun() ? BM_ERR_OVERRUN : readl(IOMEM(EMI_BCNT));
|
|
}
|
|
|
|
unsigned int BM_GetTransAllCount(void)
|
|
{
|
|
return readl(IOMEM(EMI_TACT));
|
|
}
|
|
|
|
int BM_GetTransCount(const unsigned int counter_num)
|
|
{
|
|
unsigned int iCount;
|
|
|
|
switch (counter_num) {
|
|
case 1:
|
|
iCount = readl(IOMEM(EMI_TSCT));
|
|
break;
|
|
|
|
case 2:
|
|
iCount = readl(IOMEM(EMI_TSCT2));
|
|
break;
|
|
|
|
case 3:
|
|
iCount = readl(IOMEM(EMI_TSCT3));
|
|
break;
|
|
|
|
default:
|
|
return BM_ERR_WRONG_REQ;
|
|
}
|
|
|
|
return iCount;
|
|
}
|
|
|
|
long long BM_GetWordAllCount(void)
|
|
{
|
|
unsigned int word_all_count;
|
|
|
|
word_all_count = readl(IOMEM(EMI_WACT));
|
|
|
|
if (BM_IsOverrun() && (word_all_count == 0xFFFFFFFF))
|
|
return BM_ERR_OVERRUN;
|
|
else
|
|
return word_all_count;
|
|
}
|
|
|
|
int BM_GetWordCount(const unsigned int counter_num)
|
|
{
|
|
unsigned int iCount;
|
|
|
|
switch (counter_num) {
|
|
case 1:
|
|
iCount = readl(IOMEM(EMI_WSCT));
|
|
break;
|
|
|
|
case 2:
|
|
iCount = readl(IOMEM(EMI_WSCT2));
|
|
break;
|
|
|
|
case 3:
|
|
iCount = readl(IOMEM(EMI_WSCT3));
|
|
break;
|
|
|
|
case 4:
|
|
iCount = readl(IOMEM(EMI_WSCT4));
|
|
break;
|
|
|
|
default:
|
|
return BM_ERR_WRONG_REQ;
|
|
}
|
|
|
|
return iCount;
|
|
}
|
|
|
|
unsigned int BM_GetBandwidthWordCount(void)
|
|
{
|
|
return readl(IOMEM(EMI_BACT));
|
|
}
|
|
|
|
unsigned int BM_GetOverheadWordCount(void)
|
|
{
|
|
return readl(IOMEM(EMI_BSCT));
|
|
}
|
|
|
|
int BM_GetTransTypeCount(const unsigned int counter_num)
|
|
{
|
|
return (counter_num < 1 || counter_num > BM_COUNTER_MAX) ?
|
|
BM_ERR_WRONG_REQ : readl(IOMEM(EMI_TTYPE1 + (counter_num - 1) * 8));
|
|
}
|
|
|
|
int BM_SetMonitorCounter(const unsigned int counter_num,
|
|
const unsigned int master, const unsigned int trans_type)
|
|
{
|
|
unsigned int value;
|
|
unsigned long addr;
|
|
const unsigned int iMask = 0xFFFF;
|
|
|
|
if (counter_num < 1 || counter_num > BM_COUNTER_MAX)
|
|
return BM_ERR_WRONG_REQ;
|
|
|
|
if (counter_num == 1) {
|
|
addr = (unsigned long) EMI_BMEN;
|
|
value = (readl(IOMEM(addr)) & ~(iMask << 16)) |
|
|
((trans_type & 0xFF) << 24) | ((master & 0xFF) << 16);
|
|
} else {
|
|
addr = (counter_num <= 3) ? (unsigned long) EMI_MSEL :
|
|
((unsigned long) EMI_MSEL2 + (counter_num / 2 - 2) * 8);
|
|
|
|
/* clear master and transaction type fields */
|
|
value =
|
|
readl(IOMEM(addr)) & ~(iMask << ((counter_num % 2) * 16));
|
|
|
|
/* set master and transaction type fields */
|
|
value |= (((trans_type & 0xFF) << 8) |
|
|
(master & 0xFF)) << ((counter_num % 2) * 16);
|
|
}
|
|
|
|
mt_reg_sync_writel(value, addr);
|
|
|
|
return BM_REQ_OK;
|
|
}
|
|
|
|
int BM_SetMaster(const unsigned int counter_num, const unsigned int master)
|
|
{
|
|
unsigned int value;
|
|
unsigned long addr;
|
|
const unsigned int iMask = 0xFF;
|
|
|
|
if (counter_num < 1 || counter_num > BM_COUNTER_MAX)
|
|
return BM_ERR_WRONG_REQ;
|
|
|
|
if (counter_num == 1) {
|
|
addr = (unsigned long) EMI_BMEN;
|
|
value = (readl(IOMEM(addr)) & ~(iMask << 16)) |
|
|
((master & iMask) << 16);
|
|
} else {
|
|
addr = (counter_num <= 3) ? (unsigned long) EMI_MSEL :
|
|
((unsigned long) EMI_MSEL2 + (counter_num / 2 - 2) * 8);
|
|
|
|
/* clear master and transaction type fields */
|
|
value =
|
|
readl(IOMEM(addr)) & ~(iMask << ((counter_num % 2) * 16));
|
|
|
|
/* set master and transaction type fields */
|
|
value |= ((master & iMask) << ((counter_num % 2) * 16));
|
|
}
|
|
|
|
mt_reg_sync_writel(value, addr);
|
|
|
|
return BM_REQ_OK;
|
|
}
|
|
|
|
int BM_SetIDSelect(const unsigned int counter_num,
|
|
const unsigned int id, const unsigned int enable)
|
|
{
|
|
unsigned int value, shift_num;
|
|
unsigned long addr;
|
|
|
|
if ((counter_num < 1 || counter_num > BM_COUNTER_MAX)
|
|
|| (id > 0x1FFF) || (enable > 1))
|
|
return BM_ERR_WRONG_REQ;
|
|
|
|
addr = (unsigned long) EMI_BMID0 + ((counter_num - 1) / 2) * 4;
|
|
|
|
/* field's offset in the target EMI_BMIDx register */
|
|
shift_num = ((counter_num - 1) % 2) * 16;
|
|
|
|
/* clear SELx_ID field */
|
|
value = readl(IOMEM(addr)) & ~(0x1FFF << shift_num);
|
|
|
|
/* set SELx_ID field */
|
|
value |= id << shift_num;
|
|
|
|
mt_reg_sync_writel(value, addr);
|
|
|
|
value = (readl(IOMEM(EMI_BMEN2)) & ~(1 << (counter_num - 1))) |
|
|
(enable << (counter_num - 1));
|
|
|
|
mt_reg_sync_writel(value, EMI_BMEN2);
|
|
|
|
return BM_REQ_OK;
|
|
}
|
|
|
|
int BM_SetUltraHighFilter(const unsigned int counter_num,
|
|
const unsigned int enable)
|
|
{
|
|
unsigned int value;
|
|
|
|
if ((counter_num < 1 || counter_num > BM_COUNTER_MAX)
|
|
|| (enable > 1)) {
|
|
return BM_ERR_WRONG_REQ;
|
|
}
|
|
|
|
value = (readl(IOMEM(EMI_BMEN1)) & ~(1 << (counter_num - 1))) |
|
|
(enable << (counter_num - 1));
|
|
|
|
mt_reg_sync_writel(value, EMI_BMEN1);
|
|
|
|
return BM_REQ_OK;
|
|
}
|
|
|
|
int BM_SetLatencyCounter(void)
|
|
{
|
|
unsigned int value;
|
|
|
|
value = readl(IOMEM(EMI_BMEN2)) & ~(0x3 << 24);
|
|
/* emi_ttype1 -- emi_ttype8 change as total latencies for m0 -- m7,
|
|
* and emi_ttype9 -- emi_ttype16 change
|
|
* as total transaction counts for m0 -- m7
|
|
*/
|
|
value |= (0x2 << 24);
|
|
mt_reg_sync_writel(value, EMI_BMEN2);
|
|
return BM_REQ_OK;
|
|
}
|
|
|
|
int BM_GetLatencyCycle(const unsigned int counter_num)
|
|
{
|
|
unsigned int cycle_count;
|
|
|
|
switch (counter_num) {
|
|
case 1:
|
|
cycle_count = readl(IOMEM(EMI_TTYPE1));
|
|
break;
|
|
case 2:
|
|
cycle_count = readl(IOMEM(EMI_TTYPE2));
|
|
break;
|
|
case 3:
|
|
cycle_count = readl(IOMEM(EMI_TTYPE3));
|
|
break;
|
|
case 4:
|
|
cycle_count = readl(IOMEM(EMI_TTYPE4));
|
|
break;
|
|
case 5:
|
|
cycle_count = readl(IOMEM(EMI_TTYPE5));
|
|
break;
|
|
case 6:
|
|
cycle_count = readl(IOMEM(EMI_TTYPE6));
|
|
break;
|
|
case 7:
|
|
cycle_count = readl(IOMEM(EMI_TTYPE7));
|
|
break;
|
|
case 8:
|
|
cycle_count = readl(IOMEM(EMI_TTYPE7));
|
|
break;
|
|
case 9:
|
|
cycle_count = readl(IOMEM(EMI_TTYPE9));
|
|
break;
|
|
case 10:
|
|
cycle_count = readl(IOMEM(EMI_TTYPE10));
|
|
break;
|
|
case 11:
|
|
cycle_count = readl(IOMEM(EMI_TTYPE11));
|
|
break;
|
|
case 12:
|
|
cycle_count = readl(IOMEM(EMI_TTYPE12));
|
|
break;
|
|
case 13:
|
|
cycle_count = readl(IOMEM(EMI_TTYPE13));
|
|
break;
|
|
case 14:
|
|
cycle_count = readl(IOMEM(EMI_TTYPE14));
|
|
break;
|
|
case 15:
|
|
cycle_count = readl(IOMEM(EMI_TTYPE15));
|
|
break;
|
|
case 16:
|
|
cycle_count = readl(IOMEM(EMI_TTYPE16));
|
|
break;
|
|
default:
|
|
return BM_ERR_WRONG_REQ;
|
|
}
|
|
return cycle_count;
|
|
}
|
|
|
|
int BM_GetEmiDcm(void)
|
|
{
|
|
return readl(IOMEM(EMI_CONM)) >> 24;
|
|
}
|
|
|
|
int BM_SetEmiDcm(const unsigned int setting)
|
|
{
|
|
unsigned int value;
|
|
|
|
value = readl(IOMEM(EMI_CONM));
|
|
mt_reg_sync_writel((value & 0x00FFFFFF) | (setting << 24), EMI_CONM);
|
|
|
|
return BM_REQ_OK;
|
|
}
|
|
|
|
unsigned int BM_GetBWST(void)
|
|
{
|
|
return readl(IOMEM(EMI_BWST0));
|
|
}
|
|
|
|
unsigned int BM_GetBWST2(void)
|
|
{
|
|
return readl(IOMEM(EMI_BWST_2ND));
|
|
}
|
|
|
|
unsigned int BM_GetBWST3(void)
|
|
{
|
|
return readl(IOMEM(EMI_BWST_3RD));
|
|
}
|
|
|
|
unsigned int BM_GetBWST4(void)
|
|
{
|
|
return readl(IOMEM(EMI_BWST_4TH));
|
|
}
|
|
|
|
int BM_SetBW(const unsigned int BW_config)
|
|
{
|
|
mt_reg_sync_writel(BW_config, EMI_BWCT0);
|
|
return BM_REQ_OK;
|
|
}
|
|
|
|
int BM_SetBW2(const unsigned int BW_config)
|
|
{
|
|
mt_reg_sync_writel(BW_config, EMI_BWCT0_2ND);
|
|
return BM_REQ_OK;
|
|
}
|
|
|
|
int BM_SetBW3(const unsigned int BW_config)
|
|
{
|
|
mt_reg_sync_writel(BW_config, EMI_BWCT0_3RD);
|
|
return BM_REQ_OK;
|
|
}
|
|
|
|
int BM_SetBW4(const unsigned int BW_config)
|
|
{
|
|
mt_reg_sync_writel(BW_config, EMI_BWCT0_4TH);
|
|
return BM_REQ_OK;
|
|
}
|
|
|
|
unsigned int BM_GetBW(void)
|
|
{
|
|
return readl(IOMEM(EMI_BWCT0));
|
|
}
|
|
|
|
unsigned int BM_GetBW2(void)
|
|
{
|
|
return readl(IOMEM(EMI_BWCT0_2ND));
|
|
}
|
|
|
|
unsigned int BM_GetBW3(void)
|
|
{
|
|
return readl(IOMEM(EMI_BWCT0_3RD));
|
|
}
|
|
|
|
unsigned int BM_GetBW4(void)
|
|
{
|
|
return readl(IOMEM(EMI_BWCT0_4TH));
|
|
}
|
|
|
|
static inline void aee_simple_print(const char *msg, unsigned int val)
|
|
{
|
|
char buf[128];
|
|
int err;
|
|
|
|
err = snprintf(buf, sizeof(buf), msg, val);
|
|
#ifdef CONFIG_MTK_AEE_FEATURE
|
|
if (err > 0)
|
|
aee_sram_fiq_log(buf);
|
|
#endif
|
|
}
|
|
|
|
#define EMI_DBG_SIMPLE_RWR(msg, addr, wval) do {\
|
|
aee_simple_print(msg, readl(addr)); \
|
|
writel(wval, addr); \
|
|
aee_simple_print(msg, readl(addr));\
|
|
} while (0)
|
|
|
|
#define EMI_DBG_SIMPLE_R(msg, addr) \
|
|
aee_simple_print(msg, readl(addr))
|
|
|
|
void dump_emi_outstanding(void)
|
|
{
|
|
#if 0
|
|
/* CEN_EMI_BASE: 0x10219000 */
|
|
if (!CEN_EMI_BASE)
|
|
return;
|
|
|
|
/* CHA_EMI_BASE: 0x1022D000 */
|
|
if (!CHA_EMI_BASE)
|
|
return;
|
|
|
|
/* CHB_EMI_BASE: 0x10235000 */
|
|
if (!CHB_EMI_BASE)
|
|
return;
|
|
|
|
/* INFRACFG_BASE: 0x1020E000 */
|
|
if (!INFRACFG_BASE)
|
|
return;
|
|
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x10001220 = 0x%x\n",
|
|
(INFRA_AO_BASE + 0x220));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x10001224 = 0x%x\n",
|
|
(INFRA_AO_BASE + 0x224));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x10001228 = 0x%x\n",
|
|
(INFRA_AO_BASE + 0x228));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x10001250 = 0x%x\n",
|
|
(INFRA_AO_BASE + 0x250));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x10001254 = 0x%x\n",
|
|
(INFRA_AO_BASE + 0x254));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x10001258 = 0x%x\n",
|
|
(INFRA_AO_BASE + 0x258));
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x102190e8 = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x0e8), readl(CEN_EMI_BASE + 0x0e8) | 0x100);
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e100 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x100), 0x00000104 >> 3);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e104 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x104), 0x00000204 >> 3);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e108 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x108), 0x00000304 >> 3);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e10c = 0x%x\n",
|
|
(INFRACFG_BASE + 0x10c), 0x00000404 >> 3);
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x102197fc = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x7fc));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x102197fc = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x7fc));
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e100 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x100), 0x00000804 >> 3);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e104 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x104), 0x00000904 >> 3);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e108 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x108), 0x00001204 >> 3);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e10c = 0x%x\n",
|
|
(INFRACFG_BASE + 0x10c), 0x00001104 >> 3);
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x102197fc = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x7fc));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x102197fc = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x7fc));
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e100 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x100), 0x00000504 >> 3);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e104 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x104), 0x00000604 >> 3);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e108 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x108), 0x00000a04 >> 3);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e10c = 0x%x\n",
|
|
(INFRACFG_BASE + 0x10c), 0x00000b04 >> 3);
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x102197fc = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x7fc));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x102197fc = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x7fc));
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e100 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x100), 0x00001504 >> 3);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e104 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x104), 0x00001604 >> 3);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e108 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x108), 0x00001704 >> 3);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e10c = 0x%x\n",
|
|
(INFRACFG_BASE + 0x10c), 0x00001804 >> 3);
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x102197fc = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x7fc));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x102197fc = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x7fc));
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e100 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x100), 0x00001904 >> 3);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e104 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x104), 0x00001a04 >> 3);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e108 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x108), 0x00001b04 >> 3);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e10c = 0x%x\n",
|
|
(INFRACFG_BASE + 0x10c), 0x00001c04 >> 3);
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x102197fc = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x7fc));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x102197fc = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x7fc));
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e100 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x100), 0x00003600 >> 3);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e104 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x104), 0x00003700 >> 3);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e108 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x108), 0x00003800 >> 3);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1020e10c = 0x%x\n",
|
|
(INFRACFG_BASE + 0x10c), 0x00003900 >> 3);
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x102197fc = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x7fc));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x102197fc = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x7fc));
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1022da80 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa80), 0x00000001);
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1022da88 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa88), 0x00120000);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1022da8c = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa8c), 0x00180017);
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1022da88 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa88), 0x00160015);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1022da8c = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa8c), 0x00180017);
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1022da88 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa88), 0x001a0019);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1022da8c = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa8c), 0x0001001b);
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1022da88 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa88), 0x00370036);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1022da8c = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa8c), 0x00390038);
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1022da88 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa88), 0x00050004);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1022da8c = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa8c), 0x00070006);
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1022da88 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa88), 0x000e0008);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1022da8c = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa8c), 0x0010000f);
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1022da88 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa88), 0x000a0009);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x1022da8c = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa8c), 0x000c000b);
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x10235a80 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa80), 0x00000001);
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x10235a88 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa88), 0x00120000);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x10235a8c = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa8c), 0x00180017);
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x10235a88 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa88), 0x00160015);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x10235a8c = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa8c), 0x00180017);
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x10235a88 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa88), 0x001a0019);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x10235a8c = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa8c), 0x0001001b);
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x10235a88 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa88), 0x00370036);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x10235a8c = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa8c), 0x00390038);
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x10235a88 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa88), 0x00050004);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x10235a8c = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa8c), 0x00070006);
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x10235a88 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa88), 0x000e0008);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x10235a8c = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa8c), 0x0010000f);
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x10235a88 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa88), 0x000a0009);
|
|
EMI_DBG_SIMPLE_RWR("[EMI] 0x10235a8c = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa8c), 0x000c000b);
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
#endif
|
|
}
|
|
|
|
#define EMI_DBG_SIMPLE_RWR_MD(msg, addr, wval) do {\
|
|
pr_debug(msg, readl(addr)); \
|
|
writel(wval, addr); \
|
|
pr_debug(msg, readl(addr));\
|
|
} while (0)
|
|
|
|
#define EMI_DBG_SIMPLE_R_MD(msg, addr) \
|
|
pr_debug(msg, readl(addr))
|
|
|
|
void dump_emi_outstanding_for_md(void)
|
|
{
|
|
#if 0
|
|
/* CEN_EMI_BASE: 0x10219000 */
|
|
if (!CEN_EMI_BASE)
|
|
return;
|
|
|
|
/* CHA_EMI_BASE: 0x1022D000 */
|
|
if (!CHA_EMI_BASE)
|
|
return;
|
|
|
|
/* CHB_EMI_BASE: 0x10235000 */
|
|
if (!CHB_EMI_BASE)
|
|
return;
|
|
|
|
/* INFRACFG_BASE: 0x1020E000 */
|
|
if (!INFRACFG_BASE)
|
|
return;
|
|
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x102190e8 = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x0e8), readl(CEN_EMI_BASE + 0x0e8) | 0x100);
|
|
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1020e100 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x100), 0x00000104 >> 3);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1020e104 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x104), 0x00000204 >> 3);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1020e108 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x108), 0x00000304 >> 3);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1020e10c = 0x%x\n",
|
|
(INFRACFG_BASE + 0x10c), 0x00000404 >> 3);
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x102197fc = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x7fc));
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x102197fc = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x7fc));
|
|
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1020e100 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x100), 0x00000804 >> 3);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1020e104 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x104), 0x00000904 >> 3);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1020e108 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x108), 0x00001204 >> 3);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1020e10c = 0x%x\n",
|
|
(INFRACFG_BASE + 0x10c), 0x00001104 >> 3);
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x102197fc = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x7fc));
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x102197fc = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x7fc));
|
|
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1020e100 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x100), 0x00001504 >> 3);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1020e104 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x104), 0x00001604 >> 3);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1020e108 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x108), 0x00001704 >> 3);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1020e10c = 0x%x\n",
|
|
(INFRACFG_BASE + 0x10c), 0x00001804 >> 3);
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x102197fc = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x7fc));
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x102197fc = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x7fc));
|
|
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1020e100 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x100), 0x00001904 >> 3);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1020e104 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x104), 0x00001a04 >> 3);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1020e108 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x108), 0x00001b04 >> 3);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1020e10c = 0x%x\n",
|
|
(INFRACFG_BASE + 0x10c), 0x00001c04 >> 3);
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x102197fc = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x7fc));
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x102197fc = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x7fc));
|
|
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1020e100 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x100), 0x00003600 >> 3);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1020e104 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x104), 0x00003700 >> 3);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1020e108 = 0x%x\n",
|
|
(INFRACFG_BASE + 0x108), 0x00003800 >> 3);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1020e10c = 0x%x\n",
|
|
(INFRACFG_BASE + 0x10c), 0x00003900 >> 3);
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x102197fc = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x7fc));
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x102197fc = 0x%x\n",
|
|
(CEN_EMI_BASE + 0x7fc));
|
|
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1022da80 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa80), 0x00000001);
|
|
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1022da88 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa88), 0x00120000);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1022da8c = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa8c), 0x00180017);
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1022da88 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa88), 0x00160015);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1022da8c = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa8c), 0x00180017);
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1022da88 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa88), 0x001a0019);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1022da8c = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa8c), 0x0001001b);
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1022da88 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa88), 0x00370036);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1022da8c = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa8c), 0x00390038);
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1022da88 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa88), 0x00050004);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1022da8c = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa8c), 0x00070006);
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1022da88 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa88), 0x000e0008);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1022da8c = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa8c), 0x0010000f);
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1022da88 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa88), 0x000a0009);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x1022da8c = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa8c), 0x000c000b);
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x1022da84 = 0x%x\n",
|
|
(CHA_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x10235a80 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa80), 0x00000001);
|
|
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x10235a88 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa88), 0x00120000);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x10235a8c = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa8c), 0x00180017);
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x10235a88 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa88), 0x00160015);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x10235a8c = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa8c), 0x00180017);
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x10235a88 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa88), 0x001a0019);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x10235a8c = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa8c), 0x0001001b);
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x10235a88 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa88), 0x00370036);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x10235a8c = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa8c), 0x00390038);
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x10235a88 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa88), 0x00050004);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x10235a8c = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa8c), 0x00070006);
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x10235a88 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa88), 0x000e0008);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x10235a8c = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa8c), 0x0010000f);
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x10235a88 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa88), 0x000a0009);
|
|
EMI_DBG_SIMPLE_RWR_MD("[EMI] 0x10235a8c = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa8c), 0x000c000b);
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
EMI_DBG_SIMPLE_R_MD("[EMI] 0x10235a84 = 0x%x\n",
|
|
(CHB_EMI_BASE + 0xa84));
|
|
#endif
|
|
}
|
|
|
|
void dump_emi_latency(void)
|
|
{
|
|
/* legacy API */
|
|
return;
|
|
}
|