01.12.2012 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!