[U-Boot] [PATCH 0/32] Add additional sandbox features and infrastructure

Simon Glass sjg at chromium.org
Sun Nov 10 18:26:46 CET 2013


At present sandbox only supports a basic set of features. To help address
this, a recent series added SPI and SPI flash support; this series expands
the coverage further.

Firstly SDL is used to provide LCD and audio support. Sandbox gains its own
LCD driver which can display images, host a command line, etc. The audio
support is basic and needs additional work, but it is a starting point.
SDL also provides a keyboard emulation (using the Chrome OS EC code as a
base).

Secondly a TPM emulation is added. This does not include all features (the
implementation is quite simplistic) but it is enough to do basic secure
boot operations.

Finally, various pieces of useful infrastructure are adding, including:

- loading and saving of the emulated SDRAM to permit test runs to carry
over state
- loading and saving of general sandbox state (for example a driver can
save its stage and reload it on the next run)
- support for using bootm to load a kernel
- providing a device tree for use by sandbox
- block device emulation using host files
- a means to jump to another U-Boot while preserving state (useful for
test environments which want to run a series of tests with
script-selectable state)
- allowing the console to be active on start-up so that errors are not
silent supressed

The block device emulation provides access to filesystems from sandbox
which should make it possible to write comprehensive filesystem tests.

Major functions which still remain without sandbox support are I2C,
networking and USB.


Che-Liang Chiou (1):
  sandbox: tpm: Fix nvwrite command

Henrik Nordström (1):
  sandbox: block driver using host file/device as backing store

Simon Glass (29):
  Add crc8 routine
  sandbox: Use system headers first for sandbox's os.c
  sandbox: Use uint64_t instead of u64 for time
  sandbox: Increase memory size to 32MB
  sandbox: spi: Adjust 'sf test' to work on sandbox
  sandbox: Build a device tree file for sandbox
  sandbox: config: Don't use 64-bit physical memory
  sandbox: Correct data sizes and printf() strings in fdtdec.c
  sandbox: Use os functions to read host device tree
  sandbox: Improve/augment memory allocation functions
  sandbox: Correct help message <arg> garbling
  sandbox: Allow return from board_init_f()
  sandbox: Implement the bootm command for sandbox
  sandbox: Allow the console to work earlier
  sandbox: Add -i option to enter interactive mode
  sandbox: Allow reading/writing of RAM buffer
  sandbox: Add facility to save/restore sandbox state
  sandbox: tpm: Add TPM emulation
  sandbox: dts: Add display and keyboard to sandbox
  sandbox: Add a prototype for cleanup_before_linux()
  cros_ec: Add an enum for the number of flash regions
  fdt: Add a function for reading a flash map entry
  cros_ec: Add a function for decoding the Chrome OS EC flashmap
  cros_ec: sandbox: Add Chrome OS EC emulation
  sandbox: Add os_jump_to_image() to run another executable
  sandbox: Add -j option to indicate a jump from a previous U-Boot
  sandbox: Add SDL library for LCD, keyboard, audio
  sandbox: Add a simple sound driver
  sandbox: Add LCD driver

Vadim Bendebury (1):
  cros_ec: Move EC interface into common library

 Makefile                                      |   1 +
 arch/sandbox/config.mk                        |   7 +
 arch/sandbox/cpu/Makefile                     |  12 +-
 arch/sandbox/cpu/cpu.c                        |  21 +-
 arch/sandbox/cpu/os.c                         | 187 ++++++++-
 arch/sandbox/cpu/sdl.c                        | 334 +++++++++++++++
 arch/sandbox/cpu/start.c                      | 121 +++++-
 arch/sandbox/cpu/state.c                      | 353 ++++++++++++++++
 arch/sandbox/include/asm/arch-sandbox/sound.h |  14 +
 arch/sandbox/include/asm/global_data.h        |   2 +-
 arch/sandbox/include/asm/sdl.h                |  20 +
 arch/sandbox/include/asm/state.h              | 132 +++++-
 arch/sandbox/include/asm/types.h              |   4 +-
 arch/sandbox/include/asm/u-boot-sandbox.h     |   5 +
 board/samsung/smdk5250/exynos5-dt.c           |   5 -
 board/sandbox/dts/sandbox.dts                 |  91 +++++
 board/sandbox/sandbox/sandbox.c               |  19 +-
 common/Makefile                               |   1 +
 common/board_f.c                              |  63 ++-
 common/cmd_sandbox.c                          |  64 +++
 common/cmd_sf.c                               |  14 +-
 common/console.c                              |  16 +-
 common/cros_ec.c                              |  44 ++
 common/lcd.c                                  |  21 +-
 config.mk                                     |   9 +-
 disk/part.c                                   |  23 +-
 doc/device-tree-bindings/video/sandbox-fb.txt |  13 +
 drivers/block/Makefile                        |   1 +
 drivers/block/sandbox.c                       | 124 ++++++
 drivers/misc/Makefile                         |   1 +
 drivers/misc/cros_ec.c                        |  50 +++
 drivers/misc/cros_ec_sandbox.c                | 558 ++++++++++++++++++++++++++
 drivers/serial/sandbox.c                      |   4 +
 drivers/sound/Makefile                        |   2 +
 drivers/sound/sandbox.c                       |  23 ++
 drivers/tpm/Makefile                          |   1 +
 drivers/tpm/tpm_tis_sandbox.c                 | 260 ++++++++++++
 drivers/video/Makefile                        |   1 +
 drivers/video/sandbox_sdl.c                   |  70 ++++
 include/config_fallbacks.h                    |   3 +-
 include/configs/sandbox.h                     |   9 +-
 include/cros_ec.h                             |  45 +++
 include/ec_commands.h                         |   4 +-
 include/fdtdec.h                              |  20 +
 include/lcd.h                                 |   3 +
 include/linux/crc8.h                          |  23 ++
 include/os.h                                  |  88 +++-
 include/part.h                                |   5 +
 include/sandboxblockdev.h                     |  18 +
 lib/Makefile                                  |   1 +
 lib/crc8.c                                    |  25 ++
 lib/fdtdec.c                                  |  34 +-
 52 files changed, 2866 insertions(+), 103 deletions(-)
 create mode 100644 arch/sandbox/cpu/sdl.c
 create mode 100644 arch/sandbox/include/asm/arch-sandbox/sound.h
 create mode 100644 arch/sandbox/include/asm/sdl.h
 create mode 100644 board/sandbox/dts/sandbox.dts
 create mode 100644 common/cros_ec.c
 create mode 100644 doc/device-tree-bindings/video/sandbox-fb.txt
 create mode 100644 drivers/block/sandbox.c
 create mode 100644 drivers/misc/cros_ec_sandbox.c
 create mode 100644 drivers/sound/sandbox.c
 create mode 100644 drivers/tpm/tpm_tis_sandbox.c
 create mode 100644 drivers/video/sandbox_sdl.c
 create mode 100644 include/linux/crc8.h
 create mode 100644 include/sandboxblockdev.h
 create mode 100644 lib/crc8.c

-- 
1.8.4.1



More information about the U-Boot mailing list