menuconfig ELBC_BR0_OR0 bool "ELBC BR0/OR0" if ELBC_BR0_OR0 config BR0_OR0_NAME string "Identifier" config BR0_OR0_BASE hex "Port base" choice prompt "Port size" config BR0_PORTSIZE_8BIT bool "8-bit" config BR0_PORTSIZE_16BIT depends on !BR0_MACHINE_FCM bool "16-bit" config BR0_PORTSIZE_32BIT depends on !BR0_MACHINE_FCM depends on ARCH_MPC8349 || ARCH_MPC8360 || ARCH_MPC8379 bool "32-bit" endchoice if BR0_MACHINE_FCM choice prompt "Data Error Checking" config BR0_ERRORCHECKING_DISABLED bool "Disabled" config BR0_ERRORCHECKING_ECC_CHECKING bool "ECC checking / No ECC generation" config BR0_ERRORCHECKING_BOTH bool "ECC checking and generation" endchoice endif config BR0_WRITE_PROTECT bool "Write-protect" config BR0_MACHINE_UPM bool choice prompt "Machine select" config BR0_MACHINE_GPCM bool "GPCM" config BR0_MACHINE_FCM depends on !ARCH_MPC832X && !ARCH_MPC8349 && !ARCH_MPC8360 bool "FCM" config BR0_MACHINE_SDRAM depends on ARCH_MPC8349 || ARCH_MPC8360 bool "SDRAM" config BR0_MACHINE_UPMA select BR0_MACHINE_UPM bool "UPM (A)" config BR0_MACHINE_UPMB select BR0_MACHINE_UPM bool "UPM (B)" config BR0_MACHINE_UPMC select BR0_MACHINE_UPM bool "UPM (C)" endchoice if ARCH_MPC8313 || ARCH_MPC8323 || ARCH_MPC8360 choice prompt "Atomic operations" config BR0_ATOMIC_NONE bool "No atomic operations" config BR0_ATOMIC_RAWA bool "Read-after-write-atomic" config BR0_ATOMIC_WARA bool "Write-after-read-atomic" endchoice endif if BR0_MACHINE_GPCM || BR0_MACHINE_FCM || BR0_MACHINE_UPM || BR0_MACHINE_SDRAM choice prompt "Address mask" config OR0_AM_32_KBYTES depends on !BR0_MACHINE_SDRAM bool "32 kb" config OR0_AM_64_KBYTES bool "64 kb" config OR0_AM_128_KBYTES bool "128 kb" config OR0_AM_256_KBYTES bool "256 kb" config OR0_AM_512_KBYTES bool "512 kb" config OR0_AM_1_MBYTES bool "1 mb" config OR0_AM_2_MBYTES bool "2 mb" config OR0_AM_4_MBYTES bool "4 mb" config OR0_AM_8_MBYTES bool "8 mb" config OR0_AM_16_MBYTES bool "16 mb" config OR0_AM_32_MBYTES bool "32 mb" config OR0_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 OR0_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 OR0_AM_256_MBYTES bool "256 mb" config OR0_AM_512_MBYTES depends on BR0_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 OR0_AM_1_GBYTES bool "1 gb" config OR0_AM_2_GBYTES depends on BR0_MACHINE_FCM bool "2 gb" config OR0_AM_4_GBYTES depends on BR0_MACHINE_FCM bool "4 gb" endchoice config OR0_XAM_SET bool "Set unused bytes after address mask" choice prompt "Buffer control disable" config OR0_BCTLD_ASSERTED bool "Asserted" config OR0_BCTLD_NOT_ASSERTED bool "Not asserted" endchoice endif if BR0_MACHINE_GPCM || BR0_MACHINE_FCM choice prompt "Cycle length in bus clocks" config OR0_SCY_0 bool "No wait states" config OR0_SCY_1 bool "1 wait state" config OR0_SCY_2 bool "2 wait states" config OR0_SCY_3 bool "3 wait states" config OR0_SCY_4 bool "4 wait states" config OR0_SCY_5 bool "5 wait states" config OR0_SCY_6 bool "6 wait states" config OR0_SCY_7 bool "7 wait states" config OR0_SCY_8 depends on BR0_MACHINE_GPCM bool "8 wait states" config OR0_SCY_9 depends on BR0_MACHINE_GPCM bool "9 wait states" config OR0_SCY_10 depends on BR0_MACHINE_GPCM bool "10 wait states" config OR0_SCY_11 depends on BR0_MACHINE_GPCM bool "11 wait states" config OR0_SCY_12 depends on BR0_MACHINE_GPCM bool "12 wait states" config OR0_SCY_13 depends on BR0_MACHINE_GPCM bool "13 wait states" config OR0_SCY_14 depends on BR0_MACHINE_GPCM bool "14 wait states" config OR0_SCY_15 depends on BR0_MACHINE_GPCM bool "15 wait states" endchoice endif # BR0_MACHINE_GPCM || BR0_MACHINE_FCM if BR0_MACHINE_GPCM choice prompt "Chip select negotiation time" config OR0_CSNT_NORMAL bool "Normal" config OR0_CSNT_EARLIER bool "Earlier" endchoice choice prompt "Address to chip-select setup" config OR0_ACS_SAME_TIME bool "At the same time" config OR0_ACS_HALF_CYCLE_EARLIER bool "Half of a bus clock cycle earlier" config OR0_ACS_QUARTER_CYCLE_EARLIER bool "Half/Quarter of a bus clock cycle earlier" endchoice choice prompt "Extra address to check-select setup" config OR0_XACS_NORMAL bool "Normal" config OR0_XACS_EXTENDED bool "Extended" endchoice choice prompt "External address termination" config OR0_SETA_INTERNAL bool "Access is terminated internally" config OR0_SETA_EXTERNAL bool "Access is terminated externally" endchoice endif # BR0_MACHINE_GPCM if BR0_MACHINE_FCM choice prompt "NAND Flash EEPROM page size" config OR0_PGS_SMALL bool "Small page device" config OR0_PGS_LARGE bool "Large page device" endchoice choice prompt "Chip select to command time" config OR0_CSCT_1_CYCLE depends on OR0_TRLX_NORMAL bool "1 cycle" config OR0_CSCT_2_CYCLE depends on OR0_TRLX_RELAXED bool "2 cycles" config OR0_CSCT_4_CYCLE depends on OR0_TRLX_NORMAL bool "4 cycles" config OR0_CSCT_8_CYCLE depends on OR0_TRLX_RELAXED bool "8 cycles" endchoice choice prompt "Command setup time" config OR0_CST_COINCIDENT depends on OR0_TRLX_NORMAL bool "Coincident with any command" config OR0_CST_QUARTER_CLOCK depends on OR0_TRLX_NORMAL bool "0.25 clocks after" config OR0_CST_HALF_CLOCK depends on OR0_TRLX_RELAXED bool "0.5 clocks after" config OR0_CST_ONE_CLOCK depends on OR0_TRLX_RELAXED bool "1 clock after" endchoice choice prompt "Command hold time" config OR0_CHT_HALF_CLOCK depends on OR0_TRLX_NORMAL bool "0.5 clocks before" config OR0_CHT_ONE_CLOCK depends on OR0_TRLX_NORMAL bool "1 clock before" config OR0_CHT_ONE_HALF_CLOCK depends on OR0_TRLX_RELAXED bool "1.5 clocks before" config OR0_CHT_TWO_CLOCK depends on OR0_TRLX_RELAXED bool "2 clocks before" endchoice choice prompt "Reset setup time" config OR0_RST_THREE_QUARTER_CLOCK depends on OR0_TRLX_NORMAL bool "0.75 clocks prior" config OR0_RST_ONE_HALF_CLOCK depends on OR0_TRLX_RELAXED bool "0.5 clocks prior" config OR0_RST_ONE_CLOCK bool "1 clock prior" endchoice endif # BR0_MACHINE_FCM if BR0_MACHINE_UPM choice prompt "Burst inhibit" config OR0_BI_BURSTSUPPORT bool "Support burst access" config OR0_BI_BURSTINHIBIT bool "Inhibit burst access" endchoice endif # BR0_MACHINE_UPM if BR0_MACHINE_SDRAM choice prompt "Number of column address lines" config OR0_COLS_7 bool "7" config OR0_COLS_8 bool "8" config OR0_COLS_9 bool "9" config OR0_COLS_10 bool "10" config OR0_COLS_11 bool "11" config OR0_COLS_12 bool "12" config OR0_COLS_13 bool "13" config OR0_COLS_14 bool "14" endchoice choice prompt "Number of rows address lines" config OR0_ROWS_9 bool "9" config OR0_ROWS_10 bool "10" config OR0_ROWS_11 bool "11" config OR0_ROWS_12 bool "12" config OR0_ROWS_13 bool "13" config OR0_ROWS_14 bool "14" config OR0_ROWS_15 bool "15" endchoice choice prompt "Page mode select" config OR0_PMSEL_BTB bool "Back-to-back" config OR0_PMSEL_KEPT_OPEN bool "Page kept open until page miss or refresh" endchoice endif # BR0_MACHINE_SDRAM choice prompt "Relaxed timing" config OR0_TRLX_NORMAL bool "Normal" config OR0_TRLX_RELAXED bool "Relaxed" endchoice choice prompt "Extended hold time" config OR0_EHTR_NORMAL depends on OR0_TRLX_NORMAL bool "Normal" config OR0_EHTR_1_CYCLE depends on OR0_TRLX_NORMAL bool "1 idle clock cycle inserted" config OR0_EHTR_4_CYCLE depends on OR0_TRLX_RELAXED bool "4 idle clock cycles inserted" config OR0_EHTR_8_CYCLE depends on OR0_TRLX_RELAXED bool "8 idle clock cycles inserted" endchoice if !ARCH_MPC8308 choice prompt "External address latch delay" config OR0_EAD_NONE bool "None" config OR0_EAD_EXTRA bool "Extra" endchoice endif # !ARCH_MPC8308 endif # ELBC_BR0_OR0 config BR0_PORTSIZE hex default 0x800 if BR0_PORTSIZE_8BIT default 0x1000 if BR0_PORTSIZE_16BIT default 0x1800 if BR0_PORTSIZE_32BIT config BR0_ERRORCHECKING hex default 0x0 if !BR0_MACHINE_FCM default 0x0 if BR0_ERRORCHECKING_DISABLED default 0x200 if BR0_ERRORCHECKING_ECC_CHECKING default 0x400 if BR0_ERRORCHECKING_BOTH config BR0_WRITE_PROTECT_BIT hex default 0x0 if !BR0_WRITE_PROTECT default 0x100 if BR0_WRITE_PROTECT config BR0_MACHINE hex default 0x0 if BR0_MACHINE_GPCM default 0x20 if BR0_MACHINE_FCM default 0x60 if BR0_MACHINE_SDRAM default 0x80 if BR0_MACHINE_UPMA default 0xa0 if BR0_MACHINE_UPMB default 0xc0 if BR0_MACHINE_UPMC config BR0_ATOMIC hex default 0x0 if !ARCH_MPC8313 && !ARCH_MPC8323 && !ARCH_MPC8360 default 0x0 if BR0_ATOMIC_NONE default 0x4 if BR0_ATOMIC_RAWA default 0x8 if BR0_ATOMIC_WARA config BR0_VALID_BIT hex default 0x0 if !ELBC_BR0_OR0 default 0x1 if ELBC_BR0_OR0 config OR0_AM hex default 0xffff8000 if OR0_AM_32_KBYTES && !BR0_MACHINE_SDRAM default 0xffff0000 if OR0_AM_64_KBYTES default 0xfffe0000 if OR0_AM_128_KBYTES default 0xfffc0000 if OR0_AM_256_KBYTES default 0xfff80000 if OR0_AM_512_KBYTES default 0xfff00000 if OR0_AM_1_MBYTES default 0xffe00000 if OR0_AM_2_MBYTES default 0xffc00000 if OR0_AM_4_MBYTES default 0xff800000 if OR0_AM_8_MBYTES default 0xff000000 if OR0_AM_16_MBYTES default 0xfe000000 if OR0_AM_32_MBYTES default 0xfc000000 if OR0_AM_64_MBYTES default 0xf8000000 if OR0_AM_128_MBYTES default 0xf0000000 if OR0_AM_256_MBYTES default 0xe0000000 if OR0_AM_512_MBYTES default 0xc0000000 if OR0_AM_1_GBYTES default 0x80000000 if OR0_AM_2_GBYTES default 0x00000000 if OR0_AM_4_GBYTES config OR0_XAM hex default 0x0 if !OR0_XAM_SET default 0x6000 if OR0_XAM_SET config OR0_BCTLD hex default 0x0 if OR0_BCTLD_ASSERTED default 0x1000 if OR0_BCTLD_NOT_ASSERTED config OR0_BI hex default 0x0 if !BR0_MACHINE_UPM default 0x0 if OR0_BI_BURSTSUPPORT default 0x100 if OR0_BI_BURSTINHIBIT config OR0_COLS hex default 0x0 if !BR0_MACHINE_SDRAM default 0x0 if OR0_COLS_7 default 0x400 if OR0_COLS_8 default 0x800 if OR0_COLS_9 default 0xc00 if OR0_COLS_10 default 0x1000 if OR0_COLS_11 default 0x1400 if OR0_COLS_12 default 0x1800 if OR0_COLS_13 default 0x1c00 if OR0_COLS_14 config OR0_ROWS hex default 0x0 if !BR0_MACHINE_SDRAM default 0x0 if OR0_ROWS_9 default 0x40 if OR0_ROWS_10 default 0x80 if OR0_ROWS_11 default 0xc0 if OR0_ROWS_12 default 0x100 if OR0_ROWS_13 default 0x140 if OR0_ROWS_14 default 0x180 if OR0_ROWS_15 config OR0_PMSEL hex default 0x0 if !BR0_MACHINE_SDRAM default 0x0 if OR0_PMSEL_BTB default 0x20 if OR0_PMSEL_KEPT_OPEN config OR0_SCY hex default 0x0 if !BR0_MACHINE_GPCM && !BR0_MACHINE_FCM default 0x0 if OR0_SCY_0 default 0x10 if OR0_SCY_1 default 0x20 if OR0_SCY_2 default 0x30 if OR0_SCY_3 default 0x40 if OR0_SCY_4 default 0x50 if OR0_SCY_5 default 0x60 if OR0_SCY_6 default 0x70 if OR0_SCY_7 default 0x80 if OR0_SCY_8 default 0x90 if OR0_SCY_9 default 0xa0 if OR0_SCY_10 default 0xb0 if OR0_SCY_11 default 0xc0 if OR0_SCY_12 default 0xd0 if OR0_SCY_13 default 0xe0 if OR0_SCY_14 default 0xf0 if OR0_SCY_15 config OR0_PGS hex default 0x0 if !BR0_MACHINE_FCM default 0x0 if OR0_PGS_SMALL default 0x400 if OR0_PGS_LARGE config OR0_CSCT hex default 0x0 if !BR0_MACHINE_FCM default 0x0 if OR0_CSCT_1_CYCLE default 0x0 if OR0_CSCT_2_CYCLE default 0x200 if OR0_CSCT_4_CYCLE default 0x200 if OR0_CSCT_8_CYCLE config OR0_CST hex default 0x0 if !BR0_MACHINE_FCM default 0x0 if OR0_CST_COINCIDENT default 0x100 if OR0_CST_QUARTER_CLOCK default 0x0 if OR0_CST_HALF_CLOCK default 0x100 if OR0_CST_ONE_CLOCK config OR0_CHT hex default 0x0 if !BR0_MACHINE_FCM default 0x0 if OR0_CHT_HALF_CLOCK default 0x80 if OR0_CHT_ONE_CLOCK default 0x0 if OR0_CHT_ONE_HALF_CLOCK default 0x80 if OR0_CHT_TWO_CLOCK config OR0_RST hex default 0x0 if !BR0_MACHINE_FCM default 0x0 if OR0_RST_THREE_QUARTER_CLOCK default 0x8 if OR0_RST_ONE_CLOCK default 0x0 if OR0_RST_ONE_HALF_CLOCK config OR0_CSNT hex default 0x0 if !BR0_MACHINE_GPCM default 0x0 if OR0_CSNT_NORMAL default 0x800 if OR0_CSNT_EARLIER config OR0_ACS hex default 0x0 if !BR0_MACHINE_GPCM default 0x0 if OR0_ACS_SAME_TIME default 0x400 if OR0_ACS_QUARTER_CYCLE_EARLIER default 0x600 if OR0_ACS_HALF_CYCLE_EARLIER config OR0_XACS hex default 0x0 if !BR0_MACHINE_GPCM default 0x0 if OR0_XACS_NORMAL default 0x100 if OR0_XACS_EXTENDED config OR0_SETA hex default 0x0 if !BR0_MACHINE_GPCM default 0x0 if OR0_SETA_INTERNAL default 0x8 if OR0_SETA_EXTERNAL config OR0_TRLX hex default 0x0 if OR0_TRLX_NORMAL default 0x4 if OR0_TRLX_RELAXED config OR0_EHTR hex default 0x0 if OR0_EHTR_NORMAL default 0x2 if OR0_EHTR_1_CYCLE default 0x0 if OR0_EHTR_4_CYCLE default 0x2 if OR0_EHTR_8_CYCLE config OR0_EAD hex default 0x0 if ARCH_MPC8308 default 0x0 if OR0_EAD_NONE default 0x1 if OR0_EAD_EXTRA