From: linux-os <linux-os@chaos.analogic.com>
To: Shakthi Kannan <shakstux@yahoo.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: mount PCI-express RAM memory as block device
Date: Fri, 7 Jan 2005 13:53:04 -0500 (EST) [thread overview]
Message-ID: <Pine.LNX.4.61.0501071342290.21110@chaos.analogic.com> (raw)
In-Reply-To: <20050107183645.72411.qmail@web54501.mail.yahoo.com>
On Fri, 7 Jan 2005, Shakthi Kannan wrote:
> Greetings!
>
> I would like to know as to how we can mount a
> filesystem for RAM memory on a PCI-express card.
> System for development is x86 with 2.4.22 kernel.
>
> I, initially wrote a ramdisk driver to read/write data
> between buffer and RAM. Here, I have used:
> device->data = vmalloc (device->size);
> where:
> - device is the device driver structure variable
> - data = unsigned char *
> - size = unsigned int
>
> I am able to load the above block driver and mount a
> filesystem using:
> dd if=/dev/zero of=/dev/sbull bs=1k count=64
> mkdir /mnt/mysbull
> mke2fs -vm0 /dev/sbull 64
> mount /dev/sbull /mnt/mysbull
>
> For PCI device driver, I have modifed the above to
> directly ioremap device->data as follows:
> device->data = ioremap_nocache (BASE_ADDRESS,
> BASE_SIZE);
> Have successfully done:
> dd if=/dev/zero of=/dev/sbull bs=1k count=64
> mkdir /mnt/mysbull
> mke2fs -vm0 /dev/sbull 64
>
> But, when I proceed to mount a filesystem, it fails.
> mount /dev/sbull /mnt/mysbull
>
> mount:error while guessing filesystem type
> mount: you must specify the filesystem type
>
> Also, if I give "fsck -v /dev/sbull", it returns with
> improper filesystem super block. Even if I specify "-t
> ext2" for mount, it fails. I even tried a
> loopback device mount, but it fails too:
> mount -o loop /dev/sbull /mnt/mysbull
>
> FAT: bogus logical sector size 0
> VFS: Can't find a valid FAT filesystem on dev FA:00
>
> How can I map the RAM memory on the PCI card, even
> though I don't allocate any memory (during ioremap)
> and display that to the end user as a mounted
> filesystem so that he/she can read/write files to it?
>
> Any help/pointers to links is appreciated.
>
> Thanks,
>
> K Shakthi
>
When you ioremap() in the kernel, you get a cookie that you
can use (in the kernel) to copy data to and from the device.
This doesn't allow a user to copy data directly. Instead,
in your read() and write() routines, you use the appropriate
copy_to/from_user() routines. If the device is not a
block device, then you will have to mount it through the
loop device. If it is a block device, you can mount it
directly after initialization.
>From your explanation, it looks like the BASE_ADDRESS is not
the device's on-board memory, but instead, its control
registers, i.e., a simple implementation bug.
Cheers,
Dick Johnson
Penguin : Linux version 2.6.10 on an i686 machine (5537.79 BogoMips).
Notice : All mail here is now cached for review by Dictator Bush.
98.36% of all statistics are fiction.
next prev parent reply other threads:[~2005-01-07 18:53 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-01-07 18:36 mount PCI-express RAM memory as block device Shakthi Kannan
2005-01-07 18:53 ` linux-os [this message]
2005-01-07 20:17 ` Shakthi Kannan
2005-01-11 16:45 ` Shakthi Kannan
2005-01-07 19:00 ` Arnd Bergmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Pine.LNX.4.61.0501071342290.21110@chaos.analogic.com \
--to=linux-os@chaos.analogic.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-os@analogic.com \
--cc=shakstux@yahoo.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).