]> git.kernelconcepts.de Git - karo-tx-uboot.git/log
karo-tx-uboot.git
8 years agomalloc_simple: Correct the alignment logic in memalign_simple()
Simon Glass [Fri, 14 Aug 2015 19:26:43 +0000 (13:26 -0600)]
malloc_simple: Correct the alignment logic in memalign_simple()

This should use the align parameter, not bytes. Natural alignment is one
use case but should not be the only one supported by this function.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agokconfiglib: update to the latest version
Ulf Magnusson [Thu, 13 Aug 2015 17:55:40 +0000 (19:55 +0200)]
kconfiglib: update to the latest version

Corresponds to ba71a0e (Fix _parse_block() 'parent' documentation re.
ifs.) from upstream, just adding the SPDX tag.

Has performance improvements, code cleanup, Python 3 support, and various
small fixes, including the following:

  - Unset user values when loading a zero-byte .config. (5e54e2c)
  - Ignore indented .config assignments. (f8a7510)
  - Do not require $srctree to be set for non-kernel projects. (d56e9c1)
  - Report correct locations in the presence of continuation lines.
    (0cebc87)
Signed-off-by: Ulf Magnusson <ulfalizer@gmail.com>
8 years agoARM: DRA74-evm: Use SMA_1 spare register to workaround DP83865 phy on SR2.0
Nishanth Menon [Thu, 13 Aug 2015 14:51:00 +0000 (09:51 -0500)]
ARM: DRA74-evm: Use SMA_1 spare register to workaround DP83865 phy on SR2.0

DP83865 ethernet phy used on DRA74x-evm is quirky and the datasheet
provided IODELAY values for standard RGMII phys do not work.

Silicon Revision(SR) 2.0 provides an alternative bit configuration
that allows us to do a "gross adjustment" to launch the data off a
different internal clock edge. Manual IO Delay overrides are still
necessary to fine tune the clock-to-data delays. This is a necessary
workaround for the quirky ethernet Phy we have on the platform.

NOTE: SMA registers are spare "kitchen sink" registers that does
contain bits for other workaround as necessary as well. Hence the
control for the same is introduced in a generic SoC specific, board
generic location.

Signed-off-by: Nishanth Menon <nm@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agoARM: DRA74-evm: Add iodelay values for SR2.0
Nishanth Menon [Thu, 13 Aug 2015 14:50:59 +0000 (09:50 -0500)]
ARM: DRA74-evm: Add iodelay values for SR2.0

Silicon revision 2.0 has new signal routing hence has an updated set of
iodelay parameters to be used. Update the configuration for the same.
Padmux remains the same.

Based on data from VayuES2_EVM_Base_Config-20150807.

NOTE: With respect to the RGMII values, the Manual IODelay values
are used for the fine adjusments needed to meet the tight RGMII
specification.

Signed-off-by: Nishanth Menon <nm@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agoARM: DRA7: Add detection of ES2.0
Nishanth Menon [Thu, 13 Aug 2015 14:50:58 +0000 (09:50 -0500)]
ARM: DRA7: Add detection of ES2.0

Add support for detection of ES2.0 version of DRA7 family of
processors. ES2.0 is an incremental revision with various fixes
including the following:
- reset logic fixes
- few assymetric aging logic fixes
- MMC clock rate fixes
- Ethernet speed fixes
- edma fixes for mcasp

[ravibabu@ti.com: posted internal for an older bootloader]
Signed-off-by: Ravi Babu <ravibabu@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
Acked-by: Lokesh Vutla <lokeshvutla@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agoMakefile: Use correct timezone for U_BOOT_TZ
Chris Packham [Thu, 13 Aug 2015 06:08:27 +0000 (18:08 +1200)]
Makefile: Use correct timezone for U_BOOT_TZ

When building with SOURCE_DATE_EPOCH the timezone is in UTC. When
building normally the timezone is taken from the build machine's locale
setting.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Paul Kocialkowski <contact@paulk.fr>
Tested-by: Andreas Bießmann <andreas.devel@googlemail.com>
8 years agolib/display_options: Fix print_freq
Suriyan Ramasami [Tue, 18 Aug 2015 16:25:33 +0000 (09:25 -0700)]
lib/display_options: Fix print_freq

Build without CONFIG_SPL_SERIAL_SUPPORT does not print the cpu freq.
I have seen this in the odroid U3 board, where on boot one sees this:
CPU:   Exynos4412 @  GHz
instead of:
CPU:   Exynos4412 @ 1 GHz

I am assuming that this change was done to get rid of compiler
warnings related to unused variables when building with
CONFIG_SPL_SERIAL_SUPPORT not being defined in an SPL build.

Signed-off-by: Suriyan Ramasami <suriyan.r@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
Acked-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agoNDS32: Generic Board Support and Unsupport
Kun-Hua Huang [Mon, 24 Aug 2015 06:52:36 +0000 (14:52 +0800)]
NDS32: Generic Board Support and Unsupport

Remove ag101 and ag102 support

Signed-off-by: Kun-Hua Huang <kunhua@andestech.com>
8 years agoNDS32: Generic Board Support and Unsupport
Kun-Hua Huang [Mon, 24 Aug 2015 06:52:35 +0000 (14:52 +0800)]
NDS32: Generic Board Support and Unsupport

Add nds32 ag101p generic board support.

Signed-off-by: Kun-Hua Huang <kunhua@andestech.com>
8 years agorpi: set fdt_addr_r to 0x00000100 to match default device_tree_address
Jonathan Liu [Sat, 22 Aug 2015 10:27:17 +0000 (20:27 +1000)]
rpi: set fdt_addr_r to 0x00000100 to match default device_tree_address

Raspberry Pi by default loads the FDT to 0x00000100 so set fdt_addr_r to
match and move scriptaddr to 0x02000000 to avoid clobbering the FDT.

Signed-off-by: Jonathan Liu <net147@gmail.com>
8 years agoimage: Fix loop condition to avoid warning
Thierry Reding [Thu, 20 Aug 2015 09:45:43 +0000 (11:45 +0200)]
image: Fix loop condition to avoid warning

GCC 5.1 starts warning for comparisons such as !a > 0, assuming that the
negation was meant to apply to the whole expression rather than just the
left operand.

Indeed the comparison in the FIT loadable code is confusingly written,
though it does end up doing the right thing. Rewrite the condition to be
more explicit, that is, iterate over strings until they're exhausted.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agodm: pci: Document binding of pci device drivers
Bin Meng [Mon, 24 Aug 2015 08:14:04 +0000 (01:14 -0700)]
dm: pci: Document binding of pci device drivers

Document how pci devices are bound to device drivers.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agox86: crownbay: Support Topcliff integrated pci uart devices with driver model
Bin Meng [Mon, 24 Aug 2015 08:14:03 +0000 (01:14 -0700)]
x86: crownbay: Support Topcliff integrated pci uart devices with driver model

In order to make a pci uart device node to be properly bound to its
driver, we need make sure its parent node has a compatible string
which matches a driver that scans all of its child device nodes in
the device tree.

Change all pci bridge nodes under root pci node to use "pci-bridge"
compatible driver, as well as corresponding <reg> properties to
indicate its devfn. At last, adding "u-boot,dm-pre-reloc" to each
of these nodes for driver model to initialize them before relocation.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agodm: core: Fix code reentrancy issue in device_probe_child()
Bin Meng [Mon, 24 Aug 2015 08:14:02 +0000 (01:14 -0700)]
dm: core: Fix code reentrancy issue in device_probe_child()

The device might have already been probed during the call to
device_probe() on its parent device (e.g. PCI bridge devices).
In its parent device's probe routine, it might probe all of
its child devices via device_probe() thus the codes reenter
device_probe_child(). To support code reentrancy, test these
allocated memory against NULL to avoid memory leak, and return
to the caller if dev->flags has DM_FLAG_ACTIVATED set after
device_probe() returns, so that we don't mess up the device.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agodm: pci: Optimize pci_uclass_post_bind()
Bin Meng [Mon, 24 Aug 2015 08:14:01 +0000 (01:14 -0700)]
dm: pci: Optimize pci_uclass_post_bind()

If there is no pci device listed in the device tree,
don't bother scanning the device tree.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agovideo: ct69000: Remove unused codes
Bin Meng [Mon, 24 Aug 2015 08:00:09 +0000 (01:00 -0700)]
video: ct69000: Remove unused codes

Remove unused CONFIG_USE_CPCIDVI wrapped codes.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
Acked-by: Anatolij Gustschin <agust@denx.de>
8 years agox86: crownbay: Enable on-board SMSC superio keyboard controller
Bin Meng [Mon, 24 Aug 2015 08:00:08 +0000 (01:00 -0700)]
x86: crownbay: Enable on-board SMSC superio keyboard controller

So far we only enabled one legacy serial port on the SMSC LPC47m
superio chipset on Intel Crown Bay board. As the board also has
dual PS/2 ports routed out, enable the keyboard controller which
is i8042 compatible so that we can use PS/2 keyboard and mouse.

In order to make PS/2 keyboard work with the VGA console, remove
CONFIG_VGA_AS_SINGLE_DEVICE. To boot Linux kernel with PIC mode
using PIRQ routing table, adjust the mask in the device tree to
reserve irq12 which is used by PS/2 mouse.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agovideo: cfb_console: Allow VGA device to work without i8042 keyboard
Bin Meng [Mon, 24 Aug 2015 08:00:07 +0000 (01:00 -0700)]
video: cfb_console: Allow VGA device to work without i8042 keyboard

So far if CONFIG_VGA_AS_SINGLE_DEVICE is not defined, the VGA device
will try to initialize a keyboard device (for x86, it is i8042). But
if i8042 controller initialization fails (eg: there is no keyboard
connected to the PS/2 port), drv_video_init() just simply returns.
This kills the opportunity of using a usb keyboard later with the vga
console, as the vga initialization part is actually ok, only keyboard
part fails. Change the code logic to allow this.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Anatolij Gustschin <agust@denx.de>
8 years agox86: i8042: Correctly initialize the controller
Bin Meng [Mon, 24 Aug 2015 08:00:06 +0000 (01:00 -0700)]
x86: i8042: Correctly initialize the controller

The existing i8042 keyboard controller driver has some issues.
First of all, it does not issue a self-test command (0xaa) to the
controller at the very beginning. Without this, the controller
does not respond to any command at all. Secondly, it initializes
the configuration byte register to turn on the keyboard's interrupt,
as U-Boot does not normally allow interrupts to be processed.
Finally, at the end of the initialization routine, it wrongly
sets the controller to disable all interfaces including both
keyboard and mouse.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agox86: i8042: Clean up the driver per coding convention
Bin Meng [Mon, 24 Aug 2015 08:00:05 +0000 (01:00 -0700)]
x86: i8042: Clean up the driver per coding convention

- Rename CamelCase variables to conform U-Boot coding convention
- Rename wait_until_kbd_output_full() to kbd_output_full()
- Change to use macros for i8042 command and control register bits

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agox86: i8042: Reorder static functions
Bin Meng [Mon, 24 Aug 2015 08:00:04 +0000 (01:00 -0700)]
x86: i8042: Reorder static functions

Reorder those static function so that their declarations
can be removed.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agox86: i8042: Remove unused codes
Bin Meng [Mon, 24 Aug 2015 08:00:03 +0000 (01:00 -0700)]
x86: i8042: Remove unused codes

Remove unused CONFIG_USE_CPCIDVI wrapped codes.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agox86: gpio: Tidy up gpio_ich6_get_base() and callers
Simon Glass [Sat, 22 Aug 2015 21:58:59 +0000 (15:58 -0600)]
x86: gpio: Tidy up gpio_ich6_get_base() and callers

This function can return an error. Correct the detection of this error so
that it works even with large 32-bit addresses.

The return value is set up for returning an I/O address but the function is
also used to return a memory-mapped address. Adjust the return code to make
this work.

Also add a bit more debugging.

Signed-off-by: Simon Glass <sjg@chromium.org>
8 years agox86: gpio: Correct calls to _ich6_gpio_set_direction()
Simon Glass [Sat, 22 Aug 2015 21:58:58 +0000 (15:58 -0600)]
x86: gpio: Correct calls to _ich6_gpio_set_direction()

These calls seem to be incorrect. The function expects an I/O address but
the existing callers pass the value at an I/O address. Fix it.

Signed-off-by: Simon Glass <sjg@chromium.org>
8 years agox86: minnowmax: Correct pad-offset value for host_en1
Simon Glass [Sat, 22 Aug 2015 21:58:56 +0000 (15:58 -0600)]
x86: minnowmax: Correct pad-offset value for host_en1

This should be 0x250, not 0x258. Fix it.

Reported-by: Andrew Bradford <andrew.bradford@kodakalaris.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
8 years agodm: pci: Add a comment to help find pci_hose_read_config_byte, etc.
Simon Glass [Sat, 22 Aug 2015 21:58:55 +0000 (15:58 -0600)]
dm: pci: Add a comment to help find pci_hose_read_config_byte, etc.

These functions are defined by macros so do not show up with grep. Add
a comment to help.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
8 years agox86: minnowmax: Add access to GPIOs E0, E1, E2
Simon Glass [Sat, 22 Aug 2015 21:58:53 +0000 (15:58 -0600)]
x86: minnowmax: Add access to GPIOs E0, E1, E2

These GPIOs are accessible on the pin header. Add pinctrl settings for them
so that we they can be adjusted using the 'gpio' command.

Signed-off-by: Simon Glass <sjg@chromium.org>
8 years agox86: Add DSDT table for supporting ACPI on QEMU
Saket Sinha [Sat, 22 Aug 2015 06:50:57 +0000 (12:20 +0530)]
x86: Add DSDT table for supporting ACPI on QEMU

The DSDT table contains a bytecode that is executed by a driver in the kernel.

Signed-off-by: Saket Sinha <saket.sinha89@gmail.com>
Tested with QEMU '-M q35'
Tested-by: Bin Meng <bmeng.cn@gmail.com>
8 years agox86: Add ACPI table support to QEMU
Saket Sinha [Sat, 22 Aug 2015 06:50:56 +0000 (12:20 +0530)]
x86: Add ACPI table support to QEMU

This patch mainly adds ACPI support to QEMU.
Verified by booting Linux kernel on QEMU Q35.

Signed-off-by: Saket Sinha <saket.sinha89@gmail.com>
Minor whitespace fixes and dropped mention of i440FX in commit message:
Signed-off-by: Simon Glass <sjg@chromium.org>
8 years agox86: Generate a valid ACPI table
Saket Sinha [Sat, 22 Aug 2015 06:50:55 +0000 (12:20 +0530)]
x86: Generate a valid ACPI table

Implement write_acpi_table() to create a minimal working ACPI table.
This includes writing FACS, XSDT, RSDP, FADT, MCFG, MADT, DSDT & SSDT
ACPI table entries.

Use a Kconfig option GENERATE_ACPI_TABLE to tell U-Boot whether we need
actually write the APCI table just like we did for PIRQ routing, MP table
and SFI tables. With ACPI table existence, linux kernel gets control of
power management, thermal management, configuration management and
monitoring in hardware.

Signed-off-by: Saket Sinha <saket.sinha89@gmail.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tidied up whitespace and aligned some tabs:
Signed-off-by: Simon Glass <sjg@chromium.org>
8 years agodm: pci: Save devfn without bus number in pci_uclass_child_post_bind()
Bin Meng [Thu, 20 Aug 2015 13:40:26 +0000 (06:40 -0700)]
dm: pci: Save devfn without bus number in pci_uclass_child_post_bind()

In pci_uclass_child_post_bind(), bdf is extracted from fdt_pci_addr.
Mask bus number before save it to pplat->devfn.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agofdtdec: Fix possible infinite loop in fdtdec_get_pci_vendev()
Bin Meng [Thu, 20 Aug 2015 13:40:25 +0000 (06:40 -0700)]
fdtdec: Fix possible infinite loop in fdtdec_get_pci_vendev()

When there is no valid compatible string in current list,
we should advance to next one in the compatible string list.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agopatman: use -D option for git format-patch
Masahiro Yamada [Tue, 18 Aug 2015 02:30:29 +0000 (11:30 +0900)]
patman: use -D option for git format-patch

This allows Patman to generate smaller patches for file removal.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Simon Glass <sjg@chromium.org>
Acked-by: Heiko Schocher <hs@denx.de>
8 years agox86: superio: Add keyboard controller support to smsc_lpc47m driver
Bin Meng [Fri, 21 Aug 2015 07:18:51 +0000 (00:18 -0700)]
x86: superio: Add keyboard controller support to smsc_lpc47m driver

Add an api to enable and configure the integrated keyboard controller
on SMSC LPC47m superio chipset. It also adds several macros to help
future extension.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agox86: fsp: Call fsp_init_phase_pci() in pci_uclass_post_probe()
Bin Meng [Thu, 20 Aug 2015 13:40:23 +0000 (06:40 -0700)]
x86: fsp: Call fsp_init_phase_pci() in pci_uclass_post_probe()

Per Intel FSP specification, we should call FSP notify API to
inform FSP that PCI enumeration has been done so that FSP will
do any necessary initialization as required by the chipset's
BIOS Writer's Guide (BWG).

Unfortunately we have to put this call here as with driver model,
the enumeration is all done on a lazy basis as needed, so until
something is touched on PCI it won't happen.

Note we only call this after U-Boot is relocated and root bus has
finished probing.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agox86: baytrail: Remove the fsp_init_phase_pci() call
Bin Meng [Thu, 20 Aug 2015 13:40:22 +0000 (06:40 -0700)]
x86: baytrail: Remove the fsp_init_phase_pci() call

It turns out that calling fsp_init_phase_pci() in arch_misc_init()
is subject to break pci device drivers as with driver model, when
the bus enumeration happens is not deterministic.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agox86: queensbay: Move unprotect_spi_flash() to arch_misc_init()
Bin Meng [Thu, 20 Aug 2015 13:40:21 +0000 (06:40 -0700)]
x86: queensbay: Move unprotect_spi_flash() to arch_misc_init()

With dm pci conversion, pci config read/write in unprotect_spi_flash()
silently fails as at that time dm pci is not ready and bus enumeration
is not done yet. Actually we don't need to do this in that early phase,
hence we delay this call to arch_misc_init().

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agox86: fsp: Add comments about U-Boot entering start.S twice
Bin Meng [Thu, 20 Aug 2015 13:40:20 +0000 (06:40 -0700)]
x86: fsp: Add comments about U-Boot entering start.S twice

Add some comments in start.S for the fact that with FSP U-Boot
actually enters the code twice. Also change to use fsp_init()
and fsp_continue for accuracy.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agox86: fsp: Enlarge the size of malloc() pool before relocation
Bin Meng [Thu, 20 Aug 2015 13:40:19 +0000 (06:40 -0700)]
x86: fsp: Enlarge the size of malloc() pool before relocation

After fsp_init() returns, the stack has already been switched to a
place within system memory as defined by CONFIG_FSP_TEMP_RAM_ADDR.
Enlarge the size of malloc() pool before relocation since we have
plenty of memory now.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agox86: fsp: Delay x86_fsp_init() call a little bit
Bin Meng [Thu, 20 Aug 2015 13:40:18 +0000 (06:40 -0700)]
x86: fsp: Delay x86_fsp_init() call a little bit

Move x86_fsp_init() call after initf_malloc() so that we can fix up
the gd->malloc_limit later.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agodm: pci: Support selected device/driver binding before relocation
Bin Meng [Thu, 20 Aug 2015 13:40:17 +0000 (06:40 -0700)]
dm: pci: Support selected device/driver binding before relocation

On some platforms pci devices behind bridge need to be probed (eg:
a pci uart on recent x86 chipset) before relocation. But we won't
bind all devices found during the enumeration. Only devices whose
driver with DM_FLAG_PRE_RELOC set will be bound. Any other generic
devices except bridges won't be bound.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agox86: ifdtool: Drop microcode from the device tree when collating
Simon Glass [Sat, 15 Aug 2015 20:37:54 +0000 (14:37 -0600)]
x86: ifdtool: Drop microcode from the device tree when collating

When ifdtool collates the microcode into one place it effectively creates
a copy of the 'data' properties in the device tree microcode nodes. This
is wasteful since we now have two copies of the microcode in the ROM.

To avoid this, remove the microcode data from the device tree and shrink it
down. This means that there is only one copy and the overall ROM space used
by the microcode does not increase.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
8 years agox86: ifdtool: Support collating microcode into one place
Simon Glass [Sat, 15 Aug 2015 20:37:53 +0000 (14:37 -0600)]
x86: ifdtool: Support collating microcode into one place

The Intel Firmware Support Package (FSP) requires that microcode be provided
very early before the device tree can be scanned. We already support adding
a pointer to the microcode data in a place where early init code can access.

However this just points into the device tree and can only point to a single
lot of microcode. For boards which may have different CPU types we must
support multiple microcodes and pass all of them to the FSP in one place.

Enhance ifdtool to scan all the microcode, place it together in the ROM and
update the microcode pointer to point there. This allows us to pass multiple
microcode blocks to the FSP using its existing API.

Enable the flag in the Makefile so that this feature is used by default for
all boards.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
8 years agox86: ifdtool: Split microcode linking into its own function
Simon Glass [Sat, 15 Aug 2015 20:37:52 +0000 (14:37 -0600)]
x86: ifdtool: Split microcode linking into its own function

The code to set up the microcode pointer in the ROM shares almost nothing
with the write_uboot() function.

Move it into its own function so it will be easier to extend.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
8 years agox86: ifdtool: Check that U-Boot does not overlap other regions
Simon Glass [Sat, 15 Aug 2015 20:37:51 +0000 (14:37 -0600)]
x86: ifdtool: Check that U-Boot does not overlap other regions

Since U-Boot and its device tree can grow we should check that it does not
overlap the regions above it. Track the ROM offset that U-Boot reaches and
check that other regions (written after U-Boot) do not interfere.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
8 years agox86: baytrail: Support multiple microcode copies
Bin Meng [Sat, 15 Aug 2015 20:37:50 +0000 (14:37 -0600)]
x86: baytrail: Support multiple microcode copies

Intel FSP has the capability to walk through the microcode blocks
which are passed as the TempRamInit() parameter from U-Boot and
finds the most appropriate microcode which is suitable for the cpu
on which it is running. Now we've seen several steppings for Intel
BayTrail series processors, adding those microcodes to the Intel
BayleyBay and MinnowMax board device tree files.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
8 years agox86: baytrail: Add microcode for BayTrail-I D0 stepping
Bin Meng [Sat, 15 Aug 2015 20:37:49 +0000 (14:37 -0600)]
x86: baytrail: Add microcode for BayTrail-I D0 stepping

This commit adds the microcode blob for BayTrail-I D0 stepping,
CPUID signature 30679h.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
8 years agox86: Correct microcode documentation
Simon Glass [Sat, 15 Aug 2015 20:37:48 +0000 (14:37 -0600)]
x86: Correct microcode documentation

This is incorrect since we require the -m parameter to the microcode tool.
Update the two examples to show this.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
8 years agoefi: Update README.efi to clarify build and test instructions
Bin Meng [Tue, 18 Aug 2015 03:34:47 +0000 (20:34 -0700)]
efi: Update README.efi to clarify build and test instructions

The doc has a misleading 'make menuconfig' when building the EFI
application and payload. Clarify this and also update information
on test with QEMU.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agox86: Set up video framebuffer for coreboot before loading kernel
Bin Meng [Thu, 13 Aug 2015 07:29:17 +0000 (00:29 -0700)]
x86: Set up video framebuffer for coreboot before loading kernel

Currenlty we only set up video framebuffer when VIDEO_VESA driver is
used. With coreboot, VIDEO_COREBOOT driver is used instead. Since we
already saved VESA mode in the VIDEO_COREBOOT driver, now we can also
set up video framebuffer for coreboot before loading Linux kernel.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
8 years agovideo: coreboot: Save VESA mode for future use
Bin Meng [Thu, 13 Aug 2015 07:29:16 +0000 (00:29 -0700)]
video: coreboot: Save VESA mode for future use

When booting as a coreboot payload, the framebuffer details are
passed from coreboot via configuration tables. We save these
information into vesa_mode_info structure for future use.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
8 years agox86: Enable CONFIG_PCI_CONFIG_HOST_BRIDGE for all boards
Bin Meng [Thu, 13 Aug 2015 07:29:15 +0000 (00:29 -0700)]
x86: Enable CONFIG_PCI_CONFIG_HOST_BRIDGE for all boards

It looks that x86 chipset always contains a host bridge at pci
b.d.f 0.0.0, so enable this for all boards.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
8 years agox86: Only include cbfs command for coreboot
Bin Meng [Thu, 13 Aug 2015 07:29:14 +0000 (00:29 -0700)]
x86: Only include cbfs command for coreboot

When running U-Boot bare-metal, the cbfs command is useless.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
8 years agox86: kconfig: Hide "System tables" for coreboot
Bin Meng [Thu, 13 Aug 2015 07:29:13 +0000 (00:29 -0700)]
x86: kconfig: Hide "System tables" for coreboot

When booting as a coreboot payload, we don't need write any
configuration tables as coreboot does that for us.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
8 years agox86: kconfig: Hide "System tables" for EFI
Bin Meng [Thu, 13 Aug 2015 07:29:12 +0000 (00:29 -0700)]
x86: kconfig: Hide "System tables" for EFI

Instead of hiding each menu entries under "System tables" for EFI,
hide the main menu completely.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
8 years agox86: coreboot: Allow >=4GiB memory bank size
Bin Meng [Thu, 13 Aug 2015 07:29:11 +0000 (00:29 -0700)]
x86: coreboot: Allow >=4GiB memory bank size

Some platforms may have >=4GiB memory, so we need make U-Boot report
such configuration correctly when booting as the coreboot payload.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
8 years agox86: Remove calculate_relocation_address()
Bin Meng [Thu, 13 Aug 2015 07:29:10 +0000 (00:29 -0700)]
x86: Remove calculate_relocation_address()

Now that we have generic routine to calculate relocation address,
remove the x86 specific one which is now only used by coreboot.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
8 years agox86: coreboot: Correctly report E820 types
Bin Meng [Thu, 13 Aug 2015 07:29:09 +0000 (00:29 -0700)]
x86: coreboot: Correctly report E820 types

coreboot has some extensions (type 6 & 16) to the E820 types.
When we detect this, mark it as E820_RESERVED.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
8 years agox86: coreboot: Increase memrange entry number to 32
Bin Meng [Thu, 13 Aug 2015 07:29:08 +0000 (00:29 -0700)]
x86: coreboot: Increase memrange entry number to 32

Increase lib_sysinfo memrange entry number to 32 to sync with coreboot.
This allows a complete E820 table to be reported to the kernel, as on
some platforms (eg: Bayley Bay) having only 16 entires does not cover
all the memory ranges.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
8 years agox86: doc: Update coreboot payload entry point address
Bin Meng [Thu, 13 Aug 2015 07:29:07 +0000 (00:29 -0700)]
x86: doc: Update coreboot payload entry point address

With recent EFI support, the entry point address of coreboot payload
was changed. Now we update the address to use _x86boot_start, which
is the same one for EFI.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
8 years agonet: e1000: Fix build warnings for 32-bit
Bin Meng [Wed, 26 Aug 2015 13:17:27 +0000 (06:17 -0700)]
net: e1000: Fix build warnings for 32-bit

commit 6497e37 "net: e1000: Support 64-bit physical address" causes
compiler warnings on 32-bit U-Boot build below.

drivers/net/e1000.c: In function 'e1000_configure_tx':
drivers/net/e1000.c:4982:2: warning: right shift count >= width of type [enabled by default]
drivers/net/e1000.c: In function 'e1000_configure_rx':
drivers/net/e1000.c:5126:2: warning: right shift count >= width of type [enabled by default]

This commit fixes the build warnings.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agomtd: nand: mxs invalidate dcache before DMA read
Peng Fan [Tue, 21 Jul 2015 08:15:21 +0000 (16:15 +0800)]
mtd: nand: mxs invalidate dcache before DMA read

Follow linux dma flow:
Before DMA read, be sure to invalidate the cache over the address
range of DMA buffer to prevent cache coherency problems.
After DMA read, invalidate dcache again.

Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
Acked-by: Marek Vasut <marex@denx.de>
Acked-by: Tim Harvey <tharvey@gateworks.com>
8 years agomtd: nand: mxs support oobsize bigger than 512
Peng Fan [Tue, 21 Jul 2015 08:15:19 +0000 (16:15 +0800)]
mtd: nand: mxs support oobsize bigger than 512

If ecc chunk data size is 512 and oobsize is bigger than 512, there is
a chance that block_mark_bit_offset conflicts with bch ecc area.

The following graph is modified from kernel gpmi-nand.c driver with
each data block 512 bytes. We can see that Block Mark conflicts with
ecc area from bch view. We can enlarge the ecc chunk size to avoid
this problem to those oobsize which is larger than 512.

   |                          P                                        |
   |<----------------------------------------------------------------->|
   |                                                                   |
   |                                                (Block Mark)       |
   |                      P'                             |           | |   |
   |<--------------------------------------------------->|     D     | | O'|
   |                                                     |<--------->| |<->|
   V                                                     V           V V   V
   +---+--------------+-+--------------+-+--------------+-+----------+-+---+
   | M |   data       |E|   data       |E|   data       |E|   data   |E|   |
   +---+--------------+-+--------------+-+--------------+-+----------+-+---+
                                                        ^                  ^
                                                        |         O        |
                                                        |<---------------->|

       P : the page size for BCH module.
       E : The ECC strength.
       G : the length of Galois Field.
       N : The chunk count of per page.
       M : the metasize of per page.
       C : the ecc chunk size, aka the "data" above.
       P': the nand chip's page size.
       O : the nand chip's oob size.
       O': the free oob.

Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Tested-By: Tim Harvey <tharvey@gateworks.com>
8 years agoarm: mvebu: Enable NAND on db-mv784mp-gp
Stefan Roese [Thu, 23 Jul 2015 08:26:18 +0000 (10:26 +0200)]
arm: mvebu: Enable NAND on db-mv784mp-gp

This patch enables NAND support on the Marvell Armada XP
DB-MV784MP-GP eval board.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Peter Morrow <peter@senient.com>
Cc: Luka Perkov <luka.perkov@sartura.hr>
8 years agomtd: nand: Add mvebu (PXA / AXP / A38x) NAND device driver
Stefan Roese [Thu, 23 Jul 2015 08:26:16 +0000 (10:26 +0200)]
mtd: nand: Add mvebu (PXA / AXP / A38x) NAND device driver

Cloned from the Linux driver v4.2.0-rc2. Plus some patches from
Antoine Tenart enabling controller initialization and ONFI timing
support:

http://lists.infradead.org/pipermail/linux-mtd/2015-July/060197.html

Please note that this driver needs the Linux NAND subsystem sync to v4.1
from Scott to be applied:

https://www.mail-archive.com/u-boot@lists.denx.de/msg175762.html

Otherwise it will not compile.

Tested on the Marvell Armada XP DB-MV784MP-GP eval board.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Antoine Tenart <antoine.tenart@free-electrons.com>
Cc: Ezeguil Garcia <ezequiel.garcia@free-electrons.com>
Cc: Luka Perkov <luka.perkov@sartura.hr>
Cc: Scott Wood <scottwood@freescale.com>
8 years agomtd: nand: Increase max sizes of OOB and Page size
Siva Durga Prasad Paladugu [Tue, 28 Apr 2015 12:46:03 +0000 (18:16 +0530)]
mtd: nand: Increase max sizes of OOB and Page size

Increase max sizes for OOB, Page size and eccpos to
suit for Micron MT29F32G08 part

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
8 years agonand: Sync with Linux v4.1
Scott Wood [Sat, 27 Jun 2015 00:03:26 +0000 (19:03 -0500)]
nand: Sync with Linux v4.1

Update the NAND code to match Linux v4.1.  The previous sync was
from Linux v3.15 in commit 4e67c57125290b25.

CONFIG_SYS_NAND_RESET_CNT is removed, as the upstream Linux code now
has its own timeout.  Plus, CONFIG_SYS_NAND_RESET_CNT was undocumented
and not selected by any board.

Signed-off-by: Scott Wood <scottwood@freescale.com>
8 years agomtd: Introduce mtd_block_isreserved()
Ezequiel Garcia [Wed, 21 May 2014 22:06:12 +0000 (19:06 -0300)]
mtd: Introduce mtd_block_isreserved()

In addition to mtd_block_isbad(), which checks if a block is bad or
reserved, it's needed to check if a block is reserved only (but not
bad). This commit adds an MTD interface for it, in a similar fashion to
mtd_block_isbad().

While here, fix mtd_block_isbad() so the out-of-bounds checking is done
before the callback check.

Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Tested-by: Pekon Gupta <pekon@ti.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
[scottwood: Cherry-picked from Linux 8471bb73ba10ed67]
Signed-off-by: Scott Wood <scottwood@freescale.com>
8 years agonand: Remove __UBOOT__ ifdefs
Scott Wood [Tue, 23 Jun 2015 03:38:32 +0000 (22:38 -0500)]
nand: Remove __UBOOT__ ifdefs

I didn't approve the patch that added them.  Get them out of the way
before doing a sync.

Signed-off-by: Scott Wood <scottwood@freescale.com>
8 years agoarm: pxa: colibri_pxa270: add optional i2c support
Marcel Ziswiler [Sun, 16 Aug 2015 02:16:36 +0000 (04:16 +0200)]
arm: pxa: colibri_pxa270: add optional i2c support

This is useful once Andrew's PXA I2C driver gets merged.

Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
8 years agoarm: pxa: colibri_pxa270: add optional lcd support
Marcel Ziswiler [Sun, 16 Aug 2015 02:16:35 +0000 (04:16 +0200)]
arm: pxa: colibri_pxa270: add optional lcd support

Add optional LCD support. Note that depending on the toolchain used
one might have to drop some other features to stay within the 0x40000
size limit.

Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
8 years agoarm: pxa: colibri_pxa270: add some more nor flash details
Marcel Ziswiler [Sun, 16 Aug 2015 02:16:34 +0000 (04:16 +0200)]
arm: pxa: colibri_pxa270: add some more nor flash details

Add some more NOR flash details like size, bus width and lock/unlock
time outs.

Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
8 years agoarm: pxa: palmtreo680: get rid of obsolete CONFIG_SYS_LCD_PXA_NO_L_BIAS
Marcel Ziswiler [Sun, 16 Aug 2015 02:16:33 +0000 (04:16 +0200)]
arm: pxa: palmtreo680: get rid of obsolete CONFIG_SYS_LCD_PXA_NO_L_BIAS

Looks like the define CONFIG_SYS_LCD_PXA_NO_L_BIAS is not used anywhere
else throughout the U-Boot sources any more. Drop it.

Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
8 years agolcd: pxa: clean-up include file order
Marcel Ziswiler [Sun, 16 Aug 2015 02:16:31 +0000 (04:16 +0200)]
lcd: pxa: clean-up include file order

Cleaning up order of include files by sorting them alphabetically
keeping in mind to leave common.h on top.

Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
8 years agousb: pxa27x_udc: clean-up include file order
Marcel Ziswiler [Sun, 16 Aug 2015 02:16:30 +0000 (04:16 +0200)]
usb: pxa27x_udc: clean-up include file order

Cleaning up order of include files by sorting them alphabetically
keeping in mind to leave common.h on top.

Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
8 years agoserial: pxa: clean-up include file order
Marcel Ziswiler [Sun, 16 Aug 2015 02:16:29 +0000 (04:16 +0200)]
serial: pxa: clean-up include file order

Cleaning up order of include files by sorting them alphabetically
keeping in mind to leave common.h on top.

Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
8 years agoarm: pxa: mmc: clean-up include file order
Marcel Ziswiler [Sun, 16 Aug 2015 02:16:27 +0000 (04:16 +0200)]
arm: pxa: mmc: clean-up include file order

Cleaning up order of include files by sorting them alphabetically
keeping in mind to leave common.h on top.

Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
8 years agoarm: pxa: clean-up include file order
Marcel Ziswiler [Sun, 16 Aug 2015 02:16:26 +0000 (04:16 +0200)]
arm: pxa: clean-up include file order

Cleaning up order of include files by sorting them alphabetically
keeping in mind to leave common.h on top.

Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
8 years agoarm: pxa: use common timer functions
Andrew Ruder [Wed, 12 Aug 2015 18:18:31 +0000 (13:18 -0500)]
arm: pxa: use common timer functions

This patch moves pxa to the common timer functions added in commit

  8dfafdd - Introduce common timer functions <Rob Herring>

The (removed) pxa timer code (specifically __udelay()) could deadlock at
the 32-bit boundary of get_ticks().  get_ticks() returned a 32-bit value
cast up to a 64-bit value.  If get_ticks() + tmo in __udelay() crossed
the 32-bit boundary, the while condition became unconditionally true and
locked the processor.  Rather than patch the specific pxa issues, simply
move everything over to the common code.

Signed-off-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Tom Rini <trini@konsuiko.com>
8 years agopxa: Fix boot hang by avoiding vector relocation
Andrew Ruder [Wed, 12 Aug 2015 17:55:47 +0000 (12:55 -0500)]
pxa: Fix boot hang by avoiding vector relocation

Since commit 3ff46cc42b9d73d0 ("arm: relocate the exception vectors")
pxa does not boot anymore.

Add a specific relocate_vectors macro that skips the vector relocation,
as the pxa SoC does not provide RAM at the high vectors address
(0xFFFF0000), and (0x00000000) maps to ROM.

This allows pxa to boot again.

Cc: Marek Vasut <marex@denx.de>
Signed-off-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
8 years agoarm: socfpga: Fix ArriaV SoCDK PLL config
Marek Vasut [Wed, 19 Aug 2015 05:46:49 +0000 (07:46 +0200)]
arm: socfpga: Fix ArriaV SoCDK PLL config

Pull out the ArriaV SoCDK clock config from ancient Altera U-Boot
"rel_socfpga_v2013.01.01_15.05.01_pr" and implant those values into
mainline to get a booting ArriaV SoCDK.

Signed-off-by: Marek Vasut <marex@denx.de>
8 years agoarm: socfpga: Enable ethernet on ArriaV SoCDK
Marek Vasut [Wed, 19 Aug 2015 05:44:39 +0000 (07:44 +0200)]
arm: socfpga: Enable ethernet on ArriaV SoCDK

Synchronise the config options with Cyclone V SoCDK and other boards.
This enables ethernet on the ArriaV SoCDK.

Signed-off-by: Marek Vasut <marex@denx.de>
8 years agoarm: socfpga: Fix SD/MMC boot on ArriaV SoCDK
Marek Vasut [Wed, 19 Aug 2015 05:43:19 +0000 (07:43 +0200)]
arm: socfpga: Fix SD/MMC boot on ArriaV SoCDK

Add the missing DT nodes, so that ArriaV SoCDK can boot from SD
card. The SD card must be in slot J5 and BSEL must be 0x5.

Signed-off-by: Marek Vasut <marex@denx.de>
8 years agoarm: socfpga: Fix MAINTAINERS entry for CV/AV SoCDK
Marek Vasut [Wed, 19 Aug 2015 20:25:44 +0000 (22:25 +0200)]
arm: socfpga: Fix MAINTAINERS entry for CV/AV SoCDK

Repair the maintainer entries so they match the current state of code.

Signed-off-by: Marek Vasut <marex@denx.de>
8 years agoarm: socfpga: Enable DWAPB GPIO driver
Marek Vasut [Tue, 23 Jun 2015 14:01:28 +0000 (16:01 +0200)]
arm: socfpga: Enable DWAPB GPIO driver

Enable the DWAPB GPIO driver for SoCFPGA Cyclone V and Arria V.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Simon Glass <sjg@chromium.org>
Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
8 years agoarm: socfpga: dts: Add bank-name property to each GPIO bank
Marek Vasut [Mon, 10 Aug 2015 15:20:23 +0000 (17:20 +0200)]
arm: socfpga: dts: Add bank-name property to each GPIO bank

Add "bank-name" property to each GPIO bank to give it unique name.
The approach here is exactly the same as with the "regulator-name"
property for regulators.

Signed-off-by: Marek Vasut <marex@denx.de>
8 years agogpio: Add DW APB GPIO driver
Marek Vasut [Tue, 23 Jun 2015 13:54:19 +0000 (15:54 +0200)]
gpio: Add DW APB GPIO driver

Add driver for the DesignWare APB GPIO IP block.
This driver is DM capable and probes from DT.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Simon Glass <sjg@chromium.org>
8 years agoarm: socfpga: Make the pinmux table const u8
Marek Vasut [Mon, 10 Aug 2015 20:17:46 +0000 (22:17 +0200)]
arm: socfpga: Make the pinmux table const u8

Now that we're actually converting the QTS-generated header files,
we can even adjust their data types. A good candidate for this is
the pinmux table, where each entry can have value in the range of
0..3, but each element is declared as unsigned long. By changing
the type to u8, we can save over 600 Bytes from the SPL, so do it.
This patch also constifies the array.

Signed-off-by: Marek Vasut <marex@denx.de>
8 years agoarm: socfpga: Switch to filtered QTS files
Marek Vasut [Mon, 10 Aug 2015 19:21:07 +0000 (21:21 +0200)]
arm: socfpga: Switch to filtered QTS files

Signed-off-by: Marek Vasut <marex@denx.de>
8 years agoarm: socfpga: Add qts-filter.sh script
Marek Vasut [Mon, 10 Aug 2015 18:48:07 +0000 (20:48 +0200)]
arm: socfpga: Add qts-filter.sh script

Add script which loads the QTS-generated sources and headers and converts
them into sensible format which can be used with much more easy in mainline
U-Boot. The script also filters out macros which makes no sense anymore, so
they don't pollute namespace and waste space.

Signed-off-by: Marek Vasut <marex@denx.de>
8 years agoarm: socfpga: Remove AV-specific parts from CV-SoCDK
Marek Vasut [Mon, 10 Aug 2015 19:39:52 +0000 (21:39 +0200)]
arm: socfpga: Remove AV-specific parts from CV-SoCDK

Just remove the ArriaV specific parts from the CycloneV SoCDK board
and they are no longer needed now.

Signed-off-by: Marek Vasut <marex@denx.de>
8 years agoarm: socfpga: Remove CV-specific parts from AV-SoCDK
Marek Vasut [Mon, 10 Aug 2015 19:37:14 +0000 (21:37 +0200)]
arm: socfpga: Remove CV-specific parts from AV-SoCDK

Just remove the CycloneV specific parts from the ArriaV SoCDK board
and they are no longer needed now.

Signed-off-by: Marek Vasut <marex@denx.de>
8 years agoarm: socfpga: Split Altera socfpga into AV and CV SoCDK
Marek Vasut [Mon, 10 Aug 2015 19:24:53 +0000 (21:24 +0200)]
arm: socfpga: Split Altera socfpga into AV and CV SoCDK

The board/altera/socfpga directory is not a generic SoCFPGA machine
anymore, but instead it represents the Altera SoCDK board. To make
matters more complicated, it represents both CycloneV and ArriaV
variant.

On the other hand, nowadays, the content of this board directory is
mostly comprised of QTS-generated header files, while all the generic
code is in arch/arm/mach-socfpga already.

Thus, this patch splits the board/altera/socfpga into a separate
board directory for ArriaV SoCDK and CycloneV SoCDK, so that each
can be populated with the correct QTS-generated header files for
that particular board.

Signed-off-by: Marek Vasut <marex@denx.de>
8 years agoarm: socfpga: Unbind CPU type from board type
Marek Vasut [Sun, 2 Aug 2015 19:57:57 +0000 (21:57 +0200)]
arm: socfpga: Unbind CPU type from board type

The CONFIG_TARGET_SOCFPGA_CYCLONE5 and CONFIG_TARGET_SOCFPGA_ARRIA5
selected both a board and a CPU. This is not correct as these macros
are supposed to select only board.

All would be good, if QTS-generated header files didn't check for
these macros exactly to determine if the platform is Cyclone V or
Arria V. Thus, for the sake of compatibility with not well fleshed
out header file generator, this patch makes these two macros into
a stub config option and introduces new CONFIG_TARGET_SOCFPGA_CYCLONE5_SOCDK
and CONFIG_TARGET_SOCFPGA_ARRIA5_SOCDK targets, which select the
previous stub config option.

The result is that compatibility with QTS is preserved and the new
CONFIG_TARGET_* select actual target boards.

Signed-off-by: Marek Vasut <marex@denx.de>
8 years agoarm: socfpga: Move wrappers into platform directory
Marek Vasut [Sun, 2 Aug 2015 19:12:09 +0000 (21:12 +0200)]
arm: socfpga: Move wrappers into platform directory

Move the wrappers for QTS-generated files into platform directory
out of the board directory. The trick here is to add -I to CFLAGS
such that it points to the board directory in source tree and thus
the qts/ directory there is still reachable.

Signed-off-by: Marek Vasut <marex@denx.de>
8 years agoarm: socfpga: Do not enable gmac1 in Cyclone V dtsi
Marek Vasut [Mon, 3 Aug 2015 13:32:37 +0000 (15:32 +0200)]
arm: socfpga: Do not enable gmac1 in Cyclone V dtsi

The GMAC which is enabled is purely board property, so do not enable
arbitrary GMAC in DT include files. Same goes for PHY mode, which is
again a board property. The CycloneV SoCDK does this correctly, but
SoCrates doesn't. This bug never manifested itself though, since all
the boards ever used the GMAC1 . This bug manifests itself only on
boards that utilise GMAC0.

Signed-off-by: Marek Vasut <marex@denx.de>
8 years agoarm: socfpga: Make the DT mmc node consistent
Marek Vasut [Sun, 2 Aug 2015 20:55:24 +0000 (22:55 +0200)]
arm: socfpga: Make the DT mmc node consistent

The socfpga_cyclone5.dtsi has an mmc0 node, socrates has mmc node.
This makes aliases not very usable, so make everything into mmc0.
Moreover, zap the useless mmc alias while at this.

Signed-off-by: Marek Vasut <marex@denx.de>
8 years agoarm: socfpga: Fix delay in clock manager
Marek Vasut [Mon, 10 Aug 2015 22:54:12 +0000 (00:54 +0200)]
arm: socfpga: Fix delay in clock manager

This code claims it needs to wait 7us, yet it uses get_timer() function
which operates with millisecond granularity. Use timer_get_us() instead,
which operates with microsecond granularity.

Signed-off-by: Marek Vasut <marex@denx.de>
8 years agoarm: socfpga: Fix delay in freeze controller
Marek Vasut [Mon, 10 Aug 2015 22:49:09 +0000 (00:49 +0200)]
arm: socfpga: Fix delay in freeze controller

Based on observation, this udelay(20) was apparently too high and caused
subsequent failure to calibrate DDR when U-Boot was compiled with certain
toolchains. Lowering this delay fixed the problem.

Instead of permanently lowering the delay, calculate the correct delay
based on the original comment, that is, obtain EOSC1 frequency and use
it to calculate the precise delay.

Signed-off-by: Marek Vasut <marex@denx.de>
8 years agoddr: altera: Repair uninited variable
Marek Vasut [Mon, 10 Aug 2015 21:01:43 +0000 (23:01 +0200)]
ddr: altera: Repair uninited variable

Fix the following problem:
drivers/ddr/altera/sequencer.c: In function 'sdram_calibration_full':
drivers/ddr/altera/sequencer.c:1943:25: warning: 'found_failing_read' may be used uninitialized in this function [-Wmaybe-uninitialized]
  if (found_passing_read && found_failing_read)
                         ^
drivers/ddr/altera/sequencer.c:1803:26: note: 'found_failing_read' was declared here
  u32 found_passing_read, found_failing_read, initial_failing_dtap;
                          ^

Signed-off-by: Marek Vasut <marex@denx.de>