| 604 | } |
| 605 | |
| 606 | uint32_t |
| 607 | cpu_extra_feat(void) |
| 608 | { |
| 609 | uint32_t dev, rev; |
| 610 | uint32_t ef = 0; |
| 611 | |
| 612 | soc_id(&dev, &rev); |
| 613 | |
| 614 | switch (dev) { |
| 615 | case MV_DEV_88F6281: |
| 616 | case MV_DEV_88F6282: |
| 617 | case MV_DEV_88RC8180: |
| 618 | case MV_DEV_MV78100_Z0: |
| 619 | case MV_DEV_MV78100: |
| 620 | __asm __volatile("mrc p15, 1, %0, c15, c1, 0" : "=r" (ef)); |
| 621 | break; |
| 622 | case MV_DEV_88F5182: |
| 623 | case MV_DEV_88F5281: |
| 624 | __asm __volatile("mrc p15, 0, %0, c14, c0, 0" : "=r" (ef)); |
| 625 | break; |
| 626 | default: |
| 627 | if (bootverbose) |
| 628 | printf("This ARM Core does not support any extra features\n"); |
| 629 | } |
| 630 | |
| 631 | return (ef); |
| 632 | } |
| 633 | |
| 634 | /* |
| 635 | * Get the power status of device. This feature is only supported on |