[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAPv3WKdHu5O2KEHYpWBHbkA2hHd_QCUK12EBggMDsa8J8D5U2Q@mail.gmail.com>
Date: Wed, 2 Dec 2015 23:15:23 +0100
From: Marcin Wojtas <mw@...ihalf.com>
To: Gregory CLEMENT <gregory.clement@...e-electrons.com>
Cc: Thomas Petazzoni <thomas.petazzoni@...e-electrons.com>,
Andrew Lunn <andrew@...n.ch>,
Russell King - ARM Linux <linux@....linux.org.uk>,
Jason Cooper <jason@...edaemon.net>,
Yair Mahalalel <myair@...vell.com>, netdev@...r.kernel.org,
Simon Guinot <simon.guinot@...uanux.org>,
linux-kernel@...r.kernel.org, Evan Wang <xswang@...vell.com>,
Tomasz Nowicki <tn@...ihalf.com>, nadavh@...vell.com,
Lior Amsalem <alior@...vell.com>,
Grzegorz Jaszczyk <jaz@...ihalf.com>, nitroshift@...oo.com,
"David S. Miller" <davem@...emloft.net>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
Sebastian Hesselbarth <sebastian.hesselbarth@...il.com>
Subject: Re: [PATCH 00/13] mvneta Buffer Management and enhancements
Hi Gregory,
2015-12-02 17:21 GMT+01:00 Gregory CLEMENT <gregory.clement@...e-electrons.com>:
> Hi,
>
> On mer., déc. 02 2015, Gregory CLEMENT <gregory.clement@...e-electrons.com> wrote:
>
>>>
>>> So far the issue may have been not noticed, because in every IO driver
>>> using mvebu_mbus_dram_info for configuring MBUS windows, there's
>>> following substraction:
>>> (cs->size - 1) & 0xfffff000
>>>
>>> I think there are two options:
>>> 1. Change size type to u64.
>>
>> If we switch to u64 we really must pay attention to be sure that it
>> won't be used to be written in a register, but the regsiter remains
>> 32bits.
>>
>>> 2. Change condition in mvebu_mbus_get_dram_win_info to:
>>> if (cs->base <= phyaddr && phyaddr <= (cs->base + cs->size -1))
>>
>> I think it would be the best solution.
>
> So I applied the following patch:
> --- a/drivers/bus/mvebu-mbus.c
> +++ b/drivers/bus/mvebu-mbus.c
> @@ -964,7 +964,7 @@ int mvebu_mbus_get_dram_win_info(phys_addr_t phyaddr, u8 *target, u8 *attr)
> for (i = 0; i < dram->num_cs; i++) {
> const struct mbus_dram_window *cs = dram->cs + i;
>
> - if (cs->base <= phyaddr && phyaddr <= (cs->base + cs->size)) {
> + if (cs->base <= phyaddr && phyaddr <= (cs->base + cs->size - 1)) {
> *target = dram->mbus_dram_target_id;
> *attr = cs->mbus_attr;
> return 0;
>
> I didn't get any errors during boot related to the BM. However I did not
> manage to use an ethernet interface. The udhcpc never managed to get an
> IP and if I set the IP manually I could not ping.
>
> But on Armada 388 GP I didn't have any issue.
>
> Do you have some idea about waht I could check?
>
I replaced 2GB with 8GB DIMM and after that, on the same kernel/board,
I can't ping either. Very strange, but as I can reproduce the issue,
don't debug it, I will.
Best regards,
Marcin
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists