aboutsummaryrefslogtreecommitdiff
path: root/stm-fmc.h
diff options
context:
space:
mode:
authorPaul Selkirk <paul@psgd.org>2016-05-24 18:13:26 -0400
committerPaul Selkirk <paul@psgd.org>2016-05-24 18:15:07 -0400
commitebe70741a4771698423e4c61939e88d6db66460d (patch)
treebf78c5e845c809e6dff113e0b2e46c94972317f4 /stm-fmc.h
parent9bb798876768f702c5940dcf67feffc6d0e9a0a4 (diff)
parent6265025f7cd7f606b6da62c7add13a6008500cf7 (diff)
Merge branch 'master' of git.cryptech.is:sw/stm32
Diffstat (limited to 'stm-fmc.h')
-rw-r--r--stm-fmc.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/stm-fmc.h b/stm-fmc.h
index 9e34d32..1e6a670 100644
--- a/stm-fmc.h
+++ b/stm-fmc.h
@@ -35,9 +35,27 @@
#ifndef __STM_FMC_H
#define __STM_FMC_H
-#include <stdint.h>
+#define FMC_FPGA_BASE_ADDR 0x60000000
+#define FMC_FPGA_ADDR_MASK 0x03FFFFFC // there are 26 physical lines, but "only" 24 usable for now
+#define FMC_FPGA_NWAIT_MAX_POLL_TICKS 10
-extern void fmc_init(void);
+#define FMC_GPIO_PORT_NWAIT GPIOD
+#define FMC_GPIO_PIN_NWAIT GPIO_PIN_6
+
+#define FMC_NWAIT_IDLE GPIO_PIN_SET
+
+#define fmc_af_gpio(port, pins) \
+ GPIO_InitStruct.Pin = pins; \
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; \
+ GPIO_InitStruct.Pull = GPIO_NOPULL; \
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; \
+ GPIO_InitStruct.Alternate = GPIO_AF12_FMC; \
+ __HAL_RCC_##port##_CLK_ENABLE(); \
+ HAL_GPIO_Init(port, &GPIO_InitStruct)
+
+
+extern HAL_StatusTypeDef fmc_init(void);
+extern void fmc_init_gpio(void);
extern int fmc_write_32(uint32_t addr, uint32_t *data);
extern int fmc_read_32(uint32_t addr, uint32_t *data);