ppc_bat.h File Reference

Back to the index.

Macros
ppc_bat.h File Reference

Go to the source code of this file.

Macros

#define BAT_RPN   (~0x1ffff) /* physical block start */
 
#define BAT_XPN   0x00000e00 /* eXtended physical page number (0-2) */
 
#define BAT_W   0x00000040 /* 1 = write-through, 0 = write-back */
 
#define BAT_I   0x00000020 /* cache inhibit */
 
#define BAT_M   0x00000010 /* memory coherency enable */
 
#define BAT_G   0x00000008 /* guarded region (not on 601) */
 
#define BAT_X   0x00000004 /* eXtended physical page number (3) */
 
#define BAT_PP   0x00000003 /* PP mask */
 
#define BAT_PP_NONE   0x00000000 /* no access permission */
 
#define BAT_PP_RO_S   0x00000001 /* read-only (soft) */
 
#define BAT_PP_RW   0x00000002 /* read/write */
 
#define BAT_PP_RO   0x00000003 /* read-only */
 
#define BAT_EPI   (~0x1ffffL) /* effective block start */
 
#define BAT_BL   0x00001ffc /* block length */
 
#define BAT_Vs   0x00000002 /* valid in supervisor mode */
 
#define BAT_Vu   0x00000001 /* valid in user mode */
 
#define BAT_XBL   0x0001e000 /* eXtended Block Length (*) */
 
#define BAT_XBL_512M   0x00002000 /* XBL for 512MB */
 
#define BAT_XBL_1G   0x00006000 /* XBL for 1GB */
 
#define BAT_XBL_2G   0x0000e000 /* XBL for 2GB */
 
#define BAT_XBL_4G   0x0001e000 /* XBL for 4GB */
 
#define BAT_V   (BAT_Vs|BAT_Vu)
 
#define BAT_BL_128K   0x00000000
 
#define BAT_BL_256K   0x00000004
 
#define BAT_BL_512K   0x0000000c
 
#define BAT_BL_1M   0x0000001c
 
#define BAT_BL_2M   0x0000003c
 
#define BAT_BL_4M   0x0000007c
 
#define BAT_BL_8M   0x000000fc
 
#define BAT_BL_16M   0x000001fc
 
#define BAT_BL_32M   0x000003fc
 
#define BAT_BL_64M   0x000007fc
 
#define BAT_BL_128M   0x00000ffc
 
#define BAT_BL_256M   0x00001ffc
 
#define BATU(va, len, v)   (((va) & BAT_EPI) | ((len) & BAT_BL) | ((v) & BAT_V))
 
#define BATL(pa, wimg, pp)   (((pa) & BAT_RPN) | (wimg) | (pp))
 
#define BAT_VA_MATCH_P(batu, va)   (((~(((batu)&BAT_BL)<<15))&(va)&BAT_EPI)==((batu)&BAT_EPI))
 
#define BAT_PA_MATCH_P(batu, batl, pa)   (((~(((batu)&BAT_BL)<<15))&(pa)&BAT_RPN)==((batl)&BAT_RPN))
 
#define BAT_VALID_P(batu, msr)   (((msr)&PSL_PR)?(((batu)&BAT_Vu)==BAT_Vu):(((batu)&BAT_Vs)==BAT_Vs))
 
#define BAT601_PBN   0xfffe0000 /* physical block number */
 
#define BAT601_V   0x00000040 /* valid */
 
#define BAT601_BSM   0x0000003f /* block size mask */
 
#define BAT601_BLPI   0xfffe0000 /* block logical page index */
 
#define BAT601_W   0x00000040 /* 1 = write-through, 0 = write-back */
 
#define BAT601_I   0x00000020 /* cache inhibit */
 
#define BAT601_M   0x00000010 /* memory coherency enable */
 
#define BAT601_Ks   0x00000008 /* key-supervisor */
 
#define BAT601_Ku   0x00000004 /* key-user */
 
#define BAT601_PP   0x00000003
 
#define BAT601_PP_NONE   0x00000000 /* no access permission */
 
#define BAT601_PP_RO_S   0x00000001 /* read-only (soft) */
 
#define BAT601_PP_RW   0x00000002 /* read/write */
 
#define BAT601_PP_RO   0x00000003 /* read-only */
 
#define BAT601_BSM_128K   0x00000000
 
#define BAT601_BSM_256K   0x00000001
 
#define BAT601_BSM_512K   0x00000003
 
#define BAT601_BSM_1M   0x00000007
 
#define BAT601_BSM_2M   0x0000000f
 
#define BAT601_BSM_4M   0x0000001f
 
#define BAT601_BSM_8M   0x0000003f
 
#define BATU601(va, wim, key, pp)   (((va) & BAT601_BLPI) | (wim) | (key) | (pp))
 
#define BATL601(pa, size, v)   (((pa) & BAT601_PBN) | (v) | (size))
 
#define BAT601_VA_MATCH_P(batu, batl, va)   (((~(((batl)&BAT601_BSM)<<17))&(va)&BAT601_BLPI)==((batu)&BAT601_BLPI))
 
#define BAT601_VALID_P(batl)   ((batl) & BAT601_V)
 

Macro Definition Documentation

◆ BAT601_BLPI

#define BAT601_BLPI   0xfffe0000 /* block logical page index */

Definition at line 153 of file ppc_bat.h.

◆ BAT601_BSM

#define BAT601_BSM   0x0000003f /* block size mask */

Definition at line 150 of file ppc_bat.h.

◆ BAT601_BSM_128K

#define BAT601_BSM_128K   0x00000000

Definition at line 182 of file ppc_bat.h.

◆ BAT601_BSM_1M

#define BAT601_BSM_1M   0x00000007

Definition at line 185 of file ppc_bat.h.

◆ BAT601_BSM_256K

#define BAT601_BSM_256K   0x00000001

Definition at line 183 of file ppc_bat.h.

◆ BAT601_BSM_2M

#define BAT601_BSM_2M   0x0000000f

Definition at line 186 of file ppc_bat.h.

◆ BAT601_BSM_4M

#define BAT601_BSM_4M   0x0000001f

Definition at line 187 of file ppc_bat.h.

◆ BAT601_BSM_512K

#define BAT601_BSM_512K   0x00000003

Definition at line 184 of file ppc_bat.h.

◆ BAT601_BSM_8M

#define BAT601_BSM_8M   0x0000003f

Definition at line 188 of file ppc_bat.h.

◆ BAT601_I

#define BAT601_I   0x00000020 /* cache inhibit */

Definition at line 155 of file ppc_bat.h.

◆ BAT601_Ks

#define BAT601_Ks   0x00000008 /* key-supervisor */

Definition at line 157 of file ppc_bat.h.

◆ BAT601_Ku

#define BAT601_Ku   0x00000004 /* key-user */

Definition at line 158 of file ppc_bat.h.

◆ BAT601_M

#define BAT601_M   0x00000010 /* memory coherency enable */

Definition at line 156 of file ppc_bat.h.

◆ BAT601_PBN

#define BAT601_PBN   0xfffe0000 /* physical block number */

Definition at line 148 of file ppc_bat.h.

◆ BAT601_PP

#define BAT601_PP   0x00000003

Definition at line 175 of file ppc_bat.h.

◆ BAT601_PP_NONE

#define BAT601_PP_NONE   0x00000000 /* no access permission */

Definition at line 176 of file ppc_bat.h.

◆ BAT601_PP_RO

#define BAT601_PP_RO   0x00000003 /* read-only */

Definition at line 179 of file ppc_bat.h.

◆ BAT601_PP_RO_S

#define BAT601_PP_RO_S   0x00000001 /* read-only (soft) */

Definition at line 177 of file ppc_bat.h.

◆ BAT601_PP_RW

#define BAT601_PP_RW   0x00000002 /* read/write */

Definition at line 178 of file ppc_bat.h.

◆ BAT601_V

#define BAT601_V   0x00000040 /* valid */

Definition at line 149 of file ppc_bat.h.

◆ BAT601_VA_MATCH_P

#define BAT601_VA_MATCH_P (   batu,
  batl,
  va 
)    (((~(((batl)&BAT601_BSM)<<17))&(va)&BAT601_BLPI)==((batu)&BAT601_BLPI))

Definition at line 196 of file ppc_bat.h.

◆ BAT601_VALID_P

#define BAT601_VALID_P (   batl)    ((batl) & BAT601_V)

Definition at line 199 of file ppc_bat.h.

◆ BAT601_W

#define BAT601_W   0x00000040 /* 1 = write-through, 0 = write-back */

Definition at line 154 of file ppc_bat.h.

◆ BAT_BL

#define BAT_BL   0x00001ffc /* block length */

Definition at line 106 of file ppc_bat.h.

◆ BAT_BL_128K

#define BAT_BL_128K   0x00000000

Definition at line 119 of file ppc_bat.h.

◆ BAT_BL_128M

#define BAT_BL_128M   0x00000ffc

Definition at line 129 of file ppc_bat.h.

◆ BAT_BL_16M

#define BAT_BL_16M   0x000001fc

Definition at line 126 of file ppc_bat.h.

◆ BAT_BL_1M

#define BAT_BL_1M   0x0000001c

Definition at line 122 of file ppc_bat.h.

◆ BAT_BL_256K

#define BAT_BL_256K   0x00000004

Definition at line 120 of file ppc_bat.h.

◆ BAT_BL_256M

#define BAT_BL_256M   0x00001ffc

Definition at line 130 of file ppc_bat.h.

◆ BAT_BL_2M

#define BAT_BL_2M   0x0000003c

Definition at line 123 of file ppc_bat.h.

◆ BAT_BL_32M

#define BAT_BL_32M   0x000003fc

Definition at line 127 of file ppc_bat.h.

◆ BAT_BL_4M

#define BAT_BL_4M   0x0000007c

Definition at line 124 of file ppc_bat.h.

◆ BAT_BL_512K

#define BAT_BL_512K   0x0000000c

Definition at line 121 of file ppc_bat.h.

◆ BAT_BL_64M

#define BAT_BL_64M   0x000007fc

Definition at line 128 of file ppc_bat.h.

◆ BAT_BL_8M

#define BAT_BL_8M   0x000000fc

Definition at line 125 of file ppc_bat.h.

◆ BAT_EPI

#define BAT_EPI   (~0x1ffffL) /* effective block start */

Definition at line 105 of file ppc_bat.h.

◆ BAT_G

#define BAT_G   0x00000008 /* guarded region (not on 601) */

Definition at line 90 of file ppc_bat.h.

◆ BAT_I

#define BAT_I   0x00000020 /* cache inhibit */

Definition at line 88 of file ppc_bat.h.

◆ BAT_M

#define BAT_M   0x00000010 /* memory coherency enable */

Definition at line 89 of file ppc_bat.h.

◆ BAT_PA_MATCH_P

#define BAT_PA_MATCH_P (   batu,
  batl,
  pa 
)    (((~(((batu)&BAT_BL)<<15))&(pa)&BAT_RPN)==((batl)&BAT_RPN))

Definition at line 141 of file ppc_bat.h.

◆ BAT_PP

#define BAT_PP   0x00000003 /* PP mask */

Definition at line 98 of file ppc_bat.h.

◆ BAT_PP_NONE

#define BAT_PP_NONE   0x00000000 /* no access permission */

Definition at line 99 of file ppc_bat.h.

◆ BAT_PP_RO

#define BAT_PP_RO   0x00000003 /* read-only */

Definition at line 102 of file ppc_bat.h.

◆ BAT_PP_RO_S

#define BAT_PP_RO_S   0x00000001 /* read-only (soft) */

Definition at line 100 of file ppc_bat.h.

◆ BAT_PP_RW

#define BAT_PP_RW   0x00000002 /* read/write */

Definition at line 101 of file ppc_bat.h.

◆ BAT_RPN

#define BAT_RPN   (~0x1ffff) /* physical block start */

Definition at line 85 of file ppc_bat.h.

◆ BAT_V

#define BAT_V   (BAT_Vs|BAT_Vu)

Definition at line 116 of file ppc_bat.h.

◆ BAT_VA_MATCH_P

#define BAT_VA_MATCH_P (   batu,
  va 
)    (((~(((batu)&BAT_BL)<<15))&(va)&BAT_EPI)==((batu)&BAT_EPI))

Definition at line 138 of file ppc_bat.h.

◆ BAT_VALID_P

#define BAT_VALID_P (   batu,
  msr 
)    (((msr)&PSL_PR)?(((batu)&BAT_Vu)==BAT_Vu):(((batu)&BAT_Vs)==BAT_Vs))

Definition at line 144 of file ppc_bat.h.

◆ BAT_Vs

#define BAT_Vs   0x00000002 /* valid in supervisor mode */

Definition at line 107 of file ppc_bat.h.

◆ BAT_Vu

#define BAT_Vu   0x00000001 /* valid in user mode */

Definition at line 108 of file ppc_bat.h.

◆ BAT_W

#define BAT_W   0x00000040 /* 1 = write-through, 0 = write-back */

Definition at line 87 of file ppc_bat.h.

◆ BAT_X

#define BAT_X   0x00000004 /* eXtended physical page number (3) */

Definition at line 91 of file ppc_bat.h.

◆ BAT_XBL

#define BAT_XBL   0x0001e000 /* eXtended Block Length (*) */

Definition at line 110 of file ppc_bat.h.

◆ BAT_XBL_1G

#define BAT_XBL_1G   0x00006000 /* XBL for 1GB */

Definition at line 112 of file ppc_bat.h.

◆ BAT_XBL_2G

#define BAT_XBL_2G   0x0000e000 /* XBL for 2GB */

Definition at line 113 of file ppc_bat.h.

◆ BAT_XBL_4G

#define BAT_XBL_4G   0x0001e000 /* XBL for 4GB */

Definition at line 114 of file ppc_bat.h.

◆ BAT_XBL_512M

#define BAT_XBL_512M   0x00002000 /* XBL for 512MB */

Definition at line 111 of file ppc_bat.h.

◆ BAT_XPN

#define BAT_XPN   0x00000e00 /* eXtended physical page number (0-2) */

Definition at line 86 of file ppc_bat.h.

◆ BATL

#define BATL (   pa,
  wimg,
  pp 
)    (((pa) & BAT_RPN) | (wimg) | (pp))

Definition at line 135 of file ppc_bat.h.

◆ BATL601

#define BATL601 (   pa,
  size,
 
)    (((pa) & BAT601_PBN) | (v) | (size))

Definition at line 193 of file ppc_bat.h.

◆ BATU

#define BATU (   va,
  len,
 
)    (((va) & BAT_EPI) | ((len) & BAT_BL) | ((v) & BAT_V))

Definition at line 132 of file ppc_bat.h.

◆ BATU601

#define BATU601 (   va,
  wim,
  key,
  pp 
)    (((va) & BAT601_BLPI) | (wim) | (key) | (pp))

Definition at line 190 of file ppc_bat.h.


Generated on Tue Aug 25 2020 19:25:06 for GXemul by doxygen 1.8.18