aboutsummaryrefslogtreecommitdiff
path: root/common
AgeCommit message (Collapse)AuthorFilesLines
2018-11-14blk: Call part_init() in the post_probe() methodBin Meng1-3/+1
part_init() is currently called in every DM BLK driver, either in its bind() or probe() method. However we can use the BLK uclass driver's post_probe() method to do it automatically. Update all DM BLK drivers to adopt this change. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2018-11-14dm: cpu: Fix print_cpuinfo() outputBin Meng1-1/+1
It was observed that current output of print_cpuinfo() on QEMU x86 targets does not have an ending '\n', neither have a leading 'CPU:' any more. However it used to have these before. It turns out commit c0434407b595 introduced a unified DM version of print_cpuinfo() that exposed such issue on QEMU x86. Fixes: c0434407b595 ("board_f: Use static print_cpuinfo if CONFIG_CPU is active") Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2018-11-14board_f: Use static print_cpuinfo if CONFIG_CPU is activeMario Six1-0/+28
When the DM CPU drivers are active, printing information about a CPU should be delegated to a matching driver. Hence, add a static print_cpuinfo that implements this delegation when DM CPU drivers are active. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> Changed condition to CONFIG_IS_ENABLED(CPU): Signed-off-by: Simon Glass <sjg@chromium.org>
2018-11-09common: build ymodem only on needJun Nie1-1/+2
Build ymodem only on need to shrink spl image size. Signed-off-by: Jun Nie <jun.nie@linaro.org>
2018-11-09common: Compile error with CONFIG_MULTI_DTB_FIT and not SPLLars Povlsen1-1/+0
common/common_fit.c is including <spl.h>, but not actually using it. The inclusion will cuase compile error on platforms using CONFIG_OF_SEPARATE and not SPL. Signed-off-by: Lars Povlsen <lars.povlsen@microsemi.com> Reviewed-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
2018-11-09spl: fix debug prints for tiny printfSimon Goldschmidt1-8/+6
Tiny printf does not support %.*s and %lX. Since tiny printf should be very common in SPL, replace these by %32s (for printing image name) and %lx. Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2018-11-09fit: Add missing CR in debug output in fit_find_config_node()Stefan Roese1-1/+1
Testing has shown that a line-break is missing in one debug line in fit_find_config_node(). Signed-off-by: Stefan Roese <sr@denx.de>
2018-11-07Revert "board_f: Use static print_cpuinfo if CONFIG_CPU is active"Bin Meng1-28/+0
This reverts commit c0434407b595f785fc7401237896c48c791b45fd. It turns out commit c0434407b595 broke some boards which have DM CPU driver with CONFIG_DISPLAY_CPUINFO option on. These boards just fail to boot when print_cpuinfo() is called during boot. Fixes are already sent to ML and in u-boot-dm/next, however since we are getting close to the v2018.11 release, it's safer we revert the original commit. This commit should be reverted after v2018.11 release. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2018-10-25Merge branch 'master' of git://git.denx.de/u-boot-netTom Rini1-0/+5
2018-10-25Merge tag 'u-boot-imx-20181025' of git://git.denx.de/u-boot-imxTom Rini1-0/+1
Merged imx8 architecture, fix build for imx8 + warnings
2018-10-24miiphy: Add function to retrieve MDIO bus list headPankaj Bansal1-0/+5
In upcoming freescale board LX2160AQDS, the MDIO bus is muxed. i.e. same MDIO bus can be routed to eight different slots depending on mux register settings. To support this mdio mux behavior, we add each MDIO bus mux as a separate MDIO bus. Now, various phy devices can be attached to each of these slots(mux). The information about these devices is passed to OS via device tree. To do the fdt fixups related to MDIO bus, its necessary that MDIO bus list is accessed.Therefore, add a function to retrieve the list head. Signed-off-by: Pankaj Bansal <pankaj.bansal@nxp.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
2018-10-22tools: add i.MX8/8X image supportPeng Fan1-0/+1
i.MX8/8X bootable image type is container type. The bootable image, containers a container set which supports two container. The 1st container is for SECO firmware, the 2nd container needs to include scfw, m4_0/1 image, ACore images per your requirement. Signed-off-by: Peng Fan <peng.fan@nxp.com>
2018-10-16spl: fpga: Implement fpga bistream loading with fpga_loadMichal Simek1-18/+16
This patch partially reverts: "spl: fit: Add support for loading FPGA bitstream" (sha1: 26a642238bdecc53527142dc043b29e21c5cc94c) There shouldn't be a need to call private spl_load_fpga_image function because the whole sequence should be already handled by fpga framework. If there is missing loading bistream by chunks it should be done via fpga framework instead of having private hooks. Also spl_load_fpga_image() weak function is not used anywhere and opening a way for not reviewed hacks out of mainline U-Boot is not the right way to go. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2018-10-10Merge tag 'dm-9oct18' of git://git.denx.de/u-boot-dmTom Rini2-3/+4
Test improvements to tidy up output and drop duplicate tests Sandbox SPL/TPL support Various dm-related improvements
2018-10-10bootm: Add board specific OS preboot hookMarek Vasut1-0/+7
Add board-specific hook which is executed before the code hands over control to the OS. This lets the board perform some last-minute clean ups. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Tom Rini <trini@konsulko.com> Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
2018-10-09cros: Adjust board_get_cros_ec_dev() to return a udeviceSimon Glass1-2/+2
Rather than returning what is effectively an internal data structure, return the cros EC device itself. Signed-off-by: Simon Glass <sjg@chromium.org>
2018-10-09sandbox: Add a flag to set the default log levelSimon Glass1-1/+2
It is useful to be able to set the default log level from the command line when running sandbox. Add a new -L command-line flag for this. The log level is set using the enum log_level_t in log.h. At present a number must be specified, e.g. -L7 for debug. Signed-off-by: Simon Glass <sjg@chromium.org>
2018-10-07avb_verify: support using OP-TEE TA AVBJens Wiklander1-1/+117
With CONFIG_OPTEE_TA_AVB use the trusted application AVB provided by OP-TEE to manage rollback indexes and device-lock status. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
2018-10-06spl: spi: Do not hardcode fixed size for headerMichal Simek1-3/+3
Find out size directly from header structure. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2018-10-06spl: ram: Fix u_boot_pos calculationMichal Simek1-3/+2
The patch: "spl: Weed out CONFIG_SYS_TEXT_BASE usage" (sha1: 04ce5427bd3914cab8be78513275a20ab878520a) introduced bug where assigning to u_boot_pos variable wasn't done which end up in situation where SPL wasn't able to find out image on the selected address. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2018-10-06configs: drop CONFIG_SYS_EXTRA_ENV_RELOCSimon Goldschmidt1-7/+4
Instead of manually specifying CONFIG_SYS_EXTRA_ENV_RELOC for every board that needs it, it shouldn't hurt to let initr_reloc_global_data() always relocate gd->env_addr unless we know this pointer is outside the initial binary. To achieve this, the relocation is omitted if CONFIG_ENV_ADDR is defined (and ENV_IS_EMBEDDED is not). Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
2018-10-05Merge tag 'rockchip-for-v2018.11-rc2' of git://git.denx.de/u-boot-rockchipTom Rini4-0/+27
Rockchip-focused changes for v2018.11-rc2: - fixes to rkimage for SPL boot via USB - fixes to make_fit_atf.py, incl. entry-point calculation and python3 compatibility - OP-TEE support for ARMv7-based SoCs - fixes to RGMII/GMII selection on the RK3328 Signed-off-by: Tom Rini <trini@konsulko.com>
2018-10-05ARC: Enable DISPLAY_CPUINFO & DISPLAY_BOARDINFOAlexey Brodkin1-2/+2
With implemented print_cpuinfo() and model property in .dts we're ready to print nice info about ARC cores and boards on boot. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2018-10-04spl: add support to booting with OP-TEEKever Yang4-0/+27
OP-TEE is an open source trusted OS, in armv7, its loading and running are like this: loading: - SPL load both OP-TEE and U-Boot running: - SPL run into OP-TEE in secure mode; - OP-TEE run into U-Boot in non-secure mode; To make code simple, it would be fine to use IH_OS_TEE for the os tyle in TPL(just like IH_OS_LINUX is using both in SPL and U-Boot). Here is the diagram for SPL loading OP-TEE, IH_OS_TEE:(make u-boot.itb for SPL) Non-Secure Secure BootROM | v SPL | v --------- OP-TEE | v U-Boot | V Linux For other two king of OP-TEE loading/booting, see commit message: 45b55712d4 image: Add IH_OS_TEE for TEE chain-load boot More detail: https://github.com/OP-TEE/optee_os and search for 'boot arguments' for detail entry parameter in: core/arch/arm/kernel/generic_entry_a32.S Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Cc: Bryan O'Donoghue <bryan.odonoghue@linaro.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
2018-10-02Merge branch 'master' of git://git.denx.de/u-boot-spiTom Rini2-2/+2
This is the PR for SPI-NAND changes along with few spi changes. [trini: Re-sync changes for ls1012afrwy_qspi*_defconfig] Signed-off-by: Tom Rini <trini@konsulko.com>
2018-09-30spl: mmc: Report device number when we failAlex Kiernan1-1/+2
If we fail to find the MMC boot device, report the number of the one we were looking for in the error to aid diagnosis. Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
2018-09-29Convert CONFIG_DISABLE_CONSOLE to KconfigChristian Gmeiner1-0/+5
This converts the following to Kconfig: CONFIG_DISABLE_CONSOLE Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
2018-09-27Merge tag 'xilinx-for-v2018.11' of git://git.denx.de/u-boot-microblazeTom Rini2-5/+2
Xilinx changes for v2018.11 - Handle BOARD_LATE_INIT via Kconfig SPL: - Enable GZIP for all partitions types(not only for kernel) ZynqMP: - Rearrange pmufw version handling - Support newer PMUFW with improved fpga load sequence Zynq: - Cleanup config file - Simplify zybo config by enabling option via Kconfig net: - Fix gems max-speed property reading - Enable support for fixed-link phys
2018-09-26Merge tag 'signed-efi-next' of git://github.com/agraf/u-bootTom Rini2-2/+2
Patch queue for efi - 2018-09-26 A lot of goodness in this release. We're *very* close to running the UEFI Shell and SCT natively. The only missing piece are HII protocols. - FAT write support (needed for SCT) - improved FAT directory support (needed for SCT) - RTC support with QEMU -M virt - Sandbox support (run UEFI binaries in Linux - yay) - Proper UTF-16 support - EFI_UNICODE_COLLATION_PROTOCOL support (for UEFI Shell) - EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL support (for UEFI Shell) - Fix window size determination - Fix Tegra by explicitly unmapping RAM - Clean up handle entanglement - Lots of generic code cleanup [trini: Fixup merge conflict in include/configs/qemu-arm.h] Signed-off-by: Tom Rini <trini@konsulko.com>
2018-09-26sandbox: Fix set_working_fdt_addr usersAlexander Graf2-2/+2
When running sandbox with the new pointer sanitization we just recently introduced, we're running into a case with FIT images where we end up interpreting pointers as addresses. What happened is that most callers of set_working_fdt_addr() simply convert pointers into addresses without taking into account that they might be 2 separate address spaces. Fix the callers up to map their pointers into addresses. This makes sandbox tests pass for me again. Signed-off-by: Alexander Graf <agraf@suse.de>
2018-09-26spl: fit: Enable GZIP compression also for no kernel partitionsMichal Simek1-4/+1
There is no reason to limit gzip usage only for OS_BOOT and kernel image type. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Tested-by: York Sun <york.sun@nxp.com>
2018-09-26arm64: zynqmp: Handle CONFIG_BOARD_LATE_INIT via KconfigMichal Simek1-1/+1
Disable BOARD_LATE_INIT via Kconfig. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2018-09-25spl: Weed out CONFIG_SYS_TEXT_BASE usageMarek Vasut10-20/+21
The SPL loaders assume that the CONFIG_SYS_TEXT_BASE memory location is available and can be corrupted by loading ie. uImage or fitImage headers there. Sometimes it could be beneficial to load the headers elsewhere, ie. if CONFIG_SYS_TEXT_BASE is not yet writable while we still want to parse the image headers in some local onchip memory to ie. extract firmware from that image. Add the possibility to override the location where the headers get loaded by introducing new function, spl_get_load_buffer() which takes two arguments -- offset from the CONFIG_SYS_TEXT_BASE and size of the data that are to be loaded there -- and returns a valid buffer address or hangs the system. The default behavior is the same as before, add the offset to CONFIG_SYS_TEXT_BASE and return that address. User can override the weak spl_get_load_buffer() function though. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Tom Rini <trini@konsulko.com> Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
2018-09-20mtd: move NAND files into a raw/ subdirectoryMiquel Raynal2-2/+2
NAND flavors, like serial and parallel, have a lot in common and would benefit to share code. Let's move raw (parallel) NAND specific code in a raw/ subdirectory, to ease the addition of a core file in nand/ and the introduction of a spi/ subdirectory specific to SPI NANDs. Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
2018-09-18board_f: Use static print_cpuinfo if CONFIG_CPU is activeMario Six1-0/+28
When the DM CPU drivers are active, printing information about a CPU should be delegated to a matching driver. Hence, add a static print_cpuinfo that implements this delegation when DM CPU drivers are active. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc> Changed condition to CONFIG_IS_ENABLED(CPU): Signed-off-by: Simon Glass <sjg@chromium.org>
2018-09-18common: board_f: Sort includesMario Six1-1/+1
Includes should be sorted. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc>
2018-09-18board_f: Add reset status printingMario Six1-0/+28
To print the reset status during boot, add a method print_resetinfo to board_f, which is called in init_sequence_f[], that gets the reset information from the sysreset driver (assuming there is only one seems reasonable), and prints it. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc>
2018-09-11spl: Allow remoteproc drivers to be used within SPLLokesh Vutla1-0/+6
Add an option for building remoteproc drivers within SPL. Reviewed-by: Tom Rini <trini@konsulko.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2018-09-11spl: Allow mailbox drivers to be used within SPLLokesh Vutla1-0/+8
Add an option for building mailbox drivers within SPL. Reviewed-by: Tom Rini <trini@konsulko.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
2018-09-11arm: K3: Add initial support for TI's K3 generation of SoCsLokesh Vutla1-1/+1
Add support for Texas Instruments' K3 Generation Processor families. Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2018-09-10Remove <inttypes.h> includes and PRI* usages in printf() entirelyMasahiro Yamada2-19/+14
In int-ll64.h, we always use the following typedefs: typedef unsigned int u32; typedef unsigned long uintptr_t; typedef unsigned long long u64; This does not need to match to the compiler's <inttypes.h>. Do not include it. The use of PRI* makes the code super-ugly. You can simply use "l" for printing uintptr_t, "ll" for u64, and no modifier for u32. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2018-09-10cli: handle getch errorPatrick Delaunay1-0/+4
Handle getch error (when getch return 0x0) to avoid display issue in the console. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
2018-09-10console: unify fgetc function when console MUX is deactivatedPatrick Delaunay1-4/+5
Unify the fgetc function when MUX is activated or not: - always call tstc() : it is the normal behavior expected by serial uclass (call tstc then getc) and that avoids issue when SERIAL_RX_BUFFER is activated - reload WATCHDOG in the char waiting loop This patch allow to have the same behavior when CONSOLE_MUX is activated or not and avoid regression when this feature is deactivated. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2018-08-31spl: Kconfig: Fix typo in 'Upgrade'Fabio Estevam1-2/+2
Correct the spelling of 'Upgrade'. Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
2018-08-24malloc_simple: calloc: don't call memset if malloc failedSimon Goldschmidt1-1/+2
malloc_simple() can return 0 if out of memory. Don't call memset from calloc() in this case but rely on the caller checking the return value. Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com> Reviewed-by: Marek Vasut <marex@denx.de>
2018-08-24common: avb_verify: Fix division by zero in mmc_byte_io()Eugeniu Rosca1-0/+3
Compiling U-Boot with ubsan/asan libraries and running it in sandbox may lead to below backtrace: => avb init 0 => avb verify ## Android Verified Boot 2.0 version 1.1.0 read_is_device_unlocked not supported yet common/avb_verify.c:407:31: runtime error: division by zero AddressSanitizer:DEADLYSIGNAL Reviewed-by: Igor Opaniuk <igor.opaniuk@linaro.org> ================================================================= ==9388==ERROR: AddressSanitizer: FPE on unknown address 0x0000004b467f \ (pc 0x0000004b467f bp 0x000000000000 sp 0x7ffd899fe150 T0) #0 0x4b467e in mmc_byte_io common/avb_verify.c:407 #1 0x4b4c47 in mmc_byte_io common/avb_verify.c:532 #2 0x4b4c47 in read_from_partition common/avb_verify.c:533 #3 0x69dc0d in load_and_verify_vbmeta lib/libavb/avb_slot_verify.c:560 #4 0x6a1ee6 in avb_slot_verify lib/libavb/avb_slot_verify.c:1139 #5 0x45dabd in do_avb_verify_part cmd/avb.c:245 #6 0x4af77c in cmd_call common/command.c:499 #7 0x4af77c in cmd_process common/command.c:538 #8 0x46bafc in run_pipe_real common/cli_hush.c:1677 #9 0x46bafc in run_list_real common/cli_hush.c:1875 #10 0x46c780 in run_list common/cli_hush.c:2024 #11 0x46c780 in parse_stream_outer common/cli_hush.c:3216 #12 0x46d34b in parse_file_outer common/cli_hush.c:3299 #13 0x4ad609 in cli_loop common/cli.c:217 #14 0x4625ae in main_loop common/main.c:65 #15 0x46f2d1 in run_main_loop common/board_r.c:648 #16 0x640253 in initcall_run_list lib/initcall.c:30 #17 0x46f9d0 in board_init_r common/board_r.c:879 #18 0x40539b in main arch/sandbox/cpu/start.c:321 #19 0x7fa94925f82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f) #20 0x408908 in _start (/srv/R/u-boot-master/u-boot+0x408908) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: FPE common/avb_verify.c:407 in mmc_byte_io ==9388==ABORTING Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
2018-08-24common: avb_verify: Fix never-occurring avb_free(ops_data)Eugeniu Rosca1-1/+1
Cppcheck (v1.85) reports w/o this patch: [common/avb_verify.c:738] -> [common/avb_verify.c:741]: (warning) \ Either the condition 'ops' is redundant or there is possible null \ pointer dereference: ops. Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com> Reviewed-by: Igor Opaniuk <igor.opaniuk@linaro.org>
2018-08-24common: avb_verify: Fix memory leaksEugeniu Rosca1-5/+8
Cppcheck (v1.85) reports w/o this patch: [common/avb_verify.c:351]: (error) Memory leak: part [common/avb_verify.c:356]: (error) Memory leak: part [common/avb_verify.c:361]: (error) Memory leak: part [common/avb_verify.c:366]: (error) Memory leak: part Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com> Reviewed-by: Igor Opaniuk <igor.opaniuk@linaro.org>
2018-08-24common: avb_verify: Make local data staticEugeniu Rosca1-1/+1
Fix sparse complaint: common/avb_verify.c:14:21: warning: \ symbol 'avb_root_pub' was not declared. Should it be static? Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com> Reviewed-by: Igor Opaniuk <igor.opaniuk@linaro.org>
2018-08-24common: kconfig: Mark AVB_VERIFY as dependent on PARTITION_UUIDSEugeniu Rosca1-0/+1
Avoid below compiler [1] errors, reproduced with configuration [2]: common/avb_verify.c: In function ‘get_unique_guid_for_partition’: common/avb_verify.c:692:31: error: ‘disk_partition_t {aka struct disk_partition}’ has no member named ‘uuid’ uuid_size = sizeof(part->info.uuid); ^ common/avb_verify.c:696:29: error: ‘disk_partition_t {aka struct disk_partition}’ has no member named ‘uuid’ memcpy(guid_buf, part->info.uuid, uuid_size); ^ LD drivers/built-in.o make[2]: *** [scripts/Makefile.build:278: common/avb_verify.o] Error 1 [1] aarch64-linux-gnu-gcc (Linaro GCC 7.2-2017.11) [2] r8a7795_ulcb_defconfig, plus: CONFIG_AVB_VERIFY=y CONFIG_PARTITION_UUIDS=y CONFIG_UDP_FUNCTION_FASTBOOT=y CONFIG_LIBAVB=y Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com> Reviewed-by: Igor Opaniuk <igor.opaniuk@linaro.org>