diff --git a/arch/arm/boards/scb9328/scb9328.c b/arch/arm/boards/scb9328/scb9328.c index e781393..3c04996 100644 --- a/arch/arm/boards/scb9328/scb9328.c +++ b/arch/arm/boards/scb9328/scb9328.c @@ -55,6 +55,7 @@ .iobase = 0x16000000, .iodata = 0x16000004, .buswidth = DM9000_WIDTH_16, + .srom = 1; }; static struct device_d dm9000_dev = { diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c index 2062c66..ab06735 100644 --- a/drivers/net/dm9000.c +++ b/drivers/net/dm9000.c @@ -498,8 +498,9 @@ edev->send = dm9000_eth_send; edev->recv = dm9000_eth_rx; edev->halt = dm9000_eth_halt; - edev->get_ethaddr = dm9000_get_ethaddr; edev->set_ethaddr = dm9000_set_ethaddr; + if (pdata->srom) + edev->get_ethaddr = dm9000_get_ethaddr; /* RESET device */ dm9000_reset(priv); diff --git a/include/dm9000.h b/include/dm9000.h index 3cc5235..b4a04b1 100644 --- a/include/dm9000.h +++ b/include/dm9000.h @@ -10,6 +10,7 @@ unsigned long iobase; unsigned long iodata; int buswidth; + int srom; }; #endif /* __DM9000_H__ */