in arch/arm64/src/imx9/ddr/imx9_ddr_training.c [156:510]
static uint32_t ddrphy_to_axi_addr_remap(uint32_t ddr_phy_addr)
{
uint32_t x1;
uint32_t x2;
uint32_t y1;
uint32_t y2;
x1 = (ddr_phy_addr >> 12) & 0x3ff;
x2 = ddr_phy_addr & 0xfff;
switch (x1)
{
case 0x000:
y1 = 0x00;
break;
case 0x001:
y1 = 0x01;
break;
case 0x002:
y1 = 0x02;
break;
case 0x003:
y1 = 0x03;
break;
case 0x004:
y1 = 0x04;
break;
case 0x005:
y1 = 0x05;
break;
case 0x006:
y1 = 0x06;
break;
case 0x007:
y1 = 0x07;
break;
case 0x008:
y1 = 0x08;
break;
case 0x009:
y1 = 0x09;
break;
case 0x00a:
y1 = 0x0a;
break;
case 0x00b:
y1 = 0x0b;
break;
case 0x100:
y1 = 0x0c;
break;
case 0x101:
y1 = 0x0d;
break;
case 0x102:
y1 = 0x0e;
break;
case 0x103:
y1 = 0x0f;
break;
case 0x104:
y1 = 0x10;
break;
case 0x105:
y1 = 0x11;
break;
case 0x106:
y1 = 0x12;
break;
case 0x107:
y1 = 0x13;
break;
case 0x108:
y1 = 0x14;
break;
case 0x109:
y1 = 0x15;
break;
case 0x10a:
y1 = 0x16;
break;
case 0x10b:
y1 = 0x17;
break;
case 0x200:
y1 = 0x18;
break;
case 0x201:
y1 = 0x19;
break;
case 0x202:
y1 = 0x1a;
break;
case 0x203:
y1 = 0x1b;
break;
case 0x204:
y1 = 0x1c;
break;
case 0x205:
y1 = 0x1d;
break;
case 0x206:
y1 = 0x1e;
break;
case 0x207:
y1 = 0x1f;
break;
case 0x208:
y1 = 0x20;
break;
case 0x209:
y1 = 0x21;
break;
case 0x20a:
y1 = 0x22;
break;
case 0x20b:
y1 = 0x23;
break;
case 0x300:
y1 = 0x24;
break;
case 0x301:
y1 = 0x25;
break;
case 0x302:
y1 = 0x26;
break;
case 0x303:
y1 = 0x27;
break;
case 0x304:
y1 = 0x28;
break;
case 0x305:
y1 = 0x29;
break;
case 0x306:
y1 = 0x2a;
break;
case 0x307:
y1 = 0x2b;
break;
case 0x308:
y1 = 0x2c;
break;
case 0x309:
y1 = 0x2d;
break;
case 0x30a:
y1 = 0x2e;
break;
case 0x30b:
y1 = 0x2f;
break;
case 0x010:
y1 = 0x30;
break;
case 0x011:
y1 = 0x31;
break;
case 0x012:
y1 = 0x32;
break;
case 0x013:
y1 = 0x33;
break;
case 0x014:
y1 = 0x34;
break;
case 0x015:
y1 = 0x35;
break;
case 0x016:
y1 = 0x36;
break;
case 0x017:
y1 = 0x37;
break;
case 0x018:
y1 = 0x38;
break;
case 0x019:
y1 = 0x39;
break;
case 0x110:
y1 = 0x3a;
break;
case 0x111:
y1 = 0x3b;
break;
case 0x112:
y1 = 0x3c;
break;
case 0x113:
y1 = 0x3d;
break;
case 0x114:
y1 = 0x3e;
break;
case 0x115:
y1 = 0x3f;
break;
case 0x116:
y1 = 0x40;
break;
case 0x117:
y1 = 0x41;
break;
case 0x118:
y1 = 0x42;
break;
case 0x119:
y1 = 0x43;
break;
case 0x210:
y1 = 0x44;
break;
case 0x211:
y1 = 0x45;
break;
case 0x212:
y1 = 0x46;
break;
case 0x213:
y1 = 0x47;
break;
case 0x214:
y1 = 0x48;
break;
case 0x215:
y1 = 0x49;
break;
case 0x216:
y1 = 0x4a;
break;
case 0x217:
y1 = 0x4b;
break;
case 0x218:
y1 = 0x4c;
break;
case 0x219:
y1 = 0x4d;
break;
case 0x310:
y1 = 0x4e;
break;
case 0x311:
y1 = 0x4f;
break;
case 0x312:
y1 = 0x50;
break;
case 0x313:
y1 = 0x51;
break;
case 0x314:
y1 = 0x52;
break;
case 0x315:
y1 = 0x53;
break;
case 0x316:
y1 = 0x54;
break;
case 0x317:
y1 = 0x55;
break;
case 0x318:
y1 = 0x56;
break;
case 0x319:
y1 = 0x57;
break;
case 0x020:
y1 = 0x58;
break;
case 0x120:
y1 = 0x59;
break;
case 0x220:
y1 = 0x5a;
break;
case 0x320:
y1 = 0x5b;
break;
case 0x040:
y1 = 0x5c;
break;
case 0x140:
y1 = 0x5d;
break;
case 0x240:
y1 = 0x5e;
break;
case 0x340:
y1 = 0x5f;
break;
case 0x050:
y1 = 0x60;
break;
case 0x051:
y1 = 0x61;
break;
case 0x052:
y1 = 0x62;
break;
case 0x053:
y1 = 0x63;
break;
case 0x054:
y1 = 0x64;
break;
case 0x055:
y1 = 0x65;
break;
case 0x056:
y1 = 0x66;
break;
case 0x057:
y1 = 0x67;
break;
case 0x070:
y1 = 0x68;
break;
case 0x090:
y1 = 0x69;
break;
case 0x190:
y1 = 0x6a;
break;
case 0x290:
y1 = 0x6b;
break;
case 0x390:
y1 = 0x6c;
break;
case 0x0c0:
y1 = 0x6d;
break;
case 0x0d0:
y1 = 0x6e;
break;
default:
y1 = 0x00;
break;
}
y2 = ((y1 << 13) | (x2 << 1)) << 1;
y2 += IMX9_DDR_PHY_BASE;
return y2;
}