Shannon,

On 12/01/15 03:02, Shannon Zhao wrote:
> 
> On 2015/12/1 2:12, Laszlo Ersek wrote:
>> Thank you -- this looks better. Unfortunately the
>> SetMemorySpaceAttributes() question still has to be addressed, and we're
>> still discussing with Ard which way to go about that. Once we have an
>> agreement, I'll spell out the further requirements for this.
>>
>> The "do it all in PEI with HOBs" idea is out, now we're trying to decide
>> if (a) we should do it in VirtFdtDxe, and update the APRIORI DXE block
>> in the FDF file so that CpuDxe gets dispatched before VirtFdtDxe, or (b)
>> if we should move this code to a separate DXE driver that depends on the
>> CPU architectural protocol installed by CpuDxe. Whatever the agreement,
>> this patch will need to be further updated.
>>
>> I ask for your patience with this -- it's messier than I would like. I
>> hope your NUMA development can proceed even until we converge with the
>> help of these WIP patches.
>>
> It's fine since it doesn't block the NUMA patches. :)
> 
>> I'll admit that my secret (well, not so secret :)) agenda with this
>> series is to pull more people into edk2 development from the QEMU
>> community. Albeit somewhat messy, this feature isn't very large or
>> complex, so I find it appropriate to "train" you with it -- if you want
>> to play along, that is. :)
> 
> Laszlo, I think this is very cool. I'm interested in this kind of
> "training". :)
> 

Okay, so we seem to have reached an agreement with Ard in the other thread:

http://thread.gmane.org/gmane.comp.bios.edk2.devel/5054/focus=5309

Here's what I suggest for v3:

* Patch 1 is good, you can include it without any changes (you have my R-b).

* Patch 2 should implement what you are doing now (with my comments in
this thread addressed), but it should introduce that functionality as a
separate, new driver.

Namely, as first step please recursively copy the directory
"ArmVirtPkg/VirtFdtDxe" to "ArmVirtPkg/HighMemDxe". Please also replace
all occurrences of the "VirtFdtDxe" string in source code and in file
names within the copy.

Second, please generate a new FILE_GUID with the "uuidgen" utility for
the new "ArmVirtPkg/HighMemDxe/HighMemDxe.inf" file.

Third, add the subject functionality to HighMemDxe. (Addressing my
comments too.)

Fourth, remove everything else from HighMemDxe; so that its sole
responsibility remains processing the higher-than-lowest /memory nodes
in the DTB. This removal will make a number of libraries, PCDs, protcols
etc superfluous, so please remove the relevant #include directives and
[LibraryClasses] entries.

Fifth, in "ArmVirtPkg/HighMemDxe/HighMemDxe.inf", the TRUE expression
under [DepEx] should be replaced with gEfiCpuArchProtocolGuid.

Sixth, the new driver's INF file should be referenced in
"ArmVirtQemu.dsc" and "ArmVirtQemu.fdf". In the latter, it should *not*
be added to APRIORI DXE.

In short, patch #2 should add a small new driver that does nothing but
looks for memory nodes in the DTB, installs the ranges, and sets their
actual caching attributes to WB (which depends on the CPU arch protocol
internally).

Thanks
Laszlo
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to