Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin: (27 commits)
Blackfin: fix dma-mapping build errors
Blackfin: hook up new perf_counter_open syscall
Blackfin: drop BF535-specific text for exception 0x2A (unaligned instruction)
Blackfin: fix early crash when booting on wrong cpu
Blackfin: fix GPTMR0_CLOCKSOURCE dependency on BFIN_GPTIMERS
Blackfin: drop unused ISP1760 port1_disable from board resources
Blackfin: bf526-ezbrd: handle different SDRAM chips
Blackfin: fix typo in TRAS define in mem_init.h header
Blackfin: unify memory map headers
Blackfin: stick the CPU name into boot image name
Blackfin: update defconfigs
Blackfin: decouple unrelated cache settings to get exact behavior
Blackfin: update I-pipe patch level
Blackfin: remove obsolete mcount support from I-pipe code
Blackfin: allow CONFIG_TICKSOURCE_GPTMR0 with interrupt pipeline
Blackfin: convert interrupt pipeline to irqflags
Blackfin: allow people to select BF51x-0.1 silicon rev
Blackfin: bf526-ezbrd: set SPI flash resources to SST device
Blackfin: fix accidental reset in some boot modes
Blackfin: abstract irq14 lowering in do_irq
...

+1572 -1258
+81 -55
arch/blackfin/Kconfig
··· 274 274 275 275 config BF_REV_0_1 276 276 bool "0.1" 277 - depends on (BF52x || (BF54x && !BF54xM)) 277 + depends on (BF51x || BF52x || (BF54x && !BF54xM)) 278 278 279 279 config BF_REV_0_2 280 280 bool "0.2" ··· 358 358 359 359 config MEM_MT48LC32M16A2TG_75 360 360 bool 361 - depends on (BFIN527_EZKIT || BFIN532_IP0X || BLACKSTAMP || BFIN526_EZBRD) 361 + depends on (BFIN527_EZKIT || BFIN532_IP0X || BLACKSTAMP) 362 362 default y 363 363 364 364 config MEM_MT48LC32M8A2_75 365 365 bool 366 366 depends on (BFIN518F_EZBRD) 367 + default y 368 + 369 + config MEM_MT48H32M16LFCJ_75 370 + bool 371 + depends on (BFIN526_EZBRD) 367 372 default y 368 373 369 374 source "arch/blackfin/mach-bf518/Kconfig" ··· 628 623 config TICKSOURCE_GPTMR0 629 624 bool "Gptimer0 (SCLK domain)" 630 625 select BFIN_GPTIMERS 631 - depends on !IPIPE 632 626 633 627 config TICKSOURCE_CORETMR 634 628 bool "Core timer (CCLK domain)" ··· 648 644 649 645 config GPTMR0_CLOCKSOURCE 650 646 bool "Use GPTimer0 as a clocksource (higher rating)" 647 + select BFIN_GPTIMERS 651 648 depends on GENERIC_CLOCKEVENTS 652 649 depends on !TICKSOURCE_GPTMR0 653 650 ··· 913 908 914 909 915 910 comment "Cache Support" 911 + 916 912 config BFIN_ICACHE 917 913 bool "Enable ICACHE" 914 + default y 915 + config BFIN_ICACHE_LOCK 916 + bool "Enable Instruction Cache Locking" 917 + depends on BFIN_ICACHE 918 + default n 919 + config BFIN_EXTMEM_ICACHEABLE 920 + bool "Enable ICACHE for external memory" 921 + depends on BFIN_ICACHE 922 + default y 923 + config BFIN_L2_ICACHEABLE 924 + bool "Enable ICACHE for L2 SRAM" 925 + depends on BFIN_ICACHE 926 + depends on BF54x || BF561 927 + default n 928 + 918 929 config BFIN_DCACHE 919 930 bool "Enable DCACHE" 931 + default y 920 932 config BFIN_DCACHE_BANKA 921 933 bool "Enable only 16k BankA DCACHE - BankB is SRAM" 922 934 depends on BFIN_DCACHE && !BF531 923 935 default n 924 - config BFIN_ICACHE_LOCK 925 - bool "Enable Instruction Cache Locking" 926 - 927 - choice 928 - prompt "External memory cache policy" 936 + config BFIN_EXTMEM_DCACHEABLE 937 + bool "Enable DCACHE for external memory" 929 938 depends on BFIN_DCACHE 930 - default BFIN_WB if !SMP 931 - default BFIN_WT if SMP 932 - config BFIN_WB 933 - bool "Write back" 934 - depends on !SMP 935 - help 936 - Write Back Policy: 937 - Cached data will be written back to SDRAM only when needed. 938 - This can give a nice increase in performance, but beware of 939 - broken drivers that do not properly invalidate/flush their 940 - cache. 941 - 942 - Write Through Policy: 943 - Cached data will always be written back to SDRAM when the 944 - cache is updated. This is a completely safe setting, but 945 - performance is worse than Write Back. 946 - 947 - If you are unsure of the options and you want to be safe, 948 - then go with Write Through. 949 - 950 - config BFIN_WT 951 - bool "Write through" 952 - help 953 - Write Back Policy: 954 - Cached data will be written back to SDRAM only when needed. 955 - This can give a nice increase in performance, but beware of 956 - broken drivers that do not properly invalidate/flush their 957 - cache. 958 - 959 - Write Through Policy: 960 - Cached data will always be written back to SDRAM when the 961 - cache is updated. This is a completely safe setting, but 962 - performance is worse than Write Back. 963 - 964 - If you are unsure of the options and you want to be safe, 965 - then go with Write Through. 966 - 967 - endchoice 968 - 939 + default y 969 940 choice 970 - prompt "L2 SRAM cache policy" 971 - depends on (BF54x || BF561) 972 - default BFIN_L2_WT 973 - config BFIN_L2_WB 941 + prompt "External memory DCACHE policy" 942 + depends on BFIN_EXTMEM_DCACHEABLE 943 + default BFIN_EXTMEM_WRITEBACK if !SMP 944 + default BFIN_EXTMEM_WRITETHROUGH if SMP 945 + config BFIN_EXTMEM_WRITEBACK 974 946 bool "Write back" 975 947 depends on !SMP 948 + help 949 + Write Back Policy: 950 + Cached data will be written back to SDRAM only when needed. 951 + This can give a nice increase in performance, but beware of 952 + broken drivers that do not properly invalidate/flush their 953 + cache. 976 954 977 - config BFIN_L2_WT 955 + Write Through Policy: 956 + Cached data will always be written back to SDRAM when the 957 + cache is updated. This is a completely safe setting, but 958 + performance is worse than Write Back. 959 + 960 + If you are unsure of the options and you want to be safe, 961 + then go with Write Through. 962 + 963 + config BFIN_EXTMEM_WRITETHROUGH 978 964 bool "Write through" 979 - depends on !SMP 965 + help 966 + Write Back Policy: 967 + Cached data will be written back to SDRAM only when needed. 968 + This can give a nice increase in performance, but beware of 969 + broken drivers that do not properly invalidate/flush their 970 + cache. 980 971 981 - config BFIN_L2_NOT_CACHED 982 - bool "Not cached" 972 + Write Through Policy: 973 + Cached data will always be written back to SDRAM when the 974 + cache is updated. This is a completely safe setting, but 975 + performance is worse than Write Back. 976 + 977 + If you are unsure of the options and you want to be safe, 978 + then go with Write Through. 983 979 984 980 endchoice 985 981 982 + config BFIN_L2_DCACHEABLE 983 + bool "Enable DCACHE for L2 SRAM" 984 + depends on BFIN_DCACHE 985 + depends on BF54x || BF561 986 + default n 987 + choice 988 + prompt "L2 SRAM DCACHE policy" 989 + depends on BFIN_L2_DCACHEABLE 990 + default BFIN_L2_WRITEBACK 991 + config BFIN_L2_WRITEBACK 992 + bool "Write back" 993 + depends on !SMP 994 + 995 + config BFIN_L2_WRITETHROUGH 996 + bool "Write through" 997 + depends on !SMP 998 + endchoice 999 + 1000 + 1001 + comment "Memory Protection Unit" 986 1002 config MPU 987 1003 bool "Enable the memory protection unit (EXPERIMENTAL)" 988 1004 default n
+1 -1
arch/blackfin/boot/Makefile
··· 13 13 14 14 quiet_cmd_uimage = UIMAGE $@ 15 15 cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A $(ARCH) -O linux -T kernel \ 16 - -C $(2) -n 'Linux-$(KERNELRELEASE)' -a $(CONFIG_BOOT_LOAD) \ 16 + -C $(2) -n '$(MACHINE)-$(KERNELRELEASE)' -a $(CONFIG_BOOT_LOAD) \ 17 17 -e $(shell $(NM) vmlinux | awk '$$NF == "__start" {print $$1}') \ 18 18 -d $< $@ 19 19
+15 -9
arch/blackfin/configs/BF518F-EZBRD_defconfig
··· 326 326 # Cache Support 327 327 # 328 328 CONFIG_BFIN_ICACHE=y 329 + # CONFIG_BFIN_ICACHE_LOCK is not set 329 330 CONFIG_BFIN_DCACHE=y 330 331 # CONFIG_BFIN_DCACHE_BANKA is not set 331 - # CONFIG_BFIN_ICACHE_LOCK is not set 332 - CONFIG_BFIN_WB=y 333 - # CONFIG_BFIN_WT is not set 332 + CONFIG_BFIN_EXTMEM_ICACHEABLE=y 333 + CONFIG_BFIN_EXTMEM_DCACHEABLE=y 334 + CONFIG_BFIN_EXTMEM_WRITEBACK=y 335 + # CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 336 + 337 + # 338 + # Memory Protection Unit 339 + # 334 340 # CONFIG_MPU is not set 335 341 336 342 # ··· 419 413 # CONFIG_INET_IPCOMP is not set 420 414 # CONFIG_INET_XFRM_TUNNEL is not set 421 415 # CONFIG_INET_TUNNEL is not set 422 - CONFIG_INET_XFRM_MODE_TRANSPORT=y 423 - CONFIG_INET_XFRM_MODE_TUNNEL=y 424 - CONFIG_INET_XFRM_MODE_BEET=y 416 + # CONFIG_INET_XFRM_MODE_TRANSPORT is not set 417 + # CONFIG_INET_XFRM_MODE_TUNNEL is not set 418 + # CONFIG_INET_XFRM_MODE_BEET is not set 425 419 # CONFIG_INET_LRO is not set 426 - CONFIG_INET_DIAG=y 420 + # CONFIG_INET_DIAG is not set 427 421 CONFIG_INET_TCP_DIAG=y 428 422 # CONFIG_TCP_CONG_ADVANCED is not set 429 423 CONFIG_TCP_CONG_CUBIC=y ··· 922 916 # CONFIG_MMC_SDHCI is not set 923 917 CONFIG_SDH_BFIN=m 924 918 CONFIG_SDH_BFIN_MISSING_CMD_PULLUP_WORKAROUND=y 925 - CONFIG_SDH_BFIN_ENABLE_SDIO_IRQ=y 919 + # CONFIG_SDH_BFIN_ENABLE_SDIO_IRQ is not set 926 920 # CONFIG_MMC_SPI is not set 927 921 # CONFIG_MEMSTICK is not set 928 922 # CONFIG_NEW_LEDS is not set ··· 1153 1147 # CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1154 1148 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1155 1149 # CONFIG_DEBUG_KOBJECT is not set 1156 - # CONFIG_DEBUG_BUGVERBOSE is not set 1150 + CONFIG_DEBUG_BUGVERBOSE=y 1157 1151 CONFIG_DEBUG_INFO=y 1158 1152 # CONFIG_DEBUG_VM is not set 1159 1153 # CONFIG_DEBUG_WRITECOUNT is not set
+12 -10
arch/blackfin/configs/BF526-EZBRD_defconfig
··· 331 331 # Cache Support 332 332 # 333 333 CONFIG_BFIN_ICACHE=y 334 + # CONFIG_BFIN_ICACHE_LOCK is not set 334 335 CONFIG_BFIN_DCACHE=y 335 336 # CONFIG_BFIN_DCACHE_BANKA is not set 336 - # CONFIG_BFIN_ICACHE_LOCK is not set 337 - CONFIG_BFIN_WB=y 338 - # CONFIG_BFIN_WT is not set 339 - # CONFIG_MPU is not set 337 + CONFIG_BFIN_EXTMEM_ICACHEABLE=y 338 + CONFIG_BFIN_EXTMEM_DCACHEABLE=y 339 + CONFIG_BFIN_EXTMEM_WRITEBACK=y 340 + # CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 340 341 341 342 # 342 - # Asynchonous Memory Configuration 343 + # Memory Protection Unit 343 344 # 345 + # CONFIG_MPU is not set 344 346 345 347 # 346 348 # EBIU_AMGCTL Global Control ··· 420 418 # CONFIG_INET_IPCOMP is not set 421 419 # CONFIG_INET_XFRM_TUNNEL is not set 422 420 # CONFIG_INET_TUNNEL is not set 423 - CONFIG_INET_XFRM_MODE_TRANSPORT=y 424 - CONFIG_INET_XFRM_MODE_TUNNEL=y 425 - CONFIG_INET_XFRM_MODE_BEET=y 421 + # CONFIG_INET_XFRM_MODE_TRANSPORT is not set 422 + # CONFIG_INET_XFRM_MODE_TUNNEL is not set 423 + # CONFIG_INET_XFRM_MODE_BEET is not set 426 424 # CONFIG_INET_LRO is not set 427 - CONFIG_INET_DIAG=y 425 + # CONFIG_INET_DIAG is not set 428 426 CONFIG_INET_TCP_DIAG=y 429 427 # CONFIG_TCP_CONG_ADVANCED is not set 430 428 CONFIG_TCP_CONG_CUBIC=y ··· 1426 1424 # CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1427 1425 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1428 1426 # CONFIG_DEBUG_KOBJECT is not set 1429 - # CONFIG_DEBUG_BUGVERBOSE is not set 1427 + CONFIG_DEBUG_BUGVERBOSE=y 1430 1428 CONFIG_DEBUG_INFO=y 1431 1429 # CONFIG_DEBUG_VM is not set 1432 1430 # CONFIG_DEBUG_WRITECOUNT is not set
+14 -8
arch/blackfin/configs/BF527-EZKIT_defconfig
··· 331 331 # Cache Support 332 332 # 333 333 CONFIG_BFIN_ICACHE=y 334 + # CONFIG_BFIN_ICACHE_LOCK is not set 334 335 CONFIG_BFIN_DCACHE=y 335 336 # CONFIG_BFIN_DCACHE_BANKA is not set 336 - # CONFIG_BFIN_ICACHE_LOCK is not set 337 - CONFIG_BFIN_WB=y 338 - # CONFIG_BFIN_WT is not set 337 + CONFIG_BFIN_EXTMEM_ICACHEABLE=y 338 + CONFIG_BFIN_EXTMEM_DCACHEABLE=y 339 + CONFIG_BFIN_EXTMEM_WRITEBACK=y 340 + # CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 341 + 342 + # 343 + # Memory Protection Unit 344 + # 339 345 # CONFIG_MPU is not set 340 346 341 347 # ··· 424 418 # CONFIG_INET_IPCOMP is not set 425 419 # CONFIG_INET_XFRM_TUNNEL is not set 426 420 # CONFIG_INET_TUNNEL is not set 427 - CONFIG_INET_XFRM_MODE_TRANSPORT=y 428 - CONFIG_INET_XFRM_MODE_TUNNEL=y 429 - CONFIG_INET_XFRM_MODE_BEET=y 421 + # CONFIG_INET_XFRM_MODE_TRANSPORT is not set 422 + # CONFIG_INET_XFRM_MODE_TUNNEL is not set 423 + # CONFIG_INET_XFRM_MODE_BEET is not set 430 424 # CONFIG_INET_LRO is not set 431 - CONFIG_INET_DIAG=y 425 + # CONFIG_INET_DIAG is not set 432 426 CONFIG_INET_TCP_DIAG=y 433 427 # CONFIG_TCP_CONG_ADVANCED is not set 434 428 CONFIG_TCP_CONG_CUBIC=y ··· 1511 1505 # CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1512 1506 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1513 1507 # CONFIG_DEBUG_KOBJECT is not set 1514 - # CONFIG_DEBUG_BUGVERBOSE is not set 1508 + CONFIG_DEBUG_BUGVERBOSE=y 1515 1509 CONFIG_DEBUG_INFO=y 1516 1510 # CONFIG_DEBUG_VM is not set 1517 1511 # CONFIG_DEBUG_WRITECOUNT is not set
+17 -8
arch/blackfin/configs/BF533-EZKIT_defconfig
··· 292 292 # 293 293 # Cache Support 294 294 # 295 + # 296 + # Cache Support 297 + # 295 298 CONFIG_BFIN_ICACHE=y 299 + # CONFIG_BFIN_ICACHE_LOCK is not set 296 300 CONFIG_BFIN_DCACHE=y 297 301 # CONFIG_BFIN_DCACHE_BANKA is not set 298 - # CONFIG_BFIN_ICACHE_LOCK is not set 299 - CONFIG_BFIN_WB=y 300 - # CONFIG_BFIN_WT is not set 302 + CONFIG_BFIN_EXTMEM_ICACHEABLE=y 303 + CONFIG_BFIN_EXTMEM_DCACHEABLE=y 304 + CONFIG_BFIN_EXTMEM_WRITEBACK=y 305 + # CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 306 + 307 + # 308 + # Memory Protection Unit 309 + # 301 310 # CONFIG_MPU is not set 302 311 303 312 # ··· 400 391 # CONFIG_INET_IPCOMP is not set 401 392 # CONFIG_INET_XFRM_TUNNEL is not set 402 393 # CONFIG_INET_TUNNEL is not set 403 - CONFIG_INET_XFRM_MODE_TRANSPORT=y 404 - CONFIG_INET_XFRM_MODE_TUNNEL=y 405 - CONFIG_INET_XFRM_MODE_BEET=y 394 + # CONFIG_INET_XFRM_MODE_TRANSPORT is not set 395 + # CONFIG_INET_XFRM_MODE_TUNNEL is not set 396 + # CONFIG_INET_XFRM_MODE_BEET is not set 406 397 # CONFIG_INET_LRO is not set 407 - CONFIG_INET_DIAG=y 398 + # CONFIG_INET_DIAG is not set 408 399 CONFIG_INET_TCP_DIAG=y 409 400 # CONFIG_TCP_CONG_ADVANCED is not set 410 401 CONFIG_TCP_CONG_CUBIC=y ··· 1061 1052 # CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1062 1053 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1063 1054 # CONFIG_DEBUG_KOBJECT is not set 1064 - # CONFIG_DEBUG_BUGVERBOSE is not set 1055 + CONFIG_DEBUG_BUGVERBOSE=y 1065 1056 CONFIG_DEBUG_INFO=y 1066 1057 # CONFIG_DEBUG_VM is not set 1067 1058 # CONFIG_DEBUG_WRITECOUNT is not set
+14 -8
arch/blackfin/configs/BF533-STAMP_defconfig
··· 293 293 # Cache Support 294 294 # 295 295 CONFIG_BFIN_ICACHE=y 296 + # CONFIG_BFIN_ICACHE_LOCK is not set 296 297 CONFIG_BFIN_DCACHE=y 297 298 # CONFIG_BFIN_DCACHE_BANKA is not set 298 - # CONFIG_BFIN_ICACHE_LOCK is not set 299 - CONFIG_BFIN_WB=y 300 - # CONFIG_BFIN_WT is not set 299 + CONFIG_BFIN_EXTMEM_ICACHEABLE=y 300 + CONFIG_BFIN_EXTMEM_DCACHEABLE=y 301 + CONFIG_BFIN_EXTMEM_WRITEBACK=y 302 + # CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 303 + 304 + # 305 + # Memory Protection Unit 306 + # 301 307 # CONFIG_MPU is not set 302 308 303 309 # ··· 397 391 # CONFIG_INET_IPCOMP is not set 398 392 # CONFIG_INET_XFRM_TUNNEL is not set 399 393 # CONFIG_INET_TUNNEL is not set 400 - CONFIG_INET_XFRM_MODE_TRANSPORT=y 401 - CONFIG_INET_XFRM_MODE_TUNNEL=y 402 - CONFIG_INET_XFRM_MODE_BEET=y 394 + # CONFIG_INET_XFRM_MODE_TRANSPORT is not set 395 + # CONFIG_INET_XFRM_MODE_TUNNEL is not set 396 + # CONFIG_INET_XFRM_MODE_BEET is not set 403 397 # CONFIG_INET_LRO is not set 404 - CONFIG_INET_DIAG=y 398 + # CONFIG_INET_DIAG is not set 405 399 CONFIG_INET_TCP_DIAG=y 406 400 # CONFIG_TCP_CONG_ADVANCED is not set 407 401 CONFIG_TCP_CONG_CUBIC=y ··· 1222 1216 # CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1223 1217 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1224 1218 # CONFIG_DEBUG_KOBJECT is not set 1225 - # CONFIG_DEBUG_BUGVERBOSE is not set 1219 + CONFIG_DEBUG_BUGVERBOSE=y 1226 1220 CONFIG_DEBUG_INFO=y 1227 1221 # CONFIG_DEBUG_VM is not set 1228 1222 # CONFIG_DEBUG_WRITECOUNT is not set
+14 -8
arch/blackfin/configs/BF537-STAMP_defconfig
··· 300 300 # Cache Support 301 301 # 302 302 CONFIG_BFIN_ICACHE=y 303 + # CONFIG_BFIN_ICACHE_LOCK is not set 303 304 CONFIG_BFIN_DCACHE=y 304 305 # CONFIG_BFIN_DCACHE_BANKA is not set 305 - # CONFIG_BFIN_ICACHE_LOCK is not set 306 - CONFIG_BFIN_WB=y 307 - # CONFIG_BFIN_WT is not set 306 + CONFIG_BFIN_EXTMEM_ICACHEABLE=y 307 + CONFIG_BFIN_EXTMEM_DCACHEABLE=y 308 + CONFIG_BFIN_EXTMEM_WRITEBACK=y 309 + # CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 310 + 311 + # 312 + # Memory Protection Unit 313 + # 308 314 # CONFIG_MPU is not set 309 315 310 316 # ··· 405 399 # CONFIG_INET_IPCOMP is not set 406 400 # CONFIG_INET_XFRM_TUNNEL is not set 407 401 # CONFIG_INET_TUNNEL is not set 408 - CONFIG_INET_XFRM_MODE_TRANSPORT=y 409 - CONFIG_INET_XFRM_MODE_TUNNEL=y 410 - CONFIG_INET_XFRM_MODE_BEET=y 402 + # CONFIG_INET_XFRM_MODE_TRANSPORT is not set 403 + # CONFIG_INET_XFRM_MODE_TUNNEL is not set 404 + # CONFIG_INET_XFRM_MODE_BEET is not set 411 405 # CONFIG_INET_LRO is not set 412 - CONFIG_INET_DIAG=y 406 + # CONFIG_INET_DIAG is not set 413 407 CONFIG_INET_TCP_DIAG=y 414 408 # CONFIG_TCP_CONG_ADVANCED is not set 415 409 CONFIG_TCP_CONG_CUBIC=y ··· 1275 1269 # CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1276 1270 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1277 1271 # CONFIG_DEBUG_KOBJECT is not set 1278 - # CONFIG_DEBUG_BUGVERBOSE is not set 1272 + CONFIG_DEBUG_BUGVERBOSE=y 1279 1273 CONFIG_DEBUG_INFO=y 1280 1274 # CONFIG_DEBUG_VM is not set 1281 1275 # CONFIG_DEBUG_WRITECOUNT is not set
+14 -8
arch/blackfin/configs/BF538-EZKIT_defconfig
··· 311 311 # Cache Support 312 312 # 313 313 CONFIG_BFIN_ICACHE=y 314 + # CONFIG_BFIN_ICACHE_LOCK is not set 314 315 CONFIG_BFIN_DCACHE=y 315 316 # CONFIG_BFIN_DCACHE_BANKA is not set 316 - # CONFIG_BFIN_ICACHE_LOCK is not set 317 - CONFIG_BFIN_WB=y 318 - # CONFIG_BFIN_WT is not set 317 + CONFIG_BFIN_EXTMEM_ICACHEABLE=y 318 + CONFIG_BFIN_EXTMEM_DCACHEABLE=y 319 + CONFIG_BFIN_EXTMEM_WRITEBACK=y 320 + # CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 321 + 322 + # 323 + # Memory Protection Unit 324 + # 319 325 # CONFIG_MPU is not set 320 326 321 327 # ··· 404 398 # CONFIG_INET_IPCOMP is not set 405 399 # CONFIG_INET_XFRM_TUNNEL is not set 406 400 # CONFIG_INET_TUNNEL is not set 407 - CONFIG_INET_XFRM_MODE_TRANSPORT=y 408 - CONFIG_INET_XFRM_MODE_TUNNEL=y 409 - CONFIG_INET_XFRM_MODE_BEET=y 401 + # CONFIG_INET_XFRM_MODE_TRANSPORT is not set 402 + # CONFIG_INET_XFRM_MODE_TUNNEL is not set 403 + # CONFIG_INET_XFRM_MODE_BEET is not set 410 404 # CONFIG_INET_LRO is not set 411 - CONFIG_INET_DIAG=y 405 + # CONFIG_INET_DIAG is not set 412 406 CONFIG_INET_TCP_DIAG=y 413 407 # CONFIG_TCP_CONG_ADVANCED is not set 414 408 CONFIG_TCP_CONG_CUBIC=y ··· 1209 1203 # CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1210 1204 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1211 1205 # CONFIG_DEBUG_KOBJECT is not set 1212 - # CONFIG_DEBUG_BUGVERBOSE is not set 1206 + CONFIG_DEBUG_BUGVERBOSE=y 1213 1207 CONFIG_DEBUG_INFO=y 1214 1208 # CONFIG_DEBUG_VM is not set 1215 1209 # CONFIG_DEBUG_WRITECOUNT is not set
+16 -11
arch/blackfin/configs/BF548-EZKIT_defconfig
··· 366 366 # Cache Support 367 367 # 368 368 CONFIG_BFIN_ICACHE=y 369 + # CONFIG_BFIN_ICACHE_LOCK is not set 369 370 CONFIG_BFIN_DCACHE=y 370 371 # CONFIG_BFIN_DCACHE_BANKA is not set 371 - # CONFIG_BFIN_ICACHE_LOCK is not set 372 - CONFIG_BFIN_WB=y 373 - # CONFIG_BFIN_WT is not set 374 - # CONFIG_BFIN_L2_WB is not set 375 - CONFIG_BFIN_L2_WT=y 376 - # CONFIG_BFIN_L2_NOT_CACHED is not set 372 + CONFIG_BFIN_EXTMEM_ICACHEABLE=y 373 + CONFIG_BFIN_EXTMEM_DCACHEABLE=y 374 + CONFIG_BFIN_EXTMEM_WRITEBACK=y 375 + # CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 376 + # CONFIG_BFIN_L2_ICACHEABLE is not set 377 + # CONFIG_BFIN_L2_DCACHEABLE is not set 378 + 379 + # 380 + # Memory Protection Unit 381 + # 377 382 # CONFIG_MPU is not set 378 383 379 384 # ··· 464 459 # CONFIG_INET_IPCOMP is not set 465 460 # CONFIG_INET_XFRM_TUNNEL is not set 466 461 # CONFIG_INET_TUNNEL is not set 467 - CONFIG_INET_XFRM_MODE_TRANSPORT=y 468 - CONFIG_INET_XFRM_MODE_TUNNEL=y 469 - CONFIG_INET_XFRM_MODE_BEET=y 462 + # CONFIG_INET_XFRM_MODE_TRANSPORT is not set 463 + # CONFIG_INET_XFRM_MODE_TUNNEL is not set 464 + # CONFIG_INET_XFRM_MODE_BEET is not set 470 465 # CONFIG_INET_LRO is not set 471 - CONFIG_INET_DIAG=y 466 + # CONFIG_INET_DIAG is not set 472 467 CONFIG_INET_TCP_DIAG=y 473 468 # CONFIG_TCP_CONG_ADVANCED is not set 474 469 CONFIG_TCP_CONG_CUBIC=y ··· 1611 1606 # CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1612 1607 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1613 1608 # CONFIG_DEBUG_KOBJECT is not set 1614 - # CONFIG_DEBUG_BUGVERBOSE is not set 1609 + CONFIG_DEBUG_BUGVERBOSE=y 1615 1610 CONFIG_DEBUG_INFO=y 1616 1611 # CONFIG_DEBUG_VM is not set 1617 1612 # CONFIG_DEBUG_WRITECOUNT is not set
+16 -11
arch/blackfin/configs/BF561-EZKIT_defconfig
··· 331 331 # Cache Support 332 332 # 333 333 CONFIG_BFIN_ICACHE=y 334 + # CONFIG_BFIN_ICACHE_LOCK is not set 334 335 CONFIG_BFIN_DCACHE=y 335 336 # CONFIG_BFIN_DCACHE_BANKA is not set 336 - # CONFIG_BFIN_ICACHE_LOCK is not set 337 - CONFIG_BFIN_WB=y 338 - # CONFIG_BFIN_WT is not set 339 - # CONFIG_BFIN_L2_WB is not set 340 - CONFIG_BFIN_L2_WT=y 341 - # CONFIG_BFIN_L2_NOT_CACHED is not set 337 + CONFIG_BFIN_EXTMEM_ICACHEABLE=y 338 + CONFIG_BFIN_EXTMEM_DCACHEABLE=y 339 + CONFIG_BFIN_EXTMEM_WRITEBACK=y 340 + # CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 341 + # CONFIG_BFIN_L2_ICACHEABLE is not set 342 + # CONFIG_BFIN_L2_DCACHEABLE is not set 343 + 344 + # 345 + # Memory Protection Unit 346 + # 342 347 # CONFIG_MPU is not set 343 348 344 349 # ··· 430 425 # CONFIG_INET_IPCOMP is not set 431 426 # CONFIG_INET_XFRM_TUNNEL is not set 432 427 # CONFIG_INET_TUNNEL is not set 433 - CONFIG_INET_XFRM_MODE_TRANSPORT=y 434 - CONFIG_INET_XFRM_MODE_TUNNEL=y 435 - CONFIG_INET_XFRM_MODE_BEET=y 428 + # CONFIG_INET_XFRM_MODE_TRANSPORT is not set 429 + # CONFIG_INET_XFRM_MODE_TUNNEL is not set 430 + # CONFIG_INET_XFRM_MODE_BEET is not set 436 431 # CONFIG_INET_LRO is not set 437 - CONFIG_INET_DIAG=y 432 + # CONFIG_INET_DIAG is not set 438 433 CONFIG_INET_TCP_DIAG=y 439 434 # CONFIG_TCP_CONG_ADVANCED is not set 440 435 CONFIG_TCP_CONG_CUBIC=y ··· 1049 1044 # CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1050 1045 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1051 1046 # CONFIG_DEBUG_KOBJECT is not set 1052 - # CONFIG_DEBUG_BUGVERBOSE is not set 1047 + CONFIG_DEBUG_BUGVERBOSE=y 1053 1048 CONFIG_DEBUG_INFO=y 1054 1049 # CONFIG_DEBUG_VM is not set 1055 1050 # CONFIG_DEBUG_WRITECOUNT is not set
+9 -3
arch/blackfin/configs/BlackStamp_defconfig
··· 285 285 # Cache Support 286 286 # 287 287 CONFIG_BFIN_ICACHE=y 288 + # CONFIG_BFIN_ICACHE_LOCK is not set 288 289 CONFIG_BFIN_DCACHE=y 289 290 # CONFIG_BFIN_DCACHE_BANKA is not set 290 - # CONFIG_BFIN_ICACHE_LOCK is not set 291 - CONFIG_BFIN_WB=y 292 - # CONFIG_BFIN_WT is not set 291 + CONFIG_BFIN_EXTMEM_ICACHEABLE=y 292 + CONFIG_BFIN_EXTMEM_DCACHEABLE=y 293 + CONFIG_BFIN_EXTMEM_WRITEBACK=y 294 + # CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 295 + 296 + # 297 + # Memory Protection Unit 298 + # 293 299 # CONFIG_MPU is not set 294 300 295 301 #
+14 -8
arch/blackfin/configs/CM-BF527_defconfig
··· 329 329 # Cache Support 330 330 # 331 331 CONFIG_BFIN_ICACHE=y 332 + # CONFIG_BFIN_ICACHE_LOCK is not set 332 333 CONFIG_BFIN_DCACHE=y 333 334 # CONFIG_BFIN_DCACHE_BANKA is not set 334 - # CONFIG_BFIN_ICACHE_LOCK is not set 335 - CONFIG_BFIN_WB=y 336 - # CONFIG_BFIN_WT is not set 335 + CONFIG_BFIN_EXTMEM_ICACHEABLE=y 336 + CONFIG_BFIN_EXTMEM_DCACHEABLE=y 337 + CONFIG_BFIN_EXTMEM_WRITEBACK=y 338 + # CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 339 + 340 + # 341 + # Memory Protection Unit 342 + # 337 343 # CONFIG_MPU is not set 338 344 339 345 # ··· 423 417 # CONFIG_INET_IPCOMP is not set 424 418 # CONFIG_INET_XFRM_TUNNEL is not set 425 419 # CONFIG_INET_TUNNEL is not set 426 - CONFIG_INET_XFRM_MODE_TRANSPORT=y 427 - CONFIG_INET_XFRM_MODE_TUNNEL=y 428 - CONFIG_INET_XFRM_MODE_BEET=y 420 + # CONFIG_INET_XFRM_MODE_TRANSPORT is not set 421 + # CONFIG_INET_XFRM_MODE_TUNNEL is not set 422 + # CONFIG_INET_XFRM_MODE_BEET is not set 429 423 # CONFIG_INET_LRO is not set 430 - CONFIG_INET_DIAG=y 424 + # CONFIG_INET_DIAG is not set 431 425 CONFIG_INET_TCP_DIAG=y 432 426 # CONFIG_TCP_CONG_ADVANCED is not set 433 427 CONFIG_TCP_CONG_CUBIC=y ··· 1252 1246 # CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1253 1247 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1254 1248 # CONFIG_DEBUG_KOBJECT is not set 1255 - # CONFIG_DEBUG_BUGVERBOSE is not set 1249 + CONFIG_DEBUG_BUGVERBOSE=y 1256 1250 # CONFIG_DEBUG_INFO is not set 1257 1251 # CONFIG_DEBUG_VM is not set 1258 1252 # CONFIG_DEBUG_WRITECOUNT is not set
+14 -9
arch/blackfin/configs/CM-BF533_defconfig
··· 262 262 # Cache Support 263 263 # 264 264 CONFIG_BFIN_ICACHE=y 265 + # CONFIG_BFIN_ICACHE_LOCK is not set 265 266 CONFIG_BFIN_DCACHE=y 266 267 # CONFIG_BFIN_DCACHE_BANKA is not set 267 - # CONFIG_BFIN_ICACHE_LOCK is not set 268 - CONFIG_BFIN_WB=y 269 - # CONFIG_BFIN_WT is not set 270 - CONFIG_L1_MAX_PIECE=16 268 + CONFIG_BFIN_EXTMEM_ICACHEABLE=y 269 + CONFIG_BFIN_EXTMEM_DCACHEABLE=y 270 + CONFIG_BFIN_EXTMEM_WRITEBACK=y 271 + # CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 272 + 273 + # 274 + # Memory Protection Unit 275 + # 271 276 # CONFIG_MPU is not set 272 277 273 278 # ··· 358 353 # CONFIG_INET_IPCOMP is not set 359 354 # CONFIG_INET_XFRM_TUNNEL is not set 360 355 # CONFIG_INET_TUNNEL is not set 361 - CONFIG_INET_XFRM_MODE_TRANSPORT=y 362 - CONFIG_INET_XFRM_MODE_TUNNEL=y 363 - CONFIG_INET_XFRM_MODE_BEET=y 364 - CONFIG_INET_DIAG=y 356 + # CONFIG_INET_XFRM_MODE_TRANSPORT is not set 357 + # CONFIG_INET_XFRM_MODE_TUNNEL is not set 358 + # CONFIG_INET_XFRM_MODE_BEET is not set 359 + # CONFIG_INET_DIAG is not set 365 360 CONFIG_INET_TCP_DIAG=y 366 361 # CONFIG_TCP_CONG_ADVANCED is not set 367 362 CONFIG_TCP_CONG_CUBIC=y ··· 878 873 CONFIG_DEBUG_FS=y 879 874 # CONFIG_HEADERS_CHECK is not set 880 875 # CONFIG_DEBUG_KERNEL is not set 881 - # CONFIG_DEBUG_BUGVERBOSE is not set 876 + CONFIG_DEBUG_BUGVERBOSE=y 882 877 CONFIG_DEBUG_MMRS=y 883 878 CONFIG_DEBUG_HUNT_FOR_ZERO=y 884 879 CONFIG_DEBUG_BFIN_HWTRACE_ON=y
+14 -8
arch/blackfin/configs/CM-BF537E_defconfig
··· 297 297 # Cache Support 298 298 # 299 299 CONFIG_BFIN_ICACHE=y 300 + # CONFIG_BFIN_ICACHE_LOCK is not set 300 301 CONFIG_BFIN_DCACHE=y 301 302 # CONFIG_BFIN_DCACHE_BANKA is not set 302 - # CONFIG_BFIN_ICACHE_LOCK is not set 303 - CONFIG_BFIN_WB=y 304 - # CONFIG_BFIN_WT is not set 303 + CONFIG_BFIN_EXTMEM_ICACHEABLE=y 304 + CONFIG_BFIN_EXTMEM_DCACHEABLE=y 305 + CONFIG_BFIN_EXTMEM_WRITEBACK=y 306 + # CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 307 + 308 + # 309 + # Memory Protection Unit 310 + # 305 311 # CONFIG_MPU is not set 306 312 307 313 # ··· 389 383 # CONFIG_INET_IPCOMP is not set 390 384 # CONFIG_INET_XFRM_TUNNEL is not set 391 385 # CONFIG_INET_TUNNEL is not set 392 - CONFIG_INET_XFRM_MODE_TRANSPORT=y 393 - CONFIG_INET_XFRM_MODE_TUNNEL=y 394 - CONFIG_INET_XFRM_MODE_BEET=y 386 + # CONFIG_INET_XFRM_MODE_TRANSPORT is not set 387 + # CONFIG_INET_XFRM_MODE_TUNNEL is not set 388 + # CONFIG_INET_XFRM_MODE_BEET is not set 395 389 # CONFIG_INET_LRO is not set 396 - CONFIG_INET_DIAG=y 390 + # CONFIG_INET_DIAG is not set 397 391 CONFIG_INET_TCP_DIAG=y 398 392 # CONFIG_TCP_CONG_ADVANCED is not set 399 393 CONFIG_TCP_CONG_CUBIC=y ··· 867 861 # CONFIG_HEADERS_CHECK is not set 868 862 CONFIG_DEBUG_SECTION_MISMATCH=y 869 863 # CONFIG_DEBUG_KERNEL is not set 870 - # CONFIG_DEBUG_BUGVERBOSE is not set 864 + CONFIG_DEBUG_BUGVERBOSE=y 871 865 # CONFIG_DEBUG_MEMORY_INIT is not set 872 866 # CONFIG_RCU_CPU_STALL_DETECTOR is not set 873 867
+14 -9
arch/blackfin/configs/CM-BF537U_defconfig
··· 270 270 # Cache Support 271 271 # 272 272 CONFIG_BFIN_ICACHE=y 273 + # CONFIG_BFIN_ICACHE_LOCK is not set 273 274 CONFIG_BFIN_DCACHE=y 274 275 # CONFIG_BFIN_DCACHE_BANKA is not set 275 - # CONFIG_BFIN_ICACHE_LOCK is not set 276 - CONFIG_BFIN_WB=y 277 - # CONFIG_BFIN_WT is not set 278 - CONFIG_L1_MAX_PIECE=16 276 + CONFIG_BFIN_EXTMEM_ICACHEABLE=y 277 + CONFIG_BFIN_EXTMEM_DCACHEABLE=y 278 + CONFIG_BFIN_EXTMEM_WRITEBACK=y 279 + # CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 280 + 281 + # 282 + # Memory Protection Unit 283 + # 279 284 # CONFIG_MPU is not set 280 285 281 286 # ··· 366 361 # CONFIG_INET_IPCOMP is not set 367 362 # CONFIG_INET_XFRM_TUNNEL is not set 368 363 # CONFIG_INET_TUNNEL is not set 369 - CONFIG_INET_XFRM_MODE_TRANSPORT=y 370 - CONFIG_INET_XFRM_MODE_TUNNEL=y 371 - CONFIG_INET_XFRM_MODE_BEET=y 372 - CONFIG_INET_DIAG=y 364 + # CONFIG_INET_XFRM_MODE_TRANSPORT is not set 365 + # CONFIG_INET_XFRM_MODE_TUNNEL is not set 366 + # CONFIG_INET_XFRM_MODE_BEET is not set 367 + # CONFIG_INET_DIAG is not set 373 368 CONFIG_INET_TCP_DIAG=y 374 369 # CONFIG_TCP_CONG_ADVANCED is not set 375 370 CONFIG_TCP_CONG_CUBIC=y ··· 906 901 CONFIG_DEBUG_FS=y 907 902 # CONFIG_HEADERS_CHECK is not set 908 903 # CONFIG_DEBUG_KERNEL is not set 909 - # CONFIG_DEBUG_BUGVERBOSE is not set 904 + CONFIG_DEBUG_BUGVERBOSE=y 910 905 CONFIG_DEBUG_MMRS=y 911 906 CONFIG_DEBUG_HUNT_FOR_ZERO=y 912 907 CONFIG_DEBUG_BFIN_HWTRACE_ON=y
+16 -9
arch/blackfin/configs/CM-BF548_defconfig
··· 333 333 # Cache Support 334 334 # 335 335 CONFIG_BFIN_ICACHE=y 336 + # CONFIG_BFIN_ICACHE_LOCK is not set 336 337 CONFIG_BFIN_DCACHE=y 337 338 # CONFIG_BFIN_DCACHE_BANKA is not set 338 - # CONFIG_BFIN_ICACHE_LOCK is not set 339 - CONFIG_BFIN_WB=y 340 - # CONFIG_BFIN_WT is not set 341 - CONFIG_L1_MAX_PIECE=16 339 + CONFIG_BFIN_EXTMEM_ICACHEABLE=y 340 + CONFIG_BFIN_EXTMEM_DCACHEABLE=y 341 + CONFIG_BFIN_EXTMEM_WRITEBACK=y 342 + # CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 343 + # CONFIG_BFIN_L2_ICACHEABLE is not set 344 + # CONFIG_BFIN_L2_DCACHEABLE is not set 345 + 346 + # 347 + # Memory Protection Unit 348 + # 342 349 # CONFIG_MPU is not set 343 350 344 351 # ··· 435 428 # CONFIG_INET_IPCOMP is not set 436 429 # CONFIG_INET_XFRM_TUNNEL is not set 437 430 # CONFIG_INET_TUNNEL is not set 438 - CONFIG_INET_XFRM_MODE_TRANSPORT=y 439 - CONFIG_INET_XFRM_MODE_TUNNEL=y 440 - CONFIG_INET_XFRM_MODE_BEET=y 431 + # CONFIG_INET_XFRM_MODE_TRANSPORT is not set 432 + # CONFIG_INET_XFRM_MODE_TUNNEL is not set 433 + # CONFIG_INET_XFRM_MODE_BEET is not set 441 434 # CONFIG_INET_LRO is not set 442 - CONFIG_INET_DIAG=y 435 + # CONFIG_INET_DIAG is not set 443 436 CONFIG_INET_TCP_DIAG=y 444 437 # CONFIG_TCP_CONG_ADVANCED is not set 445 438 CONFIG_TCP_CONG_CUBIC=y ··· 1341 1334 CONFIG_DEBUG_FS=y 1342 1335 # CONFIG_HEADERS_CHECK is not set 1343 1336 # CONFIG_DEBUG_KERNEL is not set 1344 - # CONFIG_DEBUG_BUGVERBOSE is not set 1337 + CONFIG_DEBUG_BUGVERBOSE=y 1345 1338 # CONFIG_SAMPLES is not set 1346 1339 CONFIG_DEBUG_MMRS=y 1347 1340 CONFIG_DEBUG_HUNT_FOR_ZERO=y
+16 -9
arch/blackfin/configs/CM-BF561_defconfig
··· 308 308 # Cache Support 309 309 # 310 310 CONFIG_BFIN_ICACHE=y 311 + # CONFIG_BFIN_ICACHE_LOCK is not set 311 312 CONFIG_BFIN_DCACHE=y 312 313 # CONFIG_BFIN_DCACHE_BANKA is not set 313 - # CONFIG_BFIN_ICACHE_LOCK is not set 314 - CONFIG_BFIN_WB=y 315 - # CONFIG_BFIN_WT is not set 316 - CONFIG_L1_MAX_PIECE=16 314 + CONFIG_BFIN_EXTMEM_ICACHEABLE=y 315 + CONFIG_BFIN_EXTMEM_DCACHEABLE=y 316 + CONFIG_BFIN_EXTMEM_WRITEBACK=y 317 + # CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 318 + # CONFIG_BFIN_L2_ICACHEABLE is not set 319 + # CONFIG_BFIN_L2_DCACHEABLE is not set 320 + 321 + # 322 + # Memory Protection Unit 323 + # 317 324 # CONFIG_MPU is not set 318 325 319 326 # ··· 402 395 # CONFIG_INET_IPCOMP is not set 403 396 # CONFIG_INET_XFRM_TUNNEL is not set 404 397 # CONFIG_INET_TUNNEL is not set 405 - CONFIG_INET_XFRM_MODE_TRANSPORT=y 406 - CONFIG_INET_XFRM_MODE_TUNNEL=y 407 - CONFIG_INET_XFRM_MODE_BEET=y 398 + # CONFIG_INET_XFRM_MODE_TRANSPORT is not set 399 + # CONFIG_INET_XFRM_MODE_TUNNEL is not set 400 + # CONFIG_INET_XFRM_MODE_BEET is not set 408 401 # CONFIG_INET_LRO is not set 409 - CONFIG_INET_DIAG=y 402 + # CONFIG_INET_DIAG is not set 410 403 CONFIG_INET_TCP_DIAG=y 411 404 # CONFIG_TCP_CONG_ADVANCED is not set 412 405 CONFIG_TCP_CONG_CUBIC=y ··· 844 837 CONFIG_DEBUG_FS=y 845 838 # CONFIG_HEADERS_CHECK is not set 846 839 # CONFIG_DEBUG_KERNEL is not set 847 - # CONFIG_DEBUG_BUGVERBOSE is not set 840 + CONFIG_DEBUG_BUGVERBOSE=y 848 841 # CONFIG_SAMPLES is not set 849 842 CONFIG_DEBUG_MMRS=y 850 843 CONFIG_DEBUG_HUNT_FOR_ZERO=y
+10 -4
arch/blackfin/configs/H8606_defconfig
··· 258 258 # Cache Support 259 259 # 260 260 CONFIG_BFIN_ICACHE=y 261 + # CONFIG_BFIN_ICACHE_LOCK is not set 261 262 CONFIG_BFIN_DCACHE=y 262 263 # CONFIG_BFIN_DCACHE_BANKA is not set 263 - CONFIG_BFIN_ICACHE_LOCK=y 264 - CONFIG_BFIN_WB=y 265 - # CONFIG_BFIN_WT is not set 266 - CONFIG_L1_MAX_PIECE=16 264 + CONFIG_BFIN_EXTMEM_ICACHEABLE=y 265 + CONFIG_BFIN_EXTMEM_DCACHEABLE=y 266 + CONFIG_BFIN_EXTMEM_WRITEBACK=y 267 + # CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 268 + 269 + # 270 + # Memory Protection Unit 271 + # 272 + # CONFIG_MPU is not set 267 273 268 274 # 269 275 # Asynchonous Memory Configuration
+13 -7
arch/blackfin/configs/PNAV-10_defconfig
··· 295 295 # Cache Support 296 296 # 297 297 CONFIG_BFIN_ICACHE=y 298 + # CONFIG_BFIN_ICACHE_LOCK is not set 298 299 CONFIG_BFIN_DCACHE=y 299 300 # CONFIG_BFIN_DCACHE_BANKA is not set 300 - # CONFIG_BFIN_ICACHE_LOCK is not set 301 - CONFIG_BFIN_WB=y 302 - # CONFIG_BFIN_WT is not set 301 + CONFIG_BFIN_EXTMEM_ICACHEABLE=y 302 + CONFIG_BFIN_EXTMEM_DCACHEABLE=y 303 + CONFIG_BFIN_EXTMEM_WRITEBACK=y 304 + # CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 305 + 306 + # 307 + # Memory Protection Unit 308 + # 303 309 # CONFIG_MPU is not set 304 310 305 311 # ··· 388 382 # CONFIG_INET_IPCOMP is not set 389 383 # CONFIG_INET_XFRM_TUNNEL is not set 390 384 # CONFIG_INET_TUNNEL is not set 391 - CONFIG_INET_XFRM_MODE_TRANSPORT=y 392 - CONFIG_INET_XFRM_MODE_TUNNEL=y 393 - CONFIG_INET_XFRM_MODE_BEET=y 385 + # CONFIG_INET_XFRM_MODE_TRANSPORT is not set 386 + # CONFIG_INET_XFRM_MODE_TUNNEL is not set 387 + # CONFIG_INET_XFRM_MODE_BEET is not set 394 388 # CONFIG_INET_LRO is not set 395 - CONFIG_INET_DIAG=y 389 + # CONFIG_INET_DIAG is not set 396 390 CONFIG_INET_TCP_DIAG=y 397 391 # CONFIG_TCP_CONG_ADVANCED is not set 398 392 CONFIG_TCP_CONG_CUBIC=y
+10 -4
arch/blackfin/configs/SRV1_defconfig
··· 279 279 # Cache Support 280 280 # 281 281 CONFIG_BFIN_ICACHE=y 282 + # CONFIG_BFIN_ICACHE_LOCK is not set 282 283 CONFIG_BFIN_DCACHE=y 283 284 # CONFIG_BFIN_DCACHE_BANKA is not set 284 - # CONFIG_BFIN_ICACHE_LOCK is not set 285 - CONFIG_BFIN_WB=y 286 - # CONFIG_BFIN_WT is not set 287 - CONFIG_L1_MAX_PIECE=16 285 + CONFIG_BFIN_EXTMEM_ICACHEABLE=y 286 + CONFIG_BFIN_EXTMEM_DCACHEABLE=y 287 + CONFIG_BFIN_EXTMEM_WRITEBACK=y 288 + # CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 289 + 290 + # 291 + # Memory Protection Unit 292 + # 293 + # CONFIG_MPU is not set 288 294 289 295 # 290 296 # Asynchonous Memory Configuration
+10 -4
arch/blackfin/configs/TCM-BF537_defconfig
··· 287 287 # Cache Support 288 288 # 289 289 CONFIG_BFIN_ICACHE=y 290 + # CONFIG_BFIN_ICACHE_LOCK is not set 290 291 CONFIG_BFIN_DCACHE=y 291 292 # CONFIG_BFIN_DCACHE_BANKA is not set 292 - # CONFIG_BFIN_ICACHE_LOCK is not set 293 - CONFIG_BFIN_WB=y 294 - # CONFIG_BFIN_WT is not set 293 + CONFIG_BFIN_EXTMEM_ICACHEABLE=y 294 + CONFIG_BFIN_EXTMEM_DCACHEABLE=y 295 + CONFIG_BFIN_EXTMEM_WRITEBACK=y 296 + # CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 297 + 298 + # 299 + # Memory Protection Unit 300 + # 295 301 # CONFIG_MPU is not set 296 302 297 303 # ··· 715 709 CONFIG_DEBUG_FS=y 716 710 # CONFIG_HEADERS_CHECK is not set 717 711 # CONFIG_DEBUG_KERNEL is not set 718 - # CONFIG_DEBUG_BUGVERBOSE is not set 712 + CONFIG_DEBUG_BUGVERBOSE=y 719 713 # CONFIG_DEBUG_MEMORY_INIT is not set 720 714 # CONFIG_RCU_CPU_STALL_DETECTOR is not set 721 715 # CONFIG_SYSCTL_SYSCALL_CHECK is not set
+1
arch/blackfin/include/asm/blackfin.h
··· 86 86 87 87 #endif /* __ASSEMBLY__ */ 88 88 89 + #include <asm/mem_map.h> 89 90 #include <mach/blackfin.h> 90 91 #include <asm/bfin-global.h> 91 92
+2 -2
arch/blackfin/include/asm/cache.h
··· 35 35 36 36 #if defined(CONFIG_SMP) && \ 37 37 !defined(CONFIG_BFIN_CACHE_COHERENT) 38 - # if defined(CONFIG_BFIN_ICACHE) 38 + # if defined(CONFIG_BFIN_ICACHEABLE) || defined(CONFIG_BFIN_L2_ICACHEABLE) 39 39 # define __ARCH_SYNC_CORE_ICACHE 40 40 # endif 41 - # if defined(CONFIG_BFIN_DCACHE) 41 + # if defined(CONFIG_BFIN_DCACHEABLE) || defined(CONFIG_BFIN_L2_DCACHEABLE) 42 42 # define __ARCH_SYNC_CORE_DCACHE 43 43 # endif 44 44 #ifndef __ASSEMBLY__
+5 -5
arch/blackfin/include/asm/cacheflush.h
··· 56 56 57 57 static inline void flush_icache_range(unsigned start, unsigned end) 58 58 { 59 - #if defined(CONFIG_BFIN_WB) 59 + #if defined(CONFIG_BFIN_EXTMEM_WRITEBACK) || defined(CONFIG_BFIN_L2_WRITEBACK) 60 60 blackfin_dcache_flush_range(start, end); 61 61 #endif 62 62 ··· 87 87 #else 88 88 # define invalidate_dcache_range(start,end) do { } while (0) 89 89 #endif 90 - #if defined(CONFIG_BFIN_DCACHE) && defined(CONFIG_BFIN_WB) 90 + #if defined(CONFIG_BFIN_EXTMEM_WRITEBACK) || defined(CONFIG_BFIN_L2_WRITEBACK) 91 91 # define flush_dcache_range(start,end) blackfin_dcache_flush_range((start), (end)) 92 - # define flush_dcache_page(page) blackfin_dflush_page(page_address(page)) 92 + # define flush_dcache_page(page) blackfin_dflush_page(page_address(page)) 93 93 #else 94 94 # define flush_dcache_range(start,end) do { } while (0) 95 95 # define flush_dcache_page(page) do { } while (0) ··· 100 100 101 101 static inline int bfin_addr_dcacheable(unsigned long addr) 102 102 { 103 - #ifdef CONFIG_BFIN_DCACHE 103 + #ifdef CONFIG_BFIN_EXTMEM_DCACHEABLE 104 104 if (addr < (_ramend - DMA_UNCACHED_REGION)) 105 105 return 1; 106 106 #endif ··· 109 109 addr >= _ramend && addr < physical_mem_end) 110 110 return 1; 111 111 112 - #ifndef CONFIG_BFIN_L2_NOT_CACHED 112 + #ifdef CONFIG_BFIN_L2_DCACHEABLE 113 113 if (addr >= L2_START && addr < L2_START + L2_LENGTH) 114 114 return 1; 115 115 #endif
+17 -15
arch/blackfin/include/asm/cplb.h
··· 37 37 #define L1_IMEMORY ( CPLB_USER_RD | CPLB_VALID | CPLB_LOCK) 38 38 #define SDRAM_INON_CHBL ( CPLB_USER_RD | CPLB_VALID) 39 39 40 - /*Use the menuconfig cache policy here - CONFIG_BFIN_WT/CONFIG_BFIN_WB*/ 41 - 42 40 #if ANOMALY_05000158 43 41 #define ANOMALY_05000158_WORKAROUND 0x200 44 42 #else ··· 45 47 46 48 #define CPLB_COMMON (CPLB_DIRTY | CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND) 47 49 48 - #ifdef CONFIG_BFIN_WB /*Write Back Policy */ 50 + #ifdef CONFIG_BFIN_EXTMEM_WRITEBACK 49 51 #define SDRAM_DGENERIC (CPLB_L1_CHBL | CPLB_COMMON) 50 - #else /*Write Through */ 52 + #elif defined(CONFIG_BFIN_EXTMEM_WRITETHROUGH) 51 53 #define SDRAM_DGENERIC (CPLB_L1_CHBL | CPLB_WT | CPLB_L1_AOW | CPLB_COMMON) 54 + #else 55 + #define SDRAM_DGENERIC (CPLB_COMMON) 52 56 #endif 53 57 54 58 #define SDRAM_DNON_CHBL (CPLB_COMMON) ··· 61 61 62 62 #ifdef CONFIG_SMP 63 63 #define L2_ATTR (INITIAL_T | I_CPLB | D_CPLB) 64 - #define L2_IMEMORY (CPLB_COMMON) 65 - #define L2_DMEMORY (CPLB_LOCK | CPLB_COMMON) 64 + #define L2_IMEMORY (CPLB_COMMON | PAGE_SIZE_1MB) 65 + #define L2_DMEMORY (CPLB_LOCK | CPLB_COMMON | PAGE_SIZE_1MB) 66 66 67 67 #else 68 68 #define L2_ATTR (INITIAL_T | SWITCH_T | I_CPLB | D_CPLB) 69 - #define L2_IMEMORY (SDRAM_IGENERIC) 70 - 71 - # if defined(CONFIG_BFIN_L2_WB) 72 - # define L2_DMEMORY (CPLB_L1_CHBL | CPLB_COMMON) 73 - # elif defined(CONFIG_BFIN_L2_WT) 74 - # define L2_DMEMORY (CPLB_L1_CHBL | CPLB_WT | CPLB_L1_AOW | CPLB_COMMON) 75 - # elif defined(CONFIG_BFIN_L2_NOT_CACHED) 76 - # define L2_DMEMORY (CPLB_COMMON) 69 + # if defined(CONFIG_BFIN_L2_ICACHEABLE) 70 + # define L2_IMEMORY (CPLB_L1_CHBL | CPLB_USER_RD | CPLB_VALID | PAGE_SIZE_1MB) 77 71 # else 78 - # define L2_DMEMORY (0) 72 + # define L2_IMEMORY ( CPLB_USER_RD | CPLB_VALID | PAGE_SIZE_1MB) 73 + # endif 74 + 75 + # if defined(CONFIG_BFIN_L2_WRITEBACK) 76 + # define L2_DMEMORY (CPLB_L1_CHBL | CPLB_COMMON | PAGE_SIZE_1MB) 77 + # elif defined(CONFIG_BFIN_L2_WRITETHROUGH) 78 + # define L2_DMEMORY (CPLB_L1_CHBL | CPLB_WT | CPLB_L1_AOW | CPLB_COMMON | PAGE_SIZE_1MB) 79 + # else 80 + # define L2_DMEMORY (CPLB_COMMON | PAGE_SIZE_1MB) 79 81 # endif 80 82 #endif /* CONFIG_SMP */ 81 83
+13
arch/blackfin/include/asm/dma-mapping.h
··· 95 95 enum dma_data_direction dir) 96 96 { 97 97 } 98 + 99 + static inline void dma_sync_sg_for_cpu(struct device *dev, 100 + struct scatterlist *sg, 101 + int nents, enum dma_data_direction dir) 102 + { 103 + } 104 + 105 + static inline void dma_sync_sg_for_device(struct device *dev, 106 + struct scatterlist *sg, 107 + int nents, enum dma_data_direction dir) 108 + { 109 + } 110 + 98 111 #endif /* _BLACKFIN_DMA_MAPPING_H */
+8 -3
arch/blackfin/include/asm/ipipe.h
··· 35 35 #include <asm/atomic.h> 36 36 #include <asm/traps.h> 37 37 38 - #define IPIPE_ARCH_STRING "1.10-00" 38 + #define IPIPE_ARCH_STRING "1.11-00" 39 39 #define IPIPE_MAJOR_NUMBER 1 40 - #define IPIPE_MINOR_NUMBER 10 40 + #define IPIPE_MINOR_NUMBER 11 41 41 #define IPIPE_PATCH_NUMBER 0 42 42 43 43 #ifdef CONFIG_SMP ··· 207 207 208 208 int ipipe_start_irq_thread(unsigned irq, struct irq_desc *desc); 209 209 210 - #ifdef CONFIG_GENERIC_CLOCKEVENTS 210 + #ifdef CONFIG_TICKSOURCE_CORETMR 211 211 #define IRQ_SYSTMR IRQ_CORETMR 212 212 #define IRQ_PRIOTMR IRQ_CORETMR 213 213 #else ··· 240 240 #define ipipe_init_irq_threads() do { } while (0) 241 241 #define ipipe_start_irq_thread(irq, desc) 0 242 242 243 + #ifndef CONFIG_TICKSOURCE_GPTMR0 243 244 #define IRQ_SYSTMR IRQ_CORETMR 244 245 #define IRQ_PRIOTMR IRQ_CORETMR 246 + #else 247 + #define IRQ_SYSTMR IRQ_TIMER0 248 + #define IRQ_PRIOTMR CONFIG_IRQ_TIMER0 249 + #endif 245 250 246 251 #define __ipipe_root_tick_p(regs) 1 247 252
+15 -15
arch/blackfin/include/asm/ipipe_base.h
··· 51 51 52 52 extern unsigned long __ipipe_root_status; /* Alias to ipipe_root_cpudom_var(status) */ 53 53 54 - static inline void __ipipe_stall_root(void) 55 - { 56 - volatile unsigned long *p = &__ipipe_root_status; 57 - set_bit(0, p); 58 - } 54 + #define __ipipe_stall_root() \ 55 + do { \ 56 + volatile unsigned long *p = &__ipipe_root_status; \ 57 + set_bit(0, p); \ 58 + } while (0) 59 59 60 - static inline unsigned long __ipipe_test_and_stall_root(void) 61 - { 62 - volatile unsigned long *p = &__ipipe_root_status; 63 - return test_and_set_bit(0, p); 64 - } 60 + #define __ipipe_test_and_stall_root() \ 61 + ({ \ 62 + volatile unsigned long *p = &__ipipe_root_status; \ 63 + test_and_set_bit(0, p); \ 64 + }) 65 65 66 - static inline unsigned long __ipipe_test_root(void) 67 - { 68 - const unsigned long *p = &__ipipe_root_status; 69 - return test_bit(0, p); 70 - } 66 + #define __ipipe_test_root() \ 67 + ({ \ 68 + const unsigned long *p = &__ipipe_root_status; \ 69 + test_bit(0, p); \ 70 + }) 71 71 72 72 #endif /* !__ASSEMBLY__ */ 73 73
-7
arch/blackfin/include/asm/irq.h
··· 22 22 /* SYS_IRQS and NR_IRQS are defined in <mach-bf5xx/irq.h> */ 23 23 #include <mach/irq.h> 24 24 25 - /* Xenomai IPIPE helpers */ 26 - #define local_irq_restore_hw(x) local_irq_restore(x) 27 - #define local_irq_save_hw(x) local_irq_save(x) 28 - #define local_irq_enable_hw(x) local_irq_enable(x) 29 - #define local_irq_disable_hw(x) local_irq_disable(x) 30 - #define irqs_disabled_hw(x) irqs_disabled(x) 31 - 32 25 #if ANOMALY_05000244 && defined(CONFIG_BFIN_ICACHE) 33 26 # define NOP_PAD_ANOMALY_05000244 "nop; nop;" 34 27 #else
+158 -6
arch/blackfin/include/asm/irqflags.h
··· 31 31 return flags; 32 32 } 33 33 34 + #ifdef CONFIG_IPIPE 35 + 36 + #include <linux/ipipe_base.h> 37 + #include <linux/ipipe_trace.h> 38 + 39 + #ifdef CONFIG_DEBUG_HWERR 40 + # define bfin_no_irqs 0x3f 41 + #else 42 + # define bfin_no_irqs 0x1f 43 + #endif 44 + 45 + #define raw_local_irq_disable() \ 46 + do { \ 47 + ipipe_check_context(ipipe_root_domain); \ 48 + __ipipe_stall_root(); \ 49 + barrier(); \ 50 + } while (0) 51 + 52 + static inline void raw_local_irq_enable(void) 53 + { 54 + barrier(); 55 + ipipe_check_context(ipipe_root_domain); 56 + __ipipe_unstall_root(); 57 + } 58 + 59 + #define raw_local_save_flags_ptr(x) \ 60 + do { \ 61 + *(x) = __ipipe_test_root() ? bfin_no_irqs : bfin_irq_flags; \ 62 + } while (0) 63 + 64 + #define raw_local_save_flags(x) raw_local_save_flags_ptr(&(x)) 65 + 66 + #define raw_irqs_disabled_flags(x) ((x) == bfin_no_irqs) 67 + 68 + #define raw_local_irq_save_ptr(x) \ 69 + do { \ 70 + *(x) = __ipipe_test_and_stall_root() ? bfin_no_irqs : bfin_irq_flags; \ 71 + barrier(); \ 72 + } while (0) 73 + 74 + #define raw_local_irq_save(x) \ 75 + do { \ 76 + ipipe_check_context(ipipe_root_domain); \ 77 + raw_local_irq_save_ptr(&(x)); \ 78 + } while (0) 79 + 80 + static inline unsigned long raw_mangle_irq_bits(int virt, unsigned long real) 81 + { 82 + /* 83 + * Merge virtual and real interrupt mask bits into a single 84 + * 32bit word. 85 + */ 86 + return (real & ~(1 << 31)) | ((virt != 0) << 31); 87 + } 88 + 89 + static inline int raw_demangle_irq_bits(unsigned long *x) 90 + { 91 + int virt = (*x & (1 << 31)) != 0; 92 + *x &= ~(1L << 31); 93 + return virt; 94 + } 95 + 96 + static inline void local_irq_disable_hw_notrace(void) 97 + { 98 + bfin_cli(); 99 + } 100 + 101 + static inline void local_irq_enable_hw_notrace(void) 102 + { 103 + bfin_sti(bfin_irq_flags); 104 + } 105 + 106 + #define local_save_flags_hw(flags) \ 107 + do { \ 108 + (flags) = bfin_read_IMASK(); \ 109 + } while (0) 110 + 111 + #define irqs_disabled_flags_hw(flags) (((flags) & ~0x3f) == 0) 112 + 113 + #define irqs_disabled_hw() \ 114 + ({ \ 115 + unsigned long flags; \ 116 + local_save_flags_hw(flags); \ 117 + irqs_disabled_flags_hw(flags); \ 118 + }) 119 + 120 + static inline void local_irq_save_ptr_hw(unsigned long *flags) 121 + { 122 + *flags = bfin_cli(); 123 + #ifdef CONFIG_DEBUG_HWERR 124 + bfin_sti(0x3f); 125 + #endif 126 + } 127 + 128 + #define local_irq_save_hw_notrace(flags) \ 129 + do { \ 130 + local_irq_save_ptr_hw(&(flags)); \ 131 + } while (0) 132 + 133 + static inline void local_irq_restore_hw_notrace(unsigned long flags) 134 + { 135 + if (!irqs_disabled_flags_hw(flags)) 136 + local_irq_enable_hw_notrace(); 137 + } 138 + 139 + #ifdef CONFIG_IPIPE_TRACE_IRQSOFF 140 + # define local_irq_disable_hw() \ 141 + do { \ 142 + if (!irqs_disabled_hw()) { \ 143 + local_irq_disable_hw_notrace(); \ 144 + ipipe_trace_begin(0x80000000); \ 145 + } \ 146 + } while (0) 147 + # define local_irq_enable_hw() \ 148 + do { \ 149 + if (irqs_disabled_hw()) { \ 150 + ipipe_trace_end(0x80000000); \ 151 + local_irq_enable_hw_notrace(); \ 152 + } \ 153 + } while (0) 154 + # define local_irq_save_hw(flags) \ 155 + do { \ 156 + local_save_flags_hw(flags); \ 157 + if (!irqs_disabled_flags_hw(flags)) { \ 158 + local_irq_disable_hw_notrace(); \ 159 + ipipe_trace_begin(0x80000001); \ 160 + } \ 161 + } while (0) 162 + # define local_irq_restore_hw(flags) \ 163 + do { \ 164 + if (!irqs_disabled_flags_hw(flags)) { \ 165 + ipipe_trace_end(0x80000001); \ 166 + local_irq_enable_hw_notrace(); \ 167 + } \ 168 + } while (0) 169 + #else /* !CONFIG_IPIPE_TRACE_IRQSOFF */ 170 + # define local_irq_disable_hw() local_irq_disable_hw_notrace() 171 + # define local_irq_enable_hw() local_irq_enable_hw_notrace() 172 + # define local_irq_save_hw(flags) local_irq_save_hw_notrace(flags) 173 + # define local_irq_restore_hw(flags) local_irq_restore_hw_notrace(flags) 174 + #endif /* !CONFIG_IPIPE_TRACE_IRQSOFF */ 175 + 176 + #else /* CONFIG_IPIPE */ 177 + 34 178 static inline void raw_local_irq_disable(void) 35 179 { 36 180 bfin_cli(); ··· 188 44 189 45 #define raw_irqs_disabled_flags(flags) (((flags) & ~0x3f) == 0) 190 46 191 - static inline void raw_local_irq_restore(unsigned long flags) 192 - { 193 - if (!raw_irqs_disabled_flags(flags)) 194 - raw_local_irq_enable(); 195 - } 196 - 197 47 static inline unsigned long __raw_local_irq_save(void) 198 48 { 199 49 unsigned long flags = bfin_cli(); ··· 197 59 return flags; 198 60 } 199 61 #define raw_local_irq_save(flags) do { (flags) = __raw_local_irq_save(); } while (0) 62 + 63 + #define local_irq_save_hw(flags) raw_local_irq_save(flags) 64 + #define local_irq_restore_hw(flags) raw_local_irq_restore(flags) 65 + #define local_irq_enable_hw() raw_local_irq_enable() 66 + #define local_irq_disable_hw() raw_local_irq_disable() 67 + #define irqs_disabled_hw() irqs_disabled() 68 + 69 + #endif /* !CONFIG_IPIPE */ 70 + 71 + static inline void raw_local_irq_restore(unsigned long flags) 72 + { 73 + if (!raw_irqs_disabled_flags(flags)) 74 + raw_local_irq_enable(); 75 + } 200 76 201 77 #endif
+87 -1
arch/blackfin/include/asm/mem_init.h
··· 59 59 #define SDRAM_tRP TRP_1 60 60 #define SDRAM_tRP_num 1 61 61 #define SDRAM_tRAS TRAS_4 62 - #define SDRAM_tRAS_num 3 62 + #define SDRAM_tRAS_num 4 63 63 #define SDRAM_tRCD TRCD_1 64 64 #define SDRAM_tWR TWR_2 65 65 #endif ··· 89 89 #endif 90 90 #endif 91 91 92 + /* 93 + * The BF526-EZ-Board changed SDRAM chips between revisions, 94 + * so we use below timings to accommodate both. 95 + */ 96 + #if defined(CONFIG_MEM_MT48H32M16LFCJ_75) 97 + #if (CONFIG_SCLK_HZ > 119402985) 98 + #define SDRAM_tRP TRP_2 99 + #define SDRAM_tRP_num 2 100 + #define SDRAM_tRAS TRAS_8 101 + #define SDRAM_tRAS_num 8 102 + #define SDRAM_tRCD TRCD_2 103 + #define SDRAM_tWR TWR_2 104 + #endif 105 + #if (CONFIG_SCLK_HZ > 104477612) && (CONFIG_SCLK_HZ <= 119402985) 106 + #define SDRAM_tRP TRP_2 107 + #define SDRAM_tRP_num 2 108 + #define SDRAM_tRAS TRAS_7 109 + #define SDRAM_tRAS_num 7 110 + #define SDRAM_tRCD TRCD_2 111 + #define SDRAM_tWR TWR_2 112 + #endif 113 + #if (CONFIG_SCLK_HZ > 89552239) && (CONFIG_SCLK_HZ <= 104477612) 114 + #define SDRAM_tRP TRP_2 115 + #define SDRAM_tRP_num 2 116 + #define SDRAM_tRAS TRAS_6 117 + #define SDRAM_tRAS_num 6 118 + #define SDRAM_tRCD TRCD_2 119 + #define SDRAM_tWR TWR_2 120 + #endif 121 + #if (CONFIG_SCLK_HZ > 74626866) && (CONFIG_SCLK_HZ <= 89552239) 122 + #define SDRAM_tRP TRP_2 123 + #define SDRAM_tRP_num 2 124 + #define SDRAM_tRAS TRAS_5 125 + #define SDRAM_tRAS_num 5 126 + #define SDRAM_tRCD TRCD_2 127 + #define SDRAM_tWR TWR_2 128 + #endif 129 + #if (CONFIG_SCLK_HZ > 66666667) && (CONFIG_SCLK_HZ <= 74626866) 130 + #define SDRAM_tRP TRP_2 131 + #define SDRAM_tRP_num 2 132 + #define SDRAM_tRAS TRAS_4 133 + #define SDRAM_tRAS_num 4 134 + #define SDRAM_tRCD TRCD_2 135 + #define SDRAM_tWR TWR_2 136 + #endif 137 + #if (CONFIG_SCLK_HZ > 59701493) && (CONFIG_SCLK_HZ <= 66666667) 138 + #define SDRAM_tRP TRP_2 139 + #define SDRAM_tRP_num 2 140 + #define SDRAM_tRAS TRAS_4 141 + #define SDRAM_tRAS_num 4 142 + #define SDRAM_tRCD TRCD_1 143 + #define SDRAM_tWR TWR_2 144 + #endif 145 + #if (CONFIG_SCLK_HZ > 44776119) && (CONFIG_SCLK_HZ <= 59701493) 146 + #define SDRAM_tRP TRP_2 147 + #define SDRAM_tRP_num 2 148 + #define SDRAM_tRAS TRAS_3 149 + #define SDRAM_tRAS_num 3 150 + #define SDRAM_tRCD TRCD_1 151 + #define SDRAM_tWR TWR_2 152 + #endif 153 + #if (CONFIG_SCLK_HZ > 29850746) && (CONFIG_SCLK_HZ <= 44776119) 154 + #define SDRAM_tRP TRP_1 155 + #define SDRAM_tRP_num 1 156 + #define SDRAM_tRAS TRAS_3 157 + #define SDRAM_tRAS_num 3 158 + #define SDRAM_tRCD TRCD_1 159 + #define SDRAM_tWR TWR_2 160 + #endif 161 + #if (CONFIG_SCLK_HZ <= 29850746) 162 + #define SDRAM_tRP TRP_1 163 + #define SDRAM_tRP_num 1 164 + #define SDRAM_tRAS TRAS_2 165 + #define SDRAM_tRAS_num 2 166 + #define SDRAM_tRCD TRCD_1 167 + #define SDRAM_tWR TWR_2 168 + #endif 169 + #endif 170 + 92 171 #if defined(CONFIG_MEM_MT48LC16M8A2TG_75) || \ 93 172 defined(CONFIG_MEM_MT48LC8M32B2B5_7) 94 173 /*SDRAM INFORMATION: */ ··· 186 107 #define SDRAM_Tref 64 /* Refresh period in milliseconds */ 187 108 #define SDRAM_NRA 8192 /* Number of row addresses in SDRAM */ 188 109 #define SDRAM_CL CL_3 110 + #endif 111 + 112 + #if defined(CONFIG_MEM_MT48H32M16LFCJ_75) 113 + /*SDRAM INFORMATION: */ 114 + #define SDRAM_Tref 64 /* Refresh period in milliseconds */ 115 + #define SDRAM_NRA 8192 /* Number of row addresses in SDRAM */ 116 + #define SDRAM_CL CL_2 189 117 #endif 190 118 191 119
+47 -50
arch/blackfin/include/asm/mem_map.h
··· 1 1 /* 2 - * mem_map.h 3 - * Common header file for blackfin family of processors. 2 + * Common Blackfin memory map 4 3 * 4 + * Copyright 2004-2009 Analog Devices Inc. 5 + * Licensed under the GPL-2 or later. 5 6 */ 6 7 7 - #ifndef _MEM_MAP_H_ 8 - #define _MEM_MAP_H_ 8 + #ifndef __BFIN_MEM_MAP_H__ 9 + #define __BFIN_MEM_MAP_H__ 9 10 10 11 #include <mach/mem_map.h> 11 12 12 - #ifndef __ASSEMBLY__ 13 + /* Every Blackfin so far has MMRs like this */ 14 + #ifndef COREMMR_BASE 15 + # define COREMMR_BASE 0xFFE00000 16 + #endif 17 + #ifndef SYSMMR_BASE 18 + # define SYSMMR_BASE 0xFFC00000 19 + #endif 13 20 14 - #ifdef CONFIG_SMP 15 - static inline ulong get_l1_scratch_start_cpu(int cpu) 16 - { 17 - return (cpu) ? COREB_L1_SCRATCH_START : COREA_L1_SCRATCH_START; 18 - } 19 - static inline ulong get_l1_code_start_cpu(int cpu) 20 - { 21 - return (cpu) ? COREB_L1_CODE_START : COREA_L1_CODE_START; 22 - } 23 - static inline ulong get_l1_data_a_start_cpu(int cpu) 24 - { 25 - return (cpu) ? COREB_L1_DATA_A_START : COREA_L1_DATA_A_START; 26 - } 27 - static inline ulong get_l1_data_b_start_cpu(int cpu) 28 - { 29 - return (cpu) ? COREB_L1_DATA_B_START : COREA_L1_DATA_B_START; 30 - } 21 + /* Every Blackfin so far has on-chip Scratch Pad SRAM like this */ 22 + #ifndef L1_SCRATCH_START 23 + # define L1_SCRATCH_START 0xFFB00000 24 + # define L1_SCRATCH_LENGTH 0x1000 25 + #endif 31 26 32 - static inline ulong get_l1_scratch_start(void) 33 - { 34 - return get_l1_scratch_start_cpu(blackfin_core_id()); 35 - } 36 - static inline ulong get_l1_code_start(void) 37 - { 38 - return get_l1_code_start_cpu(blackfin_core_id()); 39 - } 40 - static inline ulong get_l1_data_a_start(void) 41 - { 42 - return get_l1_data_a_start_cpu(blackfin_core_id()); 43 - } 44 - static inline ulong get_l1_data_b_start(void) 45 - { 46 - return get_l1_data_b_start_cpu(blackfin_core_id()); 47 - } 27 + /* Most parts lack on-chip L2 SRAM */ 28 + #ifndef L2_START 29 + # define L2_START 0 30 + # define L2_LENGTH 0 31 + #endif 48 32 49 - #else /* !CONFIG_SMP */ 33 + /* Most parts lack on-chip L1 ROM */ 34 + #ifndef L1_ROM_START 35 + # define L1_ROM_START 0 36 + # define L1_ROM_LENGTH 0 37 + #endif 50 38 51 - static inline ulong get_l1_scratch_start_cpu(int cpu) 39 + /* Allow wonky SMP ports to override this */ 40 + #ifndef GET_PDA_SAFE 41 + # define GET_PDA_SAFE(preg) \ 42 + preg.l = _cpu_pda; \ 43 + preg.h = _cpu_pda; 44 + # define GET_PDA(preg, dreg) GET_PDA_SAFE(preg) 45 + 46 + # ifndef __ASSEMBLY__ 47 + 48 + static inline unsigned long get_l1_scratch_start_cpu(int cpu) 52 49 { 53 50 return L1_SCRATCH_START; 54 51 } 55 - static inline ulong get_l1_code_start_cpu(int cpu) 52 + static inline unsigned long get_l1_code_start_cpu(int cpu) 56 53 { 57 54 return L1_CODE_START; 58 55 } 59 - static inline ulong get_l1_data_a_start_cpu(int cpu) 56 + static inline unsigned long get_l1_data_a_start_cpu(int cpu) 60 57 { 61 58 return L1_DATA_A_START; 62 59 } 63 - static inline ulong get_l1_data_b_start_cpu(int cpu) 60 + static inline unsigned long get_l1_data_b_start_cpu(int cpu) 64 61 { 65 62 return L1_DATA_B_START; 66 63 } 67 - static inline ulong get_l1_scratch_start(void) 64 + static inline unsigned long get_l1_scratch_start(void) 68 65 { 69 66 return get_l1_scratch_start_cpu(0); 70 67 } 71 - static inline ulong get_l1_code_start(void) 68 + static inline unsigned long get_l1_code_start(void) 72 69 { 73 70 return get_l1_code_start_cpu(0); 74 71 } 75 - static inline ulong get_l1_data_a_start(void) 72 + static inline unsigned long get_l1_data_a_start(void) 76 73 { 77 74 return get_l1_data_a_start_cpu(0); 78 75 } 79 - static inline ulong get_l1_data_b_start(void) 76 + static inline unsigned long get_l1_data_b_start(void) 80 77 { 81 78 return get_l1_data_b_start_cpu(0); 82 79 } 83 80 84 - #endif /* CONFIG_SMP */ 85 - #endif /* __ASSEMBLY__ */ 81 + # endif /* __ASSEMBLY__ */ 82 + #endif /* !GET_PDA_SAFE */ 86 83 87 - #endif /* _MEM_MAP_H_ */ 84 + #endif
+3 -1
arch/blackfin/include/asm/system.h
··· 135 135 }; 136 136 #define __xg(x) ((volatile struct __xchg_dummy *)(x)) 137 137 138 + #include <mach/blackfin.h> 139 + 138 140 static inline unsigned long __xchg(unsigned long x, volatile void *ptr, 139 141 int size) 140 142 { 141 143 unsigned long tmp = 0; 142 - unsigned long flags = 0; 144 + unsigned long flags; 143 145 144 146 local_irq_save_hw(flags); 145 147
+1 -3
arch/blackfin/include/asm/traps.h
··· 111 111 level " bits in the Watchpoint Instruction Address Control register (WPIACTL) is set.\n" 112 112 #define EXC_0x2A(level) \ 113 113 "Instruction fetch misaligned address violation\n" \ 114 - level " - Attempted misaligned instruction cache fetch. On a misaligned instruction fetch\n" \ 115 - level " exception, the return address provided in RETX is the destination address which is\n" \ 116 - level " misaligned, rather than the address of the offending instruction.\n" 114 + level " - Attempted misaligned instruction cache fetch.\n" 117 115 #define EXC_0x2B(level) \ 118 116 "CPLB protection violation\n" \ 119 117 level " - Illegal instruction fetch access (memory protection violation).\n"
+22
arch/blackfin/include/asm/uaccess.h
··· 265 265 266 266 #define clear_user(to, n) __clear_user(to, n) 267 267 268 + /* How to interpret these return values: 269 + * CORE: can be accessed by core load or dma memcpy 270 + * CORE_ONLY: can only be accessed by core load 271 + * DMA: can only be accessed by dma memcpy 272 + * IDMA: can only be accessed by interprocessor dma memcpy (BF561) 273 + * ITEST: can be accessed by isram memcpy or dma memcpy 274 + */ 275 + enum { 276 + BFIN_MEM_ACCESS_CORE = 0, 277 + BFIN_MEM_ACCESS_CORE_ONLY, 278 + BFIN_MEM_ACCESS_DMA, 279 + BFIN_MEM_ACCESS_IDMA, 280 + BFIN_MEM_ACCESS_ITEST, 281 + }; 282 + /** 283 + * bfin_mem_access_type() - what kind of memory access is required 284 + * @addr: the address to check 285 + * @size: number of bytes needed 286 + * @return: <0 is error, >=0 is BFIN_MEM_ACCESS_xxx enum (see above) 287 + */ 288 + int bfin_mem_access_type(unsigned long addr, unsigned long size); 289 + 268 290 #endif /* _BLACKFIN_UACCESS_H */
+2 -1
arch/blackfin/include/asm/unistd.h
··· 381 381 #define __NR_preadv 366 382 382 #define __NR_pwritev 367 383 383 #define __NR_rt_tgsigqueueinfo 368 384 + #define __NR_perf_counter_open 369 384 385 385 - #define __NR_syscall 369 386 + #define __NR_syscall 370 386 387 #define NR_syscalls __NR_syscall 387 388 388 389 /* Old optional stuff no one actually uses */
-1
arch/blackfin/kernel/Makefile
··· 20 20 CFLAGS_REMOVE_ftrace.o = -pg 21 21 22 22 obj-$(CONFIG_IPIPE) += ipipe.o 23 - obj-$(CONFIG_IPIPE_TRACE_MCOUNT) += mcount.o 24 23 obj-$(CONFIG_BFIN_GPTIMERS) += gptimers.o 25 24 obj-$(CONFIG_CPLB_INFO) += cplbinfo.o 26 25 obj-$(CONFIG_MODULES) += module.o
+5 -5
arch/blackfin/kernel/cplb-mpu/cplbinit.c
··· 46 46 47 47 printk(KERN_INFO "MPU: setting up cplb tables with memory protection\n"); 48 48 49 - #ifdef CONFIG_BFIN_ICACHE 49 + #ifdef CONFIG_BFIN_EXTMEM_ICACHEABLE 50 50 i_cache = CPLB_L1_CHBL | ANOMALY_05000158_WORKAROUND; 51 51 #endif 52 52 53 - #ifdef CONFIG_BFIN_DCACHE 53 + #ifdef CONFIG_BFIN_EXTMEM_DCACHEABLE 54 54 d_cache = CPLB_L1_CHBL; 55 - #ifdef CONFIG_BFIN_WT 55 + #ifdef CONFIG_BFIN_EXTMEM_WRITETROUGH 56 56 d_cache |= CPLB_L1_AOW | CPLB_WT; 57 57 #endif 58 58 #endif ··· 91 91 /* Cover L2 memory */ 92 92 #if L2_LENGTH > 0 93 93 dcplb_tbl[cpu][i_d].addr = L2_START; 94 - dcplb_tbl[cpu][i_d++].data = L2_DMEMORY | PAGE_SIZE_1MB; 94 + dcplb_tbl[cpu][i_d++].data = L2_DMEMORY; 95 95 icplb_tbl[cpu][i_i].addr = L2_START; 96 - icplb_tbl[cpu][i_i++].data = L2_IMEMORY | PAGE_SIZE_1MB; 96 + icplb_tbl[cpu][i_i++].data = L2_IMEMORY; 97 97 #endif 98 98 99 99 first_mask_dcplb = i_d;
+24 -12
arch/blackfin/kernel/cplb-mpu/cplbmgr.c
··· 150 150 nr_dcplb_miss[cpu]++; 151 151 152 152 d_data = CPLB_SUPV_WR | CPLB_VALID | CPLB_DIRTY | PAGE_SIZE_4KB; 153 - #ifdef CONFIG_BFIN_DCACHE 153 + #ifdef CONFIG_BFIN_EXTMEM_DCACHEABLE 154 154 if (bfin_addr_dcacheable(addr)) { 155 155 d_data |= CPLB_L1_CHBL | ANOMALY_05000158_WORKAROUND; 156 - #ifdef CONFIG_BFIN_WT 156 + # ifdef CONFIG_BFIN_EXTMEM_WRITETHROUGH 157 157 d_data |= CPLB_L1_AOW | CPLB_WT; 158 - #endif 158 + # endif 159 159 } 160 160 #endif 161 - if (addr >= physical_mem_end) { 161 + 162 + if (L2_LENGTH && addr >= L2_START && addr < L2_START + L2_LENGTH) { 163 + addr = L2_START; 164 + d_data = L2_DMEMORY; 165 + } else if (addr >= physical_mem_end) { 162 166 if (addr >= ASYNC_BANK0_BASE && addr < ASYNC_BANK3_BASE + ASYNC_BANK3_SIZE 163 167 && (status & FAULT_USERSUPV)) { 164 168 addr &= ~0x3fffff; ··· 239 235 240 236 i_data = CPLB_VALID | CPLB_PORTPRIO | PAGE_SIZE_4KB; 241 237 242 - #ifdef CONFIG_BFIN_ICACHE 238 + #ifdef CONFIG_BFIN_EXTMEM_ICACHEABLE 243 239 /* 244 240 * Normal RAM, and possibly the reserved memory area, are 245 241 * cacheable. ··· 249 245 i_data |= CPLB_L1_CHBL | ANOMALY_05000158_WORKAROUND; 250 246 #endif 251 247 252 - if (addr >= physical_mem_end) { 248 + if (L2_LENGTH && addr >= L2_START && addr < L2_START + L2_LENGTH) { 249 + addr = L2_START; 250 + i_data = L2_IMEMORY; 251 + } else if (addr >= physical_mem_end) { 253 252 if (addr >= BOOT_ROM_START && addr < BOOT_ROM_START + BOOT_ROM_LENGTH 254 253 && (status & FAULT_USERSUPV)) { 255 254 addr &= ~(1 * 1024 * 1024 - 1); ··· 372 365 local_irq_save_hw(flags); 373 366 current_rwx_mask[cpu] = masks; 374 367 375 - d_data = CPLB_SUPV_WR | CPLB_VALID | CPLB_DIRTY | PAGE_SIZE_4KB; 376 - #ifdef CONFIG_BFIN_DCACHE 377 - d_data |= CPLB_L1_CHBL; 378 - #ifdef CONFIG_BFIN_WT 379 - d_data |= CPLB_L1_AOW | CPLB_WT; 368 + if (L2_LENGTH && addr >= L2_START && addr < L2_START + L2_LENGTH) { 369 + addr = L2_START; 370 + d_data = L2_DMEMORY; 371 + } else { 372 + d_data = CPLB_SUPV_WR | CPLB_VALID | CPLB_DIRTY | PAGE_SIZE_4KB; 373 + #ifdef CONFIG_BFIN_EXTMEM_DCACHEABLE 374 + d_data |= CPLB_L1_CHBL; 375 + # ifdef CONFIG_BFIN_EXTMEM_WRITETHROUGH 376 + d_data |= CPLB_L1_AOW | CPLB_WT; 377 + # endif 380 378 #endif 381 - #endif 379 + } 382 380 383 381 disable_dcplb(); 384 382 for (i = first_mask_dcplb; i < first_switched_dcplb; i++) {
+1 -6
arch/blackfin/kernel/ipipe.c
··· 52 52 53 53 atomic_t __ipipe_irq_lvdepth[IVG15 + 1]; 54 54 55 - unsigned long __ipipe_irq_lvmask = __all_masked_irq_flags; 55 + unsigned long __ipipe_irq_lvmask = bfin_no_irqs; 56 56 EXPORT_SYMBOL(__ipipe_irq_lvmask); 57 57 58 58 static void __ipipe_ack_irq(unsigned irq, struct irq_desc *desc) ··· 342 342 } 343 343 344 344 EXPORT_SYMBOL(show_stack); 345 - 346 - #ifdef CONFIG_IPIPE_TRACE_MCOUNT 347 - void notrace _mcount(void); 348 - EXPORT_SYMBOL(_mcount); 349 - #endif /* CONFIG_IPIPE_TRACE_MCOUNT */
+47 -67
arch/blackfin/kernel/irqchip.c
··· 38 38 #include <asm/pda.h> 39 39 40 40 static atomic_t irq_err_count; 41 - static spinlock_t irq_controller_lock; 42 - 43 - /* 44 - * Dummy mask/unmask handler 45 - */ 46 - void dummy_mask_unmask_irq(unsigned int irq) 47 - { 48 - } 49 - 50 41 void ack_bad_irq(unsigned int irq) 51 42 { 52 43 atomic_inc(&irq_err_count); 53 44 printk(KERN_ERR "IRQ: spurious interrupt %d\n", irq); 54 45 } 55 46 56 - static struct irq_chip bad_chip = { 57 - .ack = dummy_mask_unmask_irq, 58 - .mask = dummy_mask_unmask_irq, 59 - .unmask = dummy_mask_unmask_irq, 60 - }; 61 - 62 - static int bad_stats; 63 47 static struct irq_desc bad_irq_desc = { 64 - .status = IRQ_DISABLED, 65 - .chip = &bad_chip, 66 48 .handle_irq = handle_bad_irq, 67 - .depth = 1, 68 49 .lock = __SPIN_LOCK_UNLOCKED(irq_desc->lock), 69 - .kstat_irqs = &bad_stats, 70 - #ifdef CONFIG_SMP 71 - .affinity = CPU_MASK_ALL 72 - #endif 73 50 }; 74 51 75 52 #ifdef CONFIG_CPUMASK_OFFSTACK ··· 54 77 #error "Blackfin architecture does not support CONFIG_CPUMASK_OFFSTACK." 55 78 #endif 56 79 80 + #ifdef CONFIG_PROC_FS 57 81 int show_interrupts(struct seq_file *p, void *v) 58 82 { 59 83 int i = *(loff_t *) v, j; ··· 86 108 } 87 109 return 0; 88 110 } 89 - 90 - /* 91 - * do_IRQ handles all hardware IRQs. Decoded IRQs should not 92 - * come via this function. Instead, they should provide their 93 - * own 'handler' 94 - */ 95 - #ifdef CONFIG_DO_IRQ_L1 96 - __attribute__((l1_text)) 97 111 #endif 98 - asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs) 99 - { 100 - struct pt_regs *old_regs; 101 - struct irq_desc *desc = irq_desc + irq; 102 - #ifndef CONFIG_IPIPE 103 - unsigned short pending, other_ints; 104 - #endif 105 - old_regs = set_irq_regs(regs); 106 112 107 - /* 108 - * Some hardware gives randomly wrong interrupts. Rather 109 - * than crashing, do something sensible. 110 - */ 111 - if (irq >= NR_IRQS) 112 - desc = &bad_irq_desc; 113 - 114 - irq_enter(); 115 113 #ifdef CONFIG_DEBUG_STACKOVERFLOW 114 + static void check_stack_overflow(int irq) 115 + { 116 116 /* Debugging check for stack overflow: is there less than STACK_WARN free? */ 117 - { 118 - long sp; 117 + long sp = __get_SP() & (THREAD_SIZE - 1); 119 118 120 - sp = __get_SP() & (THREAD_SIZE-1); 121 - 122 - if (unlikely(sp < (sizeof(struct thread_info) + STACK_WARN))) { 123 - dump_stack(); 124 - printk(KERN_EMERG "%s: possible stack overflow while handling irq %i " 125 - " only %ld bytes free\n", 126 - __func__, irq, sp - sizeof(struct thread_info)); 127 - } 119 + if (unlikely(sp < (sizeof(struct thread_info) + STACK_WARN))) { 120 + dump_stack(); 121 + pr_emerg("irq%i: possible stack overflow only %ld bytes free\n", 122 + irq, sp - sizeof(struct thread_info)); 128 123 } 124 + } 125 + #else 126 + static inline void check_stack_overflow(int irq) { } 129 127 #endif 130 - generic_handle_irq(irq); 131 128 132 129 #ifndef CONFIG_IPIPE 130 + static void maybe_lower_to_irq14(void) 131 + { 132 + unsigned short pending, other_ints; 133 + 133 134 /* 134 135 * If we're the only interrupt running (ignoring IRQ15 which 135 136 * is for syscalls), lower our priority to IRQ14 so that ··· 122 165 other_ints = pending & (pending - 1); 123 166 if (other_ints == 0) 124 167 lower_to_irq14(); 125 - #endif /* !CONFIG_IPIPE */ 168 + } 169 + #else 170 + static inline void maybe_lower_to_irq14(void) { } 171 + #endif 172 + 173 + /* 174 + * do_IRQ handles all hardware IRQs. Decoded IRQs should not 175 + * come via this function. Instead, they should provide their 176 + * own 'handler' 177 + */ 178 + #ifdef CONFIG_DO_IRQ_L1 179 + __attribute__((l1_text)) 180 + #endif 181 + asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs) 182 + { 183 + struct pt_regs *old_regs = set_irq_regs(regs); 184 + 185 + irq_enter(); 186 + 187 + check_stack_overflow(irq); 188 + 189 + /* 190 + * Some hardware gives randomly wrong interrupts. Rather 191 + * than crashing, do something sensible. 192 + */ 193 + if (irq >= NR_IRQS) 194 + handle_bad_irq(irq, &bad_irq_desc); 195 + else 196 + generic_handle_irq(irq); 197 + 198 + maybe_lower_to_irq14(); 199 + 126 200 irq_exit(); 127 201 128 202 set_irq_regs(old_regs); ··· 161 173 162 174 void __init init_IRQ(void) 163 175 { 164 - struct irq_desc *desc; 165 - int irq; 166 - 167 - spin_lock_init(&irq_controller_lock); 168 - for (irq = 0, desc = irq_desc; irq < NR_IRQS; irq++, desc++) { 169 - *desc = bad_irq_desc; 170 - } 171 - 172 176 init_arch_irq(); 173 177 174 178 #ifdef CONFIG_DEBUG_BFIN_HWTRACE_EXPAND
+97 -202
arch/blackfin/kernel/kgdb.c
··· 34 34 #error change the definition of slavecpulocks 35 35 #endif 36 36 37 - #define IN_MEM(addr, size, l1_addr, l1_size) \ 38 - ({ \ 39 - unsigned long __addr = (unsigned long)(addr); \ 40 - (l1_size && __addr >= l1_addr && __addr + (size) <= l1_addr + l1_size); \ 41 - }) 42 - #define ASYNC_BANK_SIZE \ 43 - (ASYNC_BANK0_SIZE + ASYNC_BANK1_SIZE + \ 44 - ASYNC_BANK2_SIZE + ASYNC_BANK3_SIZE) 45 - 46 37 void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs) 47 38 { 48 39 gdb_regs[BFIN_R0] = regs->r0; ··· 454 463 455 464 static int validate_memory_access_address(unsigned long addr, int size) 456 465 { 457 - int cpu = raw_smp_processor_id(); 458 - 459 - if (size < 0) 466 + if (size < 0 || addr == 0) 460 467 return -EFAULT; 461 - if (addr >= 0x1000 && (addr + size) <= physical_mem_end) 462 - return 0; 463 - if (addr >= SYSMMR_BASE) 464 - return 0; 465 - if (IN_MEM(addr, size, ASYNC_BANK0_BASE, ASYNC_BANK_SIZE)) 466 - return 0; 467 - if (cpu == 0) { 468 - if (IN_MEM(addr, size, L1_SCRATCH_START, L1_SCRATCH_LENGTH)) 468 + return bfin_mem_access_type(addr, size); 469 + } 470 + 471 + static int bfin_probe_kernel_read(char *dst, char *src, int size) 472 + { 473 + unsigned long lsrc = (unsigned long)src; 474 + int mem_type; 475 + 476 + mem_type = validate_memory_access_address(lsrc, size); 477 + if (mem_type < 0) 478 + return mem_type; 479 + 480 + if (lsrc >= SYSMMR_BASE) { 481 + if (size == 2 && lsrc % 2 == 0) { 482 + u16 mmr = bfin_read16(src); 483 + memcpy(dst, &mmr, sizeof(mmr)); 469 484 return 0; 470 - if (IN_MEM(addr, size, L1_CODE_START, L1_CODE_LENGTH)) 485 + } else if (size == 4 && lsrc % 4 == 0) { 486 + u32 mmr = bfin_read32(src); 487 + memcpy(dst, &mmr, sizeof(mmr)); 471 488 return 0; 472 - if (IN_MEM(addr, size, L1_DATA_A_START, L1_DATA_A_LENGTH)) 473 - return 0; 474 - if (IN_MEM(addr, size, L1_DATA_B_START, L1_DATA_B_LENGTH)) 475 - return 0; 476 - #ifdef CONFIG_SMP 477 - } else if (cpu == 1) { 478 - if (IN_MEM(addr, size, COREB_L1_SCRATCH_START, L1_SCRATCH_LENGTH)) 479 - return 0; 480 - if (IN_MEM(addr, size, COREB_L1_CODE_START, L1_CODE_LENGTH)) 481 - return 0; 482 - if (IN_MEM(addr, size, COREB_L1_DATA_A_START, L1_DATA_A_LENGTH)) 483 - return 0; 484 - if (IN_MEM(addr, size, COREB_L1_DATA_B_START, L1_DATA_B_LENGTH)) 485 - return 0; 486 - #endif 489 + } 490 + } else { 491 + switch (mem_type) { 492 + case BFIN_MEM_ACCESS_CORE: 493 + case BFIN_MEM_ACCESS_CORE_ONLY: 494 + return probe_kernel_read(dst, src, size); 495 + /* XXX: should support IDMA here with SMP */ 496 + case BFIN_MEM_ACCESS_DMA: 497 + if (dma_memcpy(dst, src, size)) 498 + return 0; 499 + break; 500 + case BFIN_MEM_ACCESS_ITEST: 501 + if (isram_memcpy(dst, src, size)) 502 + return 0; 503 + break; 504 + } 487 505 } 488 506 489 - if (IN_MEM(addr, size, L2_START, L2_LENGTH)) 490 - return 0; 507 + return -EFAULT; 508 + } 509 + 510 + static int bfin_probe_kernel_write(char *dst, char *src, int size) 511 + { 512 + unsigned long ldst = (unsigned long)dst; 513 + int mem_type; 514 + 515 + mem_type = validate_memory_access_address(ldst, size); 516 + if (mem_type < 0) 517 + return mem_type; 518 + 519 + if (ldst >= SYSMMR_BASE) { 520 + if (size == 2 && ldst % 2 == 0) { 521 + u16 mmr; 522 + memcpy(&mmr, src, sizeof(mmr)); 523 + bfin_write16(dst, mmr); 524 + return 0; 525 + } else if (size == 4 && ldst % 4 == 0) { 526 + u32 mmr; 527 + memcpy(&mmr, src, sizeof(mmr)); 528 + bfin_write32(dst, mmr); 529 + return 0; 530 + } 531 + } else { 532 + switch (mem_type) { 533 + case BFIN_MEM_ACCESS_CORE: 534 + case BFIN_MEM_ACCESS_CORE_ONLY: 535 + return probe_kernel_write(dst, src, size); 536 + /* XXX: should support IDMA here with SMP */ 537 + case BFIN_MEM_ACCESS_DMA: 538 + if (dma_memcpy(dst, src, size)) 539 + return 0; 540 + break; 541 + case BFIN_MEM_ACCESS_ITEST: 542 + if (isram_memcpy(dst, src, size)) 543 + return 0; 544 + break; 545 + } 546 + } 491 547 492 548 return -EFAULT; 493 549 } ··· 547 509 { 548 510 char *tmp; 549 511 int err; 550 - unsigned char *pch; 551 - unsigned short mmr16; 552 - unsigned long mmr32; 553 - int cpu = raw_smp_processor_id(); 554 - 555 - err = validate_memory_access_address((unsigned long)mem, count); 556 - if (err) 557 - return err; 558 512 559 513 /* 560 514 * We use the upper half of buf as an intermediate buffer for the ··· 554 524 */ 555 525 tmp = buf + count; 556 526 557 - if ((unsigned int)mem >= SYSMMR_BASE) { /*access MMR registers*/ 558 - switch (count) { 559 - case 2: 560 - if ((unsigned int)mem % 2 == 0) { 561 - mmr16 = *(unsigned short *)mem; 562 - pch = (unsigned char *)&mmr16; 563 - *tmp++ = *pch++; 564 - *tmp++ = *pch++; 565 - tmp -= 2; 566 - } else 567 - err = -EFAULT; 568 - break; 569 - case 4: 570 - if ((unsigned int)mem % 4 == 0) { 571 - mmr32 = *(unsigned long *)mem; 572 - pch = (unsigned char *)&mmr32; 573 - *tmp++ = *pch++; 574 - *tmp++ = *pch++; 575 - *tmp++ = *pch++; 576 - *tmp++ = *pch++; 577 - tmp -= 4; 578 - } else 579 - err = -EFAULT; 580 - break; 581 - default: 582 - err = -EFAULT; 583 - } 584 - } else if ((cpu == 0 && IN_MEM(mem, count, L1_CODE_START, L1_CODE_LENGTH)) 585 - #ifdef CONFIG_SMP 586 - || (cpu == 1 && IN_MEM(mem, count, COREB_L1_CODE_START, L1_CODE_LENGTH)) 587 - #endif 588 - ) { 589 - /* access L1 instruction SRAM*/ 590 - if (dma_memcpy(tmp, mem, count) == NULL) 591 - err = -EFAULT; 592 - } else 593 - err = probe_kernel_read(tmp, mem, count); 594 - 527 + err = bfin_probe_kernel_read(tmp, mem, count); 595 528 if (!err) { 596 529 while (count > 0) { 597 530 buf = pack_hex_byte(buf, *tmp); ··· 575 582 */ 576 583 int kgdb_ebin2mem(char *buf, char *mem, int count) 577 584 { 578 - char *tmp_old; 579 - char *tmp_new; 580 - unsigned short *mmr16; 581 - unsigned long *mmr32; 582 - int err; 585 + char *tmp_old, *tmp_new; 583 586 int size; 584 - int cpu = raw_smp_processor_id(); 585 587 586 588 tmp_old = tmp_new = buf; 587 589 ··· 589 601 tmp_old++; 590 602 } 591 603 592 - err = validate_memory_access_address((unsigned long)mem, size); 593 - if (err) 594 - return err; 595 - 596 - if ((unsigned int)mem >= SYSMMR_BASE) { /*access MMR registers*/ 597 - switch (size) { 598 - case 2: 599 - if ((unsigned int)mem % 2 == 0) { 600 - mmr16 = (unsigned short *)buf; 601 - *(unsigned short *)mem = *mmr16; 602 - } else 603 - err = -EFAULT; 604 - break; 605 - case 4: 606 - if ((unsigned int)mem % 4 == 0) { 607 - mmr32 = (unsigned long *)buf; 608 - *(unsigned long *)mem = *mmr32; 609 - } else 610 - err = -EFAULT; 611 - break; 612 - default: 613 - err = -EFAULT; 614 - } 615 - } else if ((cpu == 0 && IN_MEM(mem, count, L1_CODE_START, L1_CODE_LENGTH)) 616 - #ifdef CONFIG_SMP 617 - || (cpu == 1 && IN_MEM(mem, count, COREB_L1_CODE_START, L1_CODE_LENGTH)) 618 - #endif 619 - ) { 620 - /* access L1 instruction SRAM */ 621 - if (dma_memcpy(mem, buf, size) == NULL) 622 - err = -EFAULT; 623 - } else 624 - err = probe_kernel_write(mem, buf, size); 625 - 626 - return err; 604 + return bfin_probe_kernel_write(mem, buf, count); 627 605 } 628 606 629 607 /* ··· 599 645 */ 600 646 int kgdb_hex2mem(char *buf, char *mem, int count) 601 647 { 602 - char *tmp_raw; 603 - char *tmp_hex; 604 - unsigned short *mmr16; 605 - unsigned long *mmr32; 606 - int err; 607 - int cpu = raw_smp_processor_id(); 608 - 609 - err = validate_memory_access_address((unsigned long)mem, count); 610 - if (err) 611 - return err; 648 + char *tmp_raw, *tmp_hex; 612 649 613 650 /* 614 651 * We use the upper half of buf as an intermediate buffer for the ··· 614 669 *tmp_raw |= hex(*tmp_hex--) << 4; 615 670 } 616 671 617 - if ((unsigned int)mem >= SYSMMR_BASE) { /*access MMR registers*/ 618 - switch (count) { 619 - case 2: 620 - if ((unsigned int)mem % 2 == 0) { 621 - mmr16 = (unsigned short *)tmp_raw; 622 - *(unsigned short *)mem = *mmr16; 623 - } else 624 - err = -EFAULT; 625 - break; 626 - case 4: 627 - if ((unsigned int)mem % 4 == 0) { 628 - mmr32 = (unsigned long *)tmp_raw; 629 - *(unsigned long *)mem = *mmr32; 630 - } else 631 - err = -EFAULT; 632 - break; 633 - default: 634 - err = -EFAULT; 635 - } 636 - } else if ((cpu == 0 && IN_MEM(mem, count, L1_CODE_START, L1_CODE_LENGTH)) 637 - #ifdef CONFIG_SMP 638 - || (cpu == 1 && IN_MEM(mem, count, COREB_L1_CODE_START, L1_CODE_LENGTH)) 639 - #endif 640 - ) { 641 - /* access L1 instruction SRAM */ 642 - if (dma_memcpy(mem, tmp_raw, count) == NULL) 643 - err = -EFAULT; 644 - } else 645 - err = probe_kernel_write(mem, tmp_raw, count); 646 - 647 - return err; 672 + return bfin_probe_kernel_write(mem, tmp_raw, count); 648 673 } 674 + 675 + #define IN_MEM(addr, size, l1_addr, l1_size) \ 676 + ({ \ 677 + unsigned long __addr = (unsigned long)(addr); \ 678 + (l1_size && __addr >= l1_addr && __addr + (size) <= l1_addr + l1_size); \ 679 + }) 680 + #define ASYNC_BANK_SIZE \ 681 + (ASYNC_BANK0_SIZE + ASYNC_BANK1_SIZE + \ 682 + ASYNC_BANK2_SIZE + ASYNC_BANK3_SIZE) 649 683 650 684 int kgdb_validate_break_address(unsigned long addr) 651 685 { ··· 648 724 649 725 int kgdb_arch_set_breakpoint(unsigned long addr, char *saved_instr) 650 726 { 651 - int err; 652 - int cpu = raw_smp_processor_id(); 653 - 654 - if ((cpu == 0 && IN_MEM(addr, BREAK_INSTR_SIZE, L1_CODE_START, L1_CODE_LENGTH)) 655 - #ifdef CONFIG_SMP 656 - || (cpu == 1 && IN_MEM(addr, BREAK_INSTR_SIZE, COREB_L1_CODE_START, L1_CODE_LENGTH)) 657 - #endif 658 - ) { 659 - /* access L1 instruction SRAM */ 660 - if (dma_memcpy(saved_instr, (void *)addr, BREAK_INSTR_SIZE) 661 - == NULL) 662 - return -EFAULT; 663 - 664 - if (dma_memcpy((void *)addr, arch_kgdb_ops.gdb_bpt_instr, 665 - BREAK_INSTR_SIZE) == NULL) 666 - return -EFAULT; 667 - 668 - return 0; 669 - } else { 670 - err = probe_kernel_read(saved_instr, (char *)addr, 671 - BREAK_INSTR_SIZE); 672 - if (err) 673 - return err; 674 - 675 - return probe_kernel_write((char *)addr, 676 - arch_kgdb_ops.gdb_bpt_instr, BREAK_INSTR_SIZE); 677 - } 727 + int err = bfin_probe_kernel_read(saved_instr, (char *)addr, 728 + BREAK_INSTR_SIZE); 729 + if (err) 730 + return err; 731 + return bfin_probe_kernel_write((char *)addr, arch_kgdb_ops.gdb_bpt_instr, 732 + BREAK_INSTR_SIZE); 678 733 } 679 734 680 735 int kgdb_arch_remove_breakpoint(unsigned long addr, char *bundle) 681 736 { 682 - if (IN_MEM(addr, BREAK_INSTR_SIZE, L1_CODE_START, L1_CODE_LENGTH)) { 683 - /* access L1 instruction SRAM */ 684 - if (dma_memcpy((void *)addr, bundle, BREAK_INSTR_SIZE) == NULL) 685 - return -EFAULT; 686 - 687 - return 0; 688 - } else 689 - return probe_kernel_write((char *)addr, 690 - (char *)bundle, BREAK_INSTR_SIZE); 737 + return bfin_probe_kernel_write((char *)addr, bundle, BREAK_INSTR_SIZE); 691 738 } 692 739 693 740 int kgdb_arch_init(void)
-70
arch/blackfin/kernel/mcount.S
··· 1 - /* 2 - * linux/arch/blackfin/mcount.S 3 - * 4 - * Copyright (C) 2006 Analog Devices Inc. 5 - * 6 - * 2007/04/12 Save index, length, modify and base registers. --rpm 7 - */ 8 - 9 - #include <linux/linkage.h> 10 - #include <asm/blackfin.h> 11 - 12 - .text 13 - 14 - .align 4 /* just in case */ 15 - 16 - ENTRY(__mcount) 17 - [--sp] = i0; 18 - [--sp] = i1; 19 - [--sp] = i2; 20 - [--sp] = i3; 21 - [--sp] = l0; 22 - [--sp] = l1; 23 - [--sp] = l2; 24 - [--sp] = l3; 25 - [--sp] = m0; 26 - [--sp] = m1; 27 - [--sp] = m2; 28 - [--sp] = m3; 29 - [--sp] = b0; 30 - [--sp] = b1; 31 - [--sp] = b2; 32 - [--sp] = b3; 33 - [--sp] = ( r7:0, p5:0 ); 34 - [--sp] = ASTAT; 35 - 36 - p1.L = _ipipe_trace_enable; 37 - p1.H = _ipipe_trace_enable; 38 - r7 = [p1]; 39 - CC = r7 == 0; 40 - if CC jump out; 41 - link 0x10; 42 - r0 = 0x0; 43 - [sp + 0xc] = r0; /* v */ 44 - r0 = 0x0; /* type: IPIPE_TRACE_FN */ 45 - r1 = rets; 46 - p0 = [fp]; /* p0: Prior FP */ 47 - r2 = [p0 + 4]; /* r2: Prior RETS */ 48 - call ___ipipe_trace; 49 - unlink; 50 - out: 51 - ASTAT = [sp++]; 52 - ( r7:0, p5:0 ) = [sp++]; 53 - b3 = [sp++]; 54 - b2 = [sp++]; 55 - b1 = [sp++]; 56 - b0 = [sp++]; 57 - m3 = [sp++]; 58 - m2 = [sp++]; 59 - m1 = [sp++]; 60 - m0 = [sp++]; 61 - l3 = [sp++]; 62 - l2 = [sp++]; 63 - l1 = [sp++]; 64 - l0 = [sp++]; 65 - i3 = [sp++]; 66 - i2 = [sp++]; 67 - i1 = [sp++]; 68 - i0 = [sp++]; 69 - rts; 70 - ENDPROC(__mcount)
+125 -34
arch/blackfin/kernel/process.c
··· 344 344 } 345 345 } 346 346 347 + static inline 348 + int in_mem(unsigned long addr, unsigned long size, 349 + unsigned long start, unsigned long end) 350 + { 351 + return addr >= start && addr + size <= end; 352 + } 353 + static inline 354 + int in_mem_const_off(unsigned long addr, unsigned long size, unsigned long off, 355 + unsigned long const_addr, unsigned long const_size) 356 + { 357 + return const_size && 358 + in_mem(addr, size, const_addr + off, const_addr + const_size); 359 + } 360 + static inline 361 + int in_mem_const(unsigned long addr, unsigned long size, 362 + unsigned long const_addr, unsigned long const_size) 363 + { 364 + return in_mem_const_off(addr, 0, size, const_addr, const_size); 365 + } 366 + #define IN_ASYNC(bnum, bctlnum) \ 367 + ({ \ 368 + (bfin_read_EBIU_AMGCTL() & 0xe) < ((bnum + 1) << 1) ? -EFAULT : \ 369 + bfin_read_EBIU_AMBCTL##bctlnum() & B##bnum##RDYEN ? -EFAULT : \ 370 + BFIN_MEM_ACCESS_CORE; \ 371 + }) 372 + 373 + int bfin_mem_access_type(unsigned long addr, unsigned long size) 374 + { 375 + int cpu = raw_smp_processor_id(); 376 + 377 + /* Check that things do not wrap around */ 378 + if (addr > ULONG_MAX - size) 379 + return -EFAULT; 380 + 381 + if (in_mem(addr, size, FIXED_CODE_START, physical_mem_end)) 382 + return BFIN_MEM_ACCESS_CORE; 383 + 384 + if (in_mem_const(addr, size, L1_CODE_START, L1_CODE_LENGTH)) 385 + return cpu == 0 ? BFIN_MEM_ACCESS_ITEST : BFIN_MEM_ACCESS_IDMA; 386 + if (in_mem_const(addr, size, L1_SCRATCH_START, L1_SCRATCH_LENGTH)) 387 + return cpu == 0 ? BFIN_MEM_ACCESS_CORE_ONLY : -EFAULT; 388 + if (in_mem_const(addr, size, L1_DATA_A_START, L1_DATA_A_LENGTH)) 389 + return cpu == 0 ? BFIN_MEM_ACCESS_CORE : BFIN_MEM_ACCESS_IDMA; 390 + if (in_mem_const(addr, size, L1_DATA_B_START, L1_DATA_B_LENGTH)) 391 + return cpu == 0 ? BFIN_MEM_ACCESS_CORE : BFIN_MEM_ACCESS_IDMA; 392 + #ifdef COREB_L1_CODE_START 393 + if (in_mem_const(addr, size, COREB_L1_CODE_START, L1_CODE_LENGTH)) 394 + return cpu == 1 ? BFIN_MEM_ACCESS_ITEST : BFIN_MEM_ACCESS_IDMA; 395 + if (in_mem_const(addr, size, COREB_L1_SCRATCH_START, L1_SCRATCH_LENGTH)) 396 + return cpu == 1 ? BFIN_MEM_ACCESS_CORE_ONLY : -EFAULT; 397 + if (in_mem_const(addr, size, COREB_L1_DATA_A_START, L1_DATA_A_LENGTH)) 398 + return cpu == 1 ? BFIN_MEM_ACCESS_CORE : BFIN_MEM_ACCESS_IDMA; 399 + if (in_mem_const(addr, size, COREB_L1_DATA_B_START, L1_DATA_B_LENGTH)) 400 + return cpu == 1 ? BFIN_MEM_ACCESS_CORE : BFIN_MEM_ACCESS_IDMA; 401 + #endif 402 + if (in_mem_const(addr, size, L2_START, L2_LENGTH)) 403 + return BFIN_MEM_ACCESS_CORE; 404 + 405 + if (addr >= SYSMMR_BASE) 406 + return BFIN_MEM_ACCESS_CORE_ONLY; 407 + 408 + /* We can't read EBIU banks that aren't enabled or we end up hanging 409 + * on the access to the async space. 410 + */ 411 + if (in_mem_const(addr, size, ASYNC_BANK0_BASE, ASYNC_BANK0_SIZE)) 412 + return IN_ASYNC(0, 0); 413 + if (in_mem_const(addr, size, ASYNC_BANK1_BASE, ASYNC_BANK1_SIZE)) 414 + return IN_ASYNC(1, 0); 415 + if (in_mem_const(addr, size, ASYNC_BANK2_BASE, ASYNC_BANK2_SIZE)) 416 + return IN_ASYNC(2, 1); 417 + if (in_mem_const(addr, size, ASYNC_BANK3_BASE, ASYNC_BANK3_SIZE)) 418 + return IN_ASYNC(3, 1); 419 + 420 + if (in_mem_const(addr, size, BOOT_ROM_START, BOOT_ROM_LENGTH)) 421 + return BFIN_MEM_ACCESS_CORE; 422 + if (in_mem_const(addr, size, L1_ROM_START, L1_ROM_LENGTH)) 423 + return BFIN_MEM_ACCESS_DMA; 424 + 425 + return -EFAULT; 426 + } 427 + 347 428 #if defined(CONFIG_ACCESS_CHECK) 348 429 #ifdef CONFIG_ACCESS_OK_L1 349 430 __attribute__((l1_text)) ··· 434 353 { 435 354 if (size == 0) 436 355 return 1; 437 - if (addr > (addr + size)) 356 + /* Check that things do not wrap around */ 357 + if (addr > ULONG_MAX - size) 438 358 return 0; 439 359 if (segment_eq(get_fs(), KERNEL_DS)) 440 360 return 1; 441 361 #ifdef CONFIG_MTD_UCLINUX 442 - if (addr >= memory_start && (addr + size) <= memory_end) 443 - return 1; 444 - if (addr >= memory_mtd_end && (addr + size) <= physical_mem_end) 362 + if (1) 363 + #else 364 + if (0) 365 + #endif 366 + { 367 + if (in_mem(addr, size, memory_start, memory_end)) 368 + return 1; 369 + if (in_mem(addr, size, memory_mtd_end, physical_mem_end)) 370 + return 1; 371 + # ifndef CONFIG_ROMFS_ON_MTD 372 + if (0) 373 + # endif 374 + /* For XIP, allow user space to use pointers within the ROMFS. */ 375 + if (in_mem(addr, size, memory_mtd_start, memory_mtd_end)) 376 + return 1; 377 + } else { 378 + if (in_mem(addr, size, memory_start, physical_mem_end)) 379 + return 1; 380 + } 381 + 382 + if (in_mem(addr, size, (unsigned long)__init_begin, (unsigned long)__init_end)) 445 383 return 1; 446 384 447 - #ifdef CONFIG_ROMFS_ON_MTD 448 - /* For XIP, allow user space to use pointers within the ROMFS. */ 449 - if (addr >= memory_mtd_start && (addr + size) <= memory_mtd_end) 385 + if (in_mem_const(addr, size, L1_CODE_START, L1_CODE_LENGTH)) 386 + return 1; 387 + if (in_mem_const_off(addr, size, _etext_l1 - _stext_l1, L1_CODE_START, L1_CODE_LENGTH)) 388 + return 1; 389 + if (in_mem_const_off(addr, size, _ebss_l1 - _sdata_l1, L1_DATA_A_START, L1_DATA_A_LENGTH)) 390 + return 1; 391 + if (in_mem_const_off(addr, size, _ebss_b_l1 - _sdata_b_l1, L1_DATA_B_START, L1_DATA_B_LENGTH)) 392 + return 1; 393 + #ifdef COREB_L1_CODE_START 394 + if (in_mem_const(addr, size, COREB_L1_CODE_START, L1_CODE_LENGTH)) 395 + return 1; 396 + if (in_mem_const(addr, size, COREB_L1_SCRATCH_START, L1_SCRATCH_LENGTH)) 397 + return 1; 398 + if (in_mem_const(addr, size, COREB_L1_DATA_A_START, L1_DATA_A_LENGTH)) 399 + return 1; 400 + if (in_mem_const(addr, size, COREB_L1_DATA_B_START, L1_DATA_B_LENGTH)) 450 401 return 1; 451 402 #endif 452 - #else 453 - if (addr >= memory_start && (addr + size) <= physical_mem_end) 403 + if (in_mem_const_off(addr, size, _ebss_l2 - _stext_l2, L2_START, L2_LENGTH)) 454 404 return 1; 455 - #endif 456 - if (addr >= (unsigned long)__init_begin && 457 - addr + size <= (unsigned long)__init_end) 405 + 406 + if (in_mem_const(addr, size, BOOT_ROM_START, BOOT_ROM_LENGTH)) 458 407 return 1; 459 - if (addr >= get_l1_scratch_start() 460 - && addr + size <= get_l1_scratch_start() + L1_SCRATCH_LENGTH) 408 + if (in_mem_const(addr, size, L1_ROM_START, L1_ROM_LENGTH)) 461 409 return 1; 462 - #if L1_CODE_LENGTH != 0 463 - if (addr >= get_l1_code_start() + (_etext_l1 - _stext_l1) 464 - && addr + size <= get_l1_code_start() + L1_CODE_LENGTH) 465 - return 1; 466 - #endif 467 - #if L1_DATA_A_LENGTH != 0 468 - if (addr >= get_l1_data_a_start() + (_ebss_l1 - _sdata_l1) 469 - && addr + size <= get_l1_data_a_start() + L1_DATA_A_LENGTH) 470 - return 1; 471 - #endif 472 - #if L1_DATA_B_LENGTH != 0 473 - if (addr >= get_l1_data_b_start() + (_ebss_b_l1 - _sdata_b_l1) 474 - && addr + size <= get_l1_data_b_start() + L1_DATA_B_LENGTH) 475 - return 1; 476 - #endif 477 - #if L2_LENGTH != 0 478 - if (addr >= L2_START + (_ebss_l2 - _stext_l2) 479 - && addr + size <= L2_START + L2_LENGTH) 480 - return 1; 481 - #endif 410 + 482 411 return 0; 483 412 } 484 413 EXPORT_SYMBOL(_access_ok);
+97 -29
arch/blackfin/kernel/setup.c
··· 117 117 */ 118 118 #ifdef CONFIG_BFIN_ICACHE 119 119 printk(KERN_INFO "Instruction Cache Enabled for CPU%u\n", cpu); 120 - #endif 121 - #ifdef CONFIG_BFIN_DCACHE 122 - printk(KERN_INFO "Data Cache Enabled for CPU%u" 123 - # if defined CONFIG_BFIN_WB 124 - " (write-back)" 125 - # elif defined CONFIG_BFIN_WT 126 - " (write-through)" 120 + printk(KERN_INFO " External memory:" 121 + # ifdef CONFIG_BFIN_EXTMEM_ICACHEABLE 122 + " cacheable" 123 + # else 124 + " uncacheable" 127 125 # endif 128 - "\n", cpu); 126 + " in instruction cache\n"); 127 + if (L2_LENGTH) 128 + printk(KERN_INFO " L2 SRAM :" 129 + # ifdef CONFIG_BFIN_L2_ICACHEABLE 130 + " cacheable" 131 + # else 132 + " uncacheable" 133 + # endif 134 + " in instruction cache\n"); 135 + 136 + #else 137 + printk(KERN_INFO "Instruction Cache Disabled for CPU%u\n", cpu); 138 + #endif 139 + 140 + #ifdef CONFIG_BFIN_DCACHE 141 + printk(KERN_INFO "Data Cache Enabled for CPU%u\n", cpu); 142 + printk(KERN_INFO " External memory:" 143 + # if defined CONFIG_BFIN_EXTMEM_WRITEBACK 144 + " cacheable (write-back)" 145 + # elif defined CONFIG_BFIN_EXTMEM_WRITETHROUGH 146 + " cacheable (write-through)" 147 + # else 148 + " uncacheable" 149 + # endif 150 + " in data cache\n"); 151 + if (L2_LENGTH) 152 + printk(KERN_INFO " L2 SRAM :" 153 + # if defined CONFIG_BFIN_L2_WRITEBACK 154 + " cacheable (write-back)" 155 + # elif defined CONFIG_BFIN_L2_WRITETHROUGH 156 + " cacheable (write-through)" 157 + # else 158 + " uncacheable" 159 + # endif 160 + " in data cache\n"); 161 + #else 162 + printk(KERN_INFO "Data Cache Disabled for CPU%u\n", cpu); 129 163 #endif 130 164 } 131 165 ··· 477 443 } else if (!memcmp(to, "clkin_hz=", 9)) { 478 444 to += 9; 479 445 early_init_clkin_hz(to); 446 + #ifdef CONFIG_EARLY_PRINTK 480 447 } else if (!memcmp(to, "earlyprintk=", 12)) { 481 448 to += 12; 482 449 setup_early_printk(to); 450 + #endif 483 451 } else if (!memcmp(to, "memmap=", 7)) { 484 452 to += 7; 485 453 parse_memmap(to); ··· 552 516 && ((unsigned long *)mtd_phys)[1] == ROMSB_WORD1) 553 517 mtd_size = 554 518 PAGE_ALIGN(be32_to_cpu(((unsigned long *)mtd_phys)[2])); 555 - # if (defined(CONFIG_BFIN_ICACHE) && ANOMALY_05000263) 519 + # if (defined(CONFIG_BFIN_EXTMEM_ICACHEABLE) && ANOMALY_05000263) 556 520 /* Due to a Hardware Anomaly we need to limit the size of usable 557 521 * instruction memory to max 60MB, 56 if HUNT_FOR_ZERO is on 558 522 * 05000263 - Hardware loop corrupted when taking an ICPLB exception ··· 580 544 dma_memcpy((void *)uclinux_ram_map.phys, _end, uclinux_ram_map.size); 581 545 #endif /* CONFIG_MTD_UCLINUX */ 582 546 583 - #if (defined(CONFIG_BFIN_ICACHE) && ANOMALY_05000263) 547 + #if (defined(CONFIG_BFIN_EXTMEM_ICACHEABLE) && ANOMALY_05000263) 584 548 /* Due to a Hardware Anomaly we need to limit the size of usable 585 549 * instruction memory to max 60MB, 56 if HUNT_FOR_ZERO is on 586 550 * 05000263 - Hardware loop corrupted when taking an ICPLB exception ··· 800 764 { 801 765 unsigned long sclk, cclk; 802 766 767 + /* Check to make sure we are running on the right processor */ 768 + if (unlikely(CPUID != bfin_cpuid())) 769 + printk(KERN_ERR "ERROR: Not running on ADSP-%s: unknown CPUID 0x%04x Rev 0.%d\n", 770 + CPU, bfin_cpuid(), bfin_revid()); 771 + 803 772 #ifdef CONFIG_DUMMY_CONSOLE 804 773 conswitchp = &dummy_con; 805 774 #endif ··· 819 778 memcpy(boot_command_line, command_line, COMMAND_LINE_SIZE); 820 779 boot_command_line[COMMAND_LINE_SIZE - 1] = '\0'; 821 780 822 - /* setup memory defaults from the user config */ 823 - physical_mem_end = 0; 824 - _ramend = get_mem_size() * 1024 * 1024; 825 - 826 781 memset(&bfin_memmap, 0, sizeof(bfin_memmap)); 827 782 783 + /* If the user does not specify things on the command line, use 784 + * what the bootloader set things up as 785 + */ 786 + physical_mem_end = 0; 828 787 parse_cmdline_early(&command_line[0]); 788 + 789 + if (_ramend == 0) 790 + _ramend = get_mem_size() * 1024 * 1024; 829 791 830 792 if (physical_mem_end == 0) 831 793 physical_mem_end = _ramend; ··· 881 837 defined(CONFIG_BF538) || defined(CONFIG_BF539) 882 838 _bfin_swrst = bfin_read_SWRST(); 883 839 #else 884 - _bfin_swrst = bfin_read_SYSCR(); 840 + /* Clear boot mode field */ 841 + _bfin_swrst = bfin_read_SYSCR() & ~0xf; 885 842 #endif 886 843 887 844 #ifdef CONFIG_DEBUG_DOUBLEFAULT_PRINT ··· 920 875 else 921 876 printk(KERN_INFO "Compiled for ADSP-%s Rev 0.%d\n", CPU, bfin_compiled_revid()); 922 877 923 - if (unlikely(CPUID != bfin_cpuid())) 924 - printk(KERN_ERR "ERROR: Not running on ADSP-%s: unknown CPUID 0x%04x Rev 0.%d\n", 925 - CPU, bfin_cpuid(), bfin_revid()); 926 - else { 878 + if (likely(CPUID == bfin_cpuid())) { 927 879 if (bfin_revid() != bfin_compiled_revid()) { 928 880 if (bfin_compiled_revid() == -1) 929 881 printk(KERN_ERR "Warning: Compiled for Rev none, but running on Rev %d\n", ··· 1199 1157 icache_size = 0; 1200 1158 1201 1159 seq_printf(m, "cache size\t: %d KB(L1 icache) " 1202 - "%d KB(L1 dcache%s) %d KB(L2 cache)\n", 1203 - icache_size, dcache_size, 1204 - #if defined CONFIG_BFIN_WB 1205 - "-wb" 1206 - #elif defined CONFIG_BFIN_WT 1207 - "-wt" 1208 - #endif 1209 - "", 0); 1210 - 1160 + "%d KB(L1 dcache) %d KB(L2 cache)\n", 1161 + icache_size, dcache_size, 0); 1211 1162 seq_printf(m, "%s\n", cache); 1163 + seq_printf(m, "external memory\t: " 1164 + #if defined(CONFIG_BFIN_EXTMEM_ICACHEABLE) 1165 + "cacheable" 1166 + #else 1167 + "uncacheable" 1168 + #endif 1169 + " in instruction cache\n"); 1170 + seq_printf(m, "external memory\t: " 1171 + #if defined(CONFIG_BFIN_EXTMEM_WRITEBACK) 1172 + "cacheable (write-back)" 1173 + #elif defined(CONFIG_BFIN_EXTMEM_WRITETHROUGH) 1174 + "cacheable (write-through)" 1175 + #else 1176 + "uncacheable" 1177 + #endif 1178 + " in data cache\n"); 1212 1179 1213 1180 if (icache_size) 1214 1181 seq_printf(m, "icache setup\t: %d Sub-banks/%d Ways, %d Lines/Way\n", ··· 1290 1239 if (cpu_num != num_possible_cpus() - 1) 1291 1240 return 0; 1292 1241 1293 - if (L2_LENGTH) 1242 + if (L2_LENGTH) { 1294 1243 seq_printf(m, "L2 SRAM\t\t: %dKB\n", L2_LENGTH/0x400); 1244 + seq_printf(m, "L2 SRAM\t\t: " 1245 + #if defined(CONFIG_BFIN_L2_ICACHEABLE) 1246 + "cacheable" 1247 + #else 1248 + "uncacheable" 1249 + #endif 1250 + " in instruction cache\n"); 1251 + seq_printf(m, "L2 SRAM\t\t: " 1252 + #if defined(CONFIG_BFIN_L2_WRITEBACK) 1253 + "cacheable (write-back)" 1254 + #elif defined(CONFIG_BFIN_L2_WRITETHROUGH) 1255 + "cacheable (write-through)" 1256 + #else 1257 + "uncacheable" 1258 + #endif 1259 + " in data cache\n"); 1260 + } 1295 1261 seq_printf(m, "board name\t: %s\n", bfin_board_name); 1296 1262 seq_printf(m, "board memory\t: %ld kB (0x%p -> 0x%p)\n", 1297 1263 physical_mem_end >> 10, (void *)0, (void *)physical_mem_end);
+17 -43
arch/blackfin/kernel/traps.c
··· 37 37 #include <asm/traps.h> 38 38 #include <asm/cacheflush.h> 39 39 #include <asm/cplb.h> 40 + #include <asm/dma.h> 40 41 #include <asm/blackfin.h> 41 42 #include <asm/irq_handler.h> 42 43 #include <linux/irq.h> ··· 637 636 */ 638 637 static bool get_instruction(unsigned short *val, unsigned short *address) 639 638 { 640 - 641 - unsigned long addr; 642 - 643 - addr = (unsigned long)address; 639 + unsigned long addr = (unsigned long)address; 644 640 645 641 /* Check for odd addresses */ 646 642 if (addr & 0x1) 647 643 return false; 648 644 649 - /* Check that things do not wrap around */ 650 - if (addr > (addr + 2)) 645 + /* MMR region will never have instructions */ 646 + if (addr >= SYSMMR_BASE) 651 647 return false; 652 648 653 - /* 654 - * Since we are in exception context, we need to do a little address checking 655 - * We need to make sure we are only accessing valid memory, and 656 - * we don't read something in the async space that can hang forever 657 - */ 658 - if ((addr >= FIXED_CODE_START && (addr + 2) <= physical_mem_end) || 659 - #if L2_LENGTH != 0 660 - (addr >= L2_START && (addr + 2) <= (L2_START + L2_LENGTH)) || 661 - #endif 662 - (addr >= BOOT_ROM_START && (addr + 2) <= (BOOT_ROM_START + BOOT_ROM_LENGTH)) || 663 - #if L1_DATA_A_LENGTH != 0 664 - (addr >= L1_DATA_A_START && (addr + 2) <= (L1_DATA_A_START + L1_DATA_A_LENGTH)) || 665 - #endif 666 - #if L1_DATA_B_LENGTH != 0 667 - (addr >= L1_DATA_B_START && (addr + 2) <= (L1_DATA_B_START + L1_DATA_B_LENGTH)) || 668 - #endif 669 - (addr >= L1_SCRATCH_START && (addr + 2) <= (L1_SCRATCH_START + L1_SCRATCH_LENGTH)) || 670 - (!(bfin_read_EBIU_AMBCTL0() & B0RDYEN) && 671 - addr >= ASYNC_BANK0_BASE && (addr + 2) <= (ASYNC_BANK0_BASE + ASYNC_BANK0_SIZE)) || 672 - (!(bfin_read_EBIU_AMBCTL0() & B1RDYEN) && 673 - addr >= ASYNC_BANK1_BASE && (addr + 2) <= (ASYNC_BANK1_BASE + ASYNC_BANK1_SIZE)) || 674 - (!(bfin_read_EBIU_AMBCTL1() & B2RDYEN) && 675 - addr >= ASYNC_BANK2_BASE && (addr + 2) <= (ASYNC_BANK2_BASE + ASYNC_BANK1_SIZE)) || 676 - (!(bfin_read_EBIU_AMBCTL1() & B3RDYEN) && 677 - addr >= ASYNC_BANK3_BASE && (addr + 2) <= (ASYNC_BANK3_BASE + ASYNC_BANK1_SIZE))) { 678 - *val = *address; 679 - return true; 649 + switch (bfin_mem_access_type(addr, 2)) { 650 + case BFIN_MEM_ACCESS_CORE: 651 + case BFIN_MEM_ACCESS_CORE_ONLY: 652 + *val = *address; 653 + return true; 654 + case BFIN_MEM_ACCESS_DMA: 655 + dma_memcpy(val, address, 2); 656 + return true; 657 + case BFIN_MEM_ACCESS_ITEST: 658 + isram_memcpy(val, address, 2); 659 + return true; 660 + default: /* invalid access */ 661 + return false; 680 662 } 681 - 682 - #if L1_CODE_LENGTH != 0 683 - if (addr >= L1_CODE_START && (addr + 2) <= (L1_CODE_START + L1_CODE_LENGTH)) { 684 - isram_memcpy(val, address, 2); 685 - return true; 686 - } 687 - #endif 688 - 689 - 690 - return false; 691 663 } 692 664 693 665 /*
+11 -5
arch/blackfin/mach-bf518/boards/ezbrd.c
··· 119 119 }; 120 120 121 121 #if defined(CONFIG_NET_DSA_KSZ8893M) || defined(CONFIG_NET_DSA_KSZ8893M_MODULE) 122 - static struct dsa_platform_data ksz8893m_switch_data = { 122 + static struct dsa_chip_data ksz8893m_switch_chip_data = { 123 123 .mii_bus = &bfin_mii_bus.dev, 124 + .port_names = { 125 + NULL, 126 + "eth%d", 127 + "eth%d", 128 + "cpu", 129 + }, 130 + }; 131 + static struct dsa_platform_data ksz8893m_switch_data = { 132 + .nr_chips = 1, 124 133 .netdev = &bfin_mac_device.dev, 125 - .port_names[0] = NULL, 126 - .port_names[1] = "eth%d", 127 - .port_names[2] = "eth%d", 128 - .port_names[3] = "cpu", 134 + .chip = &ksz8893m_switch_chip_data, 129 135 }; 130 136 131 137 static struct platform_device ksz8893m_switch_device = {
+25 -12
arch/blackfin/mach-bf518/include/mach/anomaly.h
··· 7 7 */ 8 8 9 9 /* This file should be up to date with: 10 - * - Revision B, 02/03/2009; ADSP-BF512/BF514/BF516/BF518 Blackfin Processor Anomaly List 10 + * - Revision C, 06/12/2009; ADSP-BF512/BF514/BF516/BF518 Blackfin Processor Anomaly List 11 11 */ 12 12 13 13 /* We plan on not supporting 0.0 silicon, but 0.1 isn't out yet - sorry */ ··· 18 18 #ifndef _MACH_ANOMALY_H_ 19 19 #define _MACH_ANOMALY_H_ 20 20 21 - /* Multi-issue instruction with dsp32shiftimm in slot1 and P-reg store in slot 2 not supported */ 21 + /* Multi-Issue Instruction with dsp32shiftimm in slot1 and P-reg Store in slot2 Not Supported */ 22 22 #define ANOMALY_05000074 (1) 23 23 /* Rx.H Cannot Be Used to Access 16-bit System MMR Registers */ 24 24 #define ANOMALY_05000122 (1) ··· 45 45 /* Speculative Fetches of Indirect-Pointer Instructions Can Cause False Hardware Errors */ 46 46 #define ANOMALY_05000426 (1) 47 47 /* Software System Reset Corrupts PLL_LOCKCNT Register */ 48 - #define ANOMALY_05000430 (1) 48 + #define ANOMALY_05000430 (__SILICON_REVISION__ < 1) 49 49 /* Incorrect Use of Stack in Lockbox Firmware During Authentication */ 50 50 #define ANOMALY_05000431 (1) 51 51 /* Certain SIC Registers are not Reset After Soft or Core Double Fault Reset */ 52 - #define ANOMALY_05000435 (1) 52 + #define ANOMALY_05000435 (__SILICON_REVISION__ < 1) 53 53 /* PORTx_DRIVE and PORTx_HYSTERESIS Registers Read Back Incorrect Values */ 54 - #define ANOMALY_05000438 (1) 54 + #define ANOMALY_05000438 (__SILICON_REVISION__ < 1) 55 55 /* Preboot Cannot be Used to Alter the PLL_DIV Register */ 56 - #define ANOMALY_05000439 (1) 56 + #define ANOMALY_05000439 (__SILICON_REVISION__ < 1) 57 57 /* bfrom_SysControl() Cannot be Used to Write the PLL_DIV Register */ 58 - #define ANOMALY_05000440 (1) 58 + #define ANOMALY_05000440 (__SILICON_REVISION__ < 1) 59 59 /* IFLUSH Instruction at End of Hardware Loop Causes Infinite Stall */ 60 60 #define ANOMALY_05000443 (1) 61 61 /* Incorrect L1 Instruction Bank B Memory Map Location */ 62 - #define ANOMALY_05000444 (1) 62 + #define ANOMALY_05000444 (__SILICON_REVISION__ < 1) 63 63 /* Incorrect Default Hysteresis Setting for RESET, NMI, and BMODE Signals */ 64 - #define ANOMALY_05000452 (1) 64 + #define ANOMALY_05000452 (__SILICON_REVISION__ < 1) 65 65 /* PWM_TRIPB Signal Not Available on PG10 */ 66 - #define ANOMALY_05000453 (1) 66 + #define ANOMALY_05000453 (__SILICON_REVISION__ < 1) 67 67 /* PPI_FS3 is Driven One Half Cycle Later Than PPI Data */ 68 - #define ANOMALY_05000455 (1) 69 - /* False Hardware Error when RETI points to invalid memory */ 68 + #define ANOMALY_05000455 (__SILICON_REVISION__ < 1) 69 + /* False Hardware Error when RETI Points to Invalid Memory */ 70 70 #define ANOMALY_05000461 (1) 71 + /* Synchronization Problem at Startup May Cause SPORT Transmit Channels to Misalign */ 72 + #define ANOMALY_05000462 (1) 71 73 72 74 /* Anomalies that don't exist on this proc */ 73 75 #define ANOMALY_05000099 (0) ··· 80 78 #define ANOMALY_05000158 (0) 81 79 #define ANOMALY_05000171 (0) 82 80 #define ANOMALY_05000179 (0) 81 + #define ANOMALY_05000182 (0) 83 82 #define ANOMALY_05000183 (0) 84 83 #define ANOMALY_05000198 (0) 84 + #define ANOMALY_05000202 (0) 85 85 #define ANOMALY_05000215 (0) 86 86 #define ANOMALY_05000220 (0) 87 87 #define ANOMALY_05000227 (0) 88 88 #define ANOMALY_05000230 (0) 89 89 #define ANOMALY_05000231 (0) 90 90 #define ANOMALY_05000233 (0) 91 + #define ANOMALY_05000234 (0) 91 92 #define ANOMALY_05000242 (0) 92 93 #define ANOMALY_05000244 (0) 93 94 #define ANOMALY_05000248 (0) 94 95 #define ANOMALY_05000250 (0) 96 + #define ANOMALY_05000257 (0) 95 97 #define ANOMALY_05000261 (0) 96 98 #define ANOMALY_05000263 (0) 97 99 #define ANOMALY_05000266 (0) 98 100 #define ANOMALY_05000273 (0) 99 101 #define ANOMALY_05000274 (0) 100 102 #define ANOMALY_05000278 (0) 103 + #define ANOMALY_05000281 (0) 104 + #define ANOMALY_05000283 (0) 101 105 #define ANOMALY_05000285 (0) 102 106 #define ANOMALY_05000287 (0) 103 107 #define ANOMALY_05000301 (0) ··· 111 103 #define ANOMALY_05000307 (0) 112 104 #define ANOMALY_05000311 (0) 113 105 #define ANOMALY_05000312 (0) 106 + #define ANOMALY_05000315 (0) 114 107 #define ANOMALY_05000323 (0) 115 108 #define ANOMALY_05000353 (0) 109 + #define ANOMALY_05000357 (0) 116 110 #define ANOMALY_05000362 (1) 117 111 #define ANOMALY_05000363 (0) 112 + #define ANOMALY_05000371 (0) 118 113 #define ANOMALY_05000380 (0) 119 114 #define ANOMALY_05000386 (0) 120 115 #define ANOMALY_05000389 (0) ··· 128 117 #define ANOMALY_05000448 (0) 129 118 #define ANOMALY_05000456 (0) 130 119 #define ANOMALY_05000450 (0) 120 + #define ANOMALY_05000465 (0) 121 + #define ANOMALY_05000467 (0) 131 122 132 123 #endif
-1
arch/blackfin/mach-bf518/include/mach/blackfin.h
··· 33 33 #define _MACH_BLACKFIN_H_ 34 34 35 35 #include "bf518.h" 36 - #include "mem_map.h" 37 36 #include "defBF512.h" 38 37 #include "anomaly.h" 39 38
+9 -47
arch/blackfin/mach-bf518/include/mach/mem_map.h
··· 1 1 /* 2 - * file: include/asm-blackfin/mach-bf518/mem_map.h 3 - * based on: include/asm-blackfin/mach-bf527/mem_map.h 4 - * author: Bryan Wu <cooloney@kernel.org> 2 + * BF51x memory map 5 3 * 6 - * created: 7 - * description: 8 - * Memory MAP Common header file for blackfin BF518/6/4/2 of processors. 9 - * rev: 10 - * 11 - * modified: 12 - * 13 - * bugs: enter bugs at http://blackfin.uclinux.org/ 14 - * 15 - * this program is free software; you can redistribute it and/or modify 16 - * it under the terms of the gnu general public license as published by 17 - * the free software foundation; either version 2, or (at your option) 18 - * any later version. 19 - * 20 - * this program is distributed in the hope that it will be useful, 21 - * but without any warranty; without even the implied warranty of 22 - * merchantability or fitness for a particular purpose. see the 23 - * gnu general public license for more details. 24 - * 25 - * you should have received a copy of the gnu general public license 26 - * along with this program; see the file copying. 27 - * if not, write to the free software foundation, 28 - * 59 temple place - suite 330, boston, ma 02111-1307, usa. 4 + * Copyright 2004-2009 Analog Devices Inc. 5 + * Licensed under the GPL-2 or later. 29 6 */ 30 7 31 - #ifndef _MEM_MAP_518_H_ 32 - #define _MEM_MAP_518_H_ 8 + #ifndef __BFIN_MACH_MEM_MAP_H__ 9 + #define __BFIN_MACH_MEM_MAP_H__ 33 10 34 - #define COREMMR_BASE 0xFFE00000 /* Core MMRs */ 35 - #define SYSMMR_BASE 0xFFC00000 /* System MMRs */ 11 + #ifndef __BFIN_MEM_MAP_H__ 12 + # error "do not include mach/mem_map.h directly -- use asm/mem_map.h" 13 + #endif 36 14 37 15 /* Async Memory Banks */ 38 16 #define ASYNC_BANK3_BASE 0x20300000 /* Async Bank 3 */ ··· 67 89 #define BFIN_DSUPBANKS 0 68 90 #endif /*CONFIG_BFIN_DCACHE */ 69 91 70 - /* Level 2 Memory - none */ 71 - 72 - #define L2_START 0 73 - #define L2_LENGTH 0 74 - 75 - /* Scratch Pad Memory */ 76 - 77 - #define L1_SCRATCH_START 0xFFB00000 78 - #define L1_SCRATCH_LENGTH 0x1000 79 - 80 - #define GET_PDA_SAFE(preg) \ 81 - preg.l = _cpu_pda; \ 82 - preg.h = _cpu_pda; 83 - 84 - #define GET_PDA(preg, dreg) GET_PDA_SAFE(preg) 85 - 86 - #endif /* _MEM_MAP_518_H_ */ 92 + #endif
-1
arch/blackfin/mach-bf527/boards/cm_bf527.c
··· 78 78 79 79 static struct isp1760_platform_data isp1760_priv = { 80 80 .is_isp1761 = 0, 81 - .port1_disable = 0, 82 81 .bus_width_16 = 1, 83 82 .port1_otg = 0, 84 83 .analog_oc = 0,
+2 -2
arch/blackfin/mach-bf527/boards/ezbrd.c
··· 237 237 .name = "m25p80", 238 238 .parts = bfin_spi_flash_partitions, 239 239 .nr_parts = ARRAY_SIZE(bfin_spi_flash_partitions), 240 - .type = "m25p16", 240 + .type = "sst25wf040", 241 241 }; 242 242 243 - /* SPI flash chip (m25p64) */ 243 + /* SPI flash chip (sst25wf040) */ 244 244 static struct bfin5xx_spi_chip spi_flash_chip_info = { 245 245 .enable_dma = 0, /* use dma transfer with this chip*/ 246 246 .bits_per_word = 8,
-1
arch/blackfin/mach-bf527/boards/ezkit.c
··· 77 77 78 78 static struct isp1760_platform_data isp1760_priv = { 79 79 .is_isp1761 = 0, 80 - .port1_disable = 0, 81 80 .bus_width_16 = 1, 82 81 .port1_otg = 0, 83 82 .analog_oc = 0,
+13 -2
arch/blackfin/mach-bf527/include/mach/anomaly.h
··· 34 34 #define _ANOMALY_BF527(rev527) (ANOMALY_BF527 && __SILICON_REVISION__ rev527) 35 35 #define _ANOMALY_BF526_BF527(rev526, rev527) (_ANOMALY_BF526(rev526) || _ANOMALY_BF527(rev527)) 36 36 37 - /* Multi-issue instruction with dsp32shiftimm in slot1 and P-reg store in slot 2 not supported */ 37 + /* Multi-Issue Instruction with dsp32shiftimm in slot1 and P-reg Store in slot2 Not Supported */ 38 38 #define ANOMALY_05000074 (1) 39 39 /* DMA_RUN Bit Is Not Valid after a Peripheral Receive Channel DMA Stops */ 40 40 #define ANOMALY_05000119 (1) /* note: brokenness is noted in documentation, not anomaly sheet */ ··· 184 184 #define ANOMALY_05000456 (1) 185 185 /* Host DMA Port Responds to Certain Bus Activity Without HOST_CE Assertion */ 186 186 #define ANOMALY_05000457 (1) 187 - /* False Hardware Error when RETI points to invalid memory */ 187 + /* False Hardware Error when RETI Points to Invalid Memory */ 188 188 #define ANOMALY_05000461 (1) 189 + /* USB Rx DMA hang */ 190 + #define ANOMALY_05000465 (1) 191 + /* Possible RX data corruption when control & data EP FIFOs are accessed via the core */ 192 + #define ANOMALY_05000467 (1) 189 193 190 194 /* Anomalies that don't exist on this proc */ 191 195 #define ANOMALY_05000099 (0) ··· 199 195 #define ANOMALY_05000158 (0) 200 196 #define ANOMALY_05000171 (0) 201 197 #define ANOMALY_05000179 (0) 198 + #define ANOMALY_05000182 (0) 202 199 #define ANOMALY_05000183 (0) 203 200 #define ANOMALY_05000198 (0) 201 + #define ANOMALY_05000202 (0) 204 202 #define ANOMALY_05000215 (0) 205 203 #define ANOMALY_05000220 (0) 206 204 #define ANOMALY_05000227 (0) 207 205 #define ANOMALY_05000230 (0) 208 206 #define ANOMALY_05000231 (0) 209 207 #define ANOMALY_05000233 (0) 208 + #define ANOMALY_05000234 (0) 210 209 #define ANOMALY_05000242 (0) 211 210 #define ANOMALY_05000244 (0) 212 211 #define ANOMALY_05000248 (0) 213 212 #define ANOMALY_05000250 (0) 213 + #define ANOMALY_05000257 (0) 214 214 #define ANOMALY_05000261 (0) 215 215 #define ANOMALY_05000263 (0) 216 216 #define ANOMALY_05000266 (0) 217 217 #define ANOMALY_05000273 (0) 218 218 #define ANOMALY_05000274 (0) 219 219 #define ANOMALY_05000278 (0) 220 + #define ANOMALY_05000281 (0) 221 + #define ANOMALY_05000283 (0) 220 222 #define ANOMALY_05000285 (0) 221 223 #define ANOMALY_05000287 (0) 222 224 #define ANOMALY_05000301 (0) ··· 230 220 #define ANOMALY_05000307 (0) 231 221 #define ANOMALY_05000311 (0) 232 222 #define ANOMALY_05000312 (0) 223 + #define ANOMALY_05000315 (0) 233 224 #define ANOMALY_05000323 (0) 234 225 #define ANOMALY_05000362 (1) 235 226 #define ANOMALY_05000363 (0)
-1
arch/blackfin/mach-bf527/include/mach/blackfin.h
··· 33 33 #define _MACH_BLACKFIN_H_ 34 34 35 35 #include "bf527.h" 36 - #include "mem_map.h" 37 36 #include "defBF522.h" 38 37 #include "anomaly.h" 39 38
+9 -47
arch/blackfin/mach-bf527/include/mach/mem_map.h
··· 1 1 /* 2 - * file: include/asm-blackfin/mach-bf527/mem_map.h 3 - * based on: include/asm-blackfin/mach-bf537/mem_map.h 4 - * author: Michael Hennerich (michael.hennerich@analog.com) 2 + * BF52x memory map 5 3 * 6 - * created: 7 - * description: 8 - * Memory MAP Common header file for blackfin BF527/5/2 of processors. 9 - * rev: 10 - * 11 - * modified: 12 - * 13 - * bugs: enter bugs at http://blackfin.uclinux.org/ 14 - * 15 - * this program is free software; you can redistribute it and/or modify 16 - * it under the terms of the gnu general public license as published by 17 - * the free software foundation; either version 2, or (at your option) 18 - * any later version. 19 - * 20 - * this program is distributed in the hope that it will be useful, 21 - * but without any warranty; without even the implied warranty of 22 - * merchantability or fitness for a particular purpose. see the 23 - * gnu general public license for more details. 24 - * 25 - * you should have received a copy of the gnu general public license 26 - * along with this program; see the file copying. 27 - * if not, write to the free software foundation, 28 - * 59 temple place - suite 330, boston, ma 02111-1307, usa. 4 + * Copyright 2004-2009 Analog Devices Inc. 5 + * Licensed under the GPL-2 or later. 29 6 */ 30 7 31 - #ifndef _MEM_MAP_527_H_ 32 - #define _MEM_MAP_527_H_ 8 + #ifndef __BFIN_MACH_MEM_MAP_H__ 9 + #define __BFIN_MACH_MEM_MAP_H__ 33 10 34 - #define COREMMR_BASE 0xFFE00000 /* Core MMRs */ 35 - #define SYSMMR_BASE 0xFFC00000 /* System MMRs */ 11 + #ifndef __BFIN_MEM_MAP_H__ 12 + # error "do not include mach/mem_map.h directly -- use asm/mem_map.h" 13 + #endif 36 14 37 15 /* Async Memory Banks */ 38 16 #define ASYNC_BANK3_BASE 0x20300000 /* Async Bank 3 */ ··· 67 89 #define BFIN_DSUPBANKS 0 68 90 #endif /*CONFIG_BFIN_DCACHE */ 69 91 70 - /* Level 2 Memory - none */ 71 - 72 - #define L2_START 0 73 - #define L2_LENGTH 0 74 - 75 - /* Scratch Pad Memory */ 76 - 77 - #define L1_SCRATCH_START 0xFFB00000 78 - #define L1_SCRATCH_LENGTH 0x1000 79 - 80 - #define GET_PDA_SAFE(preg) \ 81 - preg.l = _cpu_pda; \ 82 - preg.h = _cpu_pda; 83 - 84 - #define GET_PDA(preg, dreg) GET_PDA_SAFE(preg) 85 - 86 - #endif /* _MEM_MAP_527_H_ */ 92 + #endif
+106
arch/blackfin/mach-bf533/boards/ezkit.c
··· 32 32 #include <linux/platform_device.h> 33 33 #include <linux/mtd/mtd.h> 34 34 #include <linux/mtd/partitions.h> 35 + #include <linux/mtd/plat-ram.h> 35 36 #include <linux/spi/spi.h> 36 37 #include <linux/spi/flash.h> 37 38 #if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) ··· 84 83 .id = 0, 85 84 .num_resources = ARRAY_SIZE(smc91x_resources), 86 85 .resource = smc91x_resources, 86 + }; 87 + #endif 88 + 89 + #if defined(CONFIG_MTD_PSD4256G) || defined(CONFIG_MTD_PSD4256G_MODULE) 90 + static const char *map_probes[] = { 91 + "stm_flash", 92 + NULL, 93 + }; 94 + 95 + static struct platdata_mtd_ram stm_pri_data_a = { 96 + .mapname = "Flash A Primary", 97 + .map_probes = map_probes, 98 + .bankwidth = 2, 99 + }; 100 + 101 + static struct resource stm_pri_resource_a = { 102 + .start = 0x20000000, 103 + .end = 0x200fffff, 104 + .flags = IORESOURCE_MEM, 105 + }; 106 + 107 + static struct platform_device stm_pri_device_a = { 108 + .name = "mtd-ram", 109 + .id = 0, 110 + .dev = { 111 + .platform_data = &stm_pri_data_a, 112 + }, 113 + .num_resources = 1, 114 + .resource = &stm_pri_resource_a, 115 + }; 116 + 117 + static struct platdata_mtd_ram stm_pri_data_b = { 118 + .mapname = "Flash B Primary", 119 + .map_probes = map_probes, 120 + .bankwidth = 2, 121 + }; 122 + 123 + static struct resource stm_pri_resource_b = { 124 + .start = 0x20100000, 125 + .end = 0x201fffff, 126 + .flags = IORESOURCE_MEM, 127 + }; 128 + 129 + static struct platform_device stm_pri_device_b = { 130 + .name = "mtd-ram", 131 + .id = 4, 132 + .dev = { 133 + .platform_data = &stm_pri_data_b, 134 + }, 135 + .num_resources = 1, 136 + .resource = &stm_pri_resource_b, 137 + }; 138 + #endif 139 + 140 + #if defined(CONFIG_MTD_PLATRAM) || defined(CONFIG_MTD_PLATRAM_MODULE) 141 + static struct platdata_mtd_ram sram_data_a = { 142 + .mapname = "Flash A SRAM", 143 + .bankwidth = 2, 144 + }; 145 + 146 + static struct resource sram_resource_a = { 147 + .start = 0x20240000, 148 + .end = 0x2024ffff, 149 + .flags = IORESOURCE_MEM, 150 + }; 151 + 152 + static struct platform_device sram_device_a = { 153 + .name = "mtd-ram", 154 + .id = 8, 155 + .dev = { 156 + .platform_data = &sram_data_a, 157 + }, 158 + .num_resources = 1, 159 + .resource = &sram_resource_a, 160 + }; 161 + 162 + static struct platdata_mtd_ram sram_data_b = { 163 + .mapname = "Flash B SRAM", 164 + .bankwidth = 2, 165 + }; 166 + 167 + static struct resource sram_resource_b = { 168 + .start = 0x202c0000, 169 + .end = 0x202cffff, 170 + .flags = IORESOURCE_MEM, 171 + }; 172 + 173 + static struct platform_device sram_device_b = { 174 + .name = "mtd-ram", 175 + .id = 9, 176 + .dev = { 177 + .platform_data = &sram_data_b, 178 + }, 179 + .num_resources = 1, 180 + .resource = &sram_resource_b, 87 181 }; 88 182 #endif 89 183 ··· 452 356 static struct platform_device *ezkit_devices[] __initdata = { 453 357 454 358 &bfin_dpmc, 359 + 360 + #if defined(CONFIG_MTD_PSD4256G) || defined(CONFIG_MTD_PSD4256G_MODULE) 361 + &stm_pri_device_a, 362 + &stm_pri_device_b, 363 + #endif 364 + 365 + #if defined(CONFIG_MTD_PLATRAM) || defined(CONFIG_MTD_PLATRAM_MODULE) 366 + &sram_device_a, 367 + &sram_device_b, 368 + #endif 455 369 456 370 #if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) 457 371 &smc91x_device,
+40 -37
arch/blackfin/mach-bf533/include/mach/anomaly.h
··· 34 34 # define ANOMALY_BF533 0 35 35 #endif 36 36 37 - /* Multi-issue instruction with dsp32shiftimm in slot1 and P-reg store in slot 2 not supported */ 37 + /* Multi-Issue Instruction with dsp32shiftimm in slot1 and P-reg Store in slot2 Not Supported */ 38 38 #define ANOMALY_05000074 (1) 39 39 /* UART Line Status Register (UART_LSR) Bits Are Not Updated at the Same Time */ 40 40 #define ANOMALY_05000099 (__SILICON_REVISION__ < 5) ··· 46 46 #define ANOMALY_05000122 (1) 47 47 /* Instruction DMA Can Cause Data Cache Fills to Fail (Boot Implications) */ 48 48 #define ANOMALY_05000158 (__SILICON_REVISION__ < 5) 49 - /* PPI Data Lengths Between 8 and 16 Do Not Zero Out Upper Bits */ 49 + /* PPI Data Lengths between 8 and 16 Do Not Zero Out Upper Bits */ 50 50 #define ANOMALY_05000166 (1) 51 51 /* Turning SPORTs on while External Frame Sync Is Active May Corrupt Data */ 52 52 #define ANOMALY_05000167 (1) ··· 56 56 #define ANOMALY_05000180 (1) 57 57 /* Timer Pin Limitations for PPI TX Modes with External Frame Syncs */ 58 58 #define ANOMALY_05000183 (__SILICON_REVISION__ < 4) 59 - /* False Protection Exceptions */ 59 + /* False Protection Exceptions when Speculative Fetch Is Cancelled */ 60 60 #define ANOMALY_05000189 (__SILICON_REVISION__ < 4) 61 61 /* False I/O Pin Interrupts on Edge-Sensitive Inputs When Polarity Setting Is Changed */ 62 62 #define ANOMALY_05000193 (__SILICON_REVISION__ < 4) 63 63 /* Restarting SPORT in Specific Modes May Cause Data Corruption */ 64 64 #define ANOMALY_05000194 (__SILICON_REVISION__ < 4) 65 - /* Failing MMR Accesses When Stalled by Preceding Memory Read */ 65 + /* Failing MMR Accesses when Preceding Memory Read Stalls */ 66 66 #define ANOMALY_05000198 (__SILICON_REVISION__ < 5) 67 67 /* Current DMA Address Shows Wrong Value During Carry Fix */ 68 68 #define ANOMALY_05000199 (__SILICON_REVISION__ < 4) ··· 74 74 #define ANOMALY_05000202 (__SILICON_REVISION__ < 5) 75 75 /* Specific Sequence That Can Cause DMA Error or DMA Stopping */ 76 76 #define ANOMALY_05000203 (__SILICON_REVISION__ < 4) 77 - /* Incorrect data read with write-through cache and allocate cache lines on reads only mode */ 77 + /* Incorrect Data Read with Writethrough "Allocate Cache Lines on Reads Only" Cache Mode */ 78 78 #define ANOMALY_05000204 (__SILICON_REVISION__ < 4 && ANOMALY_BF533) 79 79 /* Recovery from "Brown-Out" Condition */ 80 80 #define ANOMALY_05000207 (__SILICON_REVISION__ < 4) ··· 106 106 #define ANOMALY_05000244 (__SILICON_REVISION__ < 5) 107 107 /* False Hardware Error from an Access in the Shadow of a Conditional Branch */ 108 108 #define ANOMALY_05000245 (1) 109 - /* Data CPLBs Should Prevent Spurious Hardware Errors */ 109 + /* Data CPLBs Should Prevent False Hardware Errors */ 110 110 #define ANOMALY_05000246 (__SILICON_REVISION__ < 5) 111 111 /* Incorrect Bit Shift of Data Word in Multichannel (TDM) Mode in Certain Conditions */ 112 112 #define ANOMALY_05000250 (__SILICON_REVISION__ == 4) ··· 148 148 #define ANOMALY_05000277 (__SILICON_REVISION__ < 6) 149 149 /* Disabling Peripherals with DMA Running May Cause DMA System Instability */ 150 150 #define ANOMALY_05000278 (__SILICON_REVISION__ < 6) 151 - /* False Hardware Error Exception When ISR Context Is Not Restored */ 151 + /* False Hardware Error Exception when ISR Context Is Not Restored */ 152 152 #define ANOMALY_05000281 (__SILICON_REVISION__ < 6) 153 153 /* Memory DMA Corruption with 32-Bit Data and Traffic Control */ 154 154 #define ANOMALY_05000282 (__SILICON_REVISION__ < 6) 155 - /* System MMR Write Is Stalled Indefinitely When Killed in a Particular Stage */ 155 + /* System MMR Write Is Stalled Indefinitely when Killed in a Particular Stage */ 156 156 #define ANOMALY_05000283 (__SILICON_REVISION__ < 6) 157 157 /* SPORTs May Receive Bad Data If FIFOs Fill Up */ 158 158 #define ANOMALY_05000288 (__SILICON_REVISION__ < 6) 159 159 /* Memory-To-Memory DMA Source/Destination Descriptors Must Be in Same Memory Space */ 160 160 #define ANOMALY_05000301 (__SILICON_REVISION__ < 6) 161 - /* SSYNCs After Writes To DMA MMR Registers May Not Be Handled Correctly */ 161 + /* SSYNCs after Writes to DMA MMR Registers May Not Be Handled Correctly */ 162 162 #define ANOMALY_05000302 (__SILICON_REVISION__ < 5) 163 163 /* SPORT_HYS Bit in PLL_CTL Register Is Not Functional */ 164 164 #define ANOMALY_05000305 (__SILICON_REVISION__ < 5) 165 - /* New Feature: Additional PPI Frame Sync Sampling Options (Not Available On Older Silicon) */ 165 + /* ALT_TIMING Bit in PPI_CONTROL Register Is Not Functional */ 166 166 #define ANOMALY_05000306 (__SILICON_REVISION__ < 5) 167 167 /* SCKELOW Bit Does Not Maintain State Through Hibernate */ 168 168 #define ANOMALY_05000307 (1) /* note: brokenness is noted in documentation, not anomaly sheet */ ··· 170 170 #define ANOMALY_05000310 (1) 171 171 /* Erroneous Flag (GPIO) Pin Operations under Specific Sequences */ 172 172 #define ANOMALY_05000311 (__SILICON_REVISION__ < 6) 173 - /* Errors When SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */ 173 + /* Errors when SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */ 174 174 #define ANOMALY_05000312 (__SILICON_REVISION__ < 6) 175 175 /* PPI Is Level-Sensitive on First Transfer In Single Frame Sync Modes */ 176 176 #define ANOMALY_05000313 (__SILICON_REVISION__ < 6) 177 - /* Killed System MMR Write Completes Erroneously On Next System MMR Access */ 177 + /* Killed System MMR Write Completes Erroneously on Next System MMR Access */ 178 178 #define ANOMALY_05000315 (__SILICON_REVISION__ < 6) 179 179 /* Internal Voltage Regulator Values of 1.05V, 1.10V and 1.15V Not Allowed for LQFP Packages */ 180 180 #define ANOMALY_05000319 ((ANOMALY_BF531 || ANOMALY_BF532) && __SILICON_REVISION__ < 6) ··· 200 200 #define ANOMALY_05000426 (1) 201 201 /* IFLUSH Instruction at End of Hardware Loop Causes Infinite Stall */ 202 202 #define ANOMALY_05000443 (1) 203 - /* False Hardware Error when RETI points to invalid memory */ 203 + /* False Hardware Error when RETI Points to Invalid Memory */ 204 204 #define ANOMALY_05000461 (1) 205 205 206 206 /* These anomalies have been "phased" out of analog.com anomaly sheets and are ··· 215 215 #define ANOMALY_05000070 (__SILICON_REVISION__ < 2) 216 216 /* Writing FIO_DIR can corrupt a programmable flag's data */ 217 217 #define ANOMALY_05000079 (__SILICON_REVISION__ < 2) 218 - /* Timer Auto-Baud Mode requires the UART clock to be enabled */ 218 + /* Timer Auto-Baud Mode requires the UART clock to be enabled. */ 219 219 #define ANOMALY_05000086 (__SILICON_REVISION__ < 2) 220 220 /* Internal Clocking Modes on SPORT0 not supported */ 221 221 #define ANOMALY_05000088 (__SILICON_REVISION__ < 2) 222 222 /* Internal voltage regulator does not wake up from an RTC wakeup */ 223 223 #define ANOMALY_05000092 (__SILICON_REVISION__ < 2) 224 - /* The IFLUSH instruction must be preceded by a CSYNC instruction */ 224 + /* The IFLUSH Instruction Must Be Preceded by a CSYNC Instruction */ 225 225 #define ANOMALY_05000093 (__SILICON_REVISION__ < 2) 226 - /* Vectoring to an instruction that is presently being filled into the instruction cache may cause erroneous behavior */ 226 + /* Vectoring to instruction that is being filled into the i-cache may cause erroneous behavior */ 227 227 #define ANOMALY_05000095 (__SILICON_REVISION__ < 2) 228 - /* PREFETCH, FLUSH, and FLUSHINV must be followed by a CSYNC */ 228 + /* PREFETCH, FLUSH, and FLUSHINV Instructions Must Be Followed by a CSYNC Instruction */ 229 229 #define ANOMALY_05000096 (__SILICON_REVISION__ < 2) 230 230 /* Performance Monitor 0 and 1 are swapped when monitoring memory events */ 231 231 #define ANOMALY_05000097 (__SILICON_REVISION__ < 2) ··· 235 235 #define ANOMALY_05000100 (__SILICON_REVISION__ < 2) 236 236 /* Reading X_MODIFY or Y_MODIFY while DMA channel is active */ 237 237 #define ANOMALY_05000101 (__SILICON_REVISION__ < 2) 238 - /* Descriptor-based MemDMA may lock up with 32-bit transfers or if transfers span 64KB buffers */ 238 + /* Descriptor MemDMA may lock up with 32-bit transfers or if transfers span 64KB buffers */ 239 239 #define ANOMALY_05000102 (__SILICON_REVISION__ < 2) 240 - /* Incorrect value written to the cycle counters */ 240 + /* Incorrect Value Written to the Cycle Counters */ 241 241 #define ANOMALY_05000103 (__SILICON_REVISION__ < 2) 242 - /* Stores to L1 Data memory incorrect when a specific sequence is followed */ 242 + /* Stores to L1 Data Memory Incorrect when a Specific Sequence Is Followed */ 243 243 #define ANOMALY_05000104 (__SILICON_REVISION__ < 2) 244 244 /* Programmable Flag (PF3) functionality not supported in all PPI modes */ 245 245 #define ANOMALY_05000106 (__SILICON_REVISION__ < 2) 246 246 /* Data store can be lost when targeting a cache line fill */ 247 247 #define ANOMALY_05000107 (__SILICON_REVISION__ < 2) 248 - /* Reserved bits in SYSCFG register not set at power on */ 248 + /* Reserved Bits in SYSCFG Register Not Set at Power-On */ 249 249 #define ANOMALY_05000109 (__SILICON_REVISION__ < 3) 250 250 /* Infinite Core Stall */ 251 251 #define ANOMALY_05000114 (__SILICON_REVISION__ < 2) 252 - /* PPI_FSx may glitch when generated by the on chip Timers */ 252 + /* PPI_FSx may glitch when generated by the on chip Timers. */ 253 253 #define ANOMALY_05000115 (__SILICON_REVISION__ < 2) 254 - /* Trace Buffers may record discontinuities into emulation mode and/or exception, NMI, reset handlers */ 254 + /* Trace Buffers May Contain Errors in Emulation Mode and/or Exception, NMI, Reset Handlers */ 255 255 #define ANOMALY_05000116 (__SILICON_REVISION__ < 3) 256 256 /* DTEST registers allow access to Data Cache when DTEST_COMMAND< 14 >= 0 */ 257 257 #define ANOMALY_05000117 (__SILICON_REVISION__ < 2) 258 258 /* Booting from an 8-bit or 24-bit Addressable SPI device is not supported */ 259 259 #define ANOMALY_05000118 (__SILICON_REVISION__ < 2) 260 - /* DTEST_COMMAND initiated memory access may be incorrect if data cache or DMA is active */ 260 + /* DTEST_COMMAND Initiated Memory Access May Be Incorrect If Data Cache or DMA Is Active */ 261 261 #define ANOMALY_05000123 (__SILICON_REVISION__ < 3) 262 262 /* DMA Lock-up at CCLK to SCLK ratios of 4:1, 2:1, or 1:1 */ 263 263 #define ANOMALY_05000124 (__SILICON_REVISION__ < 3) 264 - /* Erroneous exception when enabling cache */ 264 + /* Erroneous Exception when Enabling Cache */ 265 265 #define ANOMALY_05000125 (__SILICON_REVISION__ < 3) 266 266 /* SPI clock polarity and phase bits incorrect during booting */ 267 267 #define ANOMALY_05000126 (__SILICON_REVISION__ < 3) 268 - /* DMEM_CONTROL is not set on Reset */ 268 + /* DMEM_CONTROL<12> Is Not Set on Reset */ 269 269 #define ANOMALY_05000137 (__SILICON_REVISION__ < 3) 270 270 /* SPI boot will not complete if there is a zero fill block in the loader file */ 271 271 #define ANOMALY_05000138 (__SILICON_REVISION__ == 2) 272 - /* Timerx_Config must be set for using the PPI in GP output mode with internal Frame Syncs */ 272 + /* TIMERx_CONFIG[5] must be set for PPI in GP output mode with internal Frame Syncs */ 273 273 #define ANOMALY_05000139 (__SILICON_REVISION__ < 2) 274 274 /* Allowing the SPORT RX FIFO to fill will cause an overflow */ 275 275 #define ANOMALY_05000140 (__SILICON_REVISION__ < 3) 276 - /* An Infinite Stall occurs with a particular sequence of consecutive dual dag events */ 276 + /* Infinite Stall may occur with a particular sequence of consecutive dual dag events */ 277 277 #define ANOMALY_05000141 (__SILICON_REVISION__ < 3) 278 278 /* Interrupts may be lost when a programmable input flag is configured to be edge sensitive */ 279 279 #define ANOMALY_05000142 (__SILICON_REVISION__ < 3) ··· 287 287 #define ANOMALY_05000146 (__SILICON_REVISION__ < 3) 288 288 /* Source MDMA descriptor may stop with a DMA Error near beginning of descriptor fetch */ 289 289 #define ANOMALY_05000147 (__SILICON_REVISION__ < 3) 290 - /* When booting from a 16-bit asynchronous memory device, the upper 8-bits of each word must be 0x00 */ 290 + /* When booting from 16-bit asynchronous memory, the upper 8 bits of each word must be 0x00 */ 291 291 #define ANOMALY_05000148 (__SILICON_REVISION__ < 3) 292 292 /* Frame Delay in SPORT Multichannel Mode */ 293 293 #define ANOMALY_05000153 (__SILICON_REVISION__ < 3) ··· 295 295 #define ANOMALY_05000154 (__SILICON_REVISION__ < 3) 296 296 /* Timer1 can not be used for PWMOUT mode when a certain PPI mode is in use */ 297 297 #define ANOMALY_05000155 (__SILICON_REVISION__ < 3) 298 - /* Killed 32-bit MMR write leads to next system MMR access thinking it should be 32-bit */ 298 + /* Killed 32-Bit MMR Write Leads to Next System MMR Access Thinking It Should Be 32-Bit */ 299 299 #define ANOMALY_05000157 (__SILICON_REVISION__ < 3) 300 - /* SPORT transmit data is not gated by external frame sync in certain conditions */ 300 + /* SPORT Transmit Data Is Not Gated by External Frame Sync in Certain Conditions */ 301 301 #define ANOMALY_05000163 (__SILICON_REVISION__ < 3) 302 - /* SDRAM auto-refresh and subsequent Power Ups */ 302 + /* Undefined Behavior when Power-Up Sequence Is Issued to SDRAM during Auto-Refresh */ 303 303 #define ANOMALY_05000168 (__SILICON_REVISION__ < 3) 304 - /* DATA CPLB page miss can result in lost write-through cache data writes */ 304 + /* DATA CPLB Page Miss Can Result in Lost Write-Through Data Cache Writes */ 305 305 #define ANOMALY_05000169 (__SILICON_REVISION__ < 3) 306 306 /* DMA vs Core accesses to external memory */ 307 307 #define ANOMALY_05000173 (__SILICON_REVISION__ < 3) ··· 309 309 #define ANOMALY_05000174 (__SILICON_REVISION__ < 3) 310 310 /* Overlapping Sequencer and Memory Stalls */ 311 311 #define ANOMALY_05000175 (__SILICON_REVISION__ < 3) 312 - /* Multiplication of (-1) by (-1) followed by an accumulator saturation */ 312 + /* Overflow Bit Asserted when Multiplication of -1 by -1 Followed by Accumulator Saturation */ 313 313 #define ANOMALY_05000176 (__SILICON_REVISION__ < 3) 314 - /* Disabling the PPI resets the PPI configuration registers */ 314 + /* Disabling the PPI Resets the PPI Configuration Registers */ 315 315 #define ANOMALY_05000181 (__SILICON_REVISION__ < 3) 316 - /* PPI TX Mode with 2 External Frame Syncs */ 316 + /* Early PPI Transmit when FS1 Asserts before FS2 in TX Mode with 2 External Frame Syncs */ 317 317 #define ANOMALY_05000185 (__SILICON_REVISION__ < 3) 318 318 /* PPI does not invert the Driving PPICLK edge in Transmit Modes */ 319 319 #define ANOMALY_05000191 (__SILICON_REVISION__ < 3) 320 - /* In PPI Transmit Modes with External Frame Syncs POLC */ 320 + /* In PPI Transmit Modes with External Frame Syncs POLC bit must be set to 1 */ 321 321 #define ANOMALY_05000192 (__SILICON_REVISION__ < 3) 322 322 /* Internal Voltage Regulator may not start up */ 323 323 #define ANOMALY_05000206 (__SILICON_REVISION__ < 3) ··· 326 326 #define ANOMALY_05000120 (0) 327 327 #define ANOMALY_05000149 (0) 328 328 #define ANOMALY_05000171 (0) 329 + #define ANOMALY_05000182 (0) 329 330 #define ANOMALY_05000220 (0) 330 331 #define ANOMALY_05000248 (0) 331 332 #define ANOMALY_05000266 (0) ··· 346 345 #define ANOMALY_05000448 (0) 347 346 #define ANOMALY_05000456 (0) 348 347 #define ANOMALY_05000450 (0) 348 + #define ANOMALY_05000465 (0) 349 + #define ANOMALY_05000467 (0) 349 350 350 351 #endif
-1
arch/blackfin/mach-bf533/include/mach/blackfin.h
··· 34 34 #define BF533_FAMILY 35 35 36 36 #include "bf533.h" 37 - #include "mem_map.h" 38 37 #include "defBF532.h" 39 38 #include "anomaly.h" 40 39
+9 -47
arch/blackfin/mach-bf533/include/mach/mem_map.h
··· 1 1 /* 2 - * File: include/asm-blackfin/mach-bf533/mem_map.h 3 - * Based on: 4 - * Author: 2 + * BF533 memory map 5 3 * 6 - * Created: 7 - * Description: 8 - * 9 - * Rev: 10 - * 11 - * Modified: 12 - * 13 - * Bugs: Enter bugs at http://blackfin.uclinux.org/ 14 - * 15 - * This program is free software; you can redistribute it and/or modify 16 - * it under the terms of the GNU General Public License as published by 17 - * the Free Software Foundation; either version 2, or (at your option) 18 - * any later version. 19 - * 20 - * This program is distributed in the hope that it will be useful, 21 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 22 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 - * GNU General Public License for more details. 24 - * 25 - * You should have received a copy of the GNU General Public License 26 - * along with this program; see the file COPYING. 27 - * If not, write to the Free Software Foundation, 28 - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 4 + * Copyright 2004-2009 Analog Devices Inc. 5 + * Licensed under the GPL-2 or later. 29 6 */ 30 7 31 - #ifndef _MEM_MAP_533_H_ 32 - #define _MEM_MAP_533_H_ 8 + #ifndef __BFIN_MACH_MEM_MAP_H__ 9 + #define __BFIN_MACH_MEM_MAP_H__ 33 10 34 - #define COREMMR_BASE 0xFFE00000 /* Core MMRs */ 35 - #define SYSMMR_BASE 0xFFC00000 /* System MMRs */ 11 + #ifndef __BFIN_MEM_MAP_H__ 12 + # error "do not include mach/mem_map.h directly -- use asm/mem_map.h" 13 + #endif 36 14 37 15 /* Async Memory Banks */ 38 16 #define ASYNC_BANK3_BASE 0x20300000 /* Async Bank 3 */ ··· 136 158 137 159 #endif 138 160 139 - /* Level 2 Memory - none */ 140 - 141 - #define L2_START 0 142 - #define L2_LENGTH 0 143 - 144 - /* Scratch Pad Memory */ 145 - 146 - #define L1_SCRATCH_START 0xFFB00000 147 - #define L1_SCRATCH_LENGTH 0x1000 148 - 149 - #define GET_PDA_SAFE(preg) \ 150 - preg.l = _cpu_pda; \ 151 - preg.h = _cpu_pda; 152 - 153 - #define GET_PDA(preg, dreg) GET_PDA_SAFE(preg) 154 - 155 - #endif /* _MEM_MAP_533_H_ */ 161 + #endif
-1
arch/blackfin/mach-bf537/boards/stamp.c
··· 79 79 80 80 static struct isp1760_platform_data isp1760_priv = { 81 81 .is_isp1761 = 0, 82 - .port1_disable = 0, 83 82 .bus_width_16 = 1, 84 83 .port1_otg = 0, 85 84 .analog_oc = 0,
+23 -18
arch/blackfin/mach-bf537/include/mach/anomaly.h
··· 34 34 # define ANOMALY_BF537 0 35 35 #endif 36 36 37 - /* Multi-issue instruction with dsp32shiftimm in slot1 and P-reg store in slot 2 not supported */ 37 + /* Multi-Issue Instruction with dsp32shiftimm in slot1 and P-reg Store in slot2 Not Supported */ 38 38 #define ANOMALY_05000074 (1) 39 39 /* DMA_RUN Bit Is Not Valid after a Peripheral Receive Channel DMA Stops */ 40 40 #define ANOMALY_05000119 (1) 41 41 /* Rx.H Cannot Be Used to Access 16-bit System MMR Registers */ 42 42 #define ANOMALY_05000122 (1) 43 - /* Killed 32-bit MMR write leads to next system MMR access thinking it should be 32-bit */ 43 + /* Killed 32-Bit MMR Write Leads to Next System MMR Access Thinking It Should Be 32-Bit */ 44 44 #define ANOMALY_05000157 (__SILICON_REVISION__ < 2) 45 45 /* PPI_DELAY Not Functional in PPI Modes with 0 Frame Syncs */ 46 46 #define ANOMALY_05000180 (1) ··· 50 50 #define ANOMALY_05000244 (__SILICON_REVISION__ < 3) 51 51 /* False Hardware Error from an Access in the Shadow of a Conditional Branch */ 52 52 #define ANOMALY_05000245 (1) 53 - /* CLKIN Buffer Output Enable Reset Behavior Is Changed */ 53 + /* Buffered CLKIN Output Is Disabled by Default */ 54 54 #define ANOMALY_05000247 (1) 55 55 /* Incorrect Bit Shift of Data Word in Multichannel (TDM) Mode in Certain Conditions */ 56 56 #define ANOMALY_05000250 (__SILICON_REVISION__ < 3) 57 - /* EMAC Tx DMA error after an early frame abort */ 57 + /* EMAC TX DMA Error After an Early Frame Abort */ 58 58 #define ANOMALY_05000252 (__SILICON_REVISION__ < 3) 59 59 /* Maximum External Clock Speed for Timers */ 60 60 #define ANOMALY_05000253 (__SILICON_REVISION__ < 3) ··· 62 62 #define ANOMALY_05000254 (__SILICON_REVISION__ > 2) 63 63 /* Entering Hibernate State with RTC Seconds Interrupt Not Functional */ 64 64 #define ANOMALY_05000255 (__SILICON_REVISION__ < 3) 65 - /* EMAC MDIO input latched on wrong MDC edge */ 65 + /* EMAC MDIO Input Latched on Wrong MDC Edge */ 66 66 #define ANOMALY_05000256 (__SILICON_REVISION__ < 3) 67 67 /* Interrupt/Exception During Short Hardware Loop May Cause Bad Instruction Fetches */ 68 68 #define ANOMALY_05000257 (__SILICON_REVISION__ < 3) ··· 80 80 #define ANOMALY_05000264 (__SILICON_REVISION__ < 3) 81 81 /* Sensitivity To Noise with Slow Input Edge Rates on External SPORT TX and RX Clocks */ 82 82 #define ANOMALY_05000265 (1) 83 - /* Memory DMA error when peripheral DMA is running with non-zero DEB_TRAFFIC_PERIOD */ 83 + /* Memory DMA Error when Peripheral DMA Is Running with Non-Zero DEB_TRAFFIC_PERIOD */ 84 84 #define ANOMALY_05000268 (__SILICON_REVISION__ < 3) 85 85 /* High I/O Activity Causes Output Voltage of Internal Voltage Regulator (Vddint) to Decrease */ 86 86 #define ANOMALY_05000270 (__SILICON_REVISION__ < 3) ··· 92 92 #define ANOMALY_05000277 (__SILICON_REVISION__ < 3) 93 93 /* Disabling Peripherals with DMA Running May Cause DMA System Instability */ 94 94 #define ANOMALY_05000278 (((ANOMALY_BF536 || ANOMALY_BF537) && __SILICON_REVISION__ < 3) || (ANOMALY_BF534 && __SILICON_REVISION__ < 2)) 95 - /* SPI Master boot mode does not work well with Atmel Data flash devices */ 95 + /* SPI Master Boot Mode Does Not Work Well with Atmel Data Flash Devices */ 96 96 #define ANOMALY_05000280 (1) 97 - /* False Hardware Error Exception When ISR Context Is Not Restored */ 97 + /* False Hardware Error Exception when ISR Context Is Not Restored */ 98 98 #define ANOMALY_05000281 (__SILICON_REVISION__ < 3) 99 99 /* Memory DMA Corruption with 32-Bit Data and Traffic Control */ 100 100 #define ANOMALY_05000282 (__SILICON_REVISION__ < 3) 101 - /* System MMR Write Is Stalled Indefinitely When Killed in a Particular Stage */ 101 + /* System MMR Write Is Stalled Indefinitely when Killed in a Particular Stage */ 102 102 #define ANOMALY_05000283 (__SILICON_REVISION__ < 3) 103 - /* New Feature: EMAC TX DMA Word Alignment (Not Available On Older Silicon) */ 103 + /* TXDWA Bit in EMAC_SYSCTL Register Is Not Functional */ 104 104 #define ANOMALY_05000285 (__SILICON_REVISION__ < 3) 105 105 /* SPORTs May Receive Bad Data If FIFOs Fill Up */ 106 106 #define ANOMALY_05000288 (__SILICON_REVISION__ < 3) ··· 112 112 #define ANOMALY_05000305 (__SILICON_REVISION__ < 3) 113 113 /* SCKELOW Bit Does Not Maintain State Through Hibernate */ 114 114 #define ANOMALY_05000307 (__SILICON_REVISION__ < 3) 115 - /* Writing UART_THR while UART clock is disabled sends erroneous start bit */ 115 + /* Writing UART_THR While UART Clock Is Disabled Sends Erroneous Start Bit */ 116 116 #define ANOMALY_05000309 (__SILICON_REVISION__ < 3) 117 117 /* False Hardware Errors Caused by Fetches at the Boundary of Reserved Memory */ 118 118 #define ANOMALY_05000310 (1) 119 - /* Errors When SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */ 119 + /* Errors when SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */ 120 120 #define ANOMALY_05000312 (1) 121 121 /* PPI Is Level-Sensitive on First Transfer In Single Frame Sync Modes */ 122 122 #define ANOMALY_05000313 (1) 123 - /* Killed System MMR Write Completes Erroneously On Next System MMR Access */ 123 + /* Killed System MMR Write Completes Erroneously on Next System MMR Access */ 124 124 #define ANOMALY_05000315 (__SILICON_REVISION__ < 3) 125 - /* EMAC RMII mode: collisions occur in Full Duplex mode */ 125 + /* EMAC RMII Mode: Collisions Occur in Full Duplex Mode */ 126 126 #define ANOMALY_05000316 (__SILICON_REVISION__ < 3) 127 - /* EMAC RMII mode: TX frames in half duplex fail with status No Carrier */ 127 + /* EMAC RMII Mode: TX Frames in Half Duplex Fail with Status "No Carrier" */ 128 128 #define ANOMALY_05000321 (__SILICON_REVISION__ < 3) 129 - /* EMAC RMII mode at 10-Base-T speed: RX frames not received properly */ 129 + /* EMAC RMII Mode at 10-Base-T Speed: RX Frames Not Received Properly */ 130 130 #define ANOMALY_05000322 (1) 131 131 /* Ethernet MAC MDIO Reads Do Not Meet IEEE Specification */ 132 132 #define ANOMALY_05000341 (__SILICON_REVISION__ >= 3) 133 - /* New Feature: UART Remains Enabled after UART Boot */ 133 + /* UART Gets Disabled after UART Boot */ 134 134 #define ANOMALY_05000350 (__SILICON_REVISION__ >= 3) 135 135 /* Regulator Programming Blocked when Hibernate Wakeup Source Remains Active */ 136 136 #define ANOMALY_05000355 (1) ··· 154 154 #define ANOMALY_05000426 (1) 155 155 /* IFLUSH Instruction at End of Hardware Loop Causes Infinite Stall */ 156 156 #define ANOMALY_05000443 (1) 157 - /* False Hardware Error when RETI points to invalid memory */ 157 + /* False Hardware Error when RETI Points to Invalid Memory */ 158 158 #define ANOMALY_05000461 (1) 159 159 160 160 /* Anomalies that don't exist on this proc */ ··· 165 165 #define ANOMALY_05000158 (0) 166 166 #define ANOMALY_05000171 (0) 167 167 #define ANOMALY_05000179 (0) 168 + #define ANOMALY_05000182 (0) 168 169 #define ANOMALY_05000183 (0) 169 170 #define ANOMALY_05000198 (0) 171 + #define ANOMALY_05000202 (0) 170 172 #define ANOMALY_05000215 (0) 171 173 #define ANOMALY_05000220 (0) 172 174 #define ANOMALY_05000227 (0) 173 175 #define ANOMALY_05000230 (0) 174 176 #define ANOMALY_05000231 (0) 175 177 #define ANOMALY_05000233 (0) 178 + #define ANOMALY_05000234 (0) 176 179 #define ANOMALY_05000242 (0) 177 180 #define ANOMALY_05000248 (0) 178 181 #define ANOMALY_05000266 (0) ··· 198 195 #define ANOMALY_05000448 (0) 199 196 #define ANOMALY_05000456 (0) 200 197 #define ANOMALY_05000450 (0) 198 + #define ANOMALY_05000465 (0) 199 + #define ANOMALY_05000467 (0) 201 200 202 201 #endif
-1
arch/blackfin/mach-bf537/include/mach/blackfin.h
··· 35 35 #define BF537_FAMILY 36 36 37 37 #include "bf537.h" 38 - #include "mem_map.h" 39 38 #include "defBF534.h" 40 39 #include "anomaly.h" 41 40
+9 -47
arch/blackfin/mach-bf537/include/mach/mem_map.h
··· 1 1 /* 2 - * file: include/asm-blackfin/mach-bf537/mem_map.h 3 - * based on: 4 - * author: 2 + * BF537 memory map 5 3 * 6 - * created: 7 - * description: 8 - * Memory MAP Common header file for blackfin BF537/6/4 of processors. 9 - * rev: 10 - * 11 - * modified: 12 - * 13 - * bugs: enter bugs at http://blackfin.uclinux.org/ 14 - * 15 - * this program is free software; you can redistribute it and/or modify 16 - * it under the terms of the gnu general public license as published by 17 - * the free software foundation; either version 2, or (at your option) 18 - * any later version. 19 - * 20 - * this program is distributed in the hope that it will be useful, 21 - * but without any warranty; without even the implied warranty of 22 - * merchantability or fitness for a particular purpose. see the 23 - * gnu general public license for more details. 24 - * 25 - * you should have received a copy of the gnu general public license 26 - * along with this program; see the file copying. 27 - * if not, write to the free software foundation, 28 - * 59 temple place - suite 330, boston, ma 02111-1307, usa. 4 + * Copyright 2004-2009 Analog Devices Inc. 5 + * Licensed under the GPL-2 or later. 29 6 */ 30 7 31 - #ifndef _MEM_MAP_537_H_ 32 - #define _MEM_MAP_537_H_ 8 + #ifndef __BFIN_MACH_MEM_MAP_H__ 9 + #define __BFIN_MACH_MEM_MAP_H__ 33 10 34 - #define COREMMR_BASE 0xFFE00000 /* Core MMRs */ 35 - #define SYSMMR_BASE 0xFFC00000 /* System MMRs */ 11 + #ifndef __BFIN_MEM_MAP_H__ 12 + # error "do not include mach/mem_map.h directly -- use asm/mem_map.h" 13 + #endif 36 14 37 15 /* Async Memory Banks */ 38 16 #define ASYNC_BANK3_BASE 0x20300000 /* Async Bank 3 */ ··· 144 166 145 167 #endif 146 168 147 - /* Level 2 Memory - none */ 148 - 149 - #define L2_START 0 150 - #define L2_LENGTH 0 151 - 152 - /* Scratch Pad Memory */ 153 - 154 - #define L1_SCRATCH_START 0xFFB00000 155 - #define L1_SCRATCH_LENGTH 0x1000 156 - 157 - #define GET_PDA_SAFE(preg) \ 158 - preg.l = _cpu_pda; \ 159 - preg.h = _cpu_pda; 160 - 161 - #define GET_PDA(preg, dreg) GET_PDA_SAFE(preg) 162 - 163 - #endif /* _MEM_MAP_537_H_ */ 169 + #endif
+16 -8
arch/blackfin/mach-bf538/include/mach/anomaly.h
··· 30 30 # define ANOMALY_BF539 0 31 31 #endif 32 32 33 - /* Multi-issue instruction with dsp32shiftimm in slot1 and P-reg store in slot 2 not supported */ 33 + /* Multi-Issue Instruction with dsp32shiftimm in slot1 and P-reg Store in slot2 Not Supported */ 34 34 #define ANOMALY_05000074 (1) 35 35 /* DMA_RUN Bit Is Not Valid after a Peripheral Receive Channel DMA Stops */ 36 36 #define ANOMALY_05000119 (1) 37 37 /* Rx.H Cannot Be Used to Access 16-bit System MMR Registers */ 38 38 #define ANOMALY_05000122 (1) 39 - /* PPI Data Lengths Between 8 and 16 Do Not Zero Out Upper Bits */ 39 + /* PPI Data Lengths between 8 and 16 Do Not Zero Out Upper Bits */ 40 40 #define ANOMALY_05000166 (1) 41 41 /* PPI_COUNT Cannot Be Programmed to 0 in General Purpose TX or RX Modes */ 42 42 #define ANOMALY_05000179 (1) ··· 70 70 #define ANOMALY_05000277 (__SILICON_REVISION__ < 4) 71 71 /* Disabling Peripherals with DMA Running May Cause DMA System Instability */ 72 72 #define ANOMALY_05000278 (__SILICON_REVISION__ < 4) 73 - /* False Hardware Error Exception When ISR Context Is Not Restored */ 73 + /* False Hardware Error Exception when ISR Context Is Not Restored */ 74 74 #define ANOMALY_05000281 (__SILICON_REVISION__ < 4) 75 75 /* Memory DMA Corruption with 32-Bit Data and Traffic Control */ 76 76 #define ANOMALY_05000282 (__SILICON_REVISION__ < 4) 77 - /* System MMR Write Is Stalled Indefinitely When Killed in a Particular Stage */ 77 + /* System MMR Write Is Stalled Indefinitely when Killed in a Particular Stage */ 78 78 #define ANOMALY_05000283 (__SILICON_REVISION__ < 4) 79 79 /* SPORTs May Receive Bad Data If FIFOs Fill Up */ 80 80 #define ANOMALY_05000288 (__SILICON_REVISION__ < 4) ··· 92 92 #define ANOMALY_05000307 (__SILICON_REVISION__ < 4) 93 93 /* False Hardware Errors Caused by Fetches at the Boundary of Reserved Memory */ 94 94 #define ANOMALY_05000310 (1) 95 - /* Errors When SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */ 95 + /* Errors when SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */ 96 96 #define ANOMALY_05000312 (__SILICON_REVISION__ < 5) 97 97 /* PPI Is Level-Sensitive on First Transfer In Single Frame Sync Modes */ 98 98 #define ANOMALY_05000313 (__SILICON_REVISION__ < 4) 99 - /* Killed System MMR Write Completes Erroneously On Next System MMR Access */ 99 + /* Killed System MMR Write Completes Erroneously on Next System MMR Access */ 100 100 #define ANOMALY_05000315 (__SILICON_REVISION__ < 4) 101 101 /* PFx Glitch on Write to FIO_FLAG_D or FIO_FLAG_T */ 102 102 #define ANOMALY_05000318 (ANOMALY_BF539 && __SILICON_REVISION__ < 4) ··· 110 110 #define ANOMALY_05000371 (__SILICON_REVISION__ < 5) 111 111 /* Entering Hibernate State with Peripheral Wakeups Enabled Draws Excess Current */ 112 112 #define ANOMALY_05000374 (__SILICON_REVISION__ == 4) 113 - /* New Feature: Open-Drain GPIO Outputs on PC1 and PC4 (Not Available on Older Silicon) */ 113 + /* GPIO Pins PC1 and PC4 Can Function as Normal Outputs */ 114 114 #define ANOMALY_05000375 (__SILICON_REVISION__ < 4) 115 115 /* SSYNC Stalls Processor when Executed from Non-Cacheable Memory */ 116 116 #define ANOMALY_05000402 (__SILICON_REVISION__ < 4) ··· 126 126 #define ANOMALY_05000436 (__SILICON_REVISION__ > 3) 127 127 /* IFLUSH Instruction at End of Hardware Loop Causes Infinite Stall */ 128 128 #define ANOMALY_05000443 (1) 129 - /* False Hardware Error when RETI points to invalid memory */ 129 + /* False Hardware Error when RETI Points to Invalid Memory */ 130 130 #define ANOMALY_05000461 (1) 131 131 132 132 /* Anomalies that don't exist on this proc */ 133 133 #define ANOMALY_05000099 (0) 134 134 #define ANOMALY_05000120 (0) 135 + #define ANOMALY_05000125 (0) 135 136 #define ANOMALY_05000149 (0) 136 137 #define ANOMALY_05000158 (0) 137 138 #define ANOMALY_05000171 (0) 139 + #define ANOMALY_05000182 (0) 138 140 #define ANOMALY_05000198 (0) 141 + #define ANOMALY_05000202 (0) 139 142 #define ANOMALY_05000215 (0) 140 143 #define ANOMALY_05000220 (0) 141 144 #define ANOMALY_05000227 (0) 142 145 #define ANOMALY_05000230 (0) 143 146 #define ANOMALY_05000231 (0) 147 + #define ANOMALY_05000234 (0) 144 148 #define ANOMALY_05000242 (0) 145 149 #define ANOMALY_05000248 (0) 146 150 #define ANOMALY_05000250 (0) 147 151 #define ANOMALY_05000254 (0) 152 + #define ANOMALY_05000257 (0) 148 153 #define ANOMALY_05000263 (0) 154 + #define ANOMALY_05000266 (0) 149 155 #define ANOMALY_05000274 (0) 150 156 #define ANOMALY_05000287 (0) 151 157 #define ANOMALY_05000305 (0) ··· 172 166 #define ANOMALY_05000448 (0) 173 167 #define ANOMALY_05000456 (0) 174 168 #define ANOMALY_05000450 (0) 169 + #define ANOMALY_05000465 (0) 170 + #define ANOMALY_05000467 (0) 175 171 176 172 #endif
-1
arch/blackfin/mach-bf538/include/mach/blackfin.h
··· 35 35 #define BF538_FAMILY 36 36 37 37 #include "bf538.h" 38 - #include "mem_map.h" 39 38 #include "defBF539.h" 40 39 #include "anomaly.h" 41 40
+9 -48
arch/blackfin/mach-bf538/include/mach/mem_map.h
··· 1 1 /* 2 - * File: include/asm-blackfin/mach-bf538/mem_map.h 3 - * Based on: 4 - * Author: 2 + * BF538 memory map 5 3 * 6 - * Created: 7 - * Description: 8 - * 9 - * Rev: 10 - * 11 - * Modified: 12 - * 13 - * Bugs: Enter bugs at http://blackfin.uclinux.org/ 14 - * 15 - * This program is free software; you can redistribute it and/or modify 16 - * it under the terms of the GNU General Public License as published by 17 - * the Free Software Foundation; either version 2, or (at your option) 18 - * any later version. 19 - * 20 - * This program is distributed in the hope that it will be useful, 21 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 22 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 - * GNU General Public License for more details. 24 - * 25 - * You should have received a copy of the GNU General Public License 26 - * along with this program; see the file COPYING. 27 - * If not, write to the Free Software Foundation, 28 - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 4 + * Copyright 2004-2009 Analog Devices Inc. 5 + * Licensed under the GPL-2 or later. 29 6 */ 30 7 31 - #ifndef _MEM_MAP_538_H_ 32 - #define _MEM_MAP_538_H_ 8 + #ifndef __BFIN_MACH_MEM_MAP_H__ 9 + #define __BFIN_MACH_MEM_MAP_H__ 33 10 34 - #define COREMMR_BASE 0xFFE00000 /* Core MMRs */ 35 - #define SYSMMR_BASE 0xFFC00000 /* System MMRs */ 11 + #ifndef __BFIN_MEM_MAP_H__ 12 + # error "do not include mach/mem_map.h directly -- use asm/mem_map.h" 13 + #endif 36 14 37 15 /* Async Memory Banks */ 38 16 #define ASYNC_BANK3_BASE 0x20300000 /* Async Bank 3 */ ··· 71 93 #define BFIN_DSUPBANKS 0 72 94 #endif /*CONFIG_BFIN_DCACHE*/ 73 95 74 - 75 - /* Level 2 Memory - none */ 76 - 77 - #define L2_START 0 78 - #define L2_LENGTH 0 79 - 80 - /* Scratch Pad Memory */ 81 - 82 - #define L1_SCRATCH_START 0xFFB00000 83 - #define L1_SCRATCH_LENGTH 0x1000 84 - 85 - #define GET_PDA_SAFE(preg) \ 86 - preg.l = _cpu_pda; \ 87 - preg.h = _cpu_pda; 88 - 89 - #define GET_PDA(preg, dreg) GET_PDA_SAFE(preg) 90 - 91 - #endif /* _MEM_MAP_538_H_ */ 96 + #endif
-1
arch/blackfin/mach-bf548/boards/ezkit.c
··· 76 76 77 77 static struct isp1760_platform_data isp1760_priv = { 78 78 .is_isp1761 = 0, 79 - .port1_disable = 0, 80 79 .bus_width_16 = 1, 81 80 .port1_otg = 0, 82 81 .analog_oc = 0,
+15 -5
arch/blackfin/mach-bf548/include/mach/anomaly.h
··· 18 18 # error will not work on BF548 silicon version 0.0, or 0.1 19 19 #endif 20 20 21 - /* Multi-issue instruction with dsp32shiftimm in slot1 and P-reg store in slot 2 not supported */ 21 + /* Multi-Issue Instruction with dsp32shiftimm in slot1 and P-reg Store in slot2 Not Supported */ 22 22 #define ANOMALY_05000074 (1) 23 23 /* DMA_RUN Bit Is Not Valid after a Peripheral Receive Channel DMA Stops */ 24 24 #define ANOMALY_05000119 (1) ··· 30 30 #define ANOMALY_05000265 (1) 31 31 /* Certain Data Cache Writethrough Modes Fail for Vddint <= 0.9V */ 32 32 #define ANOMALY_05000272 (1) 33 - /* False Hardware Error Exception When ISR Context Is Not Restored */ 33 + /* False Hardware Error Exception when ISR Context Is Not Restored */ 34 34 #define ANOMALY_05000281 (__SILICON_REVISION__ < 1) 35 35 /* SSYNCs After Writes To CAN/DMA MMR Registers Are Not Always Handled Correctly */ 36 36 #define ANOMALY_05000304 (__SILICON_REVISION__ < 1) 37 37 /* False Hardware Errors Caused by Fetches at the Boundary of Reserved Memory */ 38 38 #define ANOMALY_05000310 (1) 39 - /* Errors When SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */ 39 + /* Errors when SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */ 40 40 #define ANOMALY_05000312 (__SILICON_REVISION__ < 1) 41 41 /* TWI Slave Boot Mode Is Not Functional */ 42 42 #define ANOMALY_05000324 (__SILICON_REVISION__ < 1) 43 - /* External FIFO Boot Mode Is Not Functional */ 43 + /* FIFO Boot Mode Not Functional */ 44 44 #define ANOMALY_05000325 (__SILICON_REVISION__ < 2) 45 45 /* Data Lost When Core and DMA Accesses Are Made to the USB FIFO Simultaneously */ 46 46 #define ANOMALY_05000327 (__SILICON_REVISION__ < 1) ··· 178 178 #define ANOMALY_05000450 (1) 179 179 /* USB Receive Interrupt Is Not Generated in DMA Mode 1 */ 180 180 #define ANOMALY_05000456 (__SILICON_REVISION__ < 3) 181 - /* False Hardware Error when RETI points to invalid memory */ 181 + /* False Hardware Error when RETI Points to Invalid Memory */ 182 182 #define ANOMALY_05000461 (1) 183 + /* USB Rx DMA hang */ 184 + #define ANOMALY_05000465 (1) 185 + /* Possible RX data corruption when control & data EP FIFOs are accessed via the core */ 186 + #define ANOMALY_05000467 (1) 183 187 184 188 /* Anomalies that don't exist on this proc */ 185 189 #define ANOMALY_05000099 (0) ··· 193 189 #define ANOMALY_05000158 (0) 194 190 #define ANOMALY_05000171 (0) 195 191 #define ANOMALY_05000179 (0) 192 + #define ANOMALY_05000182 (0) 196 193 #define ANOMALY_05000183 (0) 197 194 #define ANOMALY_05000198 (0) 195 + #define ANOMALY_05000202 (0) 198 196 #define ANOMALY_05000215 (0) 199 197 #define ANOMALY_05000220 (0) 200 198 #define ANOMALY_05000227 (0) 201 199 #define ANOMALY_05000230 (0) 202 200 #define ANOMALY_05000231 (0) 203 201 #define ANOMALY_05000233 (0) 202 + #define ANOMALY_05000234 (0) 204 203 #define ANOMALY_05000242 (0) 205 204 #define ANOMALY_05000244 (0) 206 205 #define ANOMALY_05000248 (0) 207 206 #define ANOMALY_05000250 (0) 208 207 #define ANOMALY_05000254 (0) 208 + #define ANOMALY_05000257 (0) 209 209 #define ANOMALY_05000261 (0) 210 210 #define ANOMALY_05000263 (0) 211 211 #define ANOMALY_05000266 (0) 212 212 #define ANOMALY_05000273 (0) 213 213 #define ANOMALY_05000274 (0) 214 214 #define ANOMALY_05000278 (0) 215 + #define ANOMALY_05000283 (0) 215 216 #define ANOMALY_05000287 (0) 216 217 #define ANOMALY_05000301 (0) 217 218 #define ANOMALY_05000305 (0) 218 219 #define ANOMALY_05000307 (0) 219 220 #define ANOMALY_05000311 (0) 221 + #define ANOMALY_05000315 (0) 220 222 #define ANOMALY_05000323 (0) 221 223 #define ANOMALY_05000362 (1) 222 224 #define ANOMALY_05000363 (0)
-1
arch/blackfin/mach-bf548/include/mach/blackfin.h
··· 33 33 #define _MACH_BLACKFIN_H_ 34 34 35 35 #include "bf548.h" 36 - #include "mem_map.h" 37 36 #include "anomaly.h" 38 37 39 38 #ifdef CONFIG_BF542
+9 -42
arch/blackfin/mach-bf548/include/mach/mem_map.h
··· 1 1 /* 2 - * file: include/asm-blackfin/mach-bf548/mem_map.h 3 - * based on: 4 - * author: 2 + * BF548 memory map 5 3 * 6 - * created: 7 - * description: 8 - * Memory MAP Common header file for blackfin BF537/6/4 of processors. 9 - * rev: 10 - * 11 - * modified: 12 - * 13 - * bugs: enter bugs at http://blackfin.uclinux.org/ 14 - * 15 - * this program is free software; you can redistribute it and/or modify 16 - * it under the terms of the gnu general public license as published by 17 - * the free software foundation; either version 2, or (at your option) 18 - * any later version. 19 - * 20 - * this program is distributed in the hope that it will be useful, 21 - * but without any warranty; without even the implied warranty of 22 - * merchantability or fitness for a particular purpose. see the 23 - * gnu general public license for more details. 24 - * 25 - * you should have received a copy of the gnu general public license 26 - * along with this program; see the file copying. 27 - * if not, write to the free software foundation, 28 - * 59 temple place - suite 330, boston, ma 02111-1307, usa. 4 + * Copyright 2004-2009 Analog Devices Inc. 5 + * Licensed under the GPL-2 or later. 29 6 */ 30 7 31 - #ifndef _MEM_MAP_548_H_ 32 - #define _MEM_MAP_548_H_ 8 + #ifndef __BFIN_MACH_MEM_MAP_H__ 9 + #define __BFIN_MACH_MEM_MAP_H__ 33 10 34 - #define COREMMR_BASE 0xFFE00000 /* Core MMRs */ 35 - #define SYSMMR_BASE 0xFFC00000 /* System MMRs */ 11 + #ifndef __BFIN_MEM_MAP_H__ 12 + # error "do not include mach/mem_map.h directly -- use asm/mem_map.h" 13 + #endif 36 14 37 15 /* Async Memory Banks */ 38 16 #define ASYNC_BANK3_BASE 0x2C000000 /* Async Bank 3 */ ··· 81 103 # define L2_LENGTH 0x20000 82 104 #endif 83 105 84 - /* Scratch Pad Memory */ 85 - 86 - #define L1_SCRATCH_START 0xFFB00000 87 - #define L1_SCRATCH_LENGTH 0x1000 88 - 89 - #define GET_PDA_SAFE(preg) \ 90 - preg.l = _cpu_pda; \ 91 - preg.h = _cpu_pda; 92 - 93 - #define GET_PDA(preg, dreg) GET_PDA_SAFE(preg) 94 - 95 - #endif/* _MEM_MAP_548_H_ */ 106 + #endif
-1
arch/blackfin/mach-bf561/boards/ezkit.c
··· 62 62 63 63 static struct isp1760_platform_data isp1760_priv = { 64 64 .is_isp1761 = 0, 65 - .port1_disable = 0, 66 65 .bus_width_16 = 1, 67 66 .port1_otg = 0, 68 67 .analog_oc = 0,
+46 -43
arch/blackfin/mach-bf561/include/mach/anomaly.h
··· 18 18 # error will not work on BF561 silicon version 0.0, 0.1, 0.2, or 0.4 19 19 #endif 20 20 21 - /* Multi-issue instruction with dsp32shiftimm in slot1 and P-reg store in slot 2 not supported */ 21 + /* Multi-Issue Instruction with dsp32shiftimm in slot1 and P-reg Store in slot2 Not Supported */ 22 22 #define ANOMALY_05000074 (1) 23 23 /* UART Line Status Register (UART_LSR) Bits Are Not Updated at the Same Time */ 24 24 #define ANOMALY_05000099 (__SILICON_REVISION__ < 5) 25 - /* Trace Buffers may record discontinuities into emulation mode and/or exception, NMI, reset handlers */ 25 + /* Trace Buffers May Contain Errors in Emulation Mode and/or Exception, NMI, Reset Handlers */ 26 26 #define ANOMALY_05000116 (__SILICON_REVISION__ < 3) 27 - /* Testset instructions restricted to 32-bit aligned memory locations */ 27 + /* TESTSET Instructions Restricted to 32-Bit Aligned Memory Locations */ 28 28 #define ANOMALY_05000120 (1) 29 29 /* Rx.H Cannot Be Used to Access 16-bit System MMR Registers */ 30 30 #define ANOMALY_05000122 (1) 31 - /* Erroneous exception when enabling cache */ 31 + /* Erroneous Exception when Enabling Cache */ 32 32 #define ANOMALY_05000125 (__SILICON_REVISION__ < 3) 33 - /* Signbits instruction not functional under certain conditions */ 33 + /* SIGNBITS Instruction Not Functional under Certain Conditions */ 34 34 #define ANOMALY_05000127 (1) 35 35 /* Two bits in the Watchpoint Status Register (WPSTAT) are swapped */ 36 36 #define ANOMALY_05000134 (__SILICON_REVISION__ < 3) ··· 40 40 #define ANOMALY_05000136 (__SILICON_REVISION__ < 3) 41 41 /* Allowing the SPORT RX FIFO to fill will cause an overflow */ 42 42 #define ANOMALY_05000140 (__SILICON_REVISION__ < 3) 43 - /* An Infinite Stall occurs with a particular sequence of consecutive dual dag events */ 43 + /* Infinite Stall may occur with a particular sequence of consecutive dual dag events */ 44 44 #define ANOMALY_05000141 (__SILICON_REVISION__ < 3) 45 45 /* Interrupts may be lost when a programmable input flag is configured to be edge sensitive */ 46 46 #define ANOMALY_05000142 (__SILICON_REVISION__ < 3) ··· 52 52 #define ANOMALY_05000146 (__SILICON_REVISION__ < 3) 53 53 /* Source MDMA descriptor may stop with a DMA Error near beginning of descriptor fetch */ 54 54 #define ANOMALY_05000147 (__SILICON_REVISION__ < 3) 55 - /* IMDMA S1/D1 channel may stall */ 55 + /* IMDMA S1/D1 Channel May Stall */ 56 56 #define ANOMALY_05000149 (1) 57 57 /* DMA engine may lose data due to incorrect handshaking */ 58 58 #define ANOMALY_05000150 (__SILICON_REVISION__ < 3) ··· 66 66 #define ANOMALY_05000154 (__SILICON_REVISION__ < 3) 67 67 /* Timers in PWM-Out Mode with PPI GP Receive (Input) Mode with 0 Frame Syncs */ 68 68 #define ANOMALY_05000156 (__SILICON_REVISION__ < 4) 69 - /* Killed 32-bit MMR write leads to next system MMR access thinking it should be 32-bit */ 69 + /* Killed 32-Bit MMR Write Leads to Next System MMR Access Thinking It Should Be 32-Bit */ 70 70 #define ANOMALY_05000157 (__SILICON_REVISION__ < 3) 71 71 /* DMA Lock-up at CCLK to SCLK ratios of 4:1, 2:1, or 1:1 */ 72 72 #define ANOMALY_05000159 (__SILICON_REVISION__ < 3) ··· 76 76 #define ANOMALY_05000161 (__SILICON_REVISION__ < 3) 77 77 /* DMEM_CONTROL<12> is not set on Reset */ 78 78 #define ANOMALY_05000162 (__SILICON_REVISION__ < 3) 79 - /* SPORT transmit data is not gated by external frame sync in certain conditions */ 79 + /* SPORT Transmit Data Is Not Gated by External Frame Sync in Certain Conditions */ 80 80 #define ANOMALY_05000163 (__SILICON_REVISION__ < 3) 81 - /* PPI Data Lengths Between 8 and 16 Do Not Zero Out Upper Bits */ 81 + /* PPI Data Lengths between 8 and 16 Do Not Zero Out Upper Bits */ 82 82 #define ANOMALY_05000166 (1) 83 83 /* Turning SPORTs on while External Frame Sync Is Active May Corrupt Data */ 84 84 #define ANOMALY_05000167 (1) 85 - /* SDRAM auto-refresh and subsequent Power Ups */ 85 + /* Undefined Behavior when Power-Up Sequence Is Issued to SDRAM during Auto-Refresh */ 86 86 #define ANOMALY_05000168 (__SILICON_REVISION__ < 5) 87 - /* DATA CPLB page miss can result in lost write-through cache data writes */ 87 + /* DATA CPLB Page Miss Can Result in Lost Write-Through Data Cache Writes */ 88 88 #define ANOMALY_05000169 (__SILICON_REVISION__ < 5) 89 - /* Boot-ROM code modifies SICA_IWRx wakeup registers */ 89 + /* Boot-ROM Modifies SICA_IWRx Wakeup Registers */ 90 90 #define ANOMALY_05000171 (__SILICON_REVISION__ < 5) 91 91 /* DSPID register values incorrect */ 92 92 #define ANOMALY_05000172 (__SILICON_REVISION__ < 3) ··· 96 96 #define ANOMALY_05000174 (__SILICON_REVISION__ < 5) 97 97 /* Overlapping Sequencer and Memory Stalls */ 98 98 #define ANOMALY_05000175 (__SILICON_REVISION__ < 5) 99 - /* Multiplication of (-1) by (-1) followed by an accumulator saturation */ 99 + /* Overflow Bit Asserted when Multiplication of -1 by -1 Followed by Accumulator Saturation */ 100 100 #define ANOMALY_05000176 (__SILICON_REVISION__ < 5) 101 101 /* PPI_COUNT Cannot Be Programmed to 0 in General Purpose TX or RX Modes */ 102 102 #define ANOMALY_05000179 (__SILICON_REVISION__ < 5) 103 103 /* PPI_DELAY Not Functional in PPI Modes with 0 Frame Syncs */ 104 104 #define ANOMALY_05000180 (1) 105 - /* Disabling the PPI resets the PPI configuration registers */ 105 + /* Disabling the PPI Resets the PPI Configuration Registers */ 106 106 #define ANOMALY_05000181 (__SILICON_REVISION__ < 5) 107 - /* IMDMA does not operate to full speed for 600MHz and higher devices */ 107 + /* Internal Memory DMA Does Not Operate at Full Speed */ 108 108 #define ANOMALY_05000182 (1) 109 - /* Timer Pin limitations for PPI TX Modes with External Frame Syncs */ 109 + /* Timer Pin Limitations for PPI TX Modes with External Frame Syncs */ 110 110 #define ANOMALY_05000184 (__SILICON_REVISION__ < 5) 111 - /* PPI TX Mode with 2 External Frame Syncs */ 111 + /* Early PPI Transmit when FS1 Asserts before FS2 in TX Mode with 2 External Frame Syncs */ 112 112 #define ANOMALY_05000185 (__SILICON_REVISION__ < 5) 113 - /* PPI packing with Data Length greater than 8 bits (not a meaningful mode) */ 113 + /* Upper PPI Pins Driven when PPI Packing Enabled and Data Length >8 Bits */ 114 114 #define ANOMALY_05000186 (__SILICON_REVISION__ < 5) 115 115 /* IMDMA Corrupted Data after a Halt */ 116 116 #define ANOMALY_05000187 (1) 117 117 /* IMDMA Restrictions on Descriptor and Buffer Placement in Memory */ 118 118 #define ANOMALY_05000188 (__SILICON_REVISION__ < 5) 119 - /* False Protection Exceptions */ 119 + /* False Protection Exceptions when Speculative Fetch Is Cancelled */ 120 120 #define ANOMALY_05000189 (__SILICON_REVISION__ < 5) 121 - /* PPI not functional at core voltage < 1Volt */ 121 + /* PPI Not Functional at Core Voltage < 1Volt */ 122 122 #define ANOMALY_05000190 (1) 123 123 /* PPI does not invert the Driving PPICLK edge in Transmit Modes */ 124 124 #define ANOMALY_05000191 (__SILICON_REVISION__ < 3) ··· 126 126 #define ANOMALY_05000193 (__SILICON_REVISION__ < 5) 127 127 /* Restarting SPORT in Specific Modes May Cause Data Corruption */ 128 128 #define ANOMALY_05000194 (__SILICON_REVISION__ < 5) 129 - /* Failing MMR Accesses When Stalled by Preceding Memory Read */ 129 + /* Failing MMR Accesses when Preceding Memory Read Stalls */ 130 130 #define ANOMALY_05000198 (__SILICON_REVISION__ < 5) 131 131 /* Current DMA Address Shows Wrong Value During Carry Fix */ 132 132 #define ANOMALY_05000199 (__SILICON_REVISION__ < 5) ··· 134 134 #define ANOMALY_05000200 (__SILICON_REVISION__ < 5) 135 135 /* Possible Infinite Stall with Specific Dual-DAG Situation */ 136 136 #define ANOMALY_05000202 (__SILICON_REVISION__ < 5) 137 - /* Incorrect data read with write-through cache and allocate cache lines on reads only mode */ 137 + /* Incorrect Data Read with Writethrough "Allocate Cache Lines on Reads Only" Cache Mode */ 138 138 #define ANOMALY_05000204 (__SILICON_REVISION__ < 5) 139 - /* Specific sequence that can cause DMA error or DMA stopping */ 139 + /* Specific Sequence that Can Cause DMA Error or DMA Stopping */ 140 140 #define ANOMALY_05000205 (__SILICON_REVISION__ < 5) 141 141 /* Recovery from "Brown-Out" Condition */ 142 142 #define ANOMALY_05000207 (__SILICON_REVISION__ < 5) ··· 158 158 #define ANOMALY_05000230 (__SILICON_REVISION__ < 5) 159 159 /* UART STB Bit Incorrectly Affects Receiver Setting */ 160 160 #define ANOMALY_05000231 (__SILICON_REVISION__ < 5) 161 - /* SPORT data transmit lines are incorrectly driven in multichannel mode */ 161 + /* SPORT Data Transmit Lines Are Incorrectly Driven in Multichannel Mode */ 162 162 #define ANOMALY_05000232 (__SILICON_REVISION__ < 5) 163 163 /* DF Bit in PLL_CTL Register Does Not Respond to Hardware Reset */ 164 164 #define ANOMALY_05000242 (__SILICON_REVISION__ < 5) ··· 166 166 #define ANOMALY_05000244 (__SILICON_REVISION__ < 5) 167 167 /* False Hardware Error from an Access in the Shadow of a Conditional Branch */ 168 168 #define ANOMALY_05000245 (__SILICON_REVISION__ < 5) 169 - /* TESTSET operation forces stall on the other core */ 169 + /* TESTSET Operation Forces Stall on the Other Core */ 170 170 #define ANOMALY_05000248 (__SILICON_REVISION__ < 5) 171 171 /* Incorrect Bit Shift of Data Word in Multichannel (TDM) Mode in Certain Conditions */ 172 172 #define ANOMALY_05000250 (__SILICON_REVISION__ > 2 && __SILICON_REVISION__ < 5) ··· 192 192 #define ANOMALY_05000264 (__SILICON_REVISION__ < 5) 193 193 /* Sensitivity To Noise with Slow Input Edge Rates on External SPORT TX and RX Clocks */ 194 194 #define ANOMALY_05000265 (__SILICON_REVISION__ < 5) 195 - /* IMDMA destination IRQ status must be read prior to using IMDMA */ 195 + /* IMDMA Destination IRQ Status Must Be Read Prior to Using IMDMA */ 196 196 #define ANOMALY_05000266 (__SILICON_REVISION__ > 3) 197 - /* IMDMA may corrupt data under certain conditions */ 197 + /* IMDMA May Corrupt Data under Certain Conditions */ 198 198 #define ANOMALY_05000267 (1) 199 199 /* High I/O Activity Causes Output Voltage of Internal Voltage Regulator (Vddint) to Increase */ 200 200 #define ANOMALY_05000269 (1) ··· 202 202 #define ANOMALY_05000270 (1) 203 203 /* Certain Data Cache Writethrough Modes Fail for Vddint <= 0.9V */ 204 204 #define ANOMALY_05000272 (1) 205 - /* Data cache write back to external synchronous memory may be lost */ 205 + /* Data Cache Write Back to External Synchronous Memory May Be Lost */ 206 206 #define ANOMALY_05000274 (1) 207 207 /* PPI Timing and Sampling Information Updates */ 208 208 #define ANOMALY_05000275 (__SILICON_REVISION__ > 2) ··· 212 212 #define ANOMALY_05000277 (__SILICON_REVISION__ < 3) 213 213 /* Disabling Peripherals with DMA Running May Cause DMA System Instability */ 214 214 #define ANOMALY_05000278 (__SILICON_REVISION__ < 5) 215 - /* False Hardware Error Exception When ISR Context Is Not Restored */ 215 + /* False Hardware Error Exception when ISR Context Is Not Restored */ 216 216 #define ANOMALY_05000281 (__SILICON_REVISION__ < 5) 217 - /* System MMR Write Is Stalled Indefinitely When Killed in a Particular Stage */ 217 + /* System MMR Write Is Stalled Indefinitely when Killed in a Particular Stage */ 218 218 #define ANOMALY_05000283 (1) 219 - /* A read will receive incorrect data under certain conditions */ 219 + /* Reads Will Receive Incorrect Data under Certain Conditions */ 220 220 #define ANOMALY_05000287 (__SILICON_REVISION__ < 5) 221 221 /* SPORTs May Receive Bad Data If FIFOs Fill Up */ 222 222 #define ANOMALY_05000288 (__SILICON_REVISION__ < 5) 223 223 /* Memory-To-Memory DMA Source/Destination Descriptors Must Be in Same Memory Space */ 224 224 #define ANOMALY_05000301 (1) 225 - /* SSYNCs After Writes To DMA MMR Registers May Not Be Handled Correctly */ 225 + /* SSYNCs after Writes to DMA MMR Registers May Not Be Handled Correctly */ 226 226 #define ANOMALY_05000302 (1) 227 227 /* SPORT_HYS Bit in PLL_CTL Register Is Not Functional */ 228 228 #define ANOMALY_05000305 (__SILICON_REVISION__ < 5) ··· 230 230 #define ANOMALY_05000307 (__SILICON_REVISION__ < 5) 231 231 /* False Hardware Errors Caused by Fetches at the Boundary of Reserved Memory */ 232 232 #define ANOMALY_05000310 (1) 233 - /* Errors When SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */ 233 + /* Errors when SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */ 234 234 #define ANOMALY_05000312 (1) 235 235 /* PPI Is Level-Sensitive on First Transfer In Single Frame Sync Modes */ 236 236 #define ANOMALY_05000313 (1) 237 - /* Killed System MMR Write Completes Erroneously On Next System MMR Access */ 237 + /* Killed System MMR Write Completes Erroneously on Next System MMR Access */ 238 238 #define ANOMALY_05000315 (1) 239 - /* PF2 Output Remains Asserted After SPI Master Boot */ 239 + /* PF2 Output Remains Asserted after SPI Master Boot */ 240 240 #define ANOMALY_05000320 (__SILICON_REVISION__ > 3) 241 - /* Erroneous GPIO Flag Pin Operations Under Specific Sequences */ 241 + /* Erroneous GPIO Flag Pin Operations under Specific Sequences */ 242 242 #define ANOMALY_05000323 (1) 243 - /* SPORT Secondary Receive Channel Not Functional When Word Length Exceeds 16 Bits */ 243 + /* SPORT Secondary Receive Channel Not Functional when Word Length >16 Bits */ 244 244 #define ANOMALY_05000326 (__SILICON_REVISION__ > 3) 245 - /* New Feature: 24-Bit SPI Boot Mode Support (Not Available On Older Silicon) */ 245 + /* 24-Bit SPI Boot Mode Is Not Functional */ 246 246 #define ANOMALY_05000331 (__SILICON_REVISION__ < 5) 247 - /* New Feature: Slave SPI Boot Mode Supported (Not Available On Older Silicon) */ 247 + /* Slave SPI Boot Mode Is Not Functional */ 248 248 #define ANOMALY_05000332 (__SILICON_REVISION__ < 5) 249 - /* Flag Data Register Writes One SCLK Cycle After Edge Is Detected May Clear Interrupt Status */ 249 + /* Flag Data Register Writes One SCLK Cycle after Edge Is Detected May Clear Interrupt Status */ 250 250 #define ANOMALY_05000333 (__SILICON_REVISION__ < 5) 251 - /* New Feature: Additional PPI Frame Sync Sampling Options (Not Available on Older Silicon) */ 251 + /* ALT_TIMING Bit in PLL_CTL Register Is Not Functional */ 252 252 #define ANOMALY_05000339 (__SILICON_REVISION__ < 5) 253 253 /* Memory DMA FIFO Causes Throughput Degradation on Writes to External Memory */ 254 254 #define ANOMALY_05000343 (__SILICON_REVISION__ < 5) ··· 276 276 #define ANOMALY_05000428 (__SILICON_REVISION__ > 3) 277 277 /* IFLUSH Instruction at End of Hardware Loop Causes Infinite Stall */ 278 278 #define ANOMALY_05000443 (1) 279 - /* False Hardware Error when RETI points to invalid memory */ 279 + /* False Hardware Error when RETI Points to Invalid Memory */ 280 280 #define ANOMALY_05000461 (1) 281 281 282 282 /* Anomalies that don't exist on this proc */ ··· 284 284 #define ANOMALY_05000158 (0) 285 285 #define ANOMALY_05000183 (0) 286 286 #define ANOMALY_05000233 (0) 287 + #define ANOMALY_05000234 (0) 287 288 #define ANOMALY_05000273 (0) 288 289 #define ANOMALY_05000311 (0) 289 290 #define ANOMALY_05000353 (1) ··· 299 298 #define ANOMALY_05000448 (0) 300 299 #define ANOMALY_05000456 (0) 301 300 #define ANOMALY_05000450 (0) 301 + #define ANOMALY_05000465 (0) 302 + #define ANOMALY_05000467 (0) 302 303 303 304 #endif
-1
arch/blackfin/mach-bf561/include/mach/blackfin.h
··· 34 34 #define BF561_FAMILY 35 35 36 36 #include "bf561.h" 37 - #include "mem_map.h" 38 37 #include "defBF561.h" 39 38 #include "anomaly.h" 40 39
+43 -15
arch/blackfin/mach-bf561/include/mach/mem_map.h
··· 1 1 /* 2 - * Memory MAP 3 - * Common header file for blackfin BF561 of processors. 2 + * BF561 memory map 3 + * 4 + * Copyright 2004-2009 Analog Devices Inc. 5 + * Licensed under the GPL-2 or later. 4 6 */ 5 7 6 - #ifndef _MEM_MAP_561_H_ 7 - #define _MEM_MAP_561_H_ 8 + #ifndef __BFIN_MACH_MEM_MAP_H__ 9 + #define __BFIN_MACH_MEM_MAP_H__ 8 10 9 - #define COREMMR_BASE 0xFFE00000 /* Core MMRs */ 10 - #define SYSMMR_BASE 0xFFC00000 /* System MMRs */ 11 + #ifndef __BFIN_MEM_MAP_H__ 12 + # error "do not include mach/mem_map.h directly -- use asm/mem_map.h" 13 + #endif 11 14 12 15 /* Async Memory Banks */ 13 16 #define ASYNC_BANK3_BASE 0x2C000000 /* Async Bank 3 */ ··· 85 82 #define COREA_L1_SCRATCH_START 0xFFB00000 86 83 #define COREB_L1_SCRATCH_START 0xFF700000 87 84 88 - #define L1_SCRATCH_START COREA_L1_SCRATCH_START 89 - #define L1_SCRATCH_LENGTH 0x1000 90 - 91 85 #ifdef __ASSEMBLY__ 92 86 93 87 /* ··· 155 155 dreg = ROT dreg BY -1; \ 156 156 dreg = CC; 157 157 158 - #else 159 - #define GET_PDA_SAFE(preg) \ 160 - preg.l = _cpu_pda; \ 161 - preg.h = _cpu_pda; 158 + static inline unsigned long get_l1_scratch_start_cpu(int cpu) 159 + { 160 + return cpu ? COREB_L1_SCRATCH_START : COREA_L1_SCRATCH_START; 161 + } 162 + static inline unsigned long get_l1_code_start_cpu(int cpu) 163 + { 164 + return cpu ? COREB_L1_CODE_START : COREA_L1_CODE_START; 165 + } 166 + static inline unsigned long get_l1_data_a_start_cpu(int cpu) 167 + { 168 + return cpu ? COREB_L1_DATA_A_START : COREA_L1_DATA_A_START; 169 + } 170 + static inline unsigned long get_l1_data_b_start_cpu(int cpu) 171 + { 172 + return cpu ? COREB_L1_DATA_B_START : COREA_L1_DATA_B_START; 173 + } 162 174 163 - #define GET_PDA(preg, dreg) GET_PDA_SAFE(preg) 175 + static inline unsigned long get_l1_scratch_start(void) 176 + { 177 + return get_l1_scratch_start_cpu(blackfin_core_id()); 178 + } 179 + static inline unsigned long get_l1_code_start(void) 180 + { 181 + return get_l1_code_start_cpu(blackfin_core_id()); 182 + } 183 + static inline unsigned long get_l1_data_a_start(void) 184 + { 185 + return get_l1_data_a_start_cpu(blackfin_core_id()); 186 + } 187 + static inline unsigned long get_l1_data_b_start(void) 188 + { 189 + return get_l1_data_b_start_cpu(blackfin_core_id()); 190 + } 191 + 164 192 #endif /* CONFIG_SMP */ 165 193 166 194 #endif /* __ASSEMBLY__ */ 167 195 168 - #endif /* _MEM_MAP_533_H_ */ 196 + #endif
+2 -2
arch/blackfin/mach-common/arch_checks.c
··· 74 74 75 75 /* if 220 exists, can not set External Memory WB and L2 not_cached, either External Memory not_cached and L2 WB */ 76 76 #if ANOMALY_05000220 && \ 77 - ((defined(CONFIG_BFIN_WB) && defined(CONFIG_BFIN_L2_NOT_CACHED)) || \ 78 - (!defined(CONFIG_BFIN_DCACHE) && defined(CONFIG_BFIN_L2_WB))) 77 + ((defined(CONFIG_BFIN_EXTMEM_WRITEBACK) && !defined(CONFIG_BFIN_L2_DCACHEABLE)) || \ 78 + (!defined(CONFIG_BFIN_EXTMEM_DCACHEABLE) && defined(CONFIG_BFIN_L2_WRITEBACK))) 79 79 # error You are exposing Anomaly 220 in this config, either config L2 as Write Through, or make External Memory WB. 80 80 #endif
+1 -1
arch/blackfin/mach-common/cpufreq.c
··· 141 141 sclk = get_sclk() / 1000; 142 142 143 143 #if ANOMALY_05000273 || ANOMALY_05000274 || \ 144 - (!defined(CONFIG_BF54x) && defined(CONFIG_BFIN_DCACHE)) 144 + (!defined(CONFIG_BF54x) && defined(CONFIG_BFIN_EXTMEM_DCACHEABLE)) 145 145 min_cclk = sclk * 2; 146 146 #else 147 147 min_cclk = sclk;
+1
arch/blackfin/mach-common/entry.S
··· 1609 1609 .long _sys_preadv 1610 1610 .long _sys_pwritev 1611 1611 .long _sys_rt_tgsigqueueinfo 1612 + .long _sys_perf_counter_open 1612 1613 1613 1614 .rept NR_syscalls-(.-_sys_call_table)/4 1614 1615 .long _sys_ni_syscall
+23 -26
arch/blackfin/mach-common/ints-priority.c
··· 1052 1052 set_irq_chained_handler(irq, bfin_demux_error_irq); 1053 1053 break; 1054 1054 #endif 1055 - #if defined(CONFIG_TICKSOURCE_GPTMR0) 1056 - case IRQ_TIMER0: 1057 - set_irq_handler(irq, handle_percpu_irq); 1058 - break; 1059 - #endif 1060 1055 #ifdef CONFIG_SMP 1061 1056 case IRQ_SUPPLE_0: 1062 1057 case IRQ_SUPPLE_1: 1063 1058 set_irq_handler(irq, handle_percpu_irq); 1064 1059 break; 1065 1060 #endif 1066 - default: 1067 1061 #ifdef CONFIG_IPIPE 1068 - /* 1069 - * We want internal interrupt sources to be 1070 - * masked, because ISRs may trigger interrupts 1071 - * recursively (e.g. DMA), but interrupts are 1072 - * _not_ masked at CPU level. So let's handle 1073 - * most of them as level interrupts, except 1074 - * the timer interrupt which is special. 1075 - */ 1076 - if (irq == IRQ_SYSTMR || irq == IRQ_CORETMR) 1077 - set_irq_handler(irq, handle_simple_irq); 1078 - else 1079 - set_irq_handler(irq, handle_level_irq); 1080 - #else /* !CONFIG_IPIPE */ 1062 + #ifndef CONFIG_TICKSOURCE_CORETMR 1063 + case IRQ_TIMER0: 1081 1064 set_irq_handler(irq, handle_simple_irq); 1082 - #endif /* !CONFIG_IPIPE */ 1083 1065 break; 1066 + #endif /* !CONFIG_TICKSOURCE_CORETMR */ 1067 + case IRQ_CORETMR: 1068 + set_irq_handler(irq, handle_simple_irq); 1069 + break; 1070 + default: 1071 + set_irq_handler(irq, handle_level_irq); 1072 + break; 1073 + #else /* !CONFIG_IPIPE */ 1074 + #ifdef CONFIG_TICKSOURCE_GPTMR0 1075 + case IRQ_TIMER0: 1076 + set_irq_handler(irq, handle_percpu_irq); 1077 + break; 1078 + #endif /* CONFIG_TICKSOURCE_GPTMR0 */ 1079 + default: 1080 + set_irq_handler(irq, handle_simple_irq); 1081 + break; 1082 + #endif /* !CONFIG_IPIPE */ 1084 1083 } 1085 1084 } 1086 1085 ··· 1223 1224 asmlinkage int __ipipe_grab_irq(int vec, struct pt_regs *regs) 1224 1225 { 1225 1226 struct ipipe_percpu_domain_data *p = ipipe_root_cpudom_ptr(); 1226 - struct ipipe_domain *this_domain = ipipe_current_domain; 1227 + struct ipipe_domain *this_domain = __ipipe_current_domain; 1227 1228 struct ivgx *ivg_stop = ivg7_13[vec-IVG7].istop; 1228 1229 struct ivgx *ivg = ivg7_13[vec-IVG7].ifirst; 1229 1230 int irq, s; 1230 1231 1231 - if (likely(vec == EVT_IVTMR_P)) { 1232 + if (likely(vec == EVT_IVTMR_P)) 1232 1233 irq = IRQ_CORETMR; 1233 - 1234 - } else { 1234 + else { 1235 1235 #if defined(SIC_ISR0) || defined(SICA_ISR0) 1236 1236 unsigned long sic_status[3]; 1237 1237 ··· 1260 1262 break; 1261 1263 } 1262 1264 #endif 1263 - 1264 1265 irq = ivg->irqno; 1265 1266 } 1266 1267 1267 1268 if (irq == IRQ_SYSTMR) { 1268 - #ifndef CONFIG_GENERIC_CLOCKEVENTS 1269 + #if !defined(CONFIG_GENERIC_CLOCKEVENTS) || defined(CONFIG_TICKSOURCE_GPTMR0) 1269 1270 bfin_write_TIMER_STATUS(1); /* Latch TIMIL0 */ 1270 1271 #endif 1271 1272 /* This is basically what we need from the register frame. */
+2 -2
arch/blackfin/mach-common/pm.c
··· 132 132 return 0; 133 133 } 134 134 135 - #ifdef CONFIG_BFIN_WB 135 + #if defined(CONFIG_BFIN_EXTMEM_WRITEBACK) || defined(CONFIG_BFIN_L2_WRITEBACK) 136 136 static void flushinv_all_dcache(void) 137 137 { 138 138 u32 way, bank, subbank, set; ··· 175 175 #ifdef CONFIG_BFIN_DCACHE 176 176 unsigned long ctrl; 177 177 178 - #ifdef CONFIG_BFIN_WB 178 + #if defined(CONFIG_BFIN_EXTMEM_WRITEBACK) || defined(CONFIG_BFIN_L2_WRITEBACK) 179 179 flushinv_all_dcache(); 180 180 #endif 181 181 SSYNC();
+1 -1
arch/blackfin/mm/init.c
··· 160 160 161 161 /* do not count in kernel image between _rambase and _ramstart */ 162 162 reservedpages -= (_ramstart - _rambase) >> PAGE_SHIFT; 163 - #if (defined(CONFIG_BFIN_ICACHE) && ANOMALY_05000263) 163 + #if (defined(CONFIG_BFIN_EXTMEM_ICACHEABLE) && ANOMALY_05000263) 164 164 reservedpages += (_ramend - memory_end - DMA_UNCACHED_REGION) >> PAGE_SHIFT; 165 165 #endif 166 166