From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58551) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YfTfo-0008Rd-Hz for qemu-devel@nongnu.org; Tue, 07 Apr 2015 09:36:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YfTfk-0001Wb-Fc for qemu-devel@nongnu.org; Tue, 07 Apr 2015 09:36:12 -0400 Received: from mx1.redhat.com ([209.132.183.28]:42178) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YfTfk-0001WW-9r for qemu-devel@nongnu.org; Tue, 07 Apr 2015 09:36:08 -0400 Date: Tue, 7 Apr 2015 15:35:57 +0200 From: Igor Mammedov Message-ID: <20150407153557.3b2a5713@igors-macbook-pro.local> In-Reply-To: References: <1428055432-12120-1-git-send-email-zhaoshenglong@huawei.com> <1428346052.2973.26.camel@deneb.redhat.com> <55234469.9060404@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v4 00/20] Generate ACPI v5.1 tables and expose it to guest over fw_cfg on ARM List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: hangaohuai@huawei.com, "Michael S. Tsirkin" , Alexander Spyridakis , Mark Salter , Claudio Fontana , QEMU Developers , "Huangpeng (Peter)" , Hanjun Guo , Shannon Zhao , Paolo Bonzini , Laszlo Ersek , Christoffer Dall , Shannon Zhao On Tue, 7 Apr 2015 13:07:31 +0100 Peter Maydell wrote: > On 7 April 2015 at 03:43, Shannon Zhao > wrote: > > The ACPI table entry: > > Method (_CBA, 0, NotSerialized) // _CBA: Configuration > > Base Address { > > Return (0x3F000000) > > } > > Method (_CRS, 0, NotSerialized) // _CRS: Current > > Resource Settings { > > Name (RBUF, ResourceTemplate () > > { > > WordBusNumber (ResourceProducer, MinFixed, > > MaxFixed, PosDecode, 0x0000, // Granularity > > 0x0000, // Range Minimum > > 0x000F, // Range Maximum > > 0x0000, // Translation Offset > > 0x0010, // Length > > ,, ) > > DWordMemory (ResourceProducer, PosDecode, > > MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, // > > Granularity 0x10000000, // Range Minimum > > 0x3EFF0000, // Range Maximum > > 0x00000000, // Translation Offset > > 0x2EFF0000, // Length > > In all the other sections, the Length entry is (rangemax - rangemin) > + 1, but in this one it is not, which suggests an error. Probably your > rangemax here is wrong, since 0x3eff0000 is actually the first address > in the IO window. > > (If ACPI is effectively describing the length of the range in > two separate places, it's a shame it doesn't sanity check that > they both agree...) According to spec Range Minimum & Range Maximum are lowest/highest possible base address and have nothing to do with range size. In x86 target that insanity was since the beginning, I guest it works because no OS tries to use anything other than Range Minimum. For example If guest has mapped region at Range Maximum, then access to it would go beyond on real memory region mapped in QEMU. In general Range Minimum & Range Maximum should be the same unless HW side covers access up to Range Maximum + Length. > > -- PMM >