Comments (4)
Consider https://github.com/U-Boot-EFI/EFI_DT_FIXUP_PROTOCOL too, in the sense that a different client-requested tree may be used for fixups. EFI_DT_FIXUP_PROTOCOL can be implemented by FdtBusDxe, the real question is how to push the patching down into DT device drivers (another CB?)
from fdtbuspkg.
RiscVVirt/Library/VirtNorFlashPlatformLib/VirtNorFlashDeviceTreeLib.c is another good example where this would be useful functionaly.
from fdtbuspkg.
One major problem is that setprop (FdtClient->SetNodeProperty as called by VirtNorFlashPlatformLib) is destructive to the devicetree. Node offsets get changed, so every DtDevice becomes invalid.
So if an interface is added, it should not modify the in-use Devicetree. The updates could be pended, and stored as "command" /path/to/node" "property" "value". This would work well with something like EFI_DT_FIXUP_PROTOCOL, too, in that they could be applied to arbitrary (but similar enough) trees.
The DT should be installed in the ConfigurationTable at EFI_EVENT_GROUP_AFTER_READY_TO_BOOT. That is, a copy of the active DT with the updates applied.
from fdtbuspkg.
OnPlatformHasDeviceTree needs to register a EFI_EVENT_GROUP_AFTER_READY_TO_BOOT event. Also OnPlatformHasDeviceTree should be renamed to "OnDevicetreeExposedToOs" or similar.
from fdtbuspkg.
Related Issues (20)
- PciHostBridgeFdtDxe: support ResourceAssigned like PciHostBridgeDxe
- PciHostBridgeFdtDxe: factor out ECAM-specific portions into lib
- PciHostBridgeFdtDxe: Non-coherent DMA support HOT 2
- EFI_DT_IO_PROTOCOL_DMA_EXTRA: add EFI_DT_IO_DMA_NON_COHERENT HOT 1
- FdtBusDxe: check against DmaLib (coherent one)
- FdtBusDxe: support non-coherent devices, checking against DmaLib (non-coherent one)
- FdtBusDxe: implement dma-ranges translation.
- FdtBusDxe: Unit tests for existing DMA implementation HOT 1
- FdtBusDxe: report status code on DtIo failures
- edk2 patch UefiHandleParsingLib: make aware of DtIo/DtInterrupt protocol HOT 1
- FdtBusDxe: use barrier lib in DMA API
- FdtBusDxe: figure out DMA API cache coherence mgmt with system caches (MMIO-based)
- Upstream tech debt: HighMemDxe is not actually needed in OVMF RISC-V HOT 1
- Upstream tech debt: BaseRiscVMmuLib violates PI spec
- Improve DtIo->Lookup and DtDeviceCreate
- Document use of APRIORI to automatically load drivers for certain critical devices
- Add DtIo->GetRegType to match SetRegType HOT 1
- DtIoCopyReg improvs HOT 1
- DtIoPollReg improvs
- DMA API changes HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fdtbuspkg.