From 3d16ad028d69acc581095430d20463ed66f65779 Mon Sep 17 00:00:00 2001 From: Fredrik Thulin Date: Sat, 21 May 2016 13:16:58 +0200 Subject: Add code to access the keystore memory (SPI flash). --- stm-init.c | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) (limited to 'stm-init.c') diff --git a/stm-init.c b/stm-init.c index 8711cc1..7ded2a6 100644 --- a/stm-init.c +++ b/stm-init.c @@ -49,6 +49,7 @@ #endif #ifdef HAL_SPI_MODULE_ENABLED #include "stm-fpgacfg.h" +#include "stm-keystore.h" #endif /* Private variables ---------------------------------------------------------*/ @@ -65,6 +66,7 @@ static void MX_USART2_UART_Init(void); static void MX_I2C2_Init(void); #endif #ifdef HAL_SPI_MODULE_ENABLED +static void MX_SPI1_Init(void); static void MX_SPI2_Init(void); #endif @@ -96,6 +98,7 @@ void stm_init(void) MX_I2C2_Init(); #endif #ifdef HAL_SPI_MODULE_ENABLED + MX_SPI1_Init(); MX_SPI2_Init(); #endif } @@ -173,13 +176,11 @@ static void MX_GPIO_Init(void) /* Set up GPIOs to manage access to the FPGA config memory. * FPGACFG_GPIO_INIT is defined in stm-fpgacfg.h. */ - /* GPIO Ports Clock Enable */ FPGACFG_GPIO_INIT(); - /* - __GPIOJ_CLK_ENABLE(); - gpio_output(FPGA_INIT_Port, FPGA_INIT_Pin, GPIO_PIN_RESET); - gpio_output(FPGA_PROGRAM_Port, FPGA_PROGRAM_Pin, GPIO_PIN_SET); - */ + /* Set up GPIOs for the keystore memory. + * KEYSTORE_GPIO_INIT is defined in stm-keystore.h. + */ + KEYSTORE_GPIO_INIT(); #endif /* HAL_SPI_MODULE_ENABLED */ } #undef gpio_output @@ -206,6 +207,23 @@ void MX_I2C2_Init(void) #endif #ifdef HAL_SPI_MODULE_ENABLED +/* SPI1 (keystore memory) init function */ +void MX_SPI1_Init(void) +{ + hspi_keystore.Instance = SPI1; + hspi_keystore.Init.Mode = SPI_MODE_MASTER; + hspi_keystore.Init.Direction = SPI_DIRECTION_2LINES; + hspi_keystore.Init.DataSize = SPI_DATASIZE_8BIT; + hspi_keystore.Init.CLKPolarity = SPI_POLARITY_LOW; + hspi_keystore.Init.CLKPhase = SPI_PHASE_1EDGE; + hspi_keystore.Init.NSS = SPI_NSS_SOFT; + hspi_keystore.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; + hspi_keystore.Init.FirstBit = SPI_FIRSTBIT_MSB; + hspi_keystore.Init.TIMode = SPI_TIMODE_DISABLE; + hspi_keystore.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; + hspi_keystore.Init.CRCPolynomial = 10; + HAL_SPI_Init(&hspi_keystore); +} /* SPI2 (FPGA config memory) init function */ void MX_SPI2_Init(void) { -- cgit v1.2.3