Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
U-Boot
Custodians
RISC-V U-Boot Custodian Tree
Commits
f5c5ef4a
Commit
f5c5ef4a
authored
Apr 05, 2005
by
wdenk
Browse files
Add support for TQM8560 board
parent
3dd7f0f0
Changes
9
Hide whitespace changes
Inline
Side-by-side
CHANGELOG
View file @
f5c5ef4a
...
...
@@ -2,6 +2,8 @@
Changes for U-Boot 1.1.3:
======================================================================
* Add support for TQM8560 board
* Add FEC support for TQM8540 board.
Interfaces are named as follows: "ENET1" - TSEC2, "ENET2" - FEC
...
...
Makefile
View file @
f5c5ef4a
...
...
@@ -1211,6 +1211,9 @@ stxgp3_config: unconfig
TQM8540_config
:
unconfig
@
./mkconfig
$
(
@:_config
=)
ppc mpc85xx tqm8540
TQM8560_config
:
unconfig
@
./mkconfig
$
(
@:_config
=)
ppc mpc85xx tqm8560
#########################################################################
## 74xx/7xx Systems
#########################################################################
...
...
board/tqm8560/Makefile
0 → 100644
View file @
f5c5ef4a
#
# (C) Copyright 2001
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
#
# See file CREDITS for list of people who contributed to this
# project.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#
include
$(TOPDIR)/config.mk
LIB
=
lib
$(BOARD)
.a
OBJS
:=
$(BOARD)
.o
SOBJS
:=
init.o
#SOBJS :=
$(LIB)
:
$(OBJS) $(SOBJS)
$(AR)
crv
$@
$(OBJS)
clean
:
rm
-f
$(OBJS)
$(SOBJS)
distclean
:
clean
rm
-f
$(LIB)
core
*
.bak .depend
#########################################################################
.depend
:
Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c)
$(CC)
-M
$(CPPFLAGS)
$(SOBJS:.o=.S)
$(OBJS:.o=.c)
>
$@
-include
.depend
#########################################################################
board/tqm8560/config.mk
0 → 100644
View file @
f5c5ef4a
# Copyright 2004 Freescale Semiconductor.
# Modified by Xianghua Xiao, X.Xiao@motorola.com
# (C) Copyright 2002,Motorola Inc.
#
# See file CREDITS for list of people who contributed to this
# project.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#
#
# tqm8560 board
# default CCARBAR is at 0xff700000
# assume U-Boot is less than 256k
#
TEXT_BASE
=
0xfffc0000
board/tqm8560/init.S
0 → 100644
View file @
f5c5ef4a
/*
*
Copyright
2004
Freescale
Semiconductor
.
*
Copyright
(
C
)
2002
,
2003
,
Motorola
Inc
.
*
Xianghua
Xiao
<
X
.
Xiao
@
motorola
.
com
>
*
*
See
file
CREDITS
for
list
of
people
who
contributed
to
this
*
project
.
*
*
This
program
is
free
software
; you can redistribute it and/or
*
modify
it
under
the
terms
of
the
GNU
General
Public
License
as
*
published
by
the
Free
Software
Foundation
; either version 2 of
*
the
License
,
or
(
at
your
option
)
any
later
version
.
*
*
This
program
is
distributed
in
the
hope
that
it
will
be
useful
,
*
but
WITHOUT
ANY
WARRANTY
; without even the implied warranty of
*
MERCHANTABILITY
or
FITNESS
FOR
A
PARTICULAR
PURPOSE
.
See
the
*
GNU
General
Public
License
for
more
details
.
*
*
You
should
have
received
a
copy
of
the
GNU
General
Public
License
*
along
with
this
program
; if not, write to the Free Software
*
Foundation
,
Inc
.
,
59
Temple
Place
,
Suite
330
,
Boston
,
*
MA
02111
-
1307
USA
*/
#include <ppc_asm.tmpl>
#include <ppc_defs.h>
#include <asm/cache.h>
#include <asm/mmu.h>
#include <config.h>
#include <mpc85xx.h>
/*
*
TLB0
and
TLB1
Entries
*
*
Out
of
reset
,
TLB1
's Entry 0 maps the highest 4K for CCSRBAR.
*
However
,
CCSRBAR
is
then
relocated
to
CFG_CCSRBAR
right
after
*
these
TLB
entries
are
established
.
*
*
The
TLB
entries
for
DDR
are
dynamically
setup
in
spd_sdram
()
*
and
use
TLB1
Entries
8
through
15
as
needed
according
to
the
*
size
of
DDR
memory
.
*
*
MAS0
:
tlbsel
,
esel
,
nv
*
MAS1
:
valid
,
iprot
,
tid
,
ts
,
tsize
*
MAS2
:
epn
,
sharen
,
x0
,
x1
,
w
,
i
,
m
,
g
,
e
*
MAS3
:
rpn
,
u0
-
u3
,
ux
,
sx
,
uw
,
sw
,
ur
,
sr
*/
#define entry_start \
mflr
r1
; \
bl
0
f
;
#define entry_end \
0
:
mflr
r0
; \
mtlr
r1
; \
blr
;
.
section
.
bootpg
,
"ax"
.
globl
tlb1_entry
tlb1_entry
:
entry_start
/
*
*
Number
of
TLB0
and
TLB1
entries
in
the
following
table
*/
.
long
13
/
*
*
TLB0
16
K
Cacheable
,
non
-
guarded
*
0xd001
_0000
16
K
Temporary
Global
data
for
initialization
*
*
Use
four
4
K
TLB0
entries
.
These
entries
must
be
cacheable
*
as
they
provide
the
bootstrap
memory
before
the
memory
*
controler
and
real
memory
have
been
configured
.
*
*
These
entries
end
up
at
TLB0
Indicies
0x10
,
0x14
,
0x18
and
0x1c
,
*
and
must
not
collide
with
other
TLB0
entries
.
*/
.
long
TLB1_MAS0
(
0
,
0
,
0
)
.
long
TLB1_MAS1
(
1
,
0
,
0
,
0
,
0
)
.
long
TLB1_MAS2
(
E500_TLB_EPN
(
CFG_INIT_RAM_ADDR
),
0,0,0,0,0,0,0,0)
.
long
TLB1_MAS3
(
E500_TLB_RPN
(
CFG_INIT_RAM_ADDR
),
0,0,0,0,0,1,0,1,0,1)
.
long
TLB1_MAS0
(
0
,
0
,
0
)
.
long
TLB1_MAS1
(
1
,
0
,
0
,
0
,
0
)
.
long
TLB1_MAS2
(
E500_TLB_EPN
(
CFG_INIT_RAM_ADDR
+
4
*
1024
),
0,0,0,0,0,0,0,0)
.
long
TLB1_MAS3
(
E500_TLB_RPN
(
CFG_INIT_RAM_ADDR
+
4
*
1024
),
0,0,0,0,0,1,0,1,0,1)
.
long
TLB1_MAS0
(
0
,
0
,
0
)
.
long
TLB1_MAS1
(
1
,
0
,
0
,
0
,
0
)
.
long
TLB1_MAS2
(
E500_TLB_EPN
(
CFG_INIT_RAM_ADDR
+
8
*
1024
),
0,0,0,0,0,0,0,0)
.
long
TLB1_MAS3
(
E500_TLB_RPN
(
CFG_INIT_RAM_ADDR
+
8
*
1024
),
0,0,0,0,0,1,0,1,0,1)
.
long
TLB1_MAS0
(
0
,
0
,
0
)
.
long
TLB1_MAS1
(
1
,
0
,
0
,
0
,
0
)
.
long
TLB1_MAS2
(
E500_TLB_EPN
(
CFG_INIT_RAM_ADDR
+
12
*
1024
),
0,0,0,0,0,0,0,0)
.
long
TLB1_MAS3
(
E500_TLB_RPN
(
CFG_INIT_RAM_ADDR
+
12
*
1024
),
0,0,0,0,0,1,0,1,0,1)
/
*
*
TLB
0
,
1
:
32
M
Non
-
cacheable
,
guarded
*
0xfe000000
32
M
FLASH
*
Out
of
reset
this
entry
is
only
4
K
.
*/
.
long
TLB1_MAS0
(
1
,
1
,
0
)
.
long
TLB1_MAS1
(
1
,
1
,
0
,
0
,
BOOKE_PAGESZ_16M
)
.
long
TLB1_MAS2
(
E500_TLB_EPN
(
CFG_FLASH_BASE
),
0
,
0
,
0
,
0
,
1
,
0
,
1
,
0
)
.
long
TLB1_MAS3
(
E500_TLB_RPN
(
CFG_FLASH_BASE
),
0
,
0
,
0
,
0
,
0
,
1
,
0
,
1
,
0
,
1
)
.
long
TLB1_MAS0
(
1
,
0
,
0
)
.
long
TLB1_MAS1
(
1
,
1
,
0
,
0
,
BOOKE_PAGESZ_16M
)
.
long
TLB1_MAS2
(
E500_TLB_EPN
(
CFG_FLASH_BASE
+
0x1000000
),
0
,
0
,
0
,
0
,
1
,
0
,
1
,
0
)
.
long
TLB1_MAS3
(
E500_TLB_RPN
(
CFG_FLASH_BASE
+
0x1000000
),
0
,
0
,
0
,
0
,
0
,
1
,
0
,
1
,
0
,
1
)
/
*
*
TLB
2
:
256
M
Non
-
cacheable
,
guarded
*
0x80000000
256
M
PCI1
MEM
First
half
*/
.
long
TLB1_MAS0
(
1
,
2
,
0
)
.
long
TLB1_MAS1
(
1
,
1
,
0
,
0
,
BOOKE_PAGESZ_256M
)
.
long
TLB1_MAS2
(
E500_TLB_EPN
(
CFG_PCI1_MEM_BASE
),
0
,
0
,
0
,
0
,
1
,
0
,
1
,
0
)
.
long
TLB1_MAS3
(
E500_TLB_RPN
(
CFG_PCI1_MEM_BASE
),
0
,
0
,
0
,
0
,
0
,
1
,
0
,
1
,
0
,
1
)
/
*
*
TLB
3
:
256
M
Non
-
cacheable
,
guarded
*
0x90000000
256
M
PCI1
MEM
Second
half
*/
.
long
TLB1_MAS0
(
1
,
3
,
0
)
.
long
TLB1_MAS1
(
1
,
1
,
0
,
0
,
BOOKE_PAGESZ_256M
)
.
long
TLB1_MAS2
(
E500_TLB_EPN
(
CFG_PCI1_MEM_BASE
+
0x10000000
),
0,0,0,0,1,0,1,0)
.
long
TLB1_MAS3
(
E500_TLB_RPN
(
CFG_PCI1_MEM_BASE
+
0x10000000
),
0,0,0,0,0,1,0,1,0,1)
/
*
*
TLB
4
:
256
M
Non
-
cacheable
,
guarded
*
0xc0000000
256
M
Rapid
IO
MEM
First
half
*/
.
long
TLB1_MAS0
(
1
,
4
,
0
)
.
long
TLB1_MAS1
(
1
,
1
,
0
,
0
,
BOOKE_PAGESZ_256M
)
.
long
TLB1_MAS2
(
E500_TLB_EPN
(
CFG_RIO_MEM_BASE
),
0
,
0
,
0
,
0
,
1
,
0
,
1
,
0
)
.
long
TLB1_MAS3
(
E500_TLB_RPN
(
CFG_RIO_MEM_BASE
),
0
,
0
,
0
,
0
,
0
,
1
,
0
,
1
,
0
,
1
)
/
*
*
TLB
5
:
256
M
Non
-
cacheable
,
guarded
*
0xd0000000
256
M
Rapid
IO
MEM
Second
half
*/
.
long
TLB1_MAS0
(
1
,
5
,
0
)
.
long
TLB1_MAS1
(
1
,
1
,
0
,
0
,
BOOKE_PAGESZ_256M
)
.
long
TLB1_MAS2
(
E500_TLB_EPN
(
CFG_RIO_MEM_BASE
+
0x10000000
),
0,0,0,0,1,0,1,0)
.
long
TLB1_MAS3
(
E500_TLB_RPN
(
CFG_RIO_MEM_BASE
+
0x10000000
),
0,0,0,0,0,1,0,1,0,1)
/
*
*
TLB
6
:
64
M
Non
-
cacheable
,
guarded
*
0xe000
_0000
1
M
CCSRBAR
*
0xe200
_0000
16
M
PCI1
IO
*/
.
long
TLB1_MAS0
(
1
,
6
,
0
)
.
long
TLB1_MAS1
(
1
,
1
,
0
,
0
,
BOOKE_PAGESZ_64M
)
.
long
TLB1_MAS2
(
E500_TLB_EPN
(
CFG_CCSRBAR
),
0
,
0
,
0
,
0
,
1
,
0
,
1
,
0
)
.
long
TLB1_MAS3
(
E500_TLB_RPN
(
CFG_CCSRBAR
),
0
,
0
,
0
,
0
,
0
,
1
,
0
,
1
,
0
,
1
)
#if !defined(CONFIG_SPD_EEPROM)
/
*
*
TLB
7
:
256
M
DDR
*
0x00000000
256
M
DDR
System
memory
*
Without
SPD
EEPROM
configured
DDR
,
this
must
be
setup
manually
.
*
Make
sure
the
TLB
count
at
the
top
of
this
table
is
correct
.
*
Likely
it
needs
to
be
increased
by
two
for
these
entries
.
*/
.
long
TLB1_MAS0
(
1
,
7
,
0
)
.
long
TLB1_MAS1
(
1
,
1
,
0
,
0
,
BOOKE_PAGESZ_256M
)
.
long
TLB1_MAS2
(
E500_TLB_EPN
(
CFG_DDR_SDRAM_BASE
),
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
)
.
long
TLB1_MAS3
(
E500_TLB_RPN
(
CFG_DDR_SDRAM_BASE
),
0
,
0
,
0
,
0
,
0
,
1
,
0
,
1
,
0
,
1
)
.
long
TLB1_MAS0
(
1
,
8
,
0
)
.
long
TLB1_MAS1
(
1
,
1
,
0
,
0
,
BOOKE_PAGESZ_256M
)
.
long
TLB1_MAS2
(
E500_TLB_EPN
(
CFG_DDR_SDRAM_BASE
+
0x10000000
),
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
)
.
long
TLB1_MAS3
(
E500_TLB_RPN
(
CFG_DDR_SDRAM_BASE
+
0x10000000
),
0
,
0
,
0
,
0
,
0
,
1
,
0
,
1
,
0
,
1
)
#endif
entry_end
/*
*
LAW
(
Local
Access
Window
)
configuration
:
*
*
0x0000
_0000
0x7fff
_ffff
DDR
2
G
*
0x8000
_0000
0x9fff
_ffff
PCI1
MEM
512
M
*
0xc000
_0000
0xdfff
_ffff
RapidIO
512
M
*
0xe000
_0000
0xe000
_ffff
CCSR
1
M
*
0xe200
_0000
0xe2ff
_ffff
PCI1
IO
16
M
*
0xf800
_0000
0xf80f
_ffff
BCSR
1
M
*
0xfe00
_0000
0xffff
_ffff
FLASH
(
boot
bank
)
32
M
*
*
Notes
:
*
CCSRBAR
and
L2
-
as
-
SRAM
don
't need a configured Local Access Window.
*
If
flash
is
8
M
at
default
position
(
last
8
M
),
no
LAW
needed
.
*/
#if !defined(CONFIG_SPD_EEPROM)
#define LAWBAR0 ((CFG_DDR_SDRAM_BASE>>12) & 0xfffff)
#define LAWAR0 (LAWAR_EN | LAWAR_TRGT_IF_DDR | (LAWAR_SIZE & LAWAR_SIZE_256M))
#else
#define LAWBAR0 0
#define LAWAR0 ((LAWAR_TRGT_IF_DDR | (LAWAR_SIZE & LAWAR_SIZE_128M)) & ~LAWAR_EN)
#endif
#define LAWBAR1 ((CFG_PCI1_MEM_BASE>>12) & 0xfffff)
#define LAWAR1 (LAWAR_EN | LAWAR_TRGT_IF_PCIX | (LAWAR_SIZE & LAWAR_SIZE_512M))
#define LAWBAR2 ((CFG_LBC_FLASH_BASE>>12) & 0xfffff)
#define LAWAR2 (LAWAR_EN | LAWAR_TRGT_IF_LBC | (LAWAR_SIZE & LAWAR_SIZE_32M))
#define LAWBAR3 ((CFG_PCI1_IO_BASE>>12) & 0xfffff)
#define LAWAR3 (LAWAR_EN | LAWAR_TRGT_IF_PCIX | (LAWAR_SIZE & LAWAR_SIZE_16M))
/*
*
Rapid
IO
at
0xc000
_0000
for
512
M
*/
#define LAWBAR4 ((CFG_RIO_MEM_BASE>>12) & 0xfffff)
#define LAWAR4 (LAWAR_EN | LAWAR_TRGT_IF_RIO | (LAWAR_SIZE & LAWAR_SIZE_512M))
.
section
.
bootpg
,
"ax"
.
globl
law_entry
law_entry
:
entry_start
.
long
0x05
.
long
LAWBAR0
,
LAWAR0
,
LAWBAR1
,
LAWAR1
,
LAWBAR2
,
LAWAR2
,
LAWBAR3
,
LAWAR3
.
long
LAWBAR4
,
LAWAR4
entry_end
board/tqm8560/tqm8560.c
0 → 100644
View file @
f5c5ef4a
/*
* Copyright 2005 DENX Software Engineering
* Copyright 2004 Freescale Semiconductor.
* (C) Copyright 2002,2003, Motorola Inc.
* Xianghua Xiao, (X.Xiao@motorola.com)
*
* (C) Copyright 2002 Scott McNutt <smcnutt@artesyncp.com>
*
* See file CREDITS for list of people who contributed to this
* project.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*/
#include <common.h>
#include <pci.h>
#include <asm/processor.h>
#include <asm/immap_85xx.h>
#include <ioports.h>
#include <spd.h>
#if defined(CONFIG_DDR_ECC)
extern
void
ddr_enable_ecc
(
unsigned
int
dram_size
);
#endif
extern
long
int
spd_sdram
(
void
);
void
local_bus_init
(
void
);
long
int
fixed_sdram
(
void
);
/*
* I/O Port configuration table
*
* if conf is 1, then that port pin will be configured at boot time
* according to the five values podr/pdir/ppar/psor/pdat for that entry
*/
const
iop_conf_t
iop_conf_tab
[
4
][
32
]
=
{
/* Port A configuration */
{
/* conf ppar psor pdir podr pdat */
/* PA31 */
{
0
,
1
,
0
,
1
,
0
,
0
},
/* FCC1 TxENB */
/* PA30 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* FCC1 TxClav */
/* PA29 */
{
0
,
1
,
0
,
1
,
0
,
0
},
/* FCC1 TxSOC */
/* PA28 */
{
0
,
1
,
0
,
1
,
0
,
0
},
/* FCC1 RxENB */
/* PA27 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* FCC1 RxSOC */
/* PA26 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* FCC1 RxClav */
/* PA25 */
{
0
,
1
,
0
,
1
,
0
,
0
},
/* FCC1 ATMTXD[0] */
/* PA24 */
{
0
,
1
,
0
,
1
,
0
,
0
},
/* FCC1 ATMTXD[1] */
/* PA23 */
{
0
,
1
,
0
,
1
,
0
,
0
},
/* FCC1 ATMTXD[2] */
/* PA22 */
{
0
,
1
,
0
,
1
,
0
,
0
},
/* FCC1 ATMTXD[3] */
/* PA21 */
{
0
,
1
,
0
,
1
,
0
,
0
},
/* FCC1 ATMTXD[4] */
/* PA20 */
{
0
,
1
,
0
,
1
,
0
,
0
},
/* FCC1 ATMTXD[5] */
/* PA19 */
{
0
,
1
,
0
,
1
,
0
,
0
},
/* FCC1 ATMTXD[6] */
/* PA18 */
{
0
,
1
,
0
,
1
,
0
,
0
},
/* FCC1 ATMTXD[7] */
/* PA17 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* FCC1 ATMRXD[7] */
/* PA16 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* FCC1 ATMRXD[6] */
/* PA15 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* FCC1 ATMRXD[5] */
/* PA14 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* FCC1 ATMRXD[4] */
/* PA13 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* FCC1 ATMRXD[3] */
/* PA12 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* FCC1 ATMRXD[2] */
/* PA11 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* FCC1 ATMRXD[1] */
/* PA10 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* FCC1 ATMRXD[0] */
/* PA9 */
{
0
,
1
,
1
,
1
,
0
,
0
},
/* FCC1 L1TXD */
/* PA8 */
{
0
,
1
,
1
,
0
,
0
,
0
},
/* FCC1 L1RXD */
/* PA7 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PA7 */
/* PA6 */
{
0
,
1
,
1
,
1
,
0
,
0
},
/* TDM A1 L1RSYNC */
/* PA5 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PA5 */
/* PA4 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PA4 */
/* PA3 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PA3 */
/* PA2 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PA2 */
/* PA1 */
{
0
,
0
,
0
,
0
,
0
,
0
},
/* FREERUN */
/* PA0 */
{
0
,
0
,
0
,
1
,
0
,
0
}
/* PA0 */
},
/* Port B configuration */
{
/* conf ppar psor pdir podr pdat */
/* PB31 */
{
0
,
1
,
0
,
1
,
0
,
0
},
/* FCC2 MII TX_ER */
/* PB30 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* FCC2 MII RX_DV */
/* PB29 */
{
0
,
1
,
1
,
1
,
0
,
0
},
/* FCC2 MII TX_EN */
/* PB28 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* FCC2 MII RX_ER */
/* PB27 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* FCC2 MII COL */
/* PB26 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* FCC2 MII CRS */
/* PB25 */
{
0
,
1
,
0
,
1
,
0
,
0
},
/* FCC2 MII TxD[3] */
/* PB24 */
{
0
,
1
,
0
,
1
,
0
,
0
},
/* FCC2 MII TxD[2] */
/* PB23 */
{
0
,
1
,
0
,
1
,
0
,
0
},
/* FCC2 MII TxD[1] */
/* PB22 */
{
0
,
1
,
0
,
1
,
0
,
0
},
/* FCC2 MII TxD[0] */
/* PB21 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* FCC2 MII RxD[0] */
/* PB20 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* FCC2 MII RxD[1] */
/* PB19 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* FCC2 MII RxD[2] */
/* PB18 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* FCC2 MII RxD[3] */
/* PB17 */
{
1
,
1
,
0
,
0
,
0
,
0
},
/* FCC3:RX_DIV */
/* PB16 */
{
1
,
1
,
0
,
0
,
0
,
0
},
/* FCC3:RX_ERR */
/* PB15 */
{
1
,
1
,
0
,
1
,
0
,
0
},
/* FCC3:TX_ERR */
/* PB14 */
{
1
,
1
,
0
,
1
,
0
,
0
},
/* FCC3:TX_EN */
/* PB13 */
{
1
,
1
,
0
,
0
,
0
,
0
},
/* FCC3:COL */
/* PB12 */
{
1
,
1
,
0
,
0
,
0
,
0
},
/* FCC3:CRS */
/* PB11 */
{
1
,
1
,
0
,
0
,
0
,
0
},
/* FCC3:RXD */
/* PB10 */
{
1
,
1
,
0
,
0
,
0
,
0
},
/* FCC3:RXD */
/* PB9 */
{
1
,
1
,
0
,
0
,
0
,
0
},
/* FCC3:RXD */
/* PB8 */
{
1
,
1
,
0
,
0
,
0
,
0
},
/* FCC3:RXD */
/* PB7 */
{
1
,
1
,
0
,
1
,
0
,
0
},
/* FCC3:TXD */
/* PB6 */
{
1
,
1
,
0
,
1
,
0
,
0
},
/* FCC3:TXD */
/* PB5 */
{
1
,
1
,
0
,
1
,
0
,
0
},
/* FCC3:TXD */
/* PB4 */
{
1
,
1
,
0
,
1
,
0
,
0
},
/* FCC3:TXD */
/* PB3 */
{
0
,
0
,
0
,
0
,
0
,
0
},
/* pin doesn't exist */
/* PB2 */
{
0
,
0
,
0
,
0
,
0
,
0
},
/* pin doesn't exist */
/* PB1 */
{
0
,
0
,
0
,
0
,
0
,
0
},
/* pin doesn't exist */
/* PB0 */
{
0
,
0
,
0
,
0
,
0
,
0
}
/* pin doesn't exist */
},
/* Port C */
{
/* conf ppar psor pdir podr pdat */
/* PC31 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PC31 */
/* PC30 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PC30 */
/* PC29 */
{
0
,
1
,
1
,
0
,
0
,
0
},
/* SCC1 EN *CLSN */
/* PC28 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PC28 */
/* PC27 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* UART Clock in */
/* PC26 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PC26 */
/* PC25 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PC25 */
/* PC24 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PC24 */
/* PC23 */
{
0
,
1
,
0
,
1
,
0
,
0
},
/* ATMTFCLK */
/* PC22 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* ATMRFCLK */
/* PC21 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* SCC1 EN RXCLK */
/* PC20 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* SCC1 EN TXCLK */
/* PC19 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* FCC2 MII RX_CLK CLK13 */
/* PC18 */
{
1
,
1
,
0
,
0
,
0
,
0
},
/* FCC Tx Clock (CLK14) */
/* PC17 */
{
1
,
1
,
0
,
0
,
0
,
0
},
/* PC17 */
/* PC16 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* FCC Tx Clock (CLK16) */
/* PC15 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* PC15 */
/* PC14 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* SCC1 EN *CD */
/* PC13 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* PC13 */
/* PC12 */
{
0
,
1
,
0
,
1
,
0
,
0
},
/* PC12 */
/* PC11 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* LXT971 transmit control */
/* PC10 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* FETHMDC */
/* PC9 */
{
0
,
0
,
0
,
0
,
0
,
0
},
/* FETHMDIO */
/* PC8 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PC8 */
/* PC7 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PC7 */
/* PC6 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PC6 */
/* PC5 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PC5 */
/* PC4 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PC4 */
/* PC3 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PC3 */
/* PC2 */
{
0
,
0
,
0
,
1
,
0
,
1
},
/* ENET FDE */
/* PC1 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* ENET DSQE */
/* PC0 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* ENET LBK */
},
/* Port D */
{
/* conf ppar psor pdir podr pdat */
/* PD31 */
{
1
,
1
,
0
,
0
,
0
,
0
},
/* SCC1 EN RxD */
/* PD30 */
{
1
,
1
,
1
,
1
,
0
,
0
},
/* SCC1 EN TxD */
/* PD29 */
{
1
,
1
,
0
,
1
,
0
,
0
},
/* SCC1 EN TENA */
/* PD28 */
{
1
,
1
,
0
,
0
,
0
,
0
},
/* PD28 */
/* PD27 */
{
1
,
1
,
0
,
1
,
0
,
0
},
/* PD27 */
/* PD26 */
{
1
,
1
,
0
,
1
,
0
,
0
},
/* PD26 */
/* PD25 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PD25 */
/* PD24 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PD24 */
/* PD23 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PD23 */
/* PD22 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PD22 */
/* PD21 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PD21 */
/* PD20 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PD20 */
/* PD19 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PD19 */
/* PD18 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* PD18 */
/* PD17 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* FCC1 ATMRXPRTY */
/* PD16 */
{
0
,
1
,
0
,
1
,
0
,
0
},
/* FCC1 ATMTXPRTY */
/* PD15 */
{
0
,
1
,
1
,
0
,
1
,
0
},
/* I2C SDA */
/* PD14 */
{
0
,
0
,
0
,
1
,
0
,
0
},
/* LED */
/* PD13 */
{
0
,
0
,
0
,
0
,
0
,
0
},
/* PD13 */
/* PD12 */
{
0
,
0
,
0
,
0
,
0
,
0
},
/* PD12 */
/* PD11 */
{
0
,
0
,
0
,
0
,
0
,
0
},
/* PD11 */
/* PD10 */
{
0
,
0
,
0
,
0
,
0
,
0
},
/* PD10 */
/* PD9 */
{
0
,
1
,
0
,
1
,
0
,
0
},
/* SMC1 TXD */
/* PD8 */
{
0
,
1
,
0
,
0
,
0
,
0
},
/* SMC1 RXD */
/* PD7 */
{
0
,
0
,
0
,
1
,
0
,
1
},
/* PD7 */
/* PD6 */
{
0
,
0
,
0
,
1
,
0
,
1
},
/* PD6 */
/* PD5 */
{
0
,
0
,
0
,
1
,
0
,
1
},
/* PD5 */
/* PD4 */
{
0
,
0
,
0
,
1
,
0
,
1
},
/* PD4 */
/* PD3 */
{
0
,
0
,
0
,
0
,
0
,
0
},
/* pin doesn't exist */
/* PD2 */
{
0
,
0
,
0
,
0
,
0
,
0
},
/* pin doesn't exist */
/* PD1 */
{
0
,
0
,
0
,
0
,
0
,
0
},
/* pin doesn't exist */
/* PD0 */
{
0
,
0
,
0
,
0
,
0
,
0
}
/* pin doesn't exist */
}
};
int
board_early_init_f
(
void
)
{
return
0
;
}
int
checkboard
(
void
)
{
puts
(
"Board: TQM8560
\n
"
);
#ifdef CONFIG_PCI
printf
(
"PCI1: 32 bit, %d MHz (compiled)
\n
"
,
CONFIG_SYS_CLK_FREQ
/
1000000
);
#else
printf
(
"PCI1: disabled
\n
"
);
#endif
/*
* Initialize local bus.
*/
local_bus_init
();
return
0
;
}
long
int
initdram
(
int
board_type
)
{
long
dram_size
=
0
;
extern
long
spd_sdram
(
void
);
volatile
immap_t
*
immap
=
(
immap_t
*
)
CFG_IMMR
;
#if defined(CONFIG_DDR_DLL)
{
volatile
ccsr_gur_t
*
gur
=
&
immap
->
im_gur
;
uint
temp_ddrdll
=
0
;
/*
* Work around to stabilize DDR DLL
*/
temp_ddrdll
=
gur
->
ddrdllcr
;
gur
->
ddrdllcr
=
((
temp_ddrdll
&
0xff
)
<<
16
)
|
0x80000000
;
asm
(
"sync;isync;msync"
);
}
#endif
#if defined(CONFIG_SPD_EEPROM)
dram_size
=
spd_sdram
();
#else
dram_size
=
fixed_sdram
();
#endif
#if defined(CONFIG_DDR_ECC)
/*
* Initialize and enable DDR ECC.
*/
ddr_enable_ecc
(
dram_size
);