e3e7d8d4ea
Fix the I/O access macros so that they work with externally connected devices accessed in little-endian mode over any bus width: * Use a set of macros to define I/O port- and memory operations borrowed from MIPS. * Allow subarchitecture to specify address- and data-mangling * Implement at32ap-specific port mangling (with build-time configurable bus width. Only one bus width at a time supported for now.) * Rewrite iowriteN and friends to use write[bwl] and friends (not the __raw counterparts.) This has been tested using pata_pcmcia to access a CompactFlash card connected to the EBI (16-bit bus width.) Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
31 lines
695 B
Text
31 lines
695 B
Text
if PLATFORM_AT32AP
|
|
|
|
menu "Atmel AVR32 AP options"
|
|
|
|
choice
|
|
prompt "AT32AP7000 static memory bus width"
|
|
depends on CPU_AT32AP7000
|
|
default AP7000_16_BIT_SMC
|
|
help
|
|
Define the width of the AP7000 external static memory interface.
|
|
This is used to determine how to mangle the address and/or data
|
|
when doing little-endian port access.
|
|
|
|
The current code can only support a single external memory bus
|
|
width for all chip selects, excluding the flash (which is using
|
|
raw access and is thus not affected by any of this.)
|
|
|
|
config AP7000_32_BIT_SMC
|
|
bool "32 bit"
|
|
|
|
config AP7000_16_BIT_SMC
|
|
bool "16 bit"
|
|
|
|
config AP7000_8_BIT_SMC
|
|
bool "8 bit"
|
|
|
|
endchoice
|
|
|
|
endmenu
|
|
|
|
endif # PLATFORM_AT32AP
|