yes and I could see if that gets stuck in the part where the memory has to answer for the full write is always the status register answers with a 11111111 then wanted to know why the 64kb works and with 2Mb not might be going

See page 13 of the datasheet you supplied. Under "Byte Write" you see that you have to transmit 24 address bits which are three bytes. Two bytes will not be enough, so transmit an additional one (can be zeroes).

make some changes to my firmware to address those 2 bytes with the memory of 64kb and it worked very well now I can write more in this memory addresses than 255 and now for the 2Mb i write one byte of address in zero but still does not work.

You think what could be the problem?

I leave the log with my tests and firmware, which should make is that when I send 1 should retrieve the string to send after the (2_chain)