diff options
Diffstat (limited to 'board/pm826/flash.c')
| -rw-r--r-- | board/pm826/flash.c | 13 | 
1 files changed, 11 insertions, 2 deletions
| diff --git a/board/pm826/flash.c b/board/pm826/flash.c index 770a46db7..fee07cf35 100644 --- a/board/pm826/flash.c +++ b/board/pm826/flash.c @@ -69,6 +69,11 @@ ulong flash_get_size (volatile unsigned long *baseaddr,  		info->sector_count = 39;  		info->size = 0x00800000;	/* 4 * 2 MB = 8 MB      */  		break; +	case INTEL_ID_28F640C3B: +		info->flash_id = FLASH_28F640C3B; +		info->sector_count = 135; +		info->size = 0x02000000;	/* 16 * 2 MB = 32 MB	*/ +		break;  	default:  		return (0);			/* no or unknown flash	*/  	} @@ -79,10 +84,11 @@ ulong flash_get_size (volatile unsigned long *baseaddr,  		volatile unsigned long *tmp = baseaddr;  		/* set up sector start adress table (bottom sector type) -		 * AND unlock the sectors (if our chip is 160C3) +		 * AND unlock the sectors (if our chip is 160C3 or 640C3)  		 */  		for (i = 0; i < info->sector_count; i++) { -			if ((info->flash_id & FLASH_TYPEMASK) == FLASH_28F160C3B) { +			if (((info->flash_id & FLASH_TYPEMASK) == FLASH_28F160C3B) || +			    ((info->flash_id & FLASH_TYPEMASK) == FLASH_28F640C3B)) {  				tmp[0] = 0x00600060;  				tmp[1] = 0x00600060;  				tmp[0] = 0x00D000D0; @@ -177,6 +183,9 @@ void flash_print_info (flash_info_t * info)  	case FLASH_28F160F3B:  		printf ("28F160F3B (16 M, bottom sector)\n");  		break; +	case FLASH_28F640C3B: +		printf ("28F640C3B (64 M, bottom sector)\n"); +		break;  	default:  		printf ("Unknown Chip Type\n");  		break; |