Ошибка пользователя.
Я обнаружил, что в SAM-BA тоже есть метод проверки:
# sam-ba -p serial:ttyACM0:115200 -b sama5d2-xplained -a serialflash -c verify:at91-sama5d2_xplained_custom.dtb:0x70000
Opening serial port 'ttyACM0'
Connection opened.
Detected memory size is 4194304 bytes.
Executing command 'verify:at91-sama5d2_xplained_custom.dtb:0x70000'
Added 180 bytes of padding to align to page size
Error: Command 'verify:at91-sama5d2_xplained_custom.dtb:0x70000': Failed verification. First error at file offset 0x00000000
Connection closed.
Нехорошо. Оказывается, в шаге 5 был пропущен очень важный шаг: сначала нужно стереть флэш-память перед записью (я понятия не имел; видимо, я всегда использовал инструменты, которые заботились об этом за меня):
# sam-ba -p serial:ttyACM0:115200 -b sama5d2-xplained -a serialflash -c erase:0x70000:0x8000
Opening serial port 'ttyACM0'
Connection opened.
Detected memory size is 4194304 bytes.
Executing command 'erase:0x70000:0x8000'
Erased 32768 bytes at address 0x00070000 (100.00%)
Connection closed.
# sam-ba -p serial:ttyACM0:115200 -b sama5d2-xplained -a serialflash -c write:at91-sama5d2_xplained_custom.dtb:0x70000
Opening serial port 'ttyACM0'
Connection opened.
Detected memory size is 4194304 bytes.
Executing command 'write:at91-sama5d2_xplained_custom.dtb:0x70000'
Added 180 bytes of padding to align to page size
Wrote 30976 bytes at address 0x00070000 (100.00%)
Connection closed.
# sam-ba -p serial:ttyACM0:115200 -b sama5d2-xplained -a serialflash -c verify:at91-sama5d2_xplained_custom.dtb:0x70000
Opening serial port 'ttyACM0'
Connection opened.
Detected memory size is 4194304 bytes.
Executing command 'verify:at91-sama5d2_xplained_custom.dtb:0x70000'
Added 180 bytes of padding to align to page size
Verified 30976 bytes at address 0x00070000 (100.00%)
Connection closed.