Fixes to get TPM working with T1024 and MMU enabled.

pull/375/head
David Garske 2023-10-04 12:58:14 -07:00 committed by Daniele Lacamera
parent 3e8d6fb061
commit 389e12faf1
8 changed files with 25 additions and 33 deletions

View File

@ -61,7 +61,7 @@ static int test_tpm(void);
#endif
#ifdef ENABLE_ESPI
#include "spi_drv.h" /* for transfer flags */
#include "spi_drv.h" /* for transfer flags and chip select */
#endif
/* P1021 Platform */
@ -1936,9 +1936,6 @@ static int test_flash(void)
#endif /* ENABLE_ELBC && TEST_FLASH */
#if defined(ENABLE_ESPI) && defined(TEST_TPM)
#ifndef SPI_CS_TPM
#define SPI_CS_TPM 2
#endif
int test_tpm(void)
{
/* Read 4 bytes at TIS address D40F00. Assumes 0 wait state on TPM */

View File

@ -37,6 +37,13 @@
#define ENABLE_BUS_CLK_CALC
#define ENABLE_IFC
#ifndef BUILD_LOADER_STAGE1
/* Tests */
#if 0
#define TEST_DDR
#define TEST_FLASH
#define TEST_TPM
#endif
//#define ENABLE_CPLD
#define ENABLE_QE /* QUICC Engine */
//#define ENABLE_FMAN
@ -44,13 +51,6 @@
#if defined(WOLFBOOT_TPM) || defined(TEST_TPM)
#define ENABLE_ESPI /* SPI for TPM */
#endif
/* Tests */
#if 1
//#define TEST_DDR
//#define TEST_FLASH
//#define TEST_TPM
#endif
#endif
#define USE_ERRATA_DDRA008378
@ -72,7 +72,7 @@ static int test_tpm(void);
static void hal_flash_unlock_sector(uint32_t sector);
#ifdef ENABLE_ESPI
#include "spi_drv.h" /* for transfer flags */
#include "spi_drv.h" /* for transfer flags and chip select */
#endif
/* T1024 */
@ -1697,9 +1697,6 @@ static int test_flash(void)
#endif /* ENABLE_IFC && TEST_FLASH */
#if defined(ENABLE_ESPI) && defined(TEST_TPM)
#ifndef SPI_CS_TPM
#define SPI_CS_TPM 2
#endif
int test_tpm(void)
{
/* Read 4 bytes at TIS address D40F00. Assumes 0 wait state on TPM */

View File

@ -29,12 +29,10 @@
#ifdef WOLFBOOT_TPM
#if defined(PLATFORM_nxp_p1021)
/* functions from nxp_p1021.c hal */
/* functions from nxp_p1021.c and nxp_t1024.c hal */
extern void hal_espi_init(uint32_t cs, uint32_t clock_hz, uint32_t mode);
extern int hal_espi_xfer(int cs, const uint8_t* tx, uint8_t* rx, uint32_t sz, int flags);
extern int hal_espi_xfer(int cs, const uint8_t* tx, uint8_t* rx, uint32_t sz, int flags);
extern void hal_espi_deinit(void);
#endif
#include <wolftpm/tpm2_types.h>

View File

@ -20,13 +20,13 @@
#include <stdint.h>
#if defined(PLATFORM_nxp_p1021)
/* Chip select for TPM */
/* Chip select for TPM - defaults */
#ifndef SPI_CS_TPM
#define SPI_CS_TPM 2
#endif
#if defined(PLATFORM_nxp_p1021)
#define SPI_CS_TPM 2
#elif defined(PLATFORM_nxp_t1024)
#define SPI_CS_TPM 1
#endif
#endif
#endif /* !SPI_DRV_NXP_H_INCLUDED */

View File

@ -54,7 +54,7 @@
#include "hal/spi/spi_drv_nrf52.h"
#endif
#if defined(PLATFORM_nxp_p1021)
#if defined(PLATFORM_nxp_p1021) || defined(PLATFORM_nxp_t1024)
#include "hal/spi/spi_drv_nxp.h"
#endif

View File

@ -819,9 +819,10 @@ int wolfBoot_open_image_address(struct wolfBoot_image *img, uint8_t *image)
}
#ifdef MMU
/* Inline use of ByteReverseWord32 */
#define WOLFSSL_MISC_INCLUDED
#include <wolfcrypt/src/misc.c>
#ifndef WOLFBOOT_TPM /* tpm2_types.h has ByteReverseWord32 */
#define WOLFSSL_MISC_INCLUDED /* allow misc.c code to be inlined */
#include <wolfcrypt/src/misc.c> /* for ByteReverseWord32 */
#endif /* !WOLFBOOT_TPM */
static uint32_t wb_reverse_word32(uint32_t x)
{
return ByteReverseWord32(x);

View File

@ -119,9 +119,8 @@ static uint32_t ext_cache;
#if defined(__WOLFBOOT) || defined (UNIT_TEST)
/* Inline use of ByteReverseWord32 */
#define WOLFSSL_MISC_INCLUDED
#include <wolfcrypt/src/misc.c>
#define WOLFSSL_MISC_INCLUDED /* allow misc.c code to be inlined */
#include <wolfcrypt/src/misc.c> /* for ByteReverseWord32 */
static uint32_t wb_reverse_word32(uint32_t x)
{
return ByteReverseWord32(x);

View File

@ -125,7 +125,7 @@ int main(void)
#ifdef PRINTF_ENABLED
wolfBoot_printf("Jumping to full wolfBoot at %p\n", wolfboot_start);
#elif defined(DEBUG_UART)
uart_write("Jumping to full wolfBoot\n", 27);
uart_write("Jumping to full wolfBoot\n", 25);
#endif
hal_prepare_boot();