diff options
author | Tim Harvey <tharvey@gateworks.com> | 2016-07-15 07:14:25 -0700 |
---|---|---|
committer | Stefano Babic <sbabic@denx.de> | 2016-07-28 13:27:18 +0200 |
commit | 5911c0924f403561d8f1f2f437fd9a6efc5ad82a (patch) | |
tree | 5a1c3b820152a2d3ccd65a1ae8948950687069cb /board/gateworks | |
parent | e86b7adfa3cfe8d87ecb67bc0f02789c51293f51 (diff) | |
download | u-boot-5911c0924f403561d8f1f2f437fd9a6efc5ad82a.tar.gz u-boot-5911c0924f403561d8f1f2f437fd9a6efc5ad82a.tar.bz2 u-boot-5911c0924f403561d8f1f2f437fd9a6efc5ad82a.zip |
imx: ventana: make hwconfig initialize based on board configuration
The hwconfig env var allows user to control hardware specific configuration
of board specific features but not all Ventana boards have the same features.
We will use the magic default value of "_UNKNOWN_" to signify that the
bootloader should create this based on detected board model.
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Diffstat (limited to 'board/gateworks')
-rw-r--r-- | board/gateworks/gw_ventana/gw_ventana.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/board/gateworks/gw_ventana/gw_ventana.c b/board/gateworks/gw_ventana/gw_ventana.c index 930cec8c5a..588ea85b9d 100644 --- a/board/gateworks/gw_ventana/gw_ventana.c +++ b/board/gateworks/gw_ventana/gw_ventana.c @@ -700,13 +700,14 @@ static const struct boot_mode board_boot_modes[] = { int misc_init_r(void) { struct ventana_board_info *info = &ventana_info; + char buf[256]; + int i; /* set env vars based on EEPROM data */ if (ventana_info.model[0]) { char str[16], fdt[36]; char *p; const char *cputype = ""; - int i; /* * FDT name will be prefixed with CPU type. Three versions @@ -769,6 +770,19 @@ int misc_init_r(void) setenv("mem_mb", str); } + /* Set a non-initialized hwconfig based on board configuration */ + if (!strcmp(getenv("hwconfig"), "_UNKNOWN_")) { + sprintf(buf, "hwconfig="); + if (gpio_cfg[board_type].rs232_en) + strcat(buf, "rs232;"); + for (i = 0; i < gpio_cfg[board_type].dio_num; i++) { + char buf1[32]; + sprintf(buf1, "dio%d:mode=gpio;", i); + if (strlen(buf) + strlen(buf1) < sizeof(buf)) + strcat(buf, buf1); + } + setenv("hwconfig", buf); + } /* setup baseboard specific GPIO based on board and env */ setup_board_gpio(board_type, info); |