mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-26 07:17:10 +00:00
board: asus: transformer: add ASUS Transformer Pad TF701T support
The ASUS Transformer Pad TF701T is an Android tablet computer made by ASUS, successor to the ASUS Transformer Pad Infinity. The tablet includes a Tegra 4 T114 processor clocked at 1.9 GHz, and an upgraded 2560×1600 pixel resolution screen, increasing the pixel density to 300 PPI and a mobile dock. Transformers (t114) board derives from Nvidia Macallan development board. Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
This commit is contained in:
parent
69dffab941
commit
00d4996a82
13 changed files with 1582 additions and 0 deletions
|
@ -118,6 +118,7 @@ dtb-$(CONFIG_ARCH_TEGRA) += \
|
||||||
tegra30-ouya.dtb \
|
tegra30-ouya.dtb \
|
||||||
tegra30-tec-ng.dtb \
|
tegra30-tec-ng.dtb \
|
||||||
tegra30-wexler-qc750.dtb \
|
tegra30-wexler-qc750.dtb \
|
||||||
|
tegra114-asus-tf701t.dtb \
|
||||||
tegra114-dalmore.dtb \
|
tegra114-dalmore.dtb \
|
||||||
tegra124-apalis.dtb \
|
tegra124-apalis.dtb \
|
||||||
tegra124-jetson-tk1.dtb \
|
tegra124-jetson-tk1.dtb \
|
||||||
|
|
1245
arch/arm/dts/tegra114-asus-tf701t.dts
Normal file
1245
arch/arm/dts/tegra114-asus-tf701t.dts
Normal file
File diff suppressed because it is too large
Load diff
|
@ -8,11 +8,16 @@ config TARGET_DALMORE
|
||||||
bool "NVIDIA Tegra114 Dalmore evaluation board"
|
bool "NVIDIA Tegra114 Dalmore evaluation board"
|
||||||
select BOARD_LATE_INIT
|
select BOARD_LATE_INIT
|
||||||
|
|
||||||
|
config TARGET_TRANSFORMER_T114
|
||||||
|
bool "ASUS Tegra114 Transformer board"
|
||||||
|
select BOARD_LATE_INIT
|
||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
config SYS_SOC
|
config SYS_SOC
|
||||||
default "tegra114"
|
default "tegra114"
|
||||||
|
|
||||||
source "board/nvidia/dalmore/Kconfig"
|
source "board/nvidia/dalmore/Kconfig"
|
||||||
|
source "board/asus/transformer-t114/Kconfig"
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
16
board/asus/transformer-t114/Kconfig
Normal file
16
board/asus/transformer-t114/Kconfig
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
if TARGET_TRANSFORMER_T114
|
||||||
|
|
||||||
|
config SYS_BOARD
|
||||||
|
default "transformer-t114"
|
||||||
|
|
||||||
|
config SYS_VENDOR
|
||||||
|
default "asus"
|
||||||
|
|
||||||
|
config SYS_CONFIG_NAME
|
||||||
|
default "transformer-t114"
|
||||||
|
|
||||||
|
config TEGRA_BOARD_STRING
|
||||||
|
string "Default Tegra board name"
|
||||||
|
default "ASUS Transformer T114"
|
||||||
|
|
||||||
|
endif
|
8
board/asus/transformer-t114/MAINTAINERS
Normal file
8
board/asus/transformer-t114/MAINTAINERS
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
TRANSFORMER T114 BOARD
|
||||||
|
M: Svyatoslav Ryhel <clamor95@gmail.com>
|
||||||
|
S: Maintained
|
||||||
|
F: arch/arm/dts/tegra114-asus-tf701t.dts
|
||||||
|
F: board/asus/transformer-t114/
|
||||||
|
F: configs/tf701t_defconfig
|
||||||
|
F: doc/board/asus/transformer_t114.rst
|
||||||
|
F: include/configs/transformer-t114.h
|
10
board/asus/transformer-t114/Makefile
Normal file
10
board/asus/transformer-t114/Makefile
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# SPDX-License-Identifier: GPL-2.0+
|
||||||
|
#
|
||||||
|
# Copyright (c) 2010-2013, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
#
|
||||||
|
# Copyright (c) 2023, Svyatoslav Ryhel <clamor95@gmail.com>
|
||||||
|
#
|
||||||
|
|
||||||
|
obj-$(CONFIG_XPL_BUILD) += transformer-t114-spl.o
|
||||||
|
|
||||||
|
obj-y += transformer-t114.o
|
42
board/asus/transformer-t114/transformer-t114-spl.c
Normal file
42
board/asus/transformer-t114/transformer-t114-spl.c
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* T114 Transformers SPL stage configuration
|
||||||
|
*
|
||||||
|
* (C) Copyright 2010-2013
|
||||||
|
* NVIDIA Corporation <www.nvidia.com>
|
||||||
|
*
|
||||||
|
* (C) Copyright 2023
|
||||||
|
* Svyatoslav Ryhel <clamor95@gmail.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <asm/arch/tegra.h>
|
||||||
|
#include <asm/arch-tegra/tegra_i2c.h>
|
||||||
|
#include <linux/delay.h>
|
||||||
|
|
||||||
|
#define TPS65913_I2C_ADDR (0x58 << 1)
|
||||||
|
|
||||||
|
#define TPS65913_SMPS12_CTRL 0x20
|
||||||
|
#define TPS65913_SMPS12_VOLTAGE 0x23
|
||||||
|
#define TPS65913_SMPS45_CTRL 0x28
|
||||||
|
#define TPS65913_SMPS45_VOLTAGE 0x2B
|
||||||
|
|
||||||
|
#define TPS65913_SMPS12_CTRL_DATA (0x5100 | TPS65913_SMPS12_CTRL)
|
||||||
|
#define TPS65913_SMPS12_VOLTAGE_DATA (0x3900 | TPS65913_SMPS12_VOLTAGE)
|
||||||
|
#define TPS65913_SMPS45_CTRL_DATA (0x5100 | TPS65913_SMPS45_CTRL)
|
||||||
|
#define TPS65913_SMPS45_VOLTAGE_DATA (0x4c00 | TPS65913_SMPS45_VOLTAGE)
|
||||||
|
|
||||||
|
void pmic_enable_cpu_vdd(void)
|
||||||
|
{
|
||||||
|
/* Set CORE VDD to 1.200V. */
|
||||||
|
tegra_i2c_ll_write(TPS65913_I2C_ADDR, TPS65913_SMPS45_VOLTAGE_DATA);
|
||||||
|
udelay(1000);
|
||||||
|
tegra_i2c_ll_write(TPS65913_I2C_ADDR, TPS65913_SMPS45_CTRL_DATA);
|
||||||
|
|
||||||
|
udelay(1000);
|
||||||
|
|
||||||
|
/* Set CPU VDD to 1.0125V. */
|
||||||
|
tegra_i2c_ll_write(TPS65913_I2C_ADDR, TPS65913_SMPS12_VOLTAGE_DATA);
|
||||||
|
udelay(1000);
|
||||||
|
tegra_i2c_ll_write(TPS65913_I2C_ADDR, TPS65913_SMPS12_CTRL_DATA);
|
||||||
|
udelay(10 * 1000);
|
||||||
|
}
|
57
board/asus/transformer-t114/transformer-t114.c
Normal file
57
board/asus/transformer-t114/transformer-t114.c
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* (C) Copyright 2010-2013
|
||||||
|
* NVIDIA Corporation <www.nvidia.com>
|
||||||
|
*
|
||||||
|
* (C) Copyright 2023
|
||||||
|
* Svyatoslav Ryhel <clamor95@gmail.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* T114 Transformers derive from Macallan board */
|
||||||
|
|
||||||
|
#include <dm.h>
|
||||||
|
#include <fdt_support.h>
|
||||||
|
#include <i2c.h>
|
||||||
|
#include <log.h>
|
||||||
|
|
||||||
|
#ifdef CONFIG_MMC_SDHCI_TEGRA
|
||||||
|
|
||||||
|
#define TPS65913_I2C_ADDRESS 0x58
|
||||||
|
#define TPS65913_PRIMARY_SECONDARY_PAD2 0xfb
|
||||||
|
#define GPIO_4 BIT(0)
|
||||||
|
#define TPS65913_PRIMARY_SECONDARY_PAD3 0xfe
|
||||||
|
#define DVFS2 BIT(1)
|
||||||
|
#define DVFS1 BIT(0)
|
||||||
|
|
||||||
|
/* We are using this function only till palmas pinctrl driver is available */
|
||||||
|
void pin_mux_mmc(void)
|
||||||
|
{
|
||||||
|
struct udevice *dev;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = i2c_get_chip_for_busnum(0, TPS65913_I2C_ADDRESS, 1, &dev);
|
||||||
|
if (ret) {
|
||||||
|
log_debug("%s: cannot find PMIC I2C chip\n", __func__);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* GPIO4 function has to be GPIO */
|
||||||
|
dm_i2c_reg_clrset(dev, TPS65913_PRIMARY_SECONDARY_PAD2,
|
||||||
|
GPIO_4, 0);
|
||||||
|
|
||||||
|
/* DVFS1 is enabled, DVFS2 is disabled */
|
||||||
|
dm_i2c_reg_clrset(dev, TPS65913_PRIMARY_SECONDARY_PAD3,
|
||||||
|
DVFS2 | DVFS1, DVFS1);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
|
||||||
|
int ft_board_setup(void *blob, struct bd_info *bd)
|
||||||
|
{
|
||||||
|
/* Remove TrustZone nodes */
|
||||||
|
fdt_del_node_and_alias(blob, "/firmware");
|
||||||
|
fdt_del_node_and_alias(blob, "/reserved-memory/trustzone@bfe00000");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
15
board/asus/transformer-t114/transformer-t114.env
Normal file
15
board/asus/transformer-t114/transformer-t114.env
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
button_cmd_0_name=Volume Down
|
||||||
|
button_cmd_0=bootmenu
|
||||||
|
button_cmd_1_name=Hall Sensor
|
||||||
|
button_cmd_1=poweroff
|
||||||
|
|
||||||
|
fastboot_partition_alias_boot=CAC
|
||||||
|
fastboot_partition_alias_root=UDA
|
||||||
|
|
||||||
|
bootmenu_0=mount internal storage=usb start && ums 0 mmc 0:e; bootmenu
|
||||||
|
bootmenu_1=mount external storage=usb start && ums 0 mmc 1; bootmenu
|
||||||
|
bootmenu_2=fastboot=echo Starting Fastboot protocol ...; fastboot usb 0; bootmenu
|
||||||
|
bootmenu_3=reboot RCM=enterrcm
|
||||||
|
bootmenu_4=reboot=reset
|
||||||
|
bootmenu_5=power off=poweroff
|
||||||
|
bootmenu_delay=-1
|
89
configs/tf701t_defconfig
Normal file
89
configs/tf701t_defconfig
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
CONFIG_ARM=y
|
||||||
|
CONFIG_ARCH_TEGRA=y
|
||||||
|
CONFIG_SUPPORT_PASSING_ATAGS=y
|
||||||
|
CONFIG_CMDLINE_TAG=y
|
||||||
|
CONFIG_INITRD_TAG=y
|
||||||
|
CONFIG_TEXT_BASE=0x80110000
|
||||||
|
CONFIG_SYS_MALLOC_LEN=0x2500000
|
||||||
|
CONFIG_NR_DRAM_BANKS=2
|
||||||
|
CONFIG_ENV_SOURCE_FILE="transformer-t114"
|
||||||
|
CONFIG_ENV_SIZE=0x3000
|
||||||
|
CONFIG_ENV_OFFSET=0xFFFFD000
|
||||||
|
CONFIG_DEFAULT_DEVICE_TREE="tegra114-asus-tf701t"
|
||||||
|
CONFIG_SPL_STACK=0x800ffffc
|
||||||
|
CONFIG_SPL_TEXT_BASE=0x80108000
|
||||||
|
CONFIG_SYS_LOAD_ADDR=0x82000000
|
||||||
|
CONFIG_TEGRA114=y
|
||||||
|
CONFIG_TARGET_TRANSFORMER_T114=y
|
||||||
|
CONFIG_TEGRA_ENABLE_UARTD=y
|
||||||
|
CONFIG_BUTTON_CMD=y
|
||||||
|
CONFIG_BOOTDELAY=0
|
||||||
|
CONFIG_AUTOBOOT_KEYED=y
|
||||||
|
CONFIG_AUTOBOOT_KEYED_CTRLC=y
|
||||||
|
CONFIG_OF_BOARD_SETUP=y
|
||||||
|
CONFIG_OF_SYSTEM_SETUP=y
|
||||||
|
CONFIG_BOOTCOMMAND="bootflow scan; echo 'Boot configuration not found... Power off in 3 sec'; sleep 3; poweroff"
|
||||||
|
CONFIG_SYS_PBSIZE=2086
|
||||||
|
CONFIG_SPL_FOOTPRINT_LIMIT=y
|
||||||
|
CONFIG_SPL_MAX_FOOTPRINT=0x8000
|
||||||
|
# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
|
||||||
|
CONFIG_SPL_HAVE_INIT_STACK=y
|
||||||
|
CONFIG_SPL_SYS_MALLOC=y
|
||||||
|
CONFIG_SPL_HAS_CUSTOM_MALLOC_START=y
|
||||||
|
CONFIG_SPL_CUSTOM_SYS_MALLOC_ADDR=0x80090000
|
||||||
|
CONFIG_SPL_SYS_MALLOC_SIZE=0x10000
|
||||||
|
CONFIG_SYS_PROMPT="Tegra114 (Transformer) # "
|
||||||
|
# CONFIG_CMD_BOOTEFI_BOOTMGR is not set
|
||||||
|
CONFIG_CMD_BOOTMENU=y
|
||||||
|
# CONFIG_CMD_IMI is not set
|
||||||
|
CONFIG_CMD_GPIO=y
|
||||||
|
CONFIG_CMD_I2C=y
|
||||||
|
CONFIG_CMD_MMC=y
|
||||||
|
CONFIG_CMD_POWEROFF=y
|
||||||
|
CONFIG_CMD_USB=y
|
||||||
|
CONFIG_CMD_USB_MASS_STORAGE=y
|
||||||
|
CONFIG_CMD_UMS_ABORT_KEYED=y
|
||||||
|
# CONFIG_CMD_SETEXPR is not set
|
||||||
|
CONFIG_CMD_PAUSE=y
|
||||||
|
CONFIG_CMD_REGULATOR=y
|
||||||
|
CONFIG_CMD_EXT4_WRITE=y
|
||||||
|
CONFIG_TEGRA_PARTITION=y
|
||||||
|
# CONFIG_SPL_DOS_PARTITION is not set
|
||||||
|
# CONFIG_SPL_EFI_PARTITION is not set
|
||||||
|
CONFIG_ENV_OVERWRITE=y
|
||||||
|
CONFIG_ENV_IS_IN_MMC=y
|
||||||
|
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||||
|
CONFIG_SYS_MMC_ENV_PART=2
|
||||||
|
CONFIG_BUTTON=y
|
||||||
|
CONFIG_USB_FUNCTION_FASTBOOT=y
|
||||||
|
CONFIG_FASTBOOT_BUF_ADDR=0x91000000
|
||||||
|
CONFIG_FASTBOOT_BUF_SIZE=0x10000000
|
||||||
|
CONFIG_FASTBOOT_FLASH=y
|
||||||
|
CONFIG_FASTBOOT_FLASH_MMC_DEV=0
|
||||||
|
CONFIG_PALMAS_GPIO=y
|
||||||
|
CONFIG_SYS_I2C_TEGRA=y
|
||||||
|
CONFIG_BUTTON_KEYBOARD=y
|
||||||
|
CONFIG_DM_PMIC=y
|
||||||
|
CONFIG_PMIC_PALMAS=y
|
||||||
|
CONFIG_DM_REGULATOR=y
|
||||||
|
CONFIG_DM_REGULATOR_FIXED=y
|
||||||
|
CONFIG_DM_REGULATOR_PALMAS=y
|
||||||
|
CONFIG_PWM_TEGRA=y
|
||||||
|
CONFIG_SYS_NS16550=y
|
||||||
|
CONFIG_SYSRESET_PALMAS=y
|
||||||
|
CONFIG_USB=y
|
||||||
|
CONFIG_USB_EHCI_HCD=y
|
||||||
|
CONFIG_USB_EHCI_TEGRA=y
|
||||||
|
CONFIG_USB_KEYBOARD=y
|
||||||
|
CONFIG_USB_GADGET=y
|
||||||
|
CONFIG_USB_GADGET_MANUFACTURER="ASUS"
|
||||||
|
CONFIG_USB_GADGET_VENDOR_NUM=0x0b05
|
||||||
|
CONFIG_USB_GADGET_PRODUCT_NUM=0x4daf
|
||||||
|
CONFIG_CI_UDC=y
|
||||||
|
CONFIG_VIDEO=y
|
||||||
|
# CONFIG_VIDEO_FONT_8X16 is not set
|
||||||
|
CONFIG_VIDEO_FONT_16X32=y
|
||||||
|
# CONFIG_VIDEO_LOGO is not set
|
||||||
|
CONFIG_VIDEO_LCD_SHARP_LQ101R1SX01=y
|
||||||
|
CONFIG_VIDEO_BRIDGE=y
|
||||||
|
CONFIG_VIDEO_DSI_TEGRA=y
|
|
@ -9,3 +9,4 @@ ASUS
|
||||||
grouper
|
grouper
|
||||||
transformer_t20
|
transformer_t20
|
||||||
transformer_t30
|
transformer_t30
|
||||||
|
transformer_t114
|
||||||
|
|
74
doc/board/asus/transformer_t114.rst
Normal file
74
doc/board/asus/transformer_t114.rst
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
.. SPDX-License-Identifier: GPL-2.0+
|
||||||
|
|
||||||
|
U-Boot for the ASUS Transformer device family
|
||||||
|
=============================================
|
||||||
|
|
||||||
|
Quick Start
|
||||||
|
-----------
|
||||||
|
|
||||||
|
- Build U-Boot
|
||||||
|
- Boot U-Boot by loading it into RAM (coldboot)
|
||||||
|
- Chainloading U-Boot from the vendor bootloader
|
||||||
|
- Boot
|
||||||
|
|
||||||
|
Build U-Boot
|
||||||
|
------------
|
||||||
|
|
||||||
|
U-Boot can be built in two forms: U-Boot with SPL, which is used for booting
|
||||||
|
by loading directly into RAM and U-Boot without SPL, which can be flashed
|
||||||
|
and chainloaded from the vendor bootloader.
|
||||||
|
|
||||||
|
To build U-Boot with SPL proseed:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ export CROSS_COMPILE=arm-none-eabi-
|
||||||
|
$ make tf701t_defconfig
|
||||||
|
$ make
|
||||||
|
|
||||||
|
After the build succeeds, you will obtain the final ``u-boot-dtb-tegra.bin``
|
||||||
|
file, ready for cold booting by loading into RAM.
|
||||||
|
|
||||||
|
To build U-Boot without SPL adjust tf701t_defconfig:
|
||||||
|
|
||||||
|
.. code-block::
|
||||||
|
|
||||||
|
CONFIG_TEXT_BASE=0x80A00000
|
||||||
|
CONFIG_SKIP_LOWLEVEL_INIT=y
|
||||||
|
# CONFIG_OF_BOARD_SETUP is not set
|
||||||
|
CONFIG_TEGRA_SUPPORT_NON_SECURE=y
|
||||||
|
|
||||||
|
After the build succeeds, you will obtain the final ``u-boot-dtb.bin`` file,
|
||||||
|
ready for booting with fastboot boot or which can be further processed into
|
||||||
|
a flashable boot.img.
|
||||||
|
|
||||||
|
Boot U-Boot by loading it into RAM (coldboot)
|
||||||
|
---------------------------------------------
|
||||||
|
|
||||||
|
Done fairly simply by using fusee-tools (using run_bootloader.sh) and placing
|
||||||
|
``u-boot-dtb-tegra.bin`` generated on the previous step into fusee-tools dir.
|
||||||
|
This method requires constant access to the host PC or payloader and can fully
|
||||||
|
eliminate influence of the vendor bootloader onto the boot process.
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ ./run_bootloader.sh -s T114 -t ./bct/tf701t.bct
|
||||||
|
|
||||||
|
Chainloading U-Boot from the vendor bootloader
|
||||||
|
----------------------------------------------
|
||||||
|
|
||||||
|
``u-boot-dtb.bin`` has to be further packed into Android boot image form,
|
||||||
|
where ``u-boot-dtb.bin`` acts as kernel, while dtb and ramdisk parts should
|
||||||
|
not be included. Then the generated boot image can be flashed into the /boot
|
||||||
|
partition of the tablet using vendor bootloader's fastboot and will act as
|
||||||
|
the bootloader of the last stage.
|
||||||
|
|
||||||
|
Boot
|
||||||
|
----
|
||||||
|
In both cases after U-Boot obtains control it performs search of extlinux.conf
|
||||||
|
first on the dock USB device is available, then on MicroSD card if available
|
||||||
|
and lastly on eMMC. If none of the devices above are present, then the device
|
||||||
|
is turned off.
|
||||||
|
|
||||||
|
If during boot of U-Boot Volume Down button is pressed, the device will enter
|
||||||
|
U-Boot bootmenu.
|
19
include/configs/transformer-t114.h
Normal file
19
include/configs/transformer-t114.h
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0 */
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2010-2013, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
*
|
||||||
|
* Copyright (c) 2023, Svyatoslav Ryhel <clamor95@gmail.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __CONFIG_H
|
||||||
|
#define __CONFIG_H
|
||||||
|
|
||||||
|
#include "tegra114-common.h"
|
||||||
|
|
||||||
|
#ifdef CONFIG_TEGRA_SUPPORT_NON_SECURE
|
||||||
|
#define CFG_PRAM 0x20000 /* 128 MB */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "tegra-common-post.h"
|
||||||
|
|
||||||
|
#endif /* __CONFIG_H */
|
Loading…
Add table
Reference in a new issue