|
| 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 */ |
0 commit comments