| .. SPDX-License-Identifier: GPL-2.0+: |
| |
| upl command |
| =========== |
| |
| Synopsis |
| -------- |
| |
| :: |
| |
| upl write |
| upl read <addr> |
| upl info [-v] |
| |
| Description |
| ----------- |
| |
| The *upl* command is used to test U-Boot's support for the Universal Payload |
| Specification (UPL) firmware standard (see :doc:`../upl`). It allows creation of |
| a fake handoff for use in testing. |
| |
| |
| upl write |
| ~~~~~~~~~ |
| |
| Write a fake UPL handoff structure. The `upladdr` environment variable is set to |
| the address of this structure and `uplsize` is set to the size. |
| |
| |
| upl read |
| ~~~~~~~~ |
| |
| Read a UPL handoff structure into internal state. This allows testing that the |
| handoff can be obtained. |
| |
| upl info |
| ~~~~~~~~ |
| |
| Show basic information about usage of UPL: |
| |
| UPL state |
| active or inactive (indicates whether U-Boot booted from UPL or not) |
| |
| fit |
| Address of the FIT which was loaded |
| |
| conf_offset 2a4 |
| FIT offset of the chosen configuration |
| |
| For each image the following information is shown: |
| |
| Image number |
| Images are numbered from 0 |
| |
| load |
| Address to which the image was loaded |
| |
| size |
| Size of the loaded image |
| |
| offset |
| FIT offset of the image |
| |
| description |
| Description of the image |
| |
| |
| Example |
| ------- |
| |
| This shows checking whether a UPL handoff was read at start-up:: |
| |
| => upl info |
| UPL state: active |
| |
| This shows how to use the command to write and display the handoff:: |
| |
| => upl write |
| UPL handoff written to bc8a5e0 size 662 |
| => print upladdr |
| upladdr=bc8a5e0 |
| => print uplsize |
| uplsize=662 |
| |
| > fdt addr ${upladdr} |
| Working FDT set to bc8a5e0 |
| => fdt print |
| / { |
| #address-cells = <0x00000001>; |
| #size-cells = <0x00000001>; |
| options { |
| upl-params { |
| smbios = <0x00000123>; |
| acpi = <0x00000456>; |
| bootmode = "default", "s3"; |
| addr-width = <0x0000002e>; |
| acpi-nvs-size = <0x00000100>; |
| }; |
| upl-image { |
| fit = <0x00000789>; |
| conf-offset = <0x00000234>; |
| image-1 { |
| load = <0x00000001>; |
| size = <0x00000002>; |
| offset = <0x00000003>; |
| description = "U-Boot"; |
| }; |
| image-2 { |
| load = <0x00000004>; |
| size = <0x00000005>; |
| offset = <0x00000006>; |
| description = "ATF"; |
| }; |
| }; |
| }; |
| memory@0x10 { |
| reg = <0x00000010 0x00000020 0x00000030 0x00000040 0x00000050 0x00000060>; |
| }; |
| memory@0x70 { |
| reg = <0x00000070 0x00000080>; |
| hotpluggable; |
| }; |
| memory-map { |
| acpi@0x11 { |
| reg = <0x00000011 0x00000012 0x00000013 0x00000014 0x00000015 0x00000016 0x00000017 0x00000018 0x00000019 0x0000001a>; |
| usage = "acpi-reclaim"; |
| }; |
| u-boot@0x21 { |
| reg = <0x00000021 0x00000022>; |
| usage = "boot-data"; |
| }; |
| efi@0x23 { |
| reg = <0x00000023 0x00000024>; |
| usage = "runtime-code"; |
| }; |
| empty@0x25 { |
| reg = <0x00000025 0x00000026 0x00000027 0x00000028>; |
| }; |
| acpi-things@0x2a { |
| reg = <0x0000002a 0x00000000>; |
| usage = "acpi-nvs", "runtime-code"; |
| }; |
| }; |
| reserved-memory { |
| mmio@0x2b { |
| reg = <0x0000002b 0x0000002c>; |
| }; |
| memory@0x2d { |
| reg = <0x0000002d 0x0000002e 0x0000002f 0x00000030>; |
| no-map; |
| }; |
| }; |
| serial@0xf1de0000 { |
| compatible = "ns16550a"; |
| clock-frequency = <0x001c2000>; |
| current-speed = <0x0001c200>; |
| reg = <0xf1de0000 0x00000100>; |
| reg-io-shift = <0x00000002>; |
| reg-offset = <0x00000040>; |
| virtual-reg = <0x20000000>; |
| access-type = "mmio"; |
| }; |
| framebuffer@0xd0000000 { |
| compatible = "simple-framebuffer"; |
| reg = <0xd0000000 0x10000000>; |
| width = <0x00000500>; |
| height = <0x00000500>; |
| stride = <0x00001400>; |
| format = "a8r8g8b8"; |
| }; |
| }; |
| => |
| |
| This showing reading the handoff into internal state:: |
| |
| => upl read bc8a5e0 |
| Reading UPL at bc8a5e0 |
| => |
| |
| This shows getting basic information about UPL: |
| |
| => upl info -v |
| UPL state: active |
| fit 1264000 |
| conf_offset 2a4 |
| image 0: load 200000 size 105f5c8 offset a4: U-Boot 2024.07-00770-g739ee12e8358 for sandbox board |