diff options
Diffstat (limited to 'doc')
137 files changed, 1606 insertions, 622 deletions
diff --git a/doc/CONTRIBUTE.rst b/doc/CONTRIBUTE.rst index e8fa595ed4a..e0394515702 100644 --- a/doc/CONTRIBUTE.rst +++ b/doc/CONTRIBUTE.rst @@ -19,7 +19,7 @@ projects available to review if you are unsure of expectations. Repository ---------- -The official U-Boot repository is located at https://source.denx.de/u-boot/u-boot +The official U-Boot repository is located at https://git.u-boot-project.org/u-boot/u-boot Further more detailed documentation can be found at the following link: :doc:`/index`. @@ -28,7 +28,7 @@ Contributions Contributions to the project are welcome. The U-Boot project uses a fairly traditional Linux style development work-flow using git and `a mailing list -<https://lists.denx.de/listinfo/u-boot>`_. +<https://lists.u-boot-project.org/mailman/listinfo/u-boot>`_. Patches should be sent to the mailing list using ``git send-email`` or the equivalent commands using ``b4`` or ``patman`` with appropriate sign-off and @@ -38,10 +38,10 @@ script. Please don't send patches as attachments, and ensure corporate mail systems don't reformat patches, append disclaimers or other unnecessary notes. The b4 tool automates a number of components mentioned above. -Code is not the only thing you can contribute to the project. As most +Code is not the only thing you can contribute to the project. Like most open-source projects, the U-Boot project suffers from a lack of reviewers. Consider spending some time reading patches on `the mailing list archive -<https://lists.denx.de/pipermail/u-boot/>`_ and providing feedback to +<https://lists.u-boot-project.org/pipermail/u-boot/>`_ and providing feedback to contributors when something could be improved or if you have questions. Contrary to what's most often believed, you do not need to be an expert to review patches and the project will benefit from people with different skillsets and experience diff --git a/doc/README.console b/doc/README.console index 9f5812c89d1..d6a2821ab68 100644 --- a/doc/README.console +++ b/doc/README.console @@ -24,8 +24,8 @@ stdout or stderr) to any device you see in that list simply by assigning its name to the corresponding environment variable. For example: - setenv stdin serial <- To use the serial input - setenv stdout video <- To use the video console + env set stdin serial <- To use the serial input + env set stdout video <- To use the video console Do a simple "saveenv" to save the console settings in the environment and get them working on the next startup, too. diff --git a/doc/README.fsl-ddr b/doc/README.fsl-ddr index f44bb2aa25d..04b26de4901 100644 --- a/doc/README.fsl-ddr +++ b/doc/README.fsl-ddr @@ -61,50 +61,50 @@ The ways to configure the ddr interleaving mode "hwconfig=fsl_ddr:ctlr_intlv=bank" \ ...... -2. Run U-Boot "setenv" command to configure the memory interleaving mode. +2. Run U-Boot "env set" command to configure the memory interleaving mode. Either numerical or string value is accepted. # disable memory controller interleaving - setenv hwconfig "fsl_ddr:ctlr_intlv=null" + env set hwconfig "fsl_ddr:ctlr_intlv=null" # cacheline interleaving - setenv hwconfig "fsl_ddr:ctlr_intlv=cacheline" + env set hwconfig "fsl_ddr:ctlr_intlv=cacheline" # page interleaving - setenv hwconfig "fsl_ddr:ctlr_intlv=page" + env set hwconfig "fsl_ddr:ctlr_intlv=page" # bank interleaving - setenv hwconfig "fsl_ddr:ctlr_intlv=bank" + env set hwconfig "fsl_ddr:ctlr_intlv=bank" # superbank - setenv hwconfig "fsl_ddr:ctlr_intlv=superbank" + env set hwconfig "fsl_ddr:ctlr_intlv=superbank" # 1KB 3-way interleaving - setenv hwconfig "fsl_ddr:ctlr_intlv=3way_1KB" + env set hwconfig "fsl_ddr:ctlr_intlv=3way_1KB" # 4KB 3-way interleaving - setenv hwconfig "fsl_ddr:ctlr_intlv=3way_4KB" + env set hwconfig "fsl_ddr:ctlr_intlv=3way_4KB" # 8KB 3-way interleaving - setenv hwconfig "fsl_ddr:ctlr_intlv=3way_8KB" + env set hwconfig "fsl_ddr:ctlr_intlv=3way_8KB" # disable bank (chip-select) interleaving - setenv hwconfig "fsl_ddr:bank_intlv=null" + env set hwconfig "fsl_ddr:bank_intlv=null" # bank(chip-select) interleaving cs0+cs1 - setenv hwconfig "fsl_ddr:bank_intlv=cs0_cs1" + env set hwconfig "fsl_ddr:bank_intlv=cs0_cs1" # bank(chip-select) interleaving cs2+cs3 - setenv hwconfig "fsl_ddr:bank_intlv=cs2_cs3" + env set hwconfig "fsl_ddr:bank_intlv=cs2_cs3" # bank(chip-select) interleaving (cs0+cs1) and (cs2+cs3) (2x2) - setenv hwconfig "fsl_ddr:bank_intlv=cs0_cs1_and_cs2_cs3" + env set hwconfig "fsl_ddr:bank_intlv=cs0_cs1_and_cs2_cs3" # bank(chip-select) interleaving (cs0+cs1+cs2+cs3) (4x1) - setenv hwconfig "fsl_ddr:bank_intlv=cs0_cs1_cs2_cs3" + env set hwconfig "fsl_ddr:bank_intlv=cs0_cs1_cs2_cs3" # bank(chip-select) interleaving (auto) - setenv hwconfig "fsl_ddr:bank_intlv=auto" + env set hwconfig "fsl_ddr:bank_intlv=auto" This auto mode only select from cs0_cs1_cs2_cs3, cs0_cs1, null dependings on DIMMs. diff --git a/doc/README.iomux b/doc/README.iomux index c428811ce4c..a26171b9749 100644 --- a/doc/README.iomux +++ b/doc/README.iomux @@ -16,12 +16,12 @@ configuration file. Two new files, common/iomux.c and include/iomux.h, contain the heart (iomux_doenv()) of the environment setting implementation. -iomux_doenv() is called in common/cmd_nvedit.c to handle setenv and in +iomux_doenv() is called in common/cmd_nvedit.c to handle env set and in common/console.c in console_init_r() during bootup to initialize stdio_devices[]. A user can use a comma-separated list of devices to set stdin, stdout -and stderr. For example: "setenv stdin serial,nc". NOTE: No spaces +and stderr. For example: "env set stdin serial,nc". NOTE: No spaces are allowed around the comma(s)! The length of the list is limited by malloc(), since the array used @@ -31,7 +31,7 @@ It should be possible to specify any device which console_assign() finds acceptable, but the code has only been tested with serial and nc. -iomux_doenv() prevents multiple use of the same device, e.g. "setenv +iomux_doenv() prevents multiple use of the same device, e.g. "env set stdin nc,nc,serial" will discard the second nc. iomux_doenv() is not able to modify the environment, however, so that "pri stdin" still shows "nc,nc,serial". diff --git a/doc/README.link-local b/doc/README.link-local index ec2ef940e4c..53f4db1cb0c 100644 --- a/doc/README.link-local +++ b/doc/README.link-local @@ -69,7 +69,7 @@ If both fail or are disabled, static settings are used. "if test \\\"$llfail\\\" -ne 0 -a " \ "\\\"$dhcpfail\\\" -ne 0; " \ "then " \ - "setenv ipaddr $sipaddr; " \ - "setenv netmask $snetmask; " \ - "setenv gatewayip $sgatewayip; " \ + "env set ipaddr $sipaddr; " \ + "env set netmask $snetmask; " \ + "env set gatewayip $sgatewayip; " \ "fi;\0" \ diff --git a/doc/README.marvell b/doc/README.marvell index 6fc5ac8a409..ea6a8df7019 100644 --- a/doc/README.marvell +++ b/doc/README.marvell @@ -82,10 +82,10 @@ Permanent ethernet MAC address and then set correct permanent ethernet MAC addresses. # env default -a - # setenv ethaddr XX:XX:XX:XX:XX:XX - # setenv eth1addr XX:XX:XX:XX:XX:XX - # setenv eth2addr YY:YY:YY:YY:YY:YY - # setenv eth3addr ZZ:ZZ:ZZ:ZZ:ZZ:ZZ + # env set ethaddr XX:XX:XX:XX:XX:XX + # env set eth1addr XX:XX:XX:XX:XX:XX + # env set eth2addr YY:YY:YY:YY:YY:YY + # env set eth3addr ZZ:ZZ:ZZ:ZZ:ZZ:ZZ # ... # saveenv diff --git a/doc/README.odroid b/doc/README.odroid index 6eb7e67474d..8fe226cf4cf 100644 --- a/doc/README.odroid +++ b/doc/README.odroid @@ -168,13 +168,13 @@ NOTE: This section is only for Odroid X2/U3. The ethernet can be accessed after starting the USB subsystem in U-Boot. The adapter does not come with a preconfigured MAC address, and hence it needs to be set before starting USB. -setenv usbethaddr 02:DE:AD:BE:EF:FF +env set usbethaddr 02:DE:AD:BE:EF:FF Note that in this example a locally managed MAC address is chosen. Care should be taken to make these MAC addresses unique within the same subnet. Start the USB subsystem: -Odroid # setenv usbethaddr 02:DE:AD:BE:EF:FF +Odroid # env set usbethaddr 02:DE:AD:BE:EF:FF Odroid # usb start (Re)start USB... USB0: USB EHCI 1.00 @@ -187,10 +187,10 @@ Automatic IP assignment: ------------------------ If the ethernet is connected to a DHCP server (router maybe with DHCP enabled), then the below will automatically assign an ip address through DHCP. -setenv autoload no +env set autoload no dhcp -Odroid # setenv autoload no +Odroid # env set autoload no Odroid # dhcp Waiting for Ethernet connection... done. BOOTP broadcast 1 @@ -200,7 +200,7 @@ Odroid # Note that this automatically sets the many IP address related variables in U-Boot that is obtained from the DHCP server. -Odroid # printenv ipaddr netmask gatewayip dnsip +Odroid # env print ipaddr netmask gatewayip dnsip ipaddr=192.168.1.10 netmask=255.255.255.0 gatewayip=192.168.1.1 @@ -219,7 +219,7 @@ Static IP assignment: --------------------- In the case where there are no DHCP servers in the network, or you want to set the IP address statically, it can be done by: -Odroid # setenv ipaddr 192.168.1.10 +Odroid # env set ipaddr 192.168.1.10 Odroid # ping 192.168.1.27 Waiting for Ethernet connection... done. Using sms0 device @@ -230,9 +230,9 @@ TFTP booting: Say there exists a tftp server in the network with address 192.168.1.27 and it serves a kernel image (zImage.3.17) and a DTB blob (exynos4412-odroidu3.dtb) that needs to be loaded and booted. It can be accomplished as below: -(Assumes that you have setenv usbethaddr, and have not set autoload to no) +(Assumes that you have env set usbethaddr, and have not set autoload to no) -Odroid # setenv serverip 192.168.1.27 +Odroid # env set serverip 192.168.1.27 Odroid # tftpboot 0x40080000 zImage.3.17 Waiting for Ethernet connection... done. Using sms0 device @@ -256,9 +256,9 @@ Loading: #### 40 KiB/s done Bytes transferred = 46935 (b757 hex) -Odroid # printenv bootargs +Odroid # env print bootargs bootargs=Please use defined boot -Odroid # setenv bootargs console=ttySAC1,115200n8 root=/dev/mmcblk0p2 rootwait +Odroid # env set bootargs console=ttySAC1,115200n8 root=/dev/mmcblk0p2 rootwait Odroid # bootz 40080000 - 42000000 Kernel image @ 0x40080000 [ 0x000000 - 0x30bd58 ] ## Flattened Device Tree blob at 42000000 @@ -318,7 +318,7 @@ Odroid # load usb 0:2 40080000 /boot/zImage.3.17 3194200 bytes read in 471 ms (6.5 MiB/s) Odroid # load usb 0:2 42000000 /boot/exynos4412-odroidu3.dtb 46935 bytes read in 233 ms (196.3 KiB/s) -Odroid # setenv bootargs console=ttySAC1,115200n8 root=/dev/sda2 rootwait +Odroid # env set bootargs console=ttySAC1,115200n8 root=/dev/sda2 rootwait Odroid # bootz 40080000 - 42000000 Kernel image @ 0x40080000 [ 0x000000 - 0x30bd58 ] ## Flattened Device Tree blob at 42000000 diff --git a/doc/README.serial_multi b/doc/README.serial_multi index 0446fe95937..b82678e1ea3 100644 --- a/doc/README.serial_multi +++ b/doc/README.serial_multi @@ -16,15 +16,15 @@ in the works). *) The console can be switched to SCC by any of the following commands: - setenv stdout serial_scc - setenv stdin serial_scc - setenv stderr serial_scc + env set stdout serial_scc + env set stdin serial_scc + env set stderr serial_scc *) The console can be switched to SMC by any of the following commands: - setenv stdout serial_smc - setenv stdin serial_smc - setenv stderr serial_smc + env set stdout serial_smc + env set stdin serial_smc + env set stderr serial_smc *) If a file descriptor is set to "serial" then the current serial device will be used which, in turn, can be switched by above commands. @@ -32,7 +32,7 @@ will be used which, in turn, can be switched by above commands. *) The baudrate is the same for all serial devices. But it can be switched just after switching the console: - setenv sout serial_scc; setenv baudrate 38400 + env set sout serial_scc; env set baudrate 38400 After that press 'enter' at the SCC console. Note that baudrates <38400 are not allowed on LWMON with watchdog enabled (see CFG_SYS_BAUDRATE_TABLE in @@ -44,11 +44,11 @@ PPC4XX Specific *) The default console is UART0 *) The console can be switched to UART1 by any of the following commands: - setenv stdout serial1 - setenv stderr serial1 - setenv stdin serial1 + env set stdout serial1 + env set stderr serial1 + env set stdin serial1 *) The console can be switched to UART0 by any of the following commands: - setenv stdout serial0 - setenv stderr serial0 - setenv stdin serial0 + env set stdout serial0 + env set stderr serial0 + env set stdin serial0 diff --git a/doc/README.srio-pcie-boot-corenet b/doc/README.srio-pcie-boot-corenet index 2b1f76b8d02..5625ad1a2bb 100644 --- a/doc/README.srio-pcie-boot-corenet +++ b/doc/README.srio-pcie-boot-corenet @@ -54,9 +54,9 @@ The example based on P4080DS platform: NorFlash. c) Set environment variable "bootmaster" to "SRIO1" or "PCIE1" and save environment for master. - setenv bootmaster SRIO1 + env set bootmaster SRIO1 or - setenv bootmaster PCIE1 + env set bootmaster PCIE1 saveenv d) Restart up master and it will boot up normally from its NorFlash. Then, it will finish necessary configurations for slave's boot from diff --git a/doc/README.update b/doc/README.update index f16b2d23af1..d060d3431e6 100644 --- a/doc/README.update +++ b/doc/README.update @@ -71,7 +71,7 @@ Example .its files '/tftpboot/update_uboot.itb', and set the 'updatefile' variable appropriately, for example in the U-Boot prompt: - setenv updatefile /tftpboot/update_uboot.itb + env set updatefile /tftpboot/update_uboot.itb saveenv Now, when the system boots up and the update TFTP server specified in the diff --git a/doc/README.usb b/doc/README.usb index 650a6daae0a..2ceb417db58 100644 --- a/doc/README.usb +++ b/doc/README.usb @@ -118,7 +118,7 @@ The normal U-Boot commands are used with USB networking, but you must start USB first. For example: usb start -setenv bootfile /tftpboot/uImage +env set bootfile /tftpboot/uImage bootp diff --git a/doc/README.video b/doc/README.video index ced35bd2db5..93a99f4e8a3 100644 --- a/doc/README.video +++ b/doc/README.video @@ -74,7 +74,7 @@ The sunxi U-Boot driver supports the following video-mode options: For example to always use the hdmi connector, even if no cable is inserted, using edid info when available and otherwise initalizing it at 1024x768@60Hz, -use: "setenv video-mode sunxi:1024x768-24@60,monitor=dvi,hpd=0,edid=1". +use: "env set video-mode sunxi:1024x768-24@60,monitor=dvi,hpd=0,edid=1". TrueType fonts diff --git a/doc/SPL/README.am335x-network b/doc/SPL/README.am335x-network index 9599729d8f9..3344898655e 100644 --- a/doc/SPL/README.am335x-network +++ b/doc/SPL/README.am335x-network @@ -19,7 +19,7 @@ comes with support for network booting preconfigured. 2. Define CONFIG_BOOTCOMMAND for your board to load and run debrick script after boot: #define CONFIG_BOOTCOMMAND \ - "setenv autoload no; " \ + "env set autoload no; " \ "bootp; " \ "if tftp 80000000 debrick.scr; then " \ "source 80000000; " \ diff --git a/doc/android/ab.rst b/doc/android/ab.rst index 7fd4aeb6a72..b0123db28e4 100644 --- a/doc/android/ab.rst +++ b/doc/android/ab.rst @@ -54,7 +54,7 @@ or:: Result:: - => printenv slot_name + => env print slot_name slot_name=a Based on this slot information, the current boot partition should be defined, diff --git a/doc/android/avb2.rst b/doc/android/avb2.rst index 4aca7a5c660..858f4c01e5b 100644 --- a/doc/android/avb2.rst +++ b/doc/android/avb2.rst @@ -22,6 +22,11 @@ Verified Boot establishes a chain of trust from the bootloader to system images: Integrity of the bootloader (U-Boot BLOB and environment) is out of scope. +Verification is performed by libavb, which is vendored under ``lib/libavb/`` +from the AOSP ``external/avb`` project (AVB version 1.3.0). Only the U-Boot +integration in ``common/avb_verify.c`` and the platform port under +``lib/libavb/avb_sysdeps*`` are U-Boot-specific. + For additional details check [1]_. AVB using OP-TEE (optional) @@ -128,12 +133,12 @@ After flashing U-Boot don't forget to update environment and write new partition table:: => env default -f -a - => setenv partitions $partitions_android + => env set partitions $partitions_android => env save => gpt write mmc 1 $partitions_android References ---------- -.. [1] https://android.googlesource.com/platform/external/avb/+/master/README.md +.. [1] https://android.googlesource.com/platform/external/avb/+/a1fe228b86543a21739c51352f5ce72f134fccfa/README.md .. [2] https://www.op-tee.org/ diff --git a/doc/arch/arc.rst b/doc/arch/arc.rst index f8e04a34f14..18556e5d372 100644 --- a/doc/arch/arc.rst +++ b/doc/arch/arc.rst @@ -8,7 +8,7 @@ that SoC designers can optimize for a wide range of uses, from deeply embedded to high-performance host applications. More information on ARC cores avaialble here: -http://www.synopsys.com/IP/ProcessorIP/ARCProcessors/Pages/default.aspx +https://mips.com/processor-solutions/arc-processors/ Designers can differentiate their products by using patented configuration technology to tailor each ARC processor instance to meet specific performance, diff --git a/doc/arch/mips.rst b/doc/arch/mips.rst index aeb58247943..70d9aa57c38 100644 --- a/doc/arch/mips.rst +++ b/doc/arch/mips.rst @@ -8,7 +8,7 @@ Notes for the MIPS architecture port of U-Boot Toolchains ---------- - * `Buildroot <http://buildroot.uclibc.org/>`_ + * `Buildroot <https://buildroot.org/>`_ * `kernel.org cross-development toolchains <https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/>`_ Known Issues diff --git a/doc/arch/nios2.rst b/doc/arch/nios2.rst index 90b4ddf387b..a825b244ab7 100644 --- a/doc/arch/nios2.rst +++ b/doc/arch/nios2.rst @@ -10,7 +10,7 @@ Please refer to the link for more information on Nios II: https://www.altera.com/products/processors/overview.html Please refer to the link for Linux port and toolchains: -http://rocketboards.org/foswiki/view/Documentation/NiosIILinuxUserManual +https://rocketboards.org/foswiki/view/Documentation/NiosIILinuxUserManual The Nios II port of u-boot is controlled by device tree. Please check out :doc:`/develop/devicetree/control`. diff --git a/doc/arch/sandbox/sandbox.rst b/doc/arch/sandbox/sandbox.rst index 0aad7a57b5e..9ea2e732898 100644 --- a/doc/arch/sandbox/sandbox.rst +++ b/doc/arch/sandbox/sandbox.rst @@ -277,28 +277,28 @@ operations being tested on the eth0 interface. DHCP .... - setenv autoload no - setenv ethrotate no - setenv ethact eth1 + env set autoload no + env set ethrotate no + env set ethact eth1 dhcp PING .... - setenv autoload no - setenv ethrotate no - setenv ethact eth1 + env set autoload no + env set ethrotate no + env set ethact eth1 dhcp ping $gatewayip TFTP .... - setenv autoload no - setenv ethrotate no - setenv ethact eth1 + env set autoload no + env set ethrotate no + env set ethact eth1 dhcp - setenv serverip WWW.XXX.YYY.ZZZ + env set serverip WWW.XXX.YYY.ZZZ tftpboot u-boot.bin The bridge also supports (to a lesser extent) the localhost interface, 'lo'. @@ -322,8 +322,8 @@ operation being tested on the lo interface. TFTP .... - setenv ethrotate no - setenv ethact eth5 + env set ethrotate no + env set ethact eth5 tftpboot u-boot.bin diff --git a/doc/arch/sh.rst b/doc/arch/sh.rst index 3e3759d68b2..87ccab237c4 100644 --- a/doc/arch/sh.rst +++ b/doc/arch/sh.rst @@ -73,7 +73,6 @@ Compiler -------- You can use the following of u-boot to compile. - `SuperH Linux Open site <http://www.superh-linux.org/>`_ - - `KPIT GNU tools <http://www.kpitgnutools.com/>`_ Future ------ diff --git a/doc/arch/x86/manual_boot.rst b/doc/arch/x86/manual_boot.rst index ec069f2c397..649aceef608 100644 --- a/doc/arch/x86/manual_boot.rst +++ b/doc/arch/x86/manual_boot.rst @@ -136,7 +136,7 @@ To boot Ubuntu from U-Boot the steps are as follows: 1. Set up the boot arguments. Use the GUID for the partition you want to boot:: - => setenv bootargs root=/dev/disk/by-partuuid/965c59ee-1822-4326-90d2-b02446050059 ro + => env set bootargs root=/dev/disk/by-partuuid/965c59ee-1822-4326-90d2-b02446050059 ro Here root= tells Linux the location of its root disk. The disk is specified by its GUID, using '/dev/disk/by-partuuid/', a Linux path to a 'directory' @@ -229,7 +229,7 @@ You should also see your boot disk turn up:: Linux has found the three partitions (sda1-3). Mercifully it doesn't print out the GUIDs. In step 1 above we could have used:: - setenv bootargs root=/dev/sda2 ro + env set bootargs root=/dev/sda2 ro instead of the GUID. However if you add another drive to your board the numbering may change whereas the GUIDs will not. So if your boot partition @@ -245,12 +245,12 @@ After a pause you should see a login screen on your display and you are done. If you want to put this in a script you can use something like this:: - setenv bootargs root=UUID=b2aaf743-0418-4d90-94cc-3e6108d7d968 ro - setenv boot zboot 03000000 0 04000000 \${filesize} - setenv bootcmd "ext2load scsi 0:2 03000000 /boot/vmlinuz-3.13.0-58-generic; ext2load scsi 0:2 04000000 /boot/initrd.img-3.13.0-58-generic; run boot" + env set bootargs root=UUID=b2aaf743-0418-4d90-94cc-3e6108d7d968 ro + env set boot zboot 03000000 0 04000000 \${filesize} + env set bootcmd "ext2load scsi 0:2 03000000 /boot/vmlinuz-3.13.0-58-generic; ext2load scsi 0:2 04000000 /boot/initrd.img-3.13.0-58-generic; run boot" saveenv -The \ is to tell the shell not to evaluate ${filesize} as part of the setenv +The \ is to tell the shell not to evaluate ${filesize} as part of the env set command. You can also bake this behaviour into your build by hard-coding the @@ -272,5 +272,5 @@ and change CONFIG_BOOTARGS value in configs/minnowmax_defconfig to:: CONFIG_BOOTARGS="root=/dev/sda2 ro" .. _here: https://en.wikipedia.org/wiki/GUID_Partition_Table -.. _this: http://events.linuxfoundation.org/sites/events/files/slides/chromeos_and_diy_vboot_0.pdf -.. _that: http://events.linuxfoundation.org/sites/events/files/slides/elce-2014.pdf +.. _this: http://events.static.linuxfound.org/sites/events/files/slides/chromeos_and_diy_vboot_0.pdf +.. _that: http://events.static.linuxfound.org/sites/events/files/slides/elce-2014.pdf diff --git a/doc/arch/x86/x86.rst b/doc/arch/x86/x86.rst index f67216d6ce0..9ba5c289337 100644 --- a/doc/arch/x86/x86.rst +++ b/doc/arch/x86/x86.rst @@ -185,14 +185,14 @@ These notes are for those who want to port U-Boot to a new x86 platform. Since x86 CPUs boot from SPI flash, a SPI flash emulator is a good investment. The Dediprog em100 can be used on Linux. -The em100 tool is available here: http://review.coreboot.org/p/em100.git +The em100 tool is available here: https://review.coreboot.org/admin/repos/em100,general On Minnowboard Max the following command line can be used:: sudo em100 -s -p LOW -d u-boot.rom -c W25Q64DW -r A suitable clip for connecting over the SPI flash chip is here: -http://www.dediprog.com/pd/programmer-accessories/EM-TC-8. +https://www.dediprog.com/product/EM-TC-8. This allows you to override the SPI flash contents for development purposes. Typically you can write to the em100 in around 1200ms, considerably faster @@ -242,7 +242,7 @@ debug serial port may be useful here. See setup_internal_uart() for an example. During the U-Boot porting, one of the important steps is to write correct PIRQ routing information in the board device tree. Without it, device drivers in the Linux kernel won't function correctly due to interrupt is not working. Please -refer to U-Boot `doc <doc/device-tree-bindings/misc/intel,irq-router.txt>`_ for +refer to :download:`intel,irq-router.txt <../../device-tree-bindings/misc/intel,irq-router.txt>` for the device tree bindings of Intel interrupt router. Here we have more details on the intel,pirq-routing property below. @@ -480,10 +480,10 @@ TODO List - Audio - Chrome OS verified boot -.. _coreboot: http://www.coreboot.org -.. _QEMU: http://www.qemu.org -.. _microcode: http://en.wikipedia.org/wiki/Microcode -.. _SFI: http://simplefirmware.org -.. _MP: http://www.intel.com/design/archives/processors/pro/docs/242016.htm -.. _SeaBIOS: http://www.seabios.org/SeaBIOS -.. _ACPI: http://www.acpi.info +.. _coreboot: https://www.coreboot.org +.. _QEMU: https://www.qemu.org +.. _microcode: https://en.wikipedia.org/wiki/Microcode +.. _SFI: https://en.wikipedia.org/wiki/Simple_Firmware_Interface +.. _MP: https://en.wikipedia.org/wiki/MultiProcessor_Specification +.. _SeaBIOS: https://www.seabios.org/ +.. _ACPI: https://uefi.org/acpi/specs diff --git a/doc/board/alliedtelesis/x220.rst b/doc/board/alliedtelesis/x220.rst index 6ca5f61ec4e..18bcac7f206 100644 --- a/doc/board/alliedtelesis/x220.rst +++ b/doc/board/alliedtelesis/x220.rst @@ -18,8 +18,8 @@ markets. - GS980M/52 - x230-52 -DDR Traning (binhdr) --------------------- +DDR Training (binhdr) +--------------------- The AlleyCat3 uses a binary blob for it's DDR training. This is launched by the built-in bootloader prior to U-Boot starting. @@ -37,3 +37,5 @@ image .. prompt:: bash $ ./tools/dumpimage -T kwbimage -p 1 -o board/alliedtelesis/x220/binary.0 u-boot.kwb + arm-softfloat-linux-gnueabi-objcopy -I binary -O binary --pad-to=0x12fcc \ + board/alliedtelesis/x220/binary.0 board/alliedtelesis/x220/binary.0 diff --git a/doc/board/allwinner/sunxi.rst b/doc/board/allwinner/sunxi.rst index d0c89b956b1..5c2406d3959 100644 --- a/doc/board/allwinner/sunxi.rst +++ b/doc/board/allwinner/sunxi.rst @@ -312,7 +312,7 @@ also be uploaded via FEL, check the Wiki's `FEL page`_ for more details. .. _`configs/`: https://github.com/crust-firmware/crust/tree/master/configs .. _`crust README`: https://github.com/crust-firmware/crust/blob/master/README.md#building-the-firmware .. _`linux-sunxi`: https://linux-sunxi.org -.. _`MTD utils`: http://www.linux-mtd.infradead.org/ +.. _`MTD utils`: http://linux-mtd.infradead.org/ .. _`magic binary`: https://github.com/linux-sunxi/sunxi-tools/raw/master/bin/fel-sdboot.sunxi .. _`sunxi_fel`: https://github.com/linux-sunxi/sunxi-tools .. _`FEL page`: https://linux-sunxi.org/FEL/USBBoot diff --git a/doc/board/amlogic/index.rst b/doc/board/amlogic/index.rst index 23380ac33f2..e8bb421ed8c 100644 --- a/doc/board/amlogic/index.rst +++ b/doc/board/amlogic/index.rst @@ -6,7 +6,7 @@ Amlogic Hardware Support Matrix ----------------------- -An up-do-date matrix is also available on: http://linux-meson.com +An up-do-date matrix is also available on: https://linux-meson.com This matrix concerns the actual source code version. diff --git a/doc/board/amlogic/jethub-j100.rst b/doc/board/amlogic/jethub-j100.rst index cbf1ea76107..053d5aa57ec 100644 --- a/doc/board/amlogic/jethub-j100.rst +++ b/doc/board/amlogic/jethub-j100.rst @@ -3,7 +3,7 @@ U-Boot for JetHub J100/J110 (A113X) =================================== -JetHome Jethub D1/D1+ (http://jethome.ru/jethub-d1p) is a home automation controller device +JetHome Jethub D1/D1+ (https://jethome.com/d1p/) is a home automation controller device manufactured by JetHome with the following specifications: - Amlogic A113X (ARM Cortex-A53) quad-core up to 1.5GHz diff --git a/doc/board/amlogic/jethub-j80.rst b/doc/board/amlogic/jethub-j80.rst index 9195df69050..c3800f9588a 100644 --- a/doc/board/amlogic/jethub-j80.rst +++ b/doc/board/amlogic/jethub-j80.rst @@ -3,7 +3,7 @@ U-Boot for JetHub J80 (S905W) ============================= -JetHome Jethub H1 (http://jethome.ru/jethub-h1) is a home automation controller device +JetHome Jethub H1 (https://jethome.ru/h1/?variation_id=56) is a home automation controller device manufactured by JetHome with the following specifications: - Amlogic S905W (ARM Cortex-A53) quad-core up to 1.5GHz diff --git a/doc/board/andestech/ae350.rst b/doc/board/andestech/ae350.rst index 99622fd3258..28f05c9d9cd 100644 --- a/doc/board/andestech/ae350.rst +++ b/doc/board/andestech/ae350.rst @@ -108,8 +108,8 @@ Messages of U-Boot boot on AE350 board riscv32-unknown-linux-gnu-gcc (GCC) 7.2.0 GNU ld (GNU Binutils) 2.29 - RISC-V # setenv ipaddr 10.0.4.200 ; - RISC-V # setenv serverip 10.0.4.97 ; + RISC-V # env set ipaddr 10.0.4.200 ; + RISC-V # env set serverip 10.0.4.97 ; RISC-V # ping 10.0.4.97 ; Using mac@e0100000 device host 10.0.4.97 is alive @@ -224,8 +224,8 @@ Boot bbl and riscv-linux via U-Boot on QEMU 17901268 bytes read in 4642 ms (3.7 MiB/s) RISC-V # fatload mmc 0:0 0x2000000 ae350.dtb 1954 bytes read in 1 ms (1.9 MiB/s) - RISC-V # setenv bootm_size 0x2000000 - RISC-V # setenv fdt_high 0x1f00000 + RISC-V # env set bootm_size 0x2000000 + RISC-V # env set fdt_high 0x1f00000 RISC-V # bootm 0x00600000 - 0x2000000 ## Booting kernel from Legacy Image at 00600000 ... Image Name: diff --git a/doc/board/bsh/imx6ulz_bsh_smm_m2.rst b/doc/board/bsh/imx6ulz_bsh_smm_m2.rst index 0af41c09d20..6210d6144a2 100644 --- a/doc/board/bsh/imx6ulz_bsh_smm_m2.rst +++ b/doc/board/bsh/imx6ulz_bsh_smm_m2.rst @@ -76,9 +76,9 @@ where nand_script.lst contains the following: SDPV: jump # } - FB: ucmd setenv fastboot_buffer ${loadaddr} + FB: ucmd env set fastboot_buffer ${loadaddr} FB: download -f _image - FB: ucmd if test ! -n "$fastboot_bytes"; then setenv fastboot_bytes $filesize; else true; fi + FB: ucmd if test ! -n "$fastboot_bytes"; then env set fastboot_bytes $filesize; else true; fi # Burn image to nandfit partition if needed FB: ucmd if env exists nandfit_part; then nand erase.part nandfit; nand write ${fastboot_buffer} nandfit ${fastboot_bytes}; else true; fi; FB: ucmd nandbcb init ${fastboot_buffer} nandboot ${fastboot_bytes} diff --git a/doc/board/emulation/qemu-x86.rst b/doc/board/emulation/qemu-x86.rst index c604e42990e..cca6a239807 100644 --- a/doc/board/emulation/qemu-x86.rst +++ b/doc/board/emulation/qemu-x86.rst @@ -62,7 +62,7 @@ script. For example, Debian (stretch) can be booted by creating a script file named 'boot.txt' with the contents:: - setenv bootargs root=/dev/sda1 ro + env set bootargs root=/dev/sda1 ro load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} /vmlinuz load ${devtype} ${devnum}:${distro_bootpart} ${ramdisk_addr_r} /initrd.img zboot ${kernel_addr_r} - ${ramdisk_addr_r} ${filesize} diff --git a/doc/board/google/chromebook_link.rst b/doc/board/google/chromebook_link.rst index 16080304d6e..f59fc467332 100644 --- a/doc/board/google/chromebook_link.rst +++ b/doc/board/google/chromebook_link.rst @@ -13,7 +13,7 @@ First, you need the following binary blobs: You can get these binary blobs by:: - $ git clone http://review.coreboot.org/p/blobs.git + $ git clone https://review.coreboot.org/blobs $ cd blobs Find the following files: diff --git a/doc/board/highbank/highbank.rst b/doc/board/highbank/highbank.rst index 654ef8a0269..21d76436b36 100644 --- a/doc/board/highbank/highbank.rst +++ b/doc/board/highbank/highbank.rst @@ -73,6 +73,6 @@ existing U-Boot, and execute it with bootm:: => tftpboot 0x8000 u-boot-highbank.img => bootm -.. _`ipmitool`: https://github.com/Cynerva/ipmitool +.. _`ipmitool`: https://codeberg.org/IPMITool/ipmitool .. _`pyipmi`: https://pypi.org/project/pyipmi/ -.. _`management script`: https://github.com/Cynerva/cxmanage +.. _`management script`: https://pypi.org/project/cxmanage/ diff --git a/doc/board/intel/slimbootloader.rst b/doc/board/intel/slimbootloader.rst index 87d71a55bdc..5fea134b5f2 100644 --- a/doc/board/intel/slimbootloader.rst +++ b/doc/board/intel/slimbootloader.rst @@ -104,8 +104,8 @@ Download it from http://downloads.yoctoproject.org/releases/yocto/yocto-2.0/mach 3. Update boot environment values on shell:: - => setenv bootfile vmlinuz - => setenv bootdev scsi + => env set bootfile vmlinuz + => env set bootdev scsi => boot Build Instruction for Slim Bootloader for LeafHill (APL) target @@ -170,7 +170,7 @@ Build Instruction to use ELF U-Boot $ python BuildLoader.py build <qemu or apl> -p "OsLoader.efi:LLDR:Lz4;u-boot:U-BT:Lzma" -.. _U-Boot: https://source.denx.de/ +.. _U-Boot: https://git.u-boot-project.org/ .. _`Slim Bootloader`: https://github.com/slimbootloader/ .. _`Intel FSP`: https://github.com/IntelFsp/ .. _`Getting Started`: https://slimbootloader.github.io/getting-started/ diff --git a/doc/board/microchip/mpfs_common.rst b/doc/board/microchip/mpfs_common.rst index edbaf043966..5d7263d4b8d 100644 --- a/doc/board/microchip/mpfs_common.rst +++ b/doc/board/microchip/mpfs_common.rst @@ -78,13 +78,13 @@ load uImage (with initramfs). .. code-block:: none - RISC-V # setenv kernel_addr_r 0x80200000 - RISC-V # setenv fdt_addr_r 0x82200000 + RISC-V # env set kernel_addr_r 0x80200000 + RISC-V # env set fdt_addr_r 0x82200000 - RISC-V # setenv ipaddr 192.168.1.5 - RISC-V # setenv netmask 255.255.255.0 - RISC-V # setenv serverip 192.168.1.3 - RISC-V # setenv gateway 192.168.1.1 + RISC-V # env set ipaddr 192.168.1.5 + RISC-V # env set netmask 255.255.255.0 + RISC-V # env set serverip 192.168.1.3 + RISC-V # env set gateway 192.168.1.1 RISC-V # tftpboot ${kernel_addr_r} uImage ethernet@20112000: PHY present at 9 diff --git a/doc/board/nxp/imx95_frdm.rst b/doc/board/nxp/imx95_frdm.rst new file mode 100644 index 00000000000..85ef9022e76 --- /dev/null +++ b/doc/board/nxp/imx95_frdm.rst @@ -0,0 +1,131 @@ +.. SPDX-License-Identifier: GPL-2.0+ + +imx95_frdm +======================= + +U-Boot for the NXP i.MX95 15x15 FRDM board + +Quick Start +----------- + +- Get ahab-container.img +- Get DDR PHY Firmware Images +- Get and Build OEI Images +- Get and Build System Manager Image +- Get and Build the ARM Trusted Firmware +- Build the Bootloader Image +- Boot + +Get ahab-container.img +-------------------------------------- + +Note: srctree is U-Boot source directory + +.. code-block:: bash + + $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-ele-imx-2.0.2-89161a8.bin + $ sh firmware-ele-imx-2.0.2-89161a8.bin --auto-accept + +i.MX95 A0 silicon version + +.. code-block:: bash + + $ cp firmware-ele-imx-2.0.2-89161a8/mx95a0-ahab-container.img $(srctree) + +i.MX95 B0 silicon version + +.. code-block:: bash + + $ cp firmware-ele-imx-2.0.2-89161a8/mx95b0-ahab-container.img $(srctree) + +Get DDR PHY Firmware Images +-------------------------------------- + +Note: srctree is U-Boot source directory + +.. code-block:: bash + + $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.28-994fa14.bin + $ sh firmware-imx-8.28-994fa14.bin --auto-accept + $ cp firmware-imx-8.28-994fa14/firmware/ddr/synopsys/lpddr5*v202409.bin $(srctree) + $ cp firmware-imx-8.28-994fa14/firmware/ddr/synopsys/lpddr4x*v202409.bin $(srctree) + +Get and Build OEI Images +-------------------------------------- + +Note: srctree is U-Boot source directory +Get OEI from: https://github.com/nxp-imx/imx-oei +branch: master + +.. code-block:: bash + + $ sudo apt -y install make gcc g++-multilib srecord + $ wget https://developer.arm.com/-/media/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz + $ tar xvf arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz + $ export TOOLS=$PWD + $ git clone -b master https://github.com/nxp-imx/imx-oei.git + $ cd imx-oei + +i.MX95 B0 silicon version on 15x15 LPDDR4X FRDM Board + +.. code-block:: bash + + $ make board=mx95lp4x-15 oei=ddr DEBUG=1 r=B0 all + $ cp build/mx95lp4x-15/ddr/oei-m33-ddr.bin $(srctree) + +Get and Build System Manager Image +-------------------------------------- + +Note: srctree is U-Boot source directory +Get System Manager from: https://github.com/nxp-imx/imx-sm +branch: master + +.. code-block:: bash + + $ sudo apt -y install make gcc g++-multilib srecord + $ wget https://developer.arm.com/-/media/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz + $ tar xvf arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz + $ export TOOLS=$PWD + $ git clone -b master https://github.com/nxp-imx/imx-sm.git + $ cd imx-sm + $ make config=mx95evk all + $ cp build/mx95evk/m33_image.bin $(srctree) + +Get and Build the ARM Trusted Firmware +-------------------------------------- + +Note: srctree is U-Boot source directory +Get ATF from: https://github.com/nxp-imx/imx-atf/ +branch: lf_v2.12 + +.. code-block:: bash + + $ export CROSS_COMPILE=aarch64-poky-linux- + $ unset LDFLAGS + $ unset AS + $ git clone -b lf_v2.12 https://github.com/nxp-imx/imx-atf.git + $ cd imx-atf + $ make PLAT=imx95 bl31 + $ cp build/imx95/release/bl31.bin $(srctree) + +Build the Bootloader Image +-------------------------- + +i.MX95 B0 silicon version on 15x15 LPDDR4X FRDM Board + +.. code-block:: bash + + $ export CROSS_COMPILE=aarch64-poky-linux- + $ make imx95_15x15_frdm_defconfig + $ make + +Copy imx-boot-imx95.bin to the MicroSD card: + +.. code-block:: bash + + $ sudo dd if=flash.bin of=/dev/sd[x] bs=1k seek=32 conv=fsync + +Boot +---- + +Set i.MX95 boot device to MicroSD card diff --git a/doc/board/nxp/index.rst b/doc/board/nxp/index.rst index 52c8e85fa5b..b28e5b6ceb9 100644 --- a/doc/board/nxp/index.rst +++ b/doc/board/nxp/index.rst @@ -17,6 +17,7 @@ NXP Semiconductors imx93_9x9_qsb imx93_11x11_evk imx93_frdm + imx95_frdm imx943_evk imx95_evk imx952_evk diff --git a/doc/board/nxp/mx6sabreauto.rst b/doc/board/nxp/mx6sabreauto.rst index fe4cd9d2141..f7477b4040e 100644 --- a/doc/board/nxp/mx6sabreauto.rst +++ b/doc/board/nxp/mx6sabreauto.rst @@ -87,7 +87,7 @@ To configure Falcon mode for the first time, on U-Boot do the following commands - Setup kernel bootargs:: - # setenv bootargs "console=ttymxc3,115200 root=/dev/mmcblk0p1 rootfstype=ext4 rootwait quiet rw" + # env set bootargs "console=ttymxc3,115200 root=/dev/mmcblk0p1 rootfstype=ext4 rootwait quiet rw" - Prepare args:: diff --git a/doc/board/nxp/mx6sabresd.rst b/doc/board/nxp/mx6sabresd.rst index c9869f4a73a..27ddf9073e5 100644 --- a/doc/board/nxp/mx6sabresd.rst +++ b/doc/board/nxp/mx6sabresd.rst @@ -103,7 +103,7 @@ To configure Falcon mode for the first time, on U-Boot do the following commands - Setup the IP server:: - # setenv serverip <server_ip_address> + # env set serverip <server_ip_address> - Download dtb file:: @@ -119,7 +119,7 @@ To configure Falcon mode for the first time, on U-Boot do the following commands - Setup kernel bootargs:: - # setenv bootargs "console=ttymxc0,115200 root=/dev/mmcblk1p1 rootfstype=ext4 rootwait quiet rw" + # env set bootargs "console=ttymxc0,115200 root=/dev/mmcblk1p1 rootfstype=ext4 rootwait quiet rw" - Prepare args:: diff --git a/doc/board/nxp/mx6ullevk.rst b/doc/board/nxp/mx6ullevk.rst index a26248a1e3b..0a7d2616f58 100644 --- a/doc/board/nxp/mx6ullevk.rst +++ b/doc/board/nxp/mx6ullevk.rst @@ -42,6 +42,4 @@ Connect the USB cable between the EVK and the PC for the console. Insert the micro SD card in the board, power it up and U-Boot messages should come up. -The link for the board: http://www.nxp.com/products/microcontrollers-and- \ -processors/arm-processors/i.mx-applications-processors/i.mx-6-processors/ \ -i.mx6qp/evaluation-kit-for-the-i.mx-6ull-applications-processor:MCIMX6ULL-EVK +The link for the board: https://www.nxp.com/design/design-center/development-boards-and-designs/i-mx-evaluation-and-development-boards/evaluation-kit-for-the-i-mx-6ull-and-6ulz-applications-processor:MCIMX6ULL-EVK diff --git a/doc/board/purism/index.rst b/doc/board/purism/index.rst index a9cdc312d46..0225aa7f3aa 100644 --- a/doc/board/purism/index.rst +++ b/doc/board/purism/index.rst @@ -7,3 +7,4 @@ Purism SPC :maxdepth: 2 librem5 + librem5-devkit diff --git a/doc/board/purism/librem5-devkit.rst b/doc/board/purism/librem5-devkit.rst new file mode 100644 index 00000000000..4a6dba45a9c --- /dev/null +++ b/doc/board/purism/librem5-devkit.rst @@ -0,0 +1,56 @@ +.. SPDX-License-Identifier: GPL-2.0+ + +Librem5 +======= + +U-Boot for the Purism Librem 5 development kit + +Quick Start +----------- + +- Build the ARM Trusted firmware binary +- Get DDR and HDMI firmware +- Build U-Boot + +Get and Build the ARM Trusted firmware +-------------------------------------- + +Note: srctree is U-Boot source directory +Get ATF from: https://source.puri.sm/Librem5/arm-trusted-firmware +branch: librem5 + +.. code-block:: bash + + $ make PLAT=imx8mq CROSS_COMPILE=aarch64-linux-gnu- bl31 + $ cp build/imx8mq/release/bl31.bin $(builddir) + +Get the ddr and display port firmware +------------------------------------- + +.. code-block:: bash + + $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.15.bin + $ chmod +x firmware-imx-8.15.bin + $ ./firmware-imx-8.15.bin + $ cp firmware-imx-8.15/firmware/hdmi/cadence/signed_hdmi_imx8m.bin $(builddir) + $ cp firmware-imx-8.15/firmware/ddr/synopsys/lpddr4*.bin $(builddir) + +Build U-Boot +------------ + +.. code-block:: bash + + $ export CROSS_COMPILE=aarch64-linux-gnu- + $ make librem5_devkit_defconfig + $ make ARCH=arm + +Burn the flash.bin +------------------ + +Write the flash.bin to the eMMC at offset 32KB: + +.. code-block:: bash + + $ sudo dd if=flash.bin of=/dev/mmc0 bs=1024 seek=32 conv=notrunc + +Reboot the devkit. diff --git a/doc/board/renesas/rcar-gen3-draak.rst b/doc/board/renesas/rcar-gen3-draak.rst index 7b94eaa4b23..061ecd05291 100644 --- a/doc/board/renesas/rcar-gen3-draak.rst +++ b/doc/board/renesas/rcar-gen3-draak.rst @@ -16,7 +16,7 @@ newly cloned source directory: .. code-block:: console - $ git clone https://source.denx.de/u-boot/u-boot.git/ + $ git clone https://git.u-boot-project.org/u-boot/u-boot.git $ cd u-boot Configure U-Boot: diff --git a/doc/board/renesas/rcar-gen3-ebisu.rst b/doc/board/renesas/rcar-gen3-ebisu.rst index f9632705abc..a41f736a767 100644 --- a/doc/board/renesas/rcar-gen3-ebisu.rst +++ b/doc/board/renesas/rcar-gen3-ebisu.rst @@ -16,7 +16,7 @@ newly cloned source directory: .. code-block:: console - $ git clone https://source.denx.de/u-boot/u-boot.git/ + $ git clone https://git.u-boot-project.org/u-boot/u-boot.git $ cd u-boot Configure U-Boot: diff --git a/doc/board/renesas/rcar-gen3-geist.rst b/doc/board/renesas/rcar-gen3-geist.rst index 7bedb3a79cb..63abb3e22b4 100644 --- a/doc/board/renesas/rcar-gen3-geist.rst +++ b/doc/board/renesas/rcar-gen3-geist.rst @@ -14,7 +14,7 @@ newly cloned source directory: .. code-block:: console - $ git clone https://source.denx.de/u-boot/u-boot.git/ + $ git clone https://git.u-boot-project.org/u-boot/u-boot.git $ cd u-boot Configure U-Boot: diff --git a/doc/board/renesas/rcar-gen3-salvator-x.rst b/doc/board/renesas/rcar-gen3-salvator-x.rst index 37f009452e5..a6ef15a6da4 100644 --- a/doc/board/renesas/rcar-gen3-salvator-x.rst +++ b/doc/board/renesas/rcar-gen3-salvator-x.rst @@ -17,7 +17,7 @@ newly cloned source directory: .. code-block:: console - $ git clone https://source.denx.de/u-boot/u-boot.git/ + $ git clone https://git.u-boot-project.org/u-boot/u-boot.git $ cd u-boot Configure U-Boot: diff --git a/doc/board/renesas/rcar-gen3-ulcb.rst b/doc/board/renesas/rcar-gen3-ulcb.rst index 88ec2276a36..01e15fa29b6 100644 --- a/doc/board/renesas/rcar-gen3-ulcb.rst +++ b/doc/board/renesas/rcar-gen3-ulcb.rst @@ -18,7 +18,7 @@ newly cloned source directory: .. code-block:: console - $ git clone https://source.denx.de/u-boot/u-boot.git/ + $ git clone https://git.u-boot-project.org/u-boot/u-boot.git $ cd u-boot Configure U-Boot: diff --git a/doc/board/renesas/rcar-gen4-sparrow-hawk.rst b/doc/board/renesas/rcar-gen4-sparrow-hawk.rst index a1b92ecab57..6b9e21bdf1b 100644 --- a/doc/board/renesas/rcar-gen4-sparrow-hawk.rst +++ b/doc/board/renesas/rcar-gen4-sparrow-hawk.rst @@ -17,7 +17,7 @@ newly cloned source directory: .. code-block:: console - $ git clone https://source.denx.de/u-boot/u-boot.git/ + $ git clone https://git.u-boot-project.org/u-boot/u-boot.git $ cd u-boot Configure U-Boot: @@ -59,6 +59,27 @@ Finally, write U-Boot into SPI NOR: => sf probe && sf update 0x50000000 0 ${filesize} +SPI NOR layout +-------------- + +The Retronix R-Car V4H Sparrow Hawk board 64 MiB SPI NOR layout is listed below. + +.. table:: Retronix R-Car Gen4 V4H Sparrow Hawk SPI NOR layout + + +----------------+----------------+-----------+---------------------------------------------------------------+ + | Start | End | Size | Content | + +================+================+===========+===============================================================+ + | ``0x000_0000`` | ``0x02f_ffff`` | 3072 kiB | U-Boot bootloader ``flash.bin`` | + +----------------+----------------+-----------+---------------------------------------------------------------+ + | ``0x030_0000`` | ``0x033_ffff`` | 256 kiB | PCIe controller firmware ``rcar_gen4_pcie.bin`` (32 kiB used) | + +----------------+----------------+-----------+---------------------------------------------------------------+ + | ``0x034_0000`` | ``0x3f7_ffff`` | 61696 kiB | UNUSED | + +----------------+----------------+-----------+---------------------------------------------------------------+ + | ``0x3f8_0000`` | ``0x3fb_ffff`` | 256 kiB | U-Boot bootloader environment copy 1 | + +----------------+----------------+-----------+---------------------------------------------------------------+ + | ``0x3fc_0000`` | ``0x3ff_ffff`` | 256 kiB | U-Boot bootloader environment copy 2 | + +----------------+----------------+-----------+---------------------------------------------------------------+ + Bundle TFA BL31 into Linux kernel fitImage ------------------------------------------ diff --git a/doc/board/renesas/rcar-gen5-ironhide.rst b/doc/board/renesas/rcar-gen5-ironhide.rst index 39fbfdbfe00..31a5bb14ae6 100644 --- a/doc/board/renesas/rcar-gen5-ironhide.rst +++ b/doc/board/renesas/rcar-gen5-ironhide.rst @@ -22,7 +22,7 @@ newly cloned source directory: .. code-block:: console - $ git clone https://source.denx.de/u-boot/u-boot.git/ + $ git clone https://git.u-boot-project.org/u-boot/u-boot.git $ cd u-boot Configure U-Boot: @@ -71,7 +71,7 @@ newly cloned source directory: .. code-block:: console - $ git clone https://source.denx.de/u-boot/u-boot.git/ + $ git clone https://git.u-boot-project.org/u-boot/u-boot.git $ cd u-boot Configure U-Boot: @@ -164,9 +164,9 @@ via TFTP in the same manner as the other components are downloaded: base 0 rsip_ipl_boot_ca0= /* Start TFA BL31, OPTEE-OS, U-Boot, Linux on Cortex-A720AE core 0 */ \ - setenv ipaddr 192.168.1.10 && \ - setenv serverip 192.168.1.1 && \ - setenv netmask 255.255.255.0 && \ + env set ipaddr 192.168.1.10 && \ + env set serverip 192.168.1.1 && \ + env set netmask 255.255.255.0 && \ \ tftp ${rsip_ipl_scp_ep} scp.bin && \ tftp ${rsip_ipl_tfa_ep} bl31.bin && \ @@ -183,7 +183,6 @@ via TFTP in the same manner as the other components are downloaded: rproc load 13 ${rsip_ipl_tfa_ep} 4 && /* Set up Cortex-A720AE Core 0 */ \ rproc start 13 /* Start Cortex-A720AE Core 0 */ - .. note:: U-Boot on RSIP environment is not persistent across reboots, @@ -202,3 +201,219 @@ via TFTP in the same manner as the other components are downloaded: U-Boot on RSIP can start non-SCP cores via ``rproc`` command only after the SCP got started, because those cores are started via SCMI calls to the SCP. + +Cortex-R52 core start +--------------------- + +The U-Boot for RSIP remoteproc implementation is capable of starting +the SCP core, and using the SCP it is capable of starting additional +CPU cores in the SoC, Cortex-R52 and Cortex-A720AE. This subchapter +demonstrates how to start example code on Cortex-R52 cores using the +U-Boot on RSIP remoteproc and SCP. + +The piece of position independent assembler code below can be compiled +for the Cortex-R52 core, can be started from any 4-Byte aligned address +and prints CPU core program counter (PC) address and MPIDR onto HSCIF1. +The MPIDR register encodes CPU cluster and core position and is useful +when identifying on which specific CPU core does the code execute. The +program counter (PC) can be used to determine from which address did +the code running on the Cortex-R52 core start executing. + +.. code-block:: console + + #define HSTDR 0xc + #define HSFSR 0x10 + #define TEND 0x40 + + .macro mprintchr, chr, rt + mov \rt, \chr + bl printchr + .endm + + .macro mprintnl, rt + mprintchr #'\r', \rt + mprintchr #'\n', \rt + .endm + + start: + + # Set up HSCIF1 output + mov r0, #0xc0000000 + orr r0, r0, #0x00710000 + orr r0, r0, #0x00004000 + + # Print newline + mprintnl r1 + + # Print PC: + mprintchr #'P', r1 + mprintchr #'C', r1 + mprintchr #':', r1 + mprintchr #' ', r1 + bl printchr + bl printchr + bl printchr + mprintchr #'0', r1 + mprintchr #'x', r1 + + # Figure out start address and print it + adr r2, start + bl printhex + + # Print newline + mprintnl r1 + + # Print MPIDR: + mprintchr #'M', r1 + mprintchr #'P', r1 + mprintchr #'I', r1 + mprintchr #'D', r1 + mprintchr #'R', r1 + mprintchr #':', r1 + mprintchr #' ', r1 + mprintchr #'0', r1 + mprintchr #'x', r1 + + # Read MPIDR + mrc p15, 0, r2, c0, c0, 5 + bl printhex + + # Print newline + mprintnl r1 + + # Halt and do nothing + 3: wfi + b 3b + + # Print char byte of register r1 (clobber: r9) + printchr: + 2: ldrh r9, [r0, #HSFSR] + tst r9, #TEND + beq 2b + strb r1, [r0, #HSTDR] + ldrh r9, [r0, #HSFSR] + bic r9, #TEND + strh r9, [r0, #HSFSR] + + bx lr + + # Print hex content of register r2 (clobber: r6, r7, r8, r9) + printhex: + mov r8, #8 + + 1: and r1, r2, #0xf0000000 + lsl r2, r2, #4 + lsr r1, r1, #28 + add r1, r1, #'0' + cmp r1, #'9' + # >= '9' => add 'a' - ':' + addgt r1, r1, #('a' - ':') + + mov r6, lr + bl printchr + mov lr, r6 + + sub r8, r8, #1 + cmp r8, #0 + bne 1b + + bx lr + +Compile the piece of position independent assembler code above for +the Cortex-R52 core as follows: + +.. code-block:: console + + $ cpp code.s > temp.S + $ arm-linux-gnueabi-as -march=armv8-r -o temp.o temp.S + $ arm-linux-gnueabi-objcopy -O binary temp.o output.bin + +Load the piece of compiled assembler code into memory, and start the +code on the Cortex-R52 cluster 0 core 0 as follows: + +.. important:: + + It is mandatory for the SCP core to be started before the following + procedure can be performed, because the Cortex-R52 core is started + by the SCP. The SCP is usually started by the default boot command + of the U-Boot on RSIP, which contains ``rproc start 0`` invocation to + start the SCP core. + +.. note:: + + The example below does use ethernet loading of the Cortex-R52 + firmware, however, it is perfectly fine to load the firmware from + either HyperFlash, UFS, or other storage media. + +.. note:: + + The example below does use load address 0x86000000 for the Cortex-R52 + firmware. This address is located in DRAM and is only ever used as a + temporary load buffer. The firmware is copied into the RT-VRAM which + is accessible from the RSIP at remapped address 0xb0200000 and from + the Cortex-R52 at address 0x10200000, which is also the address from + which the firmware executes on Cortex-R52. + +.. code-block:: console + + # Configure ethernet address, adjust as needed: + => env set ipaddr 192.168.1.10 + => env set serverip 192.168.1.1 + => env set netmask 255.255.255.0 + + # Load Cortex-R52 firmware into DRAM at address 0x86000000 + => tftp 0x86000000 output.bin + # Copy Cortex-R52 firmware into RT-VRAM + => cp.b 0x86000000 0xb0200000 ${filesize} + # Configure Cortex-R52 cluster 0 core 0 entry point + => rproc load 1 0x10200000 ${filesize} + # Start Cortex-R52 cluster 0 core 0 + => rproc start 1 + +The expected output of ``rproc start 1`` a print of both MPIDR and PC register +values on HSCIF1. + +.. code-block:: console + + Load Remote Processor 1 with data@addr=0x10200000 304 bytes: Success! + + PC: 0x10200000 + MPIDR: 0x80000000 + +.. note:: + + The MPIDR register value above is 0x80000000 . Cortex-R52 MPIDR register + bit 31 is always set to 1, bitfields AFF2[23:16], AFF1[15:8], AFF0[7:0] + describe core affinity, in this case this is cluster 0, core 0. + +Other Cortex-R52 cores in other clusters can be started by passing a +matching core number to both ``rproc load`` and ``rproc start``. Example: + +.. code-block:: console + + => rproc list + ... + 1 - Name:'rcar-rsip-cr.0-scp@c1340000' type:'internal memory mapped' supports: load start stop reset is_running + 2 - Name:'rcar-rsip-cr.1-scp@c1340000' type:'internal memory mapped' supports: load start stop reset is_running + 3 - Name:'rcar-rsip-cr.2-scp@c1340000' type:'internal memory mapped' supports: load start stop reset is_running + 4 - Name:'rcar-rsip-cr.3-scp@c1340000' type:'internal memory mapped' supports: load start stop reset is_running + 5 - Name:'rcar-rsip-cr.4-scp@c1340000' type:'internal memory mapped' supports: load start stop reset is_running + 6 - Name:'rcar-rsip-cr.5-scp@c1340000' type:'internal memory mapped' supports: load start stop reset is_running + 7 - Name:'rcar-rsip-cr.6-scp@c1340000' type:'internal memory mapped' supports: load start stop reset is_running + 8 - Name:'rcar-rsip-cr.7-scp@c1340000' type:'internal memory mapped' supports: load start stop reset is_running + 9 - Name:'rcar-rsip-cr.8-scp@c1340000' type:'internal memory mapped' supports: load start stop reset is_running + 10 - Name:'rcar-rsip-cr.9-scp@c1340000' type:'internal memory mapped' supports: load start stop reset is_running + 11 - Name:'rcar-rsip-cr.10-scp@c1340000' type:'internal memory mapped' supports: load start stop reset is_running + 12 - Name:'rcar-rsip-cr.11-scp@c1340000' type:'internal memory mapped' supports: load start stop reset is_running + ... + => rproc load 10 0x10200000 ${filesize} && rproc start 10 + Load Remote Processor 10 with data@addr=0x10200000 304 bytes: Success! + + PC: 0x10200000 + MPIDR: 0x80000201 + +.. note:: + + The MPIDR register value above is 0x80000201 . Cortex-R52 MPIDR register + bit 31 is always set to 1, bitfields AFF2[23:16], AFF1[15:8], AFF0[7:0] + describe core affinity, in this case this is cluster 2, core 1. diff --git a/doc/board/renesas/rzn1.rst b/doc/board/renesas/rzn1.rst index 5f054e8c674..24ce7709dd7 100644 --- a/doc/board/renesas/rzn1.rst +++ b/doc/board/renesas/rzn1.rst @@ -17,7 +17,7 @@ Clone the U-Boot repository and build it as follows: .. code-block:: bash - git clone --depth 1 https://source.denx.de/u-boot/u-boot.git + git clone --depth 1 https://git.u-boot-project.org/u-boot/u-boot.git cd u-boot make rzn1_snarc_defconfig make CROSS_COMPILE=arm-linux-gnu- diff --git a/doc/board/rockchip/rockchip.rst b/doc/board/rockchip/rockchip.rst index f77f1e78f38..de2df3046e2 100644 --- a/doc/board/rockchip/rockchip.rst +++ b/doc/board/rockchip/rockchip.rst @@ -127,6 +127,7 @@ List of mainline supported Rockchip boards: * rk3568 - 9Tripod X3568 v4 (9tripod-x3568-v4-rk3568) + - Anbernic RG-DS (anbernic-rg-ds-rk3568) - Rockchip Evb-RK3568 (evb-rk3568) - Banana Pi BPI-R2 Pro (bpi-r2-pro-rk3568) - EmbedFire LubanCat 2 (lubancat-2-rk3568) @@ -155,6 +156,7 @@ List of mainline supported Rockchip boards: - Rockchip EVB (evb-rk3588) - Edgeble Neural Compute Module 6A SoM - Neu6a (neu6a-io-rk3588) - Edgeble Neural Compute Module 6B SoM - Neu6b (neu6b-io-rk3588) + - Firefly ROC-RK3588S-PC (roc-pc-rk3588s) - FriendlyElec CM3588 NAS (cm3588-nas-rk3588) - FriendlyElec NanoPC-T6 (nanopc-t6-rk3588) - FriendlyElec NanoPi R6C (nanopi-r6c-rk3588s) @@ -228,7 +230,7 @@ U-Boot .. code-block:: bash - git clone --depth 1 https://source.denx.de/u-boot/u-boot.git + git clone --depth 1 https://git.u-boot-project.org/u-boot/u-boot.git cd u-boot To build px30 boards: diff --git a/doc/board/samsung/e850-96.rst b/doc/board/samsung/e850-96.rst index 3174a7daff9..d980f2faf02 100644 --- a/doc/board/samsung/e850-96.rst +++ b/doc/board/samsung/e850-96.rst @@ -205,8 +205,8 @@ Use ``$partitions_android`` as current partition definitions: .. prompt:: bash => - setenv partitions_linux $partitions - setenv partitions $partitions_android + env set partitions_linux $partitions + env set partitions $partitions_android env save Format eMMC to have Android partition table: @@ -586,17 +586,17 @@ First, prepare the ``boot.txt`` file with OS boot instructions, for example: .. code-block:: bash - setenv mmcroot 2 - setenv console ttySAC0,115200n8 - setenv kernel_file Image - setenv fdtfile exynos/exynos850-e850-96.dtb - setenv loadaddr 0x80000000 - setenv fdt_addr_r 0x8c000000 + env set mmcroot 2 + env set console ttySAC0,115200n8 + env set kernel_file Image + env set fdtfile exynos/exynos850-e850-96.dtb + env set loadaddr 0x80000000 + env set fdt_addr_r 0x8c000000 echo Booting Linux from eMMC... mmc dev $mmcdev mmc rescan - setenv bootargs console=$console root=/dev/mmcblk${mmcdev}p${mmcroot} rootwait rw + env set bootargs console=$console root=/dev/mmcblk${mmcdev}p${mmcroot} rootwait rw load mmc $mmcdev:$mmcroot $fdt_addr_r /boot/$fdtfile load mmc $mmcdev:$mmcroot $loadaddr /boot/$kernel_file booti $loadaddr - $fdt_addr_r @@ -735,7 +735,7 @@ defined in ``$partitions``, it's enough to only set ``$bootdev`` like this: .. prompt:: bash => - setenv bootdev usb + env set bootdev usb env save Another thing to be aware of: in order to perform USB boot the USB PHY kernel @@ -808,7 +808,7 @@ Follow the instructions below to boot from a USB storage device: .. prompt:: bash => - setenv bootdev usb + env set bootdev usb env save 6. Erase eMMC partition table to make U-Boot use ESP from USB drive: diff --git a/doc/board/siemens/iot2050.rst b/doc/board/siemens/iot2050.rst index 37b23f6146b..2c0a324485c 100644 --- a/doc/board/siemens/iot2050.rst +++ b/doc/board/siemens/iot2050.rst @@ -25,7 +25,7 @@ ATF: Upstream release 2.4 or newer OP-TEE: Upstream release 3.10.0 or newer Binary dependencies can be found in -https://github.com/siemens/meta-iot2050/tree/master/recipes-bsp/u-boot/files/prebuild. +https://github.com/siemens/meta-iot2050/tree/master/meta/recipes-bsp/u-boot/files/prebuild. The following binaries from that source need to be present in the build folder: - seboot_pg1.bin @@ -44,7 +44,7 @@ needs to be present in the build folder: - otpcmd.bin Regarding how to generating this otpcmd.bin, please refer to: -https://github.com/siemens/meta-iot2050/tree/master/recipes-bsp/secure-boot-otp-provisioning/files/make-otpcmd.sh +https://github.com/siemens/meta-iot2050/blob/master/meta/recipes-bsp/secure-boot-otp-provisioning/files/make-otpcmd.sh Building -------- diff --git a/doc/board/sifive/unleashed.rst b/doc/board/sifive/unleashed.rst index ce38b701d78..94554f5c3ae 100644 --- a/doc/board/sifive/unleashed.rst +++ b/doc/board/sifive/unleashed.rst @@ -124,10 +124,10 @@ load uImage. .. code-block:: none - => setenv ipaddr 10.206.7.133 - => setenv netmask 255.255.252.0 - => setenv serverip 10.206.4.143 - => setenv gateway 10.206.4.1 + => env set ipaddr 10.206.7.133 + => env set netmask 255.255.252.0 + => env set serverip 10.206.4.143 + => env set gateway 10.206.4.1 If you want to use a flat kernel image such as Image file @@ -256,7 +256,7 @@ as well. 1000 Bytes/s done Bytes transferred = 5614 (15ee hex) - => setenv bootargs "root=/dev/ram rw console=ttySIF0 ip=dhcp earlycon=sbi" + => env set bootargs "root=/dev/ram rw console=ttySIF0 ip=dhcp earlycon=sbi" => booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r} ## Loading init Ramdisk from Legacy Image at 88300000 ... Image Name: Linux RootFS diff --git a/doc/board/sipeed/maix.rst b/doc/board/sipeed/maix.rst index 4568bb3e4b7..9bbc2a93c5b 100644 --- a/doc/board/sipeed/maix.rst +++ b/doc/board/sipeed/maix.rst @@ -19,7 +19,7 @@ Currently, only the Sipeed MAIX BiT V2.0 (bitm) and Sipeed MAIXDUINO are supported, but the boards are fairly similar. Documentation for Maix boards is available from -`Sipeed's website <http://dl.sipeed.com/MAIX/HDK/>`_. +`Sipeed's website <https://dl.sipeed.com/MAIX/HDK/>`_. Documentation for the Kendryte K210 is available from `Kendryte's website <https://kendryte.com/downloads/>`_. However, hardware details are rather lacking, so most technical reference has been taken from the diff --git a/doc/board/sophgo/index.rst b/doc/board/sophgo/index.rst index 26dba4a4851..19c9a19b1d4 100644 --- a/doc/board/sophgo/index.rst +++ b/doc/board/sophgo/index.rst @@ -6,4 +6,5 @@ Sophgo :maxdepth: 1 milkv_duo + milkv_duo_256m licheerv_nano diff --git a/doc/board/sophgo/licheerv_nano.rst b/doc/board/sophgo/licheerv_nano.rst index a75c6a37dc5..a3b1171287d 100644 --- a/doc/board/sophgo/licheerv_nano.rst +++ b/doc/board/sophgo/licheerv_nano.rst @@ -43,9 +43,9 @@ To run u-boot.bin on top of FSBL, follow these steps: FSBL, OpenSBI, and U-Boot. Note that you will have to use the file cv181x.bin as the FSBL. -2. Place the generated fip.bin file into the FAT partition of the SD card. +4. Place the generated fip.bin file into the FAT partition of the SD card. -3. Insert the SD card into the board and power it on. +5. Insert the SD card into the board and power it on. The board will automatically execute the FSBL from the fip.bin file. Subsequently, it will transition to OpenSBI, and finally, OpenSBI will invoke diff --git a/doc/board/sophgo/milkv_duo_256m.rst b/doc/board/sophgo/milkv_duo_256m.rst new file mode 100644 index 00000000000..9e2cbddf4db --- /dev/null +++ b/doc/board/sophgo/milkv_duo_256m.rst @@ -0,0 +1,84 @@ +.. SPDX-License-Identifier: GPL-2.0+ + +Milk-V Duo 256M +=============== + +SG2002 RISC-V SoC +------------------ +The SG2002 is a high-performance, low-power 64-bit RISC-V/ARM SoC from Sophgo. + +Mainline support +---------------- +The support for following drivers are already enabled: + +1. ns16550 UART Driver. +2. Synopsys Designware MSHC Driver. +3. Synopsys Designware Ethernet Controller. + +Building +~~~~~~~~ +1. Add the RISC-V toolchain to your PATH. +2. Setup ARCH & cross compilation environment variable: + +.. code-block:: console + + export CROSS_COMPILE=<riscv64 toolchain prefix> + cd <U-Boot-dir> + make milkv_duo_256m_defconfig + make + +This will generate u-boot.bin + +Booting +~~~~~~~ +Currently, we rely on vendor FSBL (First Stage Boot Loader) to initialize the +clock and load OpenSBI and the u-boot image, then bootup from it. + +To run u-boot.bin on top of FSBL, follow these steps: + +1. Generate a compatible u-boot.bin using U-Boot with the Milk-V Duo 256M + default configuration. + +2. Use mainline OpenSBI with a newer version than 1.5 to generate fw_dynamic. + Use FDT_FW_PATH to point to sg2002-milkv-duo256m.dtb device tree file while + compiling fw_dynamic. Example: + +.. code-block:: console + + cd open-sbi + PLATFORM=generic FW_FDT_PATH=../u-boot/arch/riscv/dts/sg2002-milkv-duo256m.dtb make + +This will generate build/platform/generic/firmware/fw_dynamic.bin. + +3. Use the vendor-provided tool [1] to create a unified fip.bin file containing + FSBL, OpenSBI, and U-Boot. + Note that you will have to use the file cv181x.bin as the FSBL. + +4. Place the generated fip.bin file into the FAT partition of the SD card. + +5. Insert the SD card into the board and power it on. + +The board will automatically execute the FSBL from the fip.bin file. +Subsequently, it will transition to OpenSBI, and finally, OpenSBI will invoke +U-Boot. + +[1]: https://github.com/sophgo/fiptool + +Sample boot log from Milk-V 256M Duo board +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. code-block:: none + + U-Boot 2026.07-00002-g0b690770386f-dirty (Jul 07 2026 - 13:33:36 -0300)milkv_duo_256m + + DRAM: 256 MiB + Core: 20 devices, 13 uclasses, devicetree: separate + MMC: mmc@4310000: 0 + Loading Environment from nowhere... OK + In: serial@4140000 + Out: serial@4140000 + Err: serial@4140000 + Net: + Warning: ethernet@4070000 (eth0) using random MAC address - 0a:f3:23:40:7e:55 + eth0: ethernet@4070000 + Hit any key to stop autoboot: 0 + milkv_duo_256m# diff --git a/doc/board/spacemit/bananapi-f3.rst b/doc/board/spacemit/bananapi-f3.rst index f2220950a3a..1ece2ce9d02 100644 --- a/doc/board/spacemit/bananapi-f3.rst +++ b/doc/board/spacemit/bananapi-f3.rst @@ -29,7 +29,7 @@ built for SpacemiT K1 SoC as below: .. code-block:: console cd <U-Boot-dir> - make bananapi-f3_defconfig + make spacemit_k1_defconfig make OPENSBI=<OpenSBI-dir>/build/platform/generic/firmware/fw_dynamic.bin This will generate u-boot.itb diff --git a/doc/board/spacemit/index.rst b/doc/board/spacemit/index.rst index e7d3d94e459..a5e35ee12ab 100644 --- a/doc/board/spacemit/index.rst +++ b/doc/board/spacemit/index.rst @@ -6,4 +6,5 @@ SpacemiT :maxdepth: 1 bananapi-f3 + k1-spl diff --git a/doc/board/spacemit/k1-spl.rst b/doc/board/spacemit/k1-spl.rst new file mode 100644 index 00000000000..187eed56e8e --- /dev/null +++ b/doc/board/spacemit/k1-spl.rst @@ -0,0 +1,243 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +SpacemiT K1 SPL Build and Test Guide +===================================== + +This guide explains how to build and test U-Boot SPL on SpacemiT K1 based +boards. It covers building SPL with DDR initialization, generating the signed +FSBL image, and deploying via USB fastboot. + +Tested boards: Banana Pi BPI-F3, MusePi Pro. + +.. note:: + + The procedure described here loads SPL into SRAM via USB fastboot and + does not modify the on-board flash, so a power cycle restores the + board's normal boot path. + + At this stage of the patchset, SPL initializes DDR and then halts with + "SPL: Unsupported Boot Device!" because SPI NOR storage support is not + yet available in U-Boot proper. This document will be updated when + U-Boot stage support is ready. + +Prerequisites +~~~~~~~~~~~~~ + +- A SpacemiT K1 board with USB Type-C and UART access +- USB-to-UART adapter (3.3V TTL) +- ``minicom`` or equivalent serial terminal, configured at 115200 8N1 +- ``fastboot`` tool on the host + +Hardware Setup +~~~~~~~~~~~~~~ + +**1. UART Connection** + +Remove all other cables first, then attach UART. Connect a 3.3V +USB-to-UART cable to the board's UART header (J25 on the BPI-F3):: + + BPI-F3 top view + +--------------------------------------------------+ + | | + | J15: USB-C [====] [FDL] [PWR] [RST] | + | | + | | + | J25 (UART header) | + | [TXD] [RXD] [GND] | + +--------------------------------------------------+ + +After UART is connected, attach the USB Type-C cable to the OTG port +(J15 on BPI-F3) to power on. + +**2. Serial Console** + +.. code-block:: console + + $ minicom -D /dev/ttyUSB0 + +Default baudrate: 115200. + +Building U-Boot SPL +~~~~~~~~~~~~~~~~~~~~ + +**1. Obtain the DDR training firmware** + +The DDR training firmware is a proprietary binary provided by SpacemiT. It is +not included in U-Boot and must be downloaded separately from: + +https://github.com/spacemit-com/spacemit-firmware/tree/master/k1/v0.2 + +Download ``ddr_fw.bin`` from that directory. + +This binary is integrated into the SPL image at build time via the binman +framework. When the SPL image is loaded to SRAM (e.g., via USB fastboot), +the SPL executes the DDR firmware from SRAM to perform DDR initialization. + +**2. Obtain OpenSBI fw_dynamic.bin** + +Any pre-built ``fw_dynamic.bin`` is sufficient. Upstream OpenSBI +sources are at https://github.com/riscv-software-src/opensbi if you +need to build one. + +At this stage of the patchset, SPL halts before invoking OpenSBI, +but U-Boot's binman still packages ``fw_dynamic.bin`` into +``u-boot.itb`` and the build fails if it is missing. + +**3. Build SPL** + +.. code-block:: console + + $ export CROSS_COMPILE=riscv64-linux-gnu- + $ export ARCH=riscv + $ export DDR_FW_FILE=$(pwd)/ddr_fw.bin + $ export OPENSBI=/path/to/fw_dynamic.bin + $ make spacemit_k1_defconfig + $ make + +Output: ``u-boot-spl-ddr.bin`` in the build directory. This image contains the +SPL code and the DDR firmware blob packaged together via binman. + +.. note:: + + If ``DDR_FW_FILE`` is not set, the build completes with an empty + placeholder. The resulting SPL will boot but cannot initialize DDR. + +**4. Generate signed FSBL image** + +The K1 BootROM requires a signed first-stage bootloader (FSBL). The signing +tool (``tools/build_binary_file.py``) is in SpacemiT's vendor U-Boot repository: + +.. code-block:: console + + $ git clone -b k1-bl-v2.2.y https://gitee.com/spacemit-buildroot/uboot-2022.10 + +The script uses ``fsbl_ddr.json`` which may not exist by default. If +``fsbl_ddr.json`` does not exist in +``uboot-2022.10/board/spacemit/k1-x/configs/``, +create it by copying ``fsbl.json`` and replacing the reference to +``u-boot-spl.bin`` with ``u-boot-spl-ddr.bin``: + +.. code-block:: console + + $ cd uboot-2022.10/board/spacemit/k1-x/configs + $ cp fsbl.json fsbl_ddr.json + $ sed -i 's/u-boot-spl\.bin/u-boot-spl-ddr.bin/g' fsbl_ddr.json + +Create the ``fsbl.sh`` script below in the ``uboot-2022.10`` directory. +Update the path variables to match your local setup: + +.. code-block:: bash + + #!/bin/sh + MAINLINE_UBOOT_IMG_PATH="{your path}/u-boot" + MAINLINE_SPL_IMG_PATH="{your path}/u-boot/spl" + FSBL_PATH="{your path}/uboot-2022.10/spl_bin" + KEY_TOOL_PATH="{your path}/uboot-2022.10/tools" + CONFIG_PATH="{your path}/uboot-2022.10/board/spacemit/k1-x/configs" + + mkdir -p ${FSBL_PATH} + echo "Clean binaries in ${FSBL_PATH}" + rm -f ${FSBL_PATH}/u-boot-spl-ddr.bin + rm -f ${FSBL_PATH}/u-boot-spl.bin + + if [ ! -d ${MAINLINE_SPL_IMG_PATH} ]; then + MAINLINE_UBOOT_IMG_PATH="{your path}/build" + MAINLINE_SPL_IMG_PATH="{your path}/build/spl" + fi + + # The signing tool reads u-boot-spl-ddr.bin from the path declared in + # fsbl_ddr.json's "source" field, which is resolved relative to the + # JSON file's directory -- i.e. one level up from CONFIG_PATH, not + # FSBL_PATH. Stage the unsigned binary there before signing. + cp ${MAINLINE_UBOOT_IMG_PATH}/u-boot-spl-ddr.bin ${CONFIG_PATH}/../ + python3 ${KEY_TOOL_PATH}/build_binary_file.py \ + -c ${CONFIG_PATH}/fsbl_ddr.json \ + -o ${FSBL_PATH}/FSBL.bin + +Then run: + +.. code-block:: console + + $ chmod +x fsbl.sh + $ ./fsbl.sh + +Output: ``FSBL.bin`` in the ``spl_bin`` directory, ready for deployment. + +Deploying via USB Fastboot +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To enter BootROM fastboot mode: + +1. Power off the board by unplugging its power supply. +2. **Press and hold** the FDL button (called "Boot Key" on some boards; + see the board layout above for the BPI-F3). +3. While holding the button, use a USB cable to connect the OTG port to + your host. This cable is also used by fastboot to upload the firmware. +4. Release the button. + +On the host, ``fastboot devices`` should list the board:: + + dfu-device DFU download + +The serial console shows the BootROM's USB download handler trace, +including a line like:: + + usb2d_initialize : enter + +This indicates the board is ready to accept an image via USB. + +.. tip:: + + If you are worried about insufficient USB power, you can first plug + in the power, then release the button, and then plug in the USB + cable. + +On the host: + +.. code-block:: console + + $ sudo fastboot stage FSBL.bin + $ sudo fastboot continue + +Expected Output +~~~~~~~~~~~~~~~~ + +During successful SPL boot with DDR initialization, the serial console +shows output like:: + + <debug_uart> + + U-Boot SPL 2026.04-rc4-00430-g8b84b1ed8ea9 (May 08 2026 - 09:08:27 -0400) + Fail to detect board:-19 + vdd_core, value:900000 + vdd_1v8, value:1800000 + vdd_1v8_mmc, value:1800000 + DDR firmware: [0xc0815840]:0xf0227179, size:0x8d98 + DDR is ready + SPL: Unsupported Boot Device! + SPL: failed to boot from all boot devices + ### ERROR ### Please RESET the board ### + +To walk through the key lines: + +- ``DDR firmware: [...], size:0x8d98`` - DDR firmware loaded successfully +- ``DDR is ready`` - DDR initialization completed +- ``SPL: failed to boot from all boot devices`` - expected at this stage, + confirms that SPL with DDR init is working correctly + +If SPL hangs before printing DDR messages, verify that ``DDR_FW_FILE`` was set +during build and that ``ddr_fw.bin`` is not empty. + +.. tip:: + + To see verbose DDR training output from the DDR firmware (per-phase + training pass/fail logs), add ``#define DEBUG`` at the top of + ``board/spacemit/k1/spl.c`` and rebuild. SPL then passes ``puts`` as + the firmware's log callback; otherwise the callback is ``NULL`` and + the firmware runs silently. + +References +~~~~~~~~~~~ + +- `DDR firmware repository <https://github.com/spacemit-com/spacemit-firmware>`_ +- `SpacemiT vendor U-Boot (signing tool) <https://gitee.com/spacemit-buildroot/uboot-2022.10>`_ diff --git a/doc/board/st/stm32mp1.rst b/doc/board/st/stm32mp1.rst index 8cf71299233..203843a274b 100644 --- a/doc/board/st/stm32mp1.rst +++ b/doc/board/st/stm32mp1.rst @@ -572,7 +572,7 @@ Then you update the eMMC with the next U-Boot command : a) prepare GPT on eMMC, example with 3 partitions, fip, bootfs and roots:: - # setenv emmc_part "name=fip,size=4MiB;name=bootfs,type=linux,bootable,size=64MiB;name=rootfs,type=linux,size=512" + # env set emmc_part "name=fip,size=4MiB;name=bootfs,type=linux,bootable,size=64MiB;name=rootfs,type=linux,size=512" # gpt write mmc 1 ${emmc_part} b) copy FSBL, TF-A_ or SPL, on first eMMC boot partition diff --git a/doc/board/starfive/deepcomputing_fml13v01.rst b/doc/board/starfive/deepcomputing_fml13v01.rst index 9777f4c6303..51feb06772f 100644 --- a/doc/board/starfive/deepcomputing_fml13v01.rst +++ b/doc/board/starfive/deepcomputing_fml13v01.rst @@ -23,7 +23,7 @@ environment .. code-block:: console - setenv fdtfile my_device-tree.dtb + env set fdtfile my_device-tree.dtb env save Power switch diff --git a/doc/board/starfive/jh7110_common.rst b/doc/board/starfive/jh7110_common.rst index e9c0ed5b022..013bab50045 100644 --- a/doc/board/starfive/jh7110_common.rst +++ b/doc/board/starfive/jh7110_common.rst @@ -170,7 +170,7 @@ Build U-Boot .. code-block:: console - git clone https://source.denx.de/u-boot/u-boot.git u-boot.git + git clone https://git.u-boot-project.org/u-boot/u-boot.git u-boot.git make -C u-boot.git O=u-boot starfive_visionfive2_defconfig make -C u-boot.git O=u-boot OPENSBI=opensbi/platform/generic/firmware/fw_dynamic.bin diff --git a/doc/board/starfive/milk-v_mars.rst b/doc/board/starfive/milk-v_mars.rst index 0dbc500b734..bb3fb4a9aee 100644 --- a/doc/board/starfive/milk-v_mars.rst +++ b/doc/board/starfive/milk-v_mars.rst @@ -19,7 +19,7 @@ environment :: - setenv fdtfile my_device-tree.dtb + env set fdtfile my_device-tree.dtb env save or the configuration variable CONFIG_DEFAULT_FDT_FILE can be used to set to diff --git a/doc/board/starfive/visionfive2.rst b/doc/board/starfive/visionfive2.rst index c92ea16f91b..f3e6544980b 100644 --- a/doc/board/starfive/visionfive2.rst +++ b/doc/board/starfive/visionfive2.rst @@ -18,7 +18,7 @@ environment :: - setenv fdtfile my_device-tree.dtb + env set fdtfile my_device-tree.dtb env save or the configuration variable CONFIG_DEFAULT_FDT_FILE can be used to provide diff --git a/doc/board/tbs/tbs2910.rst b/doc/board/tbs/tbs2910.rst index 9d4be61783e..4f2838bc9bd 100644 --- a/doc/board/tbs/tbs2910.rst +++ b/doc/board/tbs/tbs2910.rst @@ -187,5 +187,5 @@ Links: ------ - https://www.tbsdtv.com/download/document/tbs2910/TBS2910-Matrix-ARM-mini-PC-SCH_rev2.1.pdf - The schematics for the revision 2.1 of the TBS2910 Matrix ARM miniPC. - - https://cache.freescale.com/files/32bit/doc/ref_manual/IMX6DQRM.pdf - The + - https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/i-MX-6DQ-Reference-Manual-IMX6DQRM-R2-Part-1/ta-p/1115983 - The SoC reference manual for additional details on the BOOT_CFG registers. diff --git a/doc/board/thead/lpi4a.rst b/doc/board/thead/lpi4a.rst index acd7ac2698d..3920efcd710 100644 --- a/doc/board/thead/lpi4a.rst +++ b/doc/board/thead/lpi4a.rst @@ -91,8 +91,10 @@ OpenSBI firmware and proper U-Boot. Booting ~~~~~~~ -u-boot-with-spl.bin should be loaded to SRAM through fastboot. Connect -the board to computer with Type-C cable and run +u-boot-with-spl.bin should be loaded to SRAM through fastboot. + +To put the board in fastboot mode, press and hold the ``BOOT`` button, +connect the board to the computer with a Type-C cable, release ``BOOT`` and run: .. code-block:: bash diff --git a/doc/board/ti/am62ax_sk.rst b/doc/board/ti/am62ax_sk.rst index 6f3432f7895..3453ed339e7 100644 --- a/doc/board/ti/am62ax_sk.rst +++ b/doc/board/ti/am62ax_sk.rst @@ -185,7 +185,202 @@ https://www.ti.com/lit/pdf/spruj16 under the `Boot Mode Pins` section. - 00000000 - 11001010 -For SW2 and SW1, the switch state in the "ON" position = 1. + * - Ethernet + - 00110000 + - 11000100 + +For SW3 and SW2, the switch state in the "ON" position = 1. + +Ethernet based boot +------------------- + +To boot the board via Ethernet, configure the BOOT MODE pins for Ethernet boot. + +On powering on the device, ROM uses the Ethernet Port corresponding to CPSW3G's MAC +Port 1 to transmit "TI K3 Bootp Boot". + +The TFTP server and DHCP server on the receiver device need to be configured such +that VCI string "TI K3 Bootp Boot" maps to the file `tiboot3.bin` and the TFTP +server should be capable of transferring it to the device. + +**Configuring DHCP server includes following steps:** + +* Install DHCP server: + +.. prompt:: bash $ + + sudo apt install isc-dhcp-server + +* Disable services before configuring: + +.. prompt:: bash $ + + sudo systemctl disable --now isc-dhcp-server.service isc-dhcp-server6.service + +* DHCP server setup + +Run the ip link or ifconfig command to find the name of your network interface: + +Example + +.. code-block:: + + eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 + inet 10.0.0.5 netmask 255.255.255.0 broadcast 10.0.0.255 + inet6 fe80::1a2b:3c4d:5e6f:7a8b prefixlen 64 scopeid 0x20<link> + ether aa:bb:cc:dd:ee:ff txqueuelen 1000 (Ethernet) + RX packets 100000 bytes 120000000 (120.0 MB) + RX errors 0 dropped 0 overruns 0 frame 0 + TX packets 50000 bytes 6000000 (6.0 MB) + TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 + + enx001122334455: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 + ether 00:11:22:33:44:55 txqueuelen 1000 (Ethernet) + RX packets 200 bytes 64000 (64.0 KB) + RX errors 0 dropped 0 overruns 0 frame 0 + TX packets 150 bytes 20000 (20.0 KB) + TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 + + lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 + inet 127.0.0.1 netmask 255.0.0.0 + inet6 ::1 prefixlen 128 scopeid 0x10<host> + loop txqueuelen 1000 (Local Loopback) + RX packets 10000 bytes 800000 (800.0 KB) + RX errors 0 dropped 0 overruns 0 frame 0 + TX packets 10000 bytes 800000 (800.0 KB) + TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 + +Suppose we are using enx001122334455 interface, one end of it is connected to host PC +and other to board. + +* Do the following changes in /etc/dhcp/dhcpd.conf in host PC. + +.. code-block:: + + subnet 192.168.0.0 netmask 255.255.254.0 + { + range dynamic-bootp 192.168.0.2 192.168.0.5; + if substring (option vendor-class-identifier, 0, 16) = "TI K3 Bootp Boot" + { + filename "tiboot3.bin"; + } elsif substring (option vendor-class-identifier, 0, 20) = "AM62AX U-Boot R5 SPL" + { + filename "tispl.bin"; + } elsif substring (option vendor-class-identifier, 0, 21) = "AM62AX U-Boot A53 SPL" + { + filename "u-boot.img"; + } + default-lease-time 60000; + max-lease-time 720000; + next-server 192.168.0.1; + } + +* Do following changes in /etc/default/isc-dhcp-server + +.. code-block:: + + DHCPDv4_CONF=/etc/dhcp/dhcpd.conf + INTERFACESv4="enx001122334455" + INTERFACESv6="" + +* For your interface change ip address and netmask to next-server and your netmask + +.. prompt:: bash $ + + sudo ifconfig enx001122334455 192.168.0.1 netmask 255.255.254.0 + +* Enable DHCP + +.. prompt:: bash $ + + sudo systemctl enable --now isc-dhcp-server + +* To see if there is any configuration error or if dhcp is running run + +.. prompt:: bash $ + + sudo service isc-dhcp-server status + # If it shows error then something is wrong with configuration + +**For TFTP setup follow below steps:** + +* Install TFTP server: + +.. prompt:: bash $ + + sudo apt install tftpd-hpa + +tftpd-hpa package should be installed. + +Now, check whether the tftpd-hpa service is running with the following command: + +.. prompt:: bash $ + + sudo systemctl status tftpd-hpa + +* Configuring TFTP server: + +The default configuration file of tftpd-hpa server is /etc/default/tftpd-hpa. +If you want to configure the TFTP server, then you have to modify this configuration +file and restart the tftpd-hpa service afterword. + +To modify the /etc/default/tftpd-hpa configuration file, run the following command + +.. prompt:: bash $ + + sudo vim /etc/default/tftpd-hpa + +Configuration file may contain following configuration options by default: + +.. code-block:: + + # /etc/default/tftpd-hpa + + TFTP_USERNAME="tftp" + TFTP_DIRECTORY="/var/lib/tftpboot" + TFTP_ADDRESS=":69" + TFTP_OPTIONS="--secure" + +Now change the **TFTP_DIRECTORY** to **/tftp** and add the **--create** option to the +**TFTP_OPTIONS**. Without the **--create** option, you won't be able to create or upload +new files to the TFTP server. You will only be able to update existing files. + +After above changes /etc/default/tftpd-hpa file would look like this: + +.. code-block:: + + # /etc/default/tftpd-hpa + + TFTP_USERNAME="tftp" + TFTP_DIRECTORY="/tftp" + TFTP_ADDRESS=":69" + TFTP_OPTIONS="--secure --create" + +Since we have configured tftp directory as /tftp, put tiboot3.bin, tispl.bin +and u-boot.img after building it using sdk or manually cloning all the repos. + +To build binaries use following defconfig files: + +.. code-block:: + + am62ax_evm_r5_ethboot_defconfig + am62ax_evm_a53_ethboot_defconfig + +`tiboot3.bin` is expected to be built from `am62ax_evm_r5_ethboot_defconfig` and +`tispl.bin` and `u-boot.img` are expected to be built from +`am62ax_evm_a53_ethboot_defconfig`. + +Images should get fetched in following sequence as a part of boot procedure: + +.. code-block:: + + tiboot3.bin => tispl.bin => u-boot.img + +ROM loads and executes `tiboot3.bin` provided by the TFTP server. + +Next, based on NET_VCI_STRING string mentioned in respective defconfig file `tiboot3.bin` +fetches `tispl.bin` and then `tispl.bin` fetches `u-boot.img` from TFTP server which +completes Ethernet boot on the device. Falcon Mode ----------- diff --git a/doc/board/ti/am65x_evm.rst b/doc/board/ti/am65x_evm.rst index 60b08ceebf0..73ceef2e531 100644 --- a/doc/board/ti/am65x_evm.rst +++ b/doc/board/ti/am65x_evm.rst @@ -201,8 +201,8 @@ To boot kernel from eMMC, use the following commands: .. prompt:: bash => - setenv mmcdev 0 - setenv bootpart 0 + env set mmcdev 0 + env set bootpart 0 boot OSPI: @@ -240,7 +240,7 @@ To boot kernel from OSPI, at the U-Boot prompt: .. prompt:: bash => - setenv boot ubi + env set boot ubi boot UART: diff --git a/doc/board/ti/dra7xx_evm.rst b/doc/board/ti/dra7xx_evm.rst index 8e5d95535fa..9ef94e2ea00 100644 --- a/doc/board/ti/dra7xx_evm.rst +++ b/doc/board/ti/dra7xx_evm.rst @@ -73,7 +73,7 @@ set boot0 as the boot device. .. prompt:: bash => - setenv autoload no + env set autoload no usb start dhcp mmc dev 1 1 diff --git a/doc/board/ti/k3.rst b/doc/board/ti/k3.rst index 21973d53b15..d3ecaf59909 100644 --- a/doc/board/ti/k3.rst +++ b/doc/board/ti/k3.rst @@ -170,7 +170,7 @@ online * **Das U-Boot** - | **source:** https://source.denx.de/u-boot/u-boot.git + | **source:** https://git.u-boot-project.org/u-boot/u-boot.git | **branch:** master * **Trusted Firmware-A (TF-A)** diff --git a/doc/board/ti/ks2_evm.rst b/doc/board/ti/ks2_evm.rst index 16c2e57d09d..c6e9d969f3c 100644 --- a/doc/board/ti/ks2_evm.rst +++ b/doc/board/ti/ks2_evm.rst @@ -198,8 +198,8 @@ instructions: .. prompt:: bash => - setenv addr_uboot 0x87000000 - setenv filesize <size in hex of u-boot-spi.gph rounded to hex 0x10000> + env set addr_uboot 0x87000000 + env set filesize <size in hex of u-boot-spi.gph rounded to hex 0x10000> run burn_uboot_spi Once U-Boot prompt is available, power off the EVM. Set the SW1 dip switch to @@ -226,7 +226,7 @@ instructions: .. prompt:: bash => - setenv filesize <size in hex of MLO rounded to hex 0x10000> + env set filesize <size in hex of MLO rounded to hex 0x10000> run burn_uboot_nand Once U-Boot prompt is available, Power OFF the EVM. Set the SW1 dip switch to diff --git a/doc/board/tq/tqma6ul.rst b/doc/board/tq/tqma6ul.rst index 2b346715642..1928963bf14 100644 --- a/doc/board/tq/tqma6ul.rst +++ b/doc/board/tq/tqma6ul.rst @@ -49,7 +49,7 @@ U-Boot generic environment variable ``ethact``. .. code-block:: bash - setenv ethact <FEC> + env set ethact <FEC> *********** Boot source diff --git a/doc/board/xilinx/zynqmp-r5.rst b/doc/board/xilinx/zynqmp-r5.rst index 266d07d1193..d12c1e8774d 100644 --- a/doc/board/xilinx/zynqmp-r5.rst +++ b/doc/board/xilinx/zynqmp-r5.rst @@ -95,7 +95,7 @@ visible from the following log:: ZYNQ GEM: ff0e0000, mdio bus ff0e0000, phyaddr 12, interface rgmii-id eth0: ethernet@ff0e0000 Hit any key to stop autoboot: 0 - ZynqMP> setenv autoload no + ZynqMP> env set autoload no ZynqMP> dhcp BOOTP broadcast 1 DHCP client bound to address 192.168.0.167 (8 ms) @@ -114,7 +114,7 @@ visible from the following log:: 376 KiB/s done Bytes transferred = 2075464 (1fab48 hex) - ZynqMP> setenv autostart no + ZynqMP> env set autostart no ZynqMP> bootelf -p 20000000 ZynqMP> cpu 4 release 10000000 lockstep Using TCM jump trampoline for address 0x10000000 diff --git a/doc/build/gen_compile_commands.rst b/doc/build/gen_compile_commands.rst index 5eb9e4ccb0a..e67263eb82f 100644 --- a/doc/build/gen_compile_commands.rst +++ b/doc/build/gen_compile_commands.rst @@ -61,7 +61,7 @@ manage build configurations and code analysis. Some of these IDEs include: 3. **Qt Creator**: Qt Creator, a popular IDE for Qt development, also supports compile_commands.json for C/C++ projects. Instructions on how to use this feature can be found at - https://doc.qt.io/qtcreator/creator-clang-codemodel.html#using-compilation-databases. + https://doc.qt.io/qtcreator/creator-how-to-use-compilation-databases.html 4. **Eclipse CDT**: Eclipse's C/C++ Development Tools (CDT) can be configured to use JSON compilation databases for better project management. diff --git a/doc/build/source.rst b/doc/build/source.rst index d21ee055f33..8407945a13f 100644 --- a/doc/build/source.rst +++ b/doc/build/source.rst @@ -7,7 +7,7 @@ You can download the source via .. code-block:: bash - git clone https://source.denx.de/u-boot/u-boot.git + git clone https://git.u-boot-project.org/u-boot/u-boot.git A mirror of the source is maintained on Github diff --git a/doc/chromium/chainload.rst b/doc/chromium/chainload.rst index 0f61e020db8..6f8a134c94b 100644 --- a/doc/chromium/chainload.rst +++ b/doc/chromium/chainload.rst @@ -34,7 +34,7 @@ Snow (Samsung ARM Chromebook) See here: -https://www.chromium.org/chromium-os/firmware-porting-guide/using-nv-u-boot-on-the-samsung-arm-chromebook +https://chromium.googlesource.com/playground/chromium-org-site/+/refs/heads/main/chromium-os/firmware-porting-guide/using-nv-u-boot-on-the-samsung-arm-chromebook.md Nyan-big diff --git a/doc/chromium/overview.rst b/doc/chromium/overview.rst index 790233cb668..97e2777691c 100644 --- a/doc/chromium/overview.rst +++ b/doc/chromium/overview.rst @@ -13,7 +13,7 @@ available: - Running U-Boot from the 'altfw' feature, which is available on selected Chromebooks from 2019 onwards (initially Grunt). Press '1' from the developer-mode screen to get into U-Boot. See here for details: - https://chromium.googlesource.com/chromiumos/docs/+/HEAD/developer_mode.md + https://www.chromium.org/chromium-os/developer-library/guides/device/developer-mode/ - Running U-Boot from the disk partition. This involves signing U-Boot and placing it on the disk, for booting as a 'kernel'. See @@ -44,7 +44,7 @@ Here is some material relevant to Chromium OS verified boot with U-Boot: - Author: Simon Glass - Presented at Open Source Firmware Conference 2018, Erlangen - Describes the work in progress as at the end of 2018 - - Slides at `OSFC <https://2018.osfc.io/uploads/talk/paper/26/U-Boot_with_Chrome_OS_and_firmware_packaging.pdf>`_ + - Slides at `OSFC <https://pretalx.com/media/osfc2018/submissions/YBHYHA/resources/U-Boot_with_Chrome_OS_and_firmware_packaging_Rju11gX.pdf>`_ - `Youtube video 'OSFC - U-Boot with Chrome OS and firmware packaging' <https://www.youtube.com/watch?v=1jknxUvmwpo>`_ - "Verified Boot in Chrome OS and how to make it work for you" @@ -57,7 +57,7 @@ Here is some material relevant to Chromium OS verified boot with U-Boot: spring (`HP Chromebook 11 <https://www.cnet.com/products/hp-chromebook-11-g2-11-6-exynos-5250-4-gb-ram-16-gb-emmc/>`_) and pit/pi (`Samsung Chromebook 2 <https://www.cnet.com/products/samsung-chromebook-2-xe503c12-11-6-exynos-5-octa-4-gb-ram-16-gb-ssd/>`_ with Exynos 5 Octa 5420 in 2014). - - Slides at `Google research <https://research.google/pubs/pub42038/>`_ + - Slides at `Google research <https://elinux.org/images/0/05/Glass-chromeos_and_diy_vboot_0.pdf>`_ - `Youtube video 'Verified Boot on Chrome OS and How to do it yourself' <https://www.youtube.com/watch?v=kdpZC9jFzZA>`_ - "Chrome University 2018: Chrome OS Firmware and Verified Boot 201" @@ -71,4 +71,4 @@ Here is some material relevant to Chromium OS verified boot with U-Boot: - `Chromium OS U-Boot <https://www.chromium.org/developers/u-boot>`_ - - `Firmware porting Guide <https://www.chromium.org/chromium-os/firmware-porting-guide>`_ + - `Firmware porting Guide <https://www.chromium.org/chromium-os/developer-library/guides/firmware/firmware-porting-guide/>`_ diff --git a/doc/develop/bootstd/overview.rst b/doc/develop/bootstd/overview.rst index 397f6db18b4..cf8ef419d4b 100644 --- a/doc/develop/bootstd/overview.rst +++ b/doc/develop/bootstd/overview.rst @@ -152,7 +152,7 @@ boot_targets This environment variable can be used to control the list of bootdevs searched and their ordering, for example:: - setenv boot_targets "mmc0 mmc1 usb pxe" + env set boot_targets "mmc0 mmc1 usb pxe" Entries may be removed or re-ordered in this list to affect the boot order. If the variable is empty, the default ordering is used, based on the priority of @@ -169,7 +169,7 @@ used by the old distro scripts. This environment variable can be used to control the list of bootmeths used and their ordering for example:: - setenv bootmeths "extlinux efi" + env set bootmeths "extlinux efi" Entries may be removed or re-ordered in this list to affect the order the bootmeths are tried on each bootdev. If the variable is empty, the default @@ -882,7 +882,7 @@ Other ideas: .. _distro_bootcmd: https://github.com/u-boot/u-boot/blob/master/include/config_distro_bootcmd.h -.. _BootLoaderSpec: http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec/ -.. _distro_boot: https://github.com/u-boot/u-boot/blob/master/boot/distro.c +.. _BootLoaderSpec: https://uapi-group.org/specifications/specs/boot_loader_specification/ +.. _distro_boot: https://github.com/u-boot/u-boot/blob/v2023.04/boot/bootmeth_distro.c .. _bootflow_h: https://github.com/u-boot/u-boot/blob/master/include/bootflow.h .. _migrate_patch: https://patchwork.ozlabs.org/project/uboot/patch/[email protected]/ diff --git a/doc/develop/coccinelle.rst b/doc/develop/coccinelle.rst index 70274c3f5f5..d0ad803fc7b 100644 --- a/doc/develop/coccinelle.rst +++ b/doc/develop/coccinelle.rst @@ -34,7 +34,7 @@ of many distributions, e.g. : Some distribution packages are obsolete and it is recommended to use the latest version released from the Coccinelle homepage at -http://coccinelle.lip6.fr/ +https://coccinelle.gitlabpages.inria.fr/website/ Or from Github at: @@ -58,15 +58,9 @@ https://github.com/coccinelle/coccinelle/blob/master/install.txt Supplemental documentation -------------------------- -For supplemental documentation refer to the wiki: - -https://bottest.wiki.kernel.org/coccicheck - -The wiki documentation always refers to the linux-next version of the script. - For Semantic Patch Language(SmPL) grammar documentation refer to: -http://coccinelle.lip6.fr/documentation.php +https://coccinelle.gitlabpages.inria.fr/website/documentation.html Using Coccinelle on the Linux kernel ------------------------------------ diff --git a/doc/develop/distro.rst b/doc/develop/distro.rst index 01efce40a29..5e906750119 100644 --- a/doc/develop/distro.rst +++ b/doc/develop/distro.rst @@ -384,22 +384,22 @@ boot_scripts: scan_dev_for_extlinux: If you want to disable extlinux.conf on all disks, set the value to something - innocuous, e.g. setenv scan_dev_for_extlinux true. + innocuous, e.g. env set scan_dev_for_extlinux true. scan_dev_for_scripts: If you want to disable boot.scr on all disks, set the value to something - innocuous, e.g. setenv scan_dev_for_scripts true. + innocuous, e.g. env set scan_dev_for_scripts true. boot_net_usb_start: If you want to prevent USB enumeration by distro boot commands which execute - network operations, set the value to something innocuous, e.g. setenv + network operations, set the value to something innocuous, e.g. env set boot_net_usb_start true. This would be useful if you know your Ethernet device is not attached to USB, and you wish to increase boot speed by avoiding unnecessary actions. boot_net_pci_enum: If you want to prevent PCI enumeration by distro boot commands which execute - network operations, set the value to something innocuous, e.g. setenv + network operations, set the value to something innocuous, e.g. env set boot_net_pci_enum true. This would be useful if you know your Ethernet device is not attached to PCI, and you wish to increase boot speed by avoiding unnecessary actions. diff --git a/doc/develop/driver-model/fs_firmware_loader.rst b/doc/develop/driver-model/fs_firmware_loader.rst index 149b8b436ec..630daf636f1 100644 --- a/doc/develop/driver-model/fs_firmware_loader.rst +++ b/doc/develop/driver-model/fs_firmware_loader.rst @@ -6,7 +6,7 @@ File System Firmware Loader This is file system firmware loader for U-Boot framework, which has very close to some Linux Firmware API. For the details of Linux Firmware API, you can refer -to https://01.org/linuxgraphics/gfx-docs/drm/driver-api/firmware/index.html. +to https://docs.kernel.org/driver-api/firmware/index.html. File system firmware loader can be used to load whatever(firmware, image, and binary) from the storage device in file system format into target location diff --git a/doc/develop/driver-model/serial-howto.rst b/doc/develop/driver-model/serial-howto.rst index 17b53e3cabf..8ca9a016f9a 100644 --- a/doc/develop/driver-model/serial-howto.rst +++ b/doc/develop/driver-model/serial-howto.rst @@ -97,8 +97,8 @@ Here are some things you might need to consider: uart2: uart2 { uart2_xfer: uart2-xfer { - rockchip,pins = <1 RK_PC2 RK_FUNC_2 &pcfg_pull_up>, - <1 RK_PC3 RK_FUNC_2 &pcfg_pull_none>; + rockchip,pins = <1 RK_PC2 2 &pcfg_pull_up>, + <1 RK_PC3 2 &pcfg_pull_none>; }; ... }; diff --git a/doc/develop/driver-model/virtio.rst b/doc/develop/driver-model/virtio.rst index 9a5e3240c3c..e5da9f4301c 100644 --- a/doc/develop/driver-model/virtio.rst +++ b/doc/develop/driver-model/virtio.rst @@ -284,5 +284,5 @@ for the remove method to be called before jumping to OS. 6. do funny stuff with the driver -.. _VirtIO: http://docs.oasis-open.org/virtio/virtio/v1.0/virtio-v1.0.pdf +.. _VirtIO: https://docs.oasis-open.org/virtio/virtio/v1.0/virtio-v1.0.pdf .. _QEMU: https://www.qemu.org diff --git a/doc/develop/process.rst b/doc/develop/process.rst index 3c783ed5a0e..8ade440d84b 100644 --- a/doc/develop/process.rst +++ b/doc/develop/process.rst @@ -236,7 +236,7 @@ Tooling There are a number of tools available to help custodians and contributors alike with their contributions. As a project we make use of -the Patchwork project hosted at `OzLabs <http://patchwork.ozlabs.org/>`__ +the Patchwork project hosted at `OzLabs <https://patchwork.ozlabs.org/>`__ and more discussion on how it is used from both a contributor as well as custodian point of view can be found :ref:`here <patchwork>`. diff --git a/doc/develop/pytest/test_fit_verity_sign.rst b/doc/develop/pytest/test_fit_verity_sign.rst new file mode 100644 index 00000000000..94a39b08952 --- /dev/null +++ b/doc/develop/pytest/test_fit_verity_sign.rst @@ -0,0 +1,10 @@ +.. SPDX-License-Identifier: GPL-2.0+ + +test_fit_verity_sign +==================== + +.. automodule:: test_fit_verity_sign + :synopsis: + :member-order: bysource + :members: + :undoc-members: diff --git a/doc/develop/pytest/usage.rst b/doc/develop/pytest/usage.rst index 6002244d608..a9b8b8bd610 100644 --- a/doc/develop/pytest/usage.rst +++ b/doc/develop/pytest/usage.rst @@ -411,7 +411,7 @@ The board can be switched off now. Examples '''''''' -https://source.denx.de/u-boot/u-boot-test-hooks contains some working example hook +https://git.u-boot-project.org/u-boot/u-boot-test-hooks contains some working example hook scripts, and may be useful as a reference when implementing hook scripts for your platform. These scripts are not considered part of U-Boot itself. diff --git a/doc/develop/release_cycle.rst b/doc/develop/release_cycle.rst index a454d343676..d6b2d22697d 100644 --- a/doc/develop/release_cycle.rst +++ b/doc/develop/release_cycle.rst @@ -55,10 +55,10 @@ Current Status * U-Boot v2026.07 was released on Monday, 06 July 2026. -* The Merge Window for the next release (|next_ver|) is **open** until the -rc1 +* The Merge Window for the next release (|next_ver|) is **closed** with the -rc1 release on Monday, 27 July 2026. -* The next branch is now **closed** until the -rc2 release on Monday, 10 +* The next branch is now **open** with the -rc2 release on Monday, 10 August 2026. * Release "|next_ver|" is scheduled for Monday, 05 October 2026. @@ -69,13 +69,13 @@ Future Releases .. The following commented out dates are for when release candidates are planned to be tagged. -.. For the next scheduled release, release candidates were made on: +For the next scheduled release, release candidates were made on: -.. * U-Boot |next_ver|-rc1 was released on Mon 27 July 2026. +* U-Boot |next_ver|-rc1 was released on Mon 27 July 2026. -.. * U-Boot |next_ver|-rc2 was released on Mon 10 August 2026. +* U-Boot |next_ver|-rc2 was released on Mon 10 August 2026. -.. * U-Boot |next_ver|-rc3 was released on Mon 24 August 2026. +* U-Boot |next_ver|-rc3 was released on Mon 24 August 2026. .. * U-Boot |next_ver|-rc4 was released on Mon 07 September 2026. @@ -96,7 +96,7 @@ Previous Releases ----------------- Note: these statistics are generated by our fork of `gitdm -<https://source.denx.de/u-boot/gitdm>`_, which was originally created by +<https://git.u-boot-project.org/u-boot/gitdm>`_, which was originally created by Jonathan Corbet. * :doc:`statistics/u-boot-stats-v2026.07` which was released on 06 July 2026. diff --git a/doc/develop/security.rst b/doc/develop/security.rst index 84b130646f3..ed652ec756e 100644 --- a/doc/develop/security.rst +++ b/doc/develop/security.rst @@ -11,7 +11,7 @@ Contact ------- The preferred initial point of contact is to send email to -`[email protected]` and use `scripts/get_maintainers.pl` to also include any +`[email protected]` and use `scripts/get_maintainers.pl` to also include any relevant custodians. In addition, Tom Rini should be contacted at diff --git a/doc/develop/sending_patches.rst b/doc/develop/sending_patches.rst index c3e0ef27824..b4f82eb18e1 100644 --- a/doc/develop/sending_patches.rst +++ b/doc/develop/sending_patches.rst @@ -5,7 +5,7 @@ Sending patches *Before you begin* to implement any new ideas or concepts it is always a good idea to present your plans on the `U-Boot mailing list -<https://lists.denx.de/listinfo/u-boot>`_. U-Boot supports a huge amount of +<https://lists.u-boot-project.org/mailman/listinfo/u-boot>`_. U-Boot supports a huge amount of very different systems, and it is often impossible for the individual developer to oversee the consequences of a specific change to all architectures. Discussing concepts early can help you to avoid spending effort on code which, @@ -15,7 +15,7 @@ resource - use it. Being familiar with the :doc:`process` is also important. A good introduction how to prepare for submitting patches can be found in the LWN article `How to Get Your Change Into the Linux Kernel -<http://lwn.net/Articles/139918/>`_ as the same rules apply to U-Boot, too. +<https://lwn.net/Articles/139918/>`_ as the same rules apply to U-Boot, too. .. _b4_contrib: @@ -25,7 +25,7 @@ Using b4 Use the `b4 <https://b4.docs.kernel.org/en/latest/>`__ tool to prepare and send your patches. b4 has become the preferred tool to sending patches for many Linux kernel contributors, and U-Boot ships with a ready-to-use ``.b4-config`` that -targets ``[email protected]`` and integrates with ``scripts/get_maintainer.pl`` +targets ``[email protected]`` and integrates with ``scripts/get_maintainer.pl`` for recipient discovery. Start a topical series with ``b4 prep`` and keep the commits organised with @@ -51,7 +51,7 @@ additional runs. When the series is ready, use ``b4 send``. Begin with ``--dry-run`` to review the generated emails and ``--reflect`` to copy yourself for records before -dispatching to ``[email protected]``. +dispatching to ``[email protected]``. .. code-block:: bash @@ -86,8 +86,8 @@ patman now lives outside the U-Boot tree; install it with General Patch Submission Rules ------------------------------ -* All patches must be sent to the `[email protected] - <https://lists.denx.de/listinfo/u-boot>`_ mailing list. +* All patches must be sent to the `[email protected] + <https://lists.u-boot-project.org/mailman/listinfo/u-boot>`_ mailing list. * If your patch affects the code maintained by one of the :ref:`custodians`, CC them when emailing your patch. The easiest way to make sure you don't forget @@ -134,7 +134,7 @@ General Patch Submission Rules patches is by using the ``git format-patch`` command. For a patch that is fixing a bug or regression of some sort, please use the ``master`` branch of the mainline U-Boot git repository located at - https://source.denx.de/u-boot/u-boot.git as reference. For new features, if + https://git.u-boot-project.org/u-boot/u-boot.git as reference. For new features, if the ``next`` branch has been opened (which happens with the release of ``-rc2``) that branch should be used, otherwise ``master`` is acceptable. @@ -142,10 +142,6 @@ General Patch Submission Rules like wrapping of longer lines etc. The best way to send patches is by not using your regular mail tool, but by using either ``git send-email`` or the ``git imap-send`` command instead. - If you believe you need to use a mailing list for testing (instead of any - regular mail address you own), we have a special test list for such purposes. - It would be best to subscribe to the list for the duration of your tests to - avoid repeated moderation - see https://lists.denx.de/listinfo/test * Choose a meaningful Subject: - keep in mind that the Subject will also be visible as headline of your commit message. Make sure the subject does not @@ -317,7 +313,7 @@ to observe the following rules. Note: it is *not* sufficient to provide a change log in some cover letter that gets sent as a separate message with the patch series. The reason is that such cover letters are not as easily reviewed in our `patchwork queue - <http://patchwork.ozlabs.org/project/uboot/list/>`_ so they are not helpful + <https://patchwork.ozlabs.org/project/uboot/list/>`_ so they are not helpful to any reviewers using this tool. Example:: From: Joe Hacker <[email protected]> @@ -353,15 +349,15 @@ posted before, look up the old threads, and then manually compare if anything has been changed, or what. If you have problems with your e-mail client, for example because it mangles -white space or wraps long lines, then please read this article about `Email -Clients and Patches <http://kerneltrap.org/Linux/Email_Clients_and_Patches>`_. +white space or wraps long lines, then please read this about `Email +Clients and Patches <https://docs.kernel.org/process/email-clients.html>`_. Notes ----- 1. U-Boot is Free Software that can redistributed and/or modified under the terms of the `GNU General Public License - <http://www.fsf.org/licensing/licenses/gpl.html>`_ (GPL). Currently (August + <https://www.gnu.org/licenses/old-licenses/gpl-2.0.html>`_ (GPL). Currently (August 2022) version 2 of the GPL applies. Please see :download:`Licensing <../../Licenses/README>` for details. To allow that later versions of U-Boot may be released under a later version of the GPL, all new code that gets @@ -384,12 +380,12 @@ Notes Patch Tracking -------------- -Like some other projects, U-Boot uses `Patchwork <http://patchwork.ozlabs.org/>`__ +Like some other projects, U-Boot uses `Patchwork <https://patchwork.ozlabs.org/>`__ to track the state of patches. This is one of the reasons why it is mandatory to submit all patches to the U-Boot mailing list - only then they will be picked up by patchwork. -At http://patchwork.ozlabs.org/project/uboot/list/ you can find the list of +At https://patchwork.ozlabs.org/project/uboot/list/ you can find the list of open U-Boot patches. By using the "Filters" link (Note: requires JavaScript) you can also select other views, for example, to include old patches that have, for example, already been applied or rejected. @@ -474,14 +470,13 @@ Apply patches ^^^^^^^^^^^^^ To apply a patch from the `patchwork queue -<http://patchwork.ozlabs.org/project/uboot/list/>`_ using ``git``, download the +<https://patchwork.ozlabs.org/project/uboot/list/>`_ using ``git``, download the mbox file and apply it using:: git am file -The `openembedded wiki <http://wiki.openembedded.net/>`_ also provides a script -named `pw-am.sh -<http://cgit.openembedded.org/cgit.cgi/openembedded/tree/contrib/patchwork/pw-am.sh>`_ +OpenEmbedded also provides a script named `pw-am.sh +<https://git.openembedded.org/openembedded/tree/contrib/patchwork/pw-am.sh>`_ which can be used to fetch an 'mbox' patch from patchwork and git am it:: usage: pw-am.sh <number> @@ -500,7 +495,7 @@ The `pwclient` command line tool can be used for example to retrieve patches, search the queue or update the state. All necessary information for `pwclient` is linked from the bottom of -http://patchwork.ozlabs.org/project/uboot/ +https://patchwork.ozlabs.org/project/uboot/ Use:: @@ -511,4 +506,4 @@ for an overview on how to use it. pwparser ^^^^^^^^ -See http://www.mail-archive.com/[email protected]/msg00057.html +See https://lists.ozlabs.org/pipermail/patchwork/2010-January/000186.html diff --git a/doc/develop/tests_writing.rst b/doc/develop/tests_writing.rst index 1a020caa411..1a6d13f6c7c 100644 --- a/doc/develop/tests_writing.rst +++ b/doc/develop/tests_writing.rst @@ -236,7 +236,7 @@ Include ``test/ut.h`` defines a number of macros to check values and to return from the test function if the assertion fails. See :doc:`../api/test` for details. -[1] https://gitlab.denx.de/u-boot/u-boot/-/commit/9fe064646d2 +[1] https://git.u-boot-project.org/u-boot/u-boot/-/commit/9fe064646d Add a new driver model test @@ -282,7 +282,7 @@ implementations work as expected. Example commit: c48cb7ebfb4 ("sandbox: add ADC unit tests") [1] -[1] https://gitlab.denx.de/u-boot/u-boot/-/commit/c48cb7ebfb4 +[1] https://git.u-boot-project.org/u-boot/u-boot/-/commit/c48cb7ebfb4 Add a new test suite diff --git a/doc/develop/uefi/iscsi.rst b/doc/develop/uefi/iscsi.rst index 51d38cde243..104ef87705f 100644 --- a/doc/develop/uefi/iscsi.rst +++ b/doc/develop/uefi/iscsi.rst @@ -125,17 +125,17 @@ iPXE For running iPXE on arm64 the bin-arm64-efi/snp.efi build target is needed:: - git clone http://git.ipxe.org/ipxe.git + git clone https://github.com/ipxe/ipxe cd ipxe/src make bin-arm64-efi/snp.efi -j6 EMBED=myscript.ipxe The available commands for the boot script are documented at: -http://ipxe.org/cmd +https://ipxe.org/cmd Credentials are managed as environment variables. These are described here: -http://ipxe.org/cfg +https://ipxe.org/cfg iPXE by default will put the CPU to rest when waiting for input. U-Boot does not wake it up due to missing interrupt support. To avoid this behavior create diff --git a/doc/develop/uefi/u-boot_on_efi.rst b/doc/develop/uefi/u-boot_on_efi.rst index 177e887ebd9..883bd2b1451 100644 --- a/doc/develop/uefi/u-boot_on_efi.rst +++ b/doc/develop/uefi/u-boot_on_efi.rst @@ -300,9 +300,9 @@ Content of **boot.scr**: .. code-block:: bash ext4load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} ${prefix}Image - setenv kernel_size ${filesize} + env set kernel_size ${filesize} ext4load ${devtype} ${devnum}:${distro_bootpart} ${ramdisk_addr_r} ${prefix}Initrd - setenv initrd_size ${filesize} + env set initrd_size ${filesize} zboot ${kernel_addr_r} ${kernel_size} ${ramdisk_addr_r} ${initrd_size} Extlinux configuration diff --git a/doc/develop/uefi/uefi.rst b/doc/develop/uefi/uefi.rst index 3ca22b572a9..94ddf690440 100644 --- a/doc/develop/uefi/uefi.rst +++ b/doc/develop/uefi/uefi.rst @@ -170,11 +170,11 @@ Sign an image with one of the keys in "db" on your host Now in U-Boot install the keys on your board:: fatload mmc 0:1 <tmpaddr> PK.auth - setenv -e -nv -bs -rt -at -i <tmpaddr>:$filesize PK + env set -e -nv -bs -rt -at -i <tmpaddr>:$filesize PK fatload mmc 0:1 <tmpaddr> KEK.auth - setenv -e -nv -bs -rt -at -i <tmpaddr>:$filesize KEK + env set -e -nv -bs -rt -at -i <tmpaddr>:$filesize KEK fatload mmc 0:1 <tmpaddr> db.auth - setenv -e -nv -bs -rt -at -i <tmpaddr>:$filesize db + env set -e -nv -bs -rt -at -i <tmpaddr>:$filesize db Set up boot parameters on your board:: @@ -412,7 +412,7 @@ bit in OsIndications variable with .. code-block:: console - => setenv -e -nv -bs -rt -v OsIndications =0x0000000000000004 + => env set -e -nv -bs -rt -v OsIndications =0x0000000000000004 Since U-Boot doesn't currently support SetVariable at runtime, its value won't be taken over across the reboot. If this is the case, you can skip @@ -698,12 +698,12 @@ end up with "host not found". We need to preset the "httpserverip" environment variable to proceed the wget:: - setenv httpserverip 192.168.1.1 + env set httpserverip 192.168.1.1 UEFI HTTP(s) Boot using lwIP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Similar to the above U-Boot can do EFI HTTP boot using lwIP. If we combine this -with Mbed TLS we can also download from https:// +with Mbed TLS we can also download from HTTPS. HTTP(s) Boot can be activated by specifying:: @@ -789,7 +789,7 @@ If the environment variable is set to 'list' a list of all tests is shown. Below you can find the output of an example session:: - => setenv efi_selftest simple network protocol + => env set efi_selftest simple network protocol => bootefi selftest Testing EFI API implementation Selected test: 'simple network protocol' diff --git a/doc/device-tree-bindings/usb/mediatek,mtk-xhci.txt b/doc/device-tree-bindings/usb/mediatek,mtk-xhci.txt deleted file mode 100644 index e26e9618eb9..00000000000 --- a/doc/device-tree-bindings/usb/mediatek,mtk-xhci.txt +++ /dev/null @@ -1,46 +0,0 @@ -MediaTek xHCI - -The device node for USB3 host controller on MediaTek SoCs. - -Required properties: - - compatible : should be one of - "mediatek,mtk-xhci" - "mediatek,mt8195-xhci" - - reg : specifies physical base address and size of the registers - - reg-names: should be "mac" for xHCI MAC and "ippc" for IP port control - - power-domains : a phandle to USB power domain node to control USB's - MTCMOS - - vusb33-supply : regulator of USB avdd3.3v - - - clocks : a list of phandle + clock-specifier pairs, one for each - entry in clock-names - - clock-names : must contain - "sys_ck": controller clock used by normal mode, - the following ones are optional: - "ref_ck": reference clock used by low power mode etc, - "mcu_ck": mcu_bus clock for register access, - "dma_ck": dma_bus clock for data transfer by DMA, - "xhci_ck": controller clock - - - phys : list of all the USB PHYs on this HCD - - phy-names: name specifier for the USB PHY - -Optional properties: - - vbus-supply : reference to the VBUS regulator; - - mediatek,u3p-dis-msk : mask to disable u3ports, bit0 for u3port0, - bit1 for u3port1, ... etc; - - mediatek,u2p-dis-msk : mask to disable u2ports, bit0 for u2port0, - bit1 for u2port1, ... etc; - -Example: -xhci: usb@1a0c0000 { - compatible = "mediatek,mt7629-xhci", "mediatek,mtk-xhci"; - reg = <0x1a0c0000 0x1000>, <0x1a0c3e00 0x0100>; - reg-names = "mac", "ippc"; - power-domains = <&scpsys MT7629_POWER_DOMAIN_HIF1>; - clocks = <&ssusbsys CLK_SSUSB_SYS_EN>, <&ssusbsys CLK_SSUSB_REF_EN>, - <&ssusbsys CLK_SSUSB_MCU_EN>, <&ssusbsys CLK_SSUSB_DMA_EN>; - clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck"; - phys = <&u2port0 PHY_TYPE_USB2>, <&u3port0 PHY_TYPE_USB3>; - status = "disabled"; -}; diff --git a/doc/device-tree-bindings/usb/mediatek,mtu3.txt b/doc/device-tree-bindings/usb/mediatek,mtu3.txt deleted file mode 100644 index ab877bfa89f..00000000000 --- a/doc/device-tree-bindings/usb/mediatek,mtu3.txt +++ /dev/null @@ -1,79 +0,0 @@ -The device node for Mediatek USB3 DRD controller - -Required properties: - - compatible : should be "mediatek,<soc-model>-mtu3", "mediatek,mtu3", - soc-model is the name of SoC, such as mt8512 etc, - when using "mediatek,mtu3" compatible string, you need SoC specific - ones in addition, one of: - - "mediatek,mt8512-mtu3" - - reg : specifies physical base address and size of the registers - - reg-names: should be - - "ippc" : IP Port Control - - power-domains : a phandle to USB power domain node to control USB's MTCMOS - - clocks : a list of phandle + clock-specifier pairs, one for each - entry in clock-names - - clock-names : must contain "sys_ck" for clock of controller, - the following clocks are optional: - "ref_ck", "mcu_ck", "dma_ck" and "xhci_ck"; - - phys : list of all the USB PHYs on this HCD - - #address-cells, #size-cells : used for sub-nodes with 'reg' property - - ranges : allows valid 1:1 translation between child's address space and - parent's address space - -Optional properties: - - vusb33-supply : regulator of USB AVDD3.3v - - vbus-supply : regulator of VBUS 5v, needed when supports host mode. - -Sub-nodes: -Required properties: - - compatible : should be "mediatek,ssusb" - - reg : specifies physical base address and size of the registers - - reg-names: should be - - "mac" : SSUSB MAC, include xHCI and device - - interrupts : interrupt used by xHCI or device - - dr_mode : should be one of "host" or "peripheral", - see : usb/generic.txt - -Optional properties: - - pinctrl-names : a pinctrl state named "default" is optional - - pinctrl-0 : pin control group - See: pinctrl/pinctrl-bindings.txt - - - device mode: - - maximum-speed : valid arguments are "full-speed", "high-speed", - "super-speed" and "super-speed-plus", - see: usb/generic.txt - - mediatek,force-vbus : force vbus as valid by SW - - - host mode (dr_mode is "host"): - - mediatek,u3p-dis-msk : mask to disable u3ports, bit0 for u3port0, - bit1 for u3port1, ... etc; - -Example: -usb3: usb@11213e00 { - compatible = "mediatek,mt8512-mtu3", "mediatek,mtu3"; - reg = <0x11213e00 0x0100>; - reg-names = "ippc"; - phys = <&u2port0 PHY_TYPE_USB2>, <&u2port1 PHY_TYPE_USB2>; - power-domains = <&scpsys MT8512_POWER_DOMAIN_USB>; - clocks = <&infracfg CLK_INFRA_USB_SYS>, - <&topckgen CLK_TOP_SSUSB_TOP_CK_EN>, - <&infracfg CLK_INFRA_ICUSB>; - clock-names = "sys_ck", "ref_ck", "mcu_ck"; - vusb33-supply = <reg_3p3v>; - vbus-supply = <&usb_p0_vbus>; - #address-cells = <1>; - #size-cells = <1>; - ranges; - status = "disabled"; - - ssusb: usb@11210000 { - compatible = "mediatek,ssusb"; - reg = <0x11210000 0x3e00>; - interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_LOW>; - reg-names = "mac"; - dr_mode = "peripheral"; - maximum-speed = "high-speed"; - status = "disabled"; - }; -}; diff --git a/doc/git-mailrc b/doc/git-mailrc index 65626d89eac..5a78376aa77 100644 --- a/doc/git-mailrc +++ b/doc/git-mailrc @@ -5,7 +5,7 @@ # Then when sending patches, you can use: # git send-email --to u-boot --cc i2c ... -alias uboot [email protected] +alias uboot [email protected] alias u-boot uboot # Maintainer aliases. Use the same alias here as patchwork to keep @@ -17,7 +17,7 @@ alias ag Anatolij Gustschin <[email protected]> alias agraf Alexander Graf <[email protected]> alias alexnemirovsky Alex Nemirovsky <[email protected]> alias alisonwang Alison Wang <[email protected]> -alias angelo_ts Angelo Dureghello <[email protected]> +alias angelo_ts Angelo Dureghello <[email protected]> alias apritzel Andre Przywara <[email protected]> alias bmeng Bin Meng <[email protected]> alias danielschwierzeck Daniel Schwierzeck <[email protected]> diff --git a/doc/imx/habv4/guides/mx8m_spl_secure_boot.txt b/doc/imx/habv4/guides/mx8m_spl_secure_boot.txt index 1bea091344d..a3ebd397d82 100644 --- a/doc/imx/habv4/guides/mx8m_spl_secure_boot.txt +++ b/doc/imx/habv4/guides/mx8m_spl_secure_boot.txt @@ -167,17 +167,25 @@ The nxp-imx8mcst etype is configurable using either DT properties or environment variables. The following DT properties and environment variables are supported. Note that environment variables override DT properties. -+--------------------+-----------+------------------------------------------------------------------+ -| DT property | Variable | Description | -+====================+===========+==================================================================+ -| nxp,loader-address | | SPL base address | -+--------------------+-----------+------------------------------------------------------------------+ -| nxp,srk-table | SRK_TABLE | full path to SRK_1_2_3_4_table.bin | -+--------------------+-----------+------------------------------------------------------------------+ -| nxp,csf-crt | CSF_KEY | full path to the CSF Key CSF1_1_sha256_4096_65537_v3_usr_crt.pem | -+--------------------+-----------+------------------------------------------------------------------+ -| nxp,img-crt | IMG_KEY | full path to the IMG Key IMG1_1_sha256_4096_65537_v3_usr_crt.pem | -+--------------------+-----------+------------------------------------------------------------------+ ++--------------------+-------------+------------------------------------------------------------------+ +| DT property | Variable | Description | ++====================+=============+==================================================================+ +| nxp,loader-address | | SPL base address | ++--------------------+-------------+------------------------------------------------------------------+ +| nxp,srk-table | SRK_TABLE | full path to SRK_1_2_3_4_table.bin | ++--------------------+-------------+------------------------------------------------------------------+ +| nxp,csf-crt | CSF_KEY | full path to the CSF Key CSF1_1_sha256_4096_65537_v3_usr_crt.pem | ++--------------------+-------------+------------------------------------------------------------------+ +| nxp,img-crt | IMG_KEY | full path to the IMG Key IMG1_1_sha256_4096_65537_v3_usr_crt.pem | ++--------------------+-------------+------------------------------------------------------------------+ +| nxp,fast-auth | | enable fast authentication method | ++--------------------+-------------+------------------------------------------------------------------+ +| nxp,srk-crt | SRK_KEY | full path to the SRK Key SRK1_sha256_4096_65537_v3_ca_crt.pem | ++--------------------+-------------+------------------------------------------------------------------+ +| nxp,unlock | | unlock CAAM in SPL | ++--------------------+-------------+------------------------------------------------------------------+ +| nxp,cst-backend | CST_BACKEND | CST tool backend, default is 'ssl', or selectable 'pkcs11' | ++--------------------+-------------+------------------------------------------------------------------+ Environment variables can be set as follows to point the build process to external key material: diff --git a/doc/index.rst b/doc/index.rst index 5d732ff7a54..7397baeee0a 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -9,7 +9,7 @@ This is the top level of the U-Boot's documentation tree. U-Boot documentation, like the U-Boot itself, is very much a work in progress; that is especially true as we work to integrate our many scattered documents into a coherent whole. Please note that improvements to the -documentation are welcome; join the U-Boot list at http://lists.denx.de +documentation are welcome; join the U-Boot list at https://lists.u-boot-project.org/mailman/listinfo/u-boot if you want to help out. .. toctree:: diff --git a/doc/learn/talks.rst b/doc/learn/talks.rst index d65e3b92be1..0eca2daf803 100644 --- a/doc/learn/talks.rst +++ b/doc/learn/talks.rst @@ -8,8 +8,7 @@ learn a bit about U-Boot: * `Tutorial: Introduction to the Embedded Boot Loader U-boot - Behan Webster, Converse in Code <https://www.youtube.com/watch?v=INWghYZH3hI>`__ - from Embedded Linux Conference 2020 - (`slides <https://cm.e-ale.org/2020/ELC2020/intro-to-u-boot/intro-to-u-boot-2020.pdf>`__). + from Embedded Linux Conference 2020. * `Recent Advances in U-Boot - Simon Glass, Google Inc. <https://www.youtube.com/watch?v=YlJBsVZJkDI>`__ diff --git a/doc/usage/cmd/askenv.rst b/doc/usage/cmd/askenv.rst index a8867ce4d26..0aebc70214f 100644 --- a/doc/usage/cmd/askenv.rst +++ b/doc/usage/cmd/askenv.rst @@ -44,7 +44,7 @@ Value of a environment variable env1 without message and size parameters: => askenv env1 Please enter 'env1': val1 - => printenv env1 + => env print env1 env1=val1 Value of a environment variable env2 with message and size parameters: @@ -53,7 +53,7 @@ Value of a environment variable env2 with message and size parameters: => askenv env2 Please type-in a value for env2: 10 Please type-in a value for env2: 1234567890123 - => printenv env2 + => env print env2 env2=1234567890 Value of a environment variable env3 with size parameter only: @@ -62,7 +62,7 @@ Value of a environment variable env3 with size parameter only: => askenv env3 10 Please enter 'env3': val3 - => printenv env3 + => env print env3 env3=val3 Configuration diff --git a/doc/usage/cmd/bootd.rst b/doc/usage/cmd/bootd.rst index 619cfb601a0..b76930ed929 100644 --- a/doc/usage/cmd/bootd.rst +++ b/doc/usage/cmd/bootd.rst @@ -24,13 +24,13 @@ Example :: - => setenv bootcmd 'echo Hello World' + => env set bootcmd 'echo Hello World' => bootd Hello World - => setenv bootcmd true + => env set bootcmd true => bootd; echo $? 0 - => setenv bootcmd false + => env set bootcmd false => bootd; echo $? 1 diff --git a/doc/usage/cmd/bootefi.rst b/doc/usage/cmd/bootefi.rst index 7c5448586b7..8b237fd75fb 100644 --- a/doc/usage/cmd/bootefi.rst +++ b/doc/usage/cmd/bootefi.rst @@ -48,7 +48,7 @@ or :: - setenv bootargs root=/dev/vda1 + env set bootargs root=/dev/vda1 load mmc 0:1 $fdt_addr_r dtb load mmc 0:1 $kernel_addr_r vmlinux load mmc 0:1 $initrd_addr_r intird @@ -117,7 +117,7 @@ the *bootefi hello* sub-command. A session might look like :: - => setenv bootargs 'Greetings to the world' + => env set bootargs 'Greetings to the world' => bootefi hello Booting /MemoryMapped(0x0,0x10001000,0x1000) Hello, world! @@ -140,7 +140,7 @@ To show a list of the available unit tests the value *list* can be used :: - => setenv efi_selftest list + => env set efi_selftest list => bootefi selftest Available tests: @@ -154,7 +154,7 @@ environment variable to match one of the listed identifiers :: - => setenv efi_selftest 'block image transfer' + => env set efi_selftest 'block image transfer' => bootefi selftest Some of the tests execute the ExitBootServices() UEFI boot service and will not diff --git a/doc/usage/cmd/booti.rst b/doc/usage/cmd/booti.rst index 313efb83cc6..c8e847eae22 100644 --- a/doc/usage/cmd/booti.rst +++ b/doc/usage/cmd/booti.rst @@ -77,8 +77,8 @@ Here is the boot log for the compressed kernel: :: - => setenv kernel_comp_addr_r 0x50000000 - => setenv kernel_comp_size 0x04000000 + => env set kernel_comp_addr_r 0x50000000 + => env set kernel_comp_size 0x04000000 => load mmc 0:1 $fdt_addr_r dtb-5.10.0-3-arm64 27530 bytes read in 6 ms (4.4 MiB/s) => load mmc 0:1 $kernel_addr_r vmlinuz-5.10.0-3-arm64.gz diff --git a/doc/usage/cmd/bootmenu.rst b/doc/usage/cmd/bootmenu.rst index cd5597bc646..e76e6a6cb6c 100644 --- a/doc/usage/cmd/bootmenu.rst +++ b/doc/usage/cmd/bootmenu.rst @@ -75,10 +75,10 @@ to the user. Example environment:: - setenv bootmenu_0 Boot 1. kernel=bootm 0x82000000 # Set first menu entry - setenv bootmenu_1 Boot 2. kernel=bootm 0x83000000 # Set second menu entry - setenv bootmenu_2 Reset board=reset # Set third menu entry - setenv bootmenu_3 U-Boot boot order=boot # Set fourth menu entry + env set bootmenu_0 Boot 1. kernel=bootm 0x82000000 # Set first menu entry + env set bootmenu_1 Boot 2. kernel=bootm 0x83000000 # Set second menu entry + env set bootmenu_2 Reset board=reset # Set third menu entry + env set bootmenu_3 U-Boot boot order=boot # Set fourth menu entry bootmenu 20 # Run bootmenu with autoboot delay 20s diff --git a/doc/usage/cmd/button.rst b/doc/usage/cmd/button.rst index 6c6794f31b8..0b58b91e8da 100644 --- a/doc/usage/cmd/button.rst +++ b/doc/usage/cmd/button.rst @@ -32,7 +32,7 @@ variable *status1* you would execute the commands :: button button1 - setenv status1 $? + env set status1 $? A list of all available buttons and their status can be displayed using diff --git a/doc/usage/cmd/cedit.rst b/doc/usage/cmd/cedit.rst index e54ea204b9f..40eb6a2cb54 100644 --- a/doc/usage/cmd/cedit.rst +++ b/doc/usage/cmd/cedit.rst @@ -75,8 +75,8 @@ cedit write_env Writes the settings to environment variables. For each menu item the selected ID and its text string are written, similar to: - setenv c.<name> <selected_id> - setenv c.<name>-str <selected_id's text string> + env set c.<name> <selected_id> + env set c.<name>-str <selected_id's text string> The `-v` flag enables verbose mode, where each variable is printed before it is set. diff --git a/doc/usage/cmd/config.rst b/doc/usage/cmd/config.rst new file mode 100644 index 00000000000..bd8aa65ddbc --- /dev/null +++ b/doc/usage/cmd/config.rst @@ -0,0 +1,40 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. index:: + single: config (command) + +config command +============== + +Synopsis +-------- + +:: + + config [<str>] + +Description +----------- + +The config command prints the `.config` file used when building U-Boot +to the console. Note that the `.config` file is usually several 1000 +lines long. + +If the optional argument is given, only lines containing that string +(case insensitively) are printed. That can be useful if one wants to +check whether a specific option is enabled, or just to limit the +output to the subsystem of interest. + +The `.config` file is stored inside the U-Boot binary in +gzip-compressed format. + +Examples +-------- + +.. code-block:: bash + + # Print the entire .config + config + + # Print all lines related to pinctrl + config pinctrl diff --git a/doc/usage/cmd/coninfo.rst b/doc/usage/cmd/coninfo.rst index a66cf90a27b..bbfbebb9dc2 100644 --- a/doc/usage/cmd/coninfo.rst +++ b/doc/usage/cmd/coninfo.rst @@ -36,7 +36,7 @@ Example | |-- stderr |-- serial (IO) |-- usbkbd (I) - => setenv stdin pl011@9000000,usbkbd + => env set stdin pl011@9000000,usbkbd => coninfo List of available devices |-- pl011@9000000 (IO) diff --git a/doc/usage/cmd/echo.rst b/doc/usage/cmd/echo.rst index ebc9ff5f843..b747e4b89ac 100644 --- a/doc/usage/cmd/echo.rst +++ b/doc/usage/cmd/echo.rst @@ -38,7 +38,7 @@ Observe how variables included in strings are handled: :: - => setenv var X; echo "a)" ${var} 'b)' '${var}' c) ${var} + => env set var X; echo "a)" ${var} 'b)' '${var}' c) ${var} a) X b) ${var} c) X => diff --git a/doc/usage/cmd/efi.rst b/doc/usage/cmd/efi.rst index b19d36188a9..62a2638feca 100644 --- a/doc/usage/cmd/efi.rst +++ b/doc/usage/cmd/efi.rst @@ -12,7 +12,7 @@ Synopsis :: - efi mem [all] + efi mem efi tables Description @@ -29,34 +29,26 @@ happened. efi mem ~~~~~~~ -This shows the EFI memory map, sorted in order of physical address. - -This is normally a very large table. To help reduce the amount of detritus, -boot-time memory is normally merged with conventional memory. Use the 'all' -argument to show everything. - -The fields are as follows: - -# - Entry number (sequentially from 0) +This shows the EFI memory map in the same format as the *efidebug memmap* +command. One line is printed per memory region with the following fields: Type - Memory type. EFI has a large number of memory types. The type is shown in - the format <n>:<name> where in is the format number in hex and <name> is the - name. - -Physical - Physical address - -Virtual - Virtual address + Memory type, named as in the UEFI specification without the leading + 'Efi' and the trailing 'Type', e.g. ConventionalMemory for + EfiConventionalMemory. -Size - Size of memory area in bytes +Start, End + Physical start and end address of the region. The virtual addresses of + the regions are not shown: the memory map is identity mapped when this + command can be used, i.e. before SetVirtualAddressMap() is called, so + the virtual address field of the memory map carries no information. Attributes - Shows a code for memory attributes. The key for this is shown below the - table. + The attributes of the region as a '|'-separated list of mnemonics, + e.g. UC for EFI_MEMORY_UC and RT for EFI_MEMORY_RUNTIME. When the + region carries ISA-specific attributes (EFI_MEMORY_ISA_VALID is set), + the ISA-specific field is shown as ISA=<value>. Attribute bits without + a mnemonic are shown as a hexadecimal value. efi tables ~~~~~~~~~~ @@ -72,142 +64,139 @@ Example :: => efi mem - EFI table at 0, memory map 000000001ad38b60, size 1260, key a79, version 1, descr. size 0x30 - # Type Physical Virtual Size Attributes - 0 7:conv 0000000000 0000000000 00000a0000 f - <gap> 00000a0000 0000060000 - 1 7:conv 0000100000 0000000000 0000700000 f - 2 a:acpi_nvs 0000800000 0000000000 0000008000 f - 3 7:conv 0000808000 0000000000 0000008000 f - 4 a:acpi_nvs 0000810000 0000000000 00000f0000 f - 5 7:conv 0000900000 0000000000 001efef000 f - 6 6:rt_data 001f8ef000 0000000000 0000100000 rf - 7 5:rt_code 001f9ef000 0000000000 0000100000 rf - 8 0:reserved 001faef000 0000000000 0000080000 f - 9 9:acpi_reclaim 001fb6f000 0000000000 0000010000 f - 10 a:acpi_nvs 001fb7f000 0000000000 0000080000 f - 11 7:conv 001fbff000 0000000000 0000359000 f - 12 6:rt_data 001ff58000 0000000000 0000020000 rf - 13 a:acpi_nvs 001ff78000 0000000000 0000088000 f - <gap> 0020000000 0090000000 - 14 0:reserved 00b0000000 0000000000 0010000000 1 - - Attributes key: - f: uncached, write-coalescing, write-through, write-back - rf: uncached, write-coalescing, write-through, write-back, needs runtime mapping - 1: uncached - *Some areas are merged (use 'all' to see) - - - => efi mem all - EFI table at 0, memory map 000000001ad38bb0, size 1260, key a79, version 1, descr. size 0x30 - # Type Physical Virtual Size Attributes - 0 3:bs_code 0000000000 0000000000 0000001000 f - 1 7:conv 0000001000 0000000000 000009f000 f - <gap> 00000a0000 0000060000 - 2 7:conv 0000100000 0000000000 0000700000 f - 3 a:acpi_nvs 0000800000 0000000000 0000008000 f - 4 7:conv 0000808000 0000000000 0000008000 f - 5 a:acpi_nvs 0000810000 0000000000 00000f0000 f - 6 4:bs_data 0000900000 0000000000 0000c00000 f - 7 7:conv 0001500000 0000000000 000aa36000 f - 8 2:loader_data 000bf36000 0000000000 0010000000 f - 9 4:bs_data 001bf36000 0000000000 0000020000 f - 10 7:conv 001bf56000 0000000000 00021e1000 f - 11 1:loader_code 001e137000 0000000000 00000c4000 f - 12 7:conv 001e1fb000 0000000000 000009b000 f - 13 1:loader_code 001e296000 0000000000 00000e2000 f - 14 7:conv 001e378000 0000000000 000005b000 f - 15 4:bs_data 001e3d3000 0000000000 000001e000 f - 16 7:conv 001e3f1000 0000000000 0000016000 f - 17 4:bs_data 001e407000 0000000000 0000016000 f - 18 2:loader_data 001e41d000 0000000000 0000002000 f - 19 4:bs_data 001e41f000 0000000000 0000828000 f - 20 3:bs_code 001ec47000 0000000000 0000045000 f - 21 4:bs_data 001ec8c000 0000000000 0000001000 f - 22 3:bs_code 001ec8d000 0000000000 000000e000 f - 23 4:bs_data 001ec9b000 0000000000 0000001000 f - 24 3:bs_code 001ec9c000 0000000000 000002c000 f - 25 4:bs_data 001ecc8000 0000000000 0000001000 f - 26 3:bs_code 001ecc9000 0000000000 000000c000 f - 27 4:bs_data 001ecd5000 0000000000 0000006000 f - 28 3:bs_code 001ecdb000 0000000000 0000014000 f - 29 4:bs_data 001ecef000 0000000000 0000001000 f - 30 3:bs_code 001ecf0000 0000000000 000005b000 f - 31 4:bs_data 001ed4b000 0000000000 000000b000 f - 32 3:bs_code 001ed56000 0000000000 0000024000 f - 33 4:bs_data 001ed7a000 0000000000 0000006000 f - 34 3:bs_code 001ed80000 0000000000 0000010000 f - 35 4:bs_data 001ed90000 0000000000 0000002000 f - 36 3:bs_code 001ed92000 0000000000 0000025000 f - 37 4:bs_data 001edb7000 0000000000 0000003000 f - 38 3:bs_code 001edba000 0000000000 0000011000 f - 39 4:bs_data 001edcb000 0000000000 0000008000 f - 40 3:bs_code 001edd3000 0000000000 000002d000 f - 41 4:bs_data 001ee00000 0000000000 0000201000 f - 42 3:bs_code 001f001000 0000000000 0000024000 f - 43 4:bs_data 001f025000 0000000000 0000002000 f - 44 3:bs_code 001f027000 0000000000 0000009000 f - 45 4:bs_data 001f030000 0000000000 0000005000 f - 46 3:bs_code 001f035000 0000000000 000002f000 f - 47 4:bs_data 001f064000 0000000000 0000001000 f - 48 3:bs_code 001f065000 0000000000 0000005000 f - 49 4:bs_data 001f06a000 0000000000 0000005000 f - 50 3:bs_code 001f06f000 0000000000 0000007000 f - 51 4:bs_data 001f076000 0000000000 0000007000 f - 52 3:bs_code 001f07d000 0000000000 000000d000 f - 53 4:bs_data 001f08a000 0000000000 0000001000 f - 54 3:bs_code 001f08b000 0000000000 0000006000 f - 55 4:bs_data 001f091000 0000000000 0000004000 f - 56 3:bs_code 001f095000 0000000000 000000d000 f - 57 4:bs_data 001f0a2000 0000000000 0000003000 f - 58 3:bs_code 001f0a5000 0000000000 0000026000 f - 59 4:bs_data 001f0cb000 0000000000 0000005000 f - 60 3:bs_code 001f0d0000 0000000000 0000019000 f - 61 4:bs_data 001f0e9000 0000000000 0000004000 f - 62 3:bs_code 001f0ed000 0000000000 0000024000 f - 63 4:bs_data 001f111000 0000000000 0000008000 f - 64 3:bs_code 001f119000 0000000000 000000b000 f - 65 4:bs_data 001f124000 0000000000 0000001000 f - 66 3:bs_code 001f125000 0000000000 0000002000 f - 67 4:bs_data 001f127000 0000000000 0000002000 f - 68 3:bs_code 001f129000 0000000000 0000009000 f - 69 4:bs_data 001f132000 0000000000 0000003000 f - 70 3:bs_code 001f135000 0000000000 0000005000 f - 71 4:bs_data 001f13a000 0000000000 0000003000 f - 72 3:bs_code 001f13d000 0000000000 0000005000 f - 73 4:bs_data 001f142000 0000000000 0000003000 f - 74 3:bs_code 001f145000 0000000000 0000011000 f - 75 4:bs_data 001f156000 0000000000 000000b000 f - 76 3:bs_code 001f161000 0000000000 0000009000 f - 77 4:bs_data 001f16a000 0000000000 0000400000 f - 78 3:bs_code 001f56a000 0000000000 0000006000 f - 79 4:bs_data 001f570000 0000000000 0000001000 f - 80 3:bs_code 001f571000 0000000000 0000001000 f - 81 4:bs_data 001f572000 0000000000 0000002000 f - 82 3:bs_code 001f574000 0000000000 0000017000 f - 83 4:bs_data 001f58b000 0000000000 0000364000 f - 84 6:rt_data 001f8ef000 0000000000 0000100000 rf - 85 5:rt_code 001f9ef000 0000000000 0000100000 rf - 86 0:reserved 001faef000 0000000000 0000080000 f - 87 9:acpi_reclaim 001fb6f000 0000000000 0000010000 f - 88 a:acpi_nvs 001fb7f000 0000000000 0000080000 f - 89 4:bs_data 001fbff000 0000000000 0000201000 f - 90 7:conv 001fe00000 0000000000 00000e8000 f - 91 4:bs_data 001fee8000 0000000000 0000020000 f - 92 3:bs_code 001ff08000 0000000000 0000026000 f - 93 4:bs_data 001ff2e000 0000000000 0000009000 f - 94 3:bs_code 001ff37000 0000000000 0000021000 f - 95 6:rt_data 001ff58000 0000000000 0000020000 rf - 96 a:acpi_nvs 001ff78000 0000000000 0000088000 f - <gap> 0020000000 0090000000 - 97 0:reserved 00b0000000 0000000000 0010000000 1 - - Attributes key: - f: uncached, write-coalescing, write-through, write-back - rf: uncached, write-coalescing, write-through, write-back, needs runtime mapping - 1: uncached - + EFI table at 0, memory map 000000001a977d90, size 1860, key 9e7, version 1, descr. size 0x30 + Type Start End Attributes + ======================= ================ ================ ========== + BootServicesCode 0000000000000000-0000000000001000 UC|WC|WT|WB + ConventionalMemory 0000000000001000-00000000000a0000 UC|WC|WT|WB + ConventionalMemory 0000000000100000-0000000000800000 UC|WC|WT|WB + ACPIMemoryNVS 0000000000800000-0000000000808000 UC|WC|WT|WB + ConventionalMemory 0000000000808000-000000000080b000 UC|WC|WT|WB + ACPIMemoryNVS 000000000080b000-000000000080c000 UC|WC|WT|WB + ConventionalMemory 000000000080c000-0000000000810000 UC|WC|WT|WB + ACPIMemoryNVS 0000000000810000-0000000000900000 UC|WC|WT|WB + BootServicesData 0000000000900000-0000000001780000 UC|WC|WT|WB + ConventionalMemory 0000000001780000-000000000bb75000 UC|WC|WT|WB + LoaderData 000000000bb75000-000000001bb75000 UC|WC|WT|WB + BootServicesData 000000001bb75000-000000001bb95000 UC|WC|WT|WB + ConventionalMemory 000000001bb95000-000000001dd24000 UC|WC|WT|WB + LoaderCode 000000001dd24000-000000001ddfe000 UC|WC|WT|WB + ConventionalMemory 000000001ddfe000-000000001de99000 UC|WC|WT|WB + BootServicesData 000000001de99000-000000001dea9000 UC|WC|WT|WB + LoaderData 000000001dea9000-000000001deac000 UC|WC|WT|WB + BootServicesData 000000001deac000-000000001e58e000 UC|WC|WT|WB + BootServicesCode 000000001e58e000-000000001e642000 UC|WC|WT|WB + BootServicesData 000000001e642000-000000001e672000 UC|WC|WT|WB + BootServicesCode 000000001e672000-000000001e753000 UC|WC|WT|WB + BootServicesData 000000001e753000-000000001e7b8000 UC|WC|WT|WB + BootServicesCode 000000001e7b8000-000000001e7c1000 UC|WC|WT|WB + BootServicesData 000000001e7c1000-000000001e7c6000 UC|WC|WT|WB + BootServicesCode 000000001e7c6000-000000001e7e6000 UC|WC|WT|WB + BootServicesData 000000001e7e6000-000000001e7e8000 UC|WC|WT|WB + BootServicesCode 000000001e7e8000-000000001e7f2000 UC|WC|WT|WB + BootServicesData 000000001e7f2000-000000001e7f3000 UC|WC|WT|WB + BootServicesCode 000000001e7f3000-000000001e7fb000 UC|WC|WT|WB + BootServicesData 000000001e7fb000-000000001e7fc000 UC|WC|WT|WB + BootServicesCode 000000001e7fc000-000000001e80c000 UC|WC|WT|WB + BootServicesData 000000001e80c000-000000001e80f000 UC|WC|WT|WB + BootServicesCode 000000001e80f000-000000001e812000 UC|WC|WT|WB + BootServicesData 000000001e812000-000000001e819000 UC|WC|WT|WB + BootServicesCode 000000001e819000-000000001e82b000 UC|WC|WT|WB + BootServicesData 000000001e82b000-000000001e834000 UC|WC|WT|WB + BootServicesCode 000000001e834000-000000001e842000 UC|WC|WT|WB + BootServicesData 000000001e842000-000000001e851000 UC|WC|WT|WB + BootServicesCode 000000001e851000-000000001e85c000 UC|WC|WT|WB + BootServicesData 000000001e85c000-000000001e867000 UC|WC|WT|WB + BootServicesCode 000000001e867000-000000001e87d000 UC|WC|WT|WB + BootServicesData 000000001e87d000-000000001e886000 UC|WC|WT|WB + BootServicesCode 000000001e886000-000000001e8aa000 UC|WC|WT|WB + BootServicesData 000000001e8aa000-000000001e8ad000 UC|WC|WT|WB + BootServicesCode 000000001e8ad000-000000001e8c1000 UC|WC|WT|WB + BootServicesData 000000001e8c1000-000000001e8c8000 UC|WC|WT|WB + BootServicesCode 000000001e8c8000-000000001e8e1000 UC|WC|WT|WB + BootServicesData 000000001e8e1000-000000001e8e4000 UC|WC|WT|WB + BootServicesCode 000000001e8e4000-000000001e8ea000 UC|WC|WT|WB + BootServicesData 000000001e8ea000-000000001e8ec000 UC|WC|WT|WB + BootServicesCode 000000001e8ec000-000000001e8ff000 UC|WC|WT|WB + BootServicesData 000000001e8ff000-000000001e904000 UC|WC|WT|WB + BootServicesCode 000000001e904000-000000001e91a000 UC|WC|WT|WB + BootServicesData 000000001e91a000-000000001e91c000 UC|WC|WT|WB + BootServicesCode 000000001e91c000-000000001e929000 UC|WC|WT|WB + BootServicesData 000000001e929000-000000001e92c000 UC|WC|WT|WB + BootServicesCode 000000001e92c000-000000001e932000 UC|WC|WT|WB + BootServicesData 000000001e932000-000000001e934000 UC|WC|WT|WB + BootServicesCode 000000001e934000-000000001e935000 UC|WC|WT|WB + BootServicesData 000000001e935000-000000001e936000 UC|WC|WT|WB + BootServicesCode 000000001e936000-000000001e93b000 UC|WC|WT|WB + BootServicesData 000000001e93b000-000000001e940000 UC|WC|WT|WB + BootServicesCode 000000001e940000-000000001e94c000 UC|WC|WT|WB + BootServicesData 000000001e94c000-000000001e94e000 UC|WC|WT|WB + BootServicesCode 000000001e94e000-000000001e96b000 UC|WC|WT|WB + BootServicesData 000000001e96b000-000000001e96c000 UC|WC|WT|WB + BootServicesCode 000000001e96c000-000000001e976000 UC|WC|WT|WB + BootServicesData 000000001e976000-000000001e977000 UC|WC|WT|WB + BootServicesCode 000000001e977000-000000001e978000 UC|WC|WT|WB + BootServicesData 000000001e978000-000000001e97a000 UC|WC|WT|WB + BootServicesCode 000000001e97a000-000000001e98f000 UC|WC|WT|WB + BootServicesData 000000001e98f000-000000001e992000 UC|WC|WT|WB + BootServicesCode 000000001e992000-000000001e994000 UC|WC|WT|WB + BootServicesData 000000001e994000-000000001e996000 UC|WC|WT|WB + BootServicesCode 000000001e996000-000000001e99d000 UC|WC|WT|WB + BootServicesData 000000001e99d000-000000001e9a4000 UC|WC|WT|WB + BootServicesCode 000000001e9a4000-000000001e9a8000 UC|WC|WT|WB + BootServicesData 000000001e9a8000-000000001e9ae000 UC|WC|WT|WB + BootServicesCode 000000001e9ae000-000000001e9b2000 UC|WC|WT|WB + BootServicesData 000000001e9b2000-000000001e9b4000 UC|WC|WT|WB + BootServicesCode 000000001e9b4000-000000001e9ef000 UC|WC|WT|WB + BootServicesData 000000001e9ef000-000000001e9f1000 UC|WC|WT|WB + BootServicesCode 000000001e9f1000-000000001e9f5000 UC|WC|WT|WB + BootServicesData 000000001e9f5000-000000001e9fd000 UC|WC|WT|WB + BootServicesCode 000000001e9fd000-000000001ea00000 UC|WC|WT|WB + BootServicesData 000000001ea00000-000000001ec02000 UC|WC|WT|WB + BootServicesCode 000000001ec02000-000000001ec0a000 UC|WC|WT|WB + BootServicesData 000000001ec0a000-000000001ec0f000 UC|WC|WT|WB + RuntimeServicesData 000000001ec0f000-000000001ecd0000 UC|WC|WT|WB|RT + BootServicesCode 000000001ecd0000-000000001ece5000 UC|WC|WT|WB + BootServicesData 000000001ece5000-000000001ece6000 UC|WC|WT|WB + BootServicesCode 000000001ece6000-000000001ecea000 UC|WC|WT|WB + BootServicesData 000000001ecea000-000000001eced000 UC|WC|WT|WB + BootServicesCode 000000001eced000-000000001ecf6000 UC|WC|WT|WB + BootServicesData 000000001ecf6000-000000001ecf7000 UC|WC|WT|WB + BootServicesCode 000000001ecf7000-000000001ecf8000 UC|WC|WT|WB + BootServicesData 000000001ecf8000-000000001ecfa000 UC|WC|WT|WB + BootServicesCode 000000001ecfa000-000000001ecfd000 UC|WC|WT|WB + BootServicesData 000000001ecfd000-000000001ecfe000 UC|WC|WT|WB + BootServicesCode 000000001ecfe000-000000001ecff000 UC|WC|WT|WB + BootServicesData 000000001ecff000-000000001ed00000 UC|WC|WT|WB + BootServicesCode 000000001ed00000-000000001ed16000 UC|WC|WT|WB + BootServicesData 000000001ed16000-000000001ed17000 UC|WC|WT|WB + BootServicesCode 000000001ed17000-000000001ed19000 UC|WC|WT|WB + BootServicesData 000000001ed19000-000000001ed2c000 UC|WC|WT|WB + BootServicesCode 000000001ed2c000-000000001ed2e000 UC|WC|WT|WB + BootServicesData 000000001ed2e000-000000001f12e000 UC|WC|WT|WB + BootServicesCode 000000001f12e000-000000001f132000 UC|WC|WT|WB + BootServicesData 000000001f132000-000000001f133000 UC|WC|WT|WB + BootServicesCode 000000001f133000-000000001f137000 UC|WC|WT|WB + BootServicesData 000000001f137000-000000001f13d000 UC|WC|WT|WB + BootServicesCode 000000001f13d000-000000001f147000 UC|WC|WT|WB + BootServicesData 000000001f147000-000000001f148000 UC|WC|WT|WB + BootServicesCode 000000001f148000-000000001f14d000 UC|WC|WT|WB + BootServicesData 000000001f14d000-000000001f4ed000 UC|WC|WT|WB + RuntimeServicesData 000000001f4ed000-000000001f5ed000 UC|WC|WT|WB|RT + RuntimeServicesCode 000000001f5ed000-000000001f6ed000 UC|WC|WT|WB|RT + ReservedMemory 000000001f6ed000-000000001f76d000 UC|WC|WT|WB + ACPIReclaimMemory 000000001f76d000-000000001f77f000 UC|WC|WT|WB + ACPIMemoryNVS 000000001f77f000-000000001f7ff000 UC|WC|WT|WB + BootServicesData 000000001f7ff000-000000001fe00000 UC|WC|WT|WB + ConventionalMemory 000000001fe00000-000000001fe77000 UC|WC|WT|WB + BootServicesData 000000001fe77000-000000001fe97000 UC|WC|WT|WB + BootServicesCode 000000001fe97000-000000001feca000 UC|WC|WT|WB + BootServicesData 000000001feca000-000000001fedb000 UC|WC|WT|WB + BootServicesCode 000000001fedb000-000000001fef4000 UC|WC|WT|WB + RuntimeServicesData 000000001fef4000-000000001ff78000 UC|WC|WT|WB|RT + ACPIMemoryNVS 000000001ff78000-0000000020000000 UC|WC|WT|WB + MemoryMappedIO 00000000ffc00000-0000000100000000 UC|RT + ReservedMemory 000000fd00000000-0000010000000000 => efi tables 000000001f8edf98 ee4e5898-3914-4259-9d6e-dc7bd79403cf EFI_LZMA_COMPRESSED diff --git a/doc/usage/cmd/eficonfig.rst b/doc/usage/cmd/eficonfig.rst index 83a3ebf4f0b..e9fc59a93f0 100644 --- a/doc/usage/cmd/eficonfig.rst +++ b/doc/usage/cmd/eficonfig.rst @@ -61,7 +61,7 @@ Auto boot with the UEFI Boot Option To do auto boot according to the UEFI BootOrder variable, add "bootefi bootmgr" entry as a default or first bootmenu entry:: - CONFIG_PREBOOT="setenv bootmenu_0 UEFI Boot Manager=bootefi bootmgr; setenv bootmenu_1 UEFI Maintenance Menu=eficonfig" + CONFIG_PREBOOT="env set bootmenu_0 UEFI Boot Manager=bootefi bootmgr; env set bootmenu_1 UEFI Maintenance Menu=eficonfig" UEFI Secure Boot Configuration '''''''''''''''''''''''''''''' @@ -84,7 +84,7 @@ If CONFIG_BOOTMENU_DISABLE_UBOOT_CONSOLE is enabled, the user can not enter U-Boot console. In this case, the bootmenu can be used to invoke "eficonfig":: CONFIG_USE_PREBOOT=y - CONFIG_PREBOOT="setenv bootmenu_0 UEFI Maintenance Menu=eficonfig" + CONFIG_PREBOOT="env set bootmenu_0 UEFI Maintenance Menu=eficonfig" The only way U-Boot can currently store EFI variables on a tamper resistant medium is via OP-TEE. The Kconfig option that enables that is:: diff --git a/doc/usage/cmd/exit.rst b/doc/usage/cmd/exit.rst index 2f250bf4bde..b41ca35ff17 100644 --- a/doc/usage/cmd/exit.rst +++ b/doc/usage/cmd/exit.rst @@ -19,8 +19,8 @@ If scripts are nested, only the innermost script is left. :: - => setenv inner 'echo entry inner; exit; echo inner done' - => setenv outer 'echo entry outer; run inner; echo outer done' + => env set inner 'echo entry inner; exit; echo inner done' + => env set outer 'echo entry outer; run inner; echo outer done' => run outer entry outer entry inner diff --git a/doc/usage/cmd/extension.rst b/doc/usage/cmd/extension.rst index fbe95aace79..97c48bfd78e 100644 --- a/doc/usage/cmd/extension.rst +++ b/doc/usage/cmd/extension.rst @@ -62,8 +62,8 @@ Usage example :: - => setenv extension_overlay_addr 0x88080000 - => setenv extension_overlay_cmd 'load mmc 0:1 ${extension_overlay_addr} /boot/${extension_overlay_name}' + => env set extension_overlay_addr 0x88080000 + => env set extension_overlay_cmd 'load mmc 0:1 ${extension_overlay_addr} /boot/${extension_overlay_name}' 3. Detect the plugged extension board diff --git a/doc/usage/cmd/for.rst b/doc/usage/cmd/for.rst index 729bd4db43c..3db3410a171 100644 --- a/doc/usage/cmd/for.rst +++ b/doc/usage/cmd/for.rst @@ -34,14 +34,14 @@ Example :: - => setenv c + => env set c => for c in 1 2 3; do echo item ${c}; done item 1 item 2 item 3 => echo ${c} 3 - => setenv c x + => env set c x => for c in 1 2 3; do echo item ${c}; done item x item x diff --git a/doc/usage/cmd/gpt.rst b/doc/usage/cmd/gpt.rst index 13e8783be9b..6afc634eb0a 100644 --- a/doc/usage/cmd/gpt.rst +++ b/doc/usage/cmd/gpt.rst @@ -179,7 +179,7 @@ Examples Create 6 partitions on a disk:: - => setenv gpt_parts 'uuid_disk=bec9fc2a-86c1-483d-8a0e-0109732277d7;\ + => env set gpt_parts 'uuid_disk=bec9fc2a-86c1-483d-8a0e-0109732277d7;\ name=boot,start=4M,size=128M,bootable,type=ebd0a0a2-b9e5-4433-87c0-68b6b72699c7;\ name=rootfs,size=3072M,type=0fc63daf-8483-4772-8e79-3d69d8477de4;\ name=system-data,size=512M,type=0fc63daf-8483-4772-8e79-3d69d8477de4;\ @@ -249,7 +249,7 @@ Swap the order of the 'boot' and 'rootfs' partition table entries:: Other example: a disk with known partition types:: - => setenv gpt_parts 'name=u-boot,size=32M,type=data;\ + => env set gpt_parts 'name=u-boot,size=32M,type=data;\ name=env,size=1M,type=u-boot-env; name=ESP,size=128M,type=system; name=rootfs,size=3072M,type=linux; diff --git a/doc/usage/cmd/imxtract.rst b/doc/usage/cmd/imxtract.rst index 1621a4a68b2..c631e328569 100644 --- a/doc/usage/cmd/imxtract.rst +++ b/doc/usage/cmd/imxtract.rst @@ -52,7 +52,7 @@ extraction. But correct hashes are still indicated in the output .. code-block:: console - => setenv verify no + => env set verify no => imxtract $loadaddr kernel-1 $kernel_addr_r ## Copying 'kernel-1' subimage from FIT image at 40200000 ... sha256+ sha512+ Loading part 0 ... OK @@ -62,7 +62,7 @@ With verify=yes incorrect hashes, signatures, or check sums stop the extraction. .. code-block:: console - => setenv verify yes + => env set verify yes => imxtract $loadaddr kernel-1 $kernel_addr_r ## Copying 'kernel-1' subimage from FIT image at 40200000 ... sha256 error! diff --git a/doc/usage/cmd/load.rst b/doc/usage/cmd/load.rst index bfa45c6f36c..bf2fffbed21 100644 --- a/doc/usage/cmd/load.rst +++ b/doc/usage/cmd/load.rst @@ -63,6 +63,39 @@ Example 16 bytes read in 1 ms (15.6 KiB/s) => +Null-block-device interfaces +---------------------------- + +A few ``<interface>`` values have no underlying block device. Their +filesystem implementations directly call a back-end (JTAG +debugger, UBI volume, host running U-Boot under sandbox, ...) and +ignore the ``<dev[:part]>`` field, which may be given as ``-``. So +``load <iface> - <addr> <filename>`` works. + +semihosting + Read files from the host filesystem of an attached JTAG debugger + using the ARM semihosting protocol. Useful with OpenOCD. + Built when ``CONFIG_SEMIHOSTING=y``. + +ubifs + Read files from a UBIFS volume that has already been attached + and mounted with the ``ubi part`` + ``ubifsmount`` commands. + Built when ``CONFIG_CMD_UBIFS=y``. + +sandbox + Read files from the host filesystem the sandbox binary is + running under. Available on sandbox builds. + +The ``<dev[:part]>`` argument is conventionally written as ``-`` for +these interfaces, to make it visible at the call site that the field +is unused. The filesystem layer never looks at it. + +Example:: + + => load semihosting - ${kernel_addr_r} kernel.itb + 9437184 bytes read in 412 ms (21.8 MiB/s) + => + Configuration ------------- diff --git a/doc/usage/cmd/mbr.rst b/doc/usage/cmd/mbr.rst index 925a1181055..351959c5097 100644 --- a/doc/usage/cmd/mbr.rst +++ b/doc/usage/cmd/mbr.rst @@ -43,7 +43,7 @@ volume'), some of the predefined sizes: :: - => setenv mbr_parts 'name=boot,start=4M,size=128M,bootable,id=0x0e; + => env set mbr_parts 'name=boot,start=4M,size=128M,bootable,id=0x0e; name=rootfs,size=3072M,id=0x83; name=system-data,size=512M,id=0x83; name=[ext],size=-,id=0x05; diff --git a/doc/usage/cmd/memsize.rst b/doc/usage/cmd/memsize.rst index 6e99d7c1d33..9ebeefc58fa 100644 --- a/doc/usage/cmd/memsize.rst +++ b/doc/usage/cmd/memsize.rst @@ -34,7 +34,7 @@ This second example shows assign ram size to environment variable: :: => memsize memsz - => printenv memsz + => env print memsz memsz=8192 Return value diff --git a/doc/usage/cmd/printenv.rst b/doc/usage/cmd/printenv.rst index dfdb3624934..08c63d7e885 100644 --- a/doc/usage/cmd/printenv.rst +++ b/doc/usage/cmd/printenv.rst @@ -44,7 +44,7 @@ environment variables: :: - => setenv .foo bar + => env set .foo bar => printenv arch=sandbox baudrate=115200 diff --git a/doc/usage/cmd/saves.rst b/doc/usage/cmd/saves.rst index d429eeceddf..c4470b61722 100644 --- a/doc/usage/cmd/saves.rst +++ b/doc/usage/cmd/saves.rst @@ -72,7 +72,7 @@ the offset used in the *saves* command. Really kill this window [y/n] $ srec_cat out.srec -offset -1337982976 -Output out.txt -binary 2>/dev/null $ cat out.txt - setenv autoload no + env set autoload no dhcp load mmc 0:1 $fdt_addr_r dtb load mmc 0:1 $kernel_addr_r snp.efi diff --git a/doc/usage/cmd/sntp.rst b/doc/usage/cmd/sntp.rst index 433884f18b2..bfbf75464c2 100644 --- a/doc/usage/cmd/sntp.rst +++ b/doc/usage/cmd/sntp.rst @@ -43,7 +43,7 @@ Examples :: - => setenv ntpserverip 109.190.177.205 + => env set ntpserverip 109.190.177.205 => date Date: 2025-06-16 (Monday) Time: 15:19:35 => date reset @@ -55,7 +55,7 @@ Examples Date: 2025-06-16 Time: 15:19:43 => date Date: 2025-06-16 (Monday) Time: 15:19:47 - => setenv timeoffset 7200 + => env set timeoffset 7200 => sntp Date: 2025-06-16 Time: 17:19:55 => date diff --git a/doc/usage/cmd/tftpput.rst b/doc/usage/cmd/tftpput.rst index bdffa3af463..3704fdc9896 100644 --- a/doc/usage/cmd/tftpput.rst +++ b/doc/usage/cmd/tftpput.rst @@ -48,7 +48,7 @@ In the example the following steps are executed: :: - => setenv autoload no + => env set autoload no => dhcp BOOTP broadcast 1 DHCP client bound to address 192.168.1.40 (7 ms) diff --git a/doc/usage/cmd/tftpsrv.rst b/doc/usage/cmd/tftpsrv.rst new file mode 100644 index 00000000000..d067afdba57 --- /dev/null +++ b/doc/usage/cmd/tftpsrv.rst @@ -0,0 +1,73 @@ +.. SPDX-License-Identifier: GPL-2.0+ + +.. index:: + single: tftpsrv (command) + +tftpsrv command +=============== + +Synopsis +-------- + +:: + + tftpsrv [loadAddress] + +Description +----------- + +The tftpsrv command listens for an incoming TFTP write request and receives +the first transferred file into memory. + +loadAddress + memory address where the received file is stored. If not provided, the + address is taken from the *loadaddr* environment variable or the default + image load address. + +After a successful transfer, the *fileaddr* and *filesize* environment +variables describe the received file. The command returns successfully after +the transfer has completed. It does not boot the file automatically; boot +scripts can use commands such as bootm, booti or bootefi to boot from the +load address. + +The transfer is aborted if no transfer has started after about 50 seconds or +if Ctrl-C is pressed. + +Example +------- + +In the example the following steps are executed: + +* setup the board network address +* receive a FIT image from a host +* boot the received FIT image + +:: + + => setenv autoload no + => dhcp + BOOTP broadcast 1 + DHCP client bound to address 192.168.1.40 (7 ms) + => tftpsrv $loadaddr + Using ethernet@1c30000 device + Listening for TFTP transfer on 192.168.1.40 + Load address: 0x42000000 + Loading: ################################################################# + 6.5 MiB/s + done + Bytes transferred = 1048576 (100000 hex) + => bootm $fileaddr + +On the host, send the file to the board while U-Boot is listening: + +:: + + $ curl --upload-file image.fit tftp://192.168.1.40/image.fit + +Configuration +------------- + +The command is only available if CONFIG_CMD_TFTPSRV=y. + +The command is supported by both the legacy network stack and the lwIP network +stack. diff --git a/doc/usage/cmd/wget.rst b/doc/usage/cmd/wget.rst index f661d739a19..e6c33b87431 100644 --- a/doc/usage/cmd/wget.rst +++ b/doc/usage/cmd/wget.rst @@ -95,7 +95,7 @@ In the example the following steps are executed: :: - => setenv autoload no + => env set autoload no => dhcp BOOTP broadcast 1 *** Unhandled DHCP Option in OFFER/ACK: 23 diff --git a/doc/usage/cmdline.rst b/doc/usage/cmdline.rst index 79b9baf7bfe..dac6dcccfb7 100644 --- a/doc/usage/cmdline.rst +++ b/doc/usage/cmdline.rst @@ -20,11 +20,11 @@ This takes very little code space and offers only basic features: - special characters ('$', ';') can be escaped by prefixing with '\', for example:: - setenv bootcmd bootm \${address} + env set bootcmd bootm \${address} - You can also escape text by enclosing in single apostrophes, for example:: - setenv addip 'setenv bootargs $bootargs ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname::off' + env set addip 'env set bootargs $bootargs ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname::off' Hush shell ---------- @@ -36,7 +36,7 @@ This is similar to Bourne shell, with control structures like: - `while` ... `do` ... `done` - `until` ... `do` ... `done` -Hush supports environment ("global") variables (through setenv / saveenv +Hush supports environment ("global") variables (through env set / saveenv commands) and local shell variables (through standard shell syntax `name=value`); only environment variables can be used with the "run" command diff --git a/doc/usage/dfu.rst b/doc/usage/dfu.rst index af805514b26..987f287b483 100644 --- a/doc/usage/dfu.rst +++ b/doc/usage/dfu.rst @@ -162,8 +162,8 @@ mmc layout and even set a new *dfu_alt_info* for the newly created partitions. Such a script would look like:: - setenv dfu_alt_info ... - setenv mbr_parts ... + env set dfu_alt_info ... + env set mbr_parts ... mbr write ... Please note that this means the user will be able to execute any @@ -334,7 +334,7 @@ When U-Boot runs the dfu stack, the DFU host tools can be used to send/receive firmware images on each configured alternate. For example dfu-util is a host side implementation of the DFU 1.1 -specifications(http://dfu-util.sourceforge.net/) which works with U-Boot. +specifications(https://dfu-util.sourceforge.net/) which works with U-Boot. Usage ----- diff --git a/doc/usage/environment.rst b/doc/usage/environment.rst index 0143f81f2c0..80498853336 100644 --- a/doc/usage/environment.rst +++ b/doc/usage/environment.rst @@ -70,10 +70,10 @@ Example:: /* U-Boot script for booting */ if [ -z ${tftpserverip} ]; then - echo "Use 'setenv tftpserverip a.b.c.d' to set IP address." + echo "Use 'env set tftpserverip a.b.c.d' to set IP address." fi - usb start; setenv autoload n; bootp; + usb start; env set autoload n; bootp; tftpboot ${tftpserverip}: bootm failed= @@ -263,7 +263,7 @@ initrd_high sure that the initrd image is placed in the first 12 MB as well - this can be done with:: - setenv initrd_high 00c00000 + env set initrd_high 00c00000 If you set initrd_high to 0xffffffff (32-bit machines) or 0xffffffffffffffff (64-bit machines), this is an @@ -310,9 +310,9 @@ ethact controls which interface is currently active. For example you can do the following:: - => setenv ethact FEC + => env set ethact FEC => ping 192.168.0.1 # traffic sent on FEC - => setenv ethact SCC + => env set ethact SCC => ping 10.0.0.1 # traffic sent on SCC ethrotate diff --git a/doc/usage/fdt_overlays.rst b/doc/usage/fdt_overlays.rst index 730cb85b39a..81e9512658a 100644 --- a/doc/usage/fdt_overlays.rst +++ b/doc/usage/fdt_overlays.rst @@ -88,8 +88,8 @@ Manually Loading and Applying Overlays :: - => setenv fdtaddr 0x87f00000 - => setenv fdtovaddr 0x87fc0000 + => env set fdtaddr 0x87f00000 + => env set fdtovaddr 0x87fc0000 2. Load the base binary device-tree and the binary device-tree overlay. diff --git a/doc/usage/fit/beaglebone_vboot.rst b/doc/usage/fit/beaglebone_vboot.rst index b15399441ee..c587b8c271d 100644 --- a/doc/usage/fit/beaglebone_vboot.rst +++ b/doc/usage/fit/beaglebone_vboot.rst @@ -518,13 +518,13 @@ Here the card is /dev/sde:: Boot the board using the commands below:: - setenv bootargs console=ttyO0,115200n8 quiet root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait + env set bootargs console=ttyO0,115200n8 quiet root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait ext2load mmc 0:2 82000000 /boot/image.fit bootm 82000000 You should then see something like this:: - U-Boot# setenv bootargs console=ttyO0,115200n8 quiet root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait + U-Boot# env set bootargs console=ttyO0,115200n8 quiet root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait U-Boot# ext2load mmc 0:2 82000000 /boot/image.fit 7824930 bytes read in 589 ms (12.7 MiB/s) U-Boot# bootm 82000000 diff --git a/doc/usage/fit/dm-verity.rst b/doc/usage/fit/dm-verity.rst index 800a18fceae..76030c751ae 100644 --- a/doc/usage/fit/dm-verity.rst +++ b/doc/usage/fit/dm-verity.rst @@ -209,6 +209,11 @@ typically be obtained from its output. The ``digest`` and ``salt`` byte arrays correspond to the hex-encoded ``Root hash`` and ``Salt`` printed by ``veritysetup format``. +When the configuration is signed, ``digest`` and ``salt`` are covered by +the configuration signature (see :doc:`signature`), so the roothash +cannot be swapped out for a matching one without invalidating the +signature. + Optional boolean properties (when present, they are collected and appended as dm-verity optional parameters with hyphens converted to underscores): diff --git a/doc/usage/fit/howto.rst b/doc/usage/fit/howto.rst index 9c8d86e50be..9c5f989bd75 100644 --- a/doc/usage/fit/howto.rst +++ b/doc/usage/fit/howto.rst @@ -197,9 +197,9 @@ specific to the new image format). [on the target system]:: => print nfsargs - nfsargs=setenv bootargs root=/dev/nfs rw nfsroot=${serverip}:${rootpath} + nfsargs=env set bootargs root=/dev/nfs rw nfsroot=${serverip}:${rootpath} => print addip - addip=setenv bootargs ${bootargs} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${netdev}:off panic=1 + addip=env set bootargs ${bootargs} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${netdev}:off panic=1 => run nfsargs addip => tftp 900000 /path/to/tftp/location/kernel.itb Using FEC device diff --git a/doc/usage/fit/overlay-fdt-boot.rst b/doc/usage/fit/overlay-fdt-boot.rst index 5df304047c6..e210619a26d 100644 --- a/doc/usage/fit/overlay-fdt-boot.rst +++ b/doc/usage/fit/overlay-fdt-boot.rst @@ -111,6 +111,12 @@ Where config is one of:: This selects the DTB to use when booting. +If no configuration is given, U-Boot picks one automatically: with +``CONFIG_FIT_BEST_MATCH`` it selects the configuration whose fdt is the most +compatible with U-Boot's own control devicetree, and falls back to the +``default`` configuration otherwise. When several configurations match +equally well, the ``default`` one is preferred. + .. _fit_configuration_using_overlays: Configuration using overlays diff --git a/doc/usage/fit/signature.rst b/doc/usage/fit/signature.rst index da08cc75c3a..64bada2f58f 100644 --- a/doc/usage/fit/signature.rst +++ b/doc/usage/fit/signature.rst @@ -359,7 +359,7 @@ however, U-Boot does not read 'hashed-nodes'. Instead it rebuilds the node list from the configuration's own image references (kernel, fdt, ramdisk, etc.), since 'hashed-nodes' is not itself covered by the signature. The rebuilt list always includes the root node, the configuration node, each -referenced image node and its hash/cipher subnodes. +referenced image node and its hash, cipher and dm-verity subnodes. The image is walked in order and each tag processed as follows: diff --git a/doc/usage/os/plan9.rst b/doc/usage/os/plan9.rst index f91712c0094..27020be65da 100644 --- a/doc/usage/os/plan9.rst +++ b/doc/usage/os/plan9.rst @@ -19,4 +19,4 @@ If no command line arguments or bootargs are defined, CONFADDR is left uninitialized to permit manual configuration. For example, PC-style configuration could be simulated by issuing a fatload in bootcmd:: - # setenv bootcmd fatload mmc 0 $confaddr plan9.ini; ...; bootm + # env set bootcmd fatload mmc 0 $confaddr plan9.ini; ...; bootm diff --git a/doc/usage/pxe.rst b/doc/usage/pxe.rst index 18532f182d5..523bf9f565e 100644 --- a/doc/usage/pxe.rst +++ b/doc/usage/pxe.rst @@ -30,7 +30,7 @@ Commands try. The order and contents of paths it tries mirrors exactly that of PXELINUX - you can read in more detail about it at: - http://syslinux.zytor.com/wiki/index.php/Doc/pxelinux + https://wiki.syslinux.org/wiki/index.php?title=Doc/pxelinux ``pxe boot`` **Syntax:** ``pxe boot [pxefile_addr_r]`` @@ -130,7 +130,7 @@ pxe file format --------------- The pxe file format is nearly a subset of the PXELINUX file format; -see http://syslinux.zytor.com/wiki/index.php/PXELINUX. It's composed +see https://wiki.syslinux.org/wiki/index.php?title=PXELINUX. It's composed of one line commands - global commands, and commands specific to labels. Lines beginning with # are treated as comments. White space between and at the beginning of lines is ignored. |
