summaryrefslogtreecommitdiffstats
path: root/include/soc
diff options
context:
space:
mode:
authorSivaram Nair <sivaramn@nvidia.com>2018-08-17 14:13:18 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-08-17 21:52:13 -0400
commit00377745f2a0b8a777c5d4e1a44623b4e314880a (patch)
treef1feeb98d7dc9bbbf0cb5301fa05706759b53ecd /include/soc
parentd3fb5f60edd25717947375f4e4671bc1dc0ba729 (diff)
bpmp: ABI headers update
a7db5d8 [abi] add cautionary note to MRQ_PG sc7 handling 409e306 [abi] Update EC service abi Bug 2107938 Jira BPMP-2233 Change-Id: I45a2b80cfd9296b9a46c20069ed54b592b790622 Signed-off-by: Sivaram Nair <sivaramn@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1801994 Reviewed-by: Aleksandr Frid <afrid@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'include/soc')
-rw-r--r--include/soc/tegra/bpmp_abi.h58
1 files changed, 43 insertions, 15 deletions
diff --git a/include/soc/tegra/bpmp_abi.h b/include/soc/tegra/bpmp_abi.h
index 055bc48dd..00fba1475 100644
--- a/include/soc/tegra/bpmp_abi.h
+++ b/include/soc/tegra/bpmp_abi.h
@@ -1232,6 +1232,11 @@ struct mrq_pg_update_state_request {
1232 * MRQ_PG_UPDATE_STATE, operations that change the power partition 1232 * MRQ_PG_UPDATE_STATE, operations that change the power partition
1233 * state are NOT reference counted 1233 * state are NOT reference counted
1234 * 1234 *
1235 * @note BPMP-FW forcefully turns off some partitions as part of SC7 entry
1236 * because their state cannot be adequately restored on exit. Therefore,
1237 * it is recommended to power off all domains via MRQ_PG prior to SC7 entry.
1238 * See @ref bpmp_pdomain_ids for further detail.
1239 *
1235 * * Platforms: T186, T194 1240 * * Platforms: T186, T194
1236 * * Initiators: Any 1241 * * Initiators: Any
1237 * * Targets: BPMP 1242 * * Targets: BPMP
@@ -2366,8 +2371,9 @@ enum {
2366 /** 2371 /**
2367 * @brief Retrieve specified EC status. 2372 * @brief Retrieve specified EC status.
2368 * 2373 *
2369 * Query fails if specified EC is not owned by BPMP, or power 2374 * mrq_response::err is 0 if the operation was successful, or @n
2370 * domain EC belongs to is turned off. 2375 * -#BPMP_ENODEV if target EC is not owned by BPMP @n
2376 * -#BPMP_EACCES if target EC power domain is turned off
2371 */ 2377 */
2372 CMD_EC_STATUS_GET = 1, 2378 CMD_EC_STATUS_GET = 1,
2373 CMD_EC_NUM, 2379 CMD_EC_NUM,
@@ -2465,10 +2471,19 @@ enum ec_registers_group {
2465#define EC_STATUS_FLAG_NO_ERROR 0x0001 2471#define EC_STATUS_FLAG_NO_ERROR 0x0001
2466/** @brief Last EC error found flag */ 2472/** @brief Last EC error found flag */
2467#define EC_STATUS_FLAG_LAST_ERROR 0x0002 2473#define EC_STATUS_FLAG_LAST_ERROR 0x0002
2468/** @brief EC error resolved flag */
2469#define EC_STATUS_FLAG_RESOLVED_ERROR 0x0004
2470/** @brief EC latent error flag */ 2474/** @brief EC latent error flag */
2471#define EC_STATUS_FLAG_LATENT_ERROR 0x0008 2475#define EC_STATUS_FLAG_LATENT_ERROR 0x0004
2476/** @} */
2477
2478/**
2479 * @defgroup bpmp_ec_desc_flags EC Descriptor Flags
2480 * @addtogroup bpmp_ec_desc_flags
2481 * @{
2482 */
2483/** @brief EC descriptor error resolved flag */
2484#define EC_DESC_FLAG_RESOLVED 0x0001
2485/** @brief EC descriptor failed to retrieve id flag */
2486#define EC_DESC_FLAG_NO_ID 0x0002
2472/** @} */ 2487/** @} */
2473 2488
2474/** 2489/**
@@ -2477,8 +2492,10 @@ enum ec_registers_group {
2477 * |@ref EC_ERR_TYPE_CLOCK_MONITOR |@ref bpmp_clock_ids | 2492 * |@ref EC_ERR_TYPE_CLOCK_MONITOR |@ref bpmp_clock_ids |
2478 */ 2493 */
2479struct ec_err_fmon_desc { 2494struct ec_err_fmon_desc {
2495 /** @brief Bitmask of @ref bpmp_ec_desc_flags */
2496 uint16_t desc_flags;
2480 /** @brief FMON monitored clock id */ 2497 /** @brief FMON monitored clock id */
2481 uint32_t fmon_clk_id; 2498 uint16_t fmon_clk_id;
2482 /** @brief FMON faults bitmask */ 2499 /** @brief FMON faults bitmask */
2483 uint32_t fmon_faults; 2500 uint32_t fmon_faults;
2484 /** @brief FMON faults access error */ 2501 /** @brief FMON faults access error */
@@ -2491,8 +2508,10 @@ struct ec_err_fmon_desc {
2491 * |@ref EC_ERR_TYPE_VOLTAGE_MONITOR |@ref bpmp_adc_ids | 2508 * |@ref EC_ERR_TYPE_VOLTAGE_MONITOR |@ref bpmp_adc_ids |
2492 */ 2509 */
2493struct ec_err_vmon_desc { 2510struct ec_err_vmon_desc {
2511 /** @brief Bitmask of @ref bpmp_ec_desc_flags */
2512 uint16_t desc_flags;
2494 /** @brief VMON rail adc id */ 2513 /** @brief VMON rail adc id */
2495 uint32_t vmon_adc_id; 2514 uint16_t vmon_adc_id;
2496 /** @brief VMON faults bitmask */ 2515 /** @brief VMON faults bitmask */
2497 uint32_t vmon_faults; 2516 uint32_t vmon_faults;
2498 /** @brief VMON faults access error */ 2517 /** @brief VMON faults access error */
@@ -2505,10 +2524,12 @@ struct ec_err_vmon_desc {
2505 * |@ref EC_ERR_TYPE_REGISTER_PARITY |@ref bpmp_ec_registers_ids | 2524 * |@ref EC_ERR_TYPE_REGISTER_PARITY |@ref bpmp_ec_registers_ids |
2506 */ 2525 */
2507struct ec_err_reg_parity_desc { 2526struct ec_err_reg_parity_desc {
2527 /** @brief Bitmask of @ref bpmp_ec_desc_flags */
2528 uint16_t desc_flags;
2508 /** @brief Register id */ 2529 /** @brief Register id */
2509 uint32_t reg_id; 2530 uint16_t reg_id;
2510 /** @brief Register group @ref ec_registers_group */ 2531 /** @brief Register group @ref ec_registers_group */
2511 uint32_t reg_group; 2532 uint16_t reg_group;
2512} __ABI_PACKED; 2533} __ABI_PACKED;
2513 2534
2514/** 2535/**
@@ -2525,8 +2546,10 @@ struct ec_err_reg_parity_desc {
2525 * |@ref EC_ERR_TYPE_OTHER_HW_UNCORRECTABLE |@ref bpmp_ec_misc_ids | 2546 * |@ref EC_ERR_TYPE_OTHER_HW_UNCORRECTABLE |@ref bpmp_ec_misc_ids |
2526 */ 2547 */
2527struct ec_err_simple_desc { 2548struct ec_err_simple_desc {
2549 /** @brief Bitmask of @ref bpmp_ec_desc_flags */
2550 uint16_t desc_flags;
2528 /** @brief Error source id. Id space depends on error type. */ 2551 /** @brief Error source id. Id space depends on error type. */
2529 uint32_t err_source_id; 2552 uint16_t err_source_id;
2530} __ABI_PACKED; 2553} __ABI_PACKED;
2531 2554
2532/** @brief Union of EC error descriptors */ 2555/** @brief Union of EC error descriptors */
@@ -2542,6 +2565,9 @@ struct cmd_ec_status_get_request {
2542 uint32_t ec_hsm_id; 2565 uint32_t ec_hsm_id;
2543} __ABI_PACKED; 2566} __ABI_PACKED;
2544 2567
2568/** EC status maximum number of descriptors */
2569#define EC_ERR_STATUS_DESC_MAX_NUM 4
2570
2545struct cmd_ec_status_get_response { 2571struct cmd_ec_status_get_response {
2546 /** @brief Target EC id (the same id received with request). */ 2572 /** @brief Target EC id (the same id received with request). */
2547 uint32_t ec_hsm_id; 2573 uint32_t ec_hsm_id;
@@ -2550,13 +2576,15 @@ struct cmd_ec_status_get_response {
2550 * 2576 *
2551 * If NO_ERROR flag is set, error_ fields should be ignored 2577 * If NO_ERROR flag is set, error_ fields should be ignored
2552 */ 2578 */
2553 uint32_t status_flags; 2579 uint32_t ec_status_flags;
2554 /** @brief Found EC error index. */ 2580 /** @brief Found EC error index. */
2555 uint32_t error_idx; 2581 uint32_t error_idx;
2556 /** @brief Found EC error type @ref bpmp_ec_err_type. */ 2582 /** @brief Found EC error type @ref bpmp_ec_err_type. */
2557 uint32_t error_type; 2583 uint32_t error_type;
2558 /** @brief Found EC error descriptor. */ 2584 /** @brief Number of returned EC error descriptors */
2559 union ec_err_desc error_desc; 2585 uint32_t error_desc_num;
2586 /** @brief EC error descriptors */
2587 union ec_err_desc error_descs[EC_ERR_STATUS_DESC_MAX_NUM];
2560} __ABI_PACKED; 2588} __ABI_PACKED;
2561 2589
2562/** 2590/**
@@ -2568,7 +2596,7 @@ struct cmd_ec_status_get_response {
2568 * 2596 *
2569 * |sub-command |payload | 2597 * |sub-command |payload |
2570 * |----------------------------|-----------------------| 2598 * |----------------------------|-----------------------|
2571 * |CMD_EC_STATUS_GET |- | 2599 * |@ref CMD_EC_STATUS_GET |ec_status_get |
2572 * 2600 *
2573 */ 2601 */
2574 2602
@@ -2590,7 +2618,7 @@ struct mrq_ec_request {
2590 * 2618 *
2591 * |sub-command |payload | 2619 * |sub-command |payload |
2592 * |----------------------------|------------------------| 2620 * |----------------------------|------------------------|
2593 * |CMD_EC_STATUS_GET |ec_status_get | 2621 * |@ref CMD_EC_STATUS_GET |ec_status_get |
2594 * 2622 *
2595 */ 2623 */
2596 2624