Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OS
U-Boot.Mirror
提交
1b554406
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,发现更多精彩内容 >>
提交
1b554406
编写于
9月 12, 2003
作者:
S
stroese
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
CPCI405(AB) update.
上级
895af12a
变更
2
展开全部
隐藏空白更改
内联
并排
Showing
2 changed file
with
1437 addition
and
1093 deletion
+1437
-1093
board/esd/cpci405/cpci405.c
board/esd/cpci405/cpci405.c
+137
-30
board/esd/cpci405/fpgadata_cpci405ab.c
board/esd/cpci405/fpgadata_cpci405ab.c
+1300
-1063
未找到文件。
board/esd/cpci405/cpci405.c
浏览文件 @
1b554406
...
...
@@ -433,7 +433,14 @@ int checkboard (void)
#endif
if
(
ctermm2
())
{
printf
(
"CTERM-M2 - Id=0x%02x)"
,
*
(
unsigned
char
*
)
0xf0000400
);
unsigned
char
str
[
4
];
/*
* Read board-id and save in env-variable
*/
sprintf
(
str
,
"%d"
,
*
(
unsigned
char
*
)
0xf0000400
);
setenv
(
"boardid"
,
str
);
printf
(
"CTERM-M2 - Id=%s)"
,
str
);
}
else
{
if
(
cpci405_host
())
{
puts
(
"PCI Host Version)"
);
...
...
@@ -508,44 +515,144 @@ void ide_set_reset(int on)
#endif
/* CONFIG_IDE_RESET */
#endif
/* CONFIG_CPCI405_VER2 */
#if 0 /* test-only */
/* ------------------------------------------------------------------------- */
u8 *dhcp_vendorex_prep (u8 * e)
#ifdef CONFIG_CPCI405AB
#define ONE_WIRE_CLEAR (*(volatile unsigned short *)0xf0400000 |= 0x0100)
#define ONE_WIRE_SET (*(volatile unsigned short *)0xf0400000 &= ~0x0100)
#define ONE_WIRE_GET (*(volatile unsigned short *)0xf0400002 & 0x1000)
/*
* Generate a 1-wire reset, return 1 if no presence detect was found,
* return 0 otherwise.
* (NOTE: Does not handle alarm presence from DS2404/DS1994)
*/
int
OWTouchReset
(
void
)
{
char *ptr;
/* DHCP vendor-class-identifier = 60 */
if ((ptr = getenv ("dhcp_vendor-class-identifier"))) {
*e++ = 60;
*e++ = strlen (ptr);
while (*ptr)
*e++ = *ptr++;
}
/* my DHCP_CLIENT_IDENTIFIER = 61 */
if ((ptr = getenv ("dhcp_client_id"))) {
*e++ = 61;
*e++ = strlen (ptr);
while (*ptr)
*e++ = *ptr++;
int
result
;
ONE_WIRE_CLEAR
;
udelay
(
480
);
ONE_WIRE_SET
;
udelay
(
70
);
result
=
ONE_WIRE_GET
;
udelay
(
410
);
return
result
;
}
/*
* Send 1 a 1-wire write bit.
* Provide 10us recovery time.
*/
void
OWWriteBit
(
int
bit
)
{
if
(
bit
)
{
/*
* write '1' bit
*/
ONE_WIRE_CLEAR
;
udelay
(
6
);
ONE_WIRE_SET
;
udelay
(
64
);
}
else
{
/*
* write '0' bit
*/
ONE_WIRE_CLEAR
;
udelay
(
60
);
ONE_WIRE_SET
;
udelay
(
10
);
}
}
return e;
/*
* Read a bit from the 1-wire bus and return it.
* Provide 10us recovery time.
*/
int
OWReadBit
(
void
)
{
int
result
;
ONE_WIRE_CLEAR
;
udelay
(
6
);
ONE_WIRE_SET
;
udelay
(
9
);
result
=
ONE_WIRE_GET
;
udelay
(
55
);
return
result
;
}
/* ------------------------------------------------------------------------- */
void
OWWriteByte
(
int
data
)
{
int
loop
;
for
(
loop
=
0
;
loop
<
8
;
loop
++
)
{
OWWriteBit
(
data
&
0x01
);
data
>>=
1
;
}
}
u8 *dhcp_vendorex_proc (u8 * popt
)
int
OWReadByte
(
void
)
{
if (*popt == 61)
return (u8 *)-1;
if (*popt == 43) {
printf("|%s|", popt+4); /* test-only */
return (u8 *)-1;
int
loop
,
result
=
0
;
for
(
loop
=
0
;
loop
<
8
;
loop
++
)
{
result
>>=
1
;
if
(
OWReadBit
())
{
result
|=
0x80
;
}
}
return NULL;
return
result
;
}
/* ------------------------------------------------------------------------- */
#endif /* test-only */
int
do_onewire
(
cmd_tbl_t
*
cmdtp
,
int
flag
,
int
argc
,
char
*
argv
[])
{
volatile
unsigned
short
val
;
int
result
;
int
i
;
unsigned
char
ow_id
[
6
];
unsigned
char
str
[
32
];
unsigned
char
ow_crc
;
/*
* Clear 1-wire bit (open drain with pull-up)
*/
val
=
*
(
volatile
unsigned
short
*
)
0xf0400000
;
val
&=
~
0x1000
;
/* clear 1-wire bit */
*
(
volatile
unsigned
short
*
)
0xf0400000
=
val
;
result
=
OWTouchReset
();
if
(
result
!=
0
)
{
puts
(
"No 1-wire device detected!
\n
"
);
}
OWWriteByte
(
0x33
);
/* send read rom command */
OWReadByte
();
/* skip family code ( == 0x01) */
for
(
i
=
0
;
i
<
6
;
i
++
)
{
ow_id
[
i
]
=
OWReadByte
();
}
ow_crc
=
OWReadByte
();
/* read crc */
sprintf
(
str
,
"%08X%04X"
,
*
(
unsigned
int
*
)
&
ow_id
[
0
],
*
(
unsigned
short
*
)
&
ow_id
[
4
]);
printf
(
"Setting environment variable 'ow_id' to %s
\n
"
,
str
);
setenv
(
"ow_id"
,
str
);
return
0
;
}
U_BOOT_CMD
(
onewire
,
1
,
1
,
do_onewire
,
"onewire - Read 1-write ID
\n
"
,
NULL
);
#endif
/* CONFIG_CPCI405AB */
board/esd/cpci405/fpgadata_cpci405ab.c
浏览文件 @
1b554406
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录