blob: 169cde614707424944c3fdde30448cc18c4ca126 [file] [log] [blame]
Angel Pons32abdd62020-04-05 15:47:03 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Aamir Bohra3ee54bb2018-10-17 11:55:01 +05302
3#include <console/console.h>
4#include <intelblocks/p2sb.h>
5
6void p2sb_soc_get_sb_mask(uint32_t *ep_mask, size_t count)
7{
8 uint32_t mask;
9
10 if (count != P2SB_EP_MASK_MAX_REG) {
11 printk(BIOS_ERR, "Unable to program EPMASK registers\n");
12 return;
13 }
14
15 /* Remove the host accessing right to PSF register range.
16 * Set p2sb PCI offset EPMASK5 [29, 28, 27, 26] to disable Sideband
17 * access for PCI Root Bridge.
18 */
19 mask = (1 << 29) | (1 << 28) | (1 << 27) | (1 << 26);
20
21 ep_mask[P2SB_EP_MASK_5_REG] = mask;
22
23 /*
24 * Set p2sb PCI offset EPMASK7 [31, 30] to disable Sideband
25 * access for Broadcast and Multicast.
26 */
27 mask = (1 << 31) | (1 << 30);
28
29 ep_mask[P2SB_EP_MASK_7_REG] = mask;
30}