diff options
| author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-11-09 18:16:52 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-11-09 18:16:52 -0500 |
| commit | c4888f9ffafe7db107b7eafb3a68eaeeff3779c3 (patch) | |
| tree | d30da15f6b5d74c8c04fd92991af5e1615d95691 | |
| parent | e36aeee65d4db050bd8713537416a0a0632db079 (diff) | |
| parent | 688016f4e2028e3c2c27e959ad001536e10ee2c5 (diff) | |
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (37 commits)
[POWERPC] EEH: Make sure warning message is printed
[POWERPC] Make altivec code in swsusp_32.S depend on CONFIG_ALTIVEC
[POWERPC] windfarm: Fix windfarm thread freezer interaction
[POWERPC] Fix si_addr value on low level hash failures
[POWERPC] Refresh ppc64_defconfig and enable pasemi-related options
[POWERPC] pasemi: Update defconfig
[POWERPC] iSeries: Fix ref counting in vio setup
[POWERPC] ] Fix memset size error
[POWERPC] Fix link errors for allyesconfig
[POWERPC] iSeries_init_IRQ non-PCI tidy
[POWERPC] Change fallocate to match unistd.h on powerpc
[POWERPC] EEH: Avoid crash on null device
[POWERPC] EEH: Drivers that need reset trump others
[POWERPC] EEH: Clean up comments
[POWERPC] Fix off-by-one error in setting decrementer on Book E/4xx (v2)
[POWERPC] Fix switch_slb handling of 1T ESID values
[POWERPC] Fix build failure when CONFIG_VIRT_CPU_ACCOUNTING is not defined
[POWERPC] Include udbg.h when using udbg_printf
[POWERPC] Fix cache line vs. block size confusion
[POWERPC] Fix sysctl table check failure on PowerMac
...
53 files changed, 996 insertions, 360 deletions
diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt index a96e85397e..ac1be25c1e 100644 --- a/Documentation/powerpc/booting-without-of.txt +++ b/Documentation/powerpc/booting-without-of.txt | |||
| @@ -52,6 +52,7 @@ Table of Contents | |||
| 52 | i) Freescale QUICC Engine module (QE) | 52 | i) Freescale QUICC Engine module (QE) |
| 53 | j) CFI or JEDEC memory-mapped NOR flash | 53 | j) CFI or JEDEC memory-mapped NOR flash |
| 54 | k) Global Utilities Block | 54 | k) Global Utilities Block |
| 55 | l) Xilinx IP cores | ||
| 55 | 56 | ||
| 56 | VII - Specifying interrupt information for devices | 57 | VII - Specifying interrupt information for devices |
| 57 | 1) interrupts property | 58 | 1) interrupts property |
| @@ -851,12 +852,18 @@ address which can extend beyond that limit. | |||
| 851 | /cpus/PowerPC,970FX@0 | 852 | /cpus/PowerPC,970FX@0 |
| 852 | /cpus/PowerPC,970FX@1 | 853 | /cpus/PowerPC,970FX@1 |
| 853 | (unit addresses do not require leading zeroes) | 854 | (unit addresses do not require leading zeroes) |
| 854 | - d-cache-line-size : one cell, L1 data cache line size in bytes | 855 | - d-cache-block-size : one cell, L1 data cache block size in bytes (*) |
| 855 | - i-cache-line-size : one cell, L1 instruction cache line size in | 856 | - i-cache-block-size : one cell, L1 instruction cache block size in |
| 856 | bytes | 857 | bytes |
| 857 | - d-cache-size : one cell, size of L1 data cache in bytes | 858 | - d-cache-size : one cell, size of L1 data cache in bytes |
| 858 | - i-cache-size : one cell, size of L1 instruction cache in bytes | 859 | - i-cache-size : one cell, size of L1 instruction cache in bytes |
| 859 | 860 | ||
| 861 | (*) The cache "block" size is the size on which the cache management | ||
| 862 | instructions operate. Historically, this document used the cache | ||
| 863 | "line" size here which is incorrect. The kernel will prefer the cache | ||
| 864 | block size and will fallback to cache line size for backward | ||
| 865 | compatibility. | ||
| 866 | |||
| 860 | Recommended properties: | 867 | Recommended properties: |
| 861 | 868 | ||
| 862 | - timebase-frequency : a cell indicating the frequency of the | 869 | - timebase-frequency : a cell indicating the frequency of the |
| @@ -870,6 +877,10 @@ address which can extend beyond that limit. | |||
| 870 | for the above, the common code doesn't use that property, but | 877 | for the above, the common code doesn't use that property, but |
| 871 | you are welcome to re-use the pSeries or Maple one. A future | 878 | you are welcome to re-use the pSeries or Maple one. A future |
| 872 | kernel version might provide a common function for this. | 879 | kernel version might provide a common function for this. |
| 880 | - d-cache-line-size : one cell, L1 data cache line size in bytes | ||
| 881 | if different from the block size | ||
| 882 | - i-cache-line-size : one cell, L1 instruction cache line size in | ||
| 883 | bytes if different from the block size | ||
| 873 | 884 | ||
| 874 | You are welcome to add any property you find relevant to your board, | 885 | You are welcome to add any property you find relevant to your board, |
| 875 | like some information about the mechanism used to soft-reset the | 886 | like some information about the mechanism used to soft-reset the |
| @@ -2242,6 +2253,266 @@ platforms are moved over to use the flattened-device-tree model. | |||
| 2242 | available. | 2253 | available. |
| 2243 | For Axon: 0x0000012a | 2254 | For Axon: 0x0000012a |
| 2244 | 2255 | ||
| 2256 | l) Xilinx IP cores | ||
| 2257 | |||
| 2258 | The Xilinx EDK toolchain ships with a set of IP cores (devices) for use | ||
| 2259 | in Xilinx Spartan and Virtex FPGAs. The devices cover the whole range | ||
| 2260 | of standard device types (network, serial, etc.) and miscellanious | ||
| 2261 | devices (gpio, LCD, spi, etc). Also, since these devices are | ||
| 2262 | implemented within the fpga fabric every instance of the device can be | ||
| 2263 | synthesised with different options that change the behaviour. | ||
| 2264 | |||
| 2265 | Each IP-core has a set of parameters which the FPGA designer can use to | ||
| 2266 | control how the core is synthesized. Historically, the EDK tool would | ||
| 2267 | extract the device parameters relevant to device drivers and copy them | ||
| 2268 | into an 'xparameters.h' in the form of #define symbols. This tells the | ||
| 2269 | device drivers how the IP cores are configured, but it requres the kernel | ||
| 2270 | to be recompiled every time the FPGA bitstream is resynthesized. | ||
| 2271 | |||
| 2272 | The new approach is to export the parameters into the device tree and | ||
| 2273 | generate a new device tree each time the FPGA bitstream changes. The | ||
| 2274 | parameters which used to be exported as #defines will now become | ||
| 2275 | properties of the device node. In general, device nodes for IP-cores | ||
| 2276 | will take the following form: | ||
| 2277 | |||
| 2278 | (name)@(base-address) { | ||
| 2279 | compatible = "xlnx,(ip-core-name)-(HW_VER)" | ||
| 2280 | [, (list of compatible devices), ...]; | ||
| 2281 | reg = <(baseaddr) (size)>; | ||
| 2282 | interrupt-parent = <&interrupt-controller-phandle>; | ||
| 2283 | interrupts = < ... >; | ||
| 2284 | xlnx,(parameter1) = "(string-value)"; | ||
| 2285 | xlnx,(parameter2) = <(int-value)>; | ||
| 2286 | }; | ||
| 2287 | |||
| 2288 | (ip-core-name): the name of the ip block (given after the BEGIN | ||
| 2289 | directive in system.mhs). Should be in lowercase | ||
| 2290 | and all underscores '_' converted to dashes '-'. | ||
| 2291 | (name): is derived from the "PARAMETER INSTANCE" value. | ||
| 2292 | (parameter#): C_* parameters from system.mhs. The C_ prefix is | ||
| 2293 | dropped from the parameter name, the name is converted | ||
| 2294 | to lowercase and all underscore '_' characters are | ||
| 2295 | converted to dashes '-'. | ||
| 2296 | (baseaddr): the C_BASEADDR parameter. | ||
| 2297 | (HW_VER): from the HW_VER parameter. | ||
| 2298 | (size): equals C_HIGHADDR - C_BASEADDR + 1 | ||
| 2299 | |||
| 2300 | Typically, the compatible list will include the exact IP core version | ||
| 2301 | followed by an older IP core version which implements the same | ||
| 2302 | interface or any other device with the same interface. | ||
| 2303 | |||
| 2304 | 'reg', 'interrupt-parent' and 'interrupts' are all optional properties. | ||
| 2305 | |||
| 2306 | For example, the following block from system.mhs: | ||
| 2307 | |||
| 2308 | BEGIN opb_uartlite | ||
| 2309 | PARAMETER INSTANCE = opb_uartlite_0 | ||
| 2310 | PARAMETER HW_VER = 1.00.b | ||
| 2311 | PARAMETER C_BAUDRATE = 115200 | ||
