| .. zephyr:code-sample:: bootargs |
| :name: Bootargs |
| |
| Print received bootargs to the console. |
| |
| Overview |
| ******** |
| |
| This sample demonstrates use of bootargs passed to Zephyr by printing each main argument to the console. |
| Zephyr support both dynamic bootargs, received from supported bootloader, and static bootargs embedded in the binary. |
| |
| Requirements |
| ************ |
| |
| Static bootargs don't have special requirements. |
| Dynamic bootargs work on platforms where Zephyr is booted by multiboot or efi. |
| |
| Building and Running |
| ******************** |
| |
| Static bootargs |
| =============== |
| |
| Static bootargs can be configured using ``CONFIG_BOOTARGS_STRING``. |
| |
| .. zephyr-app-commands:: |
| :zephyr-app: samples/kernel/bootargs |
| :board: qemu_x86 |
| :conf: prj_static_bootargs.conf |
| :goals: build run |
| :compact: |
| |
| Output: |
| |
| .. code-block:: console |
| |
| *** Booting Zephyr OS build v3.7.0-514-gd4490bc739d1 *** |
| argv[0] = appname |
| argv[1] = This |
| argv[2] = is |
| argv[3] = a list of |
| argv[4] = arguments |
| |
| Multiboot |
| ========= |
| |
| .. zephyr-app-commands:: |
| :zephyr-app: samples/kernel/bootargs |
| :board: qemu_x86 |
| :conf: prj_multiboot.conf |
| :goals: build run |
| :compact: |
| |
| Output: |
| |
| .. code-block:: console |
| |
| *** Booting Zephyr OS build v3.7.0-rc2-421-g3cf718e6dabc *** |
| argv[0] = /home/user/zephyr/samples/kernel/bootargs/build/zephyr/zephyr.elf |
| |
| To pass your own arguments you can manually invoke qemu with ``-append "your args"``, for example: |
| |
| .. code-block:: console |
| |
| qemu-system-x86_64 -kernel ./build/zephyr/zephyr.elf -nographic -append "This is 'a list of' arguments" |
| |
| Which will result in the following output: |
| |
| .. code-block:: console |
| |
| *** Booting Zephyr OS build v3.7.0-rc2-421-g3cf718e6dabc *** |
| argv[0] = ./build/zephyr/zephyr.elf |
| argv[1] = This |
| argv[2] = is |
| argv[3] = a list of |
| argv[4] = arguments |
| |
| Efi |
| ========= |
| |
| .. zephyr-app-commands:: |
| :zephyr-app: samples/kernel/bootargs |
| :board: qemu_x86_64 |
| :conf: prj_efi.conf |
| :goals: build run |
| :compact: |
| |
| Output: |
| |
| .. code-block:: console |
| |
| *** Zephyr EFI Loader *** |
| RSDP found at 0xbf7e014 |
| Zeroing 501792 bytes of memory at 0x163000 |
| Copying 16384 data bytes to 0x1000 from image offset |
| Copying 405504 data bytes to 0x100000 from image offset 16384 |
| Copying 30688 data bytes to 0x1dd820 from image offset 421888 |
| Jumping to Entry Point: 0x1137 (48 31 c0 48 31 d2 48) |
| |
| *** Booting Zephyr OS build v3.7.0-rc2-421-g3cf718e6dabc *** |
| argv[0] = run.efi |
| |
| To pass your own arguments you can press ESC and write your arguments after name of the Zephyr efi binary, for example: |
| |
| .. code-block:: console |
| |
| Press ESC in 5 seconds to skip startup.nsh or any other key to continue. |
| Shell> run.efi This is 'a list of' arguments |
| *** Zephyr EFI Loader *** |
| RSDP found at 0xbf7e014 |
| Zeroing 501792 bytes of memory at 0x163000 |
| Copying 16384 data bytes to 0x1000 from image offset |
| Copying 405504 data bytes to 0x100000 from image offset 16384 |
| Copying 30688 data bytes to 0x1dd820 from image offset 421888 |
| Jumping to Entry Point: 0x1137 (48 31 c0 48 31 d2 48) |
| |
| *** Booting Zephyr OS build v3.7.0-rc2-421-g3cf718e6dabc *** |
| argv[0] = run.efi |
| argv[1] = This |
| argv[2] = is |
| argv[3] = a list of |
| argv[4] = arguments |