- 20 7月, 2020 18 次提交
-
-
由 Simon Glass 提交于
SMP should be set up in U-Boot where possible, not SPL. Disable it in SPL. For 64-bit U-Boot we should find a way to allow SMP operations in U-Boot, but this is somewhat more complicated. For now that is disabled too. Signed-off-by: NSimon Glass <sjg@chromium.org> Reviewed-by: NBin Meng <bmeng.cn@gmail.com> Reviewed-by: NWolfgang Wallner <wolfgang.wallner@br-automation.com>
-
由 Simon Glass 提交于
Update the mtrr command to use mp_run_on_cpus() to obtain its information. Since the selected CPU is the boot CPU this does not change the result, but it sets the stage for supporting other CPUs. Signed-off-by: NSimon Glass <sjg@chromium.org> Reviewed-by: NWolfgang Wallner <wolfgang.wallner@br-automation.com> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Simon Glass 提交于
It is convenient to iterate through the CPUs performing work on each one and processing the result. Add a few iterator functions which handle this. These can be used by any client code. It can call mp_run_on_cpus() on each CPU that is returned, handling them one at a time. Signed-off-by: NSimon Glass <sjg@chromium.org> Reviewed-by: NWolfgang Wallner <wolfgang.wallner@br-automation.com> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Simon Glass 提交于
With the new MP features the CPUs are no-longer parked when the OS is run. Fix this by calling a special function to park them, just before the OS is started. Signed-off-by: NSimon Glass <sjg@chromium.org> Reviewed-by: NWolfgang Wallner <wolfgang.wallner@br-automation.com> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Simon Glass 提交于
Add a way to run a function on a selection of CPUs. This supports either a single CPU, all CPUs, just the main CPU or just the 'APs', in Intel terminology. It works by writing into a mailbox and then waiting for the CPUs to notice it, take action and indicate they are done. When SMP is not yet enabled, this just calls the function on the main CPU. Signed-off-by: NSimon Glass <sjg@chromium.org> Reviewed-by: NWolfgang Wallner <wolfgang.wallner@br-automation.com> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Simon Glass 提交于
Set this flag so we can track when it is safe to use CPUs other than the main one. Signed-off-by: NSimon Glass <sjg@chromium.org> Reviewed-by: NWolfgang Wallner <wolfgang.wallner@br-automation.com> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Simon Glass 提交于
Allow keeping track of whether all CPUs have been enabled yet. This allows us to know whether other CPUs need to be considered when updating CPU-specific settings such as MTRRs on x86. Signed-off-by: NSimon Glass <sjg@chromium.org> Reviewed-by: NWolfgang Wallner <wolfgang.wallner@br-automation.com> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Simon Glass 提交于
At present the APs (non-boot CPUs) are inited once and then parked ready for the OS to use them. However in some cases we want to send new requests through, such as to change MTRRs and keep them consistent across CPUs. Change the last state of the flight plan to go into a wait loop, accepting instructions from the main CPU. Drop cpu_map since it is not used. Signed-off-by: NSimon Glass <sjg@chromium.org> Reviewed-by: NWolfgang Wallner <wolfgang.wallner@br-automation.com> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Simon Glass 提交于
Drop some #ifdefs that are not needed or can be converted to compile-time checks. Signed-off-by: NSimon Glass <sjg@chromium.org> Reviewed-by: NWolfgang Wallner <wolfgang.wallner@br-automation.com> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Simon Glass 提交于
This function is misnamed since it does not actually init the BSP. Also it is convenient to adjust it to return a little more information. Rename and update the function, to allow it to return the BSP CPU device and number, as well as the total number of CPUs. Signed-off-by: NSimon Glass <sjg@chromium.org> Reviewed-by: NWolfgang Wallner <wolfgang.wallner@br-automation.com> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Simon Glass 提交于
At present each CPU is given a number when it starts itself up. While this saves a tiny amount of time by doing the device-tree read in parallel, it is confusing that the numbering happens on the fly. Move this code into mp_init() and do it at the start. Signed-off-by: NSimon Glass <sjg@chromium.org> Reviewed-by: NWolfgang Wallner <wolfgang.wallner@br-automation.com> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Simon Glass 提交于
Fix a typo in the command help. Signed-off-by: NSimon Glass <sjg@chromium.org> Reviewed-by: NWolfgang Wallner <wolfgang.wallner@br-automation.com> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Simon Glass 提交于
This does not need to be global across all functions in this file. Pass a parameter instead. Signed-off-by: NSimon Glass <sjg@chromium.org> Reviewed-by: NWolfgang Wallner <wolfgang.wallner@br-automation.com> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Simon Glass 提交于
These parameters are named differently from elsewhere in this file. Switch them to avoid confusion. Also add comments to this function. Signed-off-by: NSimon Glass <sjg@chromium.org> Reviewed-by: NBin Meng <bmeng.cn@gmail.com> Reviewed-by: NWolfgang Wallner <wolfgang.wallner@br-automation.com>
-
由 Simon Glass 提交于
The functions used by the flight plan are declared in the header file but are not used in any other file. Move the flight plan steps down to just above where it is used so that we can make these function static. Signed-off-by: NSimon Glass <sjg@chromium.org> Reviewed-by: NWolfgang Wallner <wolfgang.wallner@br-automation.com> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Simon Glass 提交于
At present the 'flight plan' for CPUs is passed into mp_init. But it is always the same. Move it into the mp_init file so everything is in one place. Also drop the SMI function since it does nothing. If we implement SMIs, more refactoring will be needed anyway. Signed-off-by: NSimon Glass <sjg@chromium.org> Reviewed-by: NWolfgang Wallner <wolfgang.wallner@br-automation.com> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Simon Glass 提交于
Update this code to use livetree calls instead of flat-tree. Signed-off-by: NSimon Glass <sjg@chromium.org> Reviewed-by: NWolfgang Wallner <wolfgang.wallner@br-automation.com> Reviewed-by: NBin Meng <bmeng.cn@gmail.com>
-
由 Simon Glass 提交于
Some boards don't care about the ordering of ACPI code fragments. Change the warning to a debug message. Signed-off-by: NSimon Glass <sjg@chromium.org> Reviewed-by: NBin Meng <bmeng.cn@gmail.com> Tested-by: NBin Meng <bmeng.cn@gmail.com>
-
- 18 7月, 2020 22 次提交
-
-
https://gitlab.denx.de/u-boot/custodians/u-boot-mips由 Tom Rini 提交于
- MIPS: refactor cache init and setup in start.S - MIPS: sync asm header files with Linux 5.7 - MIPS: add initial support for Marvell Octeon MIPS64
-
由 Stefan Roese 提交于
This patch adds very basic minimal support for the Marvell Octeon 3 CN73xx based EBB7304 EVK. Please note that the basic Octeon port does not support DDR3/4 initialization yet. To still use U-Boot on with this port, the L2 cache (4MiB) is used as RAM. This way, U-Boot can boot to the prompt on this board. Supported devices: - UART - reset - CFI parallel NOR flash Signed-off-by: NStefan Roese <sr@denx.de>
-
由 Stefan Roese 提交于
This patch adds the code to copy itself from bootrom location to a different location (TEXT_BASE) to the Octeon platform. Its used in this case to copy the complete U-Boot image into L2 cache, which greatly improves the bootup time - especially in regard to the very long and complex DDR4 init code. The Kconfig symbol CONFIG_MIPS_MACH_EARLY_INIT is enabled with this patch for Octeon. Signed-off-by: NStefan Roese <sr@denx.de>
-
由 Stefan Roese 提交于
This patch adds the base dtsi file for the Octeon 3 cn73xx SoC. Signed-off-by: NStefan Roese <sr@denx.de>
-
由 Aaron Williams 提交于
This patch adds very basic support for the Octeon III SoCs. Only CFI parallel NOR flash and UART is supported for now. Please note that the basic Octeon port does not include the DDR3/4 initialization yet. This will be added in some follow-up patches later. To still use U-Boot on with this port, the L2 cache (4MiB on Octeon III CN73xx) is used as RAM. This way, U-Boot can boot to the prompt on such boards. Signed-off-by: NAaron Williams <awilliams@marvell.com> Signed-off-by: NStefan Roese <sr@denx.de>
-
由 Stefan Roese 提交于
This patch adds a UCLASS_SYSRESET sysreset driver for the Octeon SoC family. Signed-off-by: NStefan Roese <sr@denx.de> Reviewed-by: NDaniel Schwierzeck <daniel.schwierzeck@gmail.com>
-
由 Stefan Roese 提交于
This patch adds the optional call to mips_mach_early_init() to start.S at a very early stage. Its disabled per default. It can be used for very early machine / platform specific init code. Its called very early and at this stage the PC is allowed to differ from the linking address (CONFIG_TEXT_BASE) as no absolute jump has been performed until this call. It will be used by thje Octeon platform. Signed-off-by: NStefan Roese <sr@denx.de> Reviewed-by: NDaniel Schwierzeck <daniel.schwierzeck@gmail.com>
-
由 Daniel Schwierzeck 提交于
Sync asm/mipsregs.h with Linux 5.7. Also replace the custom symbols EBASE_CPUNUM and EBASE_WG with the according symbols from Linux. Signed-off-by: NDaniel Schwierzeck <daniel.schwierzeck@gmail.com> Reviewed-by: NStefan Roese <sr@denx.de> Tested-by: NStefan Roese <sr@denx.de>
-
由 Daniel Schwierzeck 提交于
Sync asm/addrspace.h with Linux 5.7 Signed-off-by: NDaniel Schwierzeck <daniel.schwierzeck@gmail.com> Reviewed-by: NStefan Roese <sr@denx.de> Tested-by: NStefan Roese <sr@denx.de>
-
由 Daniel Schwierzeck 提交于
Sync asm/asm.h with Linux 5.7. Signed-off-by: NDaniel Schwierzeck <daniel.schwierzeck@gmail.com> Reviewed-by: NStefan Roese <sr@denx.de> Tested-by: NStefan Roese <sr@denx.de>
-
由 Daniel Schwierzeck 提交于
This macro only served as a wrapper for CKSEG1ADDR() with an exception for CONFIG_TB0229. CONFIG_TB0229 doesn't exist, thus use CKSEG1ADDR() directly. This also prepares for an upcoming asm header sync with Linux. Signed-off-by: NDaniel Schwierzeck <daniel.schwierzeck@gmail.com> Reviewed-by: NStefan Roese <sr@denx.de> Tested-by: NStefan Roese <sr@denx.de>
-
由 Daniel Schwierzeck 提交于
Add an own Kconfig symbol for the initial disabling of caches invoked from generic start code. Also add an own Kconfig symbols for the initialization of caches invoked from generic start code. Until now both code paths could only be disabled with CONFIG_SKIP_LOWLEVEL_INIT. But this is not flexible enough for RAM boot scenarios like EJTAG or SPL payload or for machines which don't require cache initialization or which want to provide their own cache implementation. Signed-off-by: NDaniel Schwierzeck <daniel.schwierzeck@gmail.com> Reviewed-by: NStefan Roese <sr@denx.de> Tested-by: NStefan Roese <sr@denx.de>
-
由 Daniel Schwierzeck 提交于
Logically this code belongs to cache_init.S. If a complex SoC needs to replace the generic cache init, mips_cache_disable() can now be called from custom start.S files. Signed-off-by: NDaniel Schwierzeck <daniel.schwierzeck@gmail.com> Reviewed-by: NStefan Roese <sr@denx.de> Tested-by: NStefan Roese <sr@denx.de>
-
由 Daniel Schwierzeck 提交于
change_k0_cca() is called multiple times. Move the code for changing to KSEG1 to a macro to avoid code duplication. Also fix missing change to KSEG1 when changing to CONF_CM_CACHABLE_COW. Signed-off-by: NDaniel Schwierzeck <daniel.schwierzeck@gmail.com> Reviewed-by: NStefan Roese <sr@denx.de> Tested-by: NStefan Roese <sr@denx.de>
-
由 Daniel Schwierzeck 提交于
Since commit 703ec9dd ("MIPS: Stop building position independent code") the relocation code was completely reworked and removed from start.S. Remove some left-overs of the old code. Signed-off-by: NDaniel Schwierzeck <daniel.schwierzeck@gmail.com> Reviewed-by: NStefan Roese <sr@denx.de> Tested-by: NStefan Roese <sr@denx.de>
-
由 Stefan Roese 提交于
This patch adds __weak to invalidate_dcache_range() in lib/cache.c. This makes it possible to overwrite this function by a platforms specific version, which will be done for Octeon. Signed-off-by: NStefan Roese <sr@denx.de>
-
由 Stefan Roese 提交于
This patch adds __weak to flush_cache() in lib/cache.c. This makes it possible to overwrite this function by a platforms specific version, like done with the Octeon base port. Signed-off-by: NStefan Roese <sr@denx.de>
-
由 Stefan Roese 提交于
This patch enables the usage of CONFIG_MIPS_L2_CACHE without CONFIG_MIPS_CM, which is what is needed for the newly added Octeon platform. Signed-off-by: NStefan Roese <sr@denx.de>
-
由 Stefan Roese 提交于
This patch changes the R_MIPS_NONE define from 0 to a magic value. This makes it possible to better detect any forbidden pre-relocation usage of BSS variables, as they are often zero'ed and then relocation is stopped too early. Additionally the error message is improved to also print the faulting address. This helps finding the root-cause for this breakage by comparing this address with the values in System.map. This patch helps a lot when working on pre-relocation code, like the Octeon DDR init code, where such variables have hit me multiple times now. Signed-off-by: NStefan Roese <sr@denx.de> Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com> Cc: Aaron Williams <awilliams@marvell.com> Cc: Chandrakala Chavva <cchavva@marvell.com>
-
由 Stefan Roese 提交于
WG (bit 11) needs to be set on Octeon to enable writing bits 63:30 of the exception base register. Signed-off-by: NStefan Roese <sr@denx.de>
-
由 Stefan Roese 提交于
This patch opts-out the compilation of get_tbclk() if CONFIG_SYS_MIPS_TIMER_FREQ is not defined. This is used on the Octeon platform, where the weak get_tbclk() function is overwritten by its platform specific one. Signed-off-by: NStefan Roese <sr@denx.de>
-
由 Tom Rini 提交于
A large number of assorted fixes, including but not limited to: - Correct fixdep and CONFIG_IS_ENABLED(...) - lz4 on big endian - Assorted LMB hardening - Remove bd_t typedef
-