Related Files
$(EFI_SOURCE)\$(PROJECT_FAMILY)\$(PROJECT_NAME)\Common.dsc
$(EFI_SOURCE)\Library\RuntimeDxe\FdSupportLib\FdSupportLib.inf
$(EFI_SOURCE)\Library\RuntimeDxe\FdSupportLib\FdSupportLib.c
$(EFI_SOURCE)\$(PROJECT_FAMILY)\$(PROJECT_NAME)\OemServices\ROM\SpiDevice\SpiDevice.c
$(EFI_SOURCE)\$(PROJECT_FAMILY)\$(PROJECT_NAME)\OemServices\ROM\SpiDevice\SpiDevice.h
在 $(EFI_SOURCE)\$(PROJECT_FAMILY)\$(PROJECT_NAME)\OemServices\ROM\SpiDevice\SpiDevice.c下進行以下操作:
1.在FLASH_SPI_DEVICE *SPIFdSupportTable[] =
{
&Atmel26DF321,
&Atmel25DF641,
&Atmel26DF041,
&Atmel26DF081A,
&Atmel26DF161,
&Atmel25DF321A,
......
};下添加Flash
2.FLASH_SPI_DEVICE Atmel26DF321 =
{
{
Atmel_26DF321, // ID
FLASH_SIZE_4096K,
"Atmel",
"26DF321",
{
0x0010, //size = 4k
0x0400, //mutilpe = 0x400 (4096k/4k)
0xFFFF
},
},
InitSPI,
RecognizeSPIDevice,
EraseSPI,
ProgramSPI,
ReadSPI,
ConvertPointerSPI,
&Atmel26DF321_ID
};Flash Device 設置
3.SPI_CONFIG_BLOCK Atmel26DF321_ID =
{
{
0x9f, // Read ID command
0x20, // Erase command
0x02, // Write command
0x01, // Write status command (unsupported in Atmel AT26DF041)
0x03, // Read command
0x05 // Read status command (unsupported in Atmel AT26DF041)
},
............
0x400000, // Byte size of flash part
0x1000, // Byte size of per erase
0 // Byte size of block protect (Used when block protect == 1)
};Flash配置模塊,設置Flash的大小
在$(EFI_SOURCE)\$(PROJECT_FAMILY)\$(PROJECT_NAME)\OemServices\ROM\SpiDevice\SpiDevice.h下定義
Flash DEVICE ID