From: Albert ARIBAUD <albert.u.boot@aribaud.net>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v4 0/9] armv7: cache maintenance operations
Date: Tue, 28 Jun 2011 07:41:51 +0200 [thread overview]
Message-ID: <4E09699F.8010705@aribaud.net> (raw)
In-Reply-To: <1308303054-8727-1-git-send-email-aneesh@ti.com>
Le 17/06/2011 11:30, Aneesh V a ?crit :
> With D-cache and MMU enabled for ARM in u-boot it becomes imperative to
> support a minimal set of cache maintenance operations and necessary
> initializations before enabling MMU.
>
> This series of patches attempt to do the following for armv7:
> * Necessary initialization sequence before enabling MMU that includes
> invalidation of TLB, data caches, branch predictor array etc.
> * Framework for supporting SOC specific outer caches in a generic manner
> (using a structure of function pointers - inspired by the Linux
> implementation)
> * Generic armv7 cache maintenance operations for caches known to the CPU
> * Support for ARM PL310 L2 cache controller used in OMAP4
> * Cleanup of the cleanup_before_linux() function
> * Adapting all armv7 SOCs to use the new framework and removing
> duplicated code
>
> Testing:
> * Extensive testing on OMAP4430SDP and OMAP3430SDP by creating coherency
> issues and solving them using the maintenance routines
> - Eg: memfill a region of memory with a known pattern
> - Invalidate the region
> - Read back and compare the region with the original pattern
> - If match fails it means that invalidate is successful
> - Now add a flush call just before the invalidate
> - If match succeeds it means that flush was successful
> - Outer caches were tested with experiments involving making the
> function pointers NULL
> * Kernel booting on OMAP4430SDP and OMAP3430SDP
> Note: v2 has been tested only on OMAP4430SDP
>
> V2:
> * Pointer based callback mechanism for outer cache operations
> changed to a weakly linked functions.
> * Change -march=armv7-a back to armv5
> * Moved utility macros out of armv7.h
> * Added documentation for new CONFIG options.
> * Changed implementation of log2n to not use CLZ instruction as armv4
> doesn't support this instruction and newly added Tegra2 uses
> -march=armv4
> * Blank line after local variable declarations - fixed globally
> * Explicitly added an empty flush_cache() under
> #ifdef CONFIG_SYS_NO_DCACHE
> * Removed the print inside the weakly linked stub function -
> __arm_init_before_mmu
> * Fixed signature of flush_cache in cache.c
> * More descriptive commit message for the PL310 support patch
> * C struct for PL310 register accesses
> * Fixed white space issues
>
> V3:
> * Rebased to latest HEAD of master
> * Added comments on changes done in V2 in individual patch headers. This
> was missing in V2
>
> V4:
> * Removed bit field manipulation macros
> * Renamed CONFIG_SYS_NO_*CACHE flags to CONFIG_SYS_*CACHE_OFF globally
>
> Aneesh V (9):
> arm: make default implementation of cache_flush() weakly linked
> armv7: cache maintenance operations for armv7
> armv7: rename cache related CONFIG flags
> armv7: integrate cache maintenance support
> arm: minor fixes for cache and mmu handling
> armv7: add PL310 support to u-boot
> armv7: adapt omap4 to the new cache maintenance framework
> armv7: adapt omap3 to the new cache maintenance framework
> armv7: adapt s5pc1xx to the new cache maintenance framework
>
> README | 11 +
> arch/arm/cpu/arm1136/start.S | 4 +-
> arch/arm/cpu/armv7/Makefile | 2 +-
> arch/arm/cpu/armv7/cache_v7.c | 394 ++++++++++++++++++++
> arch/arm/cpu/armv7/cpu.c | 50 +--
> arch/arm/cpu/armv7/omap3/Makefile | 1 -
> arch/arm/cpu/armv7/omap3/board.c | 136 ++++++-
> arch/arm/cpu/armv7/omap3/cache.S | 263 -------------
> arch/arm/cpu/armv7/omap3/lowlevel_init.S | 32 ++
> arch/arm/cpu/armv7/omap4/board.c | 12 +
> arch/arm/cpu/armv7/omap4/lowlevel_init.S | 9 +
> arch/arm/cpu/armv7/s5pc1xx/cache.S | 88 +----
> arch/arm/cpu/armv7/start.S | 18 +-
> arch/arm/include/asm/arch-omap3/omap3.h | 20 +
> arch/arm/include/asm/arch-omap3/sys_proto.h | 10 +-
> arch/arm/include/asm/arch-omap4/sys_proto.h | 2 +-
> arch/arm/include/asm/arch-s5pc1xx/sys_proto.h | 3 -
> arch/arm/include/asm/armv7.h | 67 ++++
> arch/arm/include/asm/global_data.h | 2 +-
> arch/arm/include/asm/pl310.h | 73 ++++
> .../omap4/lowlevel_init.S => include/asm/utils.h} | 51 ++-
> arch/arm/lib/Makefile | 3 +-
> arch/arm/lib/board.c | 8 +-
> arch/arm/lib/cache-cp15.c | 22 +-
> arch/arm/lib/cache-pl310.c | 115 ++++++
> arch/arm/lib/cache.c | 20 +-
> board/armltd/integrator/split_by_variant.sh | 8 +-
> common/cmd_bdinfo.c | 2 +-
> include/common.h | 5 +-
> include/configs/B2.h | 3 +-
> include/configs/assabet.h | 2 +-
> include/configs/ca9x4_ct_vxp.h | 2 +-
> include/configs/cerf250.h | 2 +-
> include/configs/cradle.h | 2 +-
> include/configs/csb226.h | 2 +-
> include/configs/dnp1110.h | 2 +-
> include/configs/efikamx.h | 2 +-
> include/configs/evb4510.h | 3 +-
> include/configs/gcplus.h | 2 +-
> include/configs/innokom.h | 2 +-
> include/configs/jornada.h | 2 +-
> include/configs/lart.h | 2 +-
> include/configs/lubbock.h | 2 +-
> include/configs/mx51evk.h | 2 +-
> include/configs/mx53evk.h | 2 +-
> include/configs/omap4_panda.h | 8 +-
> include/configs/omap4_sdp4430.h | 8 +-
> include/configs/pleb2.h | 2 +-
> include/configs/pxa255_idp.h | 2 +-
> include/configs/s5pc210_universal.h | 2 +-
> include/configs/shannon.h | 2 +-
> include/configs/tegra2-common.h | 2 +-
> include/configs/trizepsiv.h | 2 +-
> include/configs/vision2.h | 2 +-
> include/configs/xaeniax.h | 2 +-
> include/configs/xm250.h | 2 +-
> include/configs/zylonite.h | 2 +-
> 57 files changed, 1022 insertions(+), 479 deletions(-)
> create mode 100644 arch/arm/cpu/armv7/cache_v7.c
> delete mode 100644 arch/arm/cpu/armv7/omap3/cache.S
> create mode 100644 arch/arm/include/asm/armv7.h
> create mode 100644 arch/arm/include/asm/pl310.h
> copy arch/arm/{cpu/armv7/omap4/lowlevel_init.S => include/asm/utils.h} (66%)
> create mode 100644 arch/arm/lib/cache-pl310.c
Applied to u-boot-arm/master, thanks.
Amicalement,
--
Albert.
next prev parent reply other threads:[~2011-06-28 5:41 UTC|newest]
Thread overview: 105+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-08 13:07 [U-Boot] [PATCH v2 00/10] armv7: cache maintenance operations Aneesh V
2011-03-08 13:07 ` [U-Boot] [PATCH v2 01/10] arm: make default implementation of cache_flush() weakly linked Aneesh V
2011-03-08 13:07 ` [U-Boot] [PATCH v2 02/10] armv7: add miscellaneous utility macros Aneesh V
2011-03-08 13:07 ` [U-Boot] [PATCH v2 03/10] armv7: cache maintenance operations for armv7 Aneesh V
2011-03-08 13:07 ` [U-Boot] [PATCH v2 04/10] armv7: replace CONFIG_L2_OFF with CONFIG_SYS_NO_L2CACHE Aneesh V
2011-03-08 13:07 ` [U-Boot] [PATCH v2 05/10] armv7: integrate cache maintenance support Aneesh V
2011-03-08 13:07 ` [U-Boot] [PATCH v2 06/10] arm: minor fixes for cache and mmu handling Aneesh V
2011-03-08 13:07 ` [U-Boot] [PATCH v2 07/10] armv7: add PL310 support to u-boot Aneesh V
2011-03-08 13:07 ` [U-Boot] [PATCH v2 08/10] armv7: adapt omap4 to the new cache maintenance framework Aneesh V
2011-03-08 13:07 ` [U-Boot] [PATCH v2 09/10] armv7: adapt omap3 " Aneesh V
2011-03-08 13:07 ` [U-Boot] [PATCH v2 10/10] armv7: adapt s5pc1xx " Aneesh V
2011-04-27 1:05 ` [U-Boot] [PATCH v2 00/10] armv7: cache maintenance operations Simon Glass
2011-05-05 4:48 ` Simon Glass
2011-05-10 10:25 ` Aneesh V
2011-05-12 12:11 ` [U-Boot] [PATCH v3 " Aneesh V
2011-05-12 12:11 ` [U-Boot] [PATCH v3 01/10] arm: make default implementation of cache_flush() weakly linked Aneesh V
2011-05-12 12:11 ` [U-Boot] [PATCH v3 02/10] armv7: add miscellaneous utility macros Aneesh V
2011-05-15 18:44 ` Wolfgang Denk
2011-05-15 22:15 ` Simon Glass
2011-05-16 2:23 ` Eric Cooper
2011-05-16 14:50 ` Simon Glass
2011-05-16 15:52 ` Wolfgang Denk
2011-05-16 5:51 ` Wolfgang Denk
2011-05-17 3:47 ` Simon Glass
2011-05-17 5:27 ` Wolfgang Denk
2011-05-17 8:44 ` Aneesh V
2011-05-17 9:27 ` Wolfgang Denk
2011-05-31 7:54 ` V, Aneesh
2011-06-01 2:13 ` Simon Glass
2011-06-01 6:01 ` Aneesh V
2011-05-16 15:07 ` Aneesh V
2011-06-06 15:57 ` Aneesh V
2011-06-06 18:50 ` Wolfgang Denk
2011-06-07 9:01 ` Aneesh V
2011-06-07 10:39 ` Wolfgang Denk
2011-06-07 12:14 ` Aneesh V
2011-06-07 15:19 ` Simon Glass
2011-06-07 15:40 ` Wolfgang Denk
2011-06-08 11:53 ` Aneesh V
2011-06-08 21:41 ` Wolfgang Denk
2011-06-14 8:45 ` Aneesh V
2011-06-14 10:51 ` Wolfgang Denk
2011-06-14 11:39 ` Aneesh V
2011-06-14 13:53 ` Wolfgang Denk
2011-06-14 15:11 ` Simon Glass
2011-06-14 18:54 ` Wolfgang Denk
2011-06-15 15:19 ` Simon Glass
2011-06-15 8:48 ` Aneesh V
2011-06-15 9:20 ` Wolfgang Denk
2011-06-15 11:01 ` Aneesh V
2011-06-15 12:04 ` Wolfgang Denk
2011-06-15 12:42 ` Graeme Russ
2011-06-15 12:51 ` Wolfgang Denk
2011-06-15 13:03 ` Graeme Russ
2011-06-16 11:07 ` Graeme Russ
2011-06-16 11:46 ` Wolfgang Denk
2011-06-16 23:58 ` Graeme Russ
2011-06-16 5:39 ` Aneesh V
2011-06-16 6:19 ` Graeme Russ
2011-06-16 8:15 ` Wolfgang Denk
2011-06-16 11:10 ` Graeme Russ
2011-05-12 12:11 ` [U-Boot] [PATCH v3 03/10] armv7: cache maintenance operations for armv7 Aneesh V
2011-05-15 18:51 ` Wolfgang Denk
2011-05-17 9:17 ` Aneesh V
2011-05-17 9:31 ` Wolfgang Denk
2011-05-17 9:37 ` Aneesh V
2011-05-17 9:58 ` Aneesh V
2011-06-16 14:17 ` Simon Glass
2011-05-12 12:11 ` [U-Boot] [PATCH v3 04/10] armv7: replace CONFIG_L2_OFF with CONFIG_SYS_NO_L2CACHE Aneesh V
2011-05-15 18:53 ` Wolfgang Denk
2011-05-17 9:59 ` Aneesh V
2011-05-17 11:09 ` Wolfgang Denk
2011-06-06 11:39 ` Aneesh V
2011-06-15 10:13 ` Wolfgang Denk
2011-05-12 12:11 ` [U-Boot] [PATCH v3 05/10] armv7: integrate cache maintenance support Aneesh V
2011-05-15 18:55 ` Wolfgang Denk
2011-05-17 10:20 ` Aneesh V
2011-05-17 11:14 ` Wolfgang Denk
2011-05-17 12:06 ` Aneesh V
2011-05-17 12:28 ` Wolfgang Denk
2011-05-17 13:28 ` Aneesh V
2011-05-17 21:37 ` Wolfgang Denk
2011-05-12 12:11 ` [U-Boot] [PATCH v3 06/10] arm: minor fixes for cache and mmu handling Aneesh V
2011-05-12 12:11 ` [U-Boot] [PATCH v3 07/10] armv7: add PL310 support to u-boot Aneesh V
2011-05-12 12:11 ` [U-Boot] [PATCH v3 08/10] armv7: adapt omap4 to the new cache maintenance framework Aneesh V
2011-05-15 18:57 ` Wolfgang Denk
2011-05-12 12:11 ` [U-Boot] [PATCH v3 09/10] armv7: adapt omap3 " Aneesh V
2011-05-15 18:58 ` Wolfgang Denk
2011-05-12 12:11 ` [U-Boot] [PATCH v3 10/10] armv7: adapt s5pc1xx " Aneesh V
2011-05-15 18:59 ` Wolfgang Denk
2011-06-17 9:30 ` [U-Boot] [PATCH v4 0/9] armv7: cache maintenance operations Aneesh V
2011-06-22 17:41 ` Albert ARIBAUD
2011-06-23 5:57 ` V, Aneesh
2011-06-23 19:24 ` Paulraj, Sandeep
2011-06-28 1:44 ` Minkyu Kang
2011-06-28 5:41 ` Albert ARIBAUD [this message]
2011-06-17 9:30 ` [U-Boot] [PATCH v4 1/9] arm: make default implementation of cache_flush() weakly linked Aneesh V
2011-06-17 9:30 ` [U-Boot] [PATCH v4 2/9] armv7: cache maintenance operations for armv7 Aneesh V
2011-06-17 9:30 ` [U-Boot] [PATCH v4 3/9] armv7: rename cache related CONFIG flags Aneesh V
2011-06-17 9:30 ` [U-Boot] [PATCH v4 4/9] armv7: integrate cache maintenance support Aneesh V
2011-06-17 9:30 ` [U-Boot] [PATCH v4 5/9] arm: minor fixes for cache and mmu handling Aneesh V
2011-06-17 9:30 ` [U-Boot] [PATCH v4 6/9] armv7: add PL310 support to u-boot Aneesh V
2011-06-17 9:30 ` [U-Boot] [PATCH v4 7/9] armv7: adapt omap4 to the new cache maintenance framework Aneesh V
2011-06-17 9:30 ` [U-Boot] [PATCH v4 8/9] armv7: adapt omap3 " Aneesh V
2011-06-17 9:30 ` [U-Boot] [PATCH v4 9/9] armv7: adapt s5pc1xx " Aneesh V
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E09699F.8010705@aribaud.net \
--to=albert.u.boot@aribaud.net \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.