public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Ojeda Leon, Nicolas" <ncoleon@amazon.de>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"kraxel@redhat.com" <kraxel@redhat.com>
Cc: "Gupta, Atul" <atugup@amazon.de>, "Graf (AWS),
	Alexander" <graf@amazon.de>
Subject: Re: [edk2-devel] [PATCH v4 7/8] PciHostBridgeDxe: Extend service to get base addresses before allocation
Date: Mon, 14 Feb 2022 10:28:06 +0000	[thread overview]
Message-ID: <211194415e9047938f7d5177fada4d76@EX13D49EUC003.ant.amazon.com> (raw)
In-Reply-To: <20220214101810.xiievg2xi5ttgcam@sirius.home.kraxel.org>

>> > Hmm, so you are hiding the #define here to avoid updating Protocol/PciHostBridgeResourceAllocation.h ...
>> >
>> > I suspect if this can't be implemented in the pci enumerator alone there is just no way around actually extending uefi protocols.  But it's also not fully clear to me why you need this new "partial" state.
>> > Wouldn't you know either nothing or both base + size for a resource?
>> >
>>
>> Yes you are right, the current status is we have nothing and after the 
>> resources are allocated we have base and size. However, the allocation 
>> happens after CreateResourceMap is called, this function is the one 
>> that iterates over all resources of all devices under a root bridges 
>> and places them in a root bridge relative offset to then calculate the 
>> length of the resources required for that specific root bridge. For 
>> the pre-populated BARs I retrieve the Base Address of the Root Bridge 
>> before placing the resources at the root bridge relative offset so 
>> that I can translate the BAR address (set by the host) into an offset.
>> That's why I created this patch to retrieve only the base address 
>> before the root bridge resource map is created, submitted and 
>> allocated.
>
>Hmm, nasty init order issue.  No good idea offhand.
>
>Have you tried to exclude the pre-populated BARs from the host bridge windows communicated to the edk2 pci core?  The pci enumerator should not create overlapping pci bar assignment then.  But it might very well be that this only shifts the problem to another place ...
>
>take care,
>  Gerd

Haven't tried that but we are working on a new approach that do not touches the protocol at all but instead profits from the retry loop already in place and, after an allocation round, verifies if the pre-populated BARs are in the correct place, otherwise tries again. Similar to what is currently done when the allocation fails due to not enough space. Also we are creating a routine that "adjusts" the resources by analyzing pre-populated BAR situation to decide which device to reject before trying again.

Expect a new revision soon.

Best regards,

Nicolas





Amazon Development Center Germany GmbH
Krausenstr. 38
10117 Berlin
Geschaeftsfuehrung: Christian Schlaeger, Jonathan Weiss
Eingetragen am Amtsgericht Charlottenburg unter HRB 149173 B
Sitz: Berlin
Ust-ID: DE 289 237 879




  reply	other threads:[~2022-02-14 10:28 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-03 20:56 [PATCH v4 0/8] Handling of multiple PCI host bridges specified Ojeda Leon, Nicolas
2022-02-03 20:56 ` [PATCH v4 1/8] OvmfPkg/Library: Create base HardwareInfoLib for PCI Host Bridges Ojeda Leon, Nicolas
2022-02-03 20:56 ` [PATCH v4 2/8] Ovmf/HardwareInfoLib: Create Pei lib to parse directly from fw-cfg Ojeda Leon, Nicolas
2022-02-03 20:56 ` [PATCH v4 3/8] Ovmf/HardwareInfoLib: Add Dxe lib to dynamically parse heterogenous data Ojeda Leon, Nicolas
2022-02-03 20:56 ` [PATCH v4 4/8] Ovmf/PlatformPei: Use host-provided GPA end if available Ojeda Leon, Nicolas
2022-02-03 20:56 ` [PATCH v4 5/8] OvmfPkg/PciHostBridgeUtilityLib: Initialize RootBridges apertures with spec Ojeda Leon, Nicolas
2022-02-04  7:39   ` Gerd Hoffmann
2022-02-03 20:56 ` [PATCH v4 6/8] MdeModulePkg, OvmfPkg: Add Pcd token for PCI pre-populated BARs Ojeda Leon, Nicolas
2022-02-03 20:56 ` [PATCH v4 7/8] PciHostBridgeDxe: Extend service to get base addresses before allocation Ojeda Leon, Nicolas
2022-02-04  8:36   ` Gerd Hoffmann
2022-02-04  9:17     ` Ojeda Leon, Nicolas
2022-02-14 10:18       ` Gerd Hoffmann
2022-02-14 10:28         ` Ojeda Leon, Nicolas [this message]
2022-02-04  9:42     ` Ojeda Leon, Nicolas
2022-02-03 20:56 ` [PATCH v4 8/8] MdeModulePkg/PciBusDxe: Handling of pre-populated PCI BARs Ojeda Leon, Nicolas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=211194415e9047938f7d5177fada4d76@EX13D49EUC003.ant.amazon.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox