From: "Marcin Wojtas" <mw@semihalf.com>
To: Leif Lindholm <leif.lindholm@linaro.org>
Cc: edk2-devel-groups-io <devel@edk2.groups.io>,
Ard Biesheuvel <ard.biesheuvel@linaro.org>,
"jsd@semihalf.com" <jsd@semihalf.com>,
Grzegorz Jaszczyk <jaz@semihalf.com>,
Kostya Porotchkin <kostap@marvell.com>,
Patryk Duda <pdk@semihalf.com>
Subject: Re: [edk2-platforms: PATCH v3 8/9] Marvell/Drivers: SmbiosPlatformDxe: Load SMBIOS strings from PCD
Date: Fri, 11 Oct 2019 01:33:49 +0200 [thread overview]
Message-ID: <CAPv3WKdXq_ZV04wdC8ih4eOc7zmQ6vWFuErbou9RU4FMCExMpQ@mail.gmail.com> (raw)
In-Reply-To: <20191010230430.GX25504@bivouac.eciton.net>
Hi Leif,
pt., 11 paź 2019 o 01:04 Leif Lindholm <leif.lindholm@linaro.org> napisał(a):
>
> On Thu, Oct 10, 2019 at 07:42:18AM +0200, Marcin Wojtas wrote:
> > From: Patryk Duda <pdk@semihalf.com>
> >
> > This patch implements convenient way of changing strings included
> > in SMBIOS Table1, Table2, Table3.
> >
> > Strings can be altered by defining following PCDs:
> > gMarvellTokenSpaceGuid.PcdProductManufacturer
> > gMarvellTokenSpaceGuid.PcdProductPlatformName
> > gMarvellTokenSpaceGuid.PcdProductVersion
> > gMarvellTokenSpaceGuid.PcdProductSerial
> >
> > This patch adds also limit for length of string which can be increased
> > if necessary in future.
> >
> > Signed-off-by: Patryk Duda <pdk@semihalf.com>
> > ---
> > Silicon/Marvell/Marvell.dec | 6 ++
> > Silicon/Marvell/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf | 4 +
> > Silicon/Marvell/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c | 79 +++++++++++++++++---
> > 3 files changed, 78 insertions(+), 11 deletions(-)
> >
> > diff --git a/Silicon/Marvell/Marvell.dec b/Silicon/Marvell/Marvell.dec
> > index d337d3e..a84b056 100644
> > --- a/Silicon/Marvell/Marvell.dec
> > +++ b/Silicon/Marvell/Marvell.dec
> > @@ -169,6 +169,12 @@
> > gMarvellTokenSpaceGuid.PcdPciEAhci|{ 0x0 }|VOID*|0x3000034
> > gMarvellTokenSpaceGuid.PcdPciESdhci|{ 0x0 }|VOID*|0x3000035
> >
> > +#Platform description
> > + gMarvellTokenSpaceGuid.PcdProductManufacturer|"Marvell \0"|VOID*|0x50000100
> > + gMarvellTokenSpaceGuid.PcdProductPlatformName|"Marvell Development Board \0"|VOID*|0x50000101
> > + gMarvellTokenSpaceGuid.PcdProductSerial|"Serial Not Set \0"|VOID*|0x50000103
> > + gMarvellTokenSpaceGuid.PcdProductVersion|"Revision unknown \0"|VOID*|0x50000102
> > +
>
> I'm not too pleased about this random number of spaces. I'm cool with
> the strings, but they should be treated as such, not magical data
> structures.
In v4 the trailing spaces will be removed from the defaults (as well as "\0").
> > +STATIC
> > +VOID
> > +MvSmbiosCopyStrings (
> > + VOID
> > + )
> > +{
> > + EFI_STATUS Status;
> > +
> > + ASSERT (AsciiStrnLenS ((CHAR8 *)PcdGetPtr (PcdProductManufacturer),
> > + MV_SMBIOS_STRING_MAX_SIZE) < MV_SMBIOS_STRING_MAX_SIZE);
> > + ASSERT (AsciiStrnLenS ((CHAR8 *)PcdGetPtr (PcdProductPlatformName),
> > + MV_SMBIOS_STRING_MAX_SIZE) < MV_SMBIOS_STRING_MAX_SIZE);
> > + ASSERT (AsciiStrnLenS ((CHAR8 *)PcdGetPtr (PcdProductVersion),
> > + MV_SMBIOS_STRING_MAX_SIZE) < MV_SMBIOS_STRING_MAX_SIZE);
> > + ASSERT (AsciiStrnLenS ((CHAR8 *)PcdGetPtr (PcdProductSerial),
> > + MV_SMBIOS_STRING_MAX_SIZE) < MV_SMBIOS_STRING_MAX_SIZE);
>
> Especially given the current design, these ASSERTs seem a bit
> ... unhelpful. In fact, this whole MAX_SIZE thing seems ... restricted
> by the implementation, not by external constraints. What is the
> benefit? Not having to do a bunch of pointer conversions at
> SetVirtualAddressMap?
>
The default static tables require constant initializers and the
placeholders should have some predefined size in current approach. So
max of 32 characters was picked and with the asserts, ensuring the
user will not exceed it. Do you think they should be removed?
Best regards,
Marcin
>
> > +
> > + Status = AsciiStrCpyS (mSysInfoManufacturer,
> > + MV_SMBIOS_STRING_MAX_SIZE,
> > + (CHAR8 *)PcdGetPtr (PcdProductManufacturer));
> > + ASSERT_EFI_ERROR (Status);
> > + Status = AsciiStrCpyS (mSysInfoProductName,
> > + MV_SMBIOS_STRING_MAX_SIZE,
> > + (CHAR8 *)PcdGetPtr (PcdProductPlatformName));
> > + ASSERT_EFI_ERROR (Status);
> > + Status = AsciiStrCpyS (mSysInfoVersion,
> > + MV_SMBIOS_STRING_MAX_SIZE,
> > + (CHAR8 *)PcdGetPtr (PcdProductVersion));
> > + ASSERT_EFI_ERROR (Status);
> > + Status = AsciiStrCpyS (mSysInfoSerial,
> > + MV_SMBIOS_STRING_MAX_SIZE,
> > + (CHAR8 *)PcdGetPtr (PcdProductSerial));
> > + ASSERT_EFI_ERROR (Status);
> > +}
> > +
> > +/**
> > Install all structures from the DefaultTables structure
> >
> > @param Smbios SMBIOS protocol
> > @@ -760,6 +815,8 @@ SmbiosInstallAllStructures (
> > FirmwareMajorRevisionNumber = (PcdGet32 (PcdFirmwareRevision) >> 16) & 0xFF;
> > FirmwareMinorRevisionNumber = PcdGet32 (PcdFirmwareRevision) & 0xFF;
> >
> > + MvSmbiosCopyStrings();
> > +
> > //
> > // Update Firmware Revision, CPU and DRAM frequencies.
> > //
> > --
> > 2.7.4
> >
next prev parent reply other threads:[~2019-10-10 23:33 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-10 5:42 [edk2-platforms: PATCH v3 0/9] Marvell Octeon CN913X SoC family support Marcin Wojtas
2019-10-10 5:42 ` [edk2-platforms: PATCH v3 1/9] Marvell/Armada7k8k: Fix 32-bit compilation Marcin Wojtas
2019-10-10 22:47 ` Leif Lindholm
2019-10-10 5:42 ` [edk2-platforms: PATCH v3 2/9] Marvell/Cn9130Db: Add ACPI tables Marcin Wojtas
2019-10-10 5:42 ` [edk2-platforms: PATCH v3 3/9] Marvell/Cn9130Db: Introduce board support Marcin Wojtas
2019-10-10 22:52 ` Leif Lindholm
2019-10-10 5:42 ` [edk2-platforms: PATCH v3 4/9] Marvell/Library: ArmadaSoCDescLib/MppLib: Extend Xenon information Marcin Wojtas
2019-10-10 22:55 ` Leif Lindholm
2019-10-10 5:42 ` [edk2-platforms: PATCH v3 5/9] Marvell/Library: IcuLib: Fix debug information Marcin Wojtas
2019-10-10 5:42 ` [edk2-platforms: PATCH v3 6/9] Marvell/Cn9131Db: Introduce board support Marcin Wojtas
2019-10-10 22:56 ` Leif Lindholm
2019-10-10 5:42 ` [edk2-platforms: PATCH v3 7/9] Marvell/Cn9132Db: " Marcin Wojtas
2019-10-10 22:57 ` Leif Lindholm
2019-10-10 5:42 ` [edk2-platforms: PATCH v3 8/9] Marvell/Drivers: SmbiosPlatformDxe: Load SMBIOS strings from PCD Marcin Wojtas
2019-10-10 23:04 ` Leif Lindholm
2019-10-10 23:33 ` Marcin Wojtas [this message]
2019-10-10 23:51 ` Leif Lindholm
2019-10-11 7:30 ` Marcin Wojtas
2019-10-11 8:17 ` Marcin Wojtas
2019-10-10 5:42 ` [edk2-platforms: PATCH v3 9/9] Marvell: Customize per-board SBMIOS strings Marcin Wojtas
2019-10-10 23:07 ` Leif Lindholm
2019-10-10 23:16 ` Marcin Wojtas
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-list 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=CAPv3WKdXq_ZV04wdC8ih4eOc7zmQ6vWFuErbou9RU4FMCExMpQ@mail.gmail.com \
--to=devel@edk2.groups.io \
/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