- Jan 14, 2016
-
-
Albert ARIBAUD authored
board_init_f_mem() alters the C runtime environment's stack it is actually already using. This is not a valid behaviour within a C runtime environment. Split board_init_f_mem into C functions which do not alter their own stack and always behave properly with respect to their C runtime environment. Signed-off-by:
Albert ARIBAUD <albert.u.boot@aribaud.net> Acked-by:
Thomas Chou <thomas@wytron.com.tw>
-
- Dec 21, 2015
-
-
Alexey Brodkin authored
This commit adds support of USB 1.1 storage media on AXS103 board. For some yet unknown reason USB 2.0 doesn't work on AXS103 board issuing messages like this: ------------------------>8------------------- AXS# usb start starting USB... USB0: USB EHCI 1.00 scanning bus 0 for devices... EHCI timed out on TD - token=0x80008c80 unable to get device descriptor (error=-1) 1 USB Device(s) found ------------------------>8------------------- As a work-around we're falling back to USB 1.1. Indeed it is much slower but at least USB storage devices are usable on AXS103. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com> Cc: Marek Vasut <marex@denx.de> Cc: Simon Glass <sjg@chromium.org>
-
- Dec 08, 2015
-
-
Alexey Brodkin authored
This commit adds support of USB 2.0 storage media on AXS10x boards. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com> Cc: Marek Vasut <marex@denx.de> Cc: Simon Glass <sjg@chromium.org>
-
- Nov 17, 2015
-
-
Alexey Brodkin authored
With this change Synopsys DesignWare SDP board is switched to driver model for both serial port (serial_dw) and Ethernet (Designware GMAC). This simplifies include/configs/axs101.h and allows for reuse of Linux's Device Tree description. For simplicity Linux's .dts files are not blindly copied but only very few extracts of them are really used (those that are supported in U-Boot at the moment). Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com> Reviewed-by:
Simon Glass <sjg@chromium.org> Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
-
Alexey Brodkin authored
common/usb.c unconditionally includes <asm/processor.h> And now to allow USB support on ARC boards we have to have that header. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com>
-
Alexey Brodkin authored
Up until now there was no need in those stubs. But since following commit compilation of U-Boot on ARC is broken: ------------------------>8---------------------- commit 7861204c Author: Stephen Warren <swarren@wwwdotorg.org> Date: Sat Oct 3 13:56:46 2015 -0600 itest: make memory access work under sandbox itest accesses memory, and hence must map/unmap it. Without doing so, it accesses invalid addresses and crashes. Signed-off-by:
Stephen Warren <swarren@wwwdotorg.org> Reviewed-by:
Simon Glass <sjg@chromium.org> ------------------------>8---------------------- That's because CMD_ITEST is enabled by default in common/Kconfig and now map_physmem()/unmap_physmem() is used there. So this patch adds missing stubs for ARC. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com> Reviewed-by:
Simon Glass <sjg@chromium.org> Cc: Stephen Warren <swarren@wwwdotorg.org>
-
- Nov 10, 2015
-
-
Tom Rini authored
After consulting with some of the SPDX team, the conclusion is that Makefiles are worth adding SPDX-License-Identifier tags too, and most of ours have one. This adds tags to ones that lack them and converts a few that had full (or in one case, very partial) license blobs into the equivalent tag. Cc: Kate Stewart <kstewart@linuxfoundation.org> Signed-off-by:
Tom Rini <trini@konsulko.com>
-
- Nov 05, 2015
-
-
Fabio Estevam authored
The generic bitops headers are required when calling logarithmic functions, such as ilog2(). Signed-off-by:
Fabio Estevam <fabio.estevam@freescale.com>
-
- Sep 07, 2015
-
-
Alexey Brodkin authored
This fixes building in automated flow that doesn't use defconfigs. See discussion on that topic here: http://patchwork.ozlabs.org/patch/502558/ See similar patches for other architectures/platforms here: [1] http://git.denx.de/?p=u-boot.git;a=commit;h=ff560a13056a565a4e9ce1761bd04276a3cace88 [2] http://git.denx.de/?p=u-boot.git;a=commit;h=589907e2c187ec69b351c38ccda36730d25ab5d6 And while at it add missing shell prompt to axs103. Cc: Tom Rini <trini@konsulko.com> Cc: Joe Hershberger <joe.hershberger@gmail.com> Cc: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com>
-
- Jul 01, 2015
-
-
Alexey Brodkin authored
[1] Align cache management functions to those in Linux kernel. I.e.: a) Use the same functions for all cache ops (D$ Inv/Flush) b) Split cache ops in 3 sub-functions: "before", "lineloop" and "after". That way we may re-use "before" and "after" functions for region and full cache ops. [2] Implement full-functional L2 (SLC) management. Before SLC was simply disabled early on boot. It's also possible to enable or disable L2 cache from config utility. [3] Disable/enable corresponding caches early on boot. So if U-Boot is configured to use caches they will be used at all times (this is useful in partucular for speed-up of relocation). Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com>
-
Alexey Brodkin authored
With new SMP-enabled CPUs with ARC HS38 cores and corresponding support in Linux kernel it's required to add basic SMP support in U-Boot. Currently we assume the one and only core starts execution after power-on. So most of things in U-Boot is handled in UP mode. But when U-Boot is used for loading and starting Linux kernel right before jumping to kernel's entry point U-Boot: [1] Sets all slave cores to jump to the same address [kernel's entry point] [2] Really starts all slav cores In ARC's implemetation of SMP in Linux kernel all cores are supposed to run the same start-up code. But only core with ID 0 (master core) processes further while others are looping waiting for master core to complete some initialization. That means it's safe to un-pause slave cores and let them execute kernel - they will wait for master anyway. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com> Cc: Vineet Gupta <vgupta@synopsys.com>
-
- Jun 26, 2015
-
-
Joe Hershberger authored
Some archs/boards specify their own default by pre-defining the config which causes the Kconfig system to mix up the order of the configs in the defconfigs... This will cause merge pain if allowed to proliferate. Remove the configs that behave this way from the archs. A few configs still remain, but that is because they only exist as defaults and do not have a proper Kconfig entry. Those appear to be: SPIFLASH DISPLAY_BOARDINFO Signed-off-by:
Joe Hershberger <joe.hershberger@ni.com> [trini: rastaban, am43xx_evm_usbhost_boot, am43xx_evm_ethboot updates, drop DM_USB from MSI_Primo81 as USB_MUSB_SUNXI isn't converted yet to DM] Signed-off-by:
Tom Rini <trini@konsulko.com>
-
- May 18, 2015
-
-
Masahiro Yamada authored
Signed-off-by:
Masahiro Yamada <yamada.masahiro@socionext.com>
-
- May 13, 2015
-
-
Alexey Brodkin authored
TARGET_DUMMY was introduced to resolve the same problem as commit "arch: Make board selection choices optional" http://git.denx.de/?p=u-boot.git;a=commit;h=a26cd04920dc069fd6e91abb785426cf6c29f45f Latter implementation is much cleaner and appropriate. And anyways TARGET_DUMMY is no longer required. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com> Acked-by:
Joe Hershberger <joe.hershberger@ni.com>
-
Masahiro Yamada authored
As doc/README.ARC says, pre-build ARC toolchains are available at the Synopsys GitHub page. The bin files are prefixed with arc(eb)-buildroot-linux- for earlier releases, but with arc(eb)-snps-linux- for the latest releases. The symbolic links prefixed with arc(eb)-linux- are also available for all the release, so those prefixes can be used as the default CROSS_COMPILE regardless of the toolchains version/variants. Signed-off-by:
Masahiro Yamada <yamada.masahiro@socionext.com>
-
- May 12, 2015
-
-
Joe Hershberger authored
By making the board selections optional, every defconfig will include the board selection when running savedefconfig so if a new board is added to the top of the list of choices the former top's defconfig will still be correct. Signed-off-by:
Joe Hershberger <joe.hershberger@ni.com> Cc: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by:
Stephen Warren <swarren@wwwdotorg.org> Cc: Tom Rini <trini@konsulko.com>
-
- Apr 10, 2015
-
-
Alexey Brodkin authored
While testing "arc: make sure _start is in the beginning of .text section" I haven't done proper clean-up of built binaries and so missed another tiny bit that lead to the following error: --->8--- LD u-boot arc-linux-ld.bfd: cannot find arch/arc/lib/start.o Makefile:1107: recipe for target 'u-boot' failed make: *** [u-boot] Error 1 --->8--- Fix is trivial: put "start.o" in "extra-y". Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com>
-
Alexey Brodkin authored
This is important to have entry point in the beginning of .text section because it allows simple loading and execution of U-Boot. For example pre-bootloader loads U-Boot in memory starting from offset 0x81000000 and then just jumps to the same address. Otherwise pre-bootloader would need to find-out where entry-point is. In its turn if it deals with binary image of U-Boot there's no way for pre-bootloader to get required value. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com>
-
- Apr 03, 2015
-
-
Alexey Brodkin authored
ARCv2 cores may have built-in SLC (System Level Cache, AKA L2-cache). This change adds functions required for controlling SLC: * slc_enable/disable * slc_flush/invalidate For now we just disable SLC to escape DMA coherency issues until either: * SLC flush/invalidate is supported in DMA APIin U-Boot * hardware DMA coherency is implemented (that might be board specific so probably we'll need to have a separate Kconfig option for controlling SLC explicitly) Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com>
-
Alexey Brodkin authored
Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com> Cc: Masahiro Yamada <yamada.masahiro@socionext.com> Cc: Simon Glass <sjg@chromium.org>
-
Alexey Brodkin authored
Now when all infrastructure in ARC is ready for it let's switch ARC UART to driver model. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com> Cc: Masahiro Yamada <yamada.masahiro@socionext.com> Cc: Simon Glass <sjg@chromium.org>
-
Alexey Brodkin authored
[1] Fix misspeling in ARC_CACHE_LINE_SHIFT dependency, now cache-line lenth selection is correctly enabled if either I$ or D$ are enabled. [2] Add dummy entry to target list to make sure target type is always mentioned in defconfig. Otherwise defconfig for the first target in the list will not have target name and later on with addition of the new target on top of the list in Kconfig will lead to corrupted configuration expanded from defconfig. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com>
-
Alexey Brodkin authored
As discussed on mailing list we're drifting away from CONFIG_SYS_GENERIC_GLOBAL_DATA in favour to use of board_init_f_mem() for global data. So do this for ARC architecture. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com>
-
Alexey Brodkin authored
Intention behind this work was elimination of as much assembly-written code as it is possible. In case of ARC we already have relocation fix-up implemented in C so why don't we use C for U-Boot copying, .bss zeroing etc. It turned out x86 uses pretty similar approach so we re-used parts of code in "board_f.c" initially implemented for x86. Now assembly usage during init is limited to stack- and frame-pointer setup before and after relocation. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com> Cc: Simon Glass <sjg@chromium.org>
-
Alexey Brodkin authored
This separation makes maintenance of code easier because those low-level interrupt- or exception handling routines are pretty static and usually require not much care while start-up code is a subject of modifications and enhancements. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com>
-
Alexey Brodkin authored
Even though ARCompact and ARCv2 are not binary compatible most of assembly instructions are used in both. With this change we'll get rid of duplicate code. Still IVTs are implemented differently so we're keeping them in separate files. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com>
-
Alexey Brodkin authored
always Make both invalidate_icache_all() and invalidate_dcache_all() available even if U-Boot is configured with CONFIG_SYS_DCACHE_OFF and/or CONFIG_SYS_ICACHE_OFF. This is useful because configuration of U-Boot may not match actual hardware features. Real board may have cache(s) but for some reason we may want to run U-Boot with cache(s) disabled (for example if some peripherals work improperly with existing drivers if data cache is enabled). So board may start with cache(s) enabled (that's the case for ARC cores with built-in caches) but early in U-Boot we disable cache(s) and make sure all contents of data cache gets flushed in RAM. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com>
-
- Mar 28, 2015
-
-
Masahiro Yamada authored
We have done with the generic board conversion for all the boards of ARC, Blackfin, M68000, MicroBlaze, MIPS, NIOS2, Sandbox, X86. Let's select SYS_GENERIC_BOARD for those architectures, so we can tell which architecture has finished the conversion at a glance. Signed-off-by:
Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Alexey Brodkin <abrodkin@synopsys.com>
-
Masahiro Yamada authored
Move the option to Kconfig renaming it to CONFIG_HAVE_GENERIC_BOARD. Signed-off-by:
Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Alexey Brodkin <abrodkin@synopsys.com>
-
- Mar 06, 2015
-
-
Chen Gang authored
For some assemblers, they use another character as newline in a macro (e.g. arc uses '`'), so for generic assembly code, need use ASM_NL (a macro) instead of ';' for it. Basically this is the same patch as applied to Linux kernel - http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/include/linux/linkage.h?id=9df62f054406992ce41ec4558fca6a0fa56fffeb but modified a bit to fit in U-Boot. Signed-off-by:
Chen Gang <gang.chen.5i5j@gmail.com> Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com> Cc: Masahiro Yamada <yamada.m@jp.panasonic.com> Cc: Simon Glass <sjg@chromium.org> Cc: Tom Rini <trini@ti.com>
-
- Feb 13, 2015
-
-
Alexey Brodkin authored
ARC HS and ARC EM are new cores based on ARCv2 ISA which is binary incompatible with ISAv1 (AKA ARCompact). Significant difference between ISAv2 and v1 is implementation of interrupt vector table. In v1 it is implemented in the same way as on many other architectures - as a special location where user may put whether code executed in place (if machine word of space is enough) or jump to a full-scale interrupt handler. In v2 interrupt table is just an array of adresses of real interrupt handlers. That requires a separate section for IVT that is not encoded as code by assembler. This change adds support for following cores: * ARC EM6 (simple 32-bit microcontroller without MMU) * ARC HS36 (advanced 32-bit microcontroller without MMU) * ARC HS38 (advanced 32-bit microcontroller with MMU) As a part of ARC HS38 new version of MMU (v4) was introduced. Also this change adds AXS131 board which is the same DW ARC SDP base board but with ARC HS38 CPU tile. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com>
-
- Feb 09, 2015
-
-
Alexey Brodkin authored
This way we may have very limited set of functions implemented so we save some space. Also it allows us to build U-Boot for any ARC core with the same one toolchain because we don't rely on pre-built libgcc. For example: * we may use little-endian toolchain but build U-Boot for ether endianess * we may use non-multilibbed uClibc toolchain but build U-Boot for whatever ARC CPU flavour that current GCC supports Private libgcc built from generic C implementation contributes only 144 bytes to .text section so we don't see significant degradation of size: --->8--- $ arc-linux-size u-boot.libgcc-prebuilt text data bss dec hex filename 222217 24912 214820 461949 70c7d u-boot.libgcc-prebuilt $ arc-linux-size u-boot.libgcc-private text data bss dec hex filename 222361 24912 214820 462093 70d0d u-boot.libgcc-private --->8--- Also I don't notice visible performance degradation compared to pre-built libgcc (where at least "*div*" functions are had-written in assembly) on typical operations of downloading 10Mb uImage over TFTP and bootm. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com>
-
Alexey Brodkin authored
As a preparation to ARCv2 port submission we're moving CPU slection flags to a common location. Also it will allow us to have more flexible CPU specification, not only ISA version but CPU family as well checking CONFIG_ARC_CPU_xxx. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com>
-
Alexey Brodkin authored
Common arch_early_init_r() is used in "arc/lib/cpu.c" for all ARC boards so there's no sense in separate per-board definitions. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com>
-
Alexey Brodkin authored
There're no other options for ARC except "generic board" so ther's no point to define CONFIG_SYS_GENERIC_BOARD per board. We now have it set fo all ARC boards. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com>
-
Alexey Brodkin authored
This change allows to keep board description clean and minimalistic. This is especially helpful if one board may house different CPUs with different features. It is applicable to both FPGA-based boards or those that have CPUs mounted on interchnagable daughter-boards. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com>
-
Alexey Brodkin authored
This change allows to keep board description clean and minimalistic. This is especially helpful if one board may house different CPUs with different features. It is applicable to both FPGA-based boards or those that have CPUs mounted on interchnagable daughter-boards. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com>
-
Alexey Brodkin authored
DC_PTAG and IC_PTAG registers only exist in MMUv3. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com>
-
Alexey Brodkin authored
Now we may select a particular version of ARC700: * ARC750D or * ARC770D It allows more flexible (or more fine tuned) configuration of U-Boot. Before that change we relied on minimal configuration but now we may use specific features of each CPU. Moreover allows us to escape manual selection of options that exist in both CPUs but may have say different version like MMUv2 in ARC750D vs MMUv3 in ARC770D. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com>
-
Igor Guryanov authored
It's prohibited to put branch instruction in the very end of zero-delay loop. On execution this causes "Illegal instruction" exception. Signed-off-by:
Alexey Brodkin <abrodkin@synopsys.com> Signed-off-by:
Igor Guryanov <guryanov@synopsys.com>
-