soc/amd/common/block/data_fabric: add data_fabric_write32

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I9c1ae03e9aec1dec45333e697060308cb6cbda4b
Reviewed-on: https://review.coreboot.org/c/coreboot/+/50620
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Felix Held 2021-02-13 01:08:14 +01:00
parent dba3fe7ad1
commit 45df9c1b91
2 changed files with 14 additions and 0 deletions

View File

@ -29,3 +29,16 @@ uint32_t data_fabric_read32(uint8_t function, uint16_t reg, uint8_t instance_id)
data_fabric_set_indirect_address(function, reg, instance_id);
return pci_read_config32(SOC_DF_F4_DEV, DF_FICAD_LO);
}
void data_fabric_write32(uint8_t function, uint16_t reg, uint8_t instance_id, uint32_t data)
{
if (instance_id == BROADCAST_FABRIC_ID) {
/* No bit masking required. Macros will apply mask to values. */
pci_write_config32(_SOC_DEV(DF_DEV, function), reg, data);
return;
}
/* non-broadcast data fabric accesses need to be done via indirect access */
data_fabric_set_indirect_address(function, reg, instance_id);
pci_write_config32(SOC_DF_F4_DEV, DF_FICAD_LO, data);
}

View File

@ -8,5 +8,6 @@
#define BROADCAST_FABRIC_ID 0xff
uint32_t data_fabric_read32(uint8_t function, uint16_t reg, uint8_t instance_id);
void data_fabric_write32(uint8_t function, uint16_t reg, uint8_t instance_id, uint32_t data);
#endif /* AMD_BLOCK_DATA_FABRIC_H */