Using the Enhanced Local Bus Controller "eLBC" in ... - Freescale
Using the Enhanced Local Bus Controller "eLBC" in ... - Freescale
Using the Enhanced Local Bus Controller "eLBC" in ... - Freescale
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
June, 2010<br />
<strong>Us<strong>in</strong>g</strong> <strong>the</strong> <strong>Enhanced</strong> <strong>Local</strong> <strong>Bus</strong> <strong>Controller</strong> "eLBC"<br />
<strong>in</strong> PowerQUICC and/or QorIQ Processors<br />
FTF-NET-F0809<br />
Zhongcai Zhou<br />
Application Eng<strong>in</strong>eer<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
TM
Agenda<br />
►eLBC Overview<br />
►General Purpose Chipselect<br />
Mach<strong>in</strong>e (GPCM)<br />
►NAND Flash Control<br />
Mach<strong>in</strong>e (FCM)<br />
►User Programmable<br />
Mach<strong>in</strong>e (UPM)<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
2<br />
TM
How to Use <strong>the</strong> <strong>Enhanced</strong> <strong>Local</strong> <strong>Bus</strong> <strong>Controller</strong> (eLBC)<br />
<strong>in</strong> PQ and/or QorIQ<br />
►After <strong>the</strong> power is turned on, a typical system:<br />
1. Starts execution from non-volatile memory, typically flash memory<br />
2. Copies/loads <strong>the</strong> code to ma<strong>in</strong> memory (DDRx)<br />
3. Starts <strong>the</strong> execution from <strong>the</strong> ma<strong>in</strong> memory<br />
Core<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
2<br />
1<br />
3<br />
U-boot/<br />
BIOS<br />
Flash<br />
Storage<br />
ROMzz/Hard Drive<br />
Ma<strong>in</strong> Memory<br />
DDRx<br />
3<br />
TM
System Must Talk to Flash Memory Without Any Configuration<br />
►A system must be able to talk to non-volatile memory without any<br />
configuration steps<br />
►eLBC is <strong>the</strong> controller that does this <strong>in</strong>itial boot<strong>in</strong>g job<br />
• eLBC has three controllers:<br />
1. General purpose chip-select mach<strong>in</strong>e (GPCM)<br />
– Regular NOR flash for boot<strong>in</strong>g<br />
– SRAM or FPGA<br />
2. NAND flash control mach<strong>in</strong>e (FCM)<br />
– NAND memory for storage and/or boot<strong>in</strong>g<br />
3. User programmable mach<strong>in</strong>e (UPM)<br />
– FPGA, ZBT RAM, etc.<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
4<br />
TM
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
5<br />
eLBC Diagram<br />
TM
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
Basic Operation<br />
► A transaction request comes to <strong>the</strong> local bus with address/size/<br />
read-write<br />
► The address is compared aga<strong>in</strong>st <strong>the</strong> BRx and ORx to determ<strong>in</strong>e which bank(#CS)<br />
this address belongs to<br />
• There is one BR/OR pair for each bank(#CS)<br />
► The transaction is routed to <strong>the</strong> correspond<strong>in</strong>g controlled determ<strong>in</strong>ed by BR[MSEL]<br />
BRx<br />
ORx<br />
BA: Base Address<br />
PS: Port Size<br />
V : Valid<br />
AM: Address Mask<br />
MSEL: Mach<strong>in</strong>e Select<br />
AM <strong>Controller</strong> dependent<br />
000 GPCM 101: UPMB<br />
001 FCM 110: UPMC<br />
100: UPMA o<strong>the</strong>rs: Reserved<br />
6<br />
TM
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
Boot from eLBC<br />
► Flexibility of programm<strong>in</strong>g each CS to any one of <strong>the</strong> controllers (GPCM, FCM,<br />
UPMA, UPMB, UPMC)<br />
► CS0 is special<br />
If <strong>the</strong> device is configured to boot from <strong>the</strong> local bus, <strong>the</strong>n <strong>the</strong> boot ROM, ei<strong>the</strong>r<br />
flash or NAND, must be connected to /CS0<br />
BR0 and OR0 will be set by <strong>the</strong> hardware automatically to appropriate value:<br />
Boot from GPCM<br />
8-bit ROM<br />
Boot from GPCM<br />
16-bit ROM<br />
Boot from NAND<br />
8-bit small page<br />
Boot from NAND<br />
8-bit large page<br />
Boot from<br />
non-eLBC <strong>in</strong>terface<br />
BR0[PS] BR0[MSEL] BR0[V] FCM: OR0[PGS]<br />
8-bit(01) GPCM(000) 1 x<br />
16-bit(10) GPCM(000) 1 x<br />
8-bit(01) FCM(001) 1 Small page(0)<br />
8-bit(01) FCM(001) 1 Large page(1)<br />
x x 0 x<br />
7<br />
TM
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
Boot from eLBC (cont.)<br />
►OR[AM] set to all 0<br />
This means all <strong>the</strong> address bits are masked and not used for <strong>the</strong><br />
comparison. Any address hits bank 0. The bank size is 4 GB.<br />
►How about tim<strong>in</strong>g?<br />
GPCM or FCM is set most conservatively <strong>in</strong> terms of tim<strong>in</strong>g out<br />
of reset. This guarantees that GPCM or FCM can talk to any flash or<br />
NAND.<br />
►The boot code should shr<strong>in</strong>k <strong>the</strong> bank size and adjust <strong>the</strong> tim<strong>in</strong>g accord<strong>in</strong>g<br />
to <strong>the</strong> specific boot memory used to speed up <strong>the</strong> boot<strong>in</strong>g process.<br />
8<br />
TM
►Address and data are big-endian <strong>in</strong>dexed<br />
LAD[0:31]: LAD[0] is <strong>the</strong> MSB; LAD[31] is <strong>the</strong> LSB<br />
LA[16:31]: LA[16] is <strong>the</strong> MSB, LA[31] is <strong>the</strong> LSB<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
Key Feature of eLBC<br />
►Buffer control<br />
LBCTL: The LBCTL p<strong>in</strong> functions as a write/read control for a bus transceiver<br />
connected to <strong>the</strong> LAD l<strong>in</strong>es<br />
►Register writ<strong>in</strong>g and local bus request are two different ports. The race<br />
condition is possible.<br />
For example, <strong>in</strong> <strong>the</strong> code:<br />
write(eLBC register)<br />
read from eLBC<br />
eLBC could start <strong>the</strong> read before write32 takes effect. Change to:<br />
write(eLBC register)<br />
read(same eLBC register)<br />
read from eLBC<br />
9<br />
TM
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
Key Feature of eLBC: It Is a Multiplexed <strong>Bus</strong><br />
► Address and data are multiplexed <strong>in</strong> <strong>the</strong> same p<strong>in</strong>s to reduce p<strong>in</strong> counts.<br />
► LALE (<strong>Local</strong> bus Address Latch Enable): Indicates <strong>the</strong> address phase<br />
• There are two ma<strong>in</strong> variations:<br />
32-bit bus:<br />
LAD[0:31]<br />
LA[25:31]<br />
lad[0:26] la[0:26]<br />
lale<br />
latch<br />
la[25:31]<br />
la[0:31]<br />
Advantage: Higher performance<br />
16-bit bus:<br />
LAD[0:15]<br />
LA[16:31]<br />
lad[0:15] la[0:15]<br />
lale<br />
latch<br />
la[16:31]<br />
10<br />
la[0:31]<br />
Advantage: Fewer p<strong>in</strong>s, narrower latch<br />
TM
► Port size and address connection<br />
• This applies to GPCM and UPM<br />
• 1 MB Flash<br />
LA[12]<br />
LA[30]<br />
LA[31]<br />
LAD[0:7]<br />
8-bit port<br />
A18<br />
A0<br />
LA[12]<br />
LA[29]<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
Key Feature of eLBC (cont.)<br />
A-1 LA[30]<br />
A0 LA[29]<br />
A0<br />
LAD[0:15]<br />
16-bit port<br />
A18<br />
A1<br />
LA[12]<br />
LA[28]<br />
LAD[0:31]<br />
32-bit port<br />
A17<br />
A1<br />
TM
►Debug feature<br />
• When an error happens, <strong>the</strong> transaction <strong>in</strong>fo is logged <strong>in</strong>to:<br />
� LTEAR ( Transfer Error Address Register)<br />
� LTEATR (Transfer Error Attributes Register)<br />
►<strong>Bus</strong> monitor<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
Key FEATURE of eLBC<br />
12<br />
TM
►The simplest among <strong>the</strong> three controllers<br />
►Designed to <strong>in</strong>terface to flash devices<br />
General Purpose Chip-select Mach<strong>in</strong>e (GPCM)<br />
►Typical flash signals and tim<strong>in</strong>g (from a flash device datasheet)<br />
Generic Flash Read Tim<strong>in</strong>g Generic Flash Write/Program Tim<strong>in</strong>g<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
13<br />
TM
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
GPCM Tim<strong>in</strong>g Control<br />
► GPCM needs to control <strong>the</strong> relative tim<strong>in</strong>g between <strong>the</strong> address, /CS, /WE, /OE<br />
signals<br />
► All <strong>the</strong> tim<strong>in</strong>gs are controlled by OR register<br />
CSNT: /LCS and LWE negation tim<strong>in</strong>g<br />
ACS: Address to /CS setup time<br />
XACS: Extra address to /CS setup time<br />
TRLX: Tim<strong>in</strong>g relaxed<br />
EHTR: Extended hold time on read access<br />
EAD: LALE width control<br />
14<br />
TM
There is a table <strong>in</strong> <strong>the</strong> manual list<strong>in</strong>g <strong>the</strong><br />
tim<strong>in</strong>gs for all <strong>the</strong> parameter comb<strong>in</strong>ations.<br />
► t ARCS<br />
• Ma<strong>in</strong>ly controlled with OR[ACS]<br />
• Recommended to set to ACS=00<br />
tAwCS=0 • This gives one cycle address to /CS setup<br />
time (address starts with LALE assertion).<br />
Sufficient for flash<br />
► t AOE<br />
• At least one cycle. Sufficient for flash<br />
• No programm<strong>in</strong>g needed<br />
► t RC/ t CSRP<br />
• Ma<strong>in</strong>ly determ<strong>in</strong>ed by OR[SCY]<br />
• Programmed accord<strong>in</strong>g to flash speed<br />
► t OEN<br />
• Controlled with OR[CSNT]<br />
• There is one automatic cycle between a read<br />
and next transaction<br />
• Program to 0 for most flashes<br />
• Only flash that shuts off very slowly after read<br />
needs to add extended cycles<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
How to Program GPCM Read Tim<strong>in</strong>g<br />
15<br />
Read Tim<strong>in</strong>g<br />
TM
There is a table <strong>in</strong> <strong>the</strong> manual list<strong>in</strong>g <strong>the</strong><br />
tim<strong>in</strong>gs for all <strong>the</strong> parameter comb<strong>in</strong>ations.<br />
► t AWCS<br />
• Ma<strong>in</strong>ly controlled with OR[ACS]<br />
• Recommended to set to ACS=00<br />
tAwCS=0 • This gives one cycle address to /CS setup<br />
time (address starts with LALE assertion).<br />
Sufficient for flash<br />
► t AWE<br />
• At least one cycle. Sufficient for flash<br />
• No programm<strong>in</strong>g needed<br />
► t WC/tCSWP<br />
• Ma<strong>in</strong>ly determ<strong>in</strong>ed by OR[SCY]<br />
• Programmed accord<strong>in</strong>g to flash speed<br />
► t WEN<br />
• Controlled with OR[CSNT]<br />
• Program to 0 for most flashes<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
How to Program GPCM Write Tim<strong>in</strong>g<br />
16<br />
Write Tim<strong>in</strong>g<br />
TM
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
Connection Example: Both NAND and NOR<br />
17<br />
TM
►External GTA term<strong>in</strong>ation<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
Key Feature of GPCM<br />
• GPCM is term<strong>in</strong>ated by programmed cycle number or LGPL4/GTA if<br />
asserted earlier.<br />
• OR[SETA] =‘1’: GPCM ignores OR[SCY] and term<strong>in</strong>ated by GTA only.<br />
• This feature is useful for some devices that have variable access time.<br />
►Why do we need LA[27:31]?<br />
►No support for burst<br />
• What happens if a burst request goes to GPCM?<br />
18<br />
TM
►Overview of NAND flash<br />
• Higher density than regular flash (NOR flash)<br />
• IO device us<strong>in</strong>g commands to read/write<br />
� No address bus<br />
� Page-oriented, not suitable for random access<br />
� No execute <strong>in</strong> place<br />
• Possible bit error<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
NAND Flash<br />
� Usually a certa<strong>in</strong> number of blocks are marked bad by <strong>the</strong> manufacturer<br />
� Dur<strong>in</strong>g <strong>the</strong> operation, more blocks can go bad<br />
� ECC is a must<br />
19<br />
TM
CE: Chip Enable<br />
WE: Write Enable<br />
CLE: Command Latch Enable RE: Read Enable<br />
ALE: Address Latch Enable<br />
Observation: There is no address bus<br />
Note: Data bus must be bit reversed.<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
NAND FCM Connection<br />
20<br />
TM
cmd1 cmd2<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
21<br />
How to Read NAND<br />
TM
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
22<br />
How to Write NAND<br />
TM
►Different vendors might have slightly different sequences.<br />
►The commands might be different.<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
Observations<br />
►In order to talk to all <strong>the</strong> vendors, FCM takes a generic approach.<br />
User has <strong>the</strong> flexibility/responsibility to def<strong>in</strong>e <strong>the</strong> command<br />
sequence.<br />
►512K vs. 2K<br />
23<br />
TM
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
How FCM Operates<br />
►Internal 8K buffer. Data is exchanged through buffer normally. User<br />
has <strong>the</strong> option to read/write s<strong>in</strong>gle byte from MDR register.<br />
core<br />
• For large page size NAND, 8K is split <strong>in</strong>to two 4K-buffers.<br />
4K-buffer: 2K for ma<strong>in</strong> region, 64 bytes for spare.<br />
4K<br />
4K<br />
• While one 4K buffer is exchang<strong>in</strong>g data with NAND, <strong>the</strong> core can access<br />
<strong>the</strong> o<strong>the</strong>r 4K-buffer.<br />
• For small page sizes, <strong>the</strong>re are 8 1K-buffers.<br />
24<br />
NAND<br />
TM
►Write data<br />
1. Initialize FCM registers for write<br />
2. Set FMR[OP]=00, normal operation<br />
Write to <strong>the</strong> buffer<br />
3. Set FMR[OP]=11 after <strong>the</strong> data (usually one whole page)<br />
is <strong>in</strong> <strong>the</strong> buffer<br />
4. Dummy write to memory bank<br />
or write to LSOR to start <strong>the</strong> write sequence<br />
5. FCM reads data from buffer, writes to NAND<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
25<br />
How FCM Operates<br />
TM
►Read data<br />
1. Initialize FCM registers for read<br />
2. Set FMR[OP]=11<br />
3. Dummy write to memory bank<br />
or write to LSOR to start <strong>the</strong> read sequence<br />
4. When <strong>the</strong> data read is f<strong>in</strong>ished, <strong>the</strong> status bit is set<br />
5. Set FMR[OP]=00, normal operation<br />
read data from <strong>the</strong> buffer<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
26<br />
How FCM Operates<br />
TM
►Command sequence control<br />
►Tim<strong>in</strong>g control<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
27<br />
Programm<strong>in</strong>g Model<br />
TM
►Flash <strong>in</strong>struction register (FIR)<br />
FCM starts with OP0, until it encounters OPx=0000<br />
User must program <strong>the</strong> sequence accord<strong>in</strong>g to <strong>the</strong> NAND datasheet.<br />
OP def<strong>in</strong>ition<br />
0000: NOP. End of sequence 1000: WB. Write FBCR bytes<br />
0001: CA. Column Address 1001: WS. Write one byte<br />
0010: PA. Block+Page address 1010: RB. Read FBCR bytes<br />
0011: User-def<strong>in</strong>ed address 1011: RS. Read one byte<br />
0100: CM0. Cmd from FCR[CMD0] 1100: CW0. Wait R/B. Issue FCR[CMD0]<br />
0101: CM1. Cmd from FCR[CMD1] 1101: CW1. Wait R/B. Issue FCR[CMD1]<br />
0110: CM2. Cmd from FCR[CMD2] 1110: RBW. Wait R/B. Read FBCR bytes<br />
0111: CM3. Cmd from FCR[CMD3] 1110: RSW. Wait R/B. Read one bytes<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
Command Sequence Control<br />
28<br />
TM
►Read sequence programm<strong>in</strong>g (slide 19)<br />
FIR<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
Command Sequence Control Example<br />
OP0 OP1 OP2 OP3 OP4 OP5 OP6 OP7<br />
CM0 CA PA CM1 RBW NOP<br />
0100 0001 0010 0101 1110 0000<br />
FCR CMD0 CMD1 CMD2 CMD3<br />
0x00 0x30<br />
For CA (column address), <strong>the</strong> controller handles <strong>the</strong> length<br />
automatically accord<strong>in</strong>g to ORx[PGS], <strong>the</strong> page size field.<br />
It is one cycle for small-page NAND and two cycles for large-page NAND.<br />
For PA (page address)<br />
The controller handles <strong>the</strong> length based on FMR[AL].<br />
29<br />
TM
►Write sequence programm<strong>in</strong>g (Slide 20)<br />
FIR<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
Command Sequence Control Example<br />
OP0 OP1 OP2 OP3 OP4 OP5 OP6 OP7<br />
CM1 CA PA WB CM2 CW0 RS NOP<br />
0101 0001 0010 1000 0110 1100 1011 0000<br />
FCR CMD0 CMD1 CMD2 CMD3<br />
0x70 0x80 0x10<br />
30<br />
TM
Tim<strong>in</strong>g Control: Command/Address/Data Write<br />
►The tim<strong>in</strong>g is controlled by OR[CST], OR[CHT], OR[TRLX].<br />
• There is a table <strong>in</strong> <strong>the</strong> manual list<strong>in</strong>g all <strong>the</strong> comb<strong>in</strong>ations.<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
31<br />
TM
►The tim<strong>in</strong>g is controlled by OR[RST], OR[TRLX].<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
Tim<strong>in</strong>g Control: Data Read<br />
• There is a table <strong>in</strong> <strong>the</strong> manual list<strong>in</strong>g all <strong>the</strong> comb<strong>in</strong>ations.<br />
32<br />
TM
►When eLBC is configured to boot from NAND<br />
• FCM automatically reads 4K data from NAND to <strong>the</strong> buffer<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
Boot from NAND<br />
• Core waits until this 4K transfer f<strong>in</strong>ishes, <strong>the</strong>n executes <strong>the</strong> code out of<br />
this 4K buffer<br />
• This 4K code cannot call <strong>the</strong> function outside of <strong>the</strong> 4K range. It needs<br />
to copy <strong>the</strong> rest of <strong>the</strong> code to DDR and cont<strong>in</strong>ue <strong>the</strong> bootstrap process<br />
33<br />
TM
►Very flexible tim<strong>in</strong>g<br />
►Supports burst<br />
• Better performance than GPCM<br />
►There are three <strong>in</strong>dependent UPMs.<br />
User Programmable Mach<strong>in</strong>e (UPM) <strong>Controller</strong><br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
34<br />
TM
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
Basic Pr<strong>in</strong>ciple of Operation<br />
UPM Rout<strong>in</strong>e Start Address<br />
Read s<strong>in</strong>gle-beat 0x00<br />
Read burst 0x08<br />
Write s<strong>in</strong>gle-beat 0x18<br />
Write burst 0x20<br />
Refresh Timer 0x30<br />
Exception Condition 0x3C<br />
35<br />
TM
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
Programm<strong>in</strong>g Model<br />
►UPM reads <strong>the</strong> appropriate RAM array based on <strong>the</strong> transaction<br />
type: read/write, s<strong>in</strong>gle/burst<br />
►RAM array <strong>in</strong>structs <strong>the</strong> controller what level to drive to each signal<br />
36<br />
TM
►Basic Tim<strong>in</strong>g<br />
• CST1-4: LCS level at phase 1-4<br />
• BST1-4: LBS level at phase 1-4<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
Programm<strong>in</strong>g Model: RAM Array<br />
These two signals can be controlled to a resolution of a quarter of LCLK.<br />
• G0L/H: LGPL0 level control<br />
• G1-5T1: LGPL1-5 level at phase 1 and 2<br />
• G1-5T3: LGPL1-5 level at phase 3 and 4<br />
These signals have resolution of half clock<br />
37<br />
TM
I<br />
N<br />
D<br />
E<br />
X<br />
C<br />
S<br />
T<br />
1<br />
C<br />
S<br />
T<br />
2<br />
C<br />
S<br />
T<br />
3<br />
C<br />
S<br />
T<br />
4<br />
B<br />
S<br />
T<br />
1<br />
B<br />
S<br />
T<br />
2<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
B<br />
S<br />
T<br />
3<br />
B<br />
S<br />
T<br />
4<br />
G<br />
0<br />
L<br />
G<br />
0<br />
H<br />
0 1 0 1 1 1 1 0 0 10 11 0 1 0 1 0 1 0 1 0 1<br />
1 1 1 0 0 0 0 1 1 11 10 0 0 1 0 1 0 1 0 1 0<br />
LCLK<br />
LCS<br />
LBS<br />
LGPL0<br />
LGPL1<br />
T1 T2 T3 T4 T1 T2 T3 T4<br />
G<br />
1<br />
T<br />
1<br />
G<br />
1<br />
T<br />
3<br />
G<br />
2<br />
T<br />
1<br />
G<br />
2<br />
T<br />
3<br />
38<br />
Basic Tim<strong>in</strong>g Control<br />
G<br />
3<br />
T<br />
1<br />
G<br />
3<br />
T<br />
3<br />
G<br />
4<br />
T<br />
1<br />
G<br />
4<br />
T<br />
3<br />
G<br />
5<br />
T<br />
1<br />
G<br />
5<br />
T<br />
3<br />
TM
Advanced features:<br />
► There are only 8-entries for s<strong>in</strong>gle read/write, 16-entries for burst read/write.<br />
• If this is <strong>in</strong>sufficient, <strong>the</strong>n<br />
REDO: Redo current RAM array once, twice, three times<br />
LOOP:<br />
RAMx LOOP=1, loop start<br />
………………<br />
RAMy LOOP=1, loop end<br />
Loop Number: MxMR[RLF] for read and MxMR[WLF] for write<br />
• If this is <strong>in</strong>sufficient, <strong>the</strong>n<br />
REDO:<br />
LOOP:<br />
RAMx LOOP=1, loop start<br />
………………<br />
RAMy LOOP=1, loop end<br />
Loop Number: MxMR[RLF] for read and MxMR[WLF] for write<br />
NA: Next address. Increment LA[27:31]/<br />
UTA: UPM TA assertion<br />
LAST: Last entry<br />
► Less common/useful fields:<br />
• EXEN: Exception enable<br />
• AMX: Address mux<strong>in</strong>g<br />
• TODT: Turn-on disable timer<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
39<br />
RAM Array (cont.)<br />
TM
►LGPL4/UPWAIT<br />
• UPM supports wait signal to handle variable-speed devices<br />
• LGPL4/UPWAIT can be programmed as ei<strong>the</strong>r<br />
� LGPL4, an output<br />
� UPWAIT, an <strong>in</strong>put<br />
►Polarity of UPWAIT is programmable (MxMR[UWPL)<br />
<strong>Freescale</strong>, <strong>the</strong> <strong>Freescale</strong> logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of <strong>Freescale</strong> Semiconductor, Inc.,<br />
Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, CoreNet, <strong>the</strong> Energy Efficient Solutions logo, Flexis, MXC, Platform <strong>in</strong> a Package, Processor Expert, QorIQ, QUICC Eng<strong>in</strong>e, SMARTMOS, TurboL<strong>in</strong>k<br />
and VortiQa are trademarks of <strong>Freescale</strong> Semiconductor, Inc. All o<strong>the</strong>r product or service names are <strong>the</strong> property of <strong>the</strong>ir respective owners. © 2010 <strong>Freescale</strong> Semiconductor, Inc.<br />
40<br />
UPWAIT<br />
TM