public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Marcin Juszkiewicz" <marcin.juszkiewicz@linaro.org>
To: Ard Biesheuvel <ardb@kernel.org>
Cc: devel@edk2.groups.io, Leif Lindholm <quic_llindhol@quicinc.com>,
	Ard Biesheuvel <ardb+tianocore@kernel.org>,
	Graeme Gregory <graeme@xora.org.uk>,
	Xiong Yining <xiongyining1480@phytium.com.cn>,
	Chen Baozi <chenbaozi@phytium.com.cn>
Subject: Re: [edk2-devel] [PATCH edk2-platforms v6 2/7] Platform/SbsaQemu: read amount of cpus during init
Date: Fri, 15 Mar 2024 12:49:31 +0100	[thread overview]
Message-ID: <f83603e9-b697-4aa6-a04a-8b0e103158d2@linaro.org> (raw)
In-Reply-To: <CAMj1kXFsn+-4hapv0QH1R2NvqoBmrqJoqzUbvg_KG8rt1rcCTg@mail.gmail.com>

W dniu 14.03.2024 o 16:13, Ard Biesheuvel pisze:
>> +++ b/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuPlatformDxe/SbsaQemuPlatformDxe.inf
>> @@ -1,7 +1,7 @@
>>   ## @file
>>   #  This driver effectuates SbsaQemu platform configuration settings
>>   #
>> -#  Copyright (c) 2019, Linaro Ltd. All rights reserved.
>> +#  Copyright (c) Linaro Ltd. All rights reserved.
>>   #
>>   #  SPDX-License-Identifier: BSD-2-Clause-Patent
>>   #
>> @@ -32,6 +32,7 @@ [LibraryClasses]
>>     PcdLib
>>     DebugLib
>>     NonDiscoverableDeviceRegistrationLib
>> +  SbsaQemuHardwareInfoLib
>>     UefiDriverEntryPoint
>>
>>   [Pcd]
>> @@ -46,6 +47,7 @@ [Pcd]
>>     gArmTokenSpaceGuid.PcdGicDistributorBase
>>     gArmTokenSpaceGuid.PcdGicRedistributorsBase
>>     gArmVirtSbsaQemuPlatformTokenSpaceGuid.PcdGicItsBase
>> +  gArmVirtSbsaQemuPlatformTokenSpaceGuid.PcdCoreCount
>>
>>
>>   [Depex]

> How is it guaranteed that other components will only see the correct
> core count? DXE dispatch is ordered using a dependency graph, so all
> users of this PCD should never execute before this driver.

SbsaQemuPlatformDxe is a DXE, right? So it is called on platform init.

At the end of initialization it calls SbsaQemuGetCpuCount() from 
SbsaQemuHardwareInfoLib to SET this PCD. It does not use it during 
platform init cause it does not require this information. But calls 
function to make sure that amount of cpus is known to whatever will be 
called later.

Sure, maybe SbsaQemuHardwareInfoLib should be something else (DXE, 
Protocol or other EDK2 magic thing) but it is set of functions to be 
called from other places of EDK2.

> This is why PCDs suck for dynamic information, to be honest. Much
> better to use a protocol (DEPEXes declare dependencies on protocols,
> so a driver will never run before the protocols it depends on have
> been made available)

I am still learning. Will look at other platforms.

> Given that this is intended as reference code, I think it is very
> important to get this right.

Fully agree.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116815): https://edk2.groups.io/g/devel/message/116815
Mute This Topic: https://groups.io/mt/104763764/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



  reply	other threads:[~2024-03-15 11:49 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-06 11:41 [edk2-devel] [PATCH edk2-platforms v6 0/7] get rid of DeviceTree from SbsaQemu Marcin Juszkiewicz
2024-03-06 11:41 ` [edk2-devel] [PATCH edk2-platforms v6 1/7] Platform/SbsaQemu: add SbsaQemuHardwareInfoLib Marcin Juszkiewicz
2024-03-14 15:09   ` Ard Biesheuvel
2024-03-14 15:14     ` Ard Biesheuvel
2024-03-15 11:34       ` Marcin Juszkiewicz
2024-03-06 11:41 ` [edk2-devel] [PATCH edk2-platforms v6 2/7] Platform/SbsaQemu: read amount of cpus during init Marcin Juszkiewicz
2024-03-14 15:13   ` Ard Biesheuvel
2024-03-15 11:49     ` Marcin Juszkiewicz [this message]
2024-03-19 10:25       ` Marcin Juszkiewicz
2024-03-19 11:02         ` Ard Biesheuvel
2024-03-19 11:27           ` Marcin Juszkiewicz
2024-03-06 11:42 ` [edk2-devel] [PATCH edk2-platforms v6 3/7] Platform/SbsaQemu: use PcdCoreCount directly Marcin Juszkiewicz
2024-03-14 15:15   ` Ard Biesheuvel
2024-03-06 11:42 ` [edk2-devel] [PATCH edk2-platforms v6 4/7] Platform/SbsaQemu: move FdtHandlerLib to SbsaQemuHardwareInfoLib Marcin Juszkiewicz
2024-03-14 15:16   ` Ard Biesheuvel
2024-03-06 11:42 ` [edk2-devel] [PATCH edk2-platforms v6 5/7] Platform/SbsaQemu: hang if there is no cpu information Marcin Juszkiewicz
2024-03-06 11:42 ` [edk2-devel] [PATCH edk2-platforms v6 6/7] Platform/SbsaQemu: get the information of memory via SMC calls Marcin Juszkiewicz
2024-03-14 15:18   ` Ard Biesheuvel
2024-03-06 11:42 ` [edk2-devel] [PATCH edk2-platforms v6 7/7] Platform/SbsaQemu: add DeviceTree fallbacks to parse memory information Marcin Juszkiewicz

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=f83603e9-b697-4aa6-a04a-8b0e103158d2@linaro.org \
    --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