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:
@@ -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);
|
data_fabric_set_indirect_address(function, reg, instance_id);
|
||||||
return pci_read_config32(SOC_DF_F4_DEV, DF_FICAD_LO);
|
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);
|
||||||
|
}
|
||||||
|
@@ -8,5 +8,6 @@
|
|||||||
#define BROADCAST_FABRIC_ID 0xff
|
#define BROADCAST_FABRIC_ID 0xff
|
||||||
|
|
||||||
uint32_t data_fabric_read32(uint8_t function, uint16_t reg, uint8_t instance_id);
|
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 */
|
#endif /* AMD_BLOCK_DATA_FABRIC_H */
|
||||||
|
Reference in New Issue
Block a user