[DNM] ACK stuff
Change-Id: I72adcaa0b01ccbf224a9b3e34d5143c24c9d4621
This commit is contained in:
1 parent
3eee2f1dac
commit
5594c8ed4f
22 files changed
+363
-1325
No files matched your search
@@ -0,0 +1,249 @@
|
||||
# Set defaults for missing env variables.
|
||||
setenv boot_dir ${prefix}
|
||||
test -n ${loader_rev} || setenv loader_rev 0
|
||||
test -n ${id} || setenv id SWANDR
|
||||
test -n ${emmc} || setenv emmc 0
|
||||
test -n ${fbconsole} || setenv fbconsole 9
|
||||
test -n ${uart_port} || setenv uart_port 0
|
||||
test -n ${earlycon} || setenv earlycon 0
|
||||
test -n ${r2p_action} || setenv r2p_action bootloader
|
||||
test -n ${autoboot} || setenv autoboot 0
|
||||
test -n ${autoboot_list} || setenv autoboot_list 0
|
||||
|
||||
# Set logging params for each serial type.
|
||||
setenv uarta "no_console_suspend console=ttyS0,115200,8n1 loglevel=8 androidboot.console=ttyS0"
|
||||
setenv uartb "no_console_suspend console=ttyS1,115200,8n1 loglevel=8 androidboot.console=ttyS1"
|
||||
setenv uartc "no_console_suspend console=ttyS2,115200,8n1 loglevel=8 androidboot.console=ttyS2"
|
||||
setenv no_args "console=null"
|
||||
setenv usblg "usb_logging loglevel=8"
|
||||
setenv uarta_early "earlycon=uart,mmio32,0x70006000"
|
||||
setenv uartb_early "earlycon=uart,mmio32,0x70006040"
|
||||
setenv uartc_early "earlycon=uart,mmio32,0x70006200"
|
||||
|
||||
# Set important addresses.
|
||||
setenv kernload 0xA0000000
|
||||
setenv initaddr 0x92000000
|
||||
setenv fdtrload 0xA8000000
|
||||
setenv fdtraddr 0x8d000000
|
||||
|
||||
# Set temp addresses.
|
||||
setenv enviraddr 0x8d100000
|
||||
setenv fdtovaddr 0x8d200000
|
||||
|
||||
|
||||
# L4T Loader check. Min rev 4.
|
||||
if test "${loader_rev}" < 4; then echoe Old L4T Loader! Update bootloader folder!; echoe Rebooting in 10s..; sleep 10; reset; fi
|
||||
|
||||
|
||||
# Set SoC info.
|
||||
if test ${t210b01} = 1; then setenv plat_info T210B01; else setenv plat_info T210; fi
|
||||
|
||||
# Set SKU info. Frig is used instead of Fric for compatibility reasons.
|
||||
if test ${sku} = 0; then setenv sku_info ODIN; setenv sku_rev a00; setenv variant odin
|
||||
elif test ${sku} = 1; then setenv sku_info ODIN; setenv sku_rev b01; setenv variant modin
|
||||
elif test ${sku} = 2; then setenv sku_info VALI; setenv sku_rev a00; setenv variant vali
|
||||
elif test ${sku} = 3; then setenv sku_info FRIG; setenv sku_rev a00; setenv variant fric
|
||||
fi
|
||||
|
||||
# Print platform info.
|
||||
echo PLAT: ${plat_info} SKU: ${sku_info}
|
||||
echo Serial: ${device_serial_restricted}
|
||||
echo BT MAC: ${device_bt_mac}
|
||||
echo WF MAC: ${device_wifi_mac}
|
||||
|
||||
|
||||
# Set MMC device.
|
||||
setenv mmcnum 1
|
||||
if test ${emmc} = 1; then
|
||||
echoe emmc enabled
|
||||
setenv mmcnum 0
|
||||
fi
|
||||
mmc dev ${mmcnum}
|
||||
|
||||
# Load Kernel.
|
||||
if gpio input 190 && test ${recovery} = "0"; then
|
||||
# Normal Kernel.
|
||||
if part start mmc ${mmcnum} boot boot_start; then echo Boot partition found
|
||||
else echoe Boot partition not found!; echoe Rebooting in 10s..; sleep 10; reset; fi
|
||||
part size mmc ${mmcnum} boot boot_size
|
||||
else
|
||||
# Recovery.
|
||||
if part start mmc ${mmcnum} recovery boot_start; then echo Recovery partition found
|
||||
else echoe Recovery partition not found!; echoe Rebooting in 10s..; sleep 10; reset; fi
|
||||
part size mmc ${mmcnum} recovery boot_size
|
||||
|
||||
echo Applying WAR: USB3 required for recovery
|
||||
setenv usb3_enable 1
|
||||
fi
|
||||
mmc read ${kernload} ${boot_start} ${boot_size};
|
||||
|
||||
# Load DT img.
|
||||
if part start mmc ${mmcnum} dtb dtb_start; then echo DTB partition found
|
||||
else echoe DTB partition not found!; echoe Rebooting in 10s..; sleep 10; reset; fi
|
||||
part size mmc ${mmcnum} dtb dtb_size
|
||||
mmc read ${fdtrload} ${dtb_start} ${dtb_size}
|
||||
|
||||
# Check for Super.
|
||||
if part start mmc ${mmcnum} super super_start; then echo Super partition found
|
||||
else echoe Super partition not found!; echoe Rebooting in 10s..; sleep 10; reset; fi
|
||||
|
||||
# Get DT from image.
|
||||
if dtimg load ${fdtrload} ${sku} ${fdtraddr} fdtrsize; then echo Device Tree for SKU ${sku_info} loaded
|
||||
else echoe Device Tree load for SKU ${sku_info} failed!; echoe Rebooting in 10s..; sleep 10; reset; fi
|
||||
|
||||
# Load dtb and resize to fit overlays.
|
||||
fdt addr ${fdtraddr} ${fdtrsize}
|
||||
fdt resize 16384
|
||||
|
||||
|
||||
# Dtb sanity checks.
|
||||
if test ${sku_info} != ${fdt_id_text} -o ${sku_rev} != ${fdt_rev}; then
|
||||
echoe Device Tree loaded not correct! (SKU: ${fdt_id_text}, Rev: ${fdt_rev})
|
||||
echoe Expected SKU: ${sku_info}, Rev: ${sku_rev}
|
||||
echoe Rebooting in 10s..; sleep 10; reset
|
||||
fi
|
||||
|
||||
|
||||
# Patch dtb with overlays if they exist.
|
||||
if test -n ${dtb_overlays}; then
|
||||
echo loading dtb overlays: ${dtb_overlays}
|
||||
for ov in ${dtb_overlays}; do
|
||||
echo Setting ${ov}...
|
||||
# Check if DT overlay and apply it.
|
||||
if load mmc ${devnum}:${distro_bootpart} ${fdtovaddr} ${boot_dir}/overlays/${ov}.dtbo; then
|
||||
if fdt apply ${fdtovaddr}; then echo Successfully loaded ${ov}.dtbo...
|
||||
else echoe Overlay ${ov}.dtbo loading failed!; echoe Rebooting in 10s..; sleep 10; reset; fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# UART Logging.
|
||||
if test ${uart_port} = 1; then
|
||||
echoe UART-A logging enabled
|
||||
setenv bootargs_extra ${bootargs_extra} ${uarta}
|
||||
fdt set /serial@70006000 compatible nvidia,tegra20-uart
|
||||
fdt set /serial@70006000 status okay
|
||||
|
||||
if test ${earlycon} = 1; then
|
||||
echoe Early logging enabled
|
||||
setenv bootargs_extra ${bootargs_extra} ${uarta_early}
|
||||
fdt set /serial@70006000 reset-names noreset
|
||||
fi
|
||||
elif test ${uart_port} = 2; then
|
||||
echoe UART-B logging enabled
|
||||
setenv bootargs_extra ${bootargs_extra} ${uartb}
|
||||
fdt set /serial@70006040 compatible nvidia,tegra20-uart
|
||||
fdt set /serial@70006040/joyconr status disabled
|
||||
|
||||
if test ${earlycon} = 1; then
|
||||
echoe Early logging enabled
|
||||
setenv bootargs_extra ${bootargs_extra} ${uartb_early}
|
||||
fdt set /serial@70006040 reset-names noreset
|
||||
fi
|
||||
elif test ${uart_port} = 3; then
|
||||
echoe UART-C logging enabled
|
||||
setenv bootargs_extra ${bootargs_extra} ${uartc}
|
||||
fdt set /serial@70006200 compatible nvidia,tegra20-uart
|
||||
fdt set /serial@70006200/joyconl status disabled
|
||||
|
||||
if test ${earlycon} = 1; then
|
||||
echoe Early logging enabled
|
||||
setenv bootargs_extra ${bootargs_extra} ${uartc_early}
|
||||
fdt set /serial@70006200 reset-names noreset
|
||||
fi
|
||||
else
|
||||
setenv bootargs_extra ${bootargs_extra} ${no_args}
|
||||
fi
|
||||
|
||||
# USB Serial Logging.
|
||||
if test ${uart_port} = 4; then setenv bootargs_extra ${usblg} ${bootargs_extra}; echoe USB Serial logging enabled; fi
|
||||
|
||||
# Disable Joycon Rails.
|
||||
if test ${jc_rail_disable} = 1; then
|
||||
echoe Joycon Rails disabled
|
||||
fdt set /serial@70006040 status disabled
|
||||
fdt set /serial@70006040/joyconr status disabled
|
||||
fdt set /serial@70006200 status disabled
|
||||
fdt set /serial@70006200/joyconl status disabled
|
||||
fi
|
||||
|
||||
# Disable CEC.
|
||||
if test ${sku} = 2 -o ${cec_disable} = 1; then setenv bootargs_extra ${bootargs_extra} "androidboot.cec_disable=1"; fi
|
||||
|
||||
# Disable Touch panel tuning.
|
||||
if test ${touch_skip_tuning} = 1; then setenv bootargs_extra ${bootargs_extra} "ftm4.skip_tuning=1"; fi
|
||||
|
||||
# Disable Bluetooth ERTM.
|
||||
if test ${bt_ertm_disable} = 1; then setenv bootargs_extra ${bootargs_extra} "bluetooth.disable_ertm=1"; fi
|
||||
|
||||
|
||||
# Enable eMMC.
|
||||
if test ${emmc} = 1; then
|
||||
fdt set /mmc@700b0600 status okay
|
||||
fdt set /firmware/android boot_devices 700b0600.mmc
|
||||
|
||||
# Check if eMMC is initialized in 1-bit mode.
|
||||
if test "${mmc_1bit}" = 1; then
|
||||
echoe eMMC is initialized in 1-bit mode!
|
||||
fdt set /mmc@700b0600 bus-width <0x1>
|
||||
fdt set /mmc@700b0600 uhs-mask <0x7F>
|
||||
fi
|
||||
else
|
||||
fdt set /firmware/android boot_devices 700b0000.mmc
|
||||
fi
|
||||
|
||||
# Check if SD is initialized in 1-bit mode.
|
||||
if test "${sd_1bit}" = 1; then
|
||||
echoe SD Card is initialized in 1-bit mode!
|
||||
fdt set /mmc@700b0600 bus-width <0x1>
|
||||
fdt set /mmc@700b0600 uhs-mask <0x7F>
|
||||
fi
|
||||
|
||||
# Set serial number.
|
||||
if test -n ${device_serial_restricted}; then fdt set / serial-number ${device_serial_restricted}; fi
|
||||
|
||||
# Load mac address info file from sd
|
||||
if fatload mmc 1:1 ${enviraddr} switchroot/joycon_mac.ini; then
|
||||
if ini "joycon_00" ${enviraddr}; then echo Found Joycon Pairing Info; else echoe Malformed joycon_mac.ini!; fi
|
||||
if test -n "${host}" -a "${host}" = "00:00:00:00:00:00"; then ini "joycon_01" ${enviraddr}; fi
|
||||
fi
|
||||
|
||||
# Set BT mac.
|
||||
if test ! -n "${bt_mac}"; then
|
||||
if test -n "${host}" -a "${host}" != "00:00:00:00:00:00"; then setenv bt_mac ${host}; else setenv bt_mac ${device_bt_mac}; fi;
|
||||
fi
|
||||
|
||||
# Set Wi-Fi mac. Use BT MAC with FF as the last byte.
|
||||
if test ! -n "${wifi_mac}"; then
|
||||
if test -n "${host}" -a "${host}" != "00:00:00:00:00:00"; then setexpr wifi_mac sub "\:..$" ":FF" ${host}; else setenv wifi_mac ${device_wifi_mac}; fi;
|
||||
fi
|
||||
|
||||
echo CAL0 BT MAC: ${bt_mac}
|
||||
echo CAL0 WF MAC: ${wifi_mac}
|
||||
|
||||
# Import to DT.
|
||||
fdt set /chosen nvidia,wifi-mac ${wifi_mac}
|
||||
fdt set /chosen nvidia,bluetooth-mac ${bt_mac}
|
||||
|
||||
|
||||
# Set kernel cmdline.
|
||||
setenv bootargs ${bootargs_extra} "ro init=/init firmware_class.path=/vendor/firmware \
|
||||
pmc_r2p.enabled=1 pmc_r2p.action=${r2p_action} \
|
||||
pmc_r2p.param1=${autoboot} pmc_r2p.param2=${autoboot_list} \
|
||||
fbcon=map:${fbconsole} consoleblank=0 \
|
||||
latency_allowance.ptsa_rework \
|
||||
nvdec_enabled=0 tegra_fbmem=0x800000@0xf5a00000 \
|
||||
androidboot.bootloader=${blver} androidboot.hardware=nx \
|
||||
androidboot.hardware.sku=${variant} androidboot.serialno=${device_serial_restricted} \
|
||||
androidboot.modem=none androidboot.dtb_idx=${sku} "
|
||||
|
||||
# Boot kernel.
|
||||
echo Launching Kernel!
|
||||
bootm ${kernload} ${kernload} ${fdtraddr}
|
||||
|
||||
echoe Failed to launch Kernel!
|
||||
echoe
|
||||
echoe Rebooting in 10s..
|
||||
|
||||
sleep 10
|
||||
reset
|
||||
Reference in new issue
Block a user