summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorMarcel Ziswiler <marcel.ziswiler@toradex.com>2015-04-28 02:07:36 +0200
committerMarcel Ziswiler <marcel.ziswiler@toradex.com>2017-01-11 21:27:14 +0100
commitff464e70471c7846bd9332c2899682233a5a07aa (patch)
tree896d9cf82e6f42f3a3cc7cd3d48adda40ead77b2 /board
parent89a14c2f11e3f3eb4fcc028c6864ed5fa8bae74b (diff)
colibri_t20: migrate
Migrate Colibri T20 to U-Boot 2016.11. (cherry picked from commit 92d747bf338ceb8d6dbdd3e5e5f7f72226ce0792)
Diffstat (limited to 'board')
-rw-r--r--board/toradex/colibri_t20/Makefile7
-rw-r--r--board/toradex/colibri_t20/colibri_t20.c62
2 files changed, 61 insertions, 8 deletions
diff --git a/board/toradex/colibri_t20/Makefile b/board/toradex/colibri_t20/Makefile
index e5e71ac466..e449e14e37 100644
--- a/board/toradex/colibri_t20/Makefile
+++ b/board/toradex/colibri_t20/Makefile
@@ -1,7 +1,4 @@
-#
-# (C) Copyright 2012 Lucas Stach
-#
-# SPDX-License-Identifier: GPL-2.0+
-#
+# Copyright (c) 2011-2016 Toradex, Inc.
+# SPDX-License-Identifier: GPL-2.0+
obj-y += colibri_t20.o
diff --git a/board/toradex/colibri_t20/colibri_t20.c b/board/toradex/colibri_t20/colibri_t20.c
index 4d298e69e6..14361a21dc 100644
--- a/board/toradex/colibri_t20/colibri_t20.c
+++ b/board/toradex/colibri_t20/colibri_t20.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012 Lucas Stach
+ * Copyright (c) 2011-2016 Toradex, Inc.
*
* SPDX-License-Identifier: GPL-2.0+
*/
@@ -25,6 +25,8 @@ DECLARE_GLOBAL_DATA_PTR;
#define PMU_SUPPLYENE_SYSINEN (1<<5)
#define PMU_SUPPLYENE_EXITSLREQ (1<<1)
+u32 get_board_rev(void);
+
int arch_misc_init(void)
{
/* Disable PMIC sleep mode on low supply voltage */
@@ -58,9 +60,63 @@ int arch_misc_init(void)
/* make sure SODIMM pin 87 nRESET_OUT is released properly */
pinmux_set_func(PMUX_PINGRP_ATA, PMUX_FUNC_GMI);
+ /* HW version */
+ if (!getenv("hw-version")) {
+ switch (get_board_rev()) {
+ case 0x011b:
+ case 0x011c:
+ setenv("hw-version", "v11");
+ break;
+ case 0x012a:
+ setenv("hw-version", "v12");
+ break;
+ default:
+ setenv("hw-version", (nand_info[0]->erasesize >> 10
+ == 512)?"v11":"v12");
+ }
+ }
+
+ /* Default memory arguments */
+ if (!getenv("memargs")) {
+ switch (gd->ram_size) {
+ case 0x10000000:
+ /* 256 MB */
+ setenv("memargs", "mem=148M@0M fbmem=12M@148M "
+ "nvmem=96M@160M");
+ setenv("ram-size", "256");
+ break;
+ case 0x20000000:
+ /* 512 MB */
+ setenv("memargs", "mem=372M@0M fbmem=12M@372M "
+ "nvmem=128M@384M");
+ setenv("ram-size", "512");
+ break;
+ default:
+ printf("Failed detecting RAM size.\n");
+ }
+ }
+
+ /* NAND parameters */
+ if (!getenv("leb-size")) {
+ switch (nand_info[0]->erasesize >> 10) {
+ case 256:
+ /* 256 KiB */
+ setenv("leb-size", "248KiB");
+ break;
+ case 512:
+ /* 512 KiB */
+ setenv("leb-size", "504KiB");
+ break;
+ default:
+ printf("Failed detecting NAND block erase size.\n");
+ }
+ }
+
if (readl(NV_PA_BASE_SRAM + NVBOOTINFOTABLE_BOOTTYPE) ==
- NVBOOTTYPE_RECOVERY)
- printf("USB recovery mode\n");
+ NVBOOTTYPE_RECOVERY) {
+ printf("USB recovery mode, disabled autoboot\n");
+ setenv("bootdelay", "-1");
+ }
return 0;
}