[edk2,edk2-platforms] Platform/AMD/OverdriveBoard: fix byte order of default MAC addresses

Message ID 20181205201049.10590-1-ard.biesheuvel@linaro.org
State New
Headers show
Series
  • [edk2,edk2-platforms] Platform/AMD/OverdriveBoard: fix byte order of default MAC addresses
Related show

Commit Message

Ard Biesheuvel Dec. 5, 2018, 8:10 p.m.
The PCDs containing the default MAC addresses are of type UINT64,
and so the byte order needs to be inverted. As they are currently,
both default MAC addresses are invalid since they have the multicast
bit set.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

---
 Platform/AMD/OverdriveBoard/OverdriveBoard.dsc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

-- 
2.19.2

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

Comments

Leif Lindholm Dec. 10, 2018, 10:14 p.m. | #1
On Wed, Dec 05, 2018 at 09:10:48PM +0100, Ard Biesheuvel wrote:
> The PCDs containing the default MAC addresses are of type UINT64,

> and so the byte order needs to be inverted. As they are currently,

> both default MAC addresses are invalid since they have the multicast

> bit set.


Ah, oops.
That would also prevent them from being "locally administered" and
hence permissible without registering an entry in the OUI.

However, to reduce someone interpreting the _new_ values that way
instead, could you do one of:
- Adding a comment explaining these are in reverse byte order.
or
- Convert them to the new Array type PCD[1], to make the bytes appear
  in natural order?

[1] edk2 72a1d77694d51914c0dd6aa97dbfa58634b0a4a5

/
    Leif

> Contributed-under: TianoCore Contribution Agreement 1.1

> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> ---

>  Platform/AMD/OverdriveBoard/OverdriveBoard.dsc | 4 ++--

>  1 file changed, 2 insertions(+), 2 deletions(-)

> 

> diff --git a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc

> index 05433d4472e8..2843e51f93f7 100644

> --- a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc

> +++ b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc

> @@ -469,8 +469,8 @@ DEFINE DO_CAPSULE   = FALSE

>    gAmdModulePkgTokenSpaceGuid.PcdPort1NetSpeed|1

>  

>  [PcdsDynamicDefault.common]

> -  gAmdStyxTokenSpaceGuid.PcdEthMacA|0x02A1A2A3A4A5

> -  gAmdStyxTokenSpaceGuid.PcdEthMacB|0x02B1B2B3B4B5

> +  gAmdStyxTokenSpaceGuid.PcdEthMacA|0xA5A4A3A2A102

> +  gAmdStyxTokenSpaceGuid.PcdEthMacB|0xB5B4B3B2B102

>  

>  [PcdsPatchableInModule]

>    gAmdModulePkgTokenSpaceGuid.PcdXgbeUseMacFromIscp|TRUE

> -- 

> 2.19.2

> 

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Ard Biesheuvel Dec. 10, 2018, 10:51 p.m. | #2
On Mon, 10 Dec 2018 at 23:14, Leif Lindholm <leif.lindholm@linaro.org> wrote:
>

> On Wed, Dec 05, 2018 at 09:10:48PM +0100, Ard Biesheuvel wrote:

> > The PCDs containing the default MAC addresses are of type UINT64,

> > and so the byte order needs to be inverted. As they are currently,

> > both default MAC addresses are invalid since they have the multicast

> > bit set.

>

> Ah, oops.

> That would also prevent them from being "locally administered" and

> hence permissible without registering an entry in the OUI.

>

> However, to reduce someone interpreting the _new_ values that way

> instead, could you do one of:

> - Adding a comment explaining these are in reverse byte order.

> or

> - Convert them to the new Array type PCD[1], to make the bytes appear

>   in natural order?

>

> [1] edk2 72a1d77694d51914c0dd6aa97dbfa58634b0a4a5

>


How does one refer to such a PCD from C code?


> > Contributed-under: TianoCore Contribution Agreement 1.1

> > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> > ---

> >  Platform/AMD/OverdriveBoard/OverdriveBoard.dsc | 4 ++--

> >  1 file changed, 2 insertions(+), 2 deletions(-)

> >

> > diff --git a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc

> > index 05433d4472e8..2843e51f93f7 100644

> > --- a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc

> > +++ b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc

> > @@ -469,8 +469,8 @@ DEFINE DO_CAPSULE   = FALSE

> >    gAmdModulePkgTokenSpaceGuid.PcdPort1NetSpeed|1

> >

> >  [PcdsDynamicDefault.common]

> > -  gAmdStyxTokenSpaceGuid.PcdEthMacA|0x02A1A2A3A4A5

> > -  gAmdStyxTokenSpaceGuid.PcdEthMacB|0x02B1B2B3B4B5

> > +  gAmdStyxTokenSpaceGuid.PcdEthMacA|0xA5A4A3A2A102

> > +  gAmdStyxTokenSpaceGuid.PcdEthMacB|0xB5B4B3B2B102

> >

> >  [PcdsPatchableInModule]

> >    gAmdModulePkgTokenSpaceGuid.PcdXgbeUseMacFromIscp|TRUE

> > --

> > 2.19.2

> >

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Leif Lindholm Dec. 10, 2018, 11:33 p.m. | #3
On Mon, Dec 10, 2018 at 11:51:43PM +0100, Ard Biesheuvel wrote:
> On Mon, 10 Dec 2018 at 23:14, Leif Lindholm <leif.lindholm@linaro.org> wrote:

> >

> > On Wed, Dec 05, 2018 at 09:10:48PM +0100, Ard Biesheuvel wrote:

> > > The PCDs containing the default MAC addresses are of type UINT64,

> > > and so the byte order needs to be inverted. As they are currently,

> > > both default MAC addresses are invalid since they have the multicast

> > > bit set.

> >

> > Ah, oops.

> > That would also prevent them from being "locally administered" and

> > hence permissible without registering an entry in the OUI.

> >

> > However, to reduce someone interpreting the _new_ values that way

> > instead, could you do one of:

> > - Adding a comment explaining these are in reverse byte order.

> > or

> > - Convert them to the new Array type PCD[1], to make the bytes appear

> >   in natural order?

> >

> > [1] edk2 72a1d77694d51914c0dd6aa97dbfa58634b0a4a5

>

> How does one refer to such a PCD from C code?


Good question :)

/
    Leif

> > > Contributed-under: TianoCore Contribution Agreement 1.1

> > > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> > > ---

> > >  Platform/AMD/OverdriveBoard/OverdriveBoard.dsc | 4 ++--

> > >  1 file changed, 2 insertions(+), 2 deletions(-)

> > >

> > > diff --git a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc

> > > index 05433d4472e8..2843e51f93f7 100644

> > > --- a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc

> > > +++ b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc

> > > @@ -469,8 +469,8 @@ DEFINE DO_CAPSULE   = FALSE

> > >    gAmdModulePkgTokenSpaceGuid.PcdPort1NetSpeed|1

> > >

> > >  [PcdsDynamicDefault.common]

> > > -  gAmdStyxTokenSpaceGuid.PcdEthMacA|0x02A1A2A3A4A5

> > > -  gAmdStyxTokenSpaceGuid.PcdEthMacB|0x02B1B2B3B4B5

> > > +  gAmdStyxTokenSpaceGuid.PcdEthMacA|0xA5A4A3A2A102

> > > +  gAmdStyxTokenSpaceGuid.PcdEthMacB|0xB5B4B3B2B102

> > >

> > >  [PcdsPatchableInModule]

> > >    gAmdModulePkgTokenSpaceGuid.PcdXgbeUseMacFromIscp|TRUE

> > > --

> > > 2.19.2

> > >

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Andrew Fish via edk2-devel Dec. 10, 2018, 11:38 p.m. | #4
> On Dec 10, 2018, at 3:33 PM, Leif Lindholm <leif.lindholm@linaro.org> wrote:

> 

> On Mon, Dec 10, 2018 at 11:51:43PM +0100, Ard Biesheuvel wrote:

>> On Mon, 10 Dec 2018 at 23:14, Leif Lindholm <leif.lindholm@linaro.org> wrote:

>>> 

>>> On Wed, Dec 05, 2018 at 09:10:48PM +0100, Ard Biesheuvel wrote:

>>>> The PCDs containing the default MAC addresses are of type UINT64,

>>>> and so the byte order needs to be inverted. As they are currently,

>>>> both default MAC addresses are invalid since they have the multicast

>>>> bit set.

>>> 

>>> Ah, oops.

>>> That would also prevent them from being "locally administered" and

>>> hence permissible without registering an entry in the OUI.

>>> 

>>> However, to reduce someone interpreting the _new_ values that way

>>> instead, could you do one of:

>>> - Adding a comment explaining these are in reverse byte order.

>>> or

>>> - Convert them to the new Array type PCD[1], to make the bytes appear

>>>  in natural order?

>>> 

>>> [1] edk2 72a1d77694d51914c0dd6aa97dbfa58634b0a4a5

>> 

>> How does one refer to such a PCD from C code?

> 

> Good question :)

> 


Seems like you would need cast the pointer to the data structure in the C code. If I understand correctly the change in the PCD creation code is you can now better structure the data, but it is no different on the consumer end and you got a blob of bytes in both cases. 

Thanks,

Andrew Fish

> /

>    Leif

> 

>>>> Contributed-under: TianoCore Contribution Agreement 1.1

>>>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

>>>> ---

>>>> Platform/AMD/OverdriveBoard/OverdriveBoard.dsc | 4 ++--

>>>> 1 file changed, 2 insertions(+), 2 deletions(-)

>>>> 

>>>> diff --git a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc

>>>> index 05433d4472e8..2843e51f93f7 100644

>>>> --- a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc

>>>> +++ b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc

>>>> @@ -469,8 +469,8 @@ DEFINE DO_CAPSULE   = FALSE

>>>>   gAmdModulePkgTokenSpaceGuid.PcdPort1NetSpeed|1

>>>> 

>>>> [PcdsDynamicDefault.common]

>>>> -  gAmdStyxTokenSpaceGuid.PcdEthMacA|0x02A1A2A3A4A5

>>>> -  gAmdStyxTokenSpaceGuid.PcdEthMacB|0x02B1B2B3B4B5

>>>> +  gAmdStyxTokenSpaceGuid.PcdEthMacA|0xA5A4A3A2A102

>>>> +  gAmdStyxTokenSpaceGuid.PcdEthMacB|0xB5B4B3B2B102

>>>> 

>>>> [PcdsPatchableInModule]

>>>>   gAmdModulePkgTokenSpaceGuid.PcdXgbeUseMacFromIscp|TRUE

>>>> --

>>>> 2.19.2

>>>> 

> _______________________________________________

> 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
Gao, Liming Dec. 11, 2018, 12:53 a.m. | #5
If PCD is related to one structure in DEC/DSC, it can be refer as structure pointer in C source code. Here is wiki for its usage: https://github.com/lgao4/edk2/wiki/StrucutrePcd-Usage

Thanks
Liming
>-----Original Message-----

>From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of

>Andrew Fish via edk2-devel

>Sent: Tuesday, December 11, 2018 7:39 AM

>To: Leif Lindholm <leif.lindholm@linaro.org>

>Cc: edk2-devel@lists.01.org

>Subject: Re: [edk2] [PATCH edk2-platforms] Platform/AMD/OverdriveBoard:

>fix byte order of default MAC addresses

>

>

>

>> On Dec 10, 2018, at 3:33 PM, Leif Lindholm <leif.lindholm@linaro.org> wrote:

>>

>> On Mon, Dec 10, 2018 at 11:51:43PM +0100, Ard Biesheuvel wrote:

>>> On Mon, 10 Dec 2018 at 23:14, Leif Lindholm <leif.lindholm@linaro.org>

>wrote:

>>>>

>>>> On Wed, Dec 05, 2018 at 09:10:48PM +0100, Ard Biesheuvel wrote:

>>>>> The PCDs containing the default MAC addresses are of type UINT64,

>>>>> and so the byte order needs to be inverted. As they are currently,

>>>>> both default MAC addresses are invalid since they have the multicast

>>>>> bit set.

>>>>

>>>> Ah, oops.

>>>> That would also prevent them from being "locally administered" and

>>>> hence permissible without registering an entry in the OUI.

>>>>

>>>> However, to reduce someone interpreting the _new_ values that way

>>>> instead, could you do one of:

>>>> - Adding a comment explaining these are in reverse byte order.

>>>> or

>>>> - Convert them to the new Array type PCD[1], to make the bytes appear

>>>>  in natural order?

>>>>

>>>> [1] edk2 72a1d77694d51914c0dd6aa97dbfa58634b0a4a5

>>>

>>> How does one refer to such a PCD from C code?

>>

>> Good question :)

>>

>

>Seems like you would need cast the pointer to the data structure in the C

>code. If I understand correctly the change in the PCD creation code is you can

>now better structure the data, but it is no different on the consumer end and

>you got a blob of bytes in both cases.

>

>Thanks,

>

>Andrew Fish

>

>> /

>>    Leif

>>

>>>>> Contributed-under: TianoCore Contribution Agreement 1.1

>>>>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

>>>>> ---

>>>>> Platform/AMD/OverdriveBoard/OverdriveBoard.dsc | 4 ++--

>>>>> 1 file changed, 2 insertions(+), 2 deletions(-)

>>>>>

>>>>> diff --git a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc

>b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc

>>>>> index 05433d4472e8..2843e51f93f7 100644

>>>>> --- a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc

>>>>> +++ b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc

>>>>> @@ -469,8 +469,8 @@ DEFINE DO_CAPSULE   = FALSE

>>>>>   gAmdModulePkgTokenSpaceGuid.PcdPort1NetSpeed|1

>>>>>

>>>>> [PcdsDynamicDefault.common]

>>>>> -  gAmdStyxTokenSpaceGuid.PcdEthMacA|0x02A1A2A3A4A5

>>>>> -  gAmdStyxTokenSpaceGuid.PcdEthMacB|0x02B1B2B3B4B5

>>>>> +  gAmdStyxTokenSpaceGuid.PcdEthMacA|0xA5A4A3A2A102

>>>>> +  gAmdStyxTokenSpaceGuid.PcdEthMacB|0xB5B4B3B2B102

>>>>>

>>>>> [PcdsPatchableInModule]

>>>>>   gAmdModulePkgTokenSpaceGuid.PcdXgbeUseMacFromIscp|TRUE

>>>>> --

>>>>> 2.19.2

>>>>>

>> _______________________________________________

>> 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
Ard Biesheuvel Dec. 11, 2018, 7:54 a.m. | #6
On Tue, 11 Dec 2018 at 01:53, Gao, Liming <liming.gao@intel.com> wrote:
>
> If PCD is related to one structure in DEC/DSC, it can be refer as structure pointer in C source code. Here is wiki for its usage: https://github.com/lgao4/edk2/wiki/StrucutrePcd-Usage
>

OK so I now have this in my .dec file

[PcdsDynamic]
  gAmdStyxTokenSpaceGuid.PcdEthMacA|{0}|UINT8[6]|0x000d0001
  gAmdStyxTokenSpaceGuid.PcdEthMacB|{0}|UINT8[6]|0x000d0002

and this in my .dsc file

[PcdsDynamicDefault.common]
  gAmdStyxTokenSpaceGuid.PcdEthMacA|{0x2,0xA1,0xA2,0xA3,0xA4,0xA5}
  gAmdStyxTokenSpaceGuid.PcdEthMacB|{0x2,0xB1,0xB2,0xB3,0xB4,0xB5}

and the build errors out immediately with:

Processing meta-data .......

build.py...
 : error F015: /home/ard/build/edk2-workspace/Build/Overdrive/RELEASE_GCC5/PcdValueInit/PcdValueInit.c:15:20:
error: ‘gAmdStyxTokenSpaceGuid_PcdEthMacB_DEFAULT_STANDARD_Value’
undeclared (first use in this function)
/home/ard/build/edk2-workspace/Build/Overdrive/RELEASE_GCC5/PcdValueInit/PcdValueInit.c:41:16:
error: ‘gAmdStyxTokenSpaceGuid_PcdEthMacB_DEFAULT_STANDARD_Value’
undeclared (first use in this function)
/home/ard/build/edk2-workspace/Build/Overdrive/RELEASE_GCC5/PcdValueInit/PcdValueInit.c:74:20:
error: ‘gAmdStyxTokenSpaceGuid_PcdEthMacA_DEFAULT_STANDARD_Value’
undeclared (first use in this function)
/home/ard/build/edk2-workspace/Build/Overdrive/RELEASE_GCC5/PcdValueInit/PcdValueInit.c:100:16:
error: ‘gAmdStyxTokenSpaceGuid_PcdEthMacA_DEFAULT_STANDARD_Value’
undeclared (first use in this function)
Gao, Liming Dec. 11, 2018, 1:15 p.m. | #7
BZ https://bugzilla.tianocore.org/show_bug.cgi?id=1390 is submit for it. Bob will fix it. 


> -----Original Message-----

> From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org]

> Sent: Tuesday, December 11, 2018 3:54 PM

> To: Gao, Liming <liming.gao@intel.com>

> Cc: Andrew Fish <afish@apple.com>; Leif Lindholm <leif.lindholm@linaro.org>; edk2-devel@lists.01.org

> Subject: Re: [edk2] [PATCH edk2-platforms] Platform/AMD/OverdriveBoard: fix byte order of default MAC addresses

> 

> On Tue, 11 Dec 2018 at 01:53, Gao, Liming <liming.gao@intel.com> wrote:

> >

> > If PCD is related to one structure in DEC/DSC, it can be refer as structure pointer in C source code. Here is wiki for its usage:

> https://github.com/lgao4/edk2/wiki/StrucutrePcd-Usage

> >

> 

> OK so I now have this in my .dec file

> 

> [PcdsDynamic]

>   gAmdStyxTokenSpaceGuid.PcdEthMacA|{0}|UINT8[6]|0x000d0001

>   gAmdStyxTokenSpaceGuid.PcdEthMacB|{0}|UINT8[6]|0x000d0002

> 

> and this in my .dsc file

> 

> [PcdsDynamicDefault.common]

>   gAmdStyxTokenSpaceGuid.PcdEthMacA|{0x2,0xA1,0xA2,0xA3,0xA4,0xA5}

>   gAmdStyxTokenSpaceGuid.PcdEthMacB|{0x2,0xB1,0xB2,0xB3,0xB4,0xB5}

> 

> and the build errors out immediately with:

> 

> Processing meta-data .......

> 

> build.py...

>  : error F015: /home/ard/build/edk2-workspace/Build/Overdrive/RELEASE_GCC5/PcdValueInit/PcdValueInit.c:15:20:

> error: ‘gAmdStyxTokenSpaceGuid_PcdEthMacB_DEFAULT_STANDARD_Value’

> undeclared (first use in this function)

> /home/ard/build/edk2-workspace/Build/Overdrive/RELEASE_GCC5/PcdValueInit/PcdValueInit.c:41:16:

> error: ‘gAmdStyxTokenSpaceGuid_PcdEthMacB_DEFAULT_STANDARD_Value’

> undeclared (first use in this function)

> /home/ard/build/edk2-workspace/Build/Overdrive/RELEASE_GCC5/PcdValueInit/PcdValueInit.c:74:20:

> error: ‘gAmdStyxTokenSpaceGuid_PcdEthMacA_DEFAULT_STANDARD_Value’

> undeclared (first use in this function)

> /home/ard/build/edk2-workspace/Build/Overdrive/RELEASE_GCC5/PcdValueInit/PcdValueInit.c:100:16:

> error: ‘gAmdStyxTokenSpaceGuid_PcdEthMacA_DEFAULT_STANDARD_Value’

> undeclared (first use in this function)
Feng, Bob C Dec. 11, 2018, 1:38 p.m. | #8
Hi Ard,

Would you please try this format?  While I'll check this issue anyway.

 [PcdsDynamic]
   gAmdStyxTokenSpaceGuid.PcdEthMacA|{CODE({0})}|UINT8[6]|0x000d0001
   gAmdStyxTokenSpaceGuid.PcdEthMacB|{CODE({0})}|UINT8[6]|0x000d0002

 and this in my .dsc file
 
 [PcdsDynamicDefault.common]
   gAmdStyxTokenSpaceGuid.PcdEthMacA|{CODE({0x2,0xA1,0xA2,0xA3,0xA4,0xA5})}
   gAmdStyxTokenSpaceGuid.PcdEthMacB|{CODE({0x2,0xB1,0xB2,0xB3,0xB4,0xB5})}


Thanks,
Bob
-----Original Message-----
From: Gao, Liming 

Sent: Tuesday, December 11, 2018 9:15 PM
To: Ard Biesheuvel <ard.biesheuvel@linaro.org>; Feng, Bob C <bob.c.feng@intel.com>
Cc: Andrew Fish <afish@apple.com>; Leif Lindholm <leif.lindholm@linaro.org>; edk2-devel@lists.01.org
Subject: RE: [edk2] [PATCH edk2-platforms] Platform/AMD/OverdriveBoard: fix byte order of default MAC addresses


BZ https://bugzilla.tianocore.org/show_bug.cgi?id=1390 is submit for it. Bob will fix it. 


> -----Original Message-----

> From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org]

> Sent: Tuesday, December 11, 2018 3:54 PM

> To: Gao, Liming <liming.gao@intel.com>

> Cc: Andrew Fish <afish@apple.com>; Leif Lindholm <leif.lindholm@linaro.org>; edk2-devel@lists.01.org

> Subject: Re: [edk2] [PATCH edk2-platforms] Platform/AMD/OverdriveBoard: fix byte order of default MAC addresses

> 

> On Tue, 11 Dec 2018 at 01:53, Gao, Liming <liming.gao@intel.com> wrote:

> >

> > If PCD is related to one structure in DEC/DSC, it can be refer as structure pointer in C source code. Here is wiki for its usage:

> https://github.com/lgao4/edk2/wiki/StrucutrePcd-Usage

> >

> 

> OK so I now have this in my .dec file

> 

> [PcdsDynamic]

>   gAmdStyxTokenSpaceGuid.PcdEthMacA|{0}|UINT8[6]|0x000d0001

>   gAmdStyxTokenSpaceGuid.PcdEthMacB|{0}|UINT8[6]|0x000d0002

> 

> and this in my .dsc file

> 

> [PcdsDynamicDefault.common]

>   gAmdStyxTokenSpaceGuid.PcdEthMacA|{0x2,0xA1,0xA2,0xA3,0xA4,0xA5}

>   gAmdStyxTokenSpaceGuid.PcdEthMacB|{0x2,0xB1,0xB2,0xB3,0xB4,0xB5}

> 

> and the build errors out immediately with:

> 

> Processing meta-data .......

> 

> build.py...

>  : error F015: /home/ard/build/edk2-workspace/Build/Overdrive/RELEASE_GCC5/PcdValueInit/PcdValueInit.c:15:20:

> error: ‘gAmdStyxTokenSpaceGuid_PcdEthMacB_DEFAULT_STANDARD_Value’

> undeclared (first use in this function)

> /home/ard/build/edk2-workspace/Build/Overdrive/RELEASE_GCC5/PcdValueInit/PcdValueInit.c:41:16:

> error: ‘gAmdStyxTokenSpaceGuid_PcdEthMacB_DEFAULT_STANDARD_Value’

> undeclared (first use in this function)

> /home/ard/build/edk2-workspace/Build/Overdrive/RELEASE_GCC5/PcdValueInit/PcdValueInit.c:74:20:

> error: ‘gAmdStyxTokenSpaceGuid_PcdEthMacA_DEFAULT_STANDARD_Value’

> undeclared (first use in this function)

> /home/ard/build/edk2-workspace/Build/Overdrive/RELEASE_GCC5/PcdValueInit/PcdValueInit.c:100:16:

> error: ‘gAmdStyxTokenSpaceGuid_PcdEthMacA_DEFAULT_STANDARD_Value’

> undeclared (first use in this function)
Ard Biesheuvel Dec. 11, 2018, 1:48 p.m. | #9
On Tue, 11 Dec 2018 at 14:38, Feng, Bob C <bob.c.feng@intel.com> wrote:
>
> Hi Ard,
>
> Would you please try this format?  While I'll check this issue anyway.
>
>  [PcdsDynamic]
>    gAmdStyxTokenSpaceGuid.PcdEthMacA|{CODE({0})}|UINT8[6]|0x000d0001
>    gAmdStyxTokenSpaceGuid.PcdEthMacB|{CODE({0})}|UINT8[6]|0x000d0002
>
>  and this in my .dsc file
>
>  [PcdsDynamicDefault.common]
>    gAmdStyxTokenSpaceGuid.PcdEthMacA|{CODE({0x2,0xA1,0xA2,0xA3,0xA4,0xA5})}
>    gAmdStyxTokenSpaceGuid.PcdEthMacB|{CODE({0x2,0xB1,0xB2,0xB3,0xB4,0xB5})}
>

Processing meta-data .......

build.py...
 : error F015: From DEC Default Value {CODE({0})}:28:9: error:
expected expression before ‘{’ token
From DEC Default Value {CODE({0})}:87:9: error: expected expression
before ‘{’ token


>
> Thanks,
> Bob
> -----Original Message-----
> From: Gao, Liming
> Sent: Tuesday, December 11, 2018 9:15 PM
> To: Ard Biesheuvel <ard.biesheuvel@linaro.org>; Feng, Bob C <bob.c.feng@intel.com>
> Cc: Andrew Fish <afish@apple.com>; Leif Lindholm <leif.lindholm@linaro.org>; edk2-devel@lists.01.org
> Subject: RE: [edk2] [PATCH edk2-platforms] Platform/AMD/OverdriveBoard: fix byte order of default MAC addresses
>
>
> BZ https://bugzilla.tianocore.org/show_bug.cgi?id=1390 is submit for it. Bob will fix it.
>
>
> > -----Original Message-----
> > From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org]
> > Sent: Tuesday, December 11, 2018 3:54 PM
> > To: Gao, Liming <liming.gao@intel.com>
> > Cc: Andrew Fish <afish@apple.com>; Leif Lindholm <leif.lindholm@linaro.org>; edk2-devel@lists.01.org
> > Subject: Re: [edk2] [PATCH edk2-platforms] Platform/AMD/OverdriveBoard: fix byte order of default MAC addresses
> >
> > On Tue, 11 Dec 2018 at 01:53, Gao, Liming <liming.gao@intel.com> wrote:
> > >
> > > If PCD is related to one structure in DEC/DSC, it can be refer as structure pointer in C source code. Here is wiki for its usage:
> > https://github.com/lgao4/edk2/wiki/StrucutrePcd-Usage
> > >
> >
> > OK so I now have this in my .dec file
> >
> > [PcdsDynamic]
> >   gAmdStyxTokenSpaceGuid.PcdEthMacA|{0}|UINT8[6]|0x000d0001
> >   gAmdStyxTokenSpaceGuid.PcdEthMacB|{0}|UINT8[6]|0x000d0002
> >
> > and this in my .dsc file
> >
> > [PcdsDynamicDefault.common]
> >   gAmdStyxTokenSpaceGuid.PcdEthMacA|{0x2,0xA1,0xA2,0xA3,0xA4,0xA5}
> >   gAmdStyxTokenSpaceGuid.PcdEthMacB|{0x2,0xB1,0xB2,0xB3,0xB4,0xB5}
> >
> > and the build errors out immediately with:
> >
> > Processing meta-data .......
> >
> > build.py...
> >  : error F015: /home/ard/build/edk2-workspace/Build/Overdrive/RELEASE_GCC5/PcdValueInit/PcdValueInit.c:15:20:
> > error: ‘gAmdStyxTokenSpaceGuid_PcdEthMacB_DEFAULT_STANDARD_Value’
> > undeclared (first use in this function)
> > /home/ard/build/edk2-workspace/Build/Overdrive/RELEASE_GCC5/PcdValueInit/PcdValueInit.c:41:16:
> > error: ‘gAmdStyxTokenSpaceGuid_PcdEthMacB_DEFAULT_STANDARD_Value’
> > undeclared (first use in this function)
> > /home/ard/build/edk2-workspace/Build/Overdrive/RELEASE_GCC5/PcdValueInit/PcdValueInit.c:74:20:
> > error: ‘gAmdStyxTokenSpaceGuid_PcdEthMacA_DEFAULT_STANDARD_Value’
> > undeclared (first use in this function)
> > /home/ard/build/edk2-workspace/Build/Overdrive/RELEASE_GCC5/PcdValueInit/PcdValueInit.c:100:16:
> > error: ‘gAmdStyxTokenSpaceGuid_PcdEthMacA_DEFAULT_STANDARD_Value’
> > undeclared (first use in this function)
Feng, Bob C Dec. 11, 2018, 1:57 p.m. | #10
OK. I'll get it fixed.

-----Original Message-----
From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] 

Sent: Tuesday, December 11, 2018 9:49 PM
To: Feng, Bob C <bob.c.feng@intel.com>
Cc: Gao, Liming <liming.gao@intel.com>; Andrew Fish <afish@apple.com>; Leif Lindholm <leif.lindholm@linaro.org>; edk2-devel@lists.01.org
Subject: Re: [edk2] [PATCH edk2-platforms] Platform/AMD/OverdriveBoard: fix byte order of default MAC addresses

On Tue, 11 Dec 2018 at 14:38, Feng, Bob C <bob.c.feng@intel.com> wrote:
>

> Hi Ard,

>

> Would you please try this format?  While I'll check this issue anyway.

>

>  [PcdsDynamic]

>    gAmdStyxTokenSpaceGuid.PcdEthMacA|{CODE({0})}|UINT8[6]|0x000d0001

>    gAmdStyxTokenSpaceGuid.PcdEthMacB|{CODE({0})}|UINT8[6]|0x000d0002

>

>  and this in my .dsc file

>

>  [PcdsDynamicDefault.common]

>    gAmdStyxTokenSpaceGuid.PcdEthMacA|{CODE({0x2,0xA1,0xA2,0xA3,0xA4,0xA5})}

>    

> gAmdStyxTokenSpaceGuid.PcdEthMacB|{CODE({0x2,0xB1,0xB2,0xB3,0xB4,0xB5}

> )}

>


Processing meta-data .......

build.py...
 : error F015: From DEC Default Value {CODE({0})}:28:9: error:
expected expression before ‘{’ token
From DEC Default Value {CODE({0})}:87:9: error: expected expression before ‘{’ token


>

> Thanks,

> Bob

> -----Original Message-----

> From: Gao, Liming

> Sent: Tuesday, December 11, 2018 9:15 PM

> To: Ard Biesheuvel <ard.biesheuvel@linaro.org>; Feng, Bob C 

> <bob.c.feng@intel.com>

> Cc: Andrew Fish <afish@apple.com>; Leif Lindholm 

> <leif.lindholm@linaro.org>; edk2-devel@lists.01.org

> Subject: RE: [edk2] [PATCH edk2-platforms] 

> Platform/AMD/OverdriveBoard: fix byte order of default MAC addresses

>

>

> BZ https://bugzilla.tianocore.org/show_bug.cgi?id=1390 is submit for it. Bob will fix it.

>

>

> > -----Original Message-----

> > From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org]

> > Sent: Tuesday, December 11, 2018 3:54 PM

> > To: Gao, Liming <liming.gao@intel.com>

> > Cc: Andrew Fish <afish@apple.com>; Leif Lindholm 

> > <leif.lindholm@linaro.org>; edk2-devel@lists.01.org

> > Subject: Re: [edk2] [PATCH edk2-platforms] 

> > Platform/AMD/OverdriveBoard: fix byte order of default MAC addresses

> >

> > On Tue, 11 Dec 2018 at 01:53, Gao, Liming <liming.gao@intel.com> wrote:

> > >

> > > If PCD is related to one structure in DEC/DSC, it can be refer as structure pointer in C source code. Here is wiki for its usage:

> > https://github.com/lgao4/edk2/wiki/StrucutrePcd-Usage

> > >

> >

> > OK so I now have this in my .dec file

> >

> > [PcdsDynamic]

> >   gAmdStyxTokenSpaceGuid.PcdEthMacA|{0}|UINT8[6]|0x000d0001

> >   gAmdStyxTokenSpaceGuid.PcdEthMacB|{0}|UINT8[6]|0x000d0002

> >

> > and this in my .dsc file

> >

> > [PcdsDynamicDefault.common]

> >   gAmdStyxTokenSpaceGuid.PcdEthMacA|{0x2,0xA1,0xA2,0xA3,0xA4,0xA5}

> >   gAmdStyxTokenSpaceGuid.PcdEthMacB|{0x2,0xB1,0xB2,0xB3,0xB4,0xB5}

> >

> > and the build errors out immediately with:

> >

> > Processing meta-data .......

> >

> > build.py...

> >  : error F015: /home/ard/build/edk2-workspace/Build/Overdrive/RELEASE_GCC5/PcdValueInit/PcdValueInit.c:15:20:

> > error: ‘gAmdStyxTokenSpaceGuid_PcdEthMacB_DEFAULT_STANDARD_Value’

> > undeclared (first use in this function)

> > /home/ard/build/edk2-workspace/Build/Overdrive/RELEASE_GCC5/PcdValueInit/PcdValueInit.c:41:16:

> > error: ‘gAmdStyxTokenSpaceGuid_PcdEthMacB_DEFAULT_STANDARD_Value’

> > undeclared (first use in this function)

> > /home/ard/build/edk2-workspace/Build/Overdrive/RELEASE_GCC5/PcdValueInit/PcdValueInit.c:74:20:

> > error: ‘gAmdStyxTokenSpaceGuid_PcdEthMacA_DEFAULT_STANDARD_Value’

> > undeclared (first use in this function)

> > /home/ard/build/edk2-workspace/Build/Overdrive/RELEASE_GCC5/PcdValueInit/PcdValueInit.c:100:16:

> > error: ‘gAmdStyxTokenSpaceGuid_PcdEthMacA_DEFAULT_STANDARD_Value’

> > undeclared (first use in this function)

Patch

diff --git a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
index 05433d4472e8..2843e51f93f7 100644
--- a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
+++ b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
@@ -469,8 +469,8 @@  DEFINE DO_CAPSULE   = FALSE
   gAmdModulePkgTokenSpaceGuid.PcdPort1NetSpeed|1
 
 [PcdsDynamicDefault.common]
-  gAmdStyxTokenSpaceGuid.PcdEthMacA|0x02A1A2A3A4A5
-  gAmdStyxTokenSpaceGuid.PcdEthMacB|0x02B1B2B3B4B5
+  gAmdStyxTokenSpaceGuid.PcdEthMacA|0xA5A4A3A2A102
+  gAmdStyxTokenSpaceGuid.PcdEthMacB|0xB5B4B3B2B102
 
 [PcdsPatchableInModule]
   gAmdModulePkgTokenSpaceGuid.PcdXgbeUseMacFromIscp|TRUE