Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OS
U-Boot.Mirror
提交
b407f1a4
U
U-Boot.Mirror
项目概览
OS
/
U-Boot.Mirror
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
U-Boot.Mirror
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b407f1a4
编写于
10月 21, 2007
作者:
W
Wolfgang Denk
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of /home/git/u-boot/
上级
7ee6ba1a
5441f61a
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
135 addition
and
66 deletion
+135
-66
MAKEALL
MAKEALL
+2
-0
Makefile
Makefile
+19
-3
board/amcc/sequoia/cmd_sequoia.c
board/amcc/sequoia/cmd_sequoia.c
+14
-3
board/amcc/sequoia/sequoia.c
board/amcc/sequoia/sequoia.c
+4
-3
board/amcc/yosemite/yosemite.c
board/amcc/yosemite/yosemite.c
+5
-2
board/freescale/common/pq-mds-pib.c
board/freescale/common/pq-mds-pib.c
+13
-13
common/cmd_bootm.c
common/cmd_bootm.c
+1
-1
common/cmd_dtt.c
common/cmd_dtt.c
+1
-1
drivers/isp116x-hcd.c
drivers/isp116x-hcd.c
+72
-40
include/configs/sequoia.h
include/configs/sequoia.h
+2
-0
include/configs/yosemite.h
include/configs/yosemite.h
+2
-0
未找到文件。
MAKEALL
浏览文件 @
b407f1a4
...
...
@@ -301,10 +301,12 @@ LIST_83xx=" \
MPC8313ERDB_66
\
MPC8323ERDB
\
MPC832XEMDS
\
MPC832XEMDS_ATM
\
MPC8349EMDS
\
MPC8349ITX
\
MPC8349ITXGP
\
MPC8360EMDS
\
MPC8360EMDS_ATM
\
sbc8349
\
TQM834x
\
"
...
...
Makefile
浏览文件 @
b407f1a4
...
...
@@ -1766,7 +1766,8 @@ MPC8323ERDB_config: unconfig
MPC832XEMDS_config
\
MPC832XEMDS_HOST_33_config
\
MPC832XEMDS_HOST_66_config
\
MPC832XEMDS_SLAVE_config
:
unconfig
MPC832XEMDS_SLAVE_config
\
MPC832XEMDS_ATM_config
:
unconfig
@
mkdir
-p
$(obj)
include
@
echo
""
>
$(obj)
include/config.h
;
\
if
[
"
$(
findstring
_HOST_,
$@
)
"
]
;
then
\
...
...
@@ -1781,11 +1782,18 @@ MPC832XEMDS_SLAVE_config: unconfig
if
[
"
$(
findstring
_33_,
$@
)
"
]
;
then
\
echo
-n
"...33M ..."
;
\
echo
"#define PCI_33M"
>>
$(obj)
include/config.h
;
\
echo
"#define CONFIG_PQ_MDS_PIB 1"
>>
$(obj)
include/config.h
;
\
fi
;
\
if
[
"
$(
findstring
_66_,
$@
)
"
]
;
then
\
echo
-n
"...66M..."
;
\
echo
"#define PCI_66M"
>>
$(obj)
include/config.h
;
\
fi
;
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
;
@
$(MKCONFIG)
-a
MPC832XEMDS ppc mpc83xx mpc832xemds freescale
MPC8349EMDS_config
:
unconfig
...
...
@@ -1808,7 +1816,8 @@ MPC8349ITXGP_config: unconfig
MPC8360EMDS_config
\
MPC8360EMDS_HOST_33_config
\
MPC8360EMDS_HOST_66_config
\
MPC8360EMDS_SLAVE_config
:
unconfig
MPC8360EMDS_SLAVE_config
\
MPC8360EMDS_ATM_config
:
unconfig
@
mkdir
-p
$(obj)
include
@
echo
""
>
$(obj)
include/config.h
;
\
if
[
"
$(
findstring
_HOST_,
$@
)
"
]
;
then
\
...
...
@@ -1823,10 +1832,17 @@ MPC8360EMDS_SLAVE_config: unconfig
if
[
"
$(
findstring
_33_,
$@
)
"
]
;
then
\
echo
-n
"...33M ..."
;
\
echo
"#define PCI_33M"
>>
$(obj)
include/config.h
;
\
echo
"#define CONFIG_PQ_MDS_PIB 1"
>>
$(obj)
include/config.h
;
\
fi
;
\
if
[
"
$(
findstring
_66_,
$@
)
"
]
;
then
\
echo
-n
"...66M..."
;
\
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
;
@
$(MKCONFIG)
-a
MPC8360EMDS ppc mpc83xx mpc8360emds freescale
...
...
board/amcc/sequoia/cmd_sequoia.c
浏览文件 @
b407f1a4
...
...
@@ -25,6 +25,7 @@
#include <common.h>
#include <command.h>
#include <i2c.h>
#include <asm/io.h>
/*
* There are 2 versions of production Sequoia & Rainier platforms.
...
...
@@ -39,7 +40,7 @@
* All Sequoias & Rainiers select from two possible EEPROMs in Boot
* Config F. One for 33MHz PCI, one for 66MHz PCI. The following
* 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
...
...
@@ -56,6 +57,7 @@ static char *config_labels[] = {
"CPU: 416 PLB: 166 OPB: 83 EBC: 55"
,
"CPU: 500 PLB: 166 OPB: 83 EBC: 55"
,
"CPU: 533 PLB: 133 OPB: 66 EBC: 66"
,
"CPU: 667 PLB: 133 OPB: 66 EBC: 66"
,
"CPU: 667 PLB: 166 OPB: 83 EBC: 55"
,
NULL
};
...
...
@@ -96,6 +98,11 @@ static u8 boot_configs[][17] = {
0x87
,
0x78
,
0x82
,
0x52
,
0x09
,
0x57
,
0xa0
,
0x30
,
0x40
,
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
),
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 */
if
(
in8
(
CFG_BCSR_BASE
+
5
)
&
0x01
)
buf
[
5
]
+=
0x10
;
if
((
in_8
((
void
*
)(
CFG_BCSR_BASE
+
5
))
&
CFG_BCSR5_PCI66EN
)
==
0
)
/*
* 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
)
printf
(
"Error writing to EEPROM at address 0x%x
\n
"
,
I2C_EEPROM_ADDR
);
...
...
board/amcc/sequoia/sequoia.c
浏览文件 @
b407f1a4
/*
* (C) Copyright 2006
* (C) Copyright 2006
-2007
* Stefan Roese, DENX Software Engineering, sr@denx.de.
*
* (C) Copyright 2006
...
...
@@ -24,6 +24,7 @@
#include <common.h>
#include <asm/processor.h>
#include <asm/io.h>
#include <ppc440.h>
DECLARE_GLOBAL_DATA_PTR
;
...
...
@@ -362,8 +363,8 @@ int checkboard(void)
printf
(
"Board: Rainier - AMCC PPC440GRx Evaluation Board"
);
#endif
rev
=
in
8
(
CFG_BCSR_BASE
+
0
);
val
=
in
8
(
CFG_BCSR_BASE
+
5
)
&
0x01
;
rev
=
in
_8
((
void
*
)(
CFG_BCSR_BASE
+
0
)
);
val
=
in
_8
((
void
*
)(
CFG_BCSR_BASE
+
5
))
&
CFG_BCSR5_PCI66EN
;
printf
(
", Rev. %X, PCI=%d MHz"
,
rev
,
val
?
66
:
33
);
if
(
s
!=
NULL
)
{
...
...
board/amcc/yosemite/yosemite.c
浏览文件 @
b407f1a4
/*
* (C) Copyright 2006-2007
* Stefan Roese, DENX Software Engineering, sr@denx.de.
*
* See file CREDITS for list of people who contributed to this
* project.
...
...
@@ -22,6 +24,7 @@
#include <common.h>
#include <ppc4xx.h>
#include <asm/processor.h>
#include <asm/io.h>
#include <spd_sdram.h>
DECLARE_GLOBAL_DATA_PTR
;
...
...
@@ -181,8 +184,8 @@ int checkboard(void)
printf
(
"Board: Yellowstone - AMCC PPC440GR Evaluation Board"
);
#endif
rev
=
*
(
u8
*
)(
CFG_CPLD
+
0
);
val
=
*
(
u8
*
)(
CFG_CPLD
+
5
)
&
0x01
;
rev
=
in_8
((
void
*
)(
CFG_BCSR_BASE
+
0
)
);
val
=
in_8
((
void
*
)(
CFG_BCSR_BASE
+
5
))
&
CFG_BCSR5_PCI66EN
;
printf
(
", Rev. %X, PCI=%d MHz"
,
rev
,
val
?
66
:
33
);
if
(
s
!=
NULL
)
{
...
...
board/freescale/common/pq-mds-pib.c
浏览文件 @
b407f1a4
...
...
@@ -79,19 +79,19 @@ int pib_init(void)
printf
(
"QOC3 ATM card on PMC0
\n
"
);
#elif defined(CONFIG_MPC832XEMDS)
val
=
0
;
i2c_write
(
0x26
,
0x7
,
1
,
&
val
,
1
);
val
=
0xf7
;
i2c_write
(
0x26
,
0x3
,
1
,
&
val
,
1
);
val
=
0
;
i2c_write
(
0x21
,
0x6
,
1
,
&
val
,
1
);
i2c_write
(
0x21
,
0x7
,
1
,
&
val
,
1
);
val
=
0xdf
;
i2c_write
(
0x21
,
0x2
,
1
,
&
val
,
1
);
val
=
0xef
;
i2c_write
(
0x21
,
0x3
,
1
,
&
val
,
1
);
val
8
=
0
;
i2c_write
(
0x26
,
0x7
,
1
,
&
val
8
,
1
);
val
8
=
0xf7
;
i2c_write
(
0x26
,
0x3
,
1
,
&
val
8
,
1
);
val
8
=
0
;
i2c_write
(
0x21
,
0x6
,
1
,
&
val
8
,
1
);
i2c_write
(
0x21
,
0x7
,
1
,
&
val
8
,
1
);
val
8
=
0xdf
;
i2c_write
(
0x21
,
0x2
,
1
,
&
val
8
,
1
);
val
8
=
0xef
;
i2c_write
(
0x21
,
0x3
,
1
,
&
val
8
,
1
);
eieio
();
...
...
common/cmd_bootm.c
浏览文件 @
b407f1a4
...
...
@@ -466,7 +466,7 @@ U_BOOT_CMD(
"
\t
'arg' can be the address of an initrd image
\n
"
#if defined(CONFIG_OF_FLAT_TREE) || defined(CONFIG_OF_LIBFDT)
"
\t
When booting a Linux kernel which requires a flat device-tree
\n
"
"
\t
a third argument is required which is the address of the
of the
\n
"
"
\t
a third argument is required which is the address of the
\n
"
"
\t
device-tree blob. To boot that kernel without an initrd image,
\n
"
"
\t
use a '-' for the second argument. If you do not pass a third
\n
"
"
\t
a bd_info struct will be passed instead
\n
"
...
...
common/cmd_dtt.c
浏览文件 @
b407f1a4
...
...
@@ -57,7 +57,7 @@ int do_dtt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
U_BOOT_CMD
(
dtt
,
1
,
1
,
do_dtt
,
"dtt - Digital Thermometer and Themostat
\n
"
,
"dtt - Digital Thermometer and The
r
mostat
\n
"
,
" - Read temperature from digital thermometer and thermostat.
\n
"
);
...
...
drivers/isp116x-hcd.c
浏览文件 @
b407f1a4
...
...
@@ -113,9 +113,9 @@ static const char hcd_name[] = "isp116x-hcd";
struct
isp116x
isp116x_dev
;
struct
isp116x_platform_data
isp116x_board
;
int
got_rhsc
=
0
;
/* root hub status change */
static
int
got_rhsc
;
/* root hub status change */
struct
usb_device
*
devgone
;
/* device which was disconnected */
int
rh_devnum
=
0
;
/* address of Root Hub endpoint */
static
int
rh_devnum
;
/* address of Root Hub endpoint */
/* ------------------------------------------------------------------------- */
...
...
@@ -522,11 +522,13 @@ static int unpack_fifo(struct isp116x *isp116x, struct usb_device *dev,
done
+=
PTD_GET_LEN
(
&
ptd
[
i
]);
cc
=
PTD_GET_CC
(
&
ptd
[
i
]);
if
(
cc
==
TD_DATAUNDERRUN
)
{
/* underrun is no error... */
DBG
(
"allowed data underrun"
);
cc
=
TD_CC_NOERROR
;
}
if
(
cc
!=
TD_CC_NOERROR
&&
ret
==
TD_CC_NOERROR
)
/* Data underrun means basically that we had more buffer space than
* the function had data. It is perfectly normal but upper levels have
* to know how much we actually transferred.
*/
if
(
cc
==
TD_NOTACCESSED
||
(
cc
!=
TD_CC_NOERROR
&&
(
ret
==
TD_CC_NOERROR
||
ret
==
TD_DATAUNDERRUN
)))
ret
=
cc
;
}
...
...
@@ -592,11 +594,19 @@ static int isp116x_interrupt(struct isp116x *isp116x)
return
ret
;
}
#define PTD_NUM 64
/* it should be enougth... */
struct
ptd
ptd
[
PTD_NUM
];
/* With one PTD we can transfer almost 1K in one go;
* HC does the splitting into endpoint digestible transactions
*/
struct
ptd
ptd
[
1
];
static
inline
int
max_transfer_len
(
struct
usb_device
*
dev
,
unsigned
long
pipe
)
{
return
min
(
PTD_NUM
*
usb_maxpacket
(
dev
,
pipe
),
PTD_NUM
*
16
);
unsigned
mpck
=
usb_maxpacket
(
dev
,
pipe
);
/* One PTD can transfer 1023 bytes but try to always
* transfer multiples of endpoint buffer size
*/
return
1023
/
mpck
*
mpck
;
}
/* Do an USB transfer
...
...
@@ -610,13 +620,21 @@ static int isp116x_submit_job(struct usb_device *dev, unsigned long pipe,
int
max
=
usb_maxpacket
(
dev
,
pipe
);
int
dir_out
=
usb_pipeout
(
pipe
);
int
speed_low
=
usb_pipeslow
(
pipe
);
int
i
,
done
,
stat
,
timeout
,
cc
;
int
retries
=
10
;
int
i
,
done
=
0
,
stat
,
timeout
,
cc
;
/* 500 frames or 0.5s timeout when function is busy and NAKs transactions for a while */
int
retries
=
500
;
DBG
(
"------------------------------------------------"
);
dump_msg
(
dev
,
pipe
,
buffer
,
len
,
"SUBMIT"
);
DBG
(
"------------------------------------------------"
);
if
(
len
>=
1024
)
{
ERR
(
"Too big job"
);
dev
->
status
=
USB_ST_CRC_ERR
;
return
-
1
;
}
if
(
isp116x
->
disabled
)
{
ERR
(
"EPIPE"
);
dev
->
status
=
USB_ST_CRC_ERR
;
...
...
@@ -653,29 +671,15 @@ static int isp116x_submit_job(struct usb_device *dev, unsigned long pipe,
isp116x_write_reg32
(
isp116x
,
HCINTSTAT
,
0xff
);
/* Prepare the PTD data */
done
=
0
;
i
=
0
;
do
{
ptd
[
i
].
count
=
PTD_CC_MSK
|
PTD_ACTIVE_MSK
|
PTD_TOGGLE
(
usb_gettoggle
(
dev
,
epnum
,
dir_out
));
ptd
[
i
].
mps
=
PTD_MPS
(
max
)
|
PTD_SPD
(
speed_low
)
|
PTD_EP
(
epnum
);
ptd
[
i
].
len
=
PTD_LEN
(
max
>
len
-
done
?
len
-
done
:
max
)
|
PTD_DIR
(
dir
);
ptd
[
i
].
faddr
=
PTD_FA
(
usb_pipedevice
(
pipe
));
usb_dotoggle
(
dev
,
epnum
,
dir_out
);
done
+=
PTD_GET_LEN
(
&
ptd
[
i
]);
i
++
;
if
(
i
>=
PTD_NUM
)
{
ERR
(
"****** Cannot pack buffer! ******"
);
dev
->
status
=
USB_ST_BUF_ERR
;
return
-
1
;
}
}
while
(
done
<
len
);
ptd
[
i
-
1
].
mps
|=
PTD_LAST_MSK
;
ptd
->
count
=
PTD_CC_MSK
|
PTD_ACTIVE_MSK
|
PTD_TOGGLE
(
usb_gettoggle
(
dev
,
epnum
,
dir_out
));
ptd
->
mps
=
PTD_MPS
(
max
)
|
PTD_SPD
(
speed_low
)
|
PTD_EP
(
epnum
)
|
PTD_LAST_MSK
;
ptd
->
len
=
PTD_LEN
(
len
)
|
PTD_DIR
(
dir
);
ptd
->
faddr
=
PTD_FA
(
usb_pipedevice
(
pipe
));
retry_same:
/* Pack data into FIFO ram */
pack_fifo
(
isp116x
,
dev
,
pipe
,
ptd
,
i
,
buffer
,
len
);
pack_fifo
(
isp116x
,
dev
,
pipe
,
ptd
,
1
,
buffer
,
len
);
#ifdef EXTRA_DELAY
wait_ms
(
EXTRA_DELAY
);
#endif
...
...
@@ -738,17 +742,42 @@ static int isp116x_submit_job(struct usb_device *dev, unsigned long pipe,
}
/* Unpack data from FIFO ram */
cc
=
unpack_fifo
(
isp116x
,
dev
,
pipe
,
ptd
,
i
,
buffer
,
len
);
cc
=
unpack_fifo
(
isp116x
,
dev
,
pipe
,
ptd
,
1
,
buffer
,
len
);
i
=
PTD_GET_COUNT
(
ptd
);
done
+=
i
;
buffer
+=
i
;
len
-=
i
;
/*
Mmm... sometime we get 0x0f as cc which is a non sense!
*
Just retry the transfer...
/*
There was some kind of real problem; Prepare the PTD again
*
and retry from the failed transaction on
*/
if
(
cc
==
0x0f
&&
retries
--
>
0
)
{
usb_dotoggle
(
dev
,
epnum
,
dir_out
);
goto
retry
;
if
(
cc
&&
cc
!=
TD_NOTACCESSED
&&
cc
!=
TD_DATAUNDERRUN
)
{
if
(
retries
>=
100
)
{
retries
-=
100
;
/* The chip will have toggled the toggle bit for the failed
* transaction too. We have to toggle it back.
*/
usb_settoggle
(
dev
,
epnum
,
dir_out
,
!
PTD_GET_TOGGLE
(
ptd
));
goto
retry
;
}
}
/* "Normal" errors; TD_NOTACCESSED would mean in effect that the function have NAKed
* the transactions from the first on for the whole frame. It may be busy and we retry
* with the same PTD. PTD_ACTIVE (and not TD_NOTACCESSED) would mean that some of the
* PTD didn't make it because the function was busy or the frame ended before the PTD
* finished. We prepare the rest of the data and try again.
*/
else
if
(
cc
==
TD_NOTACCESSED
||
PTD_GET_ACTIVE
(
ptd
)
||
(
cc
!=
TD_DATAUNDERRUN
&&
PTD_GET_COUNT
(
ptd
)
<
PTD_GET_LEN
(
ptd
)))
{
if
(
retries
)
{
--
retries
;
if
(
cc
==
TD_NOTACCESSED
&&
PTD_GET_ACTIVE
(
ptd
)
&&
!
PTD_GET_COUNT
(
ptd
))
goto
retry_same
;
usb_settoggle
(
dev
,
epnum
,
dir_out
,
PTD_GET_TOGGLE
(
ptd
));
goto
retry
;
}
}
if
(
cc
!=
TD_CC_NOERROR
)
{
if
(
cc
!=
TD_CC_NOERROR
&&
cc
!=
TD_DATAUNDERRUN
)
{
DBG
(
"****** completition code error %x ******"
,
cc
);
switch
(
cc
)
{
case
TD_CC_BITSTUFFING
:
...
...
@@ -766,6 +795,7 @@ static int isp116x_submit_job(struct usb_device *dev, unsigned long pipe,
}
return
-
cc
;
}
else
usb_settoggle
(
dev
,
epnum
,
dir_out
,
PTD_GET_TOGGLE
(
ptd
));
dump_msg
(
dev
,
pipe
,
buffer
,
len
,
"SUBMIT(ret)"
);
...
...
@@ -1369,6 +1399,8 @@ int usb_lowlevel_init(void)
DBG
(
""
);
got_rhsc
=
rh_devnum
=
0
;
/* Init device registers addr */
isp116x
->
addr_reg
=
(
u16
*
)
ISP116X_HCD_ADDR
;
isp116x
->
data_reg
=
(
u16
*
)
ISP116X_HCD_DATA
;
...
...
include/configs/sequoia.h
浏览文件 @
b407f1a4
...
...
@@ -450,6 +450,8 @@
#define CFG_EBC_PB2AP 0x24814580
#define CFG_EBC_PB2CR (CFG_BCSR_BASE | 0x38000)
#define CFG_BCSR5_PCI66EN 0x80
/*-----------------------------------------------------------------------
* NAND FLASH
*----------------------------------------------------------------------*/
...
...
include/configs/yosemite.h
浏览文件 @
b407f1a4
...
...
@@ -359,6 +359,8 @@
#define CFG_EBC_PB2AP 0x04814500
#define CFG_EBC_PB2CR (CFG_CPLD | 0x18000)
#define CFG_BCSR5_PCI66EN 0x80
/*-----------------------------------------------------------------------
* Cache Configuration
*/
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录