Kernel is not flashed on your mmcblk0 flash, there's a differnt flash filesystem on the device that consists of the parts of device which hold for example the factory calibration data. The location for kernel is the MTD2 partition of the system NAND. You can get some information with mtdinfo command, for example on my device it says: ~ # /usr/sbin/mtdinfo -m 2 mtd2 Name: kernel Type: nand Eraseblock size: 262144 bytes, 256.0 KiB Amount of eraseblocks: 64 (16777216 bytes, 16.0 MiB) Minimum input/output unit size: 4096 bytes Sub-page size: 1024 bytes OOB size: 128 bytes Character device major/minor: 90:4 Bad blocks are allowed: true Device is writable: true
~ # /usr/sbin/mtdinfo -m 2 mtd2 Name: kernel Type: nand Eraseblock size: 262144 bytes, 256.0 KiB Amount of eraseblocks: 64 (16777216 bytes, 16.0 MiB) Minimum input/output unit size: 4096 bytes Sub-page size: 1024 bytes OOB size: 128 bytes Character device major/minor: 90:4 Bad blocks are allowed: true Device is writable: true
~ # /usr/sbin/mtdinfo -m 2 mtd2 Name: kernel Type: nand Eraseblock size: 131072 bytes, 128.0 KiB Amount of eraseblocks: 64 (8388608 bytes, 8.0 MiB) Minimum input/output unit size: 2048 bytes Sub-page size: 512 bytes OOB size: 64 bytes Character device major/minor: 90:4 Bad blocks are allowed: true Device is writable: true
~ # /usr/sbin/mtd_debug info /dev/mtd2 mtd.type = MTD_NANDFLASH mtd.flags = MTD_CAP_NANDFLASH mtd.size = 8388608 (8M) mtd.erasesize = 131072 (128K) mtd.writesize = 2048 (2K) mtd.oobsize = 64 regions = 0
~ # /usr/sbin/mtd_debug info /dev/mtd5 mtd.type = MTD_NANDFLASH mtd.flags = MTD_CAP_NANDFLASH mtd.size = 16777216 (16M) mtd.erasesize = 131072 (128K) mtd.writesize = 2048 (2K) mtd.oobsize = 64 regions = 0