I know this is probably a really dumb question, but a wise man once said that 
the only stupid question is the one that is not asked.

So, I have written a flash driver in VxWorks that simply addresses the flash 
directly and handles all the hardware accesses just fine.  I am porting that to 
Linux and need it to run in user space (mainly to simplify the interface with 
the user - I want to keep it the same as in VxWorks).  Here is a snippet of 
what my question is:

static uint8_t bflashEraseSector(int sa, int verbose)
{
        uint16_t * flash = (uint16_t *) NOR_FLASH_BASE_ADRS;
        uint32_t offset;

        ...

        /* We divide by 2 here to adjust for the 16-bit offset into the address 
*/
        offset = sa * NOR_FLASH_SECTOR_SIZE / 2;
        flash[BFLASH_SECTOR_ERASE_ADDR1] = BFLASH_SECTOR_ERASE_BYTE1;

        ...

}

I am trying to get a pointer to NOR_FLASH_BASE_ADRS which is defined to be 
0xFC000000.  I then dereference that directly to write to the flash.

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?

Thanks for the help!

Jonathan

PS - I know that I could simply use the MTD driver provided by the kernel, but 
I need to be able to keep the interface the same so we can use previously 
written code.



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

Reply via email to