4 #ifndef _POWERPC_OEA_BAT_H_ 5 #define _POWERPC_OEA_BAT_H_ 84 #define BAT_RPN (~0x1ffff) 85 #define BAT_XPN 0x00000e00 86 #define BAT_W 0x00000040 87 #define BAT_I 0x00000020 88 #define BAT_M 0x00000010 89 #define BAT_G 0x00000008 90 #define BAT_X 0x00000004 97 #define BAT_PP 0x00000003 98 #define BAT_PP_NONE 0x00000000 99 #define BAT_PP_RO_S 0x00000001 100 #define BAT_PP_RW 0x00000002 101 #define BAT_PP_RO 0x00000003 104 #define BAT_EPI (~0x1ffffL) 105 #define BAT_BL 0x00001ffc 106 #define BAT_Vs 0x00000002 107 #define BAT_Vu 0x00000001 109 #define BAT_XBL 0x0001e000 110 #define BAT_XBL_512M 0x00002000 111 #define BAT_XBL_1G 0x00006000 112 #define BAT_XBL_2G 0x0000e000 113 #define BAT_XBL_4G 0x0001e000 115 #define BAT_V (BAT_Vs|BAT_Vu) 118 #define BAT_BL_128K 0x00000000 119 #define BAT_BL_256K 0x00000004 120 #define BAT_BL_512K 0x0000000c 121 #define BAT_BL_1M 0x0000001c 122 #define BAT_BL_2M 0x0000003c 123 #define BAT_BL_4M 0x0000007c 124 #define BAT_BL_8M 0x000000fc 125 #define BAT_BL_16M 0x000001fc 126 #define BAT_BL_32M 0x000003fc 127 #define BAT_BL_64M 0x000007fc 128 #define BAT_BL_128M 0x00000ffc 129 #define BAT_BL_256M 0x00001ffc 131 #define BATU(va, len, v) \ 132 (((va) & BAT_EPI) | ((len) & BAT_BL) | ((v) & BAT_V)) 134 #define BATL(pa, wimg, pp) \ 135 (((pa) & BAT_RPN) | (wimg) | (pp)) 137 #define BAT_VA_MATCH_P(batu,va) \ 138 (((~(((batu)&BAT_BL)<<15))&(va)&BAT_EPI)==((batu)&BAT_EPI)) 140 #define BAT_PA_MATCH_P(batu,batl,pa) \ 141 (((~(((batu)&BAT_BL)<<15))&(pa)&BAT_RPN)==((batl)&BAT_RPN)) 143 #define BAT_VALID_P(batu, msr) \ 144 (((msr)&PSL_PR)?(((batu)&BAT_Vu)==BAT_Vu):(((batu)&BAT_Vs)==BAT_Vs)) 147 #define BAT601_PBN 0xfffe0000 148 #define BAT601_V 0x00000040 149 #define BAT601_BSM 0x0000003f 152 #define BAT601_BLPI 0xfffe0000 153 #define BAT601_W 0x00000040 154 #define BAT601_I 0x00000020 155 #define BAT601_M 0x00000010 156 #define BAT601_Ks 0x00000008 157 #define BAT601_Ku 0x00000004 174 #define BAT601_PP 0x00000003 175 #define BAT601_PP_NONE 0x00000000 176 #define BAT601_PP_RO_S 0x00000001 177 #define BAT601_PP_RW 0x00000002 178 #define BAT601_PP_RO 0x00000003 181 #define BAT601_BSM_128K 0x00000000 182 #define BAT601_BSM_256K 0x00000001 183 #define BAT601_BSM_512K 0x00000003 184 #define BAT601_BSM_1M 0x00000007 185 #define BAT601_BSM_2M 0x0000000f 186 #define BAT601_BSM_4M 0x0000001f 187 #define BAT601_BSM_8M 0x0000003f 189 #define BATU601(va, wim, key, pp) \ 190 (((va) & BAT601_BLPI) | (wim) | (key) | (pp)) 192 #define BATL601(pa, size, v) \ 193 (((pa) & BAT601_PBN) | (v) | (size)) 195 #define BAT601_VA_MATCH_P(batu, batl, va) \ 196 (((~(((batl)&BAT601_BSM)<<17))&(va)&BAT601_BLPI)==((batu)&BAT601_BLPI)) 198 #define BAT601_VALID_P(batl) \ 203 void oea_batinit(paddr_t, ...);
204 void oea_iobat_add(paddr_t, register_t);
205 void oea_iobat_remove(paddr_t);
206 extern struct bat battable[];