hello

i'm trying to reprogram spi chip with bios. My sdk-board is consist from motherboard and especial board. Motherboard has own flash bios chip like a mx25l6405 and chip SPI interface QM67. Especial board has a spi flash chip sst25vf016. Used jumpers i'm easy select flash bios chip for programming, and i select chip sst25vf016. Chip set QM67 is locked to change value registers opcodes and preop codes. This is codes value match with mx25l6405 codes. And i can't reprogram selected chip, because opcodes select chip didn't match with opcodes stored in QM67. In function spi_write_status_register Flashrom source code algorithm trying change mode spi status register to write by sending unlock command JEDEC_WRSR and JEDEC_EWSR = 0x50. But preop codes register have a value JEDEC_WREN=0x06, and don't have a value JEDEC_EWSR=0x50. And STATUS register can't be unlocked, if i change value JEDEC_EWSR on 0x06 (chip sst25vf016 support this code) the STATUS register is unlock successful. And now we have a read and erase function but function write doesn't work, because algorithm use default_spi_write_aai function. That function use opcode JEDEC_AAI_WORD_PROGRAMM but opcodes and preopcodes registers doesn't have this code and we can't write new bios image in flash. But if we will be use function spi_chip_write_1 we successful write our image into flash chip sst25vf016. 

What you think about, if we exclude some parameters from structure FLASHCTX (like a feature_bits) and add array of OPCODES (with real opcodes for real chip) and add function to detect access opcodes for used chips?


sorry for my English