Received: by 2002:a25:7ec1:0:0:0:0:0 with SMTP id z184csp4153125ybc; Tue, 26 Nov 2019 04:46:09 -0800 (PST) X-Google-Smtp-Source: APXvYqxDg25CmEZf3l7RbWnFhG66e8o+Fgwxk5jQRrckQms7lV1D4UthJnDtzwPngGdaCZ88NO4F X-Received: by 2002:aa7:c2cb:: with SMTP id m11mr1363345edp.89.1574772369730; Tue, 26 Nov 2019 04:46:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1574772369; cv=none; d=google.com; s=arc-20160816; b=eUIZoKsL4E7Bwtzr/U6WRutIO85ogovgnFFx5hh1tFfSqM+siGaZB3uxXzR/ElAm23 YwVfqNy3317Pwva+Pgy1wTDsfRkQZWxanWIqLJSKSvQvekeTp7zDgd9e0DphApxaxPSB YV16mnUJBmL//1zrnnj3Moolui9UO1Od9azd4ly3DLf27OhbF/MIByHfI1fb73OD3WQv C5OMlIul15vub3VRhQtnyq1DHdO/W/nUf51WmsqmBabwlmgP6GQISbBqFjGApOI6XH49 XfQuJD4nzOaz9OvVrOR+A3tKC+OUGaTEnHY8eIHJ2LRVGJYnyaLJUY+RpMrhKNzYM4tG Ho/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=OiXIPkAa+jo3JWZau1B2Ey3v2wblVpCTuGCnmx5s9Rg=; b=qLW+yZwU2el5kGRNSPAmFeZm9kLeVukVwb2nWtpUeaynrhcMyYvaRvRti5QJl5Ife+ gArD0V2M/YkKhp9FrwmYiSgJBs1Elu1Zmkr2nu+6GpkWT5e7rSuOWaLQPB/ejyL1TSHs IYIWhZPzPx4wvidDAZwyocmcll7lwRvL3TT4/0SlW68JbSIwp6yn5TEbHmD/REBFAc+x zT2n92doxDSrtMelUTjD7+/5uxt7pk304d3GuhHulggpfx/f8stMsd9uJM93Fx/juPnx uw1MqV6Mz1Ie2V2oiPvYY/XcJ9rP35+5paXF4L8kcQM8hiHohXR6vKk+HREAH7Ccp96A JQ/A== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@xenosoft.de header.s=strato-dkim-0002 header.b="kPsfkTV/"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i3si7939799ede.328.2019.11.26.04.45.44; Tue, 26 Nov 2019 04:46:09 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@xenosoft.de header.s=strato-dkim-0002 header.b="kPsfkTV/"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727674AbfKZL5R (ORCPT + 99 others); Tue, 26 Nov 2019 06:57:17 -0500 Received: from mo4-p02-ob.smtp.rzone.de ([85.215.255.84]:15743 "EHLO mo4-p02-ob.smtp.rzone.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727545AbfKZL5R (ORCPT ); Tue, 26 Nov 2019 06:57:17 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1574769432; s=strato-dkim-0002; d=xenosoft.de; h=In-Reply-To:Date:Message-ID:From:References:Cc:To:Subject: X-RZG-CLASS-ID:X-RZG-AUTH:From:Subject:Sender; bh=OiXIPkAa+jo3JWZau1B2Ey3v2wblVpCTuGCnmx5s9Rg=; b=kPsfkTV/+0nWDnwAhqKgkB9HK7WKUvDz4aZCvLDQhkd89WXqsTVz8zf0LaN7f1WyFT LQgUbMZ+nTEsXS2BWy2uVy2cR5ieujjwtmgyKWdZ7ftK5aOqKLQn3LTO7ioufK8QZ3yB vx8XCJwE5HcGCzf4oMHyDNu8JEAClm4vNP9Uj0dr4j0DxCaQFcIjbprzYgzRNnuEL18a 3LBfbJzzwnLS2g2vuWq7zfNg9xA7/IXjN5WyEL0e6dj8TjiHT2f0hpfB0Fdtv+mrj9uJ xWcx8DSTvSlrZe5mshEZcUGqUZ14MK/hsKnb8NCN3oEgpoMWtjc8KDlL8KIOhpBCVLyp +QxQ== X-RZG-AUTH: ":L2QefEenb+UdBJSdRCXu93KJ1bmSGnhMdmOod1DhGM4l4Hio94KKxRySfLxnHfJ+Dkjp5DdBJSrwuuqxvPhSIh0PhkEvMsMre1rbZ/xz+jsR" X-RZG-CLASS-ID: mo00 Received: from [IPv6:2a02:8109:89c0:ebfc:14bb:b5af:17db:dc1] by smtp.strato.de (RZmta 45.0.2 AUTH) with ESMTPSA id x0678cvAQBv38le (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (curve secp521r1 with 521 ECDH bits, eq. 15360 bits RSA)) (Client did not present a certificate); Tue, 26 Nov 2019 12:57:03 +0100 (CET) Subject: Re: Bug 205201 - Booting halts if Dawicontrol DC-2976 UW SCSI board installed, unless RAM size limited to 3500M To: Mike Rapoport , Christoph Hellwig Cc: Robin Murphy , linux-arch@vger.kernel.org, darren@stevens-zone.net, mad skateman , Benjamin Herrenschmidt , linux-kernel@vger.kernel.org, linux-mm@kvack.org, iommu@lists.linux-foundation.org, Rob Herring , paulus@samba.org, rtd2@xtra.co.nz, "contact@a-eon.com" , linuxppc-dev , nsaenzjulienne@suse.de References: <20191121072943.GA24024@lst.de> <6eec5c42-019c-a988-fc2a-cb804194683d@xenosoft.de> <20191121180226.GA3852@lst.de> <2fde79cf-875f-94e6-4a1b-f73ebb2e2c32@xenosoft.de> <20191125073923.GA30168@lst.de> <20191125093159.GA23118@linux.ibm.com> From: Christian Zigotzky Message-ID: Date: Tue, 26 Nov 2019 12:57:02 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.1 MIME-Version: 1.0 In-Reply-To: <20191125093159.GA23118@linux.ibm.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: de-DE Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 25 November 2019 at 10:32 am, Mike Rapoport wrote: > On Mon, Nov 25, 2019 at 08:39:23AM +0100, Christoph Hellwig wrote: >> On Sat, Nov 23, 2019 at 12:42:27PM +0100, Christian Zigotzky wrote: >>> Hello Christoph, >>> >>> Please find attached the dmesg of your Git kernel. >> Thanks. It looks like on your platform the swiotlb buffer isn't >> actually addressable based on the bus dma mask limit, which is rather >> interesting. swiotlb_init uses memblock_alloc_low to allocate the >> buffer, and I'll need some help from Mike and the powerpc maintainers >> to figure out how that select where to allocate the buffer from, and >> how we can move it to a lower address. My gut feeling would be to try >> to do what arm64 does and define a new ARCH_LOW_ADDRESS_LIMIT, preferably >> without needing too much arch specific magic. > Presuming the problem is relevant for all CoreNet boards something like > this could work: > > diff --git a/arch/powerpc/include/asm/dma.h b/arch/powerpc/include/asm/dma.h > index 1b4f0254868f..7c6cfeeaff52 100644 > --- a/arch/powerpc/include/asm/dma.h > +++ b/arch/powerpc/include/asm/dma.h > @@ -347,5 +347,11 @@ extern int isa_dma_bridge_buggy; > #define isa_dma_bridge_buggy (0) > #endif > > +#ifdef CONFIG_CORENET_GENERIC > +extern phys_addr_t ppc_dma_phys_limit; > +#define ARCH_LOW_ADDRESS_LIMIT (ppc_dma_phys_limit - 1) > +#endif > + > + > #endif /* __KERNEL__ */ > #endif /* _ASM_POWERPC_DMA_H */ > diff --git a/arch/powerpc/platforms/85xx/common.c b/arch/powerpc/platforms/85xx/common.c > index fe0606439b5a..346b436b6d3f 100644 > --- a/arch/powerpc/platforms/85xx/common.c > +++ b/arch/powerpc/platforms/85xx/common.c > @@ -126,3 +126,7 @@ void __init mpc85xx_qe_par_io_init(void) > } > } > #endif > + > +#ifdef CONFIG_CORENET_GENERIC > +phys_addr_t ppc_dma_phys_limit = 0xffffffffUL; > +#endif > diff --git a/arch/powerpc/platforms/85xx/corenet_generic.c b/arch/powerpc/platforms/85xx/corenet_generic.c > index 7ee2c6628f64..673bcbdc7c75 100644 > --- a/arch/powerpc/platforms/85xx/corenet_generic.c > +++ b/arch/powerpc/platforms/85xx/corenet_generic.c > @@ -64,7 +64,7 @@ void __init corenet_gen_setup_arch(void) > mpc85xx_smp_init(); > > swiotlb_detect_4g(); > - > + ppc_dma_phys_limit = 0x0fffffffUL; > pr_info("%s board\n", ppc_md.name); > > mpc85xx_qe_init(); Hello Mike, My PCI TV card works also with your patch! Before I had to add "#include " to the file "arch/powerpc/platforms/85xx/corenet_generic.c" because of the following error: ------   CC      arch/powerpc/platforms/85xx/corenet_generic.o   CC      ipc/util.o   CC      ipc/msgutil.o arch/powerpc/platforms/85xx/corenet_generic.c: In function ‘corenet_gen_setup_arch’: arch/powerpc/platforms/85xx/corenet_generic.c:77:2: error: ‘ppc_dma_phys_limit’ undeclared (first use in this function); did you mean ‘cpu_to_phys_id’?   ppc_dma_phys_limit = 0x0fffffffUL;   ^~~~~~~~~~~~~~~~~~   cpu_to_phys_id arch/powerpc/platforms/85xx/corenet_generic.c:77:2: note: each undeclared identifier is reported only once for each function it appears in scripts/Makefile.build:265: recipe for target 'arch/powerpc/platforms/85xx/corenet_generic.o' failed make[3]: *** [arch/powerpc/platforms/85xx/corenet_generic.o] Error 1 scripts/Makefile.build:509: recipe for target 'arch/powerpc/platforms/85xx' failed make[2]: *** [arch/powerpc/platforms/85xx] Error 2 scripts/Makefile.build:509: recipe for target 'arch/powerpc/platforms' failed make[1]: *** [arch/powerpc/platforms] Error 2 Makefile:1652: recipe for target 'arch/powerpc' failed make: *** [arch/powerpc] Error 2 ------ After that I was able to compile the latest Git kernel with your patch. Thanks, Christian