[U-Boot-Users] Reset chip selects in cfi_flash.c

Hi,
I have made this small change to my cfi_flash init_flash() function to reconfigure the MPC850 chip selects after the chip has been sized. I suggest adding something like this to the cfi_flash driver. This works fine on our MPC850 platform.
unsigned long flash_init (void) { unsigned long size = 0; int i; #if defined(CONFIG_MPC850) volatile immap_t *immap = (immap_t *)CFG_IMMR; volatile memctl8xx_t *memctl = &immap->im_memctl; #endif /* Init: no FLASHes known */ for (i = 0; i < CFG_MAX_FLASH_BANKS; ++i) { flash_info[i].flash_id = FLASH_UNKNOWN; size += flash_info[i].size = flash_get_size (bank_base[i], i); if (flash_info[i].flash_id == FLASH_UNKNOWN) { printf ("## Unknown FLASH on Bank %d - Size = 0x%08lx = %ld MB\n", i, flash_info[i].size, flash_info[i].size << 20); } } #if defined(CONFIG_MPC850) /* Remap FLASH according to real size */ memctl->memc_or0 = CFG_OR_TIMING_FLASH | (-size & 0xFFFF8000); memctl->memc_br0 = (CFG_FLASH_BASE & BR_BA_MSK) | BR_MS_GPCM | BR_V; #endif /* Monitor protection ON by default */ #if (CFG_MONITOR_BASE >= CFG_FLASH_BASE) flash_protect (FLAG_PROTECT_SET, CFG_MONITOR_BASE, CFG_MONITOR_BASE + CFG_MONITOR_LEN - 1, &flash_info[0]); #endif
return (size); }
regards
Shlomo Kut
Software Engineer MKS Instruments Tenta Products Tel: 972-8-9181015 Fax: 972-8-9181020 www.mksinst.com
participants (1)
-
Shlomo_Kut@mksinst.com