Message ID | 20210420082541.28757-1-kory.maincent@bootlin.com |
---|---|
Headers | show |
Series | Add support for extension boards detection and DT overlays application | expand |
On Tue, Apr 20, 2021 at 10:25:31AM +0200, Kory Maincent wrote: > This series of patches aims at proposing a generic U-Boot mechanism to > detect extension boards connected to the HW platform, and apply the > appropriate Device Tree overlays depending on the detected extension > boards. > > Indeed, numerous popular platforms, such as the BeagleBone or the > RaspberryPi, feature some kind of extension board mechanism. These > extension boards are often discoverable through some kind of EEPROM > (connected on I2C, 1-wire, etc.) and require Device Tree overlays to be > applied at the U-Boot level to provide a complete HW description to the > Linux kernel. However, currently this logic is usually implemented > ad-hoc in downstream forks of U-Boot. > > This series proposes to bring a HW-agnostic and generic solution to > this problem to upstream U-Boot. The series shows that it is generic > enough by implementing its usage for 2 different families of HW > platforms and expansion boards: > > - The BeagleBone Black and BeagleBone AI, that use extension boards > where the EEPROM describing the extension boards is connected over > I2C. > > - The CHIP, that uses extension boards where the EEPROM describing the > extension boards is connected over 1-wire. > > The patch series implements a new command called "extension", with two > sub-commands: > > - "extension scan" to detect available extension boards > > - "extension list" will simply list the detected extension boards > > - "extension apply" will allow to apply the Device Tree overlays > corresponding to one extension board or to all expansion boards > > Note that the name "extension" has been chosen to not refer to any > particular board-specific terminology for extension boards ("cape" for > BeagleBone, "DIP" for CHIP, "hat" for RaspberryPi, etc.). However, we > welcome suggestions of other names and are definitely willing to use a > different naming. > > The "extension apply" command requires two environment variables to be > defined so that it knows how to apply DT overlays. This is described > in more details in PATCH 1. > > This generic code requires board-specific code for the detection and > enumeration of extension boards. This is simply implemented in the form > of a board-specific extension_board_scan() function, which fills in a > list of detected extension boards. > > In detail: > > - PATCH 1 move fdt_valid function to fdt_support file > - PATCH 2 implements the generic command and logic > - PATCH 3 implements the python test for the "extension" command > - PATCH 4 implements the board-specific code for the BeagleBone platforms > - PATCH 5 enables the mechanism for the BeagleBone AI > - PATCH 6 review the detection mechanism of one-wire devices > - PATCH 7 and 8 enable the mechanism for the CHIP > - PATCH 9 and 10 enable the mechanism for the BeagleBone Black > > Thanks in advance for your review and feedback Can you please rebase this on current master? Thanks.