[U-Boot] [PATCH v4 8/8] dm: x86: spi: Convert ICH SPI driver to driver model PCI API
Simon Glass
sjg at chromium.org
Tue Jan 19 04:05:24 CET 2016
Hi Bin,
On 18 January 2016 at 01:43, Bin Meng <bmeng.cn at gmail.com> wrote:
> 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/
Will do - thanks very much for sorting this out!
Regards,
Simon
More information about the U-Boot
mailing list