[U-Boot] [PATCH v3 1/2] Errata/ARM57: Add basic constructs to handle and apply A57 specific erratas

Scott Wood scottwood at freescale.com
Thu Jan 22 16:30:33 CET 2015


On Thu, 2015-01-22 at 20:42 +0530, Bhupesh Sharma wrote:
> +WEAK(apply_core_errata)
> +
> +	mov	x29, lr			/* Save LR */
> +	/* For now, we support Cortex-A57 specific errata only */
> +
> +	/* Check if we are running on a Cortex-A57 core */
> +	branch_if_a57_core x0, apply_a57_core_errata
> +	b 0f

Instead of branching forward here, have the a57 code branch back at the
end.

>  /*
> + * Branch if current processor is a Cortex-A57 core.
> + */
> +.macro	branch_if_a57_core, xreg, a57_label
> +	mrs	\xreg, midr_el1
> +	lsr	\xreg, \xreg, #4
> +	and	\xreg, \xreg, #0x00000FFF
> +	cmp	\xreg, #0xD07		/* Cortex-A57 MPCore processor. */
> +	b.eq	\a57_label
> +.endm
> +
> +/*
> + * Branch if current processor is a Cortex-A53 core.
> + */
> +.macro	branch_if_a53_core, xreg, a53_label
> +	mrs	\xreg, midr_el1
> +	lsr	\xreg, \xreg, #4
> +	cmp	\xreg, #0xD03		/* Cortex-A53 MPCore processor. */
> +	b.eq	\a53_label
> +.endm

Why do you AND with 0xfff for a57 but not a53?

Where else do you expect to use these macros?

-Scott




More information about the U-Boot mailing list