static uint32_t ddrphy_to_axi_addr_remap()

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;
}