summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorPeng Fan <peng.fan@nxp.com>2020-05-01 17:08:37 +0300
committerStefano Babic <sbabic@denx.de>2020-05-10 14:21:34 +0300
commit3b26d527d355c00eb9a0b2b0c11536e4e62c10aa (patch)
treebe94a78a3c030d44153a55a69bad876c990200fd /drivers/net
parent0bd3d911df12816ab8e32d9245449aeca484b539 (diff)
downloadu-boot-3b26d527d355c00eb9a0b2b0c11536e4e62c10aa.tar.xz
net: fec: add fuse check
Add fuse check for fec. If the fuse indicates the module will not work in the SoC, let's fail the initialization. Signed-off-by: Peng Fan <peng.fan@nxp.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/fec_mxc.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
index 345d37be4e..3046305cfb 100644
--- a/drivers/net/fec_mxc.c
+++ b/drivers/net/fec_mxc.c
@@ -1204,6 +1204,13 @@ int fecmxc_initialize_multi(bd_t *bd, int dev_id, int phy_id, uint32_t addr)
#endif
int ret;
+ if (CONFIG_IS_ENABLED(IMX_MODULE_FUSE)) {
+ if (enet_fused((ulong)addr)) {
+ printf("SoC fuse indicates Ethernet@0x%x is unavailable.\n", addr);
+ return -ENODEV;
+ }
+ }
+
#ifdef CONFIG_FEC_MXC_MDIO_BASE
/*
* The i.MX28 has two ethernet interfaces, but they are not equal.
@@ -1342,6 +1349,13 @@ static int fecmxc_probe(struct udevice *dev)
uint32_t start;
int ret;
+ if (CONFIG_IS_ENABLED(IMX_MODULE_FUSE)) {
+ if (enet_fused((ulong)priv->eth)) {
+ printf("SoC fuse indicates Ethernet@0x%lx is unavailable.\n", (ulong)priv->eth);
+ return -ENODEV;
+ }
+ }
+
if (IS_ENABLED(CONFIG_IMX8)) {
ret = clk_get_by_name(dev, "ipg", &priv->ipg_clk);
if (ret < 0) {