Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OS
U-Boot.Mirror
提交
be6b6e4e
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,发现更多精彩内容 >>
提交
be6b6e4e
编写于
4月 01, 2005
作者:
W
wdenk
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Patch by Martin Krause, 01 Apr 2005:
Add automatic HW detection for CMC_PU2 and CMC_BASIC
上级
e6ba3c92
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
84 addition
and
5 deletion
+84
-5
CHANGELOG
CHANGELOG
+3
-2
board/cmc_pu2/cmc_pu2.c
board/cmc_pu2/cmc_pu2.c
+76
-2
include/asm-arm/arch-at91rm9200/AT91RM9200.h
include/asm-arm/arch-at91rm9200/AT91RM9200.h
+4
-0
lib_arm/board.c
lib_arm/board.c
+1
-1
未找到文件。
CHANGELOG
浏览文件 @
be6b6e4e
...
...
@@ -2,8 +2,9 @@
Changes for U-Boot 1.1.3:
======================================================================
* Patch by Martin Krause, 01 Apr 2005:
Fix flash erase timeout on CMC_PU2
* Patches by Martin Krause, 01 Apr 2005:
- Fix flash erase timeout on CMC_PU2
- Add automatic HW detection for CMC_PU2 and CMC_BASIC
* Patch by Steven Scholz, 13 March 2005:
fix cache enabling for AT91RM9200
...
...
board/cmc_pu2/cmc_pu2.c
浏览文件 @
be6b6e4e
...
...
@@ -6,6 +6,8 @@
* Modified for CMC_PU2 (removed Smart Media support) by Gary Jennejohn
* (2004) garyj@denx.de
*
* Modified for CMC_BASIC by Martin Krause (2005), TQ-Systems GmbH
*
* See file CREDITS for list of people who contributed to this
* project.
*
...
...
@@ -33,22 +35,67 @@
/*
* Miscelaneous platform dependent initialisations
*/
#define CMC_BASIC 1
#define CMC_PU2 2
int
hw_detect
(
void
);
int
board_init
(
void
)
{
DECLARE_GLOBAL_DATA_PTR
;
AT91PS_PIO
piob
=
AT91C_BASE_PIOB
;
AT91PS_PIO
pioc
=
AT91C_BASE_PIOC
;
/* Enable Ctrlc */
console_init_f
();
/* Correct IRDA resistor problem */
/* Set PA23_TXD in Output */
(
AT91PS_PIO
)
AT91C_BASE_PIOA
->
PIO_OER
=
AT91C_PA23_TXD2
;
/* (AT91PS_PIO) AT91C_BASE_PIOA->PIO_OER = AT91C_PA23_TXD2; */
/* memory and cpu-speed are setup before relocation */
/* so we do _nothing_ here */
/* arch number of CMC_PU2-Board */
/* PIOB and PIOC clock enabling */
*
AT91C_PMC_PCER
=
1
<<
AT91C_ID_PIOB
;
*
AT91C_PMC_PCER
=
1
<<
AT91C_ID_PIOC
;
/*
* configure PC0-PC3 as input without pull ups, so RS485 driver enable
* (CMC-PU2) and digital outputs (CMC-BASIC) are deactivated.
*/
pioc
->
PIO_ODR
=
AT91C_PIO_PC0
|
AT91C_PIO_PC1
|
AT91C_PIO_PC2
|
AT91C_PIO_PC3
;
pioc
->
PIO_PPUDR
=
AT91C_PIO_PC0
|
AT91C_PIO_PC1
|
AT91C_PIO_PC2
|
AT91C_PIO_PC3
;
pioc
->
PIO_PER
=
AT91C_PIO_PC0
|
AT91C_PIO_PC1
|
AT91C_PIO_PC2
|
AT91C_PIO_PC3
;
/*
* On CMC-PU2 board configure PB3-PB6 to input without pull ups to
* clear the duo LEDs (the external pull downs assure a proper
* signal). On CMC-BASIC set PB3-PB6 to output and drive it
* high, to configure current meassurement on AINx.
*/
if
(
hw_detect
()
&
CMC_PU2
)
{
piob
->
PIO_ODR
=
AT91C_PIO_PB3
|
AT91C_PIO_PB4
|
AT91C_PIO_PB5
|
AT91C_PIO_PB6
;
}
else
if
(
hw_detect
()
&
CMC_BASIC
)
{
piob
->
PIO_SODR
=
AT91C_PIO_PB3
|
AT91C_PIO_PB4
|
AT91C_PIO_PB5
|
AT91C_PIO_PB6
;
piob
->
PIO_OER
=
AT91C_PIO_PB3
|
AT91C_PIO_PB4
|
AT91C_PIO_PB5
|
AT91C_PIO_PB6
;
}
piob
->
PIO_PPUDR
=
AT91C_PIO_PB3
|
AT91C_PIO_PB4
|
AT91C_PIO_PB5
|
AT91C_PIO_PB6
;
piob
->
PIO_PER
=
AT91C_PIO_PB3
|
AT91C_PIO_PB4
|
AT91C_PIO_PB5
|
AT91C_PIO_PB6
;
/*
* arch number of CMC_PU2-Board. MACH_TYPE_CMC_PU2 is not supported in
* the linuxarm kernel, yet.
*/
/* gd->bd->bi_arch_number = MACH_TYPE_CMC_PU2; */
gd
->
bd
->
bi_arch_number
=
251
;
/* adress of boot parameters */
...
...
@@ -65,3 +112,30 @@ int dram_init (void)
gd
->
bd
->
bi_dram
[
0
].
size
=
PHYS_SDRAM_SIZE
;
return
0
;
}
int
checkboard
(
void
)
{
if
(
hw_detect
()
&
CMC_PU2
)
puts
(
"Board: CMC-PU2 (Rittal GmbH)
\n
"
);
else
if
(
hw_detect
()
&
CMC_BASIC
)
puts
(
"Board: CMC-BASIC (Rittal GmbH)
\n
"
);
else
puts
(
"Board: unknown
\n
"
);
return
0
;
}
int
hw_detect
(
void
)
{
AT91PS_PIO
pio
=
AT91C_BASE_PIOB
;
/* PIOB clock enabling */
*
AT91C_PMC_PCER
=
1
<<
AT91C_ID_PIOB
;
/* configure PB12 as input without pull up */
pio
->
PIO_ODR
=
AT91C_PIO_PB12
;
pio
->
PIO_PPUDR
=
AT91C_PIO_PB12
;
pio
->
PIO_PER
=
AT91C_PIO_PB12
;
/* read board identification pin */
return
((
pio
->
PIO_PDSR
&
AT91C_PIO_PB12
)
?
CMC_PU2
:
CMC_BASIC
);
}
include/asm-arm/arch-at91rm9200/AT91RM9200.h
浏览文件 @
be6b6e4e
...
...
@@ -665,6 +665,10 @@ typedef struct _AT91S_PDC {
#define AT91C_PIO_PA7 ((unsigned int) 1 << 7)
/* Pin Controlled by PA7 */
#define AT91C_PA7_ETXCK_EREFCK ((unsigned int) AT91C_PIO_PA7)
/* Ethernet MAC Transmit Clock/Reference Clock */
#define AT91C_PIO_PB3 ((unsigned int) 1 << 3)
/* Pin Controlled by PB7 */
#define AT91C_PIO_PB4 ((unsigned int) 1 << 4)
/* Pin Controlled by PB7 */
#define AT91C_PIO_PB5 ((unsigned int) 1 << 5)
/* Pin Controlled by PB7 */
#define AT91C_PIO_PB6 ((unsigned int) 1 << 6)
/* Pin Controlled by PB7 */
#define AT91C_PIO_PB7 ((unsigned int) 1 << 7)
/* Pin Controlled by PB7 */
#define AT91C_PIO_PB25 ((unsigned int) 1 << 25)
/* Pin Controlled by PB25 */
#define AT91C_PB25_DSR1 ((unsigned int) AT91C_PIO_PB25)
/* USART 1 Data Set ready */
...
...
lib_arm/board.c
浏览文件 @
be6b6e4e
...
...
@@ -198,7 +198,7 @@ init_fnc_t *init_sequence[] = {
display_banner
,
/* say that we are here */
dram_init
,
/* configure available RAM banks */
display_dram_config
,
#if defined(CONFIG_VCMA9)
#if defined(CONFIG_VCMA9)
|| defined (CONFIG_CMC_PU2)
checkboard
,
#endif
NULL
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录