Patchwork [U-Boot,1/1] i.MX6: mx6qsabrelite: README: don't pass chip-select to sf probe command

login
register
mail settings
Submitter Javier Martinez Canillas
Date March 25, 2013, 4:13 p.m.
Message ID <1364228037-21962-1-git-send-email-javier.martinez@collabora.co.uk>
Download mbox | patch
Permalink /patch/230751/
State Changes Requested
Delegated to: Stefano Babic
Headers show

Comments

Javier Martinez Canillas - March 25, 2013, 4:13 p.m.
since commit "c1173bd0: sf command: allow default bus and chip selects"
the chip-select and bus arguments for the sf probe command are optional.

Even when passing the chip-select to sf probe says to be optional, it
makes "sf erase" and "sf write" to fail on a mx6qsabrelite board. e.g:

MX6QSABRELITE U-Boot > sf probe 1
MX6QSABRELITE U-Boot > sf erase 0 0x40000
SPI flash erase failed
MX6QSABRELITE U-Boot > sf write 0x10800000 0 0x40000
SPI flash write failed

But just using "sf probe" works well. So, update the mx6qsabrelite
README so the commands will work on current U-Boot.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
---
 board/freescale/mx6qsabrelite/README |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Stefano Babic - April 3, 2013, 9:25 a.m.
On 25/03/2013 17:13, Javier Martinez Canillas wrote:
> since commit "c1173bd0: sf command: allow default bus and chip selects"
> the chip-select and bus arguments for the sf probe command are optional.
> 

Hi Javier,

> Even when passing the chip-select to sf probe says to be optional, it
> makes "sf erase" and "sf write" to fail on a mx6qsabrelite board. e.g:
> 
> MX6QSABRELITE U-Boot > sf probe 1
> MX6QSABRELITE U-Boot > sf erase 0 0x40000
> SPI flash erase failed
> MX6QSABRELITE U-Boot > sf write 0x10800000 0 0x40000
> SPI flash write failed

Well, the real reason is that the passed chipselect is wrong. Checking
in the configuration file, I see that the value to be passed should be
0x7300. I suppose (I am not testing) that "sf probe 0x7300" make sf
erase and sw write working.

> 
> But just using "sf probe" works well. So, update the mx6qsabrelite
> README so the commands will work on current U-Boot.

I agree with the patch, but the description is wrong. Can you rewrite it
simply stating that the chipselect "1" is wrong and that it is not
strictly required (but again, is not forbidden) to pass it to sf probe ?

Best regards,
Stefano Babic
Javier Martinez Canillas - April 3, 2013, 9:50 a.m.
On Wed, Apr 3, 2013 at 11:25 AM, Stefano Babic <sbabic@denx.de> wrote:
> On 25/03/2013 17:13, Javier Martinez Canillas wrote:
>> since commit "c1173bd0: sf command: allow default bus and chip selects"
>> the chip-select and bus arguments for the sf probe command are optional.
>>
>
> Hi Javier,
>

Hi Stefano, thanks a lot for your feedback.

>> Even when passing the chip-select to sf probe says to be optional, it
>> makes "sf erase" and "sf write" to fail on a mx6qsabrelite board. e.g:
>>
>> MX6QSABRELITE U-Boot > sf probe 1
>> MX6QSABRELITE U-Boot > sf erase 0 0x40000
>> SPI flash erase failed
>> MX6QSABRELITE U-Boot > sf write 0x10800000 0 0x40000
>> SPI flash write failed
>
> Well, the real reason is that the passed chipselect is wrong. Checking
> in the configuration file, I see that the value to be passed should be
> 0x7300. I suppose (I am not testing) that "sf probe 0x7300" make sf
> erase and sw write working.
>

Just for curiosity, in which configuration file did you see that? When
I had the issue I looked at
include/configs/{mx6qsabrelite,mx6_common}.h and
board/freescale/mx6qsabrelite/mx6qsabrelite.c but I didn't find what
chip-select was supposed to be used.

>>
>> But just using "sf probe" works well. So, update the mx6qsabrelite
>> README so the commands will work on current U-Boot.
>
> I agree with the patch, but the description is wrong. Can you rewrite it
> simply stating that the chipselect "1" is wrong and that it is not
> strictly required (but again, is not forbidden) to pass it to sf probe ?
>

I'll send a v2 of the patch with this description:

    i.MX6: mx6qsabrelite: README: don't pass chip-select to sf probe command

    board/freescale/mx6qsabrelite/README explain a procedure to
    update the SPI-NOR on the SabreLite board without Freescale
    manufacturing tool but following this procedure leads to both
    "sf erase" and "sf write" failing on a mx6qsabrelite board:

    MX6QSABRELITE U-Boot > sf probe 1
    MX6QSABRELITE U-Boot > sf erase 0 0x40000
    SPI flash erase failed
    MX6QSABRELITE U-Boot > sf write 0x10800000 0 0x40000
    SPI flash write failed

    This is because the chip-select 1 is wrong and according the
    correct value is 0x7300.

    Since commit c1173bd0 ("sf command: allow default bus and chip selects"),
    the chip-select and bus arguments for the sf probe command are optional
    so let's just remove it and use "sf probe" instead.

> Best regards,
> Stefano Babic
>
> --

Thanks a lot and best regards,
Javier
Stefano Babic - April 3, 2013, 10:13 a.m.
On 03/04/2013 11:50, Javier Martinez Canillas wrote:
> Just for curiosity, in which configuration file did you see that? When
> I had the issue I looked at
> include/configs/{mx6qsabrelite,mx6_common}.h and
> board/freescale/mx6qsabrelite/mx6qsabrelite.c but I didn't find what
> chip-select was supposed to be used.

include/configs/mx6qsabrelite.h:

#define CONFIG_SF_DEFAULT_CS   (0|(IMX_GPIO_NR(3, 19)<<8))

It should be 0x7300

Best regards,
Stefano Babic
Eric Nelson - April 3, 2013, 2:06 p.m.
On 04/03/2013 02:25 AM, Stefano Babic wrote:
> On 25/03/2013 17:13, Javier Martinez Canillas wrote:
>> since commit "c1173bd0: sf command: allow default bus and chip selects"
>> the chip-select and bus arguments for the sf probe command are optional.
>>
>
> Hi Javier,
>
>> Even when passing the chip-select to sf probe says to be optional, it
>> makes "sf erase" and "sf write" to fail on a mx6qsabrelite board. e.g:
>>
>> MX6QSABRELITE U-Boot > sf probe 1
>> MX6QSABRELITE U-Boot > sf erase 0 0x40000
>> SPI flash erase failed
>> MX6QSABRELITE U-Boot > sf write 0x10800000 0 0x40000
>> SPI flash write failed
>
> Well, the real reason is that the passed chipselect is wrong. Checking
> in the configuration file, I see that the value to be passed should be
> 0x7300. I suppose (I am not testing) that "sf probe 0x7300" make sf
> erase and sw write working.
>
It's 0x5300 as listed in commit c1173bd0.

And the SABRE Lite README definitely needs updates.

Regards,


Eric
Eric Nelson - April 3, 2013, 2:11 p.m.
On 04/03/2013 03:13 AM, Stefano Babic wrote:
> On 03/04/2013 11:50, Javier Martinez Canillas wrote:
>> Just for curiosity, in which configuration file did you see that? When
>> I had the issue I looked at
>> include/configs/{mx6qsabrelite,mx6_common}.h and
>> board/freescale/mx6qsabrelite/mx6qsabrelite.c but I didn't find what
>> chip-select was supposed to be used.
>
> include/configs/mx6qsabrelite.h:
>
> #define CONFIG_SF_DEFAULT_CS   (0|(IMX_GPIO_NR(3, 19)<<8))
>
> It should be 0x7300
>
0x5300?

	(((3-1)*32)+19)<<8
Stefano Babic - April 3, 2013, 2:49 p.m.
On 03/04/2013 16:11, Eric Nelson wrote:
> On 04/03/2013 03:13 AM, Stefano Babic wrote:
>> On 03/04/2013 11:50, Javier Martinez Canillas wrote:
>>> Just for curiosity, in which configuration file did you see that? When
>>> I had the issue I looked at
>>> include/configs/{mx6qsabrelite,mx6_common}.h and
>>> board/freescale/mx6qsabrelite/mx6qsabrelite.c but I didn't find what
>>> chip-select was supposed to be used.
>>
>> include/configs/mx6qsabrelite.h:
>>
>> #define CONFIG_SF_DEFAULT_CS   (0|(IMX_GPIO_NR(3, 19)<<8))
>>
>> It should be 0x7300
>>
> 0x5300?
> 
>     (((3-1)*32)+19)<<8
> 

Right, forget to subtract 1.

Regards,
Stefano
Eric Nelson - April 3, 2013, 2:54 p.m.
On 04/03/2013 07:49 AM, Stefano Babic wrote:
> On 03/04/2013 16:11, Eric Nelson wrote:
>> On 04/03/2013 03:13 AM, Stefano Babic wrote:
>>> On 03/04/2013 11:50, Javier Martinez Canillas wrote:
>>>> Just for curiosity, in which configuration file did you see that? When
>>>> I had the issue I looked at
>>>> include/configs/{mx6qsabrelite,mx6_common}.h and
>>>> board/freescale/mx6qsabrelite/mx6qsabrelite.c but I didn't find what
>>>> chip-select was supposed to be used.
>>>
>>> include/configs/mx6qsabrelite.h:
>>>
>>> #define CONFIG_SF_DEFAULT_CS   (0|(IMX_GPIO_NR(3, 19)<<8))
>>>
>>> It should be 0x7300
>>>
>> 0x5300?
>>
>>      (((3-1)*32)+19)<<8
>>
>
> Right, forget to subtract 1.
>

I only remember this because I typed it in **many** times
before adding the default ;)

Patch

diff --git a/board/freescale/mx6qsabrelite/README b/board/freescale/mx6qsabrelite/README
index 6f2f534..324b116 100644
--- a/board/freescale/mx6qsabrelite/README
+++ b/board/freescale/mx6qsabrelite/README
@@ -40,7 +40,7 @@  enter the following commands:
 
  MX6Q SABRELITE U-Boot > mmc dev 0
  MX6Q SABRELITE U-Boot > mmc read 0x10800000 0 200
- MX6Q SABRELITE U-Boot > sf probe 1
+ MX6Q SABRELITE U-Boot > sf probe
  MX6Q SABRELITE U-Boot > sf erase 0 0x40000
  MX6Q SABRELITE U-Boot > sf write 0x10800000 0 0x40000