* Re: Linux doesn not boot from u-boot on ML403
From: Grant Likely @ 2007-08-28 15:10 UTC (permalink / raw)
To: Miroslaw Dach; +Cc: Leonid, linuxppc-embedded
In-Reply-To: <Pine.LNX.4.44.0708281642520.4960-100000@slslc02.psi.ch>
On 8/28/07, Miroslaw Dach <miroslaw.dach@psi.ch> wrote:
> 8. I have typed: md 0x20f0c4 100 and it showed me the buffer:
>
> 0020f0c4: 3c353e5b 20202020 302e3030 30303030 <5>[ 0.000000
> 0020f0d4: 5d204c69 6e757820 76657273 696f6e20 ] Linux version
> 0020f0e4: 322e362e 32312d72 63362028 726f6f74 2.6.21-rc6 (root
> 0020f0f4: 40706335 32313529 20286763 63207665 @pc5215) (gcc ve
> 0020f104: 7273696f 6e20342e 302e3229 20233136 rsion 4.0.2) #16
> 0020f114: 204d6f6e 20417567 20323720 31323a33 Mon Aug 27 12:3
> 0020f124: 373a3038 20434553 54203230 30370a3c 7:08 CEST 2007.<
> 0020f134: 363e5b20 20202030 2e303030 3030305d 6>[ 0.000000]
> 0020f144: 2058696c 696e7820 4d4c3430 33205265 Xilinx ML403 Re
> 0020f154: 66657265 6e636520 53797374 656d2028 ference System (
> 0020f164: 56697274 65782d34 20465829 0a3c373e Virtex-4 FX).<7>
> 0020f174: 5b202020 20302e30 30303030 305d2045 [ 0.000000] E
> 0020f184: 6e746572 696e6720 6164645f 61637469 ntering add_acti
> 0020f194: 76655f72 616e6765 28302c20 302c2038 ve_range(0, 0, 8
> 0020f1a4: 31393129 20302065 6e747269 6573206f 191) 0 entries o
> 0020f1b4: 66203235 36207573 65640a3c 343e5b20 f 256 used.<4>[
> 0020f1c4: 20202030 2e303030 3030305d 205a6f6e 0.000000] Zon
> 0020f1d4: 65205046 4e207261 6e676573 3a0a3c34 e PFN ranges:.<4
>
> So it seams to be that the address points to the __log_buf (I hope).
>
> Does it mean that when I try to start zImage kernel from u-boot
> it hangs during uncompressing the image and it does even start booting?
Think about what you're looking at. That buffer is ASCII text. Does
it look like the entire buffer is displayed, or does it look like
there is more?
g.
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195
^ permalink raw reply
* Re: Linux doesn not boot from u-boot on ML403
From: Miroslaw Dach @ 2007-08-28 15:22 UTC (permalink / raw)
To: Grant Likely; +Cc: Leonid, linuxppc-embedded
In-Reply-To: <fa686aa40708280810v48d294h87779374e6a7038d@mail.gmail.com>
This buffer refers to the kernel which I boot straight from jtag but not
u-boot.
Below I attach whole buffer printout:
=> 0x20f0c4 200
0020f0c4: 3c353e5b 20202020 302e3030 30303030 <5>[ 0.000000
0020f0d4: 5d204c69 6e757820 76657273 696f6e20 ] Linux version
0020f0e4: 322e362e 32312d72 63362028 726f6f74 2.6.21-rc6 (root
0020f0f4: 40706335 32313529 20286763 63207665 @pc5215) (gcc ve
0020f104: 7273696f 6e20342e 302e3229 20233136 rsion 4.0.2) #16
0020f114: 204d6f6e 20417567 20323720 31323a33 Mon Aug 27 12:3
0020f124: 373a3038 20434553 54203230 30370a3c 7:08 CEST 2007.<
0020f134: 363e5b20 20202030 2e303030 3030305d 6>[ 0.000000]
0020f144: 2058696c 696e7820 4d4c3430 33205265 Xilinx ML403 Re
0020f154: 66657265 6e636520 53797374 656d2028 ference System (
0020f164: 56697274 65782d34 20465829 0a3c373e Virtex-4 FX).<7>
0020f174: 5b202020 20302e30 30303030 305d2045 [ 0.000000] E
0020f184: 6e746572 696e6720 6164645f 61637469 ntering add_acti
0020f194: 76655f72 616e6765 28302c20 302c2038 ve_range(0, 0, 8
0020f1a4: 31393129 20302065 6e747269 6573206f 191) 0 entries o
0020f1b4: 66203235 36207573 65640a3c 343e5b20 f 256 used.<4>[
0020f1c4: 20202030 2e303030 3030305d 205a6f6e 0.000000] Zon
0020f1d4: 65205046 4e207261 6e676573 3a0a3c34 e PFN ranges:.<4
0020f1e4: 3e5b2020 2020302e 30303030 30305d20 >[ 0.000000]
0020f1f4: 2020444d 41202020 20202020 20202020 DMA
0020f204: 20203020 2d3e2020 20202038 3139310a 0 -> 8191.
0020f214: 3c343e5b 20202020 302e3030 30303030 <4>[ 0.000000
0020f224: 5d202020 4e6f726d 616c2020 20202020 ] Normal
0020f234: 20383139 31202d3e 20202020 20383139 8191 -> 819
0020f244: 310a3c34 3e5b2020 2020302e 30303030 1.<4>[ 0.0000
0020f254: 30305d20 6561726c 795f6e6f 64655f6d 00] early_node_m
0020f264: 61705b31 5d206163 74697665 2050464e ap[1] active PFN
0020f274: 2072616e 6765730a 3c343e5b 20202020 ranges.<4>[
0020f284: 302e3030 30303030 5d202020 2020303a 0.000000] 0:
0020f294: 20202020 20202020 30202d3e 20202020 0 ->
0020f2a4: 20383139 310a3c37 3e5b2020 2020302e 8191.<7>[ 0.
0020f2b4: 30303030 30305d20 4f6e206e 6f646520 000000] On node
0020f2c4: 3020746f 74616c70 61676573 3a203831 0 totalpages: 81
0020f2d4: 39310a3c 373e5b20 20202030 2e303030 91.<7>[ 0.000
0020f2e4: 3030305d 20202044 4d41207a 6f6e653a 000] DMA zone:
0020f2f4: 20363320 70616765 73207573 65642066 63 pages used f
0020f304: 6f72206d 656d6d61 700a3c37 3e5b2020 or memmap.<7>[
0020f314: 2020302e 30303030 30305d20 2020444d 0.000000] DM
0020f324: 41207a6f 6e653a20 30207061 67657320 A zone: 0 pages
0020f334: 72657365 72766564 0a3c373e 5b202020 reserved.<7>[
0020f344: 20302e30 30303030 305d2020 20444d41 0.000000] DMA
0020f354: 207a6f6e 653a2038 31323820 70616765 zone: 8128 page
0020f364: 732c204c 49464f20 62617463 683a300a s, LIFO batch:0.
0020f374: 3c373e5b 20202020 302e3030 30303030 <7>[ 0.000000
0020f384: 5d202020 4e6f726d 616c207a 6f6e653a ] Normal zone:
0020f394: 20302070 61676573 20757365 6420666f 0 pages used fo
0020f3a4: 72206d65 6d6d6170 0a3c343e 5b202020 r memmap.<4>[
0020f3b4: 20302e30 30303030 305d2042 75696c74 0.000000] Built
0020f3c4: 2031207a 6f6e656c 69737473 2e202054 1 zonelists. T
0020f3d4: 6f74616c 20706167 65733a20 38313238 otal pages: 8128
0020f3e4: 0a3c353e 5b202020 20302e30 30303030 .<5>[ 0.00000
0020f3f4: 305d204b 65726e65 6c20636f 6d6d616e 0] Kernel comman
0020f404: 64206c69 6e653a20 636f6e73 6f6c653d d line: console=
0020f414: 74747955 4c302c39 36303020 726f6f74 ttyUL0,9600 root
0020f424: 3d2f6465 762f6e66 73207277 206e6673 =/dev/nfs rw nfs
0020f434: 726f6f74 3d313239 2e313239 2e313434 root=129.129.144
0020f444: 2e313133 3a2f6f70 742f656c 646b3431 .113:/opt/eldk41
0020f454: 2f707063 5f347878 2c746370 20206970 /ppc_4xx,tcp ip
0020f464: 3d3a3a3a 3a766972 74657834 2d6d6972 =::::virtex4-mir
0020f474: 656b3a65 7468303a 64686370 2070616e ek:eth0:dhcp pan
0020f484: 69633d31 0a3c363e 5b202020 20302e30 ic=1.<6>[ 0.0
0020f494: 30303030 305d2058 696c696e 7820494e 00000] Xilinx IN
0020f4a4: 54432023 30206174 20307834 31323030 TC #0 at 0x41200
0020f4b4: 30303020 6d617070 65642074 6f203078 000 mapped to 0x
0020f4c4: 46444646 46303030 0a3c343e 5b202020 FDFFF000.<4>[
0020f4d4: 20302e30 30303030 305d2050 49442068 0.000000] PID h
0020f4e4: 61736820 7461626c 6520656e 74726965 ash table entrie
0020f4f4: 733a2031 32382028 6f726465 723a2037 s: 128 (order: 7
0020f504: 2c203531 32206279 74657329 0a3c343e , 512 bytes).<4>
0020f514: 5b202020 20302e30 30303237 385d2043 [ 0.000278] C
0020f524: 6f6e736f 6c653a20 636f6c6f 75722064 onsole: colour d
0020f534: 756d6d79 20646576 69636520 38307832 ummy device 80x2
0020f544: 350a3c34 3e5b2020 2020302e 30303036 5.<4>[ 0.0006
0020f554: 30335d20 44656e74 72792063 61636865 03] Dentry cache
0020f564: 20686173 68207461 626c6520 656e7472 hash table entr
0020f574: 6965733a 20343039 3620286f 72646572 ies: 4096 (order
0020f584: 3a20322c 20313633 38342062 79746573 : 2, 16384 bytes
0020f594: 290a3c34 3e5b2020 2020302e 30303131 ).<4>[ 0.0011
0020f5a4: 37315d20 496e6f64 652d6361 63686520 71] Inode-cache
0020f5b4: 68617368 20746162 6c652065 6e747269 hash table entri
0020f5c4: 65733a20 32303438 20286f72 6465723a es: 2048 (order:
0020f5d4: 20312c20 38313932 20627974 6573290a 1, 8192 bytes).
0020f5e4: 3c343e5b 20202020 302e3031 30393034 <4>[ 0.010904
0020f5f4: 5d204d65 6d6f7279 3a203330 3238386b ] Memory: 30288k
0020f604: 20617661 696c6162 6c652028 31353638 available (1568
0020f614: 6b206b65 726e656c 20636f64 652c2035 k kernel code, 5
0020f624: 31326b20 64617461 2c203936 6b20696e 12k data, 96k in
0020f634: 69742c20 306b2068 6967686d 656d290a it, 0k highmem).
0020f644: 3c373e5b 20202020 302e3031 32363435 <7>[ 0.012645
0020f654: 5d204361 6c696272 6174696e 67206465 ] Calibrating de
0020f664: 6c617920 6c6f6f70 2e2e2e20 39392e35 lay loop... 99.5
0020f674: 3820426f 676f4d49 50532028 6c706a3d 8 BogoMIPS (lpj=
0020f684: 31393931 3638290a 3c343e5b 20202020 199168).<4>[
0020f694: 302e3039 37303031 5d204d6f 756e742d 0.097001] Mount-
0020f6a4: 63616368 65206861 73682074 61626c65 cache hash table
0020f6b4: 20656e74 72696573 3a203531 320a3c36 entries: 512.<6
0020f6c4: 3e5b2020 2020302e 31303230 32365d20 >[ 0.102026]
0020f6d4: 4e45543a 20526567 69737465 72656420 NET: Registered
0020f6e4: 70726f74 6f636f6c 2066616d 696c7920 protocol family
0020f6f4: 31360a3c 363e5b20 20202030 2e313233 16.<6>[ 0.123
0020f704: 3532335d 204e4554 3a205265 67697374 523] NET: Regist
0020f714: 65726564 2070726f 746f636f 6c206661 ered protocol fa
0020f724: 6d696c79 20320a3c 343e5b20 20202030 mily 2.<4>[ 0
0020f734: 2e313630 3438315d 20495020 726f7574 .160481] IP rout
0020f744: 65206361 63686520 68617368 20746162 e cache hash tab
0020f754: 6c652065 6e747269 65733a20 31303234 le entries: 1024
0020f764: 20286f72 6465723a 20302c20 34303936 (order: 0, 4096
0020f774: 20627974 6573290a 3c343e5b 20202020 bytes).<4>[
0020f784: 302e3136 31323734 5d205443 50206573 0.161274] TCP es
0020f794: 7461626c 69736865 64206861 73682074 tablished hash t
0020f7a4: 61626c65 20656e74 72696573 3a203130 able entries: 10
0020f7b4: 32342028 6f726465 723a2031 2c203831 24 (order: 1, 81
0020f7c4: 39322062 79746573 290a3c34 3e5b2020 92 bytes).<4>[
0020f7d4: 2020302e 31363135 39355d20 54435020 0.161595] TCP
0020f7e4: 62696e64 20686173 68207461 626c6520 bind hash table
0020f7f4: 656e7472 6965733a 20313032 3420286f entries: 1024 (o
0020f804: 72646572 3a20302c 20343039 36206279 rder: 0, 4096 by
0020f814: 74657329 0a3c363e 5b202020 20302e31 tes).<6>[ 0.1
0020f824: 36313831 385d2054 43503a20 48617368 61818] TCP: Hash
0020f834: 20746162 6c657320 636f6e66 69677572 tables configur
0020f844: 65642028 65737461 626c6973 68656420 ed (established
0020f854: 31303234 2062696e 64203130 3234290a 1024 bind 1024).
0020f864: 3c363e5b 20202020 302e3136 31383938 <6>[ 0.161898
0020f874: 5d205443 50207265 6e6f2072 65676973 ] TCP reno regis
0020f884: 74657265 640a3c36 3e5b2020 2020302e tered.<6>[ 0.
0020f894: 31373934 37385d20 696f2073 63686564 179478] io sched
0020f8a4: 756c6572 206e6f6f 70207265 67697374 uler noop regist
0020f8b4: 65726564 0a3c363e 5b202020 20302e31 ered.<6>[ 0.1
=>
0020f8c4: 37393536 315d2069 6f207363 68656475 79561] io schedu
0020f8d4: 6c657220 616e7469 63697061 746f7279 ler anticipatory
0020f8e4: 20726567 69737465 72656420 28646566 registered (def
0020f8f4: 61756c74 290a3c36 3e5b2020 2020302e ault).<6>[ 0.
0020f904: 31373936 33375d20 696f2073 63686564 179637] io sched
0020f914: 756c6572 20646561 646c696e 65207265 uler deadline re
0020f924: 67697374 65726564 0a3c363e 5b202020 gistered.<6>[
0020f934: 20302e31 37393932 305d2069 6f207363 0.179920] io sc
0020f944: 68656475 6c657220 63667120 72656769 heduler cfq regi
0020f954: 73746572 65640a3c 363e5b20 20202031 stered.<6>[ 1
0020f964: 2e303034 3633395d 20756172 746c6974 .004639] uartlit
0020f974: 652e303a 20747479 554c3020 6174204d e.0: ttyUL0 at M
0020f984: 4d494f20 30783430 36303030 30332028 MIO 0x40600003 (
0020f994: 69727120 3d203229 20697320 61207561 irq = 2) is a ua
0020f9a4: 72746c69 74650a3c 343e5b20 20202032 rtlite.<4>[ 2
0020f9b4: 2e393031 3633335d 2052414d 4449534b .901633] RAMDISK
0020f9c4: 20647269 76657220 696e6974 69616c69 driver initiali
0020f9d4: 7a65643a 20312052 414d2064 69736b73 zed: 1 RAM disks
0020f9e4: 206f6620 38313932 4b207369 7a652031 of 8192K size 1
0020f9f4: 30323420 626c6f63 6b73697a 650a3c36 024 blocksize.<6
0020fa04: 3e5b2020 2020322e 39393232 37395d20 >[ 2.992279]
0020fa14: 74756e3a 20556e69 76657273 616c2054 tun: Universal T
0020fa24: 554e2f54 41502064 65766963 65206472 UN/TAP device dr
0020fa34: 69766572 2c20312e 360a3c36 3e5b2020 iver, 1.6.<6>[
0020fa44: 2020332e 30353239 36315d20 74756e3a 3.052961] tun:
0020fa54: 20284329 20313939 392d3230 3034204d (C) 1999-2004 M
0020fa64: 6178204b 7261736e 79616e73 6b79203c ax Krasnyansky <
0020fa74: 6d61786b 40717561 6c636f6d 6d2e636f maxk@qualcomm.co
0020fa84: 6d3e0a3c 363e5b20 20202033 2e313238 m>.<6>[ 3.128
0020fa94: 3733335d 20585465 6d61633a 20757369 733] XTemac: usi
0020faa4: 6e672046 49464f20 64697265 63742069 ng FIFO direct i
0020fab4: 6e746572 72757074 20647269 76656e20 nterrupt driven
0020fac4: 6d6f6465 2e0a3c36 3e5b2020 2020332e mode..<6>[ 3.
0020fad4: 31393639 33355d20 65746825 643a2058 196935] eth%d: X
0020fae4: 54656d61 633a2050 48592064 65746563 Temac: PHY detec
0020faf4: 74656420 61742061 64647265 73732033 ted at address 3
0020fb04: 2e0a3c36 3e5b2020 2020332e 32353931 ..<6>[ 3.2591
0020fb14: 35385d20 65746830 3a205869 6c696e78 58] eth0: Xilinx
0020fb24: 2054454d 41432023 30206174 20307838 TEMAC #0 at 0x8
0020fb34: 31323030 30303020 6d617070 65642074 1200000 mapped t
0020fb44: 6f203078 43323032 30303030 2c206972 o 0xC2020000, ir
0020fb54: 713d300a 3c363e5b 20202020 332e3334 q=0.<6>[ 3.34
0020fb64: 32383037 5d206574 68303a20 5854656d 2807] eth0: XTem
0020fb74: 61632069 6420312e 30662c20 626c6f63 ac id 1.0f, bloc
0020fb84: 6b206964 20352c20 74797065 20380a3c k id 5, type 8.<
0020fb94: 363e5b20 20202033 2e343033 3233385d 6>[ 3.403238]
0020fba4: 206d6963 653a2050 532f3220 6d6f7573 mice: PS/2 mous
0020fbb4: 65206465 76696365 20636f6d 6d6f6e20 e device common
0020fbc4: 666f7220 616c6c20 6d696365 0a3c363e for all mice.<6>
0020fbd4: 5b202020 20332e34 36353937 385d2054 [ 3.465978] T
0020fbe4: 43502063 75626963 20726567 69737465 CP cubic registe
0020fbf4: 7265640a 3c363e5b 20202020 332e3530 red.<6>[ 3.50
0020fc04: 34383134 5d204e45 543a2052 65676973 4814] NET: Regis
0020fc14: 74657265 64207072 6f746f63 6f6c2066 tered protocol f
0020fc24: 616d696c 7920310a 3c363e5b 20202020 amily 1.<6>[
0020fc34: 332e3535 37303939 5d204e45 543a2052 3.557099] NET: R
0020fc44: 65676973 74657265 64207072 6f746f63 egistered protoc
0020fc54: 6f6c2066 616d696c 79203137 0a3c363e ol family 17.<6>
0020fc64: 5b202020 20342e31 31333537 345d2065 [ 4.113574] e
0020fc74: 7468303a 20585465 6d61633a 204f7074 th0: XTemac: Opt
0020fc84: 696f6e73 3a203078 62386632 0a3c363e ions: 0xb8f2.<6>
0020fc94: 5b202020 20382e31 34353433 305d2065 [ 8.145430] e
0020fca4: 7468303a 20585465 6d61633a 20576520 th0: XTemac: We
0020fcb4: 72656e65 676f7469 61746564 20746865 renegotiated the
0020fcc4: 20737065 65642074 6f3a2031 30300a3c speed to: 100.<
0020fcd4: 363e5b20 20202038 2e323132 3134375d 6>[ 8.212147]
0020fce4: 20657468 303a2058 54656d61 633a2073 eth0: XTemac: s
0020fcf4: 70656564 20736574 20746f20 3130304d peed set to 100M
0020fd04: 622f730a 3c353e5b 20202020 392e3237 b/s.<5>[ 9.27
0020fd14: 36303637 5d205365 6e64696e 67204448 6067] Sending DH
0020fd24: 43502072 65717565 73747320 2e2c204f CP requests ., O
0020fd34: 4b0a3c34 3e5b2020 2020392e 38343830 K.<4>[ 9.8480
0020fd44: 38355d20 49502d43 6f6e6669 673a2047 85] IP-Config: G
0020fd54: 6f742044 48435020 616e7377 65722066 ot DHCP answer f
0020fd64: 726f6d20 3235352e 3235352e 3235352e rom 255.255.255.
0020fd74: 3235352c 206d7920 61646472 65737320 255, my address
0020fd84: 69732031 32392e31 32392e31 34342e38 is 129.129.144.8
0020fd94: 320a3c34 3e5b2020 2020392e 39343831 2.<4>[ 9.9481
0020fda4: 33385d20 49502d43 6f6e6669 673a2043 38] IP-Config: C
0020fdb4: 6f6d706c 6574653a 0a3c343e 5b202020 omplete:.<4>[
0020fdc4: 20392e39 38343732 395d2020 20202020 9.984729]
0020fdd4: 20646576 6963653d 65746830 2c206164 device=eth0, ad
0020fde4: 64723d31 32392e31 32392e31 34342e38 dr=129.129.144.8
0020fdf4: 322c206d 61736b3d 3235352e 3235352e 2, mask=255.255.
0020fe04: 3235352e 302c2067 773d3132 392e3132 255.0, gw=129.12
0020fe14: 392e3134 342e312c 0a3c343e 5b202020 9.144.1,.<4>[
0020fe24: 31302e30 38313736 395d2020 20202020 10.081769]
0020fe34: 686f7374 3d766972 74657834 2d6d6972 host=virtex4-mir
0020fe44: 656b2c20 646f6d61 696e3d70 73692e63 ek, domain=psi.c
0020fe54: 682c206e 69732d64 6f6d6169 6e3d286e h, nis-domain=(n
0020fe64: 6f6e6529 2c0a3c34 3e5b2020 2031302e one),.<4>[ 10.
0020fe74: 31363031 32385d20 20202020 20626f6f 160128] boo
0020fe84: 74736572 7665723d 3235352e 3235352e tserver=255.255.
0020fe94: 3235352e 3235352c 20726f6f 74736572 255.255, rootser
0020fea4: 7665723d 3132392e 3132392e 3134342e ver=129.129.144.
0020feb4: 3131332c 20726f6f 74706174 683d0a3c 113, rootpath=.<
0020fec4: 353e5b20 20203130 2e323535 3737355d 5>[ 10.255775]
0020fed4: 204c6f6f 6b696e67 20757020 706f7274 Looking up port
0020fee4: 206f6620 52504320 31303030 30332f32 of RPC 100003/2
0020fef4: 206f6e20 3132392e 3132392e 3134342e on 129.129.144.
0020ff04: 3131330a 3c353e5b 20202031 302e3332 113.<5>[ 10.32
0020ff14: 39383830 5d204c6f 6f6b696e 67207570 9880] Looking up
0020ff24: 20706f72 74206f66 20525043 20313030 port of RPC 100
0020ff34: 3030352f 31206f6e 20313239 2e313239 005/1 on 129.129
0020ff44: 2e313434 2e313133 0a3c343e 5b202020 .144.113.<4>[
0020ff54: 31302e34 31323935 325d2056 46533a20 10.412952] VFS:
0020ff64: 4d6f756e 74656420 726f6f74 20286e66 Mounted root (nf
0020ff74: 73206669 6c657379 7374656d 292e0a3c s filesystem)..<
0020ff84: 343e5b20 20203130 2e343638 3134395d 4>[ 10.468149]
0020ff94: 20467265 65696e67 20756e75 73656420 Freeing unused
0020ffa4: 6b65726e 656c206d 656d6f72 793a2039 kernel memory: 9
0020ffb4: 366b2069 6e69740a 00000000 00000000 6k init.........
0020ffc4: 00000000 00000000 00000000 00000000 ................
0020ffd4: 00000000 00000000 00000000 00000000 ................
0020ffe4: 00000000 00000000 00000000 00000000 ................
That is a whole buffer
Mirek
On Tue, 28 Aug 2007, Grant Likely wrote:
> On 8/28/07, Miroslaw Dach <miroslaw.dach@psi.ch> wrote:
> > 8. I have typed: md 0x20f0c4 100 and it showed me the buffer:
> >
> > 0020f0c4: 3c353e5b 20202020 302e3030 30303030 <5>[ 0.000000
> > 0020f0d4: 5d204c69 6e757820 76657273 696f6e20 ] Linux version
> > 0020f0e4: 322e362e 32312d72 63362028 726f6f74 2.6.21-rc6 (root
> > 0020f0f4: 40706335 32313529 20286763 63207665 @pc5215) (gcc ve
> > 0020f104: 7273696f 6e20342e 302e3229 20233136 rsion 4.0.2) #16
> > 0020f114: 204d6f6e 20417567 20323720 31323a33 Mon Aug 27 12:3
> > 0020f124: 373a3038 20434553 54203230 30370a3c 7:08 CEST 2007.<
> > 0020f134: 363e5b20 20202030 2e303030 3030305d 6>[ 0.000000]
> > 0020f144: 2058696c 696e7820 4d4c3430 33205265 Xilinx ML403 Re
> > 0020f154: 66657265 6e636520 53797374 656d2028 ference System (
> > 0020f164: 56697274 65782d34 20465829 0a3c373e Virtex-4 FX).<7>
> > 0020f174: 5b202020 20302e30 30303030 305d2045 [ 0.000000] E
> > 0020f184: 6e746572 696e6720 6164645f 61637469 ntering add_acti
> > 0020f194: 76655f72 616e6765 28302c20 302c2038 ve_range(0, 0, 8
> > 0020f1a4: 31393129 20302065 6e747269 6573206f 191) 0 entries o
> > 0020f1b4: 66203235 36207573 65640a3c 343e5b20 f 256 used.<4>[
> > 0020f1c4: 20202030 2e303030 3030305d 205a6f6e 0.000000] Zon
> > 0020f1d4: 65205046 4e207261 6e676573 3a0a3c34 e PFN ranges:.<4
> >
> > So it seams to be that the address points to the __log_buf (I hope).
> >
> > Does it mean that when I try to start zImage kernel from u-boot
> > it hangs during uncompressing the image and it does even start booting?
>
> Think about what you're looking at. That buffer is ASCII text. Does
> it look like the entire buffer is displayed, or does it look like
> there is more?
>
> g.
>
>
--
=============================================================================
Miroslaw Dach (Miroslaw.Dach@psi.ch) - SLS/Controls Group
PSI - Paul Scherrer Institut CH-5232 Villigen
=============================================================================
^ permalink raw reply
* Re: Linux doesn not boot from u-boot on ML403
From: Grant Likely @ 2007-08-28 15:28 UTC (permalink / raw)
To: Miroslaw Dach; +Cc: Leonid, linuxppc-embedded
In-Reply-To: <Pine.LNX.4.44.0708281714020.4960-100000@slslc02.psi.ch>
On 8/28/07, Miroslaw Dach <miroslaw.dach@psi.ch> wrote:
> This buffer refers to the kernel which I boot straight from jtag but not
> u-boot.
/me remembers something....
How big is your kernel image? Seems to me I've had problems with
kernel images that were too large not being uncompressed properly.
Can you hook up GDB and debug u-boot? Find out where it is hanging?
g.
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195
^ permalink raw reply
* Re: what is ~1MB of memory allocated at fffea000-fffff000 on ppc64?
From: Chris Friesen @ 2007-08-28 15:15 UTC (permalink / raw)
To: Paul Mackerras; +Cc: linuxppc-dev, Anton Blanchard
In-Reply-To: <18131.45155.16087.714489@cargo.ozlabs.ibm.com>
Paul Mackerras wrote:
> Chris Friesen writes:
>>For some background, we're running an emulator that uses a null pointer
>>value of 0xffff0000 and we want any accesses to that address to trap.
> Can you fix this in userspace instead by moving the stack down below
> 0xffff0000 and then doing munmap(0xffff0000, 0x1000) ?
It sounds like it would work. I'm not entirely clear on how to move the
starting point of the stack though--could you elaborate or point me to a
reference?
Chris
^ permalink raw reply
* [PATCH 0/4] PowerPC 440EPx: Initial Sequoia support take 3
From: Valentine Barshak @ 2007-08-28 16:53 UTC (permalink / raw)
To: linuxppc-dev
The following patches add initial PowerPC 440EPx Sequoia board support.
The code is based mainly on the Bamboo board support by Josh Boyer.
These patches have been modified according the comments for the previous
440EPx Sequoia patch series.
^ permalink raw reply
* [PATCH 1/4] PowerPC 440EPx: Sequoia bootwrapper
From: Valentine Barshak @ 2007-08-28 16:56 UTC (permalink / raw)
To: linuxppc-dev
In-Reply-To: <20070828165321.GA1501@ru.mvista.com>
Bootwrapper code for AMCC PPC440EPx Sequoia.
Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
---
arch/powerpc/boot/4xx.c | 108 +++++++++++++++++++++++++++++++++++++
arch/powerpc/boot/4xx.h | 1
arch/powerpc/boot/Makefile | 4 +
arch/powerpc/boot/cuboot-sequoia.c | 67 ++++++++++++++++++++++
4 files changed, 179 insertions(+), 1 deletion(-)
diff -ruN linux-2.6.orig/arch/powerpc/boot/4xx.c linux-2.6/arch/powerpc/boot/4xx.c
--- linux-2.6.orig/arch/powerpc/boot/4xx.c 2007-08-27 14:08:42.000000000 +0400
+++ linux-2.6/arch/powerpc/boot/4xx.c 2007-08-28 17:04:51.000000000 +0400
@@ -39,6 +39,114 @@
dt_fixup_memory(0, memsize);
}
+/* 4xx DDR1/2 Denali memory controller support */
+/* DDR0 registers */
+#define DDR0_02 2
+#define DDR0_08 8
+#define DDR0_10 10
+#define DDR0_14 14
+#define DDR0_42 42
+#define DDR0_43 43
+
+/* DDR0_02 */
+#define DDR_START 0x1
+#define DDR_START_SHIFT 0
+#define DDR_MAX_CS_REG 0x3
+#define DDR_MAX_CS_REG_SHIFT 24
+#define DDR_MAX_COL_REG 0xf
+#define DDR_MAX_COL_REG_SHIFT 16
+#define DDR_MAX_ROW_REG 0xf
+#define DDR_MAX_ROW_REG_SHIFT 8
+/* DDR0_08 */
+#define DDR_DDR2_MODE 0x1
+#define DDR_DDR2_MODE_SHIFT 0
+/* DDR0_10 */
+#define DDR_CS_MAP 0x3
+#define DDR_CS_MAP_SHIFT 8
+/* DDR0_14 */
+#define DDR_REDUC 0x1
+#define DDR_REDUC_SHIFT 16
+/* DDR0_42 */
+#define DDR_APIN 0x7
+#define DDR_APIN_SHIFT 24
+/* DDR0_43 */
+#define DDR_COL_SZ 0x7
+#define DDR_COL_SZ_SHIFT 8
+#define DDR_BANK8 0x1
+#define DDR_BANK8_SHIFT 0
+
+#define DDR_GET_VAL(val, mask, shift) (((val) >> (shift)) & (mask))
+
+static inline u32 mfdcr_sdram0(u32 reg)
+{
+ mtdcr(DCRN_SDRAM0_CFGADDR, reg);
+ return mfdcr(DCRN_SDRAM0_CFGDATA);
+}
+
+void ibm4xx_denali_fixup_memsize(void)
+{
+ u32 val, max_cs, max_col, max_row;
+ u32 cs, col, row, bank, dpath;
+ unsigned long memsize;
+
+ val = mfdcr_sdram0(DDR0_02);
+ if (!DDR_GET_VAL(val, DDR_START, DDR_START_SHIFT))
+ fatal("DDR controller is not initialized\n");
+
+ /* get maximum cs col and row values */
+ max_cs = DDR_GET_VAL(val, DDR_MAX_CS_REG, DDR_MAX_CS_REG_SHIFT);
+ max_col = DDR_GET_VAL(val, DDR_MAX_COL_REG, DDR_MAX_COL_REG_SHIFT);
+ max_row = DDR_GET_VAL(val, DDR_MAX_ROW_REG, DDR_MAX_ROW_REG_SHIFT);
+
+ /* get CS value */
+ val = mfdcr_sdram0(DDR0_10);
+
+ val = DDR_GET_VAL(val, DDR_CS_MAP, DDR_CS_MAP_SHIFT);
+ cs = 0;
+ while (val) {
+ if (val && 0x1)
+ cs++;
+ val = val >> 1;
+ }
+
+ if (!cs)
+ fatal("No memory installed\n");
+ if (cs > max_cs)
+ fatal("DDR wrong CS configuration\n");
+
+ /* get data path bytes */
+ val = mfdcr_sdram0(DDR0_14);
+
+ if (DDR_GET_VAL(val, DDR_REDUC, DDR_REDUC_SHIFT))
+ dpath = 8; /* 64 bits */
+ else
+ dpath = 4; /* 32 bits */
+
+ /* get adress pins (rows) */
+ val = mfdcr_sdram0(DDR0_42);
+
+ row = DDR_GET_VAL(val, DDR_APIN, DDR_APIN_SHIFT);
+ if (row > max_row)
+ fatal("DDR wrong APIN configuration\n");
+ row = max_row - row;
+
+ /* get collomn size and banks */
+ val = mfdcr_sdram0(DDR0_43);
+
+ col = DDR_GET_VAL(val, DDR_COL_SZ, DDR_COL_SZ_SHIFT);
+ if (col > max_col)
+ fatal("DDR wrong COL configuration\n");
+ col = max_col - col;
+
+ if (DDR_GET_VAL(val, DDR_BANK8, DDR_BANK8_SHIFT))
+ bank = 8; /* 8 banks */
+ else
+ bank = 4; /* 4 banks */
+
+ memsize = cs * (1 << (col+row)) * bank * dpath;
+ dt_fixup_memory(0, memsize);
+}
+
#define SPRN_DBCR0_40X 0x3F2
#define SPRN_DBCR0_44X 0x134
#define DBCR0_RST_SYSTEM 0x30000000
diff -ruN linux-2.6.orig/arch/powerpc/boot/4xx.h linux-2.6/arch/powerpc/boot/4xx.h
--- linux-2.6.orig/arch/powerpc/boot/4xx.h 2007-08-27 14:08:42.000000000 +0400
+++ linux-2.6/arch/powerpc/boot/4xx.h 2007-08-28 17:04:51.000000000 +0400
@@ -12,6 +12,7 @@
#define _POWERPC_BOOT_4XX_H_
void ibm4xx_fixup_memsize(void);
+void ibm4xx_denali_fixup_memsize(void);
void ibm44x_dbcr_reset(void);
void ibm40x_dbcr_reset(void);
void ibm4xx_quiesce_eth(u32 *emac0, u32 *emac1);
diff -ruN linux-2.6.orig/arch/powerpc/boot/cuboot-sequoia.c linux-2.6/arch/powerpc/boot/cuboot-sequoia.c
--- linux-2.6.orig/arch/powerpc/boot/cuboot-sequoia.c 1970-01-01 03:00:00.000000000 +0300
+++ linux-2.6/arch/powerpc/boot/cuboot-sequoia.c 2007-08-28 17:21:55.000000000 +0400
@@ -0,0 +1,67 @@
+/*
+ * Old U-boot compatibility for Sequoia
+ *
+ * Valentine Barshak <vbarshak@ru.mvista.com>
+ * Copyright 2007 MontaVista Software, Inc
+ *
+ * Based on Ebony code by David Gibson <david@gibson.dropbear.id.au>
+ * Copyright IBM Corporation, 2007
+ *
+ * Based on Bamboo code by Josh Boyer <jwboyer@linux.vnet.ibm.com>
+ * Copyright IBM Corporation, 2007
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; version 2 of the License
+ */
+
+#include <stdarg.h>
+#include <stddef.h>
+#include "types.h"
+#include "elf.h"
+#include "string.h"
+#include "stdio.h"
+#include "page.h"
+#include "ops.h"
+#include "dcr.h"
+#include "4xx.h"
+#include "44x.h"
+#include "cuboot.h"
+
+#define TARGET_4xx
+#define TARGET_44x
+#include "ppcboot.h"
+
+static bd_t bd;
+static u8 *sequoia_mac0, *sequoia_mac1;
+
+extern char _dtb_start[];
+extern char _dtb_end[];
+
+
+static void sequoia_fixups(void)
+{
+ unsigned long sysclk = 33333333;
+
+ ibm440ep_fixup_clocks(sysclk, 11059200);
+ ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
+ ibm4xx_denali_fixup_memsize();
+ dt_fixup_mac_addresses(sequoia_mac0, sequoia_mac1);
+}
+
+static void sequoia_init(void *mac0, void *mac1)
+{
+ platform_ops.fixups = sequoia_fixups;
+ platform_ops.exit = ibm44x_dbcr_reset;
+ sequoia_mac0 = mac0;
+ sequoia_mac1 = mac1;
+ ft_init(_dtb_start, 0, 32);
+ serial_console_init();
+}
+
+void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
+ unsigned long r6, unsigned long r7)
+{
+ CUBOOT_INIT();
+ sequoia_init(&bd.bi_enetaddr, &bd.bi_enet1addr);
+}
diff -ruN linux-2.6.orig/arch/powerpc/boot/Makefile linux-2.6/arch/powerpc/boot/Makefile
--- linux-2.6.orig/arch/powerpc/boot/Makefile 2007-08-27 14:08:42.000000000 +0400
+++ linux-2.6/arch/powerpc/boot/Makefile 2007-08-28 17:28:06.000000000 +0400
@@ -48,7 +48,8 @@
cpm-serial.c
src-plat := of.c cuboot-83xx.c cuboot-85xx.c holly.c \
cuboot-ebony.c treeboot-ebony.c prpmc2800.c \
- ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-8xx.c cuboot-pq2.c
+ ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-8xx.c \
+ cuboot-pq2.c cuboot-sequoia.c
src-boot := $(src-wlib) $(src-plat) empty.c
src-boot := $(addprefix $(obj)/, $(src-boot))
@@ -146,6 +147,7 @@
image-$(CONFIG_PPC_85xx) += cuImage.85xx
image-$(CONFIG_EBONY) += treeImage.ebony cuImage.ebony
image-$(CONFIG_BAMBOO) += treeImage.bamboo
+image-$(CONFIG_SEQUOIA) += cuImage.sequoia
endif
# For 32-bit powermacs, build the COFF and miboot images
^ permalink raw reply
* [PATCH 2/4] PowerPC 440EPx: Sequoia device tree
From: Valentine Barshak @ 2007-08-28 16:58 UTC (permalink / raw)
To: linuxppc-dev
In-Reply-To: <20070828165321.GA1501@ru.mvista.com>
AMCC PPC440EPx Sequoia device tree.
Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
---
arch/powerpc/boot/dts/sequoia.dts | 286 ++++++++++++++++++++++++++++++++++++++
1 files changed, 286 insertions(+)
diff -ruN linux-2.6.orig/arch/powerpc/boot/dts/sequoia.dts linux-2.6/arch/powerpc/boot/dts/sequoia.dts
--- linux-2.6.orig/arch/powerpc/boot/dts/sequoia.dts 1970-01-01 03:00:00.000000000 +0300
+++ linux-2.6/arch/powerpc/boot/dts/sequoia.dts 2007-08-28 17:04:51.000000000 +0400
@@ -0,0 +1,286 @@
+/*
+ * Device Tree Source for AMCC Sequoia
+ *
+ * Based on Bamboo code by Josh Boyer <jwboyer@linux.vnet.ibm.com>
+ * Copyright (c) 2006, 2007 IBM Corp.
+ *
+ * FIXME: Draft only!
+ *
+ * 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.
+ *
+ */
+
+/ {
+ #address-cells = <2>;
+ #size-cells = <1>;
+ model = "amcc,sequoia";
+ compatible = "amcc,sequoia";
+ dcr-parent = <&/cpus/PowerPC,440EPx@0>;
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ PowerPC,440EPx@0 {
+ device_type = "cpu";
+ reg = <0>;
+ clock-frequency = <0>; /* Filled in by zImage */
+ timebase-frequency = <0>; /* Filled in by zImage */
+ i-cache-line-size = <20>;
+ d-cache-line-size = <20>;
+ i-cache-size = <8000>;
+ d-cache-size = <8000>;
+ dcr-controller;
+ dcr-access-method = "native";
+ };
+ };
+
+ memory {
+ device_type = "memory";
+ reg = <0 0 0>; /* Filled in by zImage */
+ };
+
+ UIC0: interrupt-controller0 {
+ compatible = "ibm,uic-440epx","ibm,uic";
+ interrupt-controller;
+ cell-index = <0>;
+ dcr-reg = <0c0 009>;
+ #address-cells = <0>;
+ #size-cells = <0>;
+ #interrupt-cells = <2>;
+ };
+
+ UIC1: interrupt-controller1 {
+ compatible = "ibm,uic-440epx","ibm,uic";
+ interrupt-controller;
+ cell-index = <1>;
+ dcr-reg = <0d0 009>;
+ #address-cells = <0>;
+ #size-cells = <0>;
+ #interrupt-cells = <2>;
+ interrupts = <1e 4 1f 4>; /* cascade */
+ interrupt-parent = <&UIC0>;
+ };
+
+ UIC2: interrupt-controller2 {
+ compatible = "ibm,uic-440epx","ibm,uic";
+ interrupt-controller;
+ cell-index = <2>;
+ dcr-reg = <0e0 009>;
+ #address-cells = <0>;
+ #size-cells = <0>;
+ #interrupt-cells = <2>;
+ interrupts = <1c 4 1d 4>; /* cascade */
+ interrupt-parent = <&UIC0>;
+ };
+
+ SDR0: sdr {
+ compatible = "ibm,sdr-440epx", "ibm,sdr-440ep";
+ dcr-reg = <00e 002>;
+ };
+
+ CPR0: cpr {
+ compatible = "ibm,cpr-440epx", "ibm,cpr-440ep";
+ dcr-reg = <00c 002>;
+ };
+
+ plb {
+ compatible = "ibm,plb-440epx", "ibm,plb4";
+ #address-cells = <2>;
+ #size-cells = <1>;
+ ranges;
+ clock-frequency = <0>; /* Filled in by zImage */
+
+ SDRAM0: sdram {
+ device_type = "memory-controller";
+ compatible = "ibm,sdram-440epx", "ibm,sdram-44x-ddr2denali";
+ dcr-reg = <010 2>;
+ };
+
+ DMA0: dma {
+ compatible = "ibm,dma-440epx", "ibm,dma-4xx";
+ dcr-reg = <100 027>;
+ };
+
+ MAL0: mcmal {
+ compatible = "ibm,mcmal-440epx", "ibm,mcmal2";
+ dcr-reg = <180 62>;
+ num-tx-chans = <4>;
+ num-rx-chans = <4>;
+ interrupt-parent = <&MAL0>;
+ interrupts = <0 1 2 3 4>;
+ #interrupt-cells = <1>;
+ #address-cells = <0>;
+ #size-cells = <0>;
+ interrupt-map = </*TXEOB*/ 0 &UIC0 a 4
+ /*RXEOB*/ 1 &UIC0 b 4
+ /*SERR*/ 2 &UIC1 0 4
+ /*TXDE*/ 3 &UIC1 1 4
+ /*RXDE*/ 4 &UIC1 2 4>;
+ interrupt-map-mask = <ffffffff>;
+ };
+
+ POB0: opb {
+ compatible = "ibm,opb-440epx", "ibm,opb";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <00000000 1 00000000 80000000
+ 80000000 1 80000000 80000000>;
+ interrupt-parent = <&UIC1>;
+ interrupts = <7 4>;
+ clock-frequency = <0>; /* Filled in by zImage */
+
+ EBC0: ebc {
+ compatible = "ibm,ebc-440epx", "ibm,ebc";
+ dcr-reg = <012 2>;
+ #address-cells = <2>;
+ #size-cells = <1>;
+ clock-frequency = <0>; /* Filled in by zImage */
+ interrupts = <5 1>;
+ interrupt-parent = <&UIC1>;
+
+ nor_flash@0,0 {
+ device_type = "rom";
+ compatible = "direct-mapped";
+ probe-type = "CFI";
+ bank-width = <2>;
+ partitions = < 0 180000
+ 180000 200000
+ 380000 3aa0000
+ 3e20000 140000
+ 3f60000 40000
+ 3fa0000 60000>;
+ partition-names = "Kernel", "ramdisk", "file system",
+ "kozio", "env", "u-boot";
+ reg = <0 000000 4000000>;
+ };
+
+ };
+
+ UART0: serial@ef600300 {
+ device_type = "serial";
+ compatible = "ns16550";
+ reg = <ef600300 8>;
+ virtual-reg = <ef600300>;
+ clock-frequency = <0>; /* Filled in by zImage */
+ current-speed = <1c200>;
+ interrupt-parent = <&UIC0>;
+ interrupts = <0 4>;
+ };
+
+ UART1: serial@ef600400 {
+ device_type = "serial";
+ compatible = "ns16550";
+ reg = <ef600400 8>;
+ virtual-reg = <ef600400>;
+ clock-frequency = <0>;
+ current-speed = <0>;
+ interrupt-parent = <&UIC0>;
+ interrupts = <1 4>;
+ };
+
+ UART2: serial@ef600500 {
+ device_type = "serial";
+ compatible = "ns16550";
+ reg = <ef600500 8>;
+ virtual-reg = <ef600500>;
+ clock-frequency = <0>;
+ current-speed = <0>;
+ interrupt-parent = <&UIC1>;
+ interrupts = <3 4>;
+ };
+
+ UART3: serial@ef600600 {
+ device_type = "serial";
+ compatible = "ns16550";
+ reg = <ef600600 8>;
+ virtual-reg = <ef600600>;
+ clock-frequency = <0>;
+ current-speed = <0>;
+ interrupt-parent = <&UIC1>;
+ interrupts = <4 4>;
+ };
+
+ IIC0: i2c@ef600700 {
+ device_type = "i2c";
+ compatible = "ibm,iic-440epx", "ibm,iic";
+ reg = <ef600700 14>;
+ interrupt-parent = <&UIC0>;
+ interrupts = <2 4>;
+ };
+
+ IIC1: i2c@ef600800 {
+ device_type = "i2c";
+ compatible = "ibm,iic-440epx", "ibm,iic";
+ reg = <ef600800 14>;
+ interrupt-parent = <&UIC0>;
+ interrupts = <7 4>;
+ };
+
+ ZMII0: emac-zmii@ef600d00 {
+ device_type = "zmii-interface";
+ compatible = "ibm,zmii-440epx", "ibm,zmii";
+ reg = <ef600d00 c>;
+ };
+
+ EMAC0: ethernet@ef600e00 {
+ linux,network-index = <0>;
+ device_type = "network";
+ compatible = "ibm,emac-440epx", "ibm,emac4";
+ interrupt-parent = <&EMAC0>;
+ interrupts = <0 1>;
+ #interrupt-cells = <1>;
+ #address-cells = <0>;
+ #size-cells = <0>;
+ interrupt-map = </*Status*/ 0 &UIC0 18 4
+ /*Wake*/ 1 &UIC1 1d 4>;
+ reg = <ef600e00 70>;
+ local-mac-address = [000000000000];
+ mal-device = <&MAL0>;
+ mal-tx-channel = <0 1>;
+ mal-rx-channel = <0>;
+ cell-index = <0>;
+ max-frame-size = <5dc>;
+ rx-fifo-size = <1000>;
+ tx-fifo-size = <800>;
+ phy-mode = "rmii";
+ phy-map = <00000000>;
+ zmii-device = <&ZMII0>;
+ zmii-channel = <0>;
+ };
+
+ EMAC1: ethernet@ef600f00 {
+ linux,network-index = <1>;
+ device_type = "network";
+ compatible = "ibm,emac-440epx", "ibm,emac4";
+ interrupt-parent = <&EMAC1>;
+ interrupts = <0 1>;
+ #interrupt-cells = <1>;
+ #address-cells = <0>;
+ #size-cells = <0>;
+ interrupt-map = </*Status*/ 0 &UIC0 19 4
+ /*Wake*/ 1 &UIC1 1f 4>;
+ reg = <ef600f00 70>;
+ local-mac-address = [000000000000];
+ mal-device = <&MAL0>;
+ mal-tx-channel = <2 3>;
+ mal-rx-channel = <1>;
+ cell-index = <1>;
+ max-frame-size = <5dc>;
+ rx-fifo-size = <1000>;
+ tx-fifo-size = <800>;
+ phy-mode = "rmii";
+ phy-map = <00000000>;
+ zmii-device = <&ZMII0>;
+ zmii-channel = <1>;
+ };
+ };
+ };
+
+ chosen {
+ linux,stdout-path = "/plb/opb/serial@ef600300";
+ bootargs = "console=ttyS0,115200";
+ };
+};
^ permalink raw reply
* [PATCH 3/4] PowerPC 440EPx: Sequoia board support
From: Valentine Barshak @ 2007-08-28 17:00 UTC (permalink / raw)
To: linuxppc-dev
In-Reply-To: <20070828165321.GA1501@ru.mvista.com>
AMCC PPC440EPx Sequoia board support.
Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
---
arch/powerpc/kernel/cputable.c | 18 +++++++++
arch/powerpc/kernel/head_44x.S | 2 -
arch/powerpc/platforms/44x/Kconfig | 17 ++++++++-
arch/powerpc/platforms/44x/Makefile | 1
arch/powerpc/platforms/44x/sequoia.c | 66 +++++++++++++++++++++++++++++++++++
5 files changed, 102 insertions(+), 2 deletions(-)
diff -ruN linux-2.6.orig/arch/powerpc/kernel/cputable.c linux-2.6/arch/powerpc/kernel/cputable.c
--- linux-2.6.orig/arch/powerpc/kernel/cputable.c 2007-08-27 14:08:42.000000000 +0400
+++ linux-2.6/arch/powerpc/kernel/cputable.c 2007-08-28 17:04:51.000000000 +0400
@@ -1132,6 +1132,24 @@
.dcache_bsize = 32,
.platform = "ppc440",
},
+ { /* 440EPX */
+ .pvr_mask = 0xf0000ffb,
+ .pvr_value = 0x200008D0,
+ .cpu_name = "440EPX",
+ .cpu_features = CPU_FTRS_44X,
+ .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU,
+ .icache_bsize = 32,
+ .dcache_bsize = 32,
+ },
+ { /* 440GRX */
+ .pvr_mask = 0xf0000ffb,
+ .pvr_value = 0x200008D8,
+ .cpu_name = "440GRX",
+ .cpu_features = CPU_FTRS_44X,
+ .cpu_user_features = COMMON_USER_BOOKE,
+ .icache_bsize = 32,
+ .dcache_bsize = 32,
+ },
{ /* 440GP Rev. B */
.pvr_mask = 0xf0000fff,
.pvr_value = 0x40000440,
diff -ruN linux-2.6.orig/arch/powerpc/kernel/head_44x.S linux-2.6/arch/powerpc/kernel/head_44x.S
--- linux-2.6.orig/arch/powerpc/kernel/head_44x.S 2007-08-27 14:08:43.000000000 +0400
+++ linux-2.6/arch/powerpc/kernel/head_44x.S 2007-08-28 17:04:51.000000000 +0400
@@ -217,7 +217,7 @@
lis r4,interrupt_base@h /* IVPR only uses the high 16-bits */
mtspr SPRN_IVPR,r4
-#ifdef CONFIG_440EP
+#if defined(CONFIG_440EP) || defined(CONFIG_440EPX)
/* Clear DAPUIB flag in CCR0 (enable APU between CPU and FPU) */
mfspr r2,SPRN_CCR0
lis r3,0xffef
diff -ruN linux-2.6.orig/arch/powerpc/platforms/44x/Kconfig linux-2.6/arch/powerpc/platforms/44x/Kconfig
--- linux-2.6.orig/arch/powerpc/platforms/44x/Kconfig 2007-08-27 14:08:43.000000000 +0400
+++ linux-2.6/arch/powerpc/platforms/44x/Kconfig 2007-08-28 17:04:51.000000000 +0400
@@ -14,6 +14,14 @@
help
This option enables support for the IBM PPC440GP evaluation board.
+config SEQUOIA
+ bool "Sequoia"
+ depends on 44x
+ default n
+ select 440EPX
+ help
+ This option enables support for the AMCC PPC440EPX evaluation board.
+
#config LUAN
# bool "Luan"
# depends on 44x
@@ -37,6 +45,13 @@
select IBM440EP_ERR42
# select IBM_NEW_EMAC_ZMII
+config 440EPX
+ bool
+ select PPC_FPU
+# Disabled until the new EMAC Driver is merged.
+# select IBM_NEW_EMAC_EMAC4
+# select IBM_NEW_EMAC_ZMII
+
config 440GP
bool
# Disabled until the new EMAC Driver is merged.
@@ -50,7 +65,7 @@
config 440A
bool
- depends on 440GX
+ depends on 440GX || 440EPX
default y
# 44x errata/workaround config symbols, selected by the CPU models above
diff -ruN linux-2.6.orig/arch/powerpc/platforms/44x/Makefile linux-2.6/arch/powerpc/platforms/44x/Makefile
--- linux-2.6.orig/arch/powerpc/platforms/44x/Makefile 2007-08-27 14:08:43.000000000 +0400
+++ linux-2.6/arch/powerpc/platforms/44x/Makefile 2007-08-28 17:04:51.000000000 +0400
@@ -1,3 +1,4 @@
obj-$(CONFIG_44x) := misc_44x.o
obj-$(CONFIG_EBONY) += ebony.o
obj-$(CONFIG_BAMBOO) += bamboo.o
+obj-$(CONFIG_SEQUOIA) += sequoia.o
diff -ruN linux-2.6.orig/arch/powerpc/platforms/44x/sequoia.c linux-2.6/arch/powerpc/platforms/44x/sequoia.c
--- linux-2.6.orig/arch/powerpc/platforms/44x/sequoia.c 1970-01-01 03:00:00.000000000 +0300
+++ linux-2.6/arch/powerpc/platforms/44x/sequoia.c 2007-08-28 17:04:51.000000000 +0400
@@ -0,0 +1,66 @@
+/*
+ * Sequoia board specific routines
+ *
+ * Valentine Barshak <vbarshak@ru.mvista.com>
+ * Copyright 2007 MontaVista Software Inc.
+ *
+ * Based on the Bamboo code by
+ * Josh Boyer <jwboyer@linux.vnet.ibm.com>
+ * Copyright 2007 IBM Corporation
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ */
+#include <linux/init.h>
+#include <asm/machdep.h>
+#include <asm/prom.h>
+#include <asm/udbg.h>
+#include <asm/time.h>
+#include <asm/uic.h>
+#include <asm/of_platform.h>
+#include "44x.h"
+
+static struct of_device_id sequoia_of_bus[] = {
+ { .compatible = "ibm,plb", },
+ { .compatible = "ibm,opb", },
+ { .compatible = "ibm,ebc", },
+ {},
+};
+
+static int __init sequoia_device_probe(void)
+{
+ if (!machine_is(sequoia))
+ return 0;
+
+ of_platform_bus_probe(NULL, sequoia_of_bus, NULL);
+
+ return 0;
+}
+device_initcall(sequoia_device_probe);
+
+static int __init sequoia_probe(void)
+{
+ unsigned long root = of_get_flat_dt_root();
+
+ if (!of_flat_dt_is_compatible(root, "amcc,sequoia"))
+ return 0;
+
+ return 1;
+}
+
+static void __init sequoia_setup_arch(void)
+{
+}
+
+define_machine(sequoia) {
+ .name = "Sequoia",
+ .probe = sequoia_probe,
+ .setup_arch = sequoia_setup_arch,
+ .progress = udbg_progress,
+ .init_IRQ = uic_init_tree,
+ .get_irq = uic_get_irq,
+ .restart = ppc44x_reset_system,
+ .calibrate_decr = generic_calibrate_decr,
+};
^ permalink raw reply
* [PATCH 4/4] PowerPC 440EPx: Sequoia defconfig
From: Valentine Barshak @ 2007-08-28 17:01 UTC (permalink / raw)
To: linuxppc-dev
In-Reply-To: <20070828165321.GA1501@ru.mvista.com>
AMCC PPC440EPx Sequoia default config.
Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
---
arch/powerpc/configs/sequoia_defconfig | 776 +++++++++++++++++++++++++++++++++
1 files changed, 776 insertions(+)
diff -ruN linux-2.6.orig/arch/powerpc/configs/sequoia_defconfig linux-2.6/arch/powerpc/configs/sequoia_defconfig
--- linux-2.6.orig/arch/powerpc/configs/sequoia_defconfig 1970-01-01 03:00:00.000000000 +0300
+++ linux-2.6/arch/powerpc/configs/sequoia_defconfig 2007-08-28 17:04:51.000000000 +0400
@@ -0,0 +1,776 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.23-rc3
+# Mon Aug 27 20:19:13 2007
+#
+# CONFIG_PPC64 is not set
+
+#
+# Processor support
+#
+# CONFIG_6xx is not set
+# CONFIG_PPC_85xx is not set
+# CONFIG_PPC_8xx is not set
+# CONFIG_40x is not set
+CONFIG_44x=y
+# CONFIG_E200 is not set
+CONFIG_PPC_FPU=y
+CONFIG_4xx=y
+CONFIG_BOOKE=y
+CONFIG_PTE_64BIT=y
+CONFIG_PHYS_64BIT=y
+# CONFIG_PPC_MM_SLICES is not set
+CONFIG_NOT_COHERENT_CACHE=y
+CONFIG_PPC32=y
+CONFIG_PPC_MERGE=y
+CONFIG_MMU=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_IRQ_PER_CPU=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_ARCH_HAS_ILOG2_U32=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
+CONFIG_PPC=y
+CONFIG_EARLY_PRINTK=y
+CONFIG_GENERIC_NVRAM=y
+CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+CONFIG_PPC_OF=y
+CONFIG_OF=y
+CONFIG_PPC_UDBG_16550=y
+# CONFIG_GENERIC_TBSYNC is not set
+CONFIG_AUDIT_ARCH=y
+CONFIG_GENERIC_BUG=y
+# CONFIG_DEFAULT_UIMAGE is not set
+CONFIG_PPC_DCR_NATIVE=y
+# CONFIG_PPC_DCR_MMIO is not set
+CONFIG_PPC_DCR=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_USER_NS is not set
+# CONFIG_AUDIT is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_SYSFS_DEPRECATED=y
+# CONFIG_RELAY is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_EMBEDDED=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+CONFIG_BLOCK=y
+CONFIG_LBD=y
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_BSG is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+
+#
+# Platform support
+#
+# CONFIG_PPC_MPC52xx is not set
+# CONFIG_PPC_MPC5200 is not set
+# CONFIG_PPC_CELL is not set
+# CONFIG_PPC_CELL_NATIVE is not set
+# CONFIG_PQ2ADS is not set
+# CONFIG_BAMBOO is not set
+# CONFIG_EBONY is not set
+CONFIG_SEQUOIA=y
+CONFIG_440EPX=y
+CONFIG_440A=y
+# CONFIG_MPIC is not set
+# CONFIG_MPIC_WEIRD is not set
+# CONFIG_PPC_I8259 is not set
+# CONFIG_PPC_RTAS is not set
+# CONFIG_MMIO_NVRAM is not set
+# CONFIG_PPC_MPC106 is not set
+# CONFIG_PPC_970_NAP is not set
+# CONFIG_PPC_INDIRECT_IO is not set
+# CONFIG_GENERIC_IOMAP is not set
+# CONFIG_CPU_FREQ is not set
+# CONFIG_CPM2 is not set
+
+#
+# Kernel options
+#
+# CONFIG_HIGHMEM is not set
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=250
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_MATH_EMULATION is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_RESOURCES_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_PROC_DEVICETREE=y
+CONFIG_CMDLINE_BOOL=y
+CONFIG_CMDLINE=""
+CONFIG_SECCOMP=y
+CONFIG_WANT_DEVICE_TREE=y
+CONFIG_DEVICE_TREE="sequoia.dts"
+CONFIG_ISA_DMA_API=y
+
+#
+# Bus options
+#
+CONFIG_ZONE_DMA=y
+CONFIG_PPC_INDIRECT_PCI=y
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_SYSCALL=y
+# CONFIG_PCIEPORTBUS is not set
+CONFIG_ARCH_SUPPORTS_MSI=y
+# CONFIG_PCI_MSI is not set
+# CONFIG_PCI_DEBUG is not set
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# Advanced setup
+#
+# CONFIG_ADVANCED_OPTIONS is not set
+
+#
+# Default settings for advanced configuration options are used
+#
+CONFIG_HIGHMEM_START=0xfe000000
+CONFIG_LOWMEM_SIZE=0x30000000
+CONFIG_KERNEL_START=0xc0000000
+CONFIG_TASK_SIZE=0x80000000
+CONFIG_CONSISTENT_START=0xff100000
+CONFIG_CONSISTENT_SIZE=0x00200000
+CONFIG_BOOT_LOAD=0x01000000
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+
+#
+# Wireless
+#
+# CONFIG_CFG80211 is not set
+# CONFIG_WIRELESS_EXT is not set
+# CONFIG_MAC80211 is not set
+# CONFIG_IEEE80211 is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
+# CONFIG_MTD is not set
+CONFIG_OF_DEVICE=y
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+# CONFIG_BLK_DEV_LOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=35000
+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_XILINX_SYSACE is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_PHANTOM is not set
+# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_SGI_IOC4 is not set
+# CONFIG_TIFM_CORE is not set
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_FIREWIRE is not set
+# CONFIG_IEEE1394 is not set
+# CONFIG_I2O is not set
+CONFIG_MACINTOSH_DRIVERS=y
+# CONFIG_MAC_EMUMOUSEBTN is not set
+# CONFIG_WINDFARM is not set
+CONFIG_NETDEVICES=y
+# CONFIG_NETDEVICES_MULTIQUEUE is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_ARCNET is not set
+# CONFIG_NET_ETHERNET is not set
+CONFIG_NETDEV_1000=y
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_R8169 is not set
+# CONFIG_SIS190 is not set
+# CONFIG_SKGE is not set
+# CONFIG_SKY2 is not set
+# CONFIG_VIA_VELOCITY is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_BNX2 is not set
+# CONFIG_QLA3XXX is not set
+# CONFIG_ATL1 is not set
+CONFIG_NETDEV_10000=y
+# CONFIG_CHELSIO_T1 is not set
+# CONFIG_CHELSIO_T3 is not set
+# CONFIG_IXGB is not set
+# CONFIG_S2IO is not set
+# CONFIG_MYRI10GE is not set
+# CONFIG_NETXEN_NIC is not set
+# CONFIG_MLX4_CORE is not set
+# CONFIG_TR is not set
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+# CONFIG_WLAN_80211 is not set
+# CONFIG_WAN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+# CONFIG_INPUT is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+# CONFIG_VT is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+# CONFIG_SERIAL_8250_PCI is not set
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+# CONFIG_SERIAL_8250_MANY_PORTS is not set
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+# CONFIG_SERIAL_8250_RSA is not set
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_UARTLITE is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_JSM is not set
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_WATCHDOG is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+# CONFIG_GEN_RTC is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+# CONFIG_AGP is not set
+# CONFIG_DRM is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+CONFIG_DEVPORT=y
+# CONFIG_I2C is not set
+
+#
+# SPI support
+#
+# CONFIG_SPI is not set
+# CONFIG_SPI_MASTER is not set
+# CONFIG_W1 is not set
+# CONFIG_POWER_SUPPLY is not set
+# CONFIG_HWMON is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_SM501 is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+# CONFIG_DVB_CORE is not set
+CONFIG_DAB=y
+
+#
+# Graphics support
+#
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+# CONFIG_FB is not set
+# CONFIG_FB_IBM_GXT4500 is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+# CONFIG_USB is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+# CONFIG_MMC is not set
+# CONFIG_NEW_LEDS is not set
+# CONFIG_INFINIBAND is not set
+# CONFIG_EDAC is not set
+# CONFIG_RTC_CLASS is not set
+
+#
+# DMA Engine support
+#
+# CONFIG_DMA_ENGINE is not set
+
+#
+# DMA Clients
+#
+
+#
+# DMA Devices
+#
+
+#
+# Userspace I/O
+#
+# CONFIG_UIO is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_EXT4DEV_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_CRAMFS=y
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+# CONFIG_NFS_V3_ACL is not set
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFS_DIRECTIO is not set
+# CONFIG_NFSD is not set
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+# CONFIG_SUNRPC_BIND34 is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+# CONFIG_NLS is not set
+
+#
+# Distributed Lock Manager
+#
+# CONFIG_DLM is not set
+# CONFIG_UCC_SLOW is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+# CONFIG_CRC_CCITT is not set
+# CONFIG_CRC16 is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+
+#
+# Instrumentation Support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_TIMER_STATS is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_LIST is not set
+CONFIG_FORCED_INLINING=y
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_DEBUGGER=y
+# CONFIG_KGDB is not set
+# CONFIG_XMON is not set
+# CONFIG_BDI_SWITCH is not set
+CONFIG_PPC_EARLY_DEBUG=y
+# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
+# CONFIG_PPC_EARLY_DEBUG_G5 is not set
+# CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL is not set
+# CONFIG_PPC_EARLY_DEBUG_RTAS_CONSOLE is not set
+# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set
+# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set
+# CONFIG_PPC_EARLY_DEBUG_PAS_REALMODE is not set
+# CONFIG_PPC_EARLY_DEBUG_BEAT is not set
+CONFIG_PPC_EARLY_DEBUG_44x=y
+CONFIG_PPC_EARLY_DEBUG_44x_PHYSLOW=0xef600300
+CONFIG_PPC_EARLY_DEBUG_44x_PHYSHIGH=0x1
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_MANAGER=y
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_MD4 is not set
+CONFIG_CRYPTO_MD5=y
+# CONFIG_CRYPTO_SHA1 is not set
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_WP512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_GF128MUL is not set
+CONFIG_CRYPTO_ECB=y
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_PCBC=y
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_CRYPTD is not set
+CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_TEST is not set
+CONFIG_CRYPTO_HW=y
^ permalink raw reply
* Re: [PATCH 3/4] PowerPC 440EPx: Sequoia board support
From: Josh Boyer @ 2007-08-28 17:48 UTC (permalink / raw)
To: Valentine Barshak; +Cc: linuxppc-dev
In-Reply-To: <20070828170007.GA1605@ru.mvista.com>
On Tue, 28 Aug 2007 21:00:07 +0400
Valentine Barshak <vbarshak@ru.mvista.com> wrote:
> diff -ruN linux-2.6.orig/arch/powerpc/platforms/44x/sequoia.c linux-2.6/arch/powerpc/platforms/44x/sequoia.c
> --- linux-2.6.orig/arch/powerpc/platforms/44x/sequoia.c 1970-01-01 03:00:00.000000000 +0300
> +++ linux-2.6/arch/powerpc/platforms/44x/sequoia.c 2007-08-28 17:04:51.000000000 +0400
> @@ -0,0 +1,66 @@
> +/*
> + * Sequoia board specific routines
> + *
> + * Valentine Barshak <vbarshak@ru.mvista.com>
> + * Copyright 2007 MontaVista Software Inc.
> + *
> + * Based on the Bamboo code by
> + * Josh Boyer <jwboyer@linux.vnet.ibm.com>
> + * Copyright 2007 IBM Corporation
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU General Public License as published by the
> + * Free Software Foundation; either version 2 of the License, or (at your
> + * option) any later version.
> + */
> +#include <linux/init.h>
> +#include <asm/machdep.h>
> +#include <asm/prom.h>
> +#include <asm/udbg.h>
> +#include <asm/time.h>
> +#include <asm/uic.h>
> +#include <asm/of_platform.h>
> +#include "44x.h"
> +
> +static struct of_device_id sequoia_of_bus[] = {
> + { .compatible = "ibm,plb", },
As we discussed on IRC, this needs to explicitly match one of the
compatible properties in the Sequoia DTS file. Otherwise it won't
probe your PLB and find anything.
josh
^ permalink raw reply
* [PATCH 1/1] Fix bus probe on Bamboo board
From: Josh Boyer @ 2007-08-28 17:51 UTC (permalink / raw)
To: paulus; +Cc: linuxppc-dev
Commit 804ace8881d21 changed the behavior of how compatible nodes are found.
This highlighted a bug on the Bamboo board where it wasn't probing the bus
specified in the DTS file. We fix it by being explicit about which bus to
probe.
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
---
arch/powerpc/platforms/44x/bamboo.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- linux-2.6.orig/arch/powerpc/platforms/44x/bamboo.c
+++ linux-2.6/arch/powerpc/platforms/44x/bamboo.c
@@ -23,7 +23,7 @@
#include "44x.h"
static struct of_device_id bamboo_of_bus[] = {
- { .compatible = "ibm,plb", },
+ { .compatible = "ibm,plb4", },
{ .compatible = "ibm,opb", },
{ .compatible = "ibm,ebc", },
{},
^ permalink raw reply
* [PATCH 3/4] PowerPC 440EPx: Sequoia board support
From: Valentine Barshak @ 2007-08-28 17:50 UTC (permalink / raw)
To: linuxppc-dev
In-Reply-To: <20070828170007.GA1605@ru.mvista.com>
Same as above, just corrected the plb bus entry in the sequoia_of_bus array
It should be "ibm,plb4" instead of "ibm,plb". The original bamboo code has the
same problem.
AMCC PPC440EPx Sequoia board support.
Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
---
arch/powerpc/kernel/cputable.c | 18 +++++++++
arch/powerpc/kernel/head_44x.S | 2 -
arch/powerpc/platforms/44x/Kconfig | 17 ++++++++-
arch/powerpc/platforms/44x/Makefile | 1
arch/powerpc/platforms/44x/sequoia.c | 66 +++++++++++++++++++++++++++++++++++
5 files changed, 102 insertions(+), 2 deletions(-)
diff -ruN linux-2.6.orig/arch/powerpc/kernel/cputable.c linux-2.6/arch/powerpc/kernel/cputable.c
--- linux-2.6.orig/arch/powerpc/kernel/cputable.c 2007-08-27 14:08:42.000000000 +0400
+++ linux-2.6/arch/powerpc/kernel/cputable.c 2007-08-28 17:04:51.000000000 +0400
@@ -1132,6 +1132,24 @@
.dcache_bsize = 32,
.platform = "ppc440",
},
+ { /* 440EPX */
+ .pvr_mask = 0xf0000ffb,
+ .pvr_value = 0x200008D0,
+ .cpu_name = "440EPX",
+ .cpu_features = CPU_FTRS_44X,
+ .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU,
+ .icache_bsize = 32,
+ .dcache_bsize = 32,
+ },
+ { /* 440GRX */
+ .pvr_mask = 0xf0000ffb,
+ .pvr_value = 0x200008D8,
+ .cpu_name = "440GRX",
+ .cpu_features = CPU_FTRS_44X,
+ .cpu_user_features = COMMON_USER_BOOKE,
+ .icache_bsize = 32,
+ .dcache_bsize = 32,
+ },
{ /* 440GP Rev. B */
.pvr_mask = 0xf0000fff,
.pvr_value = 0x40000440,
diff -ruN linux-2.6.orig/arch/powerpc/kernel/head_44x.S linux-2.6/arch/powerpc/kernel/head_44x.S
--- linux-2.6.orig/arch/powerpc/kernel/head_44x.S 2007-08-27 14:08:43.000000000 +0400
+++ linux-2.6/arch/powerpc/kernel/head_44x.S 2007-08-28 17:04:51.000000000 +0400
@@ -217,7 +217,7 @@
lis r4,interrupt_base@h /* IVPR only uses the high 16-bits */
mtspr SPRN_IVPR,r4
-#ifdef CONFIG_440EP
+#if defined(CONFIG_440EP) || defined(CONFIG_440EPX)
/* Clear DAPUIB flag in CCR0 (enable APU between CPU and FPU) */
mfspr r2,SPRN_CCR0
lis r3,0xffef
diff -ruN linux-2.6.orig/arch/powerpc/platforms/44x/Kconfig linux-2.6/arch/powerpc/platforms/44x/Kconfig
--- linux-2.6.orig/arch/powerpc/platforms/44x/Kconfig 2007-08-27 14:08:43.000000000 +0400
+++ linux-2.6/arch/powerpc/platforms/44x/Kconfig 2007-08-28 17:04:51.000000000 +0400
@@ -14,6 +14,14 @@
help
This option enables support for the IBM PPC440GP evaluation board.
+config SEQUOIA
+ bool "Sequoia"
+ depends on 44x
+ default n
+ select 440EPX
+ help
+ This option enables support for the AMCC PPC440EPX evaluation board.
+
#config LUAN
# bool "Luan"
# depends on 44x
@@ -37,6 +45,13 @@
select IBM440EP_ERR42
# select IBM_NEW_EMAC_ZMII
+config 440EPX
+ bool
+ select PPC_FPU
+# Disabled until the new EMAC Driver is merged.
+# select IBM_NEW_EMAC_EMAC4
+# select IBM_NEW_EMAC_ZMII
+
config 440GP
bool
# Disabled until the new EMAC Driver is merged.
@@ -50,7 +65,7 @@
config 440A
bool
- depends on 440GX
+ depends on 440GX || 440EPX
default y
# 44x errata/workaround config symbols, selected by the CPU models above
diff -ruN linux-2.6.orig/arch/powerpc/platforms/44x/Makefile linux-2.6/arch/powerpc/platforms/44x/Makefile
--- linux-2.6.orig/arch/powerpc/platforms/44x/Makefile 2007-08-27 14:08:43.000000000 +0400
+++ linux-2.6/arch/powerpc/platforms/44x/Makefile 2007-08-28 17:04:51.000000000 +0400
@@ -1,3 +1,4 @@
obj-$(CONFIG_44x) := misc_44x.o
obj-$(CONFIG_EBONY) += ebony.o
obj-$(CONFIG_BAMBOO) += bamboo.o
+obj-$(CONFIG_SEQUOIA) += sequoia.o
diff -ruN linux-2.6.orig/arch/powerpc/platforms/44x/sequoia.c linux-2.6/arch/powerpc/platforms/44x/sequoia.c
--- linux-2.6.orig/arch/powerpc/platforms/44x/sequoia.c 1970-01-01 03:00:00.000000000 +0300
+++ linux-2.6/arch/powerpc/platforms/44x/sequoia.c 2007-08-28 17:04:51.000000000 +0400
@@ -0,0 +1,66 @@
+/*
+ * Sequoia board specific routines
+ *
+ * Valentine Barshak <vbarshak@ru.mvista.com>
+ * Copyright 2007 MontaVista Software Inc.
+ *
+ * Based on the Bamboo code by
+ * Josh Boyer <jwboyer@linux.vnet.ibm.com>
+ * Copyright 2007 IBM Corporation
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ */
+#include <linux/init.h>
+#include <asm/machdep.h>
+#include <asm/prom.h>
+#include <asm/udbg.h>
+#include <asm/time.h>
+#include <asm/uic.h>
+#include <asm/of_platform.h>
+#include "44x.h"
+
+static struct of_device_id sequoia_of_bus[] = {
+ { .compatible = "ibm,plb4", },
+ { .compatible = "ibm,opb", },
+ { .compatible = "ibm,ebc", },
+ {},
+};
+
+static int __init sequoia_device_probe(void)
+{
+ if (!machine_is(sequoia))
+ return 0;
+
+ of_platform_bus_probe(NULL, sequoia_of_bus, NULL);
+
+ return 0;
+}
+device_initcall(sequoia_device_probe);
+
+static int __init sequoia_probe(void)
+{
+ unsigned long root = of_get_flat_dt_root();
+
+ if (!of_flat_dt_is_compatible(root, "amcc,sequoia"))
+ return 0;
+
+ return 1;
+}
+
+static void __init sequoia_setup_arch(void)
+{
+}
+
+define_machine(sequoia) {
+ .name = "Sequoia",
+ .probe = sequoia_probe,
+ .setup_arch = sequoia_setup_arch,
+ .progress = udbg_progress,
+ .init_IRQ = uic_init_tree,
+ .get_irq = uic_get_irq,
+ .restart = ppc44x_reset_system,
+ .calibrate_decr = generic_calibrate_decr,
+};
^ permalink raw reply
* Re: [PATCH 1/4] PowerPC 440EPx: Sequoia bootwrapper
From: Josh Boyer @ 2007-08-28 18:09 UTC (permalink / raw)
To: Valentine Barshak; +Cc: linuxppc-dev
In-Reply-To: <20070828165610.GA1552@ru.mvista.com>
On Tue, 28 Aug 2007 20:56:10 +0400
Valentine Barshak <vbarshak@ru.mvista.com> wrote:
> +/* 4xx DDR1/2 Denali memory controller support */
> +/* DDR0 registers */
> +#define DDR0_02 2
> +#define DDR0_08 8
> +#define DDR0_10 10
> +#define DDR0_14 14
> +#define DDR0_42 42
> +#define DDR0_43 43
> +
> +/* DDR0_02 */
> +#define DDR_START 0x1
> +#define DDR_START_SHIFT 0
> +#define DDR_MAX_CS_REG 0x3
> +#define DDR_MAX_CS_REG_SHIFT 24
> +#define DDR_MAX_COL_REG 0xf
> +#define DDR_MAX_COL_REG_SHIFT 16
> +#define DDR_MAX_ROW_REG 0xf
> +#define DDR_MAX_ROW_REG_SHIFT 8
> +/* DDR0_08 */
> +#define DDR_DDR2_MODE 0x1
> +#define DDR_DDR2_MODE_SHIFT 0
> +/* DDR0_10 */
> +#define DDR_CS_MAP 0x3
> +#define DDR_CS_MAP_SHIFT 8
> +/* DDR0_14 */
> +#define DDR_REDUC 0x1
> +#define DDR_REDUC_SHIFT 16
> +/* DDR0_42 */
> +#define DDR_APIN 0x7
> +#define DDR_APIN_SHIFT 24
> +/* DDR0_43 */
> +#define DDR_COL_SZ 0x7
> +#define DDR_COL_SZ_SHIFT 8
> +#define DDR_BANK8 0x1
> +#define DDR_BANK8_SHIFT 0
> +
> +#define DDR_GET_VAL(val, mask, shift) (((val) >> (shift)) & (mask))
Hm. Having these as just DDR_... seems like it would lead to confusion
if there are other DDR controllers that get added later. But I'm not
too picky either way.
> diff -ruN linux-2.6.orig/arch/powerpc/boot/4xx.h linux-2.6/arch/powerpc/boot/4xx.h
> --- linux-2.6.orig/arch/powerpc/boot/4xx.h 2007-08-27 14:08:42.000000000 +0400
> +++ linux-2.6/arch/powerpc/boot/4xx.h 2007-08-28 17:04:51.000000000 +0400
> @@ -12,6 +12,7 @@
> #define _POWERPC_BOOT_4XX_H_
>
> void ibm4xx_fixup_memsize(void);
> +void ibm4xx_denali_fixup_memsize(void);
> void ibm44x_dbcr_reset(void);
> void ibm40x_dbcr_reset(void);
> void ibm4xx_quiesce_eth(u32 *emac0, u32 *emac1);
> diff -ruN linux-2.6.orig/arch/powerpc/boot/cuboot-sequoia.c linux-2.6/arch/powerpc/boot/cuboot-sequoia.c
> --- linux-2.6.orig/arch/powerpc/boot/cuboot-sequoia.c 1970-01-01 03:00:00.000000000 +0300
> +++ linux-2.6/arch/powerpc/boot/cuboot-sequoia.c 2007-08-28 17:21:55.000000000 +0400
> @@ -0,0 +1,67 @@
<snip>
> +
> +#include <stdarg.h>
> +#include <stddef.h>
> +#include "types.h"
> +#include "elf.h"
> +#include "string.h"
> +#include "stdio.h"
> +#include "page.h"
> +#include "ops.h"
> +#include "dcr.h"
> +#include "4xx.h"
> +#include "44x.h"
> +#include "cuboot.h"
> +
> +#define TARGET_4xx
> +#define TARGET_44x
> +#include "ppcboot.h"
> +
> +static bd_t bd;
> +static u8 *sequoia_mac0, *sequoia_mac1;
> +
> +extern char _dtb_start[];
> +extern char _dtb_end[];
These got added to ops.h in commit 2f1d4899321be so you don't need to
specify them here anymore.
josh
^ permalink raw reply
* Linux kernel config for ep8280m
From: Manil Gaouar @ 2007-08-28 18:12 UTC (permalink / raw)
To: linuxppc-embedded
[-- Attachment #1: Type: text/plain, Size: 386 bytes --]
Hi there,
I want to compile the kernel for my ep8280m board from EmbeddedPlanet
with a PPC 8270 CPU and I can not find any config in the
arch/ppc/configs/ for this board, is there anything that I can use
instead, or does anyone already have this config file?
I've found ep82xxm_config for u-boot but nothing similar for Linux...
Thx for your help and time
[-- Attachment #2: Type: text/html, Size: 2236 bytes --]
^ permalink raw reply
* Re: Document and implement an improved flash device binding for powerpc
From: Josh Boyer @ 2007-08-28 18:39 UTC (permalink / raw)
To: David Gibson; +Cc: linuxppc-dev
In-Reply-To: <20070828034751.GD6811@localhost.localdomain>
On Tue, 28 Aug 2007 13:47:51 +1000
David Gibson <david@gibson.dropbear.id.au> wrote:
> This patch replaces the binding for flash chips in
> booting-without-of.txt with an clarified and improved version. It
> also makes drivers/mtd/maps/physmap_of.c recognize this new binding.
> Finally it revises the Ebony device tree source to use the new binding
> as an example.
>
> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
> ---
> I don't know that this is ready yet, but I thought I'd try to kick
> along the rather stalled process of getting this new flash binding in
> place by sending out my current draft.
>
> Index: working-2.6/Documentation/powerpc/booting-without-of.txt
> ===================================================================
> --- working-2.6.orig/Documentation/powerpc/booting-without-of.txt 2007-08-28 13:25:42.000000000 +1000
> +++ working-2.6/Documentation/powerpc/booting-without-of.txt 2007-08-28 13:38:10.000000000 +1000
> @@ -1757,45 +1757,46 @@ platforms are moved over to use the flat
> };
> };
>
> - j) Flash chip nodes
> + j) CFI or JEDEC memory-mapped NOR flash
> - Example:
> -
> - flash@ff000000 {
> - device_type = "rom";
> - compatible = "direct-mapped";
> - probe-type = "CFI";
> - reg = <ff000000 01000000>;
> - bank-width = <4>;
> - partitions = <00000000 00f80000
> - 00f80000 00080001>;
> - partition-names = "fs\0firmware";
> - };
Instead of removing it completely, could you fix the example to match
the new binding?
> + - compatible : should contain the specific model of flash chip(s)
> + used, if known, followed by either "cfi-flash" or "jedec-flash"
> + - reg : Address range of the flash chip
> + - bank-width : Width (in bytes) of the flash bank. Equal to the
> + device width times the number of interleaved chips.
> + - device-width : (optional) Width of a single flash chip. If
> + omitted, assumed to be equal to 'bank-width'.
> + - #address-cells, #size-cells : Must be present if the flash has
> + sub-nodes representing partitions (see below). In this case
> + both #address-cells and #size-cells must be equal to 1.
Why is that? Are we explicitly not caring about chips that are > 4
GiB? I think MTD has a limitation here anyway, but it seems a bit
short-sighted to explicitly limit what #address-cells can be.
> +
> + For JEDEC compatible devices, the following additional properties
> + are defined:
> +
> + - vendor-id : Contains the flash chip's vendor id (1 byte).
> + - device-id : Contains the flash chip's device id (1 byte).
> +
> + In addition to the information on the flash bank itself, the
> + device tree may optionally contain additional information
> + describing partitions of the flash address space. This can be
> + used on platforms which have strong conventions about which
> + portions of the flash are used for what purposes, but which don't
> + use an on-flash partition table such as RedBoot.
> +
> + Each partitions is represented as a sub-node of the flash device.
<nit> "Each partition.." </nit>
>
> Index: working-2.6/drivers/mtd/maps/physmap_of.c
> ===================================================================
> --- working-2.6.orig/drivers/mtd/maps/physmap_of.c 2007-08-28 13:25:42.000000000 +1000
> +++ working-2.6/drivers/mtd/maps/physmap_of.c 2007-08-28 13:26:43.000000000 +1000
> @@ -4,6 +4,9 @@
> * Copyright (C) 2006 MontaVista Software Inc.
> * Author: Vitaly Wool <vwool@ru.mvista.com>
> *
> + * Revised to handle newer style flash binding by:
> + * Copyright (C) 2007 David Gibson, IBM Corporation.
> + *
> * This program is free software; you can redistribute it and/or modify it
> * under the terms of the GNU General Public License as published by the
> * Free Software Foundation; either version 2 of the License, or (at your
> @@ -30,56 +33,129 @@ struct physmap_flash_info {
> struct map_info map;
> struct resource *res;
> #ifdef CONFIG_MTD_PARTITIONS
> - int nr_parts;
> struct mtd_partition *parts;
> #endif
> };
>
> -static const char *rom_probe_types[] = { "cfi_probe", "jedec_probe", "map_rom", NULL };
> -#ifdef CONFIG_MTD_PARTITIONS
> -static const char *part_probe_types[] = { "cmdlinepart", "RedBoot", NULL };
> -#endif
> -
> #ifdef CONFIG_MTD_PARTITIONS
> -static int parse_flash_partitions(struct device_node *node,
> - struct mtd_partition **parts)
> +static int parse_obsolete_partitions(struct physmap_flash_info *info,
> + struct device_node *dp)
> {
If this is going to be obsoleted, can we put a printk in here whining
about the fact that the device tree still uses it if parititions are
found?
josh
^ permalink raw reply
* ppc_8xx-gcc from eldk strange behaviour
From: DI BACCO ANTONIO - technolabs @ 2007-08-28 18:56 UTC (permalink / raw)
To: linuxppc-embedded
[-- Attachment #1: Type: text/plain, Size: 551 bytes --]
Consider the following C code snippet:
#include <stdio.h>
int main()
{
char x = -4;
if (x < 0)
printf("x is negative\n");
else
printf("x is positive\n");
}
If I compile it with host gcc, there is no warning and the message "x is negative" is printed.
If I compile it with ppc_8xx-gcc there is a warning "main.c:11: warning: comparison is always false due to limited range of data type" and the program prints message "x is positive".
To correct the problem I have to put signed before char.
Bye,
Antonio.
[-- Attachment #2: Type: text/html, Size: 1127 bytes --]
^ permalink raw reply
* ide/libata and powerpc arch/device tree
From: Gerhard Pircher @ 2007-08-28 18:58 UTC (permalink / raw)
To: linuxppc-dev
Hi,
I'm currently/still trying to describe legacy ports and interrupts for a
VIA southbridge PCI IDE controller in a device tree. While the legacy ports
can be described in the PCI device node (as suggested to me by some
developers here in a previous discussion thread - by imitating the
Pegasos), this doesn't seem to be possible for the legacy IDE interrupts.
The general IDE driver code contains an interrupt quirk for the Pegasos,
whereas some PowerPC platforms still use the obsolete(?) IDE ppc_md
interface to define legacy ports and interrupts for an onboard IDE
controller.
Anyway, AFAIU libata will supersede the code under drivers/ide/, but
libata's VIA driver doesn't have the quirk for Pegasos. I would like
to know, if there are any plans to adapt the quirk for libata or if there
will be an OF interface for libata (to define the legacy IDE interrupts
in the device tree)?
Thanks!
regards,
Gerhard
BTW: Can somebody send me a dump of the Pegasos's device tree?
--
Psssst! Schon vom neuen GMX MultiMessenger gehört?
Der kanns mit allen: http://www.gmx.net/de/go/multimessenger
^ permalink raw reply
* Re: ppc_8xx-gcc from eldk strange behaviour
From: Scott Wood @ 2007-08-28 19:01 UTC (permalink / raw)
To: DI BACCO ANTONIO - technolabs; +Cc: linuxppc-embedded
In-Reply-To: <F1F6EC0C8B75034F9E3A79FC85122E8E2649AF@aquib01a>
On Tue, Aug 28, 2007 at 08:56:10PM +0200, DI BACCO ANTONIO - technolabs wrote:
> If I compile it with host gcc, there is no warning and the message "x is negative" is printed.
> If I compile it with ppc_8xx-gcc there is a warning "main.c:11: warning: comparison is always false due to limited range of data type" and the program prints message "x is positive".
> To correct the problem I have to put signed before char.
C does not specify the signedness of char. If you care, you need to
explicitly specify.
-Scott
^ permalink raw reply
* Re: [PATCH 3/4] PowerPC 440EPx: Sequoia board support
From: Olof Johansson @ 2007-08-28 18:14 UTC (permalink / raw)
To: Valentine Barshak; +Cc: linuxppc-dev
In-Reply-To: <20070828175022.GA7556@ru.mvista.com>
Hi,
On Tue, Aug 28, 2007 at 09:50:22PM +0400, Valentine Barshak wrote:
> diff -ruN linux-2.6.orig/arch/powerpc/kernel/head_44x.S linux-2.6/arch/powerpc/kernel/head_44x.S
> --- linux-2.6.orig/arch/powerpc/kernel/head_44x.S 2007-08-27 14:08:43.000000000 +0400
> +++ linux-2.6/arch/powerpc/kernel/head_44x.S 2007-08-28 17:04:51.000000000 +0400
> @@ -217,7 +217,7 @@
> lis r4,interrupt_base@h /* IVPR only uses the high 16-bits */
> mtspr SPRN_IVPR,r4
>
> -#ifdef CONFIG_440EP
> +#if defined(CONFIG_440EP) || defined(CONFIG_440EPX)
> /* Clear DAPUIB flag in CCR0 (enable APU between CPU and FPU) */
> mfspr r2,SPRN_CCR0
> lis r3,0xffef
This is obviously nothing urgent given that the ifdef already existed, but
this looks like it really should be a runtime check instead. Multiplatform
kernels will require it (if/whenever that becomes a priority for 44x).
-Olof
^ permalink raw reply
* Re: [PATCH 3/4] PowerPC 440EPx: Sequoia board support
From: Josh Boyer @ 2007-08-28 19:13 UTC (permalink / raw)
To: Olof Johansson; +Cc: linuxppc-dev
In-Reply-To: <20070828181437.GA14905@lixom.net>
On Tue, 28 Aug 2007 13:14:37 -0500
Olof Johansson <olof@lixom.net> wrote:
> Hi,
>
> On Tue, Aug 28, 2007 at 09:50:22PM +0400, Valentine Barshak wrote:
>
> > diff -ruN linux-2.6.orig/arch/powerpc/kernel/head_44x.S linux-2.6/arch/powerpc/kernel/head_44x.S
> > --- linux-2.6.orig/arch/powerpc/kernel/head_44x.S 2007-08-27 14:08:43.000000000 +0400
> > +++ linux-2.6/arch/powerpc/kernel/head_44x.S 2007-08-28 17:04:51.000000000 +0400
> > @@ -217,7 +217,7 @@
> > lis r4,interrupt_base@h /* IVPR only uses the high 16-bits */
> > mtspr SPRN_IVPR,r4
> >
> > -#ifdef CONFIG_440EP
> > +#if defined(CONFIG_440EP) || defined(CONFIG_440EPX)
> > /* Clear DAPUIB flag in CCR0 (enable APU between CPU and FPU) */
> > mfspr r2,SPRN_CCR0
> > lis r3,0xffef
>
> This is obviously nothing urgent given that the ifdef already existed, but
> this looks like it really should be a runtime check instead. Multiplatform
> kernels will require it (if/whenever that becomes a priority for 44x).
Yep, indeed. It's on my todo list, hopefully before 2.6.24. Don't
think we need to hold up 440EPx in the meantime, since it's a slightly
larger issue. Thanks for the reminder!
josh
^ permalink raw reply
* Re: [PATCH] PS3: fix the bug the major version part is not compared
From: Geoff Levand @ 2007-08-28 19:49 UTC (permalink / raw)
To: paulus; +Cc: Geert Uytterhoeven, linuxppc-dev
In-Reply-To: <20070828211415.C2B5.MOKUNO@sm.sony.co.jp>
Masakazu Mokuno wrote:
> Fix the bug that the major version part of the firmware
> is not compared.
>
> Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp>
> CC: Geoff Levand <geoffrey.levand@am.sony.com>
> ---
> arch/powerpc/platforms/ps3/setup.c | 2 +-
> include/asm-powerpc/ps3.h | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
Paul,
Firmware 2.0.x will be out in the coming months, so it would
be nice if this could go in for 2.6.23.
Acked-by: Geoff Levand <geoffrey.levand@am.sony.com>
^ permalink raw reply
* Re: [PATCH 1/1] Fix bus probe on Bamboo board
From: Josh Boyer @ 2007-08-28 20:01 UTC (permalink / raw)
To: paulus; +Cc: linuxppc-dev
In-Reply-To: <20070828125100.31b0ab98@weaponx.rchland.ibm.com>
On Tue, 28 Aug 2007 12:51:00 -0500
Josh Boyer <jwboyer@linux.vnet.ibm.com> wrote:
> Commit 804ace8881d21 changed the behavior of how compatible nodes are found.
> This highlighted a bug on the Bamboo board where it wasn't probing the bus
> specified in the DTS file. We fix it by being explicit about which bus to
> probe.
>
> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Paul, this is 2.6.24 material. You can either pick it up, or get it
from my git tree later. I mostly sent it out now in case people were
using the bamboo patches already.
josh
^ permalink raw reply
* [PATCH v3 1/8] Generic bitbanged MDIO library
From: Scott Wood @ 2007-08-28 20:11 UTC (permalink / raw)
To: jgarzik; +Cc: netdev, linuxppc-dev
Previously, bitbanged MDIO was only supported in individual
hardware-specific drivers. This code factors out the higher level
protocol implementation, reducing the hardware-specific portion to
functions setting direction, data, and clock.
Signed-off-by: Scott Wood <scottwood@freescale.com>
---
drivers/net/phy/Kconfig | 9 ++
drivers/net/phy/Makefile | 1 +
drivers/net/phy/mdio-bitbang.c | 187 ++++++++++++++++++++++++++++++++++++++++
include/linux/mdio-bitbang.h | 42 +++++++++
4 files changed, 239 insertions(+), 0 deletions(-)
create mode 100644 drivers/net/phy/mdio-bitbang.c
create mode 100644 include/linux/mdio-bitbang.h
diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig
index dd09011..72a98dd 100644
--- a/drivers/net/phy/Kconfig
+++ b/drivers/net/phy/Kconfig
@@ -76,4 +76,13 @@ config FIXED_MII_100_FDX
bool "Emulation for 100M Fdx fixed PHY behavior"
depends on FIXED_PHY
+config MDIO_BITBANG
+ tristate "Support for bitbanged MDIO buses"
+ help
+ This module implements the MDIO bus protocol in software,
+ for use by low level drivers that export the ability to
+ drive the relevant pins.
+
+ If in doubt, say N.
+
endif # PHYLIB
diff --git a/drivers/net/phy/Makefile b/drivers/net/phy/Makefile
index 8885650..3d6cc7b 100644
--- a/drivers/net/phy/Makefile
+++ b/drivers/net/phy/Makefile
@@ -13,3 +13,4 @@ obj-$(CONFIG_VITESSE_PHY) += vitesse.o
obj-$(CONFIG_BROADCOM_PHY) += broadcom.o
obj-$(CONFIG_ICPLUS_PHY) += icplus.o
obj-$(CONFIG_FIXED_PHY) += fixed.o
+obj-$(CONFIG_MDIO_BITBANG) += mdio-bitbang.o
diff --git a/drivers/net/phy/mdio-bitbang.c b/drivers/net/phy/mdio-bitbang.c
new file mode 100644
index 0000000..9bfc9ce
--- /dev/null
+++ b/drivers/net/phy/mdio-bitbang.c
@@ -0,0 +1,187 @@
+/*
+ * Bitbanged MDIO support.
+ *
+ * Author: Scott Wood <scottwood@freescale.com>
+ * Copyright (c) 2007 Freescale Semiconductor
+ *
+ * Based on CPM2 MDIO code which is:
+ *
+ * Copyright (c) 2003 Intracom S.A.
+ * by Pantelis Antoniou <panto@intracom.gr>
+ *
+ * 2005 (c) MontaVista Software, Inc.
+ * Vitaly Bordug <vbordug@ru.mvista.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.
+ */
+
+#include <linux/module.h>
+#include <linux/mdio-bitbang.h>
+#include <linux/slab.h>
+#include <linux/types.h>
+#include <linux/delay.h>
+
+#define MDIO_READ 1
+#define MDIO_WRITE 0
+
+#define MDIO_SETUP_TIME 10
+#define MDIO_HOLD_TIME 10
+
+/* Minimum MDC period is 400 ns, plus some margin for error */
+#define MDIO_DELAY 250
+
+/* The PHY may take up to 300 ns to produce data, plus some margin
+ * for error.
+ */
+#define MDIO_READ_DELAY 350
+
+/* MDIO must already be configured as output. */
+static void mdio_bitbang_send_bit(struct mdio_bitbang_ctrl *ctrl, int val)
+{
+ const struct mdio_bitbang_ops *ops = ctrl->ops;
+
+ ops->set_mdio_data(ctrl, val);
+ ndelay(MDIO_DELAY);
+ ops->set_mdc(ctrl, 1);
+ ndelay(MDIO_DELAY);
+ ops->set_mdc(ctrl, 0);
+}
+
+/* MDIO must already be configured as input. */
+static int mdio_bitbang_get_bit(struct mdio_bitbang_ctrl *ctrl)
+{
+ const struct mdio_bitbang_ops *ops = ctrl->ops;
+
+ ndelay(MDIO_DELAY);
+ ops->set_mdc(ctrl, 1);
+ ndelay(MDIO_READ_DELAY);
+ ops->set_mdc(ctrl, 0);
+
+ return ops->get_mdio_data(ctrl);
+}
+
+/* MDIO must already be configured as output. */
+static void mdio_bitbang_send_num(struct mdio_bitbang_ctrl *ctrl,
+ u16 val, int bits)
+{
+ int i;
+
+ for (i = bits - 1; i >= 0; i--)
+ mdio_bitbang_send_bit(ctrl, (val >> i) & 1);
+}
+
+/* MDIO must already be configured as input. */
+static u16 mdio_bitbang_get_num(struct mdio_bitbang_ctrl *ctrl, int bits)
+{
+ int i;
+ u16 ret = 0;
+
+ for (i = bits - 1; i >= 0; i--) {
+ ret <<= 1;
+ ret |= mdio_bitbang_get_bit(ctrl);
+ }
+
+ return ret;
+}
+
+/* Utility to send the preamble, address, and
+ * register (common to read and write).
+ */
+static void mdio_bitbang_cmd(struct mdio_bitbang_ctrl *ctrl,
+ int read, u8 phy, u8 reg)
+{
+ const struct mdio_bitbang_ops *ops = ctrl->ops;
+ int i;
+
+ ops->set_mdio_dir(ctrl, 1);
+
+ /*
+ * Send a 32 bit preamble ('1's) with an extra '1' bit for good
+ * measure. The IEEE spec says this is a PHY optional
+ * requirement. The AMD 79C874 requires one after power up and
+ * one after a MII communications error. This means that we are
+ * doing more preambles than we need, but it is safer and will be
+ * much more robust.
+ */
+
+ for (i = 0; i < 32; i++)
+ mdio_bitbang_send_bit(ctrl, 1);
+
+ /* send the start bit (01) and the read opcode (10) or write (10) */
+ mdio_bitbang_send_bit(ctrl, 0);
+ mdio_bitbang_send_bit(ctrl, 1);
+ mdio_bitbang_send_bit(ctrl, read);
+ mdio_bitbang_send_bit(ctrl, !read);
+
+ mdio_bitbang_send_num(ctrl, phy, 5);
+ mdio_bitbang_send_num(ctrl, reg, 5);
+}
+
+
+static int mdio_bitbang_read(struct mii_bus *bus, int phy, int reg)
+{
+ struct mdio_bitbang_ctrl *ctrl = bus->priv;
+ int ret, i;
+
+ mdio_bitbang_cmd(ctrl, MDIO_READ, phy, reg);
+ ctrl->ops->set_mdio_dir(ctrl, 0);
+
+ /* check the turnaround bit: the PHY should be driving it to zero */
+ if (mdio_bitbang_get_bit(ctrl) != 0) {
+ /* PHY didn't drive TA low -- flush any bits it
+ * may be trying to send.
+ */
+ for (i = 0; i < 32; i++)
+ mdio_bitbang_get_bit(ctrl);
+
+ return 0xffff;
+ }
+
+ ret = mdio_bitbang_get_num(ctrl, 16);
+ mdio_bitbang_get_bit(ctrl);
+ return ret;
+}
+
+static int mdio_bitbang_write(struct mii_bus *bus, int phy, int reg, u16 val)
+{
+ struct mdio_bitbang_ctrl *ctrl = bus->priv;
+
+ mdio_bitbang_cmd(ctrl, MDIO_WRITE, phy, reg);
+
+ /* send the turnaround (10) */
+ mdio_bitbang_send_bit(ctrl, 1);
+ mdio_bitbang_send_bit(ctrl, 0);
+
+ mdio_bitbang_send_num(ctrl, val, 16);
+
+ ctrl->ops->set_mdio_dir(ctrl, 0);
+ mdio_bitbang_get_bit(ctrl);
+ return 0;
+}
+
+struct mii_bus *alloc_mdio_bitbang(struct mdio_bitbang_ctrl *ctrl)
+{
+ struct mii_bus *bus;
+
+ bus = kzalloc(sizeof(struct mii_bus), GFP_KERNEL);
+ if (!bus)
+ return NULL;
+
+ __module_get(ctrl->ops->owner);
+
+ bus->read = mdio_bitbang_read;
+ bus->write = mdio_bitbang_write;
+ bus->priv = ctrl;
+
+ return bus;
+}
+
+void free_mdio_bitbang(struct mii_bus *bus)
+{
+ struct mdio_bitbang_ctrl *ctrl = bus->priv;
+
+ module_put(ctrl->ops->owner);
+ kfree(bus);
+}
diff --git a/include/linux/mdio-bitbang.h b/include/linux/mdio-bitbang.h
new file mode 100644
index 0000000..63a11dd
--- /dev/null
+++ b/include/linux/mdio-bitbang.h
@@ -0,0 +1,42 @@
+#ifndef __LINUX_MDIO_BITBANG_H
+#define __LINUX_MDIO_BITBANG_H
+
+#include <linux/phy.h>
+#include <linux/module.h>
+
+struct mdio_bitbang_ctrl;
+
+struct mdio_bitbang_ops {
+ struct module *owner;
+
+ /* Set the Management Data Clock high if level is one,
+ * low if level is zero.
+ */
+ void (*set_mdc)(struct mdio_bitbang_ctrl *ctrl, int level);
+
+ /* Configure the Management Data I/O pin as an input if
+ * "output" is zero, or an output if "output" is one.
+ */
+ void (*set_mdio_dir)(struct mdio_bitbang_ctrl *ctrl, int output);
+
+ /* Set the Management Data I/O pin high if value is one,
+ * low if "value" is zero. This may only be called
+ * when the MDIO pin is configured as an output.
+ */
+ void (*set_mdio_data)(struct mdio_bitbang_ctrl *ctrl, int value);
+
+ /* Retrieve the state Management Data I/O pin. */
+ int (*get_mdio_data)(struct mdio_bitbang_ctrl *ctrl);
+};
+
+struct mdio_bitbang_ctrl {
+ const struct mdio_bitbang_ops *ops;
+};
+
+/* The returned bus is not yet registered with the phy layer. */
+struct mii_bus *alloc_mdio_bitbang(struct mdio_bitbang_ctrl *ctrl);
+
+/* The bus must already have been unregistered. */
+void free_mdio_bitbang(struct mii_bus *bus);
+
+#endif
--
1.5.0.3
^ permalink raw reply related
* [PATCH v3 2/8] fs_enet: Whitespace cleanup.
From: Scott Wood @ 2007-08-28 20:14 UTC (permalink / raw)
To: jgarzik; +Cc: netdev, linuxppc-dev
In-Reply-To: <20070828201127.GA24068@ld0162-tx32.am.freescale.net>
Signed-off-by: Scott Wood <scottwood@freescale.com>
---
drivers/net/fs_enet/fs_enet-main.c | 85 ++++++++++++++++-------------------
drivers/net/fs_enet/fs_enet.h | 4 +-
drivers/net/fs_enet/mac-fcc.c | 1 -
drivers/net/fs_enet/mii-fec.c | 1 -
4 files changed, 41 insertions(+), 50 deletions(-)
diff --git a/drivers/net/fs_enet/fs_enet-main.c b/drivers/net/fs_enet/fs_enet-main.c
index a4a2a0e..f261b90 100644
--- a/drivers/net/fs_enet/fs_enet-main.c
+++ b/drivers/net/fs_enet/fs_enet-main.c
@@ -353,7 +353,6 @@ static void fs_enet_tx(struct net_device *dev)
do_wake = do_restart = 0;
while (((sc = CBDR_SC(bdp)) & BD_ENET_TX_READY) == 0) {
-
dirtyidx = bdp - fep->tx_bd_base;
if (fep->tx_free == fep->tx_ring)
@@ -454,7 +453,6 @@ fs_enet_interrupt(int irq, void *dev_id)
nr = 0;
while ((int_events = (*fep->ops->get_int_events)(dev)) != 0) {
-
nr++;
int_clr_events = int_events;
@@ -710,45 +708,43 @@ static void fs_timeout(struct net_device *dev)
*-----------------------------------------------------------------------------*/
static void generic_adjust_link(struct net_device *dev)
{
- struct fs_enet_private *fep = netdev_priv(dev);
- struct phy_device *phydev = fep->phydev;
- int new_state = 0;
-
- if (phydev->link) {
-
- /* adjust to duplex mode */
- if (phydev->duplex != fep->oldduplex){
- new_state = 1;
- fep->oldduplex = phydev->duplex;
- }
-
- if (phydev->speed != fep->oldspeed) {
- new_state = 1;
- fep->oldspeed = phydev->speed;
- }
-
- if (!fep->oldlink) {
- new_state = 1;
- fep->oldlink = 1;
- netif_schedule(dev);
- netif_carrier_on(dev);
- netif_start_queue(dev);
- }
-
- if (new_state)
- fep->ops->restart(dev);
-
- } else if (fep->oldlink) {
- new_state = 1;
- fep->oldlink = 0;
- fep->oldspeed = 0;
- fep->oldduplex = -1;
- netif_carrier_off(dev);
- netif_stop_queue(dev);
- }
-
- if (new_state && netif_msg_link(fep))
- phy_print_status(phydev);
+ struct fs_enet_private *fep = netdev_priv(dev);
+ struct phy_device *phydev = fep->phydev;
+ int new_state = 0;
+
+ if (phydev->link) {
+ /* adjust to duplex mode */
+ if (phydev->duplex != fep->oldduplex) {
+ new_state = 1;
+ fep->oldduplex = phydev->duplex;
+ }
+
+ if (phydev->speed != fep->oldspeed) {
+ new_state = 1;
+ fep->oldspeed = phydev->speed;
+ }
+
+ if (!fep->oldlink) {
+ new_state = 1;
+ fep->oldlink = 1;
+ netif_schedule(dev);
+ netif_carrier_on(dev);
+ netif_start_queue(dev);
+ }
+
+ if (new_state)
+ fep->ops->restart(dev);
+ } else if (fep->oldlink) {
+ new_state = 1;
+ fep->oldlink = 0;
+ fep->oldspeed = 0;
+ fep->oldduplex = -1;
+ netif_carrier_off(dev);
+ netif_stop_queue(dev);
+ }
+
+ if (new_state && netif_msg_link(fep))
+ phy_print_status(phydev);
}
@@ -792,7 +788,6 @@ static int fs_init_phy(struct net_device *dev)
return 0;
}
-
static int fs_enet_open(struct net_device *dev)
{
struct fs_enet_private *fep = netdev_priv(dev);
@@ -978,7 +973,7 @@ static struct net_device *fs_init_instance(struct device *dev,
#endif
#ifdef CONFIG_FS_ENET_HAS_SCC
- if (fs_get_scc_index(fpi->fs_no) >=0 )
+ if (fs_get_scc_index(fpi->fs_no) >=0)
fep->ops = &fs_scc_ops;
#endif
@@ -1069,9 +1064,8 @@ static struct net_device *fs_init_instance(struct device *dev,
return ndev;
- err:
+err:
if (ndev != NULL) {
-
if (registered)
unregister_netdev(ndev);
@@ -1262,7 +1256,6 @@ static int __init fs_init(void)
err:
cleanup_immap();
return r;
-
}
static void __exit fs_cleanup(void)
diff --git a/drivers/net/fs_enet/fs_enet.h b/drivers/net/fs_enet/fs_enet.h
index 569be22..72a61e9 100644
--- a/drivers/net/fs_enet/fs_enet.h
+++ b/drivers/net/fs_enet/fs_enet.h
@@ -15,8 +15,8 @@
#include <asm/commproc.h>
struct fec_info {
- fec_t* fecp;
- u32 mii_speed;
+ fec_t *fecp;
+ u32 mii_speed;
};
#endif
diff --git a/drivers/net/fs_enet/mac-fcc.c b/drivers/net/fs_enet/mac-fcc.c
index 5603121..ad3c5fa 100644
--- a/drivers/net/fs_enet/mac-fcc.c
+++ b/drivers/net/fs_enet/mac-fcc.c
@@ -86,7 +86,6 @@
static inline int fcc_cr_cmd(struct fs_enet_private *fep, u32 mcn, u32 op)
{
const struct fs_platform_info *fpi = fep->fpi;
-
cpm2_map_t *immap = fs_enet_immap;
cpm_cpm2_t *cpmp = &immap->im_cpm;
u32 v;
diff --git a/drivers/net/fs_enet/mii-fec.c b/drivers/net/fs_enet/mii-fec.c
index 0a563a8..53db696 100644
--- a/drivers/net/fs_enet/mii-fec.c
+++ b/drivers/net/fs_enet/mii-fec.c
@@ -113,7 +113,6 @@ static int fs_enet_fec_mii_read(struct mii_bus *bus , int phy_id, int location)
}
return ret;
-
}
static int fs_enet_fec_mii_write(struct mii_bus *bus, int phy_id, int location, u16 val)
--
1.5.0.3
^ permalink raw reply related
* [PATCH v3 3/8] fs_enet: Include linux/string.h from linux/fs_enet_pd.h
From: Scott Wood @ 2007-08-28 20:14 UTC (permalink / raw)
To: jgarzik; +Cc: netdev, linuxppc-dev
In-Reply-To: <20070828201127.GA24068@ld0162-tx32.am.freescale.net>
It is needed for strstr().
Signed-off-by: Scott Wood <scottwood@freescale.com>
---
include/linux/fs_enet_pd.h | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/include/linux/fs_enet_pd.h b/include/linux/fs_enet_pd.h
index 543cd3c..815c6f9 100644
--- a/include/linux/fs_enet_pd.h
+++ b/include/linux/fs_enet_pd.h
@@ -16,6 +16,7 @@
#ifndef FS_ENET_PD_H
#define FS_ENET_PD_H
+#include <linux/string.h>
#include <asm/types.h>
#define FS_ENET_NAME "fs_enet"
--
1.5.0.3
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox