[1/2] config/arm: Do not require processor information

Message ID 20230414124139.66443-2-akihiko.odaki@daynix.com (mailing list archive)
State Rejected, archived
Delegated to: Thomas Monjalon
Headers
Series Enable generic Arm build |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Akihiko Odaki April 14, 2023, 12:41 p.m. UTC
  DPDK can be built even without exact processor information for x86 and
ppc so allow to build for Arm even if we don't know the targeted
processor is unknown.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
 config/arm/meson.build | 36 +++++++++++++++++++-----------------
 1 file changed, 19 insertions(+), 17 deletions(-)
  

Comments

Ruifeng Wang April 17, 2023, 7:41 a.m. UTC | #1
> -----Original Message-----
> From: Akihiko Odaki <akihiko.odaki@daynix.com>
> Sent: Friday, April 14, 2023 8:42 PM
> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce Richardson <bruce.richardson@intel.com>
> Cc: dev@dpdk.org; Akihiko Odaki <akihiko.odaki@daynix.com>
> Subject: [PATCH 1/2] config/arm: Do not require processor information
> 
> DPDK can be built even without exact processor information for x86 and ppc so allow to
> build for Arm even if we don't know the targeted processor is unknown.

Hi Akihiko,

The design idea was to require an explicit generic build.
Default/native build doesn't fall back to generic build when SoC info is not on the list.
So the user has less chance to generate a suboptimal binary by accident.

> 
> Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
> ---
>  config/arm/meson.build | 36 +++++++++++++++++++-----------------
>  1 file changed, 19 insertions(+), 17 deletions(-)
> 
> diff --git a/config/arm/meson.build b/config/arm/meson.build index 6442ec9596..724c00ad7e
> 100644
> --- a/config/arm/meson.build
> +++ b/config/arm/meson.build
> @@ -582,29 +582,31 @@ if update_flags
>          enable_drivers += ',' + soc_config.get('enable_drivers', '')
>      endif
> 
> -    if implementers.has_key(implementer_id)
> +    if not implementers.has_key(implementer_id)
> +        implementer_id = 'generic'
> +    endif
> +
> +    implementer_config = implementers[implementer_id]
> +    part_number_config = implementer_config['part_number_config']
> +
> +    if not part_number_config.has_key(part_number)
> +        implementer_id = 'generic'
> +
> +        if dpdk_conf.get('RTE_ARCH_32')
> +            part_number = 'generic_aarch32'
> +        else
> +            part_number = 'generic'
> +        endif
> +
>          implementer_config = implementers[implementer_id]
> -    else
> -        error('Unsupported Arm implementer: @0@. '.format(implementer_id) +
> -              'Please add support for it or use the generic ' +
> -              '(-Dplatform=generic) build.')
> +        part_number_config = implementer_config['part_number_config']
>      endif
> 
> +    part_number_config = part_number_config[part_number]
> +
>      message('Arm implementer: ' + implementer_config['description'])
>      message('Arm part number: ' + part_number)
> 
> -    part_number_config = implementer_config['part_number_config']
> -    if part_number_config.has_key(part_number)
> -        # use the specified part_number machine args if found
> -        part_number_config = part_number_config[part_number]
> -    else
> -        # unknown part number
> -        error('Unsupported part number @0@ of implementer @1@. '
> -              .format(part_number, implementer_id) +
> -              'Please add support for it or use the generic ' +
> -              '(-Dplatform=generic) build.')
> -    endif
> -
>      # add/overwrite flags in the proper order
>      dpdk_flags = flags_common + implementer_config['flags'] +
> part_number_config.get('flags', []) + soc_flags
> 
> --
> 2.40.0
  
Akihiko Odaki April 20, 2023, 1:40 a.m. UTC | #2
On 2023/04/17 16:41, Ruifeng Wang wrote:
>> -----Original Message-----
>> From: Akihiko Odaki <akihiko.odaki@daynix.com>
>> Sent: Friday, April 14, 2023 8:42 PM
>> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce Richardson <bruce.richardson@intel.com>
>> Cc: dev@dpdk.org; Akihiko Odaki <akihiko.odaki@daynix.com>
>> Subject: [PATCH 1/2] config/arm: Do not require processor information
>>
>> DPDK can be built even without exact processor information for x86 and ppc so allow to
>> build for Arm even if we don't know the targeted processor is unknown.
> 
> Hi Akihiko,
> 
> The design idea was to require an explicit generic build.
> Default/native build doesn't fall back to generic build when SoC info is not on the list.
> So the user has less chance to generate a suboptimal binary by accident.

Hi,

It is true that the suboptimal binary can result, but the rationale here 
is that we tolerate that for x86 and ppc so it should not really matter 
for Arm too. On x86 and ppc you don't need to modify meson.build just to 
run dts on a development machine.

Regards,
Akihiko Odaki
  
Ruifeng Wang April 20, 2023, 7:10 a.m. UTC | #3
> -----Original Message-----
> From: Akihiko Odaki <akihiko.odaki@daynix.com>
> Sent: Thursday, April 20, 2023 9:40 AM
> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce Richardson <bruce.richardson@intel.com>;
> Juraj Linkeš <juraj.linkes@pantheon.tech>
> Cc: dev@dpdk.org; nd <nd@arm.com>
> Subject: Re: [PATCH 1/2] config/arm: Do not require processor information
> 
> On 2023/04/17 16:41, Ruifeng Wang wrote:
> >> -----Original Message-----
> >> From: Akihiko Odaki <akihiko.odaki@daynix.com>
> >> Sent: Friday, April 14, 2023 8:42 PM
> >> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce Richardson
> >> <bruce.richardson@intel.com>
> >> Cc: dev@dpdk.org; Akihiko Odaki <akihiko.odaki@daynix.com>
> >> Subject: [PATCH 1/2] config/arm: Do not require processor information
> >>
> >> DPDK can be built even without exact processor information for x86
> >> and ppc so allow to build for Arm even if we don't know the targeted processor is
> unknown.
> >
> > Hi Akihiko,
> >
> > The design idea was to require an explicit generic build.
> > Default/native build doesn't fall back to generic build when SoC info is not on the list.
> > So the user has less chance to generate a suboptimal binary by accident.
> 
> Hi,
> 
> It is true that the suboptimal binary can result, but the rationale here is that we
> tolerate that for x86 and ppc so it should not really matter for Arm too. On x86 and ppc
> you don't need to modify meson.build just to run dts on a development machine.

What modification do you need for a development machine?
I suppose "meson setup build -Dplatform=generic" will generate a binary that can run
on your development machine.

> 
> Regards,
> Akihiko Odaki
  
Akihiko Odaki April 20, 2023, 7:12 a.m. UTC | #4
On 2023/04/20 16:10, Ruifeng Wang wrote:
>> -----Original Message-----
>> From: Akihiko Odaki <akihiko.odaki@daynix.com>
>> Sent: Thursday, April 20, 2023 9:40 AM
>> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce Richardson <bruce.richardson@intel.com>;
>> Juraj Linkeš <juraj.linkes@pantheon.tech>
>> Cc: dev@dpdk.org; nd <nd@arm.com>
>> Subject: Re: [PATCH 1/2] config/arm: Do not require processor information
>>
>> On 2023/04/17 16:41, Ruifeng Wang wrote:
>>>> -----Original Message-----
>>>> From: Akihiko Odaki <akihiko.odaki@daynix.com>
>>>> Sent: Friday, April 14, 2023 8:42 PM
>>>> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce Richardson
>>>> <bruce.richardson@intel.com>
>>>> Cc: dev@dpdk.org; Akihiko Odaki <akihiko.odaki@daynix.com>
>>>> Subject: [PATCH 1/2] config/arm: Do not require processor information
>>>>
>>>> DPDK can be built even without exact processor information for x86
>>>> and ppc so allow to build for Arm even if we don't know the targeted processor is
>> unknown.
>>>
>>> Hi Akihiko,
>>>
>>> The design idea was to require an explicit generic build.
>>> Default/native build doesn't fall back to generic build when SoC info is not on the list.
>>> So the user has less chance to generate a suboptimal binary by accident.
>>
>> Hi,
>>
>> It is true that the suboptimal binary can result, but the rationale here is that we
>> tolerate that for x86 and ppc so it should not really matter for Arm too. On x86 and ppc
>> you don't need to modify meson.build just to run dts on a development machine.
> 
> What modification do you need for a development machine?
> I suppose "meson setup build -Dplatform=generic" will generate a binary that can run
> on your development machine.

I didn't describe the situation well. I use DPDK Test Suite for testing 
and it determines what flags to be passed to Meson. You need to modify 
DPDK's meson.build or DTS to get it built.

> 
>>
>> Regards,
>> Akihiko Odaki
  
Akihiko Odaki May 4, 2023, 7:47 a.m. UTC | #5
On 2023/04/20 16:12, Akihiko Odaki wrote:
> On 2023/04/20 16:10, Ruifeng Wang wrote:
>>> -----Original Message-----
>>> From: Akihiko Odaki <akihiko.odaki@daynix.com>
>>> Sent: Thursday, April 20, 2023 9:40 AM
>>> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce Richardson 
>>> <bruce.richardson@intel.com>;
>>> Juraj Linkeš <juraj.linkes@pantheon.tech>
>>> Cc: dev@dpdk.org; nd <nd@arm.com>
>>> Subject: Re: [PATCH 1/2] config/arm: Do not require processor 
>>> information
>>>
>>> On 2023/04/17 16:41, Ruifeng Wang wrote:
>>>>> -----Original Message-----
>>>>> From: Akihiko Odaki <akihiko.odaki@daynix.com>
>>>>> Sent: Friday, April 14, 2023 8:42 PM
>>>>> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce Richardson
>>>>> <bruce.richardson@intel.com>
>>>>> Cc: dev@dpdk.org; Akihiko Odaki <akihiko.odaki@daynix.com>
>>>>> Subject: [PATCH 1/2] config/arm: Do not require processor information
>>>>>
>>>>> DPDK can be built even without exact processor information for x86
>>>>> and ppc so allow to build for Arm even if we don't know the 
>>>>> targeted processor is
>>> unknown.
>>>>
>>>> Hi Akihiko,
>>>>
>>>> The design idea was to require an explicit generic build.
>>>> Default/native build doesn't fall back to generic build when SoC 
>>>> info is not on the list.
>>>> So the user has less chance to generate a suboptimal binary by 
>>>> accident.
>>>
>>> Hi,
>>>
>>> It is true that the suboptimal binary can result, but the rationale 
>>> here is that we
>>> tolerate that for x86 and ppc so it should not really matter for Arm 
>>> too. On x86 and ppc
>>> you don't need to modify meson.build just to run dts on a development 
>>> machine.
>>
>> What modification do you need for a development machine?
>> I suppose "meson setup build -Dplatform=generic" will generate a 
>> binary that can run
>> on your development machine.
> 
> I didn't describe the situation well. I use DPDK Test Suite for testing 
> and it determines what flags to be passed to Meson. You need to modify 
> DPDK's meson.build or DTS to get it built.
> 
>>
>>>
>>> Regards,
>>> Akihiko Odaki

Hi,

Can you have a look at this again?

Regards,
Akihiko Odaki
  
Ruifeng Wang May 4, 2023, 9:43 a.m. UTC | #6
> -----Original Message-----
> From: Akihiko Odaki <akihiko.odaki@daynix.com>
> Sent: Thursday, May 4, 2023 3:47 PM
> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce Richardson <bruce.richardson@intel.com>;
> Juraj Linkeš <juraj.linkes@pantheon.tech>
> Cc: dev@dpdk.org; nd <nd@arm.com>
> Subject: Re: [PATCH 1/2] config/arm: Do not require processor information
> 
> On 2023/04/20 16:12, Akihiko Odaki wrote:
> > On 2023/04/20 16:10, Ruifeng Wang wrote:
> >>> -----Original Message-----
> >>> From: Akihiko Odaki <akihiko.odaki@daynix.com>
> >>> Sent: Thursday, April 20, 2023 9:40 AM
> >>> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce Richardson
> >>> <bruce.richardson@intel.com>; Juraj Linkeš
> >>> <juraj.linkes@pantheon.tech>
> >>> Cc: dev@dpdk.org; nd <nd@arm.com>
> >>> Subject: Re: [PATCH 1/2] config/arm: Do not require processor
> >>> information
> >>>
> >>> On 2023/04/17 16:41, Ruifeng Wang wrote:
> >>>>> -----Original Message-----
> >>>>> From: Akihiko Odaki <akihiko.odaki@daynix.com>
> >>>>> Sent: Friday, April 14, 2023 8:42 PM
> >>>>> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce Richardson
> >>>>> <bruce.richardson@intel.com>
> >>>>> Cc: dev@dpdk.org; Akihiko Odaki <akihiko.odaki@daynix.com>
> >>>>> Subject: [PATCH 1/2] config/arm: Do not require processor
> >>>>> information
> >>>>>
> >>>>> DPDK can be built even without exact processor information for x86
> >>>>> and ppc so allow to build for Arm even if we don't know the
> >>>>> targeted processor is
> >>> unknown.
> >>>>
> >>>> Hi Akihiko,
> >>>>
> >>>> The design idea was to require an explicit generic build.
> >>>> Default/native build doesn't fall back to generic build when SoC
> >>>> info is not on the list.
> >>>> So the user has less chance to generate a suboptimal binary by
> >>>> accident.
> >>>
> >>> Hi,
> >>>
> >>> It is true that the suboptimal binary can result, but the rationale
> >>> here is that we tolerate that for x86 and ppc so it should not
> >>> really matter for Arm too. On x86 and ppc you don't need to modify
> >>> meson.build just to run dts on a development machine.
> >>
> >> What modification do you need for a development machine?
> >> I suppose "meson setup build -Dplatform=generic" will generate a
> >> binary that can run on your development machine.
> >
> > I didn't describe the situation well. I use DPDK Test Suite for
> > testing and it determines what flags to be passed to Meson. You need
> > to modify DPDK's meson.build or DTS to get it built.
> >
> >>
> >>>
> >>> Regards,
> >>> Akihiko Odaki
> 
> Hi,
> 
> Can you have a look at this again?

Thanks for the clarification of your use case.
Changes to DTS are in planning. It will allow the user to choose
the type of the build.
Your use case will be fulfilled then.

Regards,
Ruifeng
> 
> Regards,
> Akihiko Odaki
  
Akihiko Odaki May 4, 2023, 3:08 p.m. UTC | #7
On 2023/05/04 18:43, Ruifeng Wang wrote:
>> -----Original Message-----
>> From: Akihiko Odaki <akihiko.odaki@daynix.com>
>> Sent: Thursday, May 4, 2023 3:47 PM
>> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce Richardson <bruce.richardson@intel.com>;
>> Juraj Linkeš <juraj.linkes@pantheon.tech>
>> Cc: dev@dpdk.org; nd <nd@arm.com>
>> Subject: Re: [PATCH 1/2] config/arm: Do not require processor information
>>
>> On 2023/04/20 16:12, Akihiko Odaki wrote:
>>> On 2023/04/20 16:10, Ruifeng Wang wrote:
>>>>> -----Original Message-----
>>>>> From: Akihiko Odaki <akihiko.odaki@daynix.com>
>>>>> Sent: Thursday, April 20, 2023 9:40 AM
>>>>> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce Richardson
>>>>> <bruce.richardson@intel.com>; Juraj Linkeš
>>>>> <juraj.linkes@pantheon.tech>
>>>>> Cc: dev@dpdk.org; nd <nd@arm.com>
>>>>> Subject: Re: [PATCH 1/2] config/arm: Do not require processor
>>>>> information
>>>>>
>>>>> On 2023/04/17 16:41, Ruifeng Wang wrote:
>>>>>>> -----Original Message-----
>>>>>>> From: Akihiko Odaki <akihiko.odaki@daynix.com>
>>>>>>> Sent: Friday, April 14, 2023 8:42 PM
>>>>>>> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce Richardson
>>>>>>> <bruce.richardson@intel.com>
>>>>>>> Cc: dev@dpdk.org; Akihiko Odaki <akihiko.odaki@daynix.com>
>>>>>>> Subject: [PATCH 1/2] config/arm: Do not require processor
>>>>>>> information
>>>>>>>
>>>>>>> DPDK can be built even without exact processor information for x86
>>>>>>> and ppc so allow to build for Arm even if we don't know the
>>>>>>> targeted processor is
>>>>> unknown.
>>>>>>
>>>>>> Hi Akihiko,
>>>>>>
>>>>>> The design idea was to require an explicit generic build.
>>>>>> Default/native build doesn't fall back to generic build when SoC
>>>>>> info is not on the list.
>>>>>> So the user has less chance to generate a suboptimal binary by
>>>>>> accident.
>>>>>
>>>>> Hi,
>>>>>
>>>>> It is true that the suboptimal binary can result, but the rationale
>>>>> here is that we tolerate that for x86 and ppc so it should not
>>>>> really matter for Arm too. On x86 and ppc you don't need to modify
>>>>> meson.build just to run dts on a development machine.
>>>>
>>>> What modification do you need for a development machine?
>>>> I suppose "meson setup build -Dplatform=generic" will generate a
>>>> binary that can run on your development machine.
>>>
>>> I didn't describe the situation well. I use DPDK Test Suite for
>>> testing and it determines what flags to be passed to Meson. You need
>>> to modify DPDK's meson.build or DTS to get it built.
>>>
>>>>
>>>>>
>>>>> Regards,
>>>>> Akihiko Odaki
>>
>> Hi,
>>
>> Can you have a look at this again?
> 
> Thanks for the clarification of your use case.
> Changes to DTS are in planning. It will allow the user to choose
> the type of the build.
> Your use case will be fulfilled then.

Such a feature indeed satisfies my requirement. Thanks in advance,
Akihiko Odaki
  
Juraj Linkeš May 29, 2023, 7:37 a.m. UTC | #8
+ Lijuan

Hi Lijuan, Akihiko wonders whether it's possible to add the ability to do a
generic build in DTS. If I understand correctly, we don't pass -Dplatform
to meson build which results in native build which in turn is not supported
on all arm microarchitectures, resulting in failing builds. Adding the
ability to specify the value of -Dplatform would address this issue.

On Thu, May 4, 2023 at 5:08 PM Akihiko Odaki <akihiko.odaki@daynix.com>
wrote:

> On 2023/05/04 18:43, Ruifeng Wang wrote:
> >> -----Original Message-----
> >> From: Akihiko Odaki <akihiko.odaki@daynix.com>
> >> Sent: Thursday, May 4, 2023 3:47 PM
> >> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce Richardson <
> bruce.richardson@intel.com>;
> >> Juraj Linkeš <juraj.linkes@pantheon.tech>
> >> Cc: dev@dpdk.org; nd <nd@arm.com>
> >> Subject: Re: [PATCH 1/2] config/arm: Do not require processor
> information
> >>
> >> On 2023/04/20 16:12, Akihiko Odaki wrote:
> >>> On 2023/04/20 16:10, Ruifeng Wang wrote:
> >>>>> -----Original Message-----
> >>>>> From: Akihiko Odaki <akihiko.odaki@daynix.com>
> >>>>> Sent: Thursday, April 20, 2023 9:40 AM
> >>>>> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce Richardson
> >>>>> <bruce.richardson@intel.com>; Juraj Linkeš
> >>>>> <juraj.linkes@pantheon.tech>
> >>>>> Cc: dev@dpdk.org; nd <nd@arm.com>
> >>>>> Subject: Re: [PATCH 1/2] config/arm: Do not require processor
> >>>>> information
> >>>>>
> >>>>> On 2023/04/17 16:41, Ruifeng Wang wrote:
> >>>>>>> -----Original Message-----
> >>>>>>> From: Akihiko Odaki <akihiko.odaki@daynix.com>
> >>>>>>> Sent: Friday, April 14, 2023 8:42 PM
> >>>>>>> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce Richardson
> >>>>>>> <bruce.richardson@intel.com>
> >>>>>>> Cc: dev@dpdk.org; Akihiko Odaki <akihiko.odaki@daynix.com>
> >>>>>>> Subject: [PATCH 1/2] config/arm: Do not require processor
> >>>>>>> information
> >>>>>>>
> >>>>>>> DPDK can be built even without exact processor information for x86
> >>>>>>> and ppc so allow to build for Arm even if we don't know the
> >>>>>>> targeted processor is
> >>>>> unknown.
> >>>>>>
> >>>>>> Hi Akihiko,
> >>>>>>
> >>>>>> The design idea was to require an explicit generic build.
> >>>>>> Default/native build doesn't fall back to generic build when SoC
> >>>>>> info is not on the list.
> >>>>>> So the user has less chance to generate a suboptimal binary by
> >>>>>> accident.
> >>>>>
> >>>>> Hi,
> >>>>>
> >>>>> It is true that the suboptimal binary can result, but the rationale
> >>>>> here is that we tolerate that for x86 and ppc so it should not
> >>>>> really matter for Arm too. On x86 and ppc you don't need to modify
> >>>>> meson.build just to run dts on a development machine.
> >>>>
> >>>> What modification do you need for a development machine?
> >>>> I suppose "meson setup build -Dplatform=generic" will generate a
> >>>> binary that can run on your development machine.
> >>>
> >>> I didn't describe the situation well. I use DPDK Test Suite for
> >>> testing and it determines what flags to be passed to Meson. You need
> >>> to modify DPDK's meson.build or DTS to get it built.
> >>>
> >>>>
> >>>>>
> >>>>> Regards,
> >>>>> Akihiko Odaki
> >>
> >> Hi,
> >>
> >> Can you have a look at this again?
> >
> > Thanks for the clarification of your use case.
> > Changes to DTS are in planning. It will allow the user to choose
> > the type of the build.
> > Your use case will be fulfilled then.
>
> Such a feature indeed satisfies my requirement. Thanks in advance,
> Akihiko Odaki
>

Hello Akihiko,

Sorry for the long delay in responding. I'm involved (I'm part of
Ruifeng's team) in refactoring/rewriting DTS which is where the support you
need is planned to be implemented, but that'll take a long time (this is
what Ruifeng meant). I've added Lijuan who may add the feature to the
original DTS. You can also add the feature yourself.

Regards,
Juraj
  

Patch

diff --git a/config/arm/meson.build b/config/arm/meson.build
index 6442ec9596..724c00ad7e 100644
--- a/config/arm/meson.build
+++ b/config/arm/meson.build
@@ -582,29 +582,31 @@  if update_flags
         enable_drivers += ',' + soc_config.get('enable_drivers', '')
     endif
 
-    if implementers.has_key(implementer_id)
+    if not implementers.has_key(implementer_id)
+        implementer_id = 'generic'
+    endif
+
+    implementer_config = implementers[implementer_id]
+    part_number_config = implementer_config['part_number_config']
+
+    if not part_number_config.has_key(part_number)
+        implementer_id = 'generic'
+
+        if dpdk_conf.get('RTE_ARCH_32')
+            part_number = 'generic_aarch32'
+        else
+            part_number = 'generic'
+        endif
+
         implementer_config = implementers[implementer_id]
-    else
-        error('Unsupported Arm implementer: @0@. '.format(implementer_id) +
-              'Please add support for it or use the generic ' +
-              '(-Dplatform=generic) build.')
+        part_number_config = implementer_config['part_number_config']
     endif
 
+    part_number_config = part_number_config[part_number]
+
     message('Arm implementer: ' + implementer_config['description'])
     message('Arm part number: ' + part_number)
 
-    part_number_config = implementer_config['part_number_config']
-    if part_number_config.has_key(part_number)
-        # use the specified part_number machine args if found
-        part_number_config = part_number_config[part_number]
-    else
-        # unknown part number
-        error('Unsupported part number @0@ of implementer @1@. '
-              .format(part_number, implementer_id) +
-              'Please add support for it or use the generic ' +
-              '(-Dplatform=generic) build.')
-    endif
-
     # add/overwrite flags in the proper order
     dpdk_flags = flags_common + implementer_config['flags'] + part_number_config.get('flags', []) + soc_flags