34 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| =================
 | |
| Built-in firmware
 | |
| =================
 | |
| 
 | |
| Firmware can be built-in to the kernel, this means building the firmware
 | |
| into vmlinux directly, to enable avoiding having to look for firmware from
 | |
| the filesystem. Instead, firmware can be looked for inside the kernel
 | |
| directly. You can enable built-in firmware using the kernel configuration
 | |
| options:
 | |
| 
 | |
|   * CONFIG_EXTRA_FIRMWARE
 | |
|   * CONFIG_EXTRA_FIRMWARE_DIR
 | |
| 
 | |
| There are a few reasons why you might want to consider building your firmware
 | |
| into the kernel with CONFIG_EXTRA_FIRMWARE:
 | |
| 
 | |
| * Speed
 | |
| * Firmware is needed for accessing the boot device, and the user doesn't
 | |
|   want to stuff the firmware into the boot initramfs.
 | |
| 
 | |
| Even if you have these needs there are a few reasons why you may not be
 | |
| able to make use of built-in firmware:
 | |
| 
 | |
| * Legalese - firmware is non-GPL compatible
 | |
| * Some firmware may be optional
 | |
| * Firmware upgrades are possible, therefore a new firmware would implicate
 | |
|   a complete kernel rebuild.
 | |
| * Some firmware files may be really large in size. The remote-proc subsystem
 | |
|   is an example subsystem which deals with these sorts of firmware
 | |
| * The firmware may need to be scraped out from some device specific location
 | |
|   dynamically, an example is calibration data for for some WiFi chipsets. This
 | |
|   calibration data can be unique per sold device.
 | |
| 
 | 
