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

powerpc/boot: Remove all 40x platforms from boot

Remove 40x platforms from the boot directory.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240628121201.130802-2-mpe@ellerman.id.au

authored by

Christophe Leroy and committed by
Michael Ellerman
839ff58e 47d13a26

+1 -2875
-266
arch/powerpc/boot/4xx.c
··· 253 253 dt_fixup_memory(0, memsize); 254 254 } 255 255 256 - #define SPRN_DBCR0_40X 0x3F2 257 256 #define SPRN_DBCR0_44X 0x134 258 257 #define DBCR0_RST_SYSTEM 0x30000000 259 258 ··· 267 268 : "=&r"(tmp) : "i"(SPRN_DBCR0_44X), "i"(DBCR0_RST_SYSTEM) 268 269 ); 269 270 270 - } 271 - 272 - void ibm40x_dbcr_reset(void) 273 - { 274 - unsigned long tmp; 275 - 276 - asm volatile ( 277 - "mfspr %0,%1\n" 278 - "oris %0,%0,%2@h\n" 279 - "mtspr %1,%0" 280 - : "=&r"(tmp) : "i"(SPRN_DBCR0_40X), "i"(DBCR0_RST_SYSTEM) 281 - ); 282 271 } 283 272 284 273 #define EMAC_RESET 0x20000000 ··· 530 543 eplike_fixup_uart_clk(0, "/plb/opb/serial@f0000200", ser_clk, plb_clk); 531 544 eplike_fixup_uart_clk(1, "/plb/opb/serial@f0000300", ser_clk, plb_clk); 532 545 eplike_fixup_uart_clk(2, "/plb/opb/serial@f0000600", ser_clk, plb_clk); 533 - } 534 - 535 - void ibm405gp_fixup_clocks(unsigned int sys_clk, unsigned int ser_clk) 536 - { 537 - u32 pllmr = mfdcr(DCRN_CPC0_PLLMR); 538 - u32 cpc0_cr0 = mfdcr(DCRN_405_CPC0_CR0); 539 - u32 cpc0_cr1 = mfdcr(DCRN_405_CPC0_CR1); 540 - u32 psr = mfdcr(DCRN_405_CPC0_PSR); 541 - u32 cpu, plb, opb, ebc, tb, uart0, uart1, m; 542 - u32 fwdv, fwdvb, fbdv, cbdv, opdv, epdv, ppdv, udiv; 543 - 544 - fwdv = (8 - ((pllmr & 0xe0000000) >> 29)); 545 - fbdv = (pllmr & 0x1e000000) >> 25; 546 - if (fbdv == 0) 547 - fbdv = 16; 548 - cbdv = ((pllmr & 0x00060000) >> 17) + 1; /* CPU:PLB */ 549 - opdv = ((pllmr & 0x00018000) >> 15) + 1; /* PLB:OPB */ 550 - ppdv = ((pllmr & 0x00006000) >> 13) + 1; /* PLB:PCI */ 551 - epdv = ((pllmr & 0x00001800) >> 11) + 2; /* PLB:EBC */ 552 - udiv = ((cpc0_cr0 & 0x3e) >> 1) + 1; 553 - 554 - /* check for 405GPr */ 555 - if ((mfpvr() & 0xfffffff0) == (0x50910951 & 0xfffffff0)) { 556 - fwdvb = 8 - (pllmr & 0x00000007); 557 - if (!(psr & 0x00001000)) /* PCI async mode enable == 0 */ 558 - if (psr & 0x00000020) /* New mode enable */ 559 - m = fwdvb * 2 * ppdv; 560 - else 561 - m = fwdvb * cbdv * ppdv; 562 - else if (psr & 0x00000020) /* New mode enable */ 563 - if (psr & 0x00000800) /* PerClk synch mode */ 564 - m = fwdvb * 2 * epdv; 565 - else 566 - m = fbdv * fwdv; 567 - else if (epdv == fbdv) 568 - m = fbdv * cbdv * epdv; 569 - else 570 - m = fbdv * fwdvb * cbdv; 571 - 572 - cpu = sys_clk * m / fwdv; 573 - plb = sys_clk * m / (fwdvb * cbdv); 574 - } else { 575 - m = fwdv * fbdv * cbdv; 576 - cpu = sys_clk * m / fwdv; 577 - plb = cpu / cbdv; 578 - } 579 - opb = plb / opdv; 580 - ebc = plb / epdv; 581 - 582 - if (cpc0_cr0 & 0x80) 583 - /* uart0 uses the external clock */ 584 - uart0 = ser_clk; 585 - else 586 - uart0 = cpu / udiv; 587 - 588 - if (cpc0_cr0 & 0x40) 589 - /* uart1 uses the external clock */ 590 - uart1 = ser_clk; 591 - else 592 - uart1 = cpu / udiv; 593 - 594 - /* setup the timebase clock to tick at the cpu frequency */ 595 - cpc0_cr1 = cpc0_cr1 & ~0x00800000; 596 - mtdcr(DCRN_405_CPC0_CR1, cpc0_cr1); 597 - tb = cpu; 598 - 599 - dt_fixup_cpu_clocks(cpu, tb, 0); 600 - dt_fixup_clock("/plb", plb); 601 - dt_fixup_clock("/plb/opb", opb); 602 - dt_fixup_clock("/plb/ebc", ebc); 603 - dt_fixup_clock("/plb/opb/serial@ef600300", uart0); 604 - dt_fixup_clock("/plb/opb/serial@ef600400", uart1); 605 - } 606 - 607 - 608 - void ibm405ep_fixup_clocks(unsigned int sys_clk) 609 - { 610 - u32 pllmr0 = mfdcr(DCRN_CPC0_PLLMR0); 611 - u32 pllmr1 = mfdcr(DCRN_CPC0_PLLMR1); 612 - u32 cpc0_ucr = mfdcr(DCRN_CPC0_UCR); 613 - u32 cpu, plb, opb, ebc, uart0, uart1; 614 - u32 fwdva, fwdvb, fbdv, cbdv, opdv, epdv; 615 - u32 pllmr0_ccdv, tb, m; 616 - 617 - fwdva = 8 - ((pllmr1 & 0x00070000) >> 16); 618 - fwdvb = 8 - ((pllmr1 & 0x00007000) >> 12); 619 - fbdv = (pllmr1 & 0x00f00000) >> 20; 620 - if (fbdv == 0) 621 - fbdv = 16; 622 - 623 - cbdv = ((pllmr0 & 0x00030000) >> 16) + 1; /* CPU:PLB */ 624 - epdv = ((pllmr0 & 0x00000300) >> 8) + 2; /* PLB:EBC */ 625 - opdv = ((pllmr0 & 0x00003000) >> 12) + 1; /* PLB:OPB */ 626 - 627 - m = fbdv * fwdvb; 628 - 629 - pllmr0_ccdv = ((pllmr0 & 0x00300000) >> 20) + 1; 630 - if (pllmr1 & 0x80000000) 631 - cpu = sys_clk * m / (fwdva * pllmr0_ccdv); 632 - else 633 - cpu = sys_clk / pllmr0_ccdv; 634 - 635 - plb = cpu / cbdv; 636 - opb = plb / opdv; 637 - ebc = plb / epdv; 638 - tb = cpu; 639 - uart0 = cpu / (cpc0_ucr & 0x0000007f); 640 - uart1 = cpu / ((cpc0_ucr & 0x00007f00) >> 8); 641 - 642 - dt_fixup_cpu_clocks(cpu, tb, 0); 643 - dt_fixup_clock("/plb", plb); 644 - dt_fixup_clock("/plb/opb", opb); 645 - dt_fixup_clock("/plb/ebc", ebc); 646 - dt_fixup_clock("/plb/opb/serial@ef600300", uart0); 647 - dt_fixup_clock("/plb/opb/serial@ef600400", uart1); 648 - } 649 - 650 - static u8 ibm405ex_fwdv_multi_bits[] = { 651 - /* values for: 1 - 16 */ 652 - 0x01, 0x02, 0x0e, 0x09, 0x04, 0x0b, 0x10, 0x0d, 0x0c, 0x05, 653 - 0x06, 0x0f, 0x0a, 0x07, 0x08, 0x03 654 - }; 655 - 656 - u32 ibm405ex_get_fwdva(unsigned long cpr_fwdv) 657 - { 658 - u32 index; 659 - 660 - for (index = 0; index < ARRAY_SIZE(ibm405ex_fwdv_multi_bits); index++) 661 - if (cpr_fwdv == (u32)ibm405ex_fwdv_multi_bits[index]) 662 - return index + 1; 663 - 664 - return 0; 665 - } 666 - 667 - static u8 ibm405ex_fbdv_multi_bits[] = { 668 - /* values for: 1 - 100 */ 669 - 0x00, 0xff, 0x7e, 0xfd, 0x7a, 0xf5, 0x6a, 0xd5, 0x2a, 0xd4, 670 - 0x29, 0xd3, 0x26, 0xcc, 0x19, 0xb3, 0x67, 0xce, 0x1d, 0xbb, 671 - 0x77, 0xee, 0x5d, 0xba, 0x74, 0xe9, 0x52, 0xa5, 0x4b, 0x96, 672 - 0x2c, 0xd8, 0x31, 0xe3, 0x46, 0x8d, 0x1b, 0xb7, 0x6f, 0xde, 673 - 0x3d, 0xfb, 0x76, 0xed, 0x5a, 0xb5, 0x6b, 0xd6, 0x2d, 0xdb, 674 - 0x36, 0xec, 0x59, 0xb2, 0x64, 0xc9, 0x12, 0xa4, 0x48, 0x91, 675 - 0x23, 0xc7, 0x0e, 0x9c, 0x38, 0xf0, 0x61, 0xc2, 0x05, 0x8b, 676 - 0x17, 0xaf, 0x5f, 0xbe, 0x7c, 0xf9, 0x72, 0xe5, 0x4a, 0x95, 677 - 0x2b, 0xd7, 0x2e, 0xdc, 0x39, 0xf3, 0x66, 0xcd, 0x1a, 0xb4, 678 - 0x68, 0xd1, 0x22, 0xc4, 0x09, 0x93, 0x27, 0xcf, 0x1e, 0xbc, 679 - /* values for: 101 - 200 */ 680 - 0x78, 0xf1, 0x62, 0xc5, 0x0a, 0x94, 0x28, 0xd0, 0x21, 0xc3, 681 - 0x06, 0x8c, 0x18, 0xb0, 0x60, 0xc1, 0x02, 0x84, 0x08, 0x90, 682 - 0x20, 0xc0, 0x01, 0x83, 0x07, 0x8f, 0x1f, 0xbf, 0x7f, 0xfe, 683 - 0x7d, 0xfa, 0x75, 0xea, 0x55, 0xaa, 0x54, 0xa9, 0x53, 0xa6, 684 - 0x4c, 0x99, 0x33, 0xe7, 0x4e, 0x9d, 0x3b, 0xf7, 0x6e, 0xdd, 685 - 0x3a, 0xf4, 0x69, 0xd2, 0x25, 0xcb, 0x16, 0xac, 0x58, 0xb1, 686 - 0x63, 0xc6, 0x0d, 0x9b, 0x37, 0xef, 0x5e, 0xbd, 0x7b, 0xf6, 687 - 0x6d, 0xda, 0x35, 0xeb, 0x56, 0xad, 0x5b, 0xb6, 0x6c, 0xd9, 688 - 0x32, 0xe4, 0x49, 0x92, 0x24, 0xc8, 0x11, 0xa3, 0x47, 0x8e, 689 - 0x1c, 0xb8, 0x70, 0xe1, 0x42, 0x85, 0x0b, 0x97, 0x2f, 0xdf, 690 - /* values for: 201 - 255 */ 691 - 0x3e, 0xfc, 0x79, 0xf2, 0x65, 0xca, 0x15, 0xab, 0x57, 0xae, 692 - 0x5c, 0xb9, 0x73, 0xe6, 0x4d, 0x9a, 0x34, 0xe8, 0x51, 0xa2, 693 - 0x44, 0x89, 0x13, 0xa7, 0x4f, 0x9e, 0x3c, 0xf8, 0x71, 0xe2, 694 - 0x45, 0x8a, 0x14, 0xa8, 0x50, 0xa1, 0x43, 0x86, 0x0c, 0x98, 695 - 0x30, 0xe0, 0x41, 0x82, 0x04, 0x88, 0x10, 0xa0, 0x40, 0x81, 696 - 0x03, 0x87, 0x0f, 0x9f, 0x3f /* END */ 697 - }; 698 - 699 - u32 ibm405ex_get_fbdv(unsigned long cpr_fbdv) 700 - { 701 - u32 index; 702 - 703 - for (index = 0; index < ARRAY_SIZE(ibm405ex_fbdv_multi_bits); index++) 704 - if (cpr_fbdv == (u32)ibm405ex_fbdv_multi_bits[index]) 705 - return index + 1; 706 - 707 - return 0; 708 - } 709 - 710 - void ibm405ex_fixup_clocks(unsigned int sys_clk, unsigned int uart_clk) 711 - { 712 - /* PLL config */ 713 - u32 pllc = CPR0_READ(DCRN_CPR0_PLLC); 714 - u32 plld = CPR0_READ(DCRN_CPR0_PLLD); 715 - u32 cpud = CPR0_READ(DCRN_CPR0_PRIMAD); 716 - u32 plbd = CPR0_READ(DCRN_CPR0_PRIMBD); 717 - u32 opbd = CPR0_READ(DCRN_CPR0_OPBD); 718 - u32 perd = CPR0_READ(DCRN_CPR0_PERD); 719 - 720 - /* Dividers */ 721 - u32 fbdv = ibm405ex_get_fbdv(__fix_zero((plld >> 24) & 0xff, 1)); 722 - 723 - u32 fwdva = ibm405ex_get_fwdva(__fix_zero((plld >> 16) & 0x0f, 1)); 724 - 725 - u32 cpudv0 = __fix_zero((cpud >> 24) & 7, 8); 726 - 727 - /* PLBDV0 is hardwared to 010. */ 728 - u32 plbdv0 = 2; 729 - u32 plb2xdv0 = __fix_zero((plbd >> 16) & 7, 8); 730 - 731 - u32 opbdv0 = __fix_zero((opbd >> 24) & 3, 4); 732 - 733 - u32 perdv0 = __fix_zero((perd >> 24) & 3, 4); 734 - 735 - /* Resulting clocks */ 736 - u32 cpu, plb, opb, ebc, vco, tb, uart0, uart1; 737 - 738 - /* PLL's VCO is the source for primary forward ? */ 739 - if (pllc & 0x40000000) { 740 - u32 m; 741 - 742 - /* Feedback path */ 743 - switch ((pllc >> 24) & 7) { 744 - case 0: 745 - /* PLLOUTx */ 746 - m = fbdv; 747 - break; 748 - case 1: 749 - /* CPU */ 750 - m = fbdv * fwdva * cpudv0; 751 - break; 752 - case 5: 753 - /* PERClk */ 754 - m = fbdv * fwdva * plb2xdv0 * plbdv0 * opbdv0 * perdv0; 755 - break; 756 - default: 757 - printf("WARNING ! Invalid PLL feedback source !\n"); 758 - goto bypass; 759 - } 760 - 761 - vco = (unsigned int)(sys_clk * m); 762 - } else { 763 - bypass: 764 - /* Bypass system PLL */ 765 - vco = 0; 766 - } 767 - 768 - /* CPU = VCO / ( FWDVA x CPUDV0) */ 769 - cpu = vco / (fwdva * cpudv0); 770 - /* PLB = VCO / ( FWDVA x PLB2XDV0 x PLBDV0) */ 771 - plb = vco / (fwdva * plb2xdv0 * plbdv0); 772 - /* OPB = PLB / OPBDV0 */ 773 - opb = plb / opbdv0; 774 - /* EBC = OPB / PERDV0 */ 775 - ebc = opb / perdv0; 776 - 777 - tb = cpu; 778 - uart0 = uart1 = uart_clk; 779 - 780 - dt_fixup_cpu_clocks(cpu, tb, 0); 781 - dt_fixup_clock("/plb", plb); 782 - dt_fixup_clock("/plb/opb", opb); 783 - dt_fixup_clock("/plb/opb/ebc", ebc); 784 - dt_fixup_clock("/plb/opb/serial@ef600200", uart0); 785 - dt_fixup_clock("/plb/opb/serial@ef600300", uart1); 786 546 }
-4
arch/powerpc/boot/4xx.h
··· 12 12 void ibm440spe_fixup_memsize(void); 13 13 void ibm4xx_denali_fixup_memsize(void); 14 14 void ibm44x_dbcr_reset(void); 15 - void ibm40x_dbcr_reset(void); 16 15 void ibm4xx_quiesce_eth(u32 *emac0, u32 *emac1); 17 16 void ibm4xx_fixup_ebc_ranges(const char *ebc); 18 17 19 - void ibm405gp_fixup_clocks(unsigned int sys_clk, unsigned int ser_clk); 20 - void ibm405ep_fixup_clocks(unsigned int sys_clk); 21 - void ibm405ex_fixup_clocks(unsigned int sys_clk, unsigned int uart_clk); 22 18 void ibm440gp_fixup_clocks(unsigned int sys_clk, unsigned int ser_clk); 23 19 void ibm440ep_fixup_clocks(unsigned int sys_clk, unsigned int ser_clk, 24 20 unsigned int tmr_clk);
-11
arch/powerpc/boot/Makefile
··· 54 54 55 55 $(obj)/4xx.o: BOOTTARGETFLAGS += -mcpu=405 56 56 $(obj)/ebony.o: BOOTTARGETFLAGS += -mcpu=440 57 - $(obj)/cuboot-hotfoot.o: BOOTTARGETFLAGS += -mcpu=405 58 57 $(obj)/cuboot-taishan.o: BOOTTARGETFLAGS += -mcpu=440 59 58 $(obj)/cuboot-katmai.o: BOOTTARGETFLAGS += -mcpu=440 60 - $(obj)/cuboot-acadia.o: BOOTTARGETFLAGS += -mcpu=405 61 59 $(obj)/treeboot-iss4xx.o: BOOTTARGETFLAGS += -mcpu=405 62 60 $(obj)/treeboot-currituck.o: BOOTTARGETFLAGS += -mcpu=405 63 61 $(obj)/treeboot-akebono.o: BOOTTARGETFLAGS += -mcpu=405 ··· 144 146 ifndef CONFIG_PPC64_BOOT_WRAPPER 145 147 src-wlib-y += crtsavres.S 146 148 endif 147 - src-wlib-$(CONFIG_40x) += 4xx.c planetcore.c 148 149 src-wlib-$(CONFIG_44x) += 4xx.c ebony.c bamboo.c 149 150 src-wlib-$(CONFIG_PPC_8xx) += mpc8xx.c planetcore.c fsl-soc.c 150 151 src-wlib-$(CONFIG_PPC_82xx) += pq2.c fsl-soc.c planetcore.c ··· 151 154 src-wlib-$(CONFIG_CPM) += cpm-serial.c 152 155 153 156 src-plat-y := of.c epapr.c 154 - src-plat-$(CONFIG_40x) += fixed-head.S cuboot-hotfoot.c \ 155 - cuboot-acadia.c \ 156 - cuboot-kilauea.c simpleboot.c 157 157 src-plat-$(CONFIG_44x) += treeboot-ebony.c cuboot-ebony.c treeboot-bamboo.c \ 158 158 cuboot-bamboo.c cuboot-sam440ep.c \ 159 159 cuboot-sequoia.c cuboot-rainier.c \ ··· 293 299 # They are only required on boards which do not have FDT support in firmware. 294 300 # Boards with newish u-boot firmware can use the uImage target above 295 301 # 296 - 297 - # Board ports in arch/powerpc/platform/40x/Kconfig 298 - image-$(CONFIG_HOTFOOT) += cuImage.hotfoot 299 - image-$(CONFIG_ACADIA) += cuImage.acadia 300 - image-$(CONFIG_OBS600) += uImage.obs600 301 302 302 303 # Board ports in arch/powerpc/platform/44x/Kconfig 303 304 image-$(CONFIG_EBONY) += treeImage.ebony cuImage.ebony
-171
arch/powerpc/boot/cuboot-acadia.c
··· 1 - // SPDX-License-Identifier: GPL-2.0-only 2 - /* 3 - * Old U-boot compatibility for Acadia 4 - * 5 - * Author: Josh Boyer <jwboyer@linux.vnet.ibm.com> 6 - * 7 - * Copyright 2008 IBM Corporation 8 - */ 9 - 10 - #include "ops.h" 11 - #include "io.h" 12 - #include "dcr.h" 13 - #include "stdio.h" 14 - #include "4xx.h" 15 - #include "44x.h" 16 - #include "cuboot.h" 17 - 18 - #define TARGET_4xx 19 - #include "ppcboot.h" 20 - 21 - static bd_t bd; 22 - 23 - #define CPR_PERD0_SPIDV_MASK 0x000F0000 /* SPI Clock Divider */ 24 - 25 - #define PLLC_SRC_MASK 0x20000000 /* PLL feedback source */ 26 - 27 - #define PLLD_FBDV_MASK 0x1F000000 /* PLL feedback divider value */ 28 - #define PLLD_FWDVA_MASK 0x000F0000 /* PLL forward divider A value */ 29 - #define PLLD_FWDVB_MASK 0x00000700 /* PLL forward divider B value */ 30 - 31 - #define PRIMAD_CPUDV_MASK 0x0F000000 /* CPU Clock Divisor Mask */ 32 - #define PRIMAD_PLBDV_MASK 0x000F0000 /* PLB Clock Divisor Mask */ 33 - #define PRIMAD_OPBDV_MASK 0x00000F00 /* OPB Clock Divisor Mask */ 34 - #define PRIMAD_EBCDV_MASK 0x0000000F /* EBC Clock Divisor Mask */ 35 - 36 - #define PERD0_PWMDV_MASK 0xFF000000 /* PWM Divider Mask */ 37 - #define PERD0_SPIDV_MASK 0x000F0000 /* SPI Divider Mask */ 38 - #define PERD0_U0DV_MASK 0x0000FF00 /* UART 0 Divider Mask */ 39 - #define PERD0_U1DV_MASK 0x000000FF /* UART 1 Divider Mask */ 40 - 41 - static void get_clocks(void) 42 - { 43 - unsigned long sysclk, cpr_plld, cpr_pllc, cpr_primad, plloutb, i; 44 - unsigned long pllFwdDiv, pllFwdDivB, pllFbkDiv, pllPlbDiv, pllExtBusDiv; 45 - unsigned long pllOpbDiv, freqEBC, freqUART, freqOPB; 46 - unsigned long div; /* total divisor udiv * bdiv */ 47 - unsigned long umin; /* minimum udiv */ 48 - unsigned short diff; /* smallest diff */ 49 - unsigned long udiv; /* best udiv */ 50 - unsigned short idiff; /* current diff */ 51 - unsigned short ibdiv; /* current bdiv */ 52 - unsigned long est; /* current estimate */ 53 - unsigned long baud; 54 - void *np; 55 - 56 - /* read the sysclk value from the CPLD */ 57 - sysclk = (in_8((unsigned char *)0x80000000) == 0xc) ? 66666666 : 33333000; 58 - 59 - /* 60 - * Read PLL Mode registers 61 - */ 62 - cpr_plld = CPR0_READ(DCRN_CPR0_PLLD); 63 - cpr_pllc = CPR0_READ(DCRN_CPR0_PLLC); 64 - 65 - /* 66 - * Determine forward divider A 67 - */ 68 - pllFwdDiv = ((cpr_plld & PLLD_FWDVA_MASK) >> 16); 69 - 70 - /* 71 - * Determine forward divider B 72 - */ 73 - pllFwdDivB = ((cpr_plld & PLLD_FWDVB_MASK) >> 8); 74 - if (pllFwdDivB == 0) 75 - pllFwdDivB = 8; 76 - 77 - /* 78 - * Determine FBK_DIV. 79 - */ 80 - pllFbkDiv = ((cpr_plld & PLLD_FBDV_MASK) >> 24); 81 - if (pllFbkDiv == 0) 82 - pllFbkDiv = 256; 83 - 84 - /* 85 - * Read CPR_PRIMAD register 86 - */ 87 - cpr_primad = CPR0_READ(DCRN_CPR0_PRIMAD); 88 - 89 - /* 90 - * Determine PLB_DIV. 91 - */ 92 - pllPlbDiv = ((cpr_primad & PRIMAD_PLBDV_MASK) >> 16); 93 - if (pllPlbDiv == 0) 94 - pllPlbDiv = 16; 95 - 96 - /* 97 - * Determine EXTBUS_DIV. 98 - */ 99 - pllExtBusDiv = (cpr_primad & PRIMAD_EBCDV_MASK); 100 - if (pllExtBusDiv == 0) 101 - pllExtBusDiv = 16; 102 - 103 - /* 104 - * Determine OPB_DIV. 105 - */ 106 - pllOpbDiv = ((cpr_primad & PRIMAD_OPBDV_MASK) >> 8); 107 - if (pllOpbDiv == 0) 108 - pllOpbDiv = 16; 109 - 110 - /* There is a bug in U-Boot that prevents us from using 111 - * bd.bi_opbfreq because U-Boot doesn't populate it for 112 - * 405EZ. We get to calculate it, yay! 113 - */ 114 - freqOPB = (sysclk *pllFbkDiv) /pllOpbDiv; 115 - 116 - freqEBC = (sysclk * pllFbkDiv) / pllExtBusDiv; 117 - 118 - plloutb = ((sysclk * ((cpr_pllc & PLLC_SRC_MASK) ? 119 - pllFwdDivB : pllFwdDiv) * 120 - pllFbkDiv) / pllFwdDivB); 121 - 122 - np = find_node_by_alias("serial0"); 123 - if (getprop(np, "current-speed", &baud, sizeof(baud)) != sizeof(baud)) 124 - fatal("no current-speed property\n\r"); 125 - 126 - udiv = 256; /* Assume lowest possible serial clk */ 127 - div = plloutb / (16 * baud); /* total divisor */ 128 - umin = (plloutb / freqOPB) << 1; /* 2 x OPB divisor */ 129 - diff = 256; /* highest possible */ 130 - 131 - /* i is the test udiv value -- start with the largest 132 - * possible (256) to minimize serial clock and constrain 133 - * search to umin. 134 - */ 135 - for (i = 256; i > umin; i--) { 136 - ibdiv = div / i; 137 - est = i * ibdiv; 138 - idiff = (est > div) ? (est-div) : (div-est); 139 - if (idiff == 0) { 140 - udiv = i; 141 - break; /* can't do better */ 142 - } else if (idiff < diff) { 143 - udiv = i; /* best so far */ 144 - diff = idiff; /* update lowest diff*/ 145 - } 146 - } 147 - freqUART = plloutb / udiv; 148 - 149 - dt_fixup_cpu_clocks(bd.bi_procfreq, bd.bi_intfreq, bd.bi_plb_busfreq); 150 - dt_fixup_clock("/plb/ebc", freqEBC); 151 - dt_fixup_clock("/plb/opb", freqOPB); 152 - dt_fixup_clock("/plb/opb/serial@ef600300", freqUART); 153 - dt_fixup_clock("/plb/opb/serial@ef600400", freqUART); 154 - } 155 - 156 - static void acadia_fixups(void) 157 - { 158 - dt_fixup_memory(bd.bi_memstart, bd.bi_memsize); 159 - get_clocks(); 160 - dt_fixup_mac_address_by_alias("ethernet0", bd.bi_enetaddr); 161 - } 162 - 163 - void platform_init(unsigned long r3, unsigned long r4, unsigned long r5, 164 - unsigned long r6, unsigned long r7) 165 - { 166 - CUBOOT_INIT(); 167 - platform_ops.fixups = acadia_fixups; 168 - platform_ops.exit = ibm40x_dbcr_reset; 169 - fdt_init(_dtb_start); 170 - serial_console_init(); 171 - }
-139
arch/powerpc/boot/cuboot-hotfoot.c
··· 1 - // SPDX-License-Identifier: GPL-2.0-only 2 - /* 3 - * Old U-boot compatibility for Esteem 195E Hotfoot CPU Board 4 - * 5 - * Author: Solomon Peachy <solomon@linux-wlan.com> 6 - */ 7 - 8 - #include "ops.h" 9 - #include "stdio.h" 10 - #include "reg.h" 11 - #include "dcr.h" 12 - #include "4xx.h" 13 - #include "cuboot.h" 14 - 15 - #define TARGET_4xx 16 - #define TARGET_HOTFOOT 17 - 18 - #include "ppcboot-hotfoot.h" 19 - 20 - static bd_t bd; 21 - 22 - #define NUM_REGS 3 23 - 24 - static void hotfoot_fixups(void) 25 - { 26 - u32 uart = mfdcr(DCRN_CPC0_UCR) & 0x7f; 27 - 28 - dt_fixup_memory(bd.bi_memstart, bd.bi_memsize); 29 - 30 - dt_fixup_cpu_clocks(bd.bi_procfreq, bd.bi_procfreq, 0); 31 - dt_fixup_clock("/plb", bd.bi_plb_busfreq); 32 - dt_fixup_clock("/plb/opb", bd.bi_opbfreq); 33 - dt_fixup_clock("/plb/ebc", bd.bi_pci_busfreq); 34 - dt_fixup_clock("/plb/opb/serial@ef600300", bd.bi_procfreq / uart); 35 - dt_fixup_clock("/plb/opb/serial@ef600400", bd.bi_procfreq / uart); 36 - 37 - dt_fixup_mac_address_by_alias("ethernet0", bd.bi_enetaddr); 38 - dt_fixup_mac_address_by_alias("ethernet1", bd.bi_enet1addr); 39 - 40 - /* Is this a single eth/serial board? */ 41 - if ((bd.bi_enet1addr[0] == 0) && 42 - (bd.bi_enet1addr[1] == 0) && 43 - (bd.bi_enet1addr[2] == 0) && 44 - (bd.bi_enet1addr[3] == 0) && 45 - (bd.bi_enet1addr[4] == 0) && 46 - (bd.bi_enet1addr[5] == 0)) { 47 - void *devp; 48 - 49 - printf("Trimming devtree for single serial/eth board\n"); 50 - 51 - devp = finddevice("/plb/opb/serial@ef600300"); 52 - if (!devp) 53 - fatal("Can't find node for /plb/opb/serial@ef600300"); 54 - del_node(devp); 55 - 56 - devp = finddevice("/plb/opb/ethernet@ef600900"); 57 - if (!devp) 58 - fatal("Can't find node for /plb/opb/ethernet@ef600900"); 59 - del_node(devp); 60 - } 61 - 62 - ibm4xx_quiesce_eth((u32 *)0xef600800, (u32 *)0xef600900); 63 - 64 - /* Fix up flash size in fdt for 4M boards. */ 65 - if (bd.bi_flashsize < 0x800000) { 66 - u32 regs[NUM_REGS]; 67 - void *devp = finddevice("/plb/ebc/nor_flash@0"); 68 - if (!devp) 69 - fatal("Can't find FDT node for nor_flash!??"); 70 - 71 - printf("Fixing devtree for 4M Flash\n"); 72 - 73 - /* First fix up the base address */ 74 - getprop(devp, "reg", regs, sizeof(regs)); 75 - regs[0] = 0; 76 - regs[1] = 0xffc00000; 77 - regs[2] = 0x00400000; 78 - setprop(devp, "reg", regs, sizeof(regs)); 79 - 80 - /* Then the offsets */ 81 - devp = finddevice("/plb/ebc/nor_flash@0/partition@0"); 82 - if (!devp) 83 - fatal("Can't find FDT node for partition@0"); 84 - getprop(devp, "reg", regs, 2*sizeof(u32)); 85 - regs[0] -= 0x400000; 86 - setprop(devp, "reg", regs, 2*sizeof(u32)); 87 - 88 - devp = finddevice("/plb/ebc/nor_flash@0/partition@1"); 89 - if (!devp) 90 - fatal("Can't find FDT node for partition@1"); 91 - getprop(devp, "reg", regs, 2*sizeof(u32)); 92 - regs[0] -= 0x400000; 93 - setprop(devp, "reg", regs, 2*sizeof(u32)); 94 - 95 - devp = finddevice("/plb/ebc/nor_flash@0/partition@2"); 96 - if (!devp) 97 - fatal("Can't find FDT node for partition@2"); 98 - getprop(devp, "reg", regs, 2*sizeof(u32)); 99 - regs[0] -= 0x400000; 100 - setprop(devp, "reg", regs, 2*sizeof(u32)); 101 - 102 - devp = finddevice("/plb/ebc/nor_flash@0/partition@3"); 103 - if (!devp) 104 - fatal("Can't find FDT node for partition@3"); 105 - getprop(devp, "reg", regs, 2*sizeof(u32)); 106 - regs[0] -= 0x400000; 107 - setprop(devp, "reg", regs, 2*sizeof(u32)); 108 - 109 - devp = finddevice("/plb/ebc/nor_flash@0/partition@4"); 110 - if (!devp) 111 - fatal("Can't find FDT node for partition@4"); 112 - getprop(devp, "reg", regs, 2*sizeof(u32)); 113 - regs[0] -= 0x400000; 114 - setprop(devp, "reg", regs, 2*sizeof(u32)); 115 - 116 - devp = finddevice("/plb/ebc/nor_flash@0/partition@6"); 117 - if (!devp) 118 - fatal("Can't find FDT node for partition@6"); 119 - getprop(devp, "reg", regs, 2*sizeof(u32)); 120 - regs[0] -= 0x400000; 121 - setprop(devp, "reg", regs, 2*sizeof(u32)); 122 - 123 - /* Delete the FeatFS node */ 124 - devp = finddevice("/plb/ebc/nor_flash@0/partition@5"); 125 - if (!devp) 126 - fatal("Can't find FDT node for partition@5"); 127 - del_node(devp); 128 - } 129 - } 130 - 131 - void platform_init(unsigned long r3, unsigned long r4, unsigned long r5, 132 - unsigned long r6, unsigned long r7) 133 - { 134 - CUBOOT_INIT(); 135 - platform_ops.fixups = hotfoot_fixups; 136 - platform_ops.exit = ibm40x_dbcr_reset; 137 - fdt_init(_dtb_start); 138 - serial_console_init(); 139 - }
-46
arch/powerpc/boot/cuboot-kilauea.c
··· 1 - // SPDX-License-Identifier: GPL-2.0-only 2 - /* 3 - * Old U-boot compatibility for PPC405EX. This image is already included 4 - * a dtb. 5 - * 6 - * Author: Tiejun Chen <tiejun.chen@windriver.com> 7 - * 8 - * Copyright (C) 2009 Wind River Systems, Inc. 9 - */ 10 - 11 - #include "ops.h" 12 - #include "io.h" 13 - #include "dcr.h" 14 - #include "stdio.h" 15 - #include "4xx.h" 16 - #include "44x.h" 17 - #include "cuboot.h" 18 - 19 - #define TARGET_4xx 20 - #define TARGET_44x 21 - #include "ppcboot.h" 22 - 23 - #define KILAUEA_SYS_EXT_SERIAL_CLOCK 11059200 /* ext. 11.059MHz clk */ 24 - 25 - static bd_t bd; 26 - 27 - static void kilauea_fixups(void) 28 - { 29 - unsigned long sysclk = 33333333; 30 - 31 - ibm405ex_fixup_clocks(sysclk, KILAUEA_SYS_EXT_SERIAL_CLOCK); 32 - dt_fixup_memory(bd.bi_memstart, bd.bi_memsize); 33 - ibm4xx_fixup_ebc_ranges("/plb/opb/ebc"); 34 - dt_fixup_mac_address_by_alias("ethernet0", bd.bi_enetaddr); 35 - dt_fixup_mac_address_by_alias("ethernet1", bd.bi_enet1addr); 36 - } 37 - 38 - void platform_init(unsigned long r3, unsigned long r4, unsigned long r5, 39 - unsigned long r6, unsigned long r7) 40 - { 41 - CUBOOT_INIT(); 42 - platform_ops.fixups = kilauea_fixups; 43 - platform_ops.exit = ibm40x_dbcr_reset; 44 - fdt_init(_dtb_start); 45 - serial_console_init(); 46 - }
-11
arch/powerpc/boot/dcr.h
··· 153 153 #define CPR0_SCPID 0x120 154 154 #define CPR0_PLLC0 0x40 155 155 156 - /* 405GP Clocking/Power Management/Chip Control regs */ 157 - #define DCRN_CPC0_PLLMR 0xb0 158 - #define DCRN_405_CPC0_CR0 0xb1 159 - #define DCRN_405_CPC0_CR1 0xb2 160 - #define DCRN_405_CPC0_PSR 0xb4 161 - 162 - /* 405EP Clocking/Power Management/Chip Control regs */ 163 - #define DCRN_CPC0_PLLMR0 0xf0 164 - #define DCRN_CPC0_PLLMR1 0xf4 165 - #define DCRN_CPC0_UCR 0xf5 166 - 167 156 /* 440GX/405EX Clock Control reg */ 168 157 #define DCRN_CPR0_CLKUPD 0x020 169 158 #define DCRN_CPR0_PLLC 0x040
-224
arch/powerpc/boot/dts/acadia.dts
··· 1 - /* 2 - * Device Tree Source for AMCC Acadia (405EZ) 3 - * 4 - * Copyright IBM Corp. 2008 5 - * 6 - * This file is licensed under the terms of the GNU General Public License 7 - * version 2. This program is licensed "as is" without any warranty of any 8 - * kind, whether express or implied. 9 - */ 10 - 11 - /dts-v1/; 12 - 13 - / { 14 - #address-cells = <1>; 15 - #size-cells = <1>; 16 - model = "amcc,acadia"; 17 - compatible = "amcc,acadia"; 18 - dcr-parent = <&{/cpus/cpu@0}>; 19 - 20 - aliases { 21 - ethernet0 = &EMAC0; 22 - serial0 = &UART0; 23 - serial1 = &UART1; 24 - }; 25 - 26 - cpus { 27 - #address-cells = <1>; 28 - #size-cells = <0>; 29 - 30 - cpu@0 { 31 - device_type = "cpu"; 32 - model = "PowerPC,405EZ"; 33 - reg = <0x0>; 34 - clock-frequency = <0>; /* Filled in by wrapper */ 35 - timebase-frequency = <0>; /* Filled in by wrapper */ 36 - i-cache-line-size = <32>; 37 - d-cache-line-size = <32>; 38 - i-cache-size = <16384>; 39 - d-cache-size = <16384>; 40 - dcr-controller; 41 - dcr-access-method = "native"; 42 - }; 43 - }; 44 - 45 - memory { 46 - device_type = "memory"; 47 - reg = <0x0 0x0>; /* Filled in by wrapper */ 48 - }; 49 - 50 - UIC0: interrupt-controller { 51 - compatible = "ibm,uic-405ez", "ibm,uic"; 52 - interrupt-controller; 53 - dcr-reg = <0x0c0 0x009>; 54 - cell-index = <0>; 55 - #address-cells = <0>; 56 - #size-cells = <0>; 57 - #interrupt-cells = <2>; 58 - }; 59 - 60 - plb { 61 - compatible = "ibm,plb-405ez", "ibm,plb3"; 62 - #address-cells = <1>; 63 - #size-cells = <1>; 64 - ranges; 65 - clock-frequency = <0>; /* Filled in by wrapper */ 66 - 67 - MAL0: mcmal { 68 - compatible = "ibm,mcmal-405ez", "ibm,mcmal"; 69 - dcr-reg = <0x380 0x62>; 70 - num-tx-chans = <1>; 71 - num-rx-chans = <1>; 72 - interrupt-parent = <&UIC0>; 73 - /* 405EZ has only 3 interrupts to the UIC, as 74 - * SERR, TXDE, and RXDE are or'd together into 75 - * one UIC bit 76 - */ 77 - interrupts = < 78 - 0x13 0x4 /* TXEOB */ 79 - 0x15 0x4 /* RXEOB */ 80 - 0x12 0x4 /* SERR, TXDE, RXDE */>; 81 - }; 82 - 83 - POB0: opb { 84 - compatible = "ibm,opb-405ez", "ibm,opb"; 85 - #address-cells = <1>; 86 - #size-cells = <1>; 87 - ranges; 88 - dcr-reg = <0x0a 0x05>; 89 - clock-frequency = <0>; /* Filled in by wrapper */ 90 - 91 - UART0: serial@ef600300 { 92 - device_type = "serial"; 93 - compatible = "ns16550"; 94 - reg = <0xef600300 0x8>; 95 - virtual-reg = <0xef600300>; 96 - clock-frequency = <0>; /* Filled in by wrapper */ 97 - current-speed = <115200>; 98 - interrupt-parent = <&UIC0>; 99 - interrupts = <0x5 0x4>; 100 - }; 101 - 102 - UART1: serial@ef600400 { 103 - device_type = "serial"; 104 - compatible = "ns16550"; 105 - reg = <0xef600400 0x8>; 106 - clock-frequency = <0>; /* Filled in by wrapper */ 107 - current-speed = <115200>; 108 - interrupt-parent = <&UIC0>; 109 - interrupts = <0x6 0x4>; 110 - }; 111 - 112 - IIC: i2c@ef600500 { 113 - compatible = "ibm,iic-405ez", "ibm,iic"; 114 - reg = <0xef600500 0x11>; 115 - interrupt-parent = <&UIC0>; 116 - interrupts = <0xa 0x4>; 117 - }; 118 - 119 - GPIO0: gpio@ef600700 { 120 - compatible = "ibm,gpio-405ez"; 121 - reg = <0xef600700 0x20>; 122 - }; 123 - 124 - GPIO1: gpio@ef600800 { 125 - compatible = "ibm,gpio-405ez"; 126 - reg = <0xef600800 0x20>; 127 - }; 128 - 129 - EMAC0: ethernet@ef600900 { 130 - device_type = "network"; 131 - compatible = "ibm,emac-405ez", "ibm,emac"; 132 - interrupt-parent = <&UIC0>; 133 - interrupts = < 134 - 0x10 0x4 /* Ethernet */ 135 - 0x11 0x4 /* Ethernet Wake up */>; 136 - local-mac-address = [000000000000]; /* Filled in by wrapper */ 137 - reg = <0xef600900 0x70>; 138 - mal-device = <&MAL0>; 139 - mal-tx-channel = <0>; 140 - mal-rx-channel = <0>; 141 - cell-index = <0>; 142 - max-frame-size = <1500>; 143 - rx-fifo-size = <4096>; 144 - tx-fifo-size = <2048>; 145 - phy-mode = "mii"; 146 - phy-map = <0x0>; 147 - }; 148 - 149 - CAN0: can@ef601000 { 150 - compatible = "amcc,can-405ez"; 151 - reg = <0xef601000 0x620>; 152 - interrupt-parent = <&UIC0>; 153 - interrupts = <0x7 0x4>; 154 - }; 155 - 156 - CAN1: can@ef601800 { 157 - compatible = "amcc,can-405ez"; 158 - reg = <0xef601800 0x620>; 159 - interrupt-parent = <&UIC0>; 160 - interrupts = <0x8 0x4>; 161 - }; 162 - 163 - cameleon@ef602000 { 164 - compatible = "amcc,cameleon-405ez"; 165 - reg = <0xef602000 0x800>; 166 - interrupt-parent = <&UIC0>; 167 - interrupts = <0xb 0x4 0xc 0x4>; 168 - }; 169 - 170 - ieee1588@ef602800 { 171 - compatible = "amcc,ieee1588-405ez"; 172 - reg = <0xef602800 0x60>; 173 - interrupt-parent = <&UIC0>; 174 - interrupts = <0x4 0x4>; 175 - /* This thing is a bit weird. It has its own UIC 176 - * that it uses to generate snapshot triggers. We 177 - * don't really support this device yet, and it needs 178 - * work to figure this out. 179 - */ 180 - dcr-reg = <0xe0 0x9>; 181 - }; 182 - 183 - usb@ef603000 { 184 - compatible = "ohci-be"; 185 - reg = <0xef603000 0x80>; 186 - interrupt-parent = <&UIC0>; 187 - interrupts = <0xd 0x4 0xe 0x4>; 188 - }; 189 - 190 - dac@ef603300 { 191 - compatible = "amcc,dac-405ez"; 192 - reg = <0xef603300 0x40>; 193 - interrupt-parent = <&UIC0>; 194 - interrupts = <0x18 0x4>; 195 - }; 196 - 197 - adc@ef603400 { 198 - compatible = "amcc,adc-405ez"; 199 - reg = <0xef603400 0x40>; 200 - interrupt-parent = <&UIC0>; 201 - interrupts = <0x17 0x4>; 202 - }; 203 - 204 - spi@ef603500 { 205 - compatible = "amcc,spi-405ez"; 206 - reg = <0xef603500 0x100>; 207 - interrupt-parent = <&UIC0>; 208 - interrupts = <0x9 0x4>; 209 - }; 210 - }; 211 - 212 - EBC0: ebc { 213 - compatible = "ibm,ebc-405ez", "ibm,ebc"; 214 - dcr-reg = <0x12 0x2>; 215 - #address-cells = <2>; 216 - #size-cells = <1>; 217 - clock-frequency = <0>; /* Filled in by wrapper */ 218 - }; 219 - }; 220 - 221 - chosen { 222 - stdout-path = "/plb/opb/serial@ef600300"; 223 - }; 224 - };
-281
arch/powerpc/boot/dts/haleakala.dts
··· 1 - /* 2 - * Device Tree Source for AMCC Haleakala (405EXr) 3 - * 4 - * Copyright 2008 DENX Software Engineering, Stefan Roese <sr@denx.de> 5 - * 6 - * This file is licensed under the terms of the GNU General Public 7 - * License version 2. This program is licensed "as is" without 8 - * any warranty of any kind, whether express or implied. 9 - */ 10 - 11 - /dts-v1/; 12 - 13 - / { 14 - #address-cells = <1>; 15 - #size-cells = <1>; 16 - model = "amcc,haleakala"; 17 - compatible = "amcc,haleakala", "amcc,kilauea"; 18 - dcr-parent = <&{/cpus/cpu@0}>; 19 - 20 - aliases { 21 - ethernet0 = &EMAC0; 22 - serial0 = &UART0; 23 - serial1 = &UART1; 24 - }; 25 - 26 - cpus { 27 - #address-cells = <1>; 28 - #size-cells = <0>; 29 - 30 - cpu@0 { 31 - device_type = "cpu"; 32 - model = "PowerPC,405EXr"; 33 - reg = <0x00000000>; 34 - clock-frequency = <0>; /* Filled in by U-Boot */ 35 - timebase-frequency = <0>; /* Filled in by U-Boot */ 36 - i-cache-line-size = <32>; 37 - d-cache-line-size = <32>; 38 - i-cache-size = <16384>; /* 16 kB */ 39 - d-cache-size = <16384>; /* 16 kB */ 40 - dcr-controller; 41 - dcr-access-method = "native"; 42 - }; 43 - }; 44 - 45 - memory { 46 - device_type = "memory"; 47 - reg = <0x00000000 0x00000000>; /* Filled in by U-Boot */ 48 - }; 49 - 50 - UIC0: interrupt-controller { 51 - compatible = "ibm,uic-405exr", "ibm,uic"; 52 - interrupt-controller; 53 - cell-index = <0>; 54 - dcr-reg = <0x0c0 0x009>; 55 - #address-cells = <0>; 56 - #size-cells = <0>; 57 - #interrupt-cells = <2>; 58 - }; 59 - 60 - UIC1: interrupt-controller1 { 61 - compatible = "ibm,uic-405exr","ibm,uic"; 62 - interrupt-controller; 63 - cell-index = <1>; 64 - dcr-reg = <0x0d0 0x009>; 65 - #address-cells = <0>; 66 - #size-cells = <0>; 67 - #interrupt-cells = <2>; 68 - interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */ 69 - interrupt-parent = <&UIC0>; 70 - }; 71 - 72 - UIC2: interrupt-controller2 { 73 - compatible = "ibm,uic-405exr","ibm,uic"; 74 - interrupt-controller; 75 - cell-index = <2>; 76 - dcr-reg = <0x0e0 0x009>; 77 - #address-cells = <0>; 78 - #size-cells = <0>; 79 - #interrupt-cells = <2>; 80 - interrupts = <0x1c 0x4 0x1d 0x4>; /* cascade */ 81 - interrupt-parent = <&UIC0>; 82 - }; 83 - 84 - plb { 85 - compatible = "ibm,plb-405exr", "ibm,plb4"; 86 - #address-cells = <1>; 87 - #size-cells = <1>; 88 - ranges; 89 - clock-frequency = <0>; /* Filled in by U-Boot */ 90 - 91 - SDRAM0: memory-controller { 92 - compatible = "ibm,sdram-405exr", "ibm,sdram-4xx-ddr2"; 93 - dcr-reg = <0x010 0x002>; 94 - interrupt-parent = <&UIC2>; 95 - interrupts = <0x5 0x4 /* ECC DED Error */ 96 - 0x6 0x4>; /* ECC SEC Error */ 97 - }; 98 - 99 - MAL0: mcmal { 100 - compatible = "ibm,mcmal-405exr", "ibm,mcmal2"; 101 - dcr-reg = <0x180 0x062>; 102 - num-tx-chans = <2>; 103 - num-rx-chans = <2>; 104 - interrupt-parent = <&MAL0>; 105 - interrupts = <0x0 0x1 0x2 0x3 0x4>; 106 - #interrupt-cells = <1>; 107 - #address-cells = <0>; 108 - #size-cells = <0>; 109 - interrupt-map = </*TXEOB*/ 0x0 &UIC0 0xa 0x4 110 - /*RXEOB*/ 0x1 &UIC0 0xb 0x4 111 - /*SERR*/ 0x2 &UIC1 0x0 0x4 112 - /*TXDE*/ 0x3 &UIC1 0x1 0x4 113 - /*RXDE*/ 0x4 &UIC1 0x2 0x4>; 114 - interrupt-map-mask = <0xffffffff>; 115 - }; 116 - 117 - POB0: opb { 118 - compatible = "ibm,opb-405exr", "ibm,opb"; 119 - #address-cells = <1>; 120 - #size-cells = <1>; 121 - ranges = <0x80000000 0x80000000 0x10000000 122 - 0xef600000 0xef600000 0x00a00000 123 - 0xf0000000 0xf0000000 0x10000000>; 124 - dcr-reg = <0x0a0 0x005>; 125 - clock-frequency = <0>; /* Filled in by U-Boot */ 126 - 127 - EBC0: ebc { 128 - compatible = "ibm,ebc-405exr", "ibm,ebc"; 129 - dcr-reg = <0x012 0x002>; 130 - #address-cells = <2>; 131 - #size-cells = <1>; 132 - clock-frequency = <0>; /* Filled in by U-Boot */ 133 - /* ranges property is supplied by U-Boot */ 134 - interrupts = <0x5 0x1>; 135 - interrupt-parent = <&UIC1>; 136 - 137 - nor_flash@0,0 { 138 - compatible = "amd,s29gl512n", "cfi-flash"; 139 - bank-width = <2>; 140 - reg = <0x00000000 0x00000000 0x04000000>; 141 - #address-cells = <1>; 142 - #size-cells = <1>; 143 - partition@0 { 144 - label = "kernel"; 145 - reg = <0x00000000 0x00200000>; 146 - }; 147 - partition@200000 { 148 - label = "root"; 149 - reg = <0x00200000 0x00200000>; 150 - }; 151 - partition@400000 { 152 - label = "user"; 153 - reg = <0x00400000 0x03b60000>; 154 - }; 155 - partition@3f60000 { 156 - label = "env"; 157 - reg = <0x03f60000 0x00040000>; 158 - }; 159 - partition@3fa0000 { 160 - label = "u-boot"; 161 - reg = <0x03fa0000 0x00060000>; 162 - }; 163 - }; 164 - }; 165 - 166 - UART0: serial@ef600200 { 167 - device_type = "serial"; 168 - compatible = "ns16550"; 169 - reg = <0xef600200 0x00000008>; 170 - virtual-reg = <0xef600200>; 171 - clock-frequency = <0>; /* Filled in by U-Boot */ 172 - current-speed = <0>; 173 - interrupt-parent = <&UIC0>; 174 - interrupts = <0x1a 0x4>; 175 - }; 176 - 177 - UART1: serial@ef600300 { 178 - device_type = "serial"; 179 - compatible = "ns16550"; 180 - reg = <0xef600300 0x00000008>; 181 - virtual-reg = <0xef600300>; 182 - clock-frequency = <0>; /* Filled in by U-Boot */ 183 - current-speed = <0>; 184 - interrupt-parent = <&UIC0>; 185 - interrupts = <0x1 0x4>; 186 - }; 187 - 188 - IIC0: i2c@ef600400 { 189 - compatible = "ibm,iic-405exr", "ibm,iic"; 190 - reg = <0xef600400 0x00000014>; 191 - interrupt-parent = <&UIC0>; 192 - interrupts = <0x2 0x4>; 193 - }; 194 - 195 - IIC1: i2c@ef600500 { 196 - compatible = "ibm,iic-405exr", "ibm,iic"; 197 - reg = <0xef600500 0x00000014>; 198 - interrupt-parent = <&UIC0>; 199 - interrupts = <0x7 0x4>; 200 - }; 201 - 202 - 203 - RGMII0: emac-rgmii@ef600b00 { 204 - compatible = "ibm,rgmii-405exr", "ibm,rgmii"; 205 - reg = <0xef600b00 0x00000104>; 206 - has-mdio; 207 - }; 208 - 209 - EMAC0: ethernet@ef600900 { 210 - linux,network-index = <0x0>; 211 - device_type = "network"; 212 - compatible = "ibm,emac-405exr", "ibm,emac4sync"; 213 - interrupt-parent = <&EMAC0>; 214 - interrupts = <0x0 0x1>; 215 - #interrupt-cells = <1>; 216 - #address-cells = <0>; 217 - #size-cells = <0>; 218 - interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4 219 - /*Wake*/ 0x1 &UIC1 0x1d 0x4>; 220 - reg = <0xef600900 0x000000c4>; 221 - local-mac-address = [000000000000]; /* Filled in by U-Boot */ 222 - mal-device = <&MAL0>; 223 - mal-tx-channel = <0>; 224 - mal-rx-channel = <0>; 225 - cell-index = <0>; 226 - max-frame-size = <9000>; 227 - rx-fifo-size = <4096>; 228 - tx-fifo-size = <2048>; 229 - rx-fifo-size-gige = <16384>; 230 - tx-fifo-size-gige = <16384>; 231 - phy-mode = "rgmii"; 232 - phy-map = <0x00000000>; 233 - rgmii-device = <&RGMII0>; 234 - rgmii-channel = <0>; 235 - has-inverted-stacr-oc; 236 - has-new-stacr-staopc; 237 - }; 238 - }; 239 - 240 - PCIE0: pcie@a0000000 { 241 - device_type = "pci"; 242 - #interrupt-cells = <1>; 243 - #size-cells = <2>; 244 - #address-cells = <3>; 245 - compatible = "ibm,plb-pciex-405ex", "ibm,plb-pciex"; 246 - primary; 247 - port = <0x0>; /* port number */ 248 - reg = <0xa0000000 0x20000000 /* Config space access */ 249 - 0xef000000 0x00001000>; /* Registers */ 250 - dcr-reg = <0x040 0x020>; 251 - sdr-base = <0x400>; 252 - 253 - /* Outbound ranges, one memory and one IO, 254 - * later cannot be changed 255 - */ 256 - ranges = <0x02000000 0x00000000 0x80000000 0x90000000 0x00000000 0x08000000 257 - 0x01000000 0x00000000 0x00000000 0xe0000000 0x00000000 0x00010000>; 258 - 259 - /* Inbound 2GB range starting at 0 */ 260 - dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x80000000>; 261 - 262 - /* This drives busses 0x00 to 0x3f */ 263 - bus-range = <0x0 0x3f>; 264 - 265 - /* Legacy interrupts (note the weird polarity, the bridge seems 266 - * to invert PCIe legacy interrupts). 267 - * We are de-swizzling here because the numbers are actually for 268 - * port of the root complex virtual P2P bridge. But I want 269 - * to avoid putting a node for it in the tree, so the numbers 270 - * below are basically de-swizzled numbers. 271 - * The real slot is on idsel 0, so the swizzling is 1:1 272 - */ 273 - interrupt-map-mask = <0x0 0x0 0x0 0x7>; 274 - interrupt-map = < 275 - 0x0 0x0 0x0 0x1 &UIC2 0x0 0x4 /* swizzled int A */ 276 - 0x0 0x0 0x0 0x2 &UIC2 0x1 0x4 /* swizzled int B */ 277 - 0x0 0x0 0x0 0x3 &UIC2 0x2 0x4 /* swizzled int C */ 278 - 0x0 0x0 0x0 0x4 &UIC2 0x3 0x4 /* swizzled int D */>; 279 - }; 280 - }; 281 - };
-296
arch/powerpc/boot/dts/hotfoot.dts
··· 1 - /* 2 - * Device Tree Source for ESTeem 195E Hotfoot 3 - * 4 - * Copyright 2009 AbsoluteValue Systems <solomon@linux-wlan.com> 5 - * 6 - * This file is licensed under the terms of the GNU General Public 7 - * License version 2. This program is licensed "as is" without 8 - * any warranty of any kind, whether express or implied. 9 - */ 10 - 11 - /dts-v1/; 12 - 13 - / { 14 - #address-cells = <1>; 15 - #size-cells = <1>; 16 - model = "est,hotfoot"; 17 - compatible = "est,hotfoot"; 18 - dcr-parent = <&{/cpus/cpu@0}>; 19 - 20 - aliases { 21 - ethernet0 = &EMAC0; 22 - ethernet1 = &EMAC1; 23 - serial0 = &UART0; 24 - serial1 = &UART1; 25 - }; 26 - 27 - cpus { 28 - #address-cells = <1>; 29 - #size-cells = <0>; 30 - 31 - cpu@0 { 32 - device_type = "cpu"; 33 - model = "PowerPC,405EP"; 34 - reg = <0x00000000>; 35 - clock-frequency = <0>; /* Filled in by zImage */ 36 - timebase-frequency = <0>; /* Filled in by zImage */ 37 - i-cache-line-size = <0x20>; 38 - d-cache-line-size = <0x20>; 39 - i-cache-size = <0x4000>; 40 - d-cache-size = <0x4000>; 41 - dcr-controller; 42 - dcr-access-method = "native"; 43 - }; 44 - }; 45 - 46 - memory { 47 - device_type = "memory"; 48 - reg = <0x00000000 0x00000000>; /* Filled in by zImage */ 49 - }; 50 - 51 - UIC0: interrupt-controller { 52 - compatible = "ibm,uic"; 53 - interrupt-controller; 54 - cell-index = <0>; 55 - dcr-reg = <0x0c0 0x009>; 56 - #address-cells = <0>; 57 - #size-cells = <0>; 58 - #interrupt-cells = <2>; 59 - }; 60 - 61 - plb { 62 - compatible = "ibm,plb3"; 63 - #address-cells = <1>; 64 - #size-cells = <1>; 65 - ranges; 66 - clock-frequency = <0>; /* Filled in by zImage */ 67 - 68 - SDRAM0: memory-controller { 69 - compatible = "ibm,sdram-405ep"; 70 - dcr-reg = <0x010 0x002>; 71 - }; 72 - 73 - MAL: mcmal { 74 - compatible = "ibm,mcmal-405ep", "ibm,mcmal"; 75 - dcr-reg = <0x180 0x062>; 76 - num-tx-chans = <4>; 77 - num-rx-chans = <2>; 78 - interrupt-parent = <&UIC0>; 79 - interrupts = < 80 - 0xb 0x4 /* TXEOB */ 81 - 0xc 0x4 /* RXEOB */ 82 - 0xa 0x4 /* SERR */ 83 - 0xd 0x4 /* TXDE */ 84 - 0xe 0x4 /* RXDE */>; 85 - }; 86 - 87 - POB0: opb { 88 - compatible = "ibm,opb-405ep", "ibm,opb"; 89 - #address-cells = <1>; 90 - #size-cells = <1>; 91 - ranges = <0xef600000 0xef600000 0x00a00000>; 92 - dcr-reg = <0x0a0 0x005>; 93 - clock-frequency = <0>; /* Filled in by zImage */ 94 - 95 - /* Hotfoot has UART0/UART1 swapped */ 96 - 97 - UART0: serial@ef600400 { 98 - device_type = "serial"; 99 - compatible = "ns16550"; 100 - reg = <0xef600400 0x00000008>; 101 - virtual-reg = <0xef600400>; 102 - clock-frequency = <0>; /* Filled in by zImage */ 103 - current-speed = <0x9600>; 104 - interrupt-parent = <&UIC0>; 105 - interrupts = <0x1 0x4>; 106 - }; 107 - 108 - UART1: serial@ef600300 { 109 - device_type = "serial"; 110 - compatible = "ns16550"; 111 - reg = <0xef600300 0x00000008>; 112 - virtual-reg = <0xef600300>; 113 - clock-frequency = <0>; /* Filled in by zImage */ 114 - current-speed = <0x9600>; 115 - interrupt-parent = <&UIC0>; 116 - interrupts = <0x0 0x4>; 117 - }; 118 - 119 - IIC: i2c@ef600500 { 120 - #address-cells = <1>; 121 - #size-cells = <0>; 122 - compatible = "ibm,iic-405ep", "ibm,iic"; 123 - reg = <0xef600500 0x00000011>; 124 - interrupt-parent = <&UIC0>; 125 - interrupts = <0x2 0x4>; 126 - 127 - rtc@68 { 128 - /* Actually a DS1339 */ 129 - compatible = "dallas,ds1307"; 130 - reg = <0x68>; 131 - }; 132 - 133 - temp@4a { 134 - /* Not present on all boards */ 135 - compatible = "national,lm75"; 136 - reg = <0x4a>; 137 - }; 138 - }; 139 - 140 - GPIO: gpio@ef600700 { 141 - #gpio-cells = <2>; 142 - compatible = "ibm,ppc4xx-gpio"; 143 - reg = <0xef600700 0x00000020>; 144 - gpio-controller; 145 - }; 146 - 147 - gpio-leds { 148 - compatible = "gpio-leds"; 149 - status { 150 - label = "Status"; 151 - gpios = <&GPIO 1 0>; 152 - }; 153 - radiorx { 154 - label = "Rx"; 155 - gpios = <&GPIO 0xe 0>; 156 - }; 157 - }; 158 - 159 - EMAC0: ethernet@ef600800 { 160 - linux,network-index = <0x0>; 161 - device_type = "network"; 162 - compatible = "ibm,emac-405ep", "ibm,emac"; 163 - interrupt-parent = <&UIC0>; 164 - interrupts = < 165 - 0xf 0x4 /* Ethernet */ 166 - 0x9 0x4 /* Ethernet Wake Up */>; 167 - local-mac-address = [000000000000]; /* Filled in by zImage */ 168 - reg = <0xef600800 0x00000070>; 169 - mal-device = <&MAL>; 170 - mal-tx-channel = <0>; 171 - mal-rx-channel = <0>; 172 - cell-index = <0>; 173 - max-frame-size = <0x5dc>; 174 - rx-fifo-size = <0x1000>; 175 - tx-fifo-size = <0x800>; 176 - phy-mode = "mii"; 177 - phy-map = <0x00000000>; 178 - }; 179 - 180 - EMAC1: ethernet@ef600900 { 181 - linux,network-index = <0x1>; 182 - device_type = "network"; 183 - compatible = "ibm,emac-405ep", "ibm,emac"; 184 - interrupt-parent = <&UIC0>; 185 - interrupts = < 186 - 0x11 0x4 /* Ethernet */ 187 - 0x9 0x4 /* Ethernet Wake Up */>; 188 - local-mac-address = [000000000000]; /* Filled in by zImage */ 189 - reg = <0xef600900 0x00000070>; 190 - mal-device = <&MAL>; 191 - mal-tx-channel = <2>; 192 - mal-rx-channel = <1>; 193 - cell-index = <1>; 194 - max-frame-size = <0x5dc>; 195 - rx-fifo-size = <0x1000>; 196 - tx-fifo-size = <0x800>; 197 - mdio-device = <&EMAC0>; 198 - phy-mode = "mii"; 199 - phy-map = <0x0000001>; 200 - }; 201 - }; 202 - 203 - EBC0: ebc { 204 - compatible = "ibm,ebc-405ep", "ibm,ebc"; 205 - dcr-reg = <0x012 0x002>; 206 - #address-cells = <2>; 207 - #size-cells = <1>; 208 - 209 - /* The ranges property is supplied by the bootwrapper 210 - * and is based on the firmware's configuration of the 211 - * EBC bridge 212 - */ 213 - clock-frequency = <0>; /* Filled in by zImage */ 214 - 215 - nor_flash@0 { 216 - compatible = "cfi-flash"; 217 - bank-width = <2>; 218 - reg = <0x0 0xff800000 0x00800000>; 219 - #address-cells = <1>; 220 - #size-cells = <1>; 221 - 222 - /* This mapping is for the 8M flash 223 - 4M flash has all ofssets -= 4M, 224 - and FeatFS partition is not present */ 225 - partition@0 { 226 - label = "Bootloader"; 227 - reg = <0x7c0000 0x40000>; 228 - /* read-only; */ 229 - }; 230 - partition@1 { 231 - label = "Env_and_Config_Primary"; 232 - reg = <0x400000 0x10000>; 233 - }; 234 - partition@2 { 235 - label = "Kernel"; 236 - reg = <0x420000 0x100000>; 237 - }; 238 - partition@3 { 239 - label = "Filesystem"; 240 - reg = <0x520000 0x2a0000>; 241 - }; 242 - partition@4 { 243 - label = "Env_and_Config_Secondary"; 244 - reg = <0x410000 0x10000>; 245 - }; 246 - partition@5 { 247 - label = "FeatFS"; 248 - reg = <0x000000 0x400000>; 249 - }; 250 - partition@6 { 251 - label = "Bootloader_Env"; 252 - reg = <0x7d0000 0x10000>; 253 - }; 254 - }; 255 - }; 256 - 257 - PCI0: pci@ec000000 { 258 - device_type = "pci"; 259 - #interrupt-cells = <1>; 260 - #size-cells = <2>; 261 - #address-cells = <3>; 262 - compatible = "ibm,plb405ep-pci", "ibm,plb-pci"; 263 - primary; 264 - reg = <0xeec00000 0x00000008 /* Config space access */ 265 - 0xeed80000 0x00000004 /* IACK */ 266 - 0xeed80000 0x00000004 /* Special cycle */ 267 - 0xef480000 0x00000040>; /* Internal registers */ 268 - 269 - /* Outbound ranges, one memory and one IO, 270 - * later cannot be changed. Chip supports a second 271 - * IO range but we don't use it for now 272 - */ 273 - ranges = <0x02000000 0x00000000 0x80000000 0x80000000 0x00000000 0x20000000 274 - 0x01000000 0x00000000 0x00000000 0xe8000000 0x00000000 0x00010000>; 275 - 276 - /* Inbound 2GB range starting at 0 */ 277 - dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x80000000>; 278 - 279 - interrupt-parent = <&UIC0>; 280 - interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 281 - interrupt-map = < 282 - /* IDSEL 3 -- slot1 (optional) 27/29 A/B IRQ2/4 */ 283 - 0x1800 0x0 0x0 0x1 &UIC0 0x1b 0x8 284 - 0x1800 0x0 0x0 0x2 &UIC0 0x1d 0x8 285 - 286 - /* IDSEL 4 -- slot0, 26/28 A/B IRQ1/3 */ 287 - 0x2000 0x0 0x0 0x1 &UIC0 0x1a 0x8 288 - 0x2000 0x0 0x0 0x2 &UIC0 0x1c 0x8 289 - >; 290 - }; 291 - }; 292 - 293 - chosen { 294 - stdout-path = &UART0; 295 - }; 296 - };
-407
arch/powerpc/boot/dts/kilauea.dts
··· 1 - /* 2 - * Device Tree Source for AMCC Kilauea (405EX) 3 - * 4 - * Copyright 2007-2009 DENX Software Engineering, Stefan Roese <sr@denx.de> 5 - * 6 - * This file is licensed under the terms of the GNU General Public 7 - * License version 2. This program is licensed "as is" without 8 - * any warranty of any kind, whether express or implied. 9 - */ 10 - 11 - /dts-v1/; 12 - 13 - / { 14 - #address-cells = <1>; 15 - #size-cells = <1>; 16 - model = "amcc,kilauea"; 17 - compatible = "amcc,kilauea"; 18 - dcr-parent = <&{/cpus/cpu@0}>; 19 - 20 - aliases { 21 - ethernet0 = &EMAC0; 22 - ethernet1 = &EMAC1; 23 - serial0 = &UART0; 24 - serial1 = &UART1; 25 - }; 26 - 27 - cpus { 28 - #address-cells = <1>; 29 - #size-cells = <0>; 30 - 31 - cpu@0 { 32 - device_type = "cpu"; 33 - model = "PowerPC,405EX"; 34 - reg = <0x00000000>; 35 - clock-frequency = <0>; /* Filled in by U-Boot */ 36 - timebase-frequency = <0>; /* Filled in by U-Boot */ 37 - i-cache-line-size = <32>; 38 - d-cache-line-size = <32>; 39 - i-cache-size = <16384>; /* 16 kB */ 40 - d-cache-size = <16384>; /* 16 kB */ 41 - dcr-controller; 42 - dcr-access-method = "native"; 43 - }; 44 - }; 45 - 46 - memory { 47 - device_type = "memory"; 48 - reg = <0x00000000 0x00000000>; /* Filled in by U-Boot */ 49 - }; 50 - 51 - UIC0: interrupt-controller { 52 - compatible = "ibm,uic-405ex", "ibm,uic"; 53 - interrupt-controller; 54 - cell-index = <0>; 55 - dcr-reg = <0x0c0 0x009>; 56 - #address-cells = <0>; 57 - #size-cells = <0>; 58 - #interrupt-cells = <2>; 59 - }; 60 - 61 - UIC1: interrupt-controller1 { 62 - compatible = "ibm,uic-405ex","ibm,uic"; 63 - interrupt-controller; 64 - cell-index = <1>; 65 - dcr-reg = <0x0d0 0x009>; 66 - #address-cells = <0>; 67 - #size-cells = <0>; 68 - #interrupt-cells = <2>; 69 - interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */ 70 - interrupt-parent = <&UIC0>; 71 - }; 72 - 73 - UIC2: interrupt-controller2 { 74 - compatible = "ibm,uic-405ex","ibm,uic"; 75 - interrupt-controller; 76 - cell-index = <2>; 77 - dcr-reg = <0x0e0 0x009>; 78 - #address-cells = <0>; 79 - #size-cells = <0>; 80 - #interrupt-cells = <2>; 81 - interrupts = <0x1c 0x4 0x1d 0x4>; /* cascade */ 82 - interrupt-parent = <&UIC0>; 83 - }; 84 - 85 - CPM0: cpm { 86 - compatible = "ibm,cpm"; 87 - dcr-access-method = "native"; 88 - dcr-reg = <0x0b0 0x003>; 89 - unused-units = <0x00000000>; 90 - idle-doze = <0x02000000>; 91 - standby = <0xe3e74800>; 92 - }; 93 - 94 - plb { 95 - compatible = "ibm,plb-405ex", "ibm,plb4"; 96 - #address-cells = <1>; 97 - #size-cells = <1>; 98 - ranges; 99 - clock-frequency = <0>; /* Filled in by U-Boot */ 100 - 101 - SDRAM0: memory-controller { 102 - compatible = "ibm,sdram-405ex", "ibm,sdram-4xx-ddr2"; 103 - dcr-reg = <0x010 0x002>; 104 - interrupt-parent = <&UIC2>; 105 - interrupts = <0x5 0x4 /* ECC DED Error */ 106 - 0x6 0x4>; /* ECC SEC Error */ 107 - }; 108 - 109 - CRYPTO: crypto@ef700000 { 110 - compatible = "amcc,ppc405ex-crypto", "amcc,ppc4xx-crypto"; 111 - reg = <0xef700000 0x80400>; 112 - interrupt-parent = <&UIC0>; 113 - interrupts = <0x17 0x2>; 114 - }; 115 - 116 - MAL0: mcmal { 117 - compatible = "ibm,mcmal-405ex", "ibm,mcmal2"; 118 - dcr-reg = <0x180 0x062>; 119 - num-tx-chans = <2>; 120 - num-rx-chans = <2>; 121 - interrupt-parent = <&MAL0>; 122 - interrupts = <0x0 0x1 0x2 0x3 0x4>; 123 - #interrupt-cells = <1>; 124 - #address-cells = <0>; 125 - #size-cells = <0>; 126 - interrupt-map = </*TXEOB*/ 0x0 &UIC0 0xa 0x4 127 - /*RXEOB*/ 0x1 &UIC0 0xb 0x4 128 - /*SERR*/ 0x2 &UIC1 0x0 0x4 129 - /*TXDE*/ 0x3 &UIC1 0x1 0x4 130 - /*RXDE*/ 0x4 &UIC1 0x2 0x4>; 131 - interrupt-map-mask = <0xffffffff>; 132 - }; 133 - 134 - POB0: opb { 135 - compatible = "ibm,opb-405ex", "ibm,opb"; 136 - #address-cells = <1>; 137 - #size-cells = <1>; 138 - ranges = <0x80000000 0x80000000 0x10000000 139 - 0xef600000 0xef600000 0x00a00000 140 - 0xf0000000 0xf0000000 0x10000000>; 141 - dcr-reg = <0x0a0 0x005>; 142 - clock-frequency = <0>; /* Filled in by U-Boot */ 143 - 144 - EBC0: ebc { 145 - compatible = "ibm,ebc-405ex", "ibm,ebc"; 146 - dcr-reg = <0x012 0x002>; 147 - #address-cells = <2>; 148 - #size-cells = <1>; 149 - clock-frequency = <0>; /* Filled in by U-Boot */ 150 - /* ranges property is supplied by U-Boot */ 151 - interrupts = <0x5 0x1>; 152 - interrupt-parent = <&UIC1>; 153 - 154 - nor_flash@0,0 { 155 - compatible = "amd,s29gl512n", "cfi-flash"; 156 - bank-width = <2>; 157 - reg = <0x00000000 0x00000000 0x04000000>; 158 - #address-cells = <1>; 159 - #size-cells = <1>; 160 - partition@0 { 161 - label = "kernel"; 162 - reg = <0x00000000 0x001e0000>; 163 - }; 164 - partition@1e0000 { 165 - label = "dtb"; 166 - reg = <0x001e0000 0x00020000>; 167 - }; 168 - partition@200000 { 169 - label = "root"; 170 - reg = <0x00200000 0x00200000>; 171 - }; 172 - partition@400000 { 173 - label = "user"; 174 - reg = <0x00400000 0x03b60000>; 175 - }; 176 - partition@3f60000 { 177 - label = "env"; 178 - reg = <0x03f60000 0x00040000>; 179 - }; 180 - partition@3fa0000 { 181 - label = "u-boot"; 182 - reg = <0x03fa0000 0x00060000>; 183 - }; 184 - }; 185 - 186 - ndfc@1,0 { 187 - compatible = "ibm,ndfc"; 188 - reg = <0x00000001 0x00000000 0x00002000>; 189 - ccr = <0x00001000>; 190 - bank-settings = <0x80002222>; 191 - #address-cells = <1>; 192 - #size-cells = <1>; 193 - 194 - nand { 195 - #address-cells = <1>; 196 - #size-cells = <1>; 197 - 198 - partition@0 { 199 - label = "u-boot"; 200 - reg = <0x00000000 0x00100000>; 201 - }; 202 - partition@100000 { 203 - label = "user"; 204 - reg = <0x00000000 0x03f00000>; 205 - }; 206 - }; 207 - }; 208 - }; 209 - 210 - UART0: serial@ef600200 { 211 - device_type = "serial"; 212 - compatible = "ns16550"; 213 - reg = <0xef600200 0x00000008>; 214 - virtual-reg = <0xef600200>; 215 - clock-frequency = <0>; /* Filled in by U-Boot */ 216 - current-speed = <0>; 217 - interrupt-parent = <&UIC0>; 218 - interrupts = <0x1a 0x4>; 219 - }; 220 - 221 - UART1: serial@ef600300 { 222 - device_type = "serial"; 223 - compatible = "ns16550"; 224 - reg = <0xef600300 0x00000008>; 225 - virtual-reg = <0xef600300>; 226 - clock-frequency = <0>; /* Filled in by U-Boot */ 227 - current-speed = <0>; 228 - interrupt-parent = <&UIC0>; 229 - interrupts = <0x1 0x4>; 230 - }; 231 - 232 - IIC0: i2c@ef600400 { 233 - compatible = "ibm,iic-405ex", "ibm,iic"; 234 - reg = <0xef600400 0x00000014>; 235 - interrupt-parent = <&UIC0>; 236 - interrupts = <0x2 0x4>; 237 - #address-cells = <1>; 238 - #size-cells = <0>; 239 - 240 - rtc@68 { 241 - compatible = "dallas,ds1338"; 242 - reg = <0x68>; 243 - }; 244 - 245 - dtt@48 { 246 - compatible = "dallas,ds1775"; 247 - reg = <0x48>; 248 - }; 249 - }; 250 - 251 - IIC1: i2c@ef600500 { 252 - compatible = "ibm,iic-405ex", "ibm,iic"; 253 - reg = <0xef600500 0x00000014>; 254 - interrupt-parent = <&UIC0>; 255 - interrupts = <0x7 0x4>; 256 - }; 257 - 258 - RGMII0: emac-rgmii@ef600b00 { 259 - compatible = "ibm,rgmii-405ex", "ibm,rgmii"; 260 - reg = <0xef600b00 0x00000104>; 261 - has-mdio; 262 - }; 263 - 264 - EMAC0: ethernet@ef600900 { 265 - linux,network-index = <0x0>; 266 - device_type = "network"; 267 - compatible = "ibm,emac-405ex", "ibm,emac4sync"; 268 - interrupt-parent = <&EMAC0>; 269 - interrupts = <0x0 0x1>; 270 - #interrupt-cells = <1>; 271 - #address-cells = <0>; 272 - #size-cells = <0>; 273 - interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4 274 - /*Wake*/ 0x1 &UIC1 0x1d 0x4>; 275 - reg = <0xef600900 0x000000c4>; 276 - local-mac-address = [000000000000]; /* Filled in by U-Boot */ 277 - mal-device = <&MAL0>; 278 - mal-tx-channel = <0>; 279 - mal-rx-channel = <0>; 280 - cell-index = <0>; 281 - max-frame-size = <9000>; 282 - rx-fifo-size = <4096>; 283 - tx-fifo-size = <2048>; 284 - rx-fifo-size-gige = <16384>; 285 - tx-fifo-size-gige = <16384>; 286 - phy-mode = "rgmii"; 287 - phy-map = <0x00000000>; 288 - rgmii-device = <&RGMII0>; 289 - rgmii-channel = <0>; 290 - has-inverted-stacr-oc; 291 - has-new-stacr-staopc; 292 - }; 293 - 294 - EMAC1: ethernet@ef600a00 { 295 - linux,network-index = <0x1>; 296 - device_type = "network"; 297 - compatible = "ibm,emac-405ex", "ibm,emac4sync"; 298 - interrupt-parent = <&EMAC1>; 299 - interrupts = <0x0 0x1>; 300 - #interrupt-cells = <1>; 301 - #address-cells = <0>; 302 - #size-cells = <0>; 303 - interrupt-map = </*Status*/ 0x0 &UIC0 0x19 0x4 304 - /*Wake*/ 0x1 &UIC1 0x1f 0x4>; 305 - reg = <0xef600a00 0x000000c4>; 306 - local-mac-address = [000000000000]; /* Filled in by U-Boot */ 307 - mal-device = <&MAL0>; 308 - mal-tx-channel = <1>; 309 - mal-rx-channel = <1>; 310 - cell-index = <1>; 311 - max-frame-size = <9000>; 312 - rx-fifo-size = <4096>; 313 - tx-fifo-size = <2048>; 314 - rx-fifo-size-gige = <16384>; 315 - tx-fifo-size-gige = <16384>; 316 - phy-mode = "rgmii"; 317 - phy-map = <0x00000000>; 318 - rgmii-device = <&RGMII0>; 319 - rgmii-channel = <1>; 320 - has-inverted-stacr-oc; 321 - has-new-stacr-staopc; 322 - }; 323 - }; 324 - 325 - PCIE0: pcie@a0000000 { 326 - device_type = "pci"; 327 - #interrupt-cells = <1>; 328 - #size-cells = <2>; 329 - #address-cells = <3>; 330 - compatible = "ibm,plb-pciex-405ex", "ibm,plb-pciex"; 331 - primary; 332 - port = <0x0>; /* port number */ 333 - reg = <0xa0000000 0x20000000 /* Config space access */ 334 - 0xef000000 0x00001000>; /* Registers */ 335 - dcr-reg = <0x040 0x020>; 336 - sdr-base = <0x400>; 337 - 338 - /* Outbound ranges, one memory and one IO, 339 - * later cannot be changed 340 - */ 341 - ranges = <0x02000000 0x00000000 0x80000000 0x90000000 0x00000000 0x08000000 342 - 0x01000000 0x00000000 0x00000000 0xe0000000 0x00000000 0x00010000>; 343 - 344 - /* Inbound 2GB range starting at 0 */ 345 - dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x80000000>; 346 - 347 - /* This drives busses 0x00 to 0x3f */ 348 - bus-range = <0x0 0x3f>; 349 - 350 - /* Legacy interrupts (note the weird polarity, the bridge seems 351 - * to invert PCIe legacy interrupts). 352 - * We are de-swizzling here because the numbers are actually for 353 - * port of the root complex virtual P2P bridge. But I want 354 - * to avoid putting a node for it in the tree, so the numbers 355 - * below are basically de-swizzled numbers. 356 - * The real slot is on idsel 0, so the swizzling is 1:1 357 - */ 358 - interrupt-map-mask = <0x0 0x0 0x0 0x7>; 359 - interrupt-map = < 360 - 0x0 0x0 0x0 0x1 &UIC2 0x0 0x4 /* swizzled int A */ 361 - 0x0 0x0 0x0 0x2 &UIC2 0x1 0x4 /* swizzled int B */ 362 - 0x0 0x0 0x0 0x3 &UIC2 0x2 0x4 /* swizzled int C */ 363 - 0x0 0x0 0x0 0x4 &UIC2 0x3 0x4 /* swizzled int D */>; 364 - }; 365 - 366 - PCIE1: pcie@c0000000 { 367 - device_type = "pci"; 368 - #interrupt-cells = <1>; 369 - #size-cells = <2>; 370 - #address-cells = <3>; 371 - compatible = "ibm,plb-pciex-405ex", "ibm,plb-pciex"; 372 - primary; 373 - port = <0x1>; /* port number */ 374 - reg = <0xc0000000 0x20000000 /* Config space access */ 375 - 0xef001000 0x00001000>; /* Registers */ 376 - dcr-reg = <0x060 0x020>; 377 - sdr-base = <0x440>; 378 - 379 - /* Outbound ranges, one memory and one IO, 380 - * later cannot be changed 381 - */ 382 - ranges = <0x02000000 0x00000000 0x80000000 0x98000000 0x00000000 0x08000000 383 - 0x01000000 0x00000000 0x00000000 0xe0010000 0x00000000 0x00010000>; 384 - 385 - /* Inbound 2GB range starting at 0 */ 386 - dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x80000000>; 387 - 388 - /* This drives busses 0x40 to 0x7f */ 389 - bus-range = <0x40 0x7f>; 390 - 391 - /* Legacy interrupts (note the weird polarity, the bridge seems 392 - * to invert PCIe legacy interrupts). 393 - * We are de-swizzling here because the numbers are actually for 394 - * port of the root complex virtual P2P bridge. But I want 395 - * to avoid putting a node for it in the tree, so the numbers 396 - * below are basically de-swizzled numbers. 397 - * The real slot is on idsel 0, so the swizzling is 1:1 398 - */ 399 - interrupt-map-mask = <0x0 0x0 0x0 0x7>; 400 - interrupt-map = < 401 - 0x0 0x0 0x0 0x1 &UIC2 0xb 0x4 /* swizzled int A */ 402 - 0x0 0x0 0x0 0x2 &UIC2 0xc 0x4 /* swizzled int B */ 403 - 0x0 0x0 0x0 0x3 &UIC2 0xd 0x4 /* swizzled int C */ 404 - 0x0 0x0 0x0 0x4 &UIC2 0xe 0x4 /* swizzled int D */>; 405 - }; 406 - }; 407 - };
-212
arch/powerpc/boot/dts/klondike.dts
··· 1 - // SPDX-License-Identifier: GPL-2.0-or-later 2 - /* 3 - * Device Tree for Klondike (APM8018X) board. 4 - * 5 - * Copyright (c) 2010, Applied Micro Circuits Corporation 6 - * Author: Tanmay Inamdar <tinamdar@apm.com> 7 - */ 8 - 9 - /dts-v1/; 10 - 11 - / { 12 - #address-cells = <1>; 13 - #size-cells = <1>; 14 - model = "apm,klondike"; 15 - compatible = "apm,klondike"; 16 - dcr-parent = <&{/cpus/cpu@0}>; 17 - 18 - aliases { 19 - ethernet0 = &EMAC0; 20 - ethernet1 = &EMAC1; 21 - }; 22 - 23 - cpus { 24 - #address-cells = <1>; 25 - #size-cells = <0>; 26 - 27 - cpu@0 { 28 - device_type = "cpu"; 29 - model = "PowerPC,apm8018x"; 30 - reg = <0x00000000>; 31 - clock-frequency = <300000000>; /* Filled in by U-Boot */ 32 - timebase-frequency = <300000000>; /* Filled in by U-Boot */ 33 - i-cache-line-size = <32>; 34 - d-cache-line-size = <32>; 35 - i-cache-size = <16384>; /* 16 kB */ 36 - d-cache-size = <16384>; /* 16 kB */ 37 - dcr-controller; 38 - dcr-access-method = "native"; 39 - }; 40 - }; 41 - 42 - memory { 43 - device_type = "memory"; 44 - reg = <0x00000000 0x20000000>; /* Filled in by U-Boot */ 45 - }; 46 - 47 - UIC0: interrupt-controller { 48 - compatible = "ibm,uic"; 49 - interrupt-controller; 50 - cell-index = <0>; 51 - dcr-reg = <0x0c0 0x010>; 52 - #address-cells = <0>; 53 - #size-cells = <0>; 54 - #interrupt-cells = <2>; 55 - }; 56 - 57 - UIC1: interrupt-controller1 { 58 - compatible = "ibm,uic"; 59 - interrupt-controller; 60 - cell-index = <1>; 61 - dcr-reg = <0x0d0 0x010>; 62 - #address-cells = <0>; 63 - #size-cells = <0>; 64 - #interrupt-cells = <2>; 65 - interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */ 66 - interrupt-parent = <&UIC0>; 67 - }; 68 - 69 - UIC2: interrupt-controller2 { 70 - compatible = "ibm,uic"; 71 - interrupt-controller; 72 - cell-index = <2>; 73 - dcr-reg = <0x0e0 0x010>; 74 - #address-cells = <0>; 75 - #size-cells = <0>; 76 - #interrupt-cells = <2>; 77 - interrupts = <0x0a 0x4 0x0b 0x4>; /* cascade */ 78 - interrupt-parent = <&UIC0>; 79 - }; 80 - 81 - UIC3: interrupt-controller3 { 82 - compatible = "ibm,uic"; 83 - interrupt-controller; 84 - cell-index = <3>; 85 - dcr-reg = <0x0f0 0x010>; 86 - #address-cells = <0>; 87 - #size-cells = <0>; 88 - #interrupt-cells = <2>; 89 - interrupts = <0x10 0x4 0x11 0x4>; /* cascade */ 90 - interrupt-parent = <&UIC0>; 91 - }; 92 - 93 - plb { 94 - compatible = "ibm,plb4"; 95 - #address-cells = <1>; 96 - #size-cells = <1>; 97 - ranges; 98 - clock-frequency = <0>; /* Filled in by U-Boot */ 99 - 100 - SDRAM0: memory-controller { 101 - compatible = "ibm,sdram-apm8018x"; 102 - dcr-reg = <0x010 0x002>; 103 - }; 104 - 105 - MAL0: mcmal { 106 - compatible = "ibm,mcmal2"; 107 - dcr-reg = <0x180 0x062>; 108 - num-tx-chans = <2>; 109 - num-rx-chans = <16>; 110 - #address-cells = <0>; 111 - #size-cells = <0>; 112 - interrupt-parent = <&UIC1>; 113 - interrupts = </*TXEOB*/ 0x6 0x4 114 - /*RXEOB*/ 0x7 0x4 115 - /*SERR*/ 0x1 0x4 116 - /*TXDE*/ 0x2 0x4 117 - /*RXDE*/ 0x3 0x4>; 118 - }; 119 - 120 - POB0: opb { 121 - compatible = "ibm,opb"; 122 - #address-cells = <1>; 123 - #size-cells = <1>; 124 - ranges = <0x20000000 0x20000000 0x30000000 125 - 0x50000000 0x50000000 0x10000000 126 - 0x60000000 0x60000000 0x10000000 127 - 0xFE000000 0xFE000000 0x00010000>; 128 - dcr-reg = <0x100 0x020>; 129 - clock-frequency = <300000000>; /* Filled in by U-Boot */ 130 - 131 - RGMII0: emac-rgmii@400a2000 { 132 - compatible = "ibm,rgmii"; 133 - reg = <0x400a2000 0x00000010>; 134 - has-mdio; 135 - }; 136 - 137 - TAH0: emac-tah@400a3000 { 138 - compatible = "ibm,tah"; 139 - reg = <0x400a3000 0x100>; 140 - }; 141 - 142 - TAH1: emac-tah@400a4000 { 143 - compatible = "ibm,tah"; 144 - reg = <0x400a4000 0x100>; 145 - }; 146 - 147 - EMAC0: ethernet@400a0000 { 148 - compatible = "ibm,emac4", "ibm-emac4sync"; 149 - interrupt-parent = <&EMAC0>; 150 - interrupts = <0x0>; 151 - #interrupt-cells = <1>; 152 - #address-cells = <0>; 153 - #size-cells = <0>; 154 - interrupt-map = </*Status*/ 0x0 &UIC0 0x13 0x4>; 155 - reg = <0x400a0000 0x00000100>; 156 - local-mac-address = [000000000000]; /* Filled in by U-Boot */ 157 - mal-device = <&MAL0>; 158 - mal-tx-channel = <0x0>; 159 - mal-rx-channel = <0x0>; 160 - cell-index = <0>; 161 - max-frame-size = <9000>; 162 - rx-fifo-size = <4096>; 163 - tx-fifo-size = <2048>; 164 - phy-mode = "rgmii"; 165 - phy-address = <0x2>; 166 - turbo = "no"; 167 - phy-map = <0x00000000>; 168 - rgmii-device = <&RGMII0>; 169 - rgmii-channel = <0>; 170 - tah-device = <&TAH0>; 171 - tah-channel = <0>; 172 - has-inverted-stacr-oc; 173 - has-new-stacr-staopc; 174 - }; 175 - 176 - EMAC1: ethernet@400a1000 { 177 - compatible = "ibm,emac4", "ibm-emac4sync"; 178 - status = "disabled"; 179 - interrupt-parent = <&EMAC1>; 180 - interrupts = <0x0>; 181 - #interrupt-cells = <1>; 182 - #address-cells = <0>; 183 - #size-cells = <0>; 184 - interrupt-map = </*Status*/ 0x0 &UIC0 0x14 0x4>; 185 - reg = <0x400a1000 0x00000100>; 186 - local-mac-address = [000000000000]; /* Filled in by U-Boot */ 187 - mal-device = <&MAL0>; 188 - mal-tx-channel = <1>; 189 - mal-rx-channel = <8>; 190 - cell-index = <1>; 191 - max-frame-size = <9000>; 192 - rx-fifo-size = <4096>; 193 - tx-fifo-size = <2048>; 194 - phy-mode = "rgmii"; 195 - phy-address = <0x3>; 196 - turbo = "no"; 197 - phy-map = <0x00000000>; 198 - rgmii-device = <&RGMII0>; 199 - rgmii-channel = <1>; 200 - tah-device = <&TAH1>; 201 - tah-channel = <0>; 202 - has-inverted-stacr-oc; 203 - has-new-stacr-staopc; 204 - mdio-device = <&EMAC0>; 205 - }; 206 - }; 207 - }; 208 - 209 - chosen { 210 - stdout-path = "/plb/opb/serial@50001000"; 211 - }; 212 - };
-353
arch/powerpc/boot/dts/makalu.dts
··· 1 - /* 2 - * Device Tree Source for AMCC Makalu (405EX) 3 - * 4 - * Copyright 2007 DENX Software Engineering, Stefan Roese <sr@denx.de> 5 - * 6 - * This file is licensed under the terms of the GNU General Public 7 - * License version 2. This program is licensed "as is" without 8 - * any warranty of any kind, whether express or implied. 9 - */ 10 - 11 - /dts-v1/; 12 - 13 - / { 14 - #address-cells = <1>; 15 - #size-cells = <1>; 16 - model = "amcc,makalu"; 17 - compatible = "amcc,makalu"; 18 - dcr-parent = <&{/cpus/cpu@0}>; 19 - 20 - aliases { 21 - ethernet0 = &EMAC0; 22 - ethernet1 = &EMAC1; 23 - serial0 = &UART0; 24 - serial1 = &UART1; 25 - }; 26 - 27 - cpus { 28 - #address-cells = <1>; 29 - #size-cells = <0>; 30 - 31 - cpu@0 { 32 - device_type = "cpu"; 33 - model = "PowerPC,405EX"; 34 - reg = <0x00000000>; 35 - clock-frequency = <0>; /* Filled in by U-Boot */ 36 - timebase-frequency = <0>; /* Filled in by U-Boot */ 37 - i-cache-line-size = <32>; 38 - d-cache-line-size = <32>; 39 - i-cache-size = <16384>; /* 16 kB */ 40 - d-cache-size = <16384>; /* 16 kB */ 41 - dcr-controller; 42 - dcr-access-method = "native"; 43 - }; 44 - }; 45 - 46 - memory { 47 - device_type = "memory"; 48 - reg = <0x00000000 0x00000000>; /* Filled in by U-Boot */ 49 - }; 50 - 51 - UIC0: interrupt-controller { 52 - compatible = "ibm,uic-405ex", "ibm,uic"; 53 - interrupt-controller; 54 - cell-index = <0>; 55 - dcr-reg = <0x0c0 0x009>; 56 - #address-cells = <0>; 57 - #size-cells = <0>; 58 - #interrupt-cells = <2>; 59 - }; 60 - 61 - UIC1: interrupt-controller1 { 62 - compatible = "ibm,uic-405ex","ibm,uic"; 63 - interrupt-controller; 64 - cell-index = <1>; 65 - dcr-reg = <0x0d0 0x009>; 66 - #address-cells = <0>; 67 - #size-cells = <0>; 68 - #interrupt-cells = <2>; 69 - interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */ 70 - interrupt-parent = <&UIC0>; 71 - }; 72 - 73 - UIC2: interrupt-controller2 { 74 - compatible = "ibm,uic-405ex","ibm,uic"; 75 - interrupt-controller; 76 - cell-index = <2>; 77 - dcr-reg = <0x0e0 0x009>; 78 - #address-cells = <0>; 79 - #size-cells = <0>; 80 - #interrupt-cells = <2>; 81 - interrupts = <0x1c 0x4 0x1d 0x4>; /* cascade */ 82 - interrupt-parent = <&UIC0>; 83 - }; 84 - 85 - plb { 86 - compatible = "ibm,plb-405ex", "ibm,plb4"; 87 - #address-cells = <1>; 88 - #size-cells = <1>; 89 - ranges; 90 - clock-frequency = <0>; /* Filled in by U-Boot */ 91 - 92 - SDRAM0: memory-controller { 93 - compatible = "ibm,sdram-405ex", "ibm,sdram-4xx-ddr2"; 94 - dcr-reg = <0x010 0x002>; 95 - interrupt-parent = <&UIC2>; 96 - interrupts = <0x5 0x4 /* ECC DED Error */ 97 - 0x6 0x4 /* ECC SEC Error */ >; 98 - }; 99 - 100 - MAL0: mcmal { 101 - compatible = "ibm,mcmal-405ex", "ibm,mcmal2"; 102 - dcr-reg = <0x180 0x062>; 103 - num-tx-chans = <2>; 104 - num-rx-chans = <2>; 105 - interrupt-parent = <&MAL0>; 106 - interrupts = <0x0 0x1 0x2 0x3 0x4>; 107 - #interrupt-cells = <1>; 108 - #address-cells = <0>; 109 - #size-cells = <0>; 110 - interrupt-map = </*TXEOB*/ 0x0 &UIC0 0xa 0x4 111 - /*RXEOB*/ 0x1 &UIC0 0xb 0x4 112 - /*SERR*/ 0x2 &UIC1 0x0 0x4 113 - /*TXDE*/ 0x3 &UIC1 0x1 0x4 114 - /*RXDE*/ 0x4 &UIC1 0x2 0x4>; 115 - interrupt-map-mask = <0xffffffff>; 116 - }; 117 - 118 - POB0: opb { 119 - compatible = "ibm,opb-405ex", "ibm,opb"; 120 - #address-cells = <1>; 121 - #size-cells = <1>; 122 - ranges = <0x80000000 0x80000000 0x10000000 123 - 0xef600000 0xef600000 0x00a00000 124 - 0xf0000000 0xf0000000 0x10000000>; 125 - dcr-reg = <0x0a0 0x005>; 126 - clock-frequency = <0>; /* Filled in by U-Boot */ 127 - 128 - EBC0: ebc { 129 - compatible = "ibm,ebc-405ex", "ibm,ebc"; 130 - dcr-reg = <0x012 0x002>; 131 - #address-cells = <2>; 132 - #size-cells = <1>; 133 - clock-frequency = <0>; /* Filled in by U-Boot */ 134 - /* ranges property is supplied by U-Boot */ 135 - interrupts = <0x5 0x1>; 136 - interrupt-parent = <&UIC1>; 137 - 138 - nor_flash@0,0 { 139 - compatible = "amd,s29gl512n", "cfi-flash"; 140 - bank-width = <2>; 141 - reg = <0x00000000 0x00000000 0x04000000>; 142 - #address-cells = <1>; 143 - #size-cells = <1>; 144 - partition@0 { 145 - label = "kernel"; 146 - reg = <0x00000000 0x00200000>; 147 - }; 148 - partition@200000 { 149 - label = "root"; 150 - reg = <0x00200000 0x00200000>; 151 - }; 152 - partition@400000 { 153 - label = "user"; 154 - reg = <0x00400000 0x03b60000>; 155 - }; 156 - partition@3f60000 { 157 - label = "env"; 158 - reg = <0x03f60000 0x00040000>; 159 - }; 160 - partition@3fa0000 { 161 - label = "u-boot"; 162 - reg = <0x03fa0000 0x00060000>; 163 - }; 164 - }; 165 - }; 166 - 167 - UART0: serial@ef600200 { 168 - device_type = "serial"; 169 - compatible = "ns16550"; 170 - reg = <0xef600200 0x00000008>; 171 - virtual-reg = <0xef600200>; 172 - clock-frequency = <0>; /* Filled in by U-Boot */ 173 - current-speed = <0>; 174 - interrupt-parent = <&UIC0>; 175 - interrupts = <0x1a 0x4>; 176 - }; 177 - 178 - UART1: serial@ef600300 { 179 - device_type = "serial"; 180 - compatible = "ns16550"; 181 - reg = <0xef600300 0x00000008>; 182 - virtual-reg = <0xef600300>; 183 - clock-frequency = <0>; /* Filled in by U-Boot */ 184 - current-speed = <0>; 185 - interrupt-parent = <&UIC0>; 186 - interrupts = <0x1 0x4>; 187 - }; 188 - 189 - IIC0: i2c@ef600400 { 190 - compatible = "ibm,iic-405ex", "ibm,iic"; 191 - reg = <0xef600400 0x00000014>; 192 - interrupt-parent = <&UIC0>; 193 - interrupts = <0x2 0x4>; 194 - }; 195 - 196 - IIC1: i2c@ef600500 { 197 - compatible = "ibm,iic-405ex", "ibm,iic"; 198 - reg = <0xef600500 0x00000014>; 199 - interrupt-parent = <&UIC0>; 200 - interrupts = <0x7 0x4>; 201 - }; 202 - 203 - 204 - RGMII0: emac-rgmii@ef600b00 { 205 - compatible = "ibm,rgmii-405ex", "ibm,rgmii"; 206 - reg = <0xef600b00 0x00000104>; 207 - has-mdio; 208 - }; 209 - 210 - EMAC0: ethernet@ef600900 { 211 - linux,network-index = <0x0>; 212 - device_type = "network"; 213 - compatible = "ibm,emac-405ex", "ibm,emac4sync"; 214 - interrupt-parent = <&EMAC0>; 215 - interrupts = <0x0 0x1>; 216 - #interrupt-cells = <1>; 217 - #address-cells = <0>; 218 - #size-cells = <0>; 219 - interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4 220 - /*Wake*/ 0x1 &UIC1 0x1d 0x4>; 221 - reg = <0xef600900 0x000000c4>; 222 - local-mac-address = [000000000000]; /* Filled in by U-Boot */ 223 - mal-device = <&MAL0>; 224 - mal-tx-channel = <0>; 225 - mal-rx-channel = <0>; 226 - cell-index = <0>; 227 - max-frame-size = <9000>; 228 - rx-fifo-size = <4096>; 229 - tx-fifo-size = <2048>; 230 - rx-fifo-size-gige = <16384>; 231 - tx-fifo-size-gige = <16384>; 232 - phy-mode = "rgmii"; 233 - phy-map = <0x0000003f>; /* Start at 6 */ 234 - rgmii-device = <&RGMII0>; 235 - rgmii-channel = <0>; 236 - has-inverted-stacr-oc; 237 - has-new-stacr-staopc; 238 - }; 239 - 240 - EMAC1: ethernet@ef600a00 { 241 - linux,network-index = <0x1>; 242 - device_type = "network"; 243 - compatible = "ibm,emac-405ex", "ibm,emac4sync"; 244 - interrupt-parent = <&EMAC1>; 245 - interrupts = <0x0 0x1>; 246 - #interrupt-cells = <1>; 247 - #address-cells = <0>; 248 - #size-cells = <0>; 249 - interrupt-map = </*Status*/ 0x0 &UIC0 0x19 0x4 250 - /*Wake*/ 0x1 &UIC1 0x1f 0x4>; 251 - reg = <0xef600a00 0x000000c4>; 252 - local-mac-address = [000000000000]; /* Filled in by U-Boot */ 253 - mal-device = <&MAL0>; 254 - mal-tx-channel = <1>; 255 - mal-rx-channel = <1>; 256 - cell-index = <1>; 257 - max-frame-size = <9000>; 258 - rx-fifo-size = <4096>; 259 - tx-fifo-size = <2048>; 260 - rx-fifo-size-gige = <16384>; 261 - tx-fifo-size-gige = <16384>; 262 - phy-mode = "rgmii"; 263 - phy-map = <0x00000000>; 264 - rgmii-device = <&RGMII0>; 265 - rgmii-channel = <1>; 266 - has-inverted-stacr-oc; 267 - has-new-stacr-staopc; 268 - }; 269 - }; 270 - 271 - PCIE0: pcie@a0000000 { 272 - device_type = "pci"; 273 - #interrupt-cells = <1>; 274 - #size-cells = <2>; 275 - #address-cells = <3>; 276 - compatible = "ibm,plb-pciex-405ex", "ibm,plb-pciex"; 277 - primary; 278 - port = <0x0>; /* port number */ 279 - reg = <0xa0000000 0x20000000 /* Config space access */ 280 - 0xef000000 0x00001000>; /* Registers */ 281 - dcr-reg = <0x040 0x020>; 282 - sdr-base = <0x400>; 283 - 284 - /* Outbound ranges, one memory and one IO, 285 - * later cannot be changed 286 - */ 287 - ranges = <0x02000000 0x00000000 0x80000000 0x90000000 0x00000000 0x08000000 288 - 0x01000000 0x00000000 0x00000000 0xe0000000 0x00000000 0x00010000>; 289 - 290 - /* Inbound 2GB range starting at 0 */ 291 - dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x80000000>; 292 - 293 - /* This drives busses 0x00 to 0x3f */ 294 - bus-range = <0x0 0x3f>; 295 - 296 - /* Legacy interrupts (note the weird polarity, the bridge seems 297 - * to invert PCIe legacy interrupts). 298 - * We are de-swizzling here because the numbers are actually for 299 - * port of the root complex virtual P2P bridge. But I want 300 - * to avoid putting a node for it in the tree, so the numbers 301 - * below are basically de-swizzled numbers. 302 - * The real slot is on idsel 0, so the swizzling is 1:1 303 - */ 304 - interrupt-map-mask = <0x0 0x0 0x0 0x7>; 305 - interrupt-map = < 306 - 0x0 0x0 0x0 0x1 &UIC2 0x0 0x4 /* swizzled int A */ 307 - 0x0 0x0 0x0 0x2 &UIC2 0x1 0x4 /* swizzled int B */ 308 - 0x0 0x0 0x0 0x3 &UIC2 0x2 0x4 /* swizzled int C */ 309 - 0x0 0x0 0x0 0x4 &UIC2 0x3 0x4 /* swizzled int D */>; 310 - }; 311 - 312 - PCIE1: pcie@c0000000 { 313 - device_type = "pci"; 314 - #interrupt-cells = <1>; 315 - #size-cells = <2>; 316 - #address-cells = <3>; 317 - compatible = "ibm,plb-pciex-405ex", "ibm,plb-pciex"; 318 - primary; 319 - port = <0x1>; /* port number */ 320 - reg = <0xc0000000 0x20000000 /* Config space access */ 321 - 0xef001000 0x00001000>; /* Registers */ 322 - dcr-reg = <0x060 0x020>; 323 - sdr-base = <0x440>; 324 - 325 - /* Outbound ranges, one memory and one IO, 326 - * later cannot be changed 327 - */ 328 - ranges = <0x02000000 0x00000000 0x80000000 0x98000000 0x00000000 0x08000000 329 - 0x01000000 0x00000000 0x00000000 0xe0010000 0x00000000 0x00010000>; 330 - 331 - /* Inbound 2GB range starting at 0 */ 332 - dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x80000000>; 333 - 334 - /* This drives busses 0x40 to 0x7f */ 335 - bus-range = <0x40 0x7f>; 336 - 337 - /* Legacy interrupts (note the weird polarity, the bridge seems 338 - * to invert PCIe legacy interrupts). 339 - * We are de-swizzling here because the numbers are actually for 340 - * port of the root complex virtual P2P bridge. But I want 341 - * to avoid putting a node for it in the tree, so the numbers 342 - * below are basically de-swizzled numbers. 343 - * The real slot is on idsel 0, so the swizzling is 1:1 344 - */ 345 - interrupt-map-mask = <0x0 0x0 0x0 0x7>; 346 - interrupt-map = < 347 - 0x0 0x0 0x0 0x1 &UIC2 0xb 0x4 /* swizzled int A */ 348 - 0x0 0x0 0x0 0x2 &UIC2 0xc 0x4 /* swizzled int B */ 349 - 0x0 0x0 0x0 0x3 &UIC2 0xd 0x4 /* swizzled int C */ 350 - 0x0 0x0 0x0 0x4 &UIC2 0xe 0x4 /* swizzled int D */>; 351 - }; 352 - }; 353 - };
-314
arch/powerpc/boot/dts/obs600.dts
··· 1 - /* 2 - * Device Tree Source for PlatHome OpenBlockS 600 (405EX) 3 - * 4 - * Copyright 2011 Ben Herrenschmidt, IBM Corp. 5 - * 6 - * Based on Kilauea by: 7 - * 8 - * Copyright 2007-2009 DENX Software Engineering, Stefan Roese <sr@denx.de> 9 - * 10 - * This file is licensed under the terms of the GNU General Public 11 - * License version 2. This program is licensed "as is" without 12 - * any warranty of any kind, whether express or implied. 13 - */ 14 - 15 - /dts-v1/; 16 - 17 - / { 18 - #address-cells = <1>; 19 - #size-cells = <1>; 20 - model = "PlatHome,OpenBlockS 600"; 21 - compatible = "plathome,obs600"; 22 - dcr-parent = <&{/cpus/cpu@0}>; 23 - 24 - aliases { 25 - ethernet0 = &EMAC0; 26 - ethernet1 = &EMAC1; 27 - serial0 = &UART0; 28 - serial1 = &UART1; 29 - }; 30 - 31 - cpus { 32 - #address-cells = <1>; 33 - #size-cells = <0>; 34 - 35 - cpu@0 { 36 - device_type = "cpu"; 37 - model = "PowerPC,405EX"; 38 - reg = <0x00000000>; 39 - clock-frequency = <0>; /* Filled in by U-Boot */ 40 - timebase-frequency = <0>; /* Filled in by U-Boot */ 41 - i-cache-line-size = <32>; 42 - d-cache-line-size = <32>; 43 - i-cache-size = <16384>; /* 16 kB */ 44 - d-cache-size = <16384>; /* 16 kB */ 45 - dcr-controller; 46 - dcr-access-method = "native"; 47 - }; 48 - }; 49 - 50 - memory { 51 - device_type = "memory"; 52 - reg = <0x00000000 0x00000000>; /* Filled in by U-Boot */ 53 - }; 54 - 55 - UIC0: interrupt-controller { 56 - compatible = "ibm,uic-405ex", "ibm,uic"; 57 - interrupt-controller; 58 - cell-index = <0>; 59 - dcr-reg = <0x0c0 0x009>; 60 - #address-cells = <0>; 61 - #size-cells = <0>; 62 - #interrupt-cells = <2>; 63 - }; 64 - 65 - UIC1: interrupt-controller1 { 66 - compatible = "ibm,uic-405ex","ibm,uic"; 67 - interrupt-controller; 68 - cell-index = <1>; 69 - dcr-reg = <0x0d0 0x009>; 70 - #address-cells = <0>; 71 - #size-cells = <0>; 72 - #interrupt-cells = <2>; 73 - interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */ 74 - interrupt-parent = <&UIC0>; 75 - }; 76 - 77 - UIC2: interrupt-controller2 { 78 - compatible = "ibm,uic-405ex","ibm,uic"; 79 - interrupt-controller; 80 - cell-index = <2>; 81 - dcr-reg = <0x0e0 0x009>; 82 - #address-cells = <0>; 83 - #size-cells = <0>; 84 - #interrupt-cells = <2>; 85 - interrupts = <0x1c 0x4 0x1d 0x4>; /* cascade */ 86 - interrupt-parent = <&UIC0>; 87 - }; 88 - 89 - CPM0: cpm { 90 - compatible = "ibm,cpm"; 91 - dcr-access-method = "native"; 92 - dcr-reg = <0x0b0 0x003>; 93 - unused-units = <0x00000000>; 94 - idle-doze = <0x02000000>; 95 - standby = <0xe3e74800>; 96 - }; 97 - 98 - plb { 99 - compatible = "ibm,plb-405ex", "ibm,plb4"; 100 - #address-cells = <1>; 101 - #size-cells = <1>; 102 - ranges; 103 - clock-frequency = <0>; /* Filled in by U-Boot */ 104 - 105 - SDRAM0: memory-controller { 106 - compatible = "ibm,sdram-405ex", "ibm,sdram-4xx-ddr2"; 107 - dcr-reg = <0x010 0x002>; 108 - interrupt-parent = <&UIC2>; 109 - interrupts = <0x5 0x4 /* ECC DED Error */ 110 - 0x6 0x4>; /* ECC SEC Error */ 111 - }; 112 - 113 - CRYPTO: crypto@ef700000 { 114 - compatible = "amcc,ppc405ex-crypto", "amcc,ppc4xx-crypto"; 115 - reg = <0xef700000 0x80400>; 116 - interrupt-parent = <&UIC0>; 117 - interrupts = <0x17 0x2>; 118 - }; 119 - 120 - MAL0: mcmal { 121 - compatible = "ibm,mcmal-405ex", "ibm,mcmal2"; 122 - dcr-reg = <0x180 0x062>; 123 - num-tx-chans = <2>; 124 - num-rx-chans = <2>; 125 - interrupt-parent = <&MAL0>; 126 - interrupts = <0x0 0x1 0x2 0x3 0x4>; 127 - #interrupt-cells = <1>; 128 - #address-cells = <0>; 129 - #size-cells = <0>; 130 - interrupt-map = </*TXEOB*/ 0x0 &UIC0 0xa 0x4 131 - /*RXEOB*/ 0x1 &UIC0 0xb 0x4 132 - /*SERR*/ 0x2 &UIC1 0x0 0x4 133 - /*TXDE*/ 0x3 &UIC1 0x1 0x4 134 - /*RXDE*/ 0x4 &UIC1 0x2 0x4>; 135 - interrupt-map-mask = <0xffffffff>; 136 - }; 137 - 138 - POB0: opb { 139 - compatible = "ibm,opb-405ex", "ibm,opb"; 140 - #address-cells = <1>; 141 - #size-cells = <1>; 142 - ranges = <0x80000000 0x80000000 0x10000000 143 - 0xef600000 0xef600000 0x00a00000 144 - 0xf0000000 0xf0000000 0x10000000>; 145 - dcr-reg = <0x0a0 0x005>; 146 - clock-frequency = <0>; /* Filled in by U-Boot */ 147 - 148 - EBC0: ebc { 149 - compatible = "ibm,ebc-405ex", "ibm,ebc"; 150 - dcr-reg = <0x012 0x002>; 151 - #address-cells = <2>; 152 - #size-cells = <1>; 153 - clock-frequency = <0>; /* Filled in by U-Boot */ 154 - /* ranges property is supplied by U-Boot */ 155 - interrupts = <0x5 0x1>; 156 - interrupt-parent = <&UIC1>; 157 - 158 - nor_flash@0,0 { 159 - compatible = "amd,s29gl512n", "cfi-flash"; 160 - bank-width = <2>; 161 - reg = <0x00000000 0x00000000 0x08000000>; 162 - #address-cells = <1>; 163 - #size-cells = <1>; 164 - partition@0 { 165 - label = "kernel + initrd"; 166 - reg = <0x00000000 0x03de0000>; 167 - }; 168 - partition@3de0000 { 169 - label = "user config area"; 170 - reg = <0x03de0000 0x00080000>; 171 - }; 172 - partition@3e60000 { 173 - label = "user program area"; 174 - reg = <0x03e60000 0x04000000>; 175 - }; 176 - partition@7e60000 { 177 - label = "flat device tree"; 178 - reg = <0x07e60000 0x00080000>; 179 - }; 180 - partition@7ee0000 { 181 - label = "test program"; 182 - reg = <0x07ee0000 0x00080000>; 183 - }; 184 - partition@7f60000 { 185 - label = "u-boot env"; 186 - reg = <0x07f60000 0x00040000>; 187 - }; 188 - partition@7fa0000 { 189 - label = "u-boot"; 190 - reg = <0x07fa0000 0x00060000>; 191 - }; 192 - }; 193 - }; 194 - 195 - UART0: serial@ef600200 { 196 - device_type = "serial"; 197 - compatible = "ns16550"; 198 - reg = <0xef600200 0x00000008>; 199 - virtual-reg = <0xef600200>; 200 - clock-frequency = <0>; /* Filled in by U-Boot */ 201 - current-speed = <0>; 202 - interrupt-parent = <&UIC0>; 203 - interrupts = <0x1a 0x4>; 204 - }; 205 - 206 - UART1: serial@ef600300 { 207 - device_type = "serial"; 208 - compatible = "ns16550"; 209 - reg = <0xef600300 0x00000008>; 210 - virtual-reg = <0xef600300>; 211 - clock-frequency = <0>; /* Filled in by U-Boot */ 212 - current-speed = <0>; 213 - interrupt-parent = <&UIC0>; 214 - interrupts = <0x1 0x4>; 215 - }; 216 - 217 - IIC0: i2c@ef600400 { 218 - compatible = "ibm,iic-405ex", "ibm,iic"; 219 - reg = <0xef600400 0x00000014>; 220 - interrupt-parent = <&UIC0>; 221 - interrupts = <0x2 0x4>; 222 - #address-cells = <1>; 223 - #size-cells = <0>; 224 - 225 - rtc@68 { 226 - compatible = "dallas,ds1340"; 227 - reg = <0x68>; 228 - }; 229 - }; 230 - 231 - IIC1: i2c@ef600500 { 232 - compatible = "ibm,iic-405ex", "ibm,iic"; 233 - reg = <0xef600500 0x00000014>; 234 - interrupt-parent = <&UIC0>; 235 - interrupts = <0x7 0x4>; 236 - }; 237 - 238 - RGMII0: emac-rgmii@ef600b00 { 239 - compatible = "ibm,rgmii-405ex", "ibm,rgmii"; 240 - reg = <0xef600b00 0x00000104>; 241 - has-mdio; 242 - }; 243 - 244 - EMAC0: ethernet@ef600900 { 245 - linux,network-index = <0x0>; 246 - device_type = "network"; 247 - compatible = "ibm,emac-405ex", "ibm,emac4sync"; 248 - interrupt-parent = <&EMAC0>; 249 - interrupts = <0x0 0x1>; 250 - #interrupt-cells = <1>; 251 - #address-cells = <0>; 252 - #size-cells = <0>; 253 - interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4 254 - /*Wake*/ 0x1 &UIC1 0x1d 0x4>; 255 - reg = <0xef600900 0x000000c4>; 256 - local-mac-address = [000000000000]; /* Filled in by U-Boot */ 257 - mal-device = <&MAL0>; 258 - mal-tx-channel = <0>; 259 - mal-rx-channel = <0>; 260 - cell-index = <0>; 261 - max-frame-size = <9000>; 262 - rx-fifo-size = <4096>; 263 - tx-fifo-size = <2048>; 264 - rx-fifo-size-gige = <16384>; 265 - tx-fifo-size-gige = <16384>; 266 - phy-mode = "rgmii"; 267 - phy-map = <0x00000000>; 268 - rgmii-device = <&RGMII0>; 269 - rgmii-channel = <0>; 270 - has-inverted-stacr-oc; 271 - has-new-stacr-staopc; 272 - }; 273 - 274 - EMAC1: ethernet@ef600a00 { 275 - linux,network-index = <0x1>; 276 - device_type = "network"; 277 - compatible = "ibm,emac-405ex", "ibm,emac4sync"; 278 - interrupt-parent = <&EMAC1>; 279 - interrupts = <0x0 0x1>; 280 - #interrupt-cells = <1>; 281 - #address-cells = <0>; 282 - #size-cells = <0>; 283 - interrupt-map = </*Status*/ 0x0 &UIC0 0x19 0x4 284 - /*Wake*/ 0x1 &UIC1 0x1f 0x4>; 285 - reg = <0xef600a00 0x000000c4>; 286 - local-mac-address = [000000000000]; /* Filled in by U-Boot */ 287 - mal-device = <&MAL0>; 288 - mal-tx-channel = <1>; 289 - mal-rx-channel = <1>; 290 - cell-index = <1>; 291 - max-frame-size = <9000>; 292 - rx-fifo-size = <4096>; 293 - tx-fifo-size = <2048>; 294 - rx-fifo-size-gige = <16384>; 295 - tx-fifo-size-gige = <16384>; 296 - phy-mode = "rgmii"; 297 - phy-map = <0x00000000>; 298 - rgmii-device = <&RGMII0>; 299 - rgmii-channel = <1>; 300 - has-inverted-stacr-oc; 301 - has-new-stacr-staopc; 302 - }; 303 - 304 - GPIO: gpio@ef600800 { 305 - device_type = "gpio"; 306 - compatible = "ibm,gpio-405ex", "ibm,ppc4xx-gpio"; 307 - reg = <0xef600800 0x50>; 308 - }; 309 - }; 310 - }; 311 - chosen { 312 - stdout-path = "/plb/opb/serial@ef600200"; 313 - }; 314 - };
-119
arch/powerpc/boot/ppcboot-hotfoot.h
··· 1 - /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 - /* 3 - * This interface is used for compatibility with old U-boots *ONLY*. 4 - * Please do not imitate or extend this. 5 - */ 6 - 7 - /* 8 - * Unfortunately, the ESTeem Hotfoot board uses a mangled version of 9 - * ppcboot.h for historical reasons, and in the interest of having a 10 - * mainline kernel boot on the production board+bootloader, this was the 11 - * least-offensive solution. Please direct all flames to: 12 - * 13 - * Solomon Peachy <solomon@linux-wlan.com> 14 - * 15 - * (This header is identical to ppcboot.h except for the 16 - * TARGET_HOTFOOT bits) 17 - */ 18 - 19 - /* 20 - * (C) Copyright 2000, 2001 21 - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. 22 - */ 23 - 24 - #ifndef __PPCBOOT_H__ 25 - #define __PPCBOOT_H__ 26 - 27 - /* 28 - * Board information passed to kernel from PPCBoot 29 - * 30 - * include/asm-ppc/ppcboot.h 31 - */ 32 - 33 - #include "types.h" 34 - 35 - typedef struct bd_info { 36 - unsigned long bi_memstart; /* start of DRAM memory */ 37 - unsigned long bi_memsize; /* size of DRAM memory in bytes */ 38 - unsigned long bi_flashstart; /* start of FLASH memory */ 39 - unsigned long bi_flashsize; /* size of FLASH memory */ 40 - unsigned long bi_flashoffset; /* reserved area for startup monitor */ 41 - unsigned long bi_sramstart; /* start of SRAM memory */ 42 - unsigned long bi_sramsize; /* size of SRAM memory */ 43 - #if defined(TARGET_8xx) || defined(TARGET_CPM2) || defined(TARGET_85xx) ||\ 44 - defined(TARGET_83xx) 45 - unsigned long bi_immr_base; /* base of IMMR register */ 46 - #endif 47 - #if defined(TARGET_PPC_MPC52xx) 48 - unsigned long bi_mbar_base; /* base of internal registers */ 49 - #endif 50 - unsigned long bi_bootflags; /* boot / reboot flag (for LynxOS) */ 51 - unsigned long bi_ip_addr; /* IP Address */ 52 - unsigned char bi_enetaddr[6]; /* Ethernet address */ 53 - #if defined(TARGET_HOTFOOT) 54 - /* second onboard ethernet port */ 55 - unsigned char bi_enet1addr[6]; 56 - #define HAVE_ENET1ADDR 57 - #endif /* TARGET_HOOTFOOT */ 58 - unsigned short bi_ethspeed; /* Ethernet speed in Mbps */ 59 - unsigned long bi_intfreq; /* Internal Freq, in MHz */ 60 - unsigned long bi_busfreq; /* Bus Freq, in MHz */ 61 - #if defined(TARGET_CPM2) 62 - unsigned long bi_cpmfreq; /* CPM_CLK Freq, in MHz */ 63 - unsigned long bi_brgfreq; /* BRG_CLK Freq, in MHz */ 64 - unsigned long bi_sccfreq; /* SCC_CLK Freq, in MHz */ 65 - unsigned long bi_vco; /* VCO Out from PLL, in MHz */ 66 - #endif 67 - #if defined(TARGET_PPC_MPC52xx) 68 - unsigned long bi_ipbfreq; /* IPB Bus Freq, in MHz */ 69 - unsigned long bi_pcifreq; /* PCI Bus Freq, in MHz */ 70 - #endif 71 - unsigned long bi_baudrate; /* Console Baudrate */ 72 - #if defined(TARGET_4xx) 73 - unsigned char bi_s_version[4]; /* Version of this structure */ 74 - unsigned char bi_r_version[32]; /* Version of the ROM (IBM) */ 75 - unsigned int bi_procfreq; /* CPU (Internal) Freq, in Hz */ 76 - unsigned int bi_plb_busfreq; /* PLB Bus speed, in Hz */ 77 - unsigned int bi_pci_busfreq; /* PCI Bus speed, in Hz */ 78 - unsigned char bi_pci_enetaddr[6]; /* PCI Ethernet MAC address */ 79 - #endif 80 - #if defined(TARGET_HOTFOOT) 81 - unsigned int bi_pllouta_freq; /* PLL OUTA speed, in Hz */ 82 - #endif 83 - #if defined(TARGET_HYMOD) 84 - hymod_conf_t bi_hymod_conf; /* hymod configuration information */ 85 - #endif 86 - #if defined(TARGET_EVB64260) || defined(TARGET_405EP) || defined(TARGET_44x) || \ 87 - defined(TARGET_85xx) || defined(TARGET_83xx) || defined(TARGET_HAS_ETH1) 88 - /* second onboard ethernet port */ 89 - unsigned char bi_enet1addr[6]; 90 - #define HAVE_ENET1ADDR 91 - #endif 92 - #if defined(TARGET_EVB64260) || defined(TARGET_440GX) || \ 93 - defined(TARGET_85xx) || defined(TARGET_HAS_ETH2) 94 - /* third onboard ethernet ports */ 95 - unsigned char bi_enet2addr[6]; 96 - #define HAVE_ENET2ADDR 97 - #endif 98 - #if defined(TARGET_440GX) || defined(TARGET_HAS_ETH3) 99 - /* fourth onboard ethernet ports */ 100 - unsigned char bi_enet3addr[6]; 101 - #define HAVE_ENET3ADDR 102 - #endif 103 - #if defined(TARGET_HOTFOOT) 104 - int bi_phynum[2]; /* Determines phy mapping */ 105 - int bi_phymode[2]; /* Determines phy mode */ 106 - #endif 107 - #if defined(TARGET_4xx) 108 - unsigned int bi_opbfreq; /* OB clock in Hz */ 109 - int bi_iic_fast[2]; /* Use fast i2c mode */ 110 - #endif 111 - #if defined(TARGET_440GX) 112 - int bi_phynum[4]; /* phy mapping */ 113 - int bi_phymode[4]; /* phy mode */ 114 - #endif 115 - } bd_t; 116 - 117 - #define bi_tbfreq bi_intfreq 118 - 119 - #endif /* __PPCBOOT_H__ */
+1 -1
arch/powerpc/boot/ppcboot.h
··· 63 63 #if defined(TARGET_HYMOD) 64 64 hymod_conf_t bi_hymod_conf; /* hymod configuration information */ 65 65 #endif 66 - #if defined(TARGET_EVB64260) || defined(TARGET_405EP) || defined(TARGET_44x) || \ 66 + #if defined(TARGET_EVB64260) || defined(TARGET_44x) || \ 67 67 defined(TARGET_85xx) || defined(TARGET_83xx) || defined(TARGET_HAS_ETH1) 68 68 /* second onboard ethernet port */ 69 69 unsigned char bi_enet1addr[6];
-20
arch/powerpc/boot/wrapper
··· 468 468 fi 469 469 exit 0 470 470 ;; 471 - uboot-obs600) 472 - rm -f "$ofile" 473 - # obs600 wants a multi image with an initrd, so we need to put a fake 474 - # one in even when building a "normal" image. 475 - if [ -n "$initrd" ]; then 476 - real_rd="$initrd" 477 - else 478 - real_rd=`mktemp` 479 - echo "\0" >>"$real_rd" 480 - fi 481 - ${MKIMAGE} -A ppc -O linux -T multi -C gzip -a $membase -e $membase \ 482 - $uboot_version -d "$vmz":"$real_rd":"$dtb" "$ofile" 483 - if [ -z "$initrd" ]; then 484 - rm -f "$real_rd" 485 - fi 486 - if [ -z "$cacheit" ]; then 487 - rm -f "$vmz" 488 - fi 489 - exit 0 490 - ;; 491 471 esac 492 472 493 473 addsec() {