diff options
-rw-r--r-- | Documentation/powerpc/booting-without-of.txt | 56 |
1 files changed, 33 insertions, 23 deletions
diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt index ee0209a7de3e..a9e2d5ea9a06 100644 --- a/Documentation/powerpc/booting-without-of.txt +++ b/Documentation/powerpc/booting-without-of.txt | |||
@@ -2292,7 +2292,7 @@ platforms are moved over to use the flattened-device-tree model. | |||
2292 | properties of the device node. In general, device nodes for IP-cores | 2292 | properties of the device node. In general, device nodes for IP-cores |
2293 | will take the following form: | 2293 | will take the following form: |
2294 | 2294 | ||
2295 | (name)@(base-address) { | 2295 | (name): (generic-name)@(base-address) { |
2296 | compatible = "xlnx,(ip-core-name)-(HW_VER)" | 2296 | compatible = "xlnx,(ip-core-name)-(HW_VER)" |
2297 | [, (list of compatible devices), ...]; | 2297 | [, (list of compatible devices), ...]; |
2298 | reg = <(baseaddr) (size)>; | 2298 | reg = <(baseaddr) (size)>; |
@@ -2302,6 +2302,9 @@ platforms are moved over to use the flattened-device-tree model. | |||
2302 | xlnx,(parameter2) = <(int-value)>; | 2302 | xlnx,(parameter2) = <(int-value)>; |
2303 | }; | 2303 | }; |
2304 | 2304 | ||
2305 | (generic-name): an open firmware-style name that describes the | ||
2306 | generic class of device. Preferably, this is one word, such | ||
2307 | as 'serial' or 'ethernet'. | ||
2305 | (ip-core-name): the name of the ip block (given after the BEGIN | 2308 | (ip-core-name): the name of the ip block (given after the BEGIN |
2306 | directive in system.mhs). Should be in lowercase | 2309 | directive in system.mhs). Should be in lowercase |
2307 | and all underscores '_' converted to dashes '-'. | 2310 | and all underscores '_' converted to dashes '-'. |
@@ -2310,9 +2313,9 @@ platforms are moved over to use the flattened-device-tree model. | |||
2310 | dropped from the parameter name, the name is converted | 2313 | dropped from the parameter name, the name is converted |
2311 | to lowercase and all underscore '_' characters are | 2314 | to lowercase and all underscore '_' characters are |
2312 | converted to dashes '-'. | 2315 | converted to dashes '-'. |
2313 | (baseaddr): the C_BASEADDR parameter. | 2316 | (baseaddr): the baseaddr parameter value (often named C_BASEADDR). |
2314 | (HW_VER): from the HW_VER parameter. | 2317 | (HW_VER): from the HW_VER parameter. |
2315 | (size): equals C_HIGHADDR - C_BASEADDR + 1 | 2318 | (size): the address range size (often C_HIGHADDR - C_BASEADDR + 1). |
2316 | 2319 | ||
2317 | Typically, the compatible list will include the exact IP core version | 2320 | Typically, the compatible list will include the exact IP core version |
2318 | followed by an older IP core version which implements the same | 2321 | followed by an older IP core version which implements the same |
@@ -2342,11 +2345,11 @@ platforms are moved over to use the flattened-device-tree model. | |||
2342 | 2345 | ||
2343 | becomes the following device tree node: | 2346 | becomes the following device tree node: |
2344 | 2347 | ||
2345 | opb-uartlite-0@ec100000 { | 2348 | opb_uartlite_0: serial@ec100000 { |
2346 | device_type = "serial"; | 2349 | device_type = "serial"; |
2347 | compatible = "xlnx,opb-uartlite-1.00.b"; | 2350 | compatible = "xlnx,opb-uartlite-1.00.b"; |
2348 | reg = <ec100000 10000>; | 2351 | reg = <ec100000 10000>; |
2349 | interrupt-parent = <&opb-intc>; | 2352 | interrupt-parent = <&opb_intc_0>; |
2350 | interrupts = <1 0>; // got this from the opb_intc parameters | 2353 | interrupts = <1 0>; // got this from the opb_intc parameters |
2351 | current-speed = <d#115200>; // standard serial device prop | 2354 | current-speed = <d#115200>; // standard serial device prop |
2352 | clock-frequency = <d#50000000>; // standard serial device prop | 2355 | clock-frequency = <d#50000000>; // standard serial device prop |
@@ -2355,16 +2358,19 @@ platforms are moved over to use the flattened-device-tree model. | |||
2355 | xlnx,use-parity = <0>; | 2358 | xlnx,use-parity = <0>; |
2356 | }; | 2359 | }; |
2357 | 2360 | ||
2358 | Some IP cores actually implement 2 or more logical devices. In this case, | 2361 | Some IP cores actually implement 2 or more logical devices. In |
2359 | the device should still describe the whole IP core with a single node | 2362 | this case, the device should still describe the whole IP core with |
2360 | and add a child node for each logical device. The ranges property can | 2363 | a single node and add a child node for each logical device. The |
2361 | be used to translate from parent IP-core to the registers of each device. | 2364 | ranges property can be used to translate from parent IP-core to the |
2362 | (Note: this makes the assumption that both logical devices have the same | 2365 | registers of each device. In addition, the parent node should be |
2363 | bus binding. If this is not true, then separate nodes should be used for | 2366 | compatible with the bus type 'xlnx,compound', and should contain |
2364 | each logical device). The 'cell-index' property can be used to enumerate | 2367 | #address-cells and #size-cells, as with any other bus. (Note: this |
2365 | logical devices within an IP core. For example, the following is the | 2368 | makes the assumption that both logical devices have the same bus |
2366 | system.mhs entry for the dual ps2 controller found on the ml403 reference | 2369 | binding. If this is not true, then separate nodes should be used |
2367 | design. | 2370 | for each logical device). The 'cell-index' property can be used to |
2371 | enumerate logical devices within an IP core. For example, the | ||
2372 | following is the system.mhs entry for the dual ps2 controller found | ||
2373 | on the ml403 reference design. | ||
2368 | 2374 | ||
2369 | BEGIN opb_ps2_dual_ref | 2375 | BEGIN opb_ps2_dual_ref |
2370 | PARAMETER INSTANCE = opb_ps2_dual_ref_0 | 2376 | PARAMETER INSTANCE = opb_ps2_dual_ref_0 |
@@ -2386,21 +2392,24 @@ platforms are moved over to use the flattened-device-tree model. | |||
2386 | 2392 | ||
2387 | It would result in the following device tree nodes: | 2393 | It would result in the following device tree nodes: |
2388 | 2394 | ||
2389 | opb_ps2_dual_ref_0@a9000000 { | 2395 | opb_ps2_dual_ref_0: opb-ps2-dual-ref@a9000000 { |
2396 | #address-cells = <1>; | ||
2397 | #size-cells = <1>; | ||
2398 | compatible = "xlnx,compound"; | ||
2390 | ranges = <0 a9000000 2000>; | 2399 | ranges = <0 a9000000 2000>; |
2391 | // If this device had extra parameters, then they would | 2400 | // If this device had extra parameters, then they would |
2392 | // go here. | 2401 | // go here. |
2393 | ps2@0 { | 2402 | ps2@0 { |
2394 | compatible = "xlnx,opb-ps2-dual-ref-1.00.a"; | 2403 | compatible = "xlnx,opb-ps2-dual-ref-1.00.a"; |
2395 | reg = <0 40>; | 2404 | reg = <0 40>; |
2396 | interrupt-parent = <&opb-intc>; | 2405 | interrupt-parent = <&opb_intc_0>; |
2397 | interrupts = <3 0>; | 2406 | interrupts = <3 0>; |
2398 | cell-index = <0>; | 2407 | cell-index = <0>; |
2399 | }; | 2408 | }; |
2400 | ps2@1000 { | 2409 | ps2@1000 { |
2401 | compatible = "xlnx,opb-ps2-dual-ref-1.00.a"; | 2410 | compatible = "xlnx,opb-ps2-dual-ref-1.00.a"; |
2402 | reg = <1000 40>; | 2411 | reg = <1000 40>; |
2403 | interrupt-parent = <&opb-intc>; | 2412 | interrupt-parent = <&opb_intc_0>; |
2404 | interrupts = <3 0>; | 2413 | interrupts = <3 0>; |
2405 | cell-index = <0>; | 2414 | cell-index = <0>; |
2406 | }; | 2415 | }; |
@@ -2463,17 +2472,18 @@ platforms are moved over to use the flattened-device-tree model. | |||
2463 | 2472 | ||
2464 | Gives this device tree (some properties removed for clarity): | 2473 | Gives this device tree (some properties removed for clarity): |
2465 | 2474 | ||
2466 | plb-v34-0 { | 2475 | plb@0 { |
2467 | #address-cells = <1>; | 2476 | #address-cells = <1>; |
2468 | #size-cells = <1>; | 2477 | #size-cells = <1>; |
2478 | compatible = "xlnx,plb-v34-1.02.a"; | ||
2469 | device_type = "ibm,plb"; | 2479 | device_type = "ibm,plb"; |
2470 | ranges; // 1:1 translation | 2480 | ranges; // 1:1 translation |
2471 | 2481 | ||
2472 | plb-bram-if-cntrl-0@ffff0000 { | 2482 | plb_bram_if_cntrl_0: bram@ffff0000 { |
2473 | reg = <ffff0000 10000>; | 2483 | reg = <ffff0000 10000>; |
2474 | } | 2484 | } |
2475 | 2485 | ||
2476 | opb-v20-0 { | 2486 | opb@20000000 { |
2477 | #address-cells = <1>; | 2487 | #address-cells = <1>; |
2478 | #size-cells = <1>; | 2488 | #size-cells = <1>; |
2479 | ranges = <20000000 20000000 20000000 | 2489 | ranges = <20000000 20000000 20000000 |
@@ -2481,11 +2491,11 @@ platforms are moved over to use the flattened-device-tree model. | |||
2481 | 80000000 80000000 40000000 | 2491 | 80000000 80000000 40000000 |
2482 | c0000000 c0000000 20000000>; | 2492 | c0000000 c0000000 20000000>; |
2483 | 2493 | ||
2484 | opb-uart16550-0@a0000000 { | 2494 | opb_uart16550_0: serial@a0000000 { |
2485 | reg = <a00000000 2000>; | 2495 | reg = <a00000000 2000>; |
2486 | }; | 2496 | }; |
2487 | 2497 | ||
2488 | opb-intc-0@d1000fc0 { | 2498 | opb_intc_0: interrupt-controller@d1000fc0 { |
2489 | reg = <d1000fc0 20>; | 2499 | reg = <d1000fc0 20>; |
2490 | }; | 2500 | }; |
2491 | }; | 2501 | }; |