diff options
author | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2015-04-18 02:19:33 +0200 |
---|---|---|
committer | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2015-04-18 02:36:07 +0200 |
commit | 81a38df0631cfa6b3a85c97e631abf73dc0a2226 (patch) | |
tree | 2afc049ea3dc36c17d51f1dda766a60dbaf4faa3 /board | |
parent | 81bfc51c3032d5ee4e52552ae261773f66acf3f9 (diff) |
apalis/colibri_t30: migrate
Migrate Apalis/Colibri T30 to U-Boot 2015.04.
Diffstat (limited to 'board')
-rw-r--r-- | board/toradex/apalis_t30/Kconfig | 16 | ||||
-rw-r--r-- | board/toradex/apalis_t30/Makefile | 2 | ||||
-rw-r--r-- | board/toradex/apalis_t30/apalis_t30.c | 79 | ||||
-rw-r--r-- | board/toradex/apalis_t30/pinmux-config-apalis_t30.h | 2 | ||||
-rw-r--r-- | board/toradex/colibri_t30/Kconfig | 16 | ||||
-rw-r--r-- | board/toradex/colibri_t30/Makefile | 2 | ||||
-rw-r--r-- | board/toradex/colibri_t30/colibri_t30.c | 60 | ||||
-rw-r--r-- | board/toradex/colibri_t30/pinmux-config-colibri_t30.h | 2 |
8 files changed, 167 insertions, 12 deletions
diff --git a/board/toradex/apalis_t30/Kconfig b/board/toradex/apalis_t30/Kconfig index f1dcda59275..1abcdf29f58 100644 --- a/board/toradex/apalis_t30/Kconfig +++ b/board/toradex/apalis_t30/Kconfig @@ -9,4 +9,20 @@ config SYS_VENDOR config SYS_CONFIG_NAME default "apalis_t30" +config TRDX_CFG_BLOCK + default y + +config TRDX_HAVE_MMC + default y + +config TRDX_CFG_BLOCK_DEV + default "0" + +config TRDX_CFG_BLOCK_PART + default "1" + +# Toradex Configblock in eMMC, at the end of 1st "boot sector" +config TRDX_CFG_BLOCK_OFFSET + default "-512" + endif diff --git a/board/toradex/apalis_t30/Makefile b/board/toradex/apalis_t30/Makefile index a968e6b79e4..d38872a71a2 100644 --- a/board/toradex/apalis_t30/Makefile +++ b/board/toradex/apalis_t30/Makefile @@ -1,4 +1,4 @@ -# Copyright (c) 2014 Marcel Ziswiler +# Copyright (c) 2012-2015 Toradex, Inc. # SPDX-License-Identifier: GPL-2.0+ include $(srctree)/board/nvidia/common/common.mk diff --git a/board/toradex/apalis_t30/apalis_t30.c b/board/toradex/apalis_t30/apalis_t30.c index 624421496a4..aedbbb43e63 100644 --- a/board/toradex/apalis_t30/apalis_t30.c +++ b/board/toradex/apalis_t30/apalis_t30.c @@ -1,23 +1,96 @@ /* - * (C) Copyright 2014 - * Marcel Ziswiler <marcel@ziswiler.com> + * Copyright (c) 2012-2015 Toradex, Inc. * * SPDX-License-Identifier: GPL-2.0+ */ #include <common.h> -#include <dm.h> #include <asm/arch/gp_padctrl.h> #include <asm/arch/pinmux.h> +#include <asm/arch-tegra/ap.h> +#include <asm/arch-tegra/tegra.h> #include <asm/gpio.h> +#include <asm/io.h> +#include <dm.h> +#include <g_dnl.h> #include <i2c.h> #include <netdev.h> #include "pinmux-config-apalis_t30.h" +#include "../common/configblock.h" + +DECLARE_GLOBAL_DATA_PTR; #define PMU_I2C_ADDRESS 0x2D #define MAX_I2C_RETRY 3 +int arch_misc_init(void) +{ + /* Default memory arguments */ + if (!getenv("memargs")) { + switch (gd->ram_size) { + case 0x40000000: + /* 1 GB */ + setenv("memargs", "vmalloc=128M mem=1012M@2048M " + "fbmem=12M@3060M"); + break; + case 0x7ff00000: + case 0x80000000: + /* 2 GB */ + setenv("memargs", "vmalloc=256M mem=2035M@2048M " + "fbmem=12M@4083M"); + break; + default: + printf("Failed detecting RAM size.\n"); + } + } + + if (readl(NV_PA_BASE_SRAM + NVBOOTINFOTABLE_BOOTTYPE) == + NVBOOTTYPE_RECOVERY) { + printf("USB recovery mode, disabled autoboot\n"); + setenv("bootdelay", "-1"); + } + + return 0; +} + +int checkboard(void) +{ +#ifdef CONFIG_TRDX_CFG_BLOCK + if (read_trdx_cfg_block()) + printf("Missing Toradex config block\n"); + else { + display_board_info(); + return 0; + } +#endif + printf("Model: Toradex Apalis T30 %dGB\n", (gd->ram_size == 0x40000000)?1:2); + + return 0; +} + +int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name) +{ + unsigned short prodnr = 0; + unsigned short usb_pid; + + get_board_product_number(&prodnr); + + put_unaligned(CONFIG_TRDX_VID, &dev->idVendor); + + if (prodnr != 31) + if (gd->ram_size == 0x40000000) + usb_pid = CONFIG_TRDX_PID_APALIS_T30_1G; + else + usb_pid = CONFIG_TRDX_PID_APALIS_T30_2G; + else + usb_pid = CONFIG_TRDX_PID_APALIS_T30_1G_IT; + + put_unaligned(usb_pid, &dev->idProduct); + + return 0; +} + /* * Routine: pinmux_init * Description: Do individual peripheral pinmux configs diff --git a/board/toradex/apalis_t30/pinmux-config-apalis_t30.h b/board/toradex/apalis_t30/pinmux-config-apalis_t30.h index c988d395c19..bc4094d69e9 100644 --- a/board/toradex/apalis_t30/pinmux-config-apalis_t30.h +++ b/board/toradex/apalis_t30/pinmux-config-apalis_t30.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Marcel Ziswiler + * Copyright (c) 2012-2015, Toradex, Inc. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, diff --git a/board/toradex/colibri_t30/Kconfig b/board/toradex/colibri_t30/Kconfig index 3e436a2d3fd..b2cce319a76 100644 --- a/board/toradex/colibri_t30/Kconfig +++ b/board/toradex/colibri_t30/Kconfig @@ -9,4 +9,20 @@ config SYS_VENDOR config SYS_CONFIG_NAME default "colibri_t30" +config TRDX_CFG_BLOCK + default y + +config TRDX_HAVE_MMC + default y + +config TRDX_CFG_BLOCK_DEV + default "0" + +config TRDX_CFG_BLOCK_PART + default "1" + +# Toradex Configblock in eMMC, at the end of 1st "boot sector" +config TRDX_CFG_BLOCK_OFFSET + default "-512" + endif diff --git a/board/toradex/colibri_t30/Makefile b/board/toradex/colibri_t30/Makefile index 3d58a4b2c1c..9f5c45ad5af 100644 --- a/board/toradex/colibri_t30/Makefile +++ b/board/toradex/colibri_t30/Makefile @@ -1,4 +1,4 @@ -# Copyright (c) 2013-2014 Stefan Agner +# Copyright (c) 2012-2015 Toradex, Inc. # SPDX-License-Identifier: GPL-2.0+ include $(srctree)/board/nvidia/common/common.mk diff --git a/board/toradex/colibri_t30/colibri_t30.c b/board/toradex/colibri_t30/colibri_t30.c index f4bc7d8728e..a7ce04b66f9 100644 --- a/board/toradex/colibri_t30/colibri_t30.c +++ b/board/toradex/colibri_t30/colibri_t30.c @@ -1,16 +1,66 @@ /* - * (C) Copyright 2014 - * Stefan Agner <stefan@agner.ch> + * Copyright (c) 2012-2015 Toradex, Inc. * * SPDX-License-Identifier: GPL-2.0+ */ #include <common.h> -#include <asm/arch/pinmux.h> #include <asm/arch/gp_padctrl.h> -#include "pinmux-config-colibri_t30.h" -#include <i2c.h> +#include <asm/arch/pinmux.h> +#include <asm/arch-tegra/ap.h> +#include <asm/arch-tegra/tegra.h> #include <asm/gpio.h> +#include <asm/io.h> +#include <g_dnl.h> +#include <i2c.h> + +#include "pinmux-config-colibri_t30.h" +#include "../common/configblock.h" + +int arch_misc_init(void) +{ + if (readl(NV_PA_BASE_SRAM + NVBOOTINFOTABLE_BOOTTYPE) == + NVBOOTTYPE_RECOVERY) { + printf("USB recovery mode, disabled autoboot\n"); + setenv("bootdelay", "-1"); + } + + return 0; +} + +int checkboard(void) +{ +#ifdef CONFIG_TRDX_CFG_BLOCK + if (read_trdx_cfg_block()) + printf("Missing Toradex config block\n"); + else { + display_board_info(); + return 0; + } +#endif + printf("Model: Toradex Colibri T30 1GB\n"); + + return 0; +} + +int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name) +{ + unsigned short prodnr = 0; + unsigned short usb_pid; + + get_board_product_number(&prodnr); + + put_unaligned(CONFIG_TRDX_VID, &dev->idVendor); + + if (prodnr != 30) + usb_pid = CONFIG_TRDX_PID_COLIBRI_T30; + else + usb_pid = CONFIG_TRDX_PID_COLIBRI_T30_IT; + + put_unaligned(usb_pid, &dev->idProduct); + + return 0; +} /* * Routine: pinmux_init diff --git a/board/toradex/colibri_t30/pinmux-config-colibri_t30.h b/board/toradex/colibri_t30/pinmux-config-colibri_t30.h index 4e73c0762e0..3f9e8038c62 100644 --- a/board/toradex/colibri_t30/pinmux-config-colibri_t30.h +++ b/board/toradex/colibri_t30/pinmux-config-colibri_t30.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2014, Stefan Agner + * Copyright (c) 2012-2015, Toradex, Inc. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, |