Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
e166d04
Add OCC operations
Aug 26, 2021
fbd21d6
Beginning of istep 21.1
SergiiDmytruk Sep 4, 2021
a292066
Continue with start_pm_complex()
SergiiDmytruk Sep 7, 2021
6d0bb7a
Finish with setup_memory_boot()
SergiiDmytruk Sep 9, 2021
11ed04b
Implement special_wakeup_all(enable=false)
SergiiDmytruk Sep 9, 2021
08990d1
pm_corequad_init()
SergiiDmytruk Sep 9, 2021
e82f559
Implement pstate_gpe_init()
SergiiDmytruk Sep 10, 2021
5556398
Implement pm_pba_init()
SergiiDmytruk Sep 10, 2021
dcf3260
Initialize MCS bits in configuration vector
SergiiDmytruk Sep 11, 2021
6c99246
Implement wait_for_occ_checkpoint()
SergiiDmytruk Sep 11, 2021
6c498cc
Implement poll_occ()
SergiiDmytruk Sep 11, 2021
8a758f0
The bulk of sending commands to OCC
SergiiDmytruk Sep 11, 2021
ec9c079
Finish implementing communication with OCC
SergiiDmytruk Sep 12, 2021
8bb2627
Implement switching OCC to active state
SergiiDmytruk Sep 12, 2021
efeab6c
Initialize user power limit (no limit)
SergiiDmytruk Sep 12, 2021
2ba98cf
Start implementing send_occ_config_data()
SergiiDmytruk Sep 12, 2021
429affe
Add PCAP config data
SergiiDmytruk Sep 13, 2021
c794f08
Do not auto-start Pstate GPE protocol
SergiiDmytruk Sep 14, 2021
d1c99d8
Fix SCOM addrs in pba_slave_setup_runtime_phase()
SergiiDmytruk Sep 14, 2021
5ed5194
Fix bugs on constructing bootcode for OCC
SergiiDmytruk Sep 14, 2021
242647d
Simplify pba_slave_setup_runtime_phase()
SergiiDmytruk Sep 16, 2021
4e2483f
Fix stack usage errors
SergiiDmytruk Sep 16, 2021
9dff7d5
Fix PPC_PLACE() macros in pb_pba_init()
SergiiDmytruk Sep 16, 2021
3343f06
Simplify pm_pba_bar_config()
SergiiDmytruk Sep 16, 2021
ab549ba
Add pm_pss_init()
SergiiDmytruk Sep 16, 2021
0249f68
pstate_gpe_init() fixes
SergiiDmytruk Sep 16, 2021
25b2d10
Fix wait_for_occ_checkpoint()
SergiiDmytruk Sep 16, 2021
8c0de36
Comments and formatting
SergiiDmytruk Sep 16, 2021
3fd34b6
Bug fixes
SergiiDmytruk Sep 17, 2021
ecf16b1
Pass APSS, MEMCFG and SYSCFG data to OCC
SergiiDmytruk Sep 17, 2021
63af1aa
The rest of configuration data
SergiiDmytruk Sep 18, 2021
34336c9
Process OCC errors
SergiiDmytruk Sep 19, 2021
04cadc4
More error reporting
SergiiDmytruk Sep 19, 2021
441027e
Improve get_gpu_msg_data()
SergiiDmytruk Sep 19, 2021
b6346e1
istep 16.2
SergiiDmytruk Aug 14, 2021
eba8aca
Set error masks like Hostboot does
SergiiDmytruk Sep 23, 2021
4cbe4c2
Better logging
SergiiDmytruk Sep 23, 2021
903e6e8
Restart SGPE before starting OCC
SergiiDmytruk Sep 23, 2021
662e05b
Don't add istep 16.2 here
SergiiDmytruk Sep 24, 2021
f05f377
Remove SGPE reset code
SergiiDmytruk Sep 24, 2021
4258ac7
Start OCC in istep 15.4
SergiiDmytruk Sep 24, 2021
d43d380
Some code improvements
SergiiDmytruk Sep 24, 2021
d3c755d
Remove debug output
SergiiDmytruk Sep 24, 2021
1d7d73f
Add informational messages
SergiiDmytruk Sep 24, 2021
bd04816
Formatting corrections for occ.h/occ.c
SergiiDmytruk Sep 24, 2021
27bb8b7
A couple of corrections
SergiiDmytruk Sep 24, 2021
a547bf1
Remove makeStart405Instruction() and related
SergiiDmytruk Oct 11, 2021
57c1d80
Extract ops.h
SergiiDmytruk Oct 11, 2021
6b1e3ed
Move some OCC-specific code from homer.c to occ.c
SergiiDmytruk Oct 11, 2021
5589346
Update OP codes
SergiiDmytruk Oct 11, 2021
953dd8b
Fixes for sending wakeups
SergiiDmytruk Oct 11, 2021
8dc0379
Don't set HOMER BAR second time
SergiiDmytruk Oct 11, 2021
6f1f74b
Remove extra delay in check_ocb_mode()
SergiiDmytruk Oct 11, 2021
3eb1d82
Move ppc_* functions from occ.c to ops.h
SergiiDmytruk Oct 12, 2021
2d9b4b3
Simplify special_occ_wakeup_disable()
SergiiDmytruk Oct 12, 2021
85949d4
Comments and corrections for pm_pss_init()
SergiiDmytruk Oct 12, 2021
61ecb4c
Remove duplicated pba slave setup
SergiiDmytruk Oct 12, 2021
f02ea98
Fix deadcode in write_occ_cmd()
SergiiDmytruk Oct 12, 2021
3c6d38c
Various review corrections
SergiiDmytruk Oct 12, 2021
4cf184a
Compute SCOM values using PPC_* macros
SergiiDmytruk Oct 12, 2021
d579f61
Use correct PB freq in one more place
SergiiDmytruk Oct 12, 2021
f9c2637
Initialize PBA slaves earlier (on PBA reset)
SergiiDmytruk Oct 12, 2021
5182aed
Add pm_occ_fir_init()
SergiiDmytruk Oct 14, 2021
3bc8399
Add pm_pba_fir_init()
SergiiDmytruk Oct 14, 2021
6ec1403
Make SCOM writes match Hostboot
SergiiDmytruk Oct 14, 2021
b1915fa
Merge fir.c into occ.c
SergiiDmytruk Oct 19, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/include/cpu/power/mvpd.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
/* Single bucket within #V keyword of version 3 */
struct voltage_data
{
uint16_t freq;
uint16_t freq; // MHz
uint16_t vdd_voltage;
uint16_t idd_current;
uint16_t vcs_voltage;
Expand Down
18 changes: 18 additions & 0 deletions src/include/cpu/power/occ.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/* SPDX-License-Identifier: GPL-2.0-only */

#ifndef CPU_PPC64_OCC_H
#define CPU_PPC64_OCC_H

#include <stdint.h>

void writeOCCSRAM(uint32_t address, uint64_t *buffer, size_t data_length);
void readOCCSRAM(uint32_t address, uint64_t *buffer, size_t data_length);
void write_occ_command(uint64_t write_data);
void clear_occ_special_wakeups(uint64_t cores);
void special_occ_wakeup_disable(uint64_t cores);
void occ_start_from_mem(void);

void pm_occ_fir_init(void);
void pm_pba_fir_init(void);

#endif /* CPU_PPC64_OCC_H */
1 change: 1 addition & 0 deletions src/soc/ibm/power9/Makefile.inc
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,6 @@ ramstage-y += pstates.c
ramstage-y += xive.c
ramstage-y += int_vectors.S
ramstage-y += i2c.c
ramstage-y += occ.c

endif
Loading