public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Tom Rini <trini@konsulko.com>
To: Raymond Mao <raymond.mao@linaro.org>
Cc: u-boot@lists.denx.de, iwamatsu@nigauri.org,
	marek.vasut+renesas@mailbox.org,
	"Tuomas Tynkkynen" <tuomas.tynkkynen@iki.fi>,
	"Heinrich Schuchardt" <xypron.glpk@gmx.de>,
	"Ilias Apalodimas" <ilias.apalodimas@linaro.org>,
	"Simon Glass" <sjg@chromium.org>, "Stefan Roese" <sr@denx.de>,
	"Marek Behún" <kabel@kernel.org>,
	"Michal Simek" <michal.simek@amd.com>,
	"Wan Yee Lau" <wan.yee.lau@intel.com>,
	"Caleb Connolly" <caleb.connolly@linaro.org>,
	"Alexander Gendin" <agendin@matrox.com>,
	"Jonas Karlman" <jonas@kwiboo.se>,
	"Masahisa Kojima" <kojima.masahisa@socionext.com>,
	"Francesco Dolcini" <francesco.dolcini@toradex.com>,
	"Max Krummenacher" <max.krummenacher@toradex.com>,
	"Peter Robinson" <pbrobinson@gmail.com>
Subject: Re: [PATCH v2 0/8] SMBIOS improvements
Date: Wed, 23 Oct 2024 18:22:55 -0600	[thread overview]
Message-ID: <20241024002255.GP4959@bill-the-cat> (raw)
In-Reply-To: <20241022200543.116343-1-raymond.mao@linaro.org>

[-- Attachment #1: Type: text/plain, Size: 3629 bytes --]

On Tue, Oct 22, 2024 at 01:05:21PM -0700, Raymond Mao wrote:

> Motivations for changes:
> Current SMBIOS library and command-line tool is not fully matching with
> the requirements:
> 1. Missing support for other mandatory types (#7, #9, #16, #17, #19).
> 2. Only a few platforms support SMBIOS node from the device tree.
> 3. Values of some fields are hardcoded in the library other than fetching
>    from the device hardware.
> 4. Embedded data with dynamic length is not supported (E.g. Contained
>    Object Handles in Type #2 and Contained Elements in Type #3)
> 
> Changes:
> 1. Refactor the SMBIOS library and command-line tool to better align with
>    the SMBIOS spec.
> 2. Create an arch-specific driver for all aarch64-based platforms to fetch
>    SMBIOS private data from the device hardware (processor and cache).
> 3. Create a sysinfo driver to poppulate platform SMBIOS private data.
> 4. Add generic SMBIOS DTS file for arm64 platforms for those common strings
>    and values which cannot be retrieved from the system registers.
>    Vendors can create their own SMBIOS node using this as an example.
>    For those boards without SMBIOS nodes, this DTS file can be included to
>    have a generic SMBIOS information of the system.
> 5. Add support for Type #7 (Cache Information) and link its handles to
>    Type #4.
> 
> Once this patch is acceptted, subsequent patch sets will add other missing
> types (#9, #16, #17, #19).
> 
> Tests:
> To test this with QEMU arm64, please follow the guide on dt_qemu.rst to
> get a merged DT to run with.
> ```
> qemu-system-arm -machine virt -machine dumpdtb=qemu.dtb
> cat  <(dtc -I dtb qemu.dtb) <(dtc -I dtb ./dts/dt.dtb | grep -v /dts-v1/) \
>   | dtc - -o merged.dtb
> qemu-system-arm -machine virt -nographic -bios u-boot.bin -dtb merged.dtb
> ```
> 
> Known issues:
> It hits the image size limitation on R-CAR board(rcar3_salvator-x).
> ```
> u-boot.img exceeds file size limit:
>   limit:  0x100000 bytes
>   actual: 0x10049d bytes
>   excess: 0x49d bytes
> ```
> This board needs a clean-up to reserve spaces for the changes as SMBIOS
> is a fundamental feature.
> 
> Below is the breakdown of the size-growth of the related functions:
>   function                                   old     new   delta
>     static.smbios_write_type4                  252    1052    +800
>     static.smbios_write_type7                    -     764    +764
>     static.smbios_write_type3                  188     488    +300
>     smbios_get_val_si                            -     128    +128
>     static.smbios_write_type2                  316     376     +60
>     sysinfo_get_data                             -      56     +56
>     static.smbios_write_type1                  380     396     +16
>     smbios_write_funcs                         112     128     +16
>     ofnode_read_u32                              -      12     +12
>     sysinfo_rcar_ops                            40      48      +8
>     install_smbios_table                       468     472      +4

Right, so here's the problem I see right now. About 70% of all U-Boot
platforms enable GENERATE_SMBIOS_TABLE and so "smbios: Refactor smbios
library" causes a growth of around 1.5 kilobytes. That's a problem.
There is a place where we're going to generate as full and complete a
table as we can, and a place where we just want maybe the basics. We
need to re-factor things first so that the platforms which aren't doing
detailed tables do not grow and perhaps even shrink because we can pull
existing code out.

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

  parent reply	other threads:[~2024-10-24  0:23 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-22 20:05 [PATCH v2 0/8] SMBIOS improvements Raymond Mao
2024-10-22 20:05 ` [PATCH v2 1/8] smbios: Refactor the smbios headfile Raymond Mao
2024-10-28 17:03   ` Simon Glass
2024-10-22 20:05 ` [PATCH v2 2/8] sysinfo: Add sysinfo API for accessing data area Raymond Mao
2024-10-28 17:04   ` Simon Glass
2024-10-22 20:05 ` [PATCH v2 3/8] sysinfo: Add sysinfo driver and data structure for smbios Raymond Mao
2024-10-28 17:04   ` Simon Glass
2024-10-28 19:43     ` Raymond Mao
2024-10-29 15:45       ` Simon Glass
2024-12-05 17:28     ` Raymond Mao
2024-12-06 15:31       ` Simon Glass
2024-12-06 15:54         ` Raymond Mao
2024-12-06 23:43           ` Simon Glass
2024-12-09 15:36             ` Raymond Mao
2024-10-22 20:05 ` [PATCH v2 4/8] smbios: Refactor smbios library Raymond Mao
2024-10-28 17:04   ` Simon Glass
2024-10-22 20:05 ` [PATCH v2 5/8] armv8: Add arch-specific sysinfo platform driver Raymond Mao
2024-10-28 17:04   ` Simon Glass
2024-10-28 19:53     ` Raymond Mao
2024-10-22 20:05 ` [PATCH v2 6/8] armv8: Add generic smbios information into the device tree Raymond Mao
2024-10-28 17:04   ` Simon Glass
2024-10-28 20:00     ` Raymond Mao
2024-10-29 15:45       ` Simon Glass
2024-11-01  5:28         ` Heinrich Schuchardt
2024-11-01  6:02         ` Heinrich Schuchardt
2024-11-01 16:23           ` Raymond Mao
2024-10-22 20:05 ` [PATCH v2 7/8] cmd: update smbios cmd Raymond Mao
2024-10-28 17:04   ` Simon Glass
2024-10-28 20:02     ` Raymond Mao
2024-10-22 20:05 ` [PATCH v2 8/8] configs: Enable sysinfo for QEMU Arm64 Raymond Mao
2024-10-28 17:05   ` Simon Glass
2024-10-24  0:22 ` Tom Rini [this message]
2024-10-24 13:35   ` [PATCH v2 0/8] SMBIOS improvements Raymond Mao
2024-10-24 14:10     ` Tom Rini
2024-10-24 14:19       ` Raymond Mao
2024-10-24 15:20         ` Tom Rini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20241024002255.GP4959@bill-the-cat \
    --to=trini@konsulko.com \
    --cc=agendin@matrox.com \
    --cc=caleb.connolly@linaro.org \
    --cc=francesco.dolcini@toradex.com \
    --cc=ilias.apalodimas@linaro.org \
    --cc=iwamatsu@nigauri.org \
    --cc=jonas@kwiboo.se \
    --cc=kabel@kernel.org \
    --cc=kojima.masahisa@socionext.com \
    --cc=marek.vasut+renesas@mailbox.org \
    --cc=max.krummenacher@toradex.com \
    --cc=michal.simek@amd.com \
    --cc=pbrobinson@gmail.com \
    --cc=raymond.mao@linaro.org \
    --cc=sjg@chromium.org \
    --cc=sr@denx.de \
    --cc=tuomas.tynkkynen@iki.fi \
    --cc=u-boot@lists.denx.de \
    --cc=wan.yee.lau@intel.com \
    --cc=xypron.glpk@gmx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox