SLAU962A December 2025 – June 2026 MSPM33C321A , MSPM33C321A-Q1
For each flash bank, the Flash Controller has a set of write/erase protection input signals, collectively called WEPROT signals. When a sector’s associated WEPROT signal is active, the sector cannot be programmed or erased. Each bank has a 32-bit bus (weprot_main_a0_mscbus) where each signal corresponds to one of the first 32 sectors in the bank. Additionally, as many signals as are needed are provided to cover additional sectors in the bank, 8 sectors at a time (e.g., weprot_main_b0_mscbus[31:4], weprot_main_c0_mscbus[31:0] – note that the first 4 in the ‘b0’ bus are skipped because those 32 sectors are covered by the ‘a0’ bus).
The WEPROT signals will only be used to protect bank erase, therefore the GSC bits that correspond to the WEPROT signals are called BEPROT. No error is thrown by the Flash Controller due to the WEPROT signals when attempted to erase without corresponding permissions. This is because some sectors will be allowed to be erased and others will not, according to the user’s policies. The disallowed sectors should silently fail as it is expected behavior and the command correctly erasing the expected sectors should be rewarded with a pass.
| Example Address† | Bank # (each 2 KB) | Sector # (each 2 KB) | Signal |
|---|---|---|---|
| 0x1000.0000 – 0x1000.07FF | 0 | 0 | weprot_main_a0_mscbus[0] |
| 0x1000.0800 – 0x1000.0FFF | 0 | 1 | weprot_main_a0_mscbus[1] |
| 0x1000.1000 – 0x1000.17FF | 0 | 2 | weprot_main_a0_mscbus[2] |
| 0x1000.1800 – 0x1000.1FFF | 0 | 3 | weprot_main_a0_mscbus[3] |
| … | .. | .. | .. |
| 0x1000.F800 – 0x1000.FFFF | 0 | 31 | weprot_main_a0_mscbus[31] |
| 0x1001.0000 – 0x1001.3FFF | 0 | 32-39 | weprot_main_b0_mscbus[4] |
| 0x1001.4000 – 0x1001.7FFF | 0 | 40-47 | weprot_main_b0_mscbus[5] |
| … | .. | .. | .. |
| 0x1007.C000 – 0x1007.FFFF | 0 | 248-255 | weprot_main_b0_mscbus[31] |