Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OS
U-Boot.Mirror
提交
b65e86d8
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,发现更多精彩内容 >>
提交
b65e86d8
编写于
9月 21, 2010
作者:
W
Wolfgang Denk
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'next' of ../custodians into next
上级
69434e4c
3c29975e
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
48 addition
and
57 deletion
+48
-57
board/esd/apc405/apc405.c
board/esd/apc405/apc405.c
+2
-4
board/tqc/tqm834x/tqm834x.c
board/tqc/tqm834x/tqm834x.c
+5
-7
common/cmd_bootm.c
common/cmd_bootm.c
+1
-0
common/cmd_flash.c
common/cmd_flash.c
+2
-8
common/flash.c
common/flash.c
+1
-0
drivers/mtd/cfi_flash.c
drivers/mtd/cfi_flash.c
+15
-17
drivers/mtd/cfi_mtd.c
drivers/mtd/cfi_mtd.c
+1
-9
include/configs/APC405.h
include/configs/APC405.h
+0
-6
include/configs/IDS8247.h
include/configs/IDS8247.h
+1
-2
include/configs/TQM834x.h
include/configs/TQM834x.h
+0
-4
include/flash.h
include/flash.h
+2
-0
include/mtd/cfi_flash.h
include/mtd/cfi_flash.h
+18
-0
未找到文件。
board/esd/apc405/apc405.c
浏览文件 @
b65e86d8
...
...
@@ -30,6 +30,7 @@
#include <command.h>
#include <malloc.h>
#include <flash.h>
#include <mtd/cfi_flash.h>
#include <asm/4xx_pci.h>
#include <pci.h>
...
...
@@ -39,9 +40,6 @@ DECLARE_GLOBAL_DATA_PTR;
extern
int
do_reset
(
cmd_tbl_t
*
cmdtp
,
int
flag
,
int
argc
,
char
*
const
argv
[]);
extern
void
lxt971_no_sleep
(
void
);
extern
ulong
flash_get_size
(
ulong
base
,
int
banknum
);
int
flash_banks
=
CONFIG_SYS_MAX_FLASH_BANKS_DETECT
;
/* fpga configuration data - gzip compressed and generated by bin2c */
const
unsigned
char
fpgadata
[]
=
...
...
@@ -185,7 +183,7 @@ int board_early_init_f (void)
int
board_early_init_r
(
void
)
{
if
(
gd
->
board_type
>=
8
)
flash_banks
=
1
;
cfi_flash_num_
flash_banks
=
1
;
return
0
;
}
...
...
board/tqc/tqm834x/tqm834x.c
浏览文件 @
b65e86d8
...
...
@@ -30,6 +30,8 @@
#include <miiphy.h>
#include <asm/mmu.h>
#include <pci.h>
#include <flash.h>
#include <mtd/cfi_flash.h>
DECLARE_GLOBAL_DATA_PTR
;
...
...
@@ -52,12 +54,8 @@ DECLARE_GLOBAL_DATA_PTR;
#define INITIAL_CS_CONFIG (CSCONFIG_EN | CSCONFIG_ROW_BIT_12 | \
CSCONFIG_COL_BIT_9)
/* Global variable used to store detected number of banks */
int
tqm834x_num_flash_banks
;
/* External definitions */
ulong
flash_get_size
(
ulong
base
,
int
banknum
);
extern
flash_info_t
flash_info
[];
/* Local functions */
static
int
detect_num_flash_banks
(
void
);
...
...
@@ -190,7 +188,7 @@ static int detect_num_flash_banks(void)
ulong
bank2_size
;
ulong
total_size
;
tqm834x
_num_flash_banks
=
2
;
/* assume two banks */
cfi_flash
_num_flash_banks
=
2
;
/* assume two banks */
/* Get bank 1 and 2 information */
bank1_size
=
flash_get_size
(
CONFIG_SYS_FLASH_BASE
,
0
);
...
...
@@ -244,13 +242,13 @@ static int detect_num_flash_banks(void)
* we got the some data reading from Flash.
* There is only one mirrored bank.
*/
tqm834x
_num_flash_banks
=
1
;
cfi_flash
_num_flash_banks
=
1
;
total_size
=
bank1_size
;
}
}
}
debug
(
"Number of flash banks detected: %d
\n
"
,
tqm834x
_num_flash_banks
);
debug
(
"Number of flash banks detected: %d
\n
"
,
cfi_flash
_num_flash_banks
);
/* set OR0 and BR0 */
set_lbc_or
(
0
,
CONFIG_SYS_OR_TIMING_FLASH
|
...
...
common/cmd_bootm.c
浏览文件 @
b65e86d8
...
...
@@ -77,6 +77,7 @@ static int image_info (unsigned long addr);
#if defined(CONFIG_CMD_IMLS)
#include <flash.h>
#include <mtd/cfi_flash.h>
extern
flash_info_t
flash_info
[];
/* info for FLASH chips */
static
int
do_imls
(
cmd_tbl_t
*
cmdtp
,
int
flag
,
int
argc
,
char
*
const
argv
[]);
#endif
...
...
common/cmd_flash.c
浏览文件 @
b65e86d8
...
...
@@ -42,6 +42,8 @@ int find_dev_and_part(const char *id, struct mtd_device **dev,
#endif
#ifndef CONFIG_SYS_NO_FLASH
#include <flash.h>
#include <mtd/cfi_flash.h>
extern
flash_info_t
flash_info
[];
/* info for FLASH chips */
/*
...
...
@@ -417,11 +419,7 @@ int flash_sect_erase (ulong addr_first, ulong addr_last)
{
flash_info_t
*
info
;
ulong
bank
;
#ifdef CONFIG_SYS_MAX_FLASH_BANKS_DETECT
int
s_first
[
CONFIG_SYS_MAX_FLASH_BANKS_DETECT
],
s_last
[
CONFIG_SYS_MAX_FLASH_BANKS_DETECT
];
#else
int
s_first
[
CONFIG_SYS_MAX_FLASH_BANKS
],
s_last
[
CONFIG_SYS_MAX_FLASH_BANKS
];
#endif
int
erased
=
0
;
int
planned
;
int
rcode
=
0
;
...
...
@@ -635,11 +633,7 @@ int flash_sect_protect (int p, ulong addr_first, ulong addr_last)
{
flash_info_t
*
info
;
ulong
bank
;
#ifdef CONFIG_SYS_MAX_FLASH_BANKS_DETECT
int
s_first
[
CONFIG_SYS_MAX_FLASH_BANKS_DETECT
],
s_last
[
CONFIG_SYS_MAX_FLASH_BANKS_DETECT
];
#else
int
s_first
[
CONFIG_SYS_MAX_FLASH_BANKS
],
s_last
[
CONFIG_SYS_MAX_FLASH_BANKS
];
#endif
int
protected
,
i
;
int
planned
;
int
rcode
;
...
...
common/flash.c
浏览文件 @
b65e86d8
...
...
@@ -27,6 +27,7 @@
#include <flash.h>
#if !defined(CONFIG_SYS_NO_FLASH)
#include <mtd/cfi_flash.h>
extern
flash_info_t
flash_info
[];
/* info for FLASH chips */
...
...
drivers/mtd/cfi_flash.c
浏览文件 @
b65e86d8
...
...
@@ -62,20 +62,9 @@
* reading and writing ... (yes there is such a Hardware).
*/
#ifndef CONFIG_SYS_FLASH_BANKS_LIST
#define CONFIG_SYS_FLASH_BANKS_LIST { CONFIG_SYS_FLASH_BASE }
#endif
static
uint
flash_offset_cfi
[
2
]
=
{
FLASH_OFFSET_CFI
,
FLASH_OFFSET_CFI_ALT
};
static
uint
flash_verbose
=
1
;
/* use CONFIG_SYS_MAX_FLASH_BANKS_DETECT if defined */
#ifdef CONFIG_SYS_MAX_FLASH_BANKS_DETECT
# define CFI_MAX_FLASH_BANKS CONFIG_SYS_MAX_FLASH_BANKS_DETECT
#else
# define CFI_MAX_FLASH_BANKS CONFIG_SYS_MAX_FLASH_BANKS
#endif
flash_info_t
flash_info
[
CFI_MAX_FLASH_BANKS
];
/* FLASH chips info */
/*
...
...
@@ -85,6 +74,17 @@ flash_info_t flash_info[CFI_MAX_FLASH_BANKS]; /* FLASH chips info */
#define CONFIG_SYS_FLASH_CFI_WIDTH FLASH_CFI_8BIT
#endif
#if defined(CONFIG_SYS_MAX_FLASH_BANKS_DETECT)
int
cfi_flash_num_flash_banks
=
CONFIG_SYS_MAX_FLASH_BANKS_DETECT
;
#endif
static
phys_addr_t
__cfi_flash_bank_addr
(
int
i
)
{
return
((
phys_addr_t
[])
CONFIG_SYS_FLASH_BANKS_LIST
)[
i
];
}
phys_addr_t
cfi_flash_bank_addr
(
int
i
)
__attribute__
((
weak
,
alias
(
"__cfi_flash_bank_addr"
)));
static
void
__flash_write8
(
u8
value
,
void
*
addr
)
{
__raw_writeb
(
value
,
addr
);
...
...
@@ -153,7 +153,7 @@ u64 flash_read64(void *addr)__attribute__((weak, alias("__flash_read64")));
flash_info_t
*
flash_get_info
(
ulong
base
)
{
int
i
;
flash_info_t
*
info
=
0
;
flash_info_t
*
info
=
NULL
;
for
(
i
=
0
;
i
<
CONFIG_SYS_MAX_FLASH_BANKS
;
i
++
)
{
info
=
&
flash_info
[
i
];
...
...
@@ -162,7 +162,7 @@ flash_info_t *flash_get_info(ulong base)
break
;
}
return
i
==
CONFIG_SYS_MAX_FLASH_BANKS
?
0
:
i
nfo
;
return
info
;
}
#endif
...
...
@@ -2021,14 +2021,12 @@ unsigned long flash_init (void)
getenv_f
(
"unlock"
,
s
,
sizeof
(
s
));
#endif
#define BANK_BASE(i) (((phys_addr_t [CFI_MAX_FLASH_BANKS])CONFIG_SYS_FLASH_BANKS_LIST)[i])
/* Init: no FLASHes known */
for
(
i
=
0
;
i
<
CONFIG_SYS_MAX_FLASH_BANKS
;
++
i
)
{
flash_info
[
i
].
flash_id
=
FLASH_UNKNOWN
;
if
(
!
flash_detect_legacy
(
BANK_BASE
(
i
),
i
))
flash_get_size
(
BANK_BASE
(
i
),
i
);
if
(
!
flash_detect_legacy
(
cfi_flash_bank_addr
(
i
),
i
))
flash_get_size
(
cfi_flash_bank_addr
(
i
),
i
);
size
+=
flash_info
[
i
].
size
;
if
(
flash_info
[
i
].
flash_id
==
FLASH_UNKNOWN
)
{
#ifndef CONFIG_SYS_FLASH_QUIET_TEST
...
...
drivers/mtd/cfi_mtd.c
浏览文件 @
b65e86d8
...
...
@@ -30,15 +30,7 @@
#include <asm/errno.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/concat.h>
/* use CONFIG_SYS_MAX_FLASH_BANKS_DETECT if defined */
#ifdef CONFIG_SYS_MAX_FLASH_BANKS_DETECT
# define CFI_MAX_FLASH_BANKS CONFIG_SYS_MAX_FLASH_BANKS_DETECT
#else
# define CFI_MAX_FLASH_BANKS CONFIG_SYS_MAX_FLASH_BANKS
#endif
extern
flash_info_t
flash_info
[];
#include <mtd/cfi_flash.h>
static
struct
mtd_info
cfi_mtd_info
[
CFI_MAX_FLASH_BANKS
];
static
char
cfi_mtd_names
[
CFI_MAX_FLASH_BANKS
][
16
];
...
...
include/configs/APC405.h
浏览文件 @
b65e86d8
...
...
@@ -264,16 +264,10 @@
/*
* FLASH organization
*/
#ifndef __ASSEMBLY__
extern
int
flash_banks
;
#endif
#define CONFIG_SYS_FLASH_BASE 0xFE000000
#define CONFIG_SYS_FLASH_CFI 1
/* Flash is CFI conformant */
#define CONFIG_FLASH_CFI_DRIVER 1
/* Use the common driver */
#define CONFIG_SYS_MAX_FLASH_SECT 256
/* max num of sects on one chip */
#define CONFIG_SYS_MAX_FLASH_BANKS flash_banks
/* max num of flash banks */
/* updated in board_early_init_r */
#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT 2
#define CONFIG_SYS_FLASH_QUIET_TEST 1
#define CONFIG_SYS_FLASH_INCREMENT 0x01000000
...
...
include/configs/IDS8247.h
浏览文件 @
b65e86d8
...
...
@@ -227,7 +227,7 @@
#define CONFIG_SYS_FLASH_CFI
/* The flash is CFI compatible */
#define CONFIG_FLASH_CFI_DRIVER
/* Use common CFI driver */
#define CONFIG_SYS_FLASH_BANKS_LIST { 0xFF800000 }
#define CONFIG_SYS_MAX_FLASH_BANKS
_DETECT 1
#define CONFIG_SYS_MAX_FLASH_BANKS
1
/* max number of memory banks */
/* What should the base address of the main FLASH be and how big is
* it (in MBytes)? This must contain TEXT_BASE from board/ids8247/config.mk
* The main FLASH is whichever is connected to *CS0.
...
...
@@ -242,7 +242,6 @@
/*-----------------------------------------------------------------------
* FLASH organization
*/
#define CONFIG_SYS_MAX_FLASH_BANKS 1
/* max num of memory banks */
#define CONFIG_SYS_MAX_FLASH_SECT 128
/* max num of sects on one chip */
#define CONFIG_SYS_FLASH_ERASE_TOUT 240000
/* Flash Erase Timeout (in ms) */
...
...
include/configs/TQM834x.h
浏览文件 @
b65e86d8
...
...
@@ -101,10 +101,6 @@
* defined as tqm834x_num_flash_banks.
*/
#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT 2
#ifndef __ASSEMBLY__
extern
int
tqm834x_num_flash_banks
;
#endif
#define CONFIG_SYS_MAX_FLASH_BANKS (tqm834x_num_flash_banks)
#define CONFIG_SYS_MAX_FLASH_SECT 512
/* max sectors per device */
...
...
include/flash.h
浏览文件 @
b65e86d8
...
...
@@ -58,6 +58,8 @@ typedef struct {
#endif
}
flash_info_t
;
extern
flash_info_t
flash_info
[];
/* info for FLASH chips */
typedef
unsigned
long
flash_sect_t
;
/*
...
...
include/mtd/cfi_flash.h
浏览文件 @
b65e86d8
...
...
@@ -151,6 +151,24 @@ struct cfi_pri_hdr {
u8
minor_version
;
}
__attribute__
((
packed
));
#ifndef CONFIG_SYS_FLASH_BANKS_LIST
#define CONFIG_SYS_FLASH_BANKS_LIST { CONFIG_SYS_FLASH_BASE }
#endif
/*
* CFI_MAX_FLASH_BANKS only used for flash_info struct declaration.
*
* Use CONFIG_SYS_MAX_FLASH_BANKS_DETECT if defined
*/
#if defined(CONFIG_SYS_MAX_FLASH_BANKS_DETECT)
#define CONFIG_SYS_MAX_FLASH_BANKS (cfi_flash_num_flash_banks)
#define CFI_MAX_FLASH_BANKS CONFIG_SYS_MAX_FLASH_BANKS_DETECT
/* board code can update this variable before CFI detection */
extern
int
cfi_flash_num_flash_banks
;
#else
#define CFI_MAX_FLASH_BANKS CONFIG_SYS_MAX_FLASH_BANKS
#endif
void
flash_write_cmd
(
flash_info_t
*
info
,
flash_sect_t
sect
,
uint
offset
,
u32
cmd
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录