[U-Boot-Users] [RFC] Complex MAPPING support on CFI driver
Rui Sousa
rui.sousa at laposte.net
Wed May 23 12:58:45 CEST 2007
Hi,
To support the flash one of our boards (no integrated in U-Boot) I need to
implement something similar to Linux MTD complex mappings option in the CFI
driver. In my case I have a NOR flash chip with an address line connected to
a GPIO pin. The GPIO pin needs to be set correctly at each access to the
flash.
What I wanted to know:
Is someone else already working on a solution?
Would such a feature have a chance of being integrated in U-boot?
My plan was:
1. Add a new CFG_FLASH_COMPLEX_MAPPING option to U-boot.
2. Create map structure to contain functions pointers to flash read/write
functions.
3. Modify flash_info_t structure and add a pointer to map structure (if
CFG_FLASH_COMPLEX_MAPPING is defined).
4. Add generic map_read(), map_write() functions to CFI driver.
5. Modify CFI driver to access flash using map_read()/map_write() functions.
6. If CFG_FLASH_COMPLEX_MAPPING is not defined the map_read()/map_write()
are simple inline functions that access memory directly.
7. If CFG_FLASH_COMPLEX_MAPPING is defined it's up to the board specific code
to initialize the map structure pointer in flash_info_t and the generic
map_read()/map_write() functions will call board_map_read()/board_map_write()
(through a function pointer).
Unfortunately this only takes care of writting operations. Support for read
would mean further extensive modifications (introduce some flash_read()
function and use it from cp, md, jffs2, ... commands).
Thanks,
Rui
More information about the U-Boot
mailing list