MSDOS FS / MMC / rtems_io_register_name too many

Pavel Pisa ppisa4lists at pikron.com
Fri Dec 30 17:44:36 UTC 2005


On Thursday 29 December 2005 22:12, Thomas Doerfler wrote:
> Hi,
>
> just a note to everybody interested:
>
> We have increased the performance of the MSDOS filesystem by adding
> write-combining and read-ahead to the bdbuf.c buffer library. We have
> filed this change as a patch agains RTEMS-4.6.99.2 under PR852 in the
> RTEMS GNATSWEB:

Hello Thomas and others,

I have interrest to test that enhancement after I get my
port of MMC/SD driver completed and fully stabilized.
I have still some problems that SDHC timeouts on some
commands after longer extensive use in DMA driven mode.
CPU driven transfers works fine, but I do not like CPU
high utilization.

I have one question related to RTEMS block devices.

I observe, that rtems_io_register_name() reports "too many"
in RTEMS-051009 checkout during my driver registration.
Base filesystem holding /dev entry is full version of IMFS.

The message is not fatal, the device node is populated in fact correctly
and subsequent operations works well. But it is not elegant to ignore
this status report.

Have you some idea, what could be cause of the problem?

Thanks a successful year 2006 wishes

                Pavel Pisa

Code in question
================================================================================

#define MMCSD_DEVICE_NAME "/dev/mmcsd"

rtems_status_code
mmcsd_driver_init(void)
{
        int ret;
        rtems_status_code  status;

        ret=mmcsd_init();
        if (ret != MMCSD_OK){
                ul_logerr("mmcsd_driver_init: low level initialization (mmcsd_init) failed\n");
                return RTEMS_NOT_DEFINED;
        }

        status = rtems_io_register_driver(0,&mmcsd_driver_table,&mmcsd_major);
        if (status != RTEMS_SUCCESSFUL){
                ul_logerr("mmcsd_driver_init: rtems_io_register_driver %s\n",rtems_status_text(status));
                return status;
        }

        status = rtems_io_register_name( MMCSD_DEVICE_NAME, mmcsd_major, 0);
        if (status != RTEMS_SUCCESSFUL){
                ul_logerr("mmcsd_driver_init: rtems_io_register_name %s\n",rtems_status_text(status));
                return status;
        }

        return RTEMS_SUCCESSFUL;
}



More information about the users mailing list