MarvellEmbeddedProcessors / atf-marvell

BSD 3-Clause "New" or "Revised" License
23 stars 24 forks source link

Hang after printing "NOTICE: Cold boot" #10

Open brooksbp opened 6 years ago

brooksbp commented 6 years ago

I just did a fresh checkout of the 17.10 branches and flashed the flash-image.bin to SPI ROM on MACCHIATObin board, and am seeing this hang:

BootROM - 2.03
Starting CP-1 IOROM 1.07
Booting from SPI NOR flash 1 (0x32)
Found valid image at boot postion 0x000
lNOTICE:  Starting binary extension    
NOTICE:  SVC: SW Revision 0x0. SVC is not supported
mv_ddr: mv_ddr-armada-17.10.5-gf537e1d (May 08 2018 - 09:54:23)
mv_ddr: completed successfully
NOTICE:  Cold boot

I suspect it's related to compiling with GCC 7.3.0. Will try with GCC 5.4.0

brooksbp commented 6 years ago

Yes, it boots to U-Boot CLI just fine with GCC 5.4.0. The issue must be with GCC 7.x...

kostapr commented 6 years ago

I tested the entire 17.10 release using Linaro GCC toolchain release gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu Everything looks OK. Have you created your own cross-toolchain out of sources?

BootROM - 2.03 Starting CP-1 IOROM 1.07 Booting from SPI NOR flash 1 (0x32) Found valid image at boot postion 0x000 lNOTICE: Starting binary extension NOTICE: SVC: SW Revision 0x0. SVC is not supported mv_ddr: mv_ddr-armada-17.10.5-gf537e1d (May 10 2018 - 02:49:59 PM) mv_ddr: completed successfully NOTICE: Cold boot NOTICE: Booting Trusted Firmware NOTICE: BL1: v1.3(release):armada-17.10.8:34247e0 NOTICE: BL1: Built : 14:50:05, May 10 2018 NOTICE: BL1: Booting BL2 lNOTICE: BL2: v1.3(release):armada-17.10.8:34247e0 NOTICE: BL2: Built : 14:50:07, May 10 2018 BL2: Initiating SCP_BL2 transfer to SCP NOTICE: SCP_BL2 contains 2 concatenated images NOTICE: Load image to CP1 MSS NOTICE: Loading MSS image from address 0x4023020 Size 0x1344 to MSS at 0xf4280000 NOTICE: Done NOTICE: Load image to AP MSS NOTICE: Loading MSS image from address 0x4024364 Size 0x1f20 to MSS at 0xf0580000 N

FreeRTOS 7.3.0 - Marvell cm3 - A8K release devel-18.04.0

OTICE: Done NOTICE: SCP Image doesn't contain PM firmware WARNING: Failed to obtain reference to image id=4 (-2) WARNING: Failed to load BL32 (-2) NOTICE: BL1: Booting BL31 lNOTICE: MSS PM is not supported in this build NOTICE: BL31: v1.3(release):armada-17.10.8:34247e0 NOTICE: BL31: Built : 14:50:10, May 10 2018 l

U-Boot 2017.03-armada-17.10.3-00526-g75ce169 (May 10 2018 - 14:49:10 +0300)

Model: MACCHIATOBin-8040 SoC: Armada8040-A1; AP806-A1; 2x CP110-A1 Clock: CPU 2000 [MHz] DDR 1050 [MHz] FABRIC 1050 [MHz] MSS 200 [MHz] DRAM: 4 GiB U-Boot DT blob at : 000000007f70bab8 EEPROM configuration pattern not detected. Comphy chip #0: Comphy-0: PEX0
Comphy-1: PEX0
Comphy-2: PEX0
Comphy-3: PEX0
Comphy-4: SFI
Comphy-5: SATA1
Comphy chip #1: Comphy-0: SGMII1 1.25 Gbps Comphy-1: SATA0
Comphy-2: USB3_HOST0
Comphy-3: SATA1
Comphy-4: SFI
Comphy-5: SGMII2 3.125 Gbps UTMI PHY 0 initialized to USB Host0 SATA link 0 timeout. SATA link 1 timeout. AHCI 0001.0000 32 slots 2 ports 6 Gbps 0x3 impl SATA mode flags: 64bit ncq led only pmp fbss pio slum part sxs SATA link 0 timeout. SATA link 1 timeout. AHCI 0001.0000 32 slots 2 ports 6 Gbps 0x3 impl SATA mode flags: 64bit ncq led only pmp fbss pio slum part sxs PCIE-0: Link down MMC: sdhci@6e0000: 0, sdhci@780000: 1 SF: Detected w25q32bv with page size 256 Bytes, erase size 4 KiB, total 4 MiB Net: eth0: mvpp2-0, eth1: mvpp2-3, eth2: mvpp2-4 [PRIME], eth3: mvpp2-5 Marvell>>

brooksbp commented 6 years ago

I used the GCC 7.3.0 cross toolchain (aarch64-linux-gnu-gcc, ...) from Debian testing.

Ubuntu 18.04 is at GCC 7.3.0 as well.

kostapr commented 6 years ago

I haven't tried to use Debian cross toolchain. I planned to switch to GCC 7.3.0 once it get released by Linaro. I suggest you to use the lasted available Linaro AARCH64 binary releases for your builds.

afaerber commented 6 years ago

I ran into the same issue with openSUSE GCC 7.3.1: Distro toolchains are starting to default to PIE. You explicitly need to disable PIE for your target code via -fno-PIE or similar compiler options. Upstream TF-A's detection code is still incomplete though, it only works when the compiler was configured with --enable-default-pie whereas openSUSE uses a defaults file that can globally be installed and removed without reconfiguring GCC.