[PATCH v5 07/12] smbios: Require the caller to align the SMBIOS table

Simon Glass sjg at chromium.org
Sun Dec 31 16:25:50 CET 2023


All callers handle this alignment, so drop the unnecessary code. This
simplifies things a little.

Signed-off-by: Simon Glass <sjg at chromium.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
---

Changes in v5:
- Update comment to mention x86 alignment

 include/smbios.h | 9 +++++----
 lib/smbios.c     | 2 --
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/include/smbios.h b/include/smbios.h
index 77be58887a2..49de32fec2d 100644
--- a/include/smbios.h
+++ b/include/smbios.h
@@ -258,12 +258,13 @@ static inline void fill_smbios_header(void *table, int type,
  *
  * This writes SMBIOS table at a given address.
  *
- * @addr:	start address to write SMBIOS table. If this is not
- *		16-byte-aligned then it will be aligned before the table is
- *		written.
+ * @addr:	start address to write SMBIOS table, 16-byte-alignment
+ * recommended. Note that while the SMBIOS tables themself have no alignment
+ * requirement, some systems may requires alignment. For example x86 systems
+ * which put tables at f0000 require 16-byte alignment
+ *
  * Return:	end address of SMBIOS table (and start address for next entry)
  *		or NULL in case of an error
- *
  */
 ulong write_smbios_table(ulong addr);
 
diff --git a/lib/smbios.c b/lib/smbios.c
index 7f79d969c92..cfd451e4088 100644
--- a/lib/smbios.c
+++ b/lib/smbios.c
@@ -563,8 +563,6 @@ ulong write_smbios_table(ulong addr)
 		ctx.dev = NULL;
 	}
 
-	/* 16 byte align the table address */
-	addr = ALIGN(addr, 16);
 	start_addr = addr;
 
 	/*
-- 
2.34.1



More information about the U-Boot mailing list