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