在uboot的spi_flash.c 中的spi_flash_probe中會下RDID/JEDEC ID RD的Command來Get Manufacture & Device ID
BH25Q128QAS 16MBytes 的SPI NOR Flash Sector = 4K-byte Block = 32/64K-byte,ID跟Winbond 25Q128只差一個Byte, Winbond 25Q128是"ef 40 18"
把BH25Q128QAS的Manufacture ID進去,為了簡單windbon & BoHong都用Macronix的檔案& Function
spi_flash_probe_macronix會到macrinix_spi_flash_table中去比較是否有一樣Device ID的資料,所以再把BH25Q128AS的資料加進去,UBoot這樣就OK了再來是Linux Kernel
Linux Kernel的dirver/mtd/device/m25p80.c 中的jedec_probe(struct spi_device *spi)會到 m25p_ids[]中check Manufacture & Device ID
把{ "bh25q128", INFO(0x684018, 0, 64 * 1024, 256, SECT_4K) },加到m25p_ids[]中並重新build Linux Kernel即可
最好還是check 一下其他SPI NOR Flash Command的相容性
留言列表