summaryrefslogtreecommitdiff
path: root/include
Commit message (Collapse)AuthorAgeFilesLines
* efi_loader: support 16 protocols per efi_objectHeinrich Schuchardt2017-10-051-2/+2
| | | | | | | | | 8 protocols per efi_object is insufficient for iPXE. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de>
* Provide a generic io.h & address mapping functionsPaul Burton2017-10-021-0/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most architectures currently supported by U-Boot use trivial implementations of map_to_physmem & virt_to_phys which simply cast a physical address to a pointer for use a virtual address & vice-versa. This results in a lot of duplicate implementations of these mapping functions. The set of functions provided by different architectures also differs, with some having implementations of phys_to_virt & others not. A later patch will make use of phys_to_virt in architecture-neutral code, and so requires that it be provided for all architectures. This patch introduces an asm-generic/io.h which provides generic implementations of address mapping functions, allowing the duplication of them between architectures to be removed. Once architectures are converted to make use of this generic header it will also ensure that all of phys_to_virt, virt_to_phys, map_physmem & unmap_physmem are provided. The 2 families of functions differ in that map_physmem may create dynamic mappings whilst phys_to_virt may not & therefore is more limited in scope but doesn't require information such as a length & flags. This patch doesn't convert any architectures to make use of this generic header - later patches in the series will do so. Signed-off-by: Paul Burton <paul.burton@imgtec.com> Cc: Albert Aribaud <albert.u.boot@aribaud.net> Cc: Alexey Brodkin <alexey.brodkin@synopsys.com> Cc: Angelo Dureghello <angelo@sysam.it> Cc: Bin Meng <bmeng.cn@gmail.com> Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com> Cc: Macpaul Lin <macpaul@andestech.com> Cc: Michal Simek <monstr@monstr.eu> Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> Cc: Thomas Chou <thomas@wytron.com.tw> Cc: Wolfgang Denk <wd@denx.de> Acked-by: Angelo Dureghello <angelo@sysam.it> Tested-by: Angelo Dureghello <angelo@sysam.it> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
* fs: btrfs: Add U-Boot fs handlers.Marek Behún2017-10-022-0/+22
| | | | | | | | | Signed-off-by: Marek Behun <marek.behun@nic.cz> create mode 100644 fs/btrfs/Kconfig create mode 100644 fs/btrfs/Makefile create mode 100644 fs/btrfs/btrfs.c create mode 100644 include/btrfs.h
* include: Add a variadic macro to call a callback for all argumentsMarek Behún2017-10-021-0/+59
| | | | | | | | | | | | | | | | | | | Add a header variadic-macro.h which defines the CALL_MACRO_FOR_EACH marco. This macro can be used as follows: #define TEST(x) CALL_MACRO_FOR_EACH(TEST, a, b, c, d) This will expand to TEST(a) TEST(b) TEST(c) TEST(d) The nice thing is that CALL_MACRO_FOR_EACH is a variadic macro, thus the number of arguments can vary (although it has an upper limit - in this implementation 32 arguments). Signed-off-by: Marek Behun <marek.behun@nic.cz> create mode 100644 include/u-boot/variadic-macro.h
* fs: Create a common fs_devread for ext4/reiserfs/zfsMarek Behún2017-10-021-0/+17
| | | | | | | | | | | The ext4, reiserfs and zfs filesystems all have their own implementation of the same function, *_devread. Generalize this function into fs_devread and put the code into fs/fs_internal.c. Signed-off-by: Marek Behun <marek.behun@nic.cz> [trini: Move fs/fs_internal.o hunk to the end of fs/Makefile as all cases need it] Signed-off-by: Tom Rini <trini@konsulko.com>
* lib: Add CRC32-CMarek Behún2017-10-021-0/+4
| | | | | | | | This is needed for BTRFS. Signed-off-by: Marek Behun <marek.behun@nic.cz> create mode 100644 lib/crc32c.c
* Merge git://git.denx.de/u-boot-usbTom Rini2017-10-012-10/+45
|\
| * usb: xhci: Honor endpoint's intervalBin Meng2017-10-011-0/+20
| | | | | | | | | | | | | | | | | | | | | | USB endpoint reports the period between consecutive requests to send or receive data as bInverval in its endpoint descriptor. So far this is ignored by xHCI driver and the 'Interval' field in xHC's endpoint context is always programmed to zero which means 1ms for low speed or full speed , or 125us for high speed or super speed. We should honor the interval by getting it from endpoint descriptor. Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
| * dm: usb: emul: Drop usb_emul_reset()Bin Meng2017-10-011-8/+0
| | | | | | | | | | | | | | | | With the root hub unbinding in usb_stop(), there is no need to do a Sandbox-specific reset operation. usb_emul_reset() is no longer used anywhere, drop it. Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
| * usb: emul: Expose find_descriptor() as a public APIBin Meng2017-10-011-0/+11
| | | | | | | | | | | | | | This can be useful outside of the sandbox usb emulation uclass driver. Expose it as a public API with a proper prefix (usb_emul_). Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
| * usb: sandbox: Fix emulator device select logic in usb_emul_find_devnum()Bin Meng2017-10-011-2/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current emulator select logic in usb_emul_find_devnum() is to test the USB address. The USB address of the device being enumerated is initialized to zero at the beginning of the enumeration process in usb_setup_device(). At this point, the saved USB address in the platform data has not been assigned to any valid USB address either. This means: the logic will select an emulator device according to its sequence of declaring order in the device tree. Take test.dts for example, flash-stick@0 will be selected before flash-stick@1. But unfortunately such logic is wrong. In fact USB devices show up in a random order during the enumeration which means usb_emul_find_devnum() may be called on port 3 for keyb@3 before on port 0 for flash-stick@0. To fix this, we introduce a new emulator uclass specific platdata to store the USB device's port number on its parent hub, and update the logic to test the port number instead. Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
| * usb: Fix comments of usb_emul_find_for_dev()Bin Meng2017-10-011-1/+0
| | | | | | | | | | | | There is no such a parameter called 'bus'. Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
| * usb: emul: Remove maxpacketsize in usb_emul_setup_device()Bin Meng2017-10-011-3/+2
| | | | | | | | | | | | This parameter is never used. Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
* | Merge git://git.denx.de/u-boot-rockchipTom Rini2017-10-014-7/+24
|\ \
| * | evb-rk3399: avoid redefinition of CONFIG_ENV_OFFSETHeinrich Schuchardt2017-10-011-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CONFIG_ENV_OFFSET is already defined in include/configs/rockchip-common.h For CONFIG_ROCKCHIP_BACK_TO_BROM=y we redefine CONFIG_ENV_OFFSET to an unsuitable value. We were lucky to get a compiler warning. Remove the incorrect redefinition. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
| * | rk3288: vyasa: Add falcon mode supportJagan Teki2017-10-011-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | Add Falcon mode support in vyasa rk3288 board. Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
| * | rk3288: vyasa: Add TPL supportJagan Teki2017-10-011-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the size of SPL can't be exceeded 0x8000 bytes in RK3288, it is not possible add new SPL features like Falcon mode or etc. So add TPL stage so-that adding new features to SPL is possible. - TPL: DRAM init, clocks - SPL: MMC, falcon, etc Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
| * | rockchip: clk: Add rv1108 SARADC clock supportDavid Wu2017-10-011-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | The clk_saradc is dividing from the 24M, clk_saradc=24MHz/(saradc_div_con+1). SARADC integer divider control register is 10-bits width. Signed-off-by: David Wu <david.wu@rock-chips.com> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
* | | Merge tag 'signed-efi-next' of git://github.com/agraf/u-bootTom Rini2017-10-0110-29/+391
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | Patch queue for efi - 2017-10-01 Lots of new things this time. High level highlights are: - Shim support (to boot Fedora) - Initial set of unit tests - Preparations to support UEFI Shell
| * | efi_loader: Some console improvements for vidconsoleRob Clark2017-09-201-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1) use fputs() to reduce cache flushes from once-per-char to once-per-string 2) handle \r, \t, and \b in addition to just \n for tracking cursor position 3) cursor row/col are zero based, not one based Signed-off-by: Rob Clark <robdclark@gmail.com> [agraf: s/unsigned/unsigned int/] Signed-off-by: Alexander Graf <agraf@suse.de>
| * | efi_loader: set loaded image code/data type properlyRob Clark2017-09-201-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | These should be set according to the image type. Shell.efi and SCT.efi use these fields to determine what sort of image they are loading. Signed-off-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de>
| * | efi_loader: file_path should be variable lengthRob Clark2017-09-201-1/+1
| | | | | | | | | | | | | | | Signed-off-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de>
| * | efi_loader: add bootmgrRob Clark2017-09-203-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Similar to a "real" UEFI implementation, the bootmgr looks at the BootOrder and BootXXXX variables to try to find an EFI payload to load and boot. This is added as a sub-command of bootefi. The idea is that the distro bootcmd would first try loading a payload via the bootmgr, and then if that fails (ie. first boot or corrupted EFI variables) it would fallback to loading bootaa64.efi. (Which would then load fallback.efi which would look for \EFI\*\boot.csv and populate BootOrder and BootXXXX based on what it found.) Signed-off-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de>
| * | efi_loader: efi variable supportRob Clark2017-09-202-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add EFI variable support, mapping to u-boot environment variables. Variables are pretty important for setting up boot order, among other things. If the board supports saveenv, then it will be called in ExitBootServices() to persist variables set by the efi payload. (For example, fallback.efi configuring BootOrder and BootXXXX load-option variables.) Variables are *not* currently exposed at runtime, post ExitBootServices. On boards without a dedicated device for storage, which the loaded OS is not trying to also use, this is rather tricky. One idea, at least for boards that can persist RAM across reboot, is to keep a "journal" of modified variables in RAM, and then turn halt into a reboot into u-boot, plus store variables, plus halt. Whatever the solution, it likely involves some per-board support. Mapping between EFI variables and u-boot variables: efi_$guid_$varname = {attributes}(type)value For example: efi_8be4df61-93ca-11d2-aa0d-00e098032b8c_OsIndicationsSupported= "{ro,boot,run}(blob)0000000000000000" efi_8be4df61-93ca-11d2-aa0d-00e098032b8c_BootOrder= "(blob)00010000" The attributes are a comma separated list of these possible attributes: + ro - read-only + boot - boot-services access + run - runtime access NOTE: with current implementation, no variables are available after ExitBootServices, and all are persisted (if possible). If not specified, the attributes default to "{boot}". The required type is one of: + utf8 - raw utf8 string + blob - arbitrary length hex string Signed-off-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de>
| * | efi_loader: add file/filesys supportRob Clark2017-09-203-0/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | fallback.efi (and probably other things) use UEFI's simple-file-system protocol and file support to search for OS's to boot. Signed-off-by: Rob Clark <robdclark@gmail.com> [agraf: whitespace fixes, unsigned fixes] Signed-off-by: Alexander Graf <agraf@suse.de>
| * | efi_loader: refactor boot device and loaded_image handlingRob Clark2017-09-201-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Get rid of the hacky fake boot-device and duplicate device-path constructing (which needs to match what efi_disk and efi_net do). Instead convert over to use efi_device_path helpers to construct device-paths, and use that to look up the actual boot device. Also, extract out a helper to plug things in properly to the loaded_image. In a following patch we'll want to re-use this in efi_load_image() to handle the case of loading an image from a file_path. Signed-off-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de>
| * | efi_loader: flesh out device-path to textRob Clark2017-09-202-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It needs to handle more device-path node types, and also multiple levels of path hierarchy. To simplify this, initially construct utf8 string to a temporary buffer, and then allocate the real utf16 buffer that is returned. This should be mostly for debugging or at least not critical- path so an extra copy won't hurt, and is saner than the alternative. Signed-off-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de>
| * | efi_loader: drop redundant efi_device_path_protocolRob Clark2017-09-201-10/+2
| | | | | | | | | | | | | | | | | | | | | This is really the same thing as the efi_device_path struct. Signed-off-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de>
| * | efi_loader: add device-path utilsRob Clark2017-09-202-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Helpers to construct device-paths from devices, partitions, files, and for parsing and manipulating device-paths. For non-legacy devices, this will use u-boot's device-model to construct device-paths which include bus hierarchy to construct device-paths. For legacy devices we still fake it, but slightly more convincingly. Signed-off-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de>
| * | efi: add some more device path structuresPeter Jones2017-09-201-0/+54
| | | | | | | | | | | | | | | | | | Signed-off-by: Peter Jones <pjones@redhat.com> Signed-off-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de>
| * | efi: add some missing __packedRob Clark2017-09-201-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | All of the device-path related structures should be packed. UEFI defines the device-path as a byte-aligned data structure. Signed-off-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de>
| * | part: extract MBR signature from partitionsPeter Jones2017-09-201-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | EFI client programs need the signature information from the partition table to determine the disk a partition is on, so we need to fill that in here. Signed-off-by: Peter Jones <pjones@redhat.com> [separated from efi_loader part, and fixed build-errors for non- CONFIG_EFI_PARTITION case] Signed-off-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de>
| * | part: move efi_guid_tRob Clark2017-09-203-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | Prep work for next patch. Signed-off-by: Rob Clark <robdclark@gmail.com> Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
| * | efi_loader: implement queueing of the notification functionHeinrich Schuchardt2017-09-181-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the correct implementation of the task priority level (TPL) calling the notification function must be queued. Add a status field 'queued' to events. In function efi_signal_event set status queued if a notification function exists and reset it after we have called the function. A later patch will add a check of the TPL here. In efi_create_event and efi_close_event unset the queued status. In function efi_wait_for_event and efi_check_event queue the notification function. In efi_timer_check call the efi_notify_event if the status queued is set. For all timer events set status signaled. In efi_console_timer_notify set the signaled state of the WaitForKey event. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
| * | efi_selftest: provide an EFI selftest applicationHeinrich Schuchardt2017-09-182-0/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A testing framework for the EFI API is provided. It can be executed with the 'bootefi selftest' command. It is coded in a way that at a later stage we may turn it into a standalone EFI application. The current build system does not allow this yet. All tests use a driver model and are run in three phases: setup, execute, teardown. A test may be setup and executed at boottime, it may be setup at boottime and executed at runtime, or it may be setup and executed at runtime. After executing all tests the system is reset. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
| * | efi_loader: allow return value in EFI_CALLHeinrich Schuchardt2017-09-181-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Macro EFI_CALL was introduced to call an UEFI function. Unfortunately it does not support return values. Most UEFI functions have a return value. So let's rename EFI_CALL to EFI_CALL_VOID and introduce a new EFI_CALL macro that supports return values. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
| * | efi_loader: fix typo in include/efi.hHeinrich Schuchardt2017-09-181-1/+1
| | | | | | | | | | | | | | | | | | | | | Fix typo in teh EFI_BOOT_SERVICES_CODE description. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
| * | efi_loader: rename __efi_hello_world_*Heinrich Schuchardt2017-09-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In scripts/Makefile.lib we build section including helloworld.efi. This allows to load the EFI binary with command 'bootefi hello'. scripts/Makefile.lib contains explicit references to strings containing helloworld and hello_world. This makes it impossible to generalize the coding to accomodate additional built in EFI binaries. Let us rename the variables __efi_hello_world_* to __efi_helloworld_*. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
| * | efi_loader: write protocol GUID in OpenProtocolHeinrich Schuchardt2017-09-181-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | To understand what is happening in OpenProtocol or LocateProtocol it is necessary to know the protocol interface GUID. Let's write a debug message. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
* | | env: ti: boot: Show boot status informationSam Protsenko2017-09-291-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add tracing printings to Linux/Android boot commands, so that we can see what's going on. Helps to trace possible bugs on early stages and improves the output for user (which is especially useful, because we have a bunch of boot commands executing one by one). Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> Reviewed-by: Tom Rini <trini@konsulko.com>
* | | env: ti: boot: Extract command for eMMC Linux bootSam Protsenko2017-09-291-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | Extract commands for booting Linux from eMMC to separate command. It seems more logical that way, and allows us to run the whole command set from U-Boot shell with only one command. Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> Reviewed-by: Tom Rini <trini@konsulko.com>
* | | arm: dra7xx: Fix Linux boot from eMMCSam Protsenko2017-09-291-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Right now on OMAP5-based boards we have only one partition defined for Linux boot, which is rootfs. That doesn't work with bootpart=1:2 (that is defined in include/environment/ti/boot.h). To fix Linux boot we may either: 1. Change bootpart to be 1:1 2. Or add preceding partition, so that rootfs is actually 1:2 Second choice seems more reasonable, as DFU is already using similar partition table and can rely on bootpart to be 1:2. This patch adds "bootloader" partition. So now eMMC layout for Linux boot looks like this: offset content size partition (KiB) (KiB) Reviewed-by: Tom Rini <trini@konsulko.com> ======================================================================= 0 +--------------------------------+ | MBR/GPT header | 128 - 128 +--------------------------------+ | MLO | 256 - 384 +--------------------------------+ | u-boot.img | 1792 bootloader 2176 +--------------------------------+ | //////////// hole //////////// | 256 - 2432 +--------------------------------+ | U-Boot environment | 128 - 2560 +--------------------------------+ | U-Boot environment (redundant) | 128 - 2688 +--------------------------------+ | rootfs | remaining rootfs end +--------------------------------+ ======================================================================= Guard hole appears because U-Boot environment offset was calculated for Android partition table, which has two additional partitions in place of that hole ("environment" and "misc" partitions). This patch also changes rootfs offset from 2 MiB further to 2688 KiB, so that there won't be any collisions with U-Boot environment when we flash rootfs. Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
* | | arm: am57xx: Fix Linux boot from eMMCSam Protsenko2017-09-291-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Right now on OMAP5-based boards we have only one partition defined for Linux boot, which is rootfs. That doesn't work with bootpart=1:2 (that is defined in include/environment/ti/boot.h). To fix Linux boot we may either: 1. Change bootpart to be 1:1 2. Or add preceding partition, so that rootfs is actually 1:2 Second choice seems more reasonable, as DFU is already using similar partition table and can rely on bootpart to be 1:2. This patch adds "bootloader" partition. So now eMMC layout for Linux boot looks like this: offset content size partition (KiB) (KiB) Reviewed-by: Tom Rini <trini@konsulko.com> ======================================================================= 0 +--------------------------------+ | MBR/GPT header | 128 - 128 +--------------------------------+ | MLO | 256 - 384 +--------------------------------+ | u-boot.img | 1792 bootloader 2176 +--------------------------------+ | //////////// hole //////////// | 256 - 2432 +--------------------------------+ | U-Boot environment | 128 - 2560 +--------------------------------+ | U-Boot environment (redundant) | 128 - 2688 +--------------------------------+ | rootfs | remaining rootfs end +--------------------------------+ ======================================================================= Guard hole appears because U-Boot environment offset was calculated for Android partition table, which has two additional partitions in place of that hole ("environment" and "misc" partitions). This patch also changes rootfs offset from 2 MiB further to 2688 KiB, so that there won't be any collisions with U-Boot environment when we flash rootfs. Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
* | | configs: keystone2: env: Fix burn_uboot_spi commandLokesh Vutla2017-09-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Now the u-boot spi image is greater than 0x80000, increase the same in env during spi erase. Reported-by: Yan Liu <yan-liu@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
* | | configs: k2g_evm: Make findfdt command populate fdtfile variableAndrew F. Davis2017-09-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | On all other platforms the command 'findfdt' populates the variable 'fdtfile', but on K2G we only populate 'name_fdt'. The generic boot and automation scripts fail when 'findfdt' is not populated, fix this for K2G. Signed-off-by: Andrew F. Davis <afd@ti.com>
* | | configs: am43xx_evm: Avoid relocation onto firewall at the end of DRAMAndrew F. Davis2017-09-291-0/+5
| | | | | | | | | | | | | | | | | | | | | On secure devices the initial secure software may install a firewall at the end of DRAM, define protected RAM to avoid space. Signed-off-by: Andrew F. Davis <afd@ti.com>
* | | ARM: omap3: am3517-evm: Add device tree and DM supportAdam Ford2017-09-291-13/+1
| | | | | | | | | | | | | | | | | | | | | | | | With the device tree ported from Linux 4.13, this enables Driver Model and Device Tree support for the am3517-evm Signed-off-by: Adam Ford <aford173@gmail.com> Tested-by: Derald D. Woods <woods.technical@gmail.com>
* | | ARM: da850-evm: Enable DM_I2CAdam Ford2017-09-291-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With DM now enabled with the device tree pulled from Linux, we can enable DM_I2C in U-Boot. Reviewed-by: Jagan Teki <jagan@openedev.com> Signed-off-by: Adam Ford <aford173@gmail.com> [trini: Add DM_I2C_COMPAT to da850_am18xxevm to fix warning] Signed-off-by: Tom Rini <trini@konsulko.com>
* | | arm: da850-evm: Enable MTD Parts in SPI FlashAdam Ford2017-09-291-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a discrepency between U-Boot and Linux on the partition map. This enabes the MTD parts to pass MTD partition information from U-Boot to Linux. Linux already has a pending patch to enable MTD PARTS in davinci_all_defconfig Reviewed-by: Jagan Teki <jagan@openedev.com> Signed-off-by: Adam Ford <aford173@gmail.com>
* | | arm: da850-evm: Enable DM and device tree support for da850-evmAdam Ford2017-09-291-2/+39
| |/ |/| | | | | | | | | | | | | | | | | | | With the device tree ported and DM compatible drivers, enable: OF_CONTROL, DM_SPI, DM_SPI_FLASH and DM_SERIAL Note: DM_SERIAL is not enabled for da850evm_direct_nor_defconfig yet. Reviewed-by: Jagan Teki <jagan@openedev.com> Signed-off-by: Adam Ford <aford173@gmail.com>