[U-Boot] [PATCH] net: davinci_emac: don't teardown inactive rx channel

Jeroen Hofstee jeroen at myspectrum.nl
Mon Jun 8 11:05:15 CEST 2015


+cc (forget them somehow)

On 07-06-15 17:30, Jeroen Hofstee wrote:
> Tearing down an unitialized rx channel causes a pending address hole
> event to be queued. When booting linux it will report this pending
> as something like "Address Hole seen by USB_OTG  at address 57fff584",
> since u-boot did not handled this interrupt. Prevent that by not
> tearing down the rx channel, when not receiving.
>
> Signed-off-by: Jeroen Hofstee <jeroen at myspectrum.nl>
> ---
> To replicate this:
>   - ROMcode must not use the emac
>   - U-Boot must use the emac
>   - only on cold start
> ---
>   drivers/net/davinci_emac.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c
> index 427ad3e..0444795 100644
> --- a/drivers/net/davinci_emac.c
> +++ b/drivers/net/davinci_emac.c
> @@ -598,7 +598,8 @@ static void davinci_eth_close(struct eth_device *dev)
>   	debug_emac("+ emac_close\n");
>   
>   	davinci_eth_ch_teardown(EMAC_CH_TX);	/* TX Channel teardown */
> -	davinci_eth_ch_teardown(EMAC_CH_RX);	/* RX Channel teardown */
> +	if (readl(&adap_emac->RXCONTROL) & 1)
> +		davinci_eth_ch_teardown(EMAC_CH_RX); /* RX Channel teardown */
>   
>   	/* Reset EMAC module and disable interrupts in wrapper */
>   	writel(1, &adap_emac->SOFTRESET);



More information about the U-Boot mailing list