Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OS
U-Boot.Mirror
提交
50d924b4
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,发现更多精彩内容 >>
提交
50d924b4
编写于
9月 21, 2012
作者:
T
Tom Rini
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://git.denx.de/u-boot-usb
上级
3ab270d5
93ad908c
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
41 addition
and
14 deletion
+41
-14
common/usb_hub.c
common/usb_hub.c
+9
-5
drivers/dfu/dfu_mmc.c
drivers/dfu/dfu_mmc.c
+27
-7
drivers/usb/host/ehci-hcd.c
drivers/usb/host/ehci-hcd.c
+5
-2
未找到文件。
common/usb_hub.c
浏览文件 @
50d924b4
...
@@ -43,6 +43,7 @@
...
@@ -43,6 +43,7 @@
#include <common.h>
#include <common.h>
#include <command.h>
#include <command.h>
#include <asm/processor.h>
#include <asm/processor.h>
#include <asm/unaligned.h>
#include <linux/ctype.h>
#include <linux/ctype.h>
#include <asm/byteorder.h>
#include <asm/byteorder.h>
#include <asm/unaligned.h>
#include <asm/unaligned.h>
...
@@ -269,6 +270,7 @@ static int usb_hub_configure(struct usb_device *dev)
...
@@ -269,6 +270,7 @@ static int usb_hub_configure(struct usb_device *dev)
int
i
;
int
i
;
ALLOC_CACHE_ALIGN_BUFFER
(
unsigned
char
,
buffer
,
USB_BUFSIZ
);
ALLOC_CACHE_ALIGN_BUFFER
(
unsigned
char
,
buffer
,
USB_BUFSIZ
);
unsigned
char
*
bitmap
;
unsigned
char
*
bitmap
;
short
hubCharacteristics
;
struct
usb_hub_descriptor
*
descriptor
;
struct
usb_hub_descriptor
*
descriptor
;
struct
usb_hub_device
*
hub
;
struct
usb_hub_device
*
hub
;
#ifdef USB_HUB_DEBUG
#ifdef USB_HUB_DEBUG
...
@@ -304,8 +306,9 @@ static int usb_hub_configure(struct usb_device *dev)
...
@@ -304,8 +306,9 @@ static int usb_hub_configure(struct usb_device *dev)
}
}
memcpy
((
unsigned
char
*
)
&
hub
->
desc
,
buffer
,
descriptor
->
bLength
);
memcpy
((
unsigned
char
*
)
&
hub
->
desc
,
buffer
,
descriptor
->
bLength
);
/* adjust 16bit values */
/* adjust 16bit values */
hub
->
desc
.
wHubCharacteristics
=
put_unaligned
(
le16_to_cpu
(
get_unaligned
(
le16_to_cpu
(
descriptor
->
wHubCharacteristics
);
&
descriptor
->
wHubCharacteristics
)),
&
hub
->
desc
.
wHubCharacteristics
);
/* set the bitmap */
/* set the bitmap */
bitmap
=
(
unsigned
char
*
)
&
hub
->
desc
.
DeviceRemovable
[
0
];
bitmap
=
(
unsigned
char
*
)
&
hub
->
desc
.
DeviceRemovable
[
0
];
/* devices not removable by default */
/* devices not removable by default */
...
@@ -322,7 +325,8 @@ static int usb_hub_configure(struct usb_device *dev)
...
@@ -322,7 +325,8 @@ static int usb_hub_configure(struct usb_device *dev)
dev
->
maxchild
=
descriptor
->
bNbrPorts
;
dev
->
maxchild
=
descriptor
->
bNbrPorts
;
USB_HUB_PRINTF
(
"%d ports detected
\n
"
,
dev
->
maxchild
);
USB_HUB_PRINTF
(
"%d ports detected
\n
"
,
dev
->
maxchild
);
switch
(
hub
->
desc
.
wHubCharacteristics
&
HUB_CHAR_LPSM
)
{
hubCharacteristics
=
get_unaligned
(
&
hub
->
desc
.
wHubCharacteristics
);
switch
(
hubCharacteristics
&
HUB_CHAR_LPSM
)
{
case
0x00
:
case
0x00
:
USB_HUB_PRINTF
(
"ganged power switching
\n
"
);
USB_HUB_PRINTF
(
"ganged power switching
\n
"
);
break
;
break
;
...
@@ -335,12 +339,12 @@ static int usb_hub_configure(struct usb_device *dev)
...
@@ -335,12 +339,12 @@ static int usb_hub_configure(struct usb_device *dev)
break
;
break
;
}
}
if
(
hub
->
desc
.
wHub
Characteristics
&
HUB_CHAR_COMPOUND
)
if
(
hubCharacteristics
&
HUB_CHAR_COMPOUND
)
USB_HUB_PRINTF
(
"part of a compound device
\n
"
);
USB_HUB_PRINTF
(
"part of a compound device
\n
"
);
else
else
USB_HUB_PRINTF
(
"standalone hub
\n
"
);
USB_HUB_PRINTF
(
"standalone hub
\n
"
);
switch
(
hub
->
desc
.
wHub
Characteristics
&
HUB_CHAR_OCPM
)
{
switch
(
hubCharacteristics
&
HUB_CHAR_OCPM
)
{
case
0x00
:
case
0x00
:
USB_HUB_PRINTF
(
"global over-current protection
\n
"
);
USB_HUB_PRINTF
(
"global over-current protection
\n
"
);
break
;
break
;
...
...
drivers/dfu/dfu_mmc.c
浏览文件 @
50d924b4
...
@@ -63,10 +63,23 @@ static int mmc_file_op(enum dfu_mmc_op op, struct dfu_entity *dfu,
...
@@ -63,10 +63,23 @@ static int mmc_file_op(enum dfu_mmc_op op, struct dfu_entity *dfu,
char
*
str_env
;
char
*
str_env
;
int
ret
;
int
ret
;
switch
(
dfu
->
layout
)
{
case
DFU_FS_FAT
:
sprintf
(
cmd_buf
,
"fat%s mmc %d:%d 0x%x %s %lx"
,
sprintf
(
cmd_buf
,
"fat%s mmc %d:%d 0x%x %s %lx"
,
op
==
DFU_OP_READ
?
"load"
:
"write"
,
op
==
DFU_OP_READ
?
"load"
:
"write"
,
dfu
->
data
.
mmc
.
dev
,
dfu
->
data
.
mmc
.
part
,
dfu
->
data
.
mmc
.
dev
,
dfu
->
data
.
mmc
.
part
,
(
unsigned
int
)
buf
,
dfu
->
name
,
*
len
);
(
unsigned
int
)
buf
,
dfu
->
name
,
*
len
);
break
;
case
DFU_FS_EXT4
:
sprintf
(
cmd_buf
,
"ext4%s mmc %d:%d /%s 0x%x %ld"
,
op
==
DFU_OP_READ
?
"load"
:
"write"
,
dfu
->
data
.
mmc
.
dev
,
dfu
->
data
.
mmc
.
part
,
dfu
->
name
,
(
unsigned
int
)
buf
,
*
len
);
break
;
default:
printf
(
"%s: Layout (%s) not (yet) supported!
\n
"
,
__func__
,
dfu_get_layout
(
dfu
->
layout
));
}
debug
(
"%s: %s 0x%p
\n
"
,
__func__
,
cmd_buf
,
cmd_buf
);
debug
(
"%s: %s 0x%p
\n
"
,
__func__
,
cmd_buf
,
cmd_buf
);
...
@@ -76,7 +89,7 @@ static int mmc_file_op(enum dfu_mmc_op op, struct dfu_entity *dfu,
...
@@ -76,7 +89,7 @@ static int mmc_file_op(enum dfu_mmc_op op, struct dfu_entity *dfu,
return
ret
;
return
ret
;
}
}
if
(
dfu
->
layout
!=
DFU_RAW_ADDR
)
{
if
(
dfu
->
layout
!=
DFU_RAW_ADDR
&&
op
==
DFU_OP_READ
)
{
str_env
=
getenv
(
"filesize"
);
str_env
=
getenv
(
"filesize"
);
if
(
str_env
==
NULL
)
{
if
(
str_env
==
NULL
)
{
puts
(
"dfu: Wrong file size!
\n
"
);
puts
(
"dfu: Wrong file size!
\n
"
);
...
@@ -107,6 +120,7 @@ int dfu_write_medium_mmc(struct dfu_entity *dfu, void *buf, long *len)
...
@@ -107,6 +120,7 @@ int dfu_write_medium_mmc(struct dfu_entity *dfu, void *buf, long *len)
ret
=
mmc_block_write
(
dfu
,
buf
,
len
);
ret
=
mmc_block_write
(
dfu
,
buf
,
len
);
break
;
break
;
case
DFU_FS_FAT
:
case
DFU_FS_FAT
:
case
DFU_FS_EXT4
:
ret
=
mmc_file_write
(
dfu
,
buf
,
len
);
ret
=
mmc_file_write
(
dfu
,
buf
,
len
);
break
;
break
;
default:
default:
...
@@ -126,6 +140,7 @@ int dfu_read_medium_mmc(struct dfu_entity *dfu, void *buf, long *len)
...
@@ -126,6 +140,7 @@ int dfu_read_medium_mmc(struct dfu_entity *dfu, void *buf, long *len)
ret
=
mmc_block_read
(
dfu
,
buf
,
len
);
ret
=
mmc_block_read
(
dfu
,
buf
,
len
);
break
;
break
;
case
DFU_FS_FAT
:
case
DFU_FS_FAT
:
case
DFU_FS_EXT4
:
ret
=
mmc_file_read
(
dfu
,
buf
,
len
);
ret
=
mmc_file_read
(
dfu
,
buf
,
len
);
break
;
break
;
default:
default:
...
@@ -149,12 +164,17 @@ int dfu_fill_entity_mmc(struct dfu_entity *dfu, char *s)
...
@@ -149,12 +164,17 @@ int dfu_fill_entity_mmc(struct dfu_entity *dfu, char *s)
dfu
->
data
.
mmc
.
lba_blk_size
=
get_mmc_blk_size
(
dfu
->
dev_num
);
dfu
->
data
.
mmc
.
lba_blk_size
=
get_mmc_blk_size
(
dfu
->
dev_num
);
}
else
if
(
!
strcmp
(
st
,
"fat"
))
{
}
else
if
(
!
strcmp
(
st
,
"fat"
))
{
dfu
->
layout
=
DFU_FS_FAT
;
dfu
->
layout
=
DFU_FS_FAT
;
dfu
->
data
.
mmc
.
dev
=
simple_strtoul
(
s
,
&
s
,
10
);
}
else
if
(
!
strcmp
(
st
,
"ext4"
))
{
dfu
->
data
.
mmc
.
part
=
simple_strtoul
(
++
s
,
&
s
,
10
)
;
dfu
->
layout
=
DFU_FS_EXT4
;
}
else
{
}
else
{
printf
(
"%s: Memory layout (%s) not supported!
\n
"
,
__func__
,
st
);
printf
(
"%s: Memory layout (%s) not supported!
\n
"
,
__func__
,
st
);
}
}
if
(
dfu
->
layout
==
DFU_FS_EXT4
||
dfu
->
layout
==
DFU_FS_FAT
)
{
dfu
->
data
.
mmc
.
dev
=
simple_strtoul
(
s
,
&
s
,
10
);
dfu
->
data
.
mmc
.
part
=
simple_strtoul
(
++
s
,
&
s
,
10
);
}
dfu
->
read_medium
=
dfu_read_medium_mmc
;
dfu
->
read_medium
=
dfu_read_medium_mmc
;
dfu
->
write_medium
=
dfu_write_medium_mmc
;
dfu
->
write_medium
=
dfu_write_medium_mmc
;
...
...
drivers/usb/host/ehci-hcd.c
浏览文件 @
50d924b4
...
@@ -22,6 +22,7 @@
...
@@ -22,6 +22,7 @@
*/
*/
#include <common.h>
#include <common.h>
#include <asm/byteorder.h>
#include <asm/byteorder.h>
#include <asm/unaligned.h>
#include <usb.h>
#include <usb.h>
#include <asm/io.h>
#include <asm/io.h>
#include <malloc.h>
#include <malloc.h>
...
@@ -866,10 +867,12 @@ int usb_lowlevel_init(void)
...
@@ -866,10 +867,12 @@ int usb_lowlevel_init(void)
printf
(
"Register %x NbrPorts %d
\n
"
,
reg
,
descriptor
.
hub
.
bNbrPorts
);
printf
(
"Register %x NbrPorts %d
\n
"
,
reg
,
descriptor
.
hub
.
bNbrPorts
);
/* Port Indicators */
/* Port Indicators */
if
(
HCS_INDICATOR
(
reg
))
if
(
HCS_INDICATOR
(
reg
))
descriptor
.
hub
.
wHubCharacteristics
|=
0x80
;
put_unaligned
(
get_unaligned
(
&
descriptor
.
hub
.
wHubCharacteristics
)
|
0x80
,
&
descriptor
.
hub
.
wHubCharacteristics
);
/* Port Power Control */
/* Port Power Control */
if
(
HCS_PPC
(
reg
))
if
(
HCS_PPC
(
reg
))
descriptor
.
hub
.
wHubCharacteristics
|=
0x01
;
put_unaligned
(
get_unaligned
(
&
descriptor
.
hub
.
wHubCharacteristics
)
|
0x01
,
&
descriptor
.
hub
.
wHubCharacteristics
);
/* Start the host controller. */
/* Start the host controller. */
cmd
=
ehci_readl
(
&
hcor
->
or_usbcmd
);
cmd
=
ehci_readl
(
&
hcor
->
or_usbcmd
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录