Lines Matching +full:embedded +full:- +full:controller
97 important to re-iterate that no device is created if a direct filesystem lookup
113 -----------------------
114 .. kernel-doc:: drivers/base/firmware_loader/fallback.c
171 in non-traditional paths -- paths outside of the listing documented in the
184 the uevent flag means you want to opt-in for the firmware fallback mechanism
196 The logic behind using MAX_JIFFY_OFFSET for non-uevents is that a custom
207 EFI embedded firmware fallback mechanism
210 On some devices the system's EFI code / ROM may contain an embedded copy
212 the peripheral's Linux device-driver needs to access this firmware.
222 .. kernel-doc:: include/linux/efi_embedded_fw.h
225 The EFI embedded-fw code works by scanning all EFI_BOOT_SERVICES_CODE memory
234 To register this array with the efi-embedded-fw code, a driver needs to:
243 drivers/firmware/efi/embedded-firmware.c wrapped in a #ifdef testing that
249 with the specified name directly from the disk, so the EFI embedded-fw can
254 1. The code scanning for EFI embedded-firmware runs near the end
258 embedded-firmware.
260 2. At the moment the EFI embedded-fw code assumes that firmwares always start at
264 3. At the moment the EFI embedded-fw code only works on x86 because other archs
265 free EFI_BOOT_SERVICES_CODE before the EFI embedded-fw code gets a chance to
268 4. The current brute-force scanning of EFI_BOOT_SERVICES_CODE is an ad-hoc
269 brute-force solution. There has been discussion to use the UEFI Platform
278 Example how to check for and extract embedded firmware
279 ------------------------------------------------------
281 To check for, for example Silead touchscreen controller embedded firmware,
288 3. Open the boot_services_code? files in a hex-editor, search for the
292 4. The firmware has a specific pattern, it starts with a 8 byte page-address,
293 typically F0 00 00 00 02 00 00 00 for the first page followed by 32-bit
294 word-address + 32-bit value pairs. With the word-address incrementing 4
296 followed by a new page-address, followed by more word + value pairs. This
300 5. "dd if=boot_services_code? of=firmware bs=1 skip=<begin-addr> count=<len>"