mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 20:18:18 +00:00 
			
		
		
		
	Document the 'host' command and also the internals of how it is implemented. Signed-off-by: Simon Glass <sjg@chromium.org>
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. SPDX-License-Identifier: GPL-2.0+ */
 | |
| .. Copyright (c) 2014 The Chromium OS Authors.
 | |
| .. sectionauthor:: Simon Glass <sjg@chromium.org>
 | |
| 
 | |
| Sandbox block devices (implementation)
 | |
| ======================================
 | |
| 
 | |
| (See :ref:`sandbox_blk` for operation)
 | |
| 
 | |
| Sandbox block devices are implemented using the `UCLASS_HOST` uclass. Only one
 | |
| driver is provided (`host_sb_drv`) so all devices in the uclass use the same
 | |
| driver.
 | |
| 
 | |
| The uclass has a simple API allowing files to be attached and detached.
 | |
| Attaching a file results in it appearing as a block device in sandbox. This
 | |
| allows filesystems and whole disk images to be accessed from U-Boot. This is
 | |
| particularly useful for tests.
 | |
| 
 | |
| Devices are created using `host_create_device()`. This sets up a new
 | |
| `UCLASS_HOST`.
 | |
| 
 | |
| The device can then be attached to a file with `host_attach_file()`. This
 | |
| creates the child block device (and bootdev device).
 | |
| 
 | |
| The host device's block device must be probed before use, as normal.
 | |
| 
 | |
| To destroy a device, call host_destroy_device(). This removes the device (and
 | |
| its children of course), then closes any attached file, then unbinds the device.
 | |
| 
 | |
| There is no arbitrary limit to the number of host devices that can be created.
 | |
| 
 | |
| 
 | |
| Uclass API
 | |
| ----------
 | |
| 
 | |
| This is incomplete as it isn't clear how to make Sphinx do the right thing for
 | |
| struct host_ops. See `include/sandbox_host.h` for full details.
 | |
| 
 | |
| .. kernel-doc:: include/sandbox_host.h
 |