platform/kernel/u-boot.git
6 years agosf: Set current flash bank to 0 in clean_bar()
Marek Vasut [Thu, 24 May 2018 19:58:40 +0000 (21:58 +0200)]
sf: Set current flash bank to 0 in clean_bar()

The clean_bar() function resets the SPI NOR BAR register to 0, but
does not set the flash->curr_bar to 0 , therefore those two can get
out of sync, which could ultimatelly result in corrupted flash content.

The simplest test case is this:

  => mw 0x10000000 0x1234abcd 0x4000
  => sf probe
  => sf erase 0x1000000 0x10000
  => sf write 0x10000000 0x1000000 0x10000

  => sf probe ; sf read 0x12000000 0 0x10000 ; md 0x12000000

That is, erase a sector above the 16 MiB boundary and write it with
random pre-configured data. What will actually happen without this
patch is the sector will be erased, but the data will be written to
BAR 0 offset 0x0 in the flash.

This is because the erase command will call write_bar()+clean_bar(),
which will leave flash->bank_curr = 1 while the hardware BAR registers
will be set to 0 through clean_bar(). The subsequent write will also
trigger write_bar()+clean_bar(), but write_bar checks if the target
bank == flash->bank_curr and if so, does NOT reconfigure the BAR in
the SPI NOR. Since flash->bank_curr is still 1 and out of sync with
the HW, the condition matches, BAR programming is skipped and write
ends up at address 0x0, thus corrupting flash content.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Tom Rini <trini@konsulko.com>
Reviewed-by: Jagan Teki <jagan@openedev.com>
6 years agospi: cadence_qspi: Change to use devfdt_get_addr_index()
Ley Foon Tan [Mon, 7 May 2018 09:42:55 +0000 (17:42 +0800)]
spi: cadence_qspi: Change to use devfdt_get_addr_index()

Change to use devfdt_get_addr_index() function to get fdt address.

Original code has compilation warning below:

drivers/spi/cadence_qspi.c: In function ‘cadence_spi_ofdata_to_platdata’:
drivers/spi/cadence_qspi.c:297:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  plat->regbase = (void *)data[0];
                  ^
drivers/spi/cadence_qspi.c:298:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  plat->ahbbase = (void *)data[2];
                  ^
Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Acked-by: Marek Vasut <marex@denx.de>
Reviewed-by: Jagan Teki <jagan@openedev.com>
6 years agoMerge branch 'master' of git://git.denx.de/u-boot-sunxi
Tom Rini [Mon, 4 Jun 2018 12:55:00 +0000 (08:55 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-sunxi

6 years agoboard: sun50i: Add Amarula A64-Relic initial support
Jagan Teki [Mon, 28 May 2018 11:04:43 +0000 (16:34 +0530)]
board: sun50i: Add Amarula A64-Relic initial support

Amarula A64-Relic is A64 based IoT device, which support
- Allwinner A64 Cortex-A53
- Mali-400MP2 GPU
- AXP803 PMIC
- 1GB DDR3 RAM
- 8GB eMMC
- AP6330 Wifi/BLE
- MIPI-DSI
- CSI: OV5640 sensor
- USB OTG
- 12V DC power supply

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
6 years agoSPDX: Fixup tags from latest EFI PR
Tom Rini [Sun, 3 Jun 2018 20:10:22 +0000 (16:10 -0400)]
SPDX: Fixup tags from latest EFI PR

Signed-off-by: Tom Rini <trini@konsulko.com>
6 years agoMerge tag 'signed-efi-next' of git://github.com/agraf/u-boot
Tom Rini [Sun, 3 Jun 2018 16:27:56 +0000 (12:27 -0400)]
Merge tag 'signed-efi-next' of git://github.com/agraf/u-boot

Patch queue for efi - 2018-06-03

A number of fixes and feature completeness work this time around:

  - Fix sunxi GOP reservation
  - Fix cursor position
  - Fix efi_get_variable
  - Allow more selftest parts to build on x86_64
  - Allow unaligned memory access on armv7
  - Implement ReinstallProtocolInterface
  - More sandbox preparation

6 years agoMerge tag 'signed-rpi-next' of git://github.com/agraf/u-boot
Tom Rini [Sun, 3 Jun 2018 16:27:42 +0000 (12:27 -0400)]
Merge tag 'signed-rpi-next' of git://github.com/agraf/u-boot

Patch queue for rpi - 2018-06-03

This pull request only includes a single patch that was left
out in the last one: A fix to have the fdt stay at its original
location in RAM during boot.

6 years agoefi_loader: Fix warning in raw/cols query
Alexander Graf [Sun, 3 Jun 2018 13:51:17 +0000 (15:51 +0200)]
efi_loader: Fix warning in raw/cols query

The code to determine rows / cols on the screen could potentially run
into a case where it doesn't know how big the screen is. In that case,
assume 80x25.

Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agorpi: Fix fdt_high & initrd_high for 64-bit builds
Tuomas Tynkkynen [Fri, 20 Apr 2018 10:03:48 +0000 (13:03 +0300)]
rpi: Fix fdt_high & initrd_high for 64-bit builds

The magic value that disables relocation is dependent on the CPU word
size, so the current 'ffffffff' is doing the wrong thing on aarch64.

Signed-off-by: Tuomas Tynkkynen <tuomas@tuxera.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_loader: create handles from normal memory
Heinrich Schuchardt [Sun, 27 May 2018 14:47:21 +0000 (16:47 +0200)]
efi_loader: create handles from normal memory

Handles are not used at runtime. They are freed by the firmware when the
last protocol interface is uninstalled. So there is no reason to use EFI
memory when creating handles.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_loader: efi_mem_carve_out should return s64
Heinrich Schuchardt [Sun, 27 May 2018 14:45:09 +0000 (16:45 +0200)]
efi_loader: efi_mem_carve_out should return s64

efi_mem_carve_out() is used to remove memory pages from a mapping.
As the number of pages to be removed is a 64bit type the return type
should be 64bit too.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_loader: avoid anonymous constants for AllocatePages
Heinrich Schuchardt [Sat, 26 May 2018 08:32:27 +0000 (10:32 +0200)]
efi_loader: avoid anonymous constants for AllocatePages

Do not use anonymous constants when calling efi_allocage_pages.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_selftest: check for buffer overflow in efi_get_variable
Ivan Gorinov [Fri, 25 May 2018 17:45:09 +0000 (10:45 -0700)]
efi_selftest: check for buffer overflow in efi_get_variable

Allocate a buffer on the stack instead of an array of uninitialized
pointers; check if GetVariable writes past the end of the buffer.

Signed-off-by: Ivan Gorinov <ivan.gorinov@intel.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoMakefile: clean should delete *.so
Heinrich Schuchardt [Thu, 24 May 2018 17:34:45 +0000 (19:34 +0200)]
Makefile: clean should delete *.so

Files *.so are generated files. So the clean target should delete them.

Reported-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_selftest: imply FAT, FAT_WRITE
Heinrich Schuchardt [Fri, 25 May 2018 10:30:39 +0000 (12:30 +0200)]
efi_selftest: imply FAT, FAT_WRITE

efi_selftest_block_device accesses a FAT file system.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_loader: DocBook comments for boot services
Heinrich Schuchardt [Fri, 11 May 2018 16:15:41 +0000 (18:15 +0200)]
efi_loader: DocBook comments for boot services

With 'make htmldocs' we can generate a documentation if the function
comments follow the DocBook conventions.

This patch adjusts the comments for EFI boot services and provides the
DocBook template for the EFI subsystem.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoAdd a comment for board_quiesce_devices()
Simon Glass [Wed, 16 May 2018 15:42:26 +0000 (09:42 -0600)]
Add a comment for board_quiesce_devices()

This exported function should have a comment describing what it does. Also
it should really be removed in favour of device_remove(), which handles
this sort of thing now. Add a comment with a TODO.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoDefine board_quiesce_devices() in a shared location
Simon Glass [Wed, 16 May 2018 15:42:25 +0000 (09:42 -0600)]
Define board_quiesce_devices() in a shared location

This undocumented function relies on arch-specific code to declare a nop
weak version. Add the weak function in common code instead to avoid having
to duplicate the same function in each arch.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi: sandbox: Add required linker sections
Simon Glass [Wed, 16 May 2018 15:42:23 +0000 (09:42 -0600)]
efi: sandbox: Add required linker sections

The EFI loader code requires certain linker sections to exist. Add these
for sandbox so that the EFI loader code will link.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agosandbox: Add a setjmp() implementation
Simon Glass [Wed, 16 May 2018 15:42:22 +0000 (09:42 -0600)]
sandbox: Add a setjmp() implementation

Add an implementation of setjmp() and longjmp() which rely on the
underlying host C library. Since we cannot know how large the jump buffer
needs to be, pick something that should be suitable and check it at
runtime. At present we need access to the underlying struct as well.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi: Update some comments related to smbios tables
Simon Glass [Wed, 16 May 2018 15:42:19 +0000 (09:42 -0600)]
efi: Update some comments related to smbios tables

Clarify the operation of this code with some additional comments.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_selftest: test unaligned memory access
Heinrich Schuchardt [Tue, 3 Apr 2018 19:59:34 +0000 (21:59 +0200)]
efi_selftest: test unaligned memory access

According to the UEFI spec unaligned memory access should be enabled on
CPUs supporting it.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoarm: armv7: allow unaligned memory access
Heinrich Schuchardt [Tue, 3 Apr 2018 19:59:33 +0000 (21:59 +0200)]
arm: armv7: allow unaligned memory access

The UEFI spec mandates that unaligned memory access should be enabled if
supported by the CPU architecture.

This patch implements the function unaligned_access() to reset the aligned
access flag in the system control register (SCTLR). It is called when the
bootefi command is invoked.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
[agraf: fix SPDX identifier]
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_loader: allow unaligned memory access
Heinrich Schuchardt [Tue, 3 Apr 2018 19:59:32 +0000 (21:59 +0200)]
efi_loader: allow unaligned memory access

The UEFI spec mandates that unaligned memory access should be enabled if
supported by the CPU architecture.

This patch adds an empty weak function unaligned_access() that can be
overridden by an architecture specific routine.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_selftest: test ReinstallProtocolInterface
Heinrich Schuchardt [Fri, 11 May 2018 10:09:23 +0000 (12:09 +0200)]
efi_selftest: test ReinstallProtocolInterface

Add a test for ReinstallProtocolInterface to the controller selftest.

As ReinstallProtocolInterface has to connect controllers to the new
interface is does not fit to the manage protocols selftest.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_loader: implement ReinstallProtocolInterface
Heinrich Schuchardt [Fri, 11 May 2018 10:09:22 +0000 (12:09 +0200)]
efi_loader: implement ReinstallProtocolInterface

The ReinstallProtocolInterface boot time service is implemented.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_loader: check interface when uninstalling protocol
Heinrich Schuchardt [Fri, 11 May 2018 10:09:21 +0000 (12:09 +0200)]
efi_loader: check interface when uninstalling protocol

The interface has to be checked in UninstallProtocolInterface.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_selftest: correct efi_selftest_manageprotocols
Heinrich Schuchardt [Fri, 11 May 2018 10:09:20 +0000 (12:09 +0200)]
efi_selftest: correct efi_selftest_manageprotocols

Pass the correct interface when uninstalling a protocol.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agovideo: sunxi: de2: Reserve the fb region in the EFI memory map
Emmanuel Vadot [Fri, 4 May 2018 08:26:55 +0000 (10:26 +0200)]
video: sunxi: de2: Reserve the fb region in the EFI memory map

If compile with support for the efi loader we need to mark the pages
allocated for the framebuffer as reserved so the kernel won't attempt
to use them for other uses.

Signed-off-by: Emmanuel Vadot <manu@freebsd.org>
Acked-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_loader: fix off-by-one bug in efi_get_variable
Ivan Gorinov [Fri, 11 May 2018 20:18:25 +0000 (13:18 -0700)]
efi_loader: fix off-by-one bug in efi_get_variable

efi_get_variable() always stores an extra zero byte after the output data.
When the returned data size matches the output buffer size, the extra zero
byte is stored past the end of the output buffer.

Signed-off-by: Ivan Gorinov <ivan.gorinov@intel.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoREADME.uefi: update list of missing functionality
Heinrich Schuchardt [Sat, 12 May 2018 01:28:44 +0000 (03:28 +0200)]
README.uefi: update list of missing functionality

Update the list of missing functionality for boottime and runtime services.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_loader: avoid using unitialized values as console size
Heinrich Schuchardt [Wed, 16 May 2018 16:17:38 +0000 (18:17 +0200)]
efi_loader: avoid using unitialized values as console size

If a request for the console size would be answered with a response
with less then three values, uninitialized stack memory would be
copied to the number of rows and columns of the terminal.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_selftest: unit test for variable services
Heinrich Schuchardt [Thu, 17 May 2018 05:57:06 +0000 (07:57 +0200)]
efi_selftest: unit test for variable services

Provide a unit test for variable services.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_loader: adjust definitions of variable services
Heinrich Schuchardt [Thu, 17 May 2018 05:57:05 +0000 (07:57 +0200)]
efi_loader: adjust definitions of variable services

The definitons of the variable services are adjusted:
- use efi_uintn_t instead of unsigned long
- use u16 * instead of s16 * for Unicode strings
- correct definition of QueryVariableInfo
- rename efi_get_next_variable to efi_get_next_variable_name

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_selftest: do not call efi_init_obj_list() twice
Heinrich Schuchardt [Thu, 17 May 2018 16:24:48 +0000 (18:24 +0200)]
efi_selftest: do not call efi_init_obj_list() twice

Remove a superfluous call to efi_init_obj_list() invoked by
'bootefi selftest'.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoMakefile: clean should delete *.efi
Heinrich Schuchardt [Thu, 17 May 2018 16:57:13 +0000 (18:57 +0200)]
Makefile: clean should delete *.efi

Files *.efi are generated files. So the clean target should delete them.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_loader: build CRT0 and RELOC on x86_64
Heinrich Schuchardt [Fri, 18 May 2018 17:12:20 +0000 (19:12 +0200)]
efi_loader: build CRT0 and RELOC on x86_64

The efi selftest and the hello application require CRT0 and RELOC to be
built.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_selftest: allow building relocation code on x86_64
Heinrich Schuchardt [Fri, 18 May 2018 17:12:19 +0000 (19:12 +0200)]
efi_selftest: allow building relocation code on x86_64

Variables EFI_RELOC and EFI_CRT0 have to be defined to build the
EFI unit tests. This patch ensures this for the x86 architecure.

If we compile with EFI_STUB, the bitness depends on CONFIG_EFI_STUB_64BIT.
Otherwise the bitness depends on CONFIG_X86_64.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_loader: always check parameters in efi_cout_query_mode()
Heinrich Schuchardt [Sun, 29 Apr 2018 18:02:46 +0000 (20:02 +0200)]
efi_loader: always check parameters in efi_cout_query_mode()

If we cannot determine the size of the serial terminal we still have
to check the parameters of efi_cout_query_mode().

Querying the size of the serial terminal drains the keyboard buffer.
So make sure we do this during the initialization and not in the midst
of an EFI application.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_selftest: updating the cursor position
Heinrich Schuchardt [Sun, 29 Apr 2018 14:24:26 +0000 (16:24 +0200)]
efi_selftest: updating the cursor position

The test case for text output is updated to check correct updating
of the cursor position.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_loader: updating the cursor position
Heinrich Schuchardt [Sun, 29 Apr 2018 14:24:25 +0000 (16:24 +0200)]
efi_loader: updating the cursor position

The current coding advances the column by the number of UTF-8 bytes.
The column should be increased by one per unicode character.

The UEFI spec provides advance rules for U+0000, U+0008, U+000A,
and U000D. All other characters, including control characters
U+0007 (bel) and U+0009 (tab), have to increase the column by one.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_loader: remove unnecessary include
Heinrich Schuchardt [Fri, 27 Apr 2018 17:07:24 +0000 (19:07 +0200)]
efi_loader: remove unnecessary include

asm/global_data.h is already included via common.h.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_loader: if EFI_LOADER is enabled, enable CFB_CONSOLE_ANSI
Heinrich Schuchardt [Sun, 29 Apr 2018 21:37:12 +0000 (23:37 +0200)]
efi_loader: if EFI_LOADER is enabled, enable CFB_CONSOLE_ANSI

EFI applications like GRUB issue ANSI sequences for setting colors
and for positioning. So if the EFI subsystem is enabled, we should
also enable ANSI control sequences by default.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoefi_loader: correctly apply relocations from the .reloc section
Ivan Gorinov [Wed, 2 May 2018 23:36:02 +0000 (16:36 -0700)]
efi_loader: correctly apply relocations from the .reloc section

Instead of difference between preferred and actual image base, the
actual base is added to the fields specified in the .reloc section.

Use ImageBase from PE optional header to compute the delta,
exit early if the image is loaded at the preferred address.

Signed-off-by: Ivan Gorinov <ivan.gorinov@intel.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
6 years agoMerge branch 'master' of git://git.denx.de/u-boot-sh
Tom Rini [Sat, 2 Jun 2018 01:10:18 +0000 (21:10 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-sh

6 years agoMerge branch 'master' of git://git.denx.de/u-boot-mips
Tom Rini [Fri, 1 Jun 2018 20:46:39 +0000 (16:46 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-mips

6 years agoMerge tag 'xilinx-for-v2018.07-2' of git://www.denx.de/git/u-boot-microblaze
Tom Rini [Fri, 1 Jun 2018 17:50:15 +0000 (13:50 -0400)]
Merge tag 'xilinx-for-v2018.07-2' of git://denx.de/git/u-boot-microblaze

Xilinx changes for v2018.07 second pull

zynqmp:
- Show reset reason
- Remove emulation platform
- Update pmufw version
- Simplify mmc bootmode
- Remove dc2 useless configuration file
- Cleanup mini config
- Defconfig syncup
- zcu100, zcu104 and zcu111 dts fixes

xilinx:
- Use live-tree functions in some drivers
- Add support for Avnet Minized and Antminer S9

fpga:
- Add secure bitstream loading support

mmc:
- Add hs200 mode support

usb xhci:
- Header fix

6 years agophy: bcm6318-usbh: convert to use live dt
Álvaro Fernández Rojas [Thu, 22 Mar 2018 18:39:43 +0000 (19:39 +0100)]
phy: bcm6318-usbh: convert to use live dt

Also fix bad accents in my name.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
6 years agophy: bcm6368-usbh: convert to use live dt
Álvaro Fernández Rojas [Thu, 22 Mar 2018 18:39:42 +0000 (19:39 +0100)]
phy: bcm6368-usbh: convert to use live dt

Also fix bad accents in my name.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
6 years agophy: bcm6358-usbh: convert to use live dt
Álvaro Fernández Rojas [Thu, 22 Mar 2018 18:39:41 +0000 (19:39 +0100)]
phy: bcm6358-usbh: convert to use live dt

Also fix bad accents in my name.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
6 years agophy: bcm6348-usbh: convert to use live dt
Álvaro Fernández Rojas [Thu, 22 Mar 2018 18:39:40 +0000 (19:39 +0100)]
phy: bcm6348-usbh: convert to use live dt

Also fix bad accents in my name.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
6 years agocpu: bmips: convert to use live dt
Álvaro Fernández Rojas [Thu, 22 Mar 2018 18:39:39 +0000 (19:39 +0100)]
cpu: bmips: convert to use live dt

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
6 years agoram: bmips: convert to use live dt
Álvaro Fernández Rojas [Thu, 22 Mar 2018 18:39:38 +0000 (19:39 +0100)]
ram: bmips: convert to use live dt

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
6 years agospi: bcm63xx_hsspi: convert to use live dt
Álvaro Fernández Rojas [Thu, 22 Mar 2018 18:39:37 +0000 (19:39 +0100)]
spi: bcm63xx_hsspi: convert to use live dt

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
6 years agospi: bcm63xx_spi: convert to use live dt
Álvaro Fernández Rojas [Thu, 22 Mar 2018 18:39:36 +0000 (19:39 +0100)]
spi: bcm63xx_spi: convert to use live dt

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
6 years agopower: domain: bcm6328: convert to use live dt
Álvaro Fernández Rojas [Thu, 22 Mar 2018 18:39:35 +0000 (19:39 +0100)]
power: domain: bcm6328: convert to use live dt

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
6 years agoled: bcm6328: convert to use live dt
Álvaro Fernández Rojas [Thu, 22 Mar 2018 18:39:34 +0000 (19:39 +0100)]
led: bcm6328: convert to use live dt

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
6 years agoled: bcm6358: convert to use live dt
Álvaro Fernández Rojas [Thu, 22 Mar 2018 18:39:33 +0000 (19:39 +0100)]
led: bcm6358: convert to use live dt

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
6 years agogpio: bcm6345: convert to use live dt
Álvaro Fernández Rojas [Thu, 22 Mar 2018 18:39:32 +0000 (19:39 +0100)]
gpio: bcm6345: convert to use live dt

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
6 years agoreset: bcm6345: convert to use live dt
Álvaro Fernández Rojas [Thu, 22 Mar 2018 18:39:31 +0000 (19:39 +0100)]
reset: bcm6345: convert to use live dt

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
6 years agoclk: bcm6345: convert to use live dt
Álvaro Fernández Rojas [Thu, 22 Mar 2018 18:39:30 +0000 (19:39 +0100)]
clk: bcm6345: convert to use live dt

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
6 years agoserial: bcm6345: convert to use live dt
Álvaro Fernández Rojas [Thu, 22 Mar 2018 18:39:29 +0000 (19:39 +0100)]
serial: bcm6345: convert to use live dt

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
6 years agowatchdog: bcm6345: convert to use live dt
Álvaro Fernández Rojas [Thu, 22 Mar 2018 18:39:28 +0000 (19:39 +0100)]
watchdog: bcm6345: convert to use live dt

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
6 years agodm: core: add functions to get memory-mapped I/O addresses
Álvaro Fernández Rojas [Sun, 29 Apr 2018 19:56:54 +0000 (21:56 +0200)]
dm: core: add functions to get memory-mapped I/O addresses

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agoMerge branch 'master' of git://git.denx.de/u-boot-usb
Tom Rini [Fri, 1 Jun 2018 13:52:15 +0000 (09:52 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-usb

6 years agofpga: zynqmp: Add secure bitstream loading for ZynqMP
Siva Durga Prasad Paladugu [Thu, 31 May 2018 09:40:23 +0000 (15:10 +0530)]
fpga: zynqmp: Add secure bitstream loading for ZynqMP

This patch adds support for loading secure bitstreams on ZynqMP
platforms. The secure bitstream images has to be generated using
Xilinx bootgen tool.

Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agocmd: fpga: Add support to load secure bitstreams
Siva Durga Prasad Paladugu [Thu, 31 May 2018 09:40:22 +0000 (15:10 +0530)]
cmd: fpga: Add support to load secure bitstreams

This patch adds support to load secure bitstreams(authenticated or
encrypted or both). As of now, this feature is added and tested only
for xilinx bitstreams and the secure bitstream was generated using
xilinx bootgen tool, but the command is defined in more generic way.

Command example to load authenticated and device key
encrypted bitstream is as follows
"fpga loads 0 100000 2000000 0 1"

Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agocmd: fpga: Reorder the arguments parsing code
Siva Durga Prasad Paladugu [Thu, 31 May 2018 09:40:21 +0000 (15:10 +0530)]
cmd: fpga: Reorder the arguments parsing code

This patch modifies the arguments parsing code by parsing
based on requested operation for fpga loadfs and then
parses the most common/basic args for other fpga load
commands. This makes it easy for new command extensions
or additions especially the commands with more args.

Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoARM: dts: rmobile: Sync R8A77990 Ebisu DTS with Linux
Marek Vasut [Thu, 31 May 2018 16:30:17 +0000 (18:30 +0200)]
ARM: dts: rmobile: Sync R8A77990 Ebisu DTS with Linux

Import the R8A77990 and Ebisu DTS from linux-next to get the latest
version. This makes AVB ethernet work in U-Boot since the ethernet
node is now present in DT, as well as GPIOs.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoARM: renesas: Add R8A77990 E3 Ebisu board
Marek Vasut [Thu, 26 Apr 2018 11:31:39 +0000 (13:31 +0200)]
ARM: renesas: Add R8A77990 E3 Ebisu board

Add support for the R8A77990 Ebisu board.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoARM: dts: rmobile: Add Renesas Ebisu board support
Takeshi Kihara [Wed, 11 Apr 2018 09:37:42 +0000 (18:37 +0900)]
ARM: dts: rmobile: Add Renesas Ebisu board support

Basic support for the Renesas Ebisu board based on R-Car E3:
  - Memory,
  - Main crystal,
  - Serial console,

Signed-off-by: Takeshi Kihara <takeshi.kihara.df@renesas.com>
[shimoda: rebase and add SPDX-License-Identifier]
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoARM: dts: rmobile: Add Renesas R8A77990 SoC support
Yoshihiro Shimoda [Wed, 11 Apr 2018 09:37:41 +0000 (18:37 +0900)]
ARM: dts: rmobile: Add Renesas R8A77990 SoC support

This patch adds basic support for the Renesas R-Car E3 (R8A77990) SoC:
  - PSCI
  - CPU (single)
  - Cache controller
  - Main clocks and controller
  - Interrupt controller
  - Timer
  - PMU
  - Reset controller
  - Product register
  - System controller
  - UART for console

Inspried by a patch by Takeshi Kihara in the BSP.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoARM: renesas: Add R8A77990 E3 SoC ID
Marek Vasut [Thu, 26 Apr 2018 08:09:06 +0000 (10:09 +0200)]
ARM: renesas: Add R8A77990 E3 SoC ID

Add ID and Kconfig entry for the Renesas R8A77990 E3 SoC.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agonet: ravb: Add R8A77990 E3 compatible
Marek Vasut [Thu, 26 Apr 2018 11:20:10 +0000 (13:20 +0200)]
net: ravb: Add R8A77990 E3 compatible

Add new compatible to the Ethernet AVB driver for R8A77990 E3 SoC.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agommc: renesas-sdhi: Add R8A77990 E3 compatible
Marek Vasut [Thu, 26 Apr 2018 11:19:29 +0000 (13:19 +0200)]
mmc: renesas-sdhi: Add R8A77990 E3 compatible

Add new compatible to the Uniphier SD driver for R8A77990 E3 SoC.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agogpio: rmobile: Add R8A77990 E3 compatible
Marek Vasut [Thu, 26 Apr 2018 11:18:45 +0000 (13:18 +0200)]
gpio: rmobile: Add R8A77990 E3 compatible

Add new compatible to the GPIO driver for R8A77990 E3 SoC.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agopinctrl: renesas: Initial R8A77990 PFC support
Marek Vasut [Thu, 26 Apr 2018 11:09:20 +0000 (13:09 +0200)]
pinctrl: renesas: Initial R8A77990 PFC support

This patch adds initial pinctrl driver to support for the R8A77990 SoC.

Signed-off-by: Takeshi Kihara <takeshi.kihara.df@renesas.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agopinctrl: renesas: Add PORT_GP_11 helper macro
Takeshi Kihara [Wed, 7 Mar 2018 06:26:12 +0000 (15:26 +0900)]
pinctrl: renesas: Add PORT_GP_11 helper macro

This follows the style of existion PORT_GP_X macros and
will be used by a follow-up patch for the r8a77990 SoC.

Signed-off-by: Takeshi Kihara <takeshi.kihara.df@renesas.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoclk: renesas: Add R8A77990 E3 clock tables
Marek Vasut [Thu, 26 Apr 2018 08:19:03 +0000 (10:19 +0200)]
clk: renesas: Add R8A77990 E3 clock tables

Add clock tables for R8A77990 E3 SoC .

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoclk: renesas: Add PE clock handling
Marek Vasut [Thu, 31 May 2018 17:47:42 +0000 (19:47 +0200)]
clk: renesas: Add PE clock handling

The PE clock have two parents, add support for picking the correct
one and deriving the clock from it.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoclk: renesas: Add PLL1 and PLL3 dividers
Marek Vasut [Thu, 31 May 2018 17:25:41 +0000 (19:25 +0200)]
clk: renesas: Add PLL1 and PLL3 dividers

Add and use the PLL1 and PLL3 dividers.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoclk: renesas: Pass clock rate around as 64bit number internally
Marek Vasut [Thu, 31 May 2018 17:06:02 +0000 (19:06 +0200)]
clk: renesas: Pass clock rate around as 64bit number internally

The PLL rate could be in the GHz range, which could overflow a 32bit
data type. Since the hardware is 64bit anyway, pass the clock rates
as 64bit number internally to avoid this.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoclk: renesas: Fix swapped arguments in debug message
Marek Vasut [Thu, 31 May 2018 16:56:35 +0000 (18:56 +0200)]
clk: renesas: Fix swapped arguments in debug message

The mul and div arguments were reported in reverse order in the debug
message, swap them to fix this.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoARM: rmobile: Represent SF partitioning with mtdparts on Stout
Marek Vasut [Thu, 31 May 2018 12:42:07 +0000 (14:42 +0200)]
ARM: rmobile: Represent SF partitioning with mtdparts on Stout

Add mtdparts description for the board.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoARM: rmobile: Represent SF partitioning with mtdparts on Silk
Marek Vasut [Thu, 31 May 2018 12:41:58 +0000 (14:41 +0200)]
ARM: rmobile: Represent SF partitioning with mtdparts on Silk

Add mtdparts description for the board.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoARM: rmobile: Represent SF partitioning with mtdparts on Porter
Marek Vasut [Thu, 31 May 2018 12:41:53 +0000 (14:41 +0200)]
ARM: rmobile: Represent SF partitioning with mtdparts on Porter

Add mtdparts description for the board.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoARM: rmobile: Represent SF partitioning with mtdparts on Lager
Marek Vasut [Thu, 31 May 2018 12:41:48 +0000 (14:41 +0200)]
ARM: rmobile: Represent SF partitioning with mtdparts on Lager

Add mtdparts description for the board.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoARM: rmobile: Represent SF partitioning with mtdparts on Koelsch
Marek Vasut [Thu, 31 May 2018 12:41:43 +0000 (14:41 +0200)]
ARM: rmobile: Represent SF partitioning with mtdparts on Koelsch

Add mtdparts description for the board.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoARM: rmobile: Represent SF partitioning with mtdparts on Gose
Marek Vasut [Thu, 31 May 2018 12:41:38 +0000 (14:41 +0200)]
ARM: rmobile: Represent SF partitioning with mtdparts on Gose

Add mtdparts description for the board.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoARM: rmobile: Represent SF partitioning with mtdparts on Alt
Marek Vasut [Thu, 31 May 2018 12:41:04 +0000 (14:41 +0200)]
ARM: rmobile: Represent SF partitioning with mtdparts on Alt

Add mtdparts description for the board.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoARM: rmobile: Enable MTD partitioning on Gen2 with SF
Marek Vasut [Thu, 31 May 2018 12:42:12 +0000 (14:42 +0200)]
ARM: rmobile: Enable MTD partitioning on Gen2 with SF

Enable MTD partitioning support on Gen2 boards with SPI NORs.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agoMerge tag 'arc-updates-for-2018.07-rc1' of git://git.denx.de/u-boot-arc
Tom Rini [Thu, 31 May 2018 18:17:36 +0000 (14:17 -0400)]
Merge tag 'arc-updates-for-2018.07-rc1' of git://git.denx.de/u-boot-arc

Here we do a couple of minor fixes like:
 - Move .ivt section to the very beginning of the image
   by default which allows us to use that image put right
   at reset vector (usually 0x0)

 - Improve relocation fix-up which became required once
   we moved .ivt and understood a problem with existing implementation
   where we relied on a particular placement of sections.
   Now we don't care about placement because we just explicitly
   check for .text and in case of ARCompact .ivt sections

 - Re-implemnt do_reset() such that it calls reset_cpu() which
   could implmented for a particular board

And hte most important part we introduce support for yet another
devboard from Synopsys - EMDK.

6 years agoARC: Add support for EM Development Kit board
Alexey Brodkin [Mon, 28 May 2018 12:27:43 +0000 (15:27 +0300)]
ARC: Add support for EM Development Kit board

Synopsys DesignWare ARC EM Development Kit (ARC EMDK) is
an FPGA-based development platform from Synopsys aimed to speed-up
development of software for ARC EM cores and entire subsystems based on
ARC EM like Data Fusion, Secure and Sensor & Control subsystems.

U-Boot is supposed to be used as a primary bootloader on EMDK allowing
users to easily load and start their application from micro-SD card.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
6 years agoARC: Use elf32-bigarc in case of -EB
Alexey Brodkin [Wed, 30 May 2018 16:03:39 +0000 (19:03 +0300)]
ARC: Use elf32-bigarc in case of -EB

As it is stated in LD manual [1] the second entry in OUTPUT_FORMAT
corresponds to "-EB" command-line option which for us is "elf32-bigarc".

[1] https://sourceware.org/binutils/docs/ld/Format-Commands.html#Format-Commands

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
6 years agoARC: Reset: Implement weak reset_cpu()
Alexey Brodkin [Wed, 30 May 2018 09:19:54 +0000 (12:19 +0300)]
ARC: Reset: Implement weak reset_cpu()

This will allow for board-specific implementation of reset.
Default version will just stop execution with help of BRK instruction.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
6 years agoARC: Reset: Use __builtin_arc_brk() instead of open-coded ASM
Alexey Brodkin [Wed, 30 May 2018 08:31:07 +0000 (11:31 +0300)]
ARC: Reset: Use __builtin_arc_brk() instead of open-coded ASM

For quite some time we have a GCC's built-in which inserts BRK
instruction so let's use it instead of simple insertion of in-line
assembly.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
6 years agoARC: Move .ivt section to the very beginning of the image
Alexey Brodkin [Tue, 29 May 2018 17:01:00 +0000 (20:01 +0300)]
ARC: Move .ivt section to the very beginning of the image

This is useful for cases when U-Boot image is put in ROM and
reset vector points to 0 where the very beginnign of the image reside.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
6 years agoARC: Improve relocation fix-ups
Alexey Brodkin [Tue, 29 May 2018 15:09:55 +0000 (18:09 +0300)]
ARC: Improve relocation fix-ups

We used to have the one and only linker script for all ARC boards
and so we relied on a particular order of symbols there.

Because of that we used __ivt_end as the marker of the end of all the
code which won't be true any longer if we move .ivt section to any other
place. That said we'd better check for each section separately.

A couple of other improvements:
 1. There's no point to include the marker of section end in interested
    range because its address is beyond the section, i.e. we should
    compare with "<" but not "<=".

 2. .ivt section for ARCv2 cores is just an array of 32-bit ints and
    they are not swapped even on little-endia cores while in case of
    ARCompact cores .ivt contains valid code so swapping is required.

 3. Just in case add check for ARC600 which is also ARCompact
    and its .ivt is normal code.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
6 years agoARC: Make sure .ivt section is not purged by garbage collector
Alexey Brodkin [Tue, 29 May 2018 17:29:16 +0000 (20:29 +0300)]
ARC: Make sure .ivt section is not purged by garbage collector

Fixes commit fac4790491f6 ("arc: Eliminate unused code and data with GCC's garbage collector"),
see [1].

Since in case of ARCv2 .ivt only contains addrresses of
interrupt/exception handlers linker doesn't understand that this section
actually make a lot of sense and decides to get rid of it if we use
"--gc-sections".

And KEEP does exactly this, see [2].

[1] http://git.denx.de/?p=u-boot.git;a=commit;h=fac4790491f69b29755d92db2cad508849573ff7
[2] https://sourceware.org/binutils/docs/ld/Input-Section-Keep.html#Input-Section-Keep

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
6 years agoARC: Cache: Don't compare I$ and D$ line lengths
Alexey Brodkin [Fri, 25 May 2018 17:22:23 +0000 (20:22 +0300)]
ARC: Cache: Don't compare I$ and D$ line lengths

We don't care much about I$ line length really as there're
no per-line ops on I$ instead we only do full invalidation of it
on occasion of relocation and right before jumping to the OS.

Also as compared to Linux kernel where we don't support different
lengths of I$ and D$ lines in U-Boot we have to deal with such an
exotic configs if the target board is not supposed to run Linux kernel.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>