RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
HideElements | ||||||||
---|---|---|---|---|---|---|---|---|
|
Background Color | ||||||
---|---|---|---|---|---|---|
| ||||||
Before You Begin Anchor |
|
SoC vendors are advised to get into an agreement with RDK Management LLC to obtain the free license so as to use the complete RDK Code base in their platform. More details about license is available at https://rdkcentral.com/licenses/ . Please email info@rdkcentral.com if you have additional questions about licenses or membership
Background Color | ||||||
---|---|---|---|---|---|---|
| ||||||
Bringing up RDK by SoC - Approach Anchor |
|
This section will detail the recommended step by step procedure of adopting RDK by a SoC
The first step to get a fully functional product is to define the product features and see if they meet the standard requirements. See here to know what are all the features available in RDK-V and can implement based on your requirement. SoC can use this as a guide while engineering the RDK SoC platform.
RDKM provides a collaboration zone facility for SoCs to facilitate easier engineering of RDK based devices. The collaboration zone will help SoCs to work with OEMs, RDKM and any 3rd party along with a common space to develop & integrate, manage and verify the device. The zone includes facilities for code management, a confluence based RDK Wiki for knowledge management & sharing, a JIRA for tracking activity progress, issues as well as to manage the activities, a test setup to validate devices. The access restrictions implemented will help the collaboration zone to be accessible only for the authorized personnel thereby guarding any sensitive information related to SoC/OEM/Third party.
A table explaining the roles & responsibilities of SoC & RDKM in the collaboration zone is given below:
# | Activity | Owner | Remarks |
---|---|---|---|
1 | RDKM | RDKM will setup Collaboration space, access restrictions | |
2 | SoC | JIRA project. SoC will be the owner for the JIRA project | |
3 | SoC/RDKM | RDKM will create the space and SoC push the code changes | |
4 | SoC | Create necessary device specific HAL implementation for porting RDK into Accelerator | |
5 | SoC | Which SDK version to be used. RDKM will support the integration with SoC libraries | |
6 | SoC | Manifest for building the accelerator | |
7 | UI/UX(only for RDK licensee) | RDKM/SoC | Comes with pre-integrated UI’s, SoC and RDKM will discuss on the default UI |
8 | Create RDK build from CMF GIT | SoC/ RDKM | Both teams work together to build Accelerator from CMF |
9 | Provide Devices to RDKM team | SoC | |
10 | Device flashing instructions / recovery mechanisms | SoC | SoC should share the device flashing instruction |
11 | RDKM/SoC | RDK Certification Suite | |
12 | Monthly release & tagging | SoC | Monthly tagging and release with stakeholders along with test results |
Anchor | ||||
---|---|---|---|---|
|
Expand | ||
---|---|---|
| ||
It is expected that SoC has already obtained a license to work with RDKM (If not, SoC can send a mail to support@rdkcentral.com to start off with the discussions). With this user account an INFRA ticket can be raised at https://jira.rdkcentral.com to create a collaboration repo. The ticket should contain the details for:
|
Expand | ||
---|---|---|
| ||
SoC users can sign up at https://wiki.rdkcentral.com/signup.action to create a user account in RDK. For any issues faced, a mail can be sent to support@rdkcentral.com |
Anchor | ||||
---|---|---|---|---|
|
Expand | ||
---|---|---|
| ||
An INFRA ticket needs to be raised at https://jira.rdkcentral.com with the below details:
For any issues faced, a mail can be sent to support@rdkcentral.com |
Anchor | ||||
---|---|---|---|---|
|
Expand | ||
---|---|---|
| ||
An INFRA ticket needs to be raised at https://jira.rdkcentral.com to create a JIRA project for SoC. Once approvals are received along with required access restrictions, the project will be created. For any issues faced, a mail can be sent to support@rdkcentral.com |
Anchor | ||||
---|---|---|---|---|
|
Expand | ||
---|---|---|
| ||
To get a Git repository a request needs to be raised to CMF team using the CMFSUPPORT ticket at https://jira.rdkcentral.com. Once approvals are received along with required access restrictions, the repo will be created. Any changes in merge permissions can be requested in same ticket. For creating any specific branches in the repo, another ticket in the same CMFSUPPORT can be raised. For any issues faced, a mail can be sent to support@rdkcentral.com Once the git repo is created, it can be accessed at https://code.rdkcentral.com |
Anchor | ||||
---|---|---|---|---|
|
Expand | ||
---|---|---|
| ||
An INFRA ticket needs to be raised at https://jira.rdkcentral.com to get access to SDK Artifacts. Once approvals are received along with required access restrictions, the access should be in place. For any issues faced, a mail can be sent to support@rdkcentral.com |
Once the product features are decided, the device engineering can be started. SoC needs to decide on the hardware layout that incorporates components to the target board. Device will be categorized as Low Profile and High Profile device based on the hardware capabilities. In a low profile device 4k support might be optional but it is expected to have 4k support in high profile device.
Reference Flash Layout |
---|
flash0.macadr EMMC flash Data : 1024B flash0.nvram EMMC flash Data : 64KB flash0.recovery EMMC flash Data : 256MB flash0.vendor EMMC flash Data : 128MB flash0.kernel_a EMMC flash Data : 128MB flash0.kernel_b EMMC flash Data : 128MB flash0.rootfs_a EMMC flash Data : 1024MB flash0.rootfs_b EMMC flash Data : 1024MB flash0.rootdata EMMC flash Data : 2048MB flash0.rsvd EMMC flash Data : 10174MB |
SoC can make use of the below details available to start developing a Yocto build to engineer the device firmware builds based on RDK Yocto build setup.
Yocto based RDK builds are flexible enough to easily accommodate SoC / OEM / MSO / third party changes. The starting point for the Yocto builds are a manifest file. The manifest file is an xml file that contains details of the different open embedded Yocto build layers, meta layers , rdk as well as open source components that needs to be fetched during initial stages ( than during bitbake time ) as well as the URL locations from where the data can be pulled. A set of sample manifests that can be used as a template for developing SoC specific manifests are given below
Expand | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||
The default manifest repo in RDKM Git is at https://code.rdkcentral.com/r/#/c/manifests/ . SoC can use the 'collaboration' sub section in this repo to add their platform specific manifests which will be under collaboration zone restrictions . The location will be https://code.rdkcentral.com/r/collaboration/SoC/<platform>/<platform-manifests> |
SoC/OEM meta-layer creation
To match the layered structure of Yocto builds, a SoC specific layer is used to include SoC changes and additions. Use the yocto-layer create sub-command to create a new general layer.
Code Block | ||||
---|---|---|---|---|
| ||||
$ yocto-layer create mylayer |
There shall be separate device (machine) configuration file (.conf) for each device for the particular chip family for which the layer is intended for. The general naming terminology for SoC layer is meta-rdk-SoC-<SoC name>
The device (machine) configuration file shall include corresponding include (.inc) file to get machine configuration details.
Expand | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||
Adding the Machine Configuration File for the new SoCEach meta-* layer should have a conf folder containing the machine configuration we can select during 'source setup-environment' . Optionally it can also have a class/classes folder for keeping information that is useful to share between metadata files. To add a machine configuration, you need to add a .conf file with details of the device being added to the conf/machine/ file. In the machine conf file the basic machine configuration should be defined. SoC can have several meta-rdk-<chip-set> layers containing chip specific implementation. Generally conf file name will be SoC name. If both OEM and SoC are present then machine configuration should be coming from master i.e. OEM . It means whatever image that gets created comes from meta-rdk-oem The most important variables to set in this file are as follows :
For SoC, The most important variables to set in this conf file are as follows :
Basic configuration of building kernelStandard meta-rdk/recipe-core/images will have different kinds of images which one can use and build. This recipe-core/images will have bbappend or main image name. If meta-rdk is used( i.e. meta-rdk image ) then bbappend of that image client is required For example, <image name>.bbappend Define "bbappend of images" and "conf file" as required. SoC meta-layer recipesGenerally SoC meta-layer (Eg: meta-<SoC name>) will have following recipes
|
RDKM offers an in-house Test & certification suite that facilitates SoCs to get their IP Set-top product certified as RDK Compliant device.
Certification program includes testing which validates the RDK stack on the device with defined test suite called as RDK Certification Test Suite. It is mandatory to go through this program in order to brand user's platform as RDK compliant product.
Certification suite is available at RDK IP Set-top Product Certification(only for RDK licensee) and for TDK test app please refer TDK-V Documentation(only for RDK licensee).
Once the RDK bring-up in SoC is completed, the vendor needs to plan on the delivery of the software to OEM vendors. This usually happens in 2 ways:
In this approach will make use of the RDK Artifactory server. Artifactory server is a Repository Manager that functions as a single access point organizing all the binary resources including proprietary libraries, remote artifacts and other 3rd party resources. It is a secure and restricted server, only collaboration members will have access to this server. SoC secure information like secure components such as PlayReady, widevine and Dolby libraries etc. can be hosted in Artifactory server.
SoC vendor can define a HAL layer, share the source of HAL & yocto meta layer that can be stored in RDK CMF Git repository (which will be shared only to authorized OEM vendors who will work in collaboration with the SoC vendor), share the SDK binary that can be stored in RDK Artifactory (which will be shared only to authorized OEM vendors who will work in collaboration with the SoC vendor) and then publish necessary documentation on how to build the SoC SDK. SoC vendor can use the git/ Artifactory for periodic updated (for releases) or for bug fixes. All the source code, binary and documentation will be strictly access restricted and access will be allowed only for authorized personnel by SoC vendor.
Artifactory server can be accessed by adding the Artifactory details and login credentials in the .netrc file, just like it is done for normal git repositories. A sample is given below:
machine your.artifactory.host
login YOUR_ARTIFACTORY_USERNAME
password YOUR_PASSWORD_OR_KEY_OR_TOKEN
In this approach, SoC vendor can define a HAL layer, share the source of HAL , yocto meta layer and SDK source code that can be stored in RDK CMF Git repository( which will be shared only to authorized OEM vendors who will work in collaboration with the SoC vendor ) and then publish necessary documentation on how to build the SoC SDK. SoC vendor can use the git for periodic updated ( for releases ) or for bug fixes. All the source code and documentation will be strictly access restricted and access will be allowed only for authorized personnel by SoC vendor.
For both approaches, the RDKM collaboration zone will be used with strict access restrictions.
After a successful bring up of RDK on SoC platform, the next step will be to allow OEMs to work with SoCs to get a device based on the SoC platform. RDKM offers collaboration space for SoCs which would help SoCs to collaborate with OEM and RDK teams (as well as any 3rd party) in their journey to engineer a successful RDK product. RDKM collaboration zone includes features like (but not limited to) CMF facility to maintain build manifests as well as SoC/OEM specific code, SoC SDK artifact storage facility, JIRA & RDK Wiki spaces, integration with Test & Certification suites, monthly & release tagging etc.
Please refer RDKM On-boarding for more details on facilities available for SoCs and OEMs as part of collaboration zone . In short, it will include:
Background Color | ||||||
---|---|---|---|---|---|---|
| ||||||
RDK porting guide to SoC vendors Anchor |
|
Include Page | ||||
---|---|---|---|---|
|