[U-Boot] [PATCH v4 8/8] dm: x86: spi: Convert ICH SPI driver to driver model PCI API
Bin Meng
bmeng.cn at gmail.com
Mon Jan 18 09:43:53 CET 2016
Hi Simon,
On Mon, Jan 18, 2016 at 3:44 PM, Bin Meng <bmeng.cn at gmail.com> wrote:
> Hi Simon,
>
> On Sun, Jan 17, 2016 at 7:44 AM, Simon Glass <sjg at chromium.org> wrote:
>> At present this SPI driver works by searching the PCI buses for its
>> peripheral. It also uses the legacy PCI API.
>>
>> In addition the driver has code to determine the type of Intel PCH that is
>> used (version 7 or version 9). Now that we have proper PCH drivers we can
>> use those to obtain the information we need.
>>
>> While the device tree has a node for the SPI peripheral it is not in the
>> right place. It should be on the PCI bus as a sub-peripheral of the LPC
>> device.
>>
>> Update the device tree files to show the SPI controller within the PCH, so
>> that PCI access works as expected.
>>
>> Signed-off-by: Simon Glass <sjg at chromium.org>
>> Reviewed-by: Bin Meng <bmeng.cn at gmail.com>
>> ---
>>
>> Changes in v4:
>> - Add BIOS_CTRL address for PCH9
>>
>> Changes in v3:
>> - Use the set_spi_protect() PCH method
>>
>> Changes in v2:
>> - Adjust code for earlier commits
>> - Move the SPI base code into the PCH drivers
>>
>> arch/x86/cpu/coreboot/pci.c | 3 +-
>> arch/x86/cpu/irq.c | 7 +-
>> arch/x86/cpu/ivybridge/bd82x6x.c | 47 ++++++++++-
>> arch/x86/dts/bayleybay.dts | 160 +++++++++++++++++++-----------------
>> arch/x86/dts/broadwell_som-6896.dts | 23 ++++--
>> arch/x86/dts/chromebook_link.dts | 5 +-
>> arch/x86/dts/chromebox_panther.dts | 33 ++++----
>> arch/x86/dts/crownbay.dts | 150 +++++++++++++++++----------------
>> arch/x86/dts/galileo.dts | 98 +++++++++++-----------
>> arch/x86/dts/minnowmax.dts | 158 ++++++++++++++++++-----------------
>> arch/x86/dts/qemu-x86_i440fx.dts | 26 +++---
>> arch/x86/dts/qemu-x86_q35.dts | 38 +++++----
>> drivers/spi/ich.c | 152 ++++++++--------------------------
>> 13 files changed, 458 insertions(+), 442 deletions(-)
>>
>
> [snip]
>
>> diff --git a/arch/x86/dts/crownbay.dts b/arch/x86/dts/crownbay.dts
>> index 84231b3..ff739d4 100644
>> --- a/arch/x86/dts/crownbay.dts
>> +++ b/arch/x86/dts/crownbay.dts
>> @@ -72,17 +72,6 @@
>> stdout-path = "/serial";
>> };
>>
>> - spi {
>> - #address-cells = <1>;
>> - #size-cells = <0>;
>> - compatible = "intel,ich-spi";
>> - spi-flash at 0 {
>> - reg = <0>;
>> - compatible = "sst,25vf016b", "spi-flash";
>> - memory-map = <0xffe00000 0x00200000>;
>> - };
>> - };
>> -
>> microcode {
>> update at 0 {
>> #include "microcode/m0220661105_cv.dtsi"
>> @@ -105,6 +94,18 @@
>> u-boot,dm-pre-reloc;
>> reg = <0x0000b800 0x0 0x0 0x0 0x0>;
>>
>> + spi {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> + compatible = "intel,ich-spi";
>> + spi-flash at 0 {
>> + reg = <0>;
>> + compatible = "sst,25vf016b",
>> + "spi-flash";
>> + memory-map = <0xffe00000 0x00200000>;
>> + };
>> + };
>> +
>
> Oops! This breaks Crown Bay from booting anymore. This should be moved
> after irq-router, to be a sub-node of pch.
>
Please squash this patch [1] in this one. It fixed the boot issue on
Crown Bay, as well as some clean up (adding a blank line between spi
sub-node and pch, for better reading).
[1] http://patchwork.ozlabs.org/patch/569478/
Regards,
Bin
More information about the U-Boot
mailing list