On Tue, Oct 27, 2009 at 04:24:53PM -0600, Jonathan Haws wrote:
>> >>> How can I get that pointer?  Unfortunately I cannot simply use
>> the
>> >>>
>> >> address of the flash.  Is there some magical function call that
>> >> gives me access to that portion of the memory space?
>> >>
>> >> $ man 2 mmap
>> >>
>> >> You want MAP_SHARED and O_SYNC.
>> >>
>> >
>> >
>> > To use that I need to have a file descriptor to a device, do I
>> not?  However, I do not have a base flash driver to give me that
>> file descriptor.  Am I missing something with that call?
>> >
>> 
>> /dev/mem
>> 
>Okay, I now have access to the flash memory, however when I write to it the 
>writes do not take.  I have tried calling msync() on the mapping to no avail.  
>I have opened the fd with O_SYNC, but cannot get things to work right.
>
>Here are the calls:
>
>       int fd = open("/dev/mem", O_SYNC | O_RDWR);
>       uint16_t * flash = (uint16_t *)mmap(NULL, NOR_FLASH_SIZE,
>                       (PROT_READ | PROT_WRITE), MAP_PRIVATE, fd,
>                       NOR_FLASH_BASE_ADRS);

What board and CPU are you using?  Is your flash really at 0xFC800000, or is
that the virtual address that VxWorks puts it at?

josh
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to