From ff464e70471c7846bd9332c2899682233a5a07aa Mon Sep 17 00:00:00 2001 From: Marcel Ziswiler Date: Tue, 28 Apr 2015 02:07:36 +0200 Subject: colibri_t20: migrate Migrate Colibri T20 to U-Boot 2016.11. (cherry picked from commit 92d747bf338ceb8d6dbdd3e5e5f7f72226ce0792) --- board/toradex/colibri_t20/Makefile | 7 ++-- board/toradex/colibri_t20/colibri_t20.c | 62 +++++++++++++++++++++++++++++++-- 2 files changed, 61 insertions(+), 8 deletions(-) (limited to 'board') 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; } -- cgit v1.2.3