Hi, Andre

> +.globl _nonsec_init
> +_nonsec_init:

These two lines can be written:

ENTRY(_nonsec_init)



> +     mrc     p15, 0, r0, c0, c0, 0           @ read MIDR
> +     bfc     r0, #20, #4                     @ mask out variant
> +     bfc     r0, #0, #4                      @ and revision

Why do you hard code bit positions
even though MIDR_PRIMARY_PART_MASK is available?

> +     movw    r1, #lo(MIDR_CORTEX_A7_R0P0 & MIDR_PRIMARY_PART_MASK)
> +     movt    r1, #hi(MIDR_CORTEX_A7_R0P0 & MIDR_PRIMARY_PART_MASK)

Why don't you use "ldr   r*, =..." statement here?

> +     orr     r1, #(MIDR_CORTEX_A15_R0P0 & 0xf0)

This code relies on  the value of MIDR_CORTEX_A15_R0P0.



So, I think you can rewrite this part more simply as follows:


        mrc     p15, 0, r0, c0, c0, 0           @ read MIDR
        ldr     r1, =MIDR_PRIMARY_PART_MASK
        and     r0, r0, r1                      @ mask out variant and revision

        ldr     r1, =MIDR_CORTEX_A7_R0P0
        cmp     r0, r1                          @ check for Cortex-A7

        ldr     r1, =MIDR_CORTEX_A15_R0P0
        cmpne   r0, r1                          @ check for Cortex-A15




> +     bx      lr

Add ENDPROC(_nonsec_init) when beginning with ENTRY(_nonsec_init).


> +/* defined in cpu/armv7/nonsec_virt.S */
> +void _nonsec_init(void);

I think this comment is not necessary and
mantainancability is not excellent in case you renaming
nonsec_virt.S.


BTW, tag generation tool, GNU Global can help us
for searching definition.

If you begin routines in assembly with ENTRY(...),
GNU Global picks up these symbols for tag jump.



Masahiro Yamada

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to