summaryrefslogtreecommitdiff
path: root/src/soc/intel/snowridge/chip.h
blob: 27d792a7beb8ad17b9823d00b75b1027dd2c0d89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/* SPDX-License-Identifier: GPL-2.0-only */

#ifndef _SOC_SNOWRIDGE_CHIP_H_
#define _SOC_SNOWRIDGE_CHIP_H_

#include <fsp/soc_binding.h>
#include <intelblocks/cfg.h>
#include <stdint.h>

/**
 * @brief Total number of domains. SNR needs two additional domains to handle
 * additional root bus in stack 2 (Intel Dynamic Load Balancer) and 7 (UBox1).
 */
#define MAX_DOMAIN (BL_MAX_SOCKET * BL_MAX_LOGIC_IIO_STACK + 2)

struct snr_domain {
	uint8_t enabled;
	uint8_t personality;
	uint8_t bus_base;
	uint8_t bus_limit;
	uint16_t io_base;
	uint16_t io_limit;
	uint32_t mem32_base;
	uint32_t mem32_limit;
	uint64_t mem64_base;
	uint64_t mem64_limit;
	struct device *dev;
};

struct soc_intel_snowridge_config {
	struct soc_intel_common_config common_soc_config;

	uint32_t tcc_offset; /**< Needed by `common/block/cpulib.c`. */
	uint8_t eist_enable;

	struct snr_domain domain[MAX_DOMAIN];
};

typedef struct soc_intel_snowridge_config config_t;

#endif // _SOC_SNOWRIDGE_CHIP_H_