2018-05-06 21:58:06 +00:00
|
|
|
# SPDX-License-Identifier: GPL-2.0+
|
2016-01-18 03:53:51 +00:00
|
|
|
#
|
|
|
|
# (C) Copyright 2004-2006
|
|
|
|
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
|
|
|
|
|
|
|
ifndef CONFIG_SPL_BUILD
|
|
|
|
# core command
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-y += boot.o
|
|
|
|
obj-$(CONFIG_CMD_BOOTM) += bootm.o
|
|
|
|
obj-y += help.o
|
2020-06-29 23:05:45 +00:00
|
|
|
obj-y += panic.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-y += version.o
|
2016-01-18 03:53:51 +00:00
|
|
|
|
|
|
|
# command
|
2023-08-04 13:33:43 +00:00
|
|
|
obj-$(CONFIG_CMD_ARMFFA) += armffa.o
|
2023-02-07 21:33:53 +00:00
|
|
|
obj-$(CONFIG_CMD_2048) += 2048.o
|
2020-04-26 15:19:53 +00:00
|
|
|
obj-$(CONFIG_CMD_ACPI) += acpi.o
|
2021-02-25 09:22:34 +00:00
|
|
|
obj-$(CONFIG_CMD_ADDRMAP) += addrmap.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_AES) += aes.o
|
2019-07-05 12:37:33 +00:00
|
|
|
obj-$(CONFIG_CMD_AB_SELECT) += ab_select.o
|
2018-04-27 13:17:57 +00:00
|
|
|
obj-$(CONFIG_CMD_ADC) += adc.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_ARMFLASH) += armflash.o
|
2022-08-12 01:34:46 +00:00
|
|
|
obj-$(CONFIG_BLK) += blk_common.o
|
2022-04-25 05:31:10 +00:00
|
|
|
obj-$(CONFIG_CMD_BOOTDEV) += bootdev.o
|
2022-04-25 05:31:11 +00:00
|
|
|
obj-$(CONFIG_CMD_BOOTFLOW) += bootflow.o
|
2022-04-25 05:31:12 +00:00
|
|
|
obj-$(CONFIG_CMD_BOOTMETH) += bootmeth.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_SOURCE) += source.o
|
cmd: Add 'bcb' command to read/modify/write BCB fields
'Bootloader Control Block' (BCB) is a well established term/acronym in
the Android namespace which refers to a location in a dedicated raw
(i.e. FS-unaware) flash (e.g. eMMC) partition, usually called "misc",
which is used as media for exchanging messages between Android userspace
(particularly recovery [1]) and an Android-capable bootloader.
On higher level, this allows implementing a subset of Android Bootloader
Requirements [2], amongst which is the Android-specific bootloader
flow [3]. Regardless how the latter is implemented in U-Boot ([3] being
the most memorable example), reading/writing/dumping the BCB fields in
the development process from inside the U-Boot is a convenient feature.
Hence, make it available to the users.
Some usage examples of the new command recorded on R-Car H3ULCB-KF
('>>>' is an overlay on top of the original console output):
=> bcb
bcb - Load/set/clear/test/dump/store Android BCB fields
Usage:
bcb load <dev> <part> - load BCB from mmc <dev>:<part>
bcb set <field> <val> - set BCB <field> to <val>
bcb clear [<field>] - clear BCB <field> or all fields
bcb test <field> <op> <val> - test BCB <field> against <val>
bcb dump <field> - dump BCB <field>
bcb store - store BCB back to mmc
Legend:
<dev> - MMC device index containing the BCB partition
<part> - MMC partition index or name containing the BCB
<field> - one of {command,status,recovery,stage,reserved}
<op> - the binary operator used in 'bcb test':
'=' returns true if <val> matches the string stored in <field>
'~' returns true if <val> matches a subset of <field>'s string
<val> - string/text provided as input to bcb {set,test}
NOTE: any ':' character in <val> will be replaced by line feed
during 'bcb set' and used as separator by upper layers
=> bcb dump command
Error: Please, load BCB first!
>>> Users must specify mmc device and partition before any other call
=> bcb load 1 misc
=> bcb load 1 1
>>> The two calls are equivalent (assuming "misc" has index 1)
=> bcb dump command
00000000: 62 6f 6f 74 6f 6e 63 65 2d 73 68 65 6c 6c 00 72 bootonce-shell.r
00000010: 79 00 72 00 00 00 00 00 00 00 00 00 00 00 00 00 y.r.............
>>> The output is in binary/string format for convenience
>>> The output size matches the size of inspected BCB field
>>> (32 bytes in case of 'command')
=> bcb test command = bootonce-shell && echo true
true
=> bcb test command = bootonce-shell- && echo true
=> bcb test command = bootonce-shel && echo true
>>> The '=' operator returns 'true' on perfect match
=> bcb test command ~ bootonce-shel && echo true
true
=> bcb test command ~ bootonce-shell && echo true
true
>>> The '~' operator returns 'true' on substring match
=> bcb set command recovery
=> bcb dump command
00000000: 72 65 63 6f 76 65 72 79 00 73 68 65 6c 6c 00 72 recovery.shell.r
00000010: 79 00 72 00 00 00 00 00 00 00 00 00 00 00 00 00 y.r.............
>>> The new value is NULL-terminated and stored in the BCB field
=> bcb set recovery "msg1:msg2:msg3"
=> bcb dump recovery
00000040: 6d 73 67 31 0a 6d 73 67 32 0a 6d 73 67 33 00 00 msg1.msg2.msg3..
00000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>>> --- snip ---
>>> Every ':' is replaced by line-feed '\n' (0xA). The latter is used
>>> as separator between individual commands by Android userspace
=> bcb store
>>> Flush/store the BCB structure to MMC
[1] https://android.googlesource.com/platform/bootable/recovery
[2] https://source.android.com/devices/bootloader
[3] https://patchwork.ozlabs.org/patch/746835/
("[U-Boot,5/6] Initial support for the Android Bootloader flow")
Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
2019-05-23 15:32:22 +00:00
|
|
|
obj-$(CONFIG_CMD_BCB) += bcb.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_BDI) += bdinfo.o
|
2018-08-09 14:17:46 +00:00
|
|
|
obj-$(CONFIG_CMD_BIND) += bind.o
|
2018-03-28 12:39:18 +00:00
|
|
|
obj-$(CONFIG_CMD_BINOP) += binop.o
|
2023-02-16 15:33:52 +00:00
|
|
|
obj-$(CONFIG_CMD_BLKMAP) += blkmap.o
|
2020-09-20 00:49:26 +00:00
|
|
|
obj-$(CONFIG_CMD_BLOBLIST) += bloblist.o
|
2016-03-28 17:05:44 +00:00
|
|
|
obj-$(CONFIG_CMD_BLOCK_CACHE) += blkcache.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_BMP) += bmp.o
|
2018-05-12 05:49:47 +00:00
|
|
|
obj-$(CONFIG_CMD_BOOTCOUNT) += bootcount.o
|
2016-03-09 23:27:20 +00:00
|
|
|
obj-$(CONFIG_CMD_BOOTEFI) += bootefi.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_BOOTMENU) += bootmenu.o
|
|
|
|
obj-$(CONFIG_CMD_BOOTSTAGE) += bootstage.o
|
2016-08-12 12:31:15 +00:00
|
|
|
obj-$(CONFIG_CMD_BOOTZ) += bootz.o
|
|
|
|
obj-$(CONFIG_CMD_BOOTI) += booti.o
|
2017-09-03 15:00:30 +00:00
|
|
|
obj-$(CONFIG_CMD_BTRFS) += btrfs.o
|
2020-07-24 16:19:47 +00:00
|
|
|
obj-$(CONFIG_CMD_BUTTON) += button.o
|
2022-09-03 11:34:53 +00:00
|
|
|
obj-$(CONFIG_CMD_CAT) += cat.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_CACHE) += cache.o
|
|
|
|
obj-$(CONFIG_CMD_CBFS) += cbfs.o
|
2023-06-01 16:23:02 +00:00
|
|
|
obj-$(CONFIG_CMD_CEDIT) += cedit.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_CLK) += clk.o
|
2018-12-01 09:47:20 +00:00
|
|
|
obj-$(CONFIG_CMD_CLS) += cls.o
|
2017-01-30 02:12:07 +00:00
|
|
|
obj-$(CONFIG_CMD_CONFIG) += config.o
|
2018-09-07 17:43:11 +00:00
|
|
|
obj-$(CONFIG_CMD_CONITRACE) += conitrace.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_CONSOLE) += console.o
|
|
|
|
obj-$(CONFIG_CMD_CPU) += cpu.o
|
|
|
|
obj-$(CONFIG_CMD_DATE) += date.o
|
|
|
|
obj-$(CONFIG_CMD_DEMO) += demo.o
|
2018-12-08 00:00:39 +00:00
|
|
|
obj-$(CONFIG_CMD_DM) += dm.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_SOUND) += sound.o
|
2016-01-18 03:53:51 +00:00
|
|
|
ifdef CONFIG_POST
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_DIAG) += diag.o
|
2016-01-18 03:53:51 +00:00
|
|
|
endif
|
2019-12-24 16:51:06 +00:00
|
|
|
obj-$(CONFIG_CMD_ADTIMG) += adtimg.o
|
2020-01-24 15:53:42 +00:00
|
|
|
obj-$(CONFIG_CMD_ABOOTIMG) += abootimg.o
|
2022-09-02 11:57:51 +00:00
|
|
|
obj-$(CONFIG_CMD_CYCLIC) += cyclic.o
|
2022-03-04 15:43:06 +00:00
|
|
|
obj-$(CONFIG_CMD_EVENT) += event.o
|
2021-05-04 17:31:22 +00:00
|
|
|
obj-$(CONFIG_CMD_EXTENSION) += extension_board.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_ECHO) += echo.o
|
|
|
|
obj-$(CONFIG_ENV_IS_IN_EEPROM) += eeprom.o
|
|
|
|
obj-$(CONFIG_CMD_EEPROM) += eeprom.o
|
2023-03-19 19:30:15 +00:00
|
|
|
obj-$(CONFIG_EFI) += efi.o efi_common.o
|
2023-03-19 19:30:14 +00:00
|
|
|
obj-$(CONFIG_CMD_EFIDEBUG) += efidebug.o efi_common.o
|
2022-09-12 08:33:50 +00:00
|
|
|
obj-$(CONFIG_CMD_EFICONFIG) += eficonfig.o
|
2022-11-20 00:21:18 +00:00
|
|
|
ifdef CONFIG_CMD_EFICONFIG
|
|
|
|
ifdef CONFIG_EFI_MM_COMM_TEE
|
|
|
|
obj-$(CONFIG_EFI_SECURE_BOOT) += eficonfig_sbkey.o
|
|
|
|
endif
|
|
|
|
endif
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_ELF) += elf.o
|
2022-02-26 07:05:50 +00:00
|
|
|
obj-$(CONFIG_CMD_EROFS) += erofs.o
|
2016-06-20 17:11:19 +00:00
|
|
|
obj-$(CONFIG_HUSH_PARSER) += exit.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_EXT4) += ext4.o
|
|
|
|
obj-$(CONFIG_CMD_EXT2) += ext2.o
|
|
|
|
obj-$(CONFIG_CMD_FAT) += fat.o
|
2016-04-06 18:28:04 +00:00
|
|
|
obj-$(CONFIG_CMD_FDT) += fdt.o
|
2020-07-30 13:33:48 +00:00
|
|
|
obj-$(CONFIG_CMD_SQUASHFS) += sqfs.o
|
2023-03-07 10:21:16 +00:00
|
|
|
obj-$(CONFIG_CMD_SELECT_FONT) += font.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_FLASH) += flash.o
|
|
|
|
obj-$(CONFIG_CMD_FPGA) += fpga.o
|
|
|
|
obj-$(CONFIG_CMD_FPGAD) += fpgad.o
|
|
|
|
obj-$(CONFIG_CMD_FS_GENERIC) += fs.o
|
|
|
|
obj-$(CONFIG_CMD_FUSE) += fuse.o
|
2022-10-21 12:46:04 +00:00
|
|
|
obj-$(CONFIG_CMD_FWU_METADATA) += fwu_mdata.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_GETTIME) += gettime.o
|
|
|
|
obj-$(CONFIG_CMD_GPIO) += gpio.o
|
2023-10-02 01:13:06 +00:00
|
|
|
obj-$(CONFIG_CMD_HISTORY) += history.o
|
2018-04-13 07:40:57 +00:00
|
|
|
obj-$(CONFIG_CMD_HVC) += smccc.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_I2C) += i2c.o
|
|
|
|
obj-$(CONFIG_CMD_IOTRACE) += iotrace.o
|
|
|
|
obj-$(CONFIG_CMD_HASH) += hash.o
|
2016-09-09 01:26:39 +00:00
|
|
|
obj-$(CONFIG_CMD_IDE) += ide.o disk.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_INI) += ini.o
|
|
|
|
obj-$(CONFIG_CMD_IRQ) += irq.o
|
|
|
|
obj-$(CONFIG_CMD_ITEST) += itest.o
|
|
|
|
obj-$(CONFIG_CMD_JFFS2) += jffs2.o
|
|
|
|
obj-$(CONFIG_CMD_CRAMFS) += cramfs.o
|
2017-04-10 17:34:58 +00:00
|
|
|
obj-$(CONFIG_LED_STATUS_CMD) += legacy_led.o
|
2017-04-10 17:34:59 +00:00
|
|
|
obj-$(CONFIG_CMD_LED) += led.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_LICENSE) += license.o
|
|
|
|
obj-y += load.o
|
2017-12-04 20:48:26 +00:00
|
|
|
obj-$(CONFIG_CMD_LOG) += log.o
|
2020-03-30 15:22:58 +00:00
|
|
|
obj-$(CONFIG_CMD_LSBLK) += lsblk.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_MD5SUM) += md5sum.o
|
|
|
|
obj-$(CONFIG_CMD_MEMORY) += mem.o
|
|
|
|
obj-$(CONFIG_CMD_IO) += io.o
|
|
|
|
obj-$(CONFIG_CMD_MII) += mii.o
|
2020-10-14 06:34:52 +00:00
|
|
|
obj-$(CONFIG_CMD_MISC) += misc.o
|
2019-09-13 15:25:03 +00:00
|
|
|
obj-$(CONFIG_CMD_MDIO) += mdio.o
|
2022-08-18 19:44:04 +00:00
|
|
|
obj-$(CONFIG_CMD_PAUSE) += pause.o
|
2020-10-13 10:45:05 +00:00
|
|
|
obj-$(CONFIG_CMD_SLEEP) += sleep.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_MMC) += mmc.o
|
2020-10-23 08:09:33 +00:00
|
|
|
obj-$(CONFIG_CMD_OPTEE_RPMB) += optee_rpmb.o
|
2022-01-17 09:16:50 +00:00
|
|
|
obj-$(CONFIG_CMD_MP) += mp.o
|
2018-09-29 10:58:28 +00:00
|
|
|
obj-$(CONFIG_CMD_MTD) += mtd.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_MTDPARTS) += mtdparts.o
|
2020-07-02 04:01:21 +00:00
|
|
|
obj-$(CONFIG_CMD_CLONE) += clone.o
|
2019-10-25 17:39:29 +00:00
|
|
|
ifneq ($(CONFIG_CMD_NAND)$(CONFIG_CMD_SF),)
|
|
|
|
obj-y += legacy-mtd-utils.o
|
|
|
|
endif
|
cmd: Add a mux command
This command lets the user list, select, and deselect mux controllers
introduced with the mux framework on the fly. It has 3 subcommands:
list, select, and deselect.
List: Lists all the mux present on the system. The muxes are listed for
each chip. The chip is identified by its device name. Each chip can have
a number of mux controllers. Each is listed in sequence and is assigned
a sequential ID based on its position in the mux chip. It lists details
like ID, whether the mux is currently selected or not, the current
state, the idle state, and the number of states.
A sample output would look something like:
=> mux list
a-mux-controller:
ID Selected Current State Idle State Num States
0 no unknown as-is 0x4
1 no 0x2 0x2 0x10
2 no 0x73 0x73 0x100
another-mux-controller:
ID Selected Current State Idle State Num States
0 no 0x1 0x1 0x4
1 no 0x2 0x2 0x4
Select: Selects a given mux and puts it in the specified state. This
subcommand takes 3 arguments: mux chip, mux ID, state to set
the mux in. The arguments mux chip and mux ID are used to identify which
mux needs to be selected, and then it is selected to the given state.
The mux needs to be deselected before it can be selected again in
another state. The state should be a hexadecimal number.
For example:
=> mux list
a-mux-controller:
ID Selected Current State Idle State Num States
0 no 0x1 0x1 0x4
1 no 0x1 0x1 0x4
=> mux select a-mux-controller 0 0x3
=> mux list
a-mux-controller:
ID Selected Current State Idle State Num States
0 yes 0x3 0x1 0x4
1 no 0x1 0x1 0x4
Deselect: Deselects a given mux and puts it in its idle state. This
subcommand takes 2 arguments: the mux chip and mux ID to identify which
mux needs to be deselected. So in the above example, we can deselect mux
0 using:
=> mux deselect a-mux-controller 0
=> mux list
a-mux-controller:
ID Selected Current State Idle State Num States
0 no 0x1 0x1 0x4
1 no 0x1 0x1 0x4
Signed-off-by: Pratyush Yadav <p.yadav@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2020-10-16 10:46:35 +00:00
|
|
|
obj-$(CONFIG_CMD_MUX) += mux.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_NAND) += nand.o
|
|
|
|
obj-$(CONFIG_CMD_NET) += net.o
|
2023-10-26 18:31:16 +00:00
|
|
|
obj-$(CONFIG_ENV_SUPPORT) += nvedit.o
|
2019-02-25 06:54:36 +00:00
|
|
|
obj-$(CONFIG_CMD_NVEDIT_EFI) += nvedit_efi.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_ONENAND) += onenand.o
|
2018-09-27 07:19:34 +00:00
|
|
|
obj-$(CONFIG_CMD_OSD) += osd.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_PART) += part.o
|
2019-07-18 18:43:30 +00:00
|
|
|
obj-$(CONFIG_CMD_PCAP) += pcap.o
|
2016-01-18 03:53:51 +00:00
|
|
|
ifdef CONFIG_PCI
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_PCI) += pci.o
|
2023-03-10 19:07:13 +00:00
|
|
|
obj-$(CONFIG_CMD_PCI_MPS) += pci_mps.o
|
2016-01-18 03:53:51 +00:00
|
|
|
endif
|
2018-10-24 12:10:17 +00:00
|
|
|
obj-$(CONFIG_CMD_PINMUX) += pinmux.o
|
2019-12-07 04:41:54 +00:00
|
|
|
obj-$(CONFIG_CMD_PMC) += pmc.o
|
2020-03-20 09:59:22 +00:00
|
|
|
obj-$(CONFIG_CMD_PSTORE) += pstore.o
|
2020-12-22 06:00:05 +00:00
|
|
|
obj-$(CONFIG_CMD_PWM) += pwm.o
|
2021-10-14 18:48:00 +00:00
|
|
|
obj-$(CONFIG_CMD_PXE) += pxe.o
|
2018-06-22 20:29:54 +00:00
|
|
|
obj-$(CONFIG_CMD_WOL) += wol.o
|
2016-05-23 02:37:17 +00:00
|
|
|
obj-$(CONFIG_CMD_QFW) += qfw.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_READ) += read.o
|
2023-03-02 08:12:22 +00:00
|
|
|
obj-$(CONFIG_CMD_WRITE) += read.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_REGINFO) += reginfo.o
|
|
|
|
obj-$(CONFIG_CMD_REISER) += reiser.o
|
|
|
|
obj-$(CONFIG_CMD_REMOTEPROC) += remoteproc.o
|
2019-12-24 21:17:37 +00:00
|
|
|
obj-$(CONFIG_CMD_RNG) += rng.o
|
2021-08-25 16:22:57 +00:00
|
|
|
obj-$(CONFIG_CMD_KASLRSEED) += kaslrseed.o
|
2023-10-18 14:01:40 +00:00
|
|
|
obj-$(CONFIG_CMD_RKMTD) += rkmtd.o
|
2017-12-15 00:17:11 +00:00
|
|
|
obj-$(CONFIG_CMD_ROCKUSB) += rockusb.o
|
2020-07-06 20:01:15 +00:00
|
|
|
obj-$(CONFIG_CMD_RTC) += rtc.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_SANDBOX) += host.o
|
|
|
|
obj-$(CONFIG_CMD_SATA) += sata.o
|
2017-08-03 09:30:59 +00:00
|
|
|
obj-$(CONFIG_CMD_NVME) += nvme.o
|
2018-11-16 01:44:03 +00:00
|
|
|
obj-$(CONFIG_SANDBOX) += sb.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_SF) += sf.o
|
2023-11-14 02:14:26 +00:00
|
|
|
obj-$(CONFIG_CMD_SCMI) += scmi.o
|
2017-08-04 22:34:44 +00:00
|
|
|
obj-$(CONFIG_CMD_SCSI) += scsi.o disk.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_SHA1SUM) += sha1sum.o
|
cmd: Add a SEAMA image load command
Add a command to load SEAMA (Seattle Image), a NAND flash
on-flash storage format.
This type of flash image is found in some D-Link routers such
as DIR-645, DIR-842, DIR-859, DIR-860L, DIR-885L, DIR890L and
DCH-M225, as well as in WD and NEC routers on the ath79
(MIPS), Broadcom BCM53xx, and RAMIPS platforms.
This U-Boot command will read and decode a SEAMA image from
raw NAND flash on any platform. As it is always using big endian
format for the data decoding is always necessary on platforms
such as ARM.
The command is needed to read a SEAMA-encoded boot image on the
D-Link DIR-890L router for boot from NAND flash in an upcoming
port of U-Boot to the Broadcom Northstar (BCM4709, BCM53xx)
architecture.
A basic test and documentation is added as well. The test must
be run on a target with NAND flash support and at least one
resident SEAMA image in flash.
Cc: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2023-01-31 23:16:13 +00:00
|
|
|
obj-$(CONFIG_CMD_SEAMA) += seama.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_SETEXPR) += setexpr.o
|
2021-07-23 12:29:21 +00:00
|
|
|
obj-$(CONFIG_CMD_SETEXPR_FMT) += printf.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_SPI) += spi.o
|
|
|
|
obj-$(CONFIG_CMD_STRINGS) += strings.o
|
2018-04-13 07:40:57 +00:00
|
|
|
obj-$(CONFIG_CMD_SMC) += smccc.o
|
2021-10-14 18:48:00 +00:00
|
|
|
obj-$(CONFIG_CMD_SYSBOOT) += sysboot.o
|
2021-04-11 09:21:58 +00:00
|
|
|
obj-$(CONFIG_CMD_STACKPROTECTOR_TEST) += stackprot_test.o
|
2022-09-06 11:30:33 +00:00
|
|
|
obj-$(CONFIG_CMD_TEMPERATURE) += temperature.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_TERMINAL) += terminal.o
|
|
|
|
obj-$(CONFIG_CMD_TIME) += time.o
|
2020-10-13 10:45:06 +00:00
|
|
|
obj-$(CONFIG_CMD_TIMER) += timer.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_TRACE) += trace.o
|
2016-06-20 17:11:19 +00:00
|
|
|
obj-$(CONFIG_HUSH_PARSER) += test.o
|
2018-05-15 09:57:06 +00:00
|
|
|
obj-$(CONFIG_CMD_TPM) += tpm-common.o
|
|
|
|
obj-$(CONFIG_CMD_TPM_V1) += tpm-v1.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_TPM_TEST) += tpm_test.o
|
2018-05-15 09:57:08 +00:00
|
|
|
obj-$(CONFIG_CMD_TPM_V2) += tpm-v2.o
|
2016-10-05 00:08:08 +00:00
|
|
|
obj-$(CONFIG_CMD_CROS_EC) += cros_ec.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_TSI148) += tsi148.o
|
|
|
|
obj-$(CONFIG_CMD_UBI) += ubi.o
|
|
|
|
obj-$(CONFIG_CMD_UBIFS) += ubifs.o
|
|
|
|
obj-$(CONFIG_CMD_UNIVERSE) += universe.o
|
2020-02-20 11:48:01 +00:00
|
|
|
obj-$(CONFIG_CMD_UNLZ4) += unlz4.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_UNZIP) += unzip.o
|
2018-10-15 09:21:12 +00:00
|
|
|
obj-$(CONFIG_CMD_VIRTIO) += virtio.o
|
2019-04-06 00:24:02 +00:00
|
|
|
obj-$(CONFIG_CMD_WDT) += wdt.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_LZMADEC) += lzmadec.o
|
2019-10-15 12:54:40 +00:00
|
|
|
obj-$(CONFIG_CMD_UFS) += ufs.o
|
2016-09-09 01:26:39 +00:00
|
|
|
obj-$(CONFIG_CMD_USB) += usb.o disk.o
|
2022-10-06 14:36:06 +00:00
|
|
|
obj-$(CONFIG_CMD_VIDCONSOLE) += video.o
|
|
|
|
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_FASTBOOT) += fastboot.o
|
|
|
|
obj-$(CONFIG_CMD_FS_UUID) += fs_uuid.o
|
2016-01-18 03:53:51 +00:00
|
|
|
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_USB_MASS_STORAGE) += usb_mass_storage.o
|
2017-08-16 18:00:53 +00:00
|
|
|
obj-$(CONFIG_CMD_USB_SDP) += usb_gadget_sdp.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_THOR_DOWNLOAD) += thordown.o
|
2022-07-30 21:52:37 +00:00
|
|
|
obj-$(CONFIG_CMD_VBE) += vbe.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_XIMG) += ximg.o
|
2022-09-03 13:15:04 +00:00
|
|
|
obj-$(CONFIG_CMD_XXD) += xxd.o
|
2017-08-04 22:34:58 +00:00
|
|
|
obj-$(CONFIG_CMD_YAFFS2) += yaffs2.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_SPL) += spl.o
|
2018-09-18 07:35:33 +00:00
|
|
|
obj-$(CONFIG_CMD_W1) += w1.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_ZIP) += zip.o
|
|
|
|
obj-$(CONFIG_CMD_ZFS) += zfs.o
|
2016-01-18 03:53:51 +00:00
|
|
|
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_DFU) += dfu.o
|
|
|
|
obj-$(CONFIG_CMD_GPT) += gpt.o
|
cmd: Add MBR partition layout control utility
Add a 'mbr' command to let users create or verify MBR partition layout
based on the provided text description. The partition layout is
alternatively read from the 'mbr_parts' environment variable. This can be
used in scripts to help system image flashing tools to ensure proper
partition layout.
The syntax of the text description of the partition list is similar to
the one used by the 'gpt' command. Supported parameters are: name
(currently ignored), start (partition start offset in bytes), size (in
bytes or '-' to expand it to the whole free area), bootable (boolean
flag) and id (MBR partition type). If one wants to create more than 4
partitions, an 'Extended' primary partition (with 0x05 ID) has to be
explicitely provided as a one of the first 4 entries.
Here is an example how to create a 6 partitions (3 on the 'extended
volume'), some of the predefined sizes:
> setenv 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;
name=user,size=-,id=0x83;
name=modules,size=100M,id=0x83;
name=ramdisk,size=8M,id=0x83'
> mbr write mmc 0
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
2020-12-23 12:55:15 +00:00
|
|
|
obj-$(CONFIG_CMD_MBR) += mbr.o
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_ETHSW) += ethsw.o
|
2018-08-09 12:51:21 +00:00
|
|
|
obj-$(CONFIG_CMD_AXI) += axi.o
|
2020-08-06 09:42:55 +00:00
|
|
|
obj-$(CONFIG_CMD_PVBLOCK) += pvblock.o
|
2016-01-18 03:53:51 +00:00
|
|
|
|
|
|
|
# Power
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_PMIC) += pmic.o
|
|
|
|
obj-$(CONFIG_CMD_REGULATOR) += regulator.o
|
2016-01-18 03:53:51 +00:00
|
|
|
|
2016-01-18 03:53:52 +00:00
|
|
|
obj-$(CONFIG_CMD_BLOB) += blob.o
|
2018-01-03 13:54:27 +00:00
|
|
|
|
2018-06-03 18:56:39 +00:00
|
|
|
# Android Verified Boot 2.0
|
|
|
|
obj-$(CONFIG_CMD_AVB) += avb.o
|
|
|
|
|
2021-02-14 15:27:24 +00:00
|
|
|
# Foundries.IO SCP03
|
|
|
|
obj-$(CONFIG_CMD_SCP03) += scp03.o
|
|
|
|
|
2023-12-22 21:02:31 +00:00
|
|
|
obj-$(CONFIG_HUSH_PARSER) += cli.o
|
|
|
|
|
2018-12-26 16:20:35 +00:00
|
|
|
obj-$(CONFIG_ARM) += arm/
|
|
|
|
obj-$(CONFIG_RISCV) += riscv/
|
2020-11-11 23:29:57 +00:00
|
|
|
obj-$(CONFIG_SANDBOX) += sandbox/
|
2018-01-03 13:54:27 +00:00
|
|
|
obj-$(CONFIG_X86) += x86/
|
2018-08-29 13:34:54 +00:00
|
|
|
|
2023-01-10 10:56:47 +00:00
|
|
|
# Meson
|
|
|
|
obj-$(CONFIG_CMD_MESON) += meson/
|
|
|
|
|
2018-08-29 13:34:54 +00:00
|
|
|
obj-$(CONFIG_ARCH_MVEBU) += mvebu/
|
2023-10-07 19:36:58 +00:00
|
|
|
|
|
|
|
# TI
|
|
|
|
obj-$(CONFIG_ARCH_KEYSTONE) += ti/
|
|
|
|
obj-$(CONFIG_ARCH_K3) += ti/
|
|
|
|
obj-$(CONFIG_ARCH_OMAP2PLUS) += ti/
|
2017-04-27 04:27:53 +00:00
|
|
|
endif # !CONFIG_SPL_BUILD
|
2016-01-18 03:53:51 +00:00
|
|
|
|
2020-01-21 13:44:54 +00:00
|
|
|
obj-$(CONFIG_$(SPL_)CMD_TLV_EEPROM) += tlv_eeprom.o
|
|
|
|
|
2020-08-20 15:11:07 +00:00
|
|
|
obj-$(CONFIG_CMD_BCM_EXT_UTILS) += broadcom/
|
|
|
|
|
2017-01-30 02:12:07 +00:00
|
|
|
filechk_data_gz = (echo "static const char data_gz[] ="; cat $< | scripts/bin2c; echo ";")
|
|
|
|
|
|
|
|
filechk_data_size = \
|
|
|
|
(echo "static const size_t data_size = "; \
|
|
|
|
cat $< | wc -c; echo ";")
|
|
|
|
|
|
|
|
# "config" command
|
|
|
|
$(obj)/config.o: $(obj)/config_data_gz.h $(obj)/config_data_size.h
|
|
|
|
|
|
|
|
targets += config_data.gz
|
|
|
|
$(obj)/config_data.gz: $(KCONFIG_CONFIG) FORCE
|
|
|
|
$(call if_changed,gzip)
|
|
|
|
|
|
|
|
targets += config_data_gz.h
|
|
|
|
$(obj)/config_data_gz.h: $(obj)/config_data.gz FORCE
|
|
|
|
$(call filechk,data_gz)
|
|
|
|
|
|
|
|
targets += config_data_size.h
|
|
|
|
$(obj)/config_data_size.h: $(KCONFIG_CONFIG) FORCE
|
|
|
|
$(call filechk,data_size)
|
2017-01-30 02:12:08 +00:00
|
|
|
|
|
|
|
# "license" command
|
|
|
|
$(obj)/license.o: $(obj)/license_data_gz.h $(obj)/license_data_size.h
|
|
|
|
|
|
|
|
targets += license_data.gz
|
|
|
|
$(obj)/license_data.gz: $(srctree)/Licenses/gpl-2.0.txt FORCE
|
|
|
|
$(call if_changed,gzip)
|
|
|
|
|
|
|
|
targets += license_data_gz.h
|
|
|
|
$(obj)/license_data_gz.h: $(obj)/license_data.gz FORCE
|
|
|
|
$(call filechk,data_gz)
|
|
|
|
|
|
|
|
targets += license_data_size.h
|
|
|
|
$(obj)/license_data_size.h: $(srctree)/Licenses/gpl-2.0.txt FORCE
|
|
|
|
$(call filechk,data_size)
|
2017-05-28 12:49:51 +00:00
|
|
|
|
|
|
|
CFLAGS_ethsw.o := -Wno-enum-conversion
|