hc
2023-10-25 6c2073b7aa40e29d0eca7d571dd7bc590c7ecaa7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
/*
 * Device Tree Source for IBM Embedded PPC 476 Platform
 *
 * Copyright 2010 Torez Smith, IBM Corporation.
 *
 * Based on earlier code:
 *    Copyright (c) 2006, 2007 IBM Corp.
 *    Josh Boyer <jwboyer@linux.vnet.ibm.com>, David Gibson <dwg@au1.ibm.com>
 *
 * This file is licensed under the terms of the GNU General Public
 * License version 2.  This program is licensed "as is" without
 * any warranty of any kind, whether express or implied.
 */
 
/dts-v1/;
 
/ {
   #address-cells = <2>;
   #size-cells = <1>;
   model = "ibm,iss-4xx";
   compatible = "ibm,iss-4xx";
   dcr-parent = <&{/cpus/cpu@0}>;
 
   aliases {
       serial0 = &UART0;
   };
 
   cpus {
       #address-cells = <1>;
       #size-cells = <0>;
 
       cpu@0 {
           device_type = "cpu";
           model = "PowerPC,4xx"; // real CPU changed in sim
           reg = <0x00000000>;
           clock-frequency = <100000000>; // 100Mhz :-)
           timebase-frequency = <100000000>;
           i-cache-line-size = <32>; // may need fixup in sim
           d-cache-line-size = <32>; // may need fixup in sim
           i-cache-size = <32768>; /* may need fixup in sim */
           d-cache-size = <32768>; /* may need fixup in sim */
           dcr-controller;
           dcr-access-method = "native";
       };
   };
 
   memory {
       device_type = "memory";
       reg = <0x00000000 0x00000000 0x00000000>; // Filled in by zImage
   };
 
   UIC0: interrupt-controller0 {
       compatible = "ibm,uic-4xx", "ibm,uic";
       interrupt-controller;
       cell-index = <0>;
       dcr-reg = <0x0c0 0x009>;
       #address-cells = <0>;
       #size-cells = <0>;
       #interrupt-cells = <2>;
 
   };
 
   UIC1: interrupt-controller1 {
       compatible = "ibm,uic-4xx", "ibm,uic";
       interrupt-controller;
       cell-index = <1>;
       dcr-reg = <0x0d0 0x009>;
       #address-cells = <0>;
       #size-cells = <0>;
       #interrupt-cells = <2>;
       interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
       interrupt-parent = <&UIC0>;
   };
 
   plb {
       compatible = "ibm,plb-4xx", "ibm,plb4"; /* Could be PLB6, doesn't matter */
       #address-cells = <2>;
       #size-cells = <1>;
       ranges;
       clock-frequency = <0>; // Filled in by zImage
 
       POB0: opb {
           compatible = "ibm,opb-4xx", "ibm,opb";
           #address-cells = <1>;
           #size-cells = <1>;
           /* Wish there was a nicer way of specifying a full 32-bit
              range */
           ranges = <0x00000000 0x00000001 0x00000000 0x80000000
                 0x80000000 0x00000001 0x80000000 0x80000000>;
           clock-frequency = <0>; // Filled in by zImage
           UART0: serial@40000200 {
               device_type = "serial";
               compatible = "ns16550a";
               reg = <0x40000200 0x00000008>;
               virtual-reg = <0xe0000200>;
               clock-frequency = <11059200>;
               current-speed = <115200>;
               interrupt-parent = <&UIC0>;
               interrupts = <0x0 0x4>;
           };
       };
   };
 
   nvrtc {
       compatible = "ds1743-nvram", "ds1743", "rtc-ds1743";
       reg = <0 0xEF703000 0x2000>;
   };
   iss-block {
       compatible = "ibm,iss-sim-block-device";
       reg = <0 0xEF701000 0x1000>;
   };
 
   chosen {
       stdout-path = "/plb/opb/serial@40000200";
   };
};