⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dev.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 2 页
字号:
  { 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 + -