I've added a new definition for the Macronix MX23L3254 chip (4M).  Since it is a mask ROM, it doesn't support write or erase.  Let me know if the definition is incorrect in describing this.

Here's the datasheet for reference: http://www.macronix.com/Lists/DataSheet/Attachments/1233/MX23L3254,%203.0-3.3V,%2032Mb,%20v1.5.pdf

Probe and read works when tested on a real chip:

$ ./flashrom -p buspirate_spi:dev=/dev/ttyUSB0 -r trying_again2.bin
flashrom v0.9.7-r1767 on Linux 3.8.0-37-generic (x86_64)
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OK.
Found Macronix flash chip "MX23L3254" (4096 kB, SPI) on buspirate_spi.
===
This flash part has status UNTESTED for operations: ERASE WRITE
The test status of this chip may have been updated in the latest development
version of flashrom. If you are running the latest development version,
please email a report to flashrom@flashrom.org if any of the above operations
work correctly for you with this flash part. Please include the flashrom
output with the additional -V option for all operations you tested (-V, -Vr,
-VE, -Vw), and mention which mainboard or programmer you tested.
Please mention your board in the subject line. Thanks for your help!
Reading flash... done.

Signed-off-by: Michael Coppola <michael.n.coppola@gmail.com>