[PATCH] arm: ensure that cache manager operations are implemented for CPUs using cache.
Pavel Pisa
pisa at cmp.felk.cvut.cz
Sat Jun 25 15:15:29 UTC 2016
Hello all,
I have tested that changes do not break build of next BSPs
altcycv_devkit c/src/lib/libbsp/arm/altera-cyclone-v
altcycv_devkit_smp c/src/lib/libbsp/arm/altera-cyclone-v
atsamv c/src/lib/libbsp/arm/atsam
beagleboneblack c/src/lib/libbsp/arm/beagle
csb336 c/src/lib/libbsp/arm/csb336
csb337 c/src/lib/libbsp/arm/csb337
csb637 c/src/lib/libbsp/arm/csb337
kit637_v6 c/src/lib/libbsp/arm/csb337
edb7312 c/src/lib/libbsp/arm/edb7312
arm1136jfs c/src/lib/libbsp/arm/gdbarmsim
arm1136js c/src/lib/libbsp/arm/gdbarmsim
arm7tdmi c/src/lib/libbsp/arm/gdbarmsim
arm920 c/src/lib/libbsp/arm/gdbarmsim
armcortexa9 c/src/lib/libbsp/arm/gdbarmsim
gumstix c/src/lib/libbsp/arm/gumstix
lm3s6965 c/src/lib/libbsp/arm/lm3s69xx
lm4f120 c/src/lib/libbsp/arm/lm3s69xx
lpc17xx_ea_ram c/src/lib/libbsp/arm/lpc24xx
lpc24xx_ea c/src/lib/libbsp/arm/lpc24xx
lpc40xx_ea_ram c/src/lib/libbsp/arm/lpc24xx
lpc40xx_ea_rom_int c/src/lib/libbsp/arm/lpc24xx
lpc32xx_mzx c/src/lib/libbsp/arm/lpc32xx
raspberrypi2 c/src/lib/libbsp/arm/raspberrypi
raspberrypi c/src/lib/libbsp/arm/raspberrypi
realview_pbx_a9_qemu c/src/lib/libbsp/arm/realview-pbx-a9
realview_pbx_a9_qemu_smp c/src/lib/libbsp/arm/realview-pbx-a9
rtl22xx c/src/lib/libbsp/arm/rtl22xx
rtl22xx_t c/src/lib/libbsp/arm/rtl22xx
smdk2410 c/src/lib/libbsp/arm/smdk2410
stm32f105rc c/src/lib/libbsp/arm/stm32f4
stm32f4 c/src/lib/libbsp/arm/stm32f4
tms570ls3137_hdk_sdram c/src/lib/libbsp/arm/tms570
xilinx_zynq_zedboard c/src/lib/libbsp/arm/xilinx-zynq
I have tested with RPi1 VideoCore mailbox exchange that
rtems_cache_flush_multiple_data_lines(buf, size)
rtems_cache_invalidate_multiple_data_lines(buf, size)
really ensure that operations work even after multitasking/thread context
is enabled.
Next BSPs have now changed/non-dummy cache manager operations added
(compared to y previous report)
Checking cache manager operations for beagle beagleboneblack
00000000 <rtems_cache_flush_multiple_data_lines>:
- 0: e12fff1e bx lr
+ 0: e3510000 cmp r1, #0
Checking cache manager operations for csb336 csb336
00000000 <rtems_cache_flush_multiple_data_lines>:
- 0: e12fff1e bx lr
+ 0: e3510000 cmp r1, #0
Checking cache manager operations for csb337 csb337
00000000 <rtems_cache_flush_multiple_data_lines>:
- 0: e12fff1e bx lr
+ 0: e3510000 cmp r1, #0
Checking cache manager operations for csb337 csb637
00000000 <rtems_cache_flush_multiple_data_lines>:
- 0: e12fff1e bx lr
+ 0: e3510000 cmp r1, #0
Checking cache manager operations for csb337 kit637_v6
00000000 <rtems_cache_flush_multiple_data_lines>:
- 0: e12fff1e bx lr
+ 0: e3510000 cmp r1, #0
Checking cache manager operations for gumstix gumstix
00000000 <rtems_cache_flush_multiple_data_lines>:
- 0: e12fff1e bx lr
+ 0: e3510000 cmp r1, #0
Checking cache manager operations for raspberrypi raspberrypi2
00000000 <rtems_cache_flush_multiple_data_lines>:
- 0: 4770 bx lr
- 2: bf00 nop
+ 0: b161 cbz r1, 1c <rtems_cache_flush_multiple_data_lines+0x1c>
+ 2: f020 031f bic.w r3, r0, #31
Checking cache manager operations for raspberrypi raspberrypi
00000000 <rtems_cache_flush_multiple_data_lines>:
- 0: e12fff1e bx lr
+ 0: e3510000 cmp r1, #0
Checking cache manager operations for realview-pbx-a9 realview_pbx_a9_qemu_smp
00000000 <rtems_cache_flush_multiple_data_lines>:
- 0: b480 push {r7}
- 2: b083 sub sp, #12
+ 0: b580 push {r7, lr}
+ 2: b084 sub sp, #16
Checking cache manager operations for smdk2410 smdk2410
00000000 <rtems_cache_flush_multiple_data_lines>:
- 0: e12fff1e bx lr
+ 0: e3510000 cmp r1, #0
It is highly probable that shared CP15 operations fail
on some subarchitecture but I consider this as required
step forward.
Best wishes,
Pavel
More information about the devel
mailing list