The strings block holds the names of properties. Each is a string ended by a zero byte, and they follow one another with no
other separator and no alignment (Devicetree Specification, section 5.5). The block is at the header’s
off_dt_strings and its length is the header’s
size_dt_strings.
How names are found
An FDT_PROP in the structure block carries a
nameoff: the offset from the start of the strings block of the first byte of its name. The name runs to the next
zero byte. Many properties share a name (reg, compatible, status), so a blob normally
keeps each name once and every property of that name has the same offset.
In the Raspberry Pi Zero 2 W blob the strings block is 3,456 bytes (0xD80) and holds 301 names. The first is
compatible at offset 0, then model at offset 11, #address-cells at 17, #size-cells
at 32 and interrupt-parent at 44, in the order the properties first appear in the tree.
What the viewer shows
Each string as a row of the strings block with its offset, how many properties use it, and the bytes it covers. A string
counts as used when a property’s nameoff falls anywhere inside it, so a name that points into the middle of a
longer string is counted. A string no property uses is shown as unused; that is a fact and not a problem. The viewer reports a
name offset that is outside the block, a name with no terminating zero before the end of the block, and a block that does not
end with a zero byte.