summaryrefslogtreecommitdiff
path: root/arch
AgeCommit message (Collapse)Author
2015-01-14sunxi: Add sunxi_get_sid helper functionHans de Goede
On sun6i the SID is stored in the pmic, rather then in the SoC itself, add a helper function to abstract this away. This makes our MAC address generation code also work on sun6i. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Ian Campbell <ijc@hellion.org.uk>
2015-01-14sunxi: mmc: Properly setup mod-clk and clock sampling phasesHans de Goede
The sunxi mmc controller has both an internal clock divider, as well as the divider in the mod0-clk for the mmc controller. The internal divider cannot be used, as it conflicts with the setting of clock sampling phases which is done in the mod0-clk, so it must be set to 0 (divide by 1). For some reason while the kernel has had this correct from day one, the u-boot sunxi mmc code has been using a fixed mod0-clk and setting its internal divider depending on the desired speed. This is something which we've inherited from the original Allwinner u-boot sources, but while this has been fixed in Allwinner's own u-boot code at least for the A23 and later upstream u-boot was still doing this wrong. This commit fixes this, thereby also fixing mmc support not working reliable on the A23 (which seems more sensitive to this) and possible also fixes some other sunxi mmc issues. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Ian Campbell <ijc@hellion.org.uk>
2015-01-14sun6i: dram: Do not try to initialize a second dram chan on A31sHans de Goede
The A31s only has one dram channel, so do not bother with trying to initialize a second channel. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Ian Campbell <ijc@hellion.org.uk>
2015-01-14sun6i: Add sunxi_get_ss_bonding_id() functionHans de Goede
Add a sunxi_get_ss_bonding_id() function, and use it to differentiate between the A31s and the A31. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Ian Campbell <ijc@hellion.org.uk>
2015-01-14sun6i: Make dram clk and zq value Kconfig optionsHans de Goede
It turns out that there is a too large spread between boards to handle this with a default value, turn this into Kconfig options, and set the values the factory images are using for the Colombus and Mele_M9 boards. Note this changes the ZQ default when not overriden through defconfig from 120 to 123, as that is what most boards seem to actually use. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Ian Campbell <ijc@hellion.org.uk>
2015-01-13Merge git://git.denx.de/u-boot-x86Tom Rini
2015-01-13x86: coreboot: Configure pci memory regionsBin Meng
Configure coreboot pci memory regions so that pci device drivers could work correctly. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>
2015-01-13x86: Make chromebook_link the default board for corebootBin Meng
Change SYS_CONFIG_NAME and DEFAULT_DEVICE_TREE to chromebook_link which is currently the only real board officially supported to run U-Boot loaded by coreboot. Note the symbolic link file chromebook_link.dts is deleted and link.dts is renamed to chromebook_link.dts. To avoid multiple definition of video_hw_init, the CONFIG_VIDEO_X86 define needs to be moved to arch/x86/cpu/ivybridge/Kconfig. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>
2015-01-13x86: coreboot: Move coreboot-specific defines from coreboot.h to KconfigBin Meng
There are many places in the U-Boot source tree which refer to CONFIG_SYS_COREBOOT, CONFIG_CBMEM_CONSOLE and CONFIG_VIDEO_COREBOOT that is currently defined in coreboot.h. Move them to arch/x86/cpu/coreboot/Kconfig so that we can switch to board configuration file to build U-Boot later. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>
2015-01-13x86: Hide ROM chip size when CONFIG_X86_RESET_VECTOR is not selectedBin Meng
When CONFIG_X86_RESET_VECTOR is not selected, specifying the ROM chip size is meaningless, hence hide it. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>
2015-01-13x86: Move CONFIG_X86_RESET_VECTOR and CONFIG_SYS_X86_START16 to KconfigBin Meng
Convert CONFIG_X86_RESET_VECTOR and CONFIG_SYS_X86_START16 to Kconfig options so that we can remove them from board configuration file. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>
2015-01-13x86: Allow a hardcoded TSC frequency provided by KconfigBin Meng
By default U-Boot automatically calibrates TSC running frequency via MSR and PIT. The calibration may not work on every x86 processor, so a new Kconfig option CONFIG_TSC_CALIBRATION_BYPASS is introduced to allow bypassing the calibration and assign a hardcoded TSC frequency CONFIG_TSC_FREQ_IN_MHZ. Normally the bypass should be turned on in a simulation environment like qemu. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>
2015-01-13x86: coreboot: Set up timer base correctlyBin Meng
If coreboot is built with CONFIG_COLLECT_TIMESTAMPS, use the value of base_time in coreboot's timestamp table as our timer base, otherwise TSC counter value will be used. Sometimes even coreboot is built with CONFIG_COLLECT_TIMESTAMPS, the value of base_time in the timestamp table is still zero, so we must exclude this case too (this is currently seen on booting coreboot in qemu). Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>
2015-01-13x86: fsp: Drop get_hob_type() and get_hob_length()Bin Meng
These two are not worth having separate inline functions as they are really simple, so drop them. Also changed 'type' parameter of fsp_get_next_hob() from u16 to uint. Suggested-by: Simon Glass <sjg@chromium.org> Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>
2015-01-13x86: Add an 'mtrr' command to list and adjust MTRRsSimon Glass
It is useful to be able to see the MTRR setup in U-Boot. Add a command to list the state of the variable MTRR registers and allow them to be changed. Update the documentation to list some of the available commands. This does not support fixed MTRRs as yet. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Bin Meng <bmeng.cn@gmail.com>
2015-01-13x86: ivybridge: Update microcode early in bootSimon Glass
At present the normal update (which happens much later) does not work. This seems to have something to do with the 'no eviction' mode in the CAR, or at least moving the microcode update after that causes it not to work. For now, do an update early on so that it definitely works. Also refuse to continue unless the microcode update check (later in boot) is successful. Signed-off-by: Simon Glass <sjg@chromium.org>
2015-01-13x86: Disable CAR before relocation on platforms that need itSimon Glass
For platforms with CAR we should disable it before relocation. Check if this function is available and call it if so. Signed-off-by: Simon Glass <sjg@chromium.org>
2015-01-13x86: ivybridge: Add a way to turn off the CARSimon Glass
Cache-as-RAM should be turned off when we relocate since we want to run from RAM. Add a function to perform this task. Signed-off-by: Simon Glass <sjg@chromium.org>
2015-01-13x86: Commit the current MTRRs before relocationSimon Glass
Once we stop running from ROM we should set up the MTTRs to speed up execution. This is only needed for platforms that don't have an FSP. Also in the Coreboot case, the MTRRs are set up for us. Signed-off-by: Simon Glass <sjg@chromium.org>
2015-01-13x86: ivybridge: Request MTRRs for DRAM regionsSimon Glass
We should use MTRRs to speed up execution. Add a list of MTRR requests which will dealt with when we relocate and run from RAM. We set RAM as cacheable (with write-back) and registers as non-cacheable. Signed-off-by: Simon Glass <sjg@chromium.org>
2015-01-13x86: ivybridge: Set up an MTRR for the video frame bufferSimon Glass
Set the frame buffer to write-combining. This makes it faster, although for scrolling write-through is even faster for U-Boot. Signed-off-by: Simon Glass <sjg@chromium.org>
2015-01-13x86: Add support for MTRRsSimon Glass
Memory Type Range Registers are used to tell the CPU whether memory is cacheable and if so the cache write mode to use. Clean up the existing header file to follow style, and remove the unneeded code. These can speed up booting so should be supported. Add these to global_data so they can be requested while booting. We will apply the changes during relocation (in a later commit). Signed-off-by: Simon Glass <sjg@chromium.org>
2015-01-13x86: ivybridge: Drop support for ROM cachingSimon Glass
This is set up along with CAR (Cache-as-RAM) anyway. When we relocate we don't really need ROM caching (we read the VGA BIOS from ROM but that is about it) Drop it. Signed-off-by: Simon Glass <sjg@chromium.org>
2015-01-13x86: Tidy up VESA mode numbersSimon Glass
There are some bits which should be ignored when displaying the mode number. Make sure that they are not included in the mode that is displayed. Signed-off-by: Simon Glass <sjg@chromium.org>
2015-01-13x86: Use cache, don't clear the display in video BIOSSimon Glass
There is no need to run with the cache disabled, and there is no point in clearing the display frame buffer since U-Boot does it later. Signed-off-by: Simon Glass <sjg@chromium.org>
2015-01-13x86: ivybridge: Only run the Video BIOS when video is enabledSimon Glass
This takes about about 700ms on link when running natively and 900ms when running using the emulator. It is a waste of time if video is not enabled, so don't bother running the video BIOS in that case. We could add a command to run the video BIOS later when needed, but this is not considered at present. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
2015-01-13x86: Drop RAMTOP KconfigSimon Glass
We don't need this in U-Boot since we calculate it based on available memory. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
2015-01-13x86: Correct XIP_ROM_SIZESimon Glass
This should default to the size of the ROM for faster execution before relocation. Signed-off-by: Simon Glass <sjg@chromium.org>
2015-01-13x86: crownbay: Add pci devices in the dts fileBin Meng
The Topcliff PCH has 4 UART devices integrated (Device 10, Funciton 1/2/3/4). Add the corresponding device nodes in the crownbay.dts per Open Firmware PCI bus bindings. Also a comment block is added for the 'stdout-path' property in the chosen node, mentioning that by default the legacy superio serial port (io addr 0x3f8) is still used on Crown Bay as the console port. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>
2015-01-13x86: Use ePAPR defined properties for x86-uartBin Meng
Use ePAPR defined properties for x86-uart: clock-frequency and current-speed. Assign the value of clock-frequency in device tree to plat->clock of x86-uart instead of using hardcoded number. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>
2015-01-13ppc4xx: remove some CPCI405 variantsMatthias Fuchs
only keep CPCI4052 Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu>
2015-01-13ppc4xx: remove G2000 boardMatthias Fuchs
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu>
2015-01-13ppc4xx: remove WUH405 boardMatthias Fuchs
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu>
2015-01-13ppc4xx: remove VOH405 boardMatthias Fuchs
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu>
2015-01-13ppc4xx: remove PMC405 boardMatthias Fuchs
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu>
2015-01-13ppc4xx: remove PCI405 boardMatthias Fuchs
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu>
2015-01-13ppc4xx: remove OCRTC boardMatthias Fuchs
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu>
2015-01-13ppc4xx: remove HUB405 boardMatthias Fuchs
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu>
2015-01-13ppc4xx: remove HH405 boardMatthias Fuchs
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu>
2015-01-13ppc4xx: remove DU440 boardMatthias Fuchs
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu>
2015-01-13ppc4xx: remove DU405 boardMatthias Fuchs
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu>
2015-01-13ppc4xx: remove DP405 boardMatthias Fuchs
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu>
2015-01-13ppc4xx: remove CPCIISER4 boardMatthias Fuchs
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu>
2015-01-13ppc4xx: remove CMS700 boardMatthias Fuchs
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu>
2015-01-13ppc4xx: remove ASH405 boardMatthias Fuchs
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu>
2015-01-13ppc4xx: remove AR405 boardMatthias Fuchs
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu>
2015-01-13ppx4xx: remove APC405 boardMatthias Fuchs
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu>
2015-01-13m68k: remove TASREG boardMatthias Fuchs
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu> Acked-by: Stefan Roese <sr@denx.de>
2015-01-12x86: Simplify the fsp hob access functionsBin Meng
Remove the troublesome union hob_pointers so that some annoying casts are no longer needed in those hob access routines. This also improves the readability. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>
2015-01-12pci: Make pci apis usable before relocationBin Meng
Introduce a gd->hose to save the pci hose in the early phase so that apis in drivers/pci/pci.c can be used before relocation. Architecture codes need assign a valid gd->hose in the early phase. Some variables are declared as static so change them to be either stack variable or global data member so that they can be used before relocation, except the 'indent' used by CONFIG_PCI_SCAN_SHOW which just affects some print format. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>