Docs: Update xz-file-format.txt to 1.1.0 for ARM64 filter.

This commit is contained in:
Lasse Collin 2022-12-11 21:16:09 +02:00
parent 854f2f5946
commit b42908c42a
1 changed files with 22 additions and 7 deletions

View File

@ -2,7 +2,7 @@
The .xz File Format The .xz File Format
=================== ===================
Version 1.0.4 (2009-08-27) Version 1.1.0 (2022-12-11)
0. Preface 0. Preface
@ -93,6 +93,10 @@ Version 1.0.4 (2009-08-27)
Version Date Description 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, 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 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) 0x04 1 byte x86 filter (BCJ)
0x05 4 bytes PowerPC (big endian) filter 0x05 4 bytes PowerPC (big endian) filter
0x06 16 bytes IA64 filter 0x06 16 bytes IA64 filter
0x07 4 bytes ARM (little endian) filter 0x07 4 bytes ARM filter [1]
0x08 2 bytes ARM Thumb (little endian) filter 0x08 2 bytes ARM Thumb filter [1]
0x09 4 bytes SPARC filter 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 If the size of Filter Properties is four bytes, the Filter
Properties field contains the start offset used for address 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 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 choices. The first choice is to contact Lasse Collin and ask
him to allocate a range of IDs for the developer. him to allocate a range of IDs for the developer.
The second choice is to generate a 40-bit random integer, The second choice is to generate a 40-bit random integer
which the developer can use as his personal Developer ID. which the developer can use as a personal Developer ID.
To minimize the risk of collisions, Developer ID has to be To minimize the risk of collisions, Developer ID has to be
a randomly generated integer, not manually selected "hex word". a randomly generated integer, not manually selected "hex word".
The following command, which works on many free operating 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 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. (well, hopefully unique) Filter IDs.
Bits Mask Description Bits Mask Description