add a heavily cleaned up version of ubicom32 toolchain support
[openwrt/openwrt.git] / toolchain / kernel-headers / patches-2.6.28 / 100-ubicom_headers.patch
1 diff -ruN linux-2.6.28.10_o/arch/ubicom32/configs/IP5160EVAL_defconfig linux-2.6.28.10/arch/ubicom32/configs/IP5160EVAL_defconfig
2 --- linux-2.6.28.10_o/arch/ubicom32/configs/IP5160EVAL_defconfig 1970-01-01 02:00:00.000000000 +0200
3 +++ linux-2.6.28.10/arch/ubicom32/configs/IP5160EVAL_defconfig 2009-08-12 13:08:37.000000000 +0300
4 @@ -0,0 +1,524 @@
5 +#
6 +# Automatically generated make config: don't edit
7 +# Linux kernel version: 2.6.28.10
8 +#
9 +CONFIG_RAMBASE=0x40000000
10 +CONFIG_UBICOM32=y
11 +CONFIG_RAMKERNEL=y
12 +CONFIG_CPU_BIG_ENDIAN=y
13 +CONFIG_FORCE_MAX_ZONEORDER=14
14 +CONFIG_HAVE_CLK=y
15 +# CONFIG_MMU is not set
16 +# CONFIG_FPU is not set
17 +CONFIG_ZONE_DMA=y
18 +CONFIG_RWSEM_GENERIC_SPINLOCK=y
19 +# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
20 +# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21 +# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22 +CONFIG_GENERIC_FIND_NEXT_BIT=y
23 +CONFIG_GENERIC_GPIO=y
24 +CONFIG_GPIOLIB=y
25 +CONFIG_GENERIC_HWEIGHT=y
26 +CONFIG_GENERIC_HARDIRQS=y
27 +CONFIG_STACKTRACE_SUPPORT=y
28 +CONFIG_LOCKDEP_SUPPORT=y
29 +CONFIG_GENERIC_CALIBRATE_DELAY=y
30 +CONFIG_GENERIC_TIME=y
31 +CONFIG_TIME_LOW_RES=y
32 +CONFIG_GENERIC_CLOCKEVENTS=y
33 +CONFIG_NO_IOPORT=y
34 +CONFIG_ARCH_SUPPORTS_AOUT=y
35 +CONFIG_IRQ_PER_CPU=y
36 +CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
37 +
38 +#
39 +# Processor type and features
40 +#
41 +CONFIG_BRD_32MB=y
42 +
43 +#
44 +# Processor type will be selected by Board
45 +#
46 +CONFIG_UBICOM32_V3=y
47 +
48 +#
49 +# Board
50 +#
51 +# CONFIG_NOBOARD is not set
52 +# CONFIG_IP5170DPF is not set
53 +# CONFIG_IP5160DEV is not set
54 +CONFIG_IP5160EVAL=y
55 +# CONFIG_IP7145DPF is not set
56 +# CONFIG_IP7160RGW is not set
57 +# CONFIG_IP7160BRINGUP is not set
58 +# CONFIG_IP7160DPF is not set
59 +# CONFIG_IP7500MODULE is not set
60 +# CONFIG_IP7500AV is not set
61 +# CONFIG_IP7500MEDIA is not set
62 +
63 +#
64 +# Kernel Options
65 +#
66 +# CONFIG_SMP is not set
67 +CONFIG_TIMER_EXTRA_ALLOC=0
68 +# CONFIG_IRQSTACKS is not set
69 +CONFIG_UBICOM32_OCM_MODULES=y
70 +CONFIG_OCM_MODULES_RESERVATION=41
71 +CONFIG_OCM_MODULES_MAY_CONSUME_REMAINING_CODESPACE=y
72 +CONFIG_HZ=1000
73 +
74 +#
75 +# RAM configuration
76 +#
77 +CONFIG_RAMSIZE=0x02000000
78 +CONFIG_KERNELBASE=0x40400000
79 +
80 +#
81 +# Build options
82 +#
83 +CONFIG_LINKER_RELAXATION=y
84 +
85 +#
86 +# Driver options
87 +#
88 +
89 +#
90 +# PCI Bus
91 +#
92 +# CONFIG_PCI is not set
93 +# CONFIG_ARCH_SUPPORTS_MSI is not set
94 +
95 +#
96 +# Input devices
97 +#
98 +# CONFIG_UBICOM_INPUT is not set
99 +# CONFIG_UBICOM_INPUT_I2C is not set
100 +CONFIG_UBICOM_SWITCH=y
101 +
102 +#
103 +# Misc devices
104 +#
105 +# CONFIG_UBICOM_HID is not set
106 +CONFIG_CMDLINE_BOOL=y
107 +CONFIG_CMDLINE="console=ttyUM0"
108 +# CONFIG_CMDLINE_OVERRIDE is not set
109 +
110 +#
111 +# Kernel hacking
112 +#
113 +CONFIG_TRACE_IRQFLAGS_SUPPORT=y
114 +CONFIG_PROTECT_KERNEL=y
115 +# CONFIG_NO_KERNEL_MSG is not set
116 +# CONFIG_EARLY_PRINTK is not set
117 +# CONFIG_STOP_ON_TRAP is not set
118 +# CONFIG_STOP_ON_BUG is not set
119 +# CONFIG_DEBUG_IRQMEASURE is not set
120 +# CONFIG_DEBUG_PCIMEASURE is not set
121 +# CONFIG_ACCESS_OK_CHECKS_ENABLED is not set
122 +CONFIG_UNALIGNED_ACCESS_ENABLED=y
123 +# CONFIG_UNALIGNED_ACCESS_USERSPACE_ONLY is not set
124 +# CONFIG_UNALIGNED_ACCESS_DISABLED is not set
125 +# CONFIG_DEBUG_STACKOVERFLOW is not set
126 +# CONFIG_DEBUG_STACK_USAGE is not set
127 +# CONFIG_PRINTK_TIME is not set
128 +CONFIG_ENABLE_WARN_DEPRECATED=y
129 +CONFIG_ENABLE_MUST_CHECK=y
130 +CONFIG_FRAME_WARN=1024
131 +# CONFIG_MAGIC_SYSRQ is not set
132 +# CONFIG_UNUSED_SYMBOLS is not set
133 +# CONFIG_HEADERS_CHECK is not set
134 +CONFIG_DEBUG_KERNEL=y
135 +# CONFIG_DEBUG_SHIRQ is not set
136 +CONFIG_DETECT_SOFTLOCKUP=y
137 +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
138 +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
139 +CONFIG_SCHED_DEBUG=y
140 +# CONFIG_SCHEDSTATS is not set
141 +# CONFIG_TIMER_STATS is not set
142 +# CONFIG_DEBUG_OBJECTS is not set
143 +# CONFIG_DEBUG_SLAB is not set
144 +# CONFIG_DEBUG_SPINLOCK is not set
145 +# CONFIG_DEBUG_MUTEXES is not set
146 +# CONFIG_DEBUG_LOCK_ALLOC is not set
147 +# CONFIG_PROVE_LOCKING is not set
148 +# CONFIG_LOCK_STAT is not set
149 +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
150 +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
151 +# CONFIG_DEBUG_KOBJECT is not set
152 +CONFIG_DEBUG_INFO=y
153 +# CONFIG_DEBUG_VM is not set
154 +# CONFIG_DEBUG_WRITECOUNT is not set
155 +# CONFIG_DEBUG_MEMORY_INIT is not set
156 +# CONFIG_DEBUG_LIST is not set
157 +# CONFIG_DEBUG_SG is not set
158 +# CONFIG_FRAME_POINTER is not set
159 +# CONFIG_BOOT_PRINTK_DELAY is not set
160 +# CONFIG_RCU_TORTURE_TEST is not set
161 +# CONFIG_RCU_CPU_STALL_DETECTOR is not set
162 +# CONFIG_BACKTRACE_SELF_TEST is not set
163 +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
164 +# CONFIG_FAULT_INJECTION is not set
165 +# CONFIG_SYSCTL_SYSCALL_CHECK is not set
166 +
167 +#
168 +# Tracers
169 +#
170 +# CONFIG_IRQSOFF_TRACER is not set
171 +# CONFIG_SCHED_TRACER is not set
172 +# CONFIG_CONTEXT_SWITCH_TRACER is not set
173 +# CONFIG_BOOT_TRACER is not set
174 +# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
175 +# CONFIG_SAMPLES is not set
176 +
177 +#
178 +# Executable file formats
179 +#
180 +CONFIG_BINFMT_ELF_FDPIC=y
181 +CONFIG_BINFMT_FLAT=y
182 +# CONFIG_BINFMT_ZFLAT is not set
183 +# CONFIG_BINFMT_SHARED_FLAT is not set
184 +# CONFIG_HAVE_AOUT is not set
185 +# CONFIG_BINFMT_MISC is not set
186 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
187 +
188 +#
189 +# General setup
190 +#
191 +CONFIG_EXPERIMENTAL=y
192 +CONFIG_BROKEN_ON_SMP=y
193 +CONFIG_INIT_ENV_ARG_LIMIT=32
194 +CONFIG_LOCALVERSION=""
195 +CONFIG_LOCALVERSION_AUTO=y
196 +# CONFIG_SYSVIPC is not set
197 +# CONFIG_BSD_PROCESS_ACCT is not set
198 +# CONFIG_IKCONFIG is not set
199 +CONFIG_LOG_BUF_SHIFT=14
200 +# CONFIG_CGROUPS is not set
201 +# CONFIG_GROUP_SCHED is not set
202 +# CONFIG_RELAY is not set
203 +# CONFIG_NAMESPACES is not set
204 +CONFIG_BLK_DEV_INITRD=y
205 +CONFIG_INITRAMFS_SOURCE=""
206 +CONFIG_INITRAMFS_ROOT_UID=0
207 +CONFIG_INITRAMFS_ROOT_GID=0
208 +CONFIG_CC_OPTIMIZE_FOR_SIZE=y
209 +CONFIG_SYSCTL=y
210 +CONFIG_EMBEDDED=y
211 +CONFIG_SYSCTL_SYSCALL=y
212 +# CONFIG_KALLSYMS is not set
213 +# CONFIG_HOTPLUG is not set
214 +CONFIG_PRINTK=y
215 +CONFIG_BUG=y
216 +# CONFIG_ELF_CORE is not set
217 +CONFIG_BASE_FULL=y
218 +# CONFIG_FUTEX is not set
219 +# CONFIG_EPOLL is not set
220 +# CONFIG_SIGNALFD is not set
221 +# CONFIG_TIMERFD is not set
222 +# CONFIG_EVENTFD is not set
223 +CONFIG_AIO=y
224 +# CONFIG_VM_EVENT_COUNTERS is not set
225 +# CONFIG_COMPAT_BRK is not set
226 +CONFIG_SLAB=y
227 +# CONFIG_SLUB is not set
228 +# CONFIG_SLOB is not set
229 +# CONFIG_PROFILING is not set
230 +# CONFIG_MARKERS is not set
231 +CONFIG_HAVE_OPROFILE=y
232 +# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
233 +CONFIG_SLABINFO=y
234 +CONFIG_TINY_SHMEM=y
235 +CONFIG_BASE_SMALL=0
236 +# CONFIG_MODULES is not set
237 +CONFIG_BLOCK=y
238 +# CONFIG_LBD is not set
239 +# CONFIG_LSF is not set
240 +# CONFIG_BLK_DEV_BSG is not set
241 +# CONFIG_BLK_DEV_INTEGRITY is not set
242 +
243 +#
244 +# IO Schedulers
245 +#
246 +CONFIG_IOSCHED_NOOP=y
247 +# CONFIG_IOSCHED_AS is not set
248 +# CONFIG_IOSCHED_DEADLINE is not set
249 +# CONFIG_IOSCHED_CFQ is not set
250 +# CONFIG_DEFAULT_AS is not set
251 +# CONFIG_DEFAULT_DEADLINE is not set
252 +# CONFIG_DEFAULT_CFQ is not set
253 +CONFIG_DEFAULT_NOOP=y
254 +CONFIG_DEFAULT_IOSCHED="noop"
255 +CONFIG_CLASSIC_RCU=y
256 +CONFIG_PREEMPT_NONE=y
257 +# CONFIG_PREEMPT_VOLUNTARY is not set
258 +# CONFIG_PREEMPT is not set
259 +# CONFIG_NO_HZ is not set
260 +# CONFIG_HIGH_RES_TIMERS is not set
261 +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
262 +CONFIG_SELECT_MEMORY_MODEL=y
263 +CONFIG_FLATMEM_MANUAL=y
264 +# CONFIG_DISCONTIGMEM_MANUAL is not set
265 +# CONFIG_SPARSEMEM_MANUAL is not set
266 +CONFIG_FLATMEM=y
267 +CONFIG_FLAT_NODE_MEM_MAP=y
268 +CONFIG_PAGEFLAGS_EXTENDED=y
269 +CONFIG_SPLIT_PTLOCK_CPUS=4
270 +# CONFIG_RESOURCES_64BIT is not set
271 +# CONFIG_PHYS_ADDR_T_64BIT is not set
272 +CONFIG_ZONE_DMA_FLAG=1
273 +CONFIG_VIRT_TO_BUS=y
274 +# CONFIG_NET is not set
275 +
276 +#
277 +# Device Drivers
278 +#
279 +
280 +#
281 +# Generic Driver Options
282 +#
283 +CONFIG_STANDALONE=y
284 +CONFIG_PREVENT_FIRMWARE_BUILD=y
285 +CONFIG_DEBUG_DRIVER=y
286 +CONFIG_DEBUG_DEVRES=y
287 +# CONFIG_SYS_HYPERVISOR is not set
288 +# CONFIG_MTD is not set
289 +# CONFIG_PARPORT is not set
290 +CONFIG_BLK_DEV=y
291 +# CONFIG_BLK_DEV_COW_COMMON is not set
292 +# CONFIG_BLK_DEV_LOOP is not set
293 +CONFIG_BLK_DEV_RAM=y
294 +CONFIG_BLK_DEV_RAM_COUNT=16
295 +CONFIG_BLK_DEV_RAM_SIZE=4096
296 +# CONFIG_BLK_DEV_XIP is not set
297 +# CONFIG_CDROM_PKTCDVD is not set
298 +# CONFIG_MISC_DEVICES is not set
299 +
300 +#
301 +# SCSI device support
302 +#
303 +# CONFIG_RAID_ATTRS is not set
304 +# CONFIG_SCSI is not set
305 +# CONFIG_SCSI_DMA is not set
306 +# CONFIG_SCSI_NETLINK is not set
307 +# CONFIG_ATA is not set
308 +# CONFIG_MD is not set
309 +# CONFIG_PHONE is not set
310 +
311 +#
312 +# Input device support
313 +#
314 +# CONFIG_INPUT is not set
315 +
316 +#
317 +# Hardware I/O ports
318 +#
319 +# CONFIG_SERIO is not set
320 +# CONFIG_GAMEPORT is not set
321 +
322 +#
323 +# Character devices
324 +#
325 +# CONFIG_VT is not set
326 +CONFIG_DEVKMEM=y
327 +# CONFIG_SERIAL_NONSTANDARD is not set
328 +
329 +#
330 +# Serial drivers
331 +#
332 +# CONFIG_SERIAL_8250 is not set
333 +
334 +#
335 +# Non-8250 serial port support
336 +#
337 +CONFIG_SERIAL_UBI32_SERDES=y
338 +CONFIG_SERIAL_UBI32_SERDES_CONSOLE=y
339 +# CONFIG_SERIAL_UBI32_MAILBOX is not set
340 +CONFIG_SERIAL_CORE=y
341 +CONFIG_SERIAL_CORE_CONSOLE=y
342 +# CONFIG_UNIX98_PTYS is not set
343 +CONFIG_LEGACY_PTYS=y
344 +CONFIG_LEGACY_PTY_COUNT=256
345 +# CONFIG_IPMI_HANDLER is not set
346 +# CONFIG_HW_RANDOM is not set
347 +# CONFIG_RTC is not set
348 +# CONFIG_GEN_RTC is not set
349 +# CONFIG_R3964 is not set
350 +# CONFIG_RAW_DRIVER is not set
351 +# CONFIG_TCG_TPM is not set
352 +# CONFIG_I2C is not set
353 +# CONFIG_SPI is not set
354 +# CONFIG_DEBUG_GPIO is not set
355 +
356 +#
357 +# Memory mapped GPIO expanders:
358 +#
359 +
360 +#
361 +# I2C GPIO expanders:
362 +#
363 +
364 +#
365 +# PCI GPIO expanders:
366 +#
367 +
368 +#
369 +# SPI GPIO expanders:
370 +#
371 +# CONFIG_W1 is not set
372 +# CONFIG_POWER_SUPPLY is not set
373 +# CONFIG_HWMON is not set
374 +# CONFIG_THERMAL is not set
375 +# CONFIG_THERMAL_HWMON is not set
376 +# CONFIG_WATCHDOG is not set
377 +CONFIG_SSB_POSSIBLE=y
378 +
379 +#
380 +# Sonics Silicon Backplane
381 +#
382 +# CONFIG_SSB is not set
383 +
384 +#
385 +# Multifunction device drivers
386 +#
387 +# CONFIG_MFD_CORE is not set
388 +# CONFIG_MFD_SM501 is not set
389 +# CONFIG_HTC_PASIC3 is not set
390 +# CONFIG_MFD_TMIO is not set
391 +# CONFIG_REGULATOR is not set
392 +
393 +#
394 +# Multimedia devices
395 +#
396 +
397 +#
398 +# Multimedia core support
399 +#
400 +# CONFIG_VIDEO_DEV is not set
401 +# CONFIG_VIDEO_MEDIA is not set
402 +
403 +#
404 +# Multimedia drivers
405 +#
406 +# CONFIG_DAB is not set
407 +
408 +#
409 +# Graphics support
410 +#
411 +# CONFIG_VGASTATE is not set
412 +# CONFIG_VIDEO_OUTPUT_CONTROL is not set
413 +# CONFIG_FB is not set
414 +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
415 +
416 +#
417 +# Display device support
418 +#
419 +# CONFIG_DISPLAY_SUPPORT is not set
420 +# CONFIG_SOUND is not set
421 +# CONFIG_USB_SUPPORT is not set
422 +# CONFIG_MMC is not set
423 +# CONFIG_MEMSTICK is not set
424 +# CONFIG_NEW_LEDS is not set
425 +# CONFIG_ACCESSIBILITY is not set
426 +# CONFIG_RTC_CLASS is not set
427 +# CONFIG_DMADEVICES is not set
428 +# CONFIG_UIO is not set
429 +# CONFIG_STAGING is not set
430 +
431 +#
432 +# File systems
433 +#
434 +# CONFIG_EXT2_FS is not set
435 +# CONFIG_EXT3_FS is not set
436 +# CONFIG_EXT4_FS is not set
437 +# CONFIG_REISERFS_FS is not set
438 +# CONFIG_JFS_FS is not set
439 +# CONFIG_FS_POSIX_ACL is not set
440 +CONFIG_FILE_LOCKING=y
441 +# CONFIG_XFS_FS is not set
442 +# CONFIG_DNOTIFY is not set
443 +# CONFIG_INOTIFY is not set
444 +# CONFIG_QUOTA is not set
445 +# CONFIG_AUTOFS_FS is not set
446 +# CONFIG_AUTOFS4_FS is not set
447 +# CONFIG_FUSE_FS is not set
448 +
449 +#
450 +# CD-ROM/DVD Filesystems
451 +#
452 +# CONFIG_ISO9660_FS is not set
453 +# CONFIG_UDF_FS is not set
454 +
455 +#
456 +# DOS/FAT/NT Filesystems
457 +#
458 +# CONFIG_MSDOS_FS is not set
459 +# CONFIG_VFAT_FS is not set
460 +# CONFIG_NTFS_FS is not set
461 +
462 +#
463 +# Pseudo filesystems
464 +#
465 +CONFIG_PROC_FS=y
466 +CONFIG_PROC_SYSCTL=y
467 +# CONFIG_SYSFS is not set
468 +# CONFIG_TMPFS is not set
469 +# CONFIG_HUGETLB_PAGE is not set
470 +
471 +#
472 +# Layered filesystems
473 +#
474 +# CONFIG_UNION_FS is not set
475 +
476 +#
477 +# Miscellaneous filesystems
478 +#
479 +# CONFIG_ADFS_FS is not set
480 +# CONFIG_AFFS_FS is not set
481 +# CONFIG_HFS_FS is not set
482 +# CONFIG_HFSPLUS_FS is not set
483 +# CONFIG_BEFS_FS is not set
484 +# CONFIG_BFS_FS is not set
485 +# CONFIG_EFS_FS is not set
486 +# CONFIG_CRAMFS is not set
487 +# CONFIG_VXFS_FS is not set
488 +# CONFIG_MINIX_FS is not set
489 +# CONFIG_OMFS_FS is not set
490 +# CONFIG_HPFS_FS is not set
491 +# CONFIG_QNX4FS_FS is not set
492 +CONFIG_ROMFS_FS=y
493 +# CONFIG_SYSV_FS is not set
494 +# CONFIG_UFS_FS is not set
495 +
496 +#
497 +# Partition Types
498 +#
499 +# CONFIG_PARTITION_ADVANCED is not set
500 +CONFIG_MSDOS_PARTITION=y
501 +# CONFIG_NLS is not set
502 +
503 +#
504 +# Security options
505 +#
506 +# CONFIG_KEYS is not set
507 +# CONFIG_SECURITYFS is not set
508 +# CONFIG_SECURITY_FILE_CAPABILITIES is not set
509 +# CONFIG_CRYPTO is not set
510 +
511 +#
512 +# OCF Configuration
513 +#
514 +# CONFIG_OCF_OCF is not set
515 +
516 +#
517 +# Library routines
518 +#
519 +CONFIG_BITREVERSE=y
520 +# CONFIG_CRC_CCITT is not set
521 +# CONFIG_CRC16 is not set
522 +# CONFIG_CRC_T10DIF is not set
523 +# CONFIG_CRC_ITU_T is not set
524 +CONFIG_CRC32=y
525 +# CONFIG_CRC7 is not set
526 +# CONFIG_LIBCRC32C is not set
527 +CONFIG_HAS_IOMEM=y
528 +CONFIG_HAS_DMA=y
529 diff -ruN linux-2.6.28.10_o/arch/ubicom32/configs/IP7160RGW_defconfig linux-2.6.28.10/arch/ubicom32/configs/IP7160RGW_defconfig
530 --- linux-2.6.28.10_o/arch/ubicom32/configs/IP7160RGW_defconfig 1970-01-01 02:00:00.000000000 +0200
531 +++ linux-2.6.28.10/arch/ubicom32/configs/IP7160RGW_defconfig 2009-08-12 13:08:37.000000000 +0300
532 @@ -0,0 +1,1301 @@
533 +#
534 +# Automatically generated make config: don't edit
535 +# Linux kernel version: 2.6.28.10
536 +#
537 +CONFIG_RAMBASE=0x40000000
538 +CONFIG_UBICOM32=y
539 +CONFIG_RAMKERNEL=y
540 +CONFIG_CPU_BIG_ENDIAN=y
541 +CONFIG_FORCE_MAX_ZONEORDER=14
542 +CONFIG_HAVE_CLK=y
543 +# CONFIG_MMU is not set
544 +# CONFIG_FPU is not set
545 +CONFIG_ZONE_DMA=y
546 +CONFIG_RWSEM_GENERIC_SPINLOCK=y
547 +# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
548 +# CONFIG_ARCH_HAS_ILOG2_U32 is not set
549 +# CONFIG_ARCH_HAS_ILOG2_U64 is not set
550 +CONFIG_GENERIC_FIND_NEXT_BIT=y
551 +CONFIG_GENERIC_GPIO=y
552 +CONFIG_GPIOLIB=y
553 +CONFIG_GENERIC_HWEIGHT=y
554 +CONFIG_GENERIC_HARDIRQS=y
555 +CONFIG_STACKTRACE_SUPPORT=y
556 +CONFIG_LOCKDEP_SUPPORT=y
557 +CONFIG_GENERIC_CALIBRATE_DELAY=y
558 +CONFIG_GENERIC_TIME=y
559 +CONFIG_TIME_LOW_RES=y
560 +CONFIG_GENERIC_CLOCKEVENTS=y
561 +CONFIG_NO_IOPORT=y
562 +CONFIG_ARCH_SUPPORTS_AOUT=y
563 +CONFIG_IRQ_PER_CPU=y
564 +CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
565 +
566 +#
567 +# Processor type and features
568 +#
569 +CONFIG_BRD_64MB=y
570 +
571 +#
572 +# Processor type will be selected by Board
573 +#
574 +CONFIG_UBICOM32_V4=y
575 +
576 +#
577 +# Board
578 +#
579 +# CONFIG_NOBOARD is not set
580 +# CONFIG_IP5170DPF is not set
581 +# CONFIG_IP5160DEV is not set
582 +# CONFIG_IP5160EVAL is not set
583 +# CONFIG_IP7145DPF is not set
584 +CONFIG_IP7160RGW=y
585 +# CONFIG_IP7160BRINGUP is not set
586 +# CONFIG_IP7160DPF is not set
587 +# CONFIG_IP7500MODULE is not set
588 +# CONFIG_IP7500AV is not set
589 +# CONFIG_IP7500MEDIA is not set
590 +
591 +#
592 +# Kernel Options
593 +#
594 +# CONFIG_SMP is not set
595 +CONFIG_TIMER_EXTRA_ALLOC=0
596 +# CONFIG_IRQSTACKS is not set
597 +CONFIG_UBICOM32_OCM_MODULES=y
598 +CONFIG_OCM_MODULES_RESERVATION=41
599 +CONFIG_OCM_MODULES_MAY_CONSUME_REMAINING_CODESPACE=y
600 +CONFIG_HZ=100
601 +
602 +#
603 +# RAM configuration
604 +#
605 +CONFIG_RAMSIZE=0x04000000
606 +CONFIG_KERNELBASE=0x40400000
607 +
608 +#
609 +# Build options
610 +#
611 +# CONFIG_LINKER_RELAXATION is not set
612 +
613 +#
614 +# Driver options
615 +#
616 +
617 +#
618 +# PCI Bus
619 +#
620 +CONFIG_PCI=y
621 +# CONFIG_ARCH_SUPPORTS_MSI is not set
622 +# CONFIG_PCI_LEGACY is not set
623 +# CONFIG_PCI_DEBUG is not set
624 +CONFIG_PCI_DEV0_IDSEL=0x001000000
625 +CONFIG_PCI_DEV1_IDSEL=0x002000000
626 +
627 +#
628 +# Input devices
629 +#
630 +CONFIG_UBICOM_INPUT=y
631 +# CONFIG_UBICOM_INPUT_I2C is not set
632 +CONFIG_UBICOM_SWITCH=y
633 +CONFIG_UBICOM_SWITCH_BCM539X=y
634 +
635 +#
636 +# Misc devices
637 +#
638 +# CONFIG_UBICOM_HID is not set
639 +CONFIG_CMDLINE_BOOL=y
640 +CONFIG_CMDLINE="console=ttyUM0 console=ttyUS0 serdes=0x02004000,61,250000000"
641 +# CONFIG_CMDLINE_OVERRIDE is not set
642 +
643 +#
644 +# Kernel hacking
645 +#
646 +CONFIG_TRACE_IRQFLAGS_SUPPORT=y
647 +CONFIG_PROTECT_KERNEL=y
648 +# CONFIG_NO_KERNEL_MSG is not set
649 +CONFIG_EARLY_PRINTK=y
650 +# CONFIG_STOP_ON_TRAP is not set
651 +# CONFIG_STOP_ON_BUG is not set
652 +# CONFIG_DEBUG_IRQMEASURE is not set
653 +# CONFIG_DEBUG_PCIMEASURE is not set
654 +# CONFIG_ACCESS_OK_CHECKS_ENABLED is not set
655 +CONFIG_UNALIGNED_ACCESS_ENABLED=y
656 +# CONFIG_UNALIGNED_ACCESS_USERSPACE_ONLY is not set
657 +# CONFIG_UNALIGNED_ACCESS_DISABLED is not set
658 +# CONFIG_DEBUG_STACKOVERFLOW is not set
659 +# CONFIG_DEBUG_STACK_USAGE is not set
660 +CONFIG_PRINTK_TIME=y
661 +CONFIG_ENABLE_WARN_DEPRECATED=y
662 +CONFIG_ENABLE_MUST_CHECK=y
663 +CONFIG_FRAME_WARN=1024
664 +# CONFIG_MAGIC_SYSRQ is not set
665 +# CONFIG_UNUSED_SYMBOLS is not set
666 +# CONFIG_DEBUG_FS is not set
667 +# CONFIG_HEADERS_CHECK is not set
668 +CONFIG_DEBUG_KERNEL=y
669 +# CONFIG_DEBUG_SHIRQ is not set
670 +# CONFIG_DETECT_SOFTLOCKUP is not set
671 +# CONFIG_SCHED_DEBUG is not set
672 +# CONFIG_SCHEDSTATS is not set
673 +# CONFIG_TIMER_STATS is not set
674 +# CONFIG_DEBUG_OBJECTS is not set
675 +# CONFIG_DEBUG_SLAB is not set
676 +# CONFIG_DEBUG_SPINLOCK is not set
677 +# CONFIG_DEBUG_MUTEXES is not set
678 +# CONFIG_DEBUG_LOCK_ALLOC is not set
679 +# CONFIG_PROVE_LOCKING is not set
680 +# CONFIG_LOCK_STAT is not set
681 +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
682 +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
683 +# CONFIG_DEBUG_KOBJECT is not set
684 +CONFIG_DEBUG_INFO=y
685 +# CONFIG_DEBUG_VM is not set
686 +# CONFIG_DEBUG_WRITECOUNT is not set
687 +# CONFIG_DEBUG_MEMORY_INIT is not set
688 +# CONFIG_DEBUG_LIST is not set
689 +# CONFIG_DEBUG_SG is not set
690 +# CONFIG_FRAME_POINTER is not set
691 +# CONFIG_BOOT_PRINTK_DELAY is not set
692 +# CONFIG_RCU_TORTURE_TEST is not set
693 +# CONFIG_RCU_CPU_STALL_DETECTOR is not set
694 +# CONFIG_BACKTRACE_SELF_TEST is not set
695 +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
696 +# CONFIG_FAULT_INJECTION is not set
697 +# CONFIG_SYSCTL_SYSCALL_CHECK is not set
698 +
699 +#
700 +# Tracers
701 +#
702 +# CONFIG_IRQSOFF_TRACER is not set
703 +# CONFIG_SCHED_TRACER is not set
704 +# CONFIG_CONTEXT_SWITCH_TRACER is not set
705 +# CONFIG_BOOT_TRACER is not set
706 +# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
707 +# CONFIG_SAMPLES is not set
708 +
709 +#
710 +# Executable file formats
711 +#
712 +CONFIG_BINFMT_ELF_FDPIC=y
713 +CONFIG_BINFMT_FLAT=y
714 +CONFIG_BINFMT_ZFLAT=y
715 +# CONFIG_BINFMT_SHARED_FLAT is not set
716 +# CONFIG_HAVE_AOUT is not set
717 +# CONFIG_BINFMT_MISC is not set
718 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
719 +
720 +#
721 +# General setup
722 +#
723 +CONFIG_EXPERIMENTAL=y
724 +CONFIG_BROKEN_ON_SMP=y
725 +CONFIG_INIT_ENV_ARG_LIMIT=32
726 +CONFIG_LOCALVERSION=""
727 +# CONFIG_LOCALVERSION_AUTO is not set
728 +CONFIG_SYSVIPC=y
729 +CONFIG_SYSVIPC_SYSCTL=y
730 +# CONFIG_POSIX_MQUEUE is not set
731 +# CONFIG_BSD_PROCESS_ACCT is not set
732 +# CONFIG_TASKSTATS is not set
733 +# CONFIG_AUDIT is not set
734 +# CONFIG_IKCONFIG is not set
735 +CONFIG_LOG_BUF_SHIFT=14
736 +# CONFIG_CGROUPS is not set
737 +# CONFIG_GROUP_SCHED is not set
738 +CONFIG_SYSFS_DEPRECATED=y
739 +CONFIG_SYSFS_DEPRECATED_V2=y
740 +# CONFIG_RELAY is not set
741 +# CONFIG_NAMESPACES is not set
742 +CONFIG_BLK_DEV_INITRD=y
743 +CONFIG_INITRAMFS_SOURCE=""
744 +CONFIG_INITRAMFS_ROOT_UID=0
745 +CONFIG_INITRAMFS_ROOT_GID=0
746 +CONFIG_CC_OPTIMIZE_FOR_SIZE=y
747 +CONFIG_SYSCTL=y
748 +CONFIG_EMBEDDED=y
749 +CONFIG_SYSCTL_SYSCALL=y
750 +# CONFIG_KALLSYMS is not set
751 +# CONFIG_HOTPLUG is not set
752 +CONFIG_PRINTK=y
753 +CONFIG_BUG=y
754 +# CONFIG_ELF_CORE is not set
755 +CONFIG_BASE_FULL=y
756 +# CONFIG_FUTEX is not set
757 +# CONFIG_EPOLL is not set
758 +# CONFIG_SIGNALFD is not set
759 +# CONFIG_TIMERFD is not set
760 +# CONFIG_EVENTFD is not set
761 +CONFIG_AIO=y
762 +# CONFIG_VM_EVENT_COUNTERS is not set
763 +CONFIG_PCI_QUIRKS=y
764 +# CONFIG_COMPAT_BRK is not set
765 +CONFIG_SLAB=y
766 +# CONFIG_SLUB is not set
767 +# CONFIG_SLOB is not set
768 +# CONFIG_PROFILING is not set
769 +# CONFIG_MARKERS is not set
770 +CONFIG_HAVE_OPROFILE=y
771 +# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
772 +CONFIG_SLABINFO=y
773 +CONFIG_TINY_SHMEM=y
774 +CONFIG_BASE_SMALL=0
775 +CONFIG_MODULES=y
776 +CONFIG_MODULE_FORCE_LOAD=y
777 +# CONFIG_MODULE_UNLOAD is not set
778 +# CONFIG_MODVERSIONS is not set
779 +# CONFIG_MODULE_SRCVERSION_ALL is not set
780 +CONFIG_KMOD=y
781 +CONFIG_BLOCK=y
782 +# CONFIG_LBD is not set
783 +# CONFIG_BLK_DEV_IO_TRACE is not set
784 +# CONFIG_LSF is not set
785 +# CONFIG_BLK_DEV_BSG is not set
786 +# CONFIG_BLK_DEV_INTEGRITY is not set
787 +
788 +#
789 +# IO Schedulers
790 +#
791 +CONFIG_IOSCHED_NOOP=y
792 +# CONFIG_IOSCHED_AS is not set
793 +# CONFIG_IOSCHED_DEADLINE is not set
794 +# CONFIG_IOSCHED_CFQ is not set
795 +# CONFIG_DEFAULT_AS is not set
796 +# CONFIG_DEFAULT_DEADLINE is not set
797 +# CONFIG_DEFAULT_CFQ is not set
798 +CONFIG_DEFAULT_NOOP=y
799 +CONFIG_DEFAULT_IOSCHED="noop"
800 +CONFIG_CLASSIC_RCU=y
801 +CONFIG_PREEMPT_NONE=y
802 +# CONFIG_PREEMPT_VOLUNTARY is not set
803 +# CONFIG_PREEMPT is not set
804 +CONFIG_TICK_ONESHOT=y
805 +CONFIG_NO_HZ=y
806 +CONFIG_HIGH_RES_TIMERS=y
807 +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
808 +CONFIG_SELECT_MEMORY_MODEL=y
809 +CONFIG_FLATMEM_MANUAL=y
810 +# CONFIG_DISCONTIGMEM_MANUAL is not set
811 +# CONFIG_SPARSEMEM_MANUAL is not set
812 +CONFIG_FLATMEM=y
813 +CONFIG_FLAT_NODE_MEM_MAP=y
814 +CONFIG_PAGEFLAGS_EXTENDED=y
815 +CONFIG_SPLIT_PTLOCK_CPUS=4
816 +# CONFIG_RESOURCES_64BIT is not set
817 +# CONFIG_PHYS_ADDR_T_64BIT is not set
818 +CONFIG_ZONE_DMA_FLAG=1
819 +CONFIG_VIRT_TO_BUS=y
820 +CONFIG_NET=y
821 +
822 +#
823 +# Networking options
824 +#
825 +CONFIG_PACKET=y
826 +# CONFIG_PACKET_MMAP is not set
827 +CONFIG_UNIX=y
828 +# CONFIG_NET_KEY is not set
829 +CONFIG_INET=y
830 +CONFIG_IP_MULTICAST=y
831 +CONFIG_IP_ADVANCED_ROUTER=y
832 +CONFIG_ASK_IP_FIB_HASH=y
833 +# CONFIG_IP_FIB_TRIE is not set
834 +CONFIG_IP_FIB_HASH=y
835 +# CONFIG_IP_MULTIPLE_TABLES is not set
836 +# CONFIG_IP_ROUTE_MULTIPATH is not set
837 +CONFIG_IP_ROUTE_VERBOSE=y
838 +CONFIG_IP_PNP=y
839 +CONFIG_IP_PNP_DHCP=y
840 +CONFIG_IP_PNP_BOOTP=y
841 +CONFIG_IP_PNP_RARP=y
842 +CONFIG_NET_IPIP=y
843 +CONFIG_NET_IPGRE=y
844 +# CONFIG_NET_IPGRE_BROADCAST is not set
845 +# CONFIG_IP_MROUTE is not set
846 +# CONFIG_ARPD is not set
847 +# CONFIG_SYN_COOKIES is not set
848 +# CONFIG_INET_AH is not set
849 +# CONFIG_INET_ESP is not set
850 +# CONFIG_INET_IPCOMP is not set
851 +# CONFIG_INET_XFRM_TUNNEL is not set
852 +CONFIG_INET_TUNNEL=y
853 +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
854 +# CONFIG_INET_XFRM_MODE_TUNNEL is not set
855 +# CONFIG_INET_XFRM_MODE_BEET is not set
856 +# CONFIG_INET_LRO is not set
857 +CONFIG_INET_DIAG=y
858 +CONFIG_INET_TCP_DIAG=y
859 +# CONFIG_TCP_CONG_ADVANCED is not set
860 +CONFIG_TCP_CONG_CUBIC=y
861 +CONFIG_DEFAULT_TCP_CONG="cubic"
862 +# CONFIG_TCP_MD5SIG is not set
863 +# CONFIG_IPV6 is not set
864 +# CONFIG_NETWORK_SECMARK is not set
865 +CONFIG_NETFILTER=y
866 +# CONFIG_NETFILTER_DEBUG is not set
867 +CONFIG_NETFILTER_ADVANCED=y
868 +# CONFIG_BRIDGE_NETFILTER is not set
869 +
870 +#
871 +# Core Netfilter Configuration
872 +#
873 +# CONFIG_NETFILTER_NETLINK_QUEUE is not set
874 +# CONFIG_NETFILTER_NETLINK_LOG is not set
875 +CONFIG_NF_CONNTRACK=y
876 +# CONFIG_NF_CT_ACCT is not set
877 +# CONFIG_NF_CONNTRACK_MARK is not set
878 +# CONFIG_NF_CONNTRACK_EVENTS is not set
879 +# CONFIG_NF_CT_PROTO_DCCP is not set
880 +CONFIG_NF_CT_PROTO_GRE=y
881 +# CONFIG_NF_CT_PROTO_SCTP is not set
882 +# CONFIG_NF_CT_PROTO_UDPLITE is not set
883 +# CONFIG_NF_CONNTRACK_AMANDA is not set
884 +# CONFIG_NF_CONNTRACK_FTP is not set
885 +# CONFIG_NF_CONNTRACK_H323 is not set
886 +# CONFIG_NF_CONNTRACK_IRC is not set
887 +# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
888 +CONFIG_NF_CONNTRACK_PPTP=y
889 +# CONFIG_NF_CONNTRACK_SANE is not set
890 +# CONFIG_NF_CONNTRACK_SIP is not set
891 +# CONFIG_NF_CONNTRACK_TFTP is not set
892 +# CONFIG_NF_CT_NETLINK is not set
893 +# CONFIG_NETFILTER_TPROXY is not set
894 +CONFIG_NETFILTER_XTABLES=y
895 +# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
896 +# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
897 +# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
898 +# CONFIG_NETFILTER_XT_TARGET_MARK is not set
899 +# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
900 +# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
901 +# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
902 +CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
903 +# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
904 +# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
905 +# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
906 +# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
907 +# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
908 +# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set
909 +# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
910 +# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
911 +CONFIG_NETFILTER_XT_MATCH_ESP=y
912 +# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
913 +# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
914 +CONFIG_NETFILTER_XT_MATCH_IPRANGE=y
915 +# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
916 +CONFIG_NETFILTER_XT_MATCH_LIMIT=y
917 +CONFIG_NETFILTER_XT_MATCH_MAC=y
918 +# CONFIG_NETFILTER_XT_MATCH_MARK is not set
919 +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y
920 +# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
921 +# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
922 +# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
923 +# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
924 +# CONFIG_NETFILTER_XT_MATCH_REALM is not set
925 +# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
926 +# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
927 +CONFIG_NETFILTER_XT_MATCH_STATE=y
928 +# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
929 +CONFIG_NETFILTER_XT_MATCH_STRING=y
930 +CONFIG_NETFILTER_XT_MATCH_TCPMSS=y
931 +# CONFIG_NETFILTER_XT_MATCH_TIME is not set
932 +# CONFIG_NETFILTER_XT_MATCH_U32 is not set
933 +# CONFIG_IP_VS is not set
934 +
935 +#
936 +# IP: Netfilter Configuration
937 +#
938 +CONFIG_NF_DEFRAG_IPV4=y
939 +CONFIG_NF_CONNTRACK_IPV4=y
940 +CONFIG_NF_CONNTRACK_PROC_COMPAT=y
941 +# CONFIG_IP_NF_QUEUE is not set
942 +CONFIG_IP_NF_IPTABLES=y
943 +# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
944 +CONFIG_IP_NF_MATCH_AH=y
945 +# CONFIG_IP_NF_MATCH_ECN is not set
946 +CONFIG_IP_NF_MATCH_TTL=y
947 +CONFIG_IP_NF_FILTER=y
948 +CONFIG_IP_NF_TARGET_REJECT=y
949 +CONFIG_IP_NF_TARGET_LOG=y
950 +# CONFIG_IP_NF_TARGET_ULOG is not set
951 +# CONFIG_NF_QOS_UBICOM_STREAMENGINE_DEFAULT_CLASSIFIER is not set
952 +CONFIG_NF_NAT=y
953 +CONFIG_NF_NAT_NEEDED=y
954 +CONFIG_IP_NF_TARGET_MASQUERADE=y
955 +CONFIG_IP_NF_TARGET_NETMAP=y
956 +CONFIG_IP_NF_TARGET_REDIRECT=y
957 +CONFIG_NF_NAT_SNMP_BASIC=y
958 +CONFIG_NF_NAT_PROTO_GRE=y
959 +# CONFIG_NF_NAT_FTP is not set
960 +# CONFIG_NF_NAT_IRC is not set
961 +# CONFIG_NF_NAT_TFTP is not set
962 +# CONFIG_NF_NAT_AMANDA is not set
963 +CONFIG_NF_NAT_PPTP=y
964 +# CONFIG_NF_NAT_H323 is not set
965 +# CONFIG_NF_NAT_SIP is not set
966 +CONFIG_IP_NF_MANGLE=y
967 +# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
968 +# CONFIG_IP_NF_TARGET_ECN is not set
969 +CONFIG_IP_NF_TARGET_TTL=y
970 +# CONFIG_IP_NF_RAW is not set
971 +# CONFIG_IP_NF_ARPTABLES is not set
972 +# CONFIG_IP_DCCP is not set
973 +# CONFIG_IP_SCTP is not set
974 +# CONFIG_TIPC is not set
975 +# CONFIG_ATM is not set
976 +CONFIG_STP=y
977 +CONFIG_BRIDGE=y
978 +# CONFIG_NET_DSA is not set
979 +CONFIG_VLAN_8021Q=y
980 +# CONFIG_VLAN_8021Q_GVRP is not set
981 +# CONFIG_DECNET is not set
982 +CONFIG_LLC=y
983 +# CONFIG_LLC2 is not set
984 +# CONFIG_IPX is not set
985 +# CONFIG_ATALK is not set
986 +# CONFIG_X25 is not set
987 +# CONFIG_LAPB is not set
988 +# CONFIG_ECONET is not set
989 +# CONFIG_WAN_ROUTER is not set
990 +# CONFIG_NET_SCHED is not set
991 +
992 +#
993 +# Network testing
994 +#
995 +# CONFIG_NET_PKTGEN is not set
996 +# CONFIG_HAMRADIO is not set
997 +# CONFIG_CAN is not set
998 +# CONFIG_IRDA is not set
999 +# CONFIG_BT is not set
1000 +# CONFIG_AF_RXRPC is not set
1001 +# CONFIG_PHONET is not set
1002 +CONFIG_WIRELESS=y
1003 +# CONFIG_CFG80211 is not set
1004 +# CONFIG_WIRELESS_OLD_REGULATORY is not set
1005 +CONFIG_WIRELESS_EXT=y
1006 +CONFIG_WIRELESS_EXT_SYSFS=y
1007 +# CONFIG_MAC80211 is not set
1008 +# CONFIG_IEEE80211 is not set
1009 +# CONFIG_RFKILL is not set
1010 +# CONFIG_NET_9P is not set
1011 +
1012 +#
1013 +# Device Drivers
1014 +#
1015 +
1016 +#
1017 +# Generic Driver Options
1018 +#
1019 +CONFIG_STANDALONE=y
1020 +CONFIG_PREVENT_FIRMWARE_BUILD=y
1021 +# CONFIG_DEBUG_DRIVER is not set
1022 +# CONFIG_DEBUG_DEVRES is not set
1023 +# CONFIG_SYS_HYPERVISOR is not set
1024 +# CONFIG_CONNECTOR is not set
1025 +CONFIG_MTD=y
1026 +# CONFIG_MTD_DEBUG is not set
1027 +# CONFIG_MTD_CONCAT is not set
1028 +CONFIG_MTD_PARTITIONS=y
1029 +# CONFIG_MTD_REDBOOT_PARTS is not set
1030 +CONFIG_MTD_CMDLINE_PARTS=y
1031 +# CONFIG_MTD_AR7_PARTS is not set
1032 +
1033 +#
1034 +# User Modules And Translation Layers
1035 +#
1036 +CONFIG_MTD_CHAR=y
1037 +CONFIG_MTD_BLKDEVS=y
1038 +CONFIG_MTD_BLOCK=y
1039 +# CONFIG_FTL is not set
1040 +# CONFIG_NFTL is not set
1041 +# CONFIG_INFTL is not set
1042 +# CONFIG_RFD_FTL is not set
1043 +# CONFIG_SSFDC is not set
1044 +# CONFIG_MTD_OOPS is not set
1045 +
1046 +#
1047 +# RAM/ROM/Flash chip drivers
1048 +#
1049 +# CONFIG_MTD_CFI is not set
1050 +# CONFIG_MTD_JEDECPROBE is not set
1051 +CONFIG_MTD_MAP_BANK_WIDTH_1=y
1052 +CONFIG_MTD_MAP_BANK_WIDTH_2=y
1053 +CONFIG_MTD_MAP_BANK_WIDTH_4=y
1054 +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
1055 +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
1056 +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
1057 +CONFIG_MTD_CFI_I1=y
1058 +CONFIG_MTD_CFI_I2=y
1059 +# CONFIG_MTD_CFI_I4 is not set
1060 +# CONFIG_MTD_CFI_I8 is not set
1061 +# CONFIG_MTD_RAM is not set
1062 +# CONFIG_MTD_ROM is not set
1063 +# CONFIG_MTD_ABSENT is not set
1064 +
1065 +#
1066 +# Mapping drivers for chip access
1067 +#
1068 +# CONFIG_MTD_COMPLEX_MAPPINGS is not set
1069 +# CONFIG_MTD_INTEL_VR_NOR is not set
1070 +# CONFIG_MTD_PLATRAM is not set
1071 +
1072 +#
1073 +# Self-contained MTD device drivers
1074 +#
1075 +# CONFIG_MTD_PMC551 is not set
1076 +# CONFIG_MTD_DATAFLASH is not set
1077 +# CONFIG_MTD_M25P80 is not set
1078 +CONFIG_MTD_UBI32_M25P80=y
1079 +# CONFIG_MTD_SLRAM is not set
1080 +# CONFIG_MTD_PHRAM is not set
1081 +# CONFIG_MTD_MTDRAM is not set
1082 +# CONFIG_MTD_BLOCK2MTD is not set
1083 +
1084 +#
1085 +# Disk-On-Chip Device Drivers
1086 +#
1087 +# CONFIG_MTD_DOC2000 is not set
1088 +# CONFIG_MTD_DOC2001 is not set
1089 +# CONFIG_MTD_DOC2001PLUS is not set
1090 +# CONFIG_MTD_NAND is not set
1091 +# CONFIG_MTD_ONENAND is not set
1092 +
1093 +#
1094 +# UBI - Unsorted block images
1095 +#
1096 +# CONFIG_MTD_UBI is not set
1097 +# CONFIG_PARPORT is not set
1098 +CONFIG_BLK_DEV=y
1099 +# CONFIG_BLK_CPQ_DA is not set
1100 +# CONFIG_BLK_CPQ_CISS_DA is not set
1101 +# CONFIG_BLK_DEV_DAC960 is not set
1102 +# CONFIG_BLK_DEV_UMEM is not set
1103 +# CONFIG_BLK_DEV_COW_COMMON is not set
1104 +# CONFIG_BLK_DEV_LOOP is not set
1105 +# CONFIG_BLK_DEV_NBD is not set
1106 +# CONFIG_BLK_DEV_SX8 is not set
1107 +# CONFIG_BLK_DEV_UB is not set
1108 +CONFIG_BLK_DEV_RAM=y
1109 +CONFIG_BLK_DEV_RAM_COUNT=16
1110 +CONFIG_BLK_DEV_RAM_SIZE=4096
1111 +# CONFIG_BLK_DEV_XIP is not set
1112 +# CONFIG_CDROM_PKTCDVD is not set
1113 +# CONFIG_ATA_OVER_ETH is not set
1114 +# CONFIG_MISC_DEVICES is not set
1115 +
1116 +#
1117 +# SCSI device support
1118 +#
1119 +# CONFIG_RAID_ATTRS is not set
1120 +CONFIG_SCSI=y
1121 +CONFIG_SCSI_DMA=y
1122 +# CONFIG_SCSI_TGT is not set
1123 +# CONFIG_SCSI_NETLINK is not set
1124 +CONFIG_SCSI_PROC_FS=y
1125 +
1126 +#
1127 +# SCSI support type (disk, tape, CD-ROM)
1128 +#
1129 +CONFIG_BLK_DEV_SD=y
1130 +# CONFIG_CHR_DEV_ST is not set
1131 +# CONFIG_CHR_DEV_OSST is not set
1132 +# CONFIG_BLK_DEV_SR is not set
1133 +CONFIG_CHR_DEV_SG=y
1134 +# CONFIG_CHR_DEV_SCH is not set
1135 +
1136 +#
1137 +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
1138 +#
1139 +CONFIG_SCSI_MULTI_LUN=y
1140 +# CONFIG_SCSI_CONSTANTS is not set
1141 +# CONFIG_SCSI_LOGGING is not set
1142 +# CONFIG_SCSI_SCAN_ASYNC is not set
1143 +CONFIG_SCSI_WAIT_SCAN=m
1144 +
1145 +#
1146 +# SCSI Transports
1147 +#
1148 +# CONFIG_SCSI_SPI_ATTRS is not set
1149 +# CONFIG_SCSI_FC_ATTRS is not set
1150 +# CONFIG_SCSI_ISCSI_ATTRS is not set
1151 +# CONFIG_SCSI_SAS_LIBSAS is not set
1152 +# CONFIG_SCSI_SRP_ATTRS is not set
1153 +# CONFIG_SCSI_LOWLEVEL is not set
1154 +# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
1155 +# CONFIG_SCSI_DH is not set
1156 +# CONFIG_ATA is not set
1157 +# CONFIG_MD is not set
1158 +# CONFIG_FUSION is not set
1159 +
1160 +#
1161 +# IEEE 1394 (FireWire) support
1162 +#
1163 +
1164 +#
1165 +# Enable only one of the two stacks, unless you know what you are doing
1166 +#
1167 +# CONFIG_FIREWIRE is not set
1168 +# CONFIG_IEEE1394 is not set
1169 +# CONFIG_I2O is not set
1170 +CONFIG_NETDEVICES=y
1171 +# CONFIG_DUMMY is not set
1172 +# CONFIG_BONDING is not set
1173 +# CONFIG_MACVLAN is not set
1174 +# CONFIG_EQUALIZER is not set
1175 +# CONFIG_TUN is not set
1176 +# CONFIG_VETH is not set
1177 +# CONFIG_ARCNET is not set
1178 +# CONFIG_NET_ETHERNET is not set
1179 +CONFIG_MII=y
1180 +CONFIG_NETDEV_1000=y
1181 +# CONFIG_ACENIC is not set
1182 +# CONFIG_DL2K is not set
1183 +# CONFIG_E1000 is not set
1184 +# CONFIG_E1000E is not set
1185 +# CONFIG_IP1000 is not set
1186 +# CONFIG_IGB is not set
1187 +# CONFIG_NS83820 is not set
1188 +# CONFIG_HAMACHI is not set
1189 +# CONFIG_YELLOWFIN is not set
1190 +# CONFIG_R8169 is not set
1191 +# CONFIG_SIS190 is not set
1192 +# CONFIG_SKGE is not set
1193 +# CONFIG_SKY2 is not set
1194 +# CONFIG_VIA_VELOCITY is not set
1195 +# CONFIG_TIGON3 is not set
1196 +# CONFIG_BNX2 is not set
1197 +# CONFIG_QLA3XXX is not set
1198 +# CONFIG_ATL1 is not set
1199 +# CONFIG_ATL1E is not set
1200 +# CONFIG_JME is not set
1201 +CONFIG_UBICOM32_GMAC=y
1202 +CONFIG_UBICOM32_NAPI=y
1203 +CONFIG_UBICOM32_OCM_FOR_SKB=y
1204 +# CONFIG_NETDEV_10000 is not set
1205 +# CONFIG_TR is not set
1206 +
1207 +#
1208 +# Wireless LAN
1209 +#
1210 +# CONFIG_WLAN_PRE80211 is not set
1211 +# CONFIG_WLAN_80211 is not set
1212 +# CONFIG_IWLWIFI_LEDS is not set
1213 +
1214 +#
1215 +# USB Network Adapters
1216 +#
1217 +# CONFIG_USB_CATC is not set
1218 +# CONFIG_USB_KAWETH is not set
1219 +# CONFIG_USB_PEGASUS is not set
1220 +# CONFIG_USB_RTL8150 is not set
1221 +CONFIG_USB_USBNET=y
1222 +CONFIG_USB_NET_AX8817X=y
1223 +CONFIG_USB_NET_CDCETHER=y
1224 +# CONFIG_USB_NET_DM9601 is not set
1225 +# CONFIG_USB_NET_SMSC95XX is not set
1226 +# CONFIG_USB_NET_GL620A is not set
1227 +# CONFIG_USB_NET_NET1080 is not set
1228 +# CONFIG_USB_NET_PLUSB is not set
1229 +# CONFIG_USB_NET_MCS7830 is not set
1230 +# CONFIG_USB_NET_RNDIS_HOST is not set
1231 +# CONFIG_USB_NET_CDC_SUBSET is not set
1232 +# CONFIG_USB_NET_ZAURUS is not set
1233 +# CONFIG_WAN is not set
1234 +# CONFIG_FDDI is not set
1235 +# CONFIG_HIPPI is not set
1236 +CONFIG_PPP=y
1237 +# CONFIG_PPP_MULTILINK is not set
1238 +# CONFIG_PPP_FILTER is not set
1239 +CONFIG_PPP_ASYNC=y
1240 +# CONFIG_PPP_SYNC_TTY is not set
1241 +# CONFIG_PPP_DEFLATE is not set
1242 +# CONFIG_PPP_BSDCOMP is not set
1243 +# CONFIG_PPP_MPPE is not set
1244 +# CONFIG_PPPOE is not set
1245 +# CONFIG_PPPOL2TP is not set
1246 +# CONFIG_SLIP is not set
1247 +CONFIG_SLHC=y
1248 +# CONFIG_NET_FC is not set
1249 +# CONFIG_NETCONSOLE is not set
1250 +# CONFIG_NETPOLL is not set
1251 +# CONFIG_NET_POLL_CONTROLLER is not set
1252 +# CONFIG_ISDN is not set
1253 +# CONFIG_PHONE is not set
1254 +
1255 +#
1256 +# Input device support
1257 +#
1258 +CONFIG_INPUT=y
1259 +# CONFIG_INPUT_FF_MEMLESS is not set
1260 +CONFIG_INPUT_POLLDEV=y
1261 +
1262 +#
1263 +# Userland interfaces
1264 +#
1265 +# CONFIG_INPUT_MOUSEDEV is not set
1266 +# CONFIG_INPUT_JOYDEV is not set
1267 +# CONFIG_INPUT_EVDEV is not set
1268 +# CONFIG_INPUT_EVBUG is not set
1269 +
1270 +#
1271 +# Input Device Drivers
1272 +#
1273 +# CONFIG_INPUT_KEYBOARD is not set
1274 +# CONFIG_INPUT_MOUSE is not set
1275 +# CONFIG_INPUT_JOYSTICK is not set
1276 +# CONFIG_INPUT_TABLET is not set
1277 +# CONFIG_INPUT_TOUCHSCREEN is not set
1278 +# CONFIG_INPUT_MISC is not set
1279 +
1280 +#
1281 +# Hardware I/O ports
1282 +#
1283 +# CONFIG_SERIO is not set
1284 +# CONFIG_GAMEPORT is not set
1285 +
1286 +#
1287 +# Character devices
1288 +#
1289 +# CONFIG_VT is not set
1290 +CONFIG_DEVKMEM=y
1291 +# CONFIG_SERIAL_NONSTANDARD is not set
1292 +# CONFIG_NOZOMI is not set
1293 +
1294 +#
1295 +# Serial drivers
1296 +#
1297 +# CONFIG_SERIAL_8250 is not set
1298 +
1299 +#
1300 +# Non-8250 serial port support
1301 +#
1302 +# CONFIG_SERIAL_UBI32_SERDES is not set
1303 +CONFIG_SERIAL_UBI32_MAILBOX=y
1304 +CONFIG_SERIAL_UBI32_MAILBOX_CONSOLE=y
1305 +CONFIG_SERIAL_CORE=y
1306 +CONFIG_SERIAL_CORE_CONSOLE=y
1307 +# CONFIG_SERIAL_JSM is not set
1308 +CONFIG_UNIX98_PTYS=y
1309 +CONFIG_LEGACY_PTYS=y
1310 +CONFIG_LEGACY_PTY_COUNT=256
1311 +# CONFIG_IPMI_HANDLER is not set
1312 +CONFIG_HW_RANDOM=y
1313 +CONFIG_HW_RANDOM_UBICOM32=y
1314 +# CONFIG_RTC is not set
1315 +# CONFIG_GEN_RTC is not set
1316 +# CONFIG_R3964 is not set
1317 +# CONFIG_APPLICOM is not set
1318 +# CONFIG_RAW_DRIVER is not set
1319 +# CONFIG_TCG_TPM is not set
1320 +CONFIG_DEVPORT=y
1321 +# CONFIG_I2C is not set
1322 +CONFIG_SPI=y
1323 +# CONFIG_SPI_DEBUG is not set
1324 +CONFIG_SPI_MASTER=y
1325 +
1326 +#
1327 +# SPI Master Controller Drivers
1328 +#
1329 +CONFIG_SPI_BITBANG=y
1330 +CONFIG_SPI_UBICOM32_GPIO=y
1331 +
1332 +#
1333 +# SPI Protocol Masters
1334 +#
1335 +# CONFIG_SPI_AT25 is not set
1336 +# CONFIG_SPI_SPIDEV is not set
1337 +# CONFIG_SPI_TLE62X0 is not set
1338 +# CONFIG_DEBUG_GPIO is not set
1339 +# CONFIG_GPIO_SYSFS is not set
1340 +
1341 +#
1342 +# Memory mapped GPIO expanders:
1343 +#
1344 +
1345 +#
1346 +# I2C GPIO expanders:
1347 +#
1348 +
1349 +#
1350 +# PCI GPIO expanders:
1351 +#
1352 +# CONFIG_GPIO_BT8XX is not set
1353 +
1354 +#
1355 +# SPI GPIO expanders:
1356 +#
1357 +# CONFIG_GPIO_MAX7301 is not set
1358 +# CONFIG_GPIO_MCP23S08 is not set
1359 +# CONFIG_W1 is not set
1360 +# CONFIG_POWER_SUPPLY is not set
1361 +# CONFIG_HWMON is not set
1362 +# CONFIG_THERMAL is not set
1363 +# CONFIG_THERMAL_HWMON is not set
1364 +CONFIG_WATCHDOG=y
1365 +# CONFIG_WATCHDOG_NOWAYOUT is not set
1366 +
1367 +#
1368 +# Watchdog Device Drivers
1369 +#
1370 +# CONFIG_SOFT_WATCHDOG is not set
1371 +# CONFIG_ALIM7101_WDT is not set
1372 +CONFIG_UBI32_WDT=y
1373 +
1374 +#
1375 +# PCI-based Watchdog Cards
1376 +#
1377 +# CONFIG_PCIPCWATCHDOG is not set
1378 +# CONFIG_WDTPCI is not set
1379 +
1380 +#
1381 +# USB-based Watchdog Cards
1382 +#
1383 +# CONFIG_USBPCWATCHDOG is not set
1384 +CONFIG_SSB_POSSIBLE=y
1385 +
1386 +#
1387 +# Sonics Silicon Backplane
1388 +#
1389 +# CONFIG_SSB is not set
1390 +
1391 +#
1392 +# Multifunction device drivers
1393 +#
1394 +# CONFIG_MFD_CORE is not set
1395 +# CONFIG_MFD_SM501 is not set
1396 +# CONFIG_HTC_PASIC3 is not set
1397 +# CONFIG_MFD_TMIO is not set
1398 +# CONFIG_REGULATOR is not set
1399 +
1400 +#
1401 +# Multimedia devices
1402 +#
1403 +
1404 +#
1405 +# Multimedia core support
1406 +#
1407 +# CONFIG_VIDEO_DEV is not set
1408 +# CONFIG_DVB_CORE is not set
1409 +# CONFIG_VIDEO_MEDIA is not set
1410 +
1411 +#
1412 +# Multimedia drivers
1413 +#
1414 +# CONFIG_DAB is not set
1415 +
1416 +#
1417 +# Graphics support
1418 +#
1419 +# CONFIG_VGASTATE is not set
1420 +# CONFIG_VIDEO_OUTPUT_CONTROL is not set
1421 +# CONFIG_FB is not set
1422 +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1423 +
1424 +#
1425 +# Display device support
1426 +#
1427 +# CONFIG_DISPLAY_SUPPORT is not set
1428 +# CONFIG_SOUND is not set
1429 +# CONFIG_HID_SUPPORT is not set
1430 +CONFIG_USB_SUPPORT=y
1431 +CONFIG_USB_ARCH_HAS_HCD=y
1432 +CONFIG_USB_ARCH_HAS_OHCI=y
1433 +CONFIG_USB_ARCH_HAS_EHCI=y
1434 +CONFIG_USB=y
1435 +# CONFIG_USB_DEBUG is not set
1436 +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1437 +
1438 +#
1439 +# Miscellaneous USB options
1440 +#
1441 +CONFIG_USB_DEVICEFS=y
1442 +# CONFIG_USB_DEVICE_CLASS is not set
1443 +# CONFIG_USB_DYNAMIC_MINORS is not set
1444 +# CONFIG_USB_OTG is not set
1445 +# CONFIG_USB_OTG_WHITELIST is not set
1446 +# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1447 +# CONFIG_USB_MON is not set
1448 +# CONFIG_USB_WUSB is not set
1449 +# CONFIG_USB_WUSB_CBAF is not set
1450 +
1451 +#
1452 +# USB Host Controller Drivers
1453 +#
1454 +# CONFIG_USB_C67X00_HCD is not set
1455 +# CONFIG_USB_EHCI_HCD is not set
1456 +# CONFIG_USB_ISP116X_HCD is not set
1457 +# CONFIG_USB_ISP1760_HCD is not set
1458 +# CONFIG_USB_OHCI_HCD is not set
1459 +# CONFIG_USB_UHCI_HCD is not set
1460 +# CONFIG_USB_SL811_HCD is not set
1461 +# CONFIG_USB_R8A66597_HCD is not set
1462 +# CONFIG_USB_WHCI_HCD is not set
1463 +# CONFIG_USB_HWA_HCD is not set
1464 +CONFIG_USB_MUSB_HDRC=y
1465 +# CONFIG_USB_TUSB6010 is not set
1466 +CONFIG_USB_MUSB_HOST=y
1467 +# CONFIG_USB_MUSB_PERIPHERAL is not set
1468 +# CONFIG_USB_MUSB_OTG is not set
1469 +CONFIG_USB_MUSB_HDRC_HCD=y
1470 +CONFIG_MUSB_PIO_ONLY=y
1471 +# CONFIG_USB_MUSB_DEBUG is not set
1472 +
1473 +#
1474 +# USB Device Class drivers
1475 +#
1476 +# CONFIG_USB_ACM is not set
1477 +# CONFIG_USB_PRINTER is not set
1478 +# CONFIG_USB_WDM is not set
1479 +# CONFIG_USB_TMC is not set
1480 +
1481 +#
1482 +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1483 +#
1484 +
1485 +#
1486 +# see USB_STORAGE Help for more information
1487 +#
1488 +CONFIG_USB_STORAGE=y
1489 +# CONFIG_USB_STORAGE_DEBUG is not set
1490 +# CONFIG_USB_STORAGE_DATAFAB is not set
1491 +# CONFIG_USB_STORAGE_FREECOM is not set
1492 +# CONFIG_USB_STORAGE_ISD200 is not set
1493 +# CONFIG_USB_STORAGE_DPCM is not set
1494 +# CONFIG_USB_STORAGE_USBAT is not set
1495 +# CONFIG_USB_STORAGE_SDDR09 is not set
1496 +# CONFIG_USB_STORAGE_SDDR55 is not set
1497 +# CONFIG_USB_STORAGE_JUMPSHOT is not set
1498 +# CONFIG_USB_STORAGE_ALAUDA is not set
1499 +# CONFIG_USB_STORAGE_ONETOUCH is not set
1500 +# CONFIG_USB_STORAGE_KARMA is not set
1501 +# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1502 +CONFIG_USB_LIBUSUAL=y
1503 +
1504 +#
1505 +# USB Imaging devices
1506 +#
1507 +# CONFIG_USB_MDC800 is not set
1508 +# CONFIG_USB_MICROTEK is not set
1509 +
1510 +#
1511 +# USB port drivers
1512 +#
1513 +# CONFIG_USB_SERIAL is not set
1514 +
1515 +#
1516 +# USB Miscellaneous drivers
1517 +#
1518 +# CONFIG_USB_EMI62 is not set
1519 +# CONFIG_USB_EMI26 is not set
1520 +# CONFIG_USB_ADUTUX is not set
1521 +# CONFIG_USB_SEVSEG is not set
1522 +# CONFIG_USB_RIO500 is not set
1523 +# CONFIG_USB_LEGOTOWER is not set
1524 +# CONFIG_USB_LCD is not set
1525 +# CONFIG_USB_BERRY_CHARGE is not set
1526 +# CONFIG_USB_LED is not set
1527 +# CONFIG_USB_CYPRESS_CY7C63 is not set
1528 +# CONFIG_USB_CYTHERM is not set
1529 +# CONFIG_USB_PHIDGET is not set
1530 +# CONFIG_USB_IDMOUSE is not set
1531 +# CONFIG_USB_FTDI_ELAN is not set
1532 +# CONFIG_USB_APPLEDISPLAY is not set
1533 +# CONFIG_USB_LD is not set
1534 +# CONFIG_USB_TRANCEVIBRATOR is not set
1535 +# CONFIG_USB_IOWARRIOR is not set
1536 +# CONFIG_USB_TEST is not set
1537 +# CONFIG_USB_ISIGHTFW is not set
1538 +# CONFIG_USB_VST is not set
1539 +# CONFIG_USB_GADGET is not set
1540 +# CONFIG_UWB is not set
1541 +# CONFIG_MMC is not set
1542 +# CONFIG_MEMSTICK is not set
1543 +CONFIG_NEW_LEDS=y
1544 +CONFIG_LEDS_CLASS=y
1545 +
1546 +#
1547 +# LED drivers
1548 +#
1549 +CONFIG_LEDS_GPIO=y
1550 +
1551 +#
1552 +# LED Triggers
1553 +#
1554 +# CONFIG_LEDS_TRIGGERS is not set
1555 +# CONFIG_ACCESSIBILITY is not set
1556 +# CONFIG_INFINIBAND is not set
1557 +# CONFIG_RTC_CLASS is not set
1558 +# CONFIG_DMADEVICES is not set
1559 +# CONFIG_UIO is not set
1560 +# CONFIG_STAGING is not set
1561 +
1562 +#
1563 +# File systems
1564 +#
1565 +# CONFIG_EXT2_FS is not set
1566 +# CONFIG_EXT3_FS is not set
1567 +# CONFIG_EXT4_FS is not set
1568 +# CONFIG_REISERFS_FS is not set
1569 +# CONFIG_JFS_FS is not set
1570 +# CONFIG_FS_POSIX_ACL is not set
1571 +CONFIG_FILE_LOCKING=y
1572 +# CONFIG_XFS_FS is not set
1573 +# CONFIG_OCFS2_FS is not set
1574 +# CONFIG_DNOTIFY is not set
1575 +# CONFIG_INOTIFY is not set
1576 +# CONFIG_QUOTA is not set
1577 +CONFIG_AUTOFS_FS=y
1578 +# CONFIG_AUTOFS4_FS is not set
1579 +# CONFIG_FUSE_FS is not set
1580 +
1581 +#
1582 +# CD-ROM/DVD Filesystems
1583 +#
1584 +# CONFIG_ISO9660_FS is not set
1585 +# CONFIG_UDF_FS is not set
1586 +
1587 +#
1588 +# DOS/FAT/NT Filesystems
1589 +#
1590 +CONFIG_FAT_FS=y
1591 +CONFIG_MSDOS_FS=y
1592 +CONFIG_VFAT_FS=y
1593 +CONFIG_FAT_DEFAULT_CODEPAGE=437
1594 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1595 +# CONFIG_NTFS_FS is not set
1596 +
1597 +#
1598 +# Pseudo filesystems
1599 +#
1600 +CONFIG_PROC_FS=y
1601 +CONFIG_PROC_SYSCTL=y
1602 +CONFIG_SYSFS=y
1603 +# CONFIG_TMPFS is not set
1604 +# CONFIG_HUGETLB_PAGE is not set
1605 +# CONFIG_CONFIGFS_FS is not set
1606 +
1607 +#
1608 +# Layered filesystems
1609 +#
1610 +CONFIG_UNION_FS=y
1611 +# CONFIG_UNION_FS_XATTR is not set
1612 +# CONFIG_UNION_FS_DEBUG is not set
1613 +
1614 +#
1615 +# Miscellaneous filesystems
1616 +#
1617 +# CONFIG_ADFS_FS is not set
1618 +# CONFIG_AFFS_FS is not set
1619 +# CONFIG_HFS_FS is not set
1620 +# CONFIG_HFSPLUS_FS is not set
1621 +# CONFIG_BEFS_FS is not set
1622 +# CONFIG_BFS_FS is not set
1623 +# CONFIG_EFS_FS is not set
1624 +CONFIG_JFFS2_FS=y
1625 +CONFIG_JFFS2_FS_DEBUG=0
1626 +CONFIG_JFFS2_FS_WRITEBUFFER=y
1627 +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1628 +# CONFIG_JFFS2_SUMMARY is not set
1629 +# CONFIG_JFFS2_FS_XATTR is not set
1630 +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1631 +CONFIG_JFFS2_ZLIB=y
1632 +# CONFIG_JFFS2_LZO is not set
1633 +CONFIG_JFFS2_RTIME=y
1634 +# CONFIG_JFFS2_RUBIN is not set
1635 +# CONFIG_CRAMFS is not set
1636 +# CONFIG_VXFS_FS is not set
1637 +# CONFIG_MINIX_FS is not set
1638 +# CONFIG_OMFS_FS is not set
1639 +# CONFIG_HPFS_FS is not set
1640 +# CONFIG_QNX4FS_FS is not set
1641 +CONFIG_ROMFS_FS=y
1642 +# CONFIG_SYSV_FS is not set
1643 +# CONFIG_UFS_FS is not set
1644 +# CONFIG_NETWORK_FILESYSTEMS is not set
1645 +
1646 +#
1647 +# Partition Types
1648 +#
1649 +CONFIG_PARTITION_ADVANCED=y
1650 +# CONFIG_ACORN_PARTITION is not set
1651 +# CONFIG_OSF_PARTITION is not set
1652 +# CONFIG_AMIGA_PARTITION is not set
1653 +# CONFIG_ATARI_PARTITION is not set
1654 +# CONFIG_MAC_PARTITION is not set
1655 +CONFIG_MSDOS_PARTITION=y
1656 +# CONFIG_BSD_DISKLABEL is not set
1657 +# CONFIG_MINIX_SUBPARTITION is not set
1658 +# CONFIG_SOLARIS_X86_PARTITION is not set
1659 +# CONFIG_UNIXWARE_DISKLABEL is not set
1660 +CONFIG_LDM_PARTITION=y
1661 +CONFIG_LDM_DEBUG=y
1662 +# CONFIG_SGI_PARTITION is not set
1663 +# CONFIG_ULTRIX_PARTITION is not set
1664 +# CONFIG_SUN_PARTITION is not set
1665 +# CONFIG_KARMA_PARTITION is not set
1666 +# CONFIG_EFI_PARTITION is not set
1667 +# CONFIG_SYSV68_PARTITION is not set
1668 +CONFIG_NLS=y
1669 +CONFIG_NLS_DEFAULT="iso8859-1"
1670 +CONFIG_NLS_CODEPAGE_437=y
1671 +# CONFIG_NLS_CODEPAGE_737 is not set
1672 +# CONFIG_NLS_CODEPAGE_775 is not set
1673 +# CONFIG_NLS_CODEPAGE_850 is not set
1674 +# CONFIG_NLS_CODEPAGE_852 is not set
1675 +# CONFIG_NLS_CODEPAGE_855 is not set
1676 +# CONFIG_NLS_CODEPAGE_857 is not set
1677 +# CONFIG_NLS_CODEPAGE_860 is not set
1678 +# CONFIG_NLS_CODEPAGE_861 is not set
1679 +# CONFIG_NLS_CODEPAGE_862 is not set
1680 +# CONFIG_NLS_CODEPAGE_863 is not set
1681 +# CONFIG_NLS_CODEPAGE_864 is not set
1682 +# CONFIG_NLS_CODEPAGE_865 is not set
1683 +# CONFIG_NLS_CODEPAGE_866 is not set
1684 +# CONFIG_NLS_CODEPAGE_869 is not set
1685 +# CONFIG_NLS_CODEPAGE_936 is not set
1686 +# CONFIG_NLS_CODEPAGE_950 is not set
1687 +# CONFIG_NLS_CODEPAGE_932 is not set
1688 +# CONFIG_NLS_CODEPAGE_949 is not set
1689 +# CONFIG_NLS_CODEPAGE_874 is not set
1690 +# CONFIG_NLS_ISO8859_8 is not set
1691 +# CONFIG_NLS_CODEPAGE_1250 is not set
1692 +# CONFIG_NLS_CODEPAGE_1251 is not set
1693 +CONFIG_NLS_ASCII=y
1694 +CONFIG_NLS_ISO8859_1=y
1695 +# CONFIG_NLS_ISO8859_2 is not set
1696 +# CONFIG_NLS_ISO8859_3 is not set
1697 +# CONFIG_NLS_ISO8859_4 is not set
1698 +# CONFIG_NLS_ISO8859_5 is not set
1699 +# CONFIG_NLS_ISO8859_6 is not set
1700 +# CONFIG_NLS_ISO8859_7 is not set
1701 +# CONFIG_NLS_ISO8859_9 is not set
1702 +# CONFIG_NLS_ISO8859_13 is not set
1703 +# CONFIG_NLS_ISO8859_14 is not set
1704 +CONFIG_NLS_ISO8859_15=y
1705 +# CONFIG_NLS_KOI8_R is not set
1706 +# CONFIG_NLS_KOI8_U is not set
1707 +CONFIG_NLS_UTF8=y
1708 +# CONFIG_DLM is not set
1709 +
1710 +#
1711 +# Security options
1712 +#
1713 +# CONFIG_KEYS is not set
1714 +# CONFIG_SECURITY is not set
1715 +# CONFIG_SECURITYFS is not set
1716 +# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1717 +CONFIG_CRYPTO=y
1718 +
1719 +#
1720 +# Crypto core or helper
1721 +#
1722 +# CONFIG_CRYPTO_FIPS is not set
1723 +CONFIG_CRYPTO_ALGAPI=y
1724 +CONFIG_CRYPTO_ALGAPI2=y
1725 +CONFIG_CRYPTO_AEAD2=y
1726 +CONFIG_CRYPTO_BLKCIPHER=y
1727 +CONFIG_CRYPTO_BLKCIPHER2=y
1728 +CONFIG_CRYPTO_HASH2=y
1729 +CONFIG_CRYPTO_RNG2=y
1730 +CONFIG_CRYPTO_MANAGER=y
1731 +CONFIG_CRYPTO_MANAGER2=y
1732 +# CONFIG_CRYPTO_GF128MUL is not set
1733 +# CONFIG_CRYPTO_NULL is not set
1734 +# CONFIG_CRYPTO_CRYPTD is not set
1735 +# CONFIG_CRYPTO_AUTHENC is not set
1736 +# CONFIG_CRYPTO_TEST is not set
1737 +
1738 +#
1739 +# Authenticated Encryption with Associated Data
1740 +#
1741 +# CONFIG_CRYPTO_CCM is not set
1742 +# CONFIG_CRYPTO_GCM is not set
1743 +# CONFIG_CRYPTO_SEQIV is not set
1744 +
1745 +#
1746 +# Block modes
1747 +#
1748 +# CONFIG_CRYPTO_CBC is not set
1749 +# CONFIG_CRYPTO_CTR is not set
1750 +# CONFIG_CRYPTO_CTS is not set
1751 +CONFIG_CRYPTO_ECB=y
1752 +# CONFIG_CRYPTO_LRW is not set
1753 +# CONFIG_CRYPTO_PCBC is not set
1754 +# CONFIG_CRYPTO_XTS is not set
1755 +
1756 +#
1757 +# Hash modes
1758 +#
1759 +# CONFIG_CRYPTO_HMAC is not set
1760 +# CONFIG_CRYPTO_XCBC is not set
1761 +
1762 +#
1763 +# Digest
1764 +#
1765 +# CONFIG_CRYPTO_CRC32C is not set
1766 +# CONFIG_CRYPTO_MD4 is not set
1767 +# CONFIG_CRYPTO_MD5 is not set
1768 +# CONFIG_CRYPTO_MICHAEL_MIC is not set
1769 +# CONFIG_CRYPTO_RMD128 is not set
1770 +# CONFIG_CRYPTO_RMD160 is not set
1771 +# CONFIG_CRYPTO_RMD256 is not set
1772 +# CONFIG_CRYPTO_RMD320 is not set
1773 +# CONFIG_CRYPTO_SHA1 is not set
1774 +# CONFIG_CRYPTO_SHA256 is not set
1775 +# CONFIG_CRYPTO_SHA512 is not set
1776 +# CONFIG_CRYPTO_TGR192 is not set
1777 +# CONFIG_CRYPTO_WP512 is not set
1778 +
1779 +#
1780 +# Ciphers
1781 +#
1782 +CONFIG_CRYPTO_AES=y
1783 +# CONFIG_CRYPTO_ANUBIS is not set
1784 +CONFIG_CRYPTO_ARC4=y
1785 +# CONFIG_CRYPTO_BLOWFISH is not set
1786 +# CONFIG_CRYPTO_CAMELLIA is not set
1787 +# CONFIG_CRYPTO_CAST5 is not set
1788 +# CONFIG_CRYPTO_CAST6 is not set
1789 +# CONFIG_CRYPTO_DES is not set
1790 +# CONFIG_CRYPTO_FCRYPT is not set
1791 +# CONFIG_CRYPTO_KHAZAD is not set
1792 +# CONFIG_CRYPTO_SALSA20 is not set
1793 +# CONFIG_CRYPTO_SEED is not set
1794 +# CONFIG_CRYPTO_SERPENT is not set
1795 +# CONFIG_CRYPTO_TEA is not set
1796 +# CONFIG_CRYPTO_TWOFISH is not set
1797 +
1798 +#
1799 +# Compression
1800 +#
1801 +# CONFIG_CRYPTO_DEFLATE is not set
1802 +# CONFIG_CRYPTO_LZO is not set
1803 +
1804 +#
1805 +# Random Number Generation
1806 +#
1807 +# CONFIG_CRYPTO_ANSI_CPRNG is not set
1808 +# CONFIG_CRYPTO_HW is not set
1809 +
1810 +#
1811 +# OCF Configuration
1812 +#
1813 +# CONFIG_OCF_OCF is not set
1814 +
1815 +#
1816 +# Library routines
1817 +#
1818 +CONFIG_BITREVERSE=y
1819 +CONFIG_CRC_CCITT=y
1820 +# CONFIG_CRC16 is not set
1821 +# CONFIG_CRC_T10DIF is not set
1822 +# CONFIG_CRC_ITU_T is not set
1823 +CONFIG_CRC32=y
1824 +# CONFIG_CRC7 is not set
1825 +# CONFIG_LIBCRC32C is not set
1826 +CONFIG_ZLIB_INFLATE=y
1827 +CONFIG_ZLIB_DEFLATE=y
1828 +CONFIG_TEXTSEARCH=y
1829 +CONFIG_TEXTSEARCH_KMP=y
1830 +CONFIG_TEXTSEARCH_BM=y
1831 +CONFIG_TEXTSEARCH_FSM=y
1832 +CONFIG_HAS_IOMEM=y
1833 +CONFIG_HAS_DMA=y
1834 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/a.out.h linux-2.6.28.10/arch/ubicom32/include/asm/a.out.h
1835 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/a.out.h 1970-01-01 02:00:00.000000000 +0200
1836 +++ linux-2.6.28.10/arch/ubicom32/include/asm/a.out.h 2009-08-06 10:31:02.000000000 +0300
1837 @@ -0,0 +1,47 @@
1838 +/*
1839 + * arch/ubicom32/include/asm/a.out.h
1840 + * Definitions for Ubicom32 a.out executable format.
1841 + *
1842 + * (C) Copyright 2009, Ubicom, Inc.
1843 + *
1844 + * This file is part of the Ubicom32 Linux Kernel Port.
1845 + *
1846 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
1847 + * it and/or modify it under the terms of the GNU General Public License
1848 + * as published by the Free Software Foundation, either version 2 of the
1849 + * License, or (at your option) any later version.
1850 + *
1851 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
1852 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
1853 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
1854 + * the GNU General Public License for more details.
1855 + *
1856 + * You should have received a copy of the GNU General Public License
1857 + * along with the Ubicom32 Linux Kernel Port. If not,
1858 + * see <http://www.gnu.org/licenses/>.
1859 + *
1860 + * Ubicom32 implementation derived from (with many thanks):
1861 + * arch/m68knommu
1862 + * arch/blackfin
1863 + * arch/parisc
1864 + */
1865 +#ifndef _ASM_UBICOM32_A_OUT_H
1866 +#define _ASM_UBICOM32_A_OUT_H
1867 +
1868 +struct exec
1869 +{
1870 + unsigned long a_info; /* Use macros N_MAGIC, etc for access */
1871 + unsigned a_text; /* length of text, in bytes */
1872 + unsigned a_data; /* length of data, in bytes */
1873 + unsigned a_bss; /* length of uninitialized data area for file, in bytes */
1874 + unsigned a_syms; /* length of symbol table data in file, in bytes */
1875 + unsigned a_entry; /* start address */
1876 + unsigned a_trsize; /* length of relocation info for text, in bytes */
1877 + unsigned a_drsize; /* length of relocation info for data, in bytes */
1878 +};
1879 +
1880 +#define N_TRSIZE(a) ((a).a_trsize)
1881 +#define N_DRSIZE(a) ((a).a_drsize)
1882 +#define N_SYMSIZE(a) ((a).a_syms)
1883 +
1884 +#endif /* _ASM_UBICOM32_A_OUT_H */
1885 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/atomic.h linux-2.6.28.10/arch/ubicom32/include/asm/atomic.h
1886 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/atomic.h 1970-01-01 02:00:00.000000000 +0200
1887 +++ linux-2.6.28.10/arch/ubicom32/include/asm/atomic.h 2009-08-06 10:31:02.000000000 +0300
1888 @@ -0,0 +1,352 @@
1889 +/*
1890 + * arch/ubicom32/include/asm/atomic.h
1891 + * Atomic operations definitions for Ubicom32 architecture.
1892 + *
1893 + * (C) Copyright 2009, Ubicom, Inc.
1894 + *
1895 + * This file is part of the Ubicom32 Linux Kernel Port.
1896 + *
1897 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
1898 + * it and/or modify it under the terms of the GNU General Public License
1899 + * as published by the Free Software Foundation, either version 2 of the
1900 + * License, or (at your option) any later version.
1901 + *
1902 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
1903 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
1904 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
1905 + * the GNU General Public License for more details.
1906 + *
1907 + * You should have received a copy of the GNU General Public License
1908 + * along with the Ubicom32 Linux Kernel Port. If not,
1909 + * see <http://www.gnu.org/licenses/>.
1910 + *
1911 + * Ubicom32 implementation derived from (with many thanks):
1912 + * arch/m68knommu
1913 + * arch/blackfin
1914 + * arch/parisc
1915 + */
1916 +#ifndef _ASM_UBICOM32_ATOMIC_H
1917 +#define _ASM_UBICOM32_ATOMIC_H
1918 +
1919 +#include <asm/system.h>
1920 +#include <asm/ubicom32-common.h>
1921 +#include <asm/types.h>
1922 +
1923 +/*
1924 + * Most instructions on the Ubicom32 processor are atomic in that they
1925 + * execute in one clock cycle. However, Linux has several operations
1926 + * (e.g. compare and swap) which will require more than a single instruction
1927 + * to perform. To achieve this, the Ubicom32 processor uses a single
1928 + * global bit in a scratchpad register as a critical section lock. All
1929 + * atomic operations acquire this lock.
1930 + *
1931 + * NOTE: To AVOID DEADLOCK(s), the atomic lock must only be used for atomic
1932 + * operations or by the ldsr to avoid disabling a thread performing an atomic
1933 + * operation.
1934 + *
1935 + * Do not attempt to disable interrupts while holding the atomic operations
1936 + * lock or you will DEADLOCK the system.
1937 + */
1938 +
1939 +typedef struct {
1940 + volatile int counter;
1941 +} atomic_t;
1942 +
1943 +#define ATOMIC_INIT(i) { (i) }
1944 +
1945 +/*
1946 + * __atomic_add()
1947 + * Add i to v and return the result.
1948 + */
1949 +static inline void __atomic_add(int i, atomic_t *v)
1950 +{
1951 + atomic_t *vt = v;
1952 +
1953 + __atomic_lock_acquire();
1954 + vt->counter += i;
1955 + __atomic_lock_release();
1956 +}
1957 +
1958 +/*
1959 + * __atomic_sub()
1960 + * Subtract i from v and return the result.
1961 + */
1962 +static inline void __atomic_sub(int i, atomic_t *v)
1963 +{
1964 + atomic_t *vt = v;
1965 +
1966 + __atomic_lock_acquire();
1967 + vt->counter -= i;
1968 + __atomic_lock_release();
1969 +}
1970 +
1971 +/*
1972 + * __atomic_add_return()
1973 + * Add i to v and return the result.
1974 + *
1975 + * The implementation here looks rather odd because we appear to be doing
1976 + * the addition twice. In fact that's exactly what we're doing but with
1977 + * the ubicom32 instruction set we can do the inner load and add with two
1978 + * instructions whereas generating both the atomic result and the "ret"
1979 + * result requires three instructions. The second add is generally only as
1980 + * costly as a move instruction and in cases where we compare the result
1981 + * with a constant the compiler can fold two constant values and do a
1982 + * single instruction, thus saving an instruction overall!
1983 + *
1984 + * At the worst we save one instruction inside the atomic lock.
1985 + */
1986 +static inline int __atomic_add_return(int i, atomic_t *v)
1987 +{
1988 + int ret;
1989 + atomic_t *vt = v;
1990 +
1991 + __atomic_lock_acquire();
1992 + ret = vt->counter;
1993 + vt->counter = ret + i;
1994 + __atomic_lock_release();
1995 +
1996 + return ret + i;
1997 +}
1998 +
1999 +/*
2000 + * __atomic_sub_return()
2001 + * Subtract i from v and return the result.
2002 + *
2003 + * The implementation here looks rather odd because we appear to be doing
2004 + * the subtraction twice. In fact that's exactly what we're doing but with
2005 + * the ubicom32 instruction set we can do the inner load and sub with two
2006 + * instructions whereas generating both the atomic result and the "ret"
2007 + * result requires three instructions. The second sub is generally only as
2008 + * costly as a move instruction and in cases where we compare the result
2009 + * with a constant the compiler can fold two constant values and do a
2010 + * single instruction, thus saving an instruction overall!
2011 + *
2012 + * At the worst we save one instruction inside the atomic lock.
2013 + */
2014 +static inline int __atomic_sub_return(int i, atomic_t *v)
2015 +{
2016 + int ret;
2017 + atomic_t *vt = v;
2018 +
2019 + __atomic_lock_acquire();
2020 + ret = vt->counter;
2021 + vt->counter = ret - i;
2022 + __atomic_lock_release();
2023 +
2024 + return ret - i;
2025 +}
2026 +
2027 +/*
2028 + * PUBLIC API FOR ATOMIC!
2029 + */
2030 +#define atomic_add(i,v) (__atomic_add( ((int)i),(v)))
2031 +#define atomic_sub(i,v) (__atomic_sub( ((int)i),(v)))
2032 +#define atomic_inc(v) (__atomic_add( 1,(v)))
2033 +#define atomic_dec(v) (__atomic_sub( 1,(v)))
2034 +#define atomic_add_return(i,v) (__atomic_add_return( ((int)i),(v)))
2035 +#define atomic_sub_return(i,v) (__atomic_sub_return( ((int)i),(v)))
2036 +#define atomic_inc_return(v) (__atomic_add_return( 1,(v)))
2037 +#define atomic_dec_return(v) (__atomic_sub_return( 1,(v)))
2038 +#define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
2039 +#define atomic_dec_and_test(v) (atomic_dec_return(v) == 0)
2040 +#define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0)
2041 +#define atomic_sub_and_test(i,v) (atomic_sub_return((i),(v)) == 0)
2042 +
2043 +/*
2044 + * atomic_read()
2045 + * Acquire the atomic lock and read the variable.
2046 + */
2047 +static inline int atomic_read(const atomic_t *v)
2048 +{
2049 + int ret;
2050 + const atomic_t *vt = v;
2051 +
2052 + __atomic_lock_acquire();
2053 + ret = vt->counter;
2054 + __atomic_lock_release();
2055 +
2056 + return ret;
2057 +}
2058 +
2059 +/*
2060 + * atomic_set()
2061 + * Acquire the atomic lock and set the variable.
2062 + */
2063 +static inline void atomic_set(atomic_t *v, int i)
2064 +{
2065 + atomic_t *vt = v;
2066 +
2067 + __atomic_lock_acquire();
2068 + vt->counter = i;
2069 + __atomic_lock_release();
2070 +}
2071 +
2072 +/*
2073 + * atomic_cmpxchg
2074 + * Acquire the atomic lock and exchange if current == old.
2075 + */
2076 +static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
2077 +{
2078 + int prev;
2079 + atomic_t *vt = v;
2080 +
2081 + __atomic_lock_acquire();
2082 + prev = vt->counter;
2083 + if (prev == old) {
2084 + vt->counter = new;
2085 + }
2086 + __atomic_lock_release();
2087 +
2088 + return prev;
2089 +}
2090 +
2091 +/*
2092 + * atomic_xchg()
2093 + * Acquire the atomic lock and exchange values.
2094 + */
2095 +static inline int atomic_xchg(atomic_t *v, int new)
2096 +{
2097 + int prev;
2098 + atomic_t *vt = v;
2099 +
2100 + __atomic_lock_acquire();
2101 + prev = vt->counter;
2102 + vt->counter = new;
2103 + __atomic_lock_release();
2104 +
2105 + return prev;
2106 +}
2107 +
2108 +/*
2109 + * atomic_add_unless()
2110 + * Acquire the atomic lock and add a unless the value is u.
2111 + */
2112 +static inline int atomic_add_unless(atomic_t *v, int a, int u)
2113 +{
2114 + int prev;
2115 + atomic_t *vt = v;
2116 +
2117 + __atomic_lock_acquire();
2118 + prev = vt->counter;
2119 + if (prev != u) {
2120 + vt->counter += a;
2121 + __atomic_lock_release();
2122 + return 1;
2123 + }
2124 +
2125 + __atomic_lock_release();
2126 + return 0;
2127 +}
2128 +
2129 +#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
2130 +
2131 +#include <asm-generic/atomic.h>
2132 +
2133 +/*
2134 + * The following is not a real function. The compiler should remove the function
2135 + * call as long as the user does not pass in a size that __xchg and __cmpxchg
2136 + * are not prepared for. If the user does pass in an unknown size, the user
2137 + * will get a link time error.
2138 + *
2139 + * The no return is to prevent a compiler error that can occur when dealing with
2140 + * uninitialized variables. Given that the function doesn't exist there is no
2141 + * net effect (and if it did it would not return).
2142 + */
2143 +extern void __xchg_called_with_bad_pointer(void) __attribute__((noreturn));
2144 +
2145 +/*
2146 + * __xchg()
2147 + * Xchange *ptr for x atomically.
2148 + *
2149 + * Must be both locally atomic and atomic on SMP. Ubicom32 does not have an
2150 + * atomic exchange instruction so we use the global atomic_lock.
2151 + */
2152 +static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size)
2153 +{
2154 + unsigned long ret;
2155 +
2156 + __atomic_lock_acquire();
2157 +
2158 + switch (size) {
2159 + case 1:
2160 + ret = *(volatile unsigned char *)ptr;
2161 + *(volatile unsigned char *)ptr = x;
2162 + break;
2163 +
2164 + case 2:
2165 + ret = *(volatile unsigned short *)ptr;
2166 + *(volatile unsigned short *)ptr = x;
2167 + break;
2168 +
2169 + case 4:
2170 + ret = *(volatile unsigned int *)ptr;
2171 + *(volatile unsigned int *)ptr = x;
2172 + break;
2173 +
2174 + default:
2175 + __xchg_called_with_bad_pointer();
2176 + break;
2177 + }
2178 + __atomic_lock_release();
2179 + return ret;
2180 +}
2181 +
2182 +#define xchg(ptr,x) ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr))))
2183 +
2184 +/*
2185 + * __cmpxchg()
2186 + * Compare and Xchange *ptr for x atomically.
2187 + *
2188 + * Must be both locally atomic and atomic on SMP. Ubicom32 does not have an
2189 + * atomic exchange instruction so we use the global atomic_lock.
2190 + */
2191 +static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old, unsigned long next, int size)
2192 +{
2193 + unsigned long prev;
2194 +
2195 + __atomic_lock_acquire();
2196 + switch (size) {
2197 + case 1:
2198 + prev = *(u8 *)ptr;
2199 + if (prev == old) {
2200 + *(u8 *)ptr = (u8)next;
2201 + }
2202 + break;
2203 +
2204 + case 2:
2205 + prev = *(u16 *)ptr;
2206 + if (prev == old) {
2207 + *(u16 *)ptr = (u16)next;
2208 + }
2209 + break;
2210 +
2211 + case 4:
2212 + prev = *(u32 *)ptr;
2213 + if (prev == old) {
2214 + *(u32 *)ptr = (u32)next;
2215 + }
2216 + break;
2217 +
2218 + default:
2219 + __xchg_called_with_bad_pointer();
2220 + break;
2221 + }
2222 + __atomic_lock_release();
2223 + return prev;
2224 +}
2225 +
2226 +/*
2227 + * cmpxchg_local and cmpxchg64_local are atomic wrt current CPU. Always make
2228 + * them available.
2229 + */
2230 +#define cmpxchg_local(ptr, o, n) \
2231 + ((__typeof__(*(ptr)))__cmpxchg((ptr), (unsigned long)(o), (unsigned long)(n), sizeof(*(ptr))))
2232 +
2233 +#define cmpxchg(ptr, o, n) __cmpxchg((ptr), (o), (n), sizeof(*(ptr)))
2234 +
2235 +#define smp_mb__before_atomic_inc() asm volatile ("" : : : "memory")
2236 +#define smp_mb__after_atomic_inc() asm volatile ("" : : : "memory")
2237 +#define smp_mb__before_atomic_dec() asm volatile ("" : : : "memory")
2238 +#define smp_mb__after_atomic_dec() asm volatile ("" : : : "memory")
2239 +
2240 +#endif /* _ASM_UBICOM32_ATOMIC_H */
2241 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/audio_tio.h linux-2.6.28.10/arch/ubicom32/include/asm/audio_tio.h
2242 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/audio_tio.h 1970-01-01 02:00:00.000000000 +0200
2243 +++ linux-2.6.28.10/arch/ubicom32/include/asm/audio_tio.h 2009-08-06 10:31:02.000000000 +0300
2244 @@ -0,0 +1,124 @@
2245 +/*
2246 + * arch/ubicom32/include/asm/audio_tio.h
2247 + * AudioTIO include file
2248 + *
2249 + * (C) Copyright 2009, Ubicom, Inc.
2250 + *
2251 + * This file is part of the Ubicom32 Linux Kernel Port.
2252 + *
2253 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
2254 + * it and/or modify it under the terms of the GNU General Public License
2255 + * as published by the Free Software Foundation, either version 2 of the
2256 + * License, or (at your option) any later version.
2257 + *
2258 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
2259 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
2260 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
2261 + * the GNU General Public License for more details.
2262 + *
2263 + * You should have received a copy of the GNU General Public License
2264 + * along with the Ubicom32 Linux Kernel Port. If not,
2265 + * see <http://www.gnu.org/licenses/>.
2266 + */
2267 +
2268 +#ifndef _AUDIO_TIO_H
2269 +#define _AUDIO_TIO_H
2270 +
2271 +#include <asm/devtree.h>
2272 +#include <asm/ubi32-pcm.h>
2273 +
2274 +#define UBI32_AUDIO_INT_FLAG_MORE_SAMPLES 0x00000001
2275 +#define UBI32_AUDIO_INT_FLAG_COMMAND 0x00000002
2276 +
2277 +/*
2278 + * Commands the Primary OS sends to the audio device
2279 + */
2280 +enum ubi32_audio_command {
2281 + UBI32_AUDIO_CMD_NONE,
2282 + UBI32_AUDIO_CMD_START,
2283 + UBI32_AUDIO_CMD_STOP,
2284 + UBI32_AUDIO_CMD_PAUSE,
2285 + UBI32_AUDIO_CMD_RESUME,
2286 + UBI32_AUDIO_CMD_MUTE,
2287 + UBI32_AUDIO_CMD_UNMUTE,
2288 + UBI32_AUDIO_CMD_SETUP,
2289 + UBI32_AUDIO_CMD_ENABLE,
2290 + UBI32_AUDIO_CMD_DISABLE,
2291 +};
2292 +
2293 +/*
2294 + * Flag bits passed in the registers
2295 + */
2296 +#define UBI32_CMD_SETUP_FLAG_LE (1 << 0) /* Use Little Endian Mode */
2297 +
2298 +/*
2299 + * Status bits that audio device can set to indicate reason
2300 + * for interrupting the Primary OS
2301 + */
2302 +#define UBI32_AUDIO_STATUS_PLAY_DMA0_REQUEST (1 << 0) /* Audio device needs samples in DMA0 for playback */
2303 +#define UBI32_AUDIO_STATUS_PLAY_DMA1_REQUEST (1 << 1) /* Audio device needs samples in DMA1 for playback */
2304 +
2305 +struct ubi32_audio_dma {
2306 + /*
2307 + * NOTE: The active flag shall only be SET by the producer and CLEARED
2308 + * by the consumer, NEVER the other way around. For playback, the
2309 + * Primary OS sets this flag and ipAudioTIO clears it.
2310 + *
2311 + * The producer shall not modify the ptr or ctr fields when the transfer
2312 + * is marked as active, as these are used by the consumer to do the
2313 + * transfer.
2314 + */
2315 + volatile uint32_t active; /* Nonzero if data in ptr/ctr ready to be transferred */
2316 + //volatile u32_t active; /* Nonzero if data in ptr/ctr ready to be transferred */
2317 + volatile void *ptr; /* Pointer to data to be transferred */
2318 + volatile uint32_t ctr; /* Counter: number of data units to transfer */
2319 + //volatile u32_t ctr; /* Counter: number of data units to transfer */
2320 +};
2321 +
2322 +#define AUDIOTIONODE_CAP_BE (1 << 0)
2323 +#define AUDIOTIONODE_CAP_LE (1 << 1)
2324 +
2325 +/*
2326 + * Resource indices used to access IRQs via platform_get_resource
2327 + */
2328 +#define AUDIOTIO_MEM_RESOURCE 0
2329 +#define AUDIOTIO_TX_IRQ_RESOURCE 0
2330 +#define AUDIOTIO_RX_IRQ_RESOURCE 1
2331 +
2332 +#define AUDIOTIONODE_VERSION 5
2333 +struct audiotionode {
2334 + struct devtree_node dn;
2335 + uint32_t version; /* Version of this node */
2336 + struct audiotioregs *regs;
2337 +};
2338 +
2339 +#define AUDIOTIOREGS_VERSION 3
2340 +struct audiotioregs {
2341 + uint32_t version;
2342 + uint32_t caps; /* Capabilities of the driver */
2343 + u32_t *sample_rates; /* Sample Rates supported by this driver */
2344 + u32_t n_sample_rates; /* Number of sample rates supported by this driver */
2345 + u32_t channel_mask; /* The channel configs supported by this driver (bit 1 = 1 channel, etc) */
2346 + volatile uint32_t int_flags; /* Reason for interrupting audio device */
2347 + volatile enum ubi32_audio_command command; /* Command from Primary OS */
2348 + volatile uint32_t flags; /* Flag bits for this command */
2349 + volatile uint32_t channels; /* Number of channels in stream */
2350 + volatile uint32_t sample_rate; /* Sample rate */
2351 + volatile uint32_t status; /* Status bits sent from AudioTIO to Primary OS */
2352 + volatile void *current_read_pos; /* Position of next sample to be removed from Primary OS sample buffer */
2353 +
2354 + /*
2355 + * These are the transfer requests. They are used in alternating
2356 + * order so that when ipAudioTIO is processing one request, the
2357 + * Primary OS can fill in the other one.
2358 + *
2359 + * NOTE: The active bit shall always be SET by the producer and
2360 + * CLEARED by the consumer, NEVER the other way around.
2361 + */
2362 + struct ubi32_audio_dma playback_xfer_requests[2];
2363 +};
2364 +
2365 +extern struct platform_device * __init audio_tio_alloc(const char *driver_name, const char *node_name, int priv_size);
2366 +
2367 +#define audio_tio_priv(pdev) (((struct ubi32pcm_platform_data *)(((struct platform_device *)(pdev))->dev.platform_data))->priv_data)
2368 +#endif
2369 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/auxvec.h linux-2.6.28.10/arch/ubicom32/include/asm/auxvec.h
2370 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/auxvec.h 1970-01-01 02:00:00.000000000 +0200
2371 +++ linux-2.6.28.10/arch/ubicom32/include/asm/auxvec.h 2009-08-06 10:31:02.000000000 +0300
2372 @@ -0,0 +1,32 @@
2373 +/*
2374 + * arch/ubicom32/include/asm/auxvec.h
2375 + * Symbolic values for the entries in the auxiliary table
2376 + * put on the initial stack.
2377 + *
2378 + * (C) Copyright 2009, Ubicom, Inc.
2379 + *
2380 + * This file is part of the Ubicom32 Linux Kernel Port.
2381 + *
2382 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
2383 + * it and/or modify it under the terms of the GNU General Public License
2384 + * as published by the Free Software Foundation, either version 2 of the
2385 + * License, or (at your option) any later version.
2386 + *
2387 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
2388 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
2389 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
2390 + * the GNU General Public License for more details.
2391 + *
2392 + * You should have received a copy of the GNU General Public License
2393 + * along with the Ubicom32 Linux Kernel Port. If not,
2394 + * see <http://www.gnu.org/licenses/>.
2395 + *
2396 + * Ubicom32 implementation derived from (with many thanks):
2397 + * arch/m68knommu
2398 + * arch/blackfin
2399 + * arch/parisc
2400 + */
2401 +#ifndef _ASM_UBICOM32_AUXVEC_H
2402 +#define _ASM_UBICOM32_AUXVEC_H
2403 +
2404 +#endif /* _ASM_UBICOM32_AUXVEC_H */
2405 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/bitops.h linux-2.6.28.10/arch/ubicom32/include/asm/bitops.h
2406 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/bitops.h 1970-01-01 02:00:00.000000000 +0200
2407 +++ linux-2.6.28.10/arch/ubicom32/include/asm/bitops.h 2009-08-06 10:31:02.000000000 +0300
2408 @@ -0,0 +1,171 @@
2409 +/*
2410 + * arch/ubicom32/include/asm/bitops.h
2411 + * Bit manipulation definitions for Ubicom32 architecture.
2412 + *
2413 + * (C) Copyright 2009, Ubicom, Inc.
2414 + *
2415 + * This file is part of the Ubicom32 Linux Kernel Port.
2416 + *
2417 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
2418 + * it and/or modify it under the terms of the GNU General Public License
2419 + * as published by the Free Software Foundation, either version 2 of the
2420 + * License, or (at your option) any later version.
2421 + *
2422 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
2423 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
2424 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
2425 + * the GNU General Public License for more details.
2426 + *
2427 + * You should have received a copy of the GNU General Public License
2428 + * along with the Ubicom32 Linux Kernel Port. If not,
2429 + * see <http://www.gnu.org/licenses/>.
2430 + *
2431 + * Ubicom32 implementation derived from (with many thanks):
2432 + * arch/m68knommu
2433 + * arch/blackfin
2434 + * arch/parisc
2435 + */
2436 +#ifndef _ASM_UBICOM32_BITOPS_H
2437 +#define _ASM_UBICOM32_BITOPS_H
2438 +
2439 +/*
2440 + * Copyright 1992, Linus Torvalds.
2441 + */
2442 +
2443 +#include <linux/compiler.h>
2444 +#include <asm/byteorder.h> /* swab32 */
2445 +
2446 +#ifdef __KERNEL__
2447 +
2448 +#ifndef _LINUX_BITOPS_H
2449 +#error only <linux/bitops.h> can be included directly
2450 +#endif
2451 +
2452 +#include <asm-generic/bitops/ffs.h>
2453 +#include <asm-generic/bitops/__ffs.h>
2454 +
2455 +#include <asm-generic/bitops/sched.h>
2456 +#include <asm-generic/bitops/ffz.h>
2457 +
2458 +#include <asm/ubicom32-common.h>
2459 +
2460 +static inline void set_bit(int bit, volatile unsigned long *p)
2461 +{
2462 + unsigned long mask = 1UL << (bit & 31);
2463 +
2464 + p += bit >> 5;
2465 +
2466 + __atomic_lock_acquire();
2467 + *p |= mask;
2468 + __atomic_lock_release();
2469 +}
2470 +
2471 +static inline void clear_bit(int bit, volatile unsigned long *p)
2472 +{
2473 + unsigned long mask = 1UL << (bit & 31);
2474 +
2475 + p += bit >> 5;
2476 +
2477 + __atomic_lock_acquire();
2478 + *p &= ~mask;
2479 + __atomic_lock_release();
2480 +}
2481 +
2482 +/*
2483 + * clear_bit() doesn't provide any barrier for the compiler.
2484 + */
2485 +#define smp_mb__before_clear_bit() barrier()
2486 +#define smp_mb__after_clear_bit() barrier()
2487 +
2488 +static inline void change_bit(int bit, volatile unsigned long *p)
2489 +{
2490 + unsigned long mask = 1UL << (bit & 31);
2491 +
2492 + p += bit >> 5;
2493 +
2494 + __atomic_lock_acquire();
2495 + *p ^= mask;
2496 + __atomic_lock_release();
2497 +}
2498 +
2499 +static inline int test_and_set_bit(int bit, volatile unsigned long *p)
2500 +{
2501 + unsigned int res;
2502 + unsigned long mask = 1UL << (bit & 31);
2503 +
2504 + p += bit >> 5;
2505 +
2506 + __atomic_lock_acquire();
2507 + res = *p;
2508 + *p = res | mask;
2509 + __atomic_lock_release();
2510 +
2511 + return res & mask;
2512 +}
2513 +
2514 +static inline int test_and_clear_bit(int bit, volatile unsigned long *p)
2515 +{
2516 + unsigned int res;
2517 + unsigned long mask = 1UL << (bit & 31);
2518 +
2519 + p += bit >> 5;
2520 +
2521 + __atomic_lock_acquire();
2522 + res = *p;
2523 + *p = res & ~mask;
2524 + __atomic_lock_release();
2525 +
2526 + return res & mask;
2527 +}
2528 +
2529 +static inline int test_and_change_bit(int bit, volatile unsigned long *p)
2530 +{
2531 + unsigned int res;
2532 + unsigned long mask = 1UL << (bit & 31);
2533 +
2534 + p += bit >> 5;
2535 +
2536 + __atomic_lock_acquire();
2537 + res = *p;
2538 + *p = res ^ mask;
2539 + __atomic_lock_release();
2540 +
2541 + return res & mask;
2542 +}
2543 +
2544 +#include <asm-generic/bitops/non-atomic.h>
2545 +
2546 +/*
2547 + * This routine doesn't need to be atomic.
2548 + */
2549 +static inline int __constant_test_bit(int nr, const volatile unsigned long *addr)
2550 +{
2551 + return ((1UL << (nr & 31)) & (((const volatile unsigned int *) addr)[nr >> 5])) != 0;
2552 +}
2553 +
2554 +static inline int __test_bit(int nr, const volatile unsigned long *addr)
2555 +{
2556 + int * a = (int *) addr;
2557 + int mask;
2558 +
2559 + a += nr >> 5;
2560 + mask = 1 << (nr & 0x1f);
2561 + return ((mask & *a) != 0);
2562 +}
2563 +
2564 +#define test_bit(nr,addr) (__builtin_constant_p(nr) ? __constant_test_bit((nr),(addr)) : __test_bit((nr),(addr)))
2565 +
2566 +#include <asm-generic/bitops/find.h>
2567 +#include <asm-generic/bitops/hweight.h>
2568 +#include <asm-generic/bitops/lock.h>
2569 +
2570 +#include <asm-generic/bitops/ext2-non-atomic.h>
2571 +#include <asm-generic/bitops/ext2-atomic.h>
2572 +#include <asm-generic/bitops/minix.h>
2573 +
2574 +#endif /* __KERNEL__ */
2575 +
2576 +#include <asm-generic/bitops/fls.h>
2577 +#include <asm-generic/bitops/fls64.h>
2578 +
2579 +#endif /* _ASM_UBICOM32_BITOPS_H */
2580 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/board.h linux-2.6.28.10/arch/ubicom32/include/asm/board.h
2581 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/board.h 1970-01-01 02:00:00.000000000 +0200
2582 +++ linux-2.6.28.10/arch/ubicom32/include/asm/board.h 2009-08-06 10:31:02.000000000 +0300
2583 @@ -0,0 +1,34 @@
2584 +/*
2585 + * arch/ubicom32/include/asm/board.h
2586 + * Board init and revision definitions for Ubicom32 architecture.
2587 + *
2588 + * (C) Copyright 2009, Ubicom, Inc.
2589 + *
2590 + * This file is part of the Ubicom32 Linux Kernel Port.
2591 + *
2592 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
2593 + * it and/or modify it under the terms of the GNU General Public License
2594 + * as published by the Free Software Foundation, either version 2 of the
2595 + * License, or (at your option) any later version.
2596 + *
2597 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
2598 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
2599 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
2600 + * the GNU General Public License for more details.
2601 + *
2602 + * You should have received a copy of the GNU General Public License
2603 + * along with the Ubicom32 Linux Kernel Port. If not,
2604 + * see <http://www.gnu.org/licenses/>.
2605 + *
2606 + * Ubicom32 implementation derived from (with many thanks):
2607 + * arch/m68knommu
2608 + * arch/blackfin
2609 + * arch/parisc
2610 + */
2611 +#ifndef _ASM_UBICOM32_BOARD_H
2612 +#define _ASM_UBICOM32_BOARD_H
2613 +
2614 +extern const char *board_get_revision(void);
2615 +extern void __init board_init(void);
2616 +
2617 +#endif /* _ASM_UBICOM32_BOARD_H */
2618 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/bootargs.h linux-2.6.28.10/arch/ubicom32/include/asm/bootargs.h
2619 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/bootargs.h 1970-01-01 02:00:00.000000000 +0200
2620 +++ linux-2.6.28.10/arch/ubicom32/include/asm/bootargs.h 2009-08-06 10:31:02.000000000 +0300
2621 @@ -0,0 +1,34 @@
2622 +/*
2623 + * arch/ubicom32/include/asm/bootargs.h
2624 + * Kernel command line via the devtree API.
2625 + *
2626 + * (C) Copyright 2009, Ubicom, Inc.
2627 + *
2628 + * This file is part of the Ubicom32 Linux Kernel Port.
2629 + *
2630 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
2631 + * it and/or modify it under the terms of the GNU General Public License
2632 + * as published by the Free Software Foundation, either version 2 of the
2633 + * License, or (at your option) any later version.
2634 + *
2635 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
2636 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
2637 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
2638 + * the GNU General Public License for more details.
2639 + *
2640 + * You should have received a copy of the GNU General Public License
2641 + * along with the Ubicom32 Linux Kernel Port. If not,
2642 + * see <http://www.gnu.org/licenses/>.
2643 + *
2644 + * Ubicom32 implementation derived from (with many thanks):
2645 + * arch/m68knommu
2646 + * arch/blackfin
2647 + * arch/parisc
2648 + */
2649 +#ifndef _ASM_UBICOM32_BOOTARGS_H
2650 +#define _ASM_UBICOM32_BOOTARGS_H
2651 +
2652 +extern const char *bootargs_get_cmdline(void);
2653 +extern void __init bootargs_init(void);
2654 +
2655 +#endif /* _ASM_UBICOM32_BOOTARGS_H */
2656 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/bootinfo.h linux-2.6.28.10/arch/ubicom32/include/asm/bootinfo.h
2657 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/bootinfo.h 1970-01-01 02:00:00.000000000 +0200
2658 +++ linux-2.6.28.10/arch/ubicom32/include/asm/bootinfo.h 2009-08-06 10:31:02.000000000 +0300
2659 @@ -0,0 +1,34 @@
2660 +/*
2661 + * arch/ubicom32/include/asm/bootinfo.h
2662 + * Definitions of firmware boot parameters passed to the kernel.
2663 + *
2664 + * (C) Copyright 2009, Ubicom, Inc.
2665 + *
2666 + * This file is part of the Ubicom32 Linux Kernel Port.
2667 + *
2668 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
2669 + * it and/or modify it under the terms of the GNU General Public License
2670 + * as published by the Free Software Foundation, either version 2 of the
2671 + * License, or (at your option) any later version.
2672 + *
2673 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
2674 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
2675 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
2676 + * the GNU General Public License for more details.
2677 + *
2678 + * You should have received a copy of the GNU General Public License
2679 + * along with the Ubicom32 Linux Kernel Port. If not,
2680 + * see <http://www.gnu.org/licenses/>.
2681 + *
2682 + * Ubicom32 implementation derived from (with many thanks):
2683 + * arch/m68knommu
2684 + * arch/blackfin
2685 + * arch/parisc
2686 + */
2687 +
2688 +#ifndef _ASM_UBICOM32_BOOTINFO_H
2689 +#define _ASM_UBICOM32_BOOTINFO_H
2690 +
2691 +/* Nothing for ubicom32 */
2692 +
2693 +#endif /* _ASM_UBICOM32_BOOTINFO_H */
2694 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/bug.h linux-2.6.28.10/arch/ubicom32/include/asm/bug.h
2695 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/bug.h 1970-01-01 02:00:00.000000000 +0200
2696 +++ linux-2.6.28.10/arch/ubicom32/include/asm/bug.h 2009-08-06 10:31:02.000000000 +0300
2697 @@ -0,0 +1,53 @@
2698 +/*
2699 + * arch/ubicom32/include/asm/bug.h
2700 + * Generic bug.h for Ubicom32 architecture.
2701 + *
2702 + * (C) Copyright 2009, Ubicom, Inc.
2703 + *
2704 + * This file is part of the Ubicom32 Linux Kernel Port.
2705 + *
2706 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
2707 + * it and/or modify it under the terms of the GNU General Public License
2708 + * as published by the Free Software Foundation, either version 2 of the
2709 + * License, or (at your option) any later version.
2710 + *
2711 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
2712 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
2713 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
2714 + * the GNU General Public License for more details.
2715 + *
2716 + * You should have received a copy of the GNU General Public License
2717 + * along with the Ubicom32 Linux Kernel Port. If not,
2718 + * see <http://www.gnu.org/licenses/>.
2719 + *
2720 + * Ubicom32 implementation derived from (with many thanks):
2721 + * arch/m68knommu
2722 + * arch/blackfin
2723 + * arch/parisc
2724 + */
2725 +#ifndef _ASM_UBICOM32_BUG_H
2726 +#define _ASM_UBICOM32_BUG_H
2727 +
2728 +#include <linux/kernel.h>
2729 +#include <asm/thread.h>
2730 +
2731 +#if defined(CONFIG_STOP_ON_BUG)
2732 +/*
2733 + * __BUG_ON()
2734 + * Stall all threads to enable debugging.
2735 + */
2736 +static inline void __BUG_ON(unsigned long c)
2737 +{
2738 + if (unlikely(c)) {
2739 + THREAD_STALL;
2740 + }
2741 + return;
2742 +}
2743 +
2744 +#define BUG_ON(c) __BUG_ON((unsigned long)(c))
2745 +#define HAVE_ARCH_BUG_ON
2746 +#endif
2747 +
2748 +#include <asm-generic/bug.h>
2749 +
2750 +#endif /* _ASM_UBICOM32_BUG_H */
2751 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/bugs.h linux-2.6.28.10/arch/ubicom32/include/asm/bugs.h
2752 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/bugs.h 1970-01-01 02:00:00.000000000 +0200
2753 +++ linux-2.6.28.10/arch/ubicom32/include/asm/bugs.h 2009-08-06 10:31:02.000000000 +0300
2754 @@ -0,0 +1,44 @@
2755 +/*
2756 + * arch/ubicom32/include/asm/bugs.h
2757 + * Definition of check_bugs() for Ubicom32 architecture.
2758 + *
2759 + * (C) Copyright 2009, Ubicom, Inc.
2760 + * Copyright (C) 1994 Linus Torvalds
2761 + *
2762 + * This file is part of the Ubicom32 Linux Kernel Port.
2763 + *
2764 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
2765 + * it and/or modify it under the terms of the GNU General Public License
2766 + * as published by the Free Software Foundation, either version 2 of the
2767 + * License, or (at your option) any later version.
2768 + *
2769 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
2770 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
2771 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
2772 + * the GNU General Public License for more details.
2773 + *
2774 + * You should have received a copy of the GNU General Public License
2775 + * along with the Ubicom32 Linux Kernel Port. If not,
2776 + * see <http://www.gnu.org/licenses/>.
2777 + *
2778 + * Ubicom32 implementation derived from (with many thanks):
2779 + * arch/m68knommu
2780 + * arch/blackfin
2781 + * arch/parisc
2782 + */
2783 +
2784 +/*
2785 + * This is included by init/main.c to check for architecture-dependent bugs.
2786 + *
2787 + * Needs:
2788 + * void check_bugs(void);
2789 + */
2790 +
2791 +#ifndef _ASM_UBICOM32_BUGS_H
2792 +#define _ASM_UBICOM32_BUGS_H
2793 +
2794 +static void check_bugs(void)
2795 +{
2796 +}
2797 +
2798 +#endif /* _ASM_UBICOM32_BUGS_H */
2799 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/byteorder.h linux-2.6.28.10/arch/ubicom32/include/asm/byteorder.h
2800 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/byteorder.h 1970-01-01 02:00:00.000000000 +0200
2801 +++ linux-2.6.28.10/arch/ubicom32/include/asm/byteorder.h 2009-08-06 10:31:02.000000000 +0300
2802 @@ -0,0 +1,48 @@
2803 +/*
2804 + * arch/ubicom32/include/asm/byteorder.h
2805 + * Byte order swapping utility routines.
2806 + *
2807 + * (C) Copyright 2009, Ubicom, Inc.
2808 + *
2809 + * This file is part of the Ubicom32 Linux Kernel Port.
2810 + *
2811 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
2812 + * it and/or modify it under the terms of the GNU General Public License
2813 + * as published by the Free Software Foundation, either version 2 of the
2814 + * License, or (at your option) any later version.
2815 + *
2816 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
2817 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
2818 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
2819 + * the GNU General Public License for more details.
2820 + *
2821 + * You should have received a copy of the GNU General Public License
2822 + * along with the Ubicom32 Linux Kernel Port. If not,
2823 + * see <http://www.gnu.org/licenses/>.
2824 + *
2825 + * Ubicom32 implementation derived from (with many thanks):
2826 + * arch/m68knommu
2827 + * arch/blackfin
2828 + * arch/parisc
2829 + */
2830 +#ifndef _ASM_UBICOM32_BYTEORDER_H
2831 +#define _ASM_UBICOM32_BYTEORDER_H
2832 +
2833 +#include <linux/types.h>
2834 +
2835 +#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__)
2836 +# define __BYTEORDER_HAS_U64__
2837 +# define __SWAB_64_THRU_32__
2838 +#endif
2839 +
2840 +#if defined(IP7000) || defined(IP7000_REV2)
2841 +
2842 +#define __arch__swab16 __builtin_ubicom32_swapb_2
2843 +#define __arch__swab32 __builtin_ubicom32_swapb_4
2844 +
2845 +#endif /* IP7000 */
2846 +
2847 +#include <linux/byteorder/big_endian.h>
2848 +
2849 +#endif /* _ASM_UBICOM32_BYTEORDER_H */
2850 +
2851 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/cachectl.h linux-2.6.28.10/arch/ubicom32/include/asm/cachectl.h
2852 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/cachectl.h 1970-01-01 02:00:00.000000000 +0200
2853 +++ linux-2.6.28.10/arch/ubicom32/include/asm/cachectl.h 2009-08-06 10:31:02.000000000 +0300
2854 @@ -0,0 +1,39 @@
2855 +/*
2856 + * arch/ubicom32/include/asm/cachectl.h
2857 + * Ubicom32 cache control definitions.
2858 + *
2859 + * (C) Copyright 2009, Ubicom, Inc.
2860 + *
2861 + * This file is part of the Ubicom32 Linux Kernel Port.
2862 + *
2863 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
2864 + * it and/or modify it under the terms of the GNU General Public License
2865 + * as published by the Free Software Foundation, either version 2 of the
2866 + * License, or (at your option) any later version.
2867 + *
2868 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
2869 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
2870 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
2871 + * the GNU General Public License for more details.
2872 + *
2873 + * You should have received a copy of the GNU General Public License
2874 + * along with the Ubicom32 Linux Kernel Port. If not,
2875 + * see <http://www.gnu.org/licenses/>.
2876 + *
2877 + * Ubicom32 implementation derived from (with many thanks):
2878 + * arch/m68knommu
2879 + * arch/blackfin
2880 + * arch/parisc
2881 + */
2882 +#ifndef _ASM_UBICOM32_CACHECTL_H
2883 +#define _ASM_UBICOM32_CACHECTL_H
2884 +
2885 +#include <asm/ip5000.h>
2886 +
2887 +/*
2888 + * mem_cache_control()
2889 + * Special cache control operation
2890 + */
2891 +extern void mem_cache_control(unsigned long cc, unsigned long begin_addr, unsigned long end_addr, unsigned long op);
2892 +
2893 +#endif /* _ASM_UBICOM32_CACHECTL_H */
2894 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/cacheflush.h linux-2.6.28.10/arch/ubicom32/include/asm/cacheflush.h
2895 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/cacheflush.h 1970-01-01 02:00:00.000000000 +0200
2896 +++ linux-2.6.28.10/arch/ubicom32/include/asm/cacheflush.h 2009-08-06 10:31:02.000000000 +0300
2897 @@ -0,0 +1,104 @@
2898 +/*
2899 + * arch/ubicom32/include/asm/cacheflush.h
2900 + * Cache flushing definitions for Ubicom32 architecture.
2901 + *
2902 + * (C) Copyright 2009, Ubicom, Inc.
2903 + *
2904 + * This file is part of the Ubicom32 Linux Kernel Port.
2905 + *
2906 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
2907 + * it and/or modify it under the terms of the GNU General Public License
2908 + * as published by the Free Software Foundation, either version 2 of the
2909 + * License, or (at your option) any later version.
2910 + *
2911 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
2912 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
2913 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
2914 + * the GNU General Public License for more details.
2915 + *
2916 + * You should have received a copy of the GNU General Public License
2917 + * along with the Ubicom32 Linux Kernel Port. If not,
2918 + * see <http://www.gnu.org/licenses/>.
2919 + *
2920 + * Ubicom32 implementation derived from (with many thanks):
2921 + * arch/m68knommu
2922 + * arch/blackfin
2923 + * arch/parisc
2924 + */
2925 +#ifndef _ASM_UBICOM32_CACHEFLUSH_H
2926 +#define _ASM_UBICOM32_CACHEFLUSH_H
2927 +
2928 +/*
2929 + * (C) Copyright 2000-2004, Greg Ungerer <gerg@snapgear.com>
2930 + */
2931 +#include <linux/mm.h>
2932 +#include <asm/cachectl.h>
2933 +#include <asm/ip5000.h>
2934 +
2935 +#define flush_cache_all() __flush_cache_all()
2936 +#define flush_cache_mm(mm) do { } while (0)
2937 +#define flush_cache_dup_mm(mm) do { } while (0)
2938 +#define flush_cache_range(vma, start, end) __flush_cache_all()
2939 +#define flush_cache_page(vma, vmaddr) do { } while (0)
2940 +#define flush_dcache_page(page) do { } while (0)
2941 +#define flush_dcache_mmap_lock(mapping) do { } while (0)
2942 +#define flush_dcache_mmap_unlock(mapping) do { } while (0)
2943 +
2944 +#define flush_dcache_range(start, end) \
2945 +do { \
2946 + /* Flush the data cache and invalidate the I cache. */ \
2947 + local_irq_disable(); \
2948 + mem_cache_control(DCCR_BASE, start, end, CCR_CTRL_FLUSH_ADDR); \
2949 + mem_cache_control(ICCR_BASE, start, end, CCR_CTRL_INV_ADDR); \
2950 + local_irq_enable(); \
2951 +} while (0)
2952 +
2953 +#define flush_icache_range(start, end) \
2954 +do { \
2955 + /* Flush the data cache and invalidate the I cache. */ \
2956 + local_irq_disable(); \
2957 + mem_cache_control(DCCR_BASE, start, end, CCR_CTRL_FLUSH_ADDR); \
2958 + mem_cache_control(ICCR_BASE, start, end, CCR_CTRL_INV_ADDR); \
2959 + local_irq_enable(); \
2960 +} while (0)
2961 +
2962 +#define flush_icache_page(vma,pg) do { } while (0)
2963 +#define flush_icache_user_range(vma,pg,adr,len) do { } while (0)
2964 +#define flush_cache_vmap(start, end) do { } while (0)
2965 +#define flush_cache_vunmap(start, end) do { } while (0)
2966 +
2967 +#define copy_to_user_page(vma, page, vaddr, dst, src, len) \
2968 + memcpy(dst, src, len)
2969 +#define copy_from_user_page(vma, page, vaddr, dst, src, len) \
2970 + memcpy(dst, src, len)
2971 +
2972 +/*
2973 + * Cache handling for IP5000
2974 + */
2975 +extern inline void mem_cache_invalidate_all(unsigned long cc)
2976 +{
2977 + asm volatile (
2978 + " bset "D(CCR_CTRL)"(%0), "D(CCR_CTRL)"(%0), #"D(CCR_CTRL_RESET)" \n\t"
2979 + " nop \n\t"
2980 + " bclr "D(CCR_CTRL)"(%0), "D(CCR_CTRL)"(%0), #"D(CCR_CTRL_RESET)" \n\t"
2981 + " pipe_flush 0 \n\t"
2982 + :
2983 + : "a"(cc)
2984 + : "cc"
2985 + );
2986 +}
2987 +
2988 +static inline void __flush_cache_all(void)
2989 +{
2990 + /*
2991 + * Flush Icache
2992 + */
2993 + mem_cache_invalidate_all(ICCR_BASE);
2994 +
2995 + /*
2996 + * Flush Dcache
2997 + */
2998 + mem_cache_invalidate_all(DCCR_BASE);
2999 +}
3000 +
3001 +#endif /* _ASM_UBICOM32_CACHEFLUSH_H */
3002 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/cache.h linux-2.6.28.10/arch/ubicom32/include/asm/cache.h
3003 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/cache.h 1970-01-01 02:00:00.000000000 +0200
3004 +++ linux-2.6.28.10/arch/ubicom32/include/asm/cache.h 2009-08-06 10:31:02.000000000 +0300
3005 @@ -0,0 +1,40 @@
3006 +/*
3007 + * arch/ubicom32/include/asm/cache.h
3008 + * Cache line definitions for Ubicom32 architecture.
3009 + *
3010 + * (C) Copyright 2009, Ubicom, Inc.
3011 + *
3012 + * This file is part of the Ubicom32 Linux Kernel Port.
3013 + *
3014 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
3015 + * it and/or modify it under the terms of the GNU General Public License
3016 + * as published by the Free Software Foundation, either version 2 of the
3017 + * License, or (at your option) any later version.
3018 + *
3019 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
3020 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
3021 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
3022 + * the GNU General Public License for more details.
3023 + *
3024 + * You should have received a copy of the GNU General Public License
3025 + * along with the Ubicom32 Linux Kernel Port. If not,
3026 + * see <http://www.gnu.org/licenses/>.
3027 + *
3028 + * Ubicom32 implementation derived from (with many thanks):
3029 + * arch/m68knommu
3030 + * arch/blackfin
3031 + * arch/parisc
3032 + */
3033 +#ifndef _ASM_UBICOM32_CACHE_H
3034 +#define _ASM_UBICOM32_CACHE_H
3035 +
3036 +/*
3037 + * bytes per L1 cache line
3038 + */
3039 +#define L1_CACHE_SHIFT 5
3040 +#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
3041 +
3042 +#define __cacheline_aligned
3043 +#define ____cacheline_aligned
3044 +
3045 +#endif /* _ASM_UBICOM32_CACHE_H */
3046 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/checksum.h linux-2.6.28.10/arch/ubicom32/include/asm/checksum.h
3047 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/checksum.h 1970-01-01 02:00:00.000000000 +0200
3048 +++ linux-2.6.28.10/arch/ubicom32/include/asm/checksum.h 2009-08-06 10:31:02.000000000 +0300
3049 @@ -0,0 +1,149 @@
3050 +/*
3051 + * arch/ubicom32/include/asm/checksum.h
3052 + * Checksum utilities for Ubicom32 architecture.
3053 + *
3054 + * (C) Copyright 2009, Ubicom, Inc.
3055 + *
3056 + * This file is part of the Ubicom32 Linux Kernel Port.
3057 + *
3058 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
3059 + * it and/or modify it under the terms of the GNU General Public License
3060 + * as published by the Free Software Foundation, either version 2 of the
3061 + * License, or (at your option) any later version.
3062 + *
3063 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
3064 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
3065 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
3066 + * the GNU General Public License for more details.
3067 + *
3068 + * You should have received a copy of the GNU General Public License
3069 + * along with the Ubicom32 Linux Kernel Port. If not,
3070 + * see <http://www.gnu.org/licenses/>.
3071 + *
3072 + * Ubicom32 implementation derived from (with many thanks):
3073 + * arch/m68knommu
3074 + * arch/blackfin
3075 + * arch/parisc
3076 + */
3077 +#ifndef _ASM_UBICOM32_CHECKSUM_H
3078 +#define _ASM_UBICOM32_CHECKSUM_H
3079 +
3080 +#include <linux/in6.h>
3081 +
3082 +/*
3083 + * computes the checksum of a memory block at buff, length len,
3084 + * and adds in "sum" (32-bit)
3085 + *
3086 + * returns a 32-bit number suitable for feeding into itself
3087 + * or csum_tcpudp_magic
3088 + *
3089 + * this function must be called with even lengths, except
3090 + * for the last fragment, which may be odd
3091 + *
3092 + * it's best to have buff aligned on a 32-bit boundary
3093 + */
3094 +__wsum csum_partial(const void *buff, int len, __wsum sum);
3095 +
3096 +/*
3097 + * the same as csum_partial, but copies from src while it
3098 + * checksums
3099 + *
3100 + * here even more important to align src and dst on a 32-bit (or even
3101 + * better 64-bit) boundary
3102 + */
3103 +
3104 +__wsum csum_partial_copy_nocheck(const void *src, void *dst,
3105 + int len, __wsum sum);
3106 +
3107 +
3108 +/*
3109 + * the same as csum_partial_copy, but copies from user space.
3110 + *
3111 + * here even more important to align src and dst on a 32-bit (or even
3112 + * better 64-bit) boundary
3113 + */
3114 +
3115 +extern __wsum csum_partial_copy_from_user(const void __user *src,
3116 + void *dst, int len, __wsum sum, int *csum_err);
3117 +
3118 +__sum16 ip_fast_csum(const void *iph, unsigned int ihl);
3119 +
3120 +/*
3121 + * Fold a partial checksum
3122 + */
3123 +
3124 +static inline __sum16 csum_fold(__wsum sum)
3125 +{
3126 + asm volatile (
3127 + " lsr.4 d15, %0, #16 \n\t"
3128 + " bfextu %0, %0, #16 \n\t"
3129 + " add.4 %0, d15, %0 \n\t"
3130 + " lsr.4 d15, %0, #16 \n\t"
3131 + " bfextu %0, %0, #16 \n\t"
3132 + " add.4 %0, d15, %0 \n\t"
3133 + : "=&d" (sum)
3134 + : "0"(sum)
3135 + : "d15"
3136 + );
3137 + return (__force __sum16)~sum;
3138 +}
3139 +
3140 +
3141 +/*
3142 + * computes the checksum of the TCP/UDP pseudo-header
3143 + * returns a 16-bit checksum, already complemented
3144 + */
3145 +
3146 +static inline __wsum
3147 +csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len,
3148 + unsigned short proto, __wsum sum)
3149 +{
3150 + asm volatile (
3151 + " add.4 %0, %2, %0 \n\t"
3152 + " addc %0, %3, %0 \n\t"
3153 + " addc %0, %4, %0 \n\t"
3154 + " addc %0, %5, %0 \n\t"
3155 + " addc %0, #0, %0 \n\t"
3156 + : "=&d" (sum)
3157 + : "0"(sum), "r" (saddr), "r" (daddr), "r" (len), "r"(proto)
3158 + );
3159 + return sum;
3160 +}
3161 +
3162 +static inline __sum16
3163 +csum_tcpudp_magic(__be32 saddr, __be32 daddr, unsigned short len,
3164 + unsigned short proto, __wsum sum)
3165 +{
3166 + return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum));
3167 +}
3168 +
3169 +/*
3170 + * this routine is used for miscellaneous IP-like checksums, mainly
3171 + * in icmp.c
3172 + */
3173 +extern __sum16 ip_compute_csum(const void *buff, int len);
3174 +
3175 +#define _HAVE_ARCH_IPV6_CSUM
3176 +
3177 +static __inline__ __sum16
3178 +csum_ipv6_magic(const struct in6_addr *saddr, const struct in6_addr *daddr,
3179 + __u32 len, unsigned short proto, __wsum sum)
3180 +{
3181 + asm volatile (
3182 + " add.4 %0, 0(%2), %0 \n\t"
3183 + " addc %0, 4(%2), %0 \n\t"
3184 + " addc %0, 8(%2), %0 \n\t"
3185 + " addc %0, 12(%2), %0 \n\t"
3186 + " addc %0, 0(%3), %0 \n\t"
3187 + " addc %0, 4(%3), %0 \n\t"
3188 + " addc %0, 8(%3), %0 \n\t"
3189 + " addc %0, 12(%3), %0 \n\t"
3190 + " addc %0, %4, %0 \n\t"
3191 + " addc %0, #0, %0 \n\t"
3192 + : "=&d" (sum)
3193 + : "0" (sum), "a" (saddr), "a" (daddr), "d" (len + proto)
3194 + );
3195 + return csum_fold(sum);
3196 +}
3197 +
3198 +#endif /* _ASM_UBICOM32_CHECKSUM_H */
3199 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/cpu.h linux-2.6.28.10/arch/ubicom32/include/asm/cpu.h
3200 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/cpu.h 1970-01-01 02:00:00.000000000 +0200
3201 +++ linux-2.6.28.10/arch/ubicom32/include/asm/cpu.h 2009-08-06 10:31:02.000000000 +0300
3202 @@ -0,0 +1,45 @@
3203 +/*
3204 + * arch/ubicom32/include/asm/cpu.h
3205 + * CPU definitions for Ubicom32 architecture.
3206 + *
3207 + * (C) Copyright 2009, Ubicom, Inc.
3208 + * Copyright (C) 2004-2005 ARM Ltd.
3209 + *
3210 + * This file is part of the Ubicom32 Linux Kernel Port.
3211 + *
3212 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
3213 + * it and/or modify it under the terms of the GNU General Public License
3214 + * as published by the Free Software Foundation, either version 2 of the
3215 + * License, or (at your option) any later version.
3216 + *
3217 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
3218 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
3219 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
3220 + * the GNU General Public License for more details.
3221 + *
3222 + * You should have received a copy of the GNU General Public License
3223 + * along with the Ubicom32 Linux Kernel Port. If not,
3224 + * see <http://www.gnu.org/licenses/>.
3225 + *
3226 + * Ubicom32 implementation derived from (with many thanks):
3227 + * arch/m68knommu
3228 + * arch/blackfin
3229 + * arch/parisc
3230 + */
3231 +#ifndef _ASM_UBICOM32_CPU_H
3232 +#define _ASM_UBICOM32_CPU_H
3233 +
3234 +#include <linux/percpu.h>
3235 +
3236 +struct cpuinfo_ubicom32 {
3237 + unsigned long tid; /* Hardware thread number */
3238 +
3239 +#ifdef CONFIG_SMP
3240 + volatile unsigned long ipi_pending; /* Bit map of operations to execute */
3241 + unsigned long ipi_count; /* Number of IPI(s) taken on this cpu */
3242 +#endif
3243 +};
3244 +
3245 +DECLARE_PER_CPU(struct cpuinfo_ubicom32, cpu_data);
3246 +
3247 +#endif /* _ASM_UBICOM32_CPU_H */
3248 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/cputime.h linux-2.6.28.10/arch/ubicom32/include/asm/cputime.h
3249 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/cputime.h 1970-01-01 02:00:00.000000000 +0200
3250 +++ linux-2.6.28.10/arch/ubicom32/include/asm/cputime.h 2009-08-06 10:31:02.000000000 +0300
3251 @@ -0,0 +1,33 @@
3252 +/*
3253 + * arch/ubicom32/include/asm/cputime.h
3254 + * Generic cputime.h for Ubicom32 architecture.
3255 + *
3256 + * (C) Copyright 2009, Ubicom, Inc.
3257 + *
3258 + * This file is part of the Ubicom32 Linux Kernel Port.
3259 + *
3260 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
3261 + * it and/or modify it under the terms of the GNU General Public License
3262 + * as published by the Free Software Foundation, either version 2 of the
3263 + * License, or (at your option) any later version.
3264 + *
3265 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
3266 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
3267 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
3268 + * the GNU General Public License for more details.
3269 + *
3270 + * You should have received a copy of the GNU General Public License
3271 + * along with the Ubicom32 Linux Kernel Port. If not,
3272 + * see <http://www.gnu.org/licenses/>.
3273 + *
3274 + * Ubicom32 implementation derived from (with many thanks):
3275 + * arch/m68knommu
3276 + * arch/blackfin
3277 + * arch/parisc
3278 + */
3279 +#ifndef _ASM_UBICOM32_CPUTIME_H
3280 +#define _ASM_UBICOM32_CPUTIME_H
3281 +
3282 +#include <asm-generic/cputime.h>
3283 +
3284 +#endif /* _ASM_UBICOM32_CPUTIME_H */
3285 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/current.h linux-2.6.28.10/arch/ubicom32/include/asm/current.h
3286 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/current.h 1970-01-01 02:00:00.000000000 +0200
3287 +++ linux-2.6.28.10/arch/ubicom32/include/asm/current.h 2009-08-06 10:31:02.000000000 +0300
3288 @@ -0,0 +1,44 @@
3289 +/*
3290 + * arch/ubicom32/include/asm/current.h
3291 + * Definition of get_current() for Ubicom32 architecture.
3292 + *
3293 + * (C) Copyright 2009, Ubicom, Inc.
3294 + * (C) Copyright 2000, Lineo, David McCullough <davidm@uclinux.org>
3295 + * (C) Copyright 2002, Greg Ungerer (gerg@snapgear.com)
3296 + *
3297 + * This file is part of the Ubicom32 Linux Kernel Port.
3298 + *
3299 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
3300 + * it and/or modify it under the terms of the GNU General Public License
3301 + * as published by the Free Software Foundation, either version 2 of the
3302 + * License, or (at your option) any later version.
3303 + *
3304 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
3305 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
3306 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
3307 + * the GNU General Public License for more details.
3308 + *
3309 + * You should have received a copy of the GNU General Public License
3310 + * along with the Ubicom32 Linux Kernel Port. If not,
3311 + * see <http://www.gnu.org/licenses/>.
3312 + *
3313 + * Ubicom32 implementation derived from (with many thanks):
3314 + * arch/m68knommu
3315 + * arch/blackfin
3316 + * arch/parisc
3317 + */
3318 +#ifndef _ASM_UBICOM32_CURRENT_H
3319 +#define _ASM_UBICOM32_CURRENT_H
3320 +
3321 +#include <linux/thread_info.h>
3322 +
3323 +struct task_struct;
3324 +
3325 +static inline struct task_struct *get_current(void)
3326 +{
3327 + return(current_thread_info()->task);
3328 +}
3329 +
3330 +#define current get_current()
3331 +
3332 +#endif /* _ASM_UBICOM32_CURRENT_H */
3333 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/delay.h linux-2.6.28.10/arch/ubicom32/include/asm/delay.h
3334 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/delay.h 1970-01-01 02:00:00.000000000 +0200
3335 +++ linux-2.6.28.10/arch/ubicom32/include/asm/delay.h 2009-08-06 10:31:02.000000000 +0300
3336 @@ -0,0 +1,75 @@
3337 +/*
3338 + * arch/ubicom32/include/asm/delay.h
3339 + * Definition of delay routines for Ubicom32 architecture.
3340 + *
3341 + * (C) Copyright 2009, Ubicom, Inc.
3342 + *
3343 + * This file is part of the Ubicom32 Linux Kernel Port.
3344 + *
3345 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
3346 + * it and/or modify it under the terms of the GNU General Public License
3347 + * as published by the Free Software Foundation, either version 2 of the
3348 + * License, or (at your option) any later version.
3349 + *
3350 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
3351 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
3352 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
3353 + * the GNU General Public License for more details.
3354 + *
3355 + * You should have received a copy of the GNU General Public License
3356 + * along with the Ubicom32 Linux Kernel Port. If not,
3357 + * see <http://www.gnu.org/licenses/>.
3358 + *
3359 + * Ubicom32 implementation derived from (with many thanks):
3360 + * arch/m68knommu
3361 + * arch/blackfin
3362 + * arch/parisc
3363 + */
3364 +#ifndef _ASM_UBICOM32_DELAY_H
3365 +#define _ASM_UBICOM32_DELAY_H
3366 +
3367 +#include <asm/param.h>
3368 +#include <asm/ip5000.h>
3369 +
3370 +static inline void __delay(unsigned long loops)
3371 +{
3372 + if (loops == 0) {
3373 + return;
3374 + }
3375 +
3376 + asm volatile (
3377 + "1: add.4 %0, #-1, %0 \n\t"
3378 + " jmpne.t 1b \n\t"
3379 + : "+d" (loops)
3380 + );
3381 +}
3382 +
3383 +/*
3384 + * Ubicom32 processor uses fixed 12MHz external OSC.
3385 + * So we use that as reference to count 12 cycles/us
3386 + */
3387 +
3388 +extern unsigned long loops_per_jiffy;
3389 +
3390 +static inline void _udelay(unsigned long usecs)
3391 +{
3392 +#if defined(CONFIG_UBICOM32_V4) || defined(CONFIG_UBICOM32_V3)
3393 + asm volatile (
3394 + " add.4 d15, 0(%0), %1 \n\t"
3395 + " sub.4 #0, 0(%0), d15 \n\t"
3396 + " jmpmi.w.f .-4 \n\t"
3397 + :
3398 + : "a"(TIMER_BASE + TIMER_MPTVAL), "d"(usecs * (12000000/1000000))
3399 + : "d15"
3400 + );
3401 +#else
3402 + BUG();
3403 +#endif
3404 +}
3405 +
3406 +/*
3407 + * Moved the udelay() function into library code, no longer inlined.
3408 + */
3409 +extern void udelay(unsigned long usecs);
3410 +
3411 +#endif /* _ASM_UBICOM32_DELAY_H */
3412 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/device.h linux-2.6.28.10/arch/ubicom32/include/asm/device.h
3413 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/device.h 1970-01-01 02:00:00.000000000 +0200
3414 +++ linux-2.6.28.10/arch/ubicom32/include/asm/device.h 2009-08-06 10:31:02.000000000 +0300
3415 @@ -0,0 +1,35 @@
3416 +/*
3417 + * arch/ubicom32/include/asm/device.h
3418 + * Generic device.h for Ubicom32 architecture.
3419 + *
3420 + * Used for arch specific extensions to struct device
3421 + *
3422 + * (C) Copyright 2009, Ubicom, Inc.
3423 + *
3424 + * This file is part of the Ubicom32 Linux Kernel Port.
3425 + *
3426 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
3427 + * it and/or modify it under the terms of the GNU General Public License
3428 + * as published by the Free Software Foundation, either version 2 of the
3429 + * License, or (at your option) any later version.
3430 + *
3431 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
3432 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
3433 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
3434 + * the GNU General Public License for more details.
3435 + *
3436 + * You should have received a copy of the GNU General Public License
3437 + * along with the Ubicom32 Linux Kernel Port. If not,
3438 + * see <http://www.gnu.org/licenses/>.
3439 + *
3440 + * Ubicom32 implementation derived from (with many thanks):
3441 + * arch/m68knommu
3442 + * arch/blackfin
3443 + * arch/parisc
3444 + */
3445 +#ifndef _ASM_UBICOM32_DEVICE_H
3446 +#define _ASM_UBICOM32_DEVICE_H
3447 +
3448 +#include <asm-generic/device.h>
3449 +
3450 +#endif /* _ASM_UBICOM32_DEVICE_H */
3451 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/devtree.h linux-2.6.28.10/arch/ubicom32/include/asm/devtree.h
3452 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/devtree.h 1970-01-01 02:00:00.000000000 +0200
3453 +++ linux-2.6.28.10/arch/ubicom32/include/asm/devtree.h 2009-08-06 10:31:02.000000000 +0300
3454 @@ -0,0 +1,52 @@
3455 +/*
3456 + * arch/ubicom32/include/asm/devtree.h
3457 + * Device Tree Header File (Shared between ultra and the Host OS)
3458 + *
3459 + * (C) Copyright 2009, Ubicom, Inc.
3460 + *
3461 + * This file is part of the Ubicom32 Linux Kernel Port.
3462 + *
3463 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
3464 + * it and/or modify it under the terms of the GNU General Public License
3465 + * as published by the Free Software Foundation, either version 2 of the
3466 + * License, or (at your option) any later version.
3467 + *
3468 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
3469 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
3470 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
3471 + * the GNU General Public License for more details.
3472 + *
3473 + * You should have received a copy of the GNU General Public License
3474 + * along with the Ubicom32 Linux Kernel Port. If not,
3475 + * see <http://www.gnu.org/licenses/>.
3476 + *
3477 + * Ubicom32 implementation derived from (with many thanks):
3478 + * arch/m68knommu
3479 + * arch/blackfin
3480 + * arch/parisc
3481 + */
3482 +
3483 +#ifndef _ASM_UBICOM32_DEVTREE_H
3484 +#define _ASM_UBICOM32_DEVTREE_H
3485 +
3486 +#define DEVTREE_MAX_NAME 32
3487 +#define DEVTREE_IRQ_NONE 0xff
3488 +#define DEVTREE_IRQ_DONTCARE 0xff
3489 +#define DEVTREE_NODE_MAGIC 0x10203040
3490 +
3491 +struct devtree_node {
3492 + struct devtree_node *next;
3493 + unsigned char sendirq;
3494 + unsigned char recvirq;
3495 + char name[DEVTREE_MAX_NAME];
3496 + unsigned int magic;
3497 +};
3498 +
3499 +extern struct devtree_node *devtree;
3500 +extern struct devtree_node *devtree_find_by_irq(uint8_t sendirq, uint8_t recvirq);
3501 +extern struct devtree_node *devtree_find_node(const char *str);
3502 +extern struct devtree_node *devtree_find_next(struct devtree_node **cur);
3503 +extern int devtree_irq(struct devtree_node *dn, unsigned char *sendirq, unsigned char *recvirq);
3504 +extern void devtree_print(void);
3505 +
3506 +#endif /* _ASM_UBICOM32_DEVTREE_H */
3507 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/div64.h linux-2.6.28.10/arch/ubicom32/include/asm/div64.h
3508 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/div64.h 1970-01-01 02:00:00.000000000 +0200
3509 +++ linux-2.6.28.10/arch/ubicom32/include/asm/div64.h 2009-08-06 10:31:02.000000000 +0300
3510 @@ -0,0 +1,33 @@
3511 +/*
3512 + * arch/ubicom32/include/asm/div64.h
3513 + * Generic div64.h for Ubicom32 architecture.
3514 + *
3515 + * (C) Copyright 2009, Ubicom, Inc.
3516 + *
3517 + * This file is part of the Ubicom32 Linux Kernel Port.
3518 + *
3519 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
3520 + * it and/or modify it under the terms of the GNU General Public License
3521 + * as published by the Free Software Foundation, either version 2 of the
3522 + * License, or (at your option) any later version.
3523 + *
3524 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
3525 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
3526 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
3527 + * the GNU General Public License for more details.
3528 + *
3529 + * You should have received a copy of the GNU General Public License
3530 + * along with the Ubicom32 Linux Kernel Port. If not,
3531 + * see <http://www.gnu.org/licenses/>.
3532 + *
3533 + * Ubicom32 implementation derived from (with many thanks):
3534 + * arch/m68knommu
3535 + * arch/blackfin
3536 + * arch/parisc
3537 + */
3538 +#ifndef _ASM_UBICOM32_DIV64_H
3539 +#define _ASM_UBICOM32_DIV64_H
3540 +
3541 +#include <asm-generic/div64.h>
3542 +
3543 +#endif /* _ASM_UBICOM32_DIV64_H */
3544 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/dma.h linux-2.6.28.10/arch/ubicom32/include/asm/dma.h
3545 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/dma.h 1970-01-01 02:00:00.000000000 +0200
3546 +++ linux-2.6.28.10/arch/ubicom32/include/asm/dma.h 2009-08-06 10:31:02.000000000 +0300
3547 @@ -0,0 +1,34 @@
3548 +/*
3549 + * arch/ubicom32/include/asm/dma.h
3550 + * DMA definitions for Ubicom32 architecture.
3551 + *
3552 + * (C) Copyright 2009, Ubicom, Inc.
3553 + *
3554 + * This file is part of the Ubicom32 Linux Kernel Port.
3555 + *
3556 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
3557 + * it and/or modify it under the terms of the GNU General Public License
3558 + * as published by the Free Software Foundation, either version 2 of the
3559 + * License, or (at your option) any later version.
3560 + *
3561 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
3562 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
3563 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
3564 + * the GNU General Public License for more details.
3565 + *
3566 + * You should have received a copy of the GNU General Public License
3567 + * along with the Ubicom32 Linux Kernel Port. If not,
3568 + * see <http://www.gnu.org/licenses/>.
3569 + *
3570 + * Ubicom32 implementation derived from (with many thanks):
3571 + * arch/m68knommu
3572 + * arch/blackfin
3573 + * arch/parisc
3574 + */
3575 +#ifndef _ASM_UBICOM32_DMA_H
3576 +#define _ASM_UBICOM32_DMA_H
3577 +
3578 +/* Nothing so far */
3579 +#define MAX_DMA_ADDRESS 0x00 /* This is quite suspicious */
3580 +
3581 +#endif /* _ASM_UBICOM32_DMA_H */
3582 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/dma-mapping.h linux-2.6.28.10/arch/ubicom32/include/asm/dma-mapping.h
3583 --- linux-2.6.28.10_o/arch/ubicom32/include/asm/dma-mapping.h 1970-01-01 02:00:00.000000000 +0200
3584 +++ linux-2.6.28.10/arch/ubicom32/include/asm/dma-mapping.h 2009-08-06 10:31:02.000000000 +0300
3585 @@ -0,0 +1,34 @@
3586 +/*
3587 + * arch/ubicom32/include/asm/dma-mapping.h
3588 + * Generic dma-mapping.h for Ubicom32 architecture.
3589 + *
3590 + * (C) Copyright 2009, Ubicom, Inc.
3591 + *
3592 + * This file is part of the Ubicom32 Linux Kernel Port.
3593 + *
3594 + * The Ubicom32 Linux Kernel Port is free software: you can redistribute
3595 + * it and/or modify it under the terms of the GNU General Public License
3596 + * as published by the Free Software Foundation, either version 2 of the
3597 + * License, or (at your option) any later version.
3598 + *
3599 + * The Ubicom32 Linux Kernel Port is distributed in the hope that it
3600 + * will be useful, but WITHOUT ANY WARRANTY; without even the implied
3601 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
3602 + * the GNU General Public License for more details.
3603 + *
3604 + * You should have received a copy of the GNU General Public License
3605 + * along with the Ubicom32 Linux Kernel Port. If not,
3606 + * see <http://www.gnu.org/licenses/>.
3607 + *
3608 + * Ubicom32 implementation derived from (with many thanks):
3609 + * arch/m68knommu
3610 + * arch/blackfin
3611 + * arch/parisc
3612 + */
3613 +#ifndef _ASM_UBICOM32_DMA_MAPPING_H
3614 +#define _ASM_UBICOM32_DMA_MAPPING_H
3615 +
3616 +#include <linux/scatterlist.h>
3617 +#include <asm-generic/dma-mapping.h>
3618 +
3619 +#endif /* _ASM_UBICOM32_DMA_MAPPING_H */
3620 diff -ruN linux-2.6.28.10_o/arch/ubicom32/include/asm/elf.h linux-2.6.28.10