[DNX#2006033142000703] [U-Boot-Users] [PATCH] Update board NetStar
DENX Support System
support at denx.de
Fri Mar 31 23:50:29 CEST 2006
Hello list,
inside the automatic U-Boot patch tracking system a new ticket
[DNX#2006033142000703] was created:
<snip>
> Just to sync my local tree with public one. Generated against
> testing-NAND branch.
>
> Signed-off-by: Ladislav Michl <ladis at linux-mips.org>
>
> CHANGELOG:
> * Update board NetStar
> Patch by Ladislav Michl, 3 Nov 2005
>
>
> diff --git a/board/netstar/crcek.S b/board/netstar/crcek.S
> --- a/board/netstar/crcek.S
> +++ b/board/netstar/crcek.S
> @@ -13,6 +13,7 @@
> * u32 - crc32
> */
>
> +#include <config.h>
> #include "crcek.h"
>
> /**
> @@ -39,7 +40,7 @@
> .macro crcuj, offset, size
> mov r0, #0
> ldr r1, \offset
> - ldr r2, [r1]
> + ldr r2, [r1], #4
> cmp r2, r0 @ no data, no problem
> beq 2f
> tst r2, #3 @ unaligned size
> @@ -47,7 +48,6 @@
> ldr r3, \size
> cmp r2, r3 @ bogus size
> bhi 2f
> - add r1, r1, #4
> do_crc32
> ldr r1, [r1]
> 2:
> @@ -55,16 +55,71 @@
> .endm
>
> .macro wait, reg
> - mov \reg, #0x1000
> + mov \reg, #0x100000
> 3:
> subs \reg, \reg, #0x1
> bne 3b
> -
> .endm
> +
> .text
> .globl crcek
> crcek:
> - b crc2_bad
> + /* Enable I-cache */
> + mrc p15, 0, r1, c0, c0, 0 @ read C15 ID register
> + mrc p15, 0, r1, c0, c0, 1 @ read C15 Cache information register
> + mrc p15, 0, r1, c1, c0, 0 @ read C15 Control register
> + orr r1, r1, #0x1000 @ enable I-cache, map interrupt vector
> 0xffff0000
> + mcr p15, 0, r1, c1, c0, 0 @ write C15 Control register
> + mov r1, #0x00
> + mcr p15, 0, r1, c7, c5, 0 @ Flush I-cache
> + nop
> + nop
> + nop
> + nop
> +
> + /* Setup clocking mode */
> + ldr r0, MPU_CLKM_BASE @ base of CLOCK unit
> + ldrh r1, [r0, #0x18] @ ARM_SYST - get reset status
> + bic r1, r1, #(7 << 11) @ clear clock select
> + orr r1, r1, #(2 << 11) @ set synchronous scalable
> + mov r2, #0
> +loop:
> + cmp r2, #1 @ this loop will wait for at least 100 cycles
> + streqh r1, [r0, #0x18] @ before issuing next request from MPU
> + add r2, r2, #1 @ on the 1st run code is loaded into I-cache
> + cmp r2, #16 @ and second run will set clocking mode
> + bne loop
> + nop
> +
> + /* Setup clock dividers */
> + ldr r1, CKCTL_VAL
> + orr r1, r1, #0x2000 @ enable DSP clock
> + strh r1, [r0] @ setup clock divisors
> +
> + /* Setup DPLL to generate requested freq */
> + ldr r0, DPLL1_BASE @ base of DPLL1 register
> + mov r1, #0x0010 @ set PLL_ENABLE
> + orr r1, r1, #0x2000 @ set IOB to new locking
> + orr r1, r1, #(OMAP5910_DPLL_MUL << 7) @ setup multiplier CLKREF
> + orr r1, r1, #(OMAP5910_DPLL_DIV << 5) @ setup divider CLKREF
> + strh r1, [r0] @ write
> +
> +locking:
> + ldrh r1, [r0] @ get DPLL value
> + tst r1, #0x01
> + beq locking @ while LOCK not set
> +
</snip>
Your U-Boot support team
More information about the U-Boot
mailing list