ARM: 5739/1: ARM: allow empty ATAG_CORE

From: David Brown <davidb@quicinc.com>

The ATAG_CORE is allowed to be empty.  Although this is handled
by parse_tag_core(), __vet_atags during startup rejects this tag
unless it contains data.  Allow the initial tag to be either the
full size, or empty.

Signed-off-by: David Brown <davidb@quicinc.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
David Brown 2009-10-01 17:43:29 +01:00 committed by Russell King
parent 0a4bc5e89c
commit 31abdb7441

View File

@ -13,6 +13,7 @@
#define ATAG_CORE 0x54410001 #define ATAG_CORE 0x54410001
#define ATAG_CORE_SIZE ((2*4 + 3*4) >> 2) #define ATAG_CORE_SIZE ((2*4 + 3*4) >> 2)
#define ATAG_CORE_SIZE_EMPTY ((2*4) >> 2)
.align 2 .align 2
.type __switch_data, %object .type __switch_data, %object
@ -251,7 +252,8 @@ __vet_atags:
bne 1f bne 1f
ldr r5, [r2, #0] @ is first tag ATAG_CORE? ldr r5, [r2, #0] @ is first tag ATAG_CORE?
subs r5, r5, #ATAG_CORE_SIZE cmp r5, #ATAG_CORE_SIZE
cmpne r5, #ATAG_CORE_SIZE_EMPTY
bne 1f bne 1f
ldr r5, [r2, #4] ldr r5, [r2, #4]
ldr r6, =ATAG_CORE ldr r6, =ATAG_CORE