X-Git-Url: https://git.kernelconcepts.de/?p=karo-tx-uboot.git;a=blobdiff_plain;f=arch%2Farm%2Fcpu%2Farm926ejs%2Fmxs%2Fspl_boot.c;h=74bc009dc5b0bc1a5aba1fc07d54a55036408a19;hp=0392afd9be4b024083be19f7e359dc7f0d4d9957;hb=8ec346e17b5bf6897f038b8ecc3ecd073e097a22;hpb=a78dac79ede7fbb4c9e816abc879655540c3f076 diff --git a/arch/arm/cpu/arm926ejs/mxs/spl_boot.c b/arch/arm/cpu/arm926ejs/mxs/spl_boot.c index 0392afd9be..74bc009dc5 100644 --- a/arch/arm/cpu/arm926ejs/mxs/spl_boot.c +++ b/arch/arm/cpu/arm926ejs/mxs/spl_boot.c @@ -22,15 +22,18 @@ * takes a few seconds to roll. The boot doesn't take that long, so to keep the * code simple, it doesn't take rolling into consideration. */ +/* + * There's nothing to be taken into consideration for the rollover. + * Two's complement arithmetic used correctly does all that's needed + * automagically. + */ void early_delay(int delay) { struct mxs_digctl_regs *digctl_regs = (struct mxs_digctl_regs *)MXS_DIGCTL_BASE; + u32 start = readl(&digctl_regs->hw_digctl_microseconds); - uint32_t st = readl(&digctl_regs->hw_digctl_microseconds); - st += delay; - while (st > readl(&digctl_regs->hw_digctl_microseconds)) - ; + while (readl(&digctl_regs->hw_digctl_microseconds) - start < delay); } #define MUX_CONFIG_BOOTMODE_PAD (MXS_PAD_3V3 | MXS_PAD_4MA | MXS_PAD_NOPULL) @@ -120,7 +123,7 @@ void mxs_common_spl_init(const iomux_cfg_t *iomux_setup, mxs_power_wait_pswitch(); } -/* Support aparatus */ +/* Support apparatus */ inline void board_init_f(unsigned long bootflag) { for (;;)