Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
U
uboot-imx
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
8
Issues
8
List
Boards
Labels
Milestones
Merge Requests
7
Merge Requests
7
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Librem5
uboot-imx
Commits
4a442d31
Commit
4a442d31
authored
Aug 16, 2007
by
TsiChungLiew
Committed by
John Rigby
Aug 17, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ColdFire: Add M5235EVB Platform for MCF523x
Signed-off-by:
TsiChungLiew
<
Tsi-Chung.Liew@freescale.com
>
parent
8ae158cd
Changes
22
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
3303 additions
and
4 deletions
+3303
-4
CREDITS
CREDITS
+1
-1
MAINTAINERS
MAINTAINERS
+1
-0
MAKEALL
MAKEALL
+1
-0
Makefile
Makefile
+22
-3
board/freescale/m5235evb/Makefile
board/freescale/m5235evb/Makefile
+44
-0
board/freescale/m5235evb/config.mk
board/freescale/m5235evb/config.mk
+28
-0
board/freescale/m5235evb/m5235evb.c
board/freescale/m5235evb/m5235evb.c
+117
-0
board/freescale/m5235evb/mii.c
board/freescale/m5235evb/mii.c
+307
-0
board/freescale/m5235evb/u-boot.16
board/freescale/m5235evb/u-boot.16
+145
-0
board/freescale/m5235evb/u-boot.32
board/freescale/m5235evb/u-boot.32
+153
-0
board/freescale/m5235evb/u-boot.lds
board/freescale/m5235evb/u-boot.lds
+145
-0
cpu/mcf523x/Makefile
cpu/mcf523x/Makefile
+48
-0
cpu/mcf523x/config.mk
cpu/mcf523x/config.mk
+27
-0
cpu/mcf523x/cpu.c
cpu/mcf523x/cpu.c
+109
-0
cpu/mcf523x/cpu_init.c
cpu/mcf523x/cpu_init.c
+145
-0
cpu/mcf523x/interrupts.c
cpu/mcf523x/interrupts.c
+49
-0
cpu/mcf523x/speed.c
cpu/mcf523x/speed.c
+48
-0
cpu/mcf523x/start.S
cpu/mcf523x/start.S
+340
-0
include/asm-m68k/immap.h
include/asm-m68k/immap.h
+29
-0
include/asm-m68k/immap_5235.h
include/asm-m68k/immap_5235.h
+378
-0
include/asm-m68k/m5235.h
include/asm-m68k/m5235.h
+905
-0
include/configs/M5235EVB.h
include/configs/M5235EVB.h
+261
-0
No files found.
CREDITS
View file @
4a442d31
...
...
@@ -491,7 +491,7 @@ W: www.monstr.eu
N: TsiChung Liew
E: Tsi-Chung.Liew@freescale.com
D: Support for ColdFire MCF532x, MCF5445x
D: Support for ColdFire MCF5
23x, MCF5
32x, MCF5445x
W: www.freescale.com
N: Hayden Fraser
...
...
MAINTAINERS
View file @
4a442d31
...
...
@@ -608,6 +608,7 @@ Zachary P. Landau <zachary.landau@labxtechnologies.com>
TsiChung Liew <Tsi-Chung.Liew@freescale.com>
M5235EVB mcf52x2
M5329EVB mcf532x
M54455EVB mcf5445x
...
...
MAKEALL
View file @
4a442d31
...
...
@@ -618,6 +618,7 @@ LIST_coldfire=" \
EB+MCF-EV123
\
EB+MCF-EV123_internal
\
idmr
\
M5235EVB
\
M5249EVB
\
M5253EVB
\
M5271EVB
\
...
...
Makefile
View file @
4a442d31
...
...
@@ -1639,6 +1639,25 @@ ZPC1900_config: unconfig
## Coldfire
#########################################################################
M5235EVB_config
\
M5235EVB_Flash16_config
\
M5235EVB_Flash32_config
:
unconfig
@
case
"
$@
"
in
\
M5235EVB_config
)
FLASH
=
16
;;
\
M5235EVB_Flash16_config
)
FLASH
=
16
;;
\
M5235EVB_Flash32_config
)
FLASH
=
32
;;
\
esac
;
\
>
include/config.h
;
\
if
[
"
$
${FLASH}
"
!=
"16"
]
;
then
\
echo
"#define NORFLASH_PS32BIT 1"
>>
include/config.h
;
\
echo
"TEXT_BASE = 0xFFC00000"
>
$(obj)
board/freescale/m5235evb/config.tmp
;
\
cp
$(obj)
board/freescale/m5235evb/u-boot.32
$(obj)
board/freescale/m5235evb/u-boot.lds
;
\
else
\
echo
"TEXT_BASE = 0xFFE00000"
>
$(obj)
board/freescale/m5235evb/config.tmp
;
\
cp
$(obj)
board/freescale/m5235evb/u-boot.16
$(obj)
board/freescale/m5235evb/u-boot.lds
;
\
fi
@
$(MKCONFIG)
-a
M5235EVB m68k mcf523x m5235evb freescale
M5249EVB_config
:
unconfig
@
$(MKCONFIG)
$
(
@:_config
=)
m68k mcf52x2 m5249evb freescale
...
...
@@ -1710,13 +1729,13 @@ M54455EVB_i66_config : unconfig
esac
;
\
>
include/config.h
;
\
if
[
"
$
${FLASH}
"
==
"INTEL"
]
;
then
\
echo
"#undef CFG_ATMEL_BOOT"
>>
include/config.h
;
\
echo
"#undef CFG_ATMEL_BOOT"
>>
$(obj)
include/config.h
;
\
echo
"... with INTEL boot..."
;
\
else
\
echo
"#define CFG_ATMEL_BOOT"
>>
include/config.h
;
\
echo
"#define CFG_ATMEL_BOOT"
>>
$(obj)
include/config.h
;
\
echo
"... with ATMEL boot..."
;
\
fi
;
\
echo
"#define CFG_INPUT_CLKSRC
$
${FREQ}
"
>>
include/config.h
;
\
echo
"#define CFG_INPUT_CLKSRC
$
${FREQ}
"
>>
$(obj)
include/config.h
;
\
echo
"... with
$
${FREQ}
Hz input clock"
@
$(MKCONFIG)
-a
M54455EVB m68k mcf5445x m54455evb freescale
...
...
board/freescale/m5235evb/Makefile
0 → 100644
View file @
4a442d31
#
# (C) Copyright 2000-2003
# 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
=
$(obj)
lib
$(BOARD)
.a
COBJS
=
$(BOARD)
.o mii.o
SRCS
:=
$(SOBJS:.o=.S)
$(COBJS:.o=.c)
OBJS
:=
$(
addprefix
$(obj)
,
$(COBJS)
)
SOBJS
:=
$(
addprefix
$(obj)
,
$(SOBJS)
)
$(LIB)
:
$(obj).depend $(OBJS)
$(AR)
$(ARFLAGS)
$@
$(OBJS)
#########################################################################
# defines $(obj).depend target
include
$(SRCTREE)/rules.mk
sinclude
$(obj).depend
#########################################################################
board/freescale/m5235evb/config.mk
0 → 100644
View file @
4a442d31
#
# (C) Copyright 2000-2003
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
# Coldfire contribution by Bernhard Kuhn <bkuhn@metrowerks.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
#
/*
TEXT_BASE
=
0xFFC00000
*
/
sinclude
$(OBJTREE)/board/$(BOARDDIR)/config.tmp
PLATFORM_CPPFLAGS
+=
-DTEXT_BASE
=
$(TEXT_BASE)
\ No newline at end of file
board/freescale/m5235evb/m5235evb.c
0 → 100644
View file @
4a442d31
/*
* (C) Copyright 2000-2003
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*
* Copyright (C) 2004-2007 Freescale Semiconductor, Inc.
* TsiChung Liew (Tsi-Chung.Liew@freescale.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 <config.h>
#include <common.h>
#include <asm/immap.h>
DECLARE_GLOBAL_DATA_PTR
;
int
checkboard
(
void
)
{
puts
(
"Board: "
);
puts
(
"Freescale M5235 EVB
\n
"
);
return
0
;
};
long
int
initdram
(
int
board_type
)
{
volatile
sdram_t
*
sdram
=
(
volatile
sdram_t
*
)(
MMAP_SDRAM
);
volatile
gpio_t
*
gpio
=
(
volatile
gpio_t
*
)(
MMAP_GPIO
);
u32
dramsize
,
i
,
dramclk
;
/*
* When booting from external Flash, the port-size is less than
* the port-size of SDRAM. In this case it is necessary to enable
* Data[15:0] on Port Address/Data.
*/
gpio
->
par_ad
=
GPIO_PAR_AD_ADDR23
|
GPIO_PAR_AD_ADDR22
|
GPIO_PAR_AD_ADDR21
|
GPIO_PAR_AD_DATAL
;
/* Initialize PAR to enable SDRAM signals */
gpio
->
par_sdram
=
GPIO_PAR_SDRAM_SDWE
|
GPIO_PAR_SDRAM_SCAS
|
GPIO_PAR_SDRAM_SRAS
|
GPIO_PAR_SDRAM_SCKE
|
GPIO_PAR_SDRAM_SDCS
(
3
);
dramsize
=
CFG_SDRAM_SIZE
*
0x100000
;
for
(
i
=
0x13
;
i
<
0x20
;
i
++
)
{
if
(
dramsize
==
(
1
<<
i
))
break
;
}
i
--
;
if
(
!
(
sdram
->
dacr0
&
SDRAMC_DARCn_RE
))
{
dramclk
=
gd
->
bus_clk
/
(
CFG_HZ
*
CFG_HZ
);
/* Initialize DRAM Control Register: DCR */
sdram
->
dcr
=
SDRAMC_DCR_RTIM_9CLKS
|
SDRAMC_DCR_RTIM_6CLKS
|
SDRAMC_DCR_RC
((
15
*
dramclk
)
>>
4
);
/* Initialize DACR0 */
sdram
->
dacr0
=
SDRAMC_DARCn_BA
(
CFG_SDRAM_BASE
)
|
SDRAMC_DARCn_CASL_C1
|
SDRAMC_DARCn_CBM_CMD20
|
SDRAMC_DARCn_PS_32
;
/* Initialize DMR0 */
sdram
->
dmr0
=
((
dramsize
-
1
)
&
0xFFFC0000
)
|
SDRAMC_DMRn_V
;
/* Set IP (bit 3) in DACR */
sdram
->
dacr0
|=
SDRAMC_DARCn_IP
;
/* Wait 30ns to allow banks to precharge */
for
(
i
=
0
;
i
<
5
;
i
++
)
{
asm
(
"nop"
);
}
/* Write to this block to initiate precharge */
*
(
u32
*
)
(
CFG_SDRAM_BASE
)
=
0xA5A59696
;
/* Set RE (bit 15) in DACR */
sdram
->
dacr0
|=
SDRAMC_DARCn_RE
;
/* Wait for at least 8 auto refresh cycles to occur */
for
(
i
=
0
;
i
<
0x2000
;
i
++
)
{
asm
(
"nop"
);
}
/* Finish the configuration by issuing the MRS. */
sdram
->
dacr0
|=
SDRAMC_DARCn_IMRS
;
/* Write to the SDRAM Mode Register */
*
(
u32
*
)
(
CFG_SDRAM_BASE
+
0x400
)
=
0xA5A59696
;
}
return
dramsize
;
};
int
testdram
(
void
)
{
/* TODO: XXX XXX XXX */
printf
(
"DRAM test not implemented!
\n
"
);
return
(
0
);
}
board/freescale/m5235evb/mii.c
0 → 100644
View file @
4a442d31
/*
* Copyright (C) 2004-2007 Freescale Semiconductor, Inc.
* TsiChung Liew (Tsi-Chung.Liew@freescale.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 <asm/fec.h>
#include <asm/immap.h>
#include <config.h>
#include <net.h>
DECLARE_GLOBAL_DATA_PTR
;
#if defined(CONFIG_CMD_NET) && defined(CONFIG_NET_MULTI)
#undef MII_DEBUG
#undef ET_DEBUG
int
fecpin_setclear
(
struct
eth_device
*
dev
,
int
setclear
)
{
volatile
gpio_t
*
gpio
=
(
gpio_t
*
)
MMAP_GPIO
;
if
(
setclear
)
{
gpio
->
par_feci2c
|=
(
GPIO_PAR_FECI2C_EMDC_FECEMDC
|
GPIO_PAR_FECI2C_EMDIO_FECEMDIO
);
}
else
{
gpio
->
par_feci2c
&=
~
(
GPIO_PAR_FECI2C_EMDC_MASK
|
GPIO_PAR_FECI2C_EMDIO_MASK
);
}
return
0
;
}
#if defined(CFG_DISCOVER_PHY) || defined(CONFIG_MII)
#include <miiphy.h>
/* Make MII read/write commands for the FEC. */
#define mk_mii_read(ADDR, REG) (0x60020000 | ((ADDR << 23) | (REG & 0x1f) << 18))
#define mk_mii_write(ADDR, REG, VAL) (0x50020000 | ((ADDR << 23) | (REG & 0x1f) << 18) | (VAL & 0xffff))
/* PHY identification */
#define PHY_ID_LXT970 0x78100000
/* LXT970 */
#define PHY_ID_LXT971 0x001378e0
/* LXT971 and 972 */
#define PHY_ID_82555 0x02a80150
/* Intel 82555 */
#define PHY_ID_QS6612 0x01814400
/* QS6612 */
#define PHY_ID_AMD79C784 0x00225610
/* AMD 79C784 */
#define PHY_ID_LSI80225 0x0016f870
/* LSI 80225 */
#define PHY_ID_LSI80225B 0x0016f880
/* LSI 80225/B */
#define PHY_ID_DP83848VV 0x20005C90
/* National 83848 */
#define PHY_ID_DP83849 0x20005CA2
/* National 82849 */
#define PHY_ID_KS8721BL 0x00221619
/* Micrel KS8721BL/SL */
#define STR_ID_LXT970 "LXT970"
#define STR_ID_LXT971 "LXT971"
#define STR_ID_82555 "Intel82555"
#define STR_ID_QS6612 "QS6612"
#define STR_ID_AMD79C784 "AMD79C784"
#define STR_ID_LSI80225 "LSI80225"
#define STR_ID_LSI80225B "LSI80225/B"
#define STR_ID_DP83848VV "N83848"
#define STR_ID_DP83849 "N83849"
#define STR_ID_KS8721BL "KS8721BL"
/****************************************************************************
* mii_init -- Initialize the MII for MII command without ethernet
* This function is a subset of eth_init
****************************************************************************
*/
void
mii_reset
(
struct
fec_info_s
*
info
)
{
volatile
fec_t
*
fecp
=
(
fec_t
*
)
(
info
->
miibase
);
int
i
;
fecp
->
ecr
=
FEC_ECR_RESET
;
for
(
i
=
0
;
(
fecp
->
ecr
&
FEC_ECR_RESET
)
&&
(
i
<
FEC_RESET_DELAY
);
++
i
)
{
udelay
(
1
);
}
if
(
i
==
FEC_RESET_DELAY
)
{
printf
(
"FEC_RESET_DELAY timeout
\n
"
);
}
}
/* send command to phy using mii, wait for result */
uint
mii_send
(
uint
mii_cmd
)
{
struct
fec_info_s
*
info
;
struct
eth_device
*
dev
;
volatile
fec_t
*
ep
;
uint
mii_reply
;
int
j
=
0
;
/* retrieve from register structure */
dev
=
eth_get_dev
();
info
=
dev
->
priv
;
ep
=
(
fec_t
*
)
info
->
miibase
;
ep
->
mmfr
=
mii_cmd
;
/* command to phy */
/* wait for mii complete */
while
(
!
(
ep
->
eir
&
FEC_EIR_MII
)
&&
(
j
<
MCFFEC_TOUT_LOOP
))
{
udelay
(
1
);
j
++
;
}
if
(
j
>=
MCFFEC_TOUT_LOOP
)
{
printf
(
"MII not complete
\n
"
);
return
-
1
;
}
mii_reply
=
ep
->
mmfr
;
/* result from phy */
ep
->
eir
=
FEC_EIR_MII
;
/* clear MII complete */
#ifdef ET_DEBUG
printf
(
"%s[%d] %s: sent=0x%8.8x, reply=0x%8.8x
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
,
mii_cmd
,
mii_reply
);
#endif
return
(
mii_reply
&
0xffff
);
/* data read from phy */
}
#endif
/* CFG_DISCOVER_PHY || (CONFIG_MII) */
#if defined(CFG_DISCOVER_PHY)
int
mii_discover_phy
(
struct
eth_device
*
dev
)
{
#define MAX_PHY_PASSES 11
struct
fec_info_s
*
info
=
dev
->
priv
;
int
phyaddr
,
pass
;
uint
phyno
,
phytype
;
if
(
info
->
phyname_init
)
return
info
->
phy_addr
;
phyaddr
=
-
1
;
/* didn't find a PHY yet */
for
(
pass
=
1
;
pass
<=
MAX_PHY_PASSES
&&
phyaddr
<
0
;
++
pass
)
{
if
(
pass
>
1
)
{
/* PHY may need more time to recover from reset.
* The LXT970 needs 50ms typical, no maximum is
* specified, so wait 10ms before try again.
* With 11 passes this gives it 100ms to wake up.
*/
udelay
(
10000
);
/* wait 10ms */
}
for
(
phyno
=
0
;
phyno
<
32
&&
phyaddr
<
0
;
++
phyno
)
{
phytype
=
mii_send
(
mk_mii_read
(
phyno
,
PHY_PHYIDR1
));
#ifdef ET_DEBUG
printf
(
"PHY type 0x%x pass %d type
\n
"
,
phytype
,
pass
);
#endif
if
(
phytype
!=
0xffff
)
{
phyaddr
=
phyno
;
phytype
<<=
16
;
phytype
|=
mii_send
(
mk_mii_read
(
phyno
,
PHY_PHYIDR2
));
switch
(
phytype
&
0xffffffff
)
{
case
PHY_ID_KS8721BL
:
strcpy
(
info
->
phy_name
,
STR_ID_KS8721BL
);
info
->
phyname_init
=
1
;
break
;
default:
strcpy
(
info
->
phy_name
,
"unknown"
);
info
->
phyname_init
=
1
;
break
;
}
#ifdef ET_DEBUG
printf
(
"PHY @ 0x%x pass %d type "
,
phyno
,
pass
);
switch
(
phytype
&
0xffffffff
)
{
case
PHY_ID_KS8721BL
:
printf
(
STR_ID_KS8721BL
);
break
;
default:
printf
(
"0x%08x
\n
"
,
phytype
);
break
;
}
#endif
}
}
}
if
(
phyaddr
<
0
)
printf
(
"No PHY device found.
\n
"
);
return
phyaddr
;
}
#endif
/* CFG_DISCOVER_PHY */
int
mii_init
(
void
)
__attribute__
((
weak
,
alias
(
"__mii_init"
)));
void
__mii_init
(
void
)
{
volatile
fec_t
*
fecp
;
struct
fec_info_s
*
info
;
struct
eth_device
*
dev
;
int
miispd
=
0
,
i
=
0
;
u16
autoneg
=
0
;
/* retrieve from register structure */
dev
=
eth_get_dev
();
info
=
dev
->
priv
;
fecp
=
(
fec_t
*
)
info
->
miibase
;
fecpin_setclear
(
dev
,
1
);
mii_reset
(
info
);
/* We use strictly polling mode only */
fecp
->
eimr
=
0
;
/* Clear any pending interrupt */
fecp
->
eir
=
0xffffffff
;
/* Set MII speed */
miispd
=
(
gd
->
bus_clk
/
1000000
)
/
5
;
fecp
->
mscr
=
miispd
<<
1
;
info
->
phy_addr
=
mii_discover_phy
(
dev
);
#define AUTONEGLINK (PHY_BMSR_AUTN_COMP | PHY_BMSR_LS)
while
(
i
<
MCFFEC_TOUT_LOOP
)
{
autoneg
=
0
;
miiphy_read
(
dev
->
name
,
info
->
phy_addr
,
PHY_BMSR
,
&
autoneg
);
i
++
;
if
((
autoneg
&
AUTONEGLINK
)
==
AUTONEGLINK
)
break
;
udelay
(
500
);
}
if
(
i
>=
MCFFEC_TOUT_LOOP
)
{
printf
(
"Auto Negotiation not complete
\n
"
);
}
/* adapt to the half/full speed settings */
info
->
dup_spd
=
miiphy_duplex
(
dev
->
name
,
info
->
phy_addr
)
<<
16
;
info
->
dup_spd
|=
miiphy_speed
(
dev
->
name
,
info
->
phy_addr
);
}
/*****************************************************************************
* Read and write a MII PHY register, routines used by MII Utilities
*
* FIXME: These routines are expected to return 0 on success, but mii_send
* does _not_ return an error code. Maybe 0xFFFF means error, i.e.
* no PHY connected...
* For now always return 0.
* FIXME: These routines only work after calling eth_init() at least once!
* Otherwise they hang in mii_send() !!! Sorry!
*****************************************************************************/
int
mcffec_miiphy_read
(
char
*
devname
,
unsigned
char
addr
,
unsigned
char
reg
,
unsigned
short
*
value
)
{
short
rdreg
;
/* register working value */
#ifdef MII_DEBUG
printf
(
"miiphy_read(0x%x) @ 0x%x = "
,
reg
,
addr
);
#endif
rdreg
=
mii_send
(
mk_mii_read
(
addr
,
reg
));
*
value
=
rdreg
;
#ifdef MII_DEBUG
printf
(
"0x%04x
\n
"
,
*
value
);
#endif
return
0
;
}
int
mcffec_miiphy_write
(
char
*
devname
,
unsigned
char
addr
,
unsigned
char
reg
,
unsigned
short
value
)
{
short
rdreg
;
/* register working value */
#ifdef MII_DEBUG
printf
(
"miiphy_write(0x%x) @ 0x%x = "
,
reg
,
addr
);
#endif
rdreg
=
mii_send
(
mk_mii_write
(
addr
,
reg
,
value
));
#ifdef MII_DEBUG
printf
(
"0x%04x
\n
"
,
value
);
#endif
return
0
;
}
#endif
/* CONFIG_CMD_NET, FEC_ENET & NET_MULTI */
board/freescale/m5235evb/u-boot.16
0 → 100644
View file @
4a442d31
/*
* (C) Copyright 2000
* 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
*/
OUTPUT_ARCH(m68k)
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib);
/* Do we need any of these for elf?
__DYNAMIC = 0; */
SECTIONS
{
/* Read-only sections, merged into text segment: */
. = + SIZEOF_HEADERS;
.interp : { *(.interp) }
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.rel.text : { *(.rel.text) }
.rela.text : { *(.rela.text) }
.rel.data : { *(.rel.data) }
.rela.data : { *(.rela.data) }
.rel.rodata : { *(.rel.rodata) }
.rela.rodata : { *(.rela.rodata) }
.rel.got : { *(.rel.got) }
.rela.got : { *(.rela.got) }
.rel.ctors : { *(.rel.ctors) }
.rela.ctors : { *(.rela.ctors) }
.rel.dtors : { *(.rel.dtors) }
.rela.dtors : { *(.rela.dtors) }
.rel.bss : { *(.rel.bss) }
.rela.bss : { *(.rela.bss) }
.rel.plt : { *(.rel.plt) }
.rela.plt : { *(.rela.plt) }
.init : { *(.init) }
.plt : { *(.plt) }
.text :
{
/* WARNING - the following is hand-optimized to fit within */
/* the sector layout of our flash chips! XXX FIXME XXX */
cpu/mcf523x/start.o (.text)
cpu/mcf523x/cpu_init.o (.text)
lib_m68k/traps.o (.text)
lib_m68k/interrupts.o (.text)
common/dlmalloc.o (.text)
lib_generic/zlib.o (.text)
. = DEFINED(env_offset) ? env_offset : .;
common/environment.o (.text)
*(.text)
*(.fixup)
*(.got1)
}
_etext = .;
PROVIDE (etext = .);
.rodata :
{
*(.rodata)
*(.rodata1)
}
.fini : { *(.fini) } =0
.ctors : { *(.ctors) }
.dtors : { *(.dtors) }
/* Read-write section, merged into data segment: */
. = (. + 0x00FF) & 0xFFFFFF00;
_erotext = .;
PROVIDE (erotext = .);
.reloc :
{
__got_start = .;
*(.got)
__got_end = .;
_GOT2_TABLE_ = .;
*(.got2)
_FIXUP_TABLE_ = .;
*(.fixup)
}
__got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
__fixup_entries = (. - _FIXUP_TABLE_)>>2;
.data :
{
*(.data)
*(.data1)
*(.sdata)
*(.sdata2)
*(.dynamic)
CONSTRUCTORS
}
_edata = .;
PROVIDE (edata = .);
. = .;
__u_boot_cmd_start = .;
.u_boot_cmd : { *(.u_boot_cmd) }
__u_boot_cmd_end = .;
. = .;
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
. = ALIGN(256);
__init_begin = .;
.text.init : { *(.text.init) }
.data.init : { *(.data.init) }
. = ALIGN(256);
__init_end = .;
__bss_start = .;
.bss :
{
_sbss = .;
*(.sbss) *(.scommon)
*(.dynbss)
*(.bss)
*(COMMON)
. = ALIGN(4);
_ebss = .;
}
_end = . ;
PROVIDE (end = .);
}
board/freescale/m5235evb/u-boot.32
0 → 100644
View file @
4a442d31
/*
* (C) Copyright 2000
* 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