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