RDK Resources

[*ASP Wiki*]

Code Management Facility

Code Releases

RDK Forums

[RDK Conferences]

RDK Support

Archives

Papers & Presentations Archive

In the News!

Skip to end of metadata
Go to start of metadata

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. 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  component specific  HALs available in "../rdkb/components/opensource/ccsp/hal/source/" path.
    • Wifi  
    • MoCA
    • MTA Agent
    • CM   
    • DHCPv4C
    • Ethernet Switch
    • MSO_Management

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

Common HAL

  •  A common HAL provides the necessary abstraction to all the CCSP components to interface with other common hardware components.
  • Eg : Platform HAL

Platform HAL

  • Platform HAL is an abstraction layer, implemented to interact with cable modem device for getting the hardware specific details such as Firmware Name, Boot loader Version, etc.
  • This HAL layer is intended to support platform drivers
  • platform_hal.c file provides the function call prototypes and structure definitions used for the platform hardware abstraction layer
  • Some of the APIs are :
  1.  platform_hal_GetSerialNumber
  2.  platform_hal_GetFirmwareName
  3.  platform_hal_GetBootloaderVersion

HAL Reference (Under Development)

See the HAL guide for details about HAL




  • No labels