以下のデータをESP8266にesptool.py v2.4.1で書き込むとエラーになります。
$ printf "%0.se5 " {1..256256} | xxd -r -p > test.dat
$ esptool.py -p /dev/cu.usbserial-DA00WSMM -b 921600 write_flash 0x300000 test.dat
esptool.py v2.4.1
Serial port /dev/cu.usbserial-DA00WSMM
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
MAC: 5c:cf:7f:00:00:00
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 256256 bytes to 272...
Wrote 256256 bytes (272 compressed) at 0x00300000 in 0.0 seconds (effective 127832.5 kbit/s)...
A fatal error occurred: Timed out waiting for packet header
ボーレートを115200にしてもダメです。
データーサイズが246256でもエラーで236256だとエラーになりません。普通にデータの入った256256バイトのデータはちゃんと書けます。単一のデータと大きさが要因で不具合があるように見受けられます。
read_flashは921600ボーだとダメで115200ボーだと大丈夫だったりします。
El CapitanのFTDIドライバの問題の可能性もあるかもしれませんが、なんだかとっても不安定です。