From 257a764582f52235414b5c35717b0ee2b49d4b0d Mon Sep 17 00:00:00 2001 From: Spencer Oliver Date: Mon, 8 Mar 2010 22:54:18 +0000 Subject: PIC32: add flash algorithm support Add flash algorithm support for the PIC32MX. Still a few things todo but this dramatically decreases the programing time, eg. approx programming for 2.5k test file. - without fastload: 60secs - with fastload: 45secs - with fastload and algorithm: 2secs. Add new devices to supported list. Signed-off-by: Spencer Oliver --- src/flash/nor/pic32mx.h | 31 +++++++------------------------ 1 file changed, 7 insertions(+), 24 deletions(-) (limited to 'src/flash/nor/pic32mx.h') diff --git a/src/flash/nor/pic32mx.h b/src/flash/nor/pic32mx.h index b3bdad29..79fa40ef 100644 --- a/src/flash/nor/pic32mx.h +++ b/src/flash/nor/pic32mx.h @@ -29,8 +29,6 @@ struct pic32mx_flash_bank { struct working_area *write_algorithm; - int devid; - int ppage_size; int probed; }; @@ -38,18 +36,6 @@ struct pic32mx_flash_bank /* pic32mx memory locations */ -#define PIC32MX_KUSEG_PGM_FLASH 0x7D000000 -#define PIC32MX_KUSEG_RAM 0x7F000000 - -#define PIC32MX_KSEG0_RAM 0x80000000 -#define PIC32MX_KSEG0_PGM_FLASH 0x9D000000 -#define PIC32MX_KSEG0_BOOT_FLASH 0x9FC00000 - -#define PIC32MX_KSEG1_RAM 0xA0000000 -#define PIC32MX_KSEG1_PGM_FLASH 0xBD000000 -#define PIC32MX_KSEG1_PERIPHERAL 0xBF800000 -#define PIC32MX_KSEG1_BOOT_FLASH 0xBFC00000 - #define PIC32MX_PHYS_RAM 0x00000000 #define PIC32MX_PHYS_PGM_FLASH 0x1D000000 #define PIC32MX_PHYS_PERIPHERALS 0x1F800000 @@ -59,19 +45,21 @@ struct pic32mx_flash_bank * Translate Virtual and Physical addresses. * Note: These macros only work for KSEG0/KSEG1 addresses. */ -#define KS1Virt2Phys(vaddr) ((vaddr)-0xA0000000) -#define Phys2KS1Virt(paddr) ((paddr) + 0xA0000000) -#define KS0Virt2Phys(vaddr) ((vaddr)-0x80000000) -#define Phys2KS0Virt(paddr) ((paddr) + 0x80000000) + +#define Virt2Phys(v) ((v) & 0x1FFFFFFF) /* pic32mx configuration register locations */ #define PIC32MX_DEVCFG0 0xBFC02FFC #define PIC32MX_DEVCFG1 0xBFC02FF8 #define PIC32MX_DEVCFG2 0xBFC02FF4 -#define PIC32MX_DEVCFG3 0XBFC02FF0 +#define PIC32MX_DEVCFG3 0xBFC02FF0 #define PIC32MX_DEVID 0xBF80F220 +#define PIC32MX_BMXPFMSZ 0xBF882060 +#define PIC32MX_BMXBOOTSZ 0xBF882070 +#define PIC32MX_BMXDRMSZ 0xBF882040 + /* pic32mx flash controller register locations */ #define PIC32MX_NVMCON 0xBF80F400 @@ -102,10 +90,5 @@ struct pic32mx_flash_bank #define NVMKEY1 0xAA996655 #define NVMKEY2 0x556699AA -struct pic32mx_mem_layout { - uint32_t sector_start; - uint32_t sector_size; -}; - #endif /* PIC32MX_H */ -- cgit v1.2.3