All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Mavrodiev <stefan.mavrodiev@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 2/2] Enable test case with A20-OLinuXino-Lime2
Date: Tue, 6 Feb 2018 10:01:54 +0200	[thread overview]
Message-ID: <25ac7c86-2ec7-93b9-9680-18d3b0299b4f@gmail.com> (raw)
In-Reply-To: <CAD6G_RS6-9=YUc3M5M=D1juOvW8YB78Wx6sDvbW8t+twc89+GQ@mail.gmail.com>

On 02/01/2018 04:45 PM, Jagan Teki wrote:
> On Thu, Feb 1, 2018 at 8:08 PM, Stefan Mavrodiev
> <stefan.mavrodiev@gmail.com> wrote:
>> On 01/30/2018 09:15 AM, Stefan Mavrodiev wrote:
>>> On 01/22/2018 10:36 AM, Jagan Teki wrote:
>>>> On Tue, Jan 2, 2018 at 4:31 PM, Stefan Mavrodiev
>>>> <stefan.mavrodiev@gmail.com> wrote:
>>>>> On 12/26/2017 11:47 AM, Jagan Teki wrote:
>>>>>> On Fri, Dec 22, 2017 at 3:30 PM, Stefan Mavrodiev <stefan@olimex.com>
>>>>>> wrote:
>>>>>>> Driver testing is done with A20-OLinuXino-Lime2. Testing
>>>>>>> requirements are:
>>>>>>>      - Exposing spi0 alternative pins in the dts file
>>>>>>>      - Add alias node, enabling driver probing
>>>>>>>      - Enable spi flash related options in the defconfig file
>>>>>>>
>>>>>>> The testing log is:
>>>>>>>      U-Boot SPL 2018.01-rc2-00023-gfa13cb3-dirty (Dec 22 2017 -
>>>>>>> 11:39:48)
>>>>>>>      DRAM: 1024 MiB
>>>>>>>      CPU: 912000000Hz, AXI/AHB/APB: 3/2/2
>>>>>>>      Trying to boot from sunxi SPI
>>>>>>>
>>>>>>>
>>>>>>>      U-Boot 2018.01-rc2-00023-gfa13cb3-dirty (Dec 22 2017 - 11:39:48
>>>>>>> +0200)
>>>>>>> Allwinner Technology
>>>>>>>
>>>>>>>      CPU:   Allwinner A20 (SUN7I)
>>>>>>>      Model: Olimex A20-OLinuXino-LIME2
>>>>>> Lime2 doen't have in-built spi-nor is it?
>>>>> We have some prototypes with this option.
>>>> I've Rev.6 does it have spi-nor?
>>> I assume Rev.6 is actually Rev.F. The first prototype with SPI flash is
>>> Rev.I (Rev.9).
>>>>
>>>>>>>      I2C:   ready
>>>>>>>      DRAM:  1 GiB
>>>>>>>      MMC:   SUNXI SD/MMC: 0
>>>>>>>      MMC: no card present
>>>>>>>      mmc_init: -123, time 1
>>>>>>>      *** Warning - MMC init failed, using default environment
>>>>>> you lost the env? since it's spi-nor better to use flash env.
>>>>> What's the point since this is only test case?
>>>> this can be an issue if we boot the system from spi-nor, where we can
>>>> get saved env.
>>>>
>>>>>>>      In:    serial
>>>>>>>      Out:   serial
>>>>>>>      Err:   serial
>>>>>>>      Allwinner mUSB OTG (Peripheral)
>>>>>>>      SCSI:  SATA link 0 timeout.
>>>>>>>      AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
>>>>>>>      flags: ncq stag pm led clo only pmp pio slum part ccc apst
>>>>>>>      Net:   No ethernet found.
>>>>>>>      starting USB...
>>>>>>>      USB0:   USB EHCI 1.00
>>>>>>>      USB1:   USB OHCI 1.0
>>>>>>>      USB2:   USB EHCI 1.00
>>>>>>>      USB3:   USB OHCI 1.0
>>>>>>>      scanning bus 0 for devices... 1 USB Device(s) found
>>>>>>>      scanning bus 2 for devices... 1 USB Device(s) found
>>>>>>>             scanning usb for storage devices... 0 Storage Device(s)
>>>>>>> found
>>>>>>>      Hit any key to stop autoboot:  0
>>>>>>>      => sspi
>>>>>>>
>>>>>>>      => sf probe
>>>>>>>      SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB,
>>>>>>> total 16 MiB
>>>>>> try to use erase/write and read commands to verify
>>>>> # Erase one sector
>>>>> => sf erase 0x1000 0x100
>>>>> SF: 256 bytes @ 0x1000 Erased: ERROR
>>>>> => sf erase 0x1000 0x1000
>>>>> SF: 4096 bytes @ 0x1000 Erased: OK
>>>>>
>>>>> # Get some random data
>>>>> => md.b 0x50000000 0x100
>>>>> 50000000: d6 4d d0 7e 93 d8 0f 48 1b ef 7f 7e be 4e a8 5d
>>>>> .M.~...H...~.N.]
>>>>> 50000010: fd 9f e5 7f 2f 7b 5b 19 ed de d8 58 99 7a 24 da
>>>>> ..../{[....X.z$.
>>>>> 50000020: ef dd 9c 45 d7 97 ab 4f e7 fb ee 61 bc de 6a 1a
>>>>> ...E...O...a..j.
>>>>> 50000030: 9a 9f f4 3a be 4b 2f f3 ce 77 87 7e 07 23 af ff
>>>>> ...:.K/..w.~.#..
>>>>> 50000040: e5 e5 c0 fa 65 e2 78 9b 16 38 42 52 e5 6c 52 0d
>>>>> ....e.x..8BR.lR.
>>>>> 50000050: f5 ff da 94 7f 98 96 d7 f0 9d 66 ae 9b b9 a2 cd
>>>>> ..........f.....
>>>>> 50000060: 0b dd f1 c9 1d 3b fe 5b cf ef d6 ce 8b c5 fd 56
>>>>> .....;.[.......V
>>>>> 50000070: e2 52 eb 78 d4 f1 bf 57 56 6a 57 58 52 f1 0e 9d
>>>>> .R.x...WVjWXR...
>>>>> 50000080: df be f8 19 bf cf d7 ac 4b 3e 86 21 3f c3 fe 3e
>>>>> ........K>.!?..>
>>>>> 50000090: ea 27 52 ca 1f 79 bd 7b ef bf 96 c9 9d f6 81 d3
>>>>> .'R..y.{........
>>>>> 500000a0: cc 2e 8b c8 34 7f c5 2f 29 19 a8 dc 54 7a 07 1d
>>>>> ....4../)...Tz..
>>>>> 500000b0: f4 e6 db ed 38 03 59 bb 31 ee b3 dd 5c e6 be 58
>>>>> ....8.Y.1...\..X
>>>>> 500000c0: a6 7c 87 61 84 47 e0 b1 a1 fc 6e d3 d5 93 bf 8a
>>>>> .|.a.G....n.....
>>>>> 500000d0: 5d a3 be 4b cf 07 1d 92 ff 36 f9 46 fb 5a cb 8f
>>>>> ]..K.....6.F.Z..
>>>>> 500000e0: f9 27 7a b8 7b 07 2e 22 a1 ee 56 bc a7 de 57 6a
>>>>> .'z.{.."..V...Wj
>>>>> 500000f0: da d4 7d 7f ee db 7a e2 bc 5c 44 64 b7 fc ea 3e
>>>>> ..}...z..\Dd...
>>>>>
>>>>> # Write one page to spi-nor
>>>>> => sf write 0x50000000 0x1000 0x100
>>>>> device 0 offset 0x1000, size 0x100
>>>>> SF: 256 bytes @ 0x1000 Written: OK
>>>>>
>>>>> # Readback data
>>>>> => sf read 0x51000000 0x1000 0x100
>>>>> device 0 offset 0x1000, size 0x100
>>>>> SF: 256 bytes @ 0x1000 Read: OK
>>>>>
>>>>> # Compare data
>>>>> => cmp.b 0x50000000 0x51000000 0x100
>>>>> Total of 256 byte(s) were the same
>>>>>
>>>>>>>      => sf test 0 100000
>>>>>>>      SPI flash test:
>>>>>>>      0 erase: 11407 ticks, 89 KiB/s 0.712 Mbps
>>>>>>>      1 check: 8881 ticks, 115 KiB/s 0.920 Mbps
>>>>>>>      2 write: 10824 ticks, 94 KiB/s 0.752 Mbps
>>>>>>>      3 read: 8872 ticks, 115 KiB/s 0.920 Mbps
>>>>>>>      Test passed
>>>>>>>      0 erase: 11407 ticks, 89 KiB/s 0.712 Mbps
>>>>>>>      1 check: 8881 ticks, 115 KiB/s 0.920 Mbps
>>>>>>>      2 write: 10824 ticks, 94 KiB/s 0.752 Mbps
>>>>>>>      3 read: 8872 ticks, 115 KiB/s 0.920 Mbps
>>>>>>>      =>
>>>>>>>
>>>>>>> Signed-off-by: Stefan Mavrodiev <stefan@olimex.com>
>>>>>>> ---
>>>>>>>     arch/arm/dts/sun7i-a20-olinuxino-lime2.dts | 21
>>>>>>> +++++++++++++++++++++
>>>>>>>     configs/A20-OLinuXino-Lime2_defconfig      |  8 ++++++++
>>>>>>>     2 files changed, 29 insertions(+)
>>>>>>>
>>>>>>> diff --git a/arch/arm/dts/sun7i-a20-olinuxino-lime2.dts
>>>>>>> b/arch/arm/dts/sun7i-a20-olinuxino-lime2.dts
>>>>>>> index d5c796c..3c708da 100644
>>>>>>> --- a/arch/arm/dts/sun7i-a20-olinuxino-lime2.dts
>>>>>>> +++ b/arch/arm/dts/sun7i-a20-olinuxino-lime2.dts
>>>>>>> @@ -54,6 +54,7 @@
>>>>>>>
>>>>>>>            aliases {
>>>>>>>                    serial0 = &uart0;
>>>>>>> +               spi0 = &spi0;
>>>>>>>            };
>>>>>>>
>>>>>>>            chosen {
>>>>>>> @@ -215,6 +216,20 @@
>>>>>>>                    allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
>>>>>>>            };
>>>>>>>
>>>>>>> +       spi0_pins_b: spi0 at 1 {
>>>>>>> +               allwinner,pins = "PC0", "PC1", "PC2";
>>>>>>> +               allwinner,function = "spi0";
>>>>>>> +               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
>>>>>>> +               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
>>>>>>> +       };
>>>>>>> +
>>>>>>> +       spi0_cs0_pins_b: spi0_cs0 at 1 {
>>>>>>> +               allwinner,pins = "PC23";
>>>>>>> +               allwinner,function = "spi0";
>>>>>>> +               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
>>>>>>> +               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
>>>>>>> +       };
>>>>>>> +
>>>>>>>            usb0_id_detect_pin: usb0_id_detect_pin at 0 {
>>>>>>>                    allwinner,pins = "PH4";
>>>>>>>                    allwinner,function = "gpio_in";
>>>>>>> @@ -257,6 +272,12 @@
>>>>>>>            status = "okay";
>>>>>>>     };
>>>>>>>
>>>>>>> +&spi0 {
>>>>>>> +       pinctrl-names = "default";
>>>>>>> +       pinctrl-0 = <&spi0_pins_b>, <&spi0_cs0_pins_b>;
>>>>>>> +       status = "okay";
>>>>>>> +};
>>>>>>> +
>>>>>>>     &uart0 {
>>>>>>>            pinctrl-names = "default";
>>>>>>>            pinctrl-0 = <&uart0_pins_a>;
>>>>>>> diff --git a/configs/A20-OLinuXino-Lime2_defconfig
>>>>>>> b/configs/A20-OLinuXino-Lime2_defconfig
>>>>>>> index 1edc844..c499e3d 100644
>>>>>>> --- a/configs/A20-OLinuXino-Lime2_defconfig
>>>>>>> +++ b/configs/A20-OLinuXino-Lime2_defconfig
>>>>>>> @@ -30,3 +30,11 @@ CONFIG_SCSI=y
>>>>>>>     CONFIG_USB_EHCI_HCD=y
>>>>>>>     CONFIG_USB_MUSB_GADGET=y
>>>>>>>     CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
>>>>>>> +CONFIG_CMD_SF=y
>>>>>>> +CONFIG_CMD_SF_TEST=y
>>>>>> Ok, but not useful to include in config's
>>>>>>
>>>>>>> +CONFIG_CMD_SPI=y
>>>> drop this.
>>>
>>>
>> Hi,
>>
>> I have problem with the driver. I'm not sure where the problem is.
>> Without calling sspi first, sf probe doesn't work. I guess driver doesn't
>> bind.
>>
>> The output is:
>>
>> => sf probe
>> Invalid chip select 0:0 (err=-19)
>> Failed to initialize SPI flash at 0:0
> Haa..observed similar with sun6i_spi [1], what I've seen is controller
> writes are not done with direct 'sf probe'
>
> So with sspi are you able to do ops with sf?
>
> [1] http://git.denx.de/?p=u-boot-spi.git;a=commitdiff;h=0a45dde186f766626b806de3e962fb53e1c40522


Hi,

I've made some fast debugging with/without sspi command.

=> sf probe
spi_find_chip_select() -> device_find_first_child(spi at 01c05000)
device_find_first_child() -> parent: spi at 01c05000
device_find_first_child() -> child_heads is empty!
Invalid chip select 0:0 (err=-19)
Failed to initialize SPI flash at 0:0

=> sspi
spi_find_chip_select() -> device_find_first_child(spi at 01c05000)
device_find_first_child() -> parent: spi at 01c05000
device_find_first_child() -> child_heads is empty!
spi_get_bus_and_cs: Binding new device 'generic_0:0', busnum=0, cs=0, 
driver=spi_generic_drv
device_bind_common() - name: generic_0:0; parent name: spi at 01c05000
spi_get_bus_and_cs: bus=7af3c138, slave=7af4bd7

=> sf probe
spi_find_chip_select() -> device_find_first_child(spi at 01c05000)
device_find_first_child() -> parent: spi at 01c05000
spi_find_chip_select: plat=7af4bd68, cs=0
spi_get_bus_and_cs: bus=7af3c138, slave=7af4bd78
SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 
16 MiB

What I can see is that the flash device never get binded with spi 
driver. The sspi command
creates generic spi device, which later is used by sf opts.

I think flash device doesn't get read from the DT when 
CONFIG_DM_SPI_FLASH is enabled.
If legacy controls are enabled maybe there should be way to bind driver 
to device?

Regards,
Stefan Mavrodiev

  reply	other threads:[~2018-02-06  8:01 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-22 10:00 [U-Boot] [PATCH v3 1/2] arm: sunxi: Allwinner A10 SPI driver Stefan Mavrodiev
2017-12-22 10:00 ` [U-Boot] [PATCH v3 2/2] Enable test case with A20-OLinuXino-Lime2 Stefan Mavrodiev
2017-12-26  9:47   ` Jagan Teki
2018-01-02 11:01     ` Stefan Mavrodiev
2018-01-11  6:08       ` Stefan Mavrodiev
2018-01-11  7:07         ` Jagan Teki
2018-01-22  8:36       ` Jagan Teki
2018-01-30  7:15         ` Stefan Mavrodiev
2018-02-01 14:38           ` Stefan Mavrodiev
2018-02-01 14:45             ` Jagan Teki
2018-02-06  8:01               ` Stefan Mavrodiev [this message]
2018-01-22  8:32 ` [U-Boot] [PATCH v3 1/2] arm: sunxi: Allwinner A10 SPI driver Jagan Teki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=25ac7c86-2ec7-93b9-9680-18d3b0299b4f@gmail.com \
    --to=stefan.mavrodiev@gmail.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.