public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Marcin Juszkiewicz" <marcin.juszkiewicz@linaro.org>
To: devel@edk2.groups.io
Subject: Re: [edk2-devel] ACPI table generators and ConfigurationManagerProtocol
Date: Tue, 16 Apr 2024 09:38:52 +0200	[thread overview]
Message-ID: <2c74b069-e815-4304-a98e-0d02cba7974e@linaro.org> (raw)
In-Reply-To: <17C588EF15E93250.19773@groups.io>

W dniu 12.04.2024 o 14:43, Marcin Juszkiewicz via groups.io pisze:
> W dniu 8.10.2023 o 19:25, Marcin Juszkiewicz via groups.io pisze:
> 
> I hate replying to myself after half a year of not seeing any answer. So 
> added some people from repo to Cc:
> 
>> Can someone point me to documentation on how to use ACPI table 
>> generators and ConfigurationManagerProtocol?
> 
> https://github.com/tianocore/edk2/blob/master/DynamicTablesPkg/Readme.md 
> tells the story and points to presentation from 2018 with some pictures 
> in it.
> 
> Looks like the only documentation is the code itself. Is checkout of 
> some old tree and looking change by change how it was done on some 
> platform the easiest way to find out how to use it?

> The more I look at */ConfigurationManager.[ch] the more I do not like 
> the amount of static structures there. All those 
> EDKII_PLATFORM_REPOSITORY_INFO covering 1000 lines looks like "how the 
> hell I will find what to change in other piece of code".
> 
> Any doc pointers? Recommendations (other than "change your job")?

I have spent two days on trying ConfigurationManager and finally gave 
up. The idea behind may look interesting but implementation of it is 
terrible. And there is no documentation for it.

Edk2_Platform_Repo_Info struct full of other structs can be one thousand 
lines long. Then are functions to query those structs - which can take 
almost another thousand lines.

For hardware where amount of system components is known and does not 
change it may be tempting. For those like sbsa-ref/QemuSbsa it means 
extra code to fill struct of structs with hardware details (cpu nodes, 
gic nodes, cpu topology/hierarchy/cache info etc).

So I am going back to how "my" platform is done. Probably will learn 
AmlLib to create DSDT from C code.


And if someone considers using ConfigurationManager for their platform: 
please reconsider it as it may not be worth your time.


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



  parent reply	other threads:[~2024-04-16  7:38 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <178C31CFE9B284CD.5378@groups.io>
2024-04-12 12:43 ` [edk2-devel] ACPI table generators and ConfigurationManagerProtocol Marcin Juszkiewicz
2024-04-12 14:08   ` Gerd Hoffmann
     [not found] ` <17C588EF15E93250.19773@groups.io>
2024-04-16  7:38   ` Marcin Juszkiewicz [this message]
     [not found]   ` <17C6B2A6AFC6832B.12347@groups.io>
2024-04-16  9:02     ` Marcin Juszkiewicz
2023-10-08 17:25 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=2c74b069-e815-4304-a98e-0d02cba7974e@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