diff options
author | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2015-04-28 02:07:36 +0200 |
---|---|---|
committer | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2017-01-11 21:27:14 +0100 |
commit | ff464e70471c7846bd9332c2899682233a5a07aa (patch) | |
tree | 896d9cf82e6f42f3a3cc7cd3d48adda40ead77b2 /board | |
parent | 89a14c2f11e3f3eb4fcc028c6864ed5fa8bae74b (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/Makefile | 7 | ||||
-rw-r--r-- | board/toradex/colibri_t20/colibri_t20.c | 62 |
2 files changed, 61 insertions, 8 deletions
diff --git a/board/toradex/colibri_t20/Makefile b/board/toradex/colibri_t20/Makefile index e5e71ac466e..e449e14e37b 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 4d298e69e64..14361a21dc9 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; } |