Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OS
U-Boot.Mirror
提交
76a22410
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,发现更多精彩内容 >>
提交
76a22410
编写于
11月 06, 2013
作者:
T
Tom Rini
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'fpga' of
git://www.denx.de/git/u-boot-microblaze
上级
edabc1bc
32d7cdd3
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
32 addition
and
5 deletion
+32
-5
common/cmd_fpga.c
common/cmd_fpga.c
+19
-3
drivers/fpga/zynqpl.c
drivers/fpga/zynqpl.c
+13
-2
未找到文件。
common/cmd_fpga.c
浏览文件 @
76a22410
...
...
@@ -160,9 +160,25 @@ int do_fpga(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
image_header_t
*
hdr
=
(
image_header_t
*
)
fpga_data
;
ulong
data
;
data
=
(
ulong
)
image_get_data
(
hdr
);
data_size
=
image_get_data_size
(
hdr
);
uint8_t
comp
;
comp
=
image_get_comp
(
hdr
);
if
(
comp
==
IH_COMP_GZIP
)
{
ulong
image_buf
=
image_get_data
(
hdr
);
data
=
image_get_load
(
hdr
);
ulong
image_size
=
~
0UL
;
if
(
gunzip
((
void
*
)
data
,
~
0UL
,
(
void
*
)
image_buf
,
&
image_size
)
!=
0
)
{
puts
(
"GUNZIP: error
\n
"
);
return
1
;
}
data_size
=
image_size
;
}
else
{
data
=
(
ulong
)
image_get_data
(
hdr
);
data_size
=
image_get_data_size
(
hdr
);
}
rc
=
fpga_load
(
dev
,
(
void
*
)
data
,
data_size
);
}
break
;
...
...
drivers/fpga/zynqpl.c
浏览文件 @
76a22410
...
...
@@ -10,6 +10,7 @@
#include <common.h>
#include <asm/io.h>
#include <zynqpl.h>
#include <asm/sizes.h>
#include <asm/arch/hardware.h>
#include <asm/arch/sys_proto.h>
...
...
@@ -177,8 +178,14 @@ int zynq_load(Xilinx_desc *desc, const void *buf, size_t bsize)
return
FPGA_FAIL
;
}
if
((
u32
)
buf_start
&
0x3
)
{
u32
*
new_buf
=
(
u32
*
)((
u32
)
buf
&
~
0x3
);
if
((
u32
)
buf
<
SZ_1M
)
{
printf
(
"%s: Bitstream has to be placed up to 1MB (%x)
\n
"
,
__func__
,
(
u32
)
buf
);
return
FPGA_FAIL
;
}
if
((
u32
)
buf
!=
ALIGN
((
u32
)
buf
,
ARCH_DMA_MINALIGN
))
{
u32
*
new_buf
=
(
u32
*
)
ALIGN
((
u32
)
buf
,
ARCH_DMA_MINALIGN
);
printf
(
"%s: Align buffer at %x to %x(swap %d)
\n
"
,
__func__
,
(
u32
)
buf_start
,
(
u32
)
new_buf
,
swap
);
...
...
@@ -284,6 +291,10 @@ int zynq_load(Xilinx_desc *desc, const void *buf, size_t bsize)
debug
(
"%s: Source = 0x%08X
\n
"
,
__func__
,
(
u32
)
buf
);
debug
(
"%s: Size = %zu
\n
"
,
__func__
,
bsize
);
/* flush(clean & invalidate) d-cache range buf */
flush_dcache_range
((
u32
)
buf
,
(
u32
)
buf
+
roundup
(
bsize
,
ARCH_DMA_MINALIGN
));
/* Set up the transfer */
writel
((
u32
)
buf
|
1
,
&
devcfg_base
->
dma_src_addr
);
writel
(
0xFFFFFFFF
,
&
devcfg_base
->
dma_dst_addr
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录