diff options
Diffstat (limited to 'arch/mips/include/asm/octeon/cvmx.h')
-rw-r--r-- | arch/mips/include/asm/octeon/cvmx.h | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/arch/mips/include/asm/octeon/cvmx.h b/arch/mips/include/asm/octeon/cvmx.h index f991e7701d3d..33db1c806b01 100644 --- a/arch/mips/include/asm/octeon/cvmx.h +++ b/arch/mips/include/asm/octeon/cvmx.h | |||
@@ -451,67 +451,4 @@ static inline uint32_t cvmx_octeon_num_cores(void) | |||
451 | return cvmx_pop(ciu_fuse); | 451 | return cvmx_pop(ciu_fuse); |
452 | } | 452 | } |
453 | 453 | ||
454 | /** | ||
455 | * Read a byte of fuse data | ||
456 | * @byte_addr: address to read | ||
457 | * | ||
458 | * Returns fuse value: 0 or 1 | ||
459 | */ | ||
460 | static uint8_t cvmx_fuse_read_byte(int byte_addr) | ||
461 | { | ||
462 | union cvmx_mio_fus_rcmd read_cmd; | ||
463 | |||
464 | read_cmd.u64 = 0; | ||
465 | read_cmd.s.addr = byte_addr; | ||
466 | read_cmd.s.pend = 1; | ||
467 | cvmx_write_csr(CVMX_MIO_FUS_RCMD, read_cmd.u64); | ||
468 | while ((read_cmd.u64 = cvmx_read_csr(CVMX_MIO_FUS_RCMD)) | ||
469 | && read_cmd.s.pend) | ||
470 | ; | ||
471 | return read_cmd.s.dat; | ||
472 | } | ||
473 | |||
474 | /** | ||
475 | * Read a single fuse bit | ||
476 | * | ||
477 | * @fuse: Fuse number (0-1024) | ||
478 | * | ||
479 | * Returns fuse value: 0 or 1 | ||
480 | */ | ||
481 | static inline int cvmx_fuse_read(int fuse) | ||
482 | { | ||
483 | return (cvmx_fuse_read_byte(fuse >> 3) >> (fuse & 0x7)) & 1; | ||
484 | } | ||
485 | |||
486 | static inline int cvmx_octeon_model_CN36XX(void) | ||
487 | { | ||
488 | return OCTEON_IS_MODEL(OCTEON_CN38XX) | ||
489 | && !cvmx_octeon_is_pass1() | ||
490 | && cvmx_fuse_read(264); | ||
491 | } | ||
492 | |||
493 | static inline int cvmx_octeon_zip_present(void) | ||
494 | { | ||
495 | return octeon_has_feature(OCTEON_FEATURE_ZIP); | ||
496 | } | ||
497 | |||
498 | static inline int cvmx_octeon_dfa_present(void) | ||
499 | { | ||
500 | if (!OCTEON_IS_MODEL(OCTEON_CN38XX) | ||
501 | && !OCTEON_IS_MODEL(OCTEON_CN31XX) | ||
502 | && !OCTEON_IS_MODEL(OCTEON_CN58XX)) | ||
503 | return 0; | ||
504 | else if (OCTEON_IS_MODEL(OCTEON_CN3020)) | ||
505 | return 0; | ||
506 | else if (cvmx_octeon_is_pass1()) | ||
507 | return 1; | ||
508 | else | ||
509 | return !cvmx_fuse_read(120); | ||
510 | } | ||
511 | |||
512 | static inline int cvmx_octeon_crypto_present(void) | ||
513 | { | ||
514 | return octeon_has_feature(OCTEON_FEATURE_CRYPTO); | ||
515 | } | ||
516 | |||
517 | #endif /* __CVMX_H__ */ | 454 | #endif /* __CVMX_H__ */ |