Lines Matching full:capsule

3  * EFI capsule support.
34 * efi_capsule_pending - has a capsule been passed to the firmware?
35 * @reset_type: store the type of EFI reset if capsule is pending
37 * To ensure that the registered capsule is processed correctly by the
38 * firmware we need to perform a specific type of reset. If a capsule is
63 * Whitelist of EFI capsule flags that we support.
74 * efi_capsule_supported - does the firmware support the capsule?
75 * @guid: vendor guid of capsule
76 * @flags: capsule flags
77 * @size: size of capsule data
78 * @reset: the reset type required for this capsule
80 * Check whether a capsule with @flags is supported by the firmware
81 * and that @size doesn't exceed the maximum size for a capsule.
88 efi_capsule_header_t capsule; in efi_capsule_supported() local
89 efi_capsule_header_t *cap_list[] = { &capsule }; in efi_capsule_supported()
96 capsule.headersize = capsule.imagesize = sizeof(capsule); in efi_capsule_supported()
97 memcpy(&capsule.guid, &guid, sizeof(efi_guid_t)); in efi_capsule_supported()
98 capsule.flags = flags; in efi_capsule_supported()
128 * efi_capsule_update_locked - pass a single capsule to the firmware
129 * @capsule: capsule to send to the firmware
131 * @reset: the reset type required for @capsule
135 * set it and capsule_pending if a capsule was successfully sent to
143 efi_capsule_update_locked(efi_capsule_header_t *capsule, in efi_capsule_update_locked() argument
152 * If someone has already registered a capsule that requires a in efi_capsule_update_locked()
156 pr_err("Conflicting capsule reset type %d (%d).\n", in efi_capsule_update_locked()
168 pr_warn("Capsule update raced with reboot, aborting.\n"); in efi_capsule_update_locked()
174 status = efi.update_capsule(&capsule, 1, sglist_phys); in efi_capsule_update_locked()
184 * efi_capsule_update - send a capsule to the firmware
185 * @capsule: capsule to send to firmware
186 * @pages: an array of capsule data pages
188 * Build a scatter gather list with EFI capsule block descriptors to
189 * map the capsule described by @capsule with its data in @pages and
192 * @capsule must be a virtual mapping of the complete capsule update in the
193 * kernel address space, as the capsule can be consumed immediately.
194 * A capsule_header_t that describes the entire contents of the capsule
198 * the capsule guid, users will likely want to check that
202 * If the capsule is successfully submitted to the firmware, any
209 * pending capsule that has a reset type that conflicts with the one
210 * required by @capsule. Do NOT use efi_capsule_pending() to detect
211 * this conflict since that would be racy. Instead, submit the capsule
216 int efi_capsule_update(efi_capsule_header_t *capsule, phys_addr_t *pages) in efi_capsule_update() argument
218 u32 imagesize = capsule->imagesize; in efi_capsule_update()
219 efi_guid_t guid = capsule->guid; in efi_capsule_update()
221 u32 flags = capsule->flags; in efi_capsule_update()
284 rv = efi_capsule_update_locked(capsule, sg_pages, reset_type); in efi_capsule_update()