Blame view
doc/SPI/README.dual-flash
4 KB
f77f46911 sf: Add dual memo... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
SPI/QSPI Dual flash connection modes: ===================================== This describes how SPI/QSPI flash memories are connected to a given controller in a single chip select line. Current spi_flash framework supports, single flash memory connected to a given controller with single chip select line, but there are some hw logics(ex: xilinx zynq qspi) that describes two/dual memories are connected with a single chip select line from a controller. "dual_flash" from include/spi.h describes these types of connection mode Possible connections: -------------------- SF_SINGLE_FLASH: - single spi flash memory connected with single chip select line. +------------+ CS +---------------+ | |----------------------->| | | Controller | I0[3:0] | Flash memory | | SPI/QSPI |<======================>| (SPI/QSPI) | | | CLK | | | |----------------------->| | +------------+ +---------------+ SF_DUAL_STACKED_FLASH: - dual spi/qspi flash memories are connected with a single chipselect line and these two memories are operating stacked fasion with shared buses. - xilinx zynq qspi controller has implemented this feature [1] +------------+ CS +---------------+ | |---------------------->| | | | I0[3:0] | Upper Flash | | | +=========>| memory | | | | CLK | (SPI/QSPI) | | | | +---->| | | Controller | CS | | +---------------+ | SPI/QSPI |------------|----|---->| | | | I0[3:0] | | | Lower Flash | | |<===========+====|====>| memory | | | CLK | | (SPI/QSPI) | | |-----------------+---->| | +------------+ +---------------+ - two memory flash devices should has same hw part attributes (like size, vendor..etc) - Configurations: on LQSPI_CFG register, Enable TWO_MEM[BIT:30] on LQSPI_CFG Enable U_PAGE[BIT:28] if U_PAGE flag set - upper memory Disable U_PAGE[BIT:28] if U_PAGE flag unset - lower memory - Operation: accessing memories serially like one after another. by default, if U_PAGE is unset lower memory should accessible, once user wants to access upper memory need to set U_PAGE. |
056fbc73d sf: Add dual memo... |
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
SPI_FLASH_CONN_DUALPARALLEL: - dual spi/qspi flash memories are connected with a single chipselect line and these two memories are operating parallel with separate buses. - xilinx zynq qspi controller has implemented this feature [1] +-------------+ CS +---------------+ | |---------------------->| | | | I0[3:0] | Upper Flash | | |<=====================>| memory | | | CLK | (SPI/QSPI) | | |---------------------->| | | Controller | CS +---------------+ | SPI/QSPI |---------------------->| | | | I0[3:0] | Lower Flash | | |<=====================>| memory | | | CLK | (SPI/QSPI) | | |---------------------->| | +-------------+ +---------------+ - two memory flash devices should has same hw part attributes (like size, vendor..etc) - Configurations: Need to enable SEP_BUS[BIT:29],TWO_MEM[BIT:30] on LQSPI_CFG register. - Operation: Even bits, i.e. bit 0, 2, 4 ., of a data word is located in the lower memory and odd bits, i.e. bit 1, 3, 5, ., of a data word is located in the upper memory. |
f77f46911 sf: Add dual memo... |
82 83 84 85 86 87 88 89 90 |
Note: Technically there is only one CS line from the controller, but zynq qspi controller has an internal hw logic to enable additional CS when controller is configured for dual memories. [1] http://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf -- Jagannadha Sutradharudu Teki <jaganna@xilinx.com> 05-01-2014. |