Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OS
U-Boot.Mirror
提交
a0953b34
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,发现更多精彩内容 >>
提交
a0953b34
编写于
8月 03, 2021
作者:
T
Tom Rini
浏览文件
操作
浏览文件
下载
差异文件
Merge
https://source.denx.de/u-boot/custodians/u-boot-spi
- SPI-NOR fix (Big Meng) - XMC XM25QH64C flash (Reto Schneider)
上级
b91c7043
d0081909
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
24 addition
and
10 deletion
+24
-10
drivers/mtd/spi/spi-nor-core.c
drivers/mtd/spi/spi-nor-core.c
+17
-6
drivers/mtd/spi/spi-nor-ids.c
drivers/mtd/spi/spi-nor-ids.c
+1
-0
drivers/spi/spi-mem-nodm.c
drivers/spi/spi-mem-nodm.c
+6
-4
未找到文件。
drivers/mtd/spi/spi-nor-core.c
浏览文件 @
a0953b34
...
@@ -2604,18 +2604,28 @@ static int spi_nor_init_params(struct spi_nor *nor,
...
@@ -2604,18 +2604,28 @@ static int spi_nor_init_params(struct spi_nor *nor,
params
->
size
=
info
->
sector_size
*
info
->
n_sectors
;
params
->
size
=
info
->
sector_size
*
info
->
n_sectors
;
params
->
page_size
=
info
->
page_size
;
params
->
page_size
=
info
->
page_size
;
if
(
!
(
info
->
flags
&
SPI_NOR_NO_FR
))
{
/* Default to Fast Read for DT and non-DT platform devices. */
params
->
hwcaps
.
mask
|=
SNOR_HWCAPS_READ_FAST
;
/* Mask out Fast Read if not requested at DT instantiation. */
#if CONFIG_IS_ENABLED(DM_SPI)
if
(
!
ofnode_read_bool
(
dev_ofnode
(
nor
->
spi
->
dev
),
"m25p,fast-read"
))
params
->
hwcaps
.
mask
&=
~
SNOR_HWCAPS_READ_FAST
;
#endif
}
/* (Fast) Read settings. */
/* (Fast) Read settings. */
params
->
hwcaps
.
mask
|=
SNOR_HWCAPS_READ
;
params
->
hwcaps
.
mask
|=
SNOR_HWCAPS_READ
;
spi_nor_set_read_settings
(
&
params
->
reads
[
SNOR_CMD_READ
],
spi_nor_set_read_settings
(
&
params
->
reads
[
SNOR_CMD_READ
],
0
,
0
,
SPINOR_OP_READ
,
0
,
0
,
SPINOR_OP_READ
,
SNOR_PROTO_1_1_1
);
SNOR_PROTO_1_1_1
);
if
(
!
(
info
->
flags
&
SPI_NOR_NO_FR
))
{
if
(
params
->
hwcaps
.
mask
&
SNOR_HWCAPS_READ_FAST
)
params
->
hwcaps
.
mask
|=
SNOR_HWCAPS_READ_FAST
;
spi_nor_set_read_settings
(
&
params
->
reads
[
SNOR_CMD_READ_FAST
],
spi_nor_set_read_settings
(
&
params
->
reads
[
SNOR_CMD_READ_FAST
],
0
,
8
,
SPINOR_OP_READ_FAST
,
0
,
8
,
SPINOR_OP_READ_FAST
,
SNOR_PROTO_1_1_1
);
SNOR_PROTO_1_1_1
);
}
if
(
info
->
flags
&
SPI_NOR_DUAL_READ
)
{
if
(
info
->
flags
&
SPI_NOR_DUAL_READ
)
{
params
->
hwcaps
.
mask
|=
SNOR_HWCAPS_READ_1_1_2
;
params
->
hwcaps
.
mask
|=
SNOR_HWCAPS_READ_1_1_2
;
...
@@ -2858,10 +2868,11 @@ spi_nor_adjust_hwcaps(struct spi_nor *nor,
...
@@ -2858,10 +2868,11 @@ spi_nor_adjust_hwcaps(struct spi_nor *nor,
unsigned
int
cap
;
unsigned
int
cap
;
/*
/*
* Enable all caps by default. We will mask them after checking what's
* Start by assuming the controller supports every capability.
* really supported using spi_mem_supports_op().
* We will mask them after checking what's really supported
* using spi_mem_supports_op().
*/
*/
*
hwcaps
=
SNOR_HWCAPS_ALL
;
*
hwcaps
=
SNOR_HWCAPS_ALL
&
params
->
hwcaps
.
mask
;
/* X-X-X modes are not supported yet, mask them all. */
/* X-X-X modes are not supported yet, mask them all. */
*
hwcaps
&=
~
SNOR_HWCAPS_X_X_X
;
*
hwcaps
&=
~
SNOR_HWCAPS_X_X_X
;
...
...
drivers/mtd/spi/spi-nor-ids.c
浏览文件 @
a0953b34
...
@@ -359,6 +359,7 @@ const struct flash_info spi_nor_ids[] = {
...
@@ -359,6 +359,7 @@ const struct flash_info spi_nor_ids[] = {
#ifdef CONFIG_SPI_FLASH_XMC
#ifdef CONFIG_SPI_FLASH_XMC
/* XMC (Wuhan Xinxin Semiconductor Manufacturing Corp.) */
/* XMC (Wuhan Xinxin Semiconductor Manufacturing Corp.) */
{
INFO
(
"XM25QH64A"
,
0x207017
,
0
,
64
*
1024
,
128
,
SECT_4K
|
SPI_NOR_DUAL_READ
|
SPI_NOR_QUAD_READ
)
},
{
INFO
(
"XM25QH64A"
,
0x207017
,
0
,
64
*
1024
,
128
,
SECT_4K
|
SPI_NOR_DUAL_READ
|
SPI_NOR_QUAD_READ
)
},
{
INFO
(
"XM25QH64C"
,
0x204017
,
0
,
64
*
1024
,
128
,
SECT_4K
|
SPI_NOR_DUAL_READ
|
SPI_NOR_QUAD_READ
)
},
{
INFO
(
"XM25QH128A"
,
0x207018
,
0
,
64
*
1024
,
256
,
SECT_4K
|
SPI_NOR_DUAL_READ
|
SPI_NOR_QUAD_READ
)
},
{
INFO
(
"XM25QH128A"
,
0x207018
,
0
,
64
*
1024
,
256
,
SECT_4K
|
SPI_NOR_DUAL_READ
|
SPI_NOR_QUAD_READ
)
},
#endif
#endif
{
},
{
},
...
...
drivers/spi/spi-mem-nodm.c
浏览文件 @
a0953b34
...
@@ -93,12 +93,14 @@ int spi_mem_adjust_op_size(struct spi_slave *slave,
...
@@ -93,12 +93,14 @@ int spi_mem_adjust_op_size(struct spi_slave *slave,
if
(
slave
->
max_write_size
&&
len
>
slave
->
max_write_size
)
if
(
slave
->
max_write_size
&&
len
>
slave
->
max_write_size
)
return
-
EINVAL
;
return
-
EINVAL
;
if
(
op
->
data
.
dir
==
SPI_MEM_DATA_IN
&&
slave
->
max_read_size
)
if
(
op
->
data
.
dir
==
SPI_MEM_DATA_IN
)
{
op
->
data
.
nbytes
=
min
(
op
->
data
.
nbytes
,
if
(
slave
->
max_read_size
)
slave
->
max_read_size
);
op
->
data
.
nbytes
=
min
(
op
->
data
.
nbytes
,
else
if
(
slave
->
max_write_size
)
slave
->
max_read_size
);
}
else
if
(
slave
->
max_write_size
)
{
op
->
data
.
nbytes
=
min
(
op
->
data
.
nbytes
,
op
->
data
.
nbytes
=
min
(
op
->
data
.
nbytes
,
slave
->
max_write_size
-
len
);
slave
->
max_write_size
-
len
);
}
if
(
!
op
->
data
.
nbytes
)
if
(
!
op
->
data
.
nbytes
)
return
-
EINVAL
;
return
-
EINVAL
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录