From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom Rini Date: Thu, 13 May 2021 15:06:13 -0400 Subject: [PATCH v5 02/10] cmd: add support for a new "extension" command In-Reply-To: <20210504173130.22869-3-kory.maincent@bootlin.com> References: <20210504173130.22869-1-kory.maincent@bootlin.com> <20210504173130.22869-3-kory.maincent@bootlin.com> Message-ID: <20210513190613.GF17669@bill-the-cat> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Tue, May 04, 2021 at 07:31:22PM +0200, Kory Maincent wrote: > This patch adds a new "extension" command, which aims at detecting > extension boards connected to the hardware platform, and apply the > Device Tree overlays that describe the hardware present on those > extension boards. > > In order to enable this mechanism, board-specific code must implement > the extension_board_scan() function that fills in a linked list of > "struct extension", each describing one extension board. In addition, > the board-specific code must select the SUPPORT_EXTENSION_SCAN Kconfig > boolean. > > Based on this: > > - "extension scan" makes the generic code call the board-specific > extension_board_scan() function to retrieve the list of detected > extension boards. > > - "extension list" allows to list the detected extension boards. > > - "extension apply |all" allows to apply the Device Tree > overlay(s) corresponding to one, or all, extension boards > > The latter requires two environment variables to exist and set one variable > to run: > > - extension_overlay_addr: the RAM address where to load the Device > Tree overlays > > - extension_overlay_cmd: the U-Boot command to load one overlay. > Indeed, the location and mechanism to load DT overlays is very setup > specific. > > - extension_overlay_name: set by the command: the name of the DT which > will be load during the execution. > > When calling the command described in the extension_overlay_cmd > variable, the variable extension_overlay_name will be defined. So a > typical extension_overlay_cmd will look like this: > > extension_overlay_cmd=load mmc 0:1 $extension_overlay_addr /boot/$extension_overlay_name > > Here is an example on how to use it: > => run loadfdt > => fdt addr $fdtaddr > => setenv extension_overlay_addr 0x1000 > => setenv extension_overlay_cmd 'load mmc 0:1 ${extension_overlay_addr} /boot/${extension_overlay_name}' > => extension scan > Found 1 extension board(s). > => extension apply 0 > 519 bytes read in 3 ms (168.9 KiB/s) > > Signed-off-by: Kory Maincent > Reviewed-by: Maxime Ripard Applied to u-boot/master, thanks! -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 659 bytes Desc: not available URL: