Booting U-Boot on an LS1043A-based board

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Booting U-Boot on an LS1043A-based board

2,085 Views
johnschmoller
Contributor I

Hello all,

We've got a new LS1043 based SBC and it's generally working well. We can get to the U-Boot prompt, boot Linux, etc. But in order to do this, we had to remove most of the functions in arch_cpu_init(). Specifically, we have to remove __asm_invalidate_dcache_all(), __asm_invalidate_tlb_all(), and early_mmu_setup(). This is our first ARM card, so I'm still getting up to speed on ARM, but I can't figure out why these things would cause the board to hang. We don't have an ARM JTAG debugger, so I haven't been able to look at exactly what's going wrong. Anyone got any suggestions?

Thanks,

John

Labels (1)
Tags (1)
0 Kudos
Reply
5 Replies

1,359 Views
ufedor
NXP Employee
NXP Employee

Have you tried to update U-Boot using pre-built image from the SDK Images ISO?

0 Kudos
Reply

1,359 Views
johnschmoller
Contributor I

Hello Fedor, 

Sorry for the delay. The pre-built images wouldn't work on any board other than your development system because of your QIXIS FPGA. I downloaded the 2.0 SDK and I had to take quite a bit out of the LS1043AQDS image, but I tested with and without those lines I mentioned and it boots without and doesn't with.

I did notice one very interesting thing. We were able to get the QSPI image working. This QSPI QDS image does not include arch_cpu_init().  The SPL image only includes arch_cpu_init() if the board is an LS2080A. Could this just be an oversight for NOR boot?  Perhaps arch_cpu_init() should not be called for the LS1043A?

Thanks,

John

0 Kudos
Reply

1,359 Views
ufedor
NXP Employee
NXP Employee

Please try pre-built images from the SDK 2.0 (QorIQ Linux SDK v2.0 AARCH64 IMAGE.iso) which contains images for the LS1043ARDB.

0 Kudos
Reply

1,359 Views
johnschmoller
Contributor I

We have an RDB, but we cannot run the precompiled binaries on our hardware. The precompiled binary does run on the RDB. But SDK 2.0 also does not call arch_cpu_init(). That call was introduced in mainline when ARM moved to the unified arch/arm/lib/board.c. It seems like that function is the weak link, it's not meant to be called on the LS1043A. Can you confirm that this needs to be changed in mainline U-Boot?

0 Kudos
Reply

1,359 Views
ufedor
NXP Employee
NXP Employee

> We have an RDB, but we cannot run the precompiled binaries on our hardware.

> The precompiled binary does run on the RDB.

This means that you have to doublecheck your design referring the AN5012 - LS1043A Design Checklist and the processor's Data Sheet (pay special attention to the notes after Table 1 and Table 2).

0 Kudos
Reply