Giter Club home page Giter Club logo

Comments (4)

andreiw avatar andreiw commented on September 18, 2024

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.

andreiw avatar andreiw commented on September 18, 2024

RiscVVirt/Library/VirtNorFlashPlatformLib/VirtNorFlashDeviceTreeLib.c is another good example where this would be useful functionaly.

from fdtbuspkg.

andreiw avatar andreiw commented on September 18, 2024

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.

andreiw avatar andreiw commented on September 18, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.