- 04 9月, 2021 1 次提交
-
-
由 Pali Rohár 提交于
Variable xyz.len is set to -1 on error. At the end xyzModem_stream_read() function calls memcpy() with length from variable xyz.len. If this variable is set to -1 then value passed to memcpy is casted to unsigned value, which means to copy whole address space. Which then cause U-Boot crash. E.g. on arm64 it cause CPU crash: "Synchronous Abort" handler, esr 0x96000006 Fix this issue by checking that value stored in xyz.len is valid prior trying to use it. Signed-off-by: NPali Rohár <pali@kernel.org> Acked-by: NHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
-
- 03 9月, 2021 2 次提交
-
-
由 Tom Rini 提交于
Per a request from Andre Przywara and agreed with by Peter Hoyes, the vexpress aemv8r support wasn't quite ready to be merged, but the discussion had moved off list. We should keep the first patch in the series for now, but revert the rest. This reverts the following commits: e0bd6f31 doc: Add documentation for the Arm vexpress board configs 30e5a449 arm: Use armv8_switch_to_el1 env to switch to EL1 b53bbca6 vexpress64: Add BASER_FVP vexpress board variant 2f5b7b74 armv8: Add ARMv8 MPU configuration logic 37a757e2 armv8: Ensure EL1&0 VMSA is enabled Signed-off-by: NTom Rini <trini@konsulko.com>
-
由 Tom Rini 提交于
- Add position independent execution support for ARMv7 - Snapdragon, synquacer, vexpress64 fixes / improvements - Prevent NEON register use on ARMv8 - Other assorted fixes
-
- 02 9月, 2021 37 次提交
-
-
由 Thibault Ferrante 提交于
On some cases, the actual number of bytes read can be shorter than what was requested. This can be handled gracefully by taking this difference into account instead of exiting. Signed-off-by: NThibault Ferrante <thibault.ferrante@gmail.com>
-
由 Oleksandr Suvorov 提交于
The prototype of psci_features() duplicated. Remove extra declaration. Fixed: e21e3ffd ("psci: Fix warnings when compiling with W=1") Reported-by: NMichael Scott <mike@foundries.io> Signed-off-by: NOleksandr Suvorov <oleksandr.suvorov@foundries.io>
-
由 Bharat Gooty 提交于
Signed-off-by: NBharat Gooty <bharat.gooty@broadcom.com>
-
由 Jernej Skrabec 提交于
Old address doesn't exist anymore. Map it to new one. Signed-off-by: NJernej Skrabec <jernej.skrabec@gmail.com> Acked-by: NAndre Przywara <andre.przywara@arm.com>
-
由 Samuel Holland 提交于
For ARMv8-A, NEON is standard, so the compiler can use it even when no special target flags are provided. For example, it can use stores from NEON registers to zero-initialize large structures. GCC 11 decides to do this inside the DRAM init code for the Allwinner H6. However, GCC 11 has a bug where it generates misaligned NEON register stores even with -mstrict-align. Since the MMU is not enabled this early in SPL, the misaligned store causes an exception and breaks booting. Work around this issue by restricting the compiler to using GPRs only, not vector registers. This prevents any future surprises relating to NEON use as well. Signed-off-by: NSamuel Holland <samuel@sholland.org> Acked-by: NAndre Przywara <andre.przywara@arm.com>
-
由 Peter Hoyes 提交于
Create a new documentation section for Arm Ltd boards with a sub-page for the vexpress board (FVP-A, FVP-R and Juno). Document how the armv8_switch_to_el1 environment variable can be used to switch between booting from S-EL2/S-EL1 at runtime on the BASER_FVP. Signed-off-by: NPeter Hoyes <Peter.Hoyes@arm.com>
-
由 Peter Hoyes 提交于
Use the environment variable armv8_switch_to_el1 to determine whether to switch to EL1 at runtime. This is an alternative to the CONFIG_ARMV8_SWITCH_TO_EL1 compile-time option. The environment variable will be ineffective if the ARMV8_MULTIENTRY config is used. This is required by the Armv8r64 architecture, which must be able to boot at S-EL1 for Linux but may need to boot at other ELs for other systems. Signed-off-by: NPeter Hoyes <Peter.Hoyes@arm.com>
-
由 Peter Hoyes 提交于
The BASER_FVP board variant is implemented on top of the BASE_FVP board config (which, in turn, is based on the Juno Versatile Express board config). They all share a similar memory map - for BASER_FVP the map is inverted from the BASE_FVP (https://developer.arm.com/documentation/100964/1114/Base-Platform/Base---memory/BaseR-Platform-memory-map) * Create new TARGET_VEXPRESS64_BASER_FVP target, which uses the same board config as BASE_FVP and JUNO * Adapt vexpress_aemv8a.h header file to support BASER_FVP (and rename to vexpress_aemv8.h) * Enable config to switch to EL1 for the BASER_FVP * Create vexpress_aemv8r defconfig * Provide an MPU memory map for the BASER_FVP For now, only single core boot is supported. Signed-off-by: NPeter Hoyes <Peter.Hoyes@arm.com> [trini: Add MAINTAINERS, move BOOTCOMMAND to defconfig] Signed-off-by: NTom Rini <trini@konsulko.com>
-
由 Peter Hoyes 提交于
Armv8r64 is the first Armv8 platform that only has a PMSA at the current exception level. The architecture supplement for Armv8r64 describes new fields in ID_AA64MMFR0_EL1 which can be used to detect whether a VMSA or PMSA is present. These fields are RES0 on Armv8a. Add logic to read these fields and, for the protection of the memory used by U-Boot, initialize the MPU instead of the MMU during init, then clear the MPU regions before transition to the next stage. Provide a default (blank) MPU memory map, which can be overridden by board configurations. Signed-off-by: NPeter Hoyes <Peter.Hoyes@arm.com>
-
由 Peter Hoyes 提交于
On Armv8-R, the EL1&0 memory system architecture is configurable as a VMSA or PMSA, and resets to an "architecturally unknown" value. Add code to armv8_switch_to_el1_m which detects whether the MSA at EL1&0 is configurable using the id_aa64mmfr0_el1 register MSA fields. If it is we must ensure the VMSA is enabled so that a rich OS can boot. The MSA and MSA_FRAC fields are described in the Armv8-R architecture profile supplement (section G1.3.7): https://developer.arm.com/documentation/ddi0600/latest/Signed-off-by: NPeter Hoyes <Peter.Hoyes@arm.com>
-
由 Peter Hoyes 提交于
The use of ARMv8.3 pointer authentication (PAuth) is governed by fields in HCR_EL2, which trigger a 'trap to EL2' if not enabled. The reset value of these fields is 'architecturally unknown' so we must ensure that the fields are enabled (to disable the traps) if we are entering the kernel at EL1. The APK field disables PAuth instruction traps and the API field disables PAuth register traps Add code to disable the traps in armv8_switch_to_el1_m. Prior to doing so, it checks fields in the ID_AA64ISAR1_EL1 register to ensure pointer authentication is supported by the hardware. The runtime checks require a second temporary register, so add this to the EL1 transition macro signature and update 2 call sites. Signed-off-by: NPeter Hoyes <Peter.Hoyes@arm.com>
-
由 Masami Hiramatsu 提交于
This reverts commit f7e16bb0, since the U-Boot doesn't boot if it is booted directly from SPI-NOR with CONFIG_POSITION_INDEPENDENT=y. Unless fixing this issue, it is better to revert this change. Signed-off-by: NMasami Hiramatsu <masami.hiramatsu@linaro.org>
-
由 Andreas Schwab 提交于
CONFIG_MMC_SPI_CRC_ON needs the crc16 functions, but it was not included in an SPL build. For non-SPL builds, crc16.o is already added unconditionally. This also removes CONFIG_SPL_YMODEM_SUPPORT from the sifive board configs, which is only relevant for some ARM boards and was only set for its side effect of adding crc16.o.
-
由 Heinrich Schuchardt 提交于
When running 'part list' for an ISO partition the numbers are not under the labels. Correct the alignment of the ISO partition list. With the patch the output looks like: Part Start Sect x Size Type 1 3720 5024 512 U-Boot Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
-
由 Stephan Gerhold 提交于
The logic in msm_generate_mac_addr() was originally taken from the LK bootloader where the serial number is a string and must be parsed first. However, in U-Boot msm_board_serial() returns an u32 and msm_generate_mac_addr() has quite complicated code that will first print it as a hex string and then immediately parse it again. What this function actually does at the end is to put the serial number encoded as big endian (the order used for the hex string) into the u8 *mac. Use put_unaligned_be32() to do that with bit shifts instead of going through the string format. This should be slightly more efficient and cleaner but does not result in any functional difference. Cc: Ramon Fried <rfried.dev@gmail.com> Signed-off-by: NStephan Gerhold <stephan@gerhold.net> Reviewed-by: NRamon Fried <rfried.dev@gmail.com>
-
由 Stephan Gerhold 提交于
At the moment U-Boot produces an empty MAC address (02:00:00:00:00:00) if the eMMC is not used by anything in U-Boot (e.g. with CONFIG_ENV_IS_NOWHERE=y instead of having the environment on eMMC). This happens because then there is nothing that actually initializes the eMMC and reads the "cid" that is later accessed. To fix this, call mmc_init() to ensure the eMMC is initialized. There is no functional difference if the eMMC is already initialized since then mmc_init() will just return without doing anything. Reviewed-by: NRamon Fried <rfried.dev@gmail.com> Signed-off-by: NStephan Gerhold <stephan@gerhold.net>
-
由 Chia-Wei Wang 提交于
A U-Boot image could be loaded and executed at a different location than it was linked at. For example, Aspeed takes a stable release version of U-Boot image as the golden one for recovery purposes. When the primary storage such as flash is corrupted, the golden image would be loaded to any SRAM/DRAM address on demands through ethernet/UART/etc and run for rescue. To deal with this condition, the PIE is needed as there is only one signed, golden image, which could be however executed at different places. This patch adds the PIE support for ARMv7 platform. Signed-off-by: NChia-Wei Wang <chiawei_wang@aspeedtech.com>
-
由 Chia-Wei Wang 提交于
Use Kconfig 'depends on' instead of #if macro to express the option depdencies. Signed-off-by: NChia-Wei Wang <chiawei_wang@aspeedtech.com>
-
由 Tom Rini 提交于
- Drop old OpenSSL support - Add DM_HASH support, use it. - Assorted "stemmy" platform updates - Various bugfixes
-
由 Pali Rohár 提交于
This new option allows to disable ahci-pci driver in SPL. Disabling it is needed when SPL_PCI is not enabled as ahci-pci depends on PCI. This change fixes following compile error when CONFIG_SPL_SATA_SUPPORT is enabled and SPL_PCI is disabled. LD spl/u-boot-spl arm-linux-gnueabihf-ld.bfd: drivers/ata/ahci.o: in function `ahci_probe_scsi_pci': drivers/ata/ahci.c:1205: undefined reference to `dm_pci_map_bar' arm-linux-gnueabihf-ld.bfd: drivers/ata/ahci.c:1215: undefined reference to `dm_pci_read_config16' arm-linux-gnueabihf-ld.bfd: drivers/ata/ahci.c:1216: undefined reference to `dm_pci_read_config16' arm-linux-gnueabihf-ld.bfd: drivers/ata/ahci.c:1220: undefined reference to `dm_pci_map_bar' make[1]: *** [scripts/Makefile.spl:512: spl/u-boot-spl] Error 1 make: *** [Makefile:1977: spl/u-boot-spl] Error 2 LD spl/u-boot-spl arm-linux-gnueabihf-ld.bfd: drivers/ata/ahci-pci.o: in function `ahci_pci_probe': drivers/ata/ahci-pci.c:21: undefined reference to `ahci_probe_scsi_pci' make[1]: *** [scripts/Makefile.spl:512: spl/u-boot-spl] Error 1 make: *** [Makefile:1977: spl/u-boot-spl] Error 2 Signed-off-by: NPali Rohár <pali@kernel.org> Reviewed-by: NStefan Roese <sr@denx.de>
-
由 Pali Rohár 提交于
File drivers/ata/ahci-pci.c calls function ahci_probe_scsi_pci() which is compiled only when DM_PCI is enabled. So add missing dependency into Kconfig. Signed-off-by: NPali Rohár <pali@kernel.org> Reviewed-by: NStefan Roese <sr@denx.de>
-
由 Callum Sinclair 提交于
The ds1307 driver also supports the DS1339 and DS1340. However, in ds1307_rtc_reset the register writes assume that the chip is a DS1307. This is evident in the writing of bits SQWE, RS1, RS0 to the control register. While this applies correctly to the DS1307, on a DS1340 the control register doesn't contain those bits (instead, the register is used for clock calibration). By writing these bits the clock calibration will be changed and the chip can become non-functional after a reset call. Signed-off-by: NCallum Sinclair <callum.sinclair@alliedtelesis.co.nz>
-
由 Stephan Gerhold 提交于
Enabling CONFIG_SYS_THUMB_BUILD produces a significantly smaller U-Boot binary (250 KiB vs 320 KiB) that still seems to be fully functional. Make use of that by default but keep it as "imply" so it can be disabled for testing in case this causes trouble for someone. Signed-off-by: NStephan Gerhold <stephan@gerhold.net>
-
由 Stephan Gerhold 提交于
Over the time, the "stemmy" U-Boot board was tested on several other Samsung smartphones based on ST-Ericsson NovaThor Ux500. Convert the documentation to reStructuredText at doc/board/ste/stemmy.rst and make the device list complete. Also note that the board now boots into USB Fastboot instead of just ending up at the U-Boot prompt. The device table is mostly taken from the postmarketOS wiki article (https://wiki.postmarketos.org/wiki/ST-Ericsson_NovaThor_U8500). All the newly added devices were tested by Linus Walleij. Signed-off-by: NStephan Gerhold <stephan@gerhold.net>
-
由 Stephan Gerhold 提交于
Make use of the new drivers for ARM U8500 introduced in the U-Boot 2021.10 merge window by adding basic support for USB Fastboot with the "stemmy" board. As a first step this will always boot directly into USB Fastboot for now with the console displayed on the screen to make that obvious. Samsung uses quite strange GPT partition labels on these boards, so also add a bunch of fastboot_partition_alias_* to make this more easy to use. Signed-off-by: NStephan Gerhold <stephan@gerhold.net>
-
由 Stephan Gerhold 提交于
So far there is no need for a clock driver in U-Boot because the previous boot stage leaves all the necessary clocks on. However, some drivers in U-Boot (e.g. arm_pl180_mmci) depend on having a clock driver to obtain the clock frequency. Setting up the clock drivers properly is a bit tricky on U8500, so for now add a simple fixed-clock for the eMMC that allows obtaining the clock frequency. This should be replaced eventually if some board actually requires enabling some of the clocks. Signed-off-by: NStephan Gerhold <stephan@gerhold.net>
-
由 Stephan Gerhold 提交于
Update ste-dbx5x0.dtsi, ste-ab8500.dtsi and ste-ab8505.dtsi with the changes made in upstream Linux. They are taken from https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git/ branch "ux500-dts-for-v5.15" (pending merge for Linux 5.15). The only relevant change for U-Boot here is "ARM: dts: ux500: ab8500: Link USB PHY to USB controller node" [1] which links the USB PHY to the USB controller. This is necessary on U-Boot because the PHY driver is implemented as part of the generic PHY subsystem that makes use of these bindings. [1]: https://lore.kernel.org/linux-arm-kernel/20210709182234.47232-1-stephan@gerhold.net/Signed-off-by: NStephan Gerhold <stephan@gerhold.net>
-
由 Stephan Gerhold 提交于
Imply the options for new drivers added for ARM U8500 during the U-Boot 2021.10 merge window. Adding these as "imply" in the Kconfig avoids having to add them to all the board defconfigs but still allows disabling them if wanted. Also select DM_USB_GADGET if DM_USB is selected because otherwise the Ux500 MUSB glue driver does not show up in the configuration. Signed-off-by: NStephan Gerhold <stephan@gerhold.net>
-
由 Stephan Gerhold 提交于
Update MAINTAINERS with various drivers for ARM U8500 that were added during the U-Boot 2021.10 merge window. Signed-off-by: NStephan Gerhold <stephan@gerhold.net>
-
由 Pali Rohár 提交于
When k_recv() returns zero it indicates that kermit transfer was aborted. Function do_load_serial_bin() (caller of load_serial_bin()) interprets value ~0 as aborted transfer, so properly propagates information about aborted transfer from k_recv() to do_load_serial_bin(). Signed-off-by: NPali Rohár <pali@kernel.org>
-
由 Tom Rini 提交于
This resyncs us with the version found in v5.13 of the Linux kernel with the following exceptions: - Keep our u-boot specific tests / code area. - Change the location of checkpatch.rst (which we now import) - Drop the "use strscpy" test as we don't have that, but do have strlcpy and want that used now. - Keep debug/printf in the list for $logFunctions And note that we now also include the spdxcheck.py tool that checkpatch.pl supports calling out to, and include upstream's checkpatch.rst in our develop section of the documentation. Signed-off-by: NTom Rini <trini@konsulko.com>
-
由 Thomas Hebb 提交于
Currently, an empty imput file causes `mmap()` to fail, and you get an error like "mkimage: Can't read file.img: Invalid argument", which is extremely unintuitive and hard to diagnose if you don't know what to look for. Add an explicit check for an empty file and provide a clear error message instead. We already bounds check the image size when listing and re-signing existing images, so we only need this check here, when opening data files going into a image. Signed-off-by: NThomas Hebb <tommyhebb@gmail.com> Reviewed-by: NSimon Glass <sjg@chromium.org>
-
由 Heinrich Schuchardt 提交于
With glibc 2.33 (Ubuntu package glibc6 2.33-0ubuntu9) building sifive_unmatched_defconfig results in: In file included from /usr/include/stdio.h:866, from ././include/compiler.h:26, from <command-line>: In function ‘snprintf’, inlined from ‘rsa_engine_get_priv_key’ at ./tools/../^:273:4: /usr/include/riscv64-linux-gnu/bits/stdio2.h:71:10: warning: ‘%s’ directive argument is null [-Wformat-truncation=] 71 | return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 72 | __glibc_objsize (__s), __fmt, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | __va_arg_pack ()); | ~~~~~~~~~~~~~~~~~ Avoid passing a NULL string. Signed-off-by: NHeinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: NSimon Glass <sjg@chromium.org>
-
由 Chia-Wei Wang 提交于
Calculate hash using DM driver if supported. For backward compatibility, the call to legacy hash functions is reserved. Signed-off-by: NChia-Wei Wang <chiawei_wang@aspeedtech.com>
-
由 Chia-Wei Wang 提交于
Add purely software-implmented drivers to support multiple hash operations including CRC, MD5, and SHA family. This driver is based on the new hash uclass. Signed-off-by: NChia-Wei Wang <chiawei_wang@aspeedtech.com>
-
由 Chia-Wei Wang 提交于
Add UCLASS_HASH for hash driver development. Thus the hash drivers (SW or HW-accelerated) can be developed in the DM-based fashion. Signed-off-by: NChia-Wei Wang <chiawei_wang@aspeedtech.com>
-
由 Chia-Wei Wang 提交于
Export the MD5 hash init/update/finish progressive APIs for better flexibility. Signed-off-by: NChia-Wei Wang <chiawei_wang@aspeedtech.com>
-