Compare commits
281 Commits
v1.3.0-rc1
...
v1.3.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9a337ddc15 | ||
|
|
f30ad49b16 | ||
|
|
f8c3206093 | ||
|
|
e8da58f2bc | ||
|
|
6bf4c686af | ||
|
|
6073f61e07 | ||
|
|
8412d814ce | ||
|
|
409ecdc0bb | ||
|
|
079c2c4fa7 | ||
|
|
0b20335015 | ||
|
|
7e14fc6536 | ||
|
|
2309c130aa | ||
|
|
7e1d884b7c | ||
|
|
16664f7285 | ||
|
|
03c031d566 | ||
|
|
f5e429d386 | ||
|
|
4fbd0741b2 | ||
|
|
f013204597 | ||
|
|
b09258c539 | ||
|
|
2e4a6e3667 | ||
|
|
662e5cb397 | ||
|
|
5947f6999a | ||
|
|
a75e1a3dda | ||
|
|
9e5285eca4 | ||
|
|
fd329e6f05 | ||
|
|
429c180eda | ||
|
|
1c3dd43338 | ||
|
|
5c15010efa | ||
|
|
e5e3d7d520 | ||
|
|
6ecbb7a3fa | ||
|
|
d08b7233bc | ||
|
|
f9d9164d9c | ||
|
|
db74b3c1c9 | ||
|
|
ee1f5e3bfe | ||
|
|
64bf555465 | ||
|
|
7a60ee7c62 | ||
|
|
a08ded4e63 | ||
|
|
955413f35f | ||
|
|
e15633888a | ||
|
|
139365fbe5 | ||
|
|
7092234236 | ||
|
|
96279ab4ca | ||
|
|
928fe33b24 | ||
|
|
c93945e8f9 | ||
|
|
54fd6c93c2 | ||
|
|
5c568d6a7f | ||
|
|
1ce55151c8 | ||
|
|
8d737a2815 | ||
|
|
7d7cdea769 | ||
|
|
09b26cf00d | ||
|
|
225a24b5e0 | ||
|
|
248c7c1483 | ||
|
|
d9240a5f82 | ||
|
|
1f103105a3 | ||
|
|
71bc6e6474 | ||
|
|
298035df49 | ||
|
|
881cf02f47 | ||
|
|
992742a5b0 | ||
|
|
e881cb563e | ||
|
|
ad845beef0 | ||
|
|
ec22755799 | ||
|
|
eb6f214d36 | ||
|
|
bbf4796f64 | ||
|
|
4e62041023 | ||
|
|
56622f8785 | ||
|
|
29c29c0267 | ||
|
|
59543fe00a | ||
|
|
c9e7b9b9a1 | ||
|
|
6abd82e19a | ||
|
|
e34a043892 | ||
|
|
e60adeac2d | ||
|
|
f0516920f6 | ||
|
|
8b6684a698 | ||
|
|
e5c794e491 | ||
|
|
8287b3b564 | ||
|
|
dbf3317623 | ||
|
|
8410d39070 | ||
|
|
5b746c3ea8 | ||
|
|
2fa0dd158c | ||
|
|
0f8b8d0f4c | ||
|
|
31548249de | ||
|
|
4980102871 | ||
|
|
e8ee8f3ade | ||
|
|
688e8eb414 | ||
|
|
c67e12e705 | ||
|
|
95e9f2c212 | ||
|
|
2acefa72ee | ||
|
|
d78791ae91 | ||
|
|
53acfb2983 | ||
|
|
1a0ce20aa4 | ||
|
|
be4a87f11e | ||
|
|
b31f64343e | ||
|
|
0fc0f91b20 | ||
|
|
7b0a42219f | ||
|
|
cb8250fe4b | ||
|
|
e9d0d52799 | ||
|
|
9c4884f54d | ||
|
|
e78220f6e5 | ||
|
|
10cdb8dbd6 | ||
|
|
41b4d282d3 | ||
|
|
58b74b05c6 | ||
|
|
96455bfebc | ||
|
|
2a4741d9a1 | ||
|
|
298cd4cafe | ||
|
|
d3afa1ee19 | ||
|
|
eff501904d | ||
|
|
7a9348728e | ||
|
|
20d500d531 | ||
|
|
341cc69d23 | ||
|
|
de9a738faa | ||
|
|
00101dd7a3 | ||
|
|
eb700636db | ||
|
|
22069215eb | ||
|
|
cbf2323b5b | ||
|
|
e5f325fec5 | ||
|
|
05bf4919c1 | ||
|
|
ff285ca07e | ||
|
|
07dd6eb040 | ||
|
|
b407f1a4b6 | ||
|
|
df90968b48 | ||
|
|
1e701e7013 | ||
|
|
5c7ea64bb7 | ||
|
|
7600d47b8f | ||
|
|
a3063eec77 | ||
|
|
e1ce3cb617 | ||
|
|
d4d1e9bee7 | ||
|
|
5441f61a3d | ||
|
|
27d2b1ed21 | ||
|
|
281df457c1 | ||
|
|
d2646554f5 | ||
|
|
f147dd15e8 | ||
|
|
3e11ae80fe | ||
|
|
7ee6ba1a05 | ||
|
|
eff786a9b8 | ||
|
|
2491167c24 | ||
|
|
aba637ba15 | ||
|
|
9e8362b689 | ||
|
|
99722330ae | ||
|
|
4d4a945e18 | ||
|
|
e2e93442e5 | ||
|
|
5a5958b7de | ||
|
|
da3aad55cb | ||
|
|
9d29250e2e | ||
|
|
d43e489baf | ||
|
|
9ef57bbee1 | ||
|
|
f8bf90461d | ||
|
|
e58ade3a5c | ||
|
|
95df6f4eba | ||
|
|
6364001982 | ||
|
|
68f14f77ca | ||
|
|
fc19e36f74 | ||
|
|
b005838132 | ||
|
|
8f05a661e9 | ||
|
|
86cc433e1b | ||
|
|
23c56f97ca | ||
|
|
de74b9eeac | ||
|
|
2885634d64 | ||
|
|
e1893815b0 | ||
|
|
72e55d03fc | ||
|
|
8faf69dc21 | ||
|
|
6091534b8c | ||
|
|
8002012041 | ||
|
|
7b624ad254 | ||
|
|
2b2a587d6d | ||
|
|
92869195ef | ||
|
|
e81a95a9e7 | ||
|
|
9add9884b1 | ||
|
|
b90296fc39 | ||
|
|
527c80f012 | ||
|
|
738815c0cc | ||
|
|
87c1833a39 | ||
|
|
2db6478406 | ||
|
|
785c13477b | ||
|
|
86ec86c043 | ||
|
|
636538c520 | ||
|
|
3e954beb61 | ||
|
|
1487adbdcf | ||
|
|
c3c909a209 | ||
|
|
0d38effc6e | ||
|
|
8ffc774993 | ||
|
|
853643d8cf | ||
|
|
f240356507 | ||
|
|
cb1bc63b75 | ||
|
|
0731cbae6c | ||
|
|
1c1100d2fc | ||
|
|
0731933ec8 | ||
|
|
db14d77995 | ||
|
|
481d432861 | ||
|
|
b90c045f03 | ||
|
|
6b6f287a33 | ||
|
|
9147ca849e | ||
|
|
66dcad3a9a | ||
|
|
90a3af45a0 | ||
|
|
135e19bc27 | ||
|
|
8a783a6585 | ||
|
|
f8d3ca7b6f | ||
|
|
bd86220f58 | ||
|
|
afd477b227 | ||
|
|
e80e585b00 | ||
|
|
a4f3aab6df | ||
|
|
f930922f06 | ||
|
|
97213f3241 | ||
|
|
30363e98fa | ||
|
|
d7e8ce101a | ||
|
|
17aa280045 | ||
|
|
916527f480 | ||
|
|
b49c90df6e | ||
|
|
7201cfc4a7 | ||
|
|
fd64975a88 | ||
|
|
67c31036ac | ||
|
|
eb6da80507 | ||
|
|
cd2d1602c5 | ||
|
|
5bd7fe9aeb | ||
|
|
c750d2e669 | ||
|
|
dcb8863029 | ||
|
|
314d5b6ce5 | ||
|
|
e21659e306 | ||
|
|
1218abf1b5 | ||
|
|
66b3f24d66 | ||
|
|
991b089d1c | ||
|
|
329ff3c938 | ||
|
|
d7fee32b7e | ||
|
|
6e7b7b6ea1 | ||
|
|
e1f601b572 | ||
|
|
f34024d4a3 | ||
|
|
d94c79e470 | ||
|
|
1fc11f736c | ||
|
|
38ad82da0c | ||
|
|
9d3cb9febe | ||
|
|
6c2f4f388e | ||
|
|
d45963854e | ||
|
|
9c73f4b811 | ||
|
|
978aec12fa | ||
|
|
38c1ef728d | ||
|
|
754bac4815 | ||
|
|
7a888d6b3c | ||
|
|
7d54d64e9c | ||
|
|
e251e00d0d | ||
|
|
1d9e31e049 | ||
|
|
a7d7eca791 | ||
|
|
87eb200ea8 | ||
|
|
fd63d832cd | ||
|
|
6efc1fc0b6 | ||
|
|
7f19139389 | ||
|
|
15ee4734e4 | ||
|
|
08e2e5fcd2 | ||
|
|
8d17979d03 | ||
|
|
470ffef72c | ||
|
|
80767a6cea | ||
|
|
9f5c3d3720 | ||
|
|
7462fe0d5a | ||
|
|
6e4bf9b24e | ||
|
|
557ab89d29 | ||
|
|
696dd1307c | ||
|
|
c88b6e1cbf | ||
|
|
04625764cc | ||
|
|
2c05fd1257 | ||
|
|
78cff50edb | ||
|
|
6e0e2253f0 | ||
|
|
5b4de9309d | ||
|
|
19909edb97 | ||
|
|
d1ed28cf36 | ||
|
|
7aa63d8cd3 | ||
|
|
85fad497b3 | ||
|
|
706714d97a | ||
|
|
f500d9fdeb | ||
|
|
ab4b956d31 | ||
|
|
a274ca4f6d | ||
|
|
45b3fd2815 | ||
|
|
af8377d4eb | ||
|
|
98889edd50 | ||
|
|
537091b4ee | ||
|
|
0c0a9cda1b | ||
|
|
5280f352c8 | ||
|
|
91bb4ca665 | ||
|
|
5a2f1098d8 | ||
|
|
a476ca2ac2 | ||
|
|
55e26ad621 | ||
|
|
bc2962482b | ||
|
|
093172f08d | ||
|
|
3666afffe7 |
3
MAKEALL
3
MAKEALL
@@ -301,10 +301,12 @@ LIST_83xx=" \
|
|||||||
MPC8313ERDB_66 \
|
MPC8313ERDB_66 \
|
||||||
MPC8323ERDB \
|
MPC8323ERDB \
|
||||||
MPC832XEMDS \
|
MPC832XEMDS \
|
||||||
|
MPC832XEMDS_ATM \
|
||||||
MPC8349EMDS \
|
MPC8349EMDS \
|
||||||
MPC8349ITX \
|
MPC8349ITX \
|
||||||
MPC8349ITXGP \
|
MPC8349ITXGP \
|
||||||
MPC8360EMDS \
|
MPC8360EMDS \
|
||||||
|
MPC8360EMDS_ATM \
|
||||||
sbc8349 \
|
sbc8349 \
|
||||||
TQM834x \
|
TQM834x \
|
||||||
"
|
"
|
||||||
@@ -552,6 +554,7 @@ LIST_mips5kc_el=""
|
|||||||
|
|
||||||
LIST_au1xx0_el=" \
|
LIST_au1xx0_el=" \
|
||||||
dbau1550_el \
|
dbau1550_el \
|
||||||
|
pb1000 \
|
||||||
"
|
"
|
||||||
|
|
||||||
LIST_mips_el=" \
|
LIST_mips_el=" \
|
||||||
|
|||||||
39
Makefile
39
Makefile
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# (C) Copyright 2000-2006
|
# (C) Copyright 2000-2007
|
||||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||||
#
|
#
|
||||||
# See file CREDITS for list of people who contributed to this
|
# See file CREDITS for list of people who contributed to this
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
VERSION = 1
|
VERSION = 1
|
||||||
PATCHLEVEL = 2
|
PATCHLEVEL = 3
|
||||||
SUBLEVEL = 0
|
SUBLEVEL = 0
|
||||||
EXTRAVERSION =
|
EXTRAVERSION =
|
||||||
U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
|
U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
|
||||||
@@ -211,6 +211,7 @@ LIBS += drivers/libdrivers.a
|
|||||||
LIBS += drivers/bios_emulator/libatibiosemu.a
|
LIBS += drivers/bios_emulator/libatibiosemu.a
|
||||||
LIBS += drivers/nand/libnand.a
|
LIBS += drivers/nand/libnand.a
|
||||||
LIBS += drivers/nand_legacy/libnand_legacy.a
|
LIBS += drivers/nand_legacy/libnand_legacy.a
|
||||||
|
LIBS += drivers/onenand/libonenand.a
|
||||||
LIBS += drivers/net/libnet.a
|
LIBS += drivers/net/libnet.a
|
||||||
ifeq ($(CPU),mpc83xx)
|
ifeq ($(CPU),mpc83xx)
|
||||||
LIBS += drivers/qe/qe.a
|
LIBS += drivers/qe/qe.a
|
||||||
@@ -319,7 +320,7 @@ updater:
|
|||||||
env:
|
env:
|
||||||
$(MAKE) -C tools/env all || exit 1
|
$(MAKE) -C tools/env all || exit 1
|
||||||
|
|
||||||
depend dep:
|
depend dep: version
|
||||||
for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir _depend ; done
|
for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir _depend ; done
|
||||||
|
|
||||||
tags ctags:
|
tags ctags:
|
||||||
@@ -1732,9 +1733,13 @@ M54455EVB_i66_config : unconfig
|
|||||||
>include/config.h ; \
|
>include/config.h ; \
|
||||||
if [ "$${FLASH}" == "INTEL" ] ; then \
|
if [ "$${FLASH}" == "INTEL" ] ; then \
|
||||||
echo "#undef CFG_ATMEL_BOOT" >> $(obj)include/config.h ; \
|
echo "#undef CFG_ATMEL_BOOT" >> $(obj)include/config.h ; \
|
||||||
|
echo "TEXT_BASE = 0x00000000" > $(obj)board/freescale/m54455evb/config.tmp ; \
|
||||||
|
cp $(obj)board/freescale/m54455evb/u-boot.int $(obj)board/freescale/m54455evb/u-boot.lds ; \
|
||||||
echo "... with INTEL boot..." ; \
|
echo "... with INTEL boot..." ; \
|
||||||
else \
|
else \
|
||||||
echo "#define CFG_ATMEL_BOOT" >> $(obj)include/config.h ; \
|
echo "#define CFG_ATMEL_BOOT" >> $(obj)include/config.h ; \
|
||||||
|
echo "TEXT_BASE = 0x04000000" > $(obj)board/freescale/m54455evb/config.tmp ; \
|
||||||
|
cp $(obj)board/freescale/m54455evb/u-boot.atm $(obj)board/freescale/m54455evb/u-boot.lds ; \
|
||||||
echo "... with ATMEL boot..." ; \
|
echo "... with ATMEL boot..." ; \
|
||||||
fi; \
|
fi; \
|
||||||
echo "#define CFG_INPUT_CLKSRC $${FREQ}" >> $(obj)include/config.h ; \
|
echo "#define CFG_INPUT_CLKSRC $${FREQ}" >> $(obj)include/config.h ; \
|
||||||
@@ -1765,7 +1770,8 @@ MPC8323ERDB_config: unconfig
|
|||||||
MPC832XEMDS_config \
|
MPC832XEMDS_config \
|
||||||
MPC832XEMDS_HOST_33_config \
|
MPC832XEMDS_HOST_33_config \
|
||||||
MPC832XEMDS_HOST_66_config \
|
MPC832XEMDS_HOST_66_config \
|
||||||
MPC832XEMDS_SLAVE_config: unconfig
|
MPC832XEMDS_SLAVE_config \
|
||||||
|
MPC832XEMDS_ATM_config: unconfig
|
||||||
@mkdir -p $(obj)include
|
@mkdir -p $(obj)include
|
||||||
@echo "" >$(obj)include/config.h ; \
|
@echo "" >$(obj)include/config.h ; \
|
||||||
if [ "$(findstring _HOST_,$@)" ] ; then \
|
if [ "$(findstring _HOST_,$@)" ] ; then \
|
||||||
@@ -1780,10 +1786,17 @@ MPC832XEMDS_SLAVE_config: unconfig
|
|||||||
if [ "$(findstring _33_,$@)" ] ; then \
|
if [ "$(findstring _33_,$@)" ] ; then \
|
||||||
echo -n "...33M ..." ; \
|
echo -n "...33M ..." ; \
|
||||||
echo "#define PCI_33M" >>$(obj)include/config.h ; \
|
echo "#define PCI_33M" >>$(obj)include/config.h ; \
|
||||||
|
echo "#define CONFIG_PQ_MDS_PIB 1" >>$(obj)include/config.h ; \
|
||||||
fi ; \
|
fi ; \
|
||||||
if [ "$(findstring _66_,$@)" ] ; then \
|
if [ "$(findstring _66_,$@)" ] ; then \
|
||||||
echo -n "...66M..." ; \
|
echo -n "...66M..." ; \
|
||||||
echo "#define PCI_66M" >>$(obj)include/config.h ; \
|
echo "#define PCI_66M" >>$(obj)include/config.h ; \
|
||||||
|
echo "#define CONFIG_PQ_MDS_PIB 1" >>$(obj)include/config.h ; \
|
||||||
|
fi ; \
|
||||||
|
if [ "$(findstring _ATM_,$@)" ] ; then \
|
||||||
|
echo -n "...ATM..." ; \
|
||||||
|
echo "#define CONFIG_PQ_MDS_PIB 1" >>$(obj)include/config.h ; \
|
||||||
|
echo "#define CONFIG_PQ_MDS_PIB_ATM 1" >>$(obj)include/config.h ; \
|
||||||
fi ;
|
fi ;
|
||||||
@$(MKCONFIG) -a MPC832XEMDS ppc mpc83xx mpc832xemds freescale
|
@$(MKCONFIG) -a MPC832XEMDS ppc mpc83xx mpc832xemds freescale
|
||||||
|
|
||||||
@@ -1794,20 +1807,21 @@ MPC8349ITX_config \
|
|||||||
MPC8349ITX_LOWBOOT_config \
|
MPC8349ITX_LOWBOOT_config \
|
||||||
MPC8349ITXGP_config: unconfig
|
MPC8349ITXGP_config: unconfig
|
||||||
@mkdir -p $(obj)include
|
@mkdir -p $(obj)include
|
||||||
@mkdir -p $(obj)board/mpc8349itx
|
@mkdir -p $(obj)board/freescale/mpc8349itx
|
||||||
@echo "#define CONFIG_$(subst _LOWBOOT,,$(@:_config=))" >> $(obj)include/config.h
|
@echo "#define CONFIG_$(subst _LOWBOOT,,$(@:_config=))" >> $(obj)include/config.h
|
||||||
@if [ "$(findstring GP,$@)" ] ; then \
|
@if [ "$(findstring GP,$@)" ] ; then \
|
||||||
echo "TEXT_BASE = 0xFE000000" >$(obj)board/mpc8349itx/config.tmp ; \
|
echo "TEXT_BASE = 0xFE000000" >$(obj)board/freescale/mpc8349itx/config.tmp ; \
|
||||||
fi
|
fi
|
||||||
@if [ "$(findstring LOWBOOT,$@)" ] ; then \
|
@if [ "$(findstring LOWBOOT,$@)" ] ; then \
|
||||||
echo "TEXT_BASE = 0xFE000000" >$(obj)board/mpc8349itx/config.tmp ; \
|
echo "TEXT_BASE = 0xFE000000" >$(obj)board/freescale/mpc8349itx/config.tmp ; \
|
||||||
fi
|
fi
|
||||||
@$(MKCONFIG) -a -n $(@:_config=) MPC8349ITX ppc mpc83xx mpc8349itx freescale
|
@$(MKCONFIG) -a -n $(@:_config=) MPC8349ITX ppc mpc83xx mpc8349itx freescale
|
||||||
|
|
||||||
MPC8360EMDS_config \
|
MPC8360EMDS_config \
|
||||||
MPC8360EMDS_HOST_33_config \
|
MPC8360EMDS_HOST_33_config \
|
||||||
MPC8360EMDS_HOST_66_config \
|
MPC8360EMDS_HOST_66_config \
|
||||||
MPC8360EMDS_SLAVE_config: unconfig
|
MPC8360EMDS_SLAVE_config \
|
||||||
|
MPC8360EMDS_ATM_config: unconfig
|
||||||
@mkdir -p $(obj)include
|
@mkdir -p $(obj)include
|
||||||
@echo "" >$(obj)include/config.h ; \
|
@echo "" >$(obj)include/config.h ; \
|
||||||
if [ "$(findstring _HOST_,$@)" ] ; then \
|
if [ "$(findstring _HOST_,$@)" ] ; then \
|
||||||
@@ -1822,10 +1836,17 @@ MPC8360EMDS_SLAVE_config: unconfig
|
|||||||
if [ "$(findstring _33_,$@)" ] ; then \
|
if [ "$(findstring _33_,$@)" ] ; then \
|
||||||
echo -n "...33M ..." ; \
|
echo -n "...33M ..." ; \
|
||||||
echo "#define PCI_33M" >>$(obj)include/config.h ; \
|
echo "#define PCI_33M" >>$(obj)include/config.h ; \
|
||||||
|
echo "#define CONFIG_PQ_MDS_PIB 1" >>$(obj)include/config.h ; \
|
||||||
fi ; \
|
fi ; \
|
||||||
if [ "$(findstring _66_,$@)" ] ; then \
|
if [ "$(findstring _66_,$@)" ] ; then \
|
||||||
echo -n "...66M..." ; \
|
echo -n "...66M..." ; \
|
||||||
echo "#define PCI_66M" >>$(obj)include/config.h ; \
|
echo "#define PCI_66M" >>$(obj)include/config.h ; \
|
||||||
|
echo "#define CONFIG_PQ_MDS_PIB 1" >>$(obj)include/config.h ; \
|
||||||
|
fi ; \
|
||||||
|
if [ "$(findstring _ATM_,$@)" ] ; then \
|
||||||
|
echo -n "...ATM..." ; \
|
||||||
|
echo "#define CONFIG_PQ_MDS_PIB 1" >>$(obj)include/config.h ; \
|
||||||
|
echo "#define CONFIG_PQ_MDS_PIB_ATM 1" >>$(obj)include/config.h ; \
|
||||||
fi ;
|
fi ;
|
||||||
@$(MKCONFIG) -a MPC8360EMDS ppc mpc83xx mpc8360emds freescale
|
@$(MKCONFIG) -a MPC8360EMDS ppc mpc83xx mpc8360emds freescale
|
||||||
|
|
||||||
@@ -1961,7 +1982,7 @@ TQM8560_config: unconfig
|
|||||||
echo "#define CONFIG_TQM$${CTYPE}">>$(obj)include/config.h; \
|
echo "#define CONFIG_TQM$${CTYPE}">>$(obj)include/config.h; \
|
||||||
echo "#define CONFIG_HOSTNAME tqm$${CTYPE}">>$(obj)include/config.h; \
|
echo "#define CONFIG_HOSTNAME tqm$${CTYPE}">>$(obj)include/config.h; \
|
||||||
echo "#define CONFIG_BOARDNAME \"TQM$${CTYPE}\"">>$(obj)include/config.h; \
|
echo "#define CONFIG_BOARDNAME \"TQM$${CTYPE}\"">>$(obj)include/config.h; \
|
||||||
echo "#define CFG_BOOTFILE \"bootfile=/tftpboot/tqm$${CTYPE}/uImage\0\"">>$(obj)include/config.h
|
echo "#define CFG_BOOTFILE_PATH \"/tftpboot/tqm$${CTYPE}/uImage\"">>$(obj)include/config.h
|
||||||
@$(MKCONFIG) -a TQM85xx ppc mpc85xx tqm85xx
|
@$(MKCONFIG) -a TQM85xx ppc mpc85xx tqm85xx
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|||||||
2
README
2
README
@@ -2123,7 +2123,7 @@ to save the current settings.
|
|||||||
to be a good choice since it makes it far enough from the
|
to be a good choice since it makes it far enough from the
|
||||||
start of the data area as well as from the stack pointer.
|
start of the data area as well as from the stack pointer.
|
||||||
|
|
||||||
Please note that the environment is read-only as long as the monitor
|
Please note that the environment is read-only until the monitor
|
||||||
has been relocated to RAM and a RAM copy of the environment has been
|
has been relocated to RAM and a RAM copy of the environment has been
|
||||||
created; also, when using EEPROM you will have to use getenv_r()
|
created; also, when using EEPROM you will have to use getenv_r()
|
||||||
until then to read environment variables.
|
until then to read environment variables.
|
||||||
|
|||||||
@@ -21,4 +21,4 @@
|
|||||||
# MA 02111-1307 USA
|
# MA 02111-1307 USA
|
||||||
#
|
#
|
||||||
|
|
||||||
PLATFORM_CPPFLAGS += -DCONFIG_BLACKFIN
|
PLATFORM_CPPFLAGS += -DCONFIG_BLACKFIN -D__BLACKFIN__
|
||||||
|
|||||||
@@ -67,9 +67,9 @@ tlbtabA:
|
|||||||
tlbentry(CFG_PCIE_MEMBASE, SZ_256M, 0xB0000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE_MEMBASE, SZ_256M, 0xB0000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE_BASE, SZ_16K, 0x20000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE_BASE, SZ_16K, 0x20000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
||||||
|
|
||||||
tlbentry(CFG_PCIE0_CFGBASE, SZ_1K, 0x40000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE0_CFGBASE, SZ_16M, 0x40000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE1_CFGBASE, SZ_1K, 0x80000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE1_CFGBASE, SZ_16M, 0x80000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE2_CFGBASE, SZ_1K, 0xC0000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE2_CFGBASE, SZ_16M, 0xC0000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE0_XCFGBASE, SZ_1K, 0x50000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE0_XCFGBASE, SZ_1K, 0x50000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE1_XCFGBASE, SZ_1K, 0x90000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE1_XCFGBASE, SZ_1K, 0x90000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE2_XCFGBASE, SZ_1K, 0xD0000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE2_XCFGBASE, SZ_1K, 0xD0000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
||||||
@@ -109,9 +109,9 @@ tlbtabB:
|
|||||||
tlbentry(CFG_PCI_MEMBASE, SZ_256M, 0x10000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCI_MEMBASE, SZ_256M, 0x10000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE_MEMBASE, SZ_256M, 0xB0000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE_MEMBASE, SZ_256M, 0xB0000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
||||||
|
|
||||||
tlbentry(CFG_PCIE0_CFGBASE, SZ_1K, 0x00100000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE0_CFGBASE, SZ_16M, 0x00000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE1_CFGBASE, SZ_1K, 0x20100000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE1_CFGBASE, SZ_16M, 0x20000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE2_CFGBASE, SZ_1K, 0x40100000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE2_CFGBASE, SZ_16M, 0x40000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE0_XCFGBASE, SZ_1K, 0x10000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE0_XCFGBASE, SZ_1K, 0x10000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE1_XCFGBASE, SZ_1K, 0x30000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE1_XCFGBASE, SZ_1K, 0x30000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE2_XCFGBASE, SZ_1K, 0x50000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE2_XCFGBASE, SZ_1K, 0x50000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
||||||
|
|||||||
@@ -34,6 +34,8 @@
|
|||||||
#undef PCIE_ENDPOINT
|
#undef PCIE_ENDPOINT
|
||||||
/* #define PCIE_ENDPOINT 1 */
|
/* #define PCIE_ENDPOINT 1 */
|
||||||
|
|
||||||
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
int ppc440spe_init_pcie_rootport(int port);
|
int ppc440spe_init_pcie_rootport(int port);
|
||||||
void ppc440spe_setup_pcie(struct pci_controller *hose, int port);
|
void ppc440spe_setup_pcie(struct pci_controller *hose, int port);
|
||||||
|
|
||||||
@@ -322,8 +324,6 @@ int pci_pre_init(struct pci_controller * hose )
|
|||||||
#if defined(CONFIG_PCI) && defined(CFG_PCI_TARGET_INIT)
|
#if defined(CONFIG_PCI) && defined(CFG_PCI_TARGET_INIT)
|
||||||
void pci_target_init(struct pci_controller * hose )
|
void pci_target_init(struct pci_controller * hose )
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------+
|
/*-------------------------------------------------------------------+
|
||||||
* Disable everything
|
* Disable everything
|
||||||
*-------------------------------------------------------------------*/
|
*-------------------------------------------------------------------*/
|
||||||
@@ -392,16 +392,18 @@ int katmai_pcie_card_present(int port)
|
|||||||
|
|
||||||
static struct pci_controller pcie_hose[3] = {{0},{0},{0}};
|
static struct pci_controller pcie_hose[3] = {{0},{0},{0}};
|
||||||
|
|
||||||
void pcie_setup_hoses(void)
|
void pcie_setup_hoses(int busno)
|
||||||
{
|
{
|
||||||
struct pci_controller *hose;
|
struct pci_controller *hose;
|
||||||
int i, bus;
|
int i, bus;
|
||||||
|
char *env;
|
||||||
|
unsigned int delay;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* assume we're called after the PCIX hose is initialized, which takes
|
* assume we're called after the PCIX hose is initialized, which takes
|
||||||
* bus ID 0 and therefore start numbering PCIe's from 1.
|
* bus ID 0 and therefore start numbering PCIe's from 1.
|
||||||
*/
|
*/
|
||||||
bus = 1;
|
bus = busno;
|
||||||
for (i = 0; i <= 2; i++) {
|
for (i = 0; i <= 2; i++) {
|
||||||
/* Check for katmai card presence */
|
/* Check for katmai card presence */
|
||||||
if (!katmai_pcie_card_present(i))
|
if (!katmai_pcie_card_present(i))
|
||||||
@@ -419,7 +421,7 @@ void pcie_setup_hoses(void)
|
|||||||
hose = &pcie_hose[i];
|
hose = &pcie_hose[i];
|
||||||
hose->first_busno = bus;
|
hose->first_busno = bus;
|
||||||
hose->last_busno = bus;
|
hose->last_busno = bus;
|
||||||
bus++;
|
hose->current_busno = bus;
|
||||||
|
|
||||||
/* setup mem resource */
|
/* setup mem resource */
|
||||||
pci_set_region(hose->regions + 0,
|
pci_set_region(hose->regions + 0,
|
||||||
@@ -439,10 +441,21 @@ void pcie_setup_hoses(void)
|
|||||||
*/
|
*/
|
||||||
#else
|
#else
|
||||||
ppc440spe_setup_pcie_rootpoint(hose, i);
|
ppc440spe_setup_pcie_rootpoint(hose, i);
|
||||||
|
|
||||||
|
env = getenv ("pciscandelay");
|
||||||
|
if (env != NULL) {
|
||||||
|
delay = simple_strtoul (env, NULL, 10);
|
||||||
|
if (delay > 5)
|
||||||
|
printf ("Warning, expect noticable delay before PCIe"
|
||||||
|
"scan due to 'pciscandelay' value!\n");
|
||||||
|
mdelay (delay * 1000);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Config access can only go down stream
|
* Config access can only go down stream
|
||||||
*/
|
*/
|
||||||
hose->last_busno = pci_hose_scan(hose);
|
hose->last_busno = pci_hose_scan(hose);
|
||||||
|
bus = hose->last_busno + 1;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,8 +39,6 @@ extern flash_info_t flash_info[CFG_MAX_FLASH_BANKS]; /* info for FLASH chips */
|
|||||||
************************************************************************/
|
************************************************************************/
|
||||||
int board_early_init_f(void)
|
int board_early_init_f(void)
|
||||||
{
|
{
|
||||||
volatile epld_t *x = (epld_t *) CFG_EPLD_BASE;
|
|
||||||
|
|
||||||
mtebc( pb0ap, 0x03800000 ); /* set chip selects */
|
mtebc( pb0ap, 0x03800000 ); /* set chip selects */
|
||||||
mtebc( pb0cr, 0xffc58000 ); /* ebc0_b0cr, 4MB at 0xffc00000 CS0 */
|
mtebc( pb0cr, 0xffc58000 ); /* ebc0_b0cr, 4MB at 0xffc00000 CS0 */
|
||||||
mtebc( pb1ap, 0x03800000 );
|
mtebc( pb1ap, 0x03800000 );
|
||||||
@@ -66,8 +64,6 @@ int board_early_init_f(void)
|
|||||||
mtdcr( uic0sr, 0x00000000 ); /* clear all interrupts */
|
mtdcr( uic0sr, 0x00000000 ); /* clear all interrupts */
|
||||||
mtdcr( uic0sr, 0xffffffff );
|
mtdcr( uic0sr, 0xffffffff );
|
||||||
|
|
||||||
x->ethuart &= ~EPLD2_RESET_ETH_N; /* put Ethernet+PHY in reset */
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,7 +75,18 @@ int board_early_init_f(void)
|
|||||||
int misc_init_r(void)
|
int misc_init_r(void)
|
||||||
{
|
{
|
||||||
volatile epld_t *x = (epld_t *) CFG_EPLD_BASE;
|
volatile epld_t *x = (epld_t *) CFG_EPLD_BASE;
|
||||||
x->ethuart |= EPLD2_RESET_ETH_N; /* take Ethernet+PHY out of reset */
|
|
||||||
|
/* set modes of operation */
|
||||||
|
x->ethuart |= EPLD2_ETH_MODE_10 | EPLD2_ETH_MODE_100 |
|
||||||
|
EPLD2_ETH_MODE_1000 | EPLD2_ETH_DUPLEX_MODE;
|
||||||
|
/* clear ETHERNET_AUTO_NEGO bit to turn on autonegotiation */
|
||||||
|
x->ethuart &= ~EPLD2_ETH_AUTO_NEGO;
|
||||||
|
|
||||||
|
/* put Ethernet+PHY in reset */
|
||||||
|
x->ethuart &= ~EPLD2_RESET_ETH_N;
|
||||||
|
udelay(10000);
|
||||||
|
/* take Ethernet+PHY out of reset */
|
||||||
|
x->ethuart |= EPLD2_RESET_ETH_N;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <command.h>
|
#include <command.h>
|
||||||
#include <i2c.h>
|
#include <i2c.h>
|
||||||
|
#include <asm/io.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* There are 2 versions of production Sequoia & Rainier platforms.
|
* There are 2 versions of production Sequoia & Rainier platforms.
|
||||||
@@ -39,7 +40,7 @@
|
|||||||
* All Sequoias & Rainiers select from two possible EEPROMs in Boot
|
* All Sequoias & Rainiers select from two possible EEPROMs in Boot
|
||||||
* Config F. One for 33MHz PCI, one for 66MHz PCI. The following
|
* Config F. One for 33MHz PCI, one for 66MHz PCI. The following
|
||||||
* values are for the 33MHz PCI configuration. Byte 5 (0 base) is
|
* values are for the 33MHz PCI configuration. Byte 5 (0 base) is
|
||||||
* the only value affected for a 66MHz PCI and simply needs a +0x10.
|
* the only value affected for a 33MHz PCI and simply needs a | 0x08.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define NAND_COMPATIBLE 0x01
|
#define NAND_COMPATIBLE 0x01
|
||||||
@@ -56,6 +57,7 @@ static char *config_labels[] = {
|
|||||||
"CPU: 416 PLB: 166 OPB: 83 EBC: 55",
|
"CPU: 416 PLB: 166 OPB: 83 EBC: 55",
|
||||||
"CPU: 500 PLB: 166 OPB: 83 EBC: 55",
|
"CPU: 500 PLB: 166 OPB: 83 EBC: 55",
|
||||||
"CPU: 533 PLB: 133 OPB: 66 EBC: 66",
|
"CPU: 533 PLB: 133 OPB: 66 EBC: 66",
|
||||||
|
"CPU: 667 PLB: 133 OPB: 66 EBC: 66",
|
||||||
"CPU: 667 PLB: 166 OPB: 83 EBC: 55",
|
"CPU: 667 PLB: 166 OPB: 83 EBC: 55",
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
@@ -96,6 +98,11 @@ static u8 boot_configs[][17] = {
|
|||||||
0x87, 0x78, 0x82, 0x52, 0x09, 0x57, 0xa0, 0x30, 0x40,
|
0x87, 0x78, 0x82, 0x52, 0x09, 0x57, 0xa0, 0x30, 0x40,
|
||||||
0x08, 0x23, 0x50, 0x0d, 0x05, 0x00, 0x00
|
0x08, 0x23, 0x50, 0x0d, 0x05, 0x00, 0x00
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
(NOR_COMPATIBLE),
|
||||||
|
0x87, 0x78, 0xa2, 0x56, 0x09, 0x57, 0xa0, 0x30, 0x40,
|
||||||
|
0x08, 0x23, 0x50, 0x0d, 0x05, 0x00, 0x00
|
||||||
|
},
|
||||||
{
|
{
|
||||||
(NAND_COMPATIBLE | NOR_COMPATIBLE),
|
(NAND_COMPATIBLE | NOR_COMPATIBLE),
|
||||||
0x87, 0x78, 0xa2, 0x52, 0x09, 0xd7, 0xa0, 0x30, 0x40,
|
0x87, 0x78, 0xa2, 0x52, 0x09, 0xd7, 0xa0, 0x30, 0x40,
|
||||||
@@ -200,8 +207,12 @@ static int do_bootstrap(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* check CPLD register +5 for PCI 66MHz flag */
|
/* check CPLD register +5 for PCI 66MHz flag */
|
||||||
if (in8(CFG_BCSR_BASE + 5) & 0x01)
|
if ((in_8((void *)(CFG_BCSR_BASE + 5)) & CFG_BCSR5_PCI66EN) == 0)
|
||||||
buf[5] += 0x10;
|
/*
|
||||||
|
* PLB-to-PCI divisor = 3 for 33MHz sync PCI
|
||||||
|
* instead of 2 for 66MHz systems
|
||||||
|
*/
|
||||||
|
buf[5] |= 0x08;
|
||||||
|
|
||||||
if (i2c_write(I2C_EEPROM_ADDR, 0, 1, buf, 16) != 0)
|
if (i2c_write(I2C_EEPROM_ADDR, 0, 1, buf, 16) != 0)
|
||||||
printf("Error writing to EEPROM at address 0x%x\n", I2C_EEPROM_ADDR);
|
printf("Error writing to EEPROM at address 0x%x\n", I2C_EEPROM_ADDR);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* (C) Copyright 2006
|
* (C) Copyright 2006-2007
|
||||||
* Stefan Roese, DENX Software Engineering, sr@denx.de.
|
* Stefan Roese, DENX Software Engineering, sr@denx.de.
|
||||||
*
|
*
|
||||||
* (C) Copyright 2006
|
* (C) Copyright 2006
|
||||||
@@ -24,6 +24,7 @@
|
|||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <asm/processor.h>
|
#include <asm/processor.h>
|
||||||
|
#include <asm/io.h>
|
||||||
#include <ppc440.h>
|
#include <ppc440.h>
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
@@ -362,8 +363,8 @@ int checkboard(void)
|
|||||||
printf("Board: Rainier - AMCC PPC440GRx Evaluation Board");
|
printf("Board: Rainier - AMCC PPC440GRx Evaluation Board");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
rev = in8(CFG_BCSR_BASE + 0);
|
rev = in_8((void *)(CFG_BCSR_BASE + 0));
|
||||||
val = in8(CFG_BCSR_BASE + 5) & 0x01;
|
val = in_8((void *)(CFG_BCSR_BASE + 5)) & CFG_BCSR5_PCI66EN;
|
||||||
printf(", Rev. %X, PCI=%d MHz", rev, val ? 66 : 33);
|
printf(", Rev. %X, PCI=%d MHz", rev, val ? 66 : 33);
|
||||||
|
|
||||||
if (s != NULL) {
|
if (s != NULL) {
|
||||||
|
|||||||
@@ -32,6 +32,8 @@
|
|||||||
void show_reset_reg(void);
|
void show_reset_reg(void);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
int lcd_init(void);
|
int lcd_init(void);
|
||||||
|
|
||||||
int board_early_init_f (void)
|
int board_early_init_f (void)
|
||||||
@@ -266,8 +268,6 @@ int pci_pre_init(struct pci_controller * hose )
|
|||||||
#if defined(CONFIG_PCI) && defined(CFG_PCI_TARGET_INIT)
|
#if defined(CONFIG_PCI) && defined(CFG_PCI_TARGET_INIT)
|
||||||
void pci_target_init(struct pci_controller * hose )
|
void pci_target_init(struct pci_controller * hose )
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------+
|
/*--------------------------------------------------------------------------+
|
||||||
* Disable everything
|
* Disable everything
|
||||||
*--------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------*/
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
* (C) Copyright 2006-2007
|
||||||
|
* Stefan Roese, DENX Software Engineering, sr@denx.de.
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
* project.
|
* project.
|
||||||
@@ -22,6 +24,7 @@
|
|||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <ppc4xx.h>
|
#include <ppc4xx.h>
|
||||||
#include <asm/processor.h>
|
#include <asm/processor.h>
|
||||||
|
#include <asm/io.h>
|
||||||
#include <spd_sdram.h>
|
#include <spd_sdram.h>
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
@@ -181,8 +184,8 @@ int checkboard(void)
|
|||||||
printf("Board: Yellowstone - AMCC PPC440GR Evaluation Board");
|
printf("Board: Yellowstone - AMCC PPC440GR Evaluation Board");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
rev = *(u8 *)(CFG_CPLD + 0);
|
rev = in_8((void *)(CFG_BCSR_BASE + 0));
|
||||||
val = *(u8 *)(CFG_CPLD + 5) & 0x01;
|
val = in_8((void *)(CFG_BCSR_BASE + 5)) & CFG_BCSR5_PCI66EN;
|
||||||
printf(", Rev. %X, PCI=%d MHz", rev, val ? 66 : 33);
|
printf(", Rev. %X, PCI=%d MHz", rev, val ? 66 : 33);
|
||||||
|
|
||||||
if (s != NULL) {
|
if (s != NULL) {
|
||||||
|
|||||||
@@ -70,9 +70,9 @@ tlbtabA:
|
|||||||
tlbentry(CFG_PCIE_MEMBASE, SZ_256M, 0xB0000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE_MEMBASE, SZ_256M, 0xB0000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE_BASE, SZ_16K, 0x20000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE_BASE, SZ_16K, 0x20000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
||||||
|
|
||||||
tlbentry(CFG_PCIE0_CFGBASE, SZ_1K, 0x40000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE0_CFGBASE, SZ_16M, 0x40000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE1_CFGBASE, SZ_1K, 0x80000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE1_CFGBASE, SZ_16M, 0x80000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE2_CFGBASE, SZ_1K, 0xC0000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE2_CFGBASE, SZ_16M, 0xC0000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE0_XCFGBASE, SZ_1K, 0x50000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE0_XCFGBASE, SZ_1K, 0x50000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE1_XCFGBASE, SZ_1K, 0x90000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE1_XCFGBASE, SZ_1K, 0x90000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE2_XCFGBASE, SZ_1K, 0xD0000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE2_XCFGBASE, SZ_1K, 0xD0000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
||||||
@@ -112,9 +112,9 @@ tlbtabB:
|
|||||||
tlbentry(CFG_PCI_MEMBASE, SZ_256M, 0x10000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCI_MEMBASE, SZ_256M, 0x10000000, 0xC, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE_MEMBASE, SZ_256M, 0xB0000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE_MEMBASE, SZ_256M, 0xB0000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
||||||
|
|
||||||
tlbentry(CFG_PCIE0_CFGBASE, SZ_1K, 0x00100000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE0_CFGBASE, SZ_16M, 0x00000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE1_CFGBASE, SZ_1K, 0x20100000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE1_CFGBASE, SZ_16M, 0x20000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE2_CFGBASE, SZ_1K, 0x40100000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE2_CFGBASE, SZ_16M, 0x40000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE0_XCFGBASE, SZ_1K, 0x10000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE0_XCFGBASE, SZ_1K, 0x10000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE1_XCFGBASE, SZ_1K, 0x30000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE1_XCFGBASE, SZ_1K, 0x30000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
||||||
tlbentry(CFG_PCIE2_XCFGBASE, SZ_1K, 0x50000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
tlbentry(CFG_PCIE2_XCFGBASE, SZ_1K, 0x50000000, 0xD, AC_R|AC_W|SA_G|SA_I)
|
||||||
|
|||||||
@@ -34,6 +34,8 @@
|
|||||||
#include "yucca.h"
|
#include "yucca.h"
|
||||||
#include "../cpu/ppc4xx/440spe_pcie.h"
|
#include "../cpu/ppc4xx/440spe_pcie.h"
|
||||||
|
|
||||||
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
#undef PCIE_ENDPOINT
|
#undef PCIE_ENDPOINT
|
||||||
/* #define PCIE_ENDPOINT 1 */
|
/* #define PCIE_ENDPOINT 1 */
|
||||||
|
|
||||||
@@ -668,8 +670,6 @@ int pci_pre_init(struct pci_controller * hose )
|
|||||||
#if defined(CONFIG_PCI) && defined(CFG_PCI_TARGET_INIT)
|
#if defined(CONFIG_PCI) && defined(CFG_PCI_TARGET_INIT)
|
||||||
void pci_target_init(struct pci_controller * hose )
|
void pci_target_init(struct pci_controller * hose )
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------+
|
/*-------------------------------------------------------------------+
|
||||||
* Disable everything
|
* Disable everything
|
||||||
*-------------------------------------------------------------------*/
|
*-------------------------------------------------------------------*/
|
||||||
@@ -846,16 +846,18 @@ void yucca_setup_pcie_fpga_endpoint(int port)
|
|||||||
|
|
||||||
static struct pci_controller pcie_hose[3] = {{0},{0},{0}};
|
static struct pci_controller pcie_hose[3] = {{0},{0},{0}};
|
||||||
|
|
||||||
void pcie_setup_hoses(void)
|
void pcie_setup_hoses(int busno)
|
||||||
{
|
{
|
||||||
struct pci_controller *hose;
|
struct pci_controller *hose;
|
||||||
int i, bus;
|
int i, bus;
|
||||||
|
char *env;
|
||||||
|
unsigned int delay;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* assume we're called after the PCIX hose is initialized, which takes
|
* assume we're called after the PCIX hose is initialized, which takes
|
||||||
* bus ID 0 and therefore start numbering PCIe's from 1.
|
* bus ID 0 and therefore start numbering PCIe's from 1.
|
||||||
*/
|
*/
|
||||||
bus = 1;
|
bus = busno;
|
||||||
for (i = 0; i <= 2; i++) {
|
for (i = 0; i <= 2; i++) {
|
||||||
/* Check for yucca card presence */
|
/* Check for yucca card presence */
|
||||||
if (!yucca_pcie_card_present(i))
|
if (!yucca_pcie_card_present(i))
|
||||||
@@ -875,7 +877,7 @@ void pcie_setup_hoses(void)
|
|||||||
hose = &pcie_hose[i];
|
hose = &pcie_hose[i];
|
||||||
hose->first_busno = bus;
|
hose->first_busno = bus;
|
||||||
hose->last_busno = bus;
|
hose->last_busno = bus;
|
||||||
bus++;
|
hose->current_busno = bus;
|
||||||
|
|
||||||
/* setup mem resource */
|
/* setup mem resource */
|
||||||
pci_set_region(hose->regions + 0,
|
pci_set_region(hose->regions + 0,
|
||||||
@@ -895,10 +897,21 @@ void pcie_setup_hoses(void)
|
|||||||
*/
|
*/
|
||||||
#else
|
#else
|
||||||
ppc440spe_setup_pcie_rootpoint(hose, i);
|
ppc440spe_setup_pcie_rootpoint(hose, i);
|
||||||
|
|
||||||
|
env = getenv ("pciscandelay");
|
||||||
|
if (env != NULL) {
|
||||||
|
delay = simple_strtoul (env, NULL, 10);
|
||||||
|
if (delay > 5)
|
||||||
|
printf ("Warning, expect noticable delay before PCIe"
|
||||||
|
"scan due to 'pciscandelay' value!\n");
|
||||||
|
mdelay (delay * 1000);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Config access can only go down stream
|
* Config access can only go down stream
|
||||||
*/
|
*/
|
||||||
hose->last_busno = pci_hose_scan(hose);
|
hose->last_busno = pci_hose_scan(hose);
|
||||||
|
bus = hose->last_busno + 1;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ void red_LED_off(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void LED_init (void)
|
void coloured_LED_init (void)
|
||||||
{
|
{
|
||||||
AT91PS_PIO PIOB = AT91C_BASE_PIOB;
|
AT91PS_PIO PIOB = AT91C_BASE_PIOB;
|
||||||
AT91PS_PMC PMC = AT91C_BASE_PMC;
|
AT91PS_PMC PMC = AT91C_BASE_PMC;
|
||||||
|
|||||||
@@ -55,10 +55,6 @@ unsigned long flash_init(void)
|
|||||||
unsigned long addr;
|
unsigned long addr;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
gd->bd->bi_flashstart = CFG_FLASH_BASE;
|
|
||||||
gd->bd->bi_flashsize = CFG_FLASH_SIZE;
|
|
||||||
gd->bd->bi_flashoffset = _edata - _text;
|
|
||||||
|
|
||||||
flash_info[0].size = CFG_FLASH_SIZE;
|
flash_info[0].size = CFG_FLASH_SIZE;
|
||||||
flash_info[0].sector_count = 135;
|
flash_info[0].sector_count = 135;
|
||||||
|
|
||||||
|
|||||||
@@ -30,6 +30,8 @@
|
|||||||
#include "psd4256.h"
|
#include "psd4256.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
int checkboard(void)
|
int checkboard(void)
|
||||||
{
|
{
|
||||||
#if (BFIN_CPU == ADSP_BF531)
|
#if (BFIN_CPU == ADSP_BF531)
|
||||||
@@ -46,7 +48,6 @@ int checkboard(void)
|
|||||||
|
|
||||||
long int initdram(int board_type)
|
long int initdram(int board_type)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
int brate;
|
int brate;
|
||||||
char *tmp = getenv("baudrate");
|
char *tmp = getenv("baudrate");
|
||||||
|
|||||||
@@ -30,6 +30,8 @@
|
|||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include "bf533-stamp.h"
|
#include "bf533-stamp.h"
|
||||||
|
|
||||||
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
#define STATUS_LED_OFF 0
|
#define STATUS_LED_OFF 0
|
||||||
#define STATUS_LED_ON 1
|
#define STATUS_LED_ON 1
|
||||||
|
|
||||||
@@ -55,7 +57,6 @@ int checkboard(void)
|
|||||||
|
|
||||||
long int initdram(int board_type)
|
long int initdram(int board_type)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printf("SDRAM attributes:\n");
|
printf("SDRAM attributes:\n");
|
||||||
printf
|
printf
|
||||||
|
|||||||
@@ -32,6 +32,8 @@
|
|||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include "ether_bf537.h"
|
#include "ether_bf537.h"
|
||||||
|
|
||||||
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
#define POST_WORD_ADDR 0xFF903FFC
|
#define POST_WORD_ADDR 0xFF903FFC
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -132,7 +134,6 @@ void cf_outsw(unsigned short *addr, unsigned short *sect_buf, int words)
|
|||||||
|
|
||||||
long int initdram(int board_type)
|
long int initdram(int board_type)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
int brate;
|
int brate;
|
||||||
char *tmp = getenv("baudrate");
|
char *tmp = getenv("baudrate");
|
||||||
|
|||||||
@@ -29,6 +29,8 @@
|
|||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
|
|
||||||
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
int checkboard(void)
|
int checkboard(void)
|
||||||
{
|
{
|
||||||
printf("CPU: ADSP BF561\n");
|
printf("CPU: ADSP BF561\n");
|
||||||
@@ -39,7 +41,6 @@ int checkboard(void)
|
|||||||
|
|
||||||
long int initdram(int board_type)
|
long int initdram(int board_type)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
int brate;
|
int brate;
|
||||||
char *tmp = getenv("baudrate");
|
char *tmp = getenv("baudrate");
|
||||||
|
|||||||
@@ -37,6 +37,10 @@ static void cds_pci_fixup(void *blob)
|
|||||||
|
|
||||||
map = ft_get_prop(blob, "/" OF_SOC "/pci@8000/interrupt-map", &len);
|
map = ft_get_prop(blob, "/" OF_SOC "/pci@8000/interrupt-map", &len);
|
||||||
|
|
||||||
|
if (!map)
|
||||||
|
map = ft_get_prop(blob, "/" OF_PCI "/interrupt-map", &len);
|
||||||
|
|
||||||
|
if (map) {
|
||||||
len /= sizeof(u32);
|
len /= sizeof(u32);
|
||||||
|
|
||||||
slot = get_pci_slot();
|
slot = get_pci_slot();
|
||||||
@@ -49,6 +53,9 @@ static void cds_pci_fixup(void *blob)
|
|||||||
|
|
||||||
map+=7;
|
map+=7;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
printf("*** Warning - No PCI node found\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -397,6 +397,7 @@ int misc_init_r(void)
|
|||||||
"operational\n");
|
"operational\n");
|
||||||
|
|
||||||
/* set the hostname appropriate to the module we're running on */
|
/* set the hostname appropriate to the module we're running on */
|
||||||
|
hostname[0] = 0x00;
|
||||||
compose_hostname(hw_id, hostname);
|
compose_hostname(hw_id, hostname);
|
||||||
setenv("hostname", hostname);
|
setenv("hostname", hostname);
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
#include <i2c.h>
|
#include <i2c.h>
|
||||||
#include <usb.h>
|
#include <usb.h>
|
||||||
|
|
||||||
#ifdef CONFIG_CMD_BSB
|
#ifdef CONFIG_CMD_BSP
|
||||||
|
|
||||||
int do_i2c(char *argv[])
|
int do_i2c(char *argv[])
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ SECTIONS
|
|||||||
{
|
{
|
||||||
*(.text)
|
*(.text)
|
||||||
common/environment.o(.text)
|
common/environment.o(.text)
|
||||||
|
*(.fixup)
|
||||||
*(.got1)
|
*(.got1)
|
||||||
}
|
}
|
||||||
_etext = .;
|
_etext = .;
|
||||||
|
|||||||
@@ -31,6 +31,8 @@
|
|||||||
|
|
||||||
#define MACH_TYPE_DAVINCI_EVM 901
|
#define MACH_TYPE_DAVINCI_EVM 901
|
||||||
|
|
||||||
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
extern void i2c_init(int speed, int slaveaddr);
|
extern void i2c_init(int speed, int slaveaddr);
|
||||||
extern void timer_init(void);
|
extern void timer_init(void);
|
||||||
extern int eth_hw_init(void);
|
extern int eth_hw_init(void);
|
||||||
@@ -115,8 +117,6 @@ void dsp_on(void)
|
|||||||
|
|
||||||
int board_init(void)
|
int board_init(void)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
|
|
||||||
/* arch number of the board */
|
/* arch number of the board */
|
||||||
gd->bd->bi_arch_number = MACH_TYPE_DAVINCI_EVM;
|
gd->bd->bi_arch_number = MACH_TYPE_DAVINCI_EVM;
|
||||||
|
|
||||||
@@ -202,8 +202,6 @@ int misc_init_r (void)
|
|||||||
|
|
||||||
int dram_init(void)
|
int dram_init(void)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
|
|
||||||
gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
|
gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
|
||||||
gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
|
gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
|
||||||
|
|
||||||
|
|||||||
@@ -31,6 +31,8 @@
|
|||||||
|
|
||||||
#define MACH_TYPE_SCHMOOGIE 1255
|
#define MACH_TYPE_SCHMOOGIE 1255
|
||||||
|
|
||||||
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
extern void i2c_init(int speed, int slaveaddr);
|
extern void i2c_init(int speed, int slaveaddr);
|
||||||
extern void timer_init(void);
|
extern void timer_init(void);
|
||||||
extern int eth_hw_init(void);
|
extern int eth_hw_init(void);
|
||||||
@@ -115,8 +117,6 @@ void dsp_on(void)
|
|||||||
|
|
||||||
int board_init(void)
|
int board_init(void)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
|
|
||||||
/* arch number of the board */
|
/* arch number of the board */
|
||||||
gd->bd->bi_arch_number = MACH_TYPE_SCHMOOGIE;
|
gd->bd->bi_arch_number = MACH_TYPE_SCHMOOGIE;
|
||||||
|
|
||||||
@@ -244,8 +244,6 @@ int misc_init_r (void)
|
|||||||
|
|
||||||
int dram_init(void)
|
int dram_init(void)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
|
|
||||||
gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
|
gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
|
||||||
gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
|
gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
|
||||||
|
|
||||||
|
|||||||
@@ -31,6 +31,8 @@
|
|||||||
|
|
||||||
#define MACH_TYPE_SONATA 1254
|
#define MACH_TYPE_SONATA 1254
|
||||||
|
|
||||||
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
extern void i2c_init(int speed, int slaveaddr);
|
extern void i2c_init(int speed, int slaveaddr);
|
||||||
extern void timer_init(void);
|
extern void timer_init(void);
|
||||||
extern int eth_hw_init(void);
|
extern int eth_hw_init(void);
|
||||||
@@ -115,8 +117,6 @@ void dsp_on(void)
|
|||||||
|
|
||||||
int board_init(void)
|
int board_init(void)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
|
|
||||||
/* arch number of the board */
|
/* arch number of the board */
|
||||||
gd->bd->bi_arch_number = MACH_TYPE_SONATA;
|
gd->bd->bi_arch_number = MACH_TYPE_SONATA;
|
||||||
|
|
||||||
@@ -199,8 +199,6 @@ int misc_init_r (void)
|
|||||||
|
|
||||||
int dram_init(void)
|
int dram_init(void)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
|
|
||||||
gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
|
gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
|
||||||
gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
|
gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
#include <command.h>
|
#include <command.h>
|
||||||
#include <asm/au1x00.h>
|
#include <asm/au1x00.h>
|
||||||
#include <asm/mipsregs.h>
|
#include <asm/mipsregs.h>
|
||||||
|
#include <asm/io.h>
|
||||||
|
|
||||||
long int initdram(int board_type)
|
long int initdram(int board_type)
|
||||||
{
|
{
|
||||||
@@ -77,6 +78,9 @@ int checkboard (void)
|
|||||||
default:
|
default:
|
||||||
printf ("Unsupported cpu %d, proc_id=0x%x\n", proc_id >> 24, proc_id);
|
printf ("Unsupported cpu %d, proc_id=0x%x\n", proc_id >> 24, proc_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set_io_port_base(0);
|
||||||
|
|
||||||
#ifdef CONFIG_IDE_PCMCIA
|
#ifdef CONFIG_IDE_PCMCIA
|
||||||
/* Enable 3.3 V on slot 0 ( VCC )
|
/* Enable 3.3 V on slot 0 ( VCC )
|
||||||
No 5V */
|
No 5V */
|
||||||
|
|||||||
@@ -43,21 +43,22 @@ SECTIONS
|
|||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
.data : { *(.data) }
|
.data : { *(.data) }
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
.sdata : { *(.sdata) }
|
|
||||||
|
|
||||||
_gp = ALIGN(16);
|
|
||||||
|
|
||||||
__got_start = .;
|
|
||||||
.got : { *(.got) }
|
|
||||||
__got_end = .;
|
|
||||||
|
|
||||||
.sdata : { *(.sdata) }
|
|
||||||
|
|
||||||
. = .;
|
. = .;
|
||||||
|
_gp = ALIGN(16) + 0x7ff0;
|
||||||
|
|
||||||
|
.got : {
|
||||||
|
__got_start = .;
|
||||||
|
*(.got)
|
||||||
|
__got_end = .;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sdata : { *(.sdata) }
|
||||||
|
|
||||||
|
.u_boot_cmd : {
|
||||||
__u_boot_cmd_start = .;
|
__u_boot_cmd_start = .;
|
||||||
.u_boot_cmd : { *(.u_boot_cmd) }
|
*(.u_boot_cmd)
|
||||||
__u_boot_cmd_end = .;
|
__u_boot_cmd_end = .;
|
||||||
|
}
|
||||||
|
|
||||||
uboot_end_data = .;
|
uboot_end_data = .;
|
||||||
num_got_entries = (__got_end - __got_start) >> 2;
|
num_got_entries = (__got_end - __got_start) >> 2;
|
||||||
|
|||||||
@@ -229,6 +229,7 @@
|
|||||||
#define CFG_ENV_SECT_SIZE 0x40000 /* see README - env sector total size */
|
#define CFG_ENV_SECT_SIZE 0x40000 /* see README - env sector total size */
|
||||||
#define CFG_ENV_OFFSET CFG_ENV_SECT_SIZE
|
#define CFG_ENV_OFFSET CFG_ENV_SECT_SIZE
|
||||||
#define CFG_ENV_SIZE 0x4000 /* Total Size of Environment */
|
#define CFG_ENV_SIZE 0x4000 /* Total Size of Environment */
|
||||||
|
#define CFG_USE_PPCENV /* Environment embedded in sect .ppcenv */
|
||||||
|
|
||||||
#define CFG_DIRECT_FLASH_TFTP
|
#define CFG_DIRECT_FLASH_TFTP
|
||||||
|
|
||||||
|
|||||||
@@ -25,10 +25,9 @@
|
|||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <command.h>
|
#include <command.h>
|
||||||
#include <watchdog.h>
|
#include <watchdog.h>
|
||||||
#include <asm/cache.h>
|
|
||||||
|
|
||||||
#ifdef CONFIG_FSL_PIXIS
|
#ifdef CONFIG_FSL_PIXIS
|
||||||
|
#include <asm/cache.h>
|
||||||
#include "pixis.h"
|
#include "pixis.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -208,13 +207,16 @@ void read_from_px_regs_altbank(int set)
|
|||||||
out8(PIXIS_BASE + PIXIS_VCFGEN1, tmp);
|
out8(PIXIS_BASE + PIXIS_VCFGEN1, tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef CFG_PIXIS_VBOOT_MASK
|
||||||
|
#define CFG_PIXIS_VBOOT_MASK 0x40
|
||||||
|
#endif
|
||||||
|
|
||||||
void set_altbank(void)
|
void set_altbank(void)
|
||||||
{
|
{
|
||||||
u8 tmp;
|
u8 tmp;
|
||||||
|
|
||||||
tmp = in8(PIXIS_BASE + PIXIS_VBOOT);
|
tmp = in8(PIXIS_BASE + PIXIS_VBOOT);
|
||||||
tmp ^= 0x40;
|
tmp ^= CFG_PIXIS_VBOOT_MASK;
|
||||||
|
|
||||||
out8(PIXIS_BASE + PIXIS_VBOOT, tmp);
|
out8(PIXIS_BASE + PIXIS_VBOOT, tmp);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,19 +79,19 @@ int pib_init(void)
|
|||||||
|
|
||||||
printf("QOC3 ATM card on PMC0\n");
|
printf("QOC3 ATM card on PMC0\n");
|
||||||
#elif defined(CONFIG_MPC832XEMDS)
|
#elif defined(CONFIG_MPC832XEMDS)
|
||||||
val = 0;
|
val8 = 0;
|
||||||
i2c_write(0x26, 0x7, 1, &val, 1);
|
i2c_write(0x26, 0x7, 1, &val8, 1);
|
||||||
val = 0xf7;
|
val8 = 0xf7;
|
||||||
i2c_write(0x26, 0x3, 1, &val, 1);
|
i2c_write(0x26, 0x3, 1, &val8, 1);
|
||||||
|
|
||||||
val = 0;
|
val8 = 0;
|
||||||
i2c_write(0x21, 0x6, 1, &val, 1);
|
i2c_write(0x21, 0x6, 1, &val8, 1);
|
||||||
i2c_write(0x21, 0x7, 1, &val, 1);
|
i2c_write(0x21, 0x7, 1, &val8, 1);
|
||||||
|
|
||||||
val = 0xdf;
|
val8 = 0xdf;
|
||||||
i2c_write(0x21, 0x2, 1, &val, 1);
|
i2c_write(0x21, 0x2, 1, &val8, 1);
|
||||||
val = 0xef;
|
val8 = 0xef;
|
||||||
i2c_write(0x21, 0x3, 1, &val, 1);
|
i2c_write(0x21, 0x3, 1, &val8, 1);
|
||||||
|
|
||||||
eieio();
|
eieio();
|
||||||
|
|
||||||
|
|||||||
@@ -204,7 +204,7 @@ int mii_discover_phy(struct eth_device *dev)
|
|||||||
}
|
}
|
||||||
#endif /* CFG_DISCOVER_PHY */
|
#endif /* CFG_DISCOVER_PHY */
|
||||||
|
|
||||||
int mii_init(void) __attribute__((weak,alias("__mii_init")));
|
void mii_init(void) __attribute__((weak,alias("__mii_init")));
|
||||||
|
|
||||||
void __mii_init(void)
|
void __mii_init(void)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -203,7 +203,7 @@ int mii_discover_phy(struct eth_device *dev)
|
|||||||
}
|
}
|
||||||
#endif /* CFG_DISCOVER_PHY */
|
#endif /* CFG_DISCOVER_PHY */
|
||||||
|
|
||||||
int mii_init(void) __attribute__((weak,alias("__mii_init")));
|
void mii_init(void) __attribute__((weak,alias("__mii_init")));
|
||||||
|
|
||||||
void __mii_init(void)
|
void __mii_init(void)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -22,4 +22,6 @@
|
|||||||
# MA 02111-1307 USA
|
# MA 02111-1307 USA
|
||||||
#
|
#
|
||||||
|
|
||||||
TEXT_BASE = 0
|
sinclude $(OBJTREE)/board/$(BOARDDIR)/config.tmp
|
||||||
|
|
||||||
|
PLATFORM_CPPFLAGS += -DTEXT_BASE=$(TEXT_BASE)
|
||||||
|
|||||||
@@ -221,7 +221,7 @@ int mii_discover_phy(struct eth_device *dev)
|
|||||||
}
|
}
|
||||||
#endif /* CFG_DISCOVER_PHY */
|
#endif /* CFG_DISCOVER_PHY */
|
||||||
|
|
||||||
int mii_init(void) __attribute__((weak,alias("__mii_init")));
|
void mii_init(void) __attribute__((weak,alias("__mii_init")));
|
||||||
|
|
||||||
void __mii_init(void)
|
void __mii_init(void)
|
||||||
{
|
{
|
||||||
|
|||||||
144
board/freescale/m54455evb/u-boot.atm
Normal file
144
board/freescale/m54455evb/u-boot.atm
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
/*
|
||||||
|
* (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/mcf5445x/start.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 = .);
|
||||||
|
}
|
||||||
141
board/freescale/m54455evb/u-boot.int
Normal file
141
board/freescale/m54455evb/u-boot.int
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
/*
|
||||||
|
* (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/mcf5445x/start.o (.text)
|
||||||
|
lib_m68k/traps.o (.text)
|
||||||
|
lib_m68k/interrupts.o (.text)
|
||||||
|
common/dlmalloc.o (.text)
|
||||||
|
lib_generic/zlib.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 = .);
|
||||||
|
}
|
||||||
@@ -33,10 +33,11 @@
|
|||||||
|
|
||||||
#include <asm/processor.h>
|
#include <asm/processor.h>
|
||||||
|
|
||||||
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
#ifndef CFG_8313ERDB_BROKEN_PMC
|
#ifndef CFG_8313ERDB_BROKEN_PMC
|
||||||
static void resume_from_sleep(void)
|
static void resume_from_sleep(void)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
u32 magic = *(u32 *)0;
|
u32 magic = *(u32 *)0;
|
||||||
|
|
||||||
typedef void (*func_t)(void);
|
typedef void (*func_t)(void);
|
||||||
|
|||||||
@@ -227,7 +227,7 @@ pci_init_board(void)
|
|||||||
* Activate ULI1575 legacy chip by performing a fake
|
* Activate ULI1575 legacy chip by performing a fake
|
||||||
* memory access. Needed to make ULI RTC work.
|
* memory access. Needed to make ULI RTC work.
|
||||||
*/
|
*/
|
||||||
in_be32(CFG_PCIE3_MEM_BASE);
|
in_be32((u32 *)CFG_PCIE3_MEM_BASE);
|
||||||
} else {
|
} else {
|
||||||
printf (" PCIE3: disabled\n");
|
printf (" PCIE3: disabled\n");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,14 +26,13 @@
|
|||||||
#include <asm/au1x00.h>
|
#include <asm/au1x00.h>
|
||||||
#include <asm/addrspace.h>
|
#include <asm/addrspace.h>
|
||||||
#include <asm/mipsregs.h>
|
#include <asm/mipsregs.h>
|
||||||
|
#include <asm/io.h>
|
||||||
#include <watchdog.h>
|
#include <watchdog.h>
|
||||||
|
|
||||||
#include "ee_access.h"
|
#include "ee_access.h"
|
||||||
|
|
||||||
static int wdi_status = 0;
|
static int wdi_status = 0;
|
||||||
|
|
||||||
unsigned long mips_io_port_base = 0;
|
|
||||||
|
|
||||||
#define SDRAM_SIZE ((64*1024*1024)-(12*4096))
|
#define SDRAM_SIZE ((64*1024*1024)-(12*4096))
|
||||||
|
|
||||||
|
|
||||||
@@ -147,6 +146,9 @@ int checkboard (void)
|
|||||||
default:
|
default:
|
||||||
printf ("Unsupported cpu %d, proc_id=0x%x\n", proc_id >> 24, proc_id);
|
printf ("Unsupported cpu %d, proc_id=0x%x\n", proc_id >> 24, proc_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set_io_port_base(0);
|
||||||
|
|
||||||
#ifdef CONFIG_IDE_PCMCIA
|
#ifdef CONFIG_IDE_PCMCIA
|
||||||
/* PCMCIA is on a 36 bit physical address.
|
/* PCMCIA is on a 36 bit physical address.
|
||||||
We need to map it into a 32 bit addresses */
|
We need to map it into a 32 bit addresses */
|
||||||
@@ -429,7 +431,7 @@ int misc_init_r(void){
|
|||||||
(Rx[8] != ':') | (Rx[11] != ':') | (Rx[14] != ':')) {
|
(Rx[8] != ':') | (Rx[11] != ':') | (Rx[14] != ':')) {
|
||||||
printf ("*** ethernet addr invalid, using default ***\n");
|
printf ("*** ethernet addr invalid, using default ***\n");
|
||||||
} else {
|
} else {
|
||||||
setenv ("ethaddr", Rx);
|
setenv ("ethaddr", (char *)Rx);
|
||||||
}
|
}
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -413,7 +413,9 @@ noCacheJump:
|
|||||||
j clearmem
|
j clearmem
|
||||||
nop
|
nop
|
||||||
|
|
||||||
|
#if 0
|
||||||
.globl memtest
|
.globl memtest
|
||||||
|
#endif
|
||||||
memtest:
|
memtest:
|
||||||
/* Fill memory with address */
|
/* Fill memory with address */
|
||||||
li t0, 0x80000000
|
li t0, 0x80000000
|
||||||
@@ -434,7 +436,9 @@ mt1: lw t2, 0(t0)
|
|||||||
bne t1, zero, mt1
|
bne t1, zero, mt1
|
||||||
nop
|
nop
|
||||||
nop
|
nop
|
||||||
|
#if 0
|
||||||
.globl clearmem
|
.globl clearmem
|
||||||
|
#endif
|
||||||
clearmem:
|
clearmem:
|
||||||
/* Clear memory */
|
/* Clear memory */
|
||||||
li t0, 0x80000000
|
li t0, 0x80000000
|
||||||
|
|||||||
@@ -43,20 +43,22 @@ SECTIONS
|
|||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
.data : { *(.data) }
|
.data : { *(.data) }
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = .;
|
||||||
.sdata : { *(.sdata) }
|
_gp = ALIGN(16) + 0x7ff0;
|
||||||
|
|
||||||
_gp = ALIGN(16);
|
|
||||||
|
|
||||||
|
.got : {
|
||||||
__got_start = .;
|
__got_start = .;
|
||||||
.got : { *(.got) }
|
*(.got)
|
||||||
__got_end = .;
|
__got_end = .;
|
||||||
|
}
|
||||||
|
|
||||||
.sdata : { *(.sdata) }
|
.sdata : { *(.sdata) }
|
||||||
|
|
||||||
|
.u_boot_cmd : {
|
||||||
__u_boot_cmd_start = .;
|
__u_boot_cmd_start = .;
|
||||||
.u_boot_cmd : { *(.u_boot_cmd) }
|
*(.u_boot_cmd)
|
||||||
__u_boot_cmd_end = .;
|
__u_boot_cmd_end = .;
|
||||||
|
}
|
||||||
|
|
||||||
uboot_end_data = .;
|
uboot_end_data = .;
|
||||||
num_got_entries = (__got_end - __got_start) >> 2;
|
num_got_entries = (__got_end - __got_start) >> 2;
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ SECTIONS
|
|||||||
common/environment.o(.text)
|
common/environment.o(.text)
|
||||||
|
|
||||||
*(.text)
|
*(.text)
|
||||||
|
*(.fixup)
|
||||||
*(.got1)
|
*(.got1)
|
||||||
}
|
}
|
||||||
_etext = .;
|
_etext = .;
|
||||||
|
|||||||
@@ -25,6 +25,12 @@
|
|||||||
#include <ioports.h>
|
#include <ioports.h>
|
||||||
#include <mpc8260.h>
|
#include <mpc8260.h>
|
||||||
|
|
||||||
|
#if defined(CONFIG_OF_LIBFDT)
|
||||||
|
#include <libfdt.h>
|
||||||
|
#include <libfdt_env.h>
|
||||||
|
#include <fdt_support.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -38,12 +44,12 @@ const iop_conf_t iop_conf_tab[4][32] = {
|
|||||||
|
|
||||||
/* Port A configuration */
|
/* Port A configuration */
|
||||||
{ /* conf ppar psor pdir podr pdat */
|
{ /* conf ppar psor pdir podr pdat */
|
||||||
/* PA31 */ { 0, 1, 1, 0, 0, 0 }, /* FCC1 COL */
|
/* PA31 */ { 1, 1, 1, 0, 0, 0 }, /* FCC1 COL */
|
||||||
/* PA30 */ { 0, 1, 1, 0, 0, 0 }, /* FCC1 CRS */
|
/* PA30 */ { 1, 1, 1, 0, 0, 0 }, /* FCC1 CRS */
|
||||||
/* PA29 */ { 0, 1, 1, 1, 0, 0 }, /* FCC1 TXER */
|
/* PA29 */ { 1, 1, 1, 1, 0, 0 }, /* FCC1 TXER */
|
||||||
/* PA28 */ { 0, 1, 1, 1, 0, 0 }, /* FCC1 TXEN */
|
/* PA28 */ { 1, 1, 1, 1, 0, 0 }, /* FCC1 TXEN */
|
||||||
/* PA27 */ { 0, 1, 1, 0, 0, 0 }, /* FCC1 RXDV */
|
/* PA27 */ { 1, 1, 1, 0, 0, 0 }, /* FCC1 RXDV */
|
||||||
/* PA26 */ { 0, 1, 1, 0, 0, 0 }, /* FCC1 RXER */
|
/* PA26 */ { 1, 1, 1, 0, 0, 0 }, /* FCC1 RXER */
|
||||||
/* PA25 */ { 0, 0, 0, 0, 1, 0 }, /* 8247_P0 */
|
/* PA25 */ { 0, 0, 0, 0, 1, 0 }, /* 8247_P0 */
|
||||||
#if defined(CONFIG_SOFT_I2C)
|
#if defined(CONFIG_SOFT_I2C)
|
||||||
/* PA24 */ { 1, 0, 0, 0, 1, 1 }, /* I2C_SDA2 */
|
/* PA24 */ { 1, 0, 0, 0, 1, 1 }, /* I2C_SDA2 */
|
||||||
@@ -53,14 +59,14 @@ const iop_conf_t iop_conf_tab[4][32] = {
|
|||||||
/* PA23 */ { 0, 0, 0, 1, 0, 0 }, /* PA23 */
|
/* PA23 */ { 0, 0, 0, 1, 0, 0 }, /* PA23 */
|
||||||
#endif
|
#endif
|
||||||
/* PA22 */ { 0, 0, 0, 0, 1, 0 }, /* SMC2_DCD */
|
/* PA22 */ { 0, 0, 0, 0, 1, 0 }, /* SMC2_DCD */
|
||||||
/* PA21 */ { 0, 1, 0, 1, 0, 0 }, /* FCC1 TXD3 */
|
/* PA21 */ { 1, 1, 0, 1, 0, 0 }, /* FCC1 TXD3 */
|
||||||
/* PA20 */ { 0, 1, 0, 1, 0, 0 }, /* FCC1 TXD2 */
|
/* PA20 */ { 1, 1, 0, 1, 0, 0 }, /* FCC1 TXD2 */
|
||||||
/* PA19 */ { 0, 1, 0, 1, 0, 0 }, /* FCC1 TXD1 */
|
/* PA19 */ { 1, 1, 0, 1, 0, 0 }, /* FCC1 TXD1 */
|
||||||
/* PA18 */ { 0, 1, 0, 1, 0, 0 }, /* FCC1 TXD0 */
|
/* PA18 */ { 1, 1, 0, 1, 0, 0 }, /* FCC1 TXD0 */
|
||||||
/* PA17 */ { 0, 1, 0, 0, 0, 0 }, /* FCC1 RXD0 */
|
/* PA17 */ { 1, 1, 0, 0, 0, 0 }, /* FCC1 RXD0 */
|
||||||
/* PA16 */ { 0, 1, 0, 0, 0, 0 }, /* FCC1 RXD1 */
|
/* PA16 */ { 1, 1, 0, 0, 0, 0 }, /* FCC1 RXD1 */
|
||||||
/* PA15 */ { 0, 1, 0, 0, 0, 0 }, /* FCC1 RXD2 */
|
/* PA15 */ { 1, 1, 0, 0, 0, 0 }, /* FCC1 RXD2 */
|
||||||
/* PA14 */ { 0, 1, 0, 0, 0, 0 }, /* FCC1 RXD3 */
|
/* PA14 */ { 1, 1, 0, 0, 0, 0 }, /* FCC1 RXD3 */
|
||||||
/* PA13 */ { 0, 0, 0, 1, 1, 0 }, /* SMC2_RTS */
|
/* PA13 */ { 0, 0, 0, 1, 1, 0 }, /* SMC2_RTS */
|
||||||
/* PA12 */ { 0, 0, 0, 0, 1, 0 }, /* SMC2_CTS */
|
/* PA12 */ { 0, 0, 0, 0, 1, 0 }, /* SMC2_CTS */
|
||||||
/* PA11 */ { 0, 0, 0, 1, 1, 0 }, /* SMC2_DTR */
|
/* PA11 */ { 0, 0, 0, 1, 1, 0 }, /* SMC2_DTR */
|
||||||
@@ -79,20 +85,20 @@ const iop_conf_t iop_conf_tab[4][32] = {
|
|||||||
|
|
||||||
/* Port B configuration */
|
/* Port B configuration */
|
||||||
{ /* conf ppar psor pdir podr pdat */
|
{ /* conf ppar psor pdir podr pdat */
|
||||||
/* PB31 */ { 1, 1, 0, 1, 0, 0 }, /* FCC2 MII TX_ER */
|
/* PB31 */ { 0, 1, 0, 1, 0, 0 }, /* FCC2 MII TX_ER */
|
||||||
/* PB30 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII RX_DV */
|
/* PB30 */ { 0, 1, 0, 0, 0, 0 }, /* FCC2 MII RX_DV */
|
||||||
/* PB29 */ { 1, 1, 1, 1, 0, 0 }, /* FCC2 MII TX_EN */
|
/* PB29 */ { 0, 1, 1, 1, 0, 0 }, /* FCC2 MII TX_EN */
|
||||||
/* PB28 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII RX_ER */
|
/* PB28 */ { 0, 1, 0, 0, 0, 0 }, /* FCC2 MII RX_ER */
|
||||||
/* PB27 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII COL */
|
/* PB27 */ { 0, 1, 0, 0, 0, 0 }, /* FCC2 MII COL */
|
||||||
/* PB26 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII CRS */
|
/* PB26 */ { 0, 1, 0, 0, 0, 0 }, /* FCC2 MII CRS */
|
||||||
/* PB25 */ { 1, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[3] */
|
/* PB25 */ { 0, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[3] */
|
||||||
/* PB24 */ { 1, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[2] */
|
/* PB24 */ { 0, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[2] */
|
||||||
/* PB23 */ { 1, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[1] */
|
/* PB23 */ { 0, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[1] */
|
||||||
/* PB22 */ { 1, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[0] */
|
/* PB22 */ { 0, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[0] */
|
||||||
/* PB21 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[0] */
|
/* PB21 */ { 0, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[0] */
|
||||||
/* PB20 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[1] */
|
/* PB20 */ { 0, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[1] */
|
||||||
/* PB19 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[2] */
|
/* PB19 */ { 0, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[2] */
|
||||||
/* PB18 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[3] */
|
/* PB18 */ { 0, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[3] */
|
||||||
/* PB17 */ { 0, 0, 0, 0, 0, 0 }, /* PB17 */
|
/* PB17 */ { 0, 0, 0, 0, 0, 0 }, /* PB17 */
|
||||||
/* PB16 */ { 0, 0, 0, 0, 0, 0 }, /* PB16 */
|
/* PB16 */ { 0, 0, 0, 0, 0, 0 }, /* PB16 */
|
||||||
/* PB15 */ { 0, 0, 0, 0, 0, 0 }, /* PB15 */
|
/* PB15 */ { 0, 0, 0, 0, 0, 0 }, /* PB15 */
|
||||||
@@ -123,8 +129,8 @@ const iop_conf_t iop_conf_tab[4][32] = {
|
|||||||
/* PC26 */ { 0, 0, 0, 1, 0, 0 }, /* PC26 */
|
/* PC26 */ { 0, 0, 0, 1, 0, 0 }, /* PC26 */
|
||||||
/* PC25 */ { 0, 1, 1, 0, 0, 0 }, /* SYNC_IN */
|
/* PC25 */ { 0, 1, 1, 0, 0, 0 }, /* SYNC_IN */
|
||||||
/* PC24 */ { 0, 0, 0, 1, 0, 0 }, /* PC24 */
|
/* PC24 */ { 0, 0, 0, 1, 0, 0 }, /* PC24 */
|
||||||
/* PC23 */ { 0, 1, 0, 1, 0, 0 }, /* ATMTFCLK */
|
/* PC23 */ { 1, 1, 0, 0, 0, 0 }, /* FCC1 MII TX_CLK */
|
||||||
/* PC22 */ { 0, 1, 0, 0, 0, 0 }, /* ATMRFCLK */
|
/* PC22 */ { 1, 1, 0, 0, 0, 0 }, /* FCC1 MII RX_CLK */
|
||||||
/* PC21 */ { 0, 1, 0, 0, 0, 0 }, /* SCC1 EN RXCLK */
|
/* PC21 */ { 0, 1, 0, 0, 0, 0 }, /* SCC1 EN RXCLK */
|
||||||
/* PC20 */ { 0, 1, 0, 0, 0, 0 }, /* SCC1 EN TXCLK */
|
/* PC20 */ { 0, 1, 0, 0, 0, 0 }, /* SCC1 EN TXCLK */
|
||||||
/* PC19 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII RX_CLK */
|
/* PC19 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII RX_CLK */
|
||||||
@@ -180,7 +186,7 @@ const iop_conf_t iop_conf_tab[4][32] = {
|
|||||||
/* PD10 */ { 0, 0, 0, 0, 0, 0 }, /* PD10 */
|
/* PD10 */ { 0, 0, 0, 0, 0, 0 }, /* PD10 */
|
||||||
/* PD9 */ { 0, 0, 0, 0, 0, 0 }, /* PD9 */
|
/* PD9 */ { 0, 0, 0, 0, 0, 0 }, /* PD9 */
|
||||||
/* PD8 */ { 0, 0, 0, 0, 0, 0 }, /* PD8 */
|
/* PD8 */ { 0, 0, 0, 0, 0, 0 }, /* PD8 */
|
||||||
/* PD7 */ { 0, 0, 0, 1, 0, 1 }, /* MII_MDIO */
|
/* PD7 */ { 1, 0, 0, 1, 0, 1 }, /* MII_MDIO */
|
||||||
/* PD6 */ { 0, 0, 0, 1, 0, 1 }, /* PD6 */
|
/* PD6 */ { 0, 0, 0, 1, 0, 1 }, /* PD6 */
|
||||||
/* PD5 */ { 0, 0, 0, 1, 0, 1 }, /* PD5 */
|
/* PD5 */ { 0, 0, 0, 1, 0, 1 }, /* PD5 */
|
||||||
/* PD4 */ { 0, 0, 0, 1, 0, 1 }, /* PD4 */
|
/* PD4 */ { 0, 0, 0, 1, 0, 1 }, /* PD4 */
|
||||||
@@ -224,7 +230,7 @@ static long int try_init (volatile memctl8260_t * memctl, ulong sdmr,
|
|||||||
* mapped by the controller. That means, that the initial mapping has
|
* mapped by the controller. That means, that the initial mapping has
|
||||||
* to be (at least) twice as large as the maximum expected size.
|
* to be (at least) twice as large as the maximum expected size.
|
||||||
*/
|
*/
|
||||||
maxsize = (1 + (~orx | 0x7fff)) / 2;
|
maxsize = (1 + (~orx | 0x7fff))/* / 2*/;
|
||||||
|
|
||||||
sdmr_ptr = &memctl->memc_psdmr;
|
sdmr_ptr = &memctl->memc_psdmr;
|
||||||
orx_ptr = &memctl->memc_or2;
|
orx_ptr = &memctl->memc_or2;
|
||||||
@@ -315,4 +321,38 @@ nand_init (void)
|
|||||||
printf ("%4lu MB\n", totlen >>20);
|
printf ("%4lu MB\n", totlen >>20);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif /* CFG_CMD_NAND */
|
||||||
|
|
||||||
|
#if defined(CONFIG_OF_BOARD_SETUP) && defined(CONFIG_OF_LIBFDT)
|
||||||
|
/*
|
||||||
|
* update "memory" property in the blob
|
||||||
|
*/
|
||||||
|
void ft_blob_update(void *blob, bd_t *bd)
|
||||||
|
{
|
||||||
|
int ret, nodeoffset = 0;
|
||||||
|
ulong memory_data[2] = {0};
|
||||||
|
|
||||||
|
memory_data[0] = cpu_to_be32(bd->bi_memstart);
|
||||||
|
memory_data[1] = cpu_to_be32(bd->bi_memsize);
|
||||||
|
|
||||||
|
nodeoffset = fdt_find_node_by_path (blob, "/memory");
|
||||||
|
if (nodeoffset >= 0) {
|
||||||
|
ret = fdt_setprop(blob, nodeoffset, "reg", memory_data,
|
||||||
|
sizeof(memory_data));
|
||||||
|
if (ret < 0)
|
||||||
|
printf("ft_blob_update): cannot set /memory/reg "
|
||||||
|
"property err:%s\n", fdt_strerror(ret));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
/* memory node is required in dts */
|
||||||
|
printf("ft_blob_update(): cannot find /memory node "
|
||||||
|
"err:%s\n", fdt_strerror(nodeoffset));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ft_board_setup(void *blob, bd_t *bd)
|
||||||
|
{
|
||||||
|
ft_cpu_setup( blob, bd);
|
||||||
|
ft_blob_update(blob, bd);
|
||||||
|
}
|
||||||
|
#endif /* defined(CONFIG_OF_BOARD_SETUP) && defined(CONFIG_OF_LIBFDT) */
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
#include <command.h>
|
#include <command.h>
|
||||||
#include <asm/addrspace.h>
|
#include <asm/addrspace.h>
|
||||||
#include <asm/inca-ip.h>
|
#include <asm/inca-ip.h>
|
||||||
|
#include <asm/io.h>
|
||||||
|
|
||||||
extern uint incaip_get_cpuclk(void);
|
extern uint incaip_get_cpuclk(void);
|
||||||
|
|
||||||
@@ -85,7 +85,6 @@ long int initdram(int board_type)
|
|||||||
|
|
||||||
int checkboard (void)
|
int checkboard (void)
|
||||||
{
|
{
|
||||||
|
|
||||||
unsigned long chipid = *INCA_IP_WDT_CHIPID;
|
unsigned long chipid = *INCA_IP_WDT_CHIPID;
|
||||||
int part_num;
|
int part_num;
|
||||||
|
|
||||||
@@ -107,5 +106,7 @@ int checkboard (void)
|
|||||||
|
|
||||||
printf("CPU Speed %d MHz\n", incaip_get_cpuclk()/1000000);
|
printf("CPU Speed %d MHz\n", incaip_get_cpuclk()/1000000);
|
||||||
|
|
||||||
|
set_io_port_base(0);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,21 +43,22 @@ SECTIONS
|
|||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
.data : { *(.data) }
|
.data : { *(.data) }
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
.sdata : { *(.sdata) }
|
|
||||||
|
|
||||||
_gp = ALIGN(16);
|
|
||||||
|
|
||||||
__got_start = .;
|
|
||||||
.got : { *(.got) }
|
|
||||||
__got_end = .;
|
|
||||||
|
|
||||||
.sdata : { *(.sdata) }
|
|
||||||
|
|
||||||
. = .;
|
. = .;
|
||||||
|
_gp = ALIGN(16) + 0x7ff0;
|
||||||
|
|
||||||
|
.got : {
|
||||||
|
__got_start = .;
|
||||||
|
*(.got)
|
||||||
|
__got_end = .;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sdata : { *(.sdata) }
|
||||||
|
|
||||||
|
.u_boot_cmd : {
|
||||||
__u_boot_cmd_start = .;
|
__u_boot_cmd_start = .;
|
||||||
.u_boot_cmd : { *(.u_boot_cmd) }
|
*(.u_boot_cmd)
|
||||||
__u_boot_cmd_end = .;
|
__u_boot_cmd_end = .;
|
||||||
|
}
|
||||||
|
|
||||||
uboot_end_data = .;
|
uboot_end_data = .;
|
||||||
num_got_entries = (__got_end - __got_start) >> 2;
|
num_got_entries = (__got_end - __got_start) >> 2;
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ int i2c_init_board(void)
|
|||||||
|
|
||||||
int misc_init_r(void)
|
int misc_init_r(void)
|
||||||
{
|
{
|
||||||
uchar *str;
|
char *str;
|
||||||
|
|
||||||
/* determine if the software update key is pressed during startup */
|
/* determine if the software update key is pressed during startup */
|
||||||
if (GPLR0 & 0x00000800) {
|
if (GPLR0 & 0x00000800) {
|
||||||
|
|||||||
@@ -28,8 +28,7 @@
|
|||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <clps7111.h>
|
#include <clps7111.h>
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------- */
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Miscelaneous platform dependent initialisations
|
* Miscelaneous platform dependent initialisations
|
||||||
@@ -37,8 +36,6 @@
|
|||||||
|
|
||||||
int board_init (void)
|
int board_init (void)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
|
|
||||||
/* Activate LED flasher */
|
/* Activate LED flasher */
|
||||||
IO_LEDFLSH = 0x40;
|
IO_LEDFLSH = 0x40;
|
||||||
|
|
||||||
@@ -53,8 +50,6 @@ int board_init (void)
|
|||||||
|
|
||||||
int dram_init (void)
|
int dram_init (void)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
|
|
||||||
gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
|
gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
|
||||||
gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
|
gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
|
||||||
|
|
||||||
|
|||||||
@@ -96,6 +96,23 @@ int board_early_init_f(void)
|
|||||||
|
|
||||||
gpio_write_bit(CFG_GPIO_FLASH_WP, 1);
|
gpio_write_bit(CFG_GPIO_FLASH_WP, 1);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Reset PHY's:
|
||||||
|
* The PHY's need a 2nd reset pulse, since the MDIO address is latched
|
||||||
|
* upon reset, and with the first reset upon powerup, the addresses are
|
||||||
|
* not latched reliable, since the IRQ line is multiplexed with an
|
||||||
|
* MDIO address. A 2nd reset at this time will make sure, that the
|
||||||
|
* correct address is latched.
|
||||||
|
*/
|
||||||
|
gpio_write_bit(CFG_GPIO_PHY0_RST, 1);
|
||||||
|
gpio_write_bit(CFG_GPIO_PHY1_RST, 1);
|
||||||
|
udelay(1000);
|
||||||
|
gpio_write_bit(CFG_GPIO_PHY0_RST, 0);
|
||||||
|
gpio_write_bit(CFG_GPIO_PHY1_RST, 0);
|
||||||
|
udelay(1000);
|
||||||
|
gpio_write_bit(CFG_GPIO_PHY0_RST, 1);
|
||||||
|
gpio_write_bit(CFG_GPIO_PHY1_RST, 1);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -230,15 +247,6 @@ int misc_init_r(void)
|
|||||||
/* Write lime controller memory parameters */
|
/* Write lime controller memory parameters */
|
||||||
out_be32((void *)CFG_LIME_MMR, CFG_LIME_MMR_VALUE);
|
out_be32((void *)CFG_LIME_MMR, CFG_LIME_MMR_VALUE);
|
||||||
|
|
||||||
/*
|
|
||||||
* Reset PHY's
|
|
||||||
*/
|
|
||||||
gpio_write_bit(CFG_GPIO_PHY0_RST, 0);
|
|
||||||
gpio_write_bit(CFG_GPIO_PHY1_RST, 0);
|
|
||||||
udelay(100);
|
|
||||||
gpio_write_bit(CFG_GPIO_PHY0_RST, 1);
|
|
||||||
gpio_write_bit(CFG_GPIO_PHY1_RST, 1);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Init display controller
|
* Init display controller
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -200,7 +200,7 @@ int mii_discover_phy(struct eth_device *dev)
|
|||||||
}
|
}
|
||||||
#endif /* CFG_DISCOVER_PHY */
|
#endif /* CFG_DISCOVER_PHY */
|
||||||
|
|
||||||
int mii_init(void) __attribute__((weak,alias("__mii_init")));
|
void mii_init(void) __attribute__((weak,alias("__mii_init")));
|
||||||
|
|
||||||
void __mii_init(void)
|
void __mii_init(void)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -200,7 +200,7 @@ int mii_discover_phy(struct eth_device *dev)
|
|||||||
}
|
}
|
||||||
#endif /* CFG_DISCOVER_PHY */
|
#endif /* CFG_DISCOVER_PHY */
|
||||||
|
|
||||||
int mii_init(void) __attribute__((weak,alias("__mii_init")));
|
void mii_init(void) __attribute__((weak,alias("__mii_init")));
|
||||||
|
|
||||||
void __mii_init(void)
|
void __mii_init(void)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -89,4 +89,5 @@ long int initdram (int board_type)
|
|||||||
/* Write to the SDRAM Mode Register */
|
/* Write to the SDRAM Mode Register */
|
||||||
*(u32 *)(CFG_SDRAM_BASE + 0x400) = 0xA5A59696;
|
*(u32 *)(CFG_SDRAM_BASE + 0x400) = 0xA5A59696;
|
||||||
}
|
}
|
||||||
|
return dramsize;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -201,7 +201,7 @@ int mii_discover_phy(struct eth_device *dev)
|
|||||||
}
|
}
|
||||||
#endif /* CFG_DISCOVER_PHY */
|
#endif /* CFG_DISCOVER_PHY */
|
||||||
|
|
||||||
int mii_init(void) __attribute__((weak,alias("__mii_init")));
|
void mii_init(void) __attribute__((weak,alias("__mii_init")));
|
||||||
|
|
||||||
void __mii_init(void)
|
void __mii_init(void)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -138,6 +138,12 @@ long int initdram(int board_type)
|
|||||||
#ifndef CFG_RAMBOOT
|
#ifndef CFG_RAMBOOT
|
||||||
ulong test1, test2;
|
ulong test1, test2;
|
||||||
|
|
||||||
|
/* According to AN3221 (MPC5200B SDRAM Initialization and
|
||||||
|
* Configuration), the SDelay register must be written a value of
|
||||||
|
* 0x00000004 as the first step of the SDRAM contorller configuration.
|
||||||
|
*/
|
||||||
|
*(vu_long *)MPC5XXX_SDRAM_SDELAY = 0x04;
|
||||||
|
|
||||||
/* configure SDRAM start/end for detection */
|
/* configure SDRAM start/end for detection */
|
||||||
*(vu_long *)MPC5XXX_SDRAM_CS0CFG = 0x0000001e; /* 2G at 0x0 */
|
*(vu_long *)MPC5XXX_SDRAM_CS0CFG = 0x0000001e; /* 2G at 0x0 */
|
||||||
*(vu_long *)MPC5XXX_SDRAM_CS1CFG = 0x80000000; /* disabled */
|
*(vu_long *)MPC5XXX_SDRAM_CS1CFG = 0x80000000; /* disabled */
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ SECTIONS
|
|||||||
lib_generic/crc32.o (.text)
|
lib_generic/crc32.o (.text)
|
||||||
lib_generic/zlib.o (.text)
|
lib_generic/zlib.o (.text)
|
||||||
|
|
||||||
|
*(.fixup)
|
||||||
*(.got1)
|
*(.got1)
|
||||||
. = ALIGN(16);
|
. = ALIGN(16);
|
||||||
*(.rodata)
|
*(.rodata)
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ extern void ft_cpu_setup (void *blob, bd_t *bd);
|
|||||||
|
|
||||||
#undef DEBUG
|
#undef DEBUG
|
||||||
|
|
||||||
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
extern void flush_data_cache (void);
|
extern void flush_data_cache (void);
|
||||||
extern void invalidate_l1_instruction_cache (void);
|
extern void invalidate_l1_instruction_cache (void);
|
||||||
extern void tsi108_init_f (void);
|
extern void tsi108_init_f (void);
|
||||||
@@ -46,8 +48,6 @@ int display_mem_map (void);
|
|||||||
|
|
||||||
void after_reloc (ulong dest_addr)
|
void after_reloc (ulong dest_addr)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Jump to the main U-Boot board init code
|
* Jump to the main U-Boot board init code
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -33,6 +33,8 @@
|
|||||||
#include <asm/processor.h>
|
#include <asm/processor.h>
|
||||||
#include <tsi108.h>
|
#include <tsi108.h>
|
||||||
|
|
||||||
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
extern void mpicInit (int verbose);
|
extern void mpicInit (int verbose);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -141,7 +143,6 @@ unsigned long get_board_bus_clk (void)
|
|||||||
|
|
||||||
int board_early_init_f (void)
|
int board_early_init_f (void)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
ulong i;
|
ulong i;
|
||||||
|
|
||||||
gd->mem_clk = 0;
|
gd->mem_clk = 0;
|
||||||
@@ -583,7 +584,6 @@ unsigned long get_l2cr (void)
|
|||||||
|
|
||||||
int misc_init_r (void)
|
int misc_init_r (void)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
#ifdef CFG_CLK_SPREAD /* Initialize Spread-Spectrum Clock generation */
|
#ifdef CFG_CLK_SPREAD /* Initialize Spread-Spectrum Clock generation */
|
||||||
ulong i;
|
ulong i;
|
||||||
|
|
||||||
|
|||||||
@@ -40,6 +40,8 @@ static uchar cs8900_chksum(ushort data)
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
extern void print_vcma9_info(void);
|
extern void print_vcma9_info(void);
|
||||||
extern int vcma9_cantest(int);
|
extern int vcma9_cantest(int);
|
||||||
extern int vcma9_nandtest(void);
|
extern int vcma9_nandtest(void);
|
||||||
@@ -53,8 +55,6 @@ extern int do_mplcommon(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
|
|||||||
|
|
||||||
int do_vcma9(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
int do_vcma9(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
|
|
||||||
if (strcmp(argv[1], "info") == 0)
|
if (strcmp(argv[1], "info") == 0)
|
||||||
{
|
{
|
||||||
print_vcma9_info();
|
print_vcma9_info();
|
||||||
|
|||||||
@@ -290,7 +290,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
|
|||||||
* Copy memory to flash
|
* Copy memory to flash
|
||||||
*/
|
*/
|
||||||
|
|
||||||
volatile static int write_hword (flash_info_t * info, ulong dest, ushort data)
|
static int write_hword (flash_info_t * info, ulong dest, ushort data)
|
||||||
{
|
{
|
||||||
vu_short *addr = (vu_short *) dest;
|
vu_short *addr = (vu_short *) dest;
|
||||||
ushort result;
|
ushort result;
|
||||||
|
|||||||
@@ -288,7 +288,7 @@ int dram_init(void)
|
|||||||
|
|
||||||
int checkboard(void)
|
int checkboard(void)
|
||||||
{
|
{
|
||||||
unsigned char s[50];
|
char s[50];
|
||||||
int i;
|
int i;
|
||||||
backup_t *b = (backup_t *) s;
|
backup_t *b = (backup_t *) s;
|
||||||
|
|
||||||
@@ -337,7 +337,7 @@ int overwrite_console(void)
|
|||||||
************************************************************************/
|
************************************************************************/
|
||||||
void print_vcma9_info(void)
|
void print_vcma9_info(void)
|
||||||
{
|
{
|
||||||
unsigned char s[50];
|
char s[50];
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if ((i = getenv_r("serial#", s, 32)) < 0) {
|
if ((i = getenv_r("serial#", s, 32)) < 0) {
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ typedef struct {
|
|||||||
} /*__attribute__((__packed__))*/ VCMA9_PLD;
|
} /*__attribute__((__packed__))*/ VCMA9_PLD;
|
||||||
|
|
||||||
#define VCMA9_PLD_BASE 0x2C000100
|
#define VCMA9_PLD_BASE 0x2C000100
|
||||||
static inline VCMA9_PLD * const VCMA9_GetBase_PLD(void)
|
static inline VCMA9_PLD * VCMA9_GetBase_PLD(void)
|
||||||
{
|
{
|
||||||
return (VCMA9_PLD * const)VCMA9_PLD_BASE;
|
return (VCMA9_PLD * const)VCMA9_PLD_BASE;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
|
|||||||
LIB = $(obj)lib$(BOARD).a
|
LIB = $(obj)lib$(BOARD).a
|
||||||
|
|
||||||
COBJS = $(BOARD).o flash.o
|
COBJS = $(BOARD).o flash.o
|
||||||
SOBJS = memsetup.o
|
SOBJS = lowlevel_init.o
|
||||||
|
|
||||||
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
|
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
|
||||||
OBJS := $(addprefix $(obj),$(COBJS))
|
OBJS := $(addprefix $(obj),$(COBJS))
|
||||||
|
|||||||
@@ -15,8 +15,8 @@
|
|||||||
.set noreorder
|
.set noreorder
|
||||||
.set mips32
|
.set mips32
|
||||||
|
|
||||||
.globl memsetup
|
.globl lowlevel_init
|
||||||
memsetup:
|
lowlevel_init:
|
||||||
/*
|
/*
|
||||||
* Step 1) Establish CPU endian mode.
|
* Step 1) Establish CPU endian mode.
|
||||||
* NOTE: A fair amount of code is necessary on the Pb1000 to
|
* NOTE: A fair amount of code is necessary on the Pb1000 to
|
||||||
@@ -25,6 +25,7 @@
|
|||||||
#include <command.h>
|
#include <command.h>
|
||||||
#include <asm/au1x00.h>
|
#include <asm/au1x00.h>
|
||||||
#include <asm/mipsregs.h>
|
#include <asm/mipsregs.h>
|
||||||
|
#include <asm/io.h>
|
||||||
|
|
||||||
long int initdram(int board_type)
|
long int initdram(int board_type)
|
||||||
{
|
{
|
||||||
@@ -41,7 +42,9 @@ void write_one_tlb( int index, u32 pagemask, u32 hi, u32 low0, u32 low1 );
|
|||||||
|
|
||||||
int checkboard (void)
|
int checkboard (void)
|
||||||
{
|
{
|
||||||
|
#if defined(CONFIG_IDE_PCMCIA) && 0
|
||||||
u16 status;
|
u16 status;
|
||||||
|
#endif
|
||||||
/* volatile u32 *pcmcia_bcsr = (u32*)(DB1000_BCSR_ADDR+0x10); */
|
/* volatile u32 *pcmcia_bcsr = (u32*)(DB1000_BCSR_ADDR+0x10); */
|
||||||
volatile u32 *sys_counter = (volatile u32*)SYS_COUNTER_CNTRL;
|
volatile u32 *sys_counter = (volatile u32*)SYS_COUNTER_CNTRL;
|
||||||
u32 proc_id;
|
u32 proc_id;
|
||||||
@@ -69,6 +72,9 @@ int checkboard (void)
|
|||||||
default:
|
default:
|
||||||
printf ("Unsupported cpu %d, proc_id=0x%x\n", proc_id >> 24, proc_id);
|
printf ("Unsupported cpu %d, proc_id=0x%x\n", proc_id >> 24, proc_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set_io_port_base(0);
|
||||||
|
|
||||||
#if defined(CONFIG_IDE_PCMCIA) && 0
|
#if defined(CONFIG_IDE_PCMCIA) && 0
|
||||||
/* Enable 3.3 V on slot 0 ( VCC )
|
/* Enable 3.3 V on slot 0 ( VCC )
|
||||||
No 5V */
|
No 5V */
|
||||||
|
|||||||
@@ -43,20 +43,22 @@ SECTIONS
|
|||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
.data : { *(.data) }
|
.data : { *(.data) }
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = .;
|
||||||
.sdata : { *(.sdata) }
|
_gp = ALIGN(16) + 0x7ff0;
|
||||||
|
|
||||||
_gp = ALIGN(16);
|
|
||||||
|
|
||||||
|
.got : {
|
||||||
__got_start = .;
|
__got_start = .;
|
||||||
.got : { *(.got) }
|
*(.got)
|
||||||
__got_end = .;
|
__got_end = .;
|
||||||
|
}
|
||||||
|
|
||||||
.sdata : { *(.sdata) }
|
.sdata : { *(.sdata) }
|
||||||
|
|
||||||
|
.u_boot_cmd : {
|
||||||
__u_boot_cmd_start = .;
|
__u_boot_cmd_start = .;
|
||||||
.u_boot_cmd : { *(.u_boot_cmd) }
|
*(.u_boot_cmd)
|
||||||
__u_boot_cmd_end = .;
|
__u_boot_cmd_end = .;
|
||||||
|
}
|
||||||
|
|
||||||
uboot_end_data = .;
|
uboot_end_data = .;
|
||||||
num_got_entries = (__got_end - __got_start) >> 2;
|
num_got_entries = (__got_end - __got_start) >> 2;
|
||||||
|
|||||||
@@ -196,7 +196,7 @@ void flash_print_info (flash_info_t * info)
|
|||||||
int i;
|
int i;
|
||||||
uchar *boottype;
|
uchar *boottype;
|
||||||
uchar *bootletter;
|
uchar *bootletter;
|
||||||
uchar *fmt;
|
char *fmt;
|
||||||
uchar botbootletter[] = "B";
|
uchar botbootletter[] = "B";
|
||||||
uchar topbootletter[] = "T";
|
uchar topbootletter[] = "T";
|
||||||
uchar botboottype[] = "bottom boot sector";
|
uchar botboottype[] = "bottom boot sector";
|
||||||
|
|||||||
@@ -299,7 +299,7 @@ void flash_print_info (flash_info_t *info)
|
|||||||
int i;
|
int i;
|
||||||
uchar *boottype;
|
uchar *boottype;
|
||||||
uchar *bootletter;
|
uchar *bootletter;
|
||||||
uchar *fmt;
|
char *fmt;
|
||||||
uchar botbootletter[] = "B";
|
uchar botbootletter[] = "B";
|
||||||
uchar topbootletter[] = "T";
|
uchar topbootletter[] = "T";
|
||||||
uchar botboottype[] = "bottom boot sector";
|
uchar botboottype[] = "bottom boot sector";
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
#include <asm/inca-ip.h>
|
#include <asm/inca-ip.h>
|
||||||
#include <asm/regdef.h>
|
#include <asm/regdef.h>
|
||||||
#include <asm/mipsregs.h>
|
#include <asm/mipsregs.h>
|
||||||
|
#include <asm/io.h>
|
||||||
#include <asm/addrspace.h>
|
#include <asm/addrspace.h>
|
||||||
#include <asm/cacheops.h>
|
#include <asm/cacheops.h>
|
||||||
|
|
||||||
@@ -145,6 +146,8 @@ int checkboard (void)
|
|||||||
|
|
||||||
printf("CPU Speed %d MHz\n", CPU_CLOCK_RATE/1000000);
|
printf("CPU Speed %d MHz\n", CPU_CLOCK_RATE/1000000);
|
||||||
|
|
||||||
|
set_io_port_base(0);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -53,21 +53,22 @@ SECTIONS
|
|||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
.data : { *(.data) }
|
.data : { *(.data) }
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
.sdata : { *(.sdata) }
|
|
||||||
|
|
||||||
_gp = ALIGN(16);
|
|
||||||
|
|
||||||
__got_start = .;
|
|
||||||
.got : { *(.got) }
|
|
||||||
__got_end = .;
|
|
||||||
|
|
||||||
.sdata : { *(.sdata) }
|
|
||||||
|
|
||||||
. = .;
|
. = .;
|
||||||
|
_gp = ALIGN(16) + 0x7ff0;
|
||||||
|
|
||||||
|
.got : {
|
||||||
|
__got_start = .;
|
||||||
|
*(.got)
|
||||||
|
__got_end = .;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sdata : { *(.sdata) }
|
||||||
|
|
||||||
|
.u_boot_cmd : {
|
||||||
__u_boot_cmd_start = .;
|
__u_boot_cmd_start = .;
|
||||||
.u_boot_cmd : { *(.u_boot_cmd) }
|
*(.u_boot_cmd)
|
||||||
__u_boot_cmd_end = .;
|
__u_boot_cmd_end = .;
|
||||||
|
}
|
||||||
|
|
||||||
uboot_end_data = .;
|
uboot_end_data = .;
|
||||||
num_got_entries = (__got_end - __got_start) >> 2;
|
num_got_entries = (__got_end - __got_start) >> 2;
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ include $(TOPDIR)/config.mk
|
|||||||
LIB = $(obj)lib$(BOARD).a
|
LIB = $(obj)lib$(BOARD).a
|
||||||
|
|
||||||
COBJS := pxa_idp.o
|
COBJS := pxa_idp.o
|
||||||
SOBJS := memsetup.o
|
SOBJS := lowlevel_init.o
|
||||||
|
|
||||||
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
|
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
|
||||||
OBJS := $(addprefix $(obj),$(COBJS))
|
OBJS := $(addprefix $(obj),$(COBJS))
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
#TEXT_BASE = 0xa1700000
|
#TEXT_BASE = 0xa1700000
|
||||||
TEXT_BASE = 0xa3000000
|
TEXT_BASE = 0xa3080000
|
||||||
#TEXT_BASE = 0
|
#TEXT_BASE = 0
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
*
|
*
|
||||||
* NOTE: I haven't clean this up considerably, just enough to get it
|
* NOTE: I haven't clean this up considerably, just enough to get it
|
||||||
* running. See hal_platform_setup.h for the source. See
|
* running. See hal_platform_setup.h for the source. See
|
||||||
* board/cradle/memsetup.S for another PXA250 setup that is
|
* board/cradle/lowlevel_init.S for another PXA250 setup that is
|
||||||
* much cleaner.
|
* much cleaner.
|
||||||
*
|
*
|
||||||
* See file CREDITS for list of people who contributed to this
|
* See file CREDITS for list of people who contributed to this
|
||||||
@@ -41,8 +41,8 @@ DRAM_SIZE: .long CFG_DRAM_SIZE
|
|||||||
/*
|
/*
|
||||||
* Memory setup
|
* Memory setup
|
||||||
*/
|
*/
|
||||||
.globl memsetup
|
.globl lowlevel_init
|
||||||
memsetup:
|
lowlevel_init:
|
||||||
|
|
||||||
mov r10, lr
|
mov r10, lr
|
||||||
|
|
||||||
@@ -426,7 +426,7 @@ initclks:
|
|||||||
bl blink
|
bl blink
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
endmemsetup:
|
endlowlevel_init:
|
||||||
|
|
||||||
mov pc, r10
|
mov pc, r10
|
||||||
|
|
||||||
@@ -44,6 +44,7 @@ SECTIONS
|
|||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
.got : { *(.got) }
|
.got : { *(.got) }
|
||||||
|
|
||||||
|
. = .;
|
||||||
__u_boot_cmd_start = .;
|
__u_boot_cmd_start = .;
|
||||||
.u_boot_cmd : { *(.u_boot_cmd) }
|
.u_boot_cmd : { *(.u_boot_cmd) }
|
||||||
__u_boot_cmd_end = .;
|
__u_boot_cmd_end = .;
|
||||||
|
|||||||
@@ -210,7 +210,7 @@ void read_RS5C372_time (struct tm *timedate)
|
|||||||
|
|
||||||
#define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10)
|
#define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10)
|
||||||
|
|
||||||
if (i2c_read (RS5C372_PPC_I2C_ADR, 0, 1, buffer, sizeof (buffer))) {
|
if (! i2c_read (RS5C372_PPC_I2C_ADR, 0, 1, buffer, sizeof (buffer))) {
|
||||||
timedate->tm_sec = BCD_TO_BIN (buffer[0]);
|
timedate->tm_sec = BCD_TO_BIN (buffer[0]);
|
||||||
timedate->tm_min = BCD_TO_BIN (buffer[1]);
|
timedate->tm_min = BCD_TO_BIN (buffer[1]);
|
||||||
timedate->tm_hour = BCD_TO_BIN (buffer[2]);
|
timedate->tm_hour = BCD_TO_BIN (buffer[2]);
|
||||||
@@ -231,7 +231,7 @@ int read_LM84_temp (int address)
|
|||||||
unsigned char buffer[8];
|
unsigned char buffer[8];
|
||||||
/*int rc;*/
|
/*int rc;*/
|
||||||
|
|
||||||
if (i2c_read (address, 0, 1, buffer, 1)) {
|
if (! i2c_read (address, 0, 1, buffer, 1)) {
|
||||||
return (int) buffer[0];
|
return (int) buffer[0];
|
||||||
} else {
|
} else {
|
||||||
/*printf("i2c error %02x\n", rc); */
|
/*printf("i2c error %02x\n", rc); */
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ SECTIONS
|
|||||||
{
|
{
|
||||||
cpu/mpc8260/start.o (.text)
|
cpu/mpc8260/start.o (.text)
|
||||||
*(.text)
|
*(.text)
|
||||||
|
*(.fixup)
|
||||||
*(.got1)
|
*(.got1)
|
||||||
/*. = env_offset; */
|
/*. = env_offset; */
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -288,7 +288,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
|
|||||||
* Copy memory to flash
|
* Copy memory to flash
|
||||||
*/
|
*/
|
||||||
|
|
||||||
volatile static int write_hword (flash_info_t * info, ulong dest, ushort data)
|
static int write_hword (flash_info_t * info, ulong dest, ushort data)
|
||||||
{
|
{
|
||||||
vu_short *addr = (vu_short *) dest;
|
vu_short *addr = (vu_short *) dest;
|
||||||
ushort result;
|
ushort result;
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
#include <linux/mtd/nand.h>
|
#include <linux/mtd/nand.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------- */
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
#define FCLK_SPEED 1
|
#define FCLK_SPEED 1
|
||||||
|
|
||||||
@@ -74,7 +74,6 @@ static inline void delay (unsigned long loops)
|
|||||||
|
|
||||||
int board_init (void)
|
int board_init (void)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
|
S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
|
||||||
S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
|
S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
|
||||||
|
|
||||||
@@ -128,8 +127,6 @@ int board_init (void)
|
|||||||
|
|
||||||
int dram_init (void)
|
int dram_init (void)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
|
|
||||||
gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
|
gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
|
||||||
gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
|
gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
|
||||||
|
|
||||||
|
|||||||
@@ -31,8 +31,7 @@
|
|||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <clps7111.h>
|
#include <clps7111.h>
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------- */
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Miscellaneous platform dependent initialisations
|
* Miscellaneous platform dependent initialisations
|
||||||
@@ -40,8 +39,6 @@
|
|||||||
|
|
||||||
int board_init (void)
|
int board_init (void)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
|
|
||||||
/* arch number MACH_TYPE_ARMADILLO - not official*/
|
/* arch number MACH_TYPE_ARMADILLO - not official*/
|
||||||
gd->bd->bi_arch_number = 83;
|
gd->bd->bi_arch_number = 83;
|
||||||
|
|
||||||
@@ -53,8 +50,6 @@ int board_init (void)
|
|||||||
|
|
||||||
int dram_init (void)
|
int dram_init (void)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
|
|
||||||
gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
|
gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
|
||||||
gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
|
gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
|
||||||
|
|
||||||
|
|||||||
@@ -290,7 +290,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
|
|||||||
* Copy memory to flash
|
* Copy memory to flash
|
||||||
*/
|
*/
|
||||||
|
|
||||||
volatile static int write_hword (flash_info_t * info, ulong dest, ushort data)
|
static int write_hword (flash_info_t * info, ulong dest, ushort data)
|
||||||
{
|
{
|
||||||
vu_short *addr = (vu_short *) dest;
|
vu_short *addr = (vu_short *) dest;
|
||||||
ushort result;
|
ushort result;
|
||||||
|
|||||||
@@ -378,9 +378,14 @@ static struct pci_config_table pci_stxgp3_config_table[] = {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static struct pci_controller hose = {
|
static struct pci_controller hose[] = {
|
||||||
#ifndef CONFIG_PCI_PNP
|
#ifndef CONFIG_PCI_PNP
|
||||||
config_table: pci_stxgp3_config_table,
|
{ config_table: pci_stxgp3_config_table,},
|
||||||
|
#else
|
||||||
|
{},
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_MPC85XX_PCI2
|
||||||
|
{},
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -393,6 +398,6 @@ pci_init_board(void)
|
|||||||
#ifdef CONFIG_PCI
|
#ifdef CONFIG_PCI
|
||||||
extern void pci_mpc85xx_init(struct pci_controller *hose);
|
extern void pci_mpc85xx_init(struct pci_controller *hose);
|
||||||
|
|
||||||
pci_mpc85xx_init(&hose);
|
pci_mpc85xx_init(hose);
|
||||||
#endif /* CONFIG_PCI */
|
#endif /* CONFIG_PCI */
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -145,6 +145,7 @@ SECTIONS
|
|||||||
. = ALIGN(256);
|
. = ALIGN(256);
|
||||||
__init_end = .;
|
__init_end = .;
|
||||||
|
|
||||||
|
. = .;
|
||||||
__bss_start = .;
|
__bss_start = .;
|
||||||
.bss :
|
.bss :
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -13,10 +13,9 @@
|
|||||||
#include <command.h>
|
#include <command.h>
|
||||||
#include <asm/addrspace.h>
|
#include <asm/addrspace.h>
|
||||||
#include <asm/inca-ip.h>
|
#include <asm/inca-ip.h>
|
||||||
|
#include <asm/io.h>
|
||||||
#include <pci.h>
|
#include <pci.h>
|
||||||
|
|
||||||
unsigned long mips_io_port_base = 0;
|
|
||||||
|
|
||||||
#if defined(CONFIG_PCI)
|
#if defined(CONFIG_PCI)
|
||||||
static struct pci_controller hose;
|
static struct pci_controller hose;
|
||||||
|
|
||||||
@@ -26,17 +25,17 @@ void pci_init_board (void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
long int initdram(int board_type)
|
long int initdram(int board_type)
|
||||||
{
|
{
|
||||||
return get_ram_size (CFG_SDRAM_BASE, 0x8000000);
|
return get_ram_size (CFG_SDRAM_BASE, 0x8000000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int checkboard (void)
|
int checkboard (void)
|
||||||
{
|
{
|
||||||
printf("Board: TANBAC TB0229 ");
|
printf("Board: TANBAC TB0229 ");
|
||||||
printf("(CPU Speed %d MHz)\n", (int)CPU_CLOCK_RATE/1000000);
|
printf("(CPU Speed %d MHz)\n", (int)CPU_CLOCK_RATE/1000000);
|
||||||
|
|
||||||
|
set_io_port_base(0);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,21 +43,22 @@ SECTIONS
|
|||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
.data : { *(.data) }
|
.data : { *(.data) }
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
.sdata : { *(.sdata) }
|
|
||||||
|
|
||||||
_gp = ALIGN(16);
|
|
||||||
|
|
||||||
__got_start = .;
|
|
||||||
.got : { *(.got) }
|
|
||||||
__got_end = .;
|
|
||||||
|
|
||||||
.sdata : { *(.sdata) }
|
|
||||||
|
|
||||||
. = .;
|
. = .;
|
||||||
|
_gp = ALIGN(16) + 0x7ff0;
|
||||||
|
|
||||||
|
.got : {
|
||||||
|
__got_start = .;
|
||||||
|
*(.got)
|
||||||
|
__got_end = .;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sdata : { *(.sdata) }
|
||||||
|
|
||||||
|
.u_boot_cmd : {
|
||||||
__u_boot_cmd_start = .;
|
__u_boot_cmd_start = .;
|
||||||
.u_boot_cmd : { *(.u_boot_cmd) }
|
*(.u_boot_cmd)
|
||||||
__u_boot_cmd_end = .;
|
__u_boot_cmd_end = .;
|
||||||
|
}
|
||||||
|
|
||||||
uboot_end_data = .;
|
uboot_end_data = .;
|
||||||
num_got_entries = (__got_end - __got_start) >> 2;
|
num_got_entries = (__got_end - __got_start) >> 2;
|
||||||
|
|||||||
@@ -561,7 +561,7 @@ void led_init(void)
|
|||||||
gpt->gpt6.emsr |= 0x00000024;
|
gpt->gpt6.emsr |= 0x00000024;
|
||||||
gpt->gpt7.emsr |= 0x00000024;
|
gpt->gpt7.emsr |= 0x00000024;
|
||||||
|
|
||||||
|
#ifndef CONFIG_TQM5200S
|
||||||
/* enable SM501 GPIO control (in both power modes) */
|
/* enable SM501 GPIO control (in both power modes) */
|
||||||
*(vu_long *) (SM501_MMIO_BASE+SM501_POWER_MODE0_GATE) |=
|
*(vu_long *) (SM501_MMIO_BASE+SM501_POWER_MODE0_GATE) |=
|
||||||
POWER_MODE_GATE_GPIO_PWM_I2C;
|
POWER_MODE_GATE_GPIO_PWM_I2C;
|
||||||
@@ -574,6 +574,7 @@ void led_init(void)
|
|||||||
|
|
||||||
/* configure SM501 gpio pins 48-51 as output */
|
/* configure SM501 gpio pins 48-51 as output */
|
||||||
*(vu_long *) (SM501_MMIO_BASE+SM501_GPIO_DATA_DIR_HIGH) |= (0xF << 16);
|
*(vu_long *) (SM501_MMIO_BASE+SM501_GPIO_DATA_DIR_HIGH) |= (0xF << 16);
|
||||||
|
#endif /* !CONFIG_TQM5200S */
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -650,7 +651,7 @@ int do_led(char *argv[])
|
|||||||
gpt->gpt7.emsr &= ~(1 << 4);
|
gpt->gpt7.emsr &= ~(1 << 4);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
#ifndef CONFIG_TQM5200S
|
||||||
case 24:
|
case 24:
|
||||||
if (strcmp (argv[3], "on") == 0) {
|
if (strcmp (argv[3], "on") == 0) {
|
||||||
*(vu_long *) (SM501_MMIO_BASE+SM501_GPIO_DATA_LOW) |=
|
*(vu_long *) (SM501_MMIO_BASE+SM501_GPIO_DATA_LOW) |=
|
||||||
@@ -730,7 +731,7 @@ int do_led(char *argv[])
|
|||||||
~(0x1 << 19);
|
~(0x1 << 19);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
#endif /* !CONFIG_TQM5200S */
|
||||||
default:
|
default:
|
||||||
printf ("%s: invalid led number %s\n", __FUNCTION__, argv[2]);
|
printf ("%s: invalid led number %s\n", __FUNCTION__, argv[2]);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -1110,7 +1111,7 @@ int do_rs232(char *argv[])
|
|||||||
return error_status;
|
return error_status;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CONFIG_FO300
|
#if !defined(CONFIG_FO300) && !defined(CONFIG_TQM5200S)
|
||||||
static void sm501_backlight (unsigned int state)
|
static void sm501_backlight (unsigned int state)
|
||||||
{
|
{
|
||||||
if (state == BL_ON) {
|
if (state == BL_ON) {
|
||||||
@@ -1120,7 +1121,7 @@ static void sm501_backlight (unsigned int state)
|
|||||||
*(vu_long *)(SM501_MMIO_BASE+SM501_PANEL_DISPLAY_CONTROL) &=
|
*(vu_long *)(SM501_MMIO_BASE+SM501_PANEL_DISPLAY_CONTROL) &=
|
||||||
~((1 << 26) | (1 << 27));
|
~((1 << 26) | (1 << 27));
|
||||||
}
|
}
|
||||||
#endif
|
#endif /* !CONFIG_FO300 & !CONFIG_TQM5200S */
|
||||||
|
|
||||||
int cmd_fkt(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
int cmd_fkt(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
||||||
{
|
{
|
||||||
@@ -1160,7 +1161,7 @@ int cmd_fkt(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
|||||||
else
|
else
|
||||||
printf ("Error\n");
|
printf ("Error\n");
|
||||||
return rcode;
|
return rcode;
|
||||||
#ifndef CONFIG_FO300
|
#if !defined(CONFIG_FO300) && !defined(CONFIG_TQM5200S)
|
||||||
} else if (strncmp (argv[1], "backlight", 4) == 0) {
|
} else if (strncmp (argv[1], "backlight", 4) == 0) {
|
||||||
if (strncmp (argv[2], "on", 2) == 0) {
|
if (strncmp (argv[2], "on", 2) == 0) {
|
||||||
sm501_backlight (BL_ON);
|
sm501_backlight (BL_ON);
|
||||||
@@ -1170,7 +1171,7 @@ int cmd_fkt(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
|||||||
sm501_backlight (BL_OFF);
|
sm501_backlight (BL_OFF);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif /* !CONFIG_FO300 & !CONFIG_TQM5200S */
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1228,8 +1229,10 @@ U_BOOT_CMD(
|
|||||||
" - loopback plug for X83 required\n"
|
" - loopback plug for X83 required\n"
|
||||||
"fkt rs232 number\n"
|
"fkt rs232 number\n"
|
||||||
" - loopback plug(s) for X2 required\n"
|
" - loopback plug(s) for X2 required\n"
|
||||||
|
#ifndef CONFIG_TQM5200S
|
||||||
"fkt backlight on/off\n"
|
"fkt backlight on/off\n"
|
||||||
" - switch backlight on or off\n"
|
" - switch backlight on or off\n"
|
||||||
|
#endif /* !CONFIG_TQM5200S */
|
||||||
);
|
);
|
||||||
#elif defined(CONFIG_FO300)
|
#elif defined(CONFIG_FO300)
|
||||||
U_BOOT_CMD(
|
U_BOOT_CMD(
|
||||||
|
|||||||
@@ -43,6 +43,8 @@
|
|||||||
#include "mt48lc16m16a2-75.h"
|
#include "mt48lc16m16a2-75.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
#ifdef CONFIG_PS2MULT
|
#ifdef CONFIG_PS2MULT
|
||||||
void ps2mult_early_init(void);
|
void ps2mult_early_init(void);
|
||||||
#endif
|
#endif
|
||||||
@@ -439,15 +441,23 @@ ulong post_word_load (void)
|
|||||||
}
|
}
|
||||||
#endif /* CONFIG_POST || CONFIG_LOGBUFFER*/
|
#endif /* CONFIG_POST || CONFIG_LOGBUFFER*/
|
||||||
|
|
||||||
#ifdef CONFIG_PS2MULT
|
|
||||||
#ifdef CONFIG_BOARD_EARLY_INIT_R
|
#ifdef CONFIG_BOARD_EARLY_INIT_R
|
||||||
int board_early_init_r (void)
|
int board_early_init_r (void)
|
||||||
{
|
{
|
||||||
|
extern int usb_cpu_init(void);
|
||||||
|
|
||||||
|
#ifdef CONFIG_PS2MULT
|
||||||
ps2mult_early_init();
|
ps2mult_early_init();
|
||||||
|
#endif /* CONFIG_PS2MULT */
|
||||||
|
|
||||||
|
#if defined(CONFIG_USB_OHCI_NEW) && defined(CFG_USB_OHCI_CPU_INIT)
|
||||||
|
/* Low level USB init, required for proper kernel operation */
|
||||||
|
usb_cpu_init();
|
||||||
|
#endif
|
||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif /* CONFIG_PS2MULT */
|
|
||||||
|
|
||||||
#ifdef CONFIG_FO300
|
#ifdef CONFIG_FO300
|
||||||
int silent_boot (void)
|
int silent_boot (void)
|
||||||
@@ -477,8 +487,6 @@ int silent_boot (void)
|
|||||||
|
|
||||||
int board_early_init_f (void)
|
int board_early_init_f (void)
|
||||||
{
|
{
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
|
|
||||||
if (silent_boot())
|
if (silent_boot())
|
||||||
gd->flags |= GD_FLG_SILENT;
|
gd->flags |= GD_FLG_SILENT;
|
||||||
|
|
||||||
@@ -543,6 +551,7 @@ int last_stage_init (void)
|
|||||||
__asm__ volatile ("sync");
|
__asm__ volatile ("sync");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef CONFIG_TQM5200S /* The TQM5200S has no SM501 grafic controller */
|
||||||
/*
|
/*
|
||||||
* Check for Grafic Controller
|
* Check for Grafic Controller
|
||||||
*/
|
*/
|
||||||
@@ -584,6 +593,7 @@ int last_stage_init (void)
|
|||||||
disable_ctrlc(1);
|
disable_ctrlc(1);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif /* !CONFIG_TQM5200S */
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -354,6 +354,8 @@ long int initdram (int board_type)
|
|||||||
udelay (10000);
|
udelay (10000);
|
||||||
|
|
||||||
#ifdef CONFIG_CAN_DRIVER
|
#ifdef CONFIG_CAN_DRIVER
|
||||||
|
/* UPM initialization for CAN @ CLKOUT <= 66 MHz */
|
||||||
|
|
||||||
/* Initialize OR3 / BR3 */
|
/* Initialize OR3 / BR3 */
|
||||||
memctl->memc_or3 = CFG_OR3_CAN;
|
memctl->memc_or3 = CFG_OR3_CAN;
|
||||||
memctl->memc_br3 = CFG_BR3_CAN;
|
memctl->memc_br3 = CFG_BR3_CAN;
|
||||||
@@ -362,7 +364,7 @@ long int initdram (int board_type)
|
|||||||
memctl->memc_mbmr = MBMR_GPL_B4DIS; /* GPL_B4 ouput line Disable */
|
memctl->memc_mbmr = MBMR_GPL_B4DIS; /* GPL_B4 ouput line Disable */
|
||||||
|
|
||||||
/* Initialize UPMB for CAN: single read */
|
/* Initialize UPMB for CAN: single read */
|
||||||
memctl->memc_mdr = 0xFFFFC004;
|
memctl->memc_mdr = 0xFFFFCC04;
|
||||||
memctl->memc_mcr = 0x0100 | UPMB;
|
memctl->memc_mcr = 0x0100 | UPMB;
|
||||||
|
|
||||||
memctl->memc_mdr = 0x0FFFD004;
|
memctl->memc_mdr = 0x0FFFD004;
|
||||||
@@ -374,23 +376,23 @@ long int initdram (int board_type)
|
|||||||
memctl->memc_mdr = 0x3FFFC004;
|
memctl->memc_mdr = 0x3FFFC004;
|
||||||
memctl->memc_mcr = 0x0103 | UPMB;
|
memctl->memc_mcr = 0x0103 | UPMB;
|
||||||
|
|
||||||
memctl->memc_mdr = 0xFFFFDC05;
|
memctl->memc_mdr = 0xFFFFDC07;
|
||||||
memctl->memc_mcr = 0x0104 | UPMB;
|
memctl->memc_mcr = 0x0104 | UPMB;
|
||||||
|
|
||||||
/* Initialize UPMB for CAN: single write */
|
/* Initialize UPMB for CAN: single write */
|
||||||
memctl->memc_mdr = 0xFFFCC004;
|
memctl->memc_mdr = 0xFFFCCC04;
|
||||||
memctl->memc_mcr = 0x0118 | UPMB;
|
memctl->memc_mcr = 0x0118 | UPMB;
|
||||||
|
|
||||||
memctl->memc_mdr = 0xCFFCD004;
|
memctl->memc_mdr = 0xCFFCDC04;
|
||||||
memctl->memc_mcr = 0x0119 | UPMB;
|
memctl->memc_mcr = 0x0119 | UPMB;
|
||||||
|
|
||||||
memctl->memc_mdr = 0x0FFCC000;
|
memctl->memc_mdr = 0x3FFCC000;
|
||||||
memctl->memc_mcr = 0x011A | UPMB;
|
memctl->memc_mcr = 0x011A | UPMB;
|
||||||
|
|
||||||
memctl->memc_mdr = 0x7FFCC004;
|
memctl->memc_mdr = 0xFFFCC004;
|
||||||
memctl->memc_mcr = 0x011B | UPMB;
|
memctl->memc_mcr = 0x011B | UPMB;
|
||||||
|
|
||||||
memctl->memc_mdr = 0xFFFDCC05;
|
memctl->memc_mdr = 0xFFFDC405;
|
||||||
memctl->memc_mcr = 0x011C | UPMB;
|
memctl->memc_mcr = 0x011C | UPMB;
|
||||||
#endif /* CONFIG_CAN_DRIVER */
|
#endif /* CONFIG_CAN_DRIVER */
|
||||||
|
|
||||||
|
|||||||
@@ -44,6 +44,7 @@
|
|||||||
|
|
||||||
#if ( WEP_FLASH_BUS_WIDTH == 1 )
|
#if ( WEP_FLASH_BUS_WIDTH == 1 )
|
||||||
# define FLASH_BUS vu_char
|
# define FLASH_BUS vu_char
|
||||||
|
# define FLASH_BUS_RET u_char
|
||||||
# if ( WEP_FLASH_INTERLEAVE == 1 )
|
# if ( WEP_FLASH_INTERLEAVE == 1 )
|
||||||
# define FLASH_CMD( x ) x
|
# define FLASH_CMD( x ) x
|
||||||
# else
|
# else
|
||||||
@@ -53,6 +54,7 @@
|
|||||||
|
|
||||||
#elif ( WEP_FLASH_BUS_WIDTH == 2 )
|
#elif ( WEP_FLASH_BUS_WIDTH == 2 )
|
||||||
# define FLASH_BUS vu_short
|
# define FLASH_BUS vu_short
|
||||||
|
# define FLASH_BUS_RET u_short
|
||||||
# if ( WEP_FLASH_INTERLEAVE == 1 )
|
# if ( WEP_FLASH_INTERLEAVE == 1 )
|
||||||
# define FLASH_CMD( x ) x
|
# define FLASH_CMD( x ) x
|
||||||
# elif ( WEP_FLASH_INTERLEAVE == 2 )
|
# elif ( WEP_FLASH_INTERLEAVE == 2 )
|
||||||
@@ -64,6 +66,7 @@
|
|||||||
|
|
||||||
#elif ( WEP_FLASH_BUS_WIDTH == 4 )
|
#elif ( WEP_FLASH_BUS_WIDTH == 4 )
|
||||||
# define FLASH_BUS vu_long
|
# define FLASH_BUS vu_long
|
||||||
|
# define FLASH_BUS_RET u_long
|
||||||
# if ( WEP_FLASH_INTERLEAVE == 1 )
|
# if ( WEP_FLASH_INTERLEAVE == 1 )
|
||||||
# define FLASH_CMD( x ) x
|
# define FLASH_CMD( x ) x
|
||||||
# elif ( WEP_FLASH_INTERLEAVE == 2 )
|
# elif ( WEP_FLASH_INTERLEAVE == 2 )
|
||||||
@@ -81,7 +84,7 @@
|
|||||||
|
|
||||||
flash_info_t flash_info[CFG_MAX_FLASH_BANKS];
|
flash_info_t flash_info[CFG_MAX_FLASH_BANKS];
|
||||||
|
|
||||||
static FLASH_BUS flash_status_reg (void)
|
static FLASH_BUS_RET flash_status_reg (void)
|
||||||
{
|
{
|
||||||
|
|
||||||
FLASH_BUS *addr = (FLASH_BUS *) 0;
|
FLASH_BUS *addr = (FLASH_BUS *) 0;
|
||||||
|
|||||||
@@ -46,11 +46,11 @@ unsigned long flash_init (void)
|
|||||||
for (i = 0; i < CFG_MAX_FLASH_BANKS; i++) {
|
for (i = 0; i < CFG_MAX_FLASH_BANKS; i++) {
|
||||||
switch (i) {
|
switch (i) {
|
||||||
case 0:
|
case 0:
|
||||||
flash_get_size ((long *) PHYS_FLASH_1, &flash_info[i]);
|
flash_get_size ((vu_long *) PHYS_FLASH_1, &flash_info[i]);
|
||||||
flash_get_offsets (PHYS_FLASH_1, &flash_info[i]);
|
flash_get_offsets (PHYS_FLASH_1, &flash_info[i]);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
flash_get_size ((long *) PHYS_FLASH_2, &flash_info[i]);
|
flash_get_size ((vu_long *) PHYS_FLASH_2, &flash_info[i]);
|
||||||
flash_get_offsets (PHYS_FLASH_2, &flash_info[i]);
|
flash_get_offsets (PHYS_FLASH_2, &flash_info[i]);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -37,13 +37,14 @@ COBJS = main.o ACEX1K.o altera.o bedbug.o circbuf.o cmd_autoscript.o \
|
|||||||
cmd_load.o cmd_log.o \
|
cmd_load.o cmd_log.o \
|
||||||
cmd_mem.o cmd_mii.o cmd_misc.o cmd_mmc.o \
|
cmd_mem.o cmd_mii.o cmd_misc.o cmd_mmc.o \
|
||||||
cmd_nand.o cmd_net.o cmd_nvedit.o \
|
cmd_nand.o cmd_net.o cmd_nvedit.o \
|
||||||
|
cmd_onenand.o \
|
||||||
cmd_pci.o cmd_pcmcia.o cmd_portio.o \
|
cmd_pci.o cmd_pcmcia.o cmd_portio.o \
|
||||||
cmd_reginfo.o cmd_reiser.o cmd_sata.o cmd_scsi.o cmd_spi.o \
|
cmd_reginfo.o cmd_reiser.o cmd_sata.o cmd_scsi.o cmd_spi.o \
|
||||||
cmd_universe.o cmd_usb.o cmd_vfd.o \
|
cmd_universe.o cmd_usb.o cmd_vfd.o \
|
||||||
command.o console.o cyclon2.o devices.o dlmalloc.o docecc.o \
|
command.o console.o cyclon2.o devices.o dlmalloc.o docecc.o \
|
||||||
environment.o env_common.o \
|
environment.o env_common.o \
|
||||||
env_nand.o env_dataflash.o env_flash.o env_eeprom.o \
|
env_nand.o env_dataflash.o env_flash.o env_eeprom.o \
|
||||||
env_nvram.o env_nowhere.o \
|
env_onenand.o env_nvram.o env_nowhere.o \
|
||||||
exports.o \
|
exports.o \
|
||||||
fdt_support.o flash.o fpga.o ft_build.o \
|
fdt_support.o flash.o fpga.o ft_build.o \
|
||||||
hush.o kgdb.o lcd.o lists.o lynxkdi.o \
|
hush.o kgdb.o lcd.o lists.o lynxkdi.o \
|
||||||
|
|||||||
@@ -466,7 +466,7 @@ U_BOOT_CMD(
|
|||||||
"\t'arg' can be the address of an initrd image\n"
|
"\t'arg' can be the address of an initrd image\n"
|
||||||
#if defined(CONFIG_OF_FLAT_TREE) || defined(CONFIG_OF_LIBFDT)
|
#if defined(CONFIG_OF_FLAT_TREE) || defined(CONFIG_OF_LIBFDT)
|
||||||
"\tWhen booting a Linux kernel which requires a flat device-tree\n"
|
"\tWhen booting a Linux kernel which requires a flat device-tree\n"
|
||||||
"\ta third argument is required which is the address of the of the\n"
|
"\ta third argument is required which is the address of the\n"
|
||||||
"\tdevice-tree blob. To boot that kernel without an initrd image,\n"
|
"\tdevice-tree blob. To boot that kernel without an initrd image,\n"
|
||||||
"\tuse a '-' for the second argument. If you do not pass a third\n"
|
"\tuse a '-' for the second argument. If you do not pass a third\n"
|
||||||
"\ta bd_info struct will be passed instead\n"
|
"\ta bd_info struct will be passed instead\n"
|
||||||
@@ -834,9 +834,11 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
|
|||||||
of_flat_tree += 4 - tail;
|
of_flat_tree += 4 - tail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef CFG_NO_FLASH
|
||||||
/* move the blob if it is in flash (set of_data to !null) */
|
/* move the blob if it is in flash (set of_data to !null) */
|
||||||
if (addr2info ((ulong)of_flat_tree) != NULL)
|
if (addr2info ((ulong)of_flat_tree) != NULL)
|
||||||
of_data = (ulong)of_flat_tree;
|
of_data = (ulong)of_flat_tree;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if defined(CONFIG_OF_FLAT_TREE)
|
#if defined(CONFIG_OF_FLAT_TREE)
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ int do_dtt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
|||||||
|
|
||||||
U_BOOT_CMD(
|
U_BOOT_CMD(
|
||||||
dtt, 1, 1, do_dtt,
|
dtt, 1, 1, do_dtt,
|
||||||
"dtt - Digital Thermometer and Themostat\n",
|
"dtt - Digital Thermometer and Thermostat\n",
|
||||||
" - Read temperature from digital thermometer and thermostat.\n"
|
" - Read temperature from digital thermometer and thermostat.\n"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ static int fpga_get_op (char *opstr);
|
|||||||
/* Convert bitstream data and load into the fpga */
|
/* Convert bitstream data and load into the fpga */
|
||||||
int fpga_loadbitstream(unsigned long dev, char* fpgadata, size_t size)
|
int fpga_loadbitstream(unsigned long dev, char* fpgadata, size_t size)
|
||||||
{
|
{
|
||||||
|
#if (CONFIG_FPGA & CFG_FPGA_XILINX)
|
||||||
unsigned int length;
|
unsigned int length;
|
||||||
unsigned char* swapdata;
|
unsigned char* swapdata;
|
||||||
unsigned int swapsize;
|
unsigned int swapsize;
|
||||||
@@ -72,7 +73,6 @@ int fpga_loadbitstream(unsigned long dev, char* fpgadata, size_t size)
|
|||||||
|
|
||||||
dataptr = (unsigned char *)fpgadata;
|
dataptr = (unsigned char *)fpgadata;
|
||||||
|
|
||||||
#if CFG_FPGA_XILINX
|
|
||||||
/* skip the first bytes of the bitsteam, their meaning is unknown */
|
/* skip the first bytes of the bitsteam, their meaning is unknown */
|
||||||
length = (*dataptr << 8) + *(dataptr+1);
|
length = (*dataptr << 8) + *(dataptr+1);
|
||||||
dataptr+=2;
|
dataptr+=2;
|
||||||
|
|||||||
@@ -54,10 +54,6 @@
|
|||||||
|
|
||||||
#ifndef __PPC__
|
#ifndef __PPC__
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#ifdef __MIPS__
|
|
||||||
/* Macros depend on this variable */
|
|
||||||
unsigned long mips_io_port_base = 0;
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_IDE_8xx_DIRECT
|
#ifdef CONFIG_IDE_8xx_DIRECT
|
||||||
@@ -1136,9 +1132,9 @@ static void ide_ident (block_dev_desc_t *dev_desc)
|
|||||||
|
|
||||||
input_swap_data (device, iobuf, ATA_SECTORWORDS);
|
input_swap_data (device, iobuf, ATA_SECTORWORDS);
|
||||||
|
|
||||||
ident_cpy (dev_desc->revision, iop->fw_rev, sizeof(dev_desc->revision));
|
ident_cpy ((unsigned char*)dev_desc->revision, iop->fw_rev, sizeof(dev_desc->revision));
|
||||||
ident_cpy (dev_desc->vendor, iop->model, sizeof(dev_desc->vendor));
|
ident_cpy ((unsigned char*)dev_desc->vendor, iop->model, sizeof(dev_desc->vendor));
|
||||||
ident_cpy (dev_desc->product, iop->serial_no, sizeof(dev_desc->product));
|
ident_cpy ((unsigned char*)dev_desc->product, iop->serial_no, sizeof(dev_desc->product));
|
||||||
#ifdef __LITTLE_ENDIAN
|
#ifdef __LITTLE_ENDIAN
|
||||||
/*
|
/*
|
||||||
* firmware revision and model number have Big Endian Byte
|
* firmware revision and model number have Big Endian Byte
|
||||||
@@ -1953,9 +1949,9 @@ static void atapi_inquiry(block_dev_desc_t * dev_desc)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
/* copy device ident strings */
|
/* copy device ident strings */
|
||||||
ident_cpy(dev_desc->vendor,&iobuf[8],8);
|
ident_cpy((unsigned char*)dev_desc->vendor,&iobuf[8],8);
|
||||||
ident_cpy(dev_desc->product,&iobuf[16],16);
|
ident_cpy((unsigned char*)dev_desc->product,&iobuf[16],16);
|
||||||
ident_cpy(dev_desc->revision,&iobuf[32],5);
|
ident_cpy((unsigned char*)dev_desc->revision,&iobuf[32],5);
|
||||||
|
|
||||||
dev_desc->lun=0;
|
dev_desc->lun=0;
|
||||||
dev_desc->lba=0;
|
dev_desc->lba=0;
|
||||||
|
|||||||
@@ -355,19 +355,18 @@ int do_rspr (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
|||||||
unsigned int reg = 0;
|
unsigned int reg = 0;
|
||||||
unsigned int val = 0;
|
unsigned int val = 0;
|
||||||
|
|
||||||
reg = (unsigned int)simple_strtoul (argv[1], NULL, 16);
|
if (argc < 2) {
|
||||||
val = (unsigned int)simple_strtoul (argv[2], NULL, 16);
|
|
||||||
if (argc < 1) {
|
|
||||||
printf ("Usage:\n%s\n", cmdtp->usage);
|
printf ("Usage:\n%s\n", cmdtp->usage);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
reg = (unsigned int)simple_strtoul (argv[1], NULL, 16);
|
||||||
|
val = (unsigned int)simple_strtoul (argv[2], NULL, 16);
|
||||||
switch (reg) {
|
switch (reg) {
|
||||||
case 0x1:
|
case 0x1:
|
||||||
if (argc > 2) {
|
if (argc > 2) {
|
||||||
MTS (val, rmsr);
|
MTS (val, rmsr);
|
||||||
NOP;
|
NOP;
|
||||||
MFS (val, rmsr);
|
MFS (val, rmsr);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
MFS (val, rmsr);
|
MFS (val, rmsr);
|
||||||
}
|
}
|
||||||
@@ -382,6 +381,7 @@ int do_rspr (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
|||||||
puts ("ESR");
|
puts ("ESR");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
puts ("Unsupported register\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
printf (": 0x%08lx\n", val);
|
printf (": 0x%08lx\n", val);
|
||||||
@@ -408,10 +408,10 @@ U_BOOT_CMD (fwr, 4, 1, do_fwr,
|
|||||||
" 3 - blocking control write\n");
|
" 3 - blocking control write\n");
|
||||||
|
|
||||||
U_BOOT_CMD (rspr, 3, 1, do_rspr,
|
U_BOOT_CMD (rspr, 3, 1, do_rspr,
|
||||||
"rmsr - read/write special purpose register\n",
|
"rspr - read/write special purpose register\n",
|
||||||
"- reg_num [write value] read/write special purpose register\n"
|
"- reg_num [write value] read/write special purpose register\n"
|
||||||
" 0 - MSR - Machine status register\n"
|
" 1 - MSR - Machine status register\n"
|
||||||
" 1 - EAR - Exception address register\n"
|
" 3 - EAR - Exception address register\n"
|
||||||
" 2 - ESR - Exception status register\n");
|
" 5 - ESR - Exception status register\n");
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -112,9 +112,11 @@ int do_mii (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
|||||||
"OUI = 0x%04X, "
|
"OUI = 0x%04X, "
|
||||||
"Model = 0x%02X, "
|
"Model = 0x%02X, "
|
||||||
"Rev = 0x%02X, "
|
"Rev = 0x%02X, "
|
||||||
"%3dbaseT, %s\n",
|
"%3dbase%s, %s\n",
|
||||||
j, oui, model, rev,
|
j, oui, model, rev,
|
||||||
miiphy_speed (devname, j),
|
miiphy_speed (devname, j),
|
||||||
|
miiphy_is_1000base_x (devname, j)
|
||||||
|
? "X" : "T",
|
||||||
(miiphy_duplex (devname, j) == FULL)
|
(miiphy_duplex (devname, j) == FULL)
|
||||||
? "FDX" : "HDX");
|
? "FDX" : "HDX");
|
||||||
}
|
}
|
||||||
@@ -496,9 +498,11 @@ int do_mii (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
|||||||
"OUI = 0x%04X, "
|
"OUI = 0x%04X, "
|
||||||
"Model = 0x%02X, "
|
"Model = 0x%02X, "
|
||||||
"Rev = 0x%02X, "
|
"Rev = 0x%02X, "
|
||||||
"%3dbaseT, %s\n",
|
"%3dbase%s, %s\n",
|
||||||
j, oui, model, rev,
|
j, oui, model, rev,
|
||||||
miiphy_speed (devname, j),
|
miiphy_speed (devname, j),
|
||||||
|
miiphy_is_1000base_x (devname, j)
|
||||||
|
? "X" : "T",
|
||||||
(miiphy_duplex (devname, j) == FULL)
|
(miiphy_duplex (devname, j) == FULL)
|
||||||
? "FDX" : "HDX");
|
? "FDX" : "HDX");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -161,7 +161,11 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
|||||||
ulong addr, off, size;
|
ulong addr, off, size;
|
||||||
char *cmd, *s;
|
char *cmd, *s;
|
||||||
nand_info_t *nand;
|
nand_info_t *nand;
|
||||||
|
#ifdef CFG_NAND_QUIET
|
||||||
|
int quiet = CFG_NAND_QUIET;
|
||||||
|
#else
|
||||||
int quiet = 0;
|
int quiet = 0;
|
||||||
|
#endif
|
||||||
const char *quiet_str = getenv("quiet");
|
const char *quiet_str = getenv("quiet");
|
||||||
|
|
||||||
/* at least two arguments please */
|
/* at least two arguments please */
|
||||||
@@ -452,7 +456,7 @@ U_BOOT_CMD(nand, 5, 1, do_nand,
|
|||||||
"info - show available NAND devices\n"
|
"info - show available NAND devices\n"
|
||||||
"nand device [dev] - show or set current device\n"
|
"nand device [dev] - show or set current device\n"
|
||||||
"nand read[.jffs2] - addr off|partition size\n"
|
"nand read[.jffs2] - addr off|partition size\n"
|
||||||
"nand write[.jffs2] - addr off|partiton size - read/write `size' bytes starting\n"
|
"nand write[.jffs2] - addr off|partition size - read/write `size' bytes starting\n"
|
||||||
" at offset `off' to/from memory address `addr'\n"
|
" at offset `off' to/from memory address `addr'\n"
|
||||||
"nand erase [clean] [off size] - erase `size' bytes from\n"
|
"nand erase [clean] [off size] - erase `size' bytes from\n"
|
||||||
" offset `off' (entire device if not specified)\n"
|
" offset `off' (entire device if not specified)\n"
|
||||||
|
|||||||
@@ -57,8 +57,9 @@ DECLARE_GLOBAL_DATA_PTR;
|
|||||||
!defined(CFG_ENV_IS_IN_FLASH) && \
|
!defined(CFG_ENV_IS_IN_FLASH) && \
|
||||||
!defined(CFG_ENV_IS_IN_DATAFLASH) && \
|
!defined(CFG_ENV_IS_IN_DATAFLASH) && \
|
||||||
!defined(CFG_ENV_IS_IN_NAND) && \
|
!defined(CFG_ENV_IS_IN_NAND) && \
|
||||||
|
!defined(CFG_ENV_IS_IN_ONENAND) && \
|
||||||
!defined(CFG_ENV_IS_NOWHERE)
|
!defined(CFG_ENV_IS_NOWHERE)
|
||||||
# error Define one of CFG_ENV_IS_IN_{NVRAM|EEPROM|FLASH|DATAFLASH|NOWHERE}
|
# error Define one of CFG_ENV_IS_IN_{NVRAM|EEPROM|FLASH|DATAFLASH|ONENAND|NOWHERE}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define XMK_STR(x) #x
|
#define XMK_STR(x) #x
|
||||||
@@ -553,7 +554,8 @@ int getenv_r (char *name, char *buf, unsigned len)
|
|||||||
|
|
||||||
#if defined(CFG_ENV_IS_IN_NVRAM) || defined(CFG_ENV_IS_IN_EEPROM) \
|
#if defined(CFG_ENV_IS_IN_NVRAM) || defined(CFG_ENV_IS_IN_EEPROM) \
|
||||||
|| (defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_FLASH)) \
|
|| (defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_FLASH)) \
|
||||||
|| (defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_NAND))
|
|| (defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_NAND)) \
|
||||||
|
|| (defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_ONENAND))
|
||||||
int do_saveenv (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
int do_saveenv (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
||||||
{
|
{
|
||||||
extern char * env_name_spec;
|
extern char * env_name_spec;
|
||||||
@@ -608,7 +610,8 @@ U_BOOT_CMD(
|
|||||||
|
|
||||||
#if defined(CFG_ENV_IS_IN_NVRAM) || defined(CFG_ENV_IS_IN_EEPROM) \
|
#if defined(CFG_ENV_IS_IN_NVRAM) || defined(CFG_ENV_IS_IN_EEPROM) \
|
||||||
|| (defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_FLASH)) \
|
|| (defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_FLASH)) \
|
||||||
|| (defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_NAND))
|
|| (defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_NAND)) \
|
||||||
|
|| (defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_ONENAND))
|
||||||
U_BOOT_CMD(
|
U_BOOT_CMD(
|
||||||
saveenv, 1, 0, do_saveenv,
|
saveenv, 1, 0, do_saveenv,
|
||||||
"saveenv - save environment variables to persistent storage\n",
|
"saveenv - save environment variables to persistent storage\n",
|
||||||
|
|||||||
155
common/cmd_onenand.c
Normal file
155
common/cmd_onenand.c
Normal file
@@ -0,0 +1,155 @@
|
|||||||
|
/*
|
||||||
|
* U-Boot command for OneNAND support
|
||||||
|
*
|
||||||
|
* Copyright (C) 2005-2007 Samsung Electronics
|
||||||
|
* Kyungmin Park <kyungmin.park@samsung.com>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <common.h>
|
||||||
|
#include <command.h>
|
||||||
|
|
||||||
|
#ifdef CONFIG_CMD_ONENAND
|
||||||
|
|
||||||
|
#include <linux/mtd/compat.h>
|
||||||
|
#include <linux/mtd/mtd.h>
|
||||||
|
#include <linux/mtd/onenand.h>
|
||||||
|
|
||||||
|
#include <asm/io.h>
|
||||||
|
|
||||||
|
extern struct mtd_info onenand_mtd;
|
||||||
|
extern struct onenand_chip onenand_chip;
|
||||||
|
|
||||||
|
int do_onenand(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
switch (argc) {
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
printf("Usage:\n%s\n", cmdtp->usage);
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
if (strncmp(argv[1], "open", 4) == 0) {
|
||||||
|
onenand_init();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
onenand_print_device_info(onenand_chip.device_id, 1);
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
default:
|
||||||
|
/* At least 4 args */
|
||||||
|
if (strncmp(argv[1], "erase", 5) == 0) {
|
||||||
|
struct erase_info instr;
|
||||||
|
ulong start, end;
|
||||||
|
ulong block;
|
||||||
|
|
||||||
|
start = simple_strtoul(argv[2], NULL, 10);
|
||||||
|
end = simple_strtoul(argv[3], NULL, 10);
|
||||||
|
start -= (unsigned long)onenand_chip.base;
|
||||||
|
end -= (unsigned long)onenand_chip.base;
|
||||||
|
|
||||||
|
if (!end || end < 0)
|
||||||
|
end = start;
|
||||||
|
|
||||||
|
printf("Erase block from %d to %d\n", start, end);
|
||||||
|
|
||||||
|
for (block = start; block <= end; block++) {
|
||||||
|
instr.addr = block << onenand_chip.erase_shift;
|
||||||
|
instr.len = 1 << onenand_chip.erase_shift;
|
||||||
|
ret = onenand_erase(&onenand_mtd, &instr);
|
||||||
|
if (ret) {
|
||||||
|
printf("erase failed %d\n", block);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strncmp(argv[1], "read", 4) == 0) {
|
||||||
|
ulong addr = simple_strtoul(argv[2], NULL, 16);
|
||||||
|
ulong ofs = simple_strtoul(argv[3], NULL, 16);
|
||||||
|
size_t len = simple_strtoul(argv[4], NULL, 16);
|
||||||
|
size_t retlen = 0;
|
||||||
|
int oob = strncmp(argv[1], "read.oob", 8) ? 0 : 1;
|
||||||
|
|
||||||
|
ofs -= (unsigned long)onenand_chip.base;
|
||||||
|
|
||||||
|
if (oob)
|
||||||
|
onenand_read_oob(&onenand_mtd, ofs, len,
|
||||||
|
&retlen, (u_char *) addr);
|
||||||
|
else
|
||||||
|
onenand_read(&onenand_mtd, ofs, len, &retlen,
|
||||||
|
(u_char *) addr);
|
||||||
|
printf("Done\n");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strncmp(argv[1], "write", 5) == 0) {
|
||||||
|
ulong addr = simple_strtoul(argv[2], NULL, 16);
|
||||||
|
ulong ofs = simple_strtoul(argv[3], NULL, 16);
|
||||||
|
size_t len = simple_strtoul(argv[4], NULL, 16);
|
||||||
|
size_t retlen = 0;
|
||||||
|
|
||||||
|
ofs -= (unsigned long)onenand_chip.base;
|
||||||
|
|
||||||
|
onenand_write(&onenand_mtd, ofs, len, &retlen,
|
||||||
|
(u_char *) addr);
|
||||||
|
printf("Done\n");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strncmp(argv[1], "block", 5) == 0) {
|
||||||
|
ulong addr = simple_strtoul(argv[2], NULL, 16);
|
||||||
|
ulong block = simple_strtoul(argv[3], NULL, 10);
|
||||||
|
ulong page = simple_strtoul(argv[4], NULL, 10);
|
||||||
|
size_t len = simple_strtol(argv[5], NULL, 10);
|
||||||
|
size_t retlen = 0;
|
||||||
|
ulong ofs;
|
||||||
|
int oob = strncmp(argv[1], "block.oob", 9) ? 0 : 1;
|
||||||
|
|
||||||
|
ofs = block << onenand_chip.erase_shift;
|
||||||
|
if (page)
|
||||||
|
ofs += page << onenand_chip.page_shift;
|
||||||
|
|
||||||
|
if (!len) {
|
||||||
|
if (oob)
|
||||||
|
len = 64;
|
||||||
|
else
|
||||||
|
len = 512;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (oob)
|
||||||
|
onenand_read_oob(&onenand_mtd, ofs, len,
|
||||||
|
&retlen, (u_char *) addr);
|
||||||
|
else
|
||||||
|
onenand_read(&onenand_mtd, ofs, len, &retlen,
|
||||||
|
(u_char *) addr);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
U_BOOT_CMD(
|
||||||
|
onenand, 6, 1, do_onenand,
|
||||||
|
"onenand - OneNAND sub-system\n",
|
||||||
|
"info - show available OneNAND devices\n"
|
||||||
|
"onenand read[.oob] addr ofs len - read data at ofs with len to addr\n"
|
||||||
|
"onenand write addr ofs len - write data at ofs with len from addr\n"
|
||||||
|
"onenand erase saddr eaddr - erase block start addr to end addr\n"
|
||||||
|
"onenand block[.oob] addr block [page] [len] - "
|
||||||
|
"read data with (block [, page]) to addr"
|
||||||
|
);
|
||||||
|
|
||||||
|
#endif /* CONFIG_CMD_ONENAND */
|
||||||
@@ -129,9 +129,12 @@ void scsi_scan(int mode)
|
|||||||
if((modi&0x80)==0x80) /* drive is removable */
|
if((modi&0x80)==0x80) /* drive is removable */
|
||||||
scsi_dev_desc[scsi_max_devs].removable=TRUE;
|
scsi_dev_desc[scsi_max_devs].removable=TRUE;
|
||||||
/* get info for this device */
|
/* get info for this device */
|
||||||
scsi_ident_cpy(&scsi_dev_desc[scsi_max_devs].vendor[0],&tempbuff[8],8);
|
scsi_ident_cpy((unsigned char *)&scsi_dev_desc[scsi_max_devs].vendor[0],
|
||||||
scsi_ident_cpy(&scsi_dev_desc[scsi_max_devs].product[0],&tempbuff[16],16);
|
&tempbuff[8], 8);
|
||||||
scsi_ident_cpy(&scsi_dev_desc[scsi_max_devs].revision[0],&tempbuff[32],4);
|
scsi_ident_cpy((unsigned char *)&scsi_dev_desc[scsi_max_devs].product[0],
|
||||||
|
&tempbuff[16], 16);
|
||||||
|
scsi_ident_cpy((unsigned char *)&scsi_dev_desc[scsi_max_devs].revision[0],
|
||||||
|
&tempbuff[32], 4);
|
||||||
scsi_dev_desc[scsi_max_devs].target=pccb->target;
|
scsi_dev_desc[scsi_max_devs].target=pccb->target;
|
||||||
scsi_dev_desc[scsi_max_devs].lun=pccb->lun;
|
scsi_dev_desc[scsi_max_devs].lun=pccb->lun;
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user