1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
|
This patch inludes the architecture support headers.
And also a boot time ID stub for the loader.
diff -Naur linux-2.6.16/arch/arm/Kconfig linux-2.6.16.ks8695/arch/arm/Kconfig
diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/debug-macro.S linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/debug-macro.S
--- linux-2.6.16/include/asm-arm/arch-ks8695/debug-macro.S 1970-01-01 10:00:00.000000000 +1000
+++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/debug-macro.S 2006-02-17 11:57:24.000000000 +1000
@@ -0,0 +1,37 @@
+/*
+ * linux/include/asm-arm/arch-ks8695/debug-macro.S
+ *
+ * Debugging macro include header
+ *
+ * Copyright (C) 1994-1999 Russell King
+ * Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
+ * (C) Copyright 2006 Greg Ungerer <gerg@snapgear.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+.macro addruart,rx
+ mrc p15, 0, \rx, c1, c0
+ tst \rx, #1 @ MMU enabled?
+ moveq \rx, #0x03000000 @ 0x03ffe000
+ orreq \rx, \rx, #0x00ff0000
+ movne \rx, #0xff000000 @ 0xff00e000
+ orr \rx, \rx, #0x0000e000
+.endm
+
+.macro senduart,rd,rx
+ str \rd, [\rx, #0x4]
+.endm
+
+.macro waituart,rd,rx
+1: ldr \rd, [\rx, #0x14]
+ and \rd, \rd, #0x40 @ check TEMT bit
+ teq \rd, #0x40
+ bne 1b
+.endm
+
+.macro busyuart,rd,rx
+.endm
+
diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/dma.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/dma.h
--- linux-2.6.16/include/asm-arm/arch-ks8695/dma.h 1970-01-01 10:00:00.000000000 +1000
+++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/dma.h 2006-02-20 13:39:13.000000000 +1000
@@ -0,0 +1,26 @@
+/*
+ * linux/include/asm-arm/arch-ks8695/dma.h
+ *
+ * Copyright (C) 1997,1998 Russell King
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#ifndef __ASM_ARCH_DMA_H
+#define __ASM_ARCH_DMA_H
+
+#define MAX_DMA_CHANNELS 0
+#define MAX_DMA_ADDRESS 0xffffffff
+
+#endif /* __ASM_ARCH_DMA_H */
diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/entry-macro.S linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/entry-macro.S
--- linux-2.6.16/include/asm-arm/arch-ks8695/entry-macro.S 1970-01-01 10:00:00.000000000 +1000
+++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/entry-macro.S 2006-02-20 10:39:00.000000000 +1000
@@ -0,0 +1,28 @@
+/*
+ * include/asm-arm/arch-ks8695/entry-macro.S
+ *
+ * Low-level IRQ helper macros for KS8695 based platforms
+ *
+ * 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.
+ */
+
+.macro disable_fiq
+.endm
+
+
+.macro get_irqnr_and_base, irqnr, irqstat, base, tmp
+ ldr \irqnr, =KS8695_IO_VIRT+KS8695_INT_MASK_STATUS
+ ldr \irqstat, [\irqnr] @ get masked status
+
+ mov \irqnr, #0
+1001: tst \irqstat, #1
+ bne 1002f
+ add \irqnr, \irqnr, #1
+ mov \irqstat, \irqstat, lsr #1
+ cmp \irqnr, #32
+ bcc 1001b
+1002: @ EQ will be set if we reach
+.endm
+
diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/hardware.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/hardware.h
--- linux-2.6.16/include/asm-arm/arch-ks8695/hardware.h 1970-01-01 10:00:00.000000000 +1000
+++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/hardware.h 2006-03-15 00:22:13.000000000 +1000
@@ -0,0 +1,38 @@
+/*
+ * linux/include/asm-arm/arch-ks8695/hardware.h
+ *
+ * This file contains the hardware definitions of the KS8695.
+ *
+ * Copyright (C) 2002 Micrel Inc.
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#ifndef __ASM_ARCH_HARDWARE_H
+#define __ASM_ARCH_HARDWARE_H
+
+/*
+ * Virtual memory mapping of the KS8695 internal register area.
+ * This is a static mapping, set up early in kernel startup.
+ */
+#define KS8695_IO_VIRT 0xFF000000
+#define KS8695_REG(x) (KS8695_IO_VIRT + (x))
+
+#define pcibios_assign_all_busses() 1
+#define PCIBIOS_MIN_IO 0x00000100
+#define PCIBIOS_MIN_MEM 0x00010000
+#define PCI_MEMORY_VADDR KS8695P_PCIBG_MEM_BASE
+#define PCI_IO_VADDR KS8695P_PCIBG_IO_BASE
+
+#endif /* __ASM_ARCH_HARDWARE_H */
diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/io.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/io.h
--- linux-2.6.16/include/asm-arm/arch-ks8695/io.h 1970-01-01 10:00:00.000000000 +1000
+++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/io.h 2006-03-15 00:22:13.000000000 +1000
@@ -0,0 +1,31 @@
+/*
+ * linux/include/asm-arm/arch-ks8695/io.h
+ *
+ * Copyright (C) 1999 ARM Limited
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#ifndef __ASM_ARCH_IO_H
+#define __ASM_ARCH_IO_H
+
+#include <asm/hardware.h>
+
+#define IO_SPACE_LIMIT 0xffffffff
+
+#define __io(a) (a)
+#define __mem_pci(a) ((unsigned long) (a))
+#define __mem_isa(a) ((unsigned long) (a))
+
+#endif /* __ASM_ARCH_IO_H */
diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/irqs.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/irqs.h
--- linux-2.6.16/include/asm-arm/arch-ks8695/irqs.h 1970-01-01 10:00:00.000000000 +1000
+++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/irqs.h 2006-03-15 00:22:13.000000000 +1000
@@ -0,0 +1,98 @@
+/*
+ * linux/include/asm-arm/arch-ks8695/irqs.h
+ *
+ * Copyright (C) 1999 ARM Limited
+ * Copyright (C) 2000 Deep Blue Solutions Ltd.
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef __ASM_ARCH_IRQS_H
+#define __ASM_ARCH_IRQS_H 1
+
+/*
+ * IRQ definitions
+ */
+#define KS8695_INT_EXT_INT0 2
+#define KS8695_INT_EXT_INT1 3
+#define KS8695_INT_EXT_INT2 4
+#define KS8695_INT_EXT_INT3 5
+#define KS8695_INT_TIMERINT0 6
+#define KS8695_INT_TIMERINT1 7
+#define KS8695_INT_UART_TX 8
+#define KS8695_INT_UART_RX 9
+#define KS8695_INT_UART_LINE_ERR 10
+#define KS8695_INT_UART_MODEMS 11
+#define KS8695_INT_LAN_STOP_RX 12
+#define KS8695_INT_LAN_STOP_TX 13
+#define KS8695_INT_LAN_BUF_RX_STATUS 14
+#define KS8695_INT_LAN_BUF_TX_STATUS 15
+#define KS8695_INT_LAN_RX_STATUS 16
+#define KS8695_INT_LAN_TX_STATUS 17
+#define KS8695_INT_HPAN_STOP_RX 18
+#define KS8695_INT_HPNA_STOP_TX 19
+#define KS8695_INT_HPNA_BUF_RX_STATUS 20
+#define KS8695_INT_HPNA_BUF_TX_STATUS 21
+#define KS8695_INT_HPNA_RX_STATUS 22
+#define KS8695_INT_HPNA_TX_STATUS 23
+#define KS8695_INT_BUS_ERROR 24
+#define KS8695_INT_WAN_STOP_RX 25
+#define KS8695_INT_WAN_STOP_TX 26
+#define KS8695_INT_WAN_BUF_RX_STATUS 27
+#define KS8695_INT_WAN_BUF_TX_STATUS 28
+#define KS8695_INT_WAN_RX_STATUS 29
+#define KS8695_INT_WAN_TX_STATUS 30
+
+#define KS8695_INT_UART KS8695_INT_UART_TX
+
+/*
+ * IRQ bit masks
+ */
+#define KS8695_INTMASK_EXT_INT0 (1 << KS8695_INT_EXT_INT0)
+#define KS8695_INTMASK_EXT_INT1 (1 << KS8695_INT_EXT_INT1)
+#define KS8695_INTMASK_EXT_INT2 (1 << KS8695_INT_EXT_INT2)
+#define KS8695_INTMASK_EXT_INT3 (1 << KS8695_INT_EXT_INT3)
+#define KS8695_INTMASK_TIMERINT0 (1 << KS8695_INT_TIMERINT0)
+#define KS8695_INTMASK_TIMERINT1 (1 << KS8695_INT_TIMERINT1)
+#define KS8695_INTMASK_UART_TX (1 << KS8695_INT_UART_TX)
+#define KS8695_INTMASK_UART_RX (1 << KS8695_INT_UART_RX)
+#define KS8695_INTMASK_UART_LINE_ERR (1 << KS8695_INT_UART_LINE_ERR)
+#define KS8695_INTMASK_UART_MODEMS (1 << KS8695_INT_UART_MODEMS)
+#define KS8695_INTMASK_LAN_STOP_RX (1 << KS8695_INT_LAN_STOP_RX)
+#define KS8695_INTMASK_LAN_STOP_TX (1 << KS8695_INT_LAN_STOP_TX)
+#define KS8695_INTMASK_LAN_BUF_RX_STATUS (1 << KS8695_INT_LAN_BUF_RX_STATUS)
+#define KS8695_INTMASK_LAN_BUF_TX_STATUS (1 << KS8695_INT_LAN_BUF_TX_STATUS)
+#define KS8695_INTMASK_LAN_RX_STATUS (1 << KS8695_INT_LAN_RX_STATUS)
+#define KS8695_INTMASK_LAN_TX_STATUS (1 << KS8695_INT_LAN_RX_STATUS)
+#define KS8695_INTMASK_HPAN_STOP_RX (1 << KS8695_INT_HPAN_STOP_RX)
+#define KS8695_INTMASK_HPNA_STOP_TX (1 << KS8695_INT_HPNA_STOP_TX)
+#define KS8695_INTMASK_HPNA_BUF_RX_STATUS (1 << KS8695_INT_HPNA_BUF_RX_STATUS)
+#define KS8695_INTMAKS_HPNA_BUF_TX_STATUS (1 << KS8695_INT_HPNA_BUF_TX_STATUS)
+#define KS8695_INTMASK_HPNA_RX_STATUS (1 << KS8695_INT_HPNA_RX_STATUS)
+#define KS8695_INTMASK_HPNA_TX_STATUS (1 << KS8695_INT_HPNA_TX_STATUS)
+#define KS8695_INTMASK_BUS_ERROR (1 << KS8695_INT_BUS_ERROR)
+#define KS8695_INTMASK_WAN_STOP_RX (1 << KS8695_INT_WAN_STOP_RX)
+#define KS8695_INTMASK_WAN_STOP_TX (1 << KS8695_INT_WAN_STOP_TX)
+#define KS8695_INTMASK_WAN_BUF_RX_STATUS (1 << KS8695_INT_WAN_BUF_RX_STATUS)
+#define KS8695_INTMASK_WAN_BUF_TX_STATUS (1 << KS8695_INT_WAN_BUF_TX_STATUS)
+#define KS8695_INTMASK_WAN_RX_STATUS (1 << KS8695_INT_WAN_RX_STATUS)
+#define KS8695_INTMASK_WAN_TX_STATUS (1 << KS8695_INT_WAN_TX_STATUS)
+
+#define KS8695_SC_VALID_INT 0xFFFFFFFF
+
+
+#define NR_IRQS (32)
+
+#endif /* __ASM_ARCH_IRQS_H */
diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/ks8695-pci.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/ks8695-pci.h
--- linux-2.6.16/include/asm-arm/arch-ks8695/ks8695-pci.h 1970-01-01 10:00:00.000000000 +1000
+++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/ks8695-pci.h 2006-03-22 22:51:21.000000000 +1000
@@ -0,0 +1,68 @@
+/*
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#ifndef __ASM_ARCH_PLATFORM_PCI_H
+#define __ASM_ARCH_PLATFORM_PCI_H 1
+
+/* PCI memory related defines */
+#define KS8695P_PCIBG_MEM_BASE 0x60000000 /* memory base for bridge*/
+#define KS8695P_PCI_MEM_BASE 0x60000000UL/* memory base in PCI space */
+#define KS8695P_PCI_MEM_SIZE 0x20000000UL/* 512M, can be extended */
+#define KS8695P_PCI_MEM_MASK 0xE0000000 /* 512M */
+
+/* PCI IO related defines */
+#define KS8695P_PCIBG_IO_BASE 0x10000000 /* io base for bridge */
+#define KS8695P_PCI_IO_BASE 0x10000000
+#define KS8695P_PCI_IO_SIZE 0x00010000 /* 64K */
+#define KS8695P_PCI_IO_MASK 0xFF800000 /* 64K range */
+
+/* new registers specific to KS8695P */
+/* PCI related */
+#define KS8695_CRCFID 0x2000
+#define KS8695_CRCFCS 0x2004
+#define KS8695_CRCFRV 0x2008
+#define KS8695_CRCFLT 0x200c
+#define KS8695_CRCBMA 0x2010
+#define KS8695_CRCBA0 0x2014
+#define KS8695_CRCSID 0x202c
+#define KS8695_CRCFIT 0x203c
+
+/* bridge configuration related registers */
+#define KS8695_PBCA 0x2100
+#define KS8695_PBCD 0x2104
+
+/* bridge mode related registers */
+#define KS8695_PBM 0x2200
+#define KS8695_PBCS 0x2204
+#define KS8695_PMBA 0x2208
+#define KS8695_PMBAC 0x220c
+#define KS8695_PMBAM 0x2210
+#define KS8695_PMBAT 0x2214
+#define KS8695_PIOBA 0x2218
+#define KS8695_PIOBAC 0x221c
+#define KS8695_PIOBAM 0x2220
+#define KS8695_PIOBAT 0x2224
+
+/* bits for registers */
+/* 0x2200 */
+#define PBM_BRIDGE_MODE 0x80000000
+
+/* 0x2204 */
+#define PBCS_SW_RESET 0x80000000
+
+/* 0x220c */
+#define PMBAC_TRANS_ENABLE 0x80000000
+
+#endif /* __ASM_ARCH_PLATFORM_PCI_H */
diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/ks8695-regs.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/ks8695-regs.h
--- linux-2.6.16/include/asm-arm/arch-ks8695/ks8695-regs.h 1970-01-01 10:00:00.000000000 +1000
+++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/ks8695-regs.h 2006-03-22 22:51:21.000000000 +1000
@@ -0,0 +1,341 @@
+/*
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#ifndef __ASM_ARCH_KS8695_REGS_H
+#define __ASM_ARCH_KS8695_REGS_H 1
+
+/* Physical IO address space of KS8695 internal peripheral registers */
+#define KS8695_IO_BASE 0x03FF0000
+#define KS8695_IO_SIZE 0x00010000
+
+#define KS8695_SYSTEN_CONFIG 0x00
+#define KS8695_SYSTEN_BUS_CLOCK 0x04
+
+/* bus clock definitions*/
+#define KS8695_BUS_CLOCK_125MHZ 0x0
+#define KS8695_BUS_CLOCK_100MHZ 0x1
+#define KS8695_BUS_CLOCK_62MHZ 0x2
+#define KS8695_BUS_CLOCK_50MHZ 0x3
+#define KS8695_BUS_CLOCK_41MHZ 0x4
+#define KS8695_BUS_CLOCK_33MHZ 0x5
+#define KS8695_BUS_CLOCK_31MHZ 0x6
+#define KS8695_BUS_CLOCK_25MHZ 0x7
+
+/* i/o control registers offset difinitions */
+#define KS8695_IO_CTRL0 0x4000
+#define KS8695_IO_CTRL1 0x4004
+#define KS8695_IO_CTRL2 0x4008
+#define KS8695_IO_CTRL3 0x400C
+
+/* memory control registers offset difinitions */
+#define KS8695_MEM_CTRL0 0x4010
+#define KS8695_MEM_CTRL1 0x4014
+#define KS8695_MEM_CTRL2 0x4018
+#define KS8695_MEM_CTRL3 0x401C
+#define KS8695_MEM_GENERAL 0x4020
+#define KS8695_SDRAM_CTRL0 0x4030
+#define KS8695_SDRAM_CTRL1 0x4034
+#define KS8695_SDRAM_GENERAL 0x4038
+#define KS8695_SDRAM_BUFFER 0x403C
+#define KS8695_SDRAM_REFRESH 0x4040
+
+/* WAN control registers offset difinitions */
+#define KS8695_WAN_DMA_TX 0x6000
+#define KS8695_WAN_DMA_RX 0x6004
+#define KS8695_WAN_DMA_TX_START 0x6008
+#define KS8695_WAN_DMA_RX_START 0x600C
+#define KS8695_WAN_TX_LIST 0x6010
+#define KS8695_WAN_RX_LIST 0x6014
+#define KS8695_WAN_MAC_LOW 0x6018
+#define KS8695_WAN_MAC_HIGH 0x601C
+#define KS8695_WAN_MAC_ELOW 0x6080
+#define KS8695_WAN_MAC_EHIGH 0x6084
+
+/* LAN control registers offset difinitions */
+#define KS8695_LAN_DMA_TX 0x8000
+#define KS8695_LAN_DMA_RX 0x8004
+#define KS8695_LAN_DMA_TX_START 0x8008
+#define KS8695_LAN_DMA_RX_START 0x800C
+#define KS8695_LAN_TX_LIST 0x8010
+#define KS8695_LAN_RX_LIST 0x8014
+#define KS8695_LAN_MAC_LOW 0x8018
+#define KS8695_LAN_MAC_HIGH 0x801C
+#define KS8695_LAN_MAC_ELOW 0X8080
+#define KS8695_LAN_MAC_EHIGH 0X8084
+
+/* HPNA control registers offset difinitions */
+#define KS8695_HPNA_DMA_TX 0xA000
+#define KS8695_HPNA_DMA_RX 0xA004
+#define KS8695_HPNA_DMA_TX_START 0xA008
+#define KS8695_HPNA_DMA_RX_START 0xA00C
+#define KS8695_HPNA_TX_LIST 0xA010
+#define KS8695_HPNA_RX_LIST 0xA014
+#define KS8695_HPNA_MAC_LOW 0xA018
+#define KS8695_HPNA_MAC_HIGH 0xA01C
+#define KS8695_HPNA_MAC_ELOW 0xA080
+#define KS8695_HPNA_MAC_EHIGH 0xA084
+
+/* UART control registers offset difinitions */
+#define KS8695_UART_RX_BUFFER 0xE000
+#define KS8695_UART_TX_HOLDING 0xE004
+
+#define KS8695_UART_FIFO_CTRL 0xE008
+#define KS8695_UART_FIFO_TRIG01 0x00
+#define KS8695_UART_FIFO_TRIG04 0x80
+#define KS8695_UART_FIFO_TXRST 0x03
+#define KS8695_UART_FIFO_RXRST 0x02
+#define KS8695_UART_FIFO_FEN 0x01
+
+#define KS8695_UART_LINE_CTRL 0xE00C
+#define KS8695_UART_LINEC_BRK 0x40
+#define KS8695_UART_LINEC_EPS 0x10
+#define KS8695_UART_LINEC_PEN 0x08
+#define KS8695_UART_LINEC_STP2 0x04
+#define KS8695_UART_LINEC_WLEN8 0x03
+#define KS8695_UART_LINEC_WLEN7 0x02
+#define KS8695_UART_LINEC_WLEN6 0x01
+#define KS8695_UART_LINEC_WLEN5 0x00
+
+#define KS8695_UART_MODEM_CTRL 0xE010
+#define KS8695_UART_MODEMC_RTS 0x02
+#define KS8695_UART_MODEMC_DTR 0x01
+
+#define KS8695_UART_LINE_STATUS 0xE014
+#define KS8695_UART_LINES_TXFE 0x20
+#define KS8695_UART_LINES_BE 0x10
+#define KS8695_UART_LINES_FE 0x08
+#define KS8695_UART_LINES_PE 0x04
+#define KS8695_UART_LINES_OE 0x02
+#define KS8695_UART_LINES_RXFE 0x01
+#define KS8695_UART_LINES_ANY (KS8695_UART_LINES_OE | \
+ KS8695_UART_LINES_BE | \
+ KS8695_UART_LINES_PE | \
+ KS8695_UART_LINES_FE)
+
+#define KS8695_UART_MODEM_STATUS 0xE018
+#define KS8695_UART_MODEM_DCD 0x80
+#define KS8695_UART_MODEM_DSR 0x20
+#define KS8695_UART_MODEM_CTS 0x10
+#define KS8695_UART_MODEM_DDCD 0x08
+#define KS8695_UART_MODEM_DDSR 0x02
+#define KS8695_UART_MODEM_DCTS 0x01
+#define KS8695_UART_MODEM_ANY 0xFF
+
+#define KS8695_UART_DIVISOR 0xE01C
+#define KS8695_UART_STATUS 0xE020
+
+/* Interrupt controlller registers offset difinitions */
+#define KS8695_INT_CONTL 0xE200
+#define KS8695_INT_ENABLE 0xE204
+#define KS8695_INT_ENABLE_MODEM 0x0800
+#define KS8695_INT_ENABLE_ERR 0x0400
+#define KS8695_INT_ENABLE_RX 0x0200
+#define KS8695_INT_ENABLE_TX 0x0100
+#define KS8695_INT_UART_MASK 0x0f00
+
+#define KS8695_INT_STATUS 0xE208
+#define KS8695_INT_WAN_PRIORITY 0xE20C
+#define KS8695_INT_HPNA_PRIORITY 0xE210
+#define KS8695_INT_LAN_PRIORITY 0xE214
+#define KS8695_INT_TIMER_PRIORITY 0xE218
+#define KS8695_INT_UART_PRIORITY 0xE21C
+#define KS8695_INT_EXT_PRIORITY 0xE220
+#define KS8695_INT_CHAN_PRIORITY 0xE224
+#define KS8695_INT_BUSERROR_PRO 0xE228
+#define KS8695_INT_MASK_STATUS 0xE22C
+#define KS8695_FIQ_PEND_PRIORITY 0xE230
+#define KS8695_IRQ_PEND_PRIORITY 0xE234
+
+/* timer registers offset difinitions */
+#define KS8695_TIMER_CTRL 0xE400
+#define KS8695_TIMER1 0xE404
+#define KS8695_TIMER0 0xE408
+#define KS8695_TIMER1_PCOUNT 0xE40C
+#define KS8695_TIMER0_PCOUNT 0xE410
+
+/* GPIO registers offset difinitions */
+#define KS8695_GPIO_MODE 0xE600
+#define KS8695_GPIO_CTRL 0xE604
+#define KS8695_GPIO_DATA 0xE608
+
+/* SWITCH registers offset difinitions */
+#define KS8695_SWITCH_CTRL0 0xE800
+#define KS8695_SWITCH_CTRL1 0xE804
+#define KS8695_SWITCH_PORT1 0xE808
+#define KS8695_SWITCH_PORT2 0xE80C
+#define KS8695_SWITCH_PORT3 0xE810
+#define KS8695_SWITCH_PORT4 0xE814
+#define KS8695_SWITCH_PORT5 0xE818
+#define KS8695_SWITCH_LUE_CTRL 0xE824
+#define KS8695_SWITCH_LUE_HIGH 0xE828
+#define KS8695_SWITCH_LUE_LOW 0xE82C
+
+/* some differences between the KS8695(X) and KS8695P */
+#ifdef CONFIG_PCI
+#define KS8695_SWITCH_AUTO0 0xE848
+#define KS8695_SWITCH_AUTO1 0xE84C
+#define KS8695_SWITCH_ADVANCED 0xE860
+#define KS8695_DSCP_HIGH 0xE864
+#define KS8695_DSCP_LOW 0xE868
+#define KS8695_SWITCH_MAC_HIGH 0xE86C
+#define KS8695_SWITCH_MAC_LOW 0xE870
+#define KS8695_LAN12_POWERMAGR 0xE874
+#define KS8695_LAN34_POWERMAGR 0xE878
+#else
+#define KS8695_SWITCH_AUTO0 0xE81C
+#define KS8695_SWITCH_AUTO1 0xE820
+#define KS8695_SWITCH_ADVANCED 0xE830
+#define KS8695_DSCP_HIGH 0xE834
+#define KS8695_DSCP_LOW 0xE838
+#define KS8695_SWITCH_MAC_HIGH 0xE83C
+#define KS8695_SWITCH_MAC_LOW 0xE840
+#define KS8695_LAN12_POWERMAGR 0xE84C
+#define KS8695_LAN34_POWERMAGR 0xE850
+#endif
+
+/* miscellaneours registers difinitions */
+#define KS8695_MANAGE_COUNTER 0xE844
+#define KS8695_MANAGE_DATA 0xE848
+
+#define KS8695_DEVICE_ID 0xEA00
+#define KS8695_REVISION_ID 0xEA04
+
+#define KS8695_MISC_CONTROL 0xEA08
+#define KS8695_WAN_CONTROL 0xEA0C
+#define KS8695_WAN_POWERMAGR 0xEA10
+#define KS8695_WAN_PHY_CONTROL 0xEA14
+#define KS8695_WAN_PHY_STATUS 0xEA18
+
+
+/*
+ * The following are all new in the KS8695P.
+ */
+#ifdef CONFIG_PCI
+
+/* most bit definition are same as KS8695, except few new bits */
+#define KS8695_SEC0 0xE800
+#define KS8695_SEC1 0xE804
+
+/* new bits */
+#define KS8695_SEC0_BACKOFF_EN 0x80000000
+#define KS8695_SEC0_FRAME_LEN_CHECK 0x00020000
+#define KS8695_SEC0_DMA_HALF_DUPLEX 0x00000010
+
+/* new bits */
+#define KS8695_SEC1_NO_IEEE_AN 0x00000800
+#define KS8695_SEC1_TPID_MODE 0x00000400
+#define KS8695_SEC1_NO_TX_8021X_FLOW_CTRL 0x00000080
+#define KS8695_SEC1_NO_RX_8021X_FLOW_CTRL 0x00000040
+#define KS8695_SEC1_HUGE_PACKET 0x00000020
+#define KS8695_SEC1_8021Q_VLAN_EN 0x00000010
+#define KS8695_SEC1_MII_10BT 0x00000002
+#define KS8695_SEC1_NULL_VID 0x00000001
+
+/* Port 1-4 and 5 Configuration Register Set 1 */
+#define KS8695_SEP1C1 0xE80C
+#define KS8695_SEP2C1 0xE818
+#define KS8695_SEP3C1 0xE824
+#define KS8695_SEP4C1 0xE830
+#define KS8695_SEP5C1 0xE83C
+
+/* Port 1-4 and 5 Configuration Register Set 2 */
+#define KS8695_SEP1C2 0xE810
+#define KS8695_SEP2C2 0xE81C
+#define KS8695_SEP3C2 0xE828
+#define KS8695_SEP4C2 0xE834
+#define KS8695_SEP5C2 0xE840
+
+#define KS8695_SEPC2_VLAN_FILTER 0x10000000
+#define KS8695_SEPC2_DISCARD_NON_PVID 0x08000000
+#define KS8695_SEPC2_FORCE_FLOW_CTRL 0x04000000
+#define KS8695_SEPC2_BACK_PRESSURE_EN 0x02000000
+
+#define KS8695_SEPC2_TX_H_RATECTRL_MASK 0x00FFF000
+#define KS8695_SEPC2_TX_L_RATECTRL_MASK 0x00000FFF
+
+/* Port 1-4 and 5 Configuration Register Set 3 */
+#define KS8695_SEP1C3 0xE814
+#define KS8695_SEP2C3 0xE820
+#define KS8695_SEP3C3 0xE82C
+#define KS8695_SEP4C3 0xE838
+#define KS8695_SEP5C3 0xE844
+
+#define KS8695_SEPC3_RX_H_RATECTRL_MASK 0xFFF00000
+#define KS8695_SEPC3_RX_L_RATECTRL_MASK 0x000FFF00
+#define KS8695_SEPC3_RX_DIF_RATECTRL_EN 0x00000080
+#define KS8695_SEPC3_RX_L_RATECTRL_EN 0x00000040
+#define KS8695_SEPC3_RX_H_RATECTRL_EN 0x00000020
+#define KS8695_SEPC3_RX_L_RATEFLOW_EN 0x00000010
+#define KS8695_SEPC3_RX_H_RATEFLOW_EN 0x00000008
+#define KS8695_SEPC3_TX_DIF_RATECTRL_EN 0x00000004
+#define KS8695_SEPC3_TX_L_RATECTRL_EN 0x00000002
+#define KS8695_SEPC3_TX_H_RATECTRL_EN 0x00000001
+
+/* Port auto negotiation related registers */
+#define KS8695_SEP12AN 0xE848
+#define KS8695_SEP34AN 0xE84C
+
+/* Indirect Access Control register */
+#define KS8695_SEIAC 0xE850
+#define KS8695_SEIADH2 0xE854
+#define KS8695_SEIADH1 0xE858
+#define KS8695_SEIADL 0xE85C
+
+#define KS8695_SEIAC_READ 0x00001000
+#define KS8695_SEIAC_WRITE 0x00000000
+#define KS8695_SEIAC_TAB_STATIC 0x00000000
+#define KS8695_SEIAC_TAB_VLAN 0x00000400
+#define KS8695_SEIAC_TAB_DYNAMIC 0x00000800
+#define KS8695_SEIAC_TAB_MIB 0x00000C00
+#define KS8695_SEIAC_INDEX_MASK 0x000003FF
+
+/* Advanced Feature Control register */
+#define KS8695_SEAFC 0xE860
+#define KS8695_SEDSCPH 0xE864
+#define KS8695_SEDSCPL 0xE868
+#define KS8695_SEMAH 0xE86C
+#define KS8695_SEMAL 0xE870
+
+/* LAN PHY power management related registers */
+#define KS8695_LPPM12 0xE874
+#define KS8695_LPPM34 0xE878
+
+/* new bits */
+#define KS8695_LPPM_PHY_LOOPBACK 0x4000
+#define KS8695_LPPM_RMT_LOOPBACK 0x2000
+#define KS8695_LPPM_PHY_ISOLATE 0x1000
+#define KS8695_LPPM_SOFT_RESET 0x0800
+#define KS8695_LPPM_FORCE_LINK 0x0400
+
+/* new bits */
+#define KS8695_LPPM_PHY_LOOPBACK 0x4000
+#define KS8695_LPPM_RMT_LOOPBACK 0x2000
+#define KS8695_LPPM_PHY_ISOLATE 0x1000
+#define KS8695_LPPM_SOFT_RESET 0x0800
+#define KS8695_LPPM_FORCE_LINK 0x0400
+
+/* Digital Testing Status and Control Registers */
+#define KS8695_SEDTS 0xE87C
+#define KS8695_SEATCS 0xE880
+
+/* new bits for WAN PHY Power mangement register */
+#define KS8695_WPPM_PHY_LOOPBACK 0x00004000
+#define KS8695_WPPM_RMT_LOOPBACK 0x00002000
+#define KS8695_WPPM_PHY_ISOLATION 0x00001000
+#define KS8695_WPPM_FORCE_LINK 0x00000400
+
+#endif /* CONFIG_PCI */
+
+#endif /* __ASM_ARCH_KS8695_REGS_H */
diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/memory.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/memory.h
--- linux-2.6.16/include/asm-arm/arch-ks8695/memory.h 1970-01-01 10:00:00.000000000 +1000
+++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/memory.h 2006-03-22 23:45:56.000000000 +1000
@@ -0,0 +1,44 @@
+/*
+ * linux/include/asm-arm/arch-ks8695/memory.h
+ *
+ * Copyright (C) 2002 Micrel Inc.
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#ifndef __ASM_ARCH_MEMORY_H
+#define __ASM_ARCH_MEMORY_H
+
+#include <asm/arch/hardware.h>
+#include <asm/arch/ks8695-regs.h>
+#include <asm/arch/ks8695-pci.h>
+
+/*
+ * All the current machines based on this I know of have RAM based at
+ * address 0. Lets deal with any that don't if/when we hit them.
+ */
+#define PHYS_OFFSET UL(0x00000000)
+
+/*
+ * Virtual view <-> DMA view memory address translations
+ * virt_to_bus: Used to translate the virtual address to an
+ * address suitable to be passed to set_dma_addr
+ * bus_to_virt: Used to convert an address for DMA operations
+ * to an address that the kernel can use.
+ * On KS8695, physical and bus address are same for dram
+ */
+#define __virt_to_bus(x) ((x) - PAGE_OFFSET + KS8695P_PCI_MEM_BASE)
+#define __bus_to_virt(x) ((x) - KS8695P_PCI_MEM_BASE + PAGE_OFFSET)
+
+#endif /* __ASM_ARCH_MEMORY_H */
diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/param.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/param.h
--- linux-2.6.16/include/asm-arm/arch-ks8695/param.h 1970-01-01 10:00:00.000000000 +1000
+++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/param.h 2006-02-20 13:39:13.000000000 +1000
@@ -0,0 +1,20 @@
+/*
+ * linux/include/asm-arm/arch-ks8695/param.h
+ *
+ * Copyright (C) 1999 ARM Limited
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/system.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/system.h
--- linux-2.6.16/include/asm-arm/arch-ks8695/system.h 1970-01-01 10:00:00.000000000 +1000
+++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/system.h 2006-02-21 10:07:50.000000000 +1000
@@ -0,0 +1,48 @@
+/*
+ * linux/include/asm-arm/arch-ks8695/system.h
+ *
+ * Copyright (C) 2002 Micrel Inc.
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#ifndef __ASM_ARCH_SYSTEM_H
+#define __ASM_ARCH_SYSTEM_H
+
+#include <asm/io.h>
+#include <asm/arch/ks8695-regs.h>
+
+static void arch_idle(void)
+{
+ /*
+ * This should do all the clock switching
+ * and wait for interrupt tricks
+ */
+ cpu_do_idle();
+}
+
+static inline void arch_reset(char mode)
+{
+ unsigned int val;
+
+ /* To reset, use the watchdog timer */
+ val = __raw_readl(KS8695_REG(KS8695_TIMER_CTRL)) & 0x02;
+ __raw_writel(val, KS8695_REG(KS8695_TIMER_CTRL));
+ val = (10 << 8) | 0xFF;
+ __raw_writel(val, KS8695_REG(KS8695_TIMER0));
+ val = __raw_readl(KS8695_REG(KS8695_TIMER_CTRL)) | 0x01;
+ __raw_writel(val, KS8695_REG(KS8695_TIMER_CTRL));
+}
+
+#endif /* __ASM_ARCH_SYSTEM_H */
diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/timex.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/timex.h
--- linux-2.6.16/include/asm-arm/arch-ks8695/timex.h 1970-01-01 10:00:00.000000000 +1000
+++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/timex.h 2006-03-15 22:44:05.000000000 +1000
@@ -0,0 +1,26 @@
+/*
+ * linux/include/asm-arm/arch-ks8695/timex.h
+ *
+ * Copyright (C) 1999 ARM Limited
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef __ASM_ARCH_TIMEX_H
+#define __ASM_ARCH_TIMEX_H 1
+
+#define CLOCK_TICK_RATE (25000000)
+
+#endif /* __ASM_ARCH_TIMEX_H */
diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/uncompress.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/uncompress.h
--- linux-2.6.16/include/asm-arm/arch-ks8695/uncompress.h 1970-01-01 10:00:00.000000000 +1000
+++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/uncompress.h 2006-03-15 00:22:13.000000000 +1000
@@ -0,0 +1,60 @@
+/*
+ * linux/include/asm-arm/arch-ks8695/uncompress.h
+ *
+ * Copyright (C) 1999 ARM Limited
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <asm/arch/ks8695-regs.h>
+
+/*
+ * These access routines operate on the physical address space.
+ */
+static inline unsigned int ks8695_getreg(unsigned int r)
+{
+ return *((unsigned int *) (KS8695_IO_BASE + r));
+}
+
+static inline void ks8695_setreg(unsigned int r, unsigned int v)
+{
+ *((unsigned int *) (KS8695_IO_BASE + r)) = v;
+}
+
+static void putc(char c)
+{
+ while ((ks8695_getreg(KS8695_UART_LINE_STATUS) & KS8695_UART_LINES_TXFE) == 0)
+ ;
+
+ ks8695_setreg(KS8695_UART_TX_HOLDING, c);
+}
+
+
+static void putstr(const char *s)
+{
+ while (*s) {
+ putc(*s);
+ if (*s == '\n')
+ putc('\r');
+ s++;
+ }
+}
+
+/*
+ * nothing to do
+ */
+#define arch_decomp_setup()
+
+#define arch_decomp_wdog()
diff -Naur linux-2.6.16/include/asm-arm/arch-ks8695/vmalloc.h linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/vmalloc.h
--- linux-2.6.16/include/asm-arm/arch-ks8695/vmalloc.h 1970-01-01 10:00:00.000000000 +1000
+++ linux-2.6.16.ks8695/include/asm-arm/arch-ks8695/vmalloc.h 2006-02-20 13:39:13.000000000 +1000
@@ -0,0 +1,26 @@
+/*
+ * linux/include/asm-arm/arch-ks8695/vmalloc.h
+ *
+ * Copyright (C) 2000 Russell King.
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef __ASM_ARCH_VMALLOC_H
+#define __ASM_ARCH_VMALLOC_H 1
+
+#define VMALLOC_END (PAGE_OFFSET + 0x10000000)
+
+#endif /* __ASM_ARCH_VMALLOC_H */
diff -Naur linux-2.6.16/arch/arm/boot/compressed/head-ks8695.S linux-2.6.16.ks8695/arch/arm/boot/compressed/head-ks8695.S
--- linux-2.6.16/arch/arm/boot/compressed/head-ks8695.S 1970-01-01 10:00:00.000000000 +1000
+++ linux-2.6.16.ks8695/arch/arm/boot/compressed/head-ks8695.S 2006-03-20 13:55:24.000000000 +1000
@@ -0,0 +1,5 @@
+#include <asm/mach-types.h>
+
+ .section ".start", "ax"
+ mov r7, #(MACH_TYPE_KS8695 & 0xff)
+ orr r7, r7, #(MACH_TYPE_KS8695 & 0xff00)
diff -Naur linux-2.6.16/arch/arm/boot/compressed/Makefile linux-2.6.16.ks8695/arch/arm/boot/compressed/Makefile
--- linux-2.6.16/arch/arm/boot/compressed/Makefile 2006-03-20 15:53:29.000000000 +1000
+++ linux-2.6.16.ks8695/arch/arm/boot/compressed/Makefile 2006-03-21 17:07:45.000000000 +1000
@@ -46,6 +46,10 @@
OBJS += head-sharpsl.o
endif
+ifeq ($(CONFIG_ARCH_KS8695),y)
+OBJS += head-ks8695.o
+endif
+
ifeq ($(CONFIG_ARCH_AT91RM9200),y)
OBJS += head-at91rm9200.o
endif
-------------------------------------------------------------------
List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
FAQ: http://www.arm.linux.org.uk/mailinglists/faq.php
Etiquette: http://www.arm.linux.org.uk/mailinglists/etiquette.php
|