mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
dm: net: Fix DM for targets which use MANUAL_RELOC
All ethernet operation needs to be updated for architectures which requires MANUAL_RELOC. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
This commit is contained in:
parent
7bccc75a2b
commit
94067580a5
1 changed files with 28 additions and 0 deletions
28
net/eth.c
28
net/eth.c
|
@ -541,6 +541,34 @@ static int eth_post_probe(struct udevice *dev)
|
|||
struct eth_pdata *pdata = dev->platdata;
|
||||
unsigned char env_enetaddr[6];
|
||||
|
||||
#if defined(CONFIG_NEEDS_MANUAL_RELOC)
|
||||
struct eth_ops *ops = eth_get_ops(dev);
|
||||
static int reloc_done;
|
||||
|
||||
if (!reloc_done) {
|
||||
if (ops->start)
|
||||
ops->start += gd->reloc_off;
|
||||
if (ops->send)
|
||||
ops->send += gd->reloc_off;
|
||||
if (ops->recv)
|
||||
ops->recv += gd->reloc_off;
|
||||
if (ops->free_pkt)
|
||||
ops->free_pkt += gd->reloc_off;
|
||||
if (ops->stop)
|
||||
ops->stop += gd->reloc_off;
|
||||
#ifdef CONFIG_MCAST_TFTP
|
||||
if (ops->mcast)
|
||||
ops->mcast += gd->reloc_off;
|
||||
#endif
|
||||
if (ops->write_hwaddr)
|
||||
ops->write_hwaddr += gd->reloc_off;
|
||||
if (ops->read_rom_hwaddr)
|
||||
ops->read_rom_hwaddr += gd->reloc_off;
|
||||
|
||||
reloc_done++;
|
||||
}
|
||||
#endif
|
||||
|
||||
priv->state = ETH_STATE_INIT;
|
||||
|
||||
/* Check if the device has a MAC address in ROM */
|
||||
|
|
Loading…
Reference in a new issue