[U-Boot] [PATCH] MIPS: Implement ethernet halt for au1x00

Implement ethernet halt() by putting MAC0 in reset. If we do not do this, we will get memory corruption when ethernet frames are received during early OS boot.
Signed-off-by: Thomas Lange thomas@corelatus.se --- cpu/mips/au1x00_eth.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/cpu/mips/au1x00_eth.c b/cpu/mips/au1x00_eth.c index 6272a3a..5074997 100644 --- a/cpu/mips/au1x00_eth.c +++ b/cpu/mips/au1x00_eth.c @@ -276,6 +276,10 @@ static int au1x00_init(struct eth_device* dev, bd_t * bd){ }
static void au1x00_halt(struct eth_device* dev){ + volatile u32 *macen = (volatile u32*)MAC0_ENABLE; + + /* Put MAC0 in reset */ + *macen = 0; }
int au1x00_enet_initialize(bd_t *bis){

Thomas Lange wrote:
Implement ethernet halt() by putting MAC0 in reset. If we do not do this, we will get memory corruption when ethernet frames are received during early OS boot.
Signed-off-by: Thomas Lange thomas@corelatus.se
cpu/mips/au1x00_eth.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/cpu/mips/au1x00_eth.c b/cpu/mips/au1x00_eth.c index 6272a3a..5074997 100644 --- a/cpu/mips/au1x00_eth.c +++ b/cpu/mips/au1x00_eth.c @@ -276,6 +276,10 @@ static int au1x00_init(struct eth_device* dev, bd_t * bd){ }
static void au1x00_halt(struct eth_device* dev){
- volatile u32 *macen = (volatile u32*)MAC0_ENABLE;
- /* Put MAC0 in reset */
- *macen = 0;
}
int au1x00_enet_initialize(bd_t *bis){
Acked-by: Shinya Kuribayashi skuribay@pobox.com
Wolfgang-san,
could you please pick up this patch directly? Thanks,
Shinya
participants (2)
-
Shinya Kuribayashi
-
Thomas Lange