diff options
author | Valentin Longchamp <valentin.longchamp@keymile.com> | 2012-07-05 05:05:05 +0000 |
---|---|---|
committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2012-07-07 14:07:37 +0200 |
commit | b37f772433ab44d1730423eccf11f287ce61ec5f (patch) | |
tree | 8bc0d8f513a232f26611570ff2512e7a81f29af5 /board/keymile/common | |
parent | 6ef6486180678ab86d511676ec68cf78bf267582 (diff) | |
download | u-boot-imx-b37f772433ab44d1730423eccf11f287ce61ec5f.zip u-boot-imx-b37f772433ab44d1730423eccf11f287ce61ec5f.tar.gz u-boot-imx-b37f772433ab44d1730423eccf11f287ce61ec5f.tar.bz2 |
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>
Diffstat (limited to 'board/keymile/common')
-rw-r--r-- | board/keymile/common/common.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/board/keymile/common/common.h b/board/keymile/common/common.h index f457aa3..aab706e 100644 --- a/board/keymile/common/common.h +++ b/board/keymile/common/common.h @@ -131,6 +131,11 @@ struct bfticu_iomap { int ethernet_present(void); int ivm_read_eeprom(void); +int trigger_fpga_config(void); +int wait_for_fpga_config(void); +int fpga_reset(void); +int toggle_eeprom_spi_bus(void); + int set_km_env(void); int fdt_set_node_and_value(void *blob, char *nodename, |