Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Yocto Build Instructiuons

NXP:

Code Block
titlerdkb-2025q12025q4-kirkstone
$ mkdir rdkb-arm
$ cd rdkb-arm
$ repo init -u 'https://github.com/rdkcentral/meta-rdk-bsp-arm/' \
    -m "manifests/rdkb-bsp-arm.xml" \
    -b "main"
$ repo sync
$ source meta-rdk-bsp-arm/setup-environment
$ bitbake rdk-generic-broadband-image

...

Code Block
titlerdk-next
$ mkdir rdkb-arm
$ cd rdkb-arm
$ repo init -u 'https://github.com/rdkcentral/meta-rdk-bsp-arm/' \
    -m "manifests/rdkb-bsp-arm.xml" \
    -b "develop"
$ repo sync
$ source meta-rdk-bsp-arm/setup-environment
$ bitbake rdk-generic-broadband-image

...


RPI:

Code Block
titleBuild Instruction for RPI (rdk-next

...

The rdk-next build is currently not in a stable state. If triggered directly, it may result in build failures due to ongoing development activities and existing issues.

To successfully generate an rdk-next build at this stage, it is necessary to:

Code Block
titleDidtro Disable and patch update
diff --git a/conf/distro/include/rdk-genericarm.inc b/conf/distro/include/rdk-genericarm.inc
index 7548389..268c8df 100644
--- a/conf/distro/include/rdk-genericarm.inc
+++ b/conf/distro/include/rdk-genericarm.inc
@@ -124,13 +124,13 @@ DISTRO_FEATURES_append_broadband = " device_gateway_association"
 DISTRO_FEATURES_append_broadband = " halVersion3"
 
 # RDKBDEV-866: EasyMesh Controller support
-DISTRO_FEATURES_append_broadband = " easymesh-controller"
+#DISTRO_FEATURES_append_broadband = " easymesh-controller"
 
 # RDKB-40900: RDKB support extender/nonrouter profile
-DISTRO_FEATURES_append_extender = " rdkb_extender"
+#DISTRO_FEATURES_append_extender = " rdkb_extender"
 
 # RDKB-44824: CoreNetLib move bb file location
-DISTRO_FEATURES_append_broadband = " core-net-lib"
+#DISTRO_FEATURES_append_broadband = " core-net-lib"
 
 # DKBDEV-1455 : Support Broadband DAC
 DISTRO_FEATURES_append_broadband = " dac"
@@ -175,10 +175,10 @@ DISTRO_FEATURES_append_broadband = " partner_default_ext"
 DISTRO_FEATURES_remove_broadband = " webui_jst"
 
 # Add new EasyMesh
-DISTRO_FEATURES_append_broadband = " EasyMesh"
+#DISTRO_FEATURES_append_broadband = " EasyMesh"
 
 # Add IEEE1905 AL
-DISTRO_FEATURES_append_broadband = " with_alsap"
+#DISTRO_FEATURES_append_broadband = " with_alsap"
 
 SESSIONMGR_WS_RPC_ENABLE = "1"
diff --git a/meta-rdk-broadband/recipes-ccsp/util/utopia/0003-utopia-duplicate-or-replace-_PLATFORM_RASPBERRYPI_-a.patch b/meta-rdk-broadband/recipes-ccsp/util/utopia/0003-utopia-duplicate-or-replace-_PLATFORM_RASPBERRYPI_-a.patch
index 90b0b05..cc01eb4 100644
--- a/meta-rdk-broadband/recipes-ccsp/util/utopia/0003-utopia-duplicate-or-replace-_PLATFORM_RASPBERRYPI_-a.patch
+++ b/meta-rdk-broadband/recipes-ccsp/util/utopia/0003-utopia-duplicate-or-replace-_PLATFORM_RASPBERRYPI_-a.patch
@@ -136,13 +136,13 @@ index 0cb72ca..92a64ac 100644
+#if !defined(_COSA_BCM_MIPS_) && !defined(_CBR_PRODUCT_REQ_) && !defined(_COSA_BCM_ARM_) && !defined(_GENERIC_LINUX_DATA_PATH_EXCEPT_RPI) && !defined(_COSA_QCA_ARM_)
ruleIndex += do_parcon_mgmt_lan2wan_pc_site_appendrule(fp);
#endif
- 
-@@ -9287,7 +9300,7 @@ static int do_parcon_mgmt_site_keywd(FILE *fp, FILE *nat_fp, int iptype, FILE *c
+
+@@ -9287,7 +9287,7 @@ static int do_parcon_mgmt_site_keywd(FILE *fp, FILE *nat_fp, int iptype, FILE *c
//Intel Proposed RDKB Generic Bug Fix from XB6 SDK
fprintf(fp, "-A lan2wan_pc_site -p tcp -m tcp --dport 80 -m webstr --host \"%s\" -j LOG_SiteBlocked_%d_DROP\n", query + host_name_offset, idx);
fprintf(fp, "-A lan2wan_pc_site -p tcp -m tcp --dport 443 -m webstr --host \"%s\" -j LOG_SiteBlocked_%d_DROP\n", query + host_name_offset, idx);
--#elif defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_)
-+#elif defined(_GENERIC_LINUX_DATA_PATH)
+-#elif defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_) || defined(_PLATFORM_BANANAPI_R4_) || defined(_COSA_QCA_ARM_)
++#elif defined(_GENERIC_LINUX_DATA_PATH) 
fprintf(fp, "-A lan2wan_pc_site -p tcp -m tcp --dport 80 -d \"%s\" -j LOG_SiteBlocked_%d_DROP\n", query + host_name_offset, idx);
fprintf(fp, "-A lan2wan_pc_site -p tcp -m tcp --dport 443 -d \"%s\" -j LOG_SiteBlocked_%d_DROP\n", query + host_name_offset, idx);
#elif !defined(_XER5_PRODUCT_REQ_)
@@ -230,21 +230,21 @@ index 0cb72ca..92a64ac 100644
#if !defined(_CBR_PRODUCT_REQ_) && !defined (_BWG_PRODUCT_REQ_) && !defined (_CBR2_PRODUCT_REQ_)
fprintf(filter_fp, "-A FORWARD -i %s -o privbr -p tcp -m multiport --dport 22,23,80,443 -j DROP\n",XHS_IF_NAME);
fprintf(filter_fp, "-A FORWARD -i %s -o privbr -p tcp -m multiport --dport 22,23,80,443 -j DROP\n",LNF_IF_NAME);
-@@ -12390,7 +12403,7 @@ static int prepare_subtables(FILE *raw_fp, FILE *mangle_fp, FILE *nat_fp, FILE *
+@@ -12433,7 +12446,7 @@ static int prepare_subtables(FILE *raw_fp, FILE *mangle_fp, FILE *nat_fp, FILE *
}
#endif /*_HUB4_PRODUCT_REQ_*/
fprintf(filter_fp, "-A INPUT -i %s -j wan2self_mgmt\n", current_wan_ifname);
--#if !defined(_HUB4_PRODUCT_REQ_) && !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_BANANAPI_R4_)
-+#if !defined(_HUB4_PRODUCT_REQ_) && !defined(_GENERIC_LINUX_DATA_PATH)
+-#if !defined(_HUB4_PRODUCT_REQ_) && !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_BANANAPI_R4_) && !defined (NO_MTA_FEATURE_SUPPORT)
++#if !defined(_HUB4_PRODUCT_REQ_) && !defined(_GENERIC_LINUX_DATA_PATH) && !defined (NO_MTA_FEATURE_SUPPORT)
#if defined (_RDKB_GLOBAL_PRODUCT_REQ_)
if( 0 != strncmp( devicePartnerId, "sky-", 4 ) )
#endif
-@@ -12507,7 +12520,7 @@ static int prepare_subtables(FILE *raw_fp, FILE *mangle_fp, FILE *nat_fp, FILE *
+@@ -12552,7 +12565,7 @@ static int prepare_subtables(FILE *raw_fp, FILE *mangle_fp, FILE *nat_fp, FILE *

fprintf(filter_fp, "-A INPUT -i %s -j ACCEPT\n", ecm_wan_ifname);
}
--#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_BANANAPI_R4_)
-+#if !defined(_GENERIC_LINUX_DATA_PATH)
+-#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_) && !defined(_PLATFORM_BANANAPI_R4_) && !defined (NO_MTA_FEATURE_SUPPORT)
++#if !defined(_GENERIC_LINUX_DATA_PATH) && !defined (NO_MTA_FEATURE_SUPPORT)
if (emta_wan_ifname[0]) // spare eMTA wan interface from Utopia firewall
{
fprintf(filter_fp, "-A INPUT -i %s -p udp --dport 80 -j DROP\n", emta_wan_ifname);
@@ -336,19 +336,6 @@ index 0cb72ca..92a64ac 100644

#if 0
/* RFC REFRESH for dynamic whitelisting of IPs */

RPI:

Code Block
titleBuild Instruction for RPI
$ mkdir rdkb-arm
$ cd rdkb-arm
$ repo init -u 'https://github.com/rdkcentral/meta-rdk-bsp-arm/' \
    -m "manifests/rdkb-bsp-arm.xml" \
    -b "main"
$ repo sync
$ MACHINE="raspberrypi64-rdk-broadband" source meta-rdk-bsp-arm/setup-environment
$ bitbake rdk-generic-broadband-image

...

Code Block
titleBuild Instruction for QEMU
$ mkdir rdkb-arm
$ cd rdkb-arm
$ repo init -u 'https://github.com/rdkcentral/meta-rdk-bsp-arm/' \
    -m "manifests/rdkb-bsp-arm.xml" \
    -b "main"
$ repo sync
$ MACHINE="armefi64-qemu-broadband" source meta-rdk-bsp-arm/setup-environment
$ bitbake rdk-generic-broadband-image

The default ARM build have been updated to include additional features such as  erouter0, Captive Portal and WebUI support.

The required PRs to be cherry-picked

 https://github.com/rdkcentral/ethernet-agent/pull/40
 https://github.com/rdkcentral/meta-rdk-bsp-arm/pull/4
 https://github.com/rdkcentral/meta-rdk-bsp-arm/pull/7
 https://github.com/rdkcentral/meta-rdk-bsp-arm/pull/8
 https://github.com/rdkcentral/webui/pull/81
 https://github.com/rdkcentral/meta-rdk-bsp-arm/pull/11

The default ARM build have been updated to support SSH.

PR:
https://github.com/rdkcentral/utopia/pull/175

There are two types of build outputs:

  • The platform firmware, which abstracts the hardware platform in a standard manner (the SystemReady standards).

  • The operating system image, which includes the root filesystem, Linux kernel and boot manager.

    Development images generated by this layer can be used across any machine which has a compatible platform firmware deployed.

The default armefi64-rdk-broadband machine type will generate an operating system image that will be bootable on platforms with SystemReady (EFI) compatible firmware and a platform firmware firmware which can be used with QEMU's arm64 virt machine type.

The following generated binaries (in build-armefi64-rdk-broadband/tmp/deploy/images/armefi64-rdk-broadband/) are relevant:

  • rdk-generic-broadband-image-armefi64-rdk-broadband.wic: Uncompressed operating system image (kernel + rootfs + boot manager)

    This image can be booted on a board (or virtual machine) which already has SystemReady compatible firmware

  • rdk-generic-broadband-image-armefi64-rdk-broadband.wic.qcow2: QCOW2 operating system image, best to use with virtual machine programs

  • rdk-generic-broadband-image-armefi64-rdk-broadband.tar.gz: Compressed tar archive of the operating system image (including kernel). This is currently used for system upgrades.

  • u-boot-armefi64-rdk-broadband.bin (linked to u-boot.bin): Reference platform firmware (used with QEMU virt machine)

The generated disk (wic) images are intended for block storage devices, for example, eMMC, SD cards, USB or NVMe storage devices, or emulated types such as virtio-blk.

A production device may use flash (NOR or NAND) devices for storing the system level firmware.

Additional files like Image (Linux kernel Image file), linuxaa64.efi.stub (Kernel EFI stub), systemd-bootaa64.efi (systemd-boot executable) and u-boot-initial-env-armefi64-rdk-broadband (U-Boot "Factory" environment) are also generated by the Yocto build process. These are not needed for normal development and deployment activities.

It is intended that the rdk-generic-broadband-image-armefi64-rdk-broadband.wic is a universal operating system image that will boot on as many real and virtual machines as possible.

(For example, you can write the .wic file onto a USB drive, and move the USB drive between different boards without making any changes)

Where possible, the same Linux kernel, firmware (U-Boot) and other relevant component versions will be used, with a strong preference for "mainline" versions.

Configuring multiconfig for multiple target builds

It is possible to use BitBake's "multiconfig" feature to setup the same build folder for multiple targets at once.

Doing so will save you time and disk space, as most packages between machines defined in this layer are shared.

If you specify MACHINE=all, the setup-environment script will do the necessary setup:

$ MACHINE="all" source meta-rdk-bsp-arm/setup-environment

...

Code Block
$ bitbake mc:generic:rdk-generic-broadband-image && \
    bitbake mc:raspberrypi:rdk-generic-broadband-image
(Due to the way RDK-B components are built, it is not possible to do a "parallel" build for two targets at once, however, you will still save a significant amount of time and disk space by using multiconfig builds sequentially)

Build images for each target will be available in tmp/deploy:

$ ls build-armefi64-rdk-broadband/tmp/deploy/images/
armefi64-rdk-broadband
raspberrypi64-rdk-broadband.

Running the generated image on QEMU

Direct QEMU invocation

You can use the generated wic.qcow2 and u-boot.bin to invoke QEMU directly. This allows you to customize your QEMU setup for your own environment and requirements.

On virtualization capable Arm64 hosts you can use KVM for near-native performance.

You can invoke QEMU like this:

Code Block
titleQEMU invocation
# Copy the QCOW2 image and u-boot.bin from the deploy directory
cp $HOME/rdkb-cmf-arm/build-armefi64-rdk-broadband/tmp/deploy/images/armefi64-rdk-broadband/{rdk-generic-broadband-image-armefi64-rdk-broadband.wic.qcow2,u-boot.bin} .

# It can be helpful to create a snapshot to quickly revert
# any changes that are made
qemu-img create -f qcow2 -b rdk-generic-broadband-image-armefi64-rdk-broadband.wic.qcow2 -F qcow2 rdk.snapshot.qcow2
# And resize that snapshot to allow space for upgrades
qemu-img resize rdk.snapshot.qcow2 10G

DISK=${DISK:-rdk.snapshot.qcow2}
sudo qemu-system-aarch64 -nographic \
    -cpu cortex-a53 -machine virt \
    -bios u-boot.bin \
    -smp 2 -m 1024 \
    -device virtio-rng-pci \
    -hda "${DISK}" \
    -netdev tap,id=testlan -net nic,netdev=testlan \
    -netdev tap,id=testlan2 -net nic,netdev=testlan2 \
    -netdev user,id=testwan -net nic,netdev=testwan \
    -device pci-serial
#using bridge manager:
# ensure /usr/local/libexec/qemu-bridge-helper is present and executable
# provide /usr/local/etc/qemu/bridge.conf:
#     allow br10
#     allow br100

sudo qemu-system-aarch64 -nographic \
    -cpu cortex-a53 -machine virt \
    -bios u-boot.bin  \
    -smp 2 -m 1024  \
    -device virtio-rng-pci  \
    -hda "${DISK}"  \
    -netdev bridge,id=testwan,br=br10 \
    -device virtio-net pci,netdev=testwan,mac=52:54:00:2d:6e:99  \
    -netdev bridge,id=testlan,br=br100 \
    -device virtio-net-pci,netdev=testlan,mac=52:54:00:2d:6e:98  \
    -device pci-serial

Features To Be Implemented on ARM

The following features are yet to be implemented and fully validated on the ARM platform.

...

titleList of features

...

)
$ mkdir rdkb-arm
$ cd rdkb-arm
$ repo init -u 'https://github.com/rdkcentral/meta-rdk-bsp-arm/' \
    -m "manifests/rdkb-bsp-arm.xml" \
    -b "develop"
$ repo sync
$ MACHINE="raspberrypi64-rdk-broadband" source meta-rdk-bsp-arm/setup-environment
$ bitbake rdk-generic-broadband-image


QEMU:

Code Block
titleBuild Instruction for QEMU
$ mkdir rdkb-arm
$ cd rdkb-arm
$ repo init -u 'https://github.com/rdkcentral/meta-rdk-bsp-arm/' \
    -m "manifests/rdkb-bsp-arm.xml" \
    -b "main"
$ repo sync
$ MACHINE="armefi64-qemu-broadband" source meta-rdk-bsp-arm/setup-environment
$ bitbake rdk-generic-broadband-image


The default ARM build have been updated to include additional features such as  erouter0, Captive Portal and WebUI support.

The required PRs to be cherry-picked

 https://github.com/rdkcentral/ethernet-agent/pull/40
 https://github.com/rdkcentral/webui/pull/81
https://github.com/rdkcentral/meta-rdk-bsp-arm/pull/53
https://github.com/rdkcentral/meta-rdk-bsp-arm/pull/50

The default ARM build have been updated to support SSH.

PR:
https://github.com/rdkcentral/utopia/pull/175

There are two types of build outputs:

  • The platform firmware, which abstracts the hardware platform in a standard manner (the SystemReady standards).

  • The operating system image, which includes the root filesystem, Linux kernel and boot manager.

    Development images generated by this layer can be used across any machine which has a compatible platform firmware deployed.

The default armefi64-rdk-broadband machine type will generate an operating system image that will be bootable on platforms with SystemReady (EFI) compatible firmware and a platform firmware firmware which can be used with QEMU's arm64 virt machine type.

The following generated binaries (in build-armefi64-rdk-broadband/tmp/deploy/images/armefi64-rdk-broadband/) are relevant:

  • rdk-generic-broadband-image-armefi64-rdk-broadband.wic: Uncompressed operating system image (kernel + rootfs + boot manager)

    This image can be booted on a board (or virtual machine) which already has SystemReady compatible firmware

  • rdk-generic-broadband-image-armefi64-rdk-broadband.wic.qcow2: QCOW2 operating system image, best to use with virtual machine programs

  • rdk-generic-broadband-image-armefi64-rdk-broadband.tar.gz: Compressed tar archive of the operating system image (including kernel). This is currently used for system upgrades.

  • u-boot-armefi64-rdk-broadband.bin (linked to u-boot.bin): Reference platform firmware (used with QEMU virt machine)

The generated disk (wic) images are intended for block storage devices, for example, eMMC, SD cards, USB or NVMe storage devices, or emulated types such as virtio-blk.

A production device may use flash (NOR or NAND) devices for storing the system level firmware.

Additional files like Image (Linux kernel Image file), linuxaa64.efi.stub (Kernel EFI stub), systemd-bootaa64.efi (systemd-boot executable) and u-boot-initial-env-armefi64-rdk-broadband (U-Boot "Factory" environment) are also generated by the Yocto build process. These are not needed for normal development and deployment activities.

It is intended that the rdk-generic-broadband-image-armefi64-rdk-broadband.wic is a universal operating system image that will boot on as many real and virtual machines as possible.

(For example, you can write the .wic file onto a USB drive, and move the USB drive between different boards without making any changes)

Where possible, the same Linux kernel, firmware (U-Boot) and other relevant component versions will be used, with a strong preference for "mainline" versions.

Configuring multiconfig for multiple target builds

It is possible to use BitBake's "multiconfig" feature to setup the same build folder for multiple targets at once.

Doing so will save you time and disk space, as most packages between machines defined in this layer are shared.

If you specify MACHINE=all, the setup-environment script will do the necessary setup:

$ MACHINE="all" source meta-rdk-bsp-arm/setup-environment


 You can then run the build cycle for each target:

Code Block
$ bitbake mc:generic:rdk-generic-broadband-image && \
    bitbake mc:raspberrypi:rdk-generic-broadband-image
(Due to the way RDK-B components are built, it is not possible to do a "parallel" build for two targets at once, however, you will still save a significant amount of time and disk space by using multiconfig builds sequentially)

Build images for each target will be available in tmp/deploy:

$ ls build-armefi64-rdk-broadband/tmp/deploy/images/
armefi64-rdk-broadband
raspberrypi64-rdk-broadband.

Running the generated image on QEMU

Direct QEMU invocation

You can use the generated wic.qcow2 and u-boot.bin to invoke QEMU directly. This allows you to customize your QEMU setup for your own environment and requirements.

On virtualization capable Arm64 hosts you can use KVM for near-native performance.

You can invoke QEMU like this:

Code Block
titleQEMU invocation
# Copy the QCOW2 image and u-boot.bin from the deploy directory
cp $HOME/rdkb-cmf-arm/build-armefi64-rdk-broadband/tmp/deploy/images/armefi64-rdk-broadband/{rdk-generic-broadband-image-armefi64-rdk-broadband.wic.qcow2,u-boot.bin} .

# It can be helpful to create a snapshot to quickly revert
# any changes that are made
qemu-img create -f qcow2 -b rdk-generic-broadband-image-armefi64-rdk-broadband.wic.qcow2 -F qcow2 rdk.snapshot.qcow2
# And resize that snapshot to allow space for upgrades
qemu-img resize rdk.snapshot.qcow2 10G

DISK=${DISK:-rdk.snapshot.qcow2}
sudo qemu-system-aarch64 -nographic \
    -cpu cortex-a53 -machine virt \
    -bios u-boot.bin \
    -smp 2 -m 1024 \
    -device virtio-rng-pci \
    -hda "${DISK}" \
    -netdev tap,id=testlan -net nic,netdev=testlan \
    -netdev tap,id=testlan2 -net nic,netdev=testlan2 \
    -netdev user,id=testwan -net nic,netdev=testwan \
    -device pci-serial
#using bridge manager:
# ensure /usr/local/libexec/qemu-bridge-helper is present and executable
# provide /usr/local/etc/qemu/bridge.conf:
#     allow br10
#     allow br100

sudo qemu-system-aarch64 -nographic \
    -cpu cortex-a53 -machine virt \
    -bios u-boot.bin  \
    -smp 2 -m 1024  \
    -device virtio-rng-pci  \
    -hda "${DISK}"  \
    -netdev bridge,id=testwan,br=br10 \
    -device virtio-net pci,netdev=testwan,mac=52:54:00:2d:6e:99  \
    -netdev bridge,id=testlan,br=br100 \
    -device virtio-net-pci,netdev=testlan,mac=52:54:00:2d:6e:98  \
    -device pci-serial

ARM Platform Patch Summary:

This section provides a summary of patches maintained for the ARM platform under meta-rdk-bsp-arm metalayer.

Component Name No. of Patches
test-and-diagnostic1
utopia12
rdk-wifi-hal4
ccsp-common-library5
ccsp-eth-agent4
ccsp-one-wifi2
unified-wifi-mesh1
ccsp-p-and-m3
ccsp-dhcp-mgr1
linux-backports_6.63
linux-yocto-5.155
parodus1
recipes-devtools10

ARM Platform – Feature Implementation Status

S.NoFeaturesCompletedIn Review In ProgressNot started
1IPv6

        check mark button 




2Cellular        check mark button                  
3RNDIS        check mark button                           
4WebPA        check mark button


5
USP-PA(oktopus)
        check mark button
         
6Parental Control        check mark button
                   
7Port Forwarding        check mark button


8Port Triggering        check mark button


USB Detection       check mark button


10DAC
      check mark button        
11
Log-Upload & Telemetry

      check mark button         
12
Multiprofile


        check mark button      
13
Selfheal



       check mark button
14
Log-Rotation



       check mark button
15RFC


       check mark button
16
Telco-Voice



       check mark button
17WPS


       check mark button
18
WebConfig


check mark button       
19ACS


       check mark button
20SNMP


       check mark button
21
Firmware Upgrade



       check mark button
22
eSDK



       check mark button
23
Populate-SDK



       check mark button

Note:
This list represents features that are either not yet supported or require additional integration and validation on the ARM platform.

list of PRs to be merged:
 1. default ssh support in ARM System Ready.

       PR: https://github.com/rdkcentral/utopia/pull/175
       issue: https://github.com/rdkcentral/meta-rdk-bsp-arm/issues/67

2. Bridge Mode support on ARM System Ready.

       PR: https://github.com/rdkcentral/meta-rdk-bsp-arm/pull/63
       issue: https://github.com/rdkcentral/meta-rdk-bsp-arm/issues/26

   
Known Issues:


  1. On RPI (ARM) platform, WiFi interfaces are not created/visible.
  2. Unable to connect clients on ARM Qemu.
  3. Cellular feature support on RPI (ARM).
  4. On RPI (ARM) delay on the DM's response.