| 7ac99be6 | 12-Mar-2016 |
Simon Glass <sjg@chromium.org> |
x86: Add an ICH6 pin configuration driver
Add a driver which sets up the pin configuration on x86 devices with an ICH6 (or later) Platform Controller Hub.
The driver is not in the pinctrl uclass du
x86: Add an ICH6 pin configuration driver
Add a driver which sets up the pin configuration on x86 devices with an ICH6 (or later) Platform Controller Hub.
The driver is not in the pinctrl uclass due to some oddities of the way x86 devices work:
- The GPIO controller is not present in I/O space until it is set up - This is done by writing a register in the PCH - The PCH has a driver which itself uses PCI, another driver - The pinctrl uclass requires that a pinctrl device be available before any other device can be probed
It would be possible to work around the limitations by: - Hard-coding the GPIO address rather than reading it from the PCH - Using special x86 PCI access to set the GPIO address in the PCH
However it is not clear that this is better, since the pin configuration driver does not actually provide normal pin configuration services - it simply sets up all the pins statically when probed. While this remains the case, it seems better to use a syscon uclass instead. This can be probed whenever it is needed, without any limitations.
Also add an 'invert' property to support inverting the input.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
show more ...
|
| 6bcb675b | 12-Mar-2016 |
Simon Glass <sjg@chromium.org> |
x86: Record the CPU details when starting each core
As each core starts up, record its microcode version and CPU ID so these can be presented with the 'cpu detail' command.
Signed-off-by: Simon Gla
x86: Record the CPU details when starting each core
As each core starts up, record its microcode version and CPU ID so these can be presented with the 'cpu detail' command.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
show more ...
|
| 005174d6 | 12-Mar-2016 |
Simon Glass <sjg@chromium.org> |
x86: Allow I/O functions to use pointers
It is common with memory-mapped I/O to use the address of a structure member to access memory, as in:
struct some_regs { u32 ctrl; u32 data;
x86: Allow I/O functions to use pointers
It is common with memory-mapped I/O to use the address of a structure member to access memory, as in:
struct some_regs { u32 ctrl; u32 data; }
struct some_regs *regs = (struct some_regs *)BASE_ADDRESS;
writel(1, ®->ctrl); writel(2, ®->data);
This does not currently work with inl(), outl(), etc. Add a cast to permit this.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
show more ...
|
| 30928c11 | 12-Mar-2016 |
Simon Glass <sjg@chromium.org> |
x86: Add macros to clear and set I/O bits
The clrsetbits_...() macros are useful for working with memory mapped I/O. But they do not work with I/O space, as used on x86 machines.
Add some macros to
x86: Add macros to clear and set I/O bits
The clrsetbits_...() macros are useful for working with memory mapped I/O. But they do not work with I/O space, as used on x86 machines.
Add some macros to provide similar features for I/O.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
show more ...
|
| b70e742d | 12-Mar-2016 |
Simon Glass <sjg@chromium.org> |
x86: ivybridge: Drop sandybridge_early_init()
This function was removed in the previous clean-up. Drop it from the header file also.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin M
x86: ivybridge: Drop sandybridge_early_init()
This function was removed in the previous clean-up. Drop it from the header file also.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
show more ...
|
| d116b53f | 07-Mar-2016 |
Simon Glass <sjg@chromium.org> |
x86: Add comments to the SIPI vector
The Intel SIPI (start-up inter-processor interrupt) vector is the entry point for each secondary CPU (also called an AP - applications processor). The assembler
x86: Add comments to the SIPI vector
The Intel SIPI (start-up inter-processor interrupt) vector is the entry point for each secondary CPU (also called an AP - applications processor). The assembler and C code are linked, so add comments to indicate this.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
show more ...
|
| d6d50db8 | 07-Mar-2016 |
Simon Glass <sjg@chromium.org> |
x86: gpio: Correct GPIO setup ordering
The Intel GPIO driver can set up the GPIO pin mapping when the first GPIO is probed. However, it assumes that the first GPIO to be probed is in the first GPIO
x86: gpio: Correct GPIO setup ordering
The Intel GPIO driver can set up the GPIO pin mapping when the first GPIO is probed. However, it assumes that the first GPIO to be probed is in the first GPIO bank. If this is not the case then the init will write to the wrong registers.
Fix this. Also add a note that this code is deprecated. We should move to using device tree instead.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
show more ...
|
| 3cf23719 | 29-Feb-2016 |
Bin Meng <bmeng.cn@gmail.com> |
x86: Support booting SeaBIOS
SeaBIOS is an open source implementation of a 16-bit x86 BIOS. It can run in an emulator or natively on x86 hardware with the use of coreboot. With SeaBIOS's help, we ca
x86: Support booting SeaBIOS
SeaBIOS is an open source implementation of a 16-bit x86 BIOS. It can run in an emulator or natively on x86 hardware with the use of coreboot. With SeaBIOS's help, we can boot some OSes that require 16-bit BIOS services like Windows/DOS.
As U-Boot, we have to manually create a table where SeaBIOS gets system information (eg: E820) from. The table unfortunately has to follow the coreboot table format as SeaBIOS currently supports booting as a coreboot payload.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
show more ...
|
| 26f9a9b7 | 28-Feb-2016 |
Bin Meng <bmeng.cn@gmail.com> |
x86: Implement functions for writing coreboot table
To prepare generating coreboot table from U-Boot, implement functions to handle the writing.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewe
x86: Implement functions for writing coreboot table
To prepare generating coreboot table from U-Boot, implement functions to handle the writing.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
show more ...
|
| f2d0690e | 28-Feb-2016 |
Bin Meng <bmeng.cn@gmail.com> |
x86: Clean up coreboot_tables.h
Clean up this file a little bit: - Remove inclusion of <linux/compiler.h> - Use tab in the macro definition
Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by:
x86: Clean up coreboot_tables.h
Clean up this file a little bit: - Remove inclusion of <linux/compiler.h> - Use tab in the macro definition
Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
show more ...
|
| 1329020d | 28-Feb-2016 |
Bin Meng <bmeng.cn@gmail.com> |
x86: Move sysinfo related to sysinfo.h
coreboot_tables.h should not include sysinfo related stuff. Move those to asm/arch-coreboot/sysinfo.h.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-b
x86: Move sysinfo related to sysinfo.h
coreboot_tables.h should not include sysinfo related stuff. Move those to asm/arch-coreboot/sysinfo.h.
Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
show more ...
|