Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758926AbbLBQVp (ORCPT ); Wed, 2 Dec 2015 11:21:45 -0500 Received: from down.free-electrons.com ([37.187.137.238]:43776 "EHLO mail.free-electrons.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1758792AbbLBQVm convert rfc822-to-8bit (ORCPT ); Wed, 2 Dec 2015 11:21:42 -0500 From: Gregory CLEMENT To: Marcin Wojtas Cc: Thomas Petazzoni , Andrew Lunn , Russell King - ARM Linux , Jason Cooper , Yair Mahalalel , netdev@vger.kernel.org, Simon Guinot , linux-kernel@vger.kernel.org, Evan Wang , Tomasz Nowicki , nadavh@marvell.com, Lior Amsalem , Grzegorz Jaszczyk , nitroshift@yahoo.com, "David S. Miller" , "linux-arm-kernel\@lists.infradead.org" , Sebastian Hesselbarth Subject: Re: [PATCH 00/13] mvneta Buffer Management and enhancements References: <1448178839-3541-1-git-send-email-mw@semihalf.com> <87lh9f4dbt.fsf@free-electrons.com> <874mg248jf.fsf@free-electrons.com> <87si3l2kx5.fsf@free-electrons.com> Date: Wed, 02 Dec 2015 17:21:39 +0100 In-Reply-To: <87si3l2kx5.fsf@free-electrons.com> (Gregory CLEMENT's message of "Wed, 02 Dec 2015 11:40:22 +0100") Message-ID: <87two0254c.fsf@free-electrons.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1999 Lines: 56 Hi, On mer., déc. 02 2015, Gregory CLEMENT 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? Gregory -- Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/