Date:2010-08-01 14:41:16 (13 years 7 months ago)
Author:florian
Commit:b0a16a20fefab7ff137254f9746d7c7ed1460902
Message:[octeon] add 2.6.34 support

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22452 3c298f89-4303-0410-b956-a3cf2f4a3e73
Files: target/linux/octeon/config-2.6.34 (1 diff)
target/linux/octeon/patches-2.6.34/001-wndap330_hacks.patch (1 diff)
target/linux/octeon/patches-2.6.34/002-nb5_fixup.patch (1 diff)
target/linux/octeon/patches-2.6.34/003-sched_clock_no_gcc44x_inline.patch (1 diff)

Change Details

target/linux/octeon/config-2.6.34
1# CONFIG_32BIT is not set
2CONFIG_64BIT=y
3CONFIG_64BIT_PHYS_ADDR=y
4# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
5# CONFIG_AR7 is not set
6# CONFIG_ARCH_HAS_ILOG2_U32 is not set
7# CONFIG_ARCH_HAS_ILOG2_U64 is not set
8CONFIG_ARCH_HIBERNATION_POSSIBLE=y
9CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
10CONFIG_ARCH_POPULATES_NODE_MAP=y
11CONFIG_ARCH_SPARSEMEM_ENABLE=y
12CONFIG_ARCH_SUPPORTS_MSI=y
13CONFIG_ARCH_SUPPORTS_OPROFILE=y
14CONFIG_ARCH_SUSPEND_POSSIBLE=y
15# CONFIG_ARPD is not set
16# CONFIG_BCM47XX is not set
17# CONFIG_BCM63XX is not set
18CONFIG_BINFMT_ELF32=y
19CONFIG_BITREVERSE=y
20CONFIG_BLOCK_COMPAT=y
21# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
22CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
23# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
24CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
25CONFIG_BSD_PROCESS_ACCT_V3=y
26# CONFIG_CAVIUM_OCTEON_2ND_KERNEL is not set
27CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE=2
28CONFIG_CAVIUM_OCTEON_HW_FIX_UNALIGNED=y
29CONFIG_CAVIUM_OCTEON_LOCK_L2=y
30CONFIG_CAVIUM_OCTEON_LOCK_L2_EXCEPTION=y
31CONFIG_CAVIUM_OCTEON_LOCK_L2_INTERRUPT=y
32CONFIG_CAVIUM_OCTEON_LOCK_L2_LOW_LEVEL_INTERRUPT=y
33CONFIG_CAVIUM_OCTEON_LOCK_L2_MEMCPY=y
34CONFIG_CAVIUM_OCTEON_LOCK_L2_TLB=y
35CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD=y
36# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
37CONFIG_CAVIUM_OCTEON_SPECIFIC_OPTIONS=y
38CONFIG_CC_OPTIMIZE_FOR_SIZE=y
39CONFIG_CEVT_R4K=y
40CONFIG_CEVT_R4K_LIB=y
41CONFIG_COMPAT=y
42CONFIG_COMPAT_BRK=y
43CONFIG_COMPAT_NETLINK_MESSAGES=y
44CONFIG_CPU_BIG_ENDIAN=y
45CONFIG_CPU_CAVIUM_OCTEON=y
46CONFIG_CPU_HAS_PREFETCH=y
47CONFIG_CPU_HAS_SYNC=y
48# CONFIG_CPU_LITTLE_ENDIAN is not set
49# CONFIG_CPU_LOONGSON2E is not set
50# CONFIG_CPU_LOONGSON2F is not set
51# CONFIG_CPU_MIPS32_R1 is not set
52# CONFIG_CPU_MIPS32_R2 is not set
53# CONFIG_CPU_MIPS64_R1 is not set
54# CONFIG_CPU_MIPS64_R2 is not set
55CONFIG_CPU_MIPSR2=y
56# CONFIG_CPU_NEVADA is not set
57# CONFIG_CPU_R10000 is not set
58# CONFIG_CPU_R3000 is not set
59# CONFIG_CPU_R4300 is not set
60# CONFIG_CPU_R4X00 is not set
61# CONFIG_CPU_R5000 is not set
62# CONFIG_CPU_R5432 is not set
63# CONFIG_CPU_R5500 is not set
64# CONFIG_CPU_R6000 is not set
65# CONFIG_CPU_R8000 is not set
66# CONFIG_CPU_RM7000 is not set
67# CONFIG_CPU_RM9000 is not set
68# CONFIG_CPU_SB1 is not set
69CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
70CONFIG_CPU_SUPPORTS_HIGHMEM=y
71CONFIG_CPU_SUPPORTS_HUGEPAGES=y
72# CONFIG_CPU_TX39XX is not set
73# CONFIG_CPU_TX49XX is not set
74# CONFIG_CPU_VR41XX is not set
75CONFIG_CRAMFS=y
76# CONFIG_CRYPTO_PCRYPT is not set
77CONFIG_DEBUG_INFO=y
78CONFIG_DEBUG_KERNEL=y
79CONFIG_DEBUG_SPINLOCK=y
80CONFIG_DEBUG_SPINLOCK_SLEEP=y
81CONFIG_DECOMPRESS_LZMA=y
82CONFIG_DETECT_HUNG_TASK=y
83CONFIG_DETECT_SOFTLOCKUP=y
84CONFIG_DEVKMEM=y
85CONFIG_DEVPORT=y
86# CONFIG_DM9000 is not set
87CONFIG_DMA_COHERENT=y
88CONFIG_DNOTIFY=y
89CONFIG_EARLY_PRINTK=y
90CONFIG_ELF_CORE=y
91CONFIG_ENABLE_MUST_CHECK=y
92# CONFIG_FLATMEM_MANUAL is not set
93CONFIG_FRAME_WARN=2048
94# CONFIG_FW_LOADER is not set
95CONFIG_GENERIC_CLOCKEVENTS=y
96CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
97CONFIG_GENERIC_CMOS_UPDATE=y
98CONFIG_GENERIC_FIND_LAST_BIT=y
99CONFIG_GENERIC_FIND_NEXT_BIT=y
100CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
101# CONFIG_HAMRADIO is not set
102CONFIG_HARDWARE_WATCHPOINTS=y
103CONFIG_HAS_DMA=y
104CONFIG_HAS_IOMEM=y
105CONFIG_HAS_IOPORT=y
106CONFIG_HAVE_ARCH_KGDB=y
107CONFIG_HAVE_DYNAMIC_FTRACE=y
108CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
109CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
110CONFIG_HAVE_FUNCTION_TRACER=y
111CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
112CONFIG_HAVE_GENERIC_DMA_COHERENT=y
113CONFIG_HAVE_IDE=y
114CONFIG_HAVE_MEMORY_PRESENT=y
115CONFIG_HAVE_OPROFILE=y
116CONFIG_HAVE_SYSCALL_WRAPPERS=y
117# CONFIG_HIGH_RES_TIMERS is not set
118# CONFIG_HUGETLBFS is not set
119CONFIG_HW_HAS_PCI=y
120CONFIG_HW_RANDOM=y
121CONFIG_HW_RANDOM_OCTEON=y
122CONFIG_HZ=250
123# CONFIG_HZ_100 is not set
124CONFIG_HZ_250=y
125CONFIG_INITRAMFS_SOURCE=""
126# CONFIG_INLINE_READ_UNLOCK is not set
127# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
128# CONFIG_INLINE_SPIN_UNLOCK is not set
129# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
130# CONFIG_INLINE_WRITE_UNLOCK is not set
131# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
132CONFIG_INOTIFY=y
133CONFIG_INOTIFY_USER=y
134CONFIG_IRQ_CPU=y
135CONFIG_IRQ_CPU_OCTEON=y
136CONFIG_IRQ_PER_CPU=y
137CONFIG_KALLSYMS=y
138CONFIG_KEXEC=y
139CONFIG_LEGACY_PTYS=y
140CONFIG_LEGACY_PTY_COUNT=256
141CONFIG_LOCK_KERNEL=y
142CONFIG_LOONGSON_UART_BASE=y
143# CONFIG_MACH_ALCHEMY is not set
144# CONFIG_MACH_DECSTATION is not set
145# CONFIG_MACH_JAZZ is not set
146# CONFIG_MACH_LOONGSON is not set
147# CONFIG_MACH_TX39XX is not set
148# CONFIG_MACH_TX49XX is not set
149# CONFIG_MACH_VR41XX is not set
150CONFIG_MAGIC_SYSRQ=y
151CONFIG_MDIO_OCTEON=y
152# CONFIG_MIKROTIK_RB532 is not set
153CONFIG_MIPS=y
154CONFIG_MIPS32_COMPAT=y
155CONFIG_MIPS32_N32=y
156CONFIG_MIPS32_O32=y
157# CONFIG_MIPS_COBALT is not set
158CONFIG_MIPS_L1_CACHE_SHIFT=7
159# CONFIG_MIPS_MACHINE is not set
160# CONFIG_MIPS_MALTA is not set
161CONFIG_MIPS_MT_DISABLED=y
162# CONFIG_MIPS_MT_SMP is not set
163# CONFIG_MIPS_MT_SMTC is not set
164CONFIG_MIPS_PGD_C0_CONTEXT=y
165# CONFIG_MIPS_SIM is not set
166# CONFIG_MISC_DEVICES is not set
167# CONFIG_MTD_CFI_INTELEXT is not set
168# CONFIG_MTD_COMPLEX_MAPPINGS is not set
169CONFIG_MTD_PHYSMAP=y
170CONFIG_MUTEX_SPIN_ON_OWNER=y
171# CONFIG_NETWORK_FILESYSTEMS is not set
172# CONFIG_NO_IOPORT is not set
173CONFIG_NR_CPUS=16
174CONFIG_NR_CPUS_DEFAULT_16=y
175# CONFIG_NXP_STB220 is not set
176# CONFIG_NXP_STB225 is not set
177CONFIG_OCTEON_ETHERNET=y
178CONFIG_OCTEON_MGMT_ETHERNET=y
179CONFIG_PAGEFLAGS_EXTENDED=y
180# CONFIG_PARTITION_ADVANCED is not set
181CONFIG_PCI=y
182CONFIG_PCI_DOMAINS=y
183CONFIG_PHYLIB=y
184CONFIG_PHYS_ADDR_T_64BIT=y
185# CONFIG_PMC_MSP is not set
186# CONFIG_PMC_YOSEMITE is not set
187# CONFIG_PNX8550_JBS is not set
188# CONFIG_PNX8550_STB810 is not set
189CONFIG_POSIX_MQUEUE=y
190CONFIG_POSIX_MQUEUE_SYSCTL=y
191# CONFIG_POWERTV is not set
192CONFIG_PROC_PAGE_MONITOR=y
193CONFIG_RELAY=y
194CONFIG_SCHED_DEBUG=y
195CONFIG_SCHED_OMIT_FRAME_POINTER=y
196# CONFIG_SCSI_DMA is not set
197CONFIG_SCSI_MOD=y
198CONFIG_SECCOMP=y
199# CONFIG_SERIAL_8250_EXTENDED is not set
200# CONFIG_SGI_IP22 is not set
201# CONFIG_SGI_IP27 is not set
202# CONFIG_SGI_IP28 is not set
203# CONFIG_SGI_IP32 is not set
204# CONFIG_SIBYTE_BIGSUR is not set
205# CONFIG_SIBYTE_CARMEL is not set
206# CONFIG_SIBYTE_CRHINE is not set
207# CONFIG_SIBYTE_CRHONE is not set
208# CONFIG_SIBYTE_LITTLESUR is not set
209# CONFIG_SIBYTE_RHONE is not set
210# CONFIG_SIBYTE_SENTOSA is not set
211# CONFIG_SIBYTE_SWARM is not set
212CONFIG_SMP=y
213CONFIG_SPARSEMEM=y
214CONFIG_SPARSEMEM_MANUAL=y
215CONFIG_SPARSEMEM_STATIC=y
216CONFIG_SPLIT_PTLOCK_CPUS=999999
217CONFIG_STOP_MACHINE=y
218CONFIG_SWAP_IO_SPACE=y
219CONFIG_SYSFS_DEPRECATED=y
220CONFIG_SYSFS_DEPRECATED_V2=y
221CONFIG_SYSVIPC_COMPAT=y
222CONFIG_SYS_HAS_CPU_CAVIUM_OCTEON=y
223CONFIG_SYS_HAS_EARLY_PRINTK=y
224CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y
225CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
226CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
227CONFIG_SYS_SUPPORTS_HIGHMEM=y
228CONFIG_SYS_SUPPORTS_HOTPLUG_CPU=y
229CONFIG_SYS_SUPPORTS_HUGETLBFS=y
230CONFIG_SYS_SUPPORTS_SMP=y
231# CONFIG_TC35815 is not set
232# CONFIG_TINY_RCU is not set
233CONFIG_TREE_RCU=y
234CONFIG_USB_SUPPORT=y
235CONFIG_USE_GENERIC_SMP_HELPERS=y
236# CONFIG_VLAN_8021Q is not set
237CONFIG_VM_EVENT_COUNTERS=y
238CONFIG_WEAK_ORDERING=y
239CONFIG_ZONE_DMA_FLAG=0
target/linux/octeon/patches-2.6.34/001-wndap330_hacks.patch
1--- a/drivers/staging/octeon/cvmx-helper-board.c
2@@ -90,7 +90,7 @@ int cvmx_helper_board_get_mii_address(in
3     case CVMX_BOARD_TYPE_KODAMA:
4     case CVMX_BOARD_TYPE_EBH3100:
5     case CVMX_BOARD_TYPE_HIKARI:
6- case CVMX_BOARD_TYPE_CN3010_EVB_HS5:
7+ //case CVMX_BOARD_TYPE_CN3010_EVB_HS5: /* hack for the WNDAP330 */
8     case CVMX_BOARD_TYPE_CN3005_EVB_HS5:
9     case CVMX_BOARD_TYPE_CN3020_EVB_HS5:
10         /*
11@@ -103,6 +103,12 @@ int cvmx_helper_board_get_mii_address(in
12             return 9;
13         else
14             return -1;
15+ case CVMX_BOARD_TYPE_CN3010_EVB_HS5: /* hack for the WNDAP330 */
16+ /* We have only one port, using GMII */
17+ if (ipd_port == 0)
18+ return 9;
19+ else
20+ return -1;
21     case CVMX_BOARD_TYPE_NAC38:
22         /* Board has 8 RGMII ports PHYs are 0-7 */
23         if ((ipd_port >= 0) && (ipd_port < 4))
24@@ -213,7 +219,7 @@ cvmx_helper_link_info_t __cvmx_helper_bo
25         result.s.speed = 1000;
26         return result;
27     case CVMX_BOARD_TYPE_EBH3100:
28- case CVMX_BOARD_TYPE_CN3010_EVB_HS5:
29+ //case CVMX_BOARD_TYPE_CN3010_EVB_HS5: /* hack for the WNDAP330 */
30     case CVMX_BOARD_TYPE_CN3005_EVB_HS5:
31     case CVMX_BOARD_TYPE_CN3020_EVB_HS5:
32         /* Port 1 on these boards is always Gigabit */
33@@ -225,6 +231,9 @@ cvmx_helper_link_info_t __cvmx_helper_bo
34         }
35         /* Fall through to the generic code below */
36         break;
37+ case CVMX_BOARD_TYPE_CN3010_EVB_HS5: /* hack for the WNDAP330 */
38+ is_broadcom_phy = 1;
39+ break;
40     case CVMX_BOARD_TYPE_CUST_NB5:
41         /* Port 1 on these boards is always Gigabit */
42         if (ipd_port == 1) {
43--- a/drivers/staging/octeon/cvmx-helper-rgmii.c
44@@ -66,13 +66,15 @@ int __cvmx_helper_rgmii_probe(int interf
45             cvmx_dprintf("ERROR: RGMII initialize called in "
46                      "SPI interface\n");
47         } else if (OCTEON_IS_MODEL(OCTEON_CN31XX)
48- || OCTEON_IS_MODEL(OCTEON_CN30XX)
49+ //|| OCTEON_IS_MODEL(OCTEON_CN30XX)
50                || OCTEON_IS_MODEL(OCTEON_CN50XX)) {
51             /*
52              * On these chips "type" says we're in
53              * GMII/MII mode. This limits us to 2 ports
54              */
55             num_ports = 2;
56+ } else if (OCTEON_IS_MODEL(OCTEON_CN30XX)) {
57+ num_ports = 1;
58         } else {
59             cvmx_dprintf("ERROR: Unsupported Octeon model in %s\n",
60                      __func__);
61--- a/arch/mips/pci/pci-octeon.c
62@@ -210,9 +210,11 @@ const char *octeon_get_pci_interrupts(vo
63         /* This is really the NAC38 */
64         return "AAAAADABAAAAAAAAAAAAAAAAAAAAAAAA";
65     case CVMX_BOARD_TYPE_EBH3100:
66- case CVMX_BOARD_TYPE_CN3010_EVB_HS5:
67+ //case CVMX_BOARD_TYPE_CN3010_EVB_HS5:
68     case CVMX_BOARD_TYPE_CN3005_EVB_HS5:
69         return "AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
70+ case CVMX_BOARD_TYPE_CN3010_EVB_HS5:
71+ return "AAAAAAAAAAAAAABAAAAAAAAAAAAAAABA";
72     case CVMX_BOARD_TYPE_BBGW_REF:
73         return "AABCD";
74     case CVMX_BOARD_TYPE_THUNDER:
target/linux/octeon/patches-2.6.34/002-nb5_fixup.patch
1--- a/arch/mips/pci/pci-octeon.c
2@@ -217,6 +217,8 @@ const char *octeon_get_pci_interrupts(vo
3         return "AAAAAAAAAAAAAABAAAAAAAAAAAAAAABA";
4     case CVMX_BOARD_TYPE_BBGW_REF:
5         return "AABCD";
6+ case CVMX_BOARD_TYPE_CUST_NB5:
7+ return "ABDABAAAAAAAAAAAAAAAAAAAAAAAAAAA";
8     case CVMX_BOARD_TYPE_THUNDER:
9     case CVMX_BOARD_TYPE_EBH3000:
10     default:
11--- a/drivers/staging/octeon/cvmx-helper-board.c
12@@ -707,6 +707,7 @@ cvmx_helper_board_usb_clock_types_t __cv
13 {
14     switch (cvmx_sysinfo_get()->board_type) {
15     case CVMX_BOARD_TYPE_BBGW_REF:
16+ case CVMX_BOARD_TYPE_CUST_NB5:
17         return USB_CLOCK_TYPE_CRYSTAL_12;
18     }
19     return USB_CLOCK_TYPE_REF_48;
target/linux/octeon/patches-2.6.34/003-sched_clock_no_gcc44x_inline.patch
1When building with a toolchain that is configured to produce 32-bits executable
2by default, we will produce __lshrti3 in sched_clock() which is never resolved
3so the kernel fails to link. Unconditionally use the inline assemble version
4as suggested by David Daney, which works around the issue.
5
6CC: David Daney <ddaney@caviumnetworks.com>
7Signed-off-by: Florian Fainelli <florian@openwrt.org>
8---
9 arch/mips/cavium-octeon/csrc-octeon.c | 8 --------
10 1 files changed, 0 insertions(+), 8 deletions(-)
11
12diff --git a/arch/mips/cavium-octeon/csrc-octeon.c b/arch/mips/cavium-octeon/csrc-octeon.c
13index 0bf4bbe..36400d2 100644
14--- a/arch/mips/cavium-octeon/csrc-octeon.c
15@@ -53,7 +53,6 @@ static struct clocksource clocksource_mips = {
16 unsigned long long notrace sched_clock(void)
17 {
18     /* 64-bit arithmatic can overflow, so use 128-bit. */
19-#if (__GNUC__ < 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ <= 3))
20     u64 t1, t2, t3;
21     unsigned long long rv;
22     u64 mult = clocksource_mips.mult;
23@@ -73,13 +72,6 @@ unsigned long long notrace sched_clock(void)
24         : [cnt] "r" (cnt), [mult] "r" (mult), [shift] "r" (shift)
25         : "hi", "lo");
26     return rv;
27-#else
28- /* GCC > 4.3 do it the easy way. */
29- unsigned int __attribute__((mode(TI))) t;
30- t = read_c0_cvmcount();
31- t = t * clocksource_mips.mult;
32- return (unsigned long long)(t >> clocksource_mips.shift);
33-#endif
34 }
35
36 void __init plat_time_init(void)
37--
381.7.1
39

Archive Download the corresponding diff file



interactive