u-boot/cmd
Masahiro Yamada 2808576491 arm64: booti: allow to place kernel image anywhere in physical memory
At first, the ARM64 Linux booting requirement recommended that the
kernel image be placed text_offset bytes from 2MB aligned base near
the start of usable system RAM because memory below that base address
was unusable at that time.

This requirement was relaxed by Linux commit a7f8de168ace ("arm64:
allow kernel Image to be loaded anywhere in physical memory").
Since then, the bit 3 of the flags field indicates the tolerance
of the kernel physical placement.  If this bit is set, the 2MB
aligned base may be anywhere in physical memory.  For details, see
Documentation/arm64/booting.txt of Linux.

The booti command should be also relaxed.  If the bit 3 is set,
images->ep is respected, and the image is placed at the nearest
bootable location.  Otherwise, it is relocated to the start of the
system RAM to keep the original behavior.

Another wrinkle we need to take care of is the unknown endianness of
text_offset for a kernel older than commit a2c1d73b94ed (i.e. v3.16).
We can detect this based on the image_size field.  If the field is
zero, just use a fixed offset 0x80000.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2017-03-14 20:40:23 -04:00
..
fastboot fastboot: simplify the Kconfig logic 2016-11-21 14:07:33 -05:00
mvebu arm64: mvebu: Update bubt command MMC block device access 2017-01-25 07:04:22 +01:00
.gitignore cmd: rework "license" command 2017-02-08 15:56:28 -05:00
aes.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
ambapp.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
armflash.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
bdinfo.c x86: bdinfo: Drop meaningless values 2016-08-16 11:44:09 +08:00
bedbug.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
blkcache.c cmd: blkcache: simplify sub-command handling 2016-04-11 12:44:38 -04:00
blob.c crypto/fsl: Update blob cmd to accept 64bit addresses 2016-08-02 09:45:39 -07:00
bmp.c dm: Use uclass_first_device_err() where it is useful 2016-03-14 15:34:50 -06:00
boot.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
bootefi.c disk: convert CONFIG_ISO_PARTITION to Kconfig 2017-01-28 08:47:35 -05:00
booti.c arm64: booti: allow to place kernel image anywhere in physical memory 2017-03-14 20:40:23 -04:00
bootldr.c Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
bootm.c cmd: bootm: fix build when CONFIG_CMD_IMLS_NAND 2017-02-08 15:56:32 -05:00
bootmenu.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
bootstage.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
bootz.c bootz/booti: relocate ramdisk if CONFIG_SYS_BOOT_RAMDISK_HIGH set 2017-01-24 10:35:55 -05:00
cache.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
cbfs.c cbfs: Update a function to be static 2016-03-22 12:16:08 -04:00
clk.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
config.c cmd: add a new command "config" to show .config contents 2017-02-08 15:56:26 -05:00
console.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
cplbinfo.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
cpu.c cpu: Add support for microcode version and CPU ID 2016-03-17 10:27:22 +08:00
cramfs.c flash: complete CONFIG_SYS_NO_FLASH move with renaming 2017-02-12 14:30:25 -05:00
cros_ec.c cmd: crosec: Move cros_ec_decode_region helper to cmd/cros_ec.c 2016-12-02 21:04:48 -07:00
dataflash_mmc_mux.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
date.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
dcr.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
demo.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
dfu.c common: dfu: saperate the dfu common functionality 2016-09-27 23:30:18 +02:00
diag.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
disk.c cmd: Rework disk.c usage 2016-09-09 15:53:14 -04:00
display.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
dtt.c bug.h: move BUILD_BUG_* defines to include/linux/bug.h 2016-01-25 10:39:59 -05:00
echo.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
eeprom.c eeprom: merge cmdline parsing of eeprom commands 2016-05-20 20:42:57 -04:00
efi.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
elf.c bootm: qnx: Disable data cache before booting QNX image 2017-01-20 15:38:05 -05:00
ethsw.c Merge branch 'master' of git://git.denx.de/u-boot-net 2016-01-28 18:42:10 -05:00
exit.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
ext2.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
ext4.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
fastboot.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
fat.c cmd/fat: Do not crash on write when <bytes> is not specified 2016-09-23 08:55:58 -04:00
fdc.c Fix spelling of "occurred". 2016-05-02 18:37:09 -04:00
fdt.c cmd/fdt: Make fdt get value endian-safe for single-cell properties 2017-01-14 10:09:46 -07:00
fitupd.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
flash.c flash: complete CONFIG_SYS_NO_FLASH move with renaming 2017-02-12 14:30:25 -05:00
fpga.c fpga: Use enum for bitstream command types 2017-01-10 10:21:59 +01:00
fpgad.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
fs.c efi_loader: Pass file path to payload 2016-04-18 17:11:36 -04:00
fs_uuid.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
fuse.c treewide: replace #include <asm/errno.h> with <linux/errno.h> 2016-09-23 17:55:42 -04:00
gettime.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
gpio.c gpio: Report errors when GPIOs cannot be read 2016-03-17 21:27:37 -06:00
gpt.c cmd, disk: convert CONFIG_PARTITION_UUIDS, CMD_PART and CMD_GPT 2017-01-28 08:48:03 -05:00
hash.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
help.c Drop command-processing code when CONFIG_CMDLINE is disabled 2016-04-01 17:17:40 -04:00
host.c cmd/host: add missing \n in help text 2017-01-20 09:15:24 -05:00
i2c.c Various, unrelated tree-wide typo fixes. 2016-07-16 09:43:12 -04:00
ide.c status_led: Kconfig migration 2017-01-21 15:12:33 -05:00
immap.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
ini.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
io.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
iotrace.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
irq.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
itest.c cmd: replace the cast of the memory access to a fixed bit type in itest 2016-05-27 10:01:07 -04:00
jffs2.c nand: Embed mtd_info in struct nand_chip 2016-06-03 20:27:48 -05:00
Kconfig cmd: move CONFIG_CMD_UNZIP and CONFIG_CMD_ZIP to Kconfig 2017-02-08 16:24:28 -05:00
ldrinfo.c Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
led.c status_led: Kconfig migration 2017-01-21 15:12:33 -05:00
license.c cmd: rework "license" command 2017-02-08 15:56:28 -05:00
load.c flash: complete CONFIG_SYS_NO_FLASH move with renaming 2017-02-12 14:30:25 -05:00
log.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
lzmadec.c lzmadec: Use the same type as the lzma call 2016-07-25 12:05:54 -04:00
mac.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
Makefile cmd: rework "license" command 2017-02-08 15:56:28 -05:00
md5sum.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
mdio.c common: miiphyutil: Work and report phy address in hex in mdio cmd 2016-12-02 14:36:02 +01:00
mem.c flash: complete CONFIG_SYS_NO_FLASH move with renaming 2017-02-12 14:30:25 -05:00
mfsl.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
mii.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
misc.c cmd: misc: Add support for fractions in sleep 2016-07-25 12:00:05 -04:00
mmc.c mmc: add bkops-enable command 2016-12-01 11:09:44 +09:00
mmc_spi.c dm: block: Rename device number member dev to devnum 2016-03-14 15:34:50 -06:00
mp.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
mtdparts.c mtd: fix compiler warnings 2016-07-24 20:36:29 -05:00
nand.c nand: Fix some more NULL name tests 2016-09-01 20:08:48 -05:00
net.c cmd: net: fix function name in comment 2016-12-27 11:24:18 -05:00
nvedit.c Various, accumulated typos collected from around the tree. 2016-10-06 20:57:40 -04:00
onenand.c cmd/onenand.c: block align warning 2016-10-06 20:57:42 -04:00
otp.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
part.c cmd, disk: convert CONFIG_PARTITION_UUIDS, CMD_PART and CMD_GPT 2017-01-28 08:48:03 -05:00
pci.c cmd: pci: add option to parse and display BAR information 2016-12-09 08:40:18 -05:00
pcmcia.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
pmic.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
portio.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
pxe.c pxe: Fix pxe boot with FIT image 2016-09-07 08:49:02 -04:00
qfw.c cmd: qfw: do not require default macros when building qfw command 2016-05-23 15:18:00 +08:00
read.c dm: block: Adjust device calls to go through helpers function 2016-03-14 15:34:50 -06:00
reginfo.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
regulator.c power: regulator: Introduce regulator_set_value_force function 2016-11-25 10:00:04 -07:00
reiser.c disk: convert CONFIG_DOS_PARTITION to Kconfig 2017-01-28 08:47:34 -05:00
remoteproc.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
sata.c cmd: sata: fix init command return value 2017-01-14 16:46:23 -05:00
scsi.c cmd: scsi: Make private functions static 2016-12-02 14:37:32 +01:00
setexpr.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
sf.c sf: fix sf probe 2016-09-12 08:44:54 -04:00
sha1sum.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
softswitch.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
sound.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
source.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
spi.c cmd: spi: check return value of strdup 2016-03-27 09:12:55 -04:00
spibootldr.c Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
spl.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
strings.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
terminal.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
test.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
thordown.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
time.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
tpm.c lib: tpm: Add command to flush resources 2017-02-01 09:02:57 +01:00
tpm_test.c cmd/tpm_test: Fix misleading code indentation 2016-12-02 10:37:47 -07:00
trace.c trace: Fix compiler warnings in trace 2016-02-26 08:53:10 -07:00
tsi148.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
ubi.c cmd: ubi: allow '-' to specify maximum volume size 2017-01-26 07:00:25 +01:00
ubifs.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
universe.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
unzip.c dm: blk: Rename get_device() to blk_get_device_by_str() 2016-03-14 15:34:50 -06:00
usb.c usb: storage: Show number of storage devices detected for DM_USB 2017-01-17 10:26:21 +01:00
usb_mass_storage.c dm: usb: Use blk_dread/write() instead of direct calls 2016-07-27 14:15:54 -06:00
version.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
ximg.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
yaffs2.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00
zfs.c disk: convert CONFIG_EFI_PARTITION to Kconfig 2017-01-28 08:47:42 -05:00
zip.c Remove the cmd_ prefix from command files 2016-01-25 10:39:43 -05:00