From owner-svn-src-all@freebsd.org Fri Apr 22 21:45:28 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 91410B18D4C; Fri, 22 Apr 2016 21:45:28 +0000 (UTC) (envelope-from rb743@hermes.cam.ac.uk) Received: from ppsw-32.csi.cam.ac.uk (ppsw-32.csi.cam.ac.uk [131.111.8.132]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5EFAB14AA; Fri, 22 Apr 2016 21:45:27 +0000 (UTC) (envelope-from rb743@hermes.cam.ac.uk) X-Cam-AntiVirus: no malware found X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/ Received: from xc1.bsdpad.com ([195.154.136.64]:38758) by ppsw-32.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.156]:587) with esmtpsa (LOGIN:rb743) (TLSv1:ECDHE-RSA-AES256-SHA:256) id 1atit5-000GI5-34 (Exim 4.86_36-e07b163) (return-path ); Fri, 22 Apr 2016 22:45:19 +0100 Date: Fri, 22 Apr 2016 22:30:08 +0100 From: Ruslan Bukin To: Marko Zec Cc: Ruslan Bukin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r298477 - in head/sys: conf riscv/riscv Message-ID: <20160422213008.GA77800@bsdpad.com> References: <201604221615.u3MGFxCM088374@repo.freebsd.org> <20160422233137.7f37bb47@x23> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20160422233137.7f37bb47@x23> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: "R. Bukin" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Apr 2016 21:45:28 -0000 On Fri, Apr 22, 2016 at 11:31:37PM +0200, Marko Zec wrote: > On Fri, 22 Apr 2016 16:15:59 +0000 > Ruslan Bukin wrote: > > > Author: br > > Date: Fri Apr 22 16:15:58 2016 > > New Revision: 298477 > > URL: https://svnweb.freebsd.org/changeset/base/298477 > > > > Log: > > Clear the DDR memory. This should be done by bootloaders, > > but they have no such feature yet. > > > > This fixes operation on Rocket Core and lowRISC. > > > > Modified: > > head/sys/conf/options.riscv > > head/sys/riscv/riscv/locore.S > > > > Modified: head/sys/conf/options.riscv > > ============================================================================== > > --- head/sys/conf/options.riscv Fri Apr 22 15:12:05 > > 2016 (r298476) +++ head/sys/conf/options.riscv Fri Apr > > 22 16:15:58 2016 (r298477) @@ -2,3 +2,4 @@ > > > > RISCV opt_global.h > > VFP opt_global.h > > +DDR_CLEAR_SIZE opt_global.h > > > > Modified: head/sys/riscv/riscv/locore.S > > ============================================================================== > > --- head/sys/riscv/riscv/locore.S Fri Apr 22 15:12:05 > > 2016 (r298476) +++ head/sys/riscv/riscv/locore.S Fri > > Apr 22 16:15:58 2016 (r298477) @@ -126,6 +126,17 @@ _start: > > csrr a0, mhartid > > bnez a0, mpentry > > > > +#if defined(DDR_CLEAR_SIZE) > > + /* Clear DDR memory */ > > + la t0, _end > > + li t1, DDR_CLEAR_SIZE > > +1: > > + sd zero, 0(t0) > > + addi t0, t0, 8 > > + bltu t0, t1, 1b > > Usually _end appears to be (double) word aligned, but that happens out > of pure luck, since compilers do not provide firm guarantees about > _end's alignment (at least gcc doesn't, as far as I know). > > So depending on which kind of RV this code would run, sometimes it may > end up doing a lot of traps emulating unaligned access in software, or > worse... > > Hence it would't hurt to check for _end's alignment first and do a few > byte-by-byte bzero()ing if needed, before proceeding a dword pace. > > You right. Thanks. Anyway I think this commit is wrong in general as we usually require to clear BSS only. I was playing with buggy version of hardware and clearing all the DRR was helpful to get booted. I will check again soon on default hardware and hopefully will get this reverted. thanks Ruslan