|
1 | 1 | /* |
2 | | - * Copyright (c) 2022, ARM Limited. All rights reserved. |
| 2 | + * Copyright (c) 2023, Arm Limited. All rights reserved. |
3 | 3 | * |
4 | 4 | * SPDX-License-Identifier: BSD-3-Clause |
5 | 5 | */ |
@@ -361,6 +361,45 @@ func check_errata_2666669 |
361 | 361 | b cpu_rev_var_ls |
362 | 362 | endfunc check_errata_2666669 |
363 | 363 |
|
| 364 | +/* ------------------------------------------------------ |
| 365 | + * Errata Workaround for Cortex-A510 Erratum 2684597. |
| 366 | + * This erratum applies to revision r0p0, r0p1, r0p2, |
| 367 | + * r0p3, r1p0, r1p1 and r1p2 of the Cortex-A510 cpu and |
| 368 | + * is fixed in r1p3. |
| 369 | + * Shall clobber: x0-x17 |
| 370 | + * ------------------------------------------------------ |
| 371 | + */ |
| 372 | + .globl errata_cortex_a510_2684597_wa |
| 373 | +func errata_cortex_a510_2684597_wa |
| 374 | + mov x17, x30 |
| 375 | + /* Ensure this errata is only applied to Cortex-A510 cores */ |
| 376 | + jump_if_cpu_midr CORTEX_A510_MIDR, 1f |
| 377 | + b 2f |
| 378 | + |
| 379 | +1: |
| 380 | + /* Check workaround compatibility. */ |
| 381 | + mov x0, x18 |
| 382 | + bl check_errata_2684597 |
| 383 | + cbz x0, 2f |
| 384 | + |
| 385 | + tsb csync |
| 386 | +2: |
| 387 | + ret x17 |
| 388 | +endfunc errata_cortex_a510_2684597_wa |
| 389 | +/* ------------------------------------------------------ |
| 390 | + * Errata Workaround for Cortex-A510 Erratum 2684597. |
| 391 | + * This erratum applies to revision r0p0, r0p1, r0p2, |
| 392 | + * r0p3, r1p0, r1p1 and r1p2 of the Cortex-A510 cpu and |
| 393 | + * is fixed in r1p3. |
| 394 | + * Shall clobber: x0-x17 |
| 395 | + * ------------------------------------------------------ |
| 396 | + */ |
| 397 | +func check_errata_2684597 |
| 398 | + /* Applies to revision < r1p3 */ |
| 399 | + mov x1, #0x12 |
| 400 | + b cpu_rev_var_ls |
| 401 | +endfunc check_errata_2684597 |
| 402 | + |
364 | 403 | /* ---------------------------------------------------- |
365 | 404 | * HW will do the cache maintenance while powering down |
366 | 405 | * ---------------------------------------------------- |
@@ -401,6 +440,7 @@ func cortex_a510_errata_report |
401 | 440 | report_errata ERRATA_A510_2347730, cortex_a510, 2347730 |
402 | 441 | report_errata ERRATA_A510_2371937, cortex_a510, 2371937 |
403 | 442 | report_errata ERRATA_A510_2666669, cortex_a510, 2666669 |
| 443 | + report_errata ERRATA_A510_2684597, cortex_a510, 2684597 |
404 | 444 | report_errata ERRATA_DSU_2313941, cortex_a510, dsu_2313941 |
405 | 445 |
|
406 | 446 | ldp x8, x30, [sp], #16 |
|
0 commit comments