Hi All, We are developing a block device driver (2.4.x kernel) for Flash Media devices over one of our storage media controllers. This is a non-IDE driver like one of the drivers in driver/block/*.c. We are facing a peculiar problem. Scenario: 1> [FAIL CONDITION] A brand new SM or SD cards come pre-formatted with a FAT12/FAT16 file system, which includes a Master Boot Sector and one Partition Boot Sector for one single partition. This disk works pretty well with Windows. Linux (our driver) however does not recognize this partitioned card with just one active partition. Scenario: 2> [SUCCCESS CONDITION] If we format the card under Linux just once with FAT, then it will continue to work for Windows and Linux. We have been able to figure out why the problem actually occurs. The reason is that Linux (our driver) does not recognize several partitions in a single FAT12/FAT16 Flash Media card. According to the FAT12/FAT16 file system, the card should have a valid Master Boot Sector in the first logical sector. This master boot sector indicates how many partitions are in the disk and the start and end addresses along with their respective size. FAT12/FAT16 disks must also have a Partition Boot Sector. The partition boot sector contains the parameters of each partition. Windows does not have a problem reading cards without a Master Boot Sector as long as they have a valid Partition Boot Sector. That is why once you format a card with 'mkfs -t msdos /dev/ourdev' or similar command under Linux, the card will continue to work under Windows and Linux as well. We are *NOT* doing a "register_disk()" and "struct gendisk" (NO partition support) structure in our driver right now. This is a Flash Media device which should not be partitioned. Is a register_disk() call still mandatory? Are we missing out something in the driver? Thanks, -Jinu -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/