menu "BATS setup"

menuconfig BAT0
	bool "BAT0"

if BAT0

config BAT0_NAME
	string "Identifier"

config BAT0_BASE
	hex "Base"

choice
	prompt "Block length"

config BAT0_LENGTH_128_KBYTES
	bool "128 kb"

config BAT0_LENGTH_256_KBYTES
	bool "256 kb"

config BAT0_LENGTH_512_KBYTES
	bool "512 kb"

config BAT0_LENGTH_1_MBYTES
	bool "1 mb"

config BAT0_LENGTH_2_MBYTES
	bool "2 mb"

config BAT0_LENGTH_4_MBYTES
	bool "4 mb"

config BAT0_LENGTH_8_MBYTES
	bool "8 mb"

config BAT0_LENGTH_16_MBYTES
	bool "16 mb"

config BAT0_LENGTH_32_MBYTES
	bool "32 mb"

config BAT0_LENGTH_64_MBYTES
	bool "64 mb"

config BAT0_LENGTH_128_MBYTES
	bool "128 mb"

config BAT0_LENGTH_256_MBYTES
	bool "256 mb"
endchoice

choice
	prompt "Protection mode"

config BAT0_ACCESS_NONE
	bool "No access"

config BAT0_ACCESS_RO
	bool "Read-only"

config BAT0_ACCESS_RW
	bool "Read-write"

endchoice

config BAT0_ICACHE_INHIBITED
	bool "I-cache Inhibited"

config BAT0_ICACHE_MEMORYCOHERENCE
	bool "I-cache Memory coherence"

config BAT0_DCACHE_WRITETHROUGH
	bool "D-cache Write-through"

config BAT0_DCACHE_INHIBITED
	bool "D-cache Inhibited"

config BAT0_DCACHE_MEMORYCOHERENCE
	bool "D-cache Memory coherence"

config BAT0_DCACHE_GUARDED
	bool "D-cache Guarded"

config BAT0_USER_MODE_VALID
	bool "User mode valid"

config BAT0_SUPERVISOR_MODE_VALID
	bool "Supervisor mode valid"

endif

config BAT0_LENGTH
	hex
	default 0x00000000 if BAT0_LENGTH_128_KBYTES
	default 0x00000004 if BAT0_LENGTH_256_KBYTES
	default 0x0000000c if BAT0_LENGTH_512_KBYTES
	default 0x0000001c if BAT0_LENGTH_1_MBYTES
	default 0x0000003c if BAT0_LENGTH_2_MBYTES
	default 0x0000007c if BAT0_LENGTH_4_MBYTES
	default 0x000000fc if BAT0_LENGTH_8_MBYTES
	default 0x000001fc if BAT0_LENGTH_16_MBYTES
	default 0x000003fc if BAT0_LENGTH_32_MBYTES
	default 0x000007fc if BAT0_LENGTH_64_MBYTES
	default 0x00000ffc if BAT0_LENGTH_128_MBYTES
	default 0x00001ffc if BAT0_LENGTH_256_MBYTES

config BAT0_PAGE_PROTECTION
	hex
	default 0x0 if BAT0_ACCESS_NONE
	default 0x1 if BAT0_ACCESS_RO
	default 0x2 if BAT0_ACCESS_RW

config BAT0_WIMG_ICACHE
	hex
	default 0x0 if !BAT0_ICACHE_INHIBITED && !BAT0_ICACHE_MEMORYCOHERENCE
	default 0x10 if !BAT0_ICACHE_INHIBITED && BAT0_ICACHE_MEMORYCOHERENCE
	default 0x20 if BAT0_ICACHE_INHIBITED && !BAT0_ICACHE_MEMORYCOHERENCE
	default 0x30 if BAT0_ICACHE_INHIBITED && BAT0_ICACHE_MEMORYCOHERENCE

config BAT0_WIMG_DCACHE
	hex
	default 0x0 if !BAT0_DCACHE_WRITETHROUGH && !BAT0_DCACHE_INHIBITED && !BAT0_DCACHE_MEMORYCOHERENCE && !BAT0_DCACHE_GUARDED
	default 0x8 if !BAT0_DCACHE_WRITETHROUGH && !BAT0_DCACHE_INHIBITED && !BAT0_DCACHE_MEMORYCOHERENCE && BAT0_DCACHE_GUARDED
	default 0x10 if !BAT0_DCACHE_WRITETHROUGH && !BAT0_DCACHE_INHIBITED && BAT0_DCACHE_MEMORYCOHERENCE && !BAT0_DCACHE_GUARDED
	default 0x18 if !BAT0_DCACHE_WRITETHROUGH && !BAT0_DCACHE_INHIBITED && BAT0_DCACHE_MEMORYCOHERENCE && BAT0_DCACHE_GUARDED
	default 0x20 if !BAT0_DCACHE_WRITETHROUGH && BAT0_DCACHE_INHIBITED && !BAT0_DCACHE_MEMORYCOHERENCE && !BAT0_DCACHE_GUARDED
	default 0x28 if !BAT0_DCACHE_WRITETHROUGH && BAT0_DCACHE_INHIBITED && !BAT0_DCACHE_MEMORYCOHERENCE && BAT0_DCACHE_GUARDED
	default 0x30 if !BAT0_DCACHE_WRITETHROUGH && BAT0_DCACHE_INHIBITED && BAT0_DCACHE_MEMORYCOHERENCE && !BAT0_DCACHE_GUARDED
	default 0x38 if !BAT0_DCACHE_WRITETHROUGH && BAT0_DCACHE_INHIBITED && BAT0_DCACHE_MEMORYCOHERENCE && BAT0_DCACHE_GUARDED
	default 0x40 if BAT0_DCACHE_WRITETHROUGH && !BAT0_DCACHE_INHIBITED && !BAT0_DCACHE_MEMORYCOHERENCE && !BAT0_DCACHE_GUARDED
	default 0x48 if BAT0_DCACHE_WRITETHROUGH && !BAT0_DCACHE_INHIBITED && !BAT0_DCACHE_MEMORYCOHERENCE && BAT0_DCACHE_GUARDED
	default 0x50 if BAT0_DCACHE_WRITETHROUGH && !BAT0_DCACHE_INHIBITED && BAT0_DCACHE_MEMORYCOHERENCE && !BAT0_DCACHE_GUARDED
	default 0x58 if BAT0_DCACHE_WRITETHROUGH && !BAT0_DCACHE_INHIBITED && BAT0_DCACHE_MEMORYCOHERENCE && BAT0_DCACHE_GUARDED
	default 0x60 if BAT0_DCACHE_WRITETHROUGH && BAT0_DCACHE_INHIBITED && !BAT0_DCACHE_MEMORYCOHERENCE && !BAT0_DCACHE_GUARDED
	default 0x68 if BAT0_DCACHE_WRITETHROUGH && BAT0_DCACHE_INHIBITED && !BAT0_DCACHE_MEMORYCOHERENCE && BAT0_DCACHE_GUARDED
	default 0x70 if BAT0_DCACHE_WRITETHROUGH && BAT0_DCACHE_INHIBITED && BAT0_DCACHE_MEMORYCOHERENCE && !BAT0_DCACHE_GUARDED
	default 0x78 if BAT0_DCACHE_WRITETHROUGH && BAT0_DCACHE_INHIBITED && BAT0_DCACHE_MEMORYCOHERENCE && BAT0_DCACHE_GUARDED

config BAT0_VALID_BITS
	hex
	default 0x0 if !BAT0_SUPERVISOR_MODE_VALID && !BAT0_USER_MODE_VALID
	default 0x1 if !BAT0_SUPERVISOR_MODE_VALID && BAT0_USER_MODE_VALID
	default 0x2 if BAT0_SUPERVISOR_MODE_VALID && !BAT0_USER_MODE_VALID
	default 0x3 if BAT0_SUPERVISOR_MODE_VALID && BAT0_USER_MODE_VALID

menuconfig BAT1
	bool "BAT1"

if BAT1

config BAT1_NAME
	string "Identifier"

config BAT1_BASE
	hex "Base"

choice
	prompt "Block length"

config BAT1_LENGTH_128_KBYTES
	bool "128 kb"

config BAT1_LENGTH_256_KBYTES
	bool "256 kb"

config BAT1_LENGTH_512_KBYTES
	bool "512 kb"

config BAT1_LENGTH_1_MBYTES
	bool "1 mb"

config BAT1_LENGTH_2_MBYTES
	bool "2 mb"

config BAT1_LENGTH_4_MBYTES
	bool "4 mb"

config BAT1_LENGTH_8_MBYTES
	bool "8 mb"

config BAT1_LENGTH_16_MBYTES
	bool "16 mb"

config BAT1_LENGTH_32_MBYTES
	bool "32 mb"

config BAT1_LENGTH_64_MBYTES
	bool "64 mb"

config BAT1_LENGTH_128_MBYTES
	bool "128 mb"

config BAT1_LENGTH_256_MBYTES
	bool "256 mb"
endchoice

choice
	prompt "Protection mode"

config BAT1_ACCESS_NONE
	bool "No access"

config BAT1_ACCESS_RO
	bool "Read-only"

config BAT1_ACCESS_RW
	bool "Read-write"

endchoice

config BAT1_ICACHE_INHIBITED
	bool "I-cache Inhibited"

config BAT1_ICACHE_MEMORYCOHERENCE
	bool "I-cache Memory coherence"

config BAT1_DCACHE_WRITETHROUGH
	bool "D-cache Write-through"

config BAT1_DCACHE_INHIBITED
	bool "D-cache Inhibited"

config BAT1_DCACHE_MEMORYCOHERENCE
	bool "D-cache Memory coherence"

config BAT1_DCACHE_GUARDED
	bool "D-cache Guarded"

config BAT1_USER_MODE_VALID
	bool "User mode valid"

config BAT1_SUPERVISOR_MODE_VALID
	bool "Supervisor mode valid"

endif

config BAT1_LENGTH
	hex
	default 0x00000000 if BAT1_LENGTH_128_KBYTES
	default 0x00000004 if BAT1_LENGTH_256_KBYTES
	default 0x0000000c if BAT1_LENGTH_512_KBYTES
	default 0x0000001c if BAT1_LENGTH_1_MBYTES
	default 0x0000003c if BAT1_LENGTH_2_MBYTES
	default 0x0000007c if BAT1_LENGTH_4_MBYTES
	default 0x000000fc if BAT1_LENGTH_8_MBYTES
	default 0x000001fc if BAT1_LENGTH_16_MBYTES
	default 0x000003fc if BAT1_LENGTH_32_MBYTES
	default 0x000007fc if BAT1_LENGTH_64_MBYTES
	default 0x00000ffc if BAT1_LENGTH_128_MBYTES
	default 0x00001ffc if BAT1_LENGTH_256_MBYTES

config BAT1_PAGE_PROTECTION
	hex
	default 0x0 if BAT1_ACCESS_NONE
	default 0x1 if BAT1_ACCESS_RO
	default 0x2 if BAT1_ACCESS_RW

config BAT1_WIMG_ICACHE
	hex
	default 0x0 if !BAT1_ICACHE_INHIBITED && !BAT1_ICACHE_MEMORYCOHERENCE
	default 0x10 if !BAT1_ICACHE_INHIBITED && BAT1_ICACHE_MEMORYCOHERENCE
	default 0x20 if BAT1_ICACHE_INHIBITED && !BAT1_ICACHE_MEMORYCOHERENCE
	default 0x30 if BAT1_ICACHE_INHIBITED && BAT1_ICACHE_MEMORYCOHERENCE

config BAT1_WIMG_DCACHE
	hex
	default 0x0 if !BAT1_DCACHE_WRITETHROUGH && !BAT1_DCACHE_INHIBITED && !BAT1_DCACHE_MEMORYCOHERENCE && !BAT1_DCACHE_GUARDED
	default 0x8 if !BAT1_DCACHE_WRITETHROUGH && !BAT1_DCACHE_INHIBITED && !BAT1_DCACHE_MEMORYCOHERENCE && BAT1_DCACHE_GUARDED
	default 0x10 if !BAT1_DCACHE_WRITETHROUGH && !BAT1_DCACHE_INHIBITED && BAT1_DCACHE_MEMORYCOHERENCE && !BAT1_DCACHE_GUARDED
	default 0x18 if !BAT1_DCACHE_WRITETHROUGH && !BAT1_DCACHE_INHIBITED && BAT1_DCACHE_MEMORYCOHERENCE && BAT1_DCACHE_GUARDED
	default 0x20 if !BAT1_DCACHE_WRITETHROUGH && BAT1_DCACHE_INHIBITED && !BAT1_DCACHE_MEMORYCOHERENCE && !BAT1_DCACHE_GUARDED
	default 0x28 if !BAT1_DCACHE_WRITETHROUGH && BAT1_DCACHE_INHIBITED && !BAT1_DCACHE_MEMORYCOHERENCE && BAT1_DCACHE_GUARDED
	default 0x30 if !BAT1_DCACHE_WRITETHROUGH && BAT1_DCACHE_INHIBITED && BAT1_DCACHE_MEMORYCOHERENCE && !BAT1_DCACHE_GUARDED
	default 0x38 if !BAT1_DCACHE_WRITETHROUGH && BAT1_DCACHE_INHIBITED && BAT1_DCACHE_MEMORYCOHERENCE && BAT1_DCACHE_GUARDED
	default 0x40 if BAT1_DCACHE_WRITETHROUGH && !BAT1_DCACHE_INHIBITED && !BAT1_DCACHE_MEMORYCOHERENCE && !BAT1_DCACHE_GUARDED
	default 0x48 if BAT1_DCACHE_WRITETHROUGH && !BAT1_DCACHE_INHIBITED && !BAT1_DCACHE_MEMORYCOHERENCE && BAT1_DCACHE_GUARDED
	default 0x50 if BAT1_DCACHE_WRITETHROUGH && !BAT1_DCACHE_INHIBITED && BAT1_DCACHE_MEMORYCOHERENCE && !BAT1_DCACHE_GUARDED
	default 0x58 if BAT1_DCACHE_WRITETHROUGH && !BAT1_DCACHE_INHIBITED && BAT1_DCACHE_MEMORYCOHERENCE && BAT1_DCACHE_GUARDED
	default 0x60 if BAT1_DCACHE_WRITETHROUGH && BAT1_DCACHE_INHIBITED && !BAT1_DCACHE_MEMORYCOHERENCE && !BAT1_DCACHE_GUARDED
	default 0x68 if BAT1_DCACHE_WRITETHROUGH && BAT1_DCACHE_INHIBITED && !BAT1_DCACHE_MEMORYCOHERENCE && BAT1_DCACHE_GUARDED
	default 0x70 if BAT1_DCACHE_WRITETHROUGH && BAT1_DCACHE_INHIBITED && BAT1_DCACHE_MEMORYCOHERENCE && !BAT1_DCACHE_GUARDED
	default 0x78 if BAT1_DCACHE_WRITETHROUGH && BAT1_DCACHE_INHIBITED && BAT1_DCACHE_MEMORYCOHERENCE && BAT1_DCACHE_GUARDED

config BAT1_VALID_BITS
	hex
	default 0x0 if !BAT1_SUPERVISOR_MODE_VALID && !BAT1_USER_MODE_VALID
	default 0x1 if !BAT1_SUPERVISOR_MODE_VALID && BAT1_USER_MODE_VALID
	default 0x2 if BAT1_SUPERVISOR_MODE_VALID && !BAT1_USER_MODE_VALID
	default 0x3 if BAT1_SUPERVISOR_MODE_VALID && BAT1_USER_MODE_VALID

menuconfig BAT2
	bool "BAT2"

if BAT2

config BAT2_NAME
	string "Identifier"

config BAT2_BASE
	hex "Base"

choice
	prompt "Block length"

config BAT2_LENGTH_128_KBYTES
	bool "128 kb"

config BAT2_LENGTH_256_KBYTES
	bool "256 kb"

config BAT2_LENGTH_512_KBYTES
	bool "512 kb"

config BAT2_LENGTH_1_MBYTES
	bool "1 mb"

config BAT2_LENGTH_2_MBYTES
	bool "2 mb"

config BAT2_LENGTH_4_MBYTES
	bool "4 mb"

config BAT2_LENGTH_8_MBYTES
	bool "8 mb"

config BAT2_LENGTH_16_MBYTES
	bool "16 mb"

config BAT2_LENGTH_32_MBYTES
	bool "32 mb"

config BAT2_LENGTH_64_MBYTES
	bool "64 mb"

config BAT2_LENGTH_128_MBYTES
	bool "128 mb"

config BAT2_LENGTH_256_MBYTES
	bool "256 mb"
endchoice

choice
	prompt "Protection mode"

config BAT2_ACCESS_NONE
	bool "No access"

config BAT2_ACCESS_RO
	bool "Read-only"

config BAT2_ACCESS_RW
	bool "Read-write"

endchoice

config BAT2_ICACHE_INHIBITED
	bool "I-cache Inhibited"

config BAT2_ICACHE_MEMORYCOHERENCE
	bool "I-cache Memory coherence"

config BAT2_DCACHE_WRITETHROUGH
	bool "D-cache Write-through"

config BAT2_DCACHE_INHIBITED
	bool "D-cache Inhibited"

config BAT2_DCACHE_MEMORYCOHERENCE
	bool "D-cache Memory coherence"

config BAT2_DCACHE_GUARDED
	bool "D-cache Guarded"

config BAT2_USER_MODE_VALID
	bool "User mode valid"

config BAT2_SUPERVISOR_MODE_VALID
	bool "Supervisor mode valid"

endif

config BAT2_LENGTH
	hex
	default 0x00000000 if BAT2_LENGTH_128_KBYTES
	default 0x00000004 if BAT2_LENGTH_256_KBYTES
	default 0x0000000c if BAT2_LENGTH_512_KBYTES
	default 0x0000001c if BAT2_LENGTH_1_MBYTES
	default 0x0000003c if BAT2_LENGTH_2_MBYTES
	default 0x0000007c if BAT2_LENGTH_4_MBYTES
	default 0x000000fc if BAT2_LENGTH_8_MBYTES
	default 0x000001fc if BAT2_LENGTH_16_MBYTES
	default 0x000003fc if BAT2_LENGTH_32_MBYTES
	default 0x000007fc if BAT2_LENGTH_64_MBYTES
	default 0x00000ffc if BAT2_LENGTH_128_MBYTES
	default 0x00001ffc if BAT2_LENGTH_256_MBYTES

config BAT2_PAGE_PROTECTION
	hex
	default 0x0 if BAT2_ACCESS_NONE
	default 0x1 if BAT2_ACCESS_RO
	default 0x2 if BAT2_ACCESS_RW

config BAT2_WIMG_ICACHE
	hex
	default 0x0 if !BAT2_ICACHE_INHIBITED && !BAT2_ICACHE_MEMORYCOHERENCE
	default 0x10 if !BAT2_ICACHE_INHIBITED && BAT2_ICACHE_MEMORYCOHERENCE
	default 0x20 if BAT2_ICACHE_INHIBITED && !BAT2_ICACHE_MEMORYCOHERENCE
	default 0x30 if BAT2_ICACHE_INHIBITED && BAT2_ICACHE_MEMORYCOHERENCE

config BAT2_WIMG_DCACHE
	hex
	default 0x0 if !BAT2_DCACHE_WRITETHROUGH && !BAT2_DCACHE_INHIBITED && !BAT2_DCACHE_MEMORYCOHERENCE && !BAT2_DCACHE_GUARDED
	default 0x8 if !BAT2_DCACHE_WRITETHROUGH && !BAT2_DCACHE_INHIBITED && !BAT2_DCACHE_MEMORYCOHERENCE && BAT2_DCACHE_GUARDED
	default 0x10 if !BAT2_DCACHE_WRITETHROUGH && !BAT2_DCACHE_INHIBITED && BAT2_DCACHE_MEMORYCOHERENCE && !BAT2_DCACHE_GUARDED
	default 0x18 if !BAT2_DCACHE_WRITETHROUGH && !BAT2_DCACHE_INHIBITED && BAT2_DCACHE_MEMORYCOHERENCE && BAT2_DCACHE_GUARDED
	default 0x20 if !BAT2_DCACHE_WRITETHROUGH && BAT2_DCACHE_INHIBITED && !BAT2_DCACHE_MEMORYCOHERENCE && !BAT2_DCACHE_GUARDED
	default 0x28 if !BAT2_DCACHE_WRITETHROUGH && BAT2_DCACHE_INHIBITED && !BAT2_DCACHE_MEMORYCOHERENCE && BAT2_DCACHE_GUARDED
	default 0x30 if !BAT2_DCACHE_WRITETHROUGH && BAT2_DCACHE_INHIBITED && BAT2_DCACHE_MEMORYCOHERENCE && !BAT2_DCACHE_GUARDED
	default 0x38 if !BAT2_DCACHE_WRITETHROUGH && BAT2_DCACHE_INHIBITED && BAT2_DCACHE_MEMORYCOHERENCE && BAT2_DCACHE_GUARDED
	default 0x40 if BAT2_DCACHE_WRITETHROUGH && !BAT2_DCACHE_INHIBITED && !BAT2_DCACHE_MEMORYCOHERENCE && !BAT2_DCACHE_GUARDED
	default 0x48 if BAT2_DCACHE_WRITETHROUGH && !BAT2_DCACHE_INHIBITED && !BAT2_DCACHE_MEMORYCOHERENCE && BAT2_DCACHE_GUARDED
	default 0x50 if BAT2_DCACHE_WRITETHROUGH && !BAT2_DCACHE_INHIBITED && BAT2_DCACHE_MEMORYCOHERENCE && !BAT2_DCACHE_GUARDED
	default 0x58 if BAT2_DCACHE_WRITETHROUGH && !BAT2_DCACHE_INHIBITED && BAT2_DCACHE_MEMORYCOHERENCE && BAT2_DCACHE_GUARDED
	default 0x60 if BAT2_DCACHE_WRITETHROUGH && BAT2_DCACHE_INHIBITED && !BAT2_DCACHE_MEMORYCOHERENCE && !BAT2_DCACHE_GUARDED
	default 0x68 if BAT2_DCACHE_WRITETHROUGH && BAT2_DCACHE_INHIBITED && !BAT2_DCACHE_MEMORYCOHERENCE && BAT2_DCACHE_GUARDED
	default 0x70 if BAT2_DCACHE_WRITETHROUGH && BAT2_DCACHE_INHIBITED && BAT2_DCACHE_MEMORYCOHERENCE && !BAT2_DCACHE_GUARDED
	default 0x78 if BAT2_DCACHE_WRITETHROUGH && BAT2_DCACHE_INHIBITED && BAT2_DCACHE_MEMORYCOHERENCE && BAT2_DCACHE_GUARDED

config BAT2_VALID_BITS
	hex
	default 0x0 if !BAT2_SUPERVISOR_MODE_VALID && !BAT2_USER_MODE_VALID
	default 0x1 if !BAT2_SUPERVISOR_MODE_VALID && BAT2_USER_MODE_VALID
	default 0x2 if BAT2_SUPERVISOR_MODE_VALID && !BAT2_USER_MODE_VALID
	default 0x3 if BAT2_SUPERVISOR_MODE_VALID && BAT2_USER_MODE_VALID

menuconfig BAT3
	bool "BAT3"

if BAT3

config BAT3_NAME
	string "Identifier"

config BAT3_BASE
	hex "Base"

choice
	prompt "Block length"

config BAT3_LENGTH_128_KBYTES
	bool "128 kb"

config BAT3_LENGTH_256_KBYTES
	bool "256 kb"

config BAT3_LENGTH_512_KBYTES
	bool "512 kb"

config BAT3_LENGTH_1_MBYTES
	bool "1 mb"

config BAT3_LENGTH_2_MBYTES
	bool "2 mb"

config BAT3_LENGTH_4_MBYTES
	bool "4 mb"

config BAT3_LENGTH_8_MBYTES
	bool "8 mb"

config BAT3_LENGTH_16_MBYTES
	bool "16 mb"

config BAT3_LENGTH_32_MBYTES
	bool "32 mb"

config BAT3_LENGTH_64_MBYTES
	bool "64 mb"

config BAT3_LENGTH_128_MBYTES
	bool "128 mb"

config BAT3_LENGTH_256_MBYTES
	bool "256 mb"
endchoice

choice
	prompt "Protection mode"

config BAT3_ACCESS_NONE
	bool "No access"

config BAT3_ACCESS_RO
	bool "Read-only"

config BAT3_ACCESS_RW
	bool "Read-write"

endchoice

config BAT3_ICACHE_INHIBITED
	bool "I-cache Inhibited"

config BAT3_ICACHE_MEMORYCOHERENCE
	bool "I-cache Memory coherence"

config BAT3_DCACHE_WRITETHROUGH
	bool "D-cache Write-through"

config BAT3_DCACHE_INHIBITED
	bool "D-cache Inhibited"

config BAT3_DCACHE_MEMORYCOHERENCE
	bool "D-cache Memory coherence"

config BAT3_DCACHE_GUARDED
	bool "D-cache Guarded"

config BAT3_USER_MODE_VALID
	bool "User mode valid"

config BAT3_SUPERVISOR_MODE_VALID
	bool "Supervisor mode valid"

endif

config BAT3_LENGTH
	hex
	default 0x00000000 if BAT3_LENGTH_128_KBYTES
	default 0x00000004 if BAT3_LENGTH_256_KBYTES
	default 0x0000000c if BAT3_LENGTH_512_KBYTES
	default 0x0000001c if BAT3_LENGTH_1_MBYTES
	default 0x0000003c if BAT3_LENGTH_2_MBYTES
	default 0x0000007c if BAT3_LENGTH_4_MBYTES
	default 0x000000fc if BAT3_LENGTH_8_MBYTES
	default 0x000001fc if BAT3_LENGTH_16_MBYTES
	default 0x000003fc if BAT3_LENGTH_32_MBYTES
	default 0x000007fc if BAT3_LENGTH_64_MBYTES
	default 0x00000ffc if BAT3_LENGTH_128_MBYTES
	default 0x00001ffc if BAT3_LENGTH_256_MBYTES

config BAT3_PAGE_PROTECTION
	hex
	default 0x0 if BAT3_ACCESS_NONE
	default 0x1 if BAT3_ACCESS_RO
	default 0x2 if BAT3_ACCESS_RW

config BAT3_WIMG_ICACHE
	hex
	default 0x0 if !BAT3_ICACHE_INHIBITED && !BAT3_ICACHE_MEMORYCOHERENCE
	default 0x10 if !BAT3_ICACHE_INHIBITED && BAT3_ICACHE_MEMORYCOHERENCE
	default 0x20 if BAT3_ICACHE_INHIBITED && !BAT3_ICACHE_MEMORYCOHERENCE
	default 0x30 if BAT3_ICACHE_INHIBITED && BAT3_ICACHE_MEMORYCOHERENCE

config BAT3_WIMG_DCACHE
	hex
	default 0x0 if !BAT3_DCACHE_WRITETHROUGH && !BAT3_DCACHE_INHIBITED && !BAT3_DCACHE_MEMORYCOHERENCE && !BAT3_DCACHE_GUARDED
	default 0x8 if !BAT3_DCACHE_WRITETHROUGH && !BAT3_DCACHE_INHIBITED && !BAT3_DCACHE_MEMORYCOHERENCE && BAT3_DCACHE_GUARDED
	default 0x10 if !BAT3_DCACHE_WRITETHROUGH && !BAT3_DCACHE_INHIBITED && BAT3_DCACHE_MEMORYCOHERENCE && !BAT3_DCACHE_GUARDED
	default 0x18 if !BAT3_DCACHE_WRITETHROUGH && !BAT3_DCACHE_INHIBITED && BAT3_DCACHE_MEMORYCOHERENCE && BAT3_DCACHE_GUARDED
	default 0x20 if !BAT3_DCACHE_WRITETHROUGH && BAT3_DCACHE_INHIBITED && !BAT3_DCACHE_MEMORYCOHERENCE && !BAT3_DCACHE_GUARDED
	default 0x28 if !BAT3_DCACHE_WRITETHROUGH && BAT3_DCACHE_INHIBITED && !BAT3_DCACHE_MEMORYCOHERENCE && BAT3_DCACHE_GUARDED
	default 0x30 if !BAT3_DCACHE_WRITETHROUGH && BAT3_DCACHE_INHIBITED && BAT3_DCACHE_MEMORYCOHERENCE && !BAT3_DCACHE_GUARDED
	default 0x38 if !BAT3_DCACHE_WRITETHROUGH && BAT3_DCACHE_INHIBITED && BAT3_DCACHE_MEMORYCOHERENCE && BAT3_DCACHE_GUARDED
	default 0x40 if BAT3_DCACHE_WRITETHROUGH && !BAT3_DCACHE_INHIBITED && !BAT3_DCACHE_MEMORYCOHERENCE && !BAT3_DCACHE_GUARDED
	default 0x48 if BAT3_DCACHE_WRITETHROUGH && !BAT3_DCACHE_INHIBITED && !BAT3_DCACHE_MEMORYCOHERENCE && BAT3_DCACHE_GUARDED
	default 0x50 if BAT3_DCACHE_WRITETHROUGH && !BAT3_DCACHE_INHIBITED && BAT3_DCACHE_MEMORYCOHERENCE && !BAT3_DCACHE_GUARDED
	default 0x58 if BAT3_DCACHE_WRITETHROUGH && !BAT3_DCACHE_INHIBITED && BAT3_DCACHE_MEMORYCOHERENCE && BAT3_DCACHE_GUARDED
	default 0x60 if BAT3_DCACHE_WRITETHROUGH && BAT3_DCACHE_INHIBITED && !BAT3_DCACHE_MEMORYCOHERENCE && !BAT3_DCACHE_GUARDED
	default 0x68 if BAT3_DCACHE_WRITETHROUGH && BAT3_DCACHE_INHIBITED && !BAT3_DCACHE_MEMORYCOHERENCE && BAT3_DCACHE_GUARDED
	default 0x70 if BAT3_DCACHE_WRITETHROUGH && BAT3_DCACHE_INHIBITED && BAT3_DCACHE_MEMORYCOHERENCE && !BAT3_DCACHE_GUARDED
	default 0x78 if BAT3_DCACHE_WRITETHROUGH && BAT3_DCACHE_INHIBITED && BAT3_DCACHE_MEMORYCOHERENCE && BAT3_DCACHE_GUARDED

config BAT3_VALID_BITS
	hex
	default 0x0 if !BAT3_SUPERVISOR_MODE_VALID && !BAT3_USER_MODE_VALID
	default 0x1 if !BAT3_SUPERVISOR_MODE_VALID && BAT3_USER_MODE_VALID
	default 0x2 if BAT3_SUPERVISOR_MODE_VALID && !BAT3_USER_MODE_VALID
	default 0x3 if BAT3_SUPERVISOR_MODE_VALID && BAT3_USER_MODE_VALID

if HIGH_BATS

menuconfig BAT4
	bool "BAT4"

if BAT4

config BAT4_NAME
	string "Identifier"

config BAT4_BASE
	hex "Base"

choice
	prompt "Block length"

config BAT4_LENGTH_128_KBYTES
	bool "128 kb"

config BAT4_LENGTH_256_KBYTES
	bool "256 kb"

config BAT4_LENGTH_512_KBYTES
	bool "512 kb"

config BAT4_LENGTH_1_MBYTES
	bool "1 mb"

config BAT4_LENGTH_2_MBYTES
	bool "2 mb"

config BAT4_LENGTH_4_MBYTES
	bool "4 mb"

config BAT4_LENGTH_8_MBYTES
	bool "8 mb"

config BAT4_LENGTH_16_MBYTES
	bool "16 mb"

config BAT4_LENGTH_32_MBYTES
	bool "32 mb"

config BAT4_LENGTH_64_MBYTES
	bool "64 mb"

config BAT4_LENGTH_128_MBYTES
	bool "128 mb"

config BAT4_LENGTH_256_MBYTES
	bool "256 mb"
endchoice

choice
	prompt "Protection mode"

config BAT4_ACCESS_NONE
	bool "No access"

config BAT4_ACCESS_RO
	bool "Read-only"

config BAT4_ACCESS_RW
	bool "Read-write"

endchoice

config BAT4_ICACHE_INHIBITED
	bool "I-cache Inhibited"

config BAT4_ICACHE_MEMORYCOHERENCE
	bool "I-cache Memory coherence"

config BAT4_DCACHE_WRITETHROUGH
	bool "D-cache Write-through"

config BAT4_DCACHE_INHIBITED
	bool "D-cache Inhibited"

config BAT4_DCACHE_MEMORYCOHERENCE
	bool "D-cache Memory coherence"

config BAT4_DCACHE_GUARDED
	bool "D-cache Guarded"

config BAT4_USER_MODE_VALID
	bool "User mode valid"

config BAT4_SUPERVISOR_MODE_VALID
	bool "Supervisor mode valid"

endif

config BAT4_LENGTH
	hex
	default 0x00000000 if BAT4_LENGTH_128_KBYTES
	default 0x00000004 if BAT4_LENGTH_256_KBYTES
	default 0x0000000c if BAT4_LENGTH_512_KBYTES
	default 0x0000001c if BAT4_LENGTH_1_MBYTES
	default 0x0000003c if BAT4_LENGTH_2_MBYTES
	default 0x0000007c if BAT4_LENGTH_4_MBYTES
	default 0x000000fc if BAT4_LENGTH_8_MBYTES
	default 0x000001fc if BAT4_LENGTH_16_MBYTES
	default 0x000003fc if BAT4_LENGTH_32_MBYTES
	default 0x000007fc if BAT4_LENGTH_64_MBYTES
	default 0x00000ffc if BAT4_LENGTH_128_MBYTES
	default 0x00001ffc if BAT4_LENGTH_256_MBYTES

config BAT4_PAGE_PROTECTION
	hex
	default 0x0 if BAT4_ACCESS_NONE
	default 0x1 if BAT4_ACCESS_RO
	default 0x2 if BAT4_ACCESS_RW

config BAT4_WIMG_ICACHE
	hex
	default 0x0 if !BAT4_ICACHE_INHIBITED && !BAT4_ICACHE_MEMORYCOHERENCE
	default 0x10 if !BAT4_ICACHE_INHIBITED && BAT4_ICACHE_MEMORYCOHERENCE
	default 0x20 if BAT4_ICACHE_INHIBITED && !BAT4_ICACHE_MEMORYCOHERENCE
	default 0x30 if BAT4_ICACHE_INHIBITED && BAT4_ICACHE_MEMORYCOHERENCE

config BAT4_WIMG_DCACHE
	hex
	default 0x0 if !BAT4_DCACHE_WRITETHROUGH && !BAT4_DCACHE_INHIBITED && !BAT4_DCACHE_MEMORYCOHERENCE && !BAT4_DCACHE_GUARDED
	default 0x8 if !BAT4_DCACHE_WRITETHROUGH && !BAT4_DCACHE_INHIBITED && !BAT4_DCACHE_MEMORYCOHERENCE && BAT4_DCACHE_GUARDED
	default 0x10 if !BAT4_DCACHE_WRITETHROUGH && !BAT4_DCACHE_INHIBITED && BAT4_DCACHE_MEMORYCOHERENCE && !BAT4_DCACHE_GUARDED
	default 0x18 if !BAT4_DCACHE_WRITETHROUGH && !BAT4_DCACHE_INHIBITED && BAT4_DCACHE_MEMORYCOHERENCE && BAT4_DCACHE_GUARDED
	default 0x20 if !BAT4_DCACHE_WRITETHROUGH && BAT4_DCACHE_INHIBITED && !BAT4_DCACHE_MEMORYCOHERENCE && !BAT4_DCACHE_GUARDED
	default 0x28 if !BAT4_DCACHE_WRITETHROUGH && BAT4_DCACHE_INHIBITED && !BAT4_DCACHE_MEMORYCOHERENCE && BAT4_DCACHE_GUARDED
	default 0x30 if !BAT4_DCACHE_WRITETHROUGH && BAT4_DCACHE_INHIBITED && BAT4_DCACHE_MEMORYCOHERENCE && !BAT4_DCACHE_GUARDED
	default 0x38 if !BAT4_DCACHE_WRITETHROUGH && BAT4_DCACHE_INHIBITED && BAT4_DCACHE_MEMORYCOHERENCE && BAT4_DCACHE_GUARDED
	default 0x40 if BAT4_DCACHE_WRITETHROUGH && !BAT4_DCACHE_INHIBITED && !BAT4_DCACHE_MEMORYCOHERENCE && !BAT4_DCACHE_GUARDED
	default 0x48 if BAT4_DCACHE_WRITETHROUGH && !BAT4_DCACHE_INHIBITED && !BAT4_DCACHE_MEMORYCOHERENCE && BAT4_DCACHE_GUARDED
	default 0x50 if BAT4_DCACHE_WRITETHROUGH && !BAT4_DCACHE_INHIBITED && BAT4_DCACHE_MEMORYCOHERENCE && !BAT4_DCACHE_GUARDED
	default 0x58 if BAT4_DCACHE_WRITETHROUGH && !BAT4_DCACHE_INHIBITED && BAT4_DCACHE_MEMORYCOHERENCE && BAT4_DCACHE_GUARDED
	default 0x60 if BAT4_DCACHE_WRITETHROUGH && BAT4_DCACHE_INHIBITED && !BAT4_DCACHE_MEMORYCOHERENCE && !BAT4_DCACHE_GUARDED
	default 0x68 if BAT4_DCACHE_WRITETHROUGH && BAT4_DCACHE_INHIBITED && !BAT4_DCACHE_MEMORYCOHERENCE && BAT4_DCACHE_GUARDED
	default 0x70 if BAT4_DCACHE_WRITETHROUGH && BAT4_DCACHE_INHIBITED && BAT4_DCACHE_MEMORYCOHERENCE && !BAT4_DCACHE_GUARDED
	default 0x78 if BAT4_DCACHE_WRITETHROUGH && BAT4_DCACHE_INHIBITED && BAT4_DCACHE_MEMORYCOHERENCE && BAT4_DCACHE_GUARDED

config BAT4_VALID_BITS
	hex
	default 0x0 if !BAT4_SUPERVISOR_MODE_VALID && !BAT4_USER_MODE_VALID
	default 0x1 if !BAT4_SUPERVISOR_MODE_VALID && BAT4_USER_MODE_VALID
	default 0x2 if BAT4_SUPERVISOR_MODE_VALID && !BAT4_USER_MODE_VALID
	default 0x3 if BAT4_SUPERVISOR_MODE_VALID && BAT4_USER_MODE_VALID

menuconfig BAT5
	bool "BAT5"

if BAT5

config BAT5_NAME
	string "Identifier"

config BAT5_BASE
	hex "Base"

choice
	prompt "Block length"

config BAT5_LENGTH_128_KBYTES
	bool "128 kb"

config BAT5_LENGTH_256_KBYTES
	bool "256 kb"

config BAT5_LENGTH_512_KBYTES
	bool "512 kb"

config BAT5_LENGTH_1_MBYTES
	bool "1 mb"

config BAT5_LENGTH_2_MBYTES
	bool "2 mb"

config BAT5_LENGTH_4_MBYTES
	bool "4 mb"

config BAT5_LENGTH_8_MBYTES
	bool "8 mb"

config BAT5_LENGTH_16_MBYTES
	bool "16 mb"

config BAT5_LENGTH_32_MBYTES
	bool "32 mb"

config BAT5_LENGTH_64_MBYTES
	bool "64 mb"

config BAT5_LENGTH_128_MBYTES
	bool "128 mb"

config BAT5_LENGTH_256_MBYTES
	bool "256 mb"
endchoice

choice
	prompt "Protection mode"

config BAT5_ACCESS_NONE
	bool "No access"

config BAT5_ACCESS_RO
	bool "Read-only"

config BAT5_ACCESS_RW
	bool "Read-write"

endchoice

config BAT5_ICACHE_INHIBITED
	bool "I-cache Inhibited"

config BAT5_ICACHE_MEMORYCOHERENCE
	bool "I-cache Memory coherence"

config BAT5_DCACHE_WRITETHROUGH
	bool "D-cache Write-through"

config BAT5_DCACHE_INHIBITED
	bool "D-cache Inhibited"

config BAT5_DCACHE_MEMORYCOHERENCE
	bool "D-cache Memory coherence"

config BAT5_DCACHE_GUARDED
	bool "D-cache Guarded"

config BAT5_USER_MODE_VALID
	bool "User mode valid"

config BAT5_SUPERVISOR_MODE_VALID
	bool "Supervisor mode valid"

endif

config BAT5_LENGTH
	hex
	default 0x00000000 if BAT5_LENGTH_128_KBYTES
	default 0x00000004 if BAT5_LENGTH_256_KBYTES
	default 0x0000000c if BAT5_LENGTH_512_KBYTES
	default 0x0000001c if BAT5_LENGTH_1_MBYTES
	default 0x0000003c if BAT5_LENGTH_2_MBYTES
	default 0x0000007c if BAT5_LENGTH_4_MBYTES
	default 0x000000fc if BAT5_LENGTH_8_MBYTES
	default 0x000001fc if BAT5_LENGTH_16_MBYTES
	default 0x000003fc if BAT5_LENGTH_32_MBYTES
	default 0x000007fc if BAT5_LENGTH_64_MBYTES
	default 0x00000ffc if BAT5_LENGTH_128_MBYTES
	default 0x00001ffc if BAT5_LENGTH_256_MBYTES

config BAT5_PAGE_PROTECTION
	hex
	default 0x0 if BAT5_ACCESS_NONE
	default 0x1 if BAT5_ACCESS_RO
	default 0x2 if BAT5_ACCESS_RW

config BAT5_WIMG_ICACHE
	hex
	default 0x0 if !BAT5_ICACHE_INHIBITED && !BAT5_ICACHE_MEMORYCOHERENCE
	default 0x10 if !BAT5_ICACHE_INHIBITED && BAT5_ICACHE_MEMORYCOHERENCE
	default 0x20 if BAT5_ICACHE_INHIBITED && !BAT5_ICACHE_MEMORYCOHERENCE
	default 0x30 if BAT5_ICACHE_INHIBITED && BAT5_ICACHE_MEMORYCOHERENCE

config BAT5_WIMG_DCACHE
	hex
	default 0x0 if !BAT5_DCACHE_WRITETHROUGH && !BAT5_DCACHE_INHIBITED && !BAT5_DCACHE_MEMORYCOHERENCE && !BAT5_DCACHE_GUARDED
	default 0x8 if !BAT5_DCACHE_WRITETHROUGH && !BAT5_DCACHE_INHIBITED && !BAT5_DCACHE_MEMORYCOHERENCE && BAT5_DCACHE_GUARDED
	default 0x10 if !BAT5_DCACHE_WRITETHROUGH && !BAT5_DCACHE_INHIBITED && BAT5_DCACHE_MEMORYCOHERENCE && !BAT5_DCACHE_GUARDED
	default 0x18 if !BAT5_DCACHE_WRITETHROUGH && !BAT5_DCACHE_INHIBITED && BAT5_DCACHE_MEMORYCOHERENCE && BAT5_DCACHE_GUARDED
	default 0x20 if !BAT5_DCACHE_WRITETHROUGH && BAT5_DCACHE_INHIBITED && !BAT5_DCACHE_MEMORYCOHERENCE && !BAT5_DCACHE_GUARDED
	default 0x28 if !BAT5_DCACHE_WRITETHROUGH && BAT5_DCACHE_INHIBITED && !BAT5_DCACHE_MEMORYCOHERENCE && BAT5_DCACHE_GUARDED
	default 0x30 if !BAT5_DCACHE_WRITETHROUGH && BAT5_DCACHE_INHIBITED && BAT5_DCACHE_MEMORYCOHERENCE && !BAT5_DCACHE_GUARDED
	default 0x38 if !BAT5_DCACHE_WRITETHROUGH && BAT5_DCACHE_INHIBITED && BAT5_DCACHE_MEMORYCOHERENCE && BAT5_DCACHE_GUARDED
	default 0x40 if BAT5_DCACHE_WRITETHROUGH && !BAT5_DCACHE_INHIBITED && !BAT5_DCACHE_MEMORYCOHERENCE && !BAT5_DCACHE_GUARDED
	default 0x48 if BAT5_DCACHE_WRITETHROUGH && !BAT5_DCACHE_INHIBITED && !BAT5_DCACHE_MEMORYCOHERENCE && BAT5_DCACHE_GUARDED
	default 0x50 if BAT5_DCACHE_WRITETHROUGH && !BAT5_DCACHE_INHIBITED && BAT5_DCACHE_MEMORYCOHERENCE && !BAT5_DCACHE_GUARDED
	default 0x58 if BAT5_DCACHE_WRITETHROUGH && !BAT5_DCACHE_INHIBITED && BAT5_DCACHE_MEMORYCOHERENCE && BAT5_DCACHE_GUARDED
	default 0x60 if BAT5_DCACHE_WRITETHROUGH && BAT5_DCACHE_INHIBITED && !BAT5_DCACHE_MEMORYCOHERENCE && !BAT5_DCACHE_GUARDED
	default 0x68 if BAT5_DCACHE_WRITETHROUGH && BAT5_DCACHE_INHIBITED && !BAT5_DCACHE_MEMORYCOHERENCE && BAT5_DCACHE_GUARDED
	default 0x70 if BAT5_DCACHE_WRITETHROUGH && BAT5_DCACHE_INHIBITED && BAT5_DCACHE_MEMORYCOHERENCE && !BAT5_DCACHE_GUARDED
	default 0x78 if BAT5_DCACHE_WRITETHROUGH && BAT5_DCACHE_INHIBITED && BAT5_DCACHE_MEMORYCOHERENCE && BAT5_DCACHE_GUARDED

config BAT5_VALID_BITS
	hex
	default 0x0 if !BAT5_SUPERVISOR_MODE_VALID && !BAT5_USER_MODE_VALID
	default 0x1 if !BAT5_SUPERVISOR_MODE_VALID && BAT5_USER_MODE_VALID
	default 0x2 if BAT5_SUPERVISOR_MODE_VALID && !BAT5_USER_MODE_VALID
	default 0x3 if BAT5_SUPERVISOR_MODE_VALID && BAT5_USER_MODE_VALID

menuconfig BAT6
	bool "BAT6"

if BAT6

config BAT6_NAME
	string "Identifier"

config BAT6_BASE
	hex "Base"

choice
	prompt "Block length"

config BAT6_LENGTH_128_KBYTES
	bool "128 kb"

config BAT6_LENGTH_256_KBYTES
	bool "256 kb"

config BAT6_LENGTH_512_KBYTES
	bool "512 kb"

config BAT6_LENGTH_1_MBYTES
	bool "1 mb"

config BAT6_LENGTH_2_MBYTES
	bool "2 mb"

config BAT6_LENGTH_4_MBYTES
	bool "4 mb"

config BAT6_LENGTH_8_MBYTES
	bool "8 mb"

config BAT6_LENGTH_16_MBYTES
	bool "16 mb"

config BAT6_LENGTH_32_MBYTES
	bool "32 mb"

config BAT6_LENGTH_64_MBYTES
	bool "64 mb"

config BAT6_LENGTH_128_MBYTES
	bool "128 mb"

config BAT6_LENGTH_256_MBYTES
	bool "256 mb"
endchoice

choice
	prompt "Protection mode"

config BAT6_ACCESS_NONE
	bool "No access"

config BAT6_ACCESS_RO
	bool "Read-only"

config BAT6_ACCESS_RW
	bool "Read-write"

endchoice

config BAT6_ICACHE_INHIBITED
	bool "I-cache Inhibited"

config BAT6_ICACHE_MEMORYCOHERENCE
	bool "I-cache Memory coherence"

config BAT6_DCACHE_WRITETHROUGH
	bool "D-cache Write-through"

config BAT6_DCACHE_INHIBITED
	bool "D-cache Inhibited"

config BAT6_DCACHE_MEMORYCOHERENCE
	bool "D-cache Memory coherence"

config BAT6_DCACHE_GUARDED
	bool "D-cache Guarded"

config BAT6_USER_MODE_VALID
	bool "User mode valid"

config BAT6_SUPERVISOR_MODE_VALID
	bool "Supervisor mode valid"

endif

config BAT6_LENGTH
	hex
	default 0x00000000 if BAT6_LENGTH_128_KBYTES
	default 0x00000004 if BAT6_LENGTH_256_KBYTES
	default 0x0000000c if BAT6_LENGTH_512_KBYTES
	default 0x0000001c if BAT6_LENGTH_1_MBYTES
	default 0x0000003c if BAT6_LENGTH_2_MBYTES
	default 0x0000007c if BAT6_LENGTH_4_MBYTES
	default 0x000000fc if BAT6_LENGTH_8_MBYTES
	default 0x000001fc if BAT6_LENGTH_16_MBYTES
	default 0x000003fc if BAT6_LENGTH_32_MBYTES
	default 0x000007fc if BAT6_LENGTH_64_MBYTES
	default 0x00000ffc if BAT6_LENGTH_128_MBYTES
	default 0x00001ffc if BAT6_LENGTH_256_MBYTES

config BAT6_PAGE_PROTECTION
	hex
	default 0x0 if BAT6_ACCESS_NONE
	default 0x1 if BAT6_ACCESS_RO
	default 0x2 if BAT6_ACCESS_RW

config BAT6_WIMG_ICACHE
	hex
	default 0x0 if !BAT6_ICACHE_INHIBITED && !BAT6_ICACHE_MEMORYCOHERENCE
	default 0x10 if !BAT6_ICACHE_INHIBITED && BAT6_ICACHE_MEMORYCOHERENCE
	default 0x20 if BAT6_ICACHE_INHIBITED && !BAT6_ICACHE_MEMORYCOHERENCE
	default 0x30 if BAT6_ICACHE_INHIBITED && BAT6_ICACHE_MEMORYCOHERENCE

config BAT6_WIMG_DCACHE
	hex
	default 0x0 if !BAT6_DCACHE_WRITETHROUGH && !BAT6_DCACHE_INHIBITED && !BAT6_DCACHE_MEMORYCOHERENCE && !BAT6_DCACHE_GUARDED
	default 0x8 if !BAT6_DCACHE_WRITETHROUGH && !BAT6_DCACHE_INHIBITED && !BAT6_DCACHE_MEMORYCOHERENCE && BAT6_DCACHE_GUARDED
	default 0x10 if !BAT6_DCACHE_WRITETHROUGH && !BAT6_DCACHE_INHIBITED && BAT6_DCACHE_MEMORYCOHERENCE && !BAT6_DCACHE_GUARDED
	default 0x18 if !BAT6_DCACHE_WRITETHROUGH && !BAT6_DCACHE_INHIBITED && BAT6_DCACHE_MEMORYCOHERENCE && BAT6_DCACHE_GUARDED
	default 0x20 if !BAT6_DCACHE_WRITETHROUGH && BAT6_DCACHE_INHIBITED && !BAT6_DCACHE_MEMORYCOHERENCE && !BAT6_DCACHE_GUARDED
	default 0x28 if !BAT6_DCACHE_WRITETHROUGH && BAT6_DCACHE_INHIBITED && !BAT6_DCACHE_MEMORYCOHERENCE && BAT6_DCACHE_GUARDED
	default 0x30 if !BAT6_DCACHE_WRITETHROUGH && BAT6_DCACHE_INHIBITED && BAT6_DCACHE_MEMORYCOHERENCE && !BAT6_DCACHE_GUARDED
	default 0x38 if !BAT6_DCACHE_WRITETHROUGH && BAT6_DCACHE_INHIBITED && BAT6_DCACHE_MEMORYCOHERENCE && BAT6_DCACHE_GUARDED
	default 0x40 if BAT6_DCACHE_WRITETHROUGH && !BAT6_DCACHE_INHIBITED && !BAT6_DCACHE_MEMORYCOHERENCE && !BAT6_DCACHE_GUARDED
	default 0x48 if BAT6_DCACHE_WRITETHROUGH && !BAT6_DCACHE_INHIBITED && !BAT6_DCACHE_MEMORYCOHERENCE && BAT6_DCACHE_GUARDED
	default 0x50 if BAT6_DCACHE_WRITETHROUGH && !BAT6_DCACHE_INHIBITED && BAT6_DCACHE_MEMORYCOHERENCE && !BAT6_DCACHE_GUARDED
	default 0x58 if BAT6_DCACHE_WRITETHROUGH && !BAT6_DCACHE_INHIBITED && BAT6_DCACHE_MEMORYCOHERENCE && BAT6_DCACHE_GUARDED
	default 0x60 if BAT6_DCACHE_WRITETHROUGH && BAT6_DCACHE_INHIBITED && !BAT6_DCACHE_MEMORYCOHERENCE && !BAT6_DCACHE_GUARDED
	default 0x68 if BAT6_DCACHE_WRITETHROUGH && BAT6_DCACHE_INHIBITED && !BAT6_DCACHE_MEMORYCOHERENCE && BAT6_DCACHE_GUARDED
	default 0x70 if BAT6_DCACHE_WRITETHROUGH && BAT6_DCACHE_INHIBITED && BAT6_DCACHE_MEMORYCOHERENCE && !BAT6_DCACHE_GUARDED
	default 0x78 if BAT6_DCACHE_WRITETHROUGH && BAT6_DCACHE_INHIBITED && BAT6_DCACHE_MEMORYCOHERENCE && BAT6_DCACHE_GUARDED

config BAT6_VALID_BITS
	hex
	default 0x0 if !BAT6_SUPERVISOR_MODE_VALID && !BAT6_USER_MODE_VALID
	default 0x1 if !BAT6_SUPERVISOR_MODE_VALID && BAT6_USER_MODE_VALID
	default 0x2 if BAT6_SUPERVISOR_MODE_VALID && !BAT6_USER_MODE_VALID
	default 0x3 if BAT6_SUPERVISOR_MODE_VALID && BAT6_USER_MODE_VALID

menuconfig BAT7
	bool "BAT7"

if BAT7

config BAT7_NAME
	string "Identifier"

config BAT7_BASE
	hex "Base"

choice
	prompt "Block length"

config BAT7_LENGTH_128_KBYTES
	bool "128 kb"

config BAT7_LENGTH_256_KBYTES
	bool "256 kb"

config BAT7_LENGTH_512_KBYTES
	bool "512 kb"

config BAT7_LENGTH_1_MBYTES
	bool "1 mb"

config BAT7_LENGTH_2_MBYTES
	bool "2 mb"

config BAT7_LENGTH_4_MBYTES
	bool "4 mb"

config BAT7_LENGTH_8_MBYTES
	bool "8 mb"

config BAT7_LENGTH_16_MBYTES
	bool "16 mb"

config BAT7_LENGTH_32_MBYTES
	bool "32 mb"

config BAT7_LENGTH_64_MBYTES
	bool "64 mb"

config BAT7_LENGTH_128_MBYTES
	bool "128 mb"

config BAT7_LENGTH_256_MBYTES
	bool "256 mb"
endchoice

choice
	prompt "Protection mode"

config BAT7_ACCESS_NONE
	bool "No access"

config BAT7_ACCESS_RO
	bool "Read-only"

config BAT7_ACCESS_RW
	bool "Read-write"

endchoice

config BAT7_ICACHE_INHIBITED
	bool "I-cache Inhibited"

config BAT7_ICACHE_MEMORYCOHERENCE
	bool "I-cache Memory coherence"

config BAT7_DCACHE_WRITETHROUGH
	bool "D-cache Write-through"

config BAT7_DCACHE_INHIBITED
	bool "D-cache Inhibited"

config BAT7_DCACHE_MEMORYCOHERENCE
	bool "D-cache Memory coherence"

config BAT7_DCACHE_GUARDED
	bool "D-cache Guarded"

config BAT7_USER_MODE_VALID
	bool "User mode valid"

config BAT7_SUPERVISOR_MODE_VALID
	bool "Supervisor mode valid"

endif

config BAT7_LENGTH
	hex
	default 0x00000000 if BAT7_LENGTH_128_KBYTES
	default 0x00000004 if BAT7_LENGTH_256_KBYTES
	default 0x0000000c if BAT7_LENGTH_512_KBYTES
	default 0x0000001c if BAT7_LENGTH_1_MBYTES
	default 0x0000003c if BAT7_LENGTH_2_MBYTES
	default 0x0000007c if BAT7_LENGTH_4_MBYTES
	default 0x000000fc if BAT7_LENGTH_8_MBYTES
	default 0x000001fc if BAT7_LENGTH_16_MBYTES
	default 0x000003fc if BAT7_LENGTH_32_MBYTES
	default 0x000007fc if BAT7_LENGTH_64_MBYTES
	default 0x00000ffc if BAT7_LENGTH_128_MBYTES
	default 0x00001ffc if BAT7_LENGTH_256_MBYTES

config BAT7_PAGE_PROTECTION
	hex
	default 0x0 if BAT7_ACCESS_NONE
	default 0x1 if BAT7_ACCESS_RO
	default 0x2 if BAT7_ACCESS_RW

config BAT7_WIMG_ICACHE
	hex
	default 0x0 if !BAT7_ICACHE_INHIBITED && !BAT7_ICACHE_MEMORYCOHERENCE
	default 0x10 if !BAT7_ICACHE_INHIBITED && BAT7_ICACHE_MEMORYCOHERENCE
	default 0x20 if BAT7_ICACHE_INHIBITED && !BAT7_ICACHE_MEMORYCOHERENCE
	default 0x30 if BAT7_ICACHE_INHIBITED && BAT7_ICACHE_MEMORYCOHERENCE

config BAT7_WIMG_DCACHE
	hex
	default 0x0 if !BAT7_DCACHE_WRITETHROUGH && !BAT7_DCACHE_INHIBITED && !BAT7_DCACHE_MEMORYCOHERENCE && !BAT7_DCACHE_GUARDED
	default 0x8 if !BAT7_DCACHE_WRITETHROUGH && !BAT7_DCACHE_INHIBITED && !BAT7_DCACHE_MEMORYCOHERENCE && BAT7_DCACHE_GUARDED
	default 0x10 if !BAT7_DCACHE_WRITETHROUGH && !BAT7_DCACHE_INHIBITED && BAT7_DCACHE_MEMORYCOHERENCE && !BAT7_DCACHE_GUARDED
	default 0x18 if !BAT7_DCACHE_WRITETHROUGH && !BAT7_DCACHE_INHIBITED && BAT7_DCACHE_MEMORYCOHERENCE && BAT7_DCACHE_GUARDED
	default 0x20 if !BAT7_DCACHE_WRITETHROUGH && BAT7_DCACHE_INHIBITED && !BAT7_DCACHE_MEMORYCOHERENCE && !BAT7_DCACHE_GUARDED
	default 0x28 if !BAT7_DCACHE_WRITETHROUGH && BAT7_DCACHE_INHIBITED && !BAT7_DCACHE_MEMORYCOHERENCE && BAT7_DCACHE_GUARDED
	default 0x30 if !BAT7_DCACHE_WRITETHROUGH && BAT7_DCACHE_INHIBITED && BAT7_DCACHE_MEMORYCOHERENCE && !BAT7_DCACHE_GUARDED
	default 0x38 if !BAT7_DCACHE_WRITETHROUGH && BAT7_DCACHE_INHIBITED && BAT7_DCACHE_MEMORYCOHERENCE && BAT7_DCACHE_GUARDED
	default 0x40 if BAT7_DCACHE_WRITETHROUGH && !BAT7_DCACHE_INHIBITED && !BAT7_DCACHE_MEMORYCOHERENCE && !BAT7_DCACHE_GUARDED
	default 0x48 if BAT7_DCACHE_WRITETHROUGH && !BAT7_DCACHE_INHIBITED && !BAT7_DCACHE_MEMORYCOHERENCE && BAT7_DCACHE_GUARDED
	default 0x50 if BAT7_DCACHE_WRITETHROUGH && !BAT7_DCACHE_INHIBITED && BAT7_DCACHE_MEMORYCOHERENCE && !BAT7_DCACHE_GUARDED
	default 0x58 if BAT7_DCACHE_WRITETHROUGH && !BAT7_DCACHE_INHIBITED && BAT7_DCACHE_MEMORYCOHERENCE && BAT7_DCACHE_GUARDED
	default 0x60 if BAT7_DCACHE_WRITETHROUGH && BAT7_DCACHE_INHIBITED && !BAT7_DCACHE_MEMORYCOHERENCE && !BAT7_DCACHE_GUARDED
	default 0x68 if BAT7_DCACHE_WRITETHROUGH && BAT7_DCACHE_INHIBITED && !BAT7_DCACHE_MEMORYCOHERENCE && BAT7_DCACHE_GUARDED
	default 0x70 if BAT7_DCACHE_WRITETHROUGH && BAT7_DCACHE_INHIBITED && BAT7_DCACHE_MEMORYCOHERENCE && !BAT7_DCACHE_GUARDED
	default 0x78 if BAT7_DCACHE_WRITETHROUGH && BAT7_DCACHE_INHIBITED && BAT7_DCACHE_MEMORYCOHERENCE && BAT7_DCACHE_GUARDED

config BAT7_VALID_BITS
	hex
	default 0x0 if !BAT7_SUPERVISOR_MODE_VALID && !BAT7_USER_MODE_VALID
	default 0x1 if !BAT7_SUPERVISOR_MODE_VALID && BAT7_USER_MODE_VALID
	default 0x2 if BAT7_SUPERVISOR_MODE_VALID && !BAT7_USER_MODE_VALID
	default 0x3 if BAT7_SUPERVISOR_MODE_VALID && BAT7_USER_MODE_VALID

endif

endmenu
