aboutsummaryrefslogtreecommitdiff
path: root/stm-fpgacfg.h
diff options
context:
space:
mode:
Diffstat (limited to 'stm-fpgacfg.h')
-rw-r--r--stm-fpgacfg.h52
1 files changed, 15 insertions, 37 deletions
diff --git a/stm-fpgacfg.h b/stm-fpgacfg.h
index fa5c4ef..ad86a89 100644
--- a/stm-fpgacfg.h
+++ b/stm-fpgacfg.h
@@ -36,47 +36,25 @@
#define __STM32_FPGACFG_H
#include "stm32f4xx_hal.h"
+#include "spiflash_n25q128.h"
-#define N25Q128_SPI_HANDLE (&hspi_fpgacfg)
+#define PROM_FPGA_DIS_Pin GPIO_PIN_14
+#define PROM_FPGA_DIS_GPIO_Port GPIOI
+#define PROM_ARM_ENA_Pin GPIO_PIN_6
+#define PROM_ARM_ENA_GPIO_Port GPIOF
+#define PROM_CS_N_Pin GPIO_PIN_12
+#define PROM_CS_N_GPIO_Port GPIOB
-#define N25Q128_COMMAND_READ_ID 0x9E
-#define N25Q128_COMMAND_READ_PAGE 0x03
-#define N25Q128_COMMAND_READ_STATUS 0x05
-#define N25Q128_COMMAND_WRITE_ENABLE 0x06
-#define N25Q128_COMMAND_ERASE_SECTOR 0xD8
-#define N25Q128_COMMAND_PAGE_PROGRAM 0x02
-#define N25Q128_PAGE_SIZE 0x100 // 256
-#define N25Q128_NUM_PAGES 0x10000 // 65536
+enum fpgacfg_access_ctrl {
+ ALLOW_NONE,
+ ALLOW_FPGA,
+ ALLOW_ARM,
+};
-#define N25Q128_SECTOR_SIZE 0x10000 // 65536
-#define N25Q128_NUM_SECTORS 0x100 // 256
-
-#define N25Q128_SPI_TIMEOUT 1000
-
-#define N25Q128_ID_MANUFACTURER 0x20
-#define N25Q128_ID_DEVICE_TYPE 0xBA
-#define N25Q128_ID_DEVICE_CAPACITY 0x18
-
-#define PROM_FPGA_DIS_Pin GPIO_PIN_14
-#define PROM_FPGA_DIS_GPIO_Port GPIOI
-#define PROM_ARM_ENA_Pin GPIO_PIN_6
-#define PROM_ARM_ENA_GPIO_Port GPIOF
-#define PROM_CS_N_Pin GPIO_PIN_12
-#define PROM_CS_N_GPIO_Port GPIOB
-
-
-#define _n25q128_select() HAL_GPIO_WritePin(PROM_CS_N_GPIO_Port, PROM_CS_N_Pin, GPIO_PIN_RESET);
-#define _n25q128_deselect() HAL_GPIO_WritePin(PROM_CS_N_GPIO_Port, PROM_CS_N_Pin, GPIO_PIN_SET);
-
-extern int n25q128_check_id(void);
-extern int n25q128_get_wip_flag(void);
-extern int n25q128_read_page(uint32_t page_offset, uint8_t *page_buffer);
-extern int n25q128_write_page(uint32_t page_offset, uint8_t *page_buffer);
-extern int n25q128_erase_sector(uint32_t sector_offset);
-
-extern void fpgacfg_give_access_to_stm32(void);
-extern void fpgacfg_give_access_to_fpga(void);
+extern int fpgacfg_check_id();
+extern int fpgacfg_write_data(uint32_t offset, const uint8_t *buf, const uint32_t len);
+extern void fpgacfg_access_control(enum fpgacfg_access_ctrl access);
extern SPI_HandleTypeDef hspi_fpgacfg;