summaryrefslogtreecommitdiff
path: root/src/soc
diff options
context:
space:
mode:
authorMario Scheithauer <mario.scheithauer@siemens.com>2022-10-07 11:27:56 +0200
committerFelix Singer <felixsinger@posteo.net>2022-10-12 13:17:24 +0000
commit84dbace1ea49131d1647a8be994ed8d6776f03c5 (patch)
tree8db14e59dd4c46c5ba45a518ea21f48ec5593a00 /src/soc
parentd8fd2deda1e66acd0a6162bbea1d8d1ff524f055 (diff)
soc/intel/ehl: Fix incorrect access to MAC_MDIO_DATA register
Function 'setbits16' performs an 'OR' operation with the new data and the origin register entry. This can lead to an incorrect value in the register which can then lead to issues. Change-Id: I0212420be770e2ffdabebbfaf5dfbf8d99d25915 Signed-off-by: Mario Scheithauer <mario.scheithauer@siemens.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/68214 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Werner Zeh <werner.zeh@siemens.com> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com> Reviewed-by: Angel Pons <th3fanbus@gmail.com> Reviewed-by: Felix Singer <felixsinger@posteo.net>
Diffstat (limited to 'src/soc')
-rw-r--r--src/soc/intel/elkhartlake/tsn_gbe.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/soc/intel/elkhartlake/tsn_gbe.c b/src/soc/intel/elkhartlake/tsn_gbe.c
index 49ce4da95b..3e08897c5c 100644
--- a/src/soc/intel/elkhartlake/tsn_gbe.c
+++ b/src/soc/intel/elkhartlake/tsn_gbe.c
@@ -72,7 +72,7 @@ void tsn_mdio_write(void *base, uint8_t phy_adr, uint8_t reg_adr, uint16_t data)
{
enum cb_err status;
- setbits16(base + TSN_MAC_MDIO_DATA, data);
+ write16(base + TSN_MAC_MDIO_DATA, data);
clrsetbits32(base + TSN_MAC_MDIO_ADR, TSN_MAC_MDIO_ADR_MASK,
TSN_MAC_PHYAD(phy_adr) | TSN_MAC_REGAD(reg_adr)
| TSN_MAC_CLK_TRAIL_4 | TSN_MAC_CSR_CLK_DIV_62