arm/km: enable BOCO2 FPGA download support

This adds a first support of the FPGA download for a PCIe FPGA based
on the BOCO2 CPLD.

This takes place in 3 steps, all done accessing the SPICTRL reg of the
BOCO2:
1) start the FPGA config with an access to the FPGA_PROG bit
2) later in the boot sequence, wait for the FPGA_DONE bit to toggle to 1
   for the end of the FPGA configuration (with a timeout)
3) reset the FPGA
4) finally remove the access to its config EEPROM from the FPGA so that
   the CPU can update the FPGA configuration when the kernel is running

The boards with a PCIe FPGA but without BOCO2 still are supported.

The config option name is CONFIG_KM_FPGA_CONFIG

Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
cc: Gerlando Falauto <gerlando.falauto@keymile.com>
cc: Prafulla Wadaskar <prafulla@marvell.com>
This commit is contained in:
Valentin Longchamp
2012-07-05 05:05:05 +00:00
committed by Albert ARIBAUD
parent 6ef6486180
commit b37f772433
7 changed files with 245 additions and 10 deletions

View File

@@ -313,4 +313,7 @@ int get_scl(void);
#define CONFIG_POST_EXTERNAL_WORD_FUNCS
#define CONFIG_CMD_DIAG
/* we do the whole PCIe FPGA config stuff here */
#define BOARD_LATE_INIT
#endif /* _CONFIG_KM_ARM_H */

View File

@@ -162,10 +162,12 @@
MVGBE_SET_MII_SPEED_TO_100)
#endif
/* GPIO Pin from kirkwood connected to PROGRAM_B pin of the xilinx FPGA */
#define KM_XLX_PROGRAM_B_PIN 39
#ifdef CONFIG_KM_DISABLE_PCI
#undef CONFIG_KIRKWOOD_PCIE_INIT
#endif
#ifndef CONFIG_KM_FPGA_CONFIG
#undef BOARD_LATE_INIT
#endif
#endif /* _CONFIG_KM_KIRKWOOD */