I am not sure the open source community is aligned on what mails go to “discuss” mailing list. CC to “devel” mailing list.
Please read the PI spec on how the IO space is converted from different states.
The initial non-exist IO space is created based on the IO address width in the CPU INFO HOB.
You cannot add a non-exist IO space using GCD services.
Thanks,
Ray
From: Wasim Khan <wasim.khan@nxp.com>
Sent: Friday, April 3, 2020 12:25 PM
To: discuss@edk2.groups.io; Ni, Ray <ray.ni@intel.com>; Bi, Dandan <dandan.bi@intel.com>; Gao, Liming <liming.gao@intel.com>; Wu, Hao A <hao.a.wu@intel.com>; leif.lindholm@linaro.org
Subject: Re: Query: Add GCD IO Space Map
Hi ,
Any clue on this ?
From:
discuss@edk2.groups.io <discuss@edk2.groups.io> on behalf of Wasim Khan via groups.io <wasim.khan=nxp.com@groups.io>
Sent: Friday, April 3, 2020 1:18:13 AM
To: discuss@edk2.groups.io <discuss@edk2.groups.io>;
ruiyu.ni@intel.com <ruiyu.ni@intel.com>;
dandan.bi@intel.com <dandan.bi@intel.com>;
liming.gao@intel.com <liming.gao@intel.com>;
hao.a.wu@intel.com <hao.a.wu@intel.com>
Subject: [edk2-discuss] Query: Add GCD IO Space Map
Hi All,
The Initial GCD I/O Space Map printed from DxeMain is :
GCD:Initial GCD I/O Space Map
GCDIoType Range
========== =================================
NonExist 0000000000000000-00000000000FFFFF
I require some IO memory (for PciHostBridgeDxe) , i need NonExist IO chuck from 0x90_00010000 - 0x90_0001ffff , for which I tried BuildResourceDescriptorHob() from PEI Phase
BuildResourceDescriptorHob (
EFI_RESOURCE_IO,
ResourceAttributes,
0x9000010000,
0x10000
);
And gDS->AddIoSpace (EfiGcdIoTypeIo, 0x9000010000, 0x10000) from a DXE driver . But in both case GCD AddIoSpace fails with Status as Unsupported.
GCD:AddIoSpace(Base=0000009000010000,Length=0000000000010000)
GcdIoType = I/O
Status = Unsupported
GCDIoType Range
========== =================================
NonExist 0000000000000000-00000000000FFFFF
Can someone help that how can I add a NonExist GCDIoType memory ?
Also, why does the initial GCD I/O space map shows small range as compared with GCD Memory Space Map?
GCD:Initial GCD Memory Space Map
GCDMemType Range Capabilities Attributes
========== ================================= ================ ================
NonExist 0000000000000000-00000FFFFFFFFFFF 0000000000000000 0000000000000000
GCD:Initial GCD I/O Space Map
GCDIoType Range
========== =================================
NonExist 0000000000000000-00000000000FFFFF
Regards,
Wasim