PIC32MZ Firmware Extraction: EC And EF Family Map

Microchip’s PIC32MZ generation replaced the PIC32MX line with a bigger core, a different flash architecture and a protection scheme that looks similar from the outside but behaves differently in the details. This page is the family map: how the part numbers decode, what the silicon actually protects, how the flash is organized, and where each of the twenty variants we profile in depth can be found. It sits alongside the PIC32MX family overview, which covers the earlier generation the same way.

Two Families Behind One Name

The MZ line splits into two generations. The EC family runs a MIPS32 microAptiv core at 200 MHz — about 330 DMIPS — with a five-stage pipeline, a 16 KB instruction cache against a 4 KB data cache, DSP accumulators and microMIPS encoding, and no floating point unit. The EF family runs a microAptiv UC core up to 252 MHz and about 415 DMIPS, with equal 32 KB caches and a seven-stage FPU that handles single and double precision natively. Microchip has marked the entire EC line not recommended for new designs and points buyers at EF, which changes the shape of most recovery requests: fewer repairs, more migrations.

The suffix letters mean different things per family, and mixing the two systems is the most common reading error. On EC parts, the letter selects peripherals: G carries no CAN and no crypto engine, H adds the dual CAN controllers, M adds both plus the AES/SHA cipher block with its random number generator. On EF parts, the letters F, H, M and K are silicon revisions of one uniform feature set — every EF die carries the FPU, the CAN pair and the crypto engine. The digits before the letters give flash size (1024 or 2048 KB) and the trailing digits give pin count: 064, 100, 124 or 144.

Flash Geometry, Different From MX

Program flash starts at 0x1D000000 and reaches 0x1D0FFFFF on 1 MB parts and 0x1D1FFFFF on 2 MB parts. Erase granularity is coarse by MX standards: pages of 4096 words, or 16 KB, with eight rows of 512 words — 2 KB — per page for row programming. The boot region is not one bank but two independent 80 KB panels, at 0x1FC00000–0x1FC13FFF and 0x1FC20000–0x1FC33FFF, supporting live update: the device can rewrite one panel while running from the other. SRAM scales with flash density — 256 KB behind 1 MB arrays, 512 KB behind 2 MB. There is no internal EEPROM; data that survives power goes into the same 16 KB pages, which is why firmware designers store parameters the way they do.

Region Address range Size
Program flash, 1 MB parts 0x1D000000–0x1D0FFFFF 1024 KB
Program flash, 2 MB parts 0x1D000000–0x1D1FFFFF 2048 KB
Boot panel 1 0x1FC00000–0x1FC13FFF 80 KB
Boot panel 2 0x1FC20000–0x1FC33FFF 80 KB
Erase page (any panel) 4096 words 16 KB
Program row 512 words 2 KB

One Protection Word, Mirrored

Code protection is a single active-low configuration word, and — unlike PIC32MX, where the CP bit lives inside DEVCFG0 — the MZ generation gives it a dedicated word of its own at the top of the boot panel, next to DEVCFG0 through DEVCFG3. Configuration words are ECC-protected and written by quad-word programming, and each primary set is shadowed by an alternate copy: if the primary develops an uncorrectable ECC fault, the hardware switches to the alternate and flags the event through BCFGERR and BCFGFAIL in the reset controller. Once the protection word is cleared, reads close over ICSP and the 4-wire JTAG port simultaneously — there is no debug-TAP side door — and the only release command is a full chip erase, which takes both panels, both config copies and the image with them. Write protection is a different mechanism entirely: PWP and BWP are flash-controller registers re-applied by boot code, effective at runtime and irrelevant against an attack on the silicon itself.

The Twenty Variants In Depth

Each page below profiles one part: what the suffix implies for the image, how the extraction and verification run, and what typically fills the array in that package. All of them link back here and to the conversion routes on the services page.

Part Pins Letter meaning Deep-dive page
PIC32MZ1024ECG064 64 EC, no CAN, no crypto extraction profile
PIC32MZ1024ECH064 64 EC, CAN, no crypto flash reading profile
PIC32MZ2048ECG064 64 EC, no CAN, no crypto program copy profile
PIC32MZ2048ECG100 100 EC, no CAN, no crypto firmware read profile
PIC32MZ2048ECG144 144 EC, no CAN, no crypto hex extraction profile
PIC32MZ2048ECH064 64 EC, CAN, no crypto code dump profile
PIC32MZ2048ECH100 100 EC, CAN, no crypto flash read profile
PIC32MZ2048ECM064 64 EC, CAN and crypto firmware extraction profile
PIC32MZ2048ECM100 100 EC, CAN and crypto binary copy profile
PIC32MZ1024EFF064 64 EF revision code extraction profile
PIC32MZ1024EFF100 100 EF revision program read profile
PIC32MZ1024EFF124 124 EF revision firmware copy profile
PIC32MZ1024EFF144 144 EF revision flash extraction profile
PIC32MZ1024EFH064 64 EF revision hex dump profile
PIC32MZ1024EFH100 100 EF revision binary read profile
PIC32MZ1024EFH124 124 EF revision program extraction profile
PIC32MZ1024EFH144 144 EF revision code copy profile
PIC32MZ1024EFM100 100 EF revision firmware read profile
PIC32MZ1024EFM124 124 EF revision binary extraction profile
PIC32MZ1024EFK064 64 EF revision flash copy profile

How An Engagement Runs

Intake starts with the part number and the protection state: unlocked parts read directly through ICSP; locked parts escalate only after ownership verification, arranged through the contact desk. The capture takes program flash, both boot panels and all configuration contexts, validates page checksums and ECC framing, and closes with a bench boot. Deliverables are a verified binary plus a report — region manifest, configuration provenance, peripheral census — built so the image can be re-flashed or ported without surprises. The general workflow, common across Microchip families, is described in the firmware extraction overview.