Merge branches 'sh/ftrace' and 'sh/stable-updates'
This commit is contained in:
Коммит
f686d8c11c
|
@ -184,8 +184,6 @@ usage should require reading the full document.
|
|||
!Finclude/net/mac80211.h ieee80211_ctstoself_get
|
||||
!Finclude/net/mac80211.h ieee80211_ctstoself_duration
|
||||
!Finclude/net/mac80211.h ieee80211_generic_frame_duration
|
||||
!Finclude/net/mac80211.h ieee80211_get_hdrlen_from_skb
|
||||
!Finclude/net/mac80211.h ieee80211_hdrlen
|
||||
!Finclude/net/mac80211.h ieee80211_wake_queue
|
||||
!Finclude/net/mac80211.h ieee80211_stop_queue
|
||||
!Finclude/net/mac80211.h ieee80211_wake_queues
|
||||
|
|
|
@ -25,7 +25,7 @@ use IO::Handle;
|
|||
"tda10046lifeview", "av7110", "dec2000t", "dec2540t",
|
||||
"dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004",
|
||||
"or51211", "or51132_qam", "or51132_vsb", "bluebird",
|
||||
"opera1", "cx231xx", "cx18", "cx23885", "pvrusb2" );
|
||||
"opera1", "cx231xx", "cx18", "cx23885", "pvrusb2", "mpc718" );
|
||||
|
||||
# Check args
|
||||
syntax() if (scalar(@ARGV) != 1);
|
||||
|
@ -381,6 +381,57 @@ sub cx18 {
|
|||
$allfiles;
|
||||
}
|
||||
|
||||
sub mpc718 {
|
||||
my $archive = 'Yuan MPC718 TV Tuner Card 2.13.10.1016.zip';
|
||||
my $url = "ftp://ftp.work.acer-euro.com/desktop/aspire_idea510/vista/Drivers/$archive";
|
||||
my $fwfile = "dvb-cx18-mpc718-mt352.fw";
|
||||
my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
|
||||
|
||||
checkstandard();
|
||||
wgetfile($archive, $url);
|
||||
unzip($archive, $tmpdir);
|
||||
|
||||
my $sourcefile = "$tmpdir/Yuan MPC718 TV Tuner Card 2.13.10.1016/mpc718_32bit/yuanrap.sys";
|
||||
my $found = 0;
|
||||
|
||||
open IN, '<', $sourcefile or die "Couldn't open $sourcefile to extract $fwfile data\n";
|
||||
binmode IN;
|
||||
open OUT, '>', $fwfile;
|
||||
binmode OUT;
|
||||
{
|
||||
# Block scope because we change the line terminator variable $/
|
||||
my $prevlen = 0;
|
||||
my $currlen;
|
||||
|
||||
# Buried in the data segment are 3 runs of almost identical
|
||||
# register-value pairs that end in 0x5d 0x01 which is a "TUNER GO"
|
||||
# command for the MT352.
|
||||
# Pull out the middle run (because it's easy) of register-value
|
||||
# pairs to make the "firmware" file.
|
||||
|
||||
local $/ = "\x5d\x01"; # MT352 "TUNER GO"
|
||||
|
||||
while (<IN>) {
|
||||
$currlen = length($_);
|
||||
if ($prevlen == $currlen && $currlen <= 64) {
|
||||
chop; chop; # Get rid of "TUNER GO"
|
||||
s/^\0\0//; # get rid of leading 00 00 if it's there
|
||||
printf OUT "$_";
|
||||
$found = 1;
|
||||
last;
|
||||
}
|
||||
$prevlen = $currlen;
|
||||
}
|
||||
}
|
||||
close OUT;
|
||||
close IN;
|
||||
if (!$found) {
|
||||
unlink $fwfile;
|
||||
die "Couldn't find valid register-value sequence in $sourcefile for $fwfile\n";
|
||||
}
|
||||
$fwfile;
|
||||
}
|
||||
|
||||
sub cx23885 {
|
||||
my $url = "http://linuxtv.org/downloads/firmware/";
|
||||
|
||||
|
|
|
@ -458,3 +458,13 @@ Why: Remove the old legacy 32bit machine check code. This has been
|
|||
but the old version has been kept around for easier testing. Note this
|
||||
doesn't impact the old P5 and WinChip machine check handlers.
|
||||
Who: Andi Kleen <andi@firstfloor.org>
|
||||
|
||||
----------------------------
|
||||
|
||||
What: lock_policy_rwsem_* and unlock_policy_rwsem_* will not be
|
||||
exported interface anymore.
|
||||
When: 2.6.33
|
||||
Why: cpu_policy_rwsem has a new cleaner definition making it local to
|
||||
cpufreq core and contained inside cpufreq.c. Other dependent
|
||||
drivers should not use it in order to safely avoid lockdep issues.
|
||||
Who: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
|
||||
|
|
|
@ -1720,8 +1720,8 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||
oprofile.cpu_type= Force an oprofile cpu type
|
||||
This might be useful if you have an older oprofile
|
||||
userland or if you want common events.
|
||||
Format: { archperfmon }
|
||||
archperfmon: [X86] Force use of architectural
|
||||
Format: { arch_perfmon }
|
||||
arch_perfmon: [X86] Force use of architectural
|
||||
perfmon on Intel CPUs instead of the
|
||||
CPU specific event set.
|
||||
|
||||
|
|
|
@ -66,3 +66,4 @@
|
|||
68 -> Terratec AV350 (em2860) [0ccd:0084]
|
||||
69 -> KWorld ATSC 315U HDTV TV Box (em2882) [eb1a:a313]
|
||||
70 -> Evga inDtube (em2882)
|
||||
71 -> Silvercrest Webcam 1.3mpix (em2820/em2840)
|
||||
|
|
10
MAINTAINERS
10
MAINTAINERS
|
@ -5803,17 +5803,17 @@ P: Jiri Kosina
|
|||
M: trivial@kernel.org
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial.git
|
||||
S: Maintained
|
||||
F: drivers/char/tty_*
|
||||
F: drivers/serial/serial_core.c
|
||||
F: include/linux/serial_core.h
|
||||
F: include/linux/serial.h
|
||||
F: include/linux/tty.h
|
||||
|
||||
TTY LAYER
|
||||
P: Alan Cox
|
||||
M: alan@lxorguk.ukuu.org.uk
|
||||
S: Maintained
|
||||
T: stgit http://zeniv.linux.org.uk/~alan/ttydev/
|
||||
F: drivers/char/tty_*
|
||||
F: drivers/serial/serial_core.c
|
||||
F: include/linux/serial_core.h
|
||||
F: include/linux/serial.h
|
||||
F: include/linux/tty.h
|
||||
|
||||
TULIP NETWORK DRIVERS
|
||||
P: Grant Grundler
|
||||
|
|
|
@ -37,6 +37,7 @@ struct thread_info {
|
|||
.task = &tsk, \
|
||||
.exec_domain = &default_exec_domain, \
|
||||
.addr_limit = KERNEL_DS, \
|
||||
.preempt_count = INIT_PREEMPT_COUNT, \
|
||||
.restart_block = { \
|
||||
.fn = do_no_restart_syscall, \
|
||||
}, \
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,7 +1,7 @@
|
|||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.30-rc6
|
||||
# Mon Jun 1 09:18:22 2009
|
||||
# Linux kernel version: 2.6.31-rc1
|
||||
# Thu Jul 2 00:16:59 2009
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||
|
@ -9,7 +9,7 @@ CONFIG_GENERIC_GPIO=y
|
|||
CONFIG_GENERIC_TIME=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||
CONFIG_MMU=y
|
||||
# CONFIG_NO_IOPORT is not set
|
||||
CONFIG_HAVE_TCM=y
|
||||
CONFIG_GENERIC_HARDIRQS=y
|
||||
CONFIG_STACKTRACE_SUPPORT=y
|
||||
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
|
||||
|
@ -18,13 +18,12 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
|||
CONFIG_HARDIRQS_SW_RESEND=y
|
||||
CONFIG_GENERIC_IRQ_PROBE=y
|
||||
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
|
||||
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
|
||||
CONFIG_GENERIC_HWEIGHT=y
|
||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||
CONFIG_VECTORS_BASE=0xffff0000
|
||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||
CONFIG_CONSTRUCTORS=y
|
||||
|
||||
#
|
||||
# General setup
|
||||
|
@ -68,7 +67,6 @@ CONFIG_SYSCTL_SYSCALL=y
|
|||
CONFIG_KALLSYMS=y
|
||||
# CONFIG_KALLSYMS_ALL is not set
|
||||
# CONFIG_KALLSYMS_EXTRA_PASS is not set
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
CONFIG_HOTPLUG=y
|
||||
CONFIG_PRINTK=y
|
||||
CONFIG_BUG=y
|
||||
|
@ -81,8 +79,13 @@ CONFIG_TIMERFD=y
|
|||
CONFIG_EVENTFD=y
|
||||
CONFIG_SHMEM=y
|
||||
# CONFIG_AIO is not set
|
||||
|
||||
#
|
||||
# Performance Counters
|
||||
#
|
||||
# CONFIG_VM_EVENT_COUNTERS is not set
|
||||
CONFIG_SLUB_DEBUG=y
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
CONFIG_COMPAT_BRK=y
|
||||
# CONFIG_SLAB is not set
|
||||
CONFIG_SLUB=y
|
||||
|
@ -94,6 +97,10 @@ CONFIG_HAVE_OPROFILE=y
|
|||
CONFIG_HAVE_KPROBES=y
|
||||
CONFIG_HAVE_KRETPROBES=y
|
||||
CONFIG_HAVE_CLK=y
|
||||
|
||||
#
|
||||
# GCOV-based kernel profiling
|
||||
#
|
||||
# CONFIG_SLOW_WORK is not set
|
||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
||||
CONFIG_SLABINFO=y
|
||||
|
@ -106,7 +113,7 @@ CONFIG_MODULE_UNLOAD=y
|
|||
# CONFIG_MODVERSIONS is not set
|
||||
# CONFIG_MODULE_SRCVERSION_ALL is not set
|
||||
CONFIG_BLOCK=y
|
||||
# CONFIG_LBD is not set
|
||||
CONFIG_LBDAF=y
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
# CONFIG_BLK_DEV_INTEGRITY is not set
|
||||
|
||||
|
@ -138,9 +145,9 @@ CONFIG_DEFAULT_IOSCHED="deadline"
|
|||
# CONFIG_ARCH_EP93XX is not set
|
||||
# CONFIG_ARCH_FOOTBRIDGE is not set
|
||||
# CONFIG_ARCH_MXC is not set
|
||||
# CONFIG_ARCH_STMP3XXX is not set
|
||||
# CONFIG_ARCH_NETX is not set
|
||||
# CONFIG_ARCH_H720X is not set
|
||||
# CONFIG_ARCH_IMX is not set
|
||||
# CONFIG_ARCH_IOP13XX is not set
|
||||
# CONFIG_ARCH_IOP32X is not set
|
||||
# CONFIG_ARCH_IOP33X is not set
|
||||
|
@ -216,8 +223,8 @@ CONFIG_ARM_THUMB=y
|
|||
# CONFIG_CPU_DCACHE_DISABLE is not set
|
||||
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
|
||||
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
|
||||
# CONFIG_OUTER_CACHE is not set
|
||||
CONFIG_ARM_VIC=y
|
||||
CONFIG_ARM_VIC_NR=2
|
||||
CONFIG_COMMON_CLKDEV=y
|
||||
|
||||
#
|
||||
|
@ -243,7 +250,6 @@ CONFIG_PREEMPT=y
|
|||
CONFIG_HZ=100
|
||||
CONFIG_AEABI=y
|
||||
CONFIG_OABI_COMPAT=y
|
||||
CONFIG_ARCH_FLATMEM_HAS_HOLES=y
|
||||
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
|
||||
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
|
||||
# CONFIG_HIGHMEM is not set
|
||||
|
@ -258,17 +264,18 @@ CONFIG_SPLIT_PTLOCK_CPUS=4096
|
|||
# CONFIG_PHYS_ADDR_T_64BIT is not set
|
||||
CONFIG_ZONE_DMA_FLAG=0
|
||||
CONFIG_VIRT_TO_BUS=y
|
||||
CONFIG_UNEVICTABLE_LRU=y
|
||||
CONFIG_HAVE_MLOCK=y
|
||||
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
|
||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
||||
CONFIG_ALIGNMENT_TRAP=y
|
||||
# CONFIG_UACCESS_WITH_MEMCPY is not set
|
||||
|
||||
#
|
||||
# Boot options
|
||||
#
|
||||
CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||
CONFIG_CMDLINE="root=/dev/mtdblock2 rw rootfstype=yaffs2 console=ttyAMA0,115200n8 ab3100.force=0,0x48 mtdparts=u300nand:128k@0x0(bootrecords)ro,8064k@128k(free)ro,253952k@8192k(platform) lpj=515072"
|
||||
CONFIG_CMDLINE="root=/dev/ram0 rw rootfstype=rootfs console=ttyAMA0,115200n8 lpj=515072"
|
||||
# CONFIG_XIP_KERNEL is not set
|
||||
# CONFIG_KEXEC is not set
|
||||
|
||||
|
@ -359,6 +366,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
|
|||
# CONFIG_ECONET is not set
|
||||
# CONFIG_WAN_ROUTER is not set
|
||||
# CONFIG_PHONET is not set
|
||||
# CONFIG_IEEE802154 is not set
|
||||
# CONFIG_NET_SCHED is not set
|
||||
# CONFIG_DCB is not set
|
||||
|
||||
|
@ -497,6 +505,7 @@ CONFIG_MISC_DEVICES=y
|
|||
# CONFIG_EEPROM_AT24 is not set
|
||||
# CONFIG_EEPROM_AT25 is not set
|
||||
# CONFIG_EEPROM_LEGACY is not set
|
||||
# CONFIG_EEPROM_MAX6875 is not set
|
||||
# CONFIG_EEPROM_93CX6 is not set
|
||||
CONFIG_HAVE_IDE=y
|
||||
# CONFIG_IDE is not set
|
||||
|
@ -538,6 +547,7 @@ CONFIG_INPUT_KEYBOARD=y
|
|||
# CONFIG_KEYBOARD_XTKBD is not set
|
||||
# CONFIG_KEYBOARD_NEWTON is not set
|
||||
# CONFIG_KEYBOARD_STOWAWAY is not set
|
||||
# CONFIG_KEYBOARD_LM8323 is not set
|
||||
# CONFIG_KEYBOARD_GPIO is not set
|
||||
# CONFIG_INPUT_MOUSE is not set
|
||||
# CONFIG_INPUT_JOYSTICK is not set
|
||||
|
@ -597,9 +607,11 @@ CONFIG_I2C_HELPER_AUTO=y
|
|||
#
|
||||
# I2C system bus drivers (mostly embedded / system-on-chip)
|
||||
#
|
||||
# CONFIG_I2C_DESIGNWARE is not set
|
||||
# CONFIG_I2C_GPIO is not set
|
||||
# CONFIG_I2C_OCORES is not set
|
||||
# CONFIG_I2C_SIMTEC is not set
|
||||
CONFIG_I2C_STU300=y
|
||||
|
||||
#
|
||||
# External I2C/SMBus adapter drivers
|
||||
|
@ -620,7 +632,6 @@ CONFIG_I2C_HELPER_AUTO=y
|
|||
# CONFIG_SENSORS_PCF8574 is not set
|
||||
# CONFIG_PCF8575 is not set
|
||||
# CONFIG_SENSORS_PCA9539 is not set
|
||||
# CONFIG_SENSORS_MAX6875 is not set
|
||||
# CONFIG_SENSORS_TSL2550 is not set
|
||||
# CONFIG_I2C_DEBUG_CORE is not set
|
||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||
|
@ -635,6 +646,7 @@ CONFIG_SPI_MASTER=y
|
|||
#
|
||||
# CONFIG_SPI_BITBANG is not set
|
||||
# CONFIG_SPI_GPIO is not set
|
||||
CONFIG_SPI_PL022=y
|
||||
|
||||
#
|
||||
# SPI Protocol Masters
|
||||
|
@ -647,6 +659,7 @@ CONFIG_POWER_SUPPLY=y
|
|||
# CONFIG_PDA_POWER is not set
|
||||
# CONFIG_BATTERY_DS2760 is not set
|
||||
# CONFIG_BATTERY_BQ27x00 is not set
|
||||
# CONFIG_BATTERY_MAX17040 is not set
|
||||
# CONFIG_HWMON is not set
|
||||
# CONFIG_THERMAL is not set
|
||||
# CONFIG_THERMAL_HWMON is not set
|
||||
|
@ -657,6 +670,7 @@ CONFIG_WATCHDOG=y
|
|||
# Watchdog Device Drivers
|
||||
#
|
||||
# CONFIG_SOFT_WATCHDOG is not set
|
||||
CONFIG_COH901327_WATCHDOG=y
|
||||
CONFIG_SSB_POSSIBLE=y
|
||||
|
||||
#
|
||||
|
@ -678,22 +692,9 @@ CONFIG_SSB_POSSIBLE=y
|
|||
# CONFIG_MFD_WM8400 is not set
|
||||
# CONFIG_MFD_WM8350_I2C is not set
|
||||
# CONFIG_MFD_PCF50633 is not set
|
||||
|
||||
#
|
||||
# Multimedia devices
|
||||
#
|
||||
|
||||
#
|
||||
# Multimedia core support
|
||||
#
|
||||
# CONFIG_VIDEO_DEV is not set
|
||||
# CONFIG_DVB_CORE is not set
|
||||
# CONFIG_VIDEO_MEDIA is not set
|
||||
|
||||
#
|
||||
# Multimedia drivers
|
||||
#
|
||||
# CONFIG_DAB is not set
|
||||
CONFIG_AB3100_CORE=y
|
||||
# CONFIG_EZX_PCAP is not set
|
||||
# CONFIG_MEDIA_SUPPORT is not set
|
||||
|
||||
#
|
||||
# Graphics support
|
||||
|
@ -760,6 +761,11 @@ CONFIG_SND_JACK=y
|
|||
# CONFIG_SND_VERBOSE_PROCFS is not set
|
||||
# CONFIG_SND_VERBOSE_PRINTK is not set
|
||||
# CONFIG_SND_DEBUG is not set
|
||||
# CONFIG_SND_RAWMIDI_SEQ is not set
|
||||
# CONFIG_SND_OPL3_LIB_SEQ is not set
|
||||
# CONFIG_SND_OPL4_LIB_SEQ is not set
|
||||
# CONFIG_SND_SBAWE_SEQ is not set
|
||||
# CONFIG_SND_EMU10K1_SEQ is not set
|
||||
# CONFIG_SND_DRIVERS is not set
|
||||
# CONFIG_SND_ARM is not set
|
||||
# CONFIG_SND_SPI is not set
|
||||
|
@ -770,7 +776,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=y
|
|||
# CONFIG_HID_SUPPORT is not set
|
||||
# CONFIG_USB_SUPPORT is not set
|
||||
CONFIG_MMC=y
|
||||
# CONFIG_MMC_DEBUG is not set
|
||||
CONFIG_MMC_DEBUG=y
|
||||
# CONFIG_MMC_UNSAFE_RESUME is not set
|
||||
|
||||
#
|
||||
|
@ -797,7 +803,7 @@ CONFIG_LEDS_CLASS=y
|
|||
#
|
||||
# CONFIG_LEDS_PCA9532 is not set
|
||||
# CONFIG_LEDS_GPIO is not set
|
||||
# CONFIG_LEDS_LP5521 is not set
|
||||
# CONFIG_LEDS_LP3944 is not set
|
||||
# CONFIG_LEDS_PCA955X is not set
|
||||
# CONFIG_LEDS_DAC124S085 is not set
|
||||
# CONFIG_LEDS_BD2802 is not set
|
||||
|
@ -845,6 +851,7 @@ CONFIG_RTC_INTF_DEV=y
|
|||
# CONFIG_RTC_DRV_S35390A is not set
|
||||
# CONFIG_RTC_DRV_FM3130 is not set
|
||||
# CONFIG_RTC_DRV_RX8581 is not set
|
||||
# CONFIG_RTC_DRV_RX8025 is not set
|
||||
|
||||
#
|
||||
# SPI RTC drivers
|
||||
|
@ -887,7 +894,10 @@ CONFIG_REGULATOR=y
|
|||
# CONFIG_REGULATOR_DEBUG is not set
|
||||
# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
|
||||
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
|
||||
# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
|
||||
# CONFIG_REGULATOR_BQ24022 is not set
|
||||
# CONFIG_REGULATOR_MAX1586 is not set
|
||||
# CONFIG_REGULATOR_LP3971 is not set
|
||||
# CONFIG_UIO is not set
|
||||
# CONFIG_STAGING is not set
|
||||
|
||||
|
@ -900,16 +910,20 @@ CONFIG_REGULATOR=y
|
|||
# CONFIG_REISERFS_FS is not set
|
||||
# CONFIG_JFS_FS is not set
|
||||
# CONFIG_FS_POSIX_ACL is not set
|
||||
CONFIG_FILE_LOCKING=y
|
||||
# CONFIG_XFS_FS is not set
|
||||
# CONFIG_GFS2_FS is not set
|
||||
# CONFIG_OCFS2_FS is not set
|
||||
# CONFIG_BTRFS_FS is not set
|
||||
CONFIG_FILE_LOCKING=y
|
||||
CONFIG_FSNOTIFY=y
|
||||
# CONFIG_DNOTIFY is not set
|
||||
# CONFIG_INOTIFY is not set
|
||||
CONFIG_INOTIFY_USER=y
|
||||
# CONFIG_QUOTA is not set
|
||||
# CONFIG_AUTOFS_FS is not set
|
||||
# CONFIG_AUTOFS4_FS is not set
|
||||
CONFIG_FUSE_FS=y
|
||||
# CONFIG_CUSE is not set
|
||||
|
||||
#
|
||||
# Caches
|
||||
|
@ -1033,6 +1047,7 @@ CONFIG_TIMER_STATS=y
|
|||
# CONFIG_DEBUG_OBJECTS is not set
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
# CONFIG_SLUB_STATS is not set
|
||||
# CONFIG_DEBUG_KMEMLEAK is not set
|
||||
# CONFIG_DEBUG_PREEMPT is not set
|
||||
# CONFIG_DEBUG_RT_MUTEXES is not set
|
||||
# CONFIG_RT_MUTEX_TESTER is not set
|
||||
|
@ -1063,18 +1078,16 @@ CONFIG_DEBUG_INFO=y
|
|||
# CONFIG_PAGE_POISONING is not set
|
||||
CONFIG_HAVE_FUNCTION_TRACER=y
|
||||
CONFIG_TRACING_SUPPORT=y
|
||||
|
||||
#
|
||||
# Tracers
|
||||
#
|
||||
CONFIG_FTRACE=y
|
||||
# CONFIG_FUNCTION_TRACER is not set
|
||||
# CONFIG_IRQSOFF_TRACER is not set
|
||||
# CONFIG_PREEMPT_TRACER is not set
|
||||
# CONFIG_SCHED_TRACER is not set
|
||||
# CONFIG_CONTEXT_SWITCH_TRACER is not set
|
||||
# CONFIG_EVENT_TRACER is not set
|
||||
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
|
||||
# CONFIG_BOOT_TRACER is not set
|
||||
# CONFIG_TRACE_BRANCH_PROFILING is not set
|
||||
CONFIG_BRANCH_PROFILE_NONE=y
|
||||
# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
|
||||
# CONFIG_PROFILE_ALL_BRANCHES is not set
|
||||
# CONFIG_STACK_TRACER is not set
|
||||
# CONFIG_KMEMTRACE is not set
|
||||
# CONFIG_WORKQUEUE_TRACER is not set
|
||||
|
@ -1109,6 +1122,7 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
|
|||
# CONFIG_CRC32 is not set
|
||||
# CONFIG_CRC7 is not set
|
||||
# CONFIG_LIBCRC32C is not set
|
||||
CONFIG_GENERIC_ALLOCATOR=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT=y
|
||||
CONFIG_HAS_DMA=y
|
||||
|
|
|
@ -285,15 +285,6 @@ extern struct page *empty_zero_page;
|
|||
#define pte_young(pte) (pte_val(pte) & L_PTE_YOUNG)
|
||||
#define pte_special(pte) (0)
|
||||
|
||||
/*
|
||||
* The following only works if pte_present() is not true.
|
||||
*/
|
||||
#define pte_file(pte) (pte_val(pte) & L_PTE_FILE)
|
||||
#define pte_to_pgoff(x) (pte_val(x) >> 2)
|
||||
#define pgoff_to_pte(x) __pte(((x) << 2) | L_PTE_FILE)
|
||||
|
||||
#define PTE_FILE_MAX_BITS 30
|
||||
|
||||
#define PTE_BIT_FUNC(fn,op) \
|
||||
static inline pte_t pte_##fn(pte_t pte) { pte_val(pte) op; return pte; }
|
||||
|
||||
|
@ -384,16 +375,50 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
|
|||
|
||||
extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
|
||||
|
||||
/* Encode and decode a swap entry.
|
||||
/*
|
||||
* Encode and decode a swap entry. Swap entries are stored in the Linux
|
||||
* page tables as follows:
|
||||
*
|
||||
* We support up to 32GB of swap on 4k machines
|
||||
* 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
|
||||
* 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
|
||||
* <--------------- offset --------------------> <--- type --> 0 0
|
||||
*
|
||||
* This gives us up to 127 swap files and 32GB per swap file. Note that
|
||||
* the offset field is always non-zero.
|
||||
*/
|
||||
#define __swp_type(x) (((x).val >> 2) & 0x7f)
|
||||
#define __swp_offset(x) ((x).val >> 9)
|
||||
#define __swp_entry(type,offset) ((swp_entry_t) { ((type) << 2) | ((offset) << 9) })
|
||||
#define __SWP_TYPE_SHIFT 2
|
||||
#define __SWP_TYPE_BITS 7
|
||||
#define __SWP_TYPE_MASK ((1 << __SWP_TYPE_BITS) - 1)
|
||||
#define __SWP_OFFSET_SHIFT (__SWP_TYPE_BITS + __SWP_TYPE_SHIFT)
|
||||
|
||||
#define __swp_type(x) (((x).val >> __SWP_TYPE_SHIFT) & __SWP_TYPE_MASK)
|
||||
#define __swp_offset(x) ((x).val >> __SWP_OFFSET_SHIFT)
|
||||
#define __swp_entry(type,offset) ((swp_entry_t) { ((type) << __SWP_TYPE_SHIFT) | ((offset) << __SWP_OFFSET_SHIFT) })
|
||||
|
||||
#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
|
||||
#define __swp_entry_to_pte(swp) ((pte_t) { (swp).val })
|
||||
|
||||
/*
|
||||
* It is an error for the kernel to have more swap files than we can
|
||||
* encode in the PTEs. This ensures that we know when MAX_SWAPFILES
|
||||
* is increased beyond what we presently support.
|
||||
*/
|
||||
#define MAX_SWAPFILES_CHECK() BUILD_BUG_ON(MAX_SWAPFILES_SHIFT > __SWP_TYPE_BITS)
|
||||
|
||||
/*
|
||||
* Encode and decode a file entry. File entries are stored in the Linux
|
||||
* page tables as follows:
|
||||
*
|
||||
* 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
|
||||
* 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
|
||||
* <------------------------ offset -------------------------> 1 0
|
||||
*/
|
||||
#define pte_file(pte) (pte_val(pte) & L_PTE_FILE)
|
||||
#define pte_to_pgoff(x) (pte_val(x) >> 2)
|
||||
#define pgoff_to_pte(x) __pte(((x) << 2) | L_PTE_FILE)
|
||||
|
||||
#define PTE_FILE_MAX_BITS 30
|
||||
|
||||
/* Needs to be defined here and not in linux/mm.h, as it is arch dependent */
|
||||
/* FIXME: this is not correct */
|
||||
#define kern_addr_valid(addr) (1)
|
||||
|
|
|
@ -73,7 +73,7 @@ struct thread_info {
|
|||
.task = &tsk, \
|
||||
.exec_domain = &default_exec_domain, \
|
||||
.flags = 0, \
|
||||
.preempt_count = 1, \
|
||||
.preempt_count = INIT_PREEMPT_COUNT, \
|
||||
.addr_limit = KERNEL_DS, \
|
||||
.cpu_domain = domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \
|
||||
domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/timer.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/seq_file.h>
|
||||
|
||||
#include <asm/clkdev.h>
|
||||
#include <mach/hardware.h>
|
||||
|
@ -702,6 +703,7 @@ static struct clk amba_clk = {
|
|||
.rate = 52000000, /* this varies! */
|
||||
.hw_ctrld = true,
|
||||
.reset = false,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(amba_clk.lock),
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -720,6 +722,7 @@ static struct clk cpu_clk = {
|
|||
.set_rate = clk_set_rate_cpuclk,
|
||||
.get_rate = clk_get_rate_cpuclk,
|
||||
.round_rate = clk_round_rate_cpuclk,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(cpu_clk.lock),
|
||||
};
|
||||
|
||||
static struct clk nandif_clk = {
|
||||
|
@ -732,6 +735,7 @@ static struct clk nandif_clk = {
|
|||
.clk_val = U300_SYSCON_SBCER_NANDIF_CLK_EN,
|
||||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(nandif_clk.lock),
|
||||
};
|
||||
|
||||
static struct clk semi_clk = {
|
||||
|
@ -744,6 +748,7 @@ static struct clk semi_clk = {
|
|||
.clk_val = U300_SYSCON_SBCER_SEMI_CLK_EN,
|
||||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(semi_clk.lock),
|
||||
};
|
||||
|
||||
#ifdef CONFIG_MACH_U300_BS335
|
||||
|
@ -758,6 +763,7 @@ static struct clk isp_clk = {
|
|||
.clk_val = U300_SYSCON_SBCER_ISP_CLK_EN,
|
||||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(isp_clk.lock),
|
||||
};
|
||||
|
||||
static struct clk cds_clk = {
|
||||
|
@ -771,6 +777,7 @@ static struct clk cds_clk = {
|
|||
.clk_val = U300_SYSCON_SBCER_CDS_CLK_EN,
|
||||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(cds_clk.lock),
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -785,6 +792,7 @@ static struct clk dma_clk = {
|
|||
.clk_val = U300_SYSCON_SBCER_DMAC_CLK_EN,
|
||||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(dma_clk.lock),
|
||||
};
|
||||
|
||||
static struct clk aaif_clk = {
|
||||
|
@ -798,6 +806,7 @@ static struct clk aaif_clk = {
|
|||
.clk_val = U300_SYSCON_SBCER_AAIF_CLK_EN,
|
||||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(aaif_clk.lock),
|
||||
};
|
||||
|
||||
static struct clk apex_clk = {
|
||||
|
@ -811,6 +820,7 @@ static struct clk apex_clk = {
|
|||
.clk_val = U300_SYSCON_SBCER_APEX_CLK_EN,
|
||||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(apex_clk.lock),
|
||||
};
|
||||
|
||||
static struct clk video_enc_clk = {
|
||||
|
@ -825,6 +835,7 @@ static struct clk video_enc_clk = {
|
|||
.clk_val = U300_SYSCON_SBCER_VIDEO_ENC_CLK_EN,
|
||||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(video_enc_clk.lock),
|
||||
};
|
||||
|
||||
static struct clk xgam_clk = {
|
||||
|
@ -839,6 +850,7 @@ static struct clk xgam_clk = {
|
|||
.get_rate = clk_get_rate_xgamclk,
|
||||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(xgam_clk.lock),
|
||||
};
|
||||
|
||||
/* This clock is used to activate the video encoder */
|
||||
|
@ -854,6 +866,7 @@ static struct clk ahb_clk = {
|
|||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.get_rate = clk_get_rate_ahb_clk,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(ahb_clk.lock),
|
||||
};
|
||||
|
||||
|
||||
|
@ -871,6 +884,7 @@ static struct clk ahb_subsys_clk = {
|
|||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.get_rate = clk_get_rate_ahb_clk,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(ahb_subsys_clk.lock),
|
||||
};
|
||||
|
||||
static struct clk intcon_clk = {
|
||||
|
@ -882,6 +896,8 @@ static struct clk intcon_clk = {
|
|||
.res_reg = U300_SYSCON_VBASE + U300_SYSCON_RRR,
|
||||
.res_mask = U300_SYSCON_RRR_INTCON_RESET_EN,
|
||||
/* INTCON can be reset but not clock-gated */
|
||||
.lock = __SPIN_LOCK_UNLOCKED(intcon_clk.lock),
|
||||
|
||||
};
|
||||
|
||||
static struct clk mspro_clk = {
|
||||
|
@ -895,6 +911,7 @@ static struct clk mspro_clk = {
|
|||
.clk_val = U300_SYSCON_SBCER_MSPRO_CLK_EN,
|
||||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(mspro_clk.lock),
|
||||
};
|
||||
|
||||
static struct clk emif_clk = {
|
||||
|
@ -909,6 +926,7 @@ static struct clk emif_clk = {
|
|||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.get_rate = clk_get_rate_emif_clk,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(emif_clk.lock),
|
||||
};
|
||||
|
||||
|
||||
|
@ -926,6 +944,7 @@ static struct clk fast_clk = {
|
|||
.clk_val = U300_SYSCON_SBCER_FAST_BRIDGE_CLK_EN,
|
||||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(fast_clk.lock),
|
||||
};
|
||||
|
||||
static struct clk mmcsd_clk = {
|
||||
|
@ -942,6 +961,7 @@ static struct clk mmcsd_clk = {
|
|||
.round_rate = clk_round_rate_mclk,
|
||||
.disable = syscon_clk_disable,
|
||||
.enable = syscon_clk_enable,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(mmcsd_clk.lock),
|
||||
};
|
||||
|
||||
static struct clk i2s0_clk = {
|
||||
|
@ -956,6 +976,7 @@ static struct clk i2s0_clk = {
|
|||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.get_rate = clk_get_rate_i2s_i2c_spi,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(i2s0_clk.lock),
|
||||
};
|
||||
|
||||
static struct clk i2s1_clk = {
|
||||
|
@ -970,6 +991,7 @@ static struct clk i2s1_clk = {
|
|||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.get_rate = clk_get_rate_i2s_i2c_spi,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(i2s1_clk.lock),
|
||||
};
|
||||
|
||||
static struct clk i2c0_clk = {
|
||||
|
@ -984,6 +1006,7 @@ static struct clk i2c0_clk = {
|
|||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.get_rate = clk_get_rate_i2s_i2c_spi,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(i2c0_clk.lock),
|
||||
};
|
||||
|
||||
static struct clk i2c1_clk = {
|
||||
|
@ -998,6 +1021,7 @@ static struct clk i2c1_clk = {
|
|||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.get_rate = clk_get_rate_i2s_i2c_spi,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(i2c1_clk.lock),
|
||||
};
|
||||
|
||||
static struct clk spi_clk = {
|
||||
|
@ -1012,6 +1036,7 @@ static struct clk spi_clk = {
|
|||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.get_rate = clk_get_rate_i2s_i2c_spi,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(spi_clk.lock),
|
||||
};
|
||||
|
||||
#ifdef CONFIG_MACH_U300_BS335
|
||||
|
@ -1026,6 +1051,7 @@ static struct clk uart1_clk = {
|
|||
.clk_val = U300_SYSCON_SBCER_UART1_CLK_EN,
|
||||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(uart1_clk.lock),
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -1044,6 +1070,7 @@ static struct clk slow_clk = {
|
|||
.clk_val = U300_SYSCON_SBCER_SLOW_BRIDGE_CLK_EN,
|
||||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(slow_clk.lock),
|
||||
};
|
||||
|
||||
/* TODO: implement SYSCON clock? */
|
||||
|
@ -1055,6 +1082,7 @@ static struct clk wdog_clk = {
|
|||
.rate = 32768,
|
||||
.reset = false,
|
||||
/* This is always on, cannot be enabled/disabled or reset */
|
||||
.lock = __SPIN_LOCK_UNLOCKED(wdog_clk.lock),
|
||||
};
|
||||
|
||||
/* This one is hardwired to PLL13 */
|
||||
|
@ -1069,6 +1097,7 @@ static struct clk uart_clk = {
|
|||
.clk_val = U300_SYSCON_SBCER_UART_CLK_EN,
|
||||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(uart_clk.lock),
|
||||
};
|
||||
|
||||
static struct clk keypad_clk = {
|
||||
|
@ -1082,6 +1111,7 @@ static struct clk keypad_clk = {
|
|||
.clk_val = U300_SYSCON_SBCER_KEYPAD_CLK_EN,
|
||||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(keypad_clk.lock),
|
||||
};
|
||||
|
||||
static struct clk gpio_clk = {
|
||||
|
@ -1095,6 +1125,7 @@ static struct clk gpio_clk = {
|
|||
.clk_val = U300_SYSCON_SBCER_GPIO_CLK_EN,
|
||||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(gpio_clk.lock),
|
||||
};
|
||||
|
||||
static struct clk rtc_clk = {
|
||||
|
@ -1106,6 +1137,7 @@ static struct clk rtc_clk = {
|
|||
.res_reg = U300_SYSCON_VBASE + U300_SYSCON_RSR,
|
||||
.res_mask = U300_SYSCON_RSR_RTC_RESET_EN,
|
||||
/* This clock is always on, cannot be enabled/disabled */
|
||||
.lock = __SPIN_LOCK_UNLOCKED(rtc_clk.lock),
|
||||
};
|
||||
|
||||
static struct clk bustr_clk = {
|
||||
|
@ -1119,6 +1151,7 @@ static struct clk bustr_clk = {
|
|||
.clk_val = U300_SYSCON_SBCER_BTR_CLK_EN,
|
||||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(bustr_clk.lock),
|
||||
};
|
||||
|
||||
static struct clk evhist_clk = {
|
||||
|
@ -1132,6 +1165,7 @@ static struct clk evhist_clk = {
|
|||
.clk_val = U300_SYSCON_SBCER_EH_CLK_EN,
|
||||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(evhist_clk.lock),
|
||||
};
|
||||
|
||||
static struct clk timer_clk = {
|
||||
|
@ -1145,6 +1179,7 @@ static struct clk timer_clk = {
|
|||
.clk_val = U300_SYSCON_SBCER_ACC_TMR_CLK_EN,
|
||||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(timer_clk.lock),
|
||||
};
|
||||
|
||||
static struct clk app_timer_clk = {
|
||||
|
@ -1158,6 +1193,7 @@ static struct clk app_timer_clk = {
|
|||
.clk_val = U300_SYSCON_SBCER_APP_TMR_CLK_EN,
|
||||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(app_timer_clk.lock),
|
||||
};
|
||||
|
||||
#ifdef CONFIG_MACH_U300_BS335
|
||||
|
@ -1172,6 +1208,7 @@ static struct clk ppm_clk = {
|
|||
.clk_val = U300_SYSCON_SBCER_PPM_CLK_EN,
|
||||
.enable = syscon_clk_enable,
|
||||
.disable = syscon_clk_disable,
|
||||
.lock = __SPIN_LOCK_UNLOCKED(ppm_clk.lock),
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -1187,53 +1224,53 @@ static struct clk ppm_clk = {
|
|||
*/
|
||||
static struct clk_lookup lookups[] = {
|
||||
/* Connected directly to the AMBA bus */
|
||||
DEF_LOOKUP("amba", &amba_clk),
|
||||
DEF_LOOKUP("cpu", &cpu_clk),
|
||||
DEF_LOOKUP("nandif", &nandif_clk),
|
||||
DEF_LOOKUP("semi", &semi_clk),
|
||||
DEF_LOOKUP("amba", &amba_clk),
|
||||
DEF_LOOKUP("cpu", &cpu_clk),
|
||||
DEF_LOOKUP("fsmc", &nandif_clk),
|
||||
DEF_LOOKUP("semi", &semi_clk),
|
||||
#ifdef CONFIG_MACH_U300_BS335
|
||||
DEF_LOOKUP("isp", &isp_clk),
|
||||
DEF_LOOKUP("cds", &cds_clk),
|
||||
DEF_LOOKUP("isp", &isp_clk),
|
||||
DEF_LOOKUP("cds", &cds_clk),
|
||||
#endif
|
||||
DEF_LOOKUP("dma", &dma_clk),
|
||||
DEF_LOOKUP("aaif", &aaif_clk),
|
||||
DEF_LOOKUP("apex", &apex_clk),
|
||||
DEF_LOOKUP("dma", &dma_clk),
|
||||
DEF_LOOKUP("msl", &aaif_clk),
|
||||
DEF_LOOKUP("apex", &apex_clk),
|
||||
DEF_LOOKUP("video_enc", &video_enc_clk),
|
||||
DEF_LOOKUP("xgam", &xgam_clk),
|
||||
DEF_LOOKUP("ahb", &ahb_clk),
|
||||
DEF_LOOKUP("xgam", &xgam_clk),
|
||||
DEF_LOOKUP("ahb", &ahb_clk),
|
||||
/* AHB bridge clocks */
|
||||
DEF_LOOKUP("ahb", &ahb_subsys_clk),
|
||||
DEF_LOOKUP("intcon", &intcon_clk),
|
||||
DEF_LOOKUP("mspro", &mspro_clk),
|
||||
DEF_LOOKUP("pl172", &emif_clk),
|
||||
DEF_LOOKUP("ahb_subsys", &ahb_subsys_clk),
|
||||
DEF_LOOKUP("intcon", &intcon_clk),
|
||||
DEF_LOOKUP("mspro", &mspro_clk),
|
||||
DEF_LOOKUP("pl172", &emif_clk),
|
||||
/* FAST bridge clocks */
|
||||
DEF_LOOKUP("fast", &fast_clk),
|
||||
DEF_LOOKUP("mmci", &mmcsd_clk),
|
||||
DEF_LOOKUP("fast", &fast_clk),
|
||||
DEF_LOOKUP("mmci", &mmcsd_clk),
|
||||
/*
|
||||
* The .0 and .1 identifiers on these comes from the platform device
|
||||
* .id field and are assigned when the platform devices are registered.
|
||||
*/
|
||||
DEF_LOOKUP("i2s.0", &i2s0_clk),
|
||||
DEF_LOOKUP("i2s.1", &i2s1_clk),
|
||||
DEF_LOOKUP("stddci2c.0", &i2c0_clk),
|
||||
DEF_LOOKUP("stddci2c.1", &i2c1_clk),
|
||||
DEF_LOOKUP("pl022", &spi_clk),
|
||||
DEF_LOOKUP("i2s.0", &i2s0_clk),
|
||||
DEF_LOOKUP("i2s.1", &i2s1_clk),
|
||||
DEF_LOOKUP("stu300.0", &i2c0_clk),
|
||||
DEF_LOOKUP("stu300.1", &i2c1_clk),
|
||||
DEF_LOOKUP("pl022", &spi_clk),
|
||||
#ifdef CONFIG_MACH_U300_BS335
|
||||
DEF_LOOKUP("uart1", &uart1_clk),
|
||||
DEF_LOOKUP("uart1", &uart1_clk),
|
||||
#endif
|
||||
/* SLOW bridge clocks */
|
||||
DEF_LOOKUP("slow", &slow_clk),
|
||||
DEF_LOOKUP("wdog", &wdog_clk),
|
||||
DEF_LOOKUP("uart0", &uart_clk),
|
||||
DEF_LOOKUP("apptimer", &app_timer_clk),
|
||||
DEF_LOOKUP("keypad", &keypad_clk),
|
||||
DEF_LOOKUP("slow", &slow_clk),
|
||||
DEF_LOOKUP("coh901327_wdog", &wdog_clk),
|
||||
DEF_LOOKUP("uart0", &uart_clk),
|
||||
DEF_LOOKUP("apptimer", &app_timer_clk),
|
||||
DEF_LOOKUP("coh901461-keypad", &keypad_clk),
|
||||
DEF_LOOKUP("u300-gpio", &gpio_clk),
|
||||
DEF_LOOKUP("rtc0", &rtc_clk),
|
||||
DEF_LOOKUP("bustr", &bustr_clk),
|
||||
DEF_LOOKUP("evhist", &evhist_clk),
|
||||
DEF_LOOKUP("timer", &timer_clk),
|
||||
DEF_LOOKUP("rtc-coh901331", &rtc_clk),
|
||||
DEF_LOOKUP("bustr", &bustr_clk),
|
||||
DEF_LOOKUP("evhist", &evhist_clk),
|
||||
DEF_LOOKUP("timer", &timer_clk),
|
||||
#ifdef CONFIG_MACH_U300_BS335
|
||||
DEF_LOOKUP("ppm", &ppm_clk),
|
||||
DEF_LOOKUP("ppm", &ppm_clk),
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -1427,16 +1464,20 @@ static const struct file_operations u300_clocks_operations = {
|
|||
.release = single_release,
|
||||
};
|
||||
|
||||
static void init_clk_read_procfs(void)
|
||||
static int __init init_clk_read_debugfs(void)
|
||||
{
|
||||
/* Expose a simple debugfs interface to view all clocks */
|
||||
(void) debugfs_create_file("u300_clocks", S_IFREG | S_IRUGO,
|
||||
NULL, NULL, &u300_clocks_operations);
|
||||
}
|
||||
#else
|
||||
static inline void init_clk_read_procfs(void)
|
||||
{
|
||||
NULL, NULL,
|
||||
&u300_clocks_operations);
|
||||
return 0;
|
||||
}
|
||||
/*
|
||||
* This needs to come in after the core_initcall() for the
|
||||
* overall clocks, because debugfs is not available until
|
||||
* the subsystems come up.
|
||||
*/
|
||||
module_init(init_clk_read_debugfs);
|
||||
#endif
|
||||
|
||||
static int __init u300_clock_init(void)
|
||||
|
@ -1462,8 +1503,6 @@ static int __init u300_clock_init(void)
|
|||
|
||||
clk_register();
|
||||
|
||||
init_clk_read_procfs();
|
||||
|
||||
/*
|
||||
* Some of these may be on when we boot the system so make sure they
|
||||
* are turned OFF.
|
||||
|
|
|
@ -27,6 +27,7 @@ EXPORT_SYMBOL(__cpuc_flush_kern_all);
|
|||
EXPORT_SYMBOL(__cpuc_flush_user_all);
|
||||
EXPORT_SYMBOL(__cpuc_flush_user_range);
|
||||
EXPORT_SYMBOL(__cpuc_coherent_kern_range);
|
||||
EXPORT_SYMBOL(__cpuc_flush_dcache_page);
|
||||
EXPORT_SYMBOL(dmac_inv_range); /* because of flush_ioremap_region() */
|
||||
#else
|
||||
EXPORT_SYMBOL(cpu_cache);
|
||||
|
|
|
@ -40,7 +40,7 @@ struct thread_info {
|
|||
.exec_domain = &default_exec_domain, \
|
||||
.flags = 0, \
|
||||
.cpu = 0, \
|
||||
.preempt_count = 1, \
|
||||
.preempt_count = INIT_PREEMPT_COUNT, \
|
||||
.restart_block = { \
|
||||
.fn = do_no_restart_syscall \
|
||||
} \
|
||||
|
|
|
@ -32,22 +32,25 @@ void NORET_TYPE die(const char *str, struct pt_regs *regs, long err)
|
|||
spin_lock_irq(&die_lock);
|
||||
bust_spinlocks(1);
|
||||
|
||||
printk(KERN_ALERT "Oops: %s, sig: %ld [#%d]\n" KERN_EMERG,
|
||||
printk(KERN_ALERT "Oops: %s, sig: %ld [#%d]\n",
|
||||
str, err, ++die_counter);
|
||||
|
||||
printk(KERN_EMERG);
|
||||
|
||||
#ifdef CONFIG_PREEMPT
|
||||
printk("PREEMPT ");
|
||||
printk(KERN_CONT "PREEMPT ");
|
||||
#endif
|
||||
#ifdef CONFIG_FRAME_POINTER
|
||||
printk("FRAME_POINTER ");
|
||||
printk(KERN_CONT "FRAME_POINTER ");
|
||||
#endif
|
||||
if (current_cpu_data.features & AVR32_FEATURE_OCD) {
|
||||
unsigned long did = ocd_read(DID);
|
||||
printk("chip: 0x%03lx:0x%04lx rev %lu\n",
|
||||
printk(KERN_CONT "chip: 0x%03lx:0x%04lx rev %lu\n",
|
||||
(did >> 1) & 0x7ff,
|
||||
(did >> 12) & 0x7fff,
|
||||
(did >> 28) & 0xf);
|
||||
} else {
|
||||
printk("cpu: arch %u r%u / core %u r%u\n",
|
||||
printk(KERN_CONT "cpu: arch %u r%u / core %u r%u\n",
|
||||
current_cpu_data.arch_type,
|
||||
current_cpu_data.arch_revision,
|
||||
current_cpu_data.cpu_type,
|
||||
|
|
|
@ -77,7 +77,7 @@ struct thread_info {
|
|||
.exec_domain = &default_exec_domain, \
|
||||
.flags = 0, \
|
||||
.cpu = 0, \
|
||||
.preempt_count = 1, \
|
||||
.preempt_count = INIT_PREEMPT_COUNT, \
|
||||
.restart_block = { \
|
||||
.fn = do_no_restart_syscall, \
|
||||
}, \
|
||||
|
|
|
@ -408,13 +408,14 @@ static void __init print_memory_map(char *who)
|
|||
bfin_memmap.map[i].addr + bfin_memmap.map[i].size);
|
||||
switch (bfin_memmap.map[i].type) {
|
||||
case BFIN_MEMMAP_RAM:
|
||||
printk("(usable)\n");
|
||||
break;
|
||||
printk(KERN_CONT "(usable)\n");
|
||||
break;
|
||||
case BFIN_MEMMAP_RESERVED:
|
||||
printk("(reserved)\n");
|
||||
break;
|
||||
default: printk("type %lu\n", bfin_memmap.map[i].type);
|
||||
break;
|
||||
printk(KERN_CONT "(reserved)\n");
|
||||
break;
|
||||
default:
|
||||
printk(KERN_CONT "type %lu\n", bfin_memmap.map[i].type);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -614,19 +615,19 @@ static __init void memory_setup(void)
|
|||
printk(KERN_INFO "Kernel Managed Memory: %ldMB\n", _ramend >> 20);
|
||||
|
||||
printk(KERN_INFO "Memory map:\n"
|
||||
KERN_INFO " fixedcode = 0x%p-0x%p\n"
|
||||
KERN_INFO " text = 0x%p-0x%p\n"
|
||||
KERN_INFO " rodata = 0x%p-0x%p\n"
|
||||
KERN_INFO " bss = 0x%p-0x%p\n"
|
||||
KERN_INFO " data = 0x%p-0x%p\n"
|
||||
KERN_INFO " stack = 0x%p-0x%p\n"
|
||||
KERN_INFO " init = 0x%p-0x%p\n"
|
||||
KERN_INFO " available = 0x%p-0x%p\n"
|
||||
" fixedcode = 0x%p-0x%p\n"
|
||||
" text = 0x%p-0x%p\n"
|
||||
" rodata = 0x%p-0x%p\n"
|
||||
" bss = 0x%p-0x%p\n"
|
||||
" data = 0x%p-0x%p\n"
|
||||
" stack = 0x%p-0x%p\n"
|
||||
" init = 0x%p-0x%p\n"
|
||||
" available = 0x%p-0x%p\n"
|
||||
#ifdef CONFIG_MTD_UCLINUX
|
||||
KERN_INFO " rootfs = 0x%p-0x%p\n"
|
||||
" rootfs = 0x%p-0x%p\n"
|
||||
#endif
|
||||
#if DMA_UNCACHED_REGION > 0
|
||||
KERN_INFO " DMA Zone = 0x%p-0x%p\n"
|
||||
" DMA Zone = 0x%p-0x%p\n"
|
||||
#endif
|
||||
, (void *)FIXED_CODE_START, (void *)FIXED_CODE_END,
|
||||
_stext, _etext,
|
||||
|
@ -859,13 +860,13 @@ void __init setup_arch(char **cmdline_p)
|
|||
#endif
|
||||
printk(KERN_INFO "Hardware Trace ");
|
||||
if (bfin_read_TBUFCTL() & 0x1)
|
||||
printk("Active ");
|
||||
printk(KERN_CONT "Active ");
|
||||
else
|
||||
printk("Off ");
|
||||
printk(KERN_CONT "Off ");
|
||||
if (bfin_read_TBUFCTL() & 0x2)
|
||||
printk("and Enabled\n");
|
||||
printk(KERN_CONT "and Enabled\n");
|
||||
else
|
||||
printk("and Disabled\n");
|
||||
printk(KERN_CONT "and Disabled\n");
|
||||
|
||||
#if defined(CONFIG_CHR_DEV_FLASH) || defined(CONFIG_BLK_DEV_FLASH)
|
||||
/* we need to initialize the Flashrom device here since we might
|
||||
|
|
|
@ -212,7 +212,7 @@ asmlinkage void double_fault_c(struct pt_regs *fp)
|
|||
console_verbose();
|
||||
oops_in_progress = 1;
|
||||
#ifdef CONFIG_DEBUG_VERBOSE
|
||||
printk(KERN_EMERG "\n" KERN_EMERG "Double Fault\n");
|
||||
printk(KERN_EMERG "Double Fault\n");
|
||||
#ifdef CONFIG_DEBUG_DOUBLEFAULT_PRINT
|
||||
if (((long)fp->seqstat & SEQSTAT_EXCAUSE) == VEC_UNCOV) {
|
||||
unsigned int cpu = smp_processor_id();
|
||||
|
@ -583,15 +583,14 @@ asmlinkage void trap_c(struct pt_regs *fp)
|
|||
#ifndef CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE
|
||||
if (trapnr == VEC_CPLB_I_M || trapnr == VEC_CPLB_M)
|
||||
verbose_printk(KERN_NOTICE "No trace since you do not have "
|
||||
"CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE enabled\n"
|
||||
KERN_NOTICE "\n");
|
||||
"CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE enabled\n\n");
|
||||
else
|
||||
#endif
|
||||
dump_bfin_trace_buffer();
|
||||
|
||||
if (oops_in_progress) {
|
||||
/* Dump the current kernel stack */
|
||||
verbose_printk(KERN_NOTICE "\n" KERN_NOTICE "Kernel Stack\n");
|
||||
verbose_printk(KERN_NOTICE "Kernel Stack\n");
|
||||
show_stack(current, NULL);
|
||||
print_modules();
|
||||
#ifndef CONFIG_ACCESS_CHECK
|
||||
|
@ -906,7 +905,7 @@ void show_stack(struct task_struct *task, unsigned long *stack)
|
|||
|
||||
ret_addr = 0;
|
||||
if (!j && i % 8 == 0)
|
||||
printk("\n" KERN_NOTICE "%p:",addr);
|
||||
printk(KERN_NOTICE "%p:",addr);
|
||||
|
||||
/* if it is an odd address, or zero, just skip it */
|
||||
if (*addr & 0x1 || !*addr)
|
||||
|
@ -996,9 +995,9 @@ void dump_bfin_process(struct pt_regs *fp)
|
|||
|
||||
printk(KERN_NOTICE "CPU = %d\n", current_thread_info()->cpu);
|
||||
if (!((unsigned long)current->mm & 0x3) && (unsigned long)current->mm >= FIXED_CODE_START)
|
||||
verbose_printk(KERN_NOTICE "TEXT = 0x%p-0x%p DATA = 0x%p-0x%p\n"
|
||||
KERN_NOTICE " BSS = 0x%p-0x%p USER-STACK = 0x%p\n"
|
||||
KERN_NOTICE "\n",
|
||||
verbose_printk(KERN_NOTICE
|
||||
"TEXT = 0x%p-0x%p DATA = 0x%p-0x%p\n"
|
||||
" BSS = 0x%p-0x%p USER-STACK = 0x%p\n\n",
|
||||
(void *)current->mm->start_code,
|
||||
(void *)current->mm->end_code,
|
||||
(void *)current->mm->start_data,
|
||||
|
@ -1009,8 +1008,8 @@ void dump_bfin_process(struct pt_regs *fp)
|
|||
else
|
||||
verbose_printk(KERN_NOTICE "invalid mm\n");
|
||||
} else
|
||||
verbose_printk(KERN_NOTICE "\n" KERN_NOTICE
|
||||
"No Valid process in current context\n");
|
||||
verbose_printk(KERN_NOTICE
|
||||
"No Valid process in current context\n");
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -1028,7 +1027,7 @@ void dump_bfin_mem(struct pt_regs *fp)
|
|||
addr < (unsigned short *)((unsigned long)erraddr & ~0xF) + 0x10;
|
||||
addr++) {
|
||||
if (!((unsigned long)addr & 0xF))
|
||||
verbose_printk("\n" KERN_NOTICE "0x%p: ", addr);
|
||||
verbose_printk(KERN_NOTICE "0x%p: ", addr);
|
||||
|
||||
if (!get_instruction(&val, addr)) {
|
||||
val = 0;
|
||||
|
@ -1056,9 +1055,9 @@ void dump_bfin_mem(struct pt_regs *fp)
|
|||
oops_in_progress)){
|
||||
verbose_printk(KERN_NOTICE "Looks like this was a deferred error - sorry\n");
|
||||
#ifndef CONFIG_DEBUG_HWERR
|
||||
verbose_printk(KERN_NOTICE "The remaining message may be meaningless\n"
|
||||
KERN_NOTICE "You should enable CONFIG_DEBUG_HWERR to get a"
|
||||
" better idea where it came from\n");
|
||||
verbose_printk(KERN_NOTICE
|
||||
"The remaining message may be meaningless\n"
|
||||
"You should enable CONFIG_DEBUG_HWERR to get a better idea where it came from\n");
|
||||
#else
|
||||
/* If we are handling only one peripheral interrupt
|
||||
* and current mm and pid are valid, and the last error
|
||||
|
@ -1114,9 +1113,10 @@ void show_regs(struct pt_regs *fp)
|
|||
|
||||
verbose_printk(KERN_NOTICE "%s", linux_banner);
|
||||
|
||||
verbose_printk(KERN_NOTICE "\n" KERN_NOTICE "SEQUENCER STATUS:\t\t%s\n", print_tainted());
|
||||
verbose_printk(KERN_NOTICE "\nSEQUENCER STATUS:\t\t%s\n",
|
||||
print_tainted());
|
||||
verbose_printk(KERN_NOTICE " SEQSTAT: %08lx IPEND: %04lx SYSCFG: %04lx\n",
|
||||
(long)fp->seqstat, fp->ipend, fp->syscfg);
|
||||
(long)fp->seqstat, fp->ipend, fp->syscfg);
|
||||
if ((fp->seqstat & SEQSTAT_EXCAUSE) == VEC_HWERR) {
|
||||
verbose_printk(KERN_NOTICE " HWERRCAUSE: 0x%lx\n",
|
||||
(fp->seqstat & SEQSTAT_HWERRCAUSE) >> 14);
|
||||
|
@ -1184,7 +1184,7 @@ unlock:
|
|||
verbose_printk(KERN_NOTICE "ICPLB_FAULT_ADDR: %s\n", buf);
|
||||
}
|
||||
|
||||
verbose_printk(KERN_NOTICE "\n" KERN_NOTICE "PROCESSOR STATE:\n");
|
||||
verbose_printk(KERN_NOTICE "PROCESSOR STATE:\n");
|
||||
verbose_printk(KERN_NOTICE " R0 : %08lx R1 : %08lx R2 : %08lx R3 : %08lx\n",
|
||||
fp->r0, fp->r1, fp->r2, fp->r3);
|
||||
verbose_printk(KERN_NOTICE " R4 : %08lx R5 : %08lx R6 : %08lx R7 : %08lx\n",
|
||||
|
|
|
@ -50,8 +50,6 @@ struct thread_info {
|
|||
|
||||
/*
|
||||
* macros/functions for gaining access to the thread information structure
|
||||
*
|
||||
* preempt_count needs to be 1 initially, until the scheduler is functional.
|
||||
*/
|
||||
#ifndef __ASSEMBLY__
|
||||
#define INIT_THREAD_INFO(tsk) \
|
||||
|
@ -60,7 +58,7 @@ struct thread_info {
|
|||
.exec_domain = &default_exec_domain, \
|
||||
.flags = 0, \
|
||||
.cpu = 0, \
|
||||
.preempt_count = 1, \
|
||||
.preempt_count = INIT_PREEMPT_COUNT, \
|
||||
.addr_limit = KERNEL_DS, \
|
||||
.restart_block = { \
|
||||
.fn = do_no_restart_syscall, \
|
||||
|
|
|
@ -56,8 +56,6 @@ struct thread_info {
|
|||
|
||||
/*
|
||||
* macros/functions for gaining access to the thread information structure
|
||||
*
|
||||
* preempt_count needs to be 1 initially, until the scheduler is functional.
|
||||
*/
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
|
@ -67,7 +65,7 @@ struct thread_info {
|
|||
.exec_domain = &default_exec_domain, \
|
||||
.flags = 0, \
|
||||
.cpu = 0, \
|
||||
.preempt_count = 1, \
|
||||
.preempt_count = INIT_PREEMPT_COUNT, \
|
||||
.addr_limit = KERNEL_DS, \
|
||||
.restart_block = { \
|
||||
.fn = do_no_restart_syscall, \
|
||||
|
|
|
@ -36,7 +36,7 @@ struct thread_info {
|
|||
.exec_domain = &default_exec_domain, \
|
||||
.flags = 0, \
|
||||
.cpu = 0, \
|
||||
.preempt_count = 1, \
|
||||
.preempt_count = INIT_PREEMPT_COUNT, \
|
||||
.restart_block = { \
|
||||
.fn = do_no_restart_syscall, \
|
||||
}, \
|
||||
|
|
|
@ -48,7 +48,7 @@ struct thread_info {
|
|||
.flags = 0, \
|
||||
.cpu = 0, \
|
||||
.addr_limit = KERNEL_DS, \
|
||||
.preempt_count = 0, \
|
||||
.preempt_count = INIT_PREEMPT_COUNT, \
|
||||
.restart_block = { \
|
||||
.fn = do_no_restart_syscall, \
|
||||
}, \
|
||||
|
|
|
@ -537,7 +537,7 @@ pcibios_align_resource (void *data, struct resource *res,
|
|||
/*
|
||||
* PCI BIOS setup, always defaults to SAL interface
|
||||
*/
|
||||
char * __devinit
|
||||
char * __init
|
||||
pcibios_setup (char *str)
|
||||
{
|
||||
return str;
|
||||
|
|
|
@ -57,8 +57,6 @@ struct thread_info {
|
|||
|
||||
/*
|
||||
* macros/functions for gaining access to the thread information structure
|
||||
*
|
||||
* preempt_count needs to be 1 initially, until the scheduler is functional.
|
||||
*/
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
|
@ -68,7 +66,7 @@ struct thread_info {
|
|||
.exec_domain = &default_exec_domain, \
|
||||
.flags = 0, \
|
||||
.cpu = 0, \
|
||||
.preempt_count = 1, \
|
||||
.preempt_count = INIT_PREEMPT_COUNT, \
|
||||
.addr_limit = KERNEL_DS, \
|
||||
.restart_block = { \
|
||||
.fn = do_no_restart_syscall, \
|
||||
|
|
|
@ -19,6 +19,7 @@ struct thread_info {
|
|||
{ \
|
||||
.task = &tsk, \
|
||||
.exec_domain = &default_exec_domain, \
|
||||
.preempt_count = INIT_PREEMPT_COUNT, \
|
||||
.restart_block = { \
|
||||
.fn = do_no_restart_syscall, \
|
||||
}, \
|
||||
|
|
|
@ -49,6 +49,7 @@ struct thread_info {
|
|||
.exec_domain = &default_exec_domain, \
|
||||
.flags = 0, \
|
||||
.cpu = 0, \
|
||||
.preempt_count = INIT_PREEMPT_COUNT, \
|
||||
.restart_block = { \
|
||||
.fn = do_no_restart_syscall, \
|
||||
}, \
|
||||
|
|
|
@ -290,7 +290,7 @@ void dump(struct pt_regs *fp)
|
|||
unsigned char *tp;
|
||||
int i;
|
||||
|
||||
printk(KERN_EMERG "\n" KERN_EMERG "CURRENT PROCESS:\n" KERN_EMERG "\n");
|
||||
printk(KERN_EMERG "\nCURRENT PROCESS:\n\n");
|
||||
printk(KERN_EMERG "COMM=%s PID=%d\n", current->comm, current->pid);
|
||||
|
||||
if (current->mm) {
|
||||
|
@ -301,8 +301,7 @@ void dump(struct pt_regs *fp)
|
|||
(int) current->mm->end_data,
|
||||
(int) current->mm->end_data,
|
||||
(int) current->mm->brk);
|
||||
printk(KERN_EMERG "USER-STACK=%08x KERNEL-STACK=%08x\n"
|
||||
KERN_EMERG "\n",
|
||||
printk(KERN_EMERG "USER-STACK=%08x KERNEL-STACK=%08x\n\n",
|
||||
(int) current->mm->start_stack,
|
||||
(int)(((unsigned long) current) + THREAD_SIZE));
|
||||
}
|
||||
|
@ -313,35 +312,35 @@ void dump(struct pt_regs *fp)
|
|||
fp->d0, fp->d1, fp->d2, fp->d3);
|
||||
printk(KERN_EMERG "d4: %08lx d5: %08lx a0: %08lx a1: %08lx\n",
|
||||
fp->d4, fp->d5, fp->a0, fp->a1);
|
||||
printk(KERN_EMERG "\n" KERN_EMERG "USP: %08x TRAPFRAME: %08x\n",
|
||||
printk(KERN_EMERG "\nUSP: %08x TRAPFRAME: %08x\n",
|
||||
(unsigned int) rdusp(), (unsigned int) fp);
|
||||
|
||||
printk(KERN_EMERG "\n" KERN_EMERG "CODE:");
|
||||
printk(KERN_EMERG "\nCODE:");
|
||||
tp = ((unsigned char *) fp->pc) - 0x20;
|
||||
for (sp = (unsigned long *) tp, i = 0; (i < 0x40); i += 4) {
|
||||
if ((i % 0x10) == 0)
|
||||
printk("\n" KERN_EMERG "%08x: ", (int) (tp + i));
|
||||
printk(KERN_EMERG "%08x: ", (int) (tp + i));
|
||||
printk("%08x ", (int) *sp++);
|
||||
}
|
||||
printk("\n" KERN_EMERG "\n");
|
||||
printk(KERN_EMERG "\n");
|
||||
|
||||
printk(KERN_EMERG "KERNEL STACK:");
|
||||
tp = ((unsigned char *) fp) - 0x40;
|
||||
for (sp = (unsigned long *) tp, i = 0; (i < 0xc0); i += 4) {
|
||||
if ((i % 0x10) == 0)
|
||||
printk("\n" KERN_EMERG "%08x: ", (int) (tp + i));
|
||||
printk(KERN_EMERG "%08x: ", (int) (tp + i));
|
||||
printk("%08x ", (int) *sp++);
|
||||
}
|
||||
printk("\n" KERN_EMERG "\n");
|
||||
printk(KERN_EMERG "\n");
|
||||
|
||||
printk(KERN_EMERG "USER STACK:");
|
||||
tp = (unsigned char *) (rdusp() - 0x10);
|
||||
for (sp = (unsigned long *) tp, i = 0; (i < 0x80); i += 4) {
|
||||
if ((i % 0x10) == 0)
|
||||
printk("\n" KERN_EMERG "%08x: ", (int) (tp + i));
|
||||
printk(KERN_EMERG "%08x: ", (int) (tp + i));
|
||||
printk("%08x ", (int) *sp++);
|
||||
}
|
||||
printk("\n" KERN_EMERG "\n");
|
||||
printk(KERN_EMERG "\n");
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -111,7 +111,7 @@ static void print_this_address(unsigned long addr, int i)
|
|||
if (i % 5)
|
||||
printk(KERN_CONT " [%08lx] ", addr);
|
||||
else
|
||||
printk(KERN_CONT "\n" KERN_EMERG " [%08lx] ", addr);
|
||||
printk(KERN_EMERG " [%08lx] ", addr);
|
||||
i++;
|
||||
#endif
|
||||
}
|
||||
|
@ -137,8 +137,8 @@ static void __show_stack(struct task_struct *task, unsigned long *stack)
|
|||
if (stack + 1 + i > endstack)
|
||||
break;
|
||||
if (i % 8 == 0)
|
||||
printk("\n" KERN_EMERG " ");
|
||||
printk(" %08lx", *(stack + i));
|
||||
printk(KERN_EMERG " ");
|
||||
printk(KERN_CONT " %08lx", *(stack + i));
|
||||
}
|
||||
printk("\n");
|
||||
i = 0;
|
||||
|
|
|
@ -53,6 +53,9 @@ config GENERIC_HARDIRQS_NO__DO_IRQ
|
|||
config GENERIC_GPIO
|
||||
def_bool y
|
||||
|
||||
config GENERIC_CSUM
|
||||
def_bool y
|
||||
|
||||
config PCI
|
||||
def_bool n
|
||||
|
||||
|
|
|
@ -1,95 +1,7 @@
|
|||
/*
|
||||
* Copyright (C) 2006 Atmark Techno, Inc.
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MICROBLAZE_ATOMIC_H
|
||||
#define _ASM_MICROBLAZE_ATOMIC_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/compiler.h> /* likely */
|
||||
#include <asm/system.h> /* local_irq_XXX and friends */
|
||||
|
||||
#define ATOMIC_INIT(i) { (i) }
|
||||
#define atomic_read(v) ((v)->counter)
|
||||
#define atomic_set(v, i) (((v)->counter) = (i))
|
||||
|
||||
#define atomic_inc(v) (atomic_add_return(1, (v)))
|
||||
#define atomic_dec(v) (atomic_sub_return(1, (v)))
|
||||
|
||||
#define atomic_add(i, v) (atomic_add_return(i, (v)))
|
||||
#define atomic_sub(i, v) (atomic_sub_return(i, (v)))
|
||||
|
||||
#define atomic_inc_return(v) (atomic_add_return(1, (v)))
|
||||
#define atomic_dec_return(v) (atomic_sub_return(1, (v)))
|
||||
|
||||
#define atomic_inc_and_test(v) (atomic_add_return(1, (v)) == 0)
|
||||
#define atomic_dec_and_test(v) (atomic_sub_return(1, (v)) == 0)
|
||||
|
||||
#define atomic_inc_not_zero(v) (atomic_add_unless((v), 1, 0))
|
||||
|
||||
#define atomic_sub_and_test(i, v) (atomic_sub_return((i), (v)) == 0)
|
||||
|
||||
static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
|
||||
{
|
||||
int ret;
|
||||
unsigned long flags;
|
||||
|
||||
local_irq_save(flags);
|
||||
ret = v->counter;
|
||||
if (likely(ret == old))
|
||||
v->counter = new;
|
||||
local_irq_restore(flags);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline int atomic_add_unless(atomic_t *v, int a, int u)
|
||||
{
|
||||
int c, old;
|
||||
|
||||
c = atomic_read(v);
|
||||
while (c != u && (old = atomic_cmpxchg((v), c, c + a)) != c)
|
||||
c = old;
|
||||
return c != u;
|
||||
}
|
||||
|
||||
static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
local_irq_save(flags);
|
||||
*addr &= ~mask;
|
||||
local_irq_restore(flags);
|
||||
}
|
||||
|
||||
/**
|
||||
* atomic_add_return - add and return
|
||||
* @i: integer value to add
|
||||
* @v: pointer of type atomic_t
|
||||
*
|
||||
* Atomically adds @i to @v and returns @i + @v
|
||||
*/
|
||||
static inline int atomic_add_return(int i, atomic_t *v)
|
||||
{
|
||||
unsigned long flags;
|
||||
int val;
|
||||
|
||||
local_irq_save(flags);
|
||||
val = v->counter;
|
||||
v->counter = val += i;
|
||||
local_irq_restore(flags);
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
static inline int atomic_sub_return(int i, atomic_t *v)
|
||||
{
|
||||
return atomic_add_return(-i, v);
|
||||
}
|
||||
#include <asm-generic/atomic.h>
|
||||
|
||||
/*
|
||||
* Atomically test *v and decrement if it is greater than 0.
|
||||
|
@ -109,15 +21,4 @@ static inline int atomic_dec_if_positive(atomic_t *v)
|
|||
return res;
|
||||
}
|
||||
|
||||
#define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0)
|
||||
#define atomic_xchg(v, new) (xchg(&((v)->counter), new))
|
||||
|
||||
/* Atomic operations are already serializing */
|
||||
#define smp_mb__before_atomic_dec() barrier()
|
||||
#define smp_mb__after_atomic_dec() barrier()
|
||||
#define smp_mb__before_atomic_inc() barrier()
|
||||
#define smp_mb__after_atomic_inc() barrier()
|
||||
|
||||
#include <asm-generic/atomic-long.h>
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_ATOMIC_H */
|
||||
|
|
|
@ -1,27 +1 @@
|
|||
/*
|
||||
* Copyright (C) 2006 Atmark Techno, Inc.
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MICROBLAZE_BITOPS_H
|
||||
#define _ASM_MICROBLAZE_BITOPS_H
|
||||
|
||||
/*
|
||||
* Copyright 1992, Linus Torvalds.
|
||||
*/
|
||||
|
||||
#include <asm/byteorder.h> /* swab32 */
|
||||
#include <asm/system.h> /* save_flags */
|
||||
|
||||
/*
|
||||
* clear_bit() doesn't provide any barrier for the compiler.
|
||||
*/
|
||||
#define smp_mb__before_clear_bit() barrier()
|
||||
#define smp_mb__after_clear_bit() barrier()
|
||||
#include <asm-generic/bitops.h>
|
||||
#include <asm-generic/bitops/__fls.h>
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_BITOPS_H */
|
||||
|
|
|
@ -1,15 +1 @@
|
|||
/*
|
||||
* Copyright (C) 2006 Atmark Techno, Inc.
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MICROBLAZE_BUG_H
|
||||
#define _ASM_MICROBLAZE_BUG_H
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <asm-generic/bug.h>
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_BUG_H */
|
||||
|
|
|
@ -1,17 +1 @@
|
|||
/*
|
||||
* Copyright (C) 2006 Atmark Techno, Inc.
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MICROBLAZE_BUGS_H
|
||||
#define _ASM_MICROBLAZE_BUGS_H
|
||||
|
||||
static inline void check_bugs(void)
|
||||
{
|
||||
/* nothing to do */
|
||||
}
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_BUGS_H */
|
||||
#include <asm-generic/bugs.h>
|
||||
|
|
|
@ -10,12 +10,11 @@
|
|||
#ifndef _ASM_MICROBLAZE_CHECKSUM_H
|
||||
#define _ASM_MICROBLAZE_CHECKSUM_H
|
||||
|
||||
#include <linux/in6.h>
|
||||
|
||||
/*
|
||||
* computes the checksum of the TCP/UDP pseudo-header
|
||||
* returns a 16-bit checksum, already complemented
|
||||
*/
|
||||
#define csum_tcpudp_nofold csum_tcpudp_nofold
|
||||
static inline __wsum
|
||||
csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len,
|
||||
unsigned short proto, __wsum sum)
|
||||
|
@ -30,71 +29,6 @@ csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len,
|
|||
return sum;
|
||||
}
|
||||
|
||||
/*
|
||||
* computes the checksum of a memory block at buff, length len,
|
||||
* and adds in "sum" (32-bit)
|
||||
*
|
||||
* returns a 32-bit number suitable for feeding into itself
|
||||
* or csum_tcpudp_magic
|
||||
*
|
||||
* this function must be called with even lengths, except
|
||||
* for the last fragment, which may be odd
|
||||
*
|
||||
* it's best to have buff aligned on a 32-bit boundary
|
||||
*/
|
||||
extern __wsum csum_partial(const void *buff, int len, __wsum sum);
|
||||
|
||||
/*
|
||||
* the same as csum_partial, but copies from src while it
|
||||
* checksums
|
||||
*
|
||||
* here even more important to align src and dst on a 32-bit (or even
|
||||
* better 64-bit) boundary
|
||||
*/
|
||||
extern __wsum csum_partial_copy(const void *src, void *dst, int len,
|
||||
__wsum sum);
|
||||
|
||||
/*
|
||||
* the same as csum_partial_copy, but copies from user space.
|
||||
*
|
||||
* here even more important to align src and dst on a 32-bit (or even
|
||||
* better 64-bit) boundary
|
||||
*/
|
||||
extern __wsum csum_partial_copy_from_user(const void __user *src, void *dst,
|
||||
int len, __wsum sum, int *csum_err);
|
||||
|
||||
#define csum_partial_copy_nocheck(src, dst, len, sum) \
|
||||
csum_partial_copy((src), (dst), (len), (sum))
|
||||
|
||||
/*
|
||||
* This is a version of ip_compute_csum() optimized for IP headers,
|
||||
* which always checksum on 4 octet boundaries.
|
||||
*
|
||||
*/
|
||||
extern __sum16 ip_fast_csum(const void *iph, unsigned int ihl);
|
||||
|
||||
/*
|
||||
* Fold a partial checksum
|
||||
*/
|
||||
static inline __sum16 csum_fold(__wsum csum)
|
||||
{
|
||||
u32 sum = (__force u32)csum;
|
||||
sum = (sum & 0xffff) + (sum >> 16);
|
||||
sum = (sum & 0xffff) + (sum >> 16);
|
||||
return (__force __sum16)~sum;
|
||||
}
|
||||
|
||||
static inline __sum16
|
||||
csum_tcpudp_magic(__be32 saddr, __be32 daddr, unsigned short len,
|
||||
unsigned short proto, __wsum sum)
|
||||
{
|
||||
return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum));
|
||||
}
|
||||
|
||||
/*
|
||||
* this routine is used for miscellaneous IP-like checksums, mainly
|
||||
* in icmp.c
|
||||
*/
|
||||
extern __sum16 ip_compute_csum(const void *buff, int len);
|
||||
#include <asm-generic/checksum.h>
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_CHECKSUM_H */
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
#include <asm-generic/fb.h>
|
|
@ -9,21 +9,11 @@
|
|||
#ifndef _ASM_MICROBLAZE_HARDIRQ_H
|
||||
#define _ASM_MICROBLAZE_HARDIRQ_H
|
||||
|
||||
#include <linux/cache.h>
|
||||
#include <linux/irq.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/current.h>
|
||||
#include <linux/ptrace.h>
|
||||
|
||||
/* should be defined in each interrupt controller driver */
|
||||
extern unsigned int get_irq(struct pt_regs *regs);
|
||||
|
||||
typedef struct {
|
||||
unsigned int __softirq_pending;
|
||||
} ____cacheline_aligned irq_cpustat_t;
|
||||
|
||||
#define ack_bad_irq ack_bad_irq
|
||||
void ack_bad_irq(unsigned int irq);
|
||||
|
||||
#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
|
||||
#include <asm-generic/hardirq.h>
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_HARDIRQ_H */
|
||||
|
|
|
@ -1,91 +1 @@
|
|||
/*
|
||||
* Copyright (C) 2006 Atmark Techno, Inc.
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MICROBLAZE_IOCTLS_H
|
||||
#define _ASM_MICROBLAZE_IOCTLS_H
|
||||
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
/* 0x54 is just a magic number to make these relatively unique ('T') */
|
||||
|
||||
#define TCGETS 0x5401
|
||||
#define TCSETS 0x5402
|
||||
#define TCSETSW 0x5403
|
||||
#define TCSETSF 0x5404
|
||||
#define TCGETA 0x5405
|
||||
#define TCSETA 0x5406
|
||||
#define TCSETAW 0x5407
|
||||
#define TCSETAF 0x5408
|
||||
#define TCSBRK 0x5409
|
||||
#define TCXONC 0x540A
|
||||
#define TCFLSH 0x540B
|
||||
#define TIOCEXCL 0x540C
|
||||
#define TIOCNXCL 0x540D
|
||||
#define TIOCSCTTY 0x540E
|
||||
#define TIOCGPGRP 0x540F
|
||||
#define TIOCSPGRP 0x5410
|
||||
#define TIOCOUTQ 0x5411
|
||||
#define TIOCSTI 0x5412
|
||||
#define TIOCGWINSZ 0x5413
|
||||
#define TIOCSWINSZ 0x5414
|
||||
#define TIOCMGET 0x5415
|
||||
#define TIOCMBIS 0x5416
|
||||
#define TIOCMBIC 0x5417
|
||||
#define TIOCMSET 0x5418
|
||||
#define TIOCGSOFTCAR 0x5419
|
||||
#define TIOCSSOFTCAR 0x541A
|
||||
#define FIONREAD 0x541B
|
||||
#define TIOCINQ FIONREAD
|
||||
#define TIOCLINUX 0x541C
|
||||
#define TIOCCONS 0x541D
|
||||
#define TIOCGSERIAL 0x541E
|
||||
#define TIOCSSERIAL 0x541F
|
||||
#define TIOCPKT 0x5420
|
||||
#define FIONBIO 0x5421
|
||||
#define TIOCNOTTY 0x5422
|
||||
#define TIOCSETD 0x5423
|
||||
#define TIOCGETD 0x5424
|
||||
#define TCSBRKP 0x5425 /* Needed for POSIX tcsendbreak() */
|
||||
#define TIOCTTYGSTRUCT 0x5426 /* For debugging only */
|
||||
#define TIOCSBRK 0x5427 /* BSD compatibility */
|
||||
#define TIOCCBRK 0x5428 /* BSD compatibility */
|
||||
#define TIOCGSID 0x5429 /* Return the session ID of FD */
|
||||
/* Get Pty Number (of pty-mux device) */
|
||||
#define TIOCGPTN _IOR('T', 0x30, unsigned int)
|
||||
#define TIOCSPTLCK _IOW('T', 0x31, int) /* Lock/unlock Pty */
|
||||
|
||||
#define FIONCLEX 0x5450 /* these numbers need to be adjusted. */
|
||||
#define FIOCLEX 0x5451
|
||||
#define FIOASYNC 0x5452
|
||||
#define TIOCSERCONFIG 0x5453
|
||||
#define TIOCSERGWILD 0x5454
|
||||
#define TIOCSERSWILD 0x5455
|
||||
#define TIOCGLCKTRMIOS 0x5456
|
||||
#define TIOCSLCKTRMIOS 0x5457
|
||||
#define TIOCSERGSTRUCT 0x5458 /* For debugging only */
|
||||
#define TIOCSERGETLSR 0x5459 /* Get line status register */
|
||||
#define TIOCSERGETMULTI 0x545A /* Get multiport config */
|
||||
#define TIOCSERSETMULTI 0x545B /* Set multiport config */
|
||||
|
||||
#define TIOCMIWAIT 0x545C /* wait for a change on serial input line(s) */
|
||||
#define TIOCGICOUNT 0x545D /* read serial port inline interrupt counts */
|
||||
|
||||
#define FIOQSIZE 0x545E
|
||||
|
||||
/* Used for packet mode */
|
||||
#define TIOCPKT_DATA 0
|
||||
#define TIOCPKT_FLUSHREAD 1
|
||||
#define TIOCPKT_FLUSHWRITE 2
|
||||
#define TIOCPKT_STOP 4
|
||||
#define TIOCPKT_START 8
|
||||
#define TIOCPKT_NOSTOP 16
|
||||
#define TIOCPKT_DOSTOP 32
|
||||
|
||||
#define TIOCSER_TEMT 0x01 /* Transmitter physically empty */
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_IOCTLS_H */
|
||||
#include <asm-generic/ioctls.h>
|
||||
|
|
|
@ -1,36 +1 @@
|
|||
/*
|
||||
* Copyright (C) 2006 Atmark Techno, Inc.
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MICROBLAZE_IPCBUF_H
|
||||
#define _ASM_MICROBLAZE_IPCBUF_H
|
||||
|
||||
/*
|
||||
* The user_ipc_perm structure for microblaze architecture.
|
||||
* Note extra padding because this structure is passed back and forth
|
||||
* between kernel and user space.
|
||||
*
|
||||
* Pad space is left for:
|
||||
* - 32-bit mode_t and seq
|
||||
* - 2 miscellaneous 32-bit values
|
||||
*/
|
||||
|
||||
struct ipc64_perm {
|
||||
__kernel_key_t key;
|
||||
__kernel_uid32_t uid;
|
||||
__kernel_gid32_t gid;
|
||||
__kernel_uid32_t cuid;
|
||||
__kernel_gid32_t cgid;
|
||||
__kernel_mode_t mode;
|
||||
unsigned short __pad1;
|
||||
unsigned short seq;
|
||||
unsigned short __pad2;
|
||||
unsigned long __unused1;
|
||||
unsigned long __unused2;
|
||||
};
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_IPCBUF_H */
|
||||
#include <asm-generic/ipcbuf.h>
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#define _ASM_MICROBLAZE_IRQ_H
|
||||
|
||||
#define NR_IRQS 32
|
||||
#include <asm-generic/irq.h>
|
||||
|
||||
#include <linux/interrupt.h>
|
||||
|
||||
|
@ -17,11 +18,6 @@ extern unsigned int nr_irq;
|
|||
|
||||
#define NO_IRQ (-1)
|
||||
|
||||
static inline int irq_canonicalize(int irq)
|
||||
{
|
||||
return irq;
|
||||
}
|
||||
|
||||
struct pt_regs;
|
||||
extern void do_IRQ(struct pt_regs *regs);
|
||||
|
||||
|
|
|
@ -1,25 +1 @@
|
|||
/*
|
||||
* Copyright (C) 2006 Atmark Techno, Inc.
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MICROBLAZE_MMAN_H
|
||||
#define _ASM_MICROBLAZE_MMAN_H
|
||||
|
||||
#include <asm-generic/mman.h>
|
||||
|
||||
#define MAP_GROWSDOWN 0x0100 /* stack-like segment */
|
||||
#define MAP_DENYWRITE 0x0800 /* ETXTBSY */
|
||||
#define MAP_EXECUTABLE 0x1000 /* mark it as an executable */
|
||||
#define MAP_LOCKED 0x2000 /* pages are locked */
|
||||
#define MAP_NORESERVE 0x4000 /* don't check for reservations */
|
||||
#define MAP_POPULATE 0x8000 /* populate (prefault) pagetables */
|
||||
#define MAP_NONBLOCK 0x10000 /* do not block on IO */
|
||||
|
||||
#define MCL_CURRENT 1 /* lock all current mappings */
|
||||
#define MCL_FUTURE 2 /* lock all future mappings */
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_MMAN_H */
|
||||
|
|
|
@ -12,12 +12,7 @@
|
|||
#define _ASM_MICROBLAZE_MMU_H
|
||||
|
||||
# ifndef CONFIG_MMU
|
||||
# ifndef __ASSEMBLY__
|
||||
typedef struct {
|
||||
struct vm_list_struct *vmlist;
|
||||
unsigned long end_brk;
|
||||
} mm_context_t;
|
||||
# endif /* __ASSEMBLY__ */
|
||||
# include <asm-generic/mmu.h>
|
||||
# else /* CONFIG_MMU */
|
||||
# ifdef __KERNEL__
|
||||
# ifndef __ASSEMBLY__
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#ifdef CONFIG_MMU
|
||||
# include "mmu_context_mm.h"
|
||||
#else
|
||||
# include "mmu_context_no.h"
|
||||
# include <asm-generic/mmu_context.h>
|
||||
#endif
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) 2008-2009 Michal Simek <monstr@monstr.eu>
|
||||
* Copyright (C) 2008-2009 PetaLogix
|
||||
* Copyright (C) 2006 Atmark Techno, Inc.
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MICROBLAZE_MMU_CONTEXT_H
|
||||
#define _ASM_MICROBLAZE_MMU_CONTEXT_H
|
||||
|
||||
# define init_new_context(tsk, mm) ({ 0; })
|
||||
|
||||
# define enter_lazy_tlb(mm, tsk) do {} while (0)
|
||||
# define change_mm_context(old, ctx, _pml4) do {} while (0)
|
||||
# define destroy_context(mm) do {} while (0)
|
||||
# define deactivate_mm(tsk, mm) do {} while (0)
|
||||
# define switch_mm(prev, next, tsk) do {} while (0)
|
||||
# define activate_mm(prev, next) do {} while (0)
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_MMU_CONTEXT_H */
|
|
@ -9,6 +9,8 @@
|
|||
#ifndef _ASM_MICROBLAZE_MODULE_H
|
||||
#define _ASM_MICROBLAZE_MODULE_H
|
||||
|
||||
#include <asm-generic/module.h>
|
||||
|
||||
/* Microblaze Relocations */
|
||||
#define R_MICROBLAZE_NONE 0
|
||||
#define R_MICROBLAZE_32 1
|
||||
|
@ -24,14 +26,6 @@
|
|||
/* Keep this the last entry. */
|
||||
#define R_MICROBLAZE_NUM 11
|
||||
|
||||
struct mod_arch_specific {
|
||||
int foo;
|
||||
};
|
||||
|
||||
#define Elf_Shdr Elf32_Shdr
|
||||
#define Elf_Sym Elf32_Sym
|
||||
#define Elf_Ehdr Elf32_Ehdr
|
||||
|
||||
typedef struct { volatile int counter; } module_t;
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_MODULE_H */
|
||||
|
|
|
@ -1,31 +1 @@
|
|||
#ifndef _ASM_MICROBLAZE_MSGBUF_H
|
||||
#define _ASM_MICROBLAZE_MSGBUF_H
|
||||
|
||||
/*
|
||||
* The msqid64_ds structure for microblaze architecture.
|
||||
* Note extra padding because this structure is passed back and forth
|
||||
* between kernel and user space.
|
||||
*
|
||||
* Pad space is left for:
|
||||
* - 64-bit time_t to solve y2038 problem
|
||||
* - 2 miscellaneous 32-bit values
|
||||
*/
|
||||
|
||||
struct msqid64_ds {
|
||||
struct ipc64_perm msg_perm;
|
||||
__kernel_time_t msg_stime; /* last msgsnd time */
|
||||
unsigned long __unused1;
|
||||
__kernel_time_t msg_rtime; /* last msgrcv time */
|
||||
unsigned long __unused2;
|
||||
__kernel_time_t msg_ctime; /* last change time */
|
||||
unsigned long __unused3;
|
||||
unsigned long msg_cbytes; /* current number of bytes on queue */
|
||||
unsigned long msg_qnum; /* number of messages in queue */
|
||||
unsigned long msg_qbytes; /* max number of bytes on queue */
|
||||
__kernel_pid_t msg_lspid; /* pid of last msgsnd */
|
||||
__kernel_pid_t msg_lrpid; /* last receive pid */
|
||||
unsigned long __unused4;
|
||||
unsigned long __unused5;
|
||||
};
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_MSGBUF_H */
|
||||
#include <asm-generic/msgbuf.h>
|
||||
|
|
|
@ -1,30 +1 @@
|
|||
/*
|
||||
* Copyright (C) 2006 Atmark Techno, Inc.
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MICROBLAZE_PARAM_H
|
||||
#define _ASM_MICROBLAZE_PARAM_H
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#define HZ CONFIG_HZ /* internal kernel timer frequency */
|
||||
#define USER_HZ 100 /* for user interfaces in "ticks" */
|
||||
#define CLOCKS_PER_SEC (USER_HZ) /* frequency at which times() counts */
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#ifndef HZ
|
||||
#define HZ 100
|
||||
#endif
|
||||
|
||||
#define EXEC_PAGESIZE 4096
|
||||
|
||||
#ifndef NOGROUP
|
||||
#define NOGROUP (-1)
|
||||
#endif
|
||||
|
||||
#define MAXHOSTNAMELEN 64 /* max length of hostname */
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_PARAM_H */
|
||||
#include <asm-generic/param.h>
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
#include <asm-generic/parport.h>
|
|
@ -1 +1 @@
|
|||
#include <linux/io.h>
|
||||
#include <asm-generic/pci.h>
|
||||
|
|
|
@ -1,73 +1,9 @@
|
|||
/*
|
||||
* Copyright (C) 2006 Atmark Techno, Inc.
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MICROBLAZE_POSIX_TYPES_H
|
||||
#define _ASM_MICROBLAZE_POSIX_TYPES_H
|
||||
|
||||
/*
|
||||
* This file is generally used by user-level software, so you need to
|
||||
* be a little careful about namespace pollution etc. Also, we cannot
|
||||
* assume GCC is being used.
|
||||
*/
|
||||
|
||||
typedef unsigned long __kernel_ino_t;
|
||||
typedef unsigned short __kernel_mode_t;
|
||||
typedef unsigned int __kernel_nlink_t;
|
||||
typedef long __kernel_off_t;
|
||||
typedef int __kernel_pid_t;
|
||||
typedef unsigned int __kernel_ipc_pid_t;
|
||||
typedef unsigned int __kernel_uid_t;
|
||||
typedef unsigned int __kernel_gid_t;
|
||||
typedef unsigned long __kernel_size_t;
|
||||
typedef long __kernel_ssize_t;
|
||||
typedef int __kernel_ptrdiff_t;
|
||||
typedef long __kernel_time_t;
|
||||
typedef long __kernel_suseconds_t;
|
||||
typedef long __kernel_clock_t;
|
||||
typedef int __kernel_timer_t;
|
||||
typedef int __kernel_clockid_t;
|
||||
typedef int __kernel_daddr_t;
|
||||
typedef char *__kernel_caddr_t;
|
||||
typedef unsigned short __kernel_uid16_t;
|
||||
typedef unsigned short __kernel_gid16_t;
|
||||
typedef unsigned int __kernel_uid32_t;
|
||||
typedef unsigned int __kernel_gid32_t;
|
||||
#define __kernel_mode_t __kernel_mode_t
|
||||
|
||||
typedef unsigned int __kernel_old_uid_t;
|
||||
typedef unsigned int __kernel_old_gid_t;
|
||||
typedef unsigned int __kernel_old_dev_t;
|
||||
|
||||
#ifdef __GNUC__
|
||||
typedef long long __kernel_loff_t;
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
#if defined(__KERNEL__) || defined(__USE_ALL)
|
||||
int val[2];
|
||||
#else /* !defined(__KERNEL__) && !defined(__USE_ALL) */
|
||||
int __val[2];
|
||||
#endif /* !defined(__KERNEL__) && !defined(__USE_ALL) */
|
||||
} __kernel_fsid_t;
|
||||
|
||||
#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)
|
||||
|
||||
#undef __FD_SET
|
||||
#define __FD_SET(d, set) ((set)->fds_bits[__FDELT(d)] |= __FDMASK(d))
|
||||
|
||||
#undef __FD_CLR
|
||||
#define __FD_CLR(d, set) ((set)->fds_bits[__FDELT(d)] &= ~__FDMASK(d))
|
||||
|
||||
#undef __FD_ISSET
|
||||
#define __FD_ISSET(d, set) (!!((set)->fds_bits[__FDELT(d)] & __FDMASK(d)))
|
||||
|
||||
#undef __FD_ZERO
|
||||
#define __FD_ZERO(fdsetp) (memset(fdsetp, 0, sizeof(*(fd_set *)fdsetp)))
|
||||
|
||||
#endif /* defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) */
|
||||
#include <asm-generic/posix_types.h>
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_POSIX_TYPES_H */
|
||||
|
|
|
@ -1,28 +1 @@
|
|||
/*
|
||||
* Copyright (C) 2008 Michal Simek <monstr@monstr.eu>
|
||||
* Copyright (C) 2006 Atmark Techno, Inc.
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MICROBLAZE_SCATTERLIST_H
|
||||
#define _ASM_MICROBLAZE_SCATTERLIST_H
|
||||
|
||||
struct scatterlist {
|
||||
#ifdef CONFIG_DEBUG_SG
|
||||
unsigned long sg_magic;
|
||||
#endif
|
||||
unsigned long page_link;
|
||||
dma_addr_t dma_address;
|
||||
unsigned int offset;
|
||||
unsigned int length;
|
||||
};
|
||||
|
||||
#define sg_dma_address(sg) ((sg)->dma_address)
|
||||
#define sg_dma_len(sg) ((sg)->length)
|
||||
|
||||
#define ISA_DMA_THRESHOLD (~0UL)
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_SCATTERLIST_H */
|
||||
#include <asm-generic/scatterlist.h>
|
||||
|
|
|
@ -1,34 +1 @@
|
|||
/*
|
||||
* Copyright (C) 2006 Atmark Techno, Inc.
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MICROBLAZE_SEMBUF_H
|
||||
#define _ASM_MICROBLAZE_SEMBUF_H
|
||||
|
||||
/*
|
||||
* The semid64_ds structure for microblaze architecture.
|
||||
* Note extra padding because this structure is passed back and forth
|
||||
* between kernel and user space.
|
||||
*
|
||||
* Pad space is left for:
|
||||
* - 64-bit time_t to solve y2038 problem
|
||||
* - 2 miscellaneous 32-bit values
|
||||
*/
|
||||
|
||||
struct semid64_ds {
|
||||
struct ipc64_perm sem_perm; /* permissions .. see ipc.h */
|
||||
__kernel_time_t sem_otime; /* last semop time */
|
||||
unsigned long __unused1;
|
||||
__kernel_time_t sem_ctime; /* last change time */
|
||||
unsigned long __unused2;
|
||||
unsigned long sem_nsems; /* no. of semaphores in array */
|
||||
unsigned long __unused3;
|
||||
unsigned long __unused4;
|
||||
};
|
||||
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_SEMBUF_H */
|
||||
#include <asm-generic/sembuf.h>
|
||||
|
|
|
@ -1,14 +1 @@
|
|||
/*
|
||||
* Copyright (C) 2009 Michal Simek <monstr@monstr.eu>
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MICROBLAZE_SERIAL_H
|
||||
#define _ASM_MICROBLAZE_SERIAL_H
|
||||
|
||||
# define BASE_BAUD (1843200 / 16)
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_SERIAL_H */
|
||||
#include <asm-generic/serial.h>
|
||||
|
|
|
@ -1,42 +1 @@
|
|||
#ifndef _ASM_MICROBLAZE_SHMBUF_H
|
||||
#define _ASM_MICROBLAZE_SHMBUF_H
|
||||
|
||||
/*
|
||||
* The shmid64_ds structure for microblaze architecture.
|
||||
* Note extra padding because this structure is passed back and forth
|
||||
* between kernel and user space.
|
||||
*
|
||||
* Pad space is left for:
|
||||
* - 64-bit time_t to solve y2038 problem
|
||||
* - 2 miscellaneous 32-bit values
|
||||
*/
|
||||
|
||||
struct shmid64_ds {
|
||||
struct ipc64_perm shm_perm; /* operation perms */
|
||||
size_t shm_segsz; /* size of segment (bytes) */
|
||||
__kernel_time_t shm_atime; /* last attach time */
|
||||
unsigned long __unused1;
|
||||
__kernel_time_t shm_dtime; /* last detach time */
|
||||
unsigned long __unused2;
|
||||
__kernel_time_t shm_ctime; /* last change time */
|
||||
unsigned long __unused3;
|
||||
__kernel_pid_t shm_cpid; /* pid of creator */
|
||||
__kernel_pid_t shm_lpid; /* pid of last operator */
|
||||
unsigned long shm_nattch; /* no. of current attaches */
|
||||
unsigned long __unused4;
|
||||
unsigned long __unused5;
|
||||
};
|
||||
|
||||
struct shminfo64 {
|
||||
unsigned long shmmax;
|
||||
unsigned long shmmin;
|
||||
unsigned long shmmni;
|
||||
unsigned long shmseg;
|
||||
unsigned long shmall;
|
||||
unsigned long __unused1;
|
||||
unsigned long __unused2;
|
||||
unsigned long __unused3;
|
||||
unsigned long __unused4;
|
||||
};
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_SHMBUF_H */
|
||||
#include <asm-generic/shmbuf.h>
|
||||
|
|
|
@ -1,6 +1 @@
|
|||
#ifndef _ASM_MICROBLAZE_SHMPARAM_H
|
||||
#define _ASM_MICROBLAZE_SHMPARAM_H
|
||||
|
||||
#define SHMLBA PAGE_SIZE /* attach addr a multiple of this */
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_SHMPARAM_H */
|
||||
#include <asm-generic/shmparam.h>
|
||||
|
|
|
@ -1,15 +1 @@
|
|||
/*
|
||||
* Copyright (C) 2006 Atmark Techno, Inc.
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MICROBLAZE_SIGINFO_H
|
||||
#define _ASM_MICROBLAZE_SIGINFO_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <asm-generic/siginfo.h>
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_SIGINFO_H */
|
||||
|
|
|
@ -1,165 +1 @@
|
|||
/*
|
||||
* Copyright (C) 2006 Atmark Techno, Inc.
|
||||
* Yasushi SHOJI <yashi@atmark-techno.com>
|
||||
* Tetsuya OHKAWA <tetsuya@atmark-techno.com>
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MICROBLAZE_SIGNAL_H
|
||||
#define _ASM_MICROBLAZE_SIGNAL_H
|
||||
|
||||
#define SIGHUP 1
|
||||
#define SIGINT 2
|
||||
#define SIGQUIT 3
|
||||
#define SIGILL 4
|
||||
#define SIGTRAP 5
|
||||
#define SIGABRT 6
|
||||
#define SIGIOT 6
|
||||
#define SIGBUS 7
|
||||
#define SIGFPE 8
|
||||
#define SIGKILL 9
|
||||
#define SIGUSR1 10
|
||||
#define SIGSEGV 11
|
||||
#define SIGUSR2 12
|
||||
#define SIGPIPE 13
|
||||
#define SIGALRM 14
|
||||
#define SIGTERM 15
|
||||
#define SIGSTKFLT 16
|
||||
#define SIGCHLD 17
|
||||
#define SIGCONT 18
|
||||
#define SIGSTOP 19
|
||||
#define SIGTSTP 20
|
||||
#define SIGTTIN 21
|
||||
#define SIGTTOU 22
|
||||
#define SIGURG 23
|
||||
#define SIGXCPU 24
|
||||
#define SIGXFSZ 25
|
||||
#define SIGVTALRM 26
|
||||
#define SIGPROF 27
|
||||
#define SIGWINCH 28
|
||||
#define SIGIO 29
|
||||
#define SIGPOLL SIGIO
|
||||
/*
|
||||
#define SIGLOST 29
|
||||
*/
|
||||
#define SIGPWR 30
|
||||
#define SIGSYS 31
|
||||
#define SIGUNUSED 31
|
||||
|
||||
/* These should not be considered constants from userland. */
|
||||
#define SIGRTMIN 32
|
||||
#define SIGRTMAX _NSIG
|
||||
|
||||
/*
|
||||
* SA_FLAGS values:
|
||||
*
|
||||
* SA_ONSTACK indicates that a registered stack_t will be used.
|
||||
* SA_RESTART flag to get restarting signals (which were the default long ago)
|
||||
* SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
|
||||
* SA_RESETHAND clears the handler when the signal is delivered.
|
||||
* SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
|
||||
* SA_NODEFER prevents the current signal from being masked in the handler.
|
||||
*
|
||||
* SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
|
||||
* Unix names RESETHAND and NODEFER respectively.
|
||||
*/
|
||||
#define SA_NOCLDSTOP 0x00000001
|
||||
#define SA_NOCLDWAIT 0x00000002
|
||||
#define SA_SIGINFO 0x00000004
|
||||
#define SA_ONSTACK 0x08000000
|
||||
#define SA_RESTART 0x10000000
|
||||
#define SA_NODEFER 0x40000000
|
||||
#define SA_RESETHAND 0x80000000
|
||||
|
||||
#define SA_NOMASK SA_NODEFER
|
||||
#define SA_ONESHOT SA_RESETHAND
|
||||
|
||||
#define SA_RESTORER 0x04000000
|
||||
|
||||
/*
|
||||
* sigaltstack controls
|
||||
*/
|
||||
#define SS_ONSTACK 1
|
||||
#define SS_DISABLE 2
|
||||
|
||||
#define MINSIGSTKSZ 2048
|
||||
#define SIGSTKSZ 8192
|
||||
|
||||
# ifndef __ASSEMBLY__
|
||||
# include <linux/types.h>
|
||||
# include <asm-generic/signal-defs.h>
|
||||
|
||||
/* Avoid too many header ordering problems. */
|
||||
struct siginfo;
|
||||
|
||||
# ifdef __KERNEL__
|
||||
/*
|
||||
* Most things should be clean enough to redefine this at will, if care
|
||||
* is taken to make libc match.
|
||||
*/
|
||||
# define _NSIG 64
|
||||
# define _NSIG_BPW 32
|
||||
# define _NSIG_WORDS (_NSIG / _NSIG_BPW)
|
||||
|
||||
typedef unsigned long old_sigset_t; /* at least 32 bits */
|
||||
|
||||
typedef struct {
|
||||
unsigned long sig[_NSIG_WORDS];
|
||||
} sigset_t;
|
||||
|
||||
struct old_sigaction {
|
||||
__sighandler_t sa_handler;
|
||||
old_sigset_t sa_mask;
|
||||
unsigned long sa_flags;
|
||||
void (*sa_restorer)(void);
|
||||
};
|
||||
|
||||
struct sigaction {
|
||||
__sighandler_t sa_handler;
|
||||
unsigned long sa_flags;
|
||||
void (*sa_restorer)(void);
|
||||
sigset_t sa_mask; /* mask last for extensibility */
|
||||
};
|
||||
|
||||
struct k_sigaction {
|
||||
struct sigaction sa;
|
||||
};
|
||||
|
||||
# include <asm/sigcontext.h>
|
||||
# undef __HAVE_ARCH_SIG_BITOPS
|
||||
|
||||
# define ptrace_signal_deliver(regs, cookie) do { } while (0)
|
||||
|
||||
# else /* !__KERNEL__ */
|
||||
|
||||
/* Here we must cater to libcs that poke about in kernel headers. */
|
||||
|
||||
# define NSIG 32
|
||||
typedef unsigned long sigset_t;
|
||||
|
||||
struct sigaction {
|
||||
union {
|
||||
__sighandler_t _sa_handler;
|
||||
void (*_sa_sigaction)(int, struct siginfo *, void *);
|
||||
} _u;
|
||||
sigset_t sa_mask;
|
||||
unsigned long sa_flags;
|
||||
void (*sa_restorer)(void);
|
||||
};
|
||||
|
||||
# define sa_handler _u._sa_handler
|
||||
# define sa_sigaction _u._sa_sigaction
|
||||
|
||||
# endif /* __KERNEL__ */
|
||||
|
||||
typedef struct sigaltstack {
|
||||
void *ss_sp;
|
||||
int ss_flags;
|
||||
size_t ss_size;
|
||||
} stack_t;
|
||||
|
||||
# endif /* __ASSEMBLY__ */
|
||||
#endif /* _ASM_MICROBLAZE_SIGNAL_H */
|
||||
#include <asm-generic/signal.h>
|
||||
|
|
|
@ -1,69 +1 @@
|
|||
/*
|
||||
* Copyright (C) 2006 Atmark Techno, Inc.
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MICROBLAZE_SOCKET_H
|
||||
#define _ASM_MICROBLAZE_SOCKET_H
|
||||
|
||||
#include <asm/sockios.h>
|
||||
|
||||
/* For setsockoptions(2) */
|
||||
#define SOL_SOCKET 1
|
||||
|
||||
#define SO_DEBUG 1
|
||||
#define SO_REUSEADDR 2
|
||||
#define SO_TYPE 3
|
||||
#define SO_ERROR 4
|
||||
#define SO_DONTROUTE 5
|
||||
#define SO_BROADCAST 6
|
||||
#define SO_SNDBUF 7
|
||||
#define SO_RCVBUF 8
|
||||
#define SO_SNDBUFFORCE 32
|
||||
#define SO_RCVBUFFORCE 33
|
||||
#define SO_KEEPALIVE 9
|
||||
#define SO_OOBINLINE 10
|
||||
#define SO_NO_CHECK 11
|
||||
#define SO_PRIORITY 12
|
||||
#define SO_LINGER 13
|
||||
#define SO_BSDCOMPAT 14
|
||||
/* To add :#define SO_REUSEPORT 15 */
|
||||
#define SO_PASSCRED 16
|
||||
#define SO_PEERCRED 17
|
||||
#define SO_RCVLOWAT 18
|
||||
#define SO_SNDLOWAT 19
|
||||
#define SO_RCVTIMEO 20
|
||||
#define SO_SNDTIMEO 21
|
||||
|
||||
/* Security levels - as per NRL IPv6 - don't actually do anything */
|
||||
#define SO_SECURITY_AUTHENTICATION 22
|
||||
#define SO_SECURITY_ENCRYPTION_TRANSPORT 23
|
||||
#define SO_SECURITY_ENCRYPTION_NETWORK 24
|
||||
|
||||
#define SO_BINDTODEVICE 25
|
||||
|
||||
/* Socket filtering */
|
||||
#define SO_ATTACH_FILTER 26
|
||||
#define SO_DETACH_FILTER 27
|
||||
|
||||
#define SO_PEERNAME 28
|
||||
#define SO_TIMESTAMP 29
|
||||
#define SCM_TIMESTAMP SO_TIMESTAMP
|
||||
|
||||
#define SO_ACCEPTCONN 30
|
||||
|
||||
#define SO_PEERSEC 31
|
||||
#define SO_PASSSEC 34
|
||||
|
||||
#define SO_TIMESTAMPNS 35
|
||||
#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
|
||||
|
||||
#define SO_MARK 36
|
||||
|
||||
#define SO_TIMESTAMPING 37
|
||||
#define SCM_TIMESTAMPING SO_TIMESTAMPING
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_SOCKET_H */
|
||||
#include <asm-generic/socket.h>
|
||||
|
|
|
@ -1,23 +1 @@
|
|||
/*
|
||||
* Copyright (C) 2006 Atmark Techno, Inc.
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MICROBLAZE_SOCKIOS_H
|
||||
#define _ASM_MICROBLAZE_SOCKIOS_H
|
||||
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
/* Socket-level I/O control calls. */
|
||||
#define FIOSETOWN 0x8901
|
||||
#define SIOCSPGRP 0x8902
|
||||
#define FIOGETOWN 0x8903
|
||||
#define SIOCGPGRP 0x8904
|
||||
#define SIOCATMARK 0x8905
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
|
||||
#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_SOCKIOS_H */
|
||||
#include <asm-generic/sockios.h>
|
||||
|
|
|
@ -1,68 +1 @@
|
|||
/*
|
||||
* Microblaze stat structure
|
||||
*
|
||||
* Copyright (C) 2001,02,03 NEC Electronics Corporation
|
||||
* Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org>
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General
|
||||
* Public License. See the file COPYING in the main directory of this
|
||||
* archive for more details.
|
||||
*
|
||||
* Written by Miles Bader <miles@gnu.org>
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MICROBLAZE_STAT_H
|
||||
#define _ASM_MICROBLAZE_STAT_H
|
||||
|
||||
#include <linux/posix_types.h>
|
||||
|
||||
#define STAT_HAVE_NSEC 1
|
||||
|
||||
struct stat {
|
||||
unsigned long st_dev;
|
||||
unsigned long st_ino;
|
||||
unsigned int st_mode;
|
||||
unsigned int st_nlink;
|
||||
unsigned int st_uid;
|
||||
unsigned int st_gid;
|
||||
unsigned long st_rdev;
|
||||
unsigned long __pad1;
|
||||
long st_size;
|
||||
int st_blksize;
|
||||
int __pad2;
|
||||
long st_blocks;
|
||||
int st_atime;
|
||||
unsigned int st_atime_nsec;
|
||||
int st_mtime;
|
||||
unsigned int st_mtime_nsec;
|
||||
int st_ctime;
|
||||
unsigned int st_ctime_nsec;
|
||||
unsigned long __unused4;
|
||||
unsigned long __unused5;
|
||||
};
|
||||
|
||||
struct stat64 {
|
||||
unsigned long long st_dev; /* Device. */
|
||||
unsigned long long st_ino; /* File serial number. */
|
||||
unsigned int st_mode; /* File mode. */
|
||||
unsigned int st_nlink; /* Link count. */
|
||||
unsigned int st_uid; /* User ID of the file's owner. */
|
||||
unsigned int st_gid; /* Group ID of the file's group. */
|
||||
unsigned long long st_rdev; /* Device number, if device. */
|
||||
unsigned long long __pad1;
|
||||
long long st_size; /* Size of file, in bytes. */
|
||||
int st_blksize; /* Optimal block size for I/O. */
|
||||
int __pad2;
|
||||
long long st_blocks; /* Number 512-byte blocks allocated. */
|
||||
int st_atime; /* Time of last access. */
|
||||
unsigned int st_atime_nsec;
|
||||
int st_mtime; /* Time of last modification. */
|
||||
unsigned int st_mtime_nsec;
|
||||
int st_ctime; /* Time of last status change. */
|
||||
unsigned int st_ctime_nsec;
|
||||
unsigned int __unused4;
|
||||
unsigned int __unused5;
|
||||
};
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_STAT_H */
|
||||
|
||||
#include <asm-generic/stat.h>
|
||||
|
|
|
@ -1,8 +1 @@
|
|||
#ifndef _ASM_MICROBLAZE_SWAB_H
|
||||
#define _ASM_MICROBLAZE_SWAB_H
|
||||
|
||||
#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__)
|
||||
#define __SWAB_64_THRU_32__
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_SWAB_H */
|
||||
#include <asm-generic/swab.h>
|
||||
|
|
|
@ -1,48 +1,8 @@
|
|||
#ifndef __ASM_MICROBLAZE_SYSCALLS_H
|
||||
#define __ASM_MICROBLAZE_SYSCALLS_H
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/signal.h>
|
||||
asmlinkage long sys_clone(int flags, unsigned long stack, struct pt_regs *regs);
|
||||
#define sys_clone sys_clone
|
||||
|
||||
/* FIXME will be removed */
|
||||
asmlinkage int sys_ipc(uint call, int first, int second,
|
||||
int third, void *ptr, long fifth);
|
||||
#include <asm-generic/syscalls.h>
|
||||
|
||||
struct pt_regs;
|
||||
asmlinkage int sys_vfork(struct pt_regs *regs);
|
||||
asmlinkage int sys_clone(int flags, unsigned long stack, struct pt_regs *regs);
|
||||
asmlinkage int sys_execve(char __user *filenamei, char __user *__user *argv,
|
||||
char __user *__user *envp, struct pt_regs *regs);
|
||||
|
||||
asmlinkage unsigned long sys_mmap2(unsigned long addr, size_t len,
|
||||
unsigned long prot, unsigned long flags,
|
||||
unsigned long fd, unsigned long pgoff);
|
||||
|
||||
asmlinkage unsigned long sys_mmap(unsigned long addr, size_t len,
|
||||
unsigned long prot, unsigned long flags,
|
||||
unsigned long fd, off_t offset);
|
||||
|
||||
/* from signal.c */
|
||||
asmlinkage int sys_sigsuspend(old_sigset_t mask, struct pt_regs *regs);
|
||||
|
||||
asmlinkage int sys_rt_sigsuspend(sigset_t __user *unewset, size_t sigsetsize,
|
||||
struct pt_regs *regs);
|
||||
|
||||
asmlinkage int sys_sigaction(int sig, const struct old_sigaction *act,
|
||||
struct old_sigaction *oact);
|
||||
|
||||
asmlinkage long sys_rt_sigaction(int sig, const struct sigaction __user *act,
|
||||
struct sigaction __user *oact, size_t sigsetsize);
|
||||
|
||||
asmlinkage int sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss,
|
||||
struct pt_regs *regs);
|
||||
|
||||
asmlinkage int sys_sigreturn(struct pt_regs *regs);
|
||||
|
||||
asmlinkage int sys_rt_sigreturn(struct pt_regs *regs);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* __ASM_MICROBLAZE_SYSCALLS_H */
|
||||
|
|
|
@ -13,6 +13,9 @@
|
|||
#include <asm/setup.h>
|
||||
#include <asm/irqflags.h>
|
||||
|
||||
#include <asm-generic/cmpxchg.h>
|
||||
#include <asm-generic/cmpxchg-local.h>
|
||||
|
||||
struct task_struct;
|
||||
struct thread_info;
|
||||
|
||||
|
|
|
@ -1,203 +1 @@
|
|||
/*
|
||||
* Copyright (C) 2006 Atmark Techno, Inc.
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MICROBLAZE_TERMBITS_H
|
||||
#define _ASM_MICROBLAZE_TERMBITS_H
|
||||
|
||||
#include <linux/posix_types.h>
|
||||
|
||||
typedef unsigned char cc_t;
|
||||
typedef unsigned int speed_t;
|
||||
typedef unsigned int tcflag_t;
|
||||
|
||||
#define NCCS 19
|
||||
struct termios {
|
||||
tcflag_t c_iflag; /* input mode flags */
|
||||
tcflag_t c_oflag; /* output mode flags */
|
||||
tcflag_t c_cflag; /* control mode flags */
|
||||
tcflag_t c_lflag; /* local mode flags */
|
||||
cc_t c_line; /* line discipline */
|
||||
cc_t c_cc[NCCS]; /* control characters */
|
||||
};
|
||||
|
||||
struct ktermios {
|
||||
tcflag_t c_iflag; /* input mode flags */
|
||||
tcflag_t c_oflag; /* output mode flags */
|
||||
tcflag_t c_cflag; /* control mode flags */
|
||||
tcflag_t c_lflag; /* local mode flags */
|
||||
cc_t c_line; /* line discipline */
|
||||
cc_t c_cc[NCCS]; /* control characters */
|
||||
speed_t c_ispeed; /* input speed */
|
||||
speed_t c_ospeed; /* output speed */
|
||||
};
|
||||
|
||||
/* c_cc characters */
|
||||
|
||||
#define VINTR 0
|
||||
#define VQUIT 1
|
||||
#define VERASE 2
|
||||
#define VKILL 3
|
||||
#define VEOF 4
|
||||
#define VTIME 5
|
||||
#define VMIN 6
|
||||
#define VSWTC 7
|
||||
#define VSTART 8
|
||||
#define VSTOP 9
|
||||
#define VSUSP 10
|
||||
#define VEOL 11
|
||||
#define VREPRINT 12
|
||||
#define VDISCARD 13
|
||||
#define VWERASE 14
|
||||
#define VLNEXT 15
|
||||
#define VEOL2 16
|
||||
|
||||
/* c_iflag bits */
|
||||
|
||||
#define IGNBRK 0000001
|
||||
#define BRKINT 0000002
|
||||
#define IGNPAR 0000004
|
||||
#define PARMRK 0000010
|
||||
#define INPCK 0000020
|
||||
#define ISTRIP 0000040
|
||||
#define INLCR 0000100
|
||||
#define IGNCR 0000200
|
||||
#define ICRNL 0000400
|
||||
#define IUCLC 0001000
|
||||
#define IXON 0002000
|
||||
#define IXANY 0004000
|
||||
#define IXOFF 0010000
|
||||
#define IMAXBEL 0020000
|
||||
#define IUTF8 0040000
|
||||
|
||||
/* c_oflag bits */
|
||||
|
||||
#define OPOST 0000001
|
||||
#define OLCUC 0000002
|
||||
#define ONLCR 0000004
|
||||
#define OCRNL 0000010
|
||||
#define ONOCR 0000020
|
||||
#define ONLRET 0000040
|
||||
#define OFILL 0000100
|
||||
#define OFDEL 0000200
|
||||
#define NLDLY 0000400
|
||||
#define NL0 0000000
|
||||
#define NL1 0000400
|
||||
#define CRDLY 0003000
|
||||
#define CR0 0000000
|
||||
#define CR1 0001000
|
||||
#define CR2 0002000
|
||||
#define CR3 0003000
|
||||
#define TABDLY 0014000
|
||||
#define TAB0 0000000
|
||||
#define TAB1 0004000
|
||||
#define TAB2 0010000
|
||||
#define TAB3 0014000
|
||||
#define XTABS 0014000
|
||||
#define BSDLY 0020000
|
||||
#define BS0 0000000
|
||||
#define BS1 0020000
|
||||
#define VTDLY 0040000
|
||||
#define VT0 0000000
|
||||
#define VT1 0040000
|
||||
#define FFDLY 0100000
|
||||
#define FF0 0000000
|
||||
#define FF1 0100000
|
||||
|
||||
/* c_cflag bit meaning */
|
||||
|
||||
#define CBAUD 0010017
|
||||
#define B0 0000000 /* hang up */
|
||||
#define B50 0000001
|
||||
#define B75 0000002
|
||||
#define B110 0000003
|
||||
#define B134 0000004
|
||||
#define B150 0000005
|
||||
#define B200 0000006
|
||||
#define B300 0000007
|
||||
#define B600 0000010
|
||||
#define B1200 0000011
|
||||
#define B1800 0000012
|
||||
#define B2400 0000013
|
||||
#define B4800 0000014
|
||||
#define B9600 0000015
|
||||
#define B19200 0000016
|
||||
#define B38400 0000017
|
||||
#define EXTA B19200
|
||||
#define EXTB B38400
|
||||
#define CSIZE 0000060
|
||||
#define CS5 0000000
|
||||
#define CS6 0000020
|
||||
#define CS7 0000040
|
||||
#define CS8 0000060
|
||||
#define CSTOPB 0000100
|
||||
#define CREAD 0000200
|
||||
#define PARENB 0000400
|
||||
#define PARODD 0001000
|
||||
#define HUPCL 0002000
|
||||
#define CLOCAL 0004000
|
||||
#define CBAUDEX 0010000
|
||||
#define B57600 0010001
|
||||
#define B115200 0010002
|
||||
#define B230400 0010003
|
||||
#define B460800 0010004
|
||||
#define B500000 0010005
|
||||
#define B576000 0010006
|
||||
#define B921600 0010007
|
||||
#define BOTHER 0010000
|
||||
#define B1000000 0010010
|
||||
#define B1152000 0010011
|
||||
#define B1500000 0010012
|
||||
#define B2000000 0010013
|
||||
#define B2500000 0010014
|
||||
#define B3000000 0010015
|
||||
#define B3500000 0010016
|
||||
#define B4000000 0010017
|
||||
#define CIBAUD 002003600000 /* input baud rate (not used) */
|
||||
#define CMSPAR 010000000000 /* mark or space (stick) parity */
|
||||
#define CRTSCTS 020000000000 /* flow control */
|
||||
|
||||
#define IBSHIFT 16 /* Shift from CBAUD to CIBAUD */
|
||||
|
||||
/* c_lflag bits */
|
||||
|
||||
#define ISIG 0000001
|
||||
#define ICANON 0000002
|
||||
#define XCASE 0000004
|
||||
#define ECHO 0000010
|
||||
#define ECHOE 0000020
|
||||
#define ECHOK 0000040
|
||||
#define ECHONL 0000100
|
||||
#define NOFLSH 0000200
|
||||
#define TOSTOP 0000400
|
||||
#define ECHOCTL 0001000
|
||||
#define ECHOPRT 0002000
|
||||
#define ECHOKE 0004000
|
||||
#define FLUSHO 0010000
|
||||
#define PENDIN 0040000
|
||||
#define IEXTEN 0100000
|
||||
|
||||
/* tcflow() and TCXONC use these */
|
||||
|
||||
#define TCOOFF 0
|
||||
#define TCOON 1
|
||||
#define TCIOFF 2
|
||||
#define TCION 3
|
||||
|
||||
/* tcflush() and TCFLSH use these */
|
||||
|
||||
#define TCIFLUSH 0
|
||||
#define TCOFLUSH 1
|
||||
#define TCIOFLUSH 2
|
||||
|
||||
/* tcsetattr uses these */
|
||||
|
||||
#define TCSANOW 0
|
||||
#define TCSADRAIN 1
|
||||
#define TCSAFLUSH 2
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_TERMBITS_H */
|
||||
#include <asm-generic/termbits.h>
|
||||
|
|
|
@ -1,88 +1 @@
|
|||
/*
|
||||
* Copyright (C) 2006 Atmark Techno, Inc.
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MICROBLAZE_TERMIOS_H
|
||||
#define _ASM_MICROBLAZE_TERMIOS_H
|
||||
|
||||
#include <linux/string.h>
|
||||
#include <asm/termbits.h>
|
||||
#include <asm/ioctls.h>
|
||||
|
||||
struct winsize {
|
||||
unsigned short ws_row;
|
||||
unsigned short ws_col;
|
||||
unsigned short ws_xpixel;
|
||||
unsigned short ws_ypixel;
|
||||
};
|
||||
|
||||
#define NCC 8
|
||||
struct termio {
|
||||
unsigned short c_iflag; /* input mode flags */
|
||||
unsigned short c_oflag; /* output mode flags */
|
||||
unsigned short c_cflag; /* control mode flags */
|
||||
unsigned short c_lflag; /* local mode flags */
|
||||
unsigned char c_line; /* line discipline */
|
||||
unsigned char c_cc[NCC]; /* control characters */
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
/* intr=^C quit=^| erase=del kill=^U
|
||||
eof=^D vtime=\0 vmin=\1 sxtc=\0
|
||||
start=^Q stop=^S susp=^Z eol=\0
|
||||
reprint=^R discard=^U werase=^W lnext=^V
|
||||
eol2=\0
|
||||
*/
|
||||
#define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0"
|
||||
#endif
|
||||
|
||||
/* Modem lines */
|
||||
|
||||
#define TIOCM_LE 0x001
|
||||
#define TIOCM_DTR 0x002
|
||||
#define TIOCM_RTS 0x004
|
||||
#define TIOCM_ST 0x008
|
||||
#define TIOCM_SR 0x010
|
||||
#define TIOCM_CTS 0x020
|
||||
#define TIOCM_CAR 0x040
|
||||
#define TIOCM_RNG 0x080
|
||||
#define TIOCM_DSR 0x100
|
||||
#define TIOCM_CD TIOCM_CAR
|
||||
#define TIOCM_RI TIOCM_RNG
|
||||
#define TIOCM_OUT1 0x2000
|
||||
#define TIOCM_OUT2 0x4000
|
||||
#define TIOCM_LOOP 0x8000
|
||||
|
||||
/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
|
||||
|
||||
/* Line disciplines */
|
||||
|
||||
#define N_TTY 0
|
||||
#define N_SLIP 1
|
||||
#define N_MOUSE 2
|
||||
#define N_PPP 3
|
||||
#define N_STRIP 4
|
||||
#define N_AX25 5
|
||||
#define N_X25 6 /* X.25 async */
|
||||
#define N_6PACK 7
|
||||
#define N_MASC 8 /* Reserved for Mobitex module <kaz@cafe.net> */
|
||||
#define N_R3964 9 /* Reserved for Simatic R3964 module */
|
||||
#define N_PROFIBUS_FDL 10 /* Reserved for Profibus <Dave@mvhi.com> */
|
||||
#define N_IRDA 11 /* Linux IR - http://irda.sourceforge.net/ */
|
||||
#define N_SMSBLOCK 12 /* SMS block mode - for talking to GSM data cards
|
||||
about SMS messages */
|
||||
#define N_HDLC 13 /* synchronous HDLC */
|
||||
#define N_SYNC_PPP 14
|
||||
#define N_HCI 15 /* Bluetooth HCI UART */
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <asm-generic/termios-base.h>
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_TERMIOS_H */
|
||||
#include <asm-generic/termios.h>
|
||||
|
|
|
@ -75,8 +75,6 @@ struct thread_info {
|
|||
|
||||
/*
|
||||
* macros/functions for gaining access to the thread information structure
|
||||
*
|
||||
* preempt_count needs to be 1 initially, until the scheduler is functional.
|
||||
*/
|
||||
#define INIT_THREAD_INFO(tsk) \
|
||||
{ \
|
||||
|
@ -84,7 +82,7 @@ struct thread_info {
|
|||
.exec_domain = &default_exec_domain, \
|
||||
.flags = 0, \
|
||||
.cpu = 0, \
|
||||
.preempt_count = 1, \
|
||||
.preempt_count = INIT_PREEMPT_COUNT, \
|
||||
.addr_limit = KERNEL_DS, \
|
||||
.restart_block = { \
|
||||
.fn = do_no_restart_syscall, \
|
||||
|
|
|
@ -9,10 +9,8 @@
|
|||
#ifndef _ASM_MICROBLAZE_TIMEX_H
|
||||
#define _ASM_MICROBLAZE_TIMEX_H
|
||||
|
||||
#include <asm-generic/timex.h>
|
||||
|
||||
#define CLOCK_TICK_RATE 1000 /* Timer input freq. */
|
||||
|
||||
typedef unsigned long cycles_t;
|
||||
|
||||
#define get_cycles() (0)
|
||||
|
||||
#endif /* _ASM_TIMEX_H */
|
||||
|
|
|
@ -1,38 +1 @@
|
|||
/*
|
||||
* Copyright (C) Atmark Techno, Inc.
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MICROBLAZE_TYPES_H
|
||||
#define _ASM_MICROBLAZE_TYPES_H
|
||||
|
||||
/*
|
||||
* This file is never included by application software unless
|
||||
* explicitly requested (e.g., via linux/types.h) in which case the
|
||||
* application is Linux specific so (user-) name space pollution is
|
||||
* not a major issue. However, for interoperability, libraries still
|
||||
* need to be careful to avoid a name clashes.
|
||||
*/
|
||||
|
||||
#include <asm-generic/int-ll64.h>
|
||||
|
||||
# ifndef __ASSEMBLY__
|
||||
|
||||
typedef unsigned short umode_t;
|
||||
|
||||
/*
|
||||
* These aren't exported outside the kernel to avoid name space clashes
|
||||
*/
|
||||
# ifdef __KERNEL__
|
||||
# define BITS_PER_LONG 32
|
||||
|
||||
/* Dma addresses are 32-bits wide. */
|
||||
|
||||
typedef u32 dma_addr_t;
|
||||
|
||||
# endif/* __KERNEL__ */
|
||||
# endif /* __ASSEMBLY__ */
|
||||
#endif /* _ASM_MICROBLAZE_TYPES_H */
|
||||
#include <asm-generic/types.h>
|
||||
|
|
|
@ -1,22 +1 @@
|
|||
/*
|
||||
* Copyright (C) 2006 Atmark Techno, Inc.
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_MICROBLAZE_UCONTEXT_H
|
||||
#define _ASM_MICROBLAZE_UCONTEXT_H
|
||||
|
||||
#include <asm/sigcontext.h>
|
||||
|
||||
struct ucontext {
|
||||
unsigned long uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
stack_t uc_stack;
|
||||
struct sigcontext uc_mcontext;
|
||||
sigset_t uc_sigmask; /* mask last for extensibility */
|
||||
};
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_UCONTEXT_H */
|
||||
#include <asm-generic/ucontext.h>
|
||||
|
|
|
@ -380,8 +380,10 @@
|
|||
#define __NR_accept04 362 /* new */
|
||||
#define __NR_preadv 363 /* new */
|
||||
#define __NR_pwritev 364 /* new */
|
||||
#define __NR_rt_tgsigqueueinfo 365 /* new */
|
||||
#define __NR_perf_counter_open 366 /* new */
|
||||
|
||||
#define __NR_syscalls 365
|
||||
#define __NR_syscalls 367
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#ifndef __ASSEMBLY__
|
||||
|
@ -408,7 +410,7 @@
|
|||
#define __ARCH_WANT_SYS_SIGPENDING
|
||||
#define __ARCH_WANT_SYS_SIGPROCMASK
|
||||
#define __ARCH_WANT_SYS_RT_SIGACTION
|
||||
/* #define __ARCH_WANT_SYS_RT_SIGSUSPEND */
|
||||
#define __ARCH_WANT_SYS_RT_SIGSUSPEND
|
||||
|
||||
/*
|
||||
* "Conditional" syscalls
|
||||
|
|
|
@ -1 +1 @@
|
|||
|
||||
#include <asm-generic/vga.h>
|
||||
|
|
|
@ -551,30 +551,22 @@ no_work_pending:
|
|||
rtid r14, 0
|
||||
nop
|
||||
|
||||
sys_vfork_wrapper:
|
||||
brid sys_vfork
|
||||
sys_vfork:
|
||||
brid microblaze_vfork
|
||||
addk r5, r1, r0
|
||||
|
||||
sys_clone_wrapper:
|
||||
brid sys_clone
|
||||
sys_clone:
|
||||
brid microblaze_clone
|
||||
addk r7, r1, r0
|
||||
|
||||
sys_execve_wrapper:
|
||||
brid sys_execve
|
||||
sys_execve:
|
||||
brid microblaze_execve
|
||||
addk r8, r1, r0
|
||||
|
||||
sys_sigreturn_wrapper:
|
||||
brid sys_sigreturn
|
||||
addk r5, r1, r0
|
||||
|
||||
sys_rt_sigreturn_wrapper:
|
||||
brid sys_rt_sigreturn
|
||||
addk r5, r1, r0
|
||||
|
||||
sys_sigsuspend_wrapper:
|
||||
brid sys_rt_sigsuspend
|
||||
addk r6, r1, r0
|
||||
|
||||
sys_rt_sigsuspend_wrapper:
|
||||
brid sys_rt_sigsuspend
|
||||
addk r7, r1, r0
|
||||
|
|
|
@ -429,12 +429,11 @@ C_ENTRY(ret_from_fork):
|
|||
brid ret_from_trap; /* Do normal trap return */
|
||||
nop;
|
||||
|
||||
C_ENTRY(sys_vfork_wrapper):
|
||||
C_ENTRY(sys_vfork):
|
||||
brid microblaze_vfork /* Do real work (tail-call) */
|
||||
la r5, r1, PTO
|
||||
brid sys_vfork /* Do real work (tail-call) */
|
||||
nop
|
||||
|
||||
C_ENTRY(sys_clone_wrapper):
|
||||
C_ENTRY(sys_clone):
|
||||
bnei r6, 1f; /* See if child SP arg (arg 1) is 0. */
|
||||
lwi r6, r1, PTO+PT_R1; /* If so, use paret's stack ptr */
|
||||
1: la r7, r1, PTO; /* Arg 2: parent context */
|
||||
|
@ -444,20 +443,9 @@ C_ENTRY(sys_clone_wrapper):
|
|||
brid do_fork /* Do real work (tail-call) */
|
||||
nop;
|
||||
|
||||
C_ENTRY(sys_execve_wrapper):
|
||||
C_ENTRY(sys_execve):
|
||||
la r8, r1, PTO; /* add user context as 4th arg */
|
||||
brid sys_execve; /* Do real work (tail-call).*/
|
||||
nop;
|
||||
|
||||
C_ENTRY(sys_sigsuspend_wrapper):
|
||||
swi r3, r1, PTO+PT_R3; /* restore saved r3, r4 registers */
|
||||
swi r4, r1, PTO+PT_R4;
|
||||
la r6, r1, PTO; /* add user context as 2nd arg */
|
||||
bralid r15, sys_sigsuspend; /* Do real work.*/
|
||||
nop;
|
||||
lwi r3, r1, PTO+PT_R3; /* restore saved r3, r4 registers */
|
||||
lwi r4, r1, PTO+PT_R4;
|
||||
bri ret_from_trap /* fall through will not work here due to align */
|
||||
brid microblaze_execve; /* Do real work (tail-call).*/
|
||||
nop;
|
||||
|
||||
C_ENTRY(sys_rt_sigsuspend_wrapper):
|
||||
|
@ -471,18 +459,6 @@ C_ENTRY(sys_rt_sigsuspend_wrapper):
|
|||
bri ret_from_trap /* fall through will not work here due to align */
|
||||
nop;
|
||||
|
||||
|
||||
C_ENTRY(sys_sigreturn_wrapper):
|
||||
swi r3, r1, PTO+PT_R3; /* restore saved r3, r4 registers */
|
||||
swi r4, r1, PTO+PT_R4;
|
||||
la r5, r1, PTO; /* add user context as 1st arg */
|
||||
brlid r15, sys_sigreturn; /* Do real work.*/
|
||||
nop;
|
||||
lwi r3, r1, PTO+PT_R3; /* restore saved r3, r4 registers */
|
||||
lwi r4, r1, PTO+PT_R4;
|
||||
bri ret_from_trap /* fall through will not work here due to align */
|
||||
nop;
|
||||
|
||||
C_ENTRY(sys_rt_sigreturn_wrapper):
|
||||
swi r3, r1, PTO+PT_R3; /* restore saved r3, r4 registers */
|
||||
swi r4, r1, PTO+PT_R4;
|
||||
|
|
|
@ -45,91 +45,8 @@
|
|||
|
||||
asmlinkage int do_signal(struct pt_regs *regs, sigset_t *oldset, int in_sycall);
|
||||
|
||||
/*
|
||||
* Atomically swap in the new signal mask, and wait for a signal.
|
||||
*/
|
||||
asmlinkage int
|
||||
sys_sigsuspend(old_sigset_t mask, struct pt_regs *regs)
|
||||
{
|
||||
sigset_t saveset;
|
||||
|
||||
mask &= _BLOCKABLE;
|
||||
spin_lock_irq(¤t->sighand->siglock);
|
||||
saveset = current->blocked;
|
||||
siginitset(¤t->blocked, mask);
|
||||
recalc_sigpending();
|
||||
spin_unlock_irq(¤t->sighand->siglock);
|
||||
|
||||
regs->r3 = -EINTR;
|
||||
while (1) {
|
||||
current->state = TASK_INTERRUPTIBLE;
|
||||
schedule();
|
||||
if (do_signal(regs, &saveset, 1))
|
||||
return -EINTR;
|
||||
}
|
||||
}
|
||||
|
||||
asmlinkage int
|
||||
sys_rt_sigsuspend(sigset_t __user *unewset, size_t sigsetsize,
|
||||
struct pt_regs *regs)
|
||||
{
|
||||
sigset_t saveset, newset;
|
||||
|
||||
/* XXX: Don't preclude handling different sized sigset_t's. */
|
||||
if (sigsetsize != sizeof(sigset_t))
|
||||
return -EINVAL;
|
||||
|
||||
if (copy_from_user(&newset, unewset, sizeof(newset)))
|
||||
return -EFAULT;
|
||||
sigdelsetmask(&newset, ~_BLOCKABLE);
|
||||
spin_lock_irq(¤t->sighand->siglock);
|
||||
saveset = current->blocked;
|
||||
current->blocked = newset;
|
||||
recalc_sigpending();
|
||||
spin_unlock_irq(¤t->sighand->siglock);
|
||||
|
||||
regs->r3 = -EINTR;
|
||||
while (1) {
|
||||
current->state = TASK_INTERRUPTIBLE;
|
||||
schedule();
|
||||
if (do_signal(regs, &saveset, 1))
|
||||
return -EINTR;
|
||||
}
|
||||
}
|
||||
|
||||
asmlinkage int
|
||||
sys_sigaction(int sig, const struct old_sigaction *act,
|
||||
struct old_sigaction *oact)
|
||||
{
|
||||
struct k_sigaction new_ka, old_ka;
|
||||
int ret;
|
||||
|
||||
if (act) {
|
||||
old_sigset_t mask;
|
||||
if (!access_ok(VERIFY_READ, act, sizeof(*act)) ||
|
||||
__get_user(new_ka.sa.sa_handler, &act->sa_handler) ||
|
||||
__get_user(new_ka.sa.sa_restorer, &act->sa_restorer))
|
||||
return -EFAULT;
|
||||
__get_user(new_ka.sa.sa_flags, &act->sa_flags);
|
||||
__get_user(mask, &act->sa_mask);
|
||||
siginitset(&new_ka.sa.sa_mask, mask);
|
||||
}
|
||||
|
||||
ret = do_sigaction(sig, act ? &new_ka : NULL, oact ? &old_ka : NULL);
|
||||
|
||||
if (!ret && oact) {
|
||||
if (!access_ok(VERIFY_WRITE, oact, sizeof(*oact)) ||
|
||||
__put_user(old_ka.sa.sa_handler, &oact->sa_handler) ||
|
||||
__put_user(old_ka.sa.sa_restorer, &oact->sa_restorer))
|
||||
return -EFAULT;
|
||||
__put_user(old_ka.sa.sa_flags, &oact->sa_flags);
|
||||
__put_user(old_ka.sa.sa_mask.sig[0], &oact->sa_mask);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
asmlinkage int
|
||||
asmlinkage long
|
||||
sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss,
|
||||
struct pt_regs *regs)
|
||||
{
|
||||
|
@ -139,7 +56,6 @@ sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss,
|
|||
/*
|
||||
* Do a signal return; undo the signal stack.
|
||||
*/
|
||||
|
||||
struct sigframe {
|
||||
struct sigcontext sc;
|
||||
unsigned long extramask[_NSIG_WORDS-1];
|
||||
|
@ -176,40 +92,7 @@ static int restore_sigcontext(struct pt_regs *regs,
|
|||
return err;
|
||||
}
|
||||
|
||||
asmlinkage int sys_sigreturn(struct pt_regs *regs)
|
||||
{
|
||||
struct sigframe *frame =
|
||||
(struct sigframe *)(regs->r1 + STATE_SAVE_ARG_SPACE);
|
||||
|
||||
sigset_t set;
|
||||
int rval;
|
||||
|
||||
if (!access_ok(VERIFY_READ, frame, sizeof(*frame)))
|
||||
goto badframe;
|
||||
|
||||
if (__get_user(set.sig[0], &frame->sc.oldmask)
|
||||
|| (_NSIG_WORDS > 1
|
||||
&& __copy_from_user(&set.sig[1], &frame->extramask,
|
||||
sizeof(frame->extramask))))
|
||||
goto badframe;
|
||||
|
||||
sigdelsetmask(&set, ~_BLOCKABLE);
|
||||
|
||||
spin_lock_irq(¤t->sighand->siglock);
|
||||
current->blocked = set;
|
||||
recalc_sigpending();
|
||||
spin_unlock_irq(¤t->sighand->siglock);
|
||||
|
||||
if (restore_sigcontext(regs, &frame->sc, &rval))
|
||||
goto badframe;
|
||||
return rval;
|
||||
|
||||
badframe:
|
||||
force_sig(SIGSEGV, current);
|
||||
return 0;
|
||||
}
|
||||
|
||||
asmlinkage int sys_rt_sigreturn(struct pt_regs *regs)
|
||||
asmlinkage long sys_rt_sigreturn(struct pt_regs *regs)
|
||||
{
|
||||
struct rt_sigframe __user *frame =
|
||||
(struct rt_sigframe __user *)(regs->r1 + STATE_SAVE_ARG_SPACE);
|
||||
|
@ -324,21 +207,17 @@ static void setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
|
|||
/* Set up to return from userspace. If provided, use a stub
|
||||
already in userspace. */
|
||||
/* minus 8 is offset to cater for "rtsd r15,8" */
|
||||
if (ka->sa.sa_flags & SA_RESTORER) {
|
||||
regs->r15 = ((unsigned long)ka->sa.sa_restorer)-8;
|
||||
} else {
|
||||
/* addi r12, r0, __NR_sigreturn */
|
||||
err |= __put_user(0x31800000 | __NR_rt_sigreturn ,
|
||||
frame->tramp + 0);
|
||||
/* brki r14, 0x8 */
|
||||
err |= __put_user(0xb9cc0008, frame->tramp + 1);
|
||||
/* addi r12, r0, __NR_sigreturn */
|
||||
err |= __put_user(0x31800000 | __NR_rt_sigreturn ,
|
||||
frame->tramp + 0);
|
||||
/* brki r14, 0x8 */
|
||||
err |= __put_user(0xb9cc0008, frame->tramp + 1);
|
||||
|
||||
/* Return from sighandler will jump to the tramp.
|
||||
Negative 8 offset because return is rtsd r15, 8 */
|
||||
regs->r15 = ((unsigned long)frame->tramp)-8;
|
||||
/* Return from sighandler will jump to the tramp.
|
||||
Negative 8 offset because return is rtsd r15, 8 */
|
||||
regs->r15 = ((unsigned long)frame->tramp)-8;
|
||||
|
||||
__invalidate_cache_sigtramp((unsigned long)frame->tramp);
|
||||
}
|
||||
__invalidate_cache_sigtramp((unsigned long)frame->tramp);
|
||||
|
||||
if (err)
|
||||
goto give_sigsegv;
|
||||
|
@ -405,7 +284,7 @@ do_restart:
|
|||
* OK, we're invoking a handler
|
||||
*/
|
||||
|
||||
static void
|
||||
static int
|
||||
handle_signal(unsigned long sig, struct k_sigaction *ka,
|
||||
siginfo_t *info, sigset_t *oldset, struct pt_regs *regs)
|
||||
{
|
||||
|
@ -426,6 +305,7 @@ handle_signal(unsigned long sig, struct k_sigaction *ka,
|
|||
recalc_sigpending();
|
||||
spin_unlock_irq(¤t->sighand->siglock);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -456,7 +336,9 @@ int do_signal(struct pt_regs *regs, sigset_t *oldset, int in_syscall)
|
|||
if (kernel_mode(regs))
|
||||
return 1;
|
||||
|
||||
if (!oldset)
|
||||
if (current_thread_info()->status & TS_RESTORE_SIGMASK)
|
||||
oldset = ¤t->saved_sigmask;
|
||||
else
|
||||
oldset = ¤t->blocked;
|
||||
|
||||
signr = get_signal_to_deliver(&info, &ka, regs, NULL);
|
||||
|
@ -464,13 +346,31 @@ int do_signal(struct pt_regs *regs, sigset_t *oldset, int in_syscall)
|
|||
/* Whee! Actually deliver the signal. */
|
||||
if (in_syscall)
|
||||
handle_restart(regs, &ka, 1);
|
||||
handle_signal(signr, &ka, &info, oldset, regs);
|
||||
if (handle_signal(signr, &ka, &info, oldset, regs)) {
|
||||
/*
|
||||
* A signal was successfully delivered; the saved
|
||||
* sigmask will have been stored in the signal frame,
|
||||
* and will be restored by sigreturn, so we can simply
|
||||
* clear the TS_RESTORE_SIGMASK flag.
|
||||
*/
|
||||
current_thread_info()->status &=
|
||||
~TS_RESTORE_SIGMASK;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (in_syscall)
|
||||
handle_restart(regs, NULL, 0);
|
||||
|
||||
/*
|
||||
* If there's no signal to deliver, we just put the saved sigmask
|
||||
* back.
|
||||
*/
|
||||
if (current_thread_info()->status & TS_RESTORE_SIGMASK) {
|
||||
current_thread_info()->status &= ~TS_RESTORE_SIGMASK;
|
||||
sigprocmask(SIG_SETMASK, ¤t->saved_sigmask, NULL);
|
||||
}
|
||||
|
||||
/* Did we come from a system call? */
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
*
|
||||
* This is really horribly ugly. This will be remove with new toolchain.
|
||||
*/
|
||||
asmlinkage int
|
||||
asmlinkage long
|
||||
sys_ipc(uint call, int first, int second, int third, void *ptr, long fifth)
|
||||
{
|
||||
int version, ret;
|
||||
|
@ -134,20 +134,20 @@ sys_ipc(uint call, int first, int second, int third, void *ptr, long fifth)
|
|||
return ret;
|
||||
}
|
||||
|
||||
asmlinkage int sys_vfork(struct pt_regs *regs)
|
||||
asmlinkage long microblaze_vfork(struct pt_regs *regs)
|
||||
{
|
||||
return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, regs->r1,
|
||||
regs, 0, NULL, NULL);
|
||||
}
|
||||
|
||||
asmlinkage int sys_clone(int flags, unsigned long stack, struct pt_regs *regs)
|
||||
asmlinkage long microblaze_clone(int flags, unsigned long stack, struct pt_regs *regs)
|
||||
{
|
||||
if (!stack)
|
||||
stack = regs->r1;
|
||||
return do_fork(flags, stack, regs, 0, NULL, NULL);
|
||||
}
|
||||
|
||||
asmlinkage int sys_execve(char __user *filenamei, char __user *__user *argv,
|
||||
asmlinkage long microblaze_execve(char __user *filenamei, char __user *__user *argv,
|
||||
char __user *__user *envp, struct pt_regs *regs)
|
||||
{
|
||||
int error;
|
||||
|
@ -163,8 +163,8 @@ out:
|
|||
return error;
|
||||
}
|
||||
|
||||
asmlinkage unsigned long
|
||||
sys_mmap2(unsigned long addr, size_t len,
|
||||
asmlinkage long
|
||||
sys_mmap2(unsigned long addr, unsigned long len,
|
||||
unsigned long prot, unsigned long flags,
|
||||
unsigned long fd, unsigned long pgoff)
|
||||
{
|
||||
|
@ -189,18 +189,18 @@ out:
|
|||
return ret;
|
||||
}
|
||||
|
||||
asmlinkage unsigned long sys_mmap(unsigned long addr, size_t len,
|
||||
asmlinkage long sys_mmap(unsigned long addr, unsigned long len,
|
||||
unsigned long prot, unsigned long flags,
|
||||
unsigned long fd, off_t offset)
|
||||
unsigned long fd, off_t pgoff)
|
||||
{
|
||||
int err = -EINVAL;
|
||||
|
||||
if (offset & ~PAGE_MASK) {
|
||||
if (pgoff & ~PAGE_MASK) {
|
||||
printk(KERN_INFO "no pagemask in mmap\r\n");
|
||||
goto out;
|
||||
}
|
||||
|
||||
err = sys_mmap2(addr, len, prot, flags, fd, offset >> PAGE_SHIFT);
|
||||
err = sys_mmap2(addr, len, prot, flags, fd, pgoff >> PAGE_SHIFT);
|
||||
out:
|
||||
return err;
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ ENTRY(sys_call_table)
|
|||
.long sys_creat
|
||||
.long sys_link
|
||||
.long sys_unlink /* 10 */
|
||||
.long sys_execve_wrapper
|
||||
.long sys_execve
|
||||
.long sys_chdir
|
||||
.long sys_time
|
||||
.long sys_mknod
|
||||
|
@ -71,12 +71,12 @@ ENTRY(sys_call_table)
|
|||
.long sys_getppid
|
||||
.long sys_getpgrp /* 65 */
|
||||
.long sys_setsid
|
||||
.long sys_sigaction
|
||||
.long sys_ni_syscall /* sys_sigaction */
|
||||
.long sys_sgetmask
|
||||
.long sys_ssetmask
|
||||
.long sys_setreuid /* 70 */
|
||||
.long sys_setregid
|
||||
.long sys_sigsuspend_wrapper
|
||||
.long sys_ni_syscall /* sys_sigsuspend_wrapper */
|
||||
.long sys_sigpending
|
||||
.long sys_sethostname
|
||||
.long sys_setrlimit /* 75 */
|
||||
|
@ -123,8 +123,8 @@ ENTRY(sys_call_table)
|
|||
.long sys_sysinfo
|
||||
.long sys_ipc
|
||||
.long sys_fsync
|
||||
.long sys_sigreturn_wrapper
|
||||
.long sys_clone_wrapper /* 120 */
|
||||
.long sys_ni_syscall /* sys_sigreturn_wrapper */
|
||||
.long sys_clone /* 120 */
|
||||
.long sys_setdomainname
|
||||
.long sys_newuname
|
||||
.long sys_ni_syscall /* modify_ldt */
|
||||
|
@ -194,7 +194,7 @@ ENTRY(sys_call_table)
|
|||
.long sys_sendfile
|
||||
.long sys_ni_syscall /* reserved for streams1 */
|
||||
.long sys_ni_syscall /* reserved for streams2 */
|
||||
.long sys_vfork_wrapper /* 190 */
|
||||
.long sys_vfork /* 190 */
|
||||
.long sys_getrlimit
|
||||
.long sys_mmap2 /* mmap2 */
|
||||
.long sys_truncate64
|
||||
|
@ -369,3 +369,5 @@ ENTRY(sys_call_table)
|
|||
.long sys_ni_syscall
|
||||
.long sys_ni_syscall
|
||||
.long sys_ni_syscall
|
||||
.long sys_rt_tgsigqueueinfo /* 365 */
|
||||
.long sys_perf_counter_open
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Makefile
|
||||
#
|
||||
|
||||
lib-y := memset.o checksum.o
|
||||
lib-y := memset.o
|
||||
|
||||
ifeq ($(CONFIG_OPT_LIB_ASM),y)
|
||||
lib-y += fastcopy.o
|
||||
|
|
|
@ -1,172 +0,0 @@
|
|||
/*
|
||||
*
|
||||
* INET An implementation of the TCP/IP protocol suite for the LINUX
|
||||
* operating system. INET is implemented using the BSD Socket
|
||||
* interface as the means of communication with the user level.
|
||||
*
|
||||
* IP/TCP/UDP checksumming routines
|
||||
*
|
||||
* Authors: Jorge Cwik, <jorge@laser.satlink.net>
|
||||
* Arnt Gulbrandsen, <agulbra@nvg.unit.no>
|
||||
* Tom May, <ftom@netcom.com>
|
||||
* Andreas Schwab, <schwab@issan.informatik.uni-dortmund.de>
|
||||
* Lots of code moved from tcp.c and ip.c; see those files
|
||||
* for more names.
|
||||
*
|
||||
* 03/02/96 Jes Sorensen, Andreas Schwab, Roman Hodek:
|
||||
* Fixed some nasty bugs, causing some horrible crashes.
|
||||
* A: At some points, the sum (%0) was used as
|
||||
* length-counter instead of the length counter
|
||||
* (%1). Thanks to Roman Hodek for pointing this out.
|
||||
* B: GCC seems to mess up if one uses too many
|
||||
* data-registers to hold input values and one tries to
|
||||
* specify d0 and d1 as scratch registers. Letting gcc
|
||||
* choose these registers itself solves the problem.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
/* Revised by Kenneth Albanowski for m68knommu. Basic problem: unaligned access
|
||||
kills, so most of the assembly has to go. */
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <net/checksum.h>
|
||||
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
static inline unsigned short from32to16(unsigned long x)
|
||||
{
|
||||
/* add up 16-bit and 16-bit for 16+c bit */
|
||||
x = (x & 0xffff) + (x >> 16);
|
||||
/* add up carry.. */
|
||||
x = (x & 0xffff) + (x >> 16);
|
||||
return x;
|
||||
}
|
||||
|
||||
static unsigned int do_csum(const unsigned char *buff, int len)
|
||||
{
|
||||
int odd, count;
|
||||
unsigned long result = 0;
|
||||
|
||||
if (len <= 0)
|
||||
goto out;
|
||||
odd = 1 & (unsigned long) buff;
|
||||
if (odd) {
|
||||
result = *buff;
|
||||
len--;
|
||||
buff++;
|
||||
}
|
||||
count = len >> 1; /* nr of 16-bit words.. */
|
||||
if (count) {
|
||||
if (2 & (unsigned long) buff) {
|
||||
result += *(unsigned short *) buff;
|
||||
count--;
|
||||
len -= 2;
|
||||
buff += 2;
|
||||
}
|
||||
count >>= 1; /* nr of 32-bit words.. */
|
||||
if (count) {
|
||||
unsigned long carry = 0;
|
||||
do {
|
||||
unsigned long w = *(unsigned long *) buff;
|
||||
count--;
|
||||
buff += 4;
|
||||
result += carry;
|
||||
result += w;
|
||||
carry = (w > result);
|
||||
} while (count);
|
||||
result += carry;
|
||||
result = (result & 0xffff) + (result >> 16);
|
||||
}
|
||||
if (len & 2) {
|
||||
result += *(unsigned short *) buff;
|
||||
buff += 2;
|
||||
}
|
||||
}
|
||||
if (len & 1)
|
||||
result += (*buff << 8);
|
||||
result = from32to16(result);
|
||||
if (odd)
|
||||
result = ((result >> 8) & 0xff) | ((result & 0xff) << 8);
|
||||
out:
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
* This is a version of ip_compute_csum() optimized for IP headers,
|
||||
* which always checksum on 4 octet boundaries.
|
||||
*/
|
||||
__sum16 ip_fast_csum(const void *iph, unsigned int ihl)
|
||||
{
|
||||
return (__force __sum16)~do_csum(iph, ihl*4);
|
||||
}
|
||||
EXPORT_SYMBOL(ip_fast_csum);
|
||||
|
||||
/*
|
||||
* computes the checksum of a memory block at buff, length len,
|
||||
* and adds in "sum" (32-bit)
|
||||
*
|
||||
* returns a 32-bit number suitable for feeding into itself
|
||||
* or csum_tcpudp_magic
|
||||
*
|
||||
* this function must be called with even lengths, except
|
||||
* for the last fragment, which may be odd
|
||||
*
|
||||
* it's best to have buff aligned on a 32-bit boundary
|
||||
*/
|
||||
__wsum csum_partial(const void *buff, int len, __wsum wsum)
|
||||
{
|
||||
unsigned int sum = (__force unsigned int)wsum;
|
||||
unsigned int result = do_csum(buff, len);
|
||||
|
||||
/* add in old sum, and carry.. */
|
||||
result += sum;
|
||||
if (sum > result)
|
||||
result += 1;
|
||||
return (__force __wsum)result;
|
||||
}
|
||||
EXPORT_SYMBOL(csum_partial);
|
||||
|
||||
/*
|
||||
* this routine is used for miscellaneous IP-like checksums, mainly
|
||||
* in icmp.c
|
||||
*/
|
||||
__sum16 ip_compute_csum(const void *buff, int len)
|
||||
{
|
||||
return (__force __sum16)~do_csum(buff, len);
|
||||
}
|
||||
EXPORT_SYMBOL(ip_compute_csum);
|
||||
|
||||
/*
|
||||
* copy from fs while checksumming, otherwise like csum_partial
|
||||
*/
|
||||
__wsum
|
||||
csum_partial_copy_from_user(const void __user *src, void *dst, int len,
|
||||
__wsum sum, int *csum_err)
|
||||
{
|
||||
int missing;
|
||||
|
||||
missing = __copy_from_user(dst, src, len);
|
||||
if (missing) {
|
||||
memset(dst + len - missing, 0, missing);
|
||||
*csum_err = -EFAULT;
|
||||
} else
|
||||
*csum_err = 0;
|
||||
|
||||
return csum_partial(dst, len, sum);
|
||||
}
|
||||
EXPORT_SYMBOL(csum_partial_copy_from_user);
|
||||
|
||||
/*
|
||||
* copy from ds while checksumming, otherwise like csum_partial
|
||||
*/
|
||||
__wsum
|
||||
csum_partial_copy(const void *src, void *dst, int len, __wsum sum)
|
||||
{
|
||||
memcpy(dst, src, len);
|
||||
return csum_partial(dst, len, sum);
|
||||
}
|
||||
EXPORT_SYMBOL(csum_partial_copy);
|
|
@ -80,15 +80,15 @@ void __init setup_memory(void)
|
|||
memory_size = memory_end - memory_start;
|
||||
PAGE_OFFSET = memory_start;
|
||||
printk(KERN_INFO "%s: Main mem: 0x%x-0x%x, "
|
||||
"size 0x%08x\n", __func__, memory_start,
|
||||
memory_end, memory_size);
|
||||
"size 0x%08x\n", __func__, (u32) memory_start,
|
||||
(u32) memory_end, (u32) memory_size);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!memory_start || !memory_end) {
|
||||
panic("%s: Missing memory setting 0x%08x-0x%08x\n",
|
||||
__func__, memory_start, memory_end);
|
||||
__func__, (u32) memory_start, (u32) memory_end);
|
||||
}
|
||||
|
||||
/* reservation of region where is the kernel */
|
||||
|
|
|
@ -39,8 +39,6 @@ struct thread_info {
|
|||
|
||||
/*
|
||||
* macros/functions for gaining access to the thread information structure
|
||||
*
|
||||
* preempt_count needs to be 1 initially, until the scheduler is functional.
|
||||
*/
|
||||
#define INIT_THREAD_INFO(tsk) \
|
||||
{ \
|
||||
|
@ -48,7 +46,7 @@ struct thread_info {
|
|||
.exec_domain = &default_exec_domain, \
|
||||
.flags = _TIF_FIXADE, \
|
||||
.cpu = 0, \
|
||||
.preempt_count = 1, \
|
||||
.preempt_count = INIT_PREEMPT_COUNT, \
|
||||
.addr_limit = KERNEL_DS, \
|
||||
.restart_block = { \
|
||||
.fn = do_no_restart_syscall, \
|
||||
|
|
|
@ -70,10 +70,6 @@ struct pci_dev;
|
|||
*/
|
||||
#define PCI_DMA_BUS_IS_PHYS (1)
|
||||
|
||||
|
||||
/* This is always fine. */
|
||||
#define pci_dac_dma_supported(pci_dev, mask) (0)
|
||||
|
||||
/* Return the index of the PCI controller for device. */
|
||||
static inline int pci_controller_num(struct pci_dev *dev)
|
||||
{
|
||||
|
|
|
@ -65,8 +65,6 @@ struct thread_info {
|
|||
|
||||
/*
|
||||
* macros/functions for gaining access to the thread information structure
|
||||
*
|
||||
* preempt_count needs to be 1 initially, until the scheduler is functional.
|
||||
*/
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
|
@ -76,7 +74,7 @@ struct thread_info {
|
|||
.exec_domain = &default_exec_domain, \
|
||||
.flags = 0, \
|
||||
.cpu = 0, \
|
||||
.preempt_count = 1, \
|
||||
.preempt_count = INIT_PREEMPT_COUNT, \
|
||||
.addr_limit = KERNEL_DS, \
|
||||
.restart_block = { \
|
||||
.fn = do_no_restart_syscall, \
|
||||
|
|
|
@ -136,8 +136,7 @@ void show_trace(unsigned long *sp)
|
|||
unsigned long *stack, addr, module_start, module_end;
|
||||
int i;
|
||||
|
||||
printk(KERN_EMERG "\n"
|
||||
KERN_EMERG "Call Trace:");
|
||||
printk(KERN_EMERG "\nCall Trace:");
|
||||
|
||||
stack = sp;
|
||||
i = 0;
|
||||
|
@ -153,7 +152,7 @@ void show_trace(unsigned long *sp)
|
|||
printk("\n");
|
||||
#else
|
||||
if ((i % 6) == 0)
|
||||
printk("\n" KERN_EMERG " ");
|
||||
printk(KERN_EMERG " ");
|
||||
printk("[<%08lx>] ", addr);
|
||||
i++;
|
||||
#endif
|
||||
|
@ -180,7 +179,7 @@ void show_stack(struct task_struct *task, unsigned long *sp)
|
|||
if (((long) stack & (THREAD_SIZE - 1)) == 0)
|
||||
break;
|
||||
if ((i % 8) == 0)
|
||||
printk("\n" KERN_EMERG " ");
|
||||
printk(KERN_EMERG " ");
|
||||
printk("%08lx ", *stack++);
|
||||
}
|
||||
|
||||
|
@ -264,8 +263,7 @@ void show_registers(struct pt_regs *regs)
|
|||
show_stack(current, (unsigned long *) sp);
|
||||
|
||||
#if 0
|
||||
printk(KERN_EMERG "\n"
|
||||
KERN_EMERG "Code: ");
|
||||
printk(KERN_EMERG "\nCode: ");
|
||||
if (regs->pc < PAGE_OFFSET)
|
||||
goto bad;
|
||||
|
||||
|
@ -311,16 +309,14 @@ void die(const char *str, struct pt_regs *regs, enum exception_code code)
|
|||
{
|
||||
console_verbose();
|
||||
spin_lock_irq(&die_lock);
|
||||
printk(KERN_EMERG "\n"
|
||||
KERN_EMERG "%s: %04x\n",
|
||||
printk(KERN_EMERG "\n%s: %04x\n",
|
||||
str, code & 0xffff);
|
||||
show_registers(regs);
|
||||
|
||||
if (regs->pc >= 0x02000000 && regs->pc < 0x04000000 &&
|
||||
(regs->epsw & (EPSW_IM | EPSW_IE)) != (EPSW_IM | EPSW_IE)) {
|
||||
printk(KERN_EMERG "Exception in usermode interrupt handler\n");
|
||||
printk(KERN_EMERG "\n"
|
||||
KERN_EMERG " Please connect to kernel debugger !!\n");
|
||||
printk(KERN_EMERG "\nPlease connect to kernel debugger !!\n");
|
||||
asm volatile ("0: bra 0b");
|
||||
}
|
||||
|
||||
|
@ -429,9 +425,8 @@ asmlinkage void io_bus_error(u32 bcberr, u32 bcbear, struct pt_regs *regs)
|
|||
{
|
||||
console_verbose();
|
||||
|
||||
printk(KERN_EMERG "\n"
|
||||
KERN_EMERG "Asynchronous I/O Bus Error\n"
|
||||
KERN_EMERG "==========================\n");
|
||||
printk(KERN_EMERG "Asynchronous I/O Bus Error\n");
|
||||
printk(KERN_EMERG "==========================\n");
|
||||
|
||||
if (bcberr & BCBERR_BEME)
|
||||
printk(KERN_EMERG "- Multiple recorded errors\n");
|
||||
|
|
|
@ -23,7 +23,7 @@ struct thread_info {
|
|||
.flags = 0, \
|
||||
.cpu = 0, \
|
||||
.addr_limit = KERNEL_DS, \
|
||||
.preempt_count = 1, \
|
||||
.preempt_count = INIT_PREEMPT_COUNT, \
|
||||
.restart_block = { \
|
||||
.fn = do_no_restart_syscall \
|
||||
} \
|
||||
|
|
|
@ -156,7 +156,7 @@ void machine_power_off(void)
|
|||
* software. The user has to press the button himself. */
|
||||
|
||||
printk(KERN_EMERG "System shut down completed.\n"
|
||||
KERN_EMERG "Please power this system off now.");
|
||||
"Please power this system off now.");
|
||||
}
|
||||
|
||||
void (*pm_power_off)(void) = machine_power_off;
|
||||
|
|
|
@ -250,15 +250,14 @@ void die_if_kernel(char *str, struct pt_regs *regs, long err)
|
|||
oops_enter();
|
||||
|
||||
/* Amuse the user in a SPARC fashion */
|
||||
if (err) printk(
|
||||
KERN_CRIT " _______________________________ \n"
|
||||
KERN_CRIT " < Your System ate a SPARC! Gah! >\n"
|
||||
KERN_CRIT " ------------------------------- \n"
|
||||
KERN_CRIT " \\ ^__^\n"
|
||||
KERN_CRIT " \\ (xx)\\_______\n"
|
||||
KERN_CRIT " (__)\\ )\\/\\\n"
|
||||
KERN_CRIT " U ||----w |\n"
|
||||
KERN_CRIT " || ||\n");
|
||||
if (err) printk(KERN_CRIT
|
||||
" _______________________________ \n"
|
||||
" < Your System ate a SPARC! Gah! >\n"
|
||||
" ------------------------------- \n"
|
||||
" \\ ^__^\n"
|
||||
" (__)\\ )\\/\\\n"
|
||||
" U ||----w |\n"
|
||||
" || ||\n");
|
||||
|
||||
/* unlock the pdc lock if necessary */
|
||||
pdc_emergency_unlock();
|
||||
|
@ -797,7 +796,8 @@ void notrace handle_interruption(int code, struct pt_regs *regs)
|
|||
else
|
||||
printk(KERN_DEBUG "User Fault (long pointer) (fault %d) ",
|
||||
code);
|
||||
printk("pid=%d command='%s'\n", task_pid_nr(current), current->comm);
|
||||
printk(KERN_CONT "pid=%d command='%s'\n",
|
||||
task_pid_nr(current), current->comm);
|
||||
show_regs(regs);
|
||||
#endif
|
||||
si.si_signo = SIGSEGV;
|
||||
|
|
|
@ -261,10 +261,11 @@
|
|||
compatible = "gpio-leds";
|
||||
green {
|
||||
gpios = <&GPIO1 0 0>;
|
||||
default-state = "on";
|
||||
default-state = "keep";
|
||||
};
|
||||
red {
|
||||
gpios = <&GPIO1 1 0>;
|
||||
default-state = "keep";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.29-rc2
|
||||
# Fri Jan 23 07:57:16 2009
|
||||
# Linux kernel version: 2.6.30
|
||||
# Tue Jun 9 23:35:36 2009
|
||||
#
|
||||
# CONFIG_PPC64 is not set
|
||||
|
||||
|
@ -41,6 +41,7 @@ CONFIG_ARCH_HAS_ILOG2_U32=y
|
|||
CONFIG_GENERIC_HWEIGHT=y
|
||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||
CONFIG_GENERIC_FIND_NEXT_BIT=y
|
||||
CONFIG_GENERIC_GPIO=y
|
||||
# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
|
||||
CONFIG_PPC=y
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
|
@ -53,10 +54,12 @@ CONFIG_PPC_UDBG_16550=y
|
|||
# CONFIG_GENERIC_TBSYNC is not set
|
||||
CONFIG_AUDIT_ARCH=y
|
||||
CONFIG_GENERIC_BUG=y
|
||||
CONFIG_DTC=y
|
||||
# CONFIG_DEFAULT_UIMAGE is not set
|
||||
CONFIG_PPC_DCR_NATIVE=y
|
||||
# CONFIG_PPC_DCR_MMIO is not set
|
||||
CONFIG_PPC_DCR=y
|
||||
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
|
||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||
|
||||
#
|
||||
|
@ -74,7 +77,17 @@ CONFIG_SYSVIPC_SYSCTL=y
|
|||
# CONFIG_BSD_PROCESS_ACCT is not set
|
||||
# CONFIG_TASKSTATS is not set
|
||||
# CONFIG_AUDIT is not set
|
||||
# CONFIG_IKCONFIG is not set
|
||||
|
||||
#
|
||||
# RCU Subsystem
|
||||
#
|
||||
CONFIG_CLASSIC_RCU=y
|
||||
# CONFIG_TREE_RCU is not set
|
||||
# CONFIG_PREEMPT_RCU is not set
|
||||
# CONFIG_TREE_RCU_TRACE is not set
|
||||
# CONFIG_PREEMPT_RCU_TRACE is not set
|
||||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
CONFIG_GROUP_SCHED=y
|
||||
CONFIG_FAIR_GROUP_SCHED=y
|
||||
|
@ -82,27 +95,29 @@ CONFIG_FAIR_GROUP_SCHED=y
|
|||
CONFIG_USER_SCHED=y
|
||||
# CONFIG_CGROUP_SCHED is not set
|
||||
# CONFIG_CGROUPS is not set
|
||||
CONFIG_SYSFS_DEPRECATED=y
|
||||
CONFIG_SYSFS_DEPRECATED_V2=y
|
||||
# CONFIG_SYSFS_DEPRECATED_V2 is not set
|
||||
# CONFIG_RELAY is not set
|
||||
# CONFIG_NAMESPACES is not set
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_RD_GZIP=y
|
||||
# CONFIG_RD_BZIP2 is not set
|
||||
# CONFIG_RD_LZMA is not set
|
||||
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
|
||||
CONFIG_SYSCTL=y
|
||||
CONFIG_ANON_INODES=y
|
||||
CONFIG_EMBEDDED=y
|
||||
CONFIG_SYSCTL_SYSCALL=y
|
||||
CONFIG_KALLSYMS=y
|
||||
# CONFIG_KALLSYMS_ALL is not set
|
||||
# CONFIG_KALLSYMS_EXTRA_PASS is not set
|
||||
# CONFIG_HOTPLUG is not set
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
CONFIG_HOTPLUG=y
|
||||
CONFIG_PRINTK=y
|
||||
CONFIG_BUG=y
|
||||
CONFIG_ELF_CORE=y
|
||||
CONFIG_COMPAT_BRK=y
|
||||
CONFIG_BASE_FULL=y
|
||||
CONFIG_FUTEX=y
|
||||
CONFIG_ANON_INODES=y
|
||||
CONFIG_EPOLL=y
|
||||
CONFIG_SIGNALFD=y
|
||||
CONFIG_TIMERFD=y
|
||||
|
@ -110,10 +125,13 @@ CONFIG_EVENTFD=y
|
|||
CONFIG_SHMEM=y
|
||||
CONFIG_AIO=y
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
CONFIG_SLAB=y
|
||||
# CONFIG_SLUB is not set
|
||||
CONFIG_SLUB_DEBUG=y
|
||||
CONFIG_COMPAT_BRK=y
|
||||
# CONFIG_SLAB is not set
|
||||
CONFIG_SLUB=y
|
||||
# CONFIG_SLOB is not set
|
||||
# CONFIG_PROFILING is not set
|
||||
# CONFIG_MARKERS is not set
|
||||
CONFIG_HAVE_OPROFILE=y
|
||||
# CONFIG_KPROBES is not set
|
||||
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
|
||||
|
@ -121,6 +139,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
|
|||
CONFIG_HAVE_KPROBES=y
|
||||
CONFIG_HAVE_KRETPROBES=y
|
||||
CONFIG_HAVE_ARCH_TRACEHOOK=y
|
||||
# CONFIG_SLOW_WORK is not set
|
||||
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
|
||||
CONFIG_SLABINFO=y
|
||||
CONFIG_RT_MUTEXES=y
|
||||
|
@ -133,7 +152,6 @@ CONFIG_MODULE_UNLOAD=y
|
|||
# CONFIG_MODULE_SRCVERSION_ALL is not set
|
||||
CONFIG_BLOCK=y
|
||||
# CONFIG_LBD is not set
|
||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
# CONFIG_BLK_DEV_INTEGRITY is not set
|
||||
|
||||
|
@ -149,11 +167,6 @@ CONFIG_DEFAULT_AS=y
|
|||
# CONFIG_DEFAULT_CFQ is not set
|
||||
# CONFIG_DEFAULT_NOOP is not set
|
||||
CONFIG_DEFAULT_IOSCHED="anticipatory"
|
||||
CONFIG_CLASSIC_RCU=y
|
||||
# CONFIG_TREE_RCU is not set
|
||||
# CONFIG_PREEMPT_RCU is not set
|
||||
# CONFIG_TREE_RCU_TRACE is not set
|
||||
# CONFIG_PREEMPT_RCU_TRACE is not set
|
||||
# CONFIG_FREEZER is not set
|
||||
|
||||
#
|
||||
|
@ -173,10 +186,11 @@ CONFIG_WARP=y
|
|||
# CONFIG_ARCHES is not set
|
||||
# CONFIG_CANYONLANDS is not set
|
||||
# CONFIG_GLACIER is not set
|
||||
# CONFIG_REDWOOD is not set
|
||||
# CONFIG_YOSEMITE is not set
|
||||
# CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set
|
||||
# CONFIG_PPC44x_SIMPLE is not set
|
||||
# CONFIG_PPC4xx_GPIO is not set
|
||||
CONFIG_PPC4xx_GPIO=y
|
||||
CONFIG_440EP=y
|
||||
CONFIG_IBM440EP_ERR42=y
|
||||
# CONFIG_IPIC is not set
|
||||
|
@ -235,9 +249,13 @@ CONFIG_ZONE_DMA_FLAG=1
|
|||
CONFIG_BOUNCE=y
|
||||
CONFIG_VIRT_TO_BUS=y
|
||||
CONFIG_UNEVICTABLE_LRU=y
|
||||
CONFIG_HAVE_MLOCK=y
|
||||
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
|
||||
CONFIG_STDBINUTILS=y
|
||||
CONFIG_PPC_4K_PAGES=y
|
||||
# CONFIG_PPC_16K_PAGES is not set
|
||||
# CONFIG_PPC_64K_PAGES is not set
|
||||
# CONFIG_PPC_256K_PAGES is not set
|
||||
CONFIG_FORCE_MAX_ZONEORDER=11
|
||||
CONFIG_PROC_DEVICETREE=y
|
||||
CONFIG_CMDLINE_BOOL=y
|
||||
|
@ -256,6 +274,7 @@ CONFIG_PPC_PCI_CHOICE=y
|
|||
# CONFIG_PCI_DOMAINS is not set
|
||||
# CONFIG_PCI_SYSCALL is not set
|
||||
# CONFIG_ARCH_SUPPORTS_MSI is not set
|
||||
# CONFIG_PCCARD is not set
|
||||
# CONFIG_HAS_RAPIDIO is not set
|
||||
|
||||
#
|
||||
|
@ -271,14 +290,12 @@ CONFIG_PAGE_OFFSET=0xc0000000
|
|||
CONFIG_KERNEL_START=0xc0000000
|
||||
CONFIG_PHYSICAL_START=0x00000000
|
||||
CONFIG_TASK_SIZE=0xc0000000
|
||||
CONFIG_CONSISTENT_START=0xff100000
|
||||
CONFIG_CONSISTENT_SIZE=0x00200000
|
||||
CONFIG_NET=y
|
||||
|
||||
#
|
||||
# Networking options
|
||||
#
|
||||
CONFIG_COMPAT_NET_DEV_OPS=y
|
||||
CONFIG_PACKET=y
|
||||
# CONFIG_PACKET_MMAP is not set
|
||||
CONFIG_UNIX=y
|
||||
|
@ -353,6 +370,7 @@ CONFIG_VLAN_8021Q=y
|
|||
# CONFIG_LAPB is not set
|
||||
# CONFIG_ECONET is not set
|
||||
# CONFIG_WAN_ROUTER is not set
|
||||
# CONFIG_PHONET is not set
|
||||
# CONFIG_NET_SCHED is not set
|
||||
# CONFIG_DCB is not set
|
||||
|
||||
|
@ -365,7 +383,6 @@ CONFIG_VLAN_8021Q=y
|
|||
# CONFIG_IRDA is not set
|
||||
# CONFIG_BT is not set
|
||||
# CONFIG_AF_RXRPC is not set
|
||||
# CONFIG_PHONET is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
# CONFIG_WIMAX is not set
|
||||
# CONFIG_RFKILL is not set
|
||||
|
@ -378,8 +395,12 @@ CONFIG_VLAN_8021Q=y
|
|||
#
|
||||
# Generic Driver Options
|
||||
#
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
# CONFIG_STANDALONE is not set
|
||||
CONFIG_PREVENT_FIRMWARE_BUILD=y
|
||||
CONFIG_FW_LOADER=y
|
||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
||||
CONFIG_EXTRA_FIRMWARE=""
|
||||
# CONFIG_DEBUG_DRIVER is not set
|
||||
# CONFIG_DEBUG_DEVRES is not set
|
||||
# CONFIG_SYS_HYPERVISOR is not set
|
||||
|
@ -471,13 +492,21 @@ CONFIG_MTD_NAND_NDFC=y
|
|||
# LPDDR flash memory drivers
|
||||
#
|
||||
# CONFIG_MTD_LPDDR is not set
|
||||
# CONFIG_MTD_QINFO_PROBE is not set
|
||||
|
||||
#
|
||||
# UBI - Unsorted block images
|
||||
#
|
||||
# CONFIG_MTD_UBI is not set
|
||||
CONFIG_MTD_UBI=y
|
||||
CONFIG_MTD_UBI_WL_THRESHOLD=4096
|
||||
CONFIG_MTD_UBI_BEB_RESERVE=1
|
||||
# CONFIG_MTD_UBI_GLUEBI is not set
|
||||
|
||||
#
|
||||
# UBI debugging options
|
||||
#
|
||||
# CONFIG_MTD_UBI_DEBUG is not set
|
||||
CONFIG_OF_DEVICE=y
|
||||
CONFIG_OF_GPIO=y
|
||||
CONFIG_OF_I2C=y
|
||||
# CONFIG_PARPORT is not set
|
||||
CONFIG_BLK_DEV=y
|
||||
|
@ -495,10 +524,17 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
|
|||
# CONFIG_XILINX_SYSACE is not set
|
||||
# CONFIG_BLK_DEV_HD is not set
|
||||
CONFIG_MISC_DEVICES=y
|
||||
# CONFIG_EEPROM_93CX6 is not set
|
||||
# CONFIG_ICS932S401 is not set
|
||||
# CONFIG_ENCLOSURE_SERVICES is not set
|
||||
# CONFIG_ISL29003 is not set
|
||||
# CONFIG_C2PORT is not set
|
||||
|
||||
#
|
||||
# EEPROM support
|
||||
#
|
||||
CONFIG_EEPROM_AT24=y
|
||||
# CONFIG_EEPROM_LEGACY is not set
|
||||
# CONFIG_EEPROM_93CX6 is not set
|
||||
CONFIG_HAVE_IDE=y
|
||||
# CONFIG_IDE is not set
|
||||
|
||||
|
@ -529,7 +565,7 @@ CONFIG_BLK_DEV_SD=y
|
|||
# CONFIG_SCSI_CONSTANTS is not set
|
||||
# CONFIG_SCSI_LOGGING is not set
|
||||
# CONFIG_SCSI_SCAN_ASYNC is not set
|
||||
CONFIG_SCSI_WAIT_SCAN=m
|
||||
# CONFIG_SCSI_WAIT_SCAN is not set
|
||||
|
||||
#
|
||||
# SCSI Transports
|
||||
|
@ -541,10 +577,12 @@ CONFIG_SCSI_SPI_ATTRS=y
|
|||
# CONFIG_SCSI_SRP_ATTRS is not set
|
||||
# CONFIG_SCSI_LOWLEVEL is not set
|
||||
# CONFIG_SCSI_DH is not set
|
||||
# CONFIG_SCSI_OSD_INITIATOR is not set
|
||||
# CONFIG_ATA is not set
|
||||
# CONFIG_MD is not set
|
||||
# CONFIG_MACINTOSH_DRIVERS is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_COMPAT_NET_DEV_OPS=y
|
||||
# CONFIG_DUMMY is not set
|
||||
# CONFIG_BONDING is not set
|
||||
# CONFIG_MACVLAN is not set
|
||||
|
@ -554,6 +592,8 @@ CONFIG_NETDEVICES=y
|
|||
# CONFIG_PHYLIB is not set
|
||||
CONFIG_NET_ETHERNET=y
|
||||
CONFIG_MII=y
|
||||
# CONFIG_ETHOC is not set
|
||||
# CONFIG_DNET is not set
|
||||
CONFIG_IBM_NEW_EMAC=y
|
||||
CONFIG_IBM_NEW_EMAC_RXB=128
|
||||
CONFIG_IBM_NEW_EMAC_TXB=64
|
||||
|
@ -577,7 +617,6 @@ CONFIG_IBM_NEW_EMAC_ZMII=y
|
|||
#
|
||||
# CONFIG_WLAN_PRE80211 is not set
|
||||
# CONFIG_WLAN_80211 is not set
|
||||
# CONFIG_IWLWIFI_LEDS is not set
|
||||
|
||||
#
|
||||
# Enable WiMAX (Networking options) to see the WiMAX drivers
|
||||
|
@ -646,6 +685,7 @@ CONFIG_LEGACY_PTY_COUNT=256
|
|||
# CONFIG_HVC_UDBG is not set
|
||||
# CONFIG_IPMI_HANDLER is not set
|
||||
CONFIG_HW_RANDOM=y
|
||||
# CONFIG_HW_RANDOM_TIMERIOMEM is not set
|
||||
# CONFIG_NVRAM is not set
|
||||
# CONFIG_GEN_RTC is not set
|
||||
# CONFIG_R3964 is not set
|
||||
|
@ -663,6 +703,7 @@ CONFIG_I2C_HELPER_AUTO=y
|
|||
#
|
||||
# I2C system bus drivers (mostly embedded / system-on-chip)
|
||||
#
|
||||
# CONFIG_I2C_GPIO is not set
|
||||
CONFIG_I2C_IBM_IIC=y
|
||||
# CONFIG_I2C_MPC is not set
|
||||
# CONFIG_I2C_OCORES is not set
|
||||
|
@ -685,12 +726,9 @@ CONFIG_I2C_IBM_IIC=y
|
|||
# Miscellaneous I2C Chip support
|
||||
#
|
||||
# CONFIG_DS1682 is not set
|
||||
CONFIG_EEPROM_AT24=y
|
||||
CONFIG_EEPROM_LEGACY=y
|
||||
# CONFIG_SENSORS_PCF8574 is not set
|
||||
# CONFIG_PCF8575 is not set
|
||||
# CONFIG_SENSORS_PCA9539 is not set
|
||||
# CONFIG_SENSORS_PCF8591 is not set
|
||||
# CONFIG_SENSORS_MAX6875 is not set
|
||||
# CONFIG_SENSORS_TSL2550 is not set
|
||||
# CONFIG_I2C_DEBUG_CORE is not set
|
||||
|
@ -699,7 +737,30 @@ CONFIG_EEPROM_LEGACY=y
|
|||
# CONFIG_I2C_DEBUG_CHIP is not set
|
||||
# CONFIG_SPI is not set
|
||||
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
|
||||
# CONFIG_GPIOLIB is not set
|
||||
CONFIG_ARCH_REQUIRE_GPIOLIB=y
|
||||
CONFIG_GPIOLIB=y
|
||||
# CONFIG_DEBUG_GPIO is not set
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
|
||||
#
|
||||
# Memory mapped GPIO expanders:
|
||||
#
|
||||
# CONFIG_GPIO_XILINX is not set
|
||||
|
||||
#
|
||||
# I2C GPIO expanders:
|
||||
#
|
||||
# CONFIG_GPIO_MAX732X is not set
|
||||
# CONFIG_GPIO_PCA953X is not set
|
||||
# CONFIG_GPIO_PCF857X is not set
|
||||
|
||||
#
|
||||
# PCI GPIO expanders:
|
||||
#
|
||||
|
||||
#
|
||||
# SPI GPIO expanders:
|
||||
#
|
||||
# CONFIG_W1 is not set
|
||||
# CONFIG_POWER_SUPPLY is not set
|
||||
CONFIG_HWMON=y
|
||||
|
@ -721,6 +782,7 @@ CONFIG_SENSORS_AD7414=y
|
|||
# CONFIG_SENSORS_F71805F is not set
|
||||
# CONFIG_SENSORS_F71882FG is not set
|
||||
# CONFIG_SENSORS_F75375S is not set
|
||||
# CONFIG_SENSORS_G760A is not set
|
||||
# CONFIG_SENSORS_GL518SM is not set
|
||||
# CONFIG_SENSORS_GL520SM is not set
|
||||
# CONFIG_SENSORS_IT87 is not set
|
||||
|
@ -735,11 +797,15 @@ CONFIG_SENSORS_AD7414=y
|
|||
# CONFIG_SENSORS_LM90 is not set
|
||||
# CONFIG_SENSORS_LM92 is not set
|
||||
# CONFIG_SENSORS_LM93 is not set
|
||||
# CONFIG_SENSORS_LTC4215 is not set
|
||||
# CONFIG_SENSORS_LTC4245 is not set
|
||||
# CONFIG_SENSORS_LM95241 is not set
|
||||
# CONFIG_SENSORS_MAX1619 is not set
|
||||
# CONFIG_SENSORS_MAX6650 is not set
|
||||
# CONFIG_SENSORS_PC87360 is not set
|
||||
# CONFIG_SENSORS_PC87427 is not set
|
||||
# CONFIG_SENSORS_PCF8591 is not set
|
||||
# CONFIG_SENSORS_SHT15 is not set
|
||||
# CONFIG_SENSORS_DME1737 is not set
|
||||
# CONFIG_SENSORS_SMSC47M1 is not set
|
||||
# CONFIG_SENSORS_SMSC47M192 is not set
|
||||
|
@ -785,6 +851,7 @@ CONFIG_SSB_POSSIBLE=y
|
|||
# CONFIG_MFD_CORE is not set
|
||||
# CONFIG_MFD_SM501 is not set
|
||||
# CONFIG_HTC_PASIC3 is not set
|
||||
# CONFIG_TPS65010 is not set
|
||||
# CONFIG_TWL4030_CORE is not set
|
||||
# CONFIG_MFD_TMIO is not set
|
||||
# CONFIG_PMIC_DA903X is not set
|
||||
|
@ -870,11 +937,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
|
|||
# CONFIG_USB_TMC is not set
|
||||
|
||||
#
|
||||
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
|
||||
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
|
||||
#
|
||||
|
||||
#
|
||||
# see USB_STORAGE Help for more information
|
||||
# also be needed; see USB_STORAGE Help for more info
|
||||
#
|
||||
CONFIG_USB_STORAGE=y
|
||||
# CONFIG_USB_STORAGE_DEBUG is not set
|
||||
|
@ -915,7 +982,6 @@ CONFIG_USB_STORAGE=y
|
|||
# CONFIG_USB_LED is not set
|
||||
# CONFIG_USB_CYPRESS_CY7C63 is not set
|
||||
# CONFIG_USB_CYTHERM is not set
|
||||
# CONFIG_USB_PHIDGET is not set
|
||||
# CONFIG_USB_IDMOUSE is not set
|
||||
# CONFIG_USB_FTDI_ELAN is not set
|
||||
# CONFIG_USB_APPLEDISPLAY is not set
|
||||
|
@ -929,6 +995,8 @@ CONFIG_USB_STORAGE=y
|
|||
#
|
||||
# OTG and related infrastructure
|
||||
#
|
||||
# CONFIG_USB_GPIO_VBUS is not set
|
||||
# CONFIG_NOP_USB_XCEIV is not set
|
||||
CONFIG_MMC=y
|
||||
# CONFIG_MMC_DEBUG is not set
|
||||
# CONFIG_MMC_UNSAFE_RESUME is not set
|
||||
|
@ -946,6 +1014,7 @@ CONFIG_MMC_BLOCK_BOUNCE=y
|
|||
#
|
||||
# CONFIG_MMC_SDHCI is not set
|
||||
# CONFIG_MMC_WBSD is not set
|
||||
CONFIG_MMC_PIKASD=y
|
||||
# CONFIG_MEMSTICK is not set
|
||||
CONFIG_NEW_LEDS=y
|
||||
CONFIG_LEDS_CLASS=y
|
||||
|
@ -953,16 +1022,31 @@ CONFIG_LEDS_CLASS=y
|
|||
#
|
||||
# LED drivers
|
||||
#
|
||||
CONFIG_LEDS_GPIO=y
|
||||
# CONFIG_LEDS_GPIO_PLATFORM is not set
|
||||
CONFIG_LEDS_GPIO_OF=y
|
||||
# CONFIG_LEDS_LP5521 is not set
|
||||
# CONFIG_LEDS_PCA955X is not set
|
||||
# CONFIG_LEDS_BD2802 is not set
|
||||
|
||||
#
|
||||
# LED Triggers
|
||||
#
|
||||
# CONFIG_LEDS_TRIGGERS is not set
|
||||
CONFIG_LEDS_TRIGGERS=y
|
||||
# CONFIG_LEDS_TRIGGER_TIMER is not set
|
||||
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
|
||||
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
|
||||
# CONFIG_LEDS_TRIGGER_GPIO is not set
|
||||
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
|
||||
|
||||
#
|
||||
# iptables trigger is under Netfilter config (LED target)
|
||||
#
|
||||
# CONFIG_ACCESSIBILITY is not set
|
||||
# CONFIG_EDAC is not set
|
||||
# CONFIG_RTC_CLASS is not set
|
||||
# CONFIG_DMADEVICES is not set
|
||||
# CONFIG_AUXDISPLAY is not set
|
||||
# CONFIG_UIO is not set
|
||||
# CONFIG_STAGING is not set
|
||||
|
||||
|
@ -973,6 +1057,7 @@ CONFIG_EXT2_FS=y
|
|||
# CONFIG_EXT2_FS_XATTR is not set
|
||||
# CONFIG_EXT2_FS_XIP is not set
|
||||
CONFIG_EXT3_FS=y
|
||||
# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
|
||||
# CONFIG_EXT3_FS_XATTR is not set
|
||||
# CONFIG_EXT4_FS is not set
|
||||
CONFIG_JBD=y
|
||||
|
@ -992,6 +1077,11 @@ CONFIG_INOTIFY_USER=y
|
|||
# CONFIG_AUTOFS4_FS is not set
|
||||
# CONFIG_FUSE_FS is not set
|
||||
|
||||
#
|
||||
# Caches
|
||||
#
|
||||
# CONFIG_FSCACHE is not set
|
||||
|
||||
#
|
||||
# CD-ROM/DVD Filesystems
|
||||
#
|
||||
|
@ -1039,6 +1129,12 @@ CONFIG_JFFS2_ZLIB=y
|
|||
# CONFIG_JFFS2_LZO is not set
|
||||
CONFIG_JFFS2_RTIME=y
|
||||
# CONFIG_JFFS2_RUBIN is not set
|
||||
CONFIG_UBIFS_FS=y
|
||||
# CONFIG_UBIFS_FS_XATTR is not set
|
||||
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
|
||||
CONFIG_UBIFS_FS_LZO=y
|
||||
CONFIG_UBIFS_FS_ZLIB=y
|
||||
# CONFIG_UBIFS_FS_DEBUG is not set
|
||||
CONFIG_CRAMFS=y
|
||||
# CONFIG_SQUASHFS is not set
|
||||
# CONFIG_VXFS_FS is not set
|
||||
|
@ -1049,6 +1145,7 @@ CONFIG_CRAMFS=y
|
|||
# CONFIG_ROMFS_FS is not set
|
||||
# CONFIG_SYSV_FS is not set
|
||||
# CONFIG_UFS_FS is not set
|
||||
# CONFIG_NILFS2_FS is not set
|
||||
CONFIG_NETWORK_FILESYSTEMS=y
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_NFS_V3=y
|
||||
|
@ -1060,7 +1157,6 @@ CONFIG_LOCKD=y
|
|||
CONFIG_LOCKD_V4=y
|
||||
CONFIG_NFS_COMMON=y
|
||||
CONFIG_SUNRPC=y
|
||||
# CONFIG_SUNRPC_REGISTER_V4 is not set
|
||||
# CONFIG_RPCSEC_GSS_KRB5 is not set
|
||||
# CONFIG_RPCSEC_GSS_SPKM3 is not set
|
||||
# CONFIG_SMB_FS is not set
|
||||
|
@ -1115,6 +1211,7 @@ CONFIG_NLS_ISO8859_15=y
|
|||
# CONFIG_NLS_KOI8_U is not set
|
||||
CONFIG_NLS_UTF8=y
|
||||
# CONFIG_DLM is not set
|
||||
# CONFIG_BINARY_PRINTF is not set
|
||||
|
||||
#
|
||||
# Library routines
|
||||
|
@ -1122,7 +1219,7 @@ CONFIG_NLS_UTF8=y
|
|||
CONFIG_BITREVERSE=y
|
||||
CONFIG_GENERIC_FIND_LAST_BIT=y
|
||||
CONFIG_CRC_CCITT=y
|
||||
# CONFIG_CRC16 is not set
|
||||
CONFIG_CRC16=y
|
||||
CONFIG_CRC_T10DIF=y
|
||||
# CONFIG_CRC_ITU_T is not set
|
||||
CONFIG_CRC32=y
|
||||
|
@ -1130,16 +1227,19 @@ CONFIG_CRC32=y
|
|||
# CONFIG_LIBCRC32C is not set
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_ZLIB_DEFLATE=y
|
||||
CONFIG_PLIST=y
|
||||
CONFIG_LZO_COMPRESS=y
|
||||
CONFIG_LZO_DECOMPRESS=y
|
||||
CONFIG_DECOMPRESS_GZIP=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT=y
|
||||
CONFIG_HAS_DMA=y
|
||||
CONFIG_HAVE_LMB=y
|
||||
CONFIG_NLATTR=y
|
||||
|
||||
#
|
||||
# Kernel hacking
|
||||
#
|
||||
# CONFIG_PRINTK_TIME is not set
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_ENABLE_WARN_DEPRECATED=y
|
||||
CONFIG_ENABLE_MUST_CHECK=y
|
||||
CONFIG_FRAME_WARN=1024
|
||||
|
@ -1152,11 +1252,15 @@ CONFIG_DEBUG_KERNEL=y
|
|||
CONFIG_DETECT_SOFTLOCKUP=y
|
||||
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
|
||||
CONFIG_DETECT_HUNG_TASK=y
|
||||
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
||||
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
# CONFIG_SCHEDSTATS is not set
|
||||
# CONFIG_TIMER_STATS is not set
|
||||
# CONFIG_DEBUG_OBJECTS is not set
|
||||
# CONFIG_DEBUG_SLAB is not set
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
# CONFIG_SLUB_STATS is not set
|
||||
# CONFIG_DEBUG_RT_MUTEXES is not set
|
||||
# CONFIG_RT_MUTEX_TESTER is not set
|
||||
# CONFIG_DEBUG_SPINLOCK is not set
|
||||
|
@ -1180,9 +1284,12 @@ CONFIG_DEBUG_INFO=y
|
|||
# CONFIG_FAULT_INJECTION is not set
|
||||
# CONFIG_LATENCYTOP is not set
|
||||
CONFIG_SYSCTL_SYSCALL_CHECK=y
|
||||
# CONFIG_DEBUG_PAGEALLOC is not set
|
||||
CONFIG_HAVE_FUNCTION_TRACER=y
|
||||
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
|
||||
CONFIG_HAVE_DYNAMIC_FTRACE=y
|
||||
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
|
||||
CONFIG_TRACING_SUPPORT=y
|
||||
|
||||
#
|
||||
# Tracers
|
||||
|
@ -1190,24 +1297,27 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
|
|||
# CONFIG_FUNCTION_TRACER is not set
|
||||
# CONFIG_SCHED_TRACER is not set
|
||||
# CONFIG_CONTEXT_SWITCH_TRACER is not set
|
||||
# CONFIG_EVENT_TRACER is not set
|
||||
# CONFIG_BOOT_TRACER is not set
|
||||
# CONFIG_TRACE_BRANCH_PROFILING is not set
|
||||
# CONFIG_STACK_TRACER is not set
|
||||
# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
|
||||
# CONFIG_KMEMTRACE is not set
|
||||
# CONFIG_WORKQUEUE_TRACER is not set
|
||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||
# CONFIG_DYNAMIC_DEBUG is not set
|
||||
# CONFIG_SAMPLES is not set
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
CONFIG_PRINT_STACK_DEPTH=64
|
||||
# CONFIG_DEBUG_STACKOVERFLOW is not set
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
# CONFIG_DEBUG_PAGEALLOC is not set
|
||||
# CONFIG_CODE_PATCHING_SELFTEST is not set
|
||||
# CONFIG_FTR_FIXUP_SELFTEST is not set
|
||||
# CONFIG_MSI_BITMAP_SELFTEST is not set
|
||||
# CONFIG_XMON is not set
|
||||
CONFIG_IRQSTACKS=y
|
||||
# CONFIG_VIRQ_DEBUG is not set
|
||||
CONFIG_BDI_SWITCH=y
|
||||
# CONFIG_BDI_SWITCH is not set
|
||||
# CONFIG_PPC_EARLY_DEBUG is not set
|
||||
|
||||
#
|
||||
|
@ -1223,6 +1333,8 @@ CONFIG_CRYPTO=y
|
|||
# Crypto core or helper
|
||||
#
|
||||
# CONFIG_CRYPTO_FIPS is not set
|
||||
CONFIG_CRYPTO_ALGAPI=y
|
||||
CONFIG_CRYPTO_ALGAPI2=y
|
||||
# CONFIG_CRYPTO_MANAGER is not set
|
||||
# CONFIG_CRYPTO_MANAGER2 is not set
|
||||
# CONFIG_CRYPTO_GF128MUL is not set
|
||||
|
@ -1294,13 +1406,15 @@ CONFIG_CRYPTO=y
|
|||
#
|
||||
# Compression
|
||||
#
|
||||
# CONFIG_CRYPTO_DEFLATE is not set
|
||||
# CONFIG_CRYPTO_LZO is not set
|
||||
CONFIG_CRYPTO_DEFLATE=y
|
||||
# CONFIG_CRYPTO_ZLIB is not set
|
||||
CONFIG_CRYPTO_LZO=y
|
||||
|
||||
#
|
||||
# Random Number Generation
|
||||
#
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
CONFIG_CRYPTO_HW=y
|
||||
# CONFIG_CRYPTO_DEV_PPC4XX is not set
|
||||
# CONFIG_PPC_CLOCK is not set
|
||||
# CONFIG_VIRTUALIZATION is not set
|
||||
|
|
|
@ -63,6 +63,8 @@ extern void udelay(unsigned long usecs);
|
|||
udelay(delay); \
|
||||
else \
|
||||
cpu_relax(); \
|
||||
if (!__ret) \
|
||||
__ret = (condition); \
|
||||
__ret; \
|
||||
})
|
||||
|
||||
|
|
|
@ -46,15 +46,13 @@ struct thread_info {
|
|||
|
||||
/*
|
||||
* macros/functions for gaining access to the thread information structure
|
||||
*
|
||||
* preempt_count needs to be 1 initially, until the scheduler is functional.
|
||||
*/
|
||||
#define INIT_THREAD_INFO(tsk) \
|
||||
{ \
|
||||
.task = &tsk, \
|
||||
.exec_domain = &default_exec_domain, \
|
||||
.cpu = 0, \
|
||||
.preempt_count = 1, \
|
||||
.preempt_count = INIT_PREEMPT_COUNT, \
|
||||
.restart_block = { \
|
||||
.fn = do_no_restart_syscall, \
|
||||
}, \
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
*/
|
||||
#include <linux/string.h>
|
||||
#include <linux/perf_counter.h>
|
||||
#include <linux/string.h>
|
||||
#include <asm/reg.h>
|
||||
#include <asm/cputable.h>
|
||||
|
||||
|
|
|
@ -358,6 +358,7 @@ static struct power_pmu power7_pmu = {
|
|||
.get_constraint = power7_get_constraint,
|
||||
.get_alternatives = power7_get_alternatives,
|
||||
.disable_pmc = power7_disable_pmc,
|
||||
.flags = PPMU_ALT_SIPR,
|
||||
.n_generic = ARRAY_SIZE(power7_generic_events),
|
||||
.generic_events = power7_generic_events,
|
||||
.cache_events = &power7_cache_events,
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
*/
|
||||
#include <linux/string.h>
|
||||
#include <linux/perf_counter.h>
|
||||
#include <linux/string.h>
|
||||
#include <asm/reg.h>
|
||||
#include <asm/cputable.h>
|
||||
|
||||
|
|
|
@ -159,7 +159,7 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write,
|
|||
int psize;
|
||||
#endif
|
||||
|
||||
pr_debug("%s(%lx,%x,%s)\n", __func__, start, nr_pages, write ? "write" : "read");
|
||||
pr_devel("%s(%lx,%x,%s)\n", __func__, start, nr_pages, write ? "write" : "read");
|
||||
|
||||
start &= PAGE_MASK;
|
||||
addr = start;
|
||||
|
@ -170,7 +170,7 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write,
|
|||
start, len)))
|
||||
goto slow_irqon;
|
||||
|
||||
pr_debug(" aligned: %lx .. %lx\n", start, end);
|
||||
pr_devel(" aligned: %lx .. %lx\n", start, end);
|
||||
|
||||
#ifdef CONFIG_HUGETLB_PAGE
|
||||
/* We bail out on slice boundary crossing when hugetlb is
|
||||
|
@ -234,7 +234,7 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write,
|
|||
do {
|
||||
VM_BUG_ON(shift != mmu_psize_defs[get_slice_psize(mm, a)].shift);
|
||||
ptep = huge_pte_offset(mm, a);
|
||||
pr_debug(" %016lx: huge ptep %p\n", a, ptep);
|
||||
pr_devel(" %016lx: huge ptep %p\n", a, ptep);
|
||||
if (!ptep || !gup_huge_pte(ptep, hstate, &a, end, write, pages,
|
||||
&nr))
|
||||
goto slow;
|
||||
|
@ -249,7 +249,7 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write,
|
|||
#ifdef CONFIG_PPC64
|
||||
VM_BUG_ON(shift != mmu_psize_defs[get_slice_psize(mm, addr)].shift);
|
||||
#endif
|
||||
pr_debug(" %016lx: normal pgd %p\n", addr,
|
||||
pr_devel(" %016lx: normal pgd %p\n", addr,
|
||||
(void *)pgd_val(pgd));
|
||||
next = pgd_addr_end(addr, end);
|
||||
if (pgd_none(pgd))
|
||||
|
@ -269,7 +269,7 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write,
|
|||
slow:
|
||||
local_irq_enable();
|
||||
slow_irqon:
|
||||
pr_debug(" slow path ! nr = %d\n", nr);
|
||||
pr_devel(" slow path ! nr = %d\n", nr);
|
||||
|
||||
/* Try to get the remaining pages with get_user_pages */
|
||||
start += nr << PAGE_SHIFT;
|
||||
|
|
|
@ -89,7 +89,7 @@ static unsigned int steal_context_smp(unsigned int id)
|
|||
id = first_context;
|
||||
continue;
|
||||
}
|
||||
pr_debug("[%d] steal context %d from mm @%p\n",
|
||||
pr_devel("[%d] steal context %d from mm @%p\n",
|
||||
smp_processor_id(), id, mm);
|
||||
|
||||
/* Mark this mm has having no context anymore */
|
||||
|
@ -126,7 +126,7 @@ static unsigned int steal_context_up(unsigned int id)
|
|||
/* Pick up the victim mm */
|
||||
mm = context_mm[id];
|
||||
|
||||
pr_debug("[%d] steal context %d from mm @%p\n", cpu, id, mm);
|
||||
pr_devel("[%d] steal context %d from mm @%p\n", cpu, id, mm);
|
||||
|
||||
/* Flush the TLB for that context */
|
||||
local_flush_tlb_mm(mm);
|
||||
|
@ -180,7 +180,7 @@ void switch_mmu_context(struct mm_struct *prev, struct mm_struct *next)
|
|||
spin_lock(&context_lock);
|
||||
|
||||
#ifndef DEBUG_STEAL_ONLY
|
||||
pr_debug("[%d] activating context for mm @%p, active=%d, id=%d\n",
|
||||
pr_devel("[%d] activating context for mm @%p, active=%d, id=%d\n",
|
||||
cpu, next, next->context.active, next->context.id);
|
||||
#endif
|
||||
|
||||
|
@ -189,7 +189,7 @@ void switch_mmu_context(struct mm_struct *prev, struct mm_struct *next)
|
|||
next->context.active++;
|
||||
if (prev) {
|
||||
#ifndef DEBUG_STEAL_ONLY
|
||||
pr_debug(" old context %p active was: %d\n",
|
||||
pr_devel(" old context %p active was: %d\n",
|
||||
prev, prev->context.active);
|
||||
#endif
|
||||
WARN_ON(prev->context.active < 1);
|
||||
|
@ -236,7 +236,7 @@ void switch_mmu_context(struct mm_struct *prev, struct mm_struct *next)
|
|||
next->context.id = id;
|
||||
|
||||
#ifndef DEBUG_STEAL_ONLY
|
||||
pr_debug("[%d] picked up new id %d, nrf is now %d\n",
|
||||
pr_devel("[%d] picked up new id %d, nrf is now %d\n",
|
||||
cpu, id, nr_free_contexts);
|
||||
#endif
|
||||
|
||||
|
@ -247,7 +247,7 @@ void switch_mmu_context(struct mm_struct *prev, struct mm_struct *next)
|
|||
* local TLB for it and unmark it before we use it
|
||||
*/
|
||||
if (test_bit(id, stale_map[cpu])) {
|
||||
pr_debug("[%d] flushing stale context %d for mm @%p !\n",
|
||||
pr_devel("[%d] flushing stale context %d for mm @%p !\n",
|
||||
cpu, id, next);
|
||||
local_flush_tlb_mm(next);
|
||||
|
||||
|
@ -314,13 +314,13 @@ static int __cpuinit mmu_context_cpu_notify(struct notifier_block *self,
|
|||
switch (action) {
|
||||
case CPU_ONLINE:
|
||||
case CPU_ONLINE_FROZEN:
|
||||
pr_debug("MMU: Allocating stale context map for CPU %d\n", cpu);
|
||||
pr_devel("MMU: Allocating stale context map for CPU %d\n", cpu);
|
||||
stale_map[cpu] = kzalloc(CTX_MAP_SIZE, GFP_KERNEL);
|
||||
break;
|
||||
#ifdef CONFIG_HOTPLUG_CPU
|
||||
case CPU_DEAD:
|
||||
case CPU_DEAD_FROZEN:
|
||||
pr_debug("MMU: Freeing stale context map for CPU %d\n", cpu);
|
||||
pr_devel("MMU: Freeing stale context map for CPU %d\n", cpu);
|
||||
kfree(stale_map[cpu]);
|
||||
stale_map[cpu] = NULL;
|
||||
break;
|
||||
|
|
|
@ -129,12 +129,12 @@ static pte_t do_dcache_icache_coherency(pte_t pte)
|
|||
page = pfn_to_page(pfn);
|
||||
|
||||
if (!PageReserved(page) && !test_bit(PG_arch_1, &page->flags)) {
|
||||
pr_debug("do_dcache_icache_coherency... flushing\n");
|
||||
pr_devel("do_dcache_icache_coherency... flushing\n");
|
||||
flush_dcache_icache_page(page);
|
||||
set_bit(PG_arch_1, &page->flags);
|
||||
}
|
||||
else
|
||||
pr_debug("do_dcache_icache_coherency... already clean\n");
|
||||
pr_devel("do_dcache_icache_coherency... already clean\n");
|
||||
return __pte(pte_val(pte) | _PAGE_HWEXEC);
|
||||
}
|
||||
|
||||
|
|
|
@ -14,8 +14,6 @@
|
|||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#undef DEBUG
|
||||
|
||||
#include <asm/pgtable.h>
|
||||
#include <asm/mmu.h>
|
||||
#include <asm/mmu_context.h>
|
||||
|
@ -27,11 +25,6 @@
|
|||
#include <linux/compiler.h>
|
||||
#include <asm/udbg.h>
|
||||
|
||||
#ifdef DEBUG
|
||||
#define DBG(fmt...) printk(fmt)
|
||||
#else
|
||||
#define DBG pr_debug
|
||||
#endif
|
||||
|
||||
extern void slb_allocate_realmode(unsigned long ea);
|
||||
extern void slb_allocate_user(unsigned long ea);
|
||||
|
@ -285,13 +278,13 @@ void slb_initialize(void)
|
|||
patch_slb_encoding(slb_compare_rr_to_size,
|
||||
mmu_slb_size);
|
||||
|
||||
DBG("SLB: linear LLP = %04lx\n", linear_llp);
|
||||
DBG("SLB: io LLP = %04lx\n", io_llp);
|
||||
pr_devel("SLB: linear LLP = %04lx\n", linear_llp);
|
||||
pr_devel("SLB: io LLP = %04lx\n", io_llp);
|
||||
|
||||
#ifdef CONFIG_SPARSEMEM_VMEMMAP
|
||||
patch_slb_encoding(slb_miss_kernel_load_vmemmap,
|
||||
SLB_VSID_KERNEL | vmemmap_llp);
|
||||
DBG("SLB: vmemmap LLP = %04lx\n", vmemmap_llp);
|
||||
pr_devel("SLB: vmemmap LLP = %04lx\n", vmemmap_llp);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -72,7 +72,7 @@ void hpte_need_flush(struct mm_struct *mm, unsigned long addr,
|
|||
*/
|
||||
if (huge) {
|
||||
#ifdef CONFIG_HUGETLB_PAGE
|
||||
psize = get_slice_psize(mm, addr);;
|
||||
psize = get_slice_psize(mm, addr);
|
||||
#else
|
||||
BUG();
|
||||
psize = pte_pagesize_index(mm, addr, pte); /* shutup gcc */
|
||||
|
|
|
@ -185,7 +185,7 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
|
|||
goto fail;
|
||||
|
||||
if (shdr_str.sh_type != SHT_STRTAB)
|
||||
goto fail;;
|
||||
goto fail;
|
||||
|
||||
for (j = 0; j < shdr.sh_size / sizeof (sym); j++) {
|
||||
if (copy_from_user(&sym, spu_elf_start +
|
||||
|
|
|
@ -64,8 +64,6 @@ define_machine(warp) {
|
|||
};
|
||||
|
||||
|
||||
static u32 post_info;
|
||||
|
||||
static int __init warp_post_info(void)
|
||||
{
|
||||
struct device_node *np;
|
||||
|
@ -87,10 +85,9 @@ static int __init warp_post_info(void)
|
|||
|
||||
iounmap(fpga);
|
||||
|
||||
if (post1 || post2) {
|
||||
if (post1 || post2)
|
||||
printk(KERN_INFO "Warp POST %08x %08x\n", post1, post2);
|
||||
post_info = 1;
|
||||
} else
|
||||
else
|
||||
printk(KERN_INFO "Warp POST OK\n");
|
||||
|
||||
return 0;
|
||||
|
@ -166,6 +163,9 @@ static irqreturn_t temp_isr(int irq, void *context)
|
|||
value ^= 1;
|
||||
mdelay(500);
|
||||
}
|
||||
|
||||
/* Not reached */
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static int pika_setup_leds(void)
|
||||
|
@ -179,15 +179,10 @@ static int pika_setup_leds(void)
|
|||
}
|
||||
|
||||
for_each_child_of_node(np, child)
|
||||
if (strcmp(child->name, "green") == 0) {
|
||||
if (strcmp(child->name, "green") == 0)
|
||||
green_led = of_get_gpio(child, 0);
|
||||
/* Turn back on the green LED */
|
||||
gpio_set_value(green_led, 1);
|
||||
} else if (strcmp(child->name, "red") == 0) {
|
||||
else if (strcmp(child->name, "red") == 0)
|
||||
red_led = of_get_gpio(child, 0);
|
||||
/* Set based on post */
|
||||
gpio_set_value(red_led, post_info);
|
||||
}
|
||||
|
||||
of_node_put(np);
|
||||
|
||||
|
|
|
@ -147,7 +147,7 @@ int __init pq2ads_pci_init_irq(void)
|
|||
goto out;
|
||||
}
|
||||
|
||||
priv = alloc_bootmem(sizeof(struct pq2ads_pci_pic));
|
||||
priv = kzalloc(sizeof(*priv), GFP_KERNEL);
|
||||
if (!priv) {
|
||||
of_node_put(np);
|
||||
ret = -ENOMEM;
|
||||
|
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче