C3 Discrete
11.0
Security Modes
11.1
Flexible Block Locking
The C3 Discrete device offers an instant, individual block-locking scheme that allows
any block to be locked or unlocked with no latency, enabling instant code and data
protection.
This locking scheme offers two levels of protection. The first level allows software-only
control of block locking (useful for data blocks that change frequently), while the
second level requires hardware interaction before locking can be changed (useful for
code blocks that change infrequently).
The following sections will discuss the operation of the locking system. The term “state
[abc]” will be used to specify locking states; for example, “state [001],” where
a = value of WP#, b = bit D1 of the Block Lock Status Register, and c = bit D0 of the
Block Lock Status Register. Figure 14, “Block Locking State Diagram” on page 48
displays all of the possible locking states.
Figure 14: Block Locking State Diagram
Locked-
Down4,5
Hardware
Locked5
Locked
Power-Up/Reset
[X01]
[011]
[011]
WP# Hardware Control
Software
Locked
Unlocked
Unlocked
[111]
[110]
[X00]
Software Block Lock (0x60/0x01) or Software Block Unlock (0x60/0xD0)
Software Block Lock-Down (0x60/0x2F)
WP# hardware control
Notes:
1. [a,b,c] represents [WP#, D1, D0]. X = Don’t Care.
2. D1 indicates block Lock-down status. D1 = ‘0’, Lock-down has not been issued to
this block. D1 = ‘1’, Lock-down has been issued to this block.
3. D0 indicates block lock status. D0 = ‘0’, block is unlocked. D0 = ‘1’, block is locked.
4. Locked-down = Hardware + Software locked.
5. [011] states should be tracked by system software to determine difference
between Hardware Locked and Locked-Down states.
11.1.1
Locking Operation
The locking status of each block can be set to Locked, Unlocked, or Lock-Down, each of
which will be described in the following sections. See Figure 14, “Block Locking State
Diagram” on page 48 and Figure 21, “Locking Operations Flowchart” on page 60.
Datasheet
48
March 2008
290645-24