From b42908c42a4cc091db45a7e5ba0e0ecceaa3f6da Mon Sep 17 00:00:00 2001 From: Lasse Collin Date: Sun, 11 Dec 2022 21:16:09 +0200 Subject: [PATCH] Docs: Update xz-file-format.txt to 1.1.0 for ARM64 filter. --- doc/xz-file-format.txt | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/doc/xz-file-format.txt b/doc/xz-file-format.txt index 4ed66506..09c83e0c 100644 --- a/doc/xz-file-format.txt +++ b/doc/xz-file-format.txt @@ -2,7 +2,7 @@ The .xz File Format =================== -Version 1.0.4 (2009-08-27) +Version 1.1.0 (2022-12-11) 0. Preface @@ -93,6 +93,10 @@ Version 1.0.4 (2009-08-27) Version Date Description + 1.1.0 2022-12-11 Added ARM64 filter and clarified 32-bit + ARM endianness in Section 5.3.2, + language improvements in Section 5.4 + 1.0.4 2009-08-27 Language improvements in Sections 1.2, 2.1.1.2, 3.1.1, 3.1.2, and 5.3.1 @@ -915,9 +919,20 @@ Version 1.0.4 (2009-08-27) 0x04 1 byte x86 filter (BCJ) 0x05 4 bytes PowerPC (big endian) filter 0x06 16 bytes IA64 filter - 0x07 4 bytes ARM (little endian) filter - 0x08 2 bytes ARM Thumb (little endian) filter + 0x07 4 bytes ARM filter [1] + 0x08 2 bytes ARM Thumb filter [1] 0x09 4 bytes SPARC filter + 0x0A 4 bytes ARM64 filter [2] + + [1] These are for little endian instruction encoding. + This must not be confused with data endianness. + A processor configured for big endian data access + may still use little endian instruction encoding. + The filters don't care about the data endianness. + + [2] 4096-byte alignment gives the best results + because the address in the ADRP instruction + is a multiple of 4096 bytes. If the size of Filter Properties is four bytes, the Filter Properties field contains the start offset used for address @@ -987,12 +1002,12 @@ Version 1.0.4 (2009-08-27) 5.4. Custom Filter IDs - If a developer wants to use custom Filter IDs, he has two + If a developer wants to use custom Filter IDs, there are two choices. The first choice is to contact Lasse Collin and ask him to allocate a range of IDs for the developer. - The second choice is to generate a 40-bit random integer, - which the developer can use as his personal Developer ID. + The second choice is to generate a 40-bit random integer + which the developer can use as a personal Developer ID. To minimize the risk of collisions, Developer ID has to be a randomly generated integer, not manually selected "hex word". The following command, which works on many free operating @@ -1000,7 +1015,7 @@ Version 1.0.4 (2009-08-27) dd if=/dev/urandom bs=5 count=1 | hexdump - The developer can then use his Developer ID to create unique + The developer can then use the Developer ID to create unique (well, hopefully unique) Filter IDs. Bits Mask Description