diff --git a/README b/README index 98a51dcb809580e4fb8120e73d910d73112e6d73..9d351ec5ad8c2d51760ca0c43571586e8527d265 100644 --- a/README +++ b/README @@ -1723,29 +1723,6 @@ The following options need to be configured: the malloc area (as defined by CONFIG_SYS_MALLOC_LEN) should be at least 4MB. - CONFIG_LZMA - - If this option is set, support for lzma compressed - images is included. - - Note: The LZMA algorithm adds between 2 and 4KB of code and it - requires an amount of dynamic memory that is given by the - formula: - - (1846 + 768 << (lc + lp)) * sizeof(uint16) - - Where lc and lp stand for, respectively, Literal context bits - and Literal pos bits. - - This value is upper-bounded by 14MB in the worst case. Anyway, - for a ~4MB large kernel image, we have lc=3 and lp=0 for a - total amount of (1846 + 768 << (3 + 0)) * 2 = ~41KB... that is - a very small buffer. - - Use the lzmainfo tool to determinate the lc and lp values and - then calculate the amount of needed dynamic memory (ensuring - the appropriate CONFIG_SYS_MALLOC_LEN value). - CONFIG_LZO If this option is set, support for LZO compressed images diff --git a/arch/Kconfig b/arch/Kconfig index bad03529cc2c9b90e964420d773c19384e1dfa58..beec00a11269e2d5ef736c5d482ebad8e338a395 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -72,6 +72,7 @@ config SANDBOX imply CMD_HASH imply CMD_IO imply CMD_IOTRACE + imply LZMA config SH bool "SuperH architecture" diff --git a/configs/ap121_defconfig b/configs/ap121_defconfig index 2550aeecb7315db2abdfdf224e1bc87a17fd7e30..40055f04d893c0c33b183ebbe155d239d8a1ec84 100644 --- a/configs/ap121_defconfig +++ b/configs/ap121_defconfig @@ -50,3 +50,4 @@ CONFIG_DEBUG_UART_BOARD_INIT=y CONFIG_AR933X_UART=y CONFIG_DM_SPI=y CONFIG_ATH79_SPI=y +CONFIG_LZMA=y diff --git a/configs/ap143_defconfig b/configs/ap143_defconfig index 0753221d7fcf9f98b42df9ba5cbc32ab1ee50f84..05f169974862f7b816d985c0a3b310793756713b 100644 --- a/configs/ap143_defconfig +++ b/configs/ap143_defconfig @@ -46,3 +46,4 @@ CONFIG_DEBUG_UART_BOARD_INIT=y CONFIG_SYS_NS16550=y CONFIG_DM_SPI=y CONFIG_ATH79_SPI=y +CONFIG_LZMA=y diff --git a/configs/guruplug_defconfig b/configs/guruplug_defconfig index 361293af53356d8d4199219f166e71466f7d4dab..570819d3e5845f174aa863049170f8f3090949af 100644 --- a/configs/guruplug_defconfig +++ b/configs/guruplug_defconfig @@ -27,4 +27,5 @@ CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_STORAGE=y +CONFIG_LZMA=y CONFIG_OF_LIBFDT=y diff --git a/configs/ib62x0_defconfig b/configs/ib62x0_defconfig index a8107e264d0ca83e4f170b851ae0a36c9faec562..cc9011d05c290369df6825e5e0e1e3aad5b01d87 100644 --- a/configs/ib62x0_defconfig +++ b/configs/ib62x0_defconfig @@ -26,4 +26,5 @@ CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_STORAGE=y +CONFIG_LZMA=y CONFIG_OF_LIBFDT=y diff --git a/configs/iconnect_defconfig b/configs/iconnect_defconfig index 32994ec0cb8904a663167bfdef006c2b7f6a24c4..3e48380bc74ed96f4cccd8d2c5ff1e80639c0447 100644 --- a/configs/iconnect_defconfig +++ b/configs/iconnect_defconfig @@ -21,4 +21,5 @@ CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_STORAGE=y +CONFIG_LZMA=y CONFIG_OF_LIBFDT=y diff --git a/configs/nsa310s_defconfig b/configs/nsa310s_defconfig index 2ba87642b3c715a466844746e738f88bf2c5be70..ae39818e4b1106c0f487488bbe215c54a8261956 100644 --- a/configs/nsa310s_defconfig +++ b/configs/nsa310s_defconfig @@ -25,4 +25,5 @@ CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_STORAGE=y +CONFIG_LZMA=y CONFIG_OF_LIBFDT=y diff --git a/configs/qemu_mips64_defconfig b/configs/qemu_mips64_defconfig index 45513be56f7bedb23567442445b8d62aa35fca5f..6835cf1c5ce85712f44d01dcc9247ad4001cb768 100644 --- a/configs/qemu_mips64_defconfig +++ b/configs/qemu_mips64_defconfig @@ -15,3 +15,4 @@ CONFIG_CMD_FAT=y # CONFIG_ISO_PARTITION is not set CONFIG_MTD_NOR_FLASH=y CONFIG_SYS_NS16550=y +CONFIG_LZMA=y diff --git a/configs/qemu_mips64el_defconfig b/configs/qemu_mips64el_defconfig index 5f6ea3e2e77f6cac002b615edf95571819338ca6..60bd6164fcebd7c4aa672832ce790f7a328661a0 100644 --- a/configs/qemu_mips64el_defconfig +++ b/configs/qemu_mips64el_defconfig @@ -16,3 +16,4 @@ CONFIG_CMD_FAT=y # CONFIG_ISO_PARTITION is not set CONFIG_MTD_NOR_FLASH=y CONFIG_SYS_NS16550=y +CONFIG_LZMA=y diff --git a/configs/qemu_mips_defconfig b/configs/qemu_mips_defconfig index b87b0c571cd43196cba4fc3e329aa3fe94d9065b..c6f08b4efb7c4318e93cb20b0c35fbdc8b49b235 100644 --- a/configs/qemu_mips_defconfig +++ b/configs/qemu_mips_defconfig @@ -13,3 +13,4 @@ CONFIG_CMD_FAT=y # CONFIG_ISO_PARTITION is not set CONFIG_MTD_NOR_FLASH=y CONFIG_SYS_NS16550=y +CONFIG_LZMA=y diff --git a/configs/qemu_mipsel_defconfig b/configs/qemu_mipsel_defconfig index 281cf667dae907394c4b48874a9ccaf21780d7ce..b8c206971d7f33f62708d798e6f35d0f0f4ade6a 100644 --- a/configs/qemu_mipsel_defconfig +++ b/configs/qemu_mipsel_defconfig @@ -14,3 +14,4 @@ CONFIG_CMD_FAT=y # CONFIG_ISO_PARTITION is not set CONFIG_MTD_NOR_FLASH=y CONFIG_SYS_NS16550=y +CONFIG_LZMA=y diff --git a/configs/sheevaplug_defconfig b/configs/sheevaplug_defconfig index 19acc7de3ccd403763de71619eee899a4512f3e7..ac7217dcba812f4df59e823fbf14c762c6434dc3 100644 --- a/configs/sheevaplug_defconfig +++ b/configs/sheevaplug_defconfig @@ -27,4 +27,5 @@ CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_STORAGE=y +CONFIG_LZMA=y CONFIG_OF_LIBFDT=y diff --git a/configs/tplink_wdr4300_defconfig b/configs/tplink_wdr4300_defconfig index 3c7e6ff4bae3b1cdd23402d52e20a794e620f193..65314df133c39bd145e74701bc793e1f415adab2 100644 --- a/configs/tplink_wdr4300_defconfig +++ b/configs/tplink_wdr4300_defconfig @@ -45,3 +45,4 @@ CONFIG_DM_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_GENERIC=y CONFIG_USB_STORAGE=y +CONFIG_LZMA=y diff --git a/configs/zipitz2_defconfig b/configs/zipitz2_defconfig index 06e915c1dc15b6fedbd82fb8b559b24c84b7afff..0b38f2b1afcb125e404820b7a19ea42d6e40127d 100644 --- a/configs/zipitz2_defconfig +++ b/configs/zipitz2_defconfig @@ -19,5 +19,6 @@ CONFIG_PXA_SERIAL=y CONFIG_USB=y CONFIG_USB_STORAGE=y CONFIG_LCD=y +CONFIG_LZMA=y CONFIG_OF_LIBFDT=y # CONFIG_EFI_LOADER is not set diff --git a/include/configs/ap121.h b/include/configs/ap121.h index 8ae3c77942a27e005e50d022ef5f17e78566eb16..2284b8bc66322ee68209fd320789836b1bf4b5cf 100644 --- a/include/configs/ap121.h +++ b/include/configs/ap121.h @@ -33,7 +33,6 @@ #define CONFIG_BOOTCOMMAND "sf probe;" \ "mtdparts default;" \ "bootm 0x9f650000" -#define CONFIG_LZMA #define MTDIDS_DEFAULT "nor0=spi-flash.0" #define MTDPARTS_DEFAULT "mtdparts=spi-flash.0:" \ diff --git a/include/configs/ap143.h b/include/configs/ap143.h index a2c31a2fd52435e8f1989c74576357e706a37a4e..2950783097da4ea9956c784566d59c59665d198b 100644 --- a/include/configs/ap143.h +++ b/include/configs/ap143.h @@ -37,7 +37,6 @@ #define CONFIG_BOOTCOMMAND "sf probe;" \ "mtdparts default;" \ "bootm 0x9f680000" -#define CONFIG_LZMA #define MTDIDS_DEFAULT "nor0=spi-flash.0" #define MTDPARTS_DEFAULT "mtdparts=spi-flash.0:" \ diff --git a/include/configs/ib62x0.h b/include/configs/ib62x0.h index 0b92d7b2ca203feae094adc1e6a6a2c5757f0bcc..a5782f3300ec55f1c335af966e161ba1089872f5 100644 --- a/include/configs/ib62x0.h +++ b/include/configs/ib62x0.h @@ -23,7 +23,6 @@ * Compression configuration */ #define CONFIG_BZIP2 -#define CONFIG_LZMA /* * Commands configuration diff --git a/include/configs/iconnect.h b/include/configs/iconnect.h index bb4eb7be7ba2a61056747cb01f60e85e0c929fde..63e50606d717eee8af79d790eccc762ec6c91b4c 100644 --- a/include/configs/iconnect.h +++ b/include/configs/iconnect.h @@ -25,7 +25,6 @@ * Compression configuration */ #define CONFIG_BZIP2 -#define CONFIG_LZMA #define CONFIG_LZO /* diff --git a/include/configs/mv-plug-common.h b/include/configs/mv-plug-common.h index 90ad0a654b3c895492bdbc0755e5ac63cc09c1fd..a2f68ad70ae56f0d1086de537dc596fbd558de65 100644 --- a/include/configs/mv-plug-common.h +++ b/include/configs/mv-plug-common.h @@ -22,7 +22,6 @@ */ #ifdef CONFIG_SYS_MVFS #define CONFIG_BZIP2 -#define CONFIG_LZMA #endif /* CONFIG_SYS_MVFS */ /* diff --git a/include/configs/nsa310s.h b/include/configs/nsa310s.h index 9b99b0e44fa53dee1a72a2cad103cbb0791fc250..bc67270af7bb932e8e7ad91f722b6d000b672c3a 100644 --- a/include/configs/nsa310s.h +++ b/include/configs/nsa310s.h @@ -21,7 +21,6 @@ /* compression configuration */ #define CONFIG_BZIP2 -#define CONFIG_LZMA /* commands configuration */ #define CONFIG_SYS_MVFS diff --git a/include/configs/qemu-mips.h b/include/configs/qemu-mips.h index aeaf88a68660340e714509057008d70ea77203c4..abdc93c7d25ada50c897ff9783cfe49a9fdde520 100644 --- a/include/configs/qemu-mips.h +++ b/include/configs/qemu-mips.h @@ -121,6 +121,4 @@ #define MEM_SIZE 128 -#define CONFIG_LZMA - #endif /* __CONFIG_H */ diff --git a/include/configs/qemu-mips64.h b/include/configs/qemu-mips64.h index d201c848ffe05a76e81da2f763eb08e0d13be467..f1e096fddd0d28f0246c0b967ac86a752496da3e 100644 --- a/include/configs/qemu-mips64.h +++ b/include/configs/qemu-mips64.h @@ -121,6 +121,4 @@ #define MEM_SIZE 128 -#define CONFIG_LZMA - #endif /* __CONFIG_H */ diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h index 905fcd95e9beef03dbe6d4d3952c55ccd7118462..b3e2c47dcd2a0d119fa5c9f3b3c6af5d8c7fe0c0 100644 --- a/include/configs/sandbox.h +++ b/include/configs/sandbox.h @@ -149,7 +149,6 @@ #define CONFIG_GZIP_COMPRESSED #define CONFIG_BZIP2 #define CONFIG_LZO -#define CONFIG_LZMA #define CONFIG_CMD_LZMADEC diff --git a/include/configs/tplink_wdr4300.h b/include/configs/tplink_wdr4300.h index d39dd92198b493356bbaf993a4aa16a54f72cca7..fc99dbd91e5983e2e25ded3b0518326f35c4b0a6 100644 --- a/include/configs/tplink_wdr4300.h +++ b/include/configs/tplink_wdr4300.h @@ -36,7 +36,6 @@ "console=ttyS0,115200 root=/dev/mtdblock2 rootfstype=squashfs" #define CONFIG_BOOTCOMMAND \ "dhcp 192.168.1.1:wdr4300.fit && bootm $loadaddr" -#define CONFIG_LZMA #define CONFIG_ENV_IS_NOWHERE #define CONFIG_ENV_SIZE 0x10000 diff --git a/include/configs/zipitz2.h b/include/configs/zipitz2.h index 8a745e5097296a9050ca6a40a29b10f11d29b64c..9b3769b5f1ede74d7843dee5688c065fd8ae978f 100644 --- a/include/configs/zipitz2.h +++ b/include/configs/zipitz2.h @@ -42,7 +42,6 @@ #define CONFIG_CMDLINE_TAG #define CONFIG_SETUP_MEMORY_TAGS #define CONFIG_SYS_TEXT_BASE 0x0 -#define CONFIG_LZMA /* LZMA compression support */ /* * Serial Console Configuration diff --git a/lib/Kconfig b/lib/Kconfig index db0915153cb566c79fdd6e53b3a8815283f90a22..09670f031c2453ec44d64a2e901d55eb7049f31d 100644 --- a/lib/Kconfig +++ b/lib/Kconfig @@ -148,6 +148,14 @@ config LZ4 frame format currently (2015) implemented in the Linux kernel (generated by 'lz4 -l'). The two formats are incompatible. +config LZMA + bool "Enable LZMA decompression support" + help + This enables support for LZMA (Lempel-Ziv-Markov chain algorithm), + a dictionary compression algorithm that provides a high compression + ratio and fairly fast decompression speed. See also + CONFIG_CMD_LZMADEC which provides a decode command. + config LZO bool endmenu diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt index 2610c412ed974ed8bb63fdb7b9787a4339438506..5b163a5499da40dc129db751b7df48db967f83c3 100644 --- a/scripts/config_whitelist.txt +++ b/scripts/config_whitelist.txt @@ -1575,7 +1575,6 @@ CONFIG_LUAN CONFIG_LWMON5 CONFIG_LXT971_NO_SLEEP CONFIG_LYNXKDI -CONFIG_LZMA CONFIG_M41T94_SPI_CS CONFIG_M520x CONFIG_M52277EVB