mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-24 14:25:56 +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-tec-ng.dtb \
|
||||
tegra30-wexler-qc750.dtb \
|
||||
tegra114-asus-tf701t.dtb \
|
||||
tegra114-dalmore.dtb \
|
||||
tegra124-apalis.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"
|
||||
select BOARD_LATE_INIT
|
||||
|
||||
config TARGET_TRANSFORMER_T114
|
||||
bool "ASUS Tegra114 Transformer board"
|
||||
select BOARD_LATE_INIT
|
||||
|
||||
endchoice
|
||||
|
||||
config SYS_SOC
|
||||
default "tegra114"
|
||||
|
||||
source "board/nvidia/dalmore/Kconfig"
|
||||
source "board/asus/transformer-t114/Kconfig"
|
||||
|
||||
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
|
||||
transformer_t20
|
||||
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