diff options
-rw-r--r-- | drivers/nor/cfi_flash.c | 97 |
1 files changed, 47 insertions, 50 deletions
diff --git a/drivers/nor/cfi_flash.c b/drivers/nor/cfi_flash.c index 830e9fc4a3..930d4a8504 100644 --- a/drivers/nor/cfi_flash.c +++ b/drivers/nor/cfi_flash.c @@ -301,35 +301,6 @@ static ulong flash_read_long (flash_info_t * info, flash_sect_t sect, uint offse return retval; } - -/*----------------------------------------------------------------------- - */ -static int cfi_probe (struct device_d *dev) -{ - unsigned long size = 0; - flash_info_t *info = malloc(sizeof(flash_info_t)); - - dev->priv = (void *)info; - - debug ("cfi_probe: %s base: 0x%08x size: 0x%08x\n", dev->name, dev->map_base, dev->size); - - /* Init: no FLASHes known */ - info->flash_id = FLASH_UNKNOWN; - size += info->size = flash_get_size(info, dev->map_base); - - if (dev->size > size) { - dev_dbg(dev, "limiting size from 0x%08x to 0x%08x\n", dev->size, size); - dev->size = size; - } - - if (info->flash_id == FLASH_UNKNOWN) { - debug ("## Unknown FLASH on Bank at 0x%08x - Size = 0x%08lx = %ld MB\n", - dev->map_base, info->size, info->size << 20); - } - - return 0; -} - static int flash_find_sector(flash_info_t * info, unsigned long adr) { int i; @@ -525,27 +496,6 @@ static void cfi_info (struct device_d* dev) return; } -static struct driver_d cfi_driver = { - .name = "cfi_flash", - .probe = cfi_probe, - .read = mem_read, - .write = cfi_write, - .lseek = dev_lseek_default, - .open = dev_open_default, - .close = dev_close_default, - .erase = cfi_erase, - .protect= cfi_protect, - .memmap = generic_memmap_ro, - .info = cfi_info, -}; - -static int cfi_init(void) -{ - return register_driver(&cfi_driver); -} - -device_initcall(cfi_init); - /*----------------------------------------------------------------------- * Copy memory to flash, returns: * 0 - OK @@ -1487,6 +1437,53 @@ static int flash_write_cfibuffer (flash_info_t * info, ulong dest, const uchar * } #endif /* CONFIG_CFI_BUFFER_WRITE */ +static int cfi_probe (struct device_d *dev) +{ + unsigned long size = 0; + flash_info_t *info = malloc(sizeof(flash_info_t)); + + dev->priv = (void *)info; + + debug ("cfi_probe: %s base: 0x%08x size: 0x%08x\n", dev->name, dev->map_base, dev->size); + + /* Init: no FLASHes known */ + info->flash_id = FLASH_UNKNOWN; + size += info->size = flash_get_size(info, dev->map_base); + + if (dev->size > size) { + dev_dbg(dev, "limiting size from 0x%08x to 0x%08x\n", dev->size, size); + dev->size = size; + } + + if (info->flash_id == FLASH_UNKNOWN) { + debug ("## Unknown FLASH on Bank at 0x%08x - Size = 0x%08lx = %ld MB\n", + dev->map_base, info->size, info->size << 20); + } + + return 0; +} + +static struct driver_d cfi_driver = { + .name = "cfi_flash", + .probe = cfi_probe, + .read = mem_read, + .write = cfi_write, + .lseek = dev_lseek_default, + .open = dev_open_default, + .close = dev_close_default, + .erase = cfi_erase, + .protect= cfi_protect, + .memmap = generic_memmap_ro, + .info = cfi_info, +}; + +static int cfi_init(void) +{ + return register_driver(&cfi_driver); +} + +device_initcall(cfi_init); + /** * @file * @brief This file implements a Common Flash Interface (CFI) driver for U-Boot. |