summaryrefslogtreecommitdiffstats
path: root/include/altera.h
diff options
context:
space:
mode:
authorStefan Roese <sr@denx.de>2016-02-12 13:48:02 +0100
committerStefan Roese <sr@denx.de>2016-03-24 09:47:43 +0100
commitff9c4c535a8b722c54d45e77aa083fa08552341d (patch)
tree23f431260bccbfade15f7c149fafb624c8dca516 /include/altera.h
parent704d9a645e1790e568abf43c5eff2de0d7b135ed (diff)
downloadblackbird-obmc-uboot-ff9c4c535a8b722c54d45e77aa083fa08552341d.tar.gz
blackbird-obmc-uboot-ff9c4c535a8b722c54d45e77aa083fa08552341d.zip
fpga: altera: Add StratixV support
This patch adds support for programming of the StratixV FPGAs. Programming is done in this case (board theadorable) via SPI. The board may provide board specific code for bitstream programming. This StratixV support will be used by the theadorable board. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Tom Rini <trini@konsulko.com> Signed-off-by: Stefan Roese <sr@denx.de>
Diffstat (limited to 'include/altera.h')
-rw-r--r--include/altera.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/include/altera.h b/include/altera.h
index c2991ad800..48d3eb73c9 100644
--- a/include/altera.h
+++ b/include/altera.h
@@ -10,6 +10,19 @@
#ifndef _ALTERA_H_
#define _ALTERA_H_
+/*
+ * For the StratixV FPGA programming via SPI, the following
+ * information is coded in the 32bit cookie:
+ * Bit 31 ... Bit 0
+ * SPI-Bus | SPI-Dev | Config-Pin | Done-Pin
+ */
+#define FPGA_COOKIE(bus, dev, config, done) \
+ (((bus) << 24) | ((dev) << 16) | ((config) << 8) | (done))
+#define COOKIE2SPI_BUS(c) (((c) >> 24) & 0xff)
+#define COOKIE2SPI_DEV(c) (((c) >> 16) & 0xff)
+#define COOKIE2CONFIG(c) (((c) >> 8) & 0xff)
+#define COOKIE2DONE(c) ((c) & 0xff)
+
enum altera_iface {
/* insert all new types after this */
min_altera_iface_type,
@@ -40,6 +53,8 @@ enum altera_family {
Altera_CYC2,
/* StratixII Family */
Altera_StratixII,
+ /* StratixV Family */
+ Altera_StratixV,
/* SoCFPGA Family */
Altera_SoCFPGA,
@@ -89,6 +104,7 @@ typedef struct {
Altera_done_fn done;
Altera_clk_fn clk;
Altera_data_fn data;
+ Altera_write_fn write;
Altera_abort_fn abort;
Altera_post_fn post;
} altera_board_specific_func;
@@ -97,4 +113,8 @@ typedef struct {
int socfpga_load(Altera_desc *desc, const void *rbf_data, size_t rbf_size);
#endif
+#ifdef CONFIG_FPGA_STRATIX_V
+int stratixv_load(Altera_desc *desc, const void *rbf_data, size_t rbf_size);
+#endif
+
#endif /* _ALTERA_H_ */
OpenPOWER on IntegriCloud