From: "Sami Mujawar" <sami.mujawar@arm.com>
To: Rebecca Cran <rebecca@nuviainc.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: Michael D Kinney <michael.d.kinney@intel.com>,
Liming Gao <gaoliming@byosoft.com.cn>,
Zhiguang Liu <zhiguang.liu@intel.com>,
Leif Lindholm <leif@nuviainc.com>,
Ard Biesheuvel <Ard.Biesheuvel@arm.com>, nd <nd@arm.com>
Subject: Re: [edk2-devel] [PATCH v4 10/10] ArmPkg: Add Universal/Smbios, a generic SMBIOS library for ARM
Date: Mon, 4 Jan 2021 10:21:21 +0000 [thread overview]
Message-ID: <DB7PR08MB3097A0CB0928CC1440568D5084D20@DB7PR08MB3097.eurprd08.prod.outlook.com> (raw)
In-Reply-To: <438bc3e8-5f04-e7b1-1043-69392cc7183a@nuviainc.com>
Hi Rebecca,
Please see my reply inline marked [SAMI].
Regards,
Sami Mujawar
-----Original Message-----
From: Rebecca Cran <rebecca@nuviainc.com>
Sent: 03 January 2021 11:52 PM
To: Sami Mujawar <Sami.Mujawar@arm.com>; devel@edk2.groups.io
Cc: Michael D Kinney <michael.d.kinney@intel.com>; Liming Gao <gaoliming@byosoft.com.cn>; Zhiguang Liu <zhiguang.liu@intel.com>; Leif Lindholm <leif@nuviainc.com>; Ard Biesheuvel <Ard.Biesheuvel@arm.com>; nd <nd@arm.com>
Subject: Re: [edk2-devel] [PATCH v4 10/10] ArmPkg: Add Universal/Smbios, a generic SMBIOS library for ARM
On 12/29/20 8:10 AM, Sami Mujawar wrote:
> Apologies for the delay in reviewing this patch.
> Please find my response inline marked [SAMI].
Thanks. I have a few comments: I've replied inline. Where I haven't
replied, I've made the changes you suggested.
> + 2, // ProcessorManufacture
> [SAMI] Would defining a macro PROC_MANUFACTURER_STR_ID or an enum be helpful? Similarly, for other strings used across SMBIOS tables in this patch.
> [/SAMI]
The string IDs are specific to the table, so I'm not sure we should
define a constant to re-use?
[SAMI] I see your point. It does not make sense to define macros to get rid of magic numbers, especially when these macros would not be used elsewhere.
[/SAMI]
> + Clidr.Data = ReadCLIDR ();
> [SAMI] The ReadCLIDR() and similar functions would run on the current PE. I think this code would not work with a big.LITTLE system or a system that utilises a DSU with different CPUs.
> Is the assumption here that all PEs in the system are same?
> [/SAMI]
Yes, that code currently assumes all CPUs are the same.
I'll add code to allow platforms to specify different cache information
tables for CPUs that are different.
> + FreePool (HandleArray);
> [SAMI] Please correct me if I am wrong, from the spec it appears that there can be n handles appended at the end of the table. However, the code above appears to only assign the first handle.
> I think GetLinkTypeHandle() should be called before allocating the memory for the SmbiosRecord. That way additional space for the n handles can be allocated. The handle list can then be appended to the end of the TYPE2 table.
> So, the table data should look something like: SMBIOS_TABLE_TYPE2 + (n * HANDLES) + StringData.
> Does this also mean that the TYPE2 table should be the last table to be populated? Should SmbiosMiscEntryPoint() be modified to schedule the population of TYPE2 table at the end?
> [/SAMI]
The code fetches the first of the _chassis_ handles, which it's presumed
there will only be one.
[SAMI] A comment to reflect this may be helpful if this is specific to this implementation. I was confused as the code sets the 'Board Type' to motherboard and the spec says "List of handles of other structures (for example, Baseboard,
Processor, Port, System Slots, Memory Device) that are contained by this baseboard". So, was expecting that this list would include Processor, etc.
[/SAMI]
> + //ContainedElements
> + (VOID)CopyMem (SmbiosRecord + 1, &ContainedElements, ExtendLength);
> [SAMI] If I understand correctly, the Contained Element data is never really copied, right?
> [/SAMI]
I'm not sure why it wouldn't be copied. Could you elaborate?
[SAMI] If InputData->ContainedElementCount = 0 or 1, then 'CopyMem (SmbiosRecord, InputData, sizeof (SMBIOS_TABLE_TYPE3));' should be ok (assuming InputData->ContainedElements[0] is populated with the relevant data).
But if ContainedElementCount = 2 then the SmbiosRecord is populated with zeros, as ContainedElements is a local variable that is zero initialised.
Also, if ContainedElementCount > 2 the copy operation would access invalid stack data which could be a problem.
[/SAMI]
--
Rebecca Cran
next prev parent reply other threads:[~2021-01-04 10:21 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-07 17:54 [PATCH v4 00/10] ArmPkg,MdePkg: Add Universal/Smbios, and related changes Rebecca Cran
2020-12-07 17:54 ` [PATCH v4 01/10] ArmPkg: Add ARM SMC Architecture functions to ArmStdSmc.h Rebecca Cran
2020-12-15 18:06 ` Leif Lindholm
2020-12-16 11:23 ` [edk2-devel] " Sami Mujawar
2020-12-07 17:54 ` [PATCH v4 02/10] MdePkg: Update IndustryStandard/SmBios.h with processor status data Rebecca Cran
2020-12-08 4:50 ` 回复: " gaoliming
2020-12-07 17:54 ` [PATCH v4 03/10] ArmPkg: Add register encoding definition for MMFR2 Rebecca Cran
2020-12-15 18:42 ` Leif Lindholm
2020-12-16 11:31 ` [edk2-devel] " Sami Mujawar
2020-12-07 17:54 ` [PATCH v4 04/10] ArmPkg: Add helper to read the Memory Model Features Register 2 Rebecca Cran
2020-12-15 19:11 ` Leif Lindholm
2020-12-16 11:06 ` [edk2-devel] " Sami Mujawar
2020-12-17 13:38 ` Laszlo Ersek
2020-12-17 13:47 ` Ard Biesheuvel
2020-12-17 18:04 ` Leif Lindholm
2020-12-17 18:19 ` Rebecca Cran
2020-12-17 17:57 ` Leif Lindholm
2020-12-07 17:54 ` [PATCH v4 05/10] ArmPkg: Add helper function to read the Memory Model Feature Register 4 Rebecca Cran
2020-12-16 11:23 ` [edk2-devel] " Sami Mujawar
2020-12-07 17:54 ` [PATCH v4 06/10] ArmPkg: Add helper to read CCIDX status Rebecca Cran
2020-12-16 11:23 ` [edk2-devel] " Sami Mujawar
2020-12-07 17:54 ` [PATCH v4 07/10] ArmPkg: Fix the return type of the ReadCCSIDR function Rebecca Cran
2020-12-15 19:24 ` Leif Lindholm
2020-12-16 11:31 ` [edk2-devel] " Sami Mujawar
2020-12-07 17:54 ` [PATCH v4 08/10] ArmPkg: Update ArmLibPrivate.h with cache register definitions Rebecca Cran
2020-12-15 19:27 ` Leif Lindholm
2020-12-07 17:54 ` [PATCH v4 09/10] ArmPkg: Add definition of the maximum cache level in ARMv8-A Rebecca Cran
2020-12-15 19:27 ` Leif Lindholm
2020-12-16 11:31 ` [edk2-devel] " Sami Mujawar
2020-12-07 17:54 ` [PATCH v4 10/10] ArmPkg: Add Universal/Smbios, a generic SMBIOS library for ARM Rebecca Cran
2020-12-15 19:29 ` Leif Lindholm
2020-12-15 21:14 ` Rebecca Cran
2020-12-16 15:13 ` [edk2-devel] " Sami Mujawar
2020-12-16 15:21 ` Rebecca Cran
2020-12-19 3:14 ` Rebecca Cran
[not found] ` <16513B32D4BA613C.12945@groups.io>
2020-12-29 15:10 ` Sami Mujawar
2021-01-03 23:52 ` Rebecca Cran
2021-01-04 10:21 ` Sami Mujawar [this message]
2020-12-14 15:45 ` [PATCH v4 00/10] ArmPkg,MdePkg: Add Universal/Smbios, and related changes Rebecca Cran
2020-12-15 18:36 ` Leif Lindholm
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=DB7PR08MB3097A0CB0928CC1440568D5084D20@DB7PR08MB3097.eurprd08.prod.outlook.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