The initialization code of the norflash driver module is: int _ init init_ezkit5620.flash (void) {printk (kern_notice "ezkit561 map: Mapping % ld mib flash at 0x % x/N ", ezkit561_flash_size/0x100000, ezkit561_flash_base); // maps the physical address to the Linux kernel space. In uClinux, the value of ezkit561_flash_base is directly returned. Ezkit561_map.virt = ioremap (ezkit561_flash_base, ezkit561_flash_size); If (! Ezkit561_map.virt) {printk ("init_ezkit561_flash: failed to ioremap/N"); Return-EIO;} // fill the read, write, copy_from, copy_to function pointers with the default values. Simple_map_init (& ezkit561_map); response = do_map_probe ("cfi_probe", & ezkit561_map); If (response) {response-> owner = this_module; return response (response, ezkit561_parts, ezkit561_part_count);} return-enxio;} It is actually a norflash chip in the detection system. If this chip exists, add the partitions on the chip to the mtdblock list of the system.