i2c message max buffer size


I am using the nrf9160DK and I am implementing on zephyr.

For my application I need to write to an external flash memory through I2C. I need to write one page at a time + CRC bytes. In total I need to write 8210 bytes.

However using a logic analyzer I noticed that when I tried to send 8210 bytes, the 9160 actually wrote 18 bytes. When I tried to write 8192 bytes the 9160 wrote 0 bytes and when I tried to write 8191 bytes the 9160 wrote 8191 bytes. So it looks like uart message length "overflows" at 8k bytes.

My question is:

Is there a built in max length for i2c transactions? is that 8k bytes? Is there a way around that?