Skip to content

Commit 878b3e4

Browse files
committed
asus: add transformer t20 board support
Board derives from Ventana board. Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
1 parent 1361d0a commit 878b3e4

File tree

9 files changed

+987
-0
lines changed

9 files changed

+987
-0
lines changed

arch/arm/dts/tegra20-asus-transformer.dtsi

Lines changed: 646 additions & 0 deletions
Large diffs are not rendered by default.

arch/arm/mach-tegra/tegra20/Kconfig

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ config TARGET_TEC
2828
bool "Avionic Design Tamonten Evaluation Carrier"
2929
select BOARD_LATE_INIT
3030

31+
config TARGET_TRANSFORMER_T20
32+
bool "Asus Tegra20 Transformer board"
33+
select BOARD_LATE_INIT
34+
3135
config TARGET_TRIMSLICE
3236
bool "Compulab TrimSlice board"
3337
select BOARD_LATE_INIT
@@ -45,6 +49,7 @@ endchoice
4549
config SYS_SOC
4650
default "tegra20"
4751

52+
source "board/asus/transformer-t20/Kconfig"
4853
source "board/nvidia/harmony/Kconfig"
4954
source "board/avionic-design/medcom-wide/Kconfig"
5055
source "board/compal/paz00/Kconfig"

board/asus/transformer-t20/Kconfig

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
if TARGET_TRANSFORMER_T20
2+
3+
config SYS_BOARD
4+
default "transformer-t20"
5+
6+
config SYS_VENDOR
7+
default "asus"
8+
9+
config SYS_CONFIG_NAME
10+
default "transformer-t20"
11+
12+
endif
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
TF101 BOARD
2+
M: Svyatoslav Ryhel <clamor95@gmail.com>
3+
S: Maintained
4+
F: board/asus/transformer-t20/
5+
F: include/configs/transformer-t20.h
6+
F: configs/transformer_t20_defconfig
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# SPDX-License-Identifier: GPL-2.0-or-later
2+
#
3+
# (C) Copyright 2010,2011
4+
# NVIDIA Corporation <www.nvidia.com>
5+
#
6+
# (C) Copyright 2021
7+
# Svyatoslav Ryhel <clamor95@gmail.com>
8+
9+
obj-y := transformer-t20.o
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
// SPDX-License-Identifier: GPL-2.0-or-later
2+
/*
3+
* (C) Copyright 2010,2011
4+
* NVIDIA Corporation <www.nvidia.com>
5+
*
6+
* (C) Copyright 2021
7+
* Svyatoslav Ryhel <clamor95@gmail.com>
8+
*/
9+
10+
/* T20 Transformers derive from Ventana board */
11+
12+
#include <common.h>
13+
#include <asm/io.h>
14+
#include <asm/mach-types.h>
15+
#include <asm/arch/tegra.h>
16+
#include <asm/arch-tegra/board.h>
17+
#include <asm/arch/clock.h>
18+
#include <asm/arch/funcmux.h>
19+
#include <asm/arch/gpio.h>
20+
#include <asm/arch/pinmux.h>
21+
#include <asm/gpio.h>
22+
23+
#ifdef CONFIG_MMC_SDHCI_TEGRA
24+
/*
25+
* Routine: pin_mux_mmc
26+
* Description: setup the pin muxes/tristate values for the SDMMC(s)
27+
*/
28+
void pin_mux_mmc(void)
29+
{
30+
funcmux_select(PERIPH_ID_SDMMC4, FUNCMUX_SDMMC4_ATB_GMA_GME_8_BIT);
31+
funcmux_select(PERIPH_ID_SDMMC3, FUNCMUX_SDMMC3_SDB_4BIT);
32+
33+
/* For power GPIO PI6 */
34+
pinmux_tristate_disable(PMUX_PINGRP_ATA);
35+
/* For CD GPIO PI5 */
36+
pinmux_tristate_disable(PMUX_PINGRP_ATC);
37+
}
38+
#endif
39+
40+
void pin_mux_usb(void)
41+
{
42+
/* For USB0's GPIO PD0. For now, since we have no pinmux in fdt */
43+
pinmux_tristate_disable(PMUX_PINGRP_SLXK);
44+
/* For USB1's ULPI signals */
45+
funcmux_select(PERIPH_ID_USB2, FUNCMUX_USB2_ULPI);
46+
pinmux_set_func(PMUX_PINGRP_CDEV2, PMUX_FUNC_PLLP_OUT4);
47+
pinmux_tristate_disable(PMUX_PINGRP_CDEV2);
48+
/* USB1 PHY reset GPIO */
49+
pinmux_tristate_disable(PMUX_PINGRP_UAC);
50+
}

configs/transformer_t20_defconfig

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
CONFIG_ARM=y
2+
CONFIG_SYS_L2CACHE_OFF=y
3+
CONFIG_ARCH_TEGRA=y
4+
CONFIG_SUPPORT_PASSING_ATAGS=y
5+
CONFIG_SETUP_MEMORY_TAGS=y
6+
CONFIG_CMDLINE_TAG=y
7+
CONFIG_INITRD_TAG=y
8+
CONFIG_SYS_TEXT_BASE=0x00110000
9+
CONFIG_NR_DRAM_BANKS=2
10+
CONFIG_ENV_SIZE=0x2000
11+
CONFIG_ENV_OFFSET=0xFFFFE000
12+
CONFIG_DEFAULT_DEVICE_TREE="tegra20-asus-transformer"
13+
CONFIG_SPL_TEXT_BASE=0x00108000
14+
CONFIG_TEGRA20=y
15+
CONFIG_TARGET_TRANSFORMER_T20=y
16+
CONFIG_SYS_LOAD_ADDR=0x1000000
17+
CONFIG_DEBUG_LL=y
18+
CONFIG_DEBUG_UART_PHYS=0x70006300
19+
CONFIG_OF_SYSTEM_SETUP=y
20+
CONFIG_BOOTDELAY=0
21+
CONFIG_AUTOBOOT_KEYED=y
22+
CONFIG_AUTOBOOT_KEYED_CTRLC=y
23+
CONFIG_SYS_STDIO_DEREGISTER=y
24+
CONFIG_SYS_PROMPT="Tegra20 (Transformer) # "
25+
CONFIG_CMD_BOOTMENU=y
26+
# CONFIG_CMD_IMI is not set
27+
CONFIG_CMD_GPIO=y
28+
CONFIG_CMD_MMC=y
29+
CONFIG_CMD_USB=y
30+
# CONFIG_CMD_SETEXPR is not set
31+
# CONFIG_CMD_NFS is not set
32+
CONFIG_CMD_FS_GENERIC=y
33+
CONFIG_CMD_EXT4_WRITE=y
34+
# CONFIG_SPL_DOS_PARTITION is not set
35+
# CONFIG_SPL_EFI_PARTITION is not set
36+
CONFIG_ENV_OVERWRITE=y
37+
CONFIG_ENV_IS_IN_MMC=y
38+
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
39+
CONFIG_SYS_MMC_ENV_PART=2
40+
CONFIG_SPL_DM=y
41+
CONFIG_GPIO_KEYS=y
42+
CONFIG_USB_FUNCTION_FASTBOOT=y
43+
CONFIG_FASTBOOT_BUF_ADDR=0x11000000
44+
CONFIG_FASTBOOT_BUF_SIZE=0x10000000
45+
CONFIG_FASTBOOT_FLASH=y
46+
CONFIG_FASTBOOT_FLASH_MMC=y
47+
CONFIG_FASTBOOT_FLASH_MMC_DEV=0
48+
CONFIG_SYS_I2C_TEGRA=y
49+
CONFIG_DM_PMIC=y
50+
CONFIG_DM_REGULATOR=y
51+
CONFIG_DM_REGULATOR_FIXED=y
52+
CONFIG_PWM_TEGRA=y
53+
CONFIG_SYS_NS16550=y
54+
CONFIG_USB=y
55+
CONFIG_USB_EHCI_HCD=y
56+
CONFIG_USB_EHCI_TEGRA=y
57+
CONFIG_USB_ULPI_VIEWPORT=y
58+
CONFIG_USB_ULPI=y
59+
CONFIG_USB_KEYBOARD=y
60+
CONFIG_USB_GADGET=y
61+
CONFIG_USB_GADGET_MANUFACTURER="ASUS"
62+
CONFIG_USB_GADGET_VENDOR_NUM=0x0b05
63+
CONFIG_CI_UDC=y
64+
CONFIG_DM_VIDEO=y
65+
# CONFIG_VIDEO_LOGO is not set
66+
# CONFIG_VIDEO_BPP8 is not set
67+
CONFIG_VIDEO_TEGRA20=y
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
/* SPDX-License-Identifier: GPL-2.0-or-later */
2+
/*
3+
* Copyright (c) 2022, Svyatoslav Ryhel <clamor95@gmail.com>.
4+
*/
5+
6+
#ifndef __TRANSFORMER_COMMON_H
7+
#define __TRANSFORMER_COMMON_H
8+
9+
/* High-level configuration options */
10+
#define CONFIG_TEGRA_BOARD_STRING "ASUS Transformer"
11+
12+
/*
13+
* SOS and LNX offset is relative to
14+
* mmcblk0 start on both t20 and t30
15+
*/
16+
17+
#define TRANSFORMER_T20_EMMC_LAYOUT \
18+
"ebt_offset_r=0x1C00\0" \
19+
"ebt_size=0x2000\0" \
20+
"sos_offset_r=0x1C00\0" \
21+
"sos_size=0x2800\0" \
22+
"lnx_offset_r=0x4400\0" \
23+
"lnx_size=0x4000\0"
24+
25+
#define TRANSFORMER_T30_EMMC_LAYOUT \
26+
"ebt_offset_r=0x1C00\0" \
27+
"ebt_size=0x4000\0" \
28+
"sos_offset_r=0x3C00\0" \
29+
"sos_size=0x4000\0" \
30+
"lnx_offset_r=0x7C00\0" \
31+
"lnx_size=0x4000\0"
32+
33+
#define TRANSFORMER_BOOTZ \
34+
"bootkernel=bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \
35+
"bootrdkernel=bootz ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}\0"
36+
37+
#define TRANSFORMER_BOOT_SCRIPT \
38+
"boot_script=echo Loading boot script;" \
39+
"if load mmc 0:5 ${scriptaddr} uboot-transformer.bcs;" \
40+
"then env import -t -r ${scriptaddr} ${filesize};" \
41+
"else echo Boot Configuration NOT FOUND!; fi;" \
42+
"echo Loading DTB;" \
43+
"load ${dev_type} ${mmcdev}:${mmcpart} ${fdt_addr_r} ${dtb_file};" \
44+
"echo Loading Kernel;" \
45+
"load ${dev_type} ${mmcdev}:${mmcpart} ${kernel_addr_r} ${kernel_file};" \
46+
"echo Loading Initramfs;" \
47+
"if load ${dev_type} ${mmcdev}:${mmcpart} ${ramdisk_addr_r} ${ramdisk_file};" \
48+
"then echo Booting Kernel;" \
49+
"run bootrdkernel;" \
50+
"else echo Booting Kernel;" \
51+
"run bootkernel; fi\0"
52+
53+
#define TRANSFORMER_BOOT_SOS \
54+
"boot_sos=echo Reading SOS partition;" \
55+
"mmc dev;" \
56+
"if mmc read ${kernel_addr_r} ${sos_offset_r} ${sos_size};" \
57+
"then echo Booting Kernel;" \
58+
"bootm ${kernel_addr_r};" \
59+
"else echo Reading SOS failed; fi\0"
60+
61+
#define TRANSFORMER_BOOT_LNX \
62+
"boot_lnx=echo Reading LNX partition;" \
63+
"mmc dev;" \
64+
"if mmc read ${kernel_addr_r} ${lnx_offset_r} ${lnx_size};" \
65+
"then echo Booting Kernel;" \
66+
"bootm ${kernel_addr_r};" \
67+
"else echo Reading LNX failed; fi\0"
68+
69+
#define TRANSFORMER_FLASH_UBOOT \
70+
"flash_uboot=echo Reading U-Boot binary;" \
71+
"if load mmc 1:1 ${kernel_addr_r} ${bootloader_file};" \
72+
"then echo Writing U-Boot into EBT;" \
73+
"mmc dev 0 1;" \
74+
"mmc write ${kernel_addr_r} ${ebt_offset_r} ${ebt_size};" \
75+
"else echo Reading U-Boot failed; fi\0"
76+
77+
#define TRANSFORMER_FLASH_SPI \
78+
"update_spi=sf probe 0:1;" \
79+
"echo Dumping current SPI flash content ...;" \
80+
"sf read ${kernel_addr_r} 0x0 0x400000;" \
81+
"if fatwrite mmc 1:1 ${kernel_addr_r} spi-flash-backup.bin 0x400000;" \
82+
"then echo SPI flash content was successfully written into spi-flash-backup.bin;" \
83+
"echo Reading bootloader binary;" \
84+
"if load mmc 1:1 ${kernel_addr_r} bootloader-update.bin;" \
85+
"then echo Writing bootloader into SPI flash;" \
86+
"sf probe 0:1;" \
87+
"sf update ${kernel_addr_r} 0x0 0x400000;" \
88+
"poweroff;" \
89+
"else echo Reading bootloader failed;" \
90+
"poweroff; fi;" \
91+
"else echo SPI flash backup FAILED! Aborting ...;" \
92+
"poweroff; fi\0"
93+
94+
#define TRANSFORMER_FASTBOOT_ALIAS \
95+
"fastboot_raw_partition_boot=${lnx_offset_r} ${lnx_size} mmcpart 0\0" \
96+
"fastboot_raw_partition_recovery=${sos_offset_r} ${sos_size} mmcpart 0\0" \
97+
"fastboot_partition_alias_system=APP\0" \
98+
"fastboot_partition_alias_cache=CAC\0" \
99+
"fastboot_partition_alias_misc=MSC\0" \
100+
"fastboot_partition_alias_staging=USP\0" \
101+
"fastboot_partition_alias_vendor=VDR\0" \
102+
"fastboot_partition_alias_userdata=UDA\0"
103+
104+
#define TRANSFORMER_BOOTMENU \
105+
TRANSFORMER_BOOT_SCRIPT \
106+
TRANSFORMER_BOOT_SOS \
107+
TRANSFORMER_BOOT_LNX \
108+
TRANSFORMER_FLASH_UBOOT \
109+
TRANSFORMER_FLASH_SPI \
110+
TRANSFORMER_FASTBOOT_ALIAS \
111+
"bootmenu_0=boot with script=run boot_script\0" \
112+
"bootmenu_1=boot LNX=run boot_lnx\0" \
113+
"bootmenu_2=boot SOS=run boot_sos\0" \
114+
"bootmenu_3=fastboot=echo Starting Fastboot protocol ...; fastboot usb 0\0" \
115+
"bootmenu_4=reboot=reset\0" \
116+
"bootmenu_5=power off=poweroff\0" \
117+
"bootmenu_delay=-1\0"
118+
119+
#define TRANSFORMER_BUTTON_CHECK \
120+
"check_button=gpio input ${gpio_vol_down}; test $? -eq 0;\0"
121+
122+
#define TRANSFORMER_DEFAULT_FILESET \
123+
"kernel_file=vmlinuz\0" \
124+
"ramdisk_file=uInitrd\0" \
125+
"bootloader_file=u-boot-dtb-tegra.bin\0"
126+
127+
#define TRANSFORMER_LOAD_KERNEL \
128+
"echo Loading Kernel;" \
129+
"if load mmc ${bootdev}:1 ${kernel_addr_r} ${kernel_file};" \
130+
"then echo Loading DTB;" \
131+
"load mmc ${bootdev}:1 ${fdt_addr_r} ${fdtfile};" \
132+
"setenv bootargs console=ttyS0,115200n8 root=/dev/mmcblk${bootdev}p${rootpart} rw gpt;" \
133+
"echo Loading Initramfs;" \
134+
"if load mmc ${bootdev}:1 ${ramdisk_addr_r} ${ramdisk_file};" \
135+
"then echo Booting Kernel;" \
136+
"run bootrdkernel;" \
137+
"else echo Booting Kernel;" \
138+
"run bootkernel; fi;"
139+
140+
#endif /* __CONFIG_H */

include/configs/transformer-t20.h

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/* SPDX-License-Identifier: GPL-2.0-or-later */
2+
/*
3+
* (C) Copyright 2010,2011
4+
* NVIDIA Corporation <www.nvidia.com>
5+
*
6+
* (C) Copyright 2022
7+
* Svyatoslav Ryhel <clamor95@gmail.com>
8+
*/
9+
10+
#ifndef __CONFIG_H
11+
#define __CONFIG_H
12+
13+
#include <linux/sizes.h>
14+
15+
#include "tegra20-common.h"
16+
#include "transformer-common.h"
17+
18+
#define BOARD_EXTRA_ENV_SETTINGS \
19+
TRANSFORMER_T20_EMMC_LAYOUT \
20+
TRANSFORMER_DEFAULT_FILESET \
21+
TRANSFORMER_BOOTZ \
22+
TRANSFORMER_BUTTON_CHECK \
23+
TRANSFORMER_BOOTMENU
24+
25+
#undef CONFIG_BOOTCOMMAND
26+
#define CONFIG_BOOTCOMMAND \
27+
"setenv gpio_vol_down 132;" \
28+
"if run check_button;" \
29+
"then bootmenu;" \
30+
"else echo Loading from uSD...;" \
31+
"setenv bootdev 1;" \
32+
"setenv rootpart 2;" \
33+
TRANSFORMER_LOAD_KERNEL \
34+
"else echo Loading from uSD failed!;" \
35+
"echo Loading from eMMC...;" \
36+
"setenv bootdev 0;" \
37+
"setenv rootpart 7;" \
38+
TRANSFORMER_LOAD_KERNEL \
39+
"fi;" \
40+
"fi;" \
41+
"fi;"
42+
43+
/* Board-specific serial config */
44+
#define CONFIG_TEGRA_ENABLE_UARTD
45+
#define CONFIG_SYS_NS16550_COM1 NV_PA_APB_UARTD_BASE
46+
47+
/* Used for downstream */
48+
#define CONFIG_MACH_TYPE MACH_TYPE_VENTANA
49+
50+
#include "tegra-common-post.h"
51+
52+
#endif /* __CONFIG_H */

0 commit comments

Comments
 (0)