| a2927e09 | 12-Dec-2014 |
Bin Meng <bmeng.cn@gmail.com> |
x86: Add a simple superio driver for SMSC LPC47M
On most x86 boards, the legacy serial ports (io address 0x3f8/0x2f8) are provided by a superio chip connected to the LPC bus. We must program the sup
x86: Add a simple superio driver for SMSC LPC47M
On most x86 boards, the legacy serial ports (io address 0x3f8/0x2f8) are provided by a superio chip connected to the LPC bus. We must program the superio chip so that serial ports are available for us.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>
show more ...
|
| 2795573a | 12-Dec-2014 |
Bin Meng <bmeng.cn@gmail.com> |
x86: ich6-gpio: Move setup_pch_gpios() to board support codes
Movie setup_pch_gpios() in the ich6-gpio driver to the board support codes, so that the driver does not need to know any platform specif
x86: ich6-gpio: Move setup_pch_gpios() to board support codes
Movie setup_pch_gpios() in the ich6-gpio driver to the board support codes, so that the driver does not need to know any platform specific stuff (ie: include the platform specifc chipset header file).
Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>
show more ...
|
| afc366f0 | 26-Nov-2014 |
Masahiro Yamada <yamada.m@jp.panasonic.com> |
Replace <compiler.h> with <linux/compiler.h>
Including <linux/compiler.h> is enough for general use.
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> |
| effcf067 | 15-Nov-2014 |
Simon Glass <sjg@chromium.org> |
x86: Add initial video device init for Intel GMA
Intel's Graphics Media Accelerator (GMA) is a generic name for a wide range of video devices. Add code to set up the hardware on ivybridge. Part of t
x86: Add initial video device init for Intel GMA
Intel's Graphics Media Accelerator (GMA) is a generic name for a wide range of video devices. Add code to set up the hardware on ivybridge. Part of the init happens in native code, part of it happens in a 16-bit option ROM for those nostalgic for the 1970s.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
| e34aef1d | 15-Nov-2014 |
Simon Glass <sjg@chromium.org> |
x86: Add GDT descriptors for option ROMs
Option ROMs require a few additional descriptors. Add these, and remove the enum since we now have to access several descriptors from assembler.
Signed-off-
x86: Add GDT descriptors for option ROMs
Option ROMs require a few additional descriptors. Add these, and remove the enum since we now have to access several descriptors from assembler.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
| 24774278 | 25-Nov-2014 |
Simon Glass <sjg@chromium.org> |
x86: ivybridge: Add northbridge init functions
Add init for the northbridge, another part of the platform controller hub.
Signed-off-by: Simon Glass <sjg@chromium.org> |
| d1ef1132 | 25-Nov-2014 |
Simon Glass <sjg@chromium.org> |
x86: Drop some msr functions that we don't support
These are not available in U-Boot as yet, so drop them.
Signed-off-by: Simon Glass <sjg@chromium.org> |
| bb80be39 | 25-Nov-2014 |
Simon Glass <sjg@chromium.org> |
x86: Add init for model 206AX CPU
Add the setup code for the CPU so that it can be used at full speed.
Signed-off-by: Simon Glass <sjg@chromium.org> |
| 0c9075e9 | 25-Nov-2014 |
Simon Glass <sjg@chromium.org> |
x86: Add LAPIC setup code
Add code to set up the Local Advanced Peripheral Interrupt Controller.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
| 1dae2e0e | 20-Nov-2014 |
Bin Meng <bmeng.cn@gmail.com> |
x86: Refactor interrupt_init()
Rename interrupt_init() in arch/x86/lib/pcat_interrupts.c to i8259_init() and create a new interrupt_init() in arch/x86/cpu/interrupt.c to call i8259_init() followed b
x86: Refactor interrupt_init()
Rename interrupt_init() in arch/x86/lib/pcat_interrupts.c to i8259_init() and create a new interrupt_init() in arch/x86/cpu/interrupt.c to call i8259_init() followed by a call to cpu_init_interrupts().
Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org> Tested-by: Simon Glass <sjg@chromium.org>
show more ...
|
| a549f749 | 20-Nov-2014 |
Bin Meng <bmeng.cn@gmail.com> |
x86: Remove cpu_init_r() for x86
Since cpu_init_interrupts() was moved out of cpu_init_r(), it is useless to keep cpu_init_r() for x86, thus remove it.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
x86: Remove cpu_init_r() for x86
Since cpu_init_interrupts() was moved out of cpu_init_r(), it is useless to keep cpu_init_r() for x86, thus remove it.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org> Tested-by: Simon Glass <sjg@chromium.org>
show more ...
|
| 18739e2c | 15-Nov-2014 |
Simon Glass <sjg@chromium.org> |
x86: Add Intel speedstep and turbo mode code
Intel chips have a turbo mode where they can run faster for a short period until they reach thermal limits. Add code to adjust and query this feature.
S
x86: Add Intel speedstep and turbo mode code
Intel chips have a turbo mode where they can run faster for a short period until they reach thermal limits. Add code to adjust and query this feature.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
| a6d4c453 | 15-Nov-2014 |
Simon Glass <sjg@chromium.org> |
x86: ivybridge: Set up XHCI USB
Add init for XHCI so that high-speed USB can be used.
Signed-off-by: Simon Glass <sjg@chromium.org> |
| 9baeca4b | 15-Nov-2014 |
Simon Glass <sjg@chromium.org> |
x86: ivybridge: Set up EHCI USB
Add init for EHCI so that USB can be used.
Signed-off-by: Simon Glass <sjg@chromium.org> |
| 3ac83935 | 15-Nov-2014 |
Simon Glass <sjg@chromium.org> |
x86: ivybridge: Add SATA init
Add code to set up the SATA interfaces on boot.
Signed-off-by: Simon Glass <sjg@chromium.org> |
| 8c74a573 | 15-Nov-2014 |
Simon Glass <sjg@chromium.org> |
x86: ivybridge: Add PCH init
Add required init for the Intel Platform Controller Hub in ivybridge.
Signed-off-by: Simon Glass <sjg@chromium.org> |
| 3e0332c0 | 15-Nov-2014 |
Simon Glass <sjg@chromium.org> |
x86: Add a simple header file for ACPI
We don't use many features yet, so this only has a few declarations. It will be expanded as needed.
Signed-off-by: Simon Glass <sjg@chromium.org> |
| 4e7a6aca | 15-Nov-2014 |
Simon Glass <sjg@chromium.org> |
x86: ivybridge: Add support for BD82x6x PCH
Add basic setup for the PCH.
Signed-off-by: Simon Glass <sjg@chromium.org> |
| a0bd851e | 15-Nov-2014 |
Simon Glass <sjg@chromium.org> |
x86: Set up edge triggering on interrupt 9
Add this additional init in case it is needed by the OS.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> |
| e94ea6f6 | 15-Nov-2014 |
Simon Glass <sjg@chromium.org> |
x86: pci: Add handlers before and after a PCI hose scan
Some boards will want to do some setup before and after a PCI hose is scanned.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin
x86: pci: Add handlers before and after a PCI hose scan
Some boards will want to do some setup before and after a PCI hose is scanned.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
show more ...
|
| a2f5d091 | 15-Nov-2014 |
Simon Glass <sjg@chromium.org> |
x86: Add ioapic.h header
Add definitions for the I/O Advanced Peripheral Interrupt Controller.
Signed-off-by: Simon Glass <sjg@chromium.org> |
| 65dd74a6 | 13-Nov-2014 |
Simon Glass <sjg@chromium.org> |
x86: ivybridge: Implement SDRAM init
Implement SDRAM init using the Memory Reference Code (mrc.bin) provided in the board directory and the SDRAM SPD information in the device tree. This also needs
x86: ivybridge: Implement SDRAM init
Implement SDRAM init using the Memory Reference Code (mrc.bin) provided in the board directory and the SDRAM SPD information in the device tree. This also needs the Intel Management Engine (me.bin) to work. Binary blobs everywhere: so far we have MRC, ME and microcode.
SDRAM init works by setting up various parameters and calling the MRC. This in turn does some sort of magic to work out how much memory there is and the timing parameters to use. It also sets up the DRAM controllers. When the MRC returns, we use the information it provides to map out the available memory in U-Boot.
U-Boot normally moves itself to the top of RAM. On x86 the RAM is not generally contiguous, and anyway some RAM may be above 4GB which doesn't work in 32-bit mode. So we relocate to the top of the largest block of RAM we can find below 4GB. Memory above 4GB is accessible with special functions (see physmem).
It would be possible to build U-Boot in 64-bit mode but this wouldn't necessarily provide any more memory, since the largest block is often below 4GB. Anyway U-Boot doesn't need huge amounts of memory - even a very large ramdisk seldom exceeds 100-200MB. U-Boot has support for booting 64-bit kernels directly so this does not pose a limitation in that area. Also there are probably parts of U-Boot that will not work correctly in 64-bit mode. The MRC is one.
There is some work remaining in this area. Since memory init is very slow (over 500ms) it is possible to save the parameters in SPI flash to speed it up next time. Suspend/resume support is not fully implemented, or at least it is not efficient.
With this patch, link boots to a prompt.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
| 3eafce05 | 13-Nov-2014 |
Simon Glass <sjg@chromium.org> |
x86: ivybridge: Add LAPIC support
The local advanced programmable interrupt controller is not used much in U-Boot but we do need to set it up. Add basic support for this, which will be extended as n
x86: ivybridge: Add LAPIC support
The local advanced programmable interrupt controller is not used much in U-Boot but we do need to set it up. Add basic support for this, which will be extended as needed.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
| 1b4f25ff | 13-Nov-2014 |
Simon Glass <sjg@chromium.org> |
x86: ivybridge: Add support for early GPIO init
When not relying on Coreboot for GPIO init the GPIOs must be set up correctly. This is currently done statically through a rather ugly method. As the
x86: ivybridge: Add support for early GPIO init
When not relying on Coreboot for GPIO init the GPIOs must be set up correctly. This is currently done statically through a rather ugly method. As the GPIOs are figured out they can be moved to the device tree and set up as needed rather than all at the start.
In this implementation, board files should call ich_gpio_set_gpio_map() before the GPIO driver is used in order to provide the GPIO information. We use the early PCI interface so that this driver can now be used before relocation.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
| 8e0df066 | 13-Nov-2014 |
Simon Glass <sjg@chromium.org> |
x86: ivybridge: Add early init for PCH devices
Many PCH devices are hard-coded to a particular PCI address. Set these up early in case they are needed.
Signed-off-by: Simon Glass <sjg@chromium.org> |