aboutsummaryrefslogtreecommitdiff
path: root/src/soc/amd/common/block/psp/psp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/amd/common/block/psp/psp.c')
-rw-r--r--src/soc/amd/common/block/psp/psp.c85
1 files changed, 0 insertions, 85 deletions
diff --git a/src/soc/amd/common/block/psp/psp.c b/src/soc/amd/common/block/psp/psp.c
index c35f41b20c..22404be6d6 100644
--- a/src/soc/amd/common/block/psp/psp.c
+++ b/src/soc/amd/common/block/psp/psp.c
@@ -6,10 +6,8 @@
#include <cbfs.h>
#include <region_file.h>
#include <timer.h>
-#include <device/pci_def.h>
#include <bootstate.h>
#include <console/console.h>
-#include <device/pci_ops.h>
#include <amdblocks/psp.h>
#include <soc/iomap.h>
#include <soc/northbridge.h>
@@ -43,94 +41,11 @@ static const char *status_to_string(int err)
}
}
-static u32 rd_mbox_sts(struct psp_mbox *mbox)
-{
- return read32(&mbox->mbox_status);
-}
-
-static void wr_mbox_cmd(struct psp_mbox *mbox, u32 cmd)
-{
- write32(&mbox->mbox_command, cmd);
-}
-
-static u32 rd_mbox_cmd(struct psp_mbox *mbox)
-{
- return read32(&mbox->mbox_command);
-}
-
-static void wr_mbox_cmd_resp(struct psp_mbox *mbox, void *buffer)
-{
- write64(&mbox->cmd_response, (uintptr_t)buffer);
-}
-
static u32 rd_resp_sts(struct mbox_default_buffer *buffer)
{
return read32(&buffer->header.status);
}
-static int wait_initialized(struct psp_mbox *mbox)
-{
- struct stopwatch sw;
-
- stopwatch_init_msecs_expire(&sw, PSP_INIT_TIMEOUT);
-
- do {
- if (rd_mbox_sts(mbox) & STATUS_INITIALIZED)
- return 0;
- } while (!stopwatch_expired(&sw));
-
- return -PSPSTS_INIT_TIMEOUT;
-}
-
-static int wait_command(struct psp_mbox *mbox)
-{
- struct stopwatch sw;
-
- stopwatch_init_msecs_expire(&sw, PSP_CMD_TIMEOUT);
-
- do {
- if (!rd_mbox_cmd(mbox))
- return 0;
- } while (!stopwatch_expired(&sw));
-
- return -PSPSTS_CMD_TIMEOUT;
-}
-
-static int send_psp_command(u32 command, void *buffer)
-{
- struct psp_mbox *mbox = soc_get_mbox_address();
- if (!mbox)
- return -PSPSTS_NOBASE;
-
- /* check for PSP error conditions */
- if (rd_mbox_sts(mbox) & STATUS_HALT)
- return -PSPSTS_HALTED;
-
- if (rd_mbox_sts(mbox) & STATUS_RECOVERY)
- return -PSPSTS_RECOVERY;
-
- /* PSP must be finished with init and ready to accept a command */
- if (wait_initialized(mbox))
- return -PSPSTS_INIT_TIMEOUT;
-
- if (wait_command(mbox))
- return -PSPSTS_CMD_TIMEOUT;
-
- /* set address of command-response buffer and write command register */
- wr_mbox_cmd_resp(mbox, buffer);
- wr_mbox_cmd(mbox, command);
-
- /* PSP clears command register when complete */
- if (wait_command(mbox))
- return -PSPSTS_CMD_TIMEOUT;
-
- /* check delivery status */
- if (rd_mbox_sts(mbox) & (STATUS_ERROR | STATUS_TERMINATED))
- return -PSPSTS_SEND_ERROR;
-
- return 0;
-}
-
/*
* Print meaningful status to the console. Caller only passes a pointer to a
* buffer if it's expected to contain its own status.