Linux - Embedded & Single-board computerThis forum is for the discussion of Linux on both embedded devices and single-board computers (such as the Raspberry Pi, BeagleBoard and PandaBoard). Discussions involving Arduino, plug computers and other micro-controller like devices are also welcome.
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Introduction to Linux - A Hands on Guide
This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter.
For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.
Click Here to receive this Complete Guide absolutely free.
I am pretty new to linux and i have a few questions about an approach for an NVRAM driver.
We have 4 segments of memory that are attached to our processor via TI's EMIF (external memory interface).
I think I know at high level what needs to be done, but am having trouble with the details.
One of the areas is for an area of NonVolatile RAM. Once this is mapped you can read and write to the memory without any special needs. The chip handles the saving of data.
So, what I think i would like to is write a driver to map that area of memory which starts at 0x06000000 and is 32M in length and then have my application use mmap() to access the memory. The actual amount of memory on this device is much smaller than the 32M, but that is the size of the EMIF partition.
I found an example driver that implements something similar using a char driver, but it allocates new memory in the kernel and I don't quite get how to do this with existing memory.
1) Do i need to be using the MTD subsystem to do this?
2) How do you map the physical memory to an area that can be accessed by mmap?
3) Does this approach sound reasonable?
I'm trying to do similar. I'm trying to access some NOR flash at 0x0200 0000. Again this is a TI ARM (DaVinci actually) setup.
I use mmap in the application (to a file descriptor ot type 'node' I've created earlier). In the kernel object I've used register_chrdev and then request_mem_region (physical memory) for the driver. Then remap_pfn_range pointing to the physical address.
Trouble is this doesn't seem to work, as my memory contents change when they should be constant.