Hi Andy,

I have double-checked the datasheets and indeed the Quad Page Program opcode 
for Macronix is 0x38 and not 0x32 like the U-Boot code has defined in 
CMD_QUAD_PAGE_PROGRAM.

My version of the code is similar to the current u-boot mainline, and it also 
has the WR_QPP flag. But its usage depends on another flag that never gets set, 
so basically I have never used Quad mode for writing in my testing.

In the latest U-Boot code from u-boot-spi the situation is similar, except the 
above parameter is retrieved from the U-Boot device tree parameter  
"spi-tx-bus-width". But none of the device trees set that parameter to '4' so 
again the Quad mode is never used for writing anyway.

Note that Quad mode is very useful for reading, where it effectively quadruples 
the speed. But in case of writing, it only speeds up data transmission to the 
flash device, which then starts writing, and the host keeps polling it for 
completion. Because of this, there is not a lot to gain from using quad mode 
for writing.

Ideally we would need a way to convey that the Macronix devices use a different 
instruction opcode for quad writing. This could be in spi_flash_info structure 
or somewhere in the device tree.

Regards,
Radu

-----Original Message-----
From: Champ, Andy [mailto:[email protected]] 
Sent: Monday, November 28, 2016 9:59 AM
To: Bacrau, Dumitru <[email protected]>; Jagan Teki <[email protected]>
Cc: [email protected]; [email protected]; [email protected]; 
[email protected]
Subject: RE: [U-Boot] Macronix NOR_SPI and Quad I/O

Hi Radu,
As far as I am concerned there is no urgency at all.
I just happened to notice as I was looking through the code that the command 
does not agree with the Macronix device spec, and I thought I should tell 
someone! Our device does not support Quad I/O.

Thanks
Andy Champ

-----Original Message-----
From: Bacrau, Dumitru [mailto:[email protected]] 
Sent: 28 November 2016 15:50
To: Champ, Andy <[email protected]>; Jagan Teki <[email protected]>
Cc: [email protected]; [email protected]; [email protected]; 
[email protected]
Subject: RE: [U-Boot] Macronix NOR_SPI and Quad I/O

Hi guys,

I do have Macronix parts and Quad capability. Unfortunately I am not using the 
latest U-Boot code (but looks similar) and also I do not have much time today 
and tomorrow.

Would it be OK if you waited until Wednesday so I can investigate and test 
this? If it is urgent go ahead and do what you need to, then we can add Quad 
later.

Thanks,
Radu

-----Original Message-----
From: Champ, Andy [mailto:[email protected]] 
Sent: Monday, November 28, 2016 4:00 AM
To: Jagan Teki <[email protected]>
Cc: [email protected]; [email protected]; [email protected]; 
[email protected]; Bacrau, Dumitru <[email protected]>
Subject: Re: [U-Boot] Macronix NOR_SPI and Quad I/O

I don't have anything that does Quad IO, so I can't test it either.

I think the best thing to do is to disable it for the Macronix parts, and put a 
comment in the table explaining why. With any luck one day somebody somewhere 
will have a device with a Macronix chip and quad I/O, and they can do it 
properly.

If this sounds good I'll put a patch together, run it past our open source 
lawyers (I'm not allowed to just push!) and send it through.

Alternatively I could put together a patch that sets a different flag bit for 
Macronix Quad I/O and push that. The only thing is of course that I have no way 
to test it, and as we all know untested code never works.

Which way should I go?

Regards
Andy Champ
________________________________________
From: Jagan Teki <[email protected]>
Sent: 26 November 2016 03:13
To: Champ, Andy
Cc: [email protected]; [email protected]; [email protected]; 
[email protected]; [email protected]
Subject: Re: [U-Boot] Macronix NOR_SPI and Quad I/O

On Fri, Nov 25, 2016 at 10:07 PM, Champ, Andy <[email protected]> wrote:
> Hi all,
>
>
> in the table in drivers/mtd/spi/spi_flash_ids.c there is a flag WR_QPP set 
> against Macronix devices (including the ones Dumitru is just adding).
>
>
> This is used when programming the devices on a 4-bit bus to select the 
> command to use for programming - either CMD_QUAD_PAGE_PROGRAM (0x32) or 
> CMD_PAGE_PROGRAM (0x2).
>
>
> The Macronix devices that I have a spec for do not mention command 0x32. Each 
> of the devices that I have a spec for ( MX25L25635F MX25U51245G MX25V8035F 
> and MX25V1635F ) use command 0x38 instead.

We need to fix this, till now no Macronix has been tested with QUAD I think, 
please send the suitable fix will review.

thanks!
--
Jagan Teki
Free Software Engineer | www.openedev.com U-Boot, Linux | Upstream Maintainer 
Hyderabad, India.


_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to