forked from Qortal/Brooklyn
113 lines
3.7 KiB
C
113 lines
3.7 KiB
C
/* SPDX-License-Identifier: GPL-2.0
|
|
*
|
|
* Copyright 2018-2020 HabanaLabs, Ltd.
|
|
* All Rights Reserved.
|
|
*
|
|
*/
|
|
|
|
#ifndef HL_BOOT_IF_H
|
|
#define HL_BOOT_IF_H
|
|
|
|
#define LKD_HARD_RESET_MAGIC 0xED7BD694
|
|
#define HL_POWER9_HOST_MAGIC 0x1DA30009
|
|
|
|
#define BOOT_FIT_SRAM_OFFSET 0x200000
|
|
|
|
/*
|
|
* CPU error bits in BOOT_ERROR registers
|
|
*
|
|
* CPU_BOOT_ERR0_DRAM_INIT_FAIL DRAM initialization failed.
|
|
* DRAM is not reliable to use.
|
|
*
|
|
* CPU_BOOT_ERR0_FIT_CORRUPTED FIT data integrity verification of the
|
|
* image provided by the host has failed.
|
|
*
|
|
* CPU_BOOT_ERR0_TS_INIT_FAIL Thermal Sensor initialization failed.
|
|
* Boot continues as usual, but keep in
|
|
* mind this is a warning.
|
|
*
|
|
* CPU_BOOT_ERR0_DRAM_SKIPPED DRAM initialization has been skipped.
|
|
* Skipping DRAM initialization has been
|
|
* requested (e.g. strap, command, etc.)
|
|
* and FW skipped the DRAM initialization.
|
|
* Host can initialize the DRAM.
|
|
*
|
|
* CPU_BOOT_ERR0_BMC_WAIT_SKIPPED Waiting for BMC data will be skipped.
|
|
* Meaning the BMC data might not be
|
|
* available until reset.
|
|
*
|
|
* CPU_BOOT_ERR0_NIC_DATA_NOT_RDY NIC data from BMC is not ready.
|
|
* BMC has not provided the NIC data yet.
|
|
* Once provided this bit will be cleared.
|
|
*
|
|
* CPU_BOOT_ERR0_NIC_FW_FAIL NIC FW loading failed.
|
|
* The NIC FW loading and initialization
|
|
* failed. This means NICs are not usable.
|
|
*
|
|
* CPU_BOOT_ERR0_SECURITY_NOT_RDY Chip security initialization has been
|
|
* started, but is not ready yet - chip
|
|
* cannot be accessed.
|
|
*
|
|
* CPU_BOOT_ERR0_SECURITY_FAIL Security related tasks have failed.
|
|
* The tasks are security init (root of
|
|
* trust), boot authentication (chain of
|
|
* trust), data packets authentication.
|
|
*
|
|
* CPU_BOOT_ERR0_ENABLED Error registers enabled.
|
|
* This is a main indication that the
|
|
* running FW populates the error
|
|
* registers. Meaning the error bits are
|
|
* not garbage, but actual error statuses.
|
|
*/
|
|
#define CPU_BOOT_ERR0_DRAM_INIT_FAIL (1 << 0)
|
|
#define CPU_BOOT_ERR0_FIT_CORRUPTED (1 << 1)
|
|
#define CPU_BOOT_ERR0_TS_INIT_FAIL (1 << 2)
|
|
#define CPU_BOOT_ERR0_DRAM_SKIPPED (1 << 3)
|
|
#define CPU_BOOT_ERR0_BMC_WAIT_SKIPPED (1 << 4)
|
|
#define CPU_BOOT_ERR0_NIC_DATA_NOT_RDY (1 << 5)
|
|
#define CPU_BOOT_ERR0_NIC_FW_FAIL (1 << 6)
|
|
#define CPU_BOOT_ERR0_SECURITY_NOT_RDY (1 << 7)
|
|
#define CPU_BOOT_ERR0_SECURITY_FAIL (1 << 8)
|
|
#define CPU_BOOT_ERR0_ENABLED (1 << 31)
|
|
|
|
enum cpu_boot_status {
|
|
CPU_BOOT_STATUS_NA = 0, /* Default value after reset of chip */
|
|
CPU_BOOT_STATUS_IN_WFE = 1,
|
|
CPU_BOOT_STATUS_DRAM_RDY = 2,
|
|
CPU_BOOT_STATUS_SRAM_AVAIL = 3,
|
|
CPU_BOOT_STATUS_IN_BTL = 4, /* BTL is H/W FSM */
|
|
CPU_BOOT_STATUS_IN_PREBOOT = 5,
|
|
CPU_BOOT_STATUS_IN_SPL, /* deprecated - not reported */
|
|
CPU_BOOT_STATUS_IN_UBOOT = 7,
|
|
CPU_BOOT_STATUS_DRAM_INIT_FAIL, /* deprecated - will be removed */
|
|
CPU_BOOT_STATUS_FIT_CORRUPTED, /* deprecated - will be removed */
|
|
/* U-Boot console prompt activated, commands are not processed */
|
|
CPU_BOOT_STATUS_UBOOT_NOT_READY = 10,
|
|
/* Finished NICs init, reported after DRAM and NICs */
|
|
CPU_BOOT_STATUS_NIC_FW_RDY = 11,
|
|
CPU_BOOT_STATUS_TS_INIT_FAIL, /* deprecated - will be removed */
|
|
CPU_BOOT_STATUS_DRAM_SKIPPED, /* deprecated - will be removed */
|
|
CPU_BOOT_STATUS_BMC_WAITING_SKIPPED, /* deprecated - will be removed */
|
|
/* Last boot loader progress status, ready to receive commands */
|
|
CPU_BOOT_STATUS_READY_TO_BOOT = 15,
|
|
/* Internal Boot finished, ready for boot-fit */
|
|
CPU_BOOT_STATUS_WAITING_FOR_BOOT_FIT = 16,
|
|
/* Internal Security has been initialized, device can be accessed */
|
|
CPU_BOOT_STATUS_SECURITY_READY = 17,
|
|
};
|
|
|
|
enum kmd_msg {
|
|
KMD_MSG_NA = 0,
|
|
KMD_MSG_GOTO_WFE,
|
|
KMD_MSG_FIT_RDY,
|
|
KMD_MSG_SKIP_BMC,
|
|
};
|
|
|
|
enum cpu_msg_status {
|
|
CPU_MSG_CLR = 0,
|
|
CPU_MSG_OK,
|
|
CPU_MSG_ERR,
|
|
};
|
|
|
|
#endif /* HL_BOOT_IF_H */
|