Versions Compared

Key

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

This page is under development

Introduction

RDK-B components are designed to avoid platform or silicon dependencies. Hardware Abstraction Layer (HAL) defines a standard interface for hardware vendors to implement. The HAL layer abstracts the underlying hardware like MOCA, Wi-Fi, etc. through a standard set of APIs defined as part of RDK-B HAL for the respective components. This HAL layer is implemented per platform and the rest of the components can be compiled to run on the new platform without major modifications.

The HAL in RDK-B Architecture section gives an overview of CCSP framework's Hardware Abstraction Layer.

HAL can be common-HAL or component-specific-HAL

  •  A common HAL provides the necessary abstraction to all the CCSP components to interface with other common hardware components.
  •  Components may define a component specific HAL to hardware drivers, that are only used by that component

Component Specific HAL

  • HAL APIs will be available in the CMF repo path: "../rdkb/components/opensource/ccsp/hal/source/"
  • PandM HAL Integration (back-end) Layer is also known as component specific HAL.
  • This layer makes call to underlying Linux system calls/commands, third party modules, open source modules and other CCSP components to execute the requests.
  • This layer will be more component specific and will be providing APIs to CCSP so as to manage a particular hardware module of the system.
  • Following are some of the  HALs available in "../rdkb/components/opensource/ccsp/hal/source/" path.
    • Wifi  
    • MoCA
    • MTA Agent
    • CM   
    • DHCPv4C
    • Ethernet Switch
    • MSO_Management
    • Platform

Wi-Fi HAL 

       All HAL functions prototypes and structure definitions are available in wifi_hal.h file.

  • Latest version of RDKB supports 300+ Wi-Fi HAL API’s
  • Based on how Wi-Fi vendor exposes their driver capabilities in user space, the HAL API’s can be implemented in wifi_hal.c
  • To see the Wi-Fi HAL APIs. Please refer WiFiHAL in the component page.

MOCA HAL

To see the APIs involved with MOCA component. Please see MoCA HAL APIs in the component page.

MTA HAL

An MTA can deliver Home Phone service in addition to High Speed Internet

  • MTA HAL is an abstraction layer, implemented to interact with MTA device
  • mta_hal.c file provides the function call prototypes and structure definitions used for the  MTA hardware abstraction layer
  • Some of the APIs are : 
    1. mta_hal_InitDB
    2. mta_hal_LineTableGetEntry
    3. mta_hal_GetCalls

CM HAL

To see the APIs involved with Cable Modem component. Please see CM HAL APIs .

Ethernet Switch HAL 

All HAL functions prototypes and structure definitions are available in ccsp_hal_ethsw.c file

  • It provides implementation for switch (Ethernet) control
  • Based on how vendor exposes their driver capabilities in user space, the HAL API’s can be implemented in hal-ethsw-generic/git/source/ethsw/ccsp_hal_ethsw.c
  • Some of the APIs are :
  1. CcspHalEthSwInit
  2. CcspHalEthSwGetPortStatus
  3. CcspHalEthSwGetPortCfg
  4. CcspHalEthSwSetPortCfg
  5. CcspHalEthSwGetPortAdminStatus

DHCPv4C HAL 

  • DHCPv4C HAL is used for the RDK-B DHCPv4 Client Status abstraction layer
  • DHCPv4C HAL API's functionality should be implemented by OEMs
  • dhcpv4c_api.c provides the function call prototypes and structure definitions used for the RDK-Broadband DHCPv4 Client Status abstraction layer.
  • Some of the APIs are :
  1. dhcpv4c_get_ert_ifname
  2. dhcpv4c_get_ert_ip_addr
  3. dhcpv4c_get_ert_dns_svrs

HAL Reference (Under Development)

See the HAL guide for details about HAL