[U-Boot-Users] [DNX#2006072742000035] [PATCH] improve the CSB bus and DMA performance of [...]
DENX Support System
support at denx.de
Thu Jul 27 11:30:02 CEST 2006
Hello list,
inside the automatic U-Boot patch tracking system a new ticket
[DNX#2006072742000035] was created:
<snip>
> All,
>
> The default pipeline depth of 83xx CSB is 1 outstanding transcation. If
> change it to 4, the CSB performace will improve. Change the DMA transfer
> with cache line burst read/write The DMA performance improved 6x.
>
> CHANGELOG:
> * improve the coherency system bus performance and
> improve the DMA transfer performace.
> Patch by Dave Liu, 21 July 2006
>
>
> diff --git a/cpu/mpc83xx/cpu.c b/cpu/mpc83xx/cpu.c
> index 20bba6c..2eea221 100644
> --- a/cpu/mpc83xx/cpu.c
> +++ b/cpu/mpc83xx/cpu.c
> @@ -257,9 +257,7 @@ int dma_xfer(void *dest, u32 count, void
> __asm__ __volatile__ ("isync");
>
> /* init direct transfer, clear CS bit */
> - dmamr0 = (DMA_CHANNEL_TRANSFER_MODE_DIRECT |
> - DMA_CHANNEL_SOURCE_ADDRESS_HOLD_8B |
> - DMA_CHANNEL_SOURCE_ADRESSS_HOLD_EN);
> + dmamr0 = DMA_CHANNEL_TRANSFER_MODE_DIRECT;
>
> dma->dmamr0 = swab32(dmamr0);
>
> diff --git a/cpu/mpc83xx/cpu_init.c b/cpu/mpc83xx/cpu_init.c index
> 6ed0992..8366cb7 100644
> --- a/cpu/mpc83xx/cpu_init.c
> +++ b/cpu/mpc83xx/cpu_init.c
> @@ -69,7 +69,8 @@ #endif
> #ifdef CFG_SICRL
> im->sysconf.sicrl = CFG_SICRL;
> #endif
> -
> + /* Set CSB bus pipeline depth */
> + im->arbiter.acr |= ACR_PIPE_DEP_IS_03;
> /*
> * Memory Controller:
> */
>
> diff --git a/include/asm-ppc/immap_83xx.h b/include/asm-ppc/immap_83xx.h
> index c2b4c5c..24191c5 100644
> --- a/include/asm-ppc/immap_83xx.h
> +++ b/include/asm-ppc/immap_83xx.h
> @@ -371,6 +371,7 @@ typedef struct arbiter8349 {
> u32 acr; /* Arbiter Configuration Register */
> #define ACR_COREDIS 0x10000000 /* Core disable. */
> #define ACR_PIPE_DEP 0x00070000 /* Pipeline depth (number of
> outstanding transactions). */
> +#define ACR_PIPE_DEP_IS_03 0x00030000 /* Pipeline depth is 4
> */
> #define ACR_PCI_RPTCNT 0x00007000 /* PCI repeat count. */
> #define ACR_RPTCNT 0x00000700 /* Repeat count. */
> #define ACR_APARK 0x00000030 /* Address parking. */
</snip>
Your U-Boot support team
More information about the U-Boot
mailing list