public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* SMBios configuration table not present until late stage of boot
@ 2017-05-18 15:00 Tomas Pilar (tpilar)
  2017-05-18 15:11 ` Jim.Dailey
  0 siblings, 1 reply; 10+ messages in thread
From: Tomas Pilar (tpilar) @ 2017-05-18 15:00 UTC (permalink / raw)
  To: edk2-devel@lists.01.org

Hi,

I am trying to read the system UUID from the System Table (Type 1) in 
the SMBios set of tables. I am doing this during DriverBinding.Start() 
part of the UEFI_DRIVER initialisation. Unfortunately the 
gST->ConfigurationTable only contains 6 tables and SMBios is not one of 
them.

Once I boot into UEFI shell or start a PXE booting process, the 
gST->ConfigurationTable now contains 8 tables and SMBios is one of the 
two new tables. If I however only boot to a HDD, this never seems to 
happen.

Can someone offer some insight why this might be so and how would I go 
about forcing the platform to provide the SMBios in 
gST->ConfigurationTable at a sensible point?

Incidentally it seems ExitBootServices is not signaled on this platform 
if the boot goes through to HDD either, which is another strange thing ...

Cheers,
Tom





^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: SMBios configuration table not present until late stage of boot
  2017-05-18 15:00 SMBios configuration table not present until late stage of boot Tomas Pilar (tpilar)
@ 2017-05-18 15:11 ` Jim.Dailey
  2017-05-18 15:13   ` Tomas Pilar (tpilar)
  0 siblings, 1 reply; 10+ messages in thread
From: Jim.Dailey @ 2017-05-18 15:11 UTC (permalink / raw)
  To: tpilar; +Cc: edk2-devel

Not a helpful comment, but I wanted to air my feelings on the topic:

I view SMBIOS as data strictly for OS-level consumption and not for
any pre-boot code.  I'm sure I'm in the minority, however.

One of the problems is that the BIOS needs to have scanned all
devices/resources and perhaps executed a connect all before the
tables can be generated (or at least completed).

Regards,
Jim

-----Original Message-----
From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Tomas Pilar (tpilar)
Sent: Thursday, May 18, 2017 10:01 AM
To: edk2-devel@lists.01.org
Subject: [edk2] SMBios configuration table not present until late stage of boot

Hi,

I am trying to read the system UUID from the System Table (Type 1) in 
the SMBios set of tables. I am doing this during DriverBinding.Start() 
part of the UEFI_DRIVER initialisation. Unfortunately the 
gST->ConfigurationTable only contains 6 tables and SMBios is not one of 
them.

Once I boot into UEFI shell or start a PXE booting process, the 
gST->ConfigurationTable now contains 8 tables and SMBios is one of the 
two new tables. If I however only boot to a HDD, this never seems to 
happen.

Can someone offer some insight why this might be so and how would I go 
about forcing the platform to provide the SMBios in 
gST->ConfigurationTable at a sensible point?

Incidentally it seems ExitBootServices is not signaled on this platform 
if the boot goes through to HDD either, which is another strange thing ...

Cheers,
Tom



_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: SMBios configuration table not present until late stage of boot
  2017-05-18 15:11 ` Jim.Dailey
@ 2017-05-18 15:13   ` Tomas Pilar (tpilar)
  2017-05-18 15:25     ` Jim.Dailey
  0 siblings, 1 reply; 10+ messages in thread
From: Tomas Pilar (tpilar) @ 2017-05-18 15:13 UTC (permalink / raw)
  To: Jim.Dailey; +Cc: edk2-devel

This does make sense. Do you have a suggestion how I would go about 
finding/creating a unique identifier for the system during preboot?

Cheers,
Tom

On 18/05/17 16:11, Jim.Dailey@dell.com wrote:
> Not a helpful comment, but I wanted to air my feelings on the topic:
>
> I view SMBIOS as data strictly for OS-level consumption and not for
> any pre-boot code.  I'm sure I'm in the minority, however.
>
> One of the problems is that the BIOS needs to have scanned all
> devices/resources and perhaps executed a connect all before the
> tables can be generated (or at least completed).
>
> Regards,
> Jim
>
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Tomas Pilar (tpilar)
> Sent: Thursday, May 18, 2017 10:01 AM
> To: edk2-devel@lists.01.org
> Subject: [edk2] SMBios configuration table not present until late stage of boot
>
> Hi,
>
> I am trying to read the system UUID from the System Table (Type 1) in
> the SMBios set of tables. I am doing this during DriverBinding.Start()
> part of the UEFI_DRIVER initialisation. Unfortunately the
> gST->ConfigurationTable only contains 6 tables and SMBios is not one of
> them.
>
> Once I boot into UEFI shell or start a PXE booting process, the
> gST->ConfigurationTable now contains 8 tables and SMBios is one of the
> two new tables. If I however only boot to a HDD, this never seems to
> happen.
>
> Can someone offer some insight why this might be so and how would I go
> about forcing the platform to provide the SMBios in
> gST->ConfigurationTable at a sensible point?
>
> Incidentally it seems ExitBootServices is not signaled on this platform
> if the boot goes through to HDD either, which is another strange thing ...
>
> Cheers,
> Tom
>
>
>
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: SMBios configuration table not present until late stage of boot
  2017-05-18 15:13   ` Tomas Pilar (tpilar)
@ 2017-05-18 15:25     ` Jim.Dailey
  2017-05-18 15:28       ` Tomas Pilar (tpilar)
  0 siblings, 1 reply; 10+ messages in thread
From: Jim.Dailey @ 2017-05-18 15:25 UTC (permalink / raw)
  To: tpilar; +Cc: edk2-devel

It is a tricky problem.

What I would like is for a new protocol to be defined, which should
not rely on devices, to contain certain identifying information
like this that would be useful to device drivers. It could be
created early in DXE.

What I fear is some future requirement that SMBIOS be made available
at some definitive time pre-OS boot.

You may have to get support from the BIOS vendor. If you are doing a
driver for a particular system, that might not be too bad of a
solution; but if you're trying to develop some generic driver, I
don't have a good suggestion.

Regards,
Jim

-----Original Message-----
From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Tomas Pilar (tpilar)
Sent: Thursday, May 18, 2017 10:14 AM
To: Dailey, Jim <Jim_Dailey@Dell.com>
Cc: edk2-devel@lists.01.org
Subject: Re: [edk2] SMBios configuration table not present until late stage of boot

This does make sense. Do you have a suggestion how I would go about 
finding/creating a unique identifier for the system during preboot?

Cheers,
Tom

On 18/05/17 16:11, Jim.Dailey@dell.com wrote:
> Not a helpful comment, but I wanted to air my feelings on the topic:
>
> I view SMBIOS as data strictly for OS-level consumption and not for
> any pre-boot code.  I'm sure I'm in the minority, however.
>
> One of the problems is that the BIOS needs to have scanned all
> devices/resources and perhaps executed a connect all before the
> tables can be generated (or at least completed).
>
> Regards,
> Jim
>
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Tomas Pilar (tpilar)
> Sent: Thursday, May 18, 2017 10:01 AM
> To: edk2-devel@lists.01.org
> Subject: [edk2] SMBios configuration table not present until late stage of boot
>
> Hi,
>
> I am trying to read the system UUID from the System Table (Type 1) in
> the SMBios set of tables. I am doing this during DriverBinding.Start()
> part of the UEFI_DRIVER initialisation. Unfortunately the
> gST->ConfigurationTable only contains 6 tables and SMBios is not one of
> them.
>
> Once I boot into UEFI shell or start a PXE booting process, the
> gST->ConfigurationTable now contains 8 tables and SMBios is one of the
> two new tables. If I however only boot to a HDD, this never seems to
> happen.
>
> Can someone offer some insight why this might be so and how would I go
> about forcing the platform to provide the SMBios in
> gST->ConfigurationTable at a sensible point?
>
> Incidentally it seems ExitBootServices is not signaled on this platform
> if the boot goes through to HDD either, which is another strange thing ...
>
> Cheers,
> Tom
>
>
>
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: SMBios configuration table not present until late stage of boot
  2017-05-18 15:25     ` Jim.Dailey
@ 2017-05-18 15:28       ` Tomas Pilar (tpilar)
  2017-05-18 17:22         ` Andrew Fish
  2017-05-18 18:26         ` Laszlo Ersek
  0 siblings, 2 replies; 10+ messages in thread
From: Tomas Pilar (tpilar) @ 2017-05-18 15:28 UTC (permalink / raw)
  To: Jim.Dailey; +Cc: edk2-devel

This is what I was afraid of. I am writing an IHV network driver that 
lives in optionROM.

Cheers,
Tom

On 18/05/17 16:25, Jim.Dailey@dell.com wrote:
> It is a tricky problem.
>
> What I would like is for a new protocol to be defined, which should
> not rely on devices, to contain certain identifying information
> like this that would be useful to device drivers. It could be
> created early in DXE.
>
> What I fear is some future requirement that SMBIOS be made available
> at some definitive time pre-OS boot.
>
> You may have to get support from the BIOS vendor. If you are doing a
> driver for a particular system, that might not be too bad of a
> solution; but if you're trying to develop some generic driver, I
> don't have a good suggestion.
>
> Regards,
> Jim
>
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Tomas Pilar (tpilar)
> Sent: Thursday, May 18, 2017 10:14 AM
> To: Dailey, Jim <Jim_Dailey@Dell.com>
> Cc: edk2-devel@lists.01.org
> Subject: Re: [edk2] SMBios configuration table not present until late stage of boot
>
> This does make sense. Do you have a suggestion how I would go about
> finding/creating a unique identifier for the system during preboot?
>
> Cheers,
> Tom
>
> On 18/05/17 16:11, Jim.Dailey@dell.com wrote:
>> Not a helpful comment, but I wanted to air my feelings on the topic:
>>
>> I view SMBIOS as data strictly for OS-level consumption and not for
>> any pre-boot code.  I'm sure I'm in the minority, however.
>>
>> One of the problems is that the BIOS needs to have scanned all
>> devices/resources and perhaps executed a connect all before the
>> tables can be generated (or at least completed).
>>
>> Regards,
>> Jim
>>
>> -----Original Message-----
>> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Tomas Pilar (tpilar)
>> Sent: Thursday, May 18, 2017 10:01 AM
>> To: edk2-devel@lists.01.org
>> Subject: [edk2] SMBios configuration table not present until late stage of boot
>>
>> Hi,
>>
>> I am trying to read the system UUID from the System Table (Type 1) in
>> the SMBios set of tables. I am doing this during DriverBinding.Start()
>> part of the UEFI_DRIVER initialisation. Unfortunately the
>> gST->ConfigurationTable only contains 6 tables and SMBios is not one of
>> them.
>>
>> Once I boot into UEFI shell or start a PXE booting process, the
>> gST->ConfigurationTable now contains 8 tables and SMBios is one of the
>> two new tables. If I however only boot to a HDD, this never seems to
>> happen.
>>
>> Can someone offer some insight why this might be so and how would I go
>> about forcing the platform to provide the SMBios in
>> gST->ConfigurationTable at a sensible point?
>>
>> Incidentally it seems ExitBootServices is not signaled on this platform
>> if the boot goes through to HDD either, which is another strange thing ...
>>
>> Cheers,
>> Tom
>>
>>
>>
>> _______________________________________________
>> edk2-devel mailing list
>> edk2-devel@lists.01.org
>> https://lists.01.org/mailman/listinfo/edk2-devel
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: SMBios configuration table not present until late stage of boot
  2017-05-18 15:28       ` Tomas Pilar (tpilar)
@ 2017-05-18 17:22         ` Andrew Fish
  2017-05-18 18:26         ` Laszlo Ersek
  1 sibling, 0 replies; 10+ messages in thread
From: Andrew Fish @ 2017-05-18 17:22 UTC (permalink / raw)
  To: Tomas Pilar (tpilar); +Cc: Jim.Dailey, edk2-devel


> On May 18, 2017, at 8:28 AM, Tomas Pilar (tpilar) <tpilar@solarflare.com> wrote:
> 
> This is what I was afraid of. I am writing an IHV network driver that lives in optionROM.
> 

Tomas,

I think this issue is fixed in the current Specs and edk2 code.  The PI Spec defines an Protocol, gEfiSmbiosProtocolGuid, for SMBIOS and the current edk2 implementation publishes the tables as data comes in. 

https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.c#L516

  //
  // Some UEFI drivers (such as network) need some information in SMBIOS table.
  // Here we create SMBIOS table and publish it in
  // configuration table, so other UEFI drivers can get SMBIOS table from
  // configuration table without depending on PI SMBIOS protocol.
  //
  SmbiosTableConstruction (Smbios32BitTable, Smbios64BitTable);

Looks like your issue is working on older systems?

Thanks,

Andrew Fish

> Cheers,
> Tom
> 
> On 18/05/17 16:25, Jim.Dailey@dell.com wrote:
>> It is a tricky problem.
>> 
>> What I would like is for a new protocol to be defined, which should
>> not rely on devices, to contain certain identifying information
>> like this that would be useful to device drivers. It could be
>> created early in DXE.
>> 
>> What I fear is some future requirement that SMBIOS be made available
>> at some definitive time pre-OS boot.
>> 
>> You may have to get support from the BIOS vendor. If you are doing a
>> driver for a particular system, that might not be too bad of a
>> solution; but if you're trying to develop some generic driver, I
>> don't have a good suggestion.
>> 
>> Regards,
>> Jim
>> 
>> -----Original Message-----
>> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Tomas Pilar (tpilar)
>> Sent: Thursday, May 18, 2017 10:14 AM
>> To: Dailey, Jim <Jim_Dailey@Dell.com>
>> Cc: edk2-devel@lists.01.org
>> Subject: Re: [edk2] SMBios configuration table not present until late stage of boot
>> 
>> This does make sense. Do you have a suggestion how I would go about
>> finding/creating a unique identifier for the system during preboot?
>> 
>> Cheers,
>> Tom
>> 
>> On 18/05/17 16:11, Jim.Dailey@dell.com wrote:
>>> Not a helpful comment, but I wanted to air my feelings on the topic:
>>> 
>>> I view SMBIOS as data strictly for OS-level consumption and not for
>>> any pre-boot code.  I'm sure I'm in the minority, however.
>>> 
>>> One of the problems is that the BIOS needs to have scanned all
>>> devices/resources and perhaps executed a connect all before the
>>> tables can be generated (or at least completed).
>>> 
>>> Regards,
>>> Jim
>>> 
>>> -----Original Message-----
>>> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Tomas Pilar (tpilar)
>>> Sent: Thursday, May 18, 2017 10:01 AM
>>> To: edk2-devel@lists.01.org
>>> Subject: [edk2] SMBios configuration table not present until late stage of boot
>>> 
>>> Hi,
>>> 
>>> I am trying to read the system UUID from the System Table (Type 1) in
>>> the SMBios set of tables. I am doing this during DriverBinding.Start()
>>> part of the UEFI_DRIVER initialisation. Unfortunately the
>>> gST->ConfigurationTable only contains 6 tables and SMBios is not one of
>>> them.
>>> 
>>> Once I boot into UEFI shell or start a PXE booting process, the
>>> gST->ConfigurationTable now contains 8 tables and SMBios is one of the
>>> two new tables. If I however only boot to a HDD, this never seems to
>>> happen.
>>> 
>>> Can someone offer some insight why this might be so and how would I go
>>> about forcing the platform to provide the SMBios in
>>> gST->ConfigurationTable at a sensible point?
>>> 
>>> Incidentally it seems ExitBootServices is not signaled on this platform
>>> if the boot goes through to HDD either, which is another strange thing ...
>>> 
>>> Cheers,
>>> Tom
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> edk2-devel mailing list
>>> edk2-devel@lists.01.org
>>> https://lists.01.org/mailman/listinfo/edk2-devel
>> _______________________________________________
>> edk2-devel mailing list
>> edk2-devel@lists.01.org
>> https://lists.01.org/mailman/listinfo/edk2-devel
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: SMBios configuration table not present until late stage of boot
  2017-05-18 15:28       ` Tomas Pilar (tpilar)
  2017-05-18 17:22         ` Andrew Fish
@ 2017-05-18 18:26         ` Laszlo Ersek
  2017-05-19 10:32           ` Tomas Pilar (tpilar)
  1 sibling, 1 reply; 10+ messages in thread
From: Laszlo Ersek @ 2017-05-18 18:26 UTC (permalink / raw)
  To: Tomas Pilar (tpilar), Jim.Dailey; +Cc: edk2-devel

On 05/18/17 17:28, Tomas Pilar (tpilar) wrote:
> This is what I was afraid of. I am writing an IHV network driver that
> lives in optionROM.

Out of curiosity, if you can share it, what do you need the sytem UUID
in a network driver for?

Thank you,
Laszlo

> 
> Cheers,
> Tom
> 
> On 18/05/17 16:25, Jim.Dailey@dell.com wrote:
>> It is a tricky problem.
>>
>> What I would like is for a new protocol to be defined, which should
>> not rely on devices, to contain certain identifying information
>> like this that would be useful to device drivers. It could be
>> created early in DXE.
>>
>> What I fear is some future requirement that SMBIOS be made available
>> at some definitive time pre-OS boot.
>>
>> You may have to get support from the BIOS vendor. If you are doing a
>> driver for a particular system, that might not be too bad of a
>> solution; but if you're trying to develop some generic driver, I
>> don't have a good suggestion.
>>
>> Regards,
>> Jim
>>
>> -----Original Message-----
>> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
>> Tomas Pilar (tpilar)
>> Sent: Thursday, May 18, 2017 10:14 AM
>> To: Dailey, Jim <Jim_Dailey@Dell.com>
>> Cc: edk2-devel@lists.01.org
>> Subject: Re: [edk2] SMBios configuration table not present until late
>> stage of boot
>>
>> This does make sense. Do you have a suggestion how I would go about
>> finding/creating a unique identifier for the system during preboot?
>>
>> Cheers,
>> Tom
>>
>> On 18/05/17 16:11, Jim.Dailey@dell.com wrote:
>>> Not a helpful comment, but I wanted to air my feelings on the topic:
>>>
>>> I view SMBIOS as data strictly for OS-level consumption and not for
>>> any pre-boot code.  I'm sure I'm in the minority, however.
>>>
>>> One of the problems is that the BIOS needs to have scanned all
>>> devices/resources and perhaps executed a connect all before the
>>> tables can be generated (or at least completed).
>>>
>>> Regards,
>>> Jim
>>>
>>> -----Original Message-----
>>> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf
>>> Of Tomas Pilar (tpilar)
>>> Sent: Thursday, May 18, 2017 10:01 AM
>>> To: edk2-devel@lists.01.org
>>> Subject: [edk2] SMBios configuration table not present until late
>>> stage of boot
>>>
>>> Hi,
>>>
>>> I am trying to read the system UUID from the System Table (Type 1) in
>>> the SMBios set of tables. I am doing this during DriverBinding.Start()
>>> part of the UEFI_DRIVER initialisation. Unfortunately the
>>> gST->ConfigurationTable only contains 6 tables and SMBios is not one of
>>> them.
>>>
>>> Once I boot into UEFI shell or start a PXE booting process, the
>>> gST->ConfigurationTable now contains 8 tables and SMBios is one of the
>>> two new tables. If I however only boot to a HDD, this never seems to
>>> happen.
>>>
>>> Can someone offer some insight why this might be so and how would I go
>>> about forcing the platform to provide the SMBios in
>>> gST->ConfigurationTable at a sensible point?
>>>
>>> Incidentally it seems ExitBootServices is not signaled on this platform
>>> if the boot goes through to HDD either, which is another strange
>>> thing ...
>>>
>>> Cheers,
>>> Tom
>>>
>>>
>>>
>>> _______________________________________________
>>> edk2-devel mailing list
>>> edk2-devel@lists.01.org
>>> https://lists.01.org/mailman/listinfo/edk2-devel
>> _______________________________________________
>> edk2-devel mailing list
>> edk2-devel@lists.01.org
>> https://lists.01.org/mailman/listinfo/edk2-devel
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: SMBios configuration table not present until late stage of boot
  2017-05-18 18:26         ` Laszlo Ersek
@ 2017-05-19 10:32           ` Tomas Pilar (tpilar)
  2017-05-19 17:36             ` Andrew Fish
  2017-05-19 20:48             ` Laszlo Ersek
  0 siblings, 2 replies; 10+ messages in thread
From: Tomas Pilar (tpilar) @ 2017-05-19 10:32 UTC (permalink / raw)
  To: Laszlo Ersek, Jim.Dailey; +Cc: edk2-devel

The problem to solve is uniquely and persistently identifying which NICs 
are grouped together in which host to a third party management system 
over LAN during preboot in a reasonably secure way.

If we use a random generated UUID every reboot, we're not persistent. If 
we store the UUID across reboot, you could take the NIC out and move it 
to a different host and keep the ID. So the idea was to construct it 
from either the System UUID or using mobo/cpu serial numbers.

Cheers,

Tom

On 18/05/17 19:26, Laszlo Ersek wrote:
> On 05/18/17 17:28, Tomas Pilar (tpilar) wrote:
>> This is what I was afraid of. I am writing an IHV network driver that
>> lives in optionROM.
> Out of curiosity, if you can share it, what do you need the sytem UUID
> in a network driver for?
>
> Thank you,
> Laszlo
>
>> Cheers,
>> Tom
>>
>> On 18/05/17 16:25, Jim.Dailey@dell.com wrote:
>>> It is a tricky problem.
>>>
>>> What I would like is for a new protocol to be defined, which should
>>> not rely on devices, to contain certain identifying information
>>> like this that would be useful to device drivers. It could be
>>> created early in DXE.
>>>
>>> What I fear is some future requirement that SMBIOS be made available
>>> at some definitive time pre-OS boot.
>>>
>>> You may have to get support from the BIOS vendor. If you are doing a
>>> driver for a particular system, that might not be too bad of a
>>> solution; but if you're trying to develop some generic driver, I
>>> don't have a good suggestion.
>>>
>>> Regards,
>>> Jim
>>>
>>> -----Original Message-----
>>> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
>>> Tomas Pilar (tpilar)
>>> Sent: Thursday, May 18, 2017 10:14 AM
>>> To: Dailey, Jim <Jim_Dailey@Dell.com>
>>> Cc: edk2-devel@lists.01.org
>>> Subject: Re: [edk2] SMBios configuration table not present until late
>>> stage of boot
>>>
>>> This does make sense. Do you have a suggestion how I would go about
>>> finding/creating a unique identifier for the system during preboot?
>>>
>>> Cheers,
>>> Tom
>>>
>>> On 18/05/17 16:11, Jim.Dailey@dell.com wrote:
>>>> Not a helpful comment, but I wanted to air my feelings on the topic:
>>>>
>>>> I view SMBIOS as data strictly for OS-level consumption and not for
>>>> any pre-boot code.  I'm sure I'm in the minority, however.
>>>>
>>>> One of the problems is that the BIOS needs to have scanned all
>>>> devices/resources and perhaps executed a connect all before the
>>>> tables can be generated (or at least completed).
>>>>
>>>> Regards,
>>>> Jim
>>>>
>>>> -----Original Message-----
>>>> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf
>>>> Of Tomas Pilar (tpilar)
>>>> Sent: Thursday, May 18, 2017 10:01 AM
>>>> To: edk2-devel@lists.01.org
>>>> Subject: [edk2] SMBios configuration table not present until late
>>>> stage of boot
>>>>
>>>> Hi,
>>>>
>>>> I am trying to read the system UUID from the System Table (Type 1) in
>>>> the SMBios set of tables. I am doing this during DriverBinding.Start()
>>>> part of the UEFI_DRIVER initialisation. Unfortunately the
>>>> gST->ConfigurationTable only contains 6 tables and SMBios is not one of
>>>> them.
>>>>
>>>> Once I boot into UEFI shell or start a PXE booting process, the
>>>> gST->ConfigurationTable now contains 8 tables and SMBios is one of the
>>>> two new tables. If I however only boot to a HDD, this never seems to
>>>> happen.
>>>>
>>>> Can someone offer some insight why this might be so and how would I go
>>>> about forcing the platform to provide the SMBios in
>>>> gST->ConfigurationTable at a sensible point?
>>>>
>>>> Incidentally it seems ExitBootServices is not signaled on this platform
>>>> if the boot goes through to HDD either, which is another strange
>>>> thing ...
>>>>
>>>> Cheers,
>>>> Tom
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> edk2-devel mailing list
>>>> edk2-devel@lists.01.org
>>>> https://lists.01.org/mailman/listinfo/edk2-devel
>>> _______________________________________________
>>> edk2-devel mailing list
>>> edk2-devel@lists.01.org
>>> https://lists.01.org/mailman/listinfo/edk2-devel
>> _______________________________________________
>> edk2-devel mailing list
>> edk2-devel@lists.01.org
>> https://lists.01.org/mailman/listinfo/edk2-devel



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: SMBios configuration table not present until late stage of boot
  2017-05-19 10:32           ` Tomas Pilar (tpilar)
@ 2017-05-19 17:36             ` Andrew Fish
  2017-05-19 20:48             ` Laszlo Ersek
  1 sibling, 0 replies; 10+ messages in thread
From: Andrew Fish @ 2017-05-19 17:36 UTC (permalink / raw)
  To: Tomas Pilar (tpilar); +Cc: Laszlo Ersek, Jim.Dailey, edk2-devel


> On May 19, 2017, at 3:32 AM, Tomas Pilar (tpilar) <tpilar@solarflare.com> wrote:
> 
> The problem to solve is uniquely and persistently identifying which NICs are grouped together in which host to a third party management system over LAN during preboot in a reasonably secure way.
> 
> If we use a random generated UUID every reboot, we're not persistent. If we store the UUID across reboot, you could take the NIC out and move it to a different host and keep the ID. So the idea was to construct it from either the System UUID or using mobo/cpu serial numbers.
> 

The PXE network boot stack also uses the system UUID so the server can optionally send a custom image back to the system. So your requirement does not seem unreasonable. 

Thanks,

Andrew Fish

> Cheers,
> 
> Tom
> 
> On 18/05/17 19:26, Laszlo Ersek wrote:
>> On 05/18/17 17:28, Tomas Pilar (tpilar) wrote:
>>> This is what I was afraid of. I am writing an IHV network driver that
>>> lives in optionROM.
>> Out of curiosity, if you can share it, what do you need the sytem UUID
>> in a network driver for?
>> 
>> Thank you,
>> Laszlo
>> 
>>> Cheers,
>>> Tom
>>> 
>>> On 18/05/17 16:25, Jim.Dailey@dell.com wrote:
>>>> It is a tricky problem.
>>>> 
>>>> What I would like is for a new protocol to be defined, which should
>>>> not rely on devices, to contain certain identifying information
>>>> like this that would be useful to device drivers. It could be
>>>> created early in DXE.
>>>> 
>>>> What I fear is some future requirement that SMBIOS be made available
>>>> at some definitive time pre-OS boot.
>>>> 
>>>> You may have to get support from the BIOS vendor. If you are doing a
>>>> driver for a particular system, that might not be too bad of a
>>>> solution; but if you're trying to develop some generic driver, I
>>>> don't have a good suggestion.
>>>> 
>>>> Regards,
>>>> Jim
>>>> 
>>>> -----Original Message-----
>>>> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
>>>> Tomas Pilar (tpilar)
>>>> Sent: Thursday, May 18, 2017 10:14 AM
>>>> To: Dailey, Jim <Jim_Dailey@Dell.com>
>>>> Cc: edk2-devel@lists.01.org
>>>> Subject: Re: [edk2] SMBios configuration table not present until late
>>>> stage of boot
>>>> 
>>>> This does make sense. Do you have a suggestion how I would go about
>>>> finding/creating a unique identifier for the system during preboot?
>>>> 
>>>> Cheers,
>>>> Tom
>>>> 
>>>> On 18/05/17 16:11, Jim.Dailey@dell.com wrote:
>>>>> Not a helpful comment, but I wanted to air my feelings on the topic:
>>>>> 
>>>>> I view SMBIOS as data strictly for OS-level consumption and not for
>>>>> any pre-boot code.  I'm sure I'm in the minority, however.
>>>>> 
>>>>> One of the problems is that the BIOS needs to have scanned all
>>>>> devices/resources and perhaps executed a connect all before the
>>>>> tables can be generated (or at least completed).
>>>>> 
>>>>> Regards,
>>>>> Jim
>>>>> 
>>>>> -----Original Message-----
>>>>> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf
>>>>> Of Tomas Pilar (tpilar)
>>>>> Sent: Thursday, May 18, 2017 10:01 AM
>>>>> To: edk2-devel@lists.01.org
>>>>> Subject: [edk2] SMBios configuration table not present until late
>>>>> stage of boot
>>>>> 
>>>>> Hi,
>>>>> 
>>>>> I am trying to read the system UUID from the System Table (Type 1) in
>>>>> the SMBios set of tables. I am doing this during DriverBinding.Start()
>>>>> part of the UEFI_DRIVER initialisation. Unfortunately the
>>>>> gST->ConfigurationTable only contains 6 tables and SMBios is not one of
>>>>> them.
>>>>> 
>>>>> Once I boot into UEFI shell or start a PXE booting process, the
>>>>> gST->ConfigurationTable now contains 8 tables and SMBios is one of the
>>>>> two new tables. If I however only boot to a HDD, this never seems to
>>>>> happen.
>>>>> 
>>>>> Can someone offer some insight why this might be so and how would I go
>>>>> about forcing the platform to provide the SMBios in
>>>>> gST->ConfigurationTable at a sensible point?
>>>>> 
>>>>> Incidentally it seems ExitBootServices is not signaled on this platform
>>>>> if the boot goes through to HDD either, which is another strange
>>>>> thing ...
>>>>> 
>>>>> Cheers,
>>>>> Tom
>>>>> 
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> edk2-devel mailing list
>>>>> edk2-devel@lists.01.org
>>>>> https://lists.01.org/mailman/listinfo/edk2-devel
>>>> _______________________________________________
>>>> edk2-devel mailing list
>>>> edk2-devel@lists.01.org
>>>> https://lists.01.org/mailman/listinfo/edk2-devel
>>> _______________________________________________
>>> edk2-devel mailing list
>>> edk2-devel@lists.01.org
>>> https://lists.01.org/mailman/listinfo/edk2-devel
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: SMBios configuration table not present until late stage of boot
  2017-05-19 10:32           ` Tomas Pilar (tpilar)
  2017-05-19 17:36             ` Andrew Fish
@ 2017-05-19 20:48             ` Laszlo Ersek
  1 sibling, 0 replies; 10+ messages in thread
From: Laszlo Ersek @ 2017-05-19 20:48 UTC (permalink / raw)
  To: Tomas Pilar (tpilar), Jim.Dailey; +Cc: edk2-devel

On 05/19/17 12:32, Tomas Pilar (tpilar) wrote:
> The problem to solve is uniquely and persistently identifying which NICs
> are grouped together in which host to a third party management system
> over LAN during preboot in a reasonably secure way.
> 
> If we use a random generated UUID every reboot, we're not persistent. If
> we store the UUID across reboot, you could take the NIC out and move it
> to a different host and keep the ID. So the idea was to construct it
> from either the System UUID or using mobo/cpu serial numbers.

I think this platform smbios DXE driver might suffer from the
(apparently) common problem "let me do all my stuff in a ReadyToBoot
callback". To me this seems like just another example why that cannot
work, generally speaking -- a bunch of DXE drivers waiting for
"everything else" to complete their work, intending to get a "full"
system description as the last agent, and then to install stuff solely
for the OS.

This results in unspecified behavior if at least two agents with
inter-dependencies do this. Instead, the platform smbios DXE driver
should have a depex on the smbios protocol, and at dispatch time, it
should install all the tables at once (from its entry point) that are
possible to compute & install right then. I would assume type 1 is such
a table.

(just my opinion)

Thanks
Laszlo

> On 18/05/17 19:26, Laszlo Ersek wrote:
>> On 05/18/17 17:28, Tomas Pilar (tpilar) wrote:
>>> This is what I was afraid of. I am writing an IHV network driver that
>>> lives in optionROM.
>> Out of curiosity, if you can share it, what do you need the sytem UUID
>> in a network driver for?
>>
>> Thank you,
>> Laszlo
>>
>>> Cheers,
>>> Tom
>>>
>>> On 18/05/17 16:25, Jim.Dailey@dell.com wrote:
>>>> It is a tricky problem.
>>>>
>>>> What I would like is for a new protocol to be defined, which should
>>>> not rely on devices, to contain certain identifying information
>>>> like this that would be useful to device drivers. It could be
>>>> created early in DXE.
>>>>
>>>> What I fear is some future requirement that SMBIOS be made available
>>>> at some definitive time pre-OS boot.
>>>>
>>>> You may have to get support from the BIOS vendor. If you are doing a
>>>> driver for a particular system, that might not be too bad of a
>>>> solution; but if you're trying to develop some generic driver, I
>>>> don't have a good suggestion.
>>>>
>>>> Regards,
>>>> Jim
>>>>
>>>> -----Original Message-----
>>>> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
>>>> Tomas Pilar (tpilar)
>>>> Sent: Thursday, May 18, 2017 10:14 AM
>>>> To: Dailey, Jim <Jim_Dailey@Dell.com>
>>>> Cc: edk2-devel@lists.01.org
>>>> Subject: Re: [edk2] SMBios configuration table not present until late
>>>> stage of boot
>>>>
>>>> This does make sense. Do you have a suggestion how I would go about
>>>> finding/creating a unique identifier for the system during preboot?
>>>>
>>>> Cheers,
>>>> Tom
>>>>
>>>> On 18/05/17 16:11, Jim.Dailey@dell.com wrote:
>>>>> Not a helpful comment, but I wanted to air my feelings on the topic:
>>>>>
>>>>> I view SMBIOS as data strictly for OS-level consumption and not for
>>>>> any pre-boot code.  I'm sure I'm in the minority, however.
>>>>>
>>>>> One of the problems is that the BIOS needs to have scanned all
>>>>> devices/resources and perhaps executed a connect all before the
>>>>> tables can be generated (or at least completed).
>>>>>
>>>>> Regards,
>>>>> Jim
>>>>>
>>>>> -----Original Message-----
>>>>> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf
>>>>> Of Tomas Pilar (tpilar)
>>>>> Sent: Thursday, May 18, 2017 10:01 AM
>>>>> To: edk2-devel@lists.01.org
>>>>> Subject: [edk2] SMBios configuration table not present until late
>>>>> stage of boot
>>>>>
>>>>> Hi,
>>>>>
>>>>> I am trying to read the system UUID from the System Table (Type 1) in
>>>>> the SMBios set of tables. I am doing this during DriverBinding.Start()
>>>>> part of the UEFI_DRIVER initialisation. Unfortunately the
>>>>> gST->ConfigurationTable only contains 6 tables and SMBios is not
>>>>> one of
>>>>> them.
>>>>>
>>>>> Once I boot into UEFI shell or start a PXE booting process, the
>>>>> gST->ConfigurationTable now contains 8 tables and SMBios is one of the
>>>>> two new tables. If I however only boot to a HDD, this never seems to
>>>>> happen.
>>>>>
>>>>> Can someone offer some insight why this might be so and how would I go
>>>>> about forcing the platform to provide the SMBios in
>>>>> gST->ConfigurationTable at a sensible point?
>>>>>
>>>>> Incidentally it seems ExitBootServices is not signaled on this
>>>>> platform
>>>>> if the boot goes through to HDD either, which is another strange
>>>>> thing ...
>>>>>
>>>>> Cheers,
>>>>> Tom
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> edk2-devel mailing list
>>>>> edk2-devel@lists.01.org
>>>>> https://lists.01.org/mailman/listinfo/edk2-devel
>>>> _______________________________________________
>>>> edk2-devel mailing list
>>>> edk2-devel@lists.01.org
>>>> https://lists.01.org/mailman/listinfo/edk2-devel
>>> _______________________________________________
>>> edk2-devel mailing list
>>> edk2-devel@lists.01.org
>>> https://lists.01.org/mailman/listinfo/edk2-devel
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel



^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2017-05-19 20:48 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-18 15:00 SMBios configuration table not present until late stage of boot Tomas Pilar (tpilar)
2017-05-18 15:11 ` Jim.Dailey
2017-05-18 15:13   ` Tomas Pilar (tpilar)
2017-05-18 15:25     ` Jim.Dailey
2017-05-18 15:28       ` Tomas Pilar (tpilar)
2017-05-18 17:22         ` Andrew Fish
2017-05-18 18:26         ` Laszlo Ersek
2017-05-19 10:32           ` Tomas Pilar (tpilar)
2017-05-19 17:36             ` Andrew Fish
2017-05-19 20:48             ` Laszlo Ersek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox