Hi Varun, Am 15.02.2018 um 17:57 schrieb Varun Wadekar: > Andreas, can you try the TOS packaging script available in our public repo? > > http://nv-tegra.nvidia.com/gitweb/?p=3rdparty/ote_partner/tlk.git;a=blob;f=tools/gen_tos_part_img.py;h=47828f7028e56a6cffb9b773502b13dc431a015e;hb=HEAD Great, that script does work. It is lacking usage output, but looking at the code, its arguments were self-documenting. > Please let me know if this does not work for you. > > For the upstream ATF code, our downstream has not caught up with upstream yet, so I am not sure if upstream would directly work for TX1. But its definitely worth a try. I tried R28.1 flash.sh -k TOS with my ATF v1.4 with Spectre backports, without SPD. BL31 appears to initialize okay, but later something runs into an unhandled SMC 0x82000015 - things then go south and it doesn't reach the Nvidia U-Boot. Serial log attached. According to https://github.com/ARM-software/arm-trusted-firmware/blob/master/docs/arm-sip-service.rst that SMC function ID falls into the SiP range, so indeed something Nvidia-specific missing in v1.4? Regards, Andreas https://build.opensuse.org/package/show/hardware:boot/arm-trusted-firmware-tegra210 -- SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg)
[0000.120] [TegraBoot] (version 00.00.2014.50-mobile-d44d4bf0) [0000.125] Processing in cold boot mode Bootloader 2 [0000.130] A02 Bootrom Patch rev = 63 [0000.133] Power-up reason: reset button [0000.137] No Battery Present [0000.139] RamCode = 0 [0000.142] Platform has Ddr4 type ram [0000.145] max77620 disabling SD1 Remote Sense [0000.149] Setting Ddr voltage to 1125mv [0000.153] Serial Number of Pmic Max77663: 0x1417b9 [0000.161] Entering ramdump check [0000.164] Get RamDumpCarveOut = 0xff23f000 [0000.168] RamDumpCarveOut=0xff23f000, RamDumperFlag=0x0 [0000.173] Last reboot was clean, booting normally! [0000.178] Sdram initialization is successful [0000.182] SecureOs Carveout Base=0xff800000 Size=0x00800000 [0000.187] GSC1 Carveout Base=0xff700000 Size=0x00100000 [0000.192] GSC2 Carveout Base=0xff600000 Size=0x00100000 [0000.197] GSC3 Carveout Base=0xff500000 Size=0x00100000 [0000.203] GSC4 Carveout Base=0xff400000 Size=0x00100000 [0000.208] GSC5 Carveout Base=0xff300000 Size=0x00100000 [0000.213] BpmpFw Carveout Base=0xff2c0000 Size=0x00040000 [0000.218] Lp0 Carveout Base=0xff2bf000 Size=0x00001000 [0000.234] RamDump Carveout Base=0xff23f000 Size=0x00080000 [0000.239] Platform-DebugCarveout: 0 [0000.242] Nck Carveout Base=0xff03f000 Size=0x00200000 [0000.247] Non secure mode, and RB not enabled. [0000.277] Using GPT Primary to query partitions [0000.282] Loading Tboot-CPU binary [0000.331] Verifying bootloader in OdmNonSecureSBK mode [0000.341] Bootloader load address is 0xa0000000, entry address is 0xa0000258 [0000.348] Bootloader downloaded successfully. [0000.352] Downloaded Tboot-CPU binary to 0xa0000258 [0000.357] MAX77620_GPIO1 Configured. [0000.361] MAX77620_GPIO5 Configured. [0000.364] CPU power rail is up [0000.367] CPU clock enabled [0000.371] Performing RAM repair [0000.374] Updating A64 Warmreset Address to 0xa00002e9 [0000.402] Bootloader DTB Load Address: 0x83000000 [0000.430] Kernel DTB Load Address: 0x83100000 [0000.435] Loading cboot binary [0000.529] Verifying bootloader in OdmNonSecureSBK mode [0000.567] Bootloader load address is 0x92c00000, entry address is 0x92c00258 [0000.574] Bootloader downloaded successfully. [0000.578] GPT: Partition NOT found ! [0000.582] Find Partition via GPT Failed [0000.585] Find Partition via PT Failed [0000.589] function NvTbootGetBinaryOffsets: 0x1 error [0000.594] Error in NvTbootLoadBinary: 0x1 ! [0000.598] Next binary entry address: 0x92c00258 [0000.602] BoardId: 2180 [0000.607] dram memory type is 3 [0000.611] WB0 init successful [0000.637] Bpmp FW successfully loaded [0000.640] Set NvDecSticky Bits [0000.644] GSC1 address : ff700000 [0000.647] GSC2 address ff63fffc value c0edbbcc [0000.652] GSC2 address : ff600000 [0000.656] GSC3 address : ff500000 [0000.659] GSC4 address : ff400000 [0000.663] GSC5 address : ff300000 [0000.666] GSC MC Settings done [0000.670] TOS old plaintext Image length 41168 [0000.675] *** Secure OS image signature not verified *** [0000.681] Loading and Validation of Secure OS Successful [0000.686] NvTbootPackSdramParams: start. [0000.691] NvTbootPackSdramParams: done. [0000.694] Tegraboot started after 98254 us [0000.698] Basic modules init took 290274 us [0000.702] Sec Bootdevice Read Time = 216 ms, Read Size = 9488 KB [0000.708] Sec Bootdevice Write Time = -1940251271 ms, Write Size = -68719477 KB [0000.715] Next stage binary read took 23772 us [0000.720] Carveout took 207065 us [0000.723] CPU initialization took 92193 us [0000.727] Total time taken by TegraBoot 613304 us [0000.731] Starting CPU & Halting co-processor 64INFO: Configuring TrustZone DRAM Memory Carveout INFO: BL3-1: Boot CPU: ARM Processor [80000000] INFO: BL3-1: Tegra: MMU enabled NOTICE: BL31: v1.4(debug): NOTICE: BL31: Built : 12:00:00, Feb 10 2018 INFO: Setting up secondary CPU boot INFO: Tegra Memory Controller (v1) INFO: BL3-1: Tegra platform setup complete INFO: BL31: Initializing runtime services WARNING: BL31: cortex_a57: CPU workaround for 813419 was missing! INFO: BL31: cortex_a57: CPU workaround for disable_ldnp_overread was applied INFO: BL31: cortex_a57: CPU workaround for 826974 was applied INFO: BL31: cortex_a57: CPU workaround for 826977 was applied INFO: BL31: cortex_a57: CPU workaround for 828024 was applied INFO: BL31: cortex_a57: CPU workaround for 829520 was applied INFO: BL31: cortex_a57: CPU workaround for 833471 was applied INFO: BL31: cortex_a57: CPU workaround for cve_2017_5715 was applied INFO: BL31: Preparing for EL3 exit to normal world INFO: Entry point address = 0xa0000614 INFO: SPSR = 0x3c9 [0000.947] RamCode = 0 [0000.969] LPDDR4 Training: Read DT: Number of tables = 10 [0000.974] EMC Training (SRC-freq: 204000; DST-freq: 40800) [0000.979] EMC Training Skipped [0000.982] EMC Training (SRC-freq: 204000; DST-freq: 68000) [0000.987] EMC Training Skipped [0000.990] EMC Training (SRC-freq: 204000; DST-freq: 102000) [0000.995] EMC Training Skipped [0000.998] EMC Training (SRC-freq: 204000; DST-freq: 204000) [0001.003] EMC Training Skipped [0001.006] EMC Training (SRC-freq: 204000; DST-freq: 408000) [0001.012] EMC Training Successful [0001.015] EMC Training (SRC-freq: 204000; DST-freq: 665600) [0001.021] EMC Training Successful [0001.024] EMC Training (SRC-freq: 204000; DST-freq: 800000) [0001.035] EMC Training Successful [0001.038] EMC Training (SRC-freq: 204000; DST-freq: 1065600) [0001.061] EMC Training Successful [0001.064] EMC Training (SRC-freq: 204000; DST-freq: 1331200) [0001.086] EMC Training Successful [0001.089] EMC Training (SRC-freq: 204000; DST-freq: 1600000) [0001.109] EMC Training Successful [0001.112] Switching to 800000 KHz Success [0001.122] RamCode = 0 [0001.126] DT Write: emc-table@40800 succeeded [0001.131] DT Write: emc-table@68000 succeeded [0001.137] DT Write: emc-table@102000 succeeded [0001.144] DT Write: emc-table@204000 succeeded [0001.150] DT Write: emc-table@408000 succeeded [0001.156] DT Write: emc-table@665600 succeeded [0001.162] DT Write: emc-table@800000 succeeded [0001.168] DT Write: emc-table@1065600 succeeded [0001.174] DT Write: emc-table@1331200 succeeded [0001.180] DT Write: emc-table@1600000 succeeded [0001.184] LPDDR4 Training: Write DT: Number of tables = 10 [0001.220] [0001.221] Debug Init done [0001.223] Marked DTB cacheable [0001.226] Bootloader DTB loaded at 0x83000000 [0001.231] Marked DTB cacheable [0001.234] Kernel DTB loaded at 0x83100000 [0001.238] DeviceTree Init done [0001.258] Pinmux applied successfully [0001.264] gicd_base: 0x50041000 [0001.269] gicc_base: 0x50042000 [0001.271] Interrupts Init done [0001.277] Using base:0x60005008 & irq:33 for tick-timer [0001.282] Using base:0x60005000 for delay-timer [0001.287] platform_init_timer: DONE [0001.290] Timer(tick) Init done [0001.296] osc freq = 38400 khz [0001.301] [0001.302] welcome to cboot [0001.305] [0001.306] Cboot Version: 00.00.2014.50-t210-fadd1be5 [0001.311] calling constructors [0001.314] initializing heap [0001.316] initializing threads [0001.319] initializing timers [0001.322] creating bootstrap completion thread [0001.327] top of bootstrap2() [0001.330] CPU: ARM Cortex A57 [0001.332] CPU: MIDR: 0x411FD071, MPIDR: 0x80000000 [0001.337] initializing platform [0001.363] config for ddr50 mode completed [0001.367] sdmmc bdev is already initialized [0001.371] Enable APE clock [0001.374] Un-powergate APE partition [0001.377] of_register: registering tegra_udc to of_hal [0001.382] of_register: registering inv20628-driver to of_hal [0001.388] of_register: registering ads1015-driver to of_hal [0001.394] of_register: registering lp8557-bl-driver to of_hal [0001.399] of_register: registering bq2419x_charger to of_hal [0001.405] of_register: registering cpc to of_hal [0001.410] of_register: registering bq27441_fuel_gauge to of_hal [0001.430] gpio framework initialized [0001.433] of_register: registering tca9539_gpio to of_hal [0001.438] of_register: registering tca9539_gpio to of_hal [0001.444] of_register: registering i2c_bus_driver to of_hal [0001.449] of_register: registering i2c_bus_driver to of_hal [0001.455] of_register: registering i2c_bus_driver to of_hal [0001.460] pmic framework initialized [0001.464] of_register: registering max77620_pmic to of_hal [0001.469] regulator framework initialized [0001.473] of_register: registering tegra_xhci to of_hal [0001.479] initializing target [0001.488] gpio_driver_register: register 'tegra_gpio_driver' driver [0001.500] fixed regulator driver initialized [0001.575] initializing OF layer [0001.578] NCK carveout not present [0001.581] Skipping dts_overrides [0001.585] of_children_init: Ops found for compatible string nvidia,tegra210-xhci [0001.594] of_children_init: Ops found for compatible string nvidia,tegra210-i2c [0001.626] I2C Bus Init done [0001.629] of_children_init: Ops found for compatible string nvidia,tegra210-i2c [0001.644] I2C Bus Init done [0001.646] of_children_init: Ops found for compatible string ti,tca9539 [0001.661] tca9539_init: i2c bus: 2, slave addr: 0xe8 [0001.666] gpio_driver_register: register 'tca9539_gpio_driver' driver [0001.673] of_children_init: Ops found for compatible string ti,tca9539 [0001.687] tca9539_init: i2c bus: 2, slave addr: 0xee [0001.693] gpio_driver_register: register 'tca9539_gpio_driver' driver [0001.699] of_children_init: Ops found for compatible string nvidia,tegra210-i2c [0001.715] I2C Bus Init done [0001.717] of_children_init: Ops found for compatible string nvidia,tegra210-i2c [0001.733] I2C Bus Init done [0001.735] of_children_init: Ops found for compatible string nvidia,tegra210-i2c [0001.751] I2C Bus Init done [0001.754] of_children_init: Ops found for compatible string maxim,max77620 [0001.770] max77620_init using irq 118 [0001.774] register 'maxim,max77620' pmic [0001.779] gpio_driver_register: register 'max77620-gpio' driver [0001.785] of_children_init: Ops found for compatible string nvidia,tegra210-i2c [0001.801] I2C Bus Init done [0001.806] NCK carveout not present [0001.809] shim_invoke: No NCT, Calling dts updates [0001.831] Find /i2c@7000c000's alias i2c0 [0001.834] get eeprom at 1-a2, size 256, type 0 [0001.839] get eeprom at 1-ae, size 256, type 0 [0001.854] Find /i2c@7000c400's alias i2c1 [0001.858] get eeprom at 2-a0, size 256, type 0 [0001.874] Find /i2c@7000c500's alias i2c2 [0001.878] get eeprom at 3-a0, size 256, type 0 [0001.883] get eeprom at 3-ae, size 256, type 0 [0001.894] Find /host1x/i2c@546c0000's alias i2c6 [0001.899] get eeprom at 7-a8, size 256, type 0 [0001.903] pm_ids_update: Updating 1,a2, size 256, type 0 [0001.909] I2C slave not started [0001.912] I2C write failed [0001.914] Writing offset failed [0001.917] eeprom_init: EEPROM read failed [0001.921] pm_ids_update: eeprom init failed [0001.925] pm_ids_update: Updating 1,ae, size 256, type 0 [0001.931] I2C slave not started [0001.934] I2C write failed [0001.936] Writing offset failed [0001.939] eeprom_init: EEPROM read failed [0001.943] pm_ids_update: eeprom init failed [0001.947] pm_ids_update: Updating 2,a0, size 256, type 0 [0001.953] I2C slave not started [0001.956] I2C write failed [0001.958] Writing offset failed [0001.961] eeprom_init: EEPROM read failed [0001.965] pm_ids_update: eeprom init failed [0001.969] pm_ids_update: Updating 3,a0, size 256, type 0 [0001.999] pm_ids_update: The pm board id is 2180-1000-410 [0002.009] Adding plugin-manager/ids/2180-1000-410=/i2c@7000c500:module@0x50 [0002.019] pm_ids_update: pm id update successful [0002.023] pm_ids_update: Updating 3,ae, size 256, type 0 [0002.053] pm_ids_update: The pm board id is 2597-0000-500 [0002.061] Adding plugin-manager/ids/2597-0000-500=/i2c@7000c500:module@0x57 [0002.070] pm_ids_update: pm id update successful [0002.075] pm_ids_update: Updating 7,a8, size 256, type 0 [0002.082] I2C slave not started [0002.085] I2C write failed [0002.088] Writing offset failed [0002.091] eeprom_init: EEPROM read failed [0002.095] pm_ids_update: eeprom init failed [0002.129] updating /chosen/nvidia,wifi-mac node 00:04:4b:79:74:7d [0002.138] updating /chosen/nvidia,bluetooth-mac node 00:04:4b:79:74:7e [0002.148] updating /chosen/nvidia,ethernet-mac node 00:04:4b:79:74:7f [0002.154] Plugin Manager: Parse ODM data 0x00084000 [0002.190] Find /i2c@7000c000's alias i2c0 [0002.194] get eeprom at 1-a2, size 256, type 0 [0002.199] get eeprom at 1-ae, size 256, type 0 [0002.214] Find /i2c@7000c400's alias i2c1 [0002.218] get eeprom at 2-a0, size 256, type 0 [0002.234] Find /i2c@7000c500's alias i2c2 [0002.238] get eeprom at 3-a0, size 256, type 0 [0002.242] get eeprom at 3-ae, size 256, type 0 [0002.254] Find /host1x/i2c@546c0000's alias i2c6 [0002.259] get eeprom at 7-a8, size 256, type 0 [0002.263] pm_ids_update: Updating 1,a2, size 256, type 0 [0002.268] I2C slave not started [0002.271] I2C write failed [0002.274] Writing offset failed [0002.277] eeprom_init: EEPROM read failed [0002.281] pm_ids_update: eeprom init failed [0002.285] pm_ids_update: Updating 1,ae, size 256, type 0 [0002.290] I2C slave not started [0002.293] I2C write failed [0002.296] Writing offset failed [0002.299] eeprom_init: EEPROM read failed [0002.303] pm_ids_update: eeprom init failed [0002.307] pm_ids_update: Updating 2,a0, size 256, type 0 [0002.312] I2C slave not started [0002.315] I2C write failed [0002.318] Writing offset failed [0002.321] eeprom_init: EEPROM read failed [0002.325] pm_ids_update: eeprom init failed [0002.329] pm_ids_update: Updating 3,a0, size 256, type 0 [0002.359] pm_ids_update: The pm board id is 2180-1000-410 [0002.367] Adding plugin-manager/ids/2180-1000-410=/i2c@7000c500:module@0x50 [0002.374] pm_ids_update: pm id update successful [0002.378] pm_ids_update: Updating 3,ae, size 256, type 0 [0002.409] pm_ids_update: The pm board id is 2597-0000-500 [0002.416] Adding plugin-manager/ids/2597-0000-500=/i2c@7000c500:module@0x57 [0002.423] pm_ids_update: pm id update successful [0002.428] pm_ids_update: Updating 7,a8, size 256, type 0 [0002.436] I2C slave not started [0002.439] I2C write failed [0002.441] Writing offset failed [0002.444] eeprom_init: EEPROM read failed [0002.448] pm_ids_update: eeprom init failed [0002.482] Chip UID is 00000001640ca5871c00000016058200 [0002.490] shim_cmdline_install: /chosen/bootargs: root=/dev/mmcblk0p1 rw rootwait console=ttyS0,115200n8 console=tty0 OS=l4t fbcon=map:0 net.ifnames=0 androidboot.modem=none androidboot.serialno=03246161949850008205 androidboot.security=non-secure [0002.514] Add serial number:03246161949850008205 as DT property [0002.522] calling apps_init() [0002.526] Found 18 GPT partitions in "sdmmc3_user" [0002.531] Proceeding to Cold Boot [0002.534] starting app android_boot_app [0002.538] Device state: unlocked [0002.541] display console init [0002.546] skip-display-init in bootloader [0002.550] set_instance_and_out_type: invalid out_type [0002.555] display_console_init: No display init [0002.566] Gpio keyboard init success [0002.569] bct_init bctinit [0002.572] device_query_partition_size: failed to open partition sdmmc3_user:BMP ! [0002.580] BMP partition read faDT entry for leds-pwm not found i[0002.594] led! [0002.595] blob_init: blob-partition BMP header read failed [0002.601] load_bmp_blob: BMP blob initialization failed [0002.606] Could not load/initialize BMP blob...ignoring [0002.611] bl_battery_charging: connected to external power supply [0002.622] display_console_ioctl: No display init [0002.627] switch_backlight failed [0002.630] bct_init bctinit [0002.633] device_query_partition_size: failed to open partition sdmmc3_user:MSC ! [0002.640] MSC Partition not found [0002.644] bct_init bctinit [0002.646] bct_init bctinit [0002.650] blob_init: USP partition does not have valid Blob [0002.655] Loading android kernel [0002.659] Default: NOT skip verified boot. ERROR: tegra_sip_handler: unhandled SMC (0x82000015) [0002.668] Failed to pass verified boot params [0002.672] Failed while loading kernel and ramdisk images [0002.678] Failed to boot Android [0002.681] starting fastboot mode [0002.687] fastboot cmd_init done. [0002.690] platform does not support off-mode-charge [0002.695] usbdcd_init Initialize USBF driver [0002.699] usbdcd_phy_open oscfreq = 5 [0002.708] usbdcd_start Start the initialized controller [000[0002.716] -- suspend -- 2.716] display_console_clear: No display init [0002.723] Error in fastboot menu [0002.726] Continue booting ... [0002.729] [0002.730] display_console_clear: No display init [0002.734] Loading android kernel [0002.738] Default: NOT skip verified boot. ERROR: tegra_sip_handler: unhandled SMC (0x82000015) [0002.747] Failed to pass verified boot params [0002.752] Failed while loading kernel and ramdisk images [0002.757] Failed to boot Android [0002.760] starting fastboot mode [0002.794] fastboot cmd_init done. [0002.797] platform does not support off-mode-charge [0[0002.805] display_console_clear: No display init [0002.810] Error in fastboot menu [0002.813] Continue booting ... [0002.816] [0002.817] display_console_clear: No display init [0002.821] [0002.823] ----------------------------------------------- [0002.828] Synchronous Exception: DATA ABORT (FAR: 8) [0002.833] ----------------------------------------------- [0002.838] PAR_ELX: 0x80b [0002.841] [0002.842] ESR 0x96000005: ec 0x25, il 0x1, iss 0x5 [0002.847] ----------------------------------------------- [0002.852] [Stack Trace] [0002.854] [0002.855] => pc:0x92C39C94, sp:0x92C9A7E0 [0002.859] => pc:0x92C3893C, sp:0x92C9AA10 [0002.863] => pc:0x92C38854, sp:0x92C9AA30 [0002.867] => pc:0x92C03DEC, sp:0x92C9AA40 [0002.871] => pc:0x92C38948, sp:0x92C9AAC0 [0002.875] => pc:0x92C38854, sp:0x92C9AC20 [0002.879] => pc:0x92C03DEC, sp:0x92C9AC30 [0002.883] => pc:0x92C0464C, sp:0x92C9ACB0 [0002.887] => pc:0x92C036C0, sp:0x92C9AE10 [0002.891] => pc:0x92C02CF8, sp:0x92C9AE90 [0002.895] => pc:0x92C02CC0, sp:0x92C9AEA0 [0002.899] ----------------------------------------------- [0002.904] iframe 0x92c9a6f0: [0002.907] x0 0x 92c64000 x1 0x 0 x2 0x 260 x3 0x 2 [0002.916] x4 0x a x5 0x 92c9a7d0 x6 0x 20 x7 0x 6d365a2f [0002.926] x8 0x a x9 0x 8 x10 0x 92c9260e x11 0x 401 [0002.935] x12 0x 10000000 x13 0x 40 x14 0x 1 x15 0x 92cb6a48 [0002.944] x16 0x ffff0 x17 0x 10000 x18 0x 0 x19 0x 92c90000 [0002.953] x20 0x 92c64518 x21 0x 83028ab0 x22 0x 92c64000 x23 0x 92c90000 [0002.963] x24 0x 400 x25 0x 24 x26 0x 92c9aab0 x27 0x 0 [0002.972] x28 0x 0 x29 0x 92c9aa10 lr 0x 92c38940 sp 0x 92c9a7e0 [0002.981] elr 0x 92c39c94 [0002.985] spsr 0x 60000309 [0002.988] ----------------------------------------------- [0002.993] panic (caller 0x92c01238): die [0002.997] HALT: spinning forever...