Memory Protection Unit (MPU)
MPC5606S Microcontroller Reference Manual, Rev. 7
896 Freescale Semiconductor
Figure 24-10. MPU access evaluation macro
Figure 24-10 is not intended to be a schematic of the actual access evaluation macro, but rather a
generalized block diagram showing the major functions included in this logic block.
24.3.1.1 Access evaluation—hit determination
To evaluate the region hit determination, the MPU uses two magnitude comparators in conjunction with
the contents of a region descriptor: the current access must be included between the region's “start” and
“end” addresses and simultaneously the region's valid bit must be active.
Recall there are no hardware checks to verify that region's “end” address is greater then region's “start”
address, and it is software’s responsibility to properly load appropriate values into these fields of the region
descriptor.
In addition to this, the optional process identifier is examined against the region descriptor’s PID and
PIDMASK fields. In order to generate the pid_hit indication: the current PID with its PIDMASK must be
equal to the region's PID with its PIDMASK. Also the process identifier enable is take into account in this
comparison so that the MPU forces the pid_hit term to be asserted in the case of AHB bus master does not
provide its process identifier.
24.3.1.2 Access evaluation—privilege violation determination
While the access evaluation macro is making the region hit determination, the logic is also evaluating if
the current access is allowed by the permissions defined in the region descriptor. The protection violation
logic then evaluates the access against the effective permissions using the specification shown in
Table 24-10.
hit_b
start
end
error
> >
RGDn
AHB_ap
hit & error hit_b | error
>=
<=
r,w,x