From 66be03b7ee19444b23aae3990a434a7470fc1641 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=A9mie=20Dautheribes?= Date: Fri, 28 Nov 2025 12:03:04 +0100 Subject: [PATCH] binman: blob_dtb: improve error message when SPL is not found MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit When using binman with the '-a spl-dtb=y' flag, if the SPL blob is not found, binman throws a cryptic error message: binman: 'NoneType' object has no attribute 'startswith' Let's improve the error message to explicitly state which SPL blob is missing. This is particularly useful when binman is used as a standalone tool outside the U-Boot source tree. Signed-off-by: Jérémie Dautheribes [trini: Add '# pragma: no cover' because coverage doesn't seem to like the documentation about this error] Signed-off-by: Tom Rini --- tools/binman/etype/blob_dtb.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tools/binman/etype/blob_dtb.py b/tools/binman/etype/blob_dtb.py index b234323d7cf..957d6e115d4 100644 --- a/tools/binman/etype/blob_dtb.py +++ b/tools/binman/etype/blob_dtb.py @@ -8,6 +8,8 @@ from binman.entry import Entry from binman.etype.blob import Entry_blob from dtoc import fdt_util +import errno +import os import struct # This is imported if needed @@ -39,9 +41,16 @@ class Entry_blob_dtb(Entry_blob): (self._node.name, self.prepend)) def ObtainContents(self, fake_size=0): - """Get the device-tree from the list held by the 'state' module""" + """Get the device-tree from the list held by the 'state' module + + Raises: + FileNotFoundError: If the device-tree blob is not found. + """ self._filename = self.GetDefaultFilename() self._pathname, _ = self.FdtContents(self.GetFdtEtype()) + if self._pathname is None: + raise FileNotFoundError(errno.ENOENT, # pragma: no cover + os.strerror(errno.ENOENT), self._filename) return super().ReadBlobContents() def ProcessContents(self): -- 2.47.3