Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OS
U-Boot.Mirror
提交
bf72a4ca
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,发现更多精彩内容 >>
提交
bf72a4ca
编写于
9月 07, 2007
作者:
W
Wolfgang Denk
浏览文件
操作
浏览文件
下载
差异文件
Merge with /home/wd/git/u-boot/custodian/u-boot-mpc5xxx
上级
041a2554
e7902122
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
102 addition
and
68 deletion
+102
-68
board/icecube/icecube.c
board/icecube/icecube.c
+2
-5
board/jupiter/jupiter.c
board/jupiter/jupiter.c
+2
-6
board/motionpro/motionpro.c
board/motionpro/motionpro.c
+3
-5
board/tqm5200/tqm5200.c
board/tqm5200/tqm5200.c
+3
-6
common/cmd_bootm.c
common/cmd_bootm.c
+19
-17
cpu/mpc5xxx/cpu.c
cpu/mpc5xxx/cpu.c
+41
-25
include/configs/IceCube.h
include/configs/IceCube.h
+1
-1
include/configs/TQM5200.h
include/configs/TQM5200.h
+1
-1
include/configs/jupiter.h
include/configs/jupiter.h
+1
-1
include/configs/motionpro.h
include/configs/motionpro.h
+1
-1
include/libfdt.h
include/libfdt.h
+2
-0
libfdt/fdt_rw.c
libfdt/fdt_rw.c
+26
-0
未找到文件。
board/icecube/icecube.c
浏览文件 @
bf72a4ca
...
...
@@ -28,10 +28,7 @@
#include <mpc5xxx.h>
#include <pci.h>
#include <asm/processor.h>
#if defined(CONFIG_OF_FLAT_TREE)
#include <ft_build.h>
#endif
#include <libfdt.h>
#if defined(CONFIG_LITE5200B)
#include "mt46v32m16.h"
...
...
@@ -386,7 +383,7 @@ void ide_set_reset (int idereset)
}
#endif
#if defined(CONFIG_OF_
FLAT_TREE
) && defined(CONFIG_OF_BOARD_SETUP)
#if defined(CONFIG_OF_
LIBFDT
) && defined(CONFIG_OF_BOARD_SETUP)
void
ft_board_setup
(
void
*
blob
,
bd_t
*
bd
)
{
...
...
board/jupiter/jupiter.c
浏览文件 @
bf72a4ca
...
...
@@ -28,11 +28,7 @@
#include <mpc5xxx.h>
#include <pci.h>
#include <asm/processor.h>
#if defined(CONFIG_OF_FLAT_TREE)
#include <ft_build.h>
#endif
#include <libfdt.h>
#define SDRAM_DDR 0
#if 1
...
...
@@ -308,7 +304,7 @@ void ide_set_reset (int idereset)
}
#endif
#if defined(CONFIG_OF_
FLAT_TREE
) && defined(CONFIG_OF_BOARD_SETUP)
#if defined(CONFIG_OF_
LIBFDT
) && defined(CONFIG_OF_BOARD_SETUP)
void
ft_board_setup
(
void
*
blob
,
bd_t
*
bd
)
{
...
...
board/motionpro/motionpro.c
浏览文件 @
bf72a4ca
...
...
@@ -29,9 +29,7 @@
#include <common.h>
#include <mpc5xxx.h>
#include <miiphy.h>
#if defined(CONFIG_OF_FLAT_TREE)
#include <ft_build.h>
#endif
#include <libfdt.h>
#if defined(CONFIG_STATUS_LED)
#include <status_led.h>
...
...
@@ -196,12 +194,12 @@ int checkboard(void)
}
#if defined(CONFIG_OF_
FLAT_TREE
) && defined(CONFIG_OF_BOARD_SETUP)
#if defined(CONFIG_OF_
LIBFDT
) && defined(CONFIG_OF_BOARD_SETUP)
void
ft_board_setup
(
void
*
blob
,
bd_t
*
bd
)
{
ft_cpu_setup
(
blob
,
bd
);
}
#endif
/* defined(CONFIG_OF_
FLAT_TREE
) && defined(CONFIG_OF_BOARD_SETUP) */
#endif
/* defined(CONFIG_OF_
LIBFDT
) && defined(CONFIG_OF_BOARD_SETUP) */
#if defined(CONFIG_STATUS_LED)
...
...
board/tqm5200/tqm5200.c
浏览文件 @
bf72a4ca
...
...
@@ -31,10 +31,7 @@
#include <mpc5xxx.h>
#include <pci.h>
#include <asm/processor.h>
#if defined(CONFIG_OF_FLAT_TREE)
#include <ft_build.h>
#endif
#include <libfdt.h>
#ifdef CONFIG_VIDEO_SM501
#include <sm501.h>
...
...
@@ -780,9 +777,9 @@ int board_get_height (void)
#endif
/* CONFIG_VIDEO_SM501 */
#if defined(CONFIG_OF_
FLAT_TREE
) && defined(CONFIG_OF_BOARD_SETUP)
#if defined(CONFIG_OF_
LIBFDT
) && defined(CONFIG_OF_BOARD_SETUP)
void
ft_board_setup
(
void
*
blob
,
bd_t
*
bd
)
{
ft_cpu_setup
(
blob
,
bd
);
}
#endif
/* defined(CONFIG_OF_
FLAT_TREE
) && defined(CONFIG_OF_BOARD_SETUP) */
#endif
/* defined(CONFIG_OF_
LIBFDT
) && defined(CONFIG_OF_BOARD_SETUP) */
common/cmd_bootm.c
浏览文件 @
bf72a4ca
...
...
@@ -962,29 +962,31 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
* Add the chosen node if it doesn't exist, add the env and bd_t
* if the user wants it (the logic is in the subroutines).
*/
if
(
fdt_chosen
(
of_flat_tree
,
initrd_start
,
initrd_end
,
0
)
<
0
)
{
puts
(
"ERROR: /chosen node create failed - "
"must RESET the board to recover.
\n
"
);
do_reset
(
cmdtp
,
flag
,
argc
,
argv
);
}
if
(
of_flat_tree
)
{
if
(
fdt_chosen
(
of_flat_tree
,
initrd_start
,
initrd_end
,
0
)
<
0
)
{
puts
(
"ERROR: /chosen node create failed - "
"must RESET the board to recover.
\n
"
);
do_reset
(
cmdtp
,
flag
,
argc
,
argv
);
}
#ifdef CONFIG_OF_HAS_UBOOT_ENV
if
(
fdt_env
(
of_flat_tree
)
<
0
)
{
puts
(
"ERROR: /u-boot-env node create failed - "
"must RESET the board to recover.
\n
"
);
do_reset
(
cmdtp
,
flag
,
argc
,
argv
);
}
if
(
fdt_env
(
of_flat_tree
)
<
0
)
{
puts
(
"ERROR: /u-boot-env node create failed - "
"must RESET the board to recover.
\n
"
);
do_reset
(
cmdtp
,
flag
,
argc
,
argv
);
}
#endif
#ifdef CONFIG_OF_HAS_BD_T
if
(
fdt_bd_t
(
of_flat_tree
)
<
0
)
{
puts
(
"ERROR: /bd_t node create failed - "
"must RESET the board to recover.
\n
"
);
do_reset
(
cmdtp
,
flag
,
argc
,
argv
);
}
if
(
fdt_bd_t
(
of_flat_tree
)
<
0
)
{
puts
(
"ERROR: /bd_t node create failed - "
"must RESET the board to recover.
\n
"
);
do_reset
(
cmdtp
,
flag
,
argc
,
argv
);
}
#endif
#ifdef CONFIG_OF_BOARD_SETUP
/* Call the board-specific fixup routine */
ft_board_setup
(
of_flat_tree
,
gd
->
bd
);
/* Call the board-specific fixup routine */
ft_board_setup
(
of_flat_tree
,
gd
->
bd
);
#endif
}
#endif
/* CONFIG_OF_LIBFDT */
#if defined(CONFIG_OF_FLAT_TREE)
#ifdef CFG_BOOTMAPSZ
...
...
cpu/mpc5xxx/cpu.c
浏览文件 @
bf72a4ca
...
...
@@ -29,10 +29,12 @@
#include <watchdog.h>
#include <command.h>
#include <mpc5xxx.h>
#include <asm/io.h>
#include <asm/processor.h>
#if defined(CONFIG_OF_FLAT_TREE)
#include <ft_build.h>
#if defined(CONFIG_OF_LIBFDT)
#include <libfdt.h>
#include <libfdt_env.h>
#endif
DECLARE_GLOBAL_DATA_PTR
;
...
...
@@ -111,29 +113,43 @@ unsigned long get_tbclk (void)
/* ------------------------------------------------------------------------- */
#ifdef CONFIG_OF_
FLAT_TREE
void
ft_cpu_setup
(
void
*
blob
,
bd_t
*
bd
)
#ifdef CONFIG_OF_
LIBFDT
static
void
do_fixup
(
void
*
fdt
,
const
char
*
node
,
const
char
*
prop
,
const
void
*
val
,
int
len
,
int
create
)
{
u32
*
p
;
int
len
;
/* Core XLB bus frequency */
p
=
ft_get_prop
(
blob
,
"/cpus/"
OF_CPU
"/bus-frequency"
,
&
len
);
if
(
p
!=
NULL
)
*
p
=
cpu_to_be32
(
bd
->
bi_busfreq
);
/* SOC peripherals use the IPB bus frequency */
p
=
ft_get_prop
(
blob
,
"/"
OF_SOC
"/bus-frequency"
,
&
len
);
if
(
p
!=
NULL
)
*
p
=
cpu_to_be32
(
bd
->
bi_ipbfreq
);
p
=
ft_get_prop
(
blob
,
"/"
OF_SOC
"/ethernet@3000/mac-address"
,
&
len
);
if
(
p
!=
NULL
)
memcpy
(
p
,
bd
->
bi_enetaddr
,
6
);
p
=
ft_get_prop
(
blob
,
"/"
OF_SOC
"/ethernet@3000/local-mac-address"
,
&
len
);
if
(
p
!=
NULL
)
memcpy
(
p
,
bd
->
bi_enetaddr
,
6
);
#if defined(DEBUG)
int
i
;
debug
(
"Updating property '%s/%s' = "
,
node
,
prop
);
for
(
i
=
0
;
i
<
len
;
i
++
)
debug
(
" %.2x"
,
*
(
u8
*
)(
val
+
i
));
debug
(
"
\n
"
);
#endif
int
rc
=
fdt_find_and_setprop
(
fdt
,
node
,
prop
,
val
,
len
,
create
);
if
(
rc
)
printf
(
"Unable to update property %s:%s, err=%s
\n
"
,
node
,
prop
,
fdt_strerror
(
rc
));
}
static
void
do_fixup_u32
(
void
*
fdt
,
const
char
*
node
,
const
char
*
prop
,
u32
val
,
int
create
)
{
val
=
cpu_to_fdt32
(
val
);
do_fixup
(
fdt
,
node
,
prop
,
&
val
,
sizeof
(
val
),
create
);
}
void
ft_cpu_setup
(
void
*
blob
,
bd_t
*
bd
)
{
int
div
=
in_8
((
void
*
)
CFG_MBAR
+
0x204
)
&
0x0020
?
8
:
4
;
char
*
cpu_path
=
"/cpus/"
OF_CPU
;
char
*
eth_path
=
"/"
OF_SOC
"/ethernet@3000"
;
do_fixup_u32
(
blob
,
cpu_path
,
"timebase-frequency"
,
OF_TBCLK
,
1
);
do_fixup_u32
(
blob
,
cpu_path
,
"bus-frequency"
,
bd
->
bi_busfreq
,
1
);
do_fixup_u32
(
blob
,
cpu_path
,
"clock-frequency"
,
bd
->
bi_intfreq
,
1
);
do_fixup_u32
(
blob
,
"/"
OF_SOC
,
"bus-frequency"
,
bd
->
bi_ipbfreq
,
1
);
do_fixup_u32
(
blob
,
"/"
OF_SOC
,
"system-frequency"
,
bd
->
bi_busfreq
*
div
,
1
);
do_fixup
(
blob
,
eth_path
,
"mac-address"
,
bd
->
bi_enetaddr
,
6
,
0
);
do_fixup
(
blob
,
eth_path
,
"local-mac-address"
,
bd
->
bi_enetaddr
,
6
,
0
);
}
#endif
include/configs/IceCube.h
浏览文件 @
bf72a4ca
...
...
@@ -178,7 +178,7 @@
#endif
/* CONFIG_MPC5200 */
/* pass open firmware flat tree */
#define CONFIG_OF_
FLAT_TREE
1
#define CONFIG_OF_
LIBFDT
1
#define CONFIG_OF_BOARD_SETUP 1
#define OF_CPU "PowerPC,5200@0"
...
...
include/configs/TQM5200.h
浏览文件 @
bf72a4ca
...
...
@@ -701,7 +701,7 @@
* Open firmware flat tree support
*-----------------------------------------------------------------------
*/
#define CONFIG_OF_
FLAT_TREE
1
#define CONFIG_OF_
LIBFDT
1
#define CONFIG_OF_BOARD_SETUP 1
#define OF_CPU "PowerPC,5200@0"
...
...
include/configs/jupiter.h
浏览文件 @
bf72a4ca
...
...
@@ -145,7 +145,7 @@
#if 0
/* pass open firmware flat tree */
#define CONFIG_OF_
FLAT_TREE
1
#define CONFIG_OF_
LIBFDT
1
#define CONFIG_OF_BOARD_SETUP 1
#define OF_CPU "PowerPC,5200@0"
...
...
include/configs/motionpro.h
浏览文件 @
bf72a4ca
...
...
@@ -417,7 +417,7 @@ extern void __led_set(led_id_t id, int state);
#define CFG_RESET_ADDRESS 0xfff00100
/* pass open firmware flat tree */
#define CONFIG_OF_
FLAT_TREE
1
#define CONFIG_OF_
LIBFDT
1
#define CONFIG_OF_BOARD_SETUP 1
#define OF_CPU "PowerPC,5200@0"
...
...
include/libfdt.h
浏览文件 @
bf72a4ca
...
...
@@ -140,6 +140,8 @@ int fdt_setprop(void *fdt, int nodeoffset, const char *name,
})
#define fdt_setprop_string(fdt, nodeoffset, name, str) \
fdt_setprop((fdt), (nodeoffset), (name), (str), strlen(str)+1)
int
fdt_find_and_setprop
(
void
*
fdt
,
const
char
*
node
,
const
char
*
prop
,
const
void
*
val
,
int
len
,
int
create
);
int
fdt_delprop
(
void
*
fdt
,
int
nodeoffset
,
const
char
*
name
);
int
fdt_add_subnode_namelen
(
void
*
fdt
,
int
parentoffset
,
const
char
*
name
,
int
namelen
);
...
...
libfdt/fdt_rw.c
浏览文件 @
bf72a4ca
...
...
@@ -188,6 +188,32 @@ int fdt_setprop(void *fdt, int nodeoffset, const char *name,
return
0
;
}
/**
* fdt_find_and_setprop: Find a node and set it's property
*
* @fdt: ptr to device tree
* @node: path of node
* @prop: property name
* @val: ptr to new value
* @len: length of new property value
* @create: flag to create the property if it doesn't exist
*
* Convenience function to directly set a property given the path to the node.
*/
int
fdt_find_and_setprop
(
void
*
fdt
,
const
char
*
node
,
const
char
*
prop
,
const
void
*
val
,
int
len
,
int
create
)
{
int
nodeoff
=
fdt_find_node_by_path
(
fdt
,
node
);
if
(
nodeoff
<
0
)
return
nodeoff
;
if
((
!
create
)
&&
(
fdt_get_property
(
fdt
,
nodeoff
,
prop
,
0
)
==
NULL
))
return
0
;
/* create flag not set; so exit quietly */
return
fdt_setprop
(
fdt
,
nodeoff
,
prop
,
val
,
len
);
}
int
fdt_delprop
(
void
*
fdt
,
int
nodeoffset
,
const
char
*
name
)
{
struct
fdt_property
*
prop
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录