Rtems_fsmount dosfs hanging

Andre Marques andre.lousa.marques at gmail.com
Mon May 12 16:23:32 UTC 2014


Hello,

I have used the pc386 BSP to mount the card (before your suggestions) 
using the fileio sample and it could read the card contents perfectly.

Then I filled the card with zeros using dd on Linux, modified the fileio 
sample to format the card with msdos_format(dev, NULL) and then mounted 
it on the pc 386 BSP fileio sample and I could write and read the card.

On Linux I set the card with the necessary files for Raspberry, and when 
my driver tries to mount the card on the Raspberry Pi it reads the first 
2 blocks (now 0 and 1, because the card has no partition table) and 
hangs, just as before.

I guess my driver is having some reading problems.

On 05/05/14 19:30, Andrey Mozzhuhin wrote:
> You can try to use SD Card in opposite direction:
> 0) fill SD Card with zeroes;
> 1) format partition under RTEMS with msdos_format() function;
> 2) check that PC can read/write this SD Card;
> 3) if PC fails to mount this partition - dump SD Card and check that 
> all data is on right sectors.
>
>
>
> 2014-05-05 22:28 GMT+04:00 Andrey Mozzhuhin <nopscmn at gmail.com 
> <mailto:nopscmn at gmail.com>>:
>
>     Hi, Andre
>
>     You can try to use SD Card in opposite direction:
>     0) fill SD Card with zeroes;
>     1) format partition under RTEMS with msdos_format() function;
>     2) check that PC can read/write this SD Card;
>     3) if PC fails to mount this partition - dump SD Card and check
>     that all data is on right sectors.
>
>
>
>     2014-05-05 13:52 GMT+04:00 Andre Marques
>     <andre.lousa.marques at gmail.com
>     <mailto:andre.lousa.marques at gmail.com>>:
>
>         Hello,
>
>         Following the problem in
>
>         http://www.rtems.org/pipermail/rtems-devel/2014-April/006585.html
>
>         I am now trying to mount the SD card partitions on RTEMS.
>
>         Summarizing the process:
>
>         1. rtems_io_register_driver (by calling my driver with
>         CONFIGURE_APPLICATION_EXTRA_DRIVERS on hello sample)
>
>         2. rtems_filesystem_make_dev_t (to get the device file)
>
>         3.  rtems_disk_io_initialize
>
>         4. rtems_disk_create_phys (to create the disk, at /dev/sdc0)
>
>         5. rtems_bdpart_register_from_disk (to read and register the
>         partitions)
>
>         6. rtems_fsmount (to mount the partitions)
>
>         For rtems_fsmount I am providing the following fs_table:
>
>         rtems_fstab_entry fs_table [] = {
>            {
>              .source = "/dev/sdc0",
>              .target = "/mnt/p1",
>              .type = "dosfs",
>              .options = RTEMS_FILESYSTEM_READ_WRITE,
>              .report_reasons =  RTEMS_FSTAB_ANY,
>              .abort_reasons = RTEMS_FSTAB_OK
>            },{
>              .source = "/dev/sdc01",
>              .target = "/mnt/p2",
>              .type = "dosfs",
>              .options = RTEMS_FILESYSTEM_READ_WRITE,
>              .report_reasons = RTEMS_FSTAB_ANY,
>              .abort_reasons = RTEMS_FSTAB_NONE
>            }
>          };
>
>         The SD card has only one partition starting at block number 8192.
>
>         After I call rtems_fsmount it calls my driver to read block
>         8192 and 8193 and then hangs.
>
>         I have tested the driver and It seems to have no problem
>         reading single or multiple blocks.
>
>         Any tips?
>
>         Also I am using the following confdefs configuration (some
>         values are exaggerated):
>
>         #define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
>         #define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
>         #define CONFIGURE_APPLICATION_NEEDS_LIBBLOCK
>
>         #define CONFIGURE_FILESYSTEM_DOSFS
>         #define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
>
>         #define CONFIGURE_APPLICATION_EXTRA_DRIVERS
>         SD_CARD_DRIVER_TABLE_ENTRY
>
>         #define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 20
>
>         #define CONFIGURE_MAXIMUM_TASKS 2
>         #define CONFIGURE_MAXIMUM_DRIVERS 10
>
>         #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
>
>          #define CONFIGURE_INIT_TASK_STACK_SIZE (32 * 1024)
>
>         #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
>
>         #define CONFIGURE_INIT
>
>         --André Marques
>
>         _______________________________________________
>         rtems-devel mailing list
>         rtems-devel at rtems.org <mailto:rtems-devel at rtems.org>
>         http://www.rtems.org/mailman/listinfo/rtems-devel
>
>
>
>
>
> _______________________________________________
> rtems-devel mailing list
> rtems-devel at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20140512/601c0d31/attachment-0001.html>


More information about the devel mailing list