From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51081) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z33Dl-0001ZN-5p for qemu-devel@nongnu.org; Thu, 11 Jun 2015 10:12:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z33Dg-0000YR-PH for qemu-devel@nongnu.org; Thu, 11 Jun 2015 10:12:40 -0400 Received: from mx1.redhat.com ([209.132.183.28]:42665) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z33Dg-0000YH-Kg for qemu-devel@nongnu.org; Thu, 11 Jun 2015 10:12:36 -0400 Message-ID: <55799751.1030904@redhat.com> Date: Thu, 11 Jun 2015 17:12:33 +0300 From: Marcel Apfelbaum MIME-Version: 1.0 References: <1434029828-31954-1-git-send-email-marcel@redhat.com> <20150611135841.GA7998@morn.localdomain> In-Reply-To: <20150611135841.GA7998@morn.localdomain> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH V2] pci: fixes to allow booting from extra root pci buses. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin O'Connor Cc: seabios@seabios.org, lersek@redhat.com, qemu-devel@nongnu.org, mst@redhat.com On 06/11/2015 04:58 PM, Kevin O'Connor wrote: > On Thu, Jun 11, 2015 at 04:37:08PM +0300, Marcel Apfelbaum wrote: >> The fixes solves the following issue: >> The PXB device exposes a new pci root bridge with the >> fw path: /pci-root@4/..., in which 4 is the root bus number. >> Before this patch the fw path was wrongly computed: >> /pci-root@1/pci@i0cf8/... >> Fix the above issues: Correct the bus number and remove the >> extra host bridge description. > > Why is that wrong? The previous path looks correct to me. The prev path includes both the extra root bridge and *then* the usual ho= st bridge. /pci-root@1/pci@i0cf8/ ... ^ new ^ regular ^ devices Since the new pci root bridge (and bus) is on "paralel" with the regular = one. it is not correct to add it to the path. The architecture is: //devices... /extra root bridge/devices... /extra root bridge/devices... And not /extra root bridge///devices Thanks, Marcel > >> The IEEE Std 1275-1994: >> >> IEEE Standard for Boot (Initialization Configuration) >> Firmware: Core Requirements and Practices >> 3.2.1.1 Node names >> Each node in the device tree is identified by a node name >> using the following notation: >> driver-name@unit-address:device-arguments >> >> The driver name field is a sequence of between one and 31 >> letters [...]. By convention, this name includes the name o= f >> the device=E2=80=99s manufacturer and the device=E2=80=99s = model name separated by >> a =E2=80=9C,=E2=80=9D. >> >> The unit address field is the text representation of the >> physical address of the device within the address space >> defined by its parent node. The form of the text >> representation is bus-dependent. > > Note the "physical address" part in the above. Your patch changes the > "pci-root@" syntax to use a logical address instead of a physical > address. That is, unless I've missed something, SeaBIOS today uses a > physical address (the n'th root bus) and the patch would change it to > use a logical address. > > One of the goals of using an "openfirmware" like address was so that > they would be stable across boots (the same mechanism is also used > with coreboot). Using a physical address is key for this, because > simply adding or removing a PCI device could cause the logical PCI > bridge enumeration to change - and that would mess up the bootorder > list if it was based on logical addresses. > > -Kevin >