Back to home page

OSCL-LXR

 
 

    


0001 ========================
0002 Direct filesystem lookup
0003 ========================
0004 
0005 Direct filesystem lookup is the most common form of firmware lookup performed
0006 by the kernel. The kernel looks for the firmware directly on the root
0007 filesystem in the paths documented in the section 'Firmware search paths'.
0008 The filesystem lookup is implemented in fw_get_filesystem_firmware(), it
0009 uses common core kernel file loader facility kernel_read_file_from_path().
0010 The max path allowed is PATH_MAX -- currently this is 4096 characters.
0011 
0012 It is recommended you keep /lib/firmware paths on your root filesystem,
0013 avoid having a separate partition for them in order to avoid possible
0014 races with lookups and avoid uses of the custom fallback mechanisms
0015 documented below.
0016 
0017 Firmware and initramfs
0018 ----------------------
0019 
0020 Drivers which are built-in to the kernel should have the firmware integrated
0021 also as part of the initramfs used to boot the kernel given that otherwise
0022 a race is possible with loading the driver and the real rootfs not yet being
0023 available. Stuffing the firmware into initramfs resolves this race issue,
0024 however note that using initrd does not suffice to address the same race.
0025 
0026 There are circumstances that justify not wanting to include firmware into
0027 initramfs, such as dealing with large firmware files for the
0028 remote-proc subsystem. For such cases using a userspace fallback mechanism
0029 is currently the only viable solution as only userspace can know for sure
0030 when the real rootfs is ready and mounted.