📄 dev.c
字号:
{ 0x7c0000, 16 },
{ 0x7d0000, 16 },
{ 0x7e0000, 16 },
{ 0x7f0000, 16 }
};
// 16x64kB
static const struct block_info_s flash_16x64[] =
{
{ 0x00000, 16 },
{ 0x10000, 16 },
{ 0x20000, 16 },
{ 0x30000, 16 },
{ 0x40000, 16 },
{ 0x50000, 16 },
{ 0x60000, 16 },
{ 0x70000, 16 },
{ 0x80000, 16 },
{ 0x90000, 16 },
{ 0xA0000, 16 },
{ 0xB0000, 16 },
{ 0xC0000, 16 },
{ 0xD0000, 16 },
{ 0xE0000, 16 },
{ 0xF0000, 16 }
};
// 8x8kB
static const struct block_info_s flash_8x8[] =
{
{ 0x0000, 13 },
{ 0x2000, 13 },
{ 0x4000, 13 },
{ 0x6000, 13 },
{ 0x8000, 13 },
{ 0xa000, 13 },
{ 0xc000, 13 },
{ 0xe000, 13 }
};
// 4x4kB
static const struct block_info_s flash_4x4[] =
{
{ 0x0000, 12 },
{ 0x1000, 12 },
{ 0x2000, 12 },
{ 0x3000, 12 }
};
/******************************************************************************
* Flash Device Info Array
******************************************************************************/
// Each entry in the array below represents one flash device definition as
// FFS needs it. The columns have the following meaning:
//
// 1. Device memory map.
// 2. Absolute address of the first sector to be used by/for FFS.
// 3. Manufacturer code. Values are from FFS_MANUFACTURER enumeration
// in drv.h
// 4. Device code. Available from device datasheet.
// 5. FFS device driver to use. Values are from FFS_DRIVER enumeration
// in drv.h
// 6. Number of sectors to use, starting from the address given in
// column 2.
const struct flash_info_s flash_info[] =
{
#if (BOARD == 34)
// Test/Simulation flash 4x4kB
{ &flash_4x4[0], (char *) FFS_BASE_ADDRESS, MANUFACT_TEST, 0xffff,
FFS_DRIVER_TEST, 4},
#else
{ &flash_16x64[0], (char *) 0x700000, MANUFACT_FUJITSU, 0x227E,
FFS_DRIVER_AMD_SB, 15 },
/********** AMD Devices ***********************************************/
// AMD Am29DL640GT. Ignoring the 8kB sectors
{ &flash_16x64[0], (char *) 0x700000, MANUFACT_AMD, 0x227E,
FFS_DRIVER_AMD, 15 },
// AMD Am29DL321DT does not exist as of 2000-0217
// AMD Am29DL322DT. Ignoring the 8kB sectors
{ &flash_16x64[0], (char *) 0x380000, MANUFACT_AMD, 0x2255,
FFS_DRIVER_AMD_SB, 7 },
// AMD Am29DL323DT. Ignoring the 8kB sectors
{ &flash_16x64[0], (char *) 0x300000, MANUFACT_AMD, 0x2250,
FFS_DRIVER_AMD, 15 },
// AMD Am29DL161DT. Using 8x8kB sectors.
{ &flash_8x8[0], (char *) 0x1F0000, MANUFACT_AMD, 0x2236,
FFS_DRIVER_AMD, 8 },
// AMD Am29DL162DT. Ignoring the 8kB sectors
{ &flash_16x64[0], (char *) 0x1C0000, MANUFACT_AMD, 0x222D,
FFS_DRIVER_AMD, 3 },
// AMD Am29DL163DT. Ignoring the 8kB sectors
{ &flash_16x64[0], (char *) 0x180000, MANUFACT_AMD, 0x2228,
FFS_DRIVER_AMD, 7 },
// AMD Am29DL164DT. Ignoring the 8kB sectors
{ &flash_16x64[0], (char *) 0x100000, MANUFACT_AMD, 0x2233,
FFS_DRIVER_AMD, 15 },
/********** Fujitsu Devices *******************************************/
// Fujitsu MBM29DL321TD. Using 8x8kB sectors.
{ &flash_8x8[0], (char *) 0x3f0000, MANUFACT_FUJITSU, 0x2259,
FFS_DRIVER_AMD, 8 },
// Fujitsu MBM29DL322TD. Ignoring all the 8kB sectors
{ &flash_16x64[0], (char *) 0x380000, MANUFACT_FUJITSU, 0x2255,
FFS_DRIVER_AMD, 7 },
// Fujitsu MBM29DL323TD (BSample). Dual bank device definition.
{ &flash_16x64[0], (char *) 0x300000, MANUFACT_FUJITSU, 0x2250,
FFS_DRIVER_AMD, 15 },
// Fujitsu MBM29DL161DT (similar to Am29DL161T).
{ &flash_8x8[0], (char *) 0x1F0000, MANUFACT_FUJITSU, 0x2236,
FFS_DRIVER_AMD, 8 },
// Fujitsu MBM29DL162DT (similar to Am29DL162T).
{ &flash_16x64[0], (char *) 0x1C0000, MANUFACT_FUJITSU, 0x222D,
FFS_DRIVER_AMD, 3 },
// Fujitsu MBM29DL163DT (similar to Am29DL163T).
{ &flash_16x64[0], (char *) 0x180000, MANUFACT_FUJITSU, 0x2228,
FFS_DRIVER_AMD, 7 },
// Fujitsu MBM29DL164DT (similar to Am29DL164T).
{ &flash_16x64[0], (char *) 0x100000, MANUFACT_FUJITSU, 0x2233,
FFS_DRIVER_AMD, 15 },
// Fujitsu 84VF5F5F4J2, Ignoring the 8kB sectors
/*
{ &flash_16x64[0], (char *) 0x700000, MANUFACT_FUJITSU, 0x227E,
FFS_DRIVER_AMD, 15 },
{ &flash_16x64[0], (char *) 0x700000, 0x04e7, 0xea00,
FFS_DRIVER_AMD, 15 },
*/
// Fujitsu MB84VF5F5F4J2 stacked device. Using the 2nd sub device, ignoring the 8kB sectors
// The 8x8 are located both in top and bottom, thus only 126
// blocks are used.
{ &flash_128x64[0], (char *) 0x1810000, MANUFACT_FUJITSU, 0xB496,
FFS_DRIVER_AMD_SB, 126 },
/********** Intel Devices *********************************************/
// Intel 28F160C3-T 16Mb. Using top-most 8x8kB (parameter) sectors.
{ &flash_8x8[0], (char *) 0x1F0000, MANUFACT_INTEL, 0x88C2,
FFS_DRIVER_INTEL_SB, 8 },
// Intel 28F160C3-B, 16Mb. Using top-most 6x64kB sectors
{ &flash_16x64[0], (char *) 0x1A0000, MANUFACT_INTEL, 0x88C3,
FFS_DRIVER_INTEL_SB, 6 },
// Intel 28F320C3-T, 32Mb. Using top-most 8x8kB (parameter) sectors.
{ &flash_8x8[0], (char *) 0x3F0000, MANUFACT_INTEL, 0x88C4,
FFS_DRIVER_INTEL_SB, 8 },
// Intel 28F320C3-B, 32Mb. Using top-most 8x64kB sectors
{ &flash_16x64[0], (char *) 0x380000, MANUFACT_INTEL, 0x88C5,
FFS_DRIVER_INTEL_SB, 8 },
// Intel 28F640C3-T, 64Mb. Using top-most 8x8kB (parameter) sectors.
{ &flash_8x8[0], (char *) 0x7F0000, MANUFACT_INTEL, 0x88CC,
FFS_DRIVER_INTEL_SB, 8 },
// Intel 28F640C3-B, 64Mb. Using top-most 16x64kB sectors
{ &flash_16x64[0], (char *) 0x700000, MANUFACT_INTEL, 0x88CD,
FFS_DRIVER_INTEL_SB, 15 },
// Intel 28F640W30-T, 64Mb. Using top-most 8x8kB sectors
{ &flash_8x8[0], (char *) 0x7F0000, MANUFACT_INTEL, 0x8854,
FFS_DRIVER_INTEL_SB, 8 },
// Intel 28F640W30-B, 64Mb. (DSample). Using top-most 47x64kB sectors
// { &flash_128x64[0], (char *) 0x500000, MANUFACT_INTEL, 0x8855,
// FFS_DRIVER_INTEL_SB, 47 },
// Intel 28F640W30-B, 64Mb. (DSample). Using top-most 15x64kB sectors
{ &flash_128x64[0], (char *) 0x700000, MANUFACT_INTEL, 0x8855,
FFS_DRIVER_INTEL, 15 },
// Intel 28F640W30-B, 64Mb. (DSample). Using top-most 15x64kB sectors
{ &flash_16x64[0], (char *) 0x700000, MANUFACT_INTEL, 0x88FF,
FFS_DRIVER_INTEL_SB, 15 },
/********** MXIC Devices *******************************************/
// Intel 28F640W30-T, 64Mb. Using top-most 8x8kB sectors
{ &flash_8x8[0], (char *) 0x3F0000, MANUFACT_MXIC, 0x0024,
FFS_DRIVER_INTEL_SB, 8 },
/********** Samsung Devices *******************************************/
// Samsung K5A3240YT Top boot, 24Mb + 8Mb
{ &flash_16x64[0], (char *) 0x380000, MANUFACT_SAMSUNG, 0x22B7,
FFS_DRIVER_AMD_SB, 7 },
// Samsung K5A3340YT Top boot, 16Mb + 16Mb
{ &flash_16x64[0], (char *) 0x380000, MANUFACT_SAMSUNG, 0x22BA,
FFS_DRIVER_AMD_SB, 7 },
// Samsung K5A3240YB Bottom boot, 8Mb + 24Mb
{ &flash_16x64[0], (char *) 0x380000, MANUFACT_SAMSUNG, 0x223F,
FFS_DRIVER_AMD_SB, 8 },
// Samsung K5A3340YB Bottom boot, 14Mb + 18Mb (!?)
{ &flash_16x64[0], (char *) 0x380000, MANUFACT_SAMSUNG, 0x223D,
FFS_DRIVER_AMD_SB, 8 },
/********** SST Devices ***********************************************/
// SST SST36VF1601
{ &flash_16x64[0], (char *) 0x180000, MANUFACT_SST, 0x2761,
FFS_DRIVER_SST, 8 },
/********** Toshiba Devices *******************************************/
// Toshiba TH50VSF2581AASB Bottom boot combo device
{ &flash_16x64[0], (char *) 0x380000, MANUFACT_TOSHIBA, 0x009C,
FFS_DRIVER_AMD, 8 },
/********** Special/Test Devices **************************************/
// Intel 28F160C3-B, 16Mb. Single bank driver
// Note that device ID is bogus!
{ &flash_16x64[0], (char *) 0x1A0000, MANUFACT_INTEL, 0x01C3,
FFS_DRIVER_INTEL_SB, 6 },
// Fujitsu MBM29DL323TD (BSample). Single bank device definition.
// Note that device ID is bogus!
{ &flash_16x64[0], (char *) 0x300000, MANUFACT_FUJITSU, 0x0150,
FFS_DRIVER_AMD_SB, 15 },
// Fujitsu MBM29DL323TD (BSample). Pseudo single bank device definition.
// Note that device ID is bogus!
{ &flash_16x64[0], (char *) 0x300000, MANUFACT_FUJITSU, 0x0250,
FFS_DRIVER_AMD_PSEUDO_SB, 15 },
// Fujitsu MBM29DL323TD (BSample). "True" single bank device definition
// within first flash device bank!
// Note that device ID is bogus!
{ &flash_16x64[0], (char *) 0x280000, MANUFACT_FUJITSU, 0x0350,
FFS_DRIVER_AMD_SB, 8 },
// AMD Am29DL323DT on EVA4 (base address = 0x200000)
{ &flash_16x64[0], (char *) 0x500000, MANUFACT_AMD, 0xF250,
FFS_DRIVER_AMD, 15 },
// PC Test/Simulation flash 128x64kb
{ &flash_128x64[0], (char *) 0x000000, MANUFACT_TEST, 0x0F12,
FFS_DRIVER_TEST, 127 },
// PC Test/Simulation flash 16x64kB
{ &flash_16x64[0], (char *) 0x000000, MANUFACT_TEST, 0x0F10,
FFS_DRIVER_TEST, 15 },
// PC Test/Simulation flash 8x8kB
{ &flash_8x8[0], (char *) 0x000000, MANUFACT_TEST, 0x080D,
FFS_DRIVER_TEST, 8 },
// PC Test/Simulation flash 4x4kB
{ &flash_4x4[0], (char *) 0x000000, MANUFACT_TEST, 0x0404,
FFS_DRIVER_TEST, 4 },
#endif // BOARD = 34
// terminator
{ 0, 0, 0, 0 }
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -