Add initial integration of FSI core and FSI IPL firmware for Raptor Computing...

Add initial integration of FSI core and FSI IPL firmware for Raptor Computing Systems POWER9 systems

Verified to properly start the IPL sequence on a Raptor Computing Systems Blackbird
with external LPC / IPMI bridge interface attached.
parent eeec6ece
......@@ -3,7 +3,7 @@ BUILD_DIR=../build/versa_ecp5
include $(BUILD_DIR)/software/include/generated/variables.mak
include $(SOC_DIRECTORY)/software/common.mak
OBJECTS=isr.o main.o
OBJECTS=isr.o main.o fsi.o
all: firmware.bin
......
This diff is collapsed.
// © 2020 Raptor Engineering, LLC
//
// Released under the terms of the AGPL v3
// See the LICENSE file for full details
#ifndef _FSI_H
#define _FSI_H
typedef enum {
FSI_DATA_LENGTH_BYTE = 0,
FSI_DATA_LENGTH_HALFWORD = 1,
FSI_DATA_LENGTH_WORD = 2
} fsi_data_length_t;
#define FSI_MASTER_SID_SLAVE_ID_MASK 0x3
#define FSI_MASTER_SID_SLAVE_ID_SHIFT 29
#define FSI_MASTER_SID_ADDRESS_MASK 0x1fffff
#define FSI_MASTER_SID_ADDRESS_SHIFT 8
#define FSI_MASTER_SID_DATA_LENGTH_MASK 0x3
#define FSI_MASTER_SID_DATA_LENGTH_SHIFT 0
#define FSI_MASTER_CTL_CMD_ISSUE_DELAY_MASK 0xff
#define FSI_MASTER_CTL_CMD_ISSUE_DELAY_SHIFT 8
#define FSI_MASTER_CTL_DATA_DIRECTION_MASK 0x1
#define FSI_MASTER_CTL_DATA_DIRECTION_SHIFT 1
#define FSI_MASTER_CTL_ENABLE_CRC_MASK 0x1
#define FSI_MASTER_CTL_ENABLE_CRC_SHIFT 17
#define FSI_MASTER_CTL_ENABLE_EER_MASK 0x1
#define FSI_MASTER_CTL_ENABLE_EER_SHIFT 16
#define FSI_MASTER_CTL_CYCLE_START_MASK 0x1
#define FSI_MASTER_CTL_CYCLE_START_SHIFT 0
#define FSI_MASTER_STAT_CYCLE_ERROR_MASK 0x7
#define FSI_MASTER_STAT_CYCLE_ERROR_SHIFT 8
#define FSI_MASTER_STAT_CYCLE_COMPLETE_MASK 0x1
#define FSI_MASTER_STAT_CYCLE_COMPLETE_SHIFT 0
#define FSI_DIRECTION_READ 0
#define FSI_DIRECTION_WRITE 1
int run_pre_ipl_fixups(void);
int start_ipl(int side);
int get_sbe_status(void);
#endif // _FSI_H
......@@ -7,6 +7,8 @@
#include <console.h>
#include <generated/csr.h>
#include "fsi.h"
static char *readstr(void)
{
char c[2];
......@@ -63,7 +65,7 @@ static char *get_token(char **str)
static void prompt(void)
{
printf("RUNTIME>");
printf("FSP0>");
}
static void help(void)
......@@ -71,6 +73,8 @@ static void help(void)
puts("Available commands:");
puts("help - this command");
puts("reboot - reboot CPU");
puts("ipl - Start IPL sequence");
puts("sbe_status - Get SBE status register");
}
static void reboot(void)
......@@ -90,6 +94,10 @@ static void console_service(void)
help();
else if(strcmp(token, "reboot") == 0)
reboot();
else if(strcmp(token, "ipl") == 0)
start_ipl(0);
else if(strcmp(token, "sbe_status") == 0)
get_sbe_status();
prompt();
}
......@@ -101,7 +109,7 @@ int main(void)
#endif
uart_init();
puts("\nLab004 - CPU testing software built "__DATE__" "__TIME__"\n");
puts("\nRaptor Open FSP\nBuilt "__DATE__" "__TIME__"\n");
help();
prompt();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment