Hey RTEMS Community,
I just wrapped up my semester exams and am excited to be back in the flow. I have updated my GSoC project to #5136.
Introduction
DTS (Device Tree Source) and DTB (Device Tree Blob) are primarily used in ARM and RISC-V based architectures. So what do they represent?
DTS defines the properties of hardware components of that architecture, and DTB is a data structure used to represent those properties in binary.
Overview
In our current issue, the FDT (in RTEMS DTB is referred to as FDT) it is being manually mapped from array after externally converting DTS to FDT.
This causes some major errors such as naming ,formatting alignment which are seen in some of the issues like #5137.
Thus, automation of this procedure is the project.
Process Flow
- DTS files are converted into FDT binary using the DTC.
- The FDT is manually mapped in the form of an array; and linked into BSPs
- BSP startup code provides a pointer to this array via
rtems_fdt_set() - Then libfdt is used to query the data for drivers.
Representation of Array
- The parsing of the elements is of 4-byte offset.
- Each represents fields such as magic number, size of block, structure block offset, string block offset, etc.
Primary Implementations
- Integrating the DTS files into RTEMS.
- Building the DTS to FDT.
- Converting the FDT to an array.
Doubts
- What should be the origin of the DTS file vendor or Linux? Are we creating a standard for this?
- I did not come across any document for mapping of the array from RTEMS. Should we add it?
- I might be just foreseeing or could be wrong, but when adding the DTS file, should there be a review-like system for maintainers to verify it, or would that be done on GitLab itself?
- What are the things the automation pipeline should have and tests to be included ?
- What are initial tasks I need to do get started for this project.?
Looking forward for guidance form mentors and community members.