u-boot/doc
Kory Maincent 2f84e9cf06 cmd: add support for a new "extension" command
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 <number>|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 <kory.maincent@bootlin.com>
Reviewed-by: Maxime Ripard <maxime@cerno.tech>
2021-05-13 13:09:05 -04:00
..
android fastboot: add UUU command UCmd and ACmd support 2021-02-26 15:30:55 +01:00
api doc: fix doc/develop/logging.rst 2021-01-27 12:52:57 +01:00
arch sandbox: Provide a way to bind fixed/removeable devices 2021-03-27 15:04:31 +13:00
board boards: amlogic: update documentation for PCIe support 2021-04-20 07:30:04 -04:00
build tools: Integrate the Dockerfile used for CI 2021-04-07 14:47:05 -04:00
chromium doc: duplicate target 'youtube' 2021-04-17 20:01:31 +02:00
develop doc: develop: Convert README.virtio to reST 2021-05-10 13:56:12 +08:00
device-tree-bindings dt-bindings: memory-controller: Add K3 AM64 DDRSS compatible 2021-05-12 16:30:52 +05:30
imx doc: imx: psb: Fix missing setexpr arguments 2021-04-24 06:53:40 +02:00
media doc: Remove duplicated documentation directory 2019-06-20 10:57:08 -04:00
mvebu doc: cmd: bubt: drop duplicated text 2018-06-12 18:44:00 -04:00
sphinx sphinx: Pin to docutils-0.16 2021-04-04 16:07:09 -04:00
sphinx-static doc: Remove duplicated documentation directory 2019-06-20 10:57:08 -04:00
SPI sandbox: update documents regarding spi_sf 2020-05-29 20:55:45 -06:00
SPL
uImage.FIT doc: FIT image: Update FPGA example to make use of "loadables" 2021-04-14 15:23:01 -04:00
usage cmd: add support for a new "extension" command 2021-05-13 13:09:05 -04:00
.gitignore doc: Add .gitignore for the Sphinx build output directory 2019-07-24 14:15:37 -04:00
bounces patman: add support for omitting bouncing addresses 2017-09-11 21:43:58 -06:00
conf.py doc: Add reference to U-Boot project in conf.py 2021-02-21 09:21:35 +01:00
feature-removal-schedule.txt treewide: mem: Move mtest related defines to Kconfig 2020-05-08 12:02:56 -04:00
git-mailrc MAINTAINERS, git-mailrc: Update sunxi maintainers 2020-10-29 09:57:13 -04:00
I2C_Edge_Conditions
index.rst doc: imx: psb: Document usage of SRC_GPR10 PERSIST_SECONDARY_BOOT for A/B switching 2021-04-08 23:59:50 +02:00
kwboot.1
Makefile doc: describe the md command 2021-03-02 15:53:37 -05:00
mkimage.1 mkimage: Allow updating the FIT timestamp 2020-07-25 14:46:57 -06:00
README.440-DDR-performance
README.AMCC-eval-boards-cleanup
README.arm-caches
README.arm-relocation treewide: convert bd_t to struct bd_info manually 2020-07-17 10:46:44 -04:00
README.armada-secureboot arm: mvebu: Implement secure boot 2017-02-01 09:04:18 +01:00
README.asn1 doc: add README for asn1 compiler and decoder 2019-12-06 16:44:20 -05:00
README.atmel_mci treewide: convert bd_t to struct bd_info manually 2020-07-17 10:46:44 -04:00
README.atmel_pmecc ARM: at91: Convert SPL_GENERATE_ATMEL_PMECC_HEADER to Kconfig 2019-01-21 08:36:11 -05:00
README.autoboot autoboot: Rename CONFIG_MENUKEY to CONFIG_AUTOBOOT_MENUKEY 2019-08-02 11:19:14 -04:00
README.bcm7xxx board: arm: Add support for Broadcom BCM7445 2018-07-10 16:55:57 -04:00
README.bcmns3 doc: add README doc for bcmns3 platform 2020-07-29 10:37:11 -04:00
README.bedbug
README.bitbangMII
README.bloblist bloblist: Zero records when adding 2020-02-05 19:33:46 -07:00
README.bootcount bootcount_ext: Add flag to enable/disable bootcount 2020-04-24 10:10:00 -04:00
README.boston boston: Introduce support for the MIPS Boston development board 2016-09-21 16:24:36 +02:00
README.bus_vcxk SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
README.cfi doc/README.cfi: Update code snippet, and add example. 2017-01-02 11:14:01 -05:00
README.commands.itest
README.commands.spl
README.console treewide: convert bd_t to struct bd_info manually 2020-07-17 10:46:44 -04:00
README.davinci README: davinci: Clarify when SPL is used and the target devices. 2020-07-13 20:58:34 +05:30
README.davinci.nand_spl
README.dfutftp cmd: drop fitupd command 2020-07-16 12:37:01 +02:00
README.displaying-bmps
README.distro doc/README.distro: kernel_comp_addr_r 2021-02-21 09:21:35 +01:00
README.dns
README.enetaddr net: Always build the string_to_enetaddr() helper 2019-12-09 09:47:41 -06:00
README.esbc_validate SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
README.ext4 fs: Migrate ext4 to Kconfig 2018-01-22 16:43:30 -05:00
README.falcon doc: Update parallel NOR flash related information in README.falcon 2019-07-19 20:14:50 +02:00
README.fdt-control doc: fix references to driver-model 2020-04-17 12:32:36 -04:00
README.fec_mxc
README.fsl-clk doc: restore doc/README.fsl-clk 2017-06-29 21:30:16 -04:00
README.fsl-ddr
README.fsl-dpaa
README.fsl-esdhc Move eSDHC adapter card identification to board files 2020-07-27 14:16:28 +05:30
README.fsl-hwconfig
README.fsl-trustzone-components
README.fsl_iim
README.fuse
README.generic-board treewide: convert bd_t to struct bd_info manually 2020-07-17 10:46:44 -04:00
README.generic_usb_ohci doc: Fix outdated ohci board hook documentation 2019-04-02 12:52:54 +02:00
README.gpio dt-bindings: gpio: alignment with kernel v5.3 2020-04-16 23:06:54 -04:00
README.gpt cmd: gpt: Add option to write GPT partitions to environment variable 2021-05-04 12:52:46 -04:00
README.Heterogeneous-SoCs
README.hwconfig
README.i2c
README.iomux SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
README.JFFS2 fs: Kconfig: Add a separate option for FS_JFFS2 2017-05-22 12:45:31 -04:00
README.JFFS2_NAND README: Drop unused JFFS2 options 2016-10-06 20:40:26 -04:00
README.kconfig treewide: fix "followings" to "following" 2016-08-26 17:04:58 -04:00
README.kwbimage
README.LED powerpc, 8xx: remove support for 8xx 2017-06-12 08:37:55 -04:00
README.link-local
README.lynxkdi
README.m54418twr m68k: Drop unreferenced CONFIG_* defines 2018-01-19 15:49:32 -05:00
README.malta
README.marvell Revert "arm64: dts: a3720: add support for espressobin with populated emmc" 2020-12-07 07:11:37 +01:00
README.mediatek doc: README.mediatek: Add a simple README for MediaTek 2018-11-28 23:04:54 -05:00
README.memory-test
README.mpc74xx
README.mpc83xx.ddrecc
README.mpc83xxads README: Drop CONFIG_MPC8349ADS 2016-10-06 20:40:51 -04:00
README.mpc85xx freescale/powerpc: Rename the config CONFIG_SECURE_BOOT name 2019-11-08 16:32:08 +05:30
README.mpc85xx-sd-spi-boot powerpc: P2010: Drop configuration for P2010 2016-11-23 23:42:10 -08:00
README.mpc85xx-spin-table
README.mpc85xxcds
README.multi-dtb-fit doc: multi-dtb-fit: Remove double underscores 2020-07-17 10:47:19 -04:00
README.mxc_ocotp
README.nand mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
README.nand-boot-ppc440
README.ne2000 Drop PCMCIA 2019-08-11 19:27:41 -04:00
README.nokia_rx51 Nokia RX-51: Enable usbtty serial console by default 2021-03-03 04:12:46 +01:00
README.nvme SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
README.odroid odroid: Update README.odroid for support of Odroid HC1 2018-12-21 16:04:50 +09:00
README.OFT
README.omap-ulpi-viewport
README.omap3 logicpd: Drop omap3 zoom1 2020-07-09 20:58:05 +05:30
README.pblimage
README.pcap doc: pcap: add pcap cmd documentation 2019-09-04 11:37:19 -05:00
README.plan9
README.POST treewide: convert bd_t to struct bd_info manually 2020-07-17 10:46:44 -04:00
README.power-framework
README.pxe cmd: pxe: add support for FDT overlays 2021-01-27 10:47:54 -05:00
README.ramboot-ppc85xx powerpc: mpc85xx: Convert CONFIG_SYS_CCSRBAR_DEFAULT to Kconfig option 2016-12-02 08:52:34 -08:00
README.rmobile ARM: rmobile: Add R8A77965 M3NULCB support 2019-04-09 18:19:10 +02:00
README.rockchip doc: rockchip: Remove list of supported boards 2020-05-29 18:06:26 +08:00
README.rockusb usb: rockchip: implement K_FW_LBA_ERASE_10 command 2018-08-08 22:22:07 +02:00
README.s5p4418 arm: add (default) config for nanopi2 board 2020-07-29 08:43:40 -04:00
README.s5pc1xx
README.sata
README.sched
README.scrapyard scrapyard: Delete this file and script 2019-09-19 12:54:29 -04:00
README.semihosting SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
README.serial_multi powerpc, 5xxx, 512x: remove support for mpc5xxx and mpc512x 2017-06-16 10:14:55 -04:00
README.sha1
README.silent Convert CONFIG_SYS_DEVICE_NULLDEV to Kconfig 2020-08-23 13:43:10 -04:00
README.SNTP
README.socfpga arm: socfpga: arria10: Add qts-filter for Arria10 socfpga 2020-10-09 17:53:14 +08:00
README.spear
README.SPL doc: spl: update reference to driver-model/README.txt 2020-04-17 12:32:36 -04:00
README.splashprepare splash: Use splashfile instead of location->name 2019-05-20 11:55:42 +02:00
README.srio-pcie-boot-corenet
README.standalone command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
README.t1040-l2switch
README.tee Documentation: tee uclass and op-tee driver 2018-10-07 10:47:38 -04:00
README.ti-secure doc: Update info on using K3 secure devices 2019-04-26 17:51:51 -04:00
README.TPL cosmetic: Fix spelling and whitespace errors 2019-12-03 08:43:23 -05:00
README.ubi ubi: Add "skipcheck" command to set/clear this bit in the UBI volume hdr 2019-10-16 05:42:36 +02:00
README.ubispl
README.ublimage
README.udp net: add a generic udp protocol 2020-09-30 16:55:03 -04:00
README.unaligned-memory-access.txt
README.uniphier ARM: uniphier: enable distro boot 2018-07-25 08:47:53 +09:00
README.update cmd: drop fitupd command 2020-07-16 12:37:01 +02:00
README.usb SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
README.vf610
README.video video: Add information about using TrueType fonts 2018-12-28 12:26:58 +01:00
README.VLAN
README.VSC3316-3308
README.vxworks bootm: vxworks: Support Linux compatible standard DTB for ARM and PPC 2019-12-03 08:43:23 -05:00
README.watchdog arm: at91: wdt: Convert watchdog driver to dm/dt 2018-11-16 13:34:34 -05:00
README.zfs

This patch series adds support for ZFS listing and load to u-boot.

To Enable zfs ls and load commands, modify the board specific config file with
#define CONFIG_CMD_ZFS

Steps to test:

1. After applying the patch, zfs specific commands can be seen
   in the boot loader prompt using
	UBOOT #help

	zfsload- load binary file from a ZFS file system
	zfsls  - list files in a directory (default /)

2. To list the files in zfs pool, device or partition, execute
	zfsls <interface> <dev[:part]> [POOL/@/dir/file]
	For example:
	UBOOT #zfsls mmc 0:5 /rpool/@/usr/bin/

3. To read and load a file from an ZFS formatted partition to RAM, execute
	zfsload <interface> <dev[:part]> [addr] [filename] [bytes]
	For example:
	UBOOT #zfsload mmc 2:2 0x30007fc0 /rpool/@/boot/uImage

References :
	-- ZFS GRUB sources from Solaris GRUB-0.97
	-- GRUB Bazaar repository

Jorgen Lundman <lundman at lundman.net> 2012.