Code Monkey home page Code Monkey logo

cfu's Introduction

Component Firmware Update

Component Firmware Update (CFU) is a mechanism developed by the Microsoft Devices team which allows Original Equipment Manufacturers (OEM’s) and Independent Hardware Vendors (IHV’s) a reliable, robust against power interruptions and authenticated mechanism for updating firmware for devices that have shipped to customers. This release contains a reference device driver for delivering the firmware payload to a target device, and reference firmware for receiving the firmware payload and associated documentation.

For an overview, read this post: Introducing Component Firmware Update and watch the WinHEC 2018 video on Component Firmware Update.

Contents

The Documentation folder contains the CFU protocol specification and the CFU Driver Design documenation.
The Host folder contains a link to the sample CFU protocol driver source code on GitHub.
The Firmware folder contains sample firmware source code for implementing the CFU protocol.
The Tools folder contains tools used with CFU.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

cfu's People

Contributors

ankurung avatar charliearcuri avatar chboro avatar microsoft-github-policy-service[bot] avatar microsoftopensource avatar msftgits avatar pagewriter-msft avatar samtertzakian avatar surfacedmfuser1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cfu's Issues

Does the CFU driver can use i2c replace the hid?

Hi,
We want to upgrade our pnp device's fw through windows update, and the connect interface is i2c.
Does it reasonable to use i2c framework replace the hid? Or are there any other suggestions for fw upgrading through i2c path?
thanks!!

BR,

How to use FwUpdateCfu.exe to send firmware image update files to virtual device

Hi All,

I follow the steps from CFU virtual HID device firmware update simulation and create a virtual device in device manager.
image

Than, I build the solutions "VirtualDeviceFirmwareUpdate.sln & CfuExample.sln" to generate .inf, .cat, .dll, two offers, two payloads and FwUpdateCfu.exe.
\CFU\Host\MonolithicPackageExample\VirtualDeviceFwUpdate\Debug\x64\VirtualDeviceFirmwareUpdatePackage\VirtualDeviceFirmwareUpdatePackage
image

When I try to execute tool, there is an error message:
FwUpdateCfu.exe version protocolCfgExample.cfg

Argv #1 is: version
Argv #2 is: protocolCfgExample.cfg
Error Device not found or not working

Here is content of my config:

#instructions:
#Fill in csv tag and the value in hex for each item
#order not important
#only the first 2 fields will be looked at so values after that are considered comments
VID,0x045e,#mandatory (each vendor must maintain their own Vendor defined Utility Page collections)
PID,0x0111,#optional
USAGEPAGE,0xFA00,#mandatory (each vendor must maintain their own Vendor defined Utility Page collections)
USAGECOLLECTION,0xF5,#optional (if you don't specify, the tool will attempt to talk to all devices with matching UsagePage/Vid/Pid on the usages specified below)
VERSION_FEATURE_USAGE,0x62,#mandatory for all procedures
CONTENT_OUTPUT_USAGE,0x61,#mandatory for fwUpdate procedure
CONTENT_RESPONSE_INPUT_USAGE,0x66,#mandatory for fwUpdate procedure
OFFER_OUTPUT_USAGE,0x8e,#mandatory for fwUpdate procedure
OFFER_RESPONSE_INPUT_USAGE,0x8a,#mandatory for fwUpdate procedure

Is there any advice ?

Thanks

A list of hardware supporting CFU

Is there list of hardware that supports CFU? I'd like to add cfu support to fwupd and need some hardware to test the implementation. I'm especially interested in devices that have subcomponents with different firmware versions. Thanks.

How to apply CFU for PCIe/NVMe SSD device - From Lenovo

How can we apply this CFU for PCIe/NVMe SSD device?
Please give us some advice or reference code for this design, we check current CFU just are for the HID device but there have no define for storage devices,

Best regards,
Bruce hua from Lenovo

error when running FwUpdateCfu.exe version

The keyboard ids of my Microsoft Surface Book Gen 1 matchs the example configuration with VID=045e and PID=07cd
I tried FwUpdateCfu.exe version with the configuration example on this Microsoft Surface Book Gen 1 , but I am getting "Error Device not found or not working".
What steps I am missing to get the FwUpdateCfu.exe version to run?

fwupdatecfu_outputwin

Why this github ?

Hello dear IT worker,

Does this github is a bad fork ?

How to install this github by make and configure Line of command ?

Does this github bring support for HEIC code ?

Thank you in advance for yours answers,

Regards.

Azaretdodo.

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.