mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-25 05:04:23 +08:00
keymile, common: add setting of some environment variables
This patch adds last_stage_init to all keymile boards. And in the last stage init some environment variables for u-boot were set. Currently these are pnvramaddr, pram and var address. Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Signed-off-by: Heiko Schocher <hs@denx.de> Acked-by: Kim Phillips <kim.phillips@freescale.com> cc: Valentin Longchamp <valentin.longchamp@keymile.com> cc: Wolfgang Denk <wd@denx.de> cc: Kim Phillips <kim.phillips@freescale.com>
This commit is contained in:
parent
0d01520200
commit
f1fef1d8a1
@ -42,6 +42,7 @@
|
||||
|
||||
static void i2c_write_start_seq(void);
|
||||
static int i2c_make_abort(void);
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
int ivm_calc_crc(unsigned char *buf, int len)
|
||||
{
|
||||
@ -73,6 +74,41 @@ int ivm_calc_crc(unsigned char *buf, int len)
|
||||
return crc;
|
||||
}
|
||||
|
||||
/*
|
||||
* Set Keymile specific environment variables
|
||||
* Currently only some memory layout variables are calculated here
|
||||
* ... ------------------------------------------------
|
||||
* ... |@rootfsaddr |@pnvramaddr |@varaddr |@reserved |@END_OF_RAM
|
||||
* ... |<------------------- pram ------------------->|
|
||||
* ... ------------------------------------------------
|
||||
* @END_OF_RAM: denotes the RAM size
|
||||
* @pnvramaddr: Startadress of pseudo non volatile RAM in hex
|
||||
* @pram : preserved ram size in k
|
||||
* @varaddr : startadress for /var mounted into RAM
|
||||
*/
|
||||
int set_km_env(void)
|
||||
{
|
||||
uchar buf[32];
|
||||
unsigned int pnvramaddr;
|
||||
unsigned int pram;
|
||||
unsigned int varaddr;
|
||||
|
||||
pnvramaddr = gd->ram_size - CONFIG_KM_RESERVED_PRAM - CONFIG_KM_PHRAM
|
||||
- CONFIG_KM_PNVRAM;
|
||||
sprintf((char *)buf, "0x%x", pnvramaddr);
|
||||
setenv("pnvramaddr", (char *)buf);
|
||||
|
||||
pram = (CONFIG_KM_RESERVED_PRAM + CONFIG_KM_PHRAM + CONFIG_KM_PNVRAM) /
|
||||
0x400;
|
||||
sprintf((char *)buf, "0x%x", pram);
|
||||
setenv("pram", (char *)buf);
|
||||
|
||||
varaddr = gd->ram_size - CONFIG_KM_RESERVED_PRAM - CONFIG_KM_PHRAM;
|
||||
sprintf((char *)buf, "0x%x", varaddr);
|
||||
setenv("varaddr", (char *)buf);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ivm_set_value(char *name, char *value)
|
||||
{
|
||||
char tempbuf[256];
|
||||
|
@ -50,6 +50,7 @@ int ivm_read_eeprom(void);
|
||||
int keymile_hdlc_enet_initialize(bd_t *bis);
|
||||
#endif
|
||||
|
||||
int set_km_env(void);
|
||||
int fdt_set_node_and_value(void *blob,
|
||||
char *nodename,
|
||||
char *regname,
|
||||
|
@ -190,6 +190,12 @@ int misc_init_r(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int last_stage_init(void)
|
||||
{
|
||||
set_km_env();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int fixed_sdram(void)
|
||||
{
|
||||
immap_t *im = (immap_t *)CONFIG_SYS_IMMR;
|
||||
|
@ -212,6 +212,12 @@ int board_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int last_stage_init(void)
|
||||
{
|
||||
set_km_env();
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_CMD_SF)
|
||||
int do_spi_toggle(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
{
|
||||
|
@ -310,6 +310,7 @@ int last_stage_init(void)
|
||||
puts("DIP: Enabled\n");
|
||||
setenv("actual_bank", "0");
|
||||
}
|
||||
set_km_env();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -26,6 +26,9 @@
|
||||
|
||||
/* Do boardspecific init for all boards */
|
||||
#define CONFIG_BOARD_EARLY_INIT_R
|
||||
#define CONFIG_LAST_STAGE_INIT
|
||||
|
||||
#define CONFIG_BOOTCOUNT_LIMIT
|
||||
|
||||
/*
|
||||
* By default kwbimage.cfg from board specific folder is used
|
||||
|
@ -254,4 +254,11 @@ int get_scl (void);
|
||||
#define CONFIG_SYS_INIT_SP_ADDR 0xC8012000
|
||||
/* Do early setups now in board_init_f() */
|
||||
#define CONFIG_BOARD_EARLY_INIT_F
|
||||
|
||||
/*
|
||||
* resereved pram area at the end of memroy [hex]
|
||||
* 8Mbytes for switch + 4Kbytes for bootcount
|
||||
*/
|
||||
#define CONFIG_KM_RESERVED_PRAM 0x801000
|
||||
|
||||
#endif /* _CONFIG_KM_ARM_H */
|
||||
|
@ -61,8 +61,6 @@
|
||||
/* include further common stuff for all keymile 82xx boards */
|
||||
#include "km82xx-common.h"
|
||||
|
||||
/* enable last_stage_init */
|
||||
#define CONFIG_LAST_STAGE_INIT 1
|
||||
/* bfticu address */
|
||||
#define CONFIG_SYS_BFTICU_BASE 0x40000000
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user