u-boot/doc
Simon Glass 9b69ba4a78 pci: sandbox: Move the emulators into their own node
Sandbox pci works using emulation drivers which are currently children of
the pci device:

	pci-controller {
		pci@1f,0 {
			compatible = "pci-generic";
			reg = <0xf800 0 0 0 0>;
			emul@1f,0 {
				compatible = "sandbox,swap-case";
			};
		};
	};

In this case the emulation device is attached to pci device on address
f800 (device 1f, function 0) and provides the swap-case functionality.

However this is not ideal, since every device on a PCI bus has a child
device. This is only really the case for sandbox, but we want to avoid
special-case code for sandbox.

Worse, child devices cannot be probed before their parents. This forces
us to use 'find' rather than 'get' to obtain the emulator device. In fact
the emulator devices are never probed. There is code in
sandbox_pci_emul_post_probe() which tries to track when emulators are
active, but at present this does not work.

A better approach seems to be to add a separate node elsewhere in the
device tree, an 'emulation parent'. This could be given a bogus address
(such as -1) to hide the emulators away from the 'pci' command, but it
seems better to keep it at the root node to avoid such hacks.

Then we can use a phandle to point from the device to the correct
emulator, and only on sandbox. The code to find an emulator does not
interfere with normal pci operation.

Add a new UCLASS_PCI_EMUL_PARENT uclass which allows finding an emulator
given a bus, and finding a bus given an emulator. Update the existing
device trees and the code for finding an emulator.

This brings PCI emulators more into line with I2C.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
[bmeng: fix 3 typos in the commit message;
        encode bus number in the labels of swap_case_emul nodes;
        mention commit 4345998ae9 in sandbox_pci_get_emul()]
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
2019-10-08 13:57:41 +08:00
..
android fastboot: Remove "bootloader-version" variable 2019-08-08 11:35:02 +02:00
api doc: UEFI API documentation 2019-09-05 23:18:52 +02:00
arch sandbox: Add a -T flag to use the test device tree 2019-10-08 13:57:41 +08:00
board doc: slimbootloader: Update Linux booting steps on QEMU 2019-09-10 14:25:40 +08:00
chromium nyan-big: add padding to its file 2019-02-20 09:01:44 -07:00
device-tree-bindings drivers: net: add marvell MDIO driver 2019-09-04 11:37:19 -05:00
driver-model pci: sandbox: Move the emulators into their own node 2019-10-08 13:57:41 +08:00
imx doc: imx: Add documentation for nandbcb command 2019-07-19 14:52:20 +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 doc: Cope with Sphinx logging deprecations 2019-07-24 14:15:35 -04:00
sphinx-static doc: Remove duplicated documentation directory 2019-06-20 10:57:08 -04:00
SPI configs: Don't use SPI_FLASH_BAR as default 2019-02-07 15:33:22 +05:30
SPL doc: SPL: Add README for secure boot support 2016-07-21 11:11:29 -07:00
uefi doc: integrate UEFI documentation into Sphinx toctree 2019-07-30 21:36:22 +02:00
uImage.FIT fit: Support compat string property in configuration node 2019-07-29 09:32:08 -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 the U-Boot logo to the html doc 2019-07-24 14:15:37 -04:00
feature-removal-schedule.txt Various, unrelated tree-wide typo fixes. 2016-07-16 09:43:12 -04:00
git-mailrc MAINTAINERS, git-mailrc: Update the maintainer for socfpga 2019-10-04 12:21:23 -04:00
I2C_Edge_Conditions
index.rst doc: integrate UEFI documentation into Sphinx toctree 2019-07-30 21:36:22 +02:00
kwboot.1 Fix spelling of "transferred". 2016-03-22 12:16:16 -04:00
Makefile doc: Remove duplicated documentation directory 2019-06-20 10:57:08 -04:00
mkimage.1 mkimage: Allow including a ramdisk in FIT auto mode 2016-11-06 07:33:42 -05:00
README.440-DDR-performance Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
README.AMCC-eval-boards-cleanup
README.arm-caches doc: ARM: Use the right function name 2015-01-14 11:37:39 -05:00
README.arm-relocation mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
README.armada-secureboot arm: mvebu: Implement secure boot 2017-02-01 09:04:18 +01:00
README.atmel_mci avr32: Retire AVR32 for good 2017-07-06 16:17:19 -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.bedbug
README.bitbangMII
README.bloblist Add bloblist documentation 2018-11-26 08:25:33 -05:00
README.bootmenu autoboot: Rename CONFIG_MENU_SHOW to include AUTOBOOT 2019-08-02 11:19:14 -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.chromium chromium: Update docs to clone vboot_reference directly 2019-07-18 11:31:30 -04:00
README.chromium-chainload cros: Expand the Chromium OS documentation 2019-04-11 20:10:05 -06:00
README.clang clang: Update documentation 2018-04-27 14:54:49 -04:00
README.coccinelle Makefile: add coccicheck target 2017-11-20 20:18:38 -05:00
README.commands doc: README.commands: fix type 2019-01-09 07:13:31 -05:00
README.commands.itest
README.commands.spl Fix various typos, scattered over the code. 2016-05-05 21:39:26 -04:00
README.console SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
README.davinci README: davinci: update the documentation for DaVinci 2019-05-03 07:30:31 -04:00
README.davinci.nand_spl
README.dfutftp SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
README.displaying-bmps
README.distro distro_bootcmd: add VirtIO distro boot command 2018-11-26 13:57:32 +08:00
README.dns
README.drivers.eth net: cosmetic: Fix var naming net <-> eth drivers 2015-04-18 11:11:33 -06:00
README.enetaddr env: Rename eth_getenv_enetaddr() to eth_env_get_enetaddr() 2017-08-16 08:30:44 -04: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 CONFIG_OF_SEPARATE description 2019-02-12 14:37:16 +08:00
README.fdt-overlays doc: overlays: Tweak documentation regarding overlays 2017-09-15 05:27:49 -06:00
README.fec_mxc driver/net/fec: support fixed speed connection 2016-07-12 17:58:48 +02:00
README.fsl-clk doc: restore doc/README.fsl-clk 2017-06-29 21:30:16 -04:00
README.fsl-ddr driver/ddr/fsl: Add address parity support for DDR4 UDIMM/discrete 2016-03-21 12:42:13 -07:00
README.fsl-dpaa armv8/ls1043a: Add Fman support 2015-10-29 10:34:01 -07:00
README.fsl-esdhc mmc: fsl_esdhc: drop CONFIG_SYS_FSL_ESDHC_FORCE_VSELECT 2017-07-12 09:44:22 +02:00
README.fsl-hwconfig
README.fsl-trustzone-components armv8: LS2080A: Rename LS2085A to reflect LS2080A 2015-11-30 08:53:04 -08:00
README.fsl_iim
README.fuse
README.generic-board SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
README.generic_usb_ohci doc: Fix outdated ohci board hook documentation 2019-04-02 12:52:54 +02:00
README.gpt doc: arch: sandbox: Replace all the instances of README.sandbox 2019-07-29 09:32:09 -04:00
README.Heterogeneous-SoCs powerpc/mpc85xx: Add DSP side awareness for Freescale Heterogeneous SoCs 2015-03-04 10:15:29 -08:00
README.hwconfig
README.i2c i2c: Add a mux for GPIO-based I2C bus arbitration 2015-08-05 21:06:10 -06:00
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 doc: fix documentation of out-of-tree build 2014-11-07 16:27:07 -05:00
README.LED powerpc, 8xx: remove support for 8xx 2017-06-12 08:37:55 -04:00
README.link-local net: cosmetic: Fix checkpatch.pl failures in net.c 2015-04-18 11:11:35 -06:00
README.log log: Allow #define LOG_DEBUG to enable logging in a file 2019-02-20 15:21:44 +08:00
README.lynxkdi
README.m54418twr m68k: Drop unreferenced CONFIG_* defines 2018-01-19 15:49:32 -05:00
README.malta Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
README.marvell arm64: mvebu: use single defconfig for Armada8K development boards 2017-07-12 06:57:55 +02:00
README.mediatek doc: README.mediatek: Add a simple README for MediaTek 2018-11-28 23:04:54 -05:00
README.memory-test
README.menu autoboot: Rename CONFIG_MENU_SHOW to include AUTOBOOT 2019-08-02 11:19:14 -04:00
README.mpc74xx
README.mpc83xx.ddrecc
README.mpc83xxads README: Drop CONFIG_MPC8349ADS 2016-10-06 20:40:51 -04:00
README.mpc85xx board_f: Rename initdram() to dram_init() 2017-04-13 09:40:57 -04:00
README.mpc85xx-sd-spi-boot powerpc: P2010: Drop configuration for P2010 2016-11-23 23:42:10 -08:00
README.mpc85xx-spin-table Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
README.mpc85xxcds Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
README.multi-dtb-fit spl: dm: Make it possible for the SPL to pick its own DTB from a FIT 2017-10-06 11:26:41 -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.NetConsole
README.nokia_rx51
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 arm: armv7-a: Compile and tune for armv7-a instead of armv5 2018-09-10 20:48:16 -04:00
README.pblimage
README.pcap doc: pcap: add pcap cmd documentation 2019-09-04 11:37:19 -05:00
README.plan9
README.POST post: remove reference to power functions 2018-03-16 14:54:14 -04:00
README.power-framework doc:power:pmic: Add doc entry for PMIC(v2) framework 2014-04-18 10:42:30 -04:00
README.pxe cmd: pxe: add support for FIT config selection 2018-10-08 14:45:02 -04: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: use idbloader.img for rk3288, rk3328, rk3399 2019-09-11 16:16:12 +08:00
README.rockusb usb: rockchip: implement K_FW_LBA_ERASE_10 command 2018-08-08 22:22:07 +02:00
README.s5pc1xx
README.sata Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
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 Drop references to MAKEALL in the documentation 2016-07-31 19:37:08 -06:00
README.silent
README.SNTP
README.socfpga ARM: socfpga: add fpga build and bsp handoff instructions to readme 2017-04-14 14:06:38 +02:00
README.spear
README.SPL dm: doc: add documentation for pre-reloc properties in SPL and TPL 2019-07-10 16:52:58 -06: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 riscv: doc: Add relative doc to describe RISC-V 2018-01-12 08:05:12 -05:00
README.t1040-l2switch drivers: net: vsc9953: Add LAG support 2016-01-28 12:22:19 -06:00
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 dm: doc: add documentation for pre-reloc properties in SPL and TPL 2019-07-10 16:52:58 -06:00
README.trace sandbox: Drop the deprecated 'sb' command 2018-11-26 08:25:35 -05:00
README.ubi
README.ubispl spl: Lightweight UBI and UBI fastmap support 2016-07-22 09:53:00 -04:00
README.ublimage
README.unaligned-memory-access.txt doc: Fix comparison operator 2014-10-27 11:04:00 -04:00
README.uniphier ARM: uniphier: enable distro boot 2018-07-25 08:47:53 +09:00
README.update Fix typo: commmand -> command. 2015-12-05 18:22:21 -05: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.virtio doc: Document virtio support 2018-11-14 09:16:28 -08:00
README.VLAN
README.VSC3316-3308
README.vxworks doc: vxworks: Mention chain-loading an x86 kernel via 'bootefi' 2018-07-02 09:23:28 +08: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.