- Nov 26, 2018
-
-
Lukas Auer authored
The bootm implementation of RISC-V diverges from that of other architectures. Update it to match the implementation of other architectures. The ARM implementation is used as a reference. This adds the following features and changes to RISC-V. * Add support for the BOOTM_STATE_OS_FAKE_GO command * Call the remove function on devices with the removal flag set before booting Linux * Force disconnect USB devices from the host before booting Linux * Print and add bootstage information to the device tree before booting Linux Signed-off-by:
Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by:
Bin Meng <bmeng.cn@gmail.com>
-
Lukas Auer authored
Store the hart ID and device tree passed by the prior boot stage (in a0 and a1) in registers s0 and s1. Replace one use of s1 in start.S to avoid overwriting it. The device tree is also stored in memory to make it available to U-Boot with the configuration CONFIG_OF_PRIOR_STAGE. Signed-off-by:
Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Rick Chen <rick@andestech.com>
-
Lukas Auer authored
The mstatus CSR includes WPRI (writes preserve values, reads ignore values) fields and must therefore not be set to zero without preserving these fields. It is not apparent why mstatus is set to zero here since it is not required for U-Boot to run. Remove it. This instruction and others encode zero as an immediate. RISC-V has the zero register for this purpose. Replace the immediates with the zero register. Signed-off-by:
Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Rick Chen <rick@andestech.com>
-
Lukas Auer authored
The labels nmi_vector, trap_vector and handle_reset in start.S are not used for RISC-V. Remove them. Signed-off-by:
Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by:
Bin Meng <bmeng.cn@gmail.com>
-
Bin Meng authored
This is now deprecated and no board is using it. Drop it. Signed-off-by:
Bin Meng <bmeng.cn@gmail.com> Signed-off-by:
Lukas Auer <lukas.auer@aisec.fraunhofer.de>
-
Lukas Auer authored
The machine trap-vector base address (mtvec) must be aligned on a 4-byte boundary. Add the necessary align directive to trap_entry. This patch also removes the global directive for trap_entry, which is not required. Signed-off-by:
Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by:
Bin Meng <bmeng.cn@gmail.com>
-
Lukas Auer authored
start.S uses both tabs and spaces after instructions. Fix this by only using tabs after instructions. Signed-off-by:
Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Rick Chen <rick@andestech.com>
-
Lukas Auer authored
Implement the functions invalidate_icache_range() and invalidate_icache_all(). RISC-V does not have instructions for explicit cache-control. The functions in this patch are implemented with the memory ordering instruction for synchronizing the instruction and data streams. This may be implemented as a cache flush or invalidate on simple processors, others may only invalidate the relevant cache lines. Signed-off-by:
Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Rick Chen <rick@andestech.com>
-
Lukas Auer authored
Hang on unhandled exceptions to prevent execution in a faulty state. Signed-off-by:
Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Rick Chen <rick@andestech.com>
-
Lukas Auer authored
Undefined exception codes currently lead to an out-of-bounds array access. Prevent this by treating undefined exception codes as "reserved". Signed-off-by:
Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Rick Chen <rick@andestech.com>
-
Lukas Auer authored
Only the first four exception codes are defined. Add the missing exception codes from the definition in RISC-V Privileged Architecture Version 1.10. Signed-off-by:
Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Rick Chen <rick@andestech.com>
-
Lukas Auer authored
RISC-V U-Boot reimplements the generic io functions from asm-generic/io.h. Remove the redundant implementation and include the generic io.h instead. Signed-off-by:
Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Rick Chen <rick@andestech.com>
-
Lukas Auer authored
Replace the barrier functions in arch/riscv/include/asm/io.h with those defined in barrier.h, which is imported from Linux. This version is modified to remove the include statement of asm-generic/barrier.h, which is not available in U-Boot or required. Signed-off-by:
Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Rick Chen <rick@andestech.com>
-
Lukas Auer authored
The RISC-V arch incorrectly uses 32-bit instead of 64-bit variables in several places. Fix this. In addition, BITS_PER_LONG is set to 64 on RV64I systems. Signed-off-by:
Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by:
Bin Meng <bmeng.cn@gmail.com>
-
Lukas Auer authored
Enable the -fdata-sections compiler option for RISC-V. Buildman reports the binary size decrease from this as 8365.3 bytes. Signed-off-by:
Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Rick Chen <rick@andestech.com>
-
Lukas Auer authored
Use the new Kconfig entries to construct the ISA string for the -march compiler flag. The -mabi compiler flag is selected based on the base integer instruction set. With this change, the C (compressed instructions) ISA extension is now enabled for all boards with CONFIG_RISCV_ISA_C set. Buildman reports a decrease in binary size of 71590 bytes. Signed-off-by:
Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by:
Bin Meng <bmeng.cn@gmail.com>
-
Lukas Auer authored
Add Kconfig entries for the C (compressed instructions) and A (atomic instructions) ISA extensions. Only the C ISA extension is selectable. This matches the configuration in Linux. The Kconfig entries are not used yet. A follow-up patch will select the appropriate compiler flags based on the Kconfig configuration. Signed-off-by:
Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by:
Bin Meng <bmeng.cn@gmail.com>
-
Lukas Auer authored
CONFIG_PHYS_64BIT should be enabled on RV64I systems. Select it. Signed-off-by:
Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Rick Chen <rick@andestech.com>
-
Lukas Auer authored
RISC-V defines the base integer instruction sets as RV32I and RV64I. Rename CPU_RISCV_32 and CPU_RISCV_64 to ARCH_RV32I and ARCH_RV64I to match this convention. Signed-off-by:
Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by:
Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
Rick Chen <rick@andestech.com>
-
- Nov 21, 2018
-
-
Simon Glass authored
It is useful to obtain the block-protect setting of the SPI flash, so we know whether it is fully open or (perhaps partially) write-protected. Add a method for this. Update the sandbox driver to process this operation and add a test. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Simon Glass authored
At present these functions return 0 on success. For some devices we want to know how many bytes were transferred. It seems useful to adjust the API to be more like the POSIX read() and write() functions. Update these two methods, a test and all users. Signed-off-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Patrick Delaunay <patrick.delaunay@st.com>
-
Simon Glass authored
At present sandbox drivers are mostly not used before relocation. Some of these are needed by Chromium OS verified boot, since it uses sandbox TPL, so update them accordingly. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Simon Glass authored
Add a way to read a file from the host filesystem. This can be useful for reading test data, for example. Also fix up the writing function which was not the right version, and drop the debugging lines. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Heinrich Schuchardt authored
DEBUG should not be defined in production code. Change printf() to debug() where this writes a debug message. Signed-off-by:
Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by:
Alexander Graf <agraf@suse.de> Reviewed-by:
Simon Glass <sjg@chromium.org>
-
- Nov 20, 2018
-
-
Rabeeh Khoury authored
The SolidRun Clearfog GT-8K is based on Armada 8040. https://wiki.solid-run.com/doku.php?id=products:a8040:clearfoggt8k The config file is identical to the Macchiatobin one (mvebu_mcbin-88f8040_defconfig) with only the default device-tree changed. Signed-off-by:
Rabeeh Khoury <rabeeh@solid-run.com> Signed-off-by:
Baruch Siach <baruch@tkos.co.il> Signed-off-by:
Stefan Roese <sr@denx.de>
-
Baruch Siach authored
Some Armada 8K boards like Macchiatobin and Clearfog GT-8K use RAM from external DIMM. Hard coding the RAM size in the device-tree is not convenient. Fortunately, the ATF that initializes the RAM knows the size of RAM, and U-Boot can query the ATF using a SMC call. The ATF maps the lower 3G of RAM starting at address 0. Higher RAM is mapped at 4G. This leaves a 1G hole between 3G and 4G for IO peripherals. Use a second bi_dram[] entry to describe the higher RAM area. As a result, CONFIG_NR_DRAM_BANKS must be set to 2 to use more than 3GB RAM. This code in this commit is mostly taken from downstream Marvell U-Boot code by Grzegorz Jaszczyk. Cc: Grzegorz Jaszczyk <jaz@semihalf.com> Signed-off-by:
Baruch Siach <baruch@tkos.co.il> Signed-off-by:
Stefan Roese <sr@denx.de>
-
Baruch Siach authored
The kernel added SZ_4G macro in commit f2b9ba871b (arm64/kernel: kaslr: reduce module randomization range to 4 GB). Include linux/const.h for the _AC macro. Drop a local SZ_4G definition in tegra code. Cc: Tom Warren <twarren@nvidia.com> Reviewed-by:
Tom Rini <trini@konsulko.com> Signed-off-by:
Baruch Siach <baruch@tkos.co.il> Signed-off-by:
Stefan Roese <sr@denx.de>
-
Baruch Siach authored
Commit 86f21c96 (mips: Use common _AC macro now.) removed the _AC definition from const.h. All other macros defined in const.h are not used anywhere, and there is now no user of this header. Remove this header. Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com> Signed-off-by:
Baruch Siach <baruch@tkos.co.il> Reviewed-by:
Tom Rini <trini@konsulko.com> Reviewed-by:
Daniel Schwierzeck <daniel.schwierzeck@gmail.com> Signed-off-by:
Stefan Roese <sr@denx.de>
-
Baruch Siach authored
Drop the _AC and UL macros from common.h. Linux headers is the original source of this macro, so keep its definition in the same header. Update existing users of these macros to include const.h directly. Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com> Cc: Rick Chen <rick@andestech.com> Reviewed-by:
Tom Rini <trini@konsulko.com> Reviewed-by:
Rick Chen <rick@andestech.com> Signed-off-by:
Baruch Siach <baruch@tkos.co.il> Reviewed-by:
Daniel Schwierzeck <daniel.schwierzeck@gmail.com> Signed-off-by:
Stefan Roese <sr@denx.de>
-
- Nov 18, 2018
-
-
Daniel Schwierzeck authored
Use the global MIPS specific u-boot.lds for linking standalone programs instead of the outdated ones in examples/standalone/. Also pass --gc-sections in LDFLAGS_STANDALONE to optimize the size of standalone programs. Finally remove the deprecated config.mk files in arch/mips/cpu/mips[32,64]/. Signed-off-by:
Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
-
Daniel Schwierzeck authored
Introduce a new Makefile variable for passing LDFLAGS to standalone programs. Currently the variable CONFIG_STANDALONE_LOAD_ADDR is misued on some archs to pass a specific linker script. Signed-off-by:
Daniel Schwierzeck <daniel.schwierzeck@gmail.com> Reviewed-by:
Tom Rini <trini@konsulko.com> Reviewed-by:
Rick Chen <rick@andestech.com>
-
Stefan Roese authored
These misc updates include the following changes: - Change baudrate from 57600 to 115200 - Enable MIPS_BOOT_CMDLINE_LEGACY - Enable FIT support - Enable ethernet support - Enable SPI support - Enable GPIO support - Change max image size from 0x40000 to 0x80000 A note about the baudrate change: The original Mediatek U-Boot version used 57600 baud. Lets move to a more common and faster speed of 115200 baud. And remove the "console=" property from the DT as its not needed. Signed-off-by:
Stefan Roese <sr@denx.de> Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
-
Stefan Roese authored
These misc updates include the following changes: - Change baudrate from 57600 to 115200 - Enable MIPS_BOOT_CMDLINE_LEGACY - Enable FIT support - Enable ethernet support - Enable SPI NOR and NAND support - Change MTD_UBI_BEB_LIMIT to 22 - Enable MTD Support - Enable GPIO support - Enable watchdog support - Enable bootcounter support - Enable version variable - Change max image size from 0x80000 to 0xa0000 - Change SYS_MALLOC_LEN to 16MiB (because of UBI/UBIFS) Signed-off-by:
Stefan Roese <sr@denx.de> Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
-
Stefan Roese authored
This is needed to set the LEDs automatically to a default state, as configured in the dts. Signed-off-by:
Stefan Roese <sr@denx.de> Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
-
Stefan Roese authored
Add the available LEDs to the DTS file so that they can be used. Signed-off-by:
Stefan Roese <sr@denx.de> Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
-
Stefan Roese authored
This patch enables and starts the watchdog on the MT7620 platform. Currently the WD timeout is configured to 60 seconds. Signed-off-by:
Stefan Roese <sr@denx.de> Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com> [fixed build error due to missing function prototype arch_misc_init] Signed-off-by:
Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
-
Stefan Roese authored
Imply DM_ETH and DM_GPIO for ARCH_MT7620, as this platform now supports ethernet and GPIO as well. Signed-off-by:
Stefan Roese <sr@denx.de> Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
-
Stefan Roese authored
Add the watchdog DT node to the DTS file. Signed-off-by:
Stefan Roese <sr@denx.de> Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
-
Stefan Roese authored
Add the GPIO DT nodes to the DTS file. Signed-off-by:
Stefan Roese <sr@denx.de> Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
-
Stefan Roese authored
Add the ethernet DT node to the DTS file. Signed-off-by:
Stefan Roese <sr@denx.de> Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
-