]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
check adresses used in DCD for accessibility
authorLothar Waßmann <LW@KARO-electronics.de>
Fri, 17 May 2013 13:26:15 +0000 (15:26 +0200)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 17 May 2013 13:26:15 +0000 (15:26 +0200)
board/karo/tx6q/lowlevel_init.S

index 883f2ab51860df7c18f6591b21661f78031bfa36..d5ad3f319df40e14a51c555127f592ad285eeeec 100644 (file)
        (((l) >> 8) & 0x0000FF00) |     \
        (((l) >> 24) & 0x000000FF))
 
-#define MXC_DCD_ITEM(addr, val)                .word   CPU_2_BE_32(addr), CPU_2_BE_32(val)
-
-#define CHECK_DCD_ADDR(a)      ((((a) >= 0x00907000) && ((a) <= 0x00937FF0)) || \
-       (((a) >= 0x020C4000) && ((a) < 0x020C8000)) || \
-       (((a) >= 0x020C8000) && ((a) < 0x020C9000)) || \
-       (((a) >= 0x020E0000) && ((a) < 0x020E4000)) || \
-       (((a) >= 0x021B0000) && ((a) < 0x021B8000)) || \
-       (((a) >= 0x08000000) && ((a) < 0x0FFF0000)) || \
-       (((a) >= 0x10000000)))
+#define CHECK_DCD_ADDR(a)      (                       \
+       ((a) >= 0x020E0000 && (a) <= 0x020E3FFF) /* IOMUXC */ ||        \
+       ((a) >= 0x020C4000 && (a) <= 0x020C7FFF) /* CCM */ ||   \
+       ((a) >= 0x020C8000 && (a) <= 0x020C8FFF) /* ANALOG */ ||        \
+       ((a) >= 0x021B0000 && (a) <= 0x021B7FFF) /* MMDC */ ||  \
+       ((a) >= 0x00907000 && (a) <= 0x00937FF0) /* OCRAM */ || \
+       ((a) >= 0x08000000 && (a) <= 0x0FFEFFFF) /* EIM (CS0) */ ||     \
+       ((a) >= 0x10000000 && (a) <= 0xFFFFFFFF) /* SDRAM */)
+
+       .macro  mxc_dcd_item    addr, val
+       .ifne   CHECK_DCD_ADDR(\addr)
+       .word   CPU_2_BE_32(\addr), CPU_2_BE_32(\val)
+       .else
+       .error  "Address \addr not accessible from DCD"
+       .endif
+       .endm
+
+#define MXC_DCD_ITEM(addr, val)                mxc_dcd_item    addr, val
 
 #define MXC_DCD_CMD_SZ_BYTE            1
 #define MXC_DCD_CMD_SZ_SHORT           2