Fixed
Created: Apr 5, 2016
Updated: Dec 3, 2018
Resolved Date: Jun 2, 2016
Found In Version: 8.0.0.1
Fix Version: 8.0.0.6
Severity: Standard
Applicable for: Wind River Linux 8
Component/s: Kernel
The following code is from arch/arm/kernel/head.S in wrl8 rcpl1. Since addruart returns the physical address in r7 (which is a 32 bit register) and the physical address of the uart is above 4G (on axm55xx). This simply can't work.
addruart r7, r3, r0
mov r3, r3, lsr #SECTION_SHIFT
mov r3, r3, lsl #PMD_ORDER
add r0, r4, r3
mov r3, r7, lsr #SECTION_SHIFT
ldr r7, [r10, #PROCINFO_IO_MMUFLAGS] @ io_mmuflags
orr r3, r7, r3, lsl #SECTION_SHIFT
#ifdef CONFIG_ARM_LPAE
mov r7, #1 << (54 - 32) @ XN
#ifdef CONFIG_CPU_ENDIAN_BE8
str r7, [r0], #4
str r3, [r0], #4
#else
str r3, [r0], #4
str r7, [r0], #4
#endif