soc/amd/*/data_fabric: Move register offsets to soc
Morgana/Glinda have a different register mapping for data fabric access, although the registers themselves are mostly compatible. The register layouts defined by each soc capture the differences and the common code can use those. Move the register offsets to soc headers and update the offsets for morgana/glinda per morgana ppr #57396, rev 1.52 and glinda ppr #57254, rev 1.51 Signed-off-by: Fred Reitberger <reitbergerfred@gmail.com> Change-Id: I9e5e7c85f99a9afa873764ade9734831fb5cfe69 Reviewed-on: https://review.coreboot.org/c/coreboot/+/69074 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
This commit is contained in:
parent
437d011621
commit
2890841e6f
|
@ -5,8 +5,15 @@
|
||||||
|
|
||||||
#include <types.h>
|
#include <types.h>
|
||||||
|
|
||||||
/* SoC-specific bits in D18F0_MMIO_CTRL0 */
|
/* D18F0 - Fabric Configuration registers */
|
||||||
#define DF_MMIO_NP BIT(16)
|
#define D18F0_MMIO_BASE0 0x200
|
||||||
|
#define D18F0_MMIO_LIMIT0 0x204
|
||||||
|
#define D18F0_MMIO_SHIFT 16
|
||||||
|
#define D18F0_MMIO_CTRL0 0x208
|
||||||
|
|
||||||
|
#define DF_FICAA_BIOS 0x5C
|
||||||
|
#define DF_FICAD_LO 0x98
|
||||||
|
#define DF_FICAD_HI 0x9C
|
||||||
|
|
||||||
#define IOMS0_FABRIC_ID 10
|
#define IOMS0_FABRIC_ID 10
|
||||||
|
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
||||||
|
|
||||||
#ifndef AMD_BLOCK_DATA_FABRIC_DEF_H
|
|
||||||
#define AMD_BLOCK_DATA_FABRIC_DEF_H
|
|
||||||
|
|
||||||
#define DF_FICAA_BIOS 0x5C
|
|
||||||
#define DF_FICAD_LO 0x98
|
|
||||||
#define DF_FICAD_HI 0x9C
|
|
||||||
|
|
||||||
#define DF_IND_CFG_INST_ACC_EN (1 << 0)
|
|
||||||
#define DF_IND_CFG_ACC_REG_SHIFT 2
|
|
||||||
#define DF_IND_CFG_ACC_REG_MASK (0x1ff << DF_IND_CFG_ACC_REG_SHIFT)
|
|
||||||
#define DF_IND_CFG_ACC_FUN_SHIFT 11
|
|
||||||
#define DF_IND_CFG_ACC_FUN_MASK (0x7 << DF_IND_CFG_ACC_FUN_SHIFT)
|
|
||||||
#define DF_IND_CFG_64B_EN_SHIFT 14
|
|
||||||
#define DF_IND_CFG_64B_EN (0x1 << DF_IND_CFG_64B_EN_SHIFT)
|
|
||||||
#define DF_IND_CFG_INST_ID_SHIFT 16
|
|
||||||
#define DF_IND_CFG_INST_ID_MASK (0xff << DF_IND_CFG_INST_ID_SHIFT)
|
|
||||||
|
|
||||||
#endif /* AMD_BLOCK_DATA_FABRIC_DEF_H */
|
|
|
@ -9,7 +9,6 @@
|
||||||
#include <soc/data_fabric.h>
|
#include <soc/data_fabric.h>
|
||||||
#include <soc/pci_devs.h>
|
#include <soc/pci_devs.h>
|
||||||
#include <types.h>
|
#include <types.h>
|
||||||
#include "data_fabric_def.h"
|
|
||||||
|
|
||||||
static void data_fabric_set_indirect_address(uint8_t func, uint16_t reg, uint8_t instance_id)
|
static void data_fabric_set_indirect_address(uint8_t func, uint16_t reg, uint8_t instance_id)
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,21 +5,12 @@
|
||||||
|
|
||||||
#include <amdblocks/pci_devs.h>
|
#include <amdblocks/pci_devs.h>
|
||||||
#include <device/pci_ops.h>
|
#include <device/pci_ops.h>
|
||||||
|
#include <soc/data_fabric.h>
|
||||||
#include <soc/pci_devs.h>
|
#include <soc/pci_devs.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#define BROADCAST_FABRIC_ID 0xff
|
#define BROADCAST_FABRIC_ID 0xff
|
||||||
|
|
||||||
/* D18F0 - Fabric Configuration registers */
|
|
||||||
#define D18F0_MMIO_BASE0 0x200
|
|
||||||
#define D18F0_MMIO_LIMIT0 0x204
|
|
||||||
#define D18F0_MMIO_SHIFT 16
|
|
||||||
#define D18F0_MMIO_CTRL0 0x208
|
|
||||||
/* The MMIO_NP bit is SoC-specific */
|
|
||||||
#define DF_MMIO_DST_FABRIC_ID_SHIFT 4
|
|
||||||
#define DF_MMIO_WE BIT(1)
|
|
||||||
#define DF_MMIO_RE BIT(0)
|
|
||||||
|
|
||||||
/* The number of data fabric MMIO registers is SoC-specific */
|
/* The number of data fabric MMIO registers is SoC-specific */
|
||||||
#define NB_MMIO_BASE(reg) ((reg) * 4 * sizeof(uint32_t) + D18F0_MMIO_BASE0)
|
#define NB_MMIO_BASE(reg) ((reg) * 4 * sizeof(uint32_t) + D18F0_MMIO_BASE0)
|
||||||
#define NB_MMIO_LIMIT(reg) ((reg) * 4 * sizeof(uint32_t) + D18F0_MMIO_LIMIT0)
|
#define NB_MMIO_LIMIT(reg) ((reg) * 4 * sizeof(uint32_t) + D18F0_MMIO_LIMIT0)
|
||||||
|
|
|
@ -54,7 +54,7 @@ config SOC_SPECIFIC_OPTIONS
|
||||||
select SOC_AMD_COMMON_BLOCK_APOB # TODO: Check if this is still correct
|
select SOC_AMD_COMMON_BLOCK_APOB # TODO: Check if this is still correct
|
||||||
select SOC_AMD_COMMON_BLOCK_APOB_HASH # TODO: Check if this is still correct
|
select SOC_AMD_COMMON_BLOCK_APOB_HASH # TODO: Check if this is still correct
|
||||||
select SOC_AMD_COMMON_BLOCK_BANKED_GPIOS # TODO: Check if this is still correct
|
select SOC_AMD_COMMON_BLOCK_BANKED_GPIOS # TODO: Check if this is still correct
|
||||||
select SOC_AMD_COMMON_BLOCK_DATA_FABRIC # TODO: Check if this is still correct
|
select SOC_AMD_COMMON_BLOCK_DATA_FABRIC
|
||||||
select SOC_AMD_COMMON_BLOCK_EMMC # TODO: Check if this is still correct
|
select SOC_AMD_COMMON_BLOCK_EMMC # TODO: Check if this is still correct
|
||||||
select SOC_AMD_COMMON_BLOCK_ESPI_EXTENDED_DECODE_RANGES # TODO: Check if this is still correct
|
select SOC_AMD_COMMON_BLOCK_ESPI_EXTENDED_DECODE_RANGES # TODO: Check if this is still correct
|
||||||
select SOC_AMD_COMMON_BLOCK_GRAPHICS # TODO: Check if this is still correct
|
select SOC_AMD_COMMON_BLOCK_GRAPHICS # TODO: Check if this is still correct
|
||||||
|
|
|
@ -1,14 +1,19 @@
|
||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
/* TODO: Update for Glinda */
|
|
||||||
|
|
||||||
#ifndef AMD_GLINDA_DATA_FABRIC_H
|
#ifndef AMD_GLINDA_DATA_FABRIC_H
|
||||||
#define AMD_GLINDA_DATA_FABRIC_H
|
#define AMD_GLINDA_DATA_FABRIC_H
|
||||||
|
|
||||||
#include <types.h>
|
#include <types.h>
|
||||||
|
|
||||||
/* SoC-specific bits in D18F0_MMIO_CTRL0 */
|
/* D18F0 - Fabric Configuration registers */
|
||||||
#define DF_MMIO_NP BIT(3)
|
#define D18F0_MMIO_BASE0 0xD80
|
||||||
|
#define D18F0_MMIO_LIMIT0 0xD84
|
||||||
|
#define D18F0_MMIO_SHIFT 16
|
||||||
|
#define D18F0_MMIO_CTRL0 0xD88
|
||||||
|
|
||||||
|
#define DF_FICAA_BIOS 0x8C
|
||||||
|
#define DF_FICAD_LO 0xB8
|
||||||
|
#define DF_FICAD_HI 0xBC
|
||||||
|
|
||||||
#define IOMS0_FABRIC_ID 15
|
#define IOMS0_FABRIC_ID 15
|
||||||
|
|
||||||
|
|
|
@ -5,8 +5,15 @@
|
||||||
|
|
||||||
#include <types.h>
|
#include <types.h>
|
||||||
|
|
||||||
/* SoC-specific bits in D18F0_MMIO_CTRL0 */
|
/* D18F0 - Fabric Configuration registers */
|
||||||
#define DF_MMIO_NP BIT(16)
|
#define D18F0_MMIO_BASE0 0x200
|
||||||
|
#define D18F0_MMIO_LIMIT0 0x204
|
||||||
|
#define D18F0_MMIO_SHIFT 16
|
||||||
|
#define D18F0_MMIO_CTRL0 0x208
|
||||||
|
|
||||||
|
#define DF_FICAA_BIOS 0x5C
|
||||||
|
#define DF_FICAD_LO 0x98
|
||||||
|
#define DF_FICAD_HI 0x9C
|
||||||
|
|
||||||
#define IOMS0_FABRIC_ID 9
|
#define IOMS0_FABRIC_ID 9
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,7 @@ config SOC_SPECIFIC_OPTIONS
|
||||||
select SOC_AMD_COMMON_BLOCK_APOB # TODO: Check if this is still correct
|
select SOC_AMD_COMMON_BLOCK_APOB # TODO: Check if this is still correct
|
||||||
select SOC_AMD_COMMON_BLOCK_APOB_HASH # TODO: Check if this is still correct
|
select SOC_AMD_COMMON_BLOCK_APOB_HASH # TODO: Check if this is still correct
|
||||||
select SOC_AMD_COMMON_BLOCK_BANKED_GPIOS # TODO: Check if this is still correct
|
select SOC_AMD_COMMON_BLOCK_BANKED_GPIOS # TODO: Check if this is still correct
|
||||||
select SOC_AMD_COMMON_BLOCK_DATA_FABRIC # TODO: Check if this is still correct
|
select SOC_AMD_COMMON_BLOCK_DATA_FABRIC
|
||||||
select SOC_AMD_COMMON_BLOCK_EMMC # TODO: Check if this is still correct
|
select SOC_AMD_COMMON_BLOCK_EMMC # TODO: Check if this is still correct
|
||||||
select SOC_AMD_COMMON_BLOCK_ESPI_EXTENDED_DECODE_RANGES # TODO: Check if this is still correct
|
select SOC_AMD_COMMON_BLOCK_ESPI_EXTENDED_DECODE_RANGES # TODO: Check if this is still correct
|
||||||
select SOC_AMD_COMMON_BLOCK_GRAPHICS # TODO: Check if this is still correct
|
select SOC_AMD_COMMON_BLOCK_GRAPHICS # TODO: Check if this is still correct
|
||||||
|
|
|
@ -1,14 +1,19 @@
|
||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
/* TODO: Update for Morgana */
|
|
||||||
|
|
||||||
#ifndef AMD_MORGANA_DATA_FABRIC_H
|
#ifndef AMD_MORGANA_DATA_FABRIC_H
|
||||||
#define AMD_MORGANA_DATA_FABRIC_H
|
#define AMD_MORGANA_DATA_FABRIC_H
|
||||||
|
|
||||||
#include <types.h>
|
#include <types.h>
|
||||||
|
|
||||||
/* SoC-specific bits in D18F0_MMIO_CTRL0 */
|
/* D18F0 - Fabric Configuration registers */
|
||||||
#define DF_MMIO_NP BIT(3)
|
#define D18F0_MMIO_BASE0 0xD80
|
||||||
|
#define D18F0_MMIO_LIMIT0 0xD84
|
||||||
|
#define D18F0_MMIO_SHIFT 16
|
||||||
|
#define D18F0_MMIO_CTRL0 0xD88
|
||||||
|
|
||||||
|
#define DF_FICAA_BIOS 0x8C
|
||||||
|
#define DF_FICAD_LO 0xB8
|
||||||
|
#define DF_FICAD_HI 0xBC
|
||||||
|
|
||||||
#define IOMS0_FABRIC_ID 14
|
#define IOMS0_FABRIC_ID 14
|
||||||
|
|
||||||
|
|
|
@ -6,9 +6,14 @@
|
||||||
#include <types.h>
|
#include <types.h>
|
||||||
|
|
||||||
/* D18F0 - Fabric Configuration registers */
|
/* D18F0 - Fabric Configuration registers */
|
||||||
|
#define D18F0_MMIO_BASE0 0x200
|
||||||
|
#define D18F0_MMIO_LIMIT0 0x204
|
||||||
|
#define D18F0_MMIO_SHIFT 16
|
||||||
|
#define D18F0_MMIO_CTRL0 0x208
|
||||||
|
|
||||||
/* SoC-specific bits in D18F0_MMIO_CTRL0 */
|
#define DF_FICAA_BIOS 0x5C
|
||||||
#define DF_MMIO_NP BIT(12)
|
#define DF_FICAD_LO 0x98
|
||||||
|
#define DF_FICAD_HI 0x9C
|
||||||
|
|
||||||
#define IOMS0_FABRIC_ID 9
|
#define IOMS0_FABRIC_ID 9
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue