[U-Boot-Users] Accessing a LBC Peripheral thru LCS in MPC8540
Sudhakar
v.sudhakar at gdatech.co.in
Fri Sep 17 20:16:02 CEST 2004
Hi All..
I have a problem in Accessing LBC Peripheral [CPLD] connected thru LCS7 in
MPC8540 based board.
In such case I can get a pulse in the LCS 7 when I use UPM Mode.
But when I use GPCM Mode I couldnt get any pulse..
If anyone knows the answer please pass it on to me.
The steps followed for Accessing the CPLD(LCS 7) in GPCM Mode are as follows
=================================================================
#define CFG_BR7_PRELIM 0xf8000801
#define CFG_OR7_PRELIM 0xffff0ee6
[Detailed BR7/OR7 Setting I have explained below]
I tried accessing the device [CPLD Control Register [Offset 0]] as below
void
cpldconfig( )
{
volatile immap_t *immap = (immap_t *)CFG_IMMR;
volatile ccsr_lbc_t *memctl = &immap->im_lbc;
volatile ushort *dummy = (uchar *)CFG_CPLD_BASE; /* set
all BA bits */
short x;
x = *dummy;
}
=================================================================
We Configured BR7/OR7 as follows
#define CFG_CPLD_BASE 0xF8000000
#define CFG_CPLD_SIZE 0x00010000 /*64 Kbytes */
#define BRx_PS_8 0x00000800 /* 8 bit port size
*/
#define BRx_MS_GPCM_P 0x00000000 /* G.P.C.M. Bus Machine Select*/
#define BRx_V 0x00000001 /* Bank Valid
*/
#define ORxG_SCY_14_CLK 0x000000e0 /* 14 clock cycles wait states */
#define ORxG_CSNT 0x00000800 /* Chip Select
Negation Time */
#define ORxG_ACS_DIV2 0x00000600 /* CS is output 1/2 a clock
later */
#define ORxG_TRLX 0x00000004 /* Timing Relaxed
*/
#define ORxG_EHTR 0x00000002 /* Extended Hold Time
on Read */
=================================================================
/*
* BR7 is configured as follows:
*
* - Base address of 0xF8000000
* - 8 bit port size
* - Data errors checking is disabled
* - Read and write access
* - GPCM
* - Access are handled by the memory controller according to MSEL
* - Not used for atomic operations
* - No data pipelining is done
* - Valid
*/
# define CFG_BR7_PRELIM ((CFG_CPLD_BASE & BRx_BA_MSK) |\
BRx_PS_8
|\
BRx_MS_GPCM_P
|\
BRx_V)
=================================================================
/* OR7 is configured as follows:
*
* - 64 KB byte
* - *BCTL0 is asserted upon access to the current memory bank
* - *CW / *WE are negated a quarter of a clock earlier
* - *CS is output at the same time as the address lines
* - Uses a clock cycle length of 15
* - *PSDVAL is generated internally by the memory controller
* unless *GTA is asserted earlier externally.
* - Relaxed timing is generated by the GPCM for accesses
* initiated to this memory region.
* - One idle clock is inserted between a read access from the
* current bank and the next access.
*/
#define P2SZ_TO_AM(s) ((~((s) - 1)) & 0xffff8000) /* must be pow of 2 */
# define CFG_OR7_PRELIM (P2SZ_TO_AM(CFG_CPLD_SIZE) |\
ORxG_CSNT
|\
ORxG_ACS_DIV2
|\
ORxG_SCY_14_CLK
|\
ORxG_TRLX
|\
ORxG_EHTR)
=================================================================
--
Thanks and Regards,
Sudhakar V
GDA Technologies Ltd.
http://www.gdatech.com
More information about the U-Boot
mailing list