# HG changeset patch # User msalter # Date 1044397676 0 # Node ID eb5d4fbc238da098c42b48b6d2902d2c641819b1 # Parent 6a4aa156dda16161fae9bd39a5763e2cbdece61e misc xscale fixes diff --git a/packages/hal/arm/xscale/cores/current/ChangeLog b/packages/hal/arm/xscale/cores/current/ChangeLog --- a/packages/hal/arm/xscale/cores/current/ChangeLog +++ b/packages/hal/arm/xscale/cores/current/ChangeLog @@ -1,3 +1,13 @@ +2003-02-04 Mark Salter + + * cdl/hal_arm_xscale_core.cdl (CYGSEM_HAL_ARM_XSCALE_BTB): New option. + + * include/hal_xscale.h: Make enabling of BTB conditional on + CYGSEM_HAL_ARM_XSCALE_BTB. + + * include/hal_cache.h: Support systems using write-through caching + which need no DCACHE_FLUSH_AREA. + 2002-11-13 Mark Salter * src/xscale_stub.c (find_watch_address): Squelch compiler warning. @@ -24,7 +34,7 @@ 2002-09-19 Mark Salter +#include #ifdef __ASSEMBLER__ // Useful CPU macros @@ -75,7 +76,11 @@ // Enable the BTB .macro BTB_INIT reg mrc p15, 0, \reg, c1, c0, 0 +#ifdef CYGSEM_HAL_ARM_XSCALE_BTB orr \reg, \reg, #MMU_Control_BTB +#else + bic \reg, \reg, #MMU_Control_BTB +#endif mcr p15, 0, \reg, c1, c0, 0 CPWAIT \reg .endm diff --git a/packages/hal/arm/xscale/iop310/current/ChangeLog b/packages/hal/arm/xscale/iop310/current/ChangeLog --- a/packages/hal/arm/xscale/iop310/current/ChangeLog +++ b/packages/hal/arm/xscale/iop310/current/ChangeLog @@ -1,3 +1,9 @@ +2003-02-04 Mark Salter + + * include/hal_iop310.h (IOP310_EARLY_PCI_SETUP): Fix ifdef test. + + * cdl/hal_arm_xscale_iop310.cdl: Remove CYGSEM_HAL_ARM_IOP310_BTB. + 2003-01-22 Mark Salter * include/var_io.h: Remove unused duplicate code. diff --git a/packages/hal/arm/xscale/iop310/current/cdl/hal_arm_xscale_iop310.cdl b/packages/hal/arm/xscale/iop310/current/cdl/hal_arm_xscale_iop310.cdl --- a/packages/hal/arm/xscale/iop310/current/cdl/hal_arm_xscale_iop310.cdl +++ b/packages/hal/arm/xscale/iop310/current/cdl/hal_arm_xscale_iop310.cdl @@ -294,19 +294,6 @@ cdl_package CYGPKG_HAL_ARM_XSCALE_IOP310 compiler flags used only in building this package, and details of which tests are built." - cdl_option CYGSEM_HAL_ARM_IOP310_BTB { - display "Enable Branch Target Buffer" - flavor bool - default_value 0 - description " - Enable this option to turn on the IQ80200 Branch Target Buffer - which is used for branch prediction. This is turned off by - default because of CPU errata which may cause thumb branches - to execute improperly on A-step CPUs. Normal ARM programs are - not affected by this errata, so enabling this option for - ARM-only applications may improve program performance." - } - cdl_option CYGSEM_HAL_ARM_IOP310_CLEAR_PCI_RETRY { display "Have RedBoot clear PCI Retry bit" flavor bool diff --git a/packages/hal/arm/xscale/iop310/current/include/hal_iop310.h b/packages/hal/arm/xscale/iop310/current/include/hal_iop310.h --- a/packages/hal/arm/xscale/iop310/current/include/hal_iop310.h +++ b/packages/hal/arm/xscale/iop310/current/include/hal_iop310.h @@ -646,7 +646,7 @@ extern unsigned int _80312_EMISR; // On sub \reg1, \reg_dram_size, #1 // dram_size - 1 mvn \reg1, \reg1 // 1s complement str \reg1, [\reg0] -#ifdef CYGSEM_HAL_ARM_IQ80310_CLEAR_PCI_RETRY +#ifdef CYGSEM_HAL_ARM_IOP310_CLEAR_PCI_RETRY ldr \reg0, =EBCR_ADDR mov \reg1, #0x0008 strh \reg1, [\reg0] diff --git a/packages/hal/arm/xscale/iq80310/current/ChangeLog b/packages/hal/arm/xscale/iq80310/current/ChangeLog --- a/packages/hal/arm/xscale/iq80310/current/ChangeLog +++ b/packages/hal/arm/xscale/iq80310/current/ChangeLog @@ -1,3 +1,13 @@ +2003-01-31 Mark Salter + + * include/hal_platform_setup.h: Disabling of write buffer + is not necessary. + + * misc/redboot_RAM.ecm: Don't enable BTB for RedBoot. + * misc/redboot_RAMA.ecm: Ditto. + * misc/redboot_ROM.ecm: Ditto. + * misc/redboot_ROMA.ecm: Ditto. + 2003-01-30 Mark Salter * include/pkgconf/mlt_*: Adjust RAM size to match max supported. diff --git a/packages/hal/arm/xscale/iq80310/current/include/hal_platform_setup.h b/packages/hal/arm/xscale/iq80310/current/include/hal_platform_setup.h --- a/packages/hal/arm/xscale/iq80310/current/include/hal_platform_setup.h +++ b/packages/hal/arm/xscale/iq80310/current/include/hal_platform_setup.h @@ -11,7 +11,7 @@ //####ECOSGPLCOPYRIGHTBEGIN#### // ------------------------------------------- // This file is part of eCos, the Embedded Configurable Operating System. -// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. +// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Red Hat, Inc. // // eCos is free software; you can redistribute it and/or modify it under // the terms of the GNU General Public License as published by the Free @@ -253,12 +253,6 @@ mcr p15,0,r0,c7,c10,4 CPWAIT r0 - // Disable write buffer coalescing - mrc p15,0,r0,c1,c0,1 - orr r0,r0,#1 // set the disable bit - mcr p15,0,r0,c1,c0,1 - CPWAIT r0 - // Delay appx 60 ms to let battery-backup reset complete DELAY_FOR 0x400000, r0 // Eventually we will be able to check a register bit diff --git a/packages/hal/arm/xscale/iq80310/current/misc/redboot_RAM.ecm b/packages/hal/arm/xscale/iq80310/current/misc/redboot_RAM.ecm --- a/packages/hal/arm/xscale/iq80310/current/misc/redboot_RAM.ecm +++ b/packages/hal/arm/xscale/iq80310/current/misc/redboot_RAM.ecm @@ -133,3 +133,7 @@ cdl_option CYGSEM_IO_FLASH_VERIFY_PROGRA cdl_option CYGPKG_HAL_GDB_FILEIO { user_value 1 }; + +cdl_option CYGSEM_HAL_ARM_XSCALE_BTB { + user_value 0 +}; diff --git a/packages/hal/arm/xscale/iq80310/current/misc/redboot_RAMA.ecm b/packages/hal/arm/xscale/iq80310/current/misc/redboot_RAMA.ecm --- a/packages/hal/arm/xscale/iq80310/current/misc/redboot_RAMA.ecm +++ b/packages/hal/arm/xscale/iq80310/current/misc/redboot_RAMA.ecm @@ -92,3 +92,7 @@ cdl_option CYGSEM_IO_FLASH_VERIFY_PROGRA cdl_option CYGPKG_HAL_GDB_FILEIO { user_value 1 }; + +cdl_option CYGSEM_HAL_ARM_XSCALE_BTB { + user_value 0 +}; diff --git a/packages/hal/arm/xscale/iq80310/current/misc/redboot_ROM.ecm b/packages/hal/arm/xscale/iq80310/current/misc/redboot_ROM.ecm --- a/packages/hal/arm/xscale/iq80310/current/misc/redboot_ROM.ecm +++ b/packages/hal/arm/xscale/iq80310/current/misc/redboot_ROM.ecm @@ -137,3 +137,7 @@ cdl_option CYGSEM_IO_FLASH_VERIFY_PROGRA cdl_option CYGPKG_HAL_GDB_FILEIO { user_value 1 }; + +cdl_option CYGSEM_HAL_ARM_XSCALE_BTB { + user_value 0 +}; diff --git a/packages/hal/arm/xscale/iq80310/current/misc/redboot_ROMA.ecm b/packages/hal/arm/xscale/iq80310/current/misc/redboot_ROMA.ecm --- a/packages/hal/arm/xscale/iq80310/current/misc/redboot_ROMA.ecm +++ b/packages/hal/arm/xscale/iq80310/current/misc/redboot_ROMA.ecm @@ -100,3 +100,7 @@ cdl_option CYGSEM_IO_FLASH_VERIFY_PROGRA cdl_option CYGPKG_HAL_GDB_FILEIO { user_value 1 }; + +cdl_option CYGSEM_HAL_ARM_XSCALE_BTB { + user_value 0 +};