diff options
| author | Sivaram Nair <sivaramn@nvidia.com> | 2018-08-17 14:13:18 -0400 |
|---|---|---|
| committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-08-17 21:52:13 -0400 |
| commit | 00377745f2a0b8a777c5d4e1a44623b4e314880a (patch) | |
| tree | f1feeb98d7dc9bbbf0cb5301fa05706759b53ecd /include/soc | |
| parent | d3fb5f60edd25717947375f4e4671bc1dc0ba729 (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.h | 58 |
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 | */ |
| 2479 | struct ec_err_fmon_desc { | 2494 | struct 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 | */ |
| 2493 | struct ec_err_vmon_desc { | 2510 | struct 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 | */ |
| 2507 | struct ec_err_reg_parity_desc { | 2526 | struct 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 | */ |
| 2527 | struct ec_err_simple_desc { | 2548 | struct 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 | |||
| 2545 | struct cmd_ec_status_get_response { | 2571 | struct 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 | ||
