blob: 5d69385a23da0a80254a310fe4d70006aff6c09e [file] [log] [blame]
menuconfig ELBC_BR4_OR4
bool "ELBC BR4/OR4"
if ELBC_BR4_OR4
config BR4_OR4_NAME
string "Identifier"
config BR4_OR4_BASE
hex "Port base"
choice
prompt "Port size"
config BR4_PORTSIZE_8BIT
bool "8-bit"
config BR4_PORTSIZE_16BIT
depends on !BR4_MACHINE_FCM
bool "16-bit"
config BR4_PORTSIZE_32BIT
depends on !BR4_MACHINE_FCM
depends on ARCH_MPC8360 || ARCH_MPC8379
bool "32-bit"
endchoice
if BR4_MACHINE_FCM
choice
prompt "Data Error Checking"
config BR4_ERRORCHECKING_DISABLED
bool "Disabled"
config BR4_ERRORCHECKING_ECC_CHECKING
bool "ECC checking / No ECC generation"
config BR4_ERRORCHECKING_BOTH
bool "ECC checking and generation"
endchoice
endif
config BR4_WRITE_PROTECT
bool "Write-protect"
config BR4_MACHINE_UPM
bool
choice
prompt "Machine select"
config BR4_MACHINE_GPCM
bool "GPCM"
config BR4_MACHINE_FCM
depends on !ARCH_MPC832X && !ARCH_MPC8360
bool "FCM"
config BR4_MACHINE_SDRAM
depends on ARCH_MPC8360
bool "SDRAM"
config BR4_MACHINE_UPMA
select BR4_MACHINE_UPM
bool "UPM (A)"
config BR4_MACHINE_UPMB
select BR4_MACHINE_UPM
bool "UPM (B)"
config BR4_MACHINE_UPMC
select BR4_MACHINE_UPM
bool "UPM (C)"
endchoice
if ARCH_MPC8313 || ARCH_MPC8323 || ARCH_MPC8360
choice
prompt "Atomic operations"
config BR4_ATOMIC_NONE
bool "No atomic operations"
config BR4_ATOMIC_RAWA
bool "Read-after-write-atomic"
config BR4_ATOMIC_WARA
bool "Write-after-read-atomic"
endchoice
endif
if BR4_MACHINE_GPCM || BR4_MACHINE_FCM || BR4_MACHINE_UPM || BR4_MACHINE_SDRAM
choice
prompt "Address mask"
config OR4_AM_32_KBYTES
depends on !BR4_MACHINE_SDRAM
bool "32 kb"
config OR4_AM_64_KBYTES
bool "64 kb"
config OR4_AM_128_KBYTES
bool "128 kb"
config OR4_AM_256_KBYTES
bool "256 kb"
config OR4_AM_512_KBYTES
bool "512 kb"
config OR4_AM_1_MBYTES
bool "1 mb"
config OR4_AM_2_MBYTES
bool "2 mb"
config OR4_AM_4_MBYTES
bool "4 mb"
config OR4_AM_8_MBYTES
bool "8 mb"
config OR4_AM_16_MBYTES
bool "16 mb"
config OR4_AM_32_MBYTES
bool "32 mb"
config OR4_AM_64_MBYTES
bool "64 mb"
# XXX: Some boards define 128MB AM with GPCM, even though it should not be
# possible according to the manuals
config OR4_AM_128_MBYTES
bool "128 mb"
# XXX: Some boards define 256MB AM with GPCM, even though it should not be
# possible according to the manuals
config OR4_AM_256_MBYTES
bool "256 mb"
config OR4_AM_512_MBYTES
depends on BR4_MACHINE_FCM
bool "512 mb"
# XXX: Some boards define 1GB AM with GPCM, even though it should not be
# possible according to the manuals
config OR4_AM_1_GBYTES
bool "1 gb"
config OR4_AM_2_GBYTES
depends on BR4_MACHINE_FCM
bool "2 gb"
config OR4_AM_4_GBYTES
depends on BR4_MACHINE_FCM
bool "4 gb"
endchoice
config OR4_XAM_SET
bool "Set unused bytes after address mask"
choice
prompt "Buffer control disable"
config OR4_BCTLD_ASSERTED
bool "Asserted"
config OR4_BCTLD_NOT_ASSERTED
bool "Not asserted"
endchoice
endif
if BR4_MACHINE_GPCM || BR4_MACHINE_FCM
choice
prompt "Cycle length in bus clocks"
config OR4_SCY_0
bool "No wait states"
config OR4_SCY_1
bool "1 wait state"
config OR4_SCY_2
bool "2 wait states"
config OR4_SCY_3
bool "3 wait states"
config OR4_SCY_4
bool "4 wait states"
config OR4_SCY_5
bool "5 wait states"
config OR4_SCY_6
bool "6 wait states"
config OR4_SCY_7
bool "7 wait states"
config OR4_SCY_8
depends on BR4_MACHINE_GPCM
bool "8 wait states"
config OR4_SCY_9
depends on BR4_MACHINE_GPCM
bool "9 wait states"
config OR4_SCY_10
depends on BR4_MACHINE_GPCM
bool "10 wait states"
config OR4_SCY_11
depends on BR4_MACHINE_GPCM
bool "11 wait states"
config OR4_SCY_12
depends on BR4_MACHINE_GPCM
bool "12 wait states"
config OR4_SCY_13
depends on BR4_MACHINE_GPCM
bool "13 wait states"
config OR4_SCY_14
depends on BR4_MACHINE_GPCM
bool "14 wait states"
config OR4_SCY_15
depends on BR4_MACHINE_GPCM
bool "15 wait states"
endchoice
endif # BR4_MACHINE_GPCM || BR4_MACHINE_FCM
if BR4_MACHINE_GPCM
choice
prompt "Chip select negotiation time"
config OR4_CSNT_NORMAL
bool "Normal"
config OR4_CSNT_EARLIER
bool "Earlier"
endchoice
choice
prompt "Address to chip-select setup"
config OR4_ACS_SAME_TIME
bool "At the same time"
config OR4_ACS_HALF_CYCLE_EARLIER
bool "Half of a bus clock cycle earlier"
config OR4_ACS_QUARTER_CYCLE_EARLIER
bool "Half/Quarter of a bus clock cycle earlier"
endchoice
choice
prompt "Extra address to check-select setup"
config OR4_XACS_NORMAL
bool "Normal"
config OR4_XACS_EXTENDED
bool "Extended"
endchoice
choice
prompt "External address termination"
config OR4_SETA_INTERNAL
bool "Access is terminated internally"
config OR4_SETA_EXTERNAL
bool "Access is terminated externally"
endchoice
endif # BR4_MACHINE_GPCM
if BR4_MACHINE_FCM
choice
prompt "NAND Flash EEPROM page size"
config OR4_PGS_SMALL
bool "Small page device"
config OR4_PGS_LARGE
bool "Large page device"
endchoice
choice
prompt "Chip select to command time"
config OR4_CSCT_1_CYCLE
depends on OR4_TRLX_NORMAL
bool "1 cycle"
config OR4_CSCT_2_CYCLE
depends on OR4_TRLX_RELAXED
bool "2 cycles"
config OR4_CSCT_4_CYCLE
depends on OR4_TRLX_NORMAL
bool "4 cycles"
config OR4_CSCT_8_CYCLE
depends on OR4_TRLX_RELAXED
bool "8 cycles"
endchoice
choice
prompt "Command setup time"
config OR4_CST_COINCIDENT
depends on OR4_TRLX_NORMAL
bool "Coincident with any command"
config OR4_CST_QUARTER_CLOCK
depends on OR4_TRLX_NORMAL
bool "0.25 clocks after"
config OR4_CST_HALF_CLOCK
depends on OR4_TRLX_RELAXED
bool "0.5 clocks after"
config OR4_CST_ONE_CLOCK
depends on OR4_TRLX_RELAXED
bool "1 clock after"
endchoice
choice
prompt "Command hold time"
config OR4_CHT_HALF_CLOCK
depends on OR4_TRLX_NORMAL
bool "0.5 clocks before"
config OR4_CHT_ONE_CLOCK
depends on OR4_TRLX_NORMAL
bool "1 clock before"
config OR4_CHT_ONE_HALF_CLOCK
depends on OR4_TRLX_RELAXED
bool "1.5 clocks before"
config OR4_CHT_TWO_CLOCK
depends on OR4_TRLX_RELAXED
bool "2 clocks before"
endchoice
choice
prompt "Reset setup time"
config OR4_RST_THREE_QUARTER_CLOCK
depends on OR4_TRLX_NORMAL
bool "0.75 clocks prior"
config OR4_RST_ONE_HALF_CLOCK
depends on OR4_TRLX_RELAXED
bool "0.5 clocks prior"
config OR4_RST_ONE_CLOCK
bool "1 clock prior"
endchoice
endif # BR4_MACHINE_FCM
if BR4_MACHINE_UPM
choice
prompt "Burst inhibit"
config OR4_BI_BURSTSUPPORT
bool "Support burst access"
config OR4_BI_BURSTINHIBIT
bool "Inhibit burst access"
endchoice
endif # BR4_MACHINE_UPM
if BR4_MACHINE_SDRAM
choice
prompt "Number of column address lines"
config OR4_COLS_7
bool "7"
config OR4_COLS_8
bool "8"
config OR4_COLS_9
bool "9"
config OR4_COLS_10
bool "10"
config OR4_COLS_11
bool "11"
config OR4_COLS_12
bool "12"
config OR4_COLS_13
bool "13"
config OR4_COLS_14
bool "14"
endchoice
choice
prompt "Number of rows address lines"
config OR4_ROWS_9
bool "9"
config OR4_ROWS_10
bool "10"
config OR4_ROWS_11
bool "11"
config OR4_ROWS_12
bool "12"
config OR4_ROWS_13
bool "13"
config OR4_ROWS_14
bool "14"
config OR4_ROWS_15
bool "15"
endchoice
choice
prompt "Page mode select"
config OR4_PMSEL_BTB
bool "Back-to-back"
config OR4_PMSEL_KEPT_OPEN
bool "Page kept open until page miss or refresh"
endchoice
endif # BR4_MACHINE_SDRAM
choice
prompt "Relaxed timing"
config OR4_TRLX_NORMAL
bool "Normal"
config OR4_TRLX_RELAXED
bool "Relaxed"
endchoice
choice
prompt "Extended hold time"
config OR4_EHTR_NORMAL
depends on OR4_TRLX_NORMAL
bool "Normal"
config OR4_EHTR_1_CYCLE
depends on OR4_TRLX_NORMAL
bool "1 idle clock cycle inserted"
config OR4_EHTR_4_CYCLE
depends on OR4_TRLX_RELAXED
bool "4 idle clock cycles inserted"
config OR4_EHTR_8_CYCLE
depends on OR4_TRLX_RELAXED
bool "8 idle clock cycles inserted"
endchoice
if !ARCH_MPC8308
choice
prompt "External address latch delay"
config OR4_EAD_NONE
bool "None"
config OR4_EAD_EXTRA
bool "Extra"
endchoice
endif # !ARCH_MPC8308
endif # ELBC_BR4_OR4
config BR4_PORTSIZE
hex
default 0x800 if BR4_PORTSIZE_8BIT
default 0x1000 if BR4_PORTSIZE_16BIT
default 0x1800 if BR4_PORTSIZE_32BIT
config BR4_ERRORCHECKING
hex
default 0x0 if !BR4_MACHINE_FCM
default 0x0 if BR4_ERRORCHECKING_DISABLED
default 0x200 if BR4_ERRORCHECKING_ECC_CHECKING
default 0x400 if BR4_ERRORCHECKING_BOTH
config BR4_WRITE_PROTECT_BIT
hex
default 0x0 if !BR4_WRITE_PROTECT
default 0x100 if BR4_WRITE_PROTECT
config BR4_MACHINE
hex
default 0x0 if BR4_MACHINE_GPCM
default 0x20 if BR4_MACHINE_FCM
default 0x60 if BR4_MACHINE_SDRAM
default 0x80 if BR4_MACHINE_UPMA
default 0xa0 if BR4_MACHINE_UPMB
default 0xc0 if BR4_MACHINE_UPMC
config BR4_ATOMIC
hex
default 0x0 if !ARCH_MPC8313 && !ARCH_MPC8323 && !ARCH_MPC8360
default 0x0 if BR4_ATOMIC_NONE
default 0x4 if BR4_ATOMIC_RAWA
default 0x8 if BR4_ATOMIC_WARA
config BR4_VALID_BIT
hex
default 0x0 if !ELBC_BR4_OR4
default 0x1 if ELBC_BR4_OR4
config OR4_AM
hex
default 0xffff8000 if OR4_AM_32_KBYTES && !BR4_MACHINE_SDRAM
default 0xffff0000 if OR4_AM_64_KBYTES
default 0xfffe0000 if OR4_AM_128_KBYTES
default 0xfffc0000 if OR4_AM_256_KBYTES
default 0xfff80000 if OR4_AM_512_KBYTES
default 0xfff00000 if OR4_AM_1_MBYTES
default 0xffe00000 if OR4_AM_2_MBYTES
default 0xffc00000 if OR4_AM_4_MBYTES
default 0xff800000 if OR4_AM_8_MBYTES
default 0xff000000 if OR4_AM_16_MBYTES
default 0xfe000000 if OR4_AM_32_MBYTES
default 0xfc000000 if OR4_AM_64_MBYTES
default 0xf8000000 if OR4_AM_128_MBYTES
default 0xf0000000 if OR4_AM_256_MBYTES
default 0xe0000000 if OR4_AM_512_MBYTES
default 0xc0000000 if OR4_AM_1_GBYTES
default 0x80000000 if OR4_AM_2_GBYTES
default 0x00000000 if OR4_AM_4_GBYTES
config OR4_XAM
hex
default 0x0 if !OR4_XAM_SET
default 0x6000 if OR4_XAM_SET
config OR4_BCTLD
hex
default 0x0 if OR4_BCTLD_ASSERTED
default 0x1000 if OR4_BCTLD_NOT_ASSERTED
config OR4_BI
hex
default 0x0 if !BR4_MACHINE_UPM
default 0x0 if OR4_BI_BURSTSUPPORT
default 0x100 if OR4_BI_BURSTINHIBIT
config OR4_COLS
hex
default 0x0 if !BR4_MACHINE_SDRAM
default 0x0 if OR4_COLS_7
default 0x400 if OR4_COLS_8
default 0x800 if OR4_COLS_9
default 0xc00 if OR4_COLS_10
default 0x1000 if OR4_COLS_11
default 0x1400 if OR4_COLS_12
default 0x1800 if OR4_COLS_13
default 0x1c00 if OR4_COLS_14
config OR4_ROWS
hex
default 0x0 if !BR4_MACHINE_SDRAM
default 0x0 if OR4_ROWS_9
default 0x40 if OR4_ROWS_10
default 0x80 if OR4_ROWS_11
default 0xc0 if OR4_ROWS_12
default 0x100 if OR4_ROWS_13
default 0x140 if OR4_ROWS_14
default 0x180 if OR4_ROWS_15
config OR4_PMSEL
hex
default 0x0 if !BR4_MACHINE_SDRAM
default 0x0 if OR4_PMSEL_BTB
default 0x20 if OR4_PMSEL_KEPT_OPEN
config OR4_SCY
hex
default 0x0 if !BR4_MACHINE_GPCM && !BR4_MACHINE_FCM
default 0x0 if OR4_SCY_0
default 0x10 if OR4_SCY_1
default 0x20 if OR4_SCY_2
default 0x30 if OR4_SCY_3
default 0x40 if OR4_SCY_4
default 0x50 if OR4_SCY_5
default 0x60 if OR4_SCY_6
default 0x70 if OR4_SCY_7
default 0x80 if OR4_SCY_8
default 0x90 if OR4_SCY_9
default 0xa0 if OR4_SCY_10
default 0xb0 if OR4_SCY_11
default 0xc0 if OR4_SCY_12
default 0xd0 if OR4_SCY_13
default 0xe0 if OR4_SCY_14
default 0xf0 if OR4_SCY_15
config OR4_PGS
hex
default 0x0 if !BR4_MACHINE_FCM
default 0x0 if OR4_PGS_SMALL
default 0x400 if OR4_PGS_LARGE
config OR4_CSCT
hex
default 0x0 if !BR4_MACHINE_FCM
default 0x0 if OR4_CSCT_1_CYCLE
default 0x0 if OR4_CSCT_2_CYCLE
default 0x200 if OR4_CSCT_4_CYCLE
default 0x200 if OR4_CSCT_8_CYCLE
config OR4_CST
hex
default 0x0 if !BR4_MACHINE_FCM
default 0x0 if OR4_CST_COINCIDENT
default 0x100 if OR4_CST_QUARTER_CLOCK
default 0x0 if OR4_CST_HALF_CLOCK
default 0x100 if OR4_CST_ONE_CLOCK
config OR4_CHT
hex
default 0x0 if !BR4_MACHINE_FCM
default 0x0 if OR4_CHT_HALF_CLOCK
default 0x80 if OR4_CHT_ONE_CLOCK
default 0x0 if OR4_CHT_ONE_HALF_CLOCK
default 0x80 if OR4_CHT_TWO_CLOCK
config OR4_RST
hex
default 0x0 if !BR4_MACHINE_FCM
default 0x0 if OR4_RST_THREE_QUARTER_CLOCK
default 0x8 if OR4_RST_ONE_CLOCK
default 0x0 if OR4_RST_ONE_HALF_CLOCK
config OR4_CSNT
hex
default 0x0 if !BR4_MACHINE_GPCM
default 0x0 if OR4_CSNT_NORMAL
default 0x800 if OR4_CSNT_EARLIER
config OR4_ACS
hex
default 0x0 if !BR4_MACHINE_GPCM
default 0x0 if OR4_ACS_SAME_TIME
default 0x400 if OR4_ACS_QUARTER_CYCLE_EARLIER
default 0x600 if OR4_ACS_HALF_CYCLE_EARLIER
config OR4_XACS
hex
default 0x0 if !BR4_MACHINE_GPCM
default 0x0 if OR4_XACS_NORMAL
default 0x100 if OR4_XACS_EXTENDED
config OR4_SETA
hex
default 0x0 if !BR4_MACHINE_GPCM
default 0x0 if OR4_SETA_INTERNAL
default 0x8 if OR4_SETA_EXTERNAL
config OR4_TRLX
hex
default 0x0 if OR4_TRLX_NORMAL
default 0x4 if OR4_TRLX_RELAXED
config OR4_EHTR
hex
default 0x0 if OR4_EHTR_NORMAL
default 0x2 if OR4_EHTR_1_CYCLE
default 0x0 if OR4_EHTR_4_CYCLE
default 0x2 if OR4_EHTR_8_CYCLE
config OR4_EAD
hex
default 0x0 if ARCH_MPC8308
default 0x0 if OR4_EAD_NONE
default 0x1 if OR4_EAD_EXTRA