Package: pwrmgr_pkg

Description

Copyright lowRISC contributors.
Licensed under the Apache License, Version 2.0, see LICENSE for details.
SPDX-License-Identifier: Apache-2.0

Power Manager Package

Constants

Name Type Value Description
ALWAYS_ON_DOMAIN int 0
PowerDomains int 2 this needs to be a topgen populated number, or from topcfg?
TotalWakeWidth int pwrmgr_reg_pkg::NumWkups + 2 Abort and fall through are added
pwr_ast_rsp_t pwr_ast_rsp_t undefined default value of pwr_ast_rsp (for dangling ports)
PWR_AST_RSP_SYNC_DEFAULT pwr_ast_rsp_t
PWR_RST_RSP_DEFAULT pwr_rst_rsp_t default value (for dangling ports)
pwr_otp_rsp_t pwr_otp_rsp_t undefined default value (for dangling ports)
pwr_lc_rsp_t pwr_lc_rsp_t undefined default value (for dangling ports)
pwr_flash_t pwr_flash_t undefined
pwr_cpu_t pwr_cpu_t undefined default value (for dangling ports)
WAKEUPS_DEFAULT int '0 default value (for dangling ports)
RSTREQS_DEFAULT int '0

Types

Name Type Description
pwr_ast_req_t struct packed {
logic main_pd_n;
logic pwr_clamp_env;
logic pwr_clamp;
logic slow_clk_en;
logic core_clk_en;
logic io_clk_en;
logic usb_clk_en;
}
// The following structs should eventually be relocated to other modules. typedef enum logic [1:0] { DiffValid = 2'b10, DiffInvalid = 2'b01 } pwrmgr_diff_e; pwrmgr to ast
pwr_ast_rsp_t struct packed {
logic slow_clk_val;
logic core_clk_val;
logic io_clk_val;
logic usb_clk_val;
logic main_pok;
}
pwr_rst_req_t struct packed {
logic [PowerDomains-1:0] rst_lc_req;
logic [PowerDomains-1:0] rst_sys_req;
logic [pwrmgr_reg_pkg::NumRstReqs:0] rstreqs;
reset_cause_e reset_cause;
}
pwrmgr to rstmgr
pwr_rst_rsp_t struct packed {
logic [PowerDomains-1:0] rst_lc_src_n;
logic [PowerDomains-1:0] rst_sys_src_n;
}
rstmgr to pwrmgr
pwr_clk_rsp_t struct packed {
logic clk_status;
}
clkmgr to pwrmgr
pwr_otp_req_t struct packed {
logic otp_init;
}
pwrmgr to otp
pwr_otp_rsp_t struct packed {
logic otp_done;
logic otp_idle;
}
otp to pwrmgr
pwr_lc_req_t struct packed {
logic lc_init;
}
pwrmgr to lifecycle
pwr_lc_rsp_t struct packed {
logic lc_done;
logic lc_idle;
}
lifecycle to pwrmgr
pwr_flash_t struct packed {
logic flash_idle;
}
pwr_cpu_t struct packed {
logic core_sleeping;
}
processor to pwrmgr
pwr_peri_t struct packed {
logic [pwrmgr_reg_pkg::NumWkups-1:0] wakeups;
logic [pwrmgr_reg_pkg::NumRstReqs:0] rstreqs;
}
peripherals to pwrmgr
pwrup_cause_e enum logic [1:0] {
Por = 2'h0,
Wake = 2'h1,
Reset = 2'h2 }
power-up causes
low_power_hint_e enum logic {
None = 1'b0,
LowPower = 1'b1 }
low power hints
fast_pwr_state_e enum logic [4:0] {
FastPwrStateLowPower,
FastPwrStateEnableClocks,
FastPwrStateReleaseLcRst,
FastPwrStateOtpInit,
FastPwrStateLcInit,
FastPwrStateStrap,
FastPwrStateAckPwrUp,
FastPwrStateRomCheck,
FastPwrStateActive,
FastPwrStateDisClks,
FastPwrStateFallThrough,
FastPwrStateNvmIdleChk,
FastPwrStateLowPowerPrep,
FastPwrStateNvmShutDown,
FastPwrStateResetPrep,
FastPwrStateReqPwrDn }
fast fsm state enum
slow_pwr_state_e enum logic [3:0] {
SlowPwrStateReset,
SlowPwrStateLowPower,
SlowPwrStateMainPowerOn,
SlowPwrStatePwrClampOff,
SlowPwrStateClocksOn,
SlowPwrStateReqPwrUp,
SlowPwrStateIdle,
SlowPwrStateAckPwrDn,
SlowPwrStateClocksOff,
SlowPwrStatePwrClampOn,
SlowPwrStateMainPowerOff }
slow fsm state enum