[U-Boot] [PATCH V2 2/3] net: fec: do not access reserved register for i.MX6UL
Peng Fan
b51431 at freescale.com
Tue Sep 1 02:32:59 CEST 2015
Hi Stefano,
On Mon, Aug 31, 2015 at 07:14:06PM +0200, Stefano Babic wrote:
>Hi Peng,
>
>On 23/08/2015 17:43, Stefano Babic wrote:
>> On 12/08/2015 11:40, Peng Fan wrote:
>>> The MIB RAM and FIFO receive start register does not exist on
>>> i.MX6UL. Accessing these register will cause enet not work well.
>>>
>>> Signed-off-by: Peng Fan <Peng.Fan at freescale.com>
>>> Signed-off-by: Fugang Duan <B38611 at freescale.com>
>>> Cc: Joe Hershberger <joe.hershberger at ni.com>
>>> Cc: Stefano Babic <sbabic at denx.de>
>>> ---
>>>
>>> Changes v2:
>>> Using runtime check, but not hardcoding "#ifdef".
>>> This patch depends on the runtime checking patch:
>>> https://patchwork.ozlabs.org/patch/505621/.
>>>
>>> drivers/net/fec_mxc.c | 14 +++++++++-----
>>> 1 file changed, 9 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
>>> index c5dcbbb..bff5fd1 100644
>>> --- a/drivers/net/fec_mxc.c
>>> +++ b/drivers/net/fec_mxc.c
>>> @@ -17,6 +17,7 @@
>>>
>>> #include <asm/arch/clock.h>
>>> #include <asm/arch/imx-regs.h>
>>> +#include <asm/imx-common/sys_proto.h>
>>> #include <asm/io.h>
>>> #include <asm/errno.h>
>>> #include <linux/compiler.h>
>>> @@ -551,12 +552,15 @@ static int fec_init(struct eth_device *dev, bd_t* bd)
>>> writel(0x00000000, &fec->eth->gaddr2);
>>>
>>>
>>> - /* clear MIB RAM */
>>> - for (i = mib_ptr; i <= mib_ptr + 0xfc; i += 4)
>>> - writel(0, i);
>>> + /* Do not access reserved register for i.MX6UL */
>>> + if (!is_cpu_type(MXC_CPU_MX6UL)) {
>>> + /* clear MIB RAM */
>>> + for (i = mib_ptr; i <= mib_ptr + 0xfc; i += 4)
>>> + writel(0, i);
>>>
>>> - /* FIFO receive start register */
>>> - writel(0x520, &fec->eth->r_fstart);
>>> + /* FIFO receive start register */
>>> + writel(0x520, &fec->eth->r_fstart);
>>> + }
>>>
>>> /* size and address of each buffer */
>>> writel(FEC_MAX_PKT_SIZE, &fec->eth->emrbr);
>>>
>>
>
>Patch is already applied - however, I have found that this break build
>for vf610 boards (they have not a get_cpu_rev()). You can check with the
>current u-boot-imx.
>
Sorry, I checked all i.MXes, but missed vf610.
>Can you take a look, please ?
I worked a simple patch: https://patchwork.ozlabs.org/patch/512669/
Add an empty function to avoid build errors. Current we do not have
drivers to check vf610 cpu types, later if we need saying
"is_cpu_type(VF610)", we can add more stuff to the function get_cpu_rev
for vf610.
Regards,
Peng.
>
>Thanks,
>Stefano Babic
>
>
>--
>=====================================================================
>DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
>HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
>Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
>=====================================================================
--
More information about the U-Boot
mailing list