Added CONFIG_ options for bd_t and env in flat dev tree

CONFIG_OF_HAS_BD_T will put a copy of the bd_t
      into the resulting flat device tree.

      CONFIG_OF_HAS_UBOOT_ENV will copy the environment
      variables from u-boot into the flat device tree

Patch by Kumar Gala 11 Jan 2006
master
Kumar Gala 19 years ago
parent c7428d49ac
commit e4f880eddd
  1. 10
      CHANGELOG
  2. 10
      README
  3. 30
      common/ft_build.c
  4. 2
      include/configs/stxxtc.h

@ -2,6 +2,16 @@
Changes since U-Boot 1.1.4:
======================================================================
* Added CONFIG_ options for bd_t and env in flat dev tree
CONFIG_OF_HAS_BD_T will put a copy of the bd_t
into the resulting flat device tree.
CONFIG_OF_HAS_UBOOT_ENV will copy the environment
variables from u-boot into the flat device tree
Patch by Kumar Gala 11 Jan 2006
* Add support for 28F256J3A flah (=> 64 MB) on PM520 board
* Fix compiler problem with at91rm9200dk board.

@ -413,6 +413,16 @@ The following options need to be configured:
OF_CPU - The proper name of the cpus node.
OF_TBCLK - The timebase frequency.
CONFIG_OF_HAS_BD_T
The resulting flat device tree will have a copy of the bd_t.
Space should be pre-allocated in the dts for the bd_t.
CONFIG_OF_HAS_UBOOT_ENV
The resulting flat device tree will have a copy of u-boot's
environment variables
- Serial Ports:
CFG_PL010_SERIAL

@ -529,6 +529,7 @@ extern uchar(*env_get_char) (int);
#define BDM(x) { .name = #x, .offset = offsetof(bd_t, bi_ ##x ) }
#ifdef CONFIG_OF_HAS_BD_T
static const struct {
const char *name;
int offset;
@ -574,19 +575,24 @@ static const struct {
#endif
BDM(baudrate),
};
#endif
void ft_setup(void *blob, int size, bd_t * bd)
{
DECLARE_GLOBAL_DATA_PTR;
u8 *end;
u32 *p;
int len;
struct ft_cxt cxt;
int i, k, nxt;
static char tmpenv[256];
char *s, *lval, *rval;
ulong clock;
uint32_t v;
#if defined(CONFIG_OF_HAS_UBOOT_ENV)
int k, nxt;
#endif
#if defined(CONFIG_OF_HAS_BD_T)
u8 *end;
#endif
#if defined(CONFIG_OF_HAS_UBOOT_ENV) || defined(CONFIG_OF_HAS_BD_T)
int i;
static char tmpenv[256];
#endif
/* disable OF tree; booting old kernel */
if (getenv("disable_of") != NULL) {
@ -610,9 +616,12 @@ void ft_setup(void *blob, int size, bd_t * bd)
/* back into root */
ft_backtrack_node(&cxt);
#ifdef CONFIG_OF_HAS_UBOOT_ENV
ft_begin_node(&cxt, "u-boot-env");
for (i = 0; env_get_char(i) != '\0'; i = nxt + 1) {
char *s, *lval, *rval;
for (nxt = i; env_get_char(nxt) != '\0'; ++nxt) ;
s = tmpenv;
for (k = i; k < nxt && s < &tmpenv[sizeof(tmpenv) - 1]; ++k)
@ -629,6 +638,7 @@ void ft_setup(void *blob, int size, bd_t * bd)
}
ft_end_node(&cxt);
#endif
ft_begin_node(&cxt, "chosen");
@ -647,14 +657,19 @@ void ft_setup(void *blob, int size, bd_t * bd)
ft_dump_blob(blob);
*/
#ifdef CONFIG_OF_HAS_BD_T
/* paste the bd_t at the end of the flat tree */
end = (char *)blob +
be32_to_cpu(((struct boot_param_header *)blob)->totalsize);
memcpy(end, bd, sizeof(*bd));
#endif
#ifdef CONFIG_PPC
#ifdef CONFIG_OF_HAS_BD_T
for (i = 0; i < sizeof(bd_map)/sizeof(bd_map[0]); i++) {
uint32_t v;
sprintf(tmpenv, "/bd_t/%s", bd_map[i].name);
v = *(uint32_t *)((char *)bd + bd_map[i].offset);
@ -670,6 +685,7 @@ void ft_setup(void *blob, int size, bd_t * bd)
p = ft_get_prop(blob, "/bd_t/ethspeed", &len);
if (p != NULL)
*p = cpu_to_be32((uint32_t) bd->bi_ethspeed);
#endif
clock = bd->bi_intfreq;
p = ft_get_prop(blob, "/cpus/" OF_CPU "/clock-frequency", &len);
@ -680,7 +696,7 @@ void ft_setup(void *blob, int size, bd_t * bd)
clock = OF_TBCLK;
p = ft_get_prop(blob, "/cpus/" OF_CPU "/timebase-frequency", &len);
if (p != NULL)
*p = cpu_to_be32(OF_TBCLK);
*p = cpu_to_be32(clock);
#endif
#endif /* __powerpc__ */

@ -584,5 +584,7 @@ typedef unsigned int led_id_t;
#define OF_CPU "PowerPC,MPC870@0"
#define OF_TBCLK (MPC8XX_HZ / 16)
#define CONFIG_OF_HAS_BD_T 1
#define CONFIG_OF_HAS_UBOOT_ENV 1
#endif /* __CONFIG_H */

Loading…
Cancel
Save