Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-next-2.6
Conflicts: drivers/net/wireless/iwlwifi/iwl-commands.h
This commit is contained in:
@@ -133,6 +133,46 @@ Description:
|
|||||||
The symbolic link points to the PCI device sysfs entry of the
|
The symbolic link points to the PCI device sysfs entry of the
|
||||||
Physical Function this device associates with.
|
Physical Function this device associates with.
|
||||||
|
|
||||||
|
|
||||||
|
What: /sys/bus/pci/slots/...
|
||||||
|
Date: April 2005 (possibly older)
|
||||||
|
KernelVersion: 2.6.12 (possibly older)
|
||||||
|
Contact: linux-pci@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
When the appropriate driver is loaded, it will create a
|
||||||
|
directory per claimed physical PCI slot in
|
||||||
|
/sys/bus/pci/slots/. The names of these directories are
|
||||||
|
specific to the driver, which in turn, are specific to the
|
||||||
|
platform, but in general, should match the label on the
|
||||||
|
machine's physical chassis.
|
||||||
|
|
||||||
|
The drivers that can create slot directories include the
|
||||||
|
PCI hotplug drivers, and as of 2.6.27, the pci_slot driver.
|
||||||
|
|
||||||
|
The slot directories contain, at a minimum, a file named
|
||||||
|
'address' which contains the PCI bus:device:function tuple.
|
||||||
|
Other files may appear as well, but are specific to the
|
||||||
|
driver.
|
||||||
|
|
||||||
|
What: /sys/bus/pci/slots/.../function[0-7]
|
||||||
|
Date: March 2010
|
||||||
|
KernelVersion: 2.6.35
|
||||||
|
Contact: linux-pci@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
If PCI slot directories (as described above) are created,
|
||||||
|
and the physical slot is actually populated with a device,
|
||||||
|
symbolic links in the slot directory pointing to the
|
||||||
|
device's PCI functions are created as well.
|
||||||
|
|
||||||
|
What: /sys/bus/pci/devices/.../slot
|
||||||
|
Date: March 2010
|
||||||
|
KernelVersion: 2.6.35
|
||||||
|
Contact: linux-pci@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
If PCI slot directories (as described above) are created,
|
||||||
|
a symbolic link pointing to the slot directory will be
|
||||||
|
created as well.
|
||||||
|
|
||||||
What: /sys/bus/pci/slots/.../module
|
What: /sys/bus/pci/slots/.../module
|
||||||
Date: June 2009
|
Date: June 2009
|
||||||
Contact: linux-pci@vger.kernel.org
|
Contact: linux-pci@vger.kernel.org
|
||||||
|
|||||||
20
Documentation/ABI/testing/sysfs-class-power
Normal file
20
Documentation/ABI/testing/sysfs-class-power
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
What: /sys/class/power/ds2760-battery.*/charge_now
|
||||||
|
Date: May 2010
|
||||||
|
KernelVersion: 2.6.35
|
||||||
|
Contact: Daniel Mack <daniel@caiaq.de>
|
||||||
|
Description:
|
||||||
|
This file is writeable and can be used to set the current
|
||||||
|
coloumb counter value inside the battery monitor chip. This
|
||||||
|
is needed for unavoidable corrections of aging batteries.
|
||||||
|
A userspace daemon can monitor the battery charging logic
|
||||||
|
and once the counter drops out of considerable bounds, take
|
||||||
|
appropriate action.
|
||||||
|
|
||||||
|
What: /sys/class/power/ds2760-battery.*/charge_full
|
||||||
|
Date: May 2010
|
||||||
|
KernelVersion: 2.6.35
|
||||||
|
Contact: Daniel Mack <daniel@caiaq.de>
|
||||||
|
Description:
|
||||||
|
This file is writeable and can be used to set the assumed
|
||||||
|
battery 'full level'. As batteries age, this value has to be
|
||||||
|
amended over time.
|
||||||
7
Documentation/ABI/testing/sysfs-devices-node
Normal file
7
Documentation/ABI/testing/sysfs-devices-node
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
What: /sys/devices/system/node/nodeX/compact
|
||||||
|
Date: February 2010
|
||||||
|
Contact: Mel Gorman <mel@csn.ul.ie>
|
||||||
|
Description:
|
||||||
|
When this file is written to, all memory within that node
|
||||||
|
will be compacted. When it completes, memory will be freed
|
||||||
|
into blocks which have as many contiguous pages as possible
|
||||||
43
Documentation/ABI/testing/sysfs-driver-hid-picolcd
Normal file
43
Documentation/ABI/testing/sysfs-driver-hid-picolcd
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/operation_mode
|
||||||
|
Date: March 2010
|
||||||
|
Contact: Bruno Prémont <bonbons@linux-vserver.org>
|
||||||
|
Description: Make it possible to switch the PicoLCD device between LCD
|
||||||
|
(firmware) and bootloader (flasher) operation modes.
|
||||||
|
|
||||||
|
Reading: returns list of available modes, the active mode being
|
||||||
|
enclosed in brackets ('[' and ']')
|
||||||
|
|
||||||
|
Writing: causes operation mode switch. Permitted values are
|
||||||
|
the non-active mode names listed when read.
|
||||||
|
|
||||||
|
Note: when switching mode the current PicoLCD HID device gets
|
||||||
|
disconnected and reconnects after above delay (see attribute
|
||||||
|
operation_mode_delay for its value).
|
||||||
|
|
||||||
|
|
||||||
|
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/operation_mode_delay
|
||||||
|
Date: April 2010
|
||||||
|
Contact: Bruno Prémont <bonbons@linux-vserver.org>
|
||||||
|
Description: Delay PicoLCD waits before restarting in new mode when
|
||||||
|
operation_mode has changed.
|
||||||
|
|
||||||
|
Reading/Writing: It is expressed in ms and permitted range is
|
||||||
|
0..30000ms.
|
||||||
|
|
||||||
|
|
||||||
|
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/fb_update_rate
|
||||||
|
Date: March 2010
|
||||||
|
Contact: Bruno Prémont <bonbons@linux-vserver.org>
|
||||||
|
Description: Make it possible to adjust defio refresh rate.
|
||||||
|
|
||||||
|
Reading: returns list of available refresh rates (expressed in Hz),
|
||||||
|
the active refresh rate being enclosed in brackets ('[' and ']')
|
||||||
|
|
||||||
|
Writing: accepts new refresh rate expressed in integer Hz
|
||||||
|
within permitted rates.
|
||||||
|
|
||||||
|
Note: As device can barely do 2 complete refreshes a second
|
||||||
|
it only makes sense to adjust this value if only one or two
|
||||||
|
tiles get changed and it's not appropriate to expect the application
|
||||||
|
to flush it's tiny changes explicitely at higher than default rate.
|
||||||
|
|
||||||
29
Documentation/ABI/testing/sysfs-driver-hid-prodikeys
Normal file
29
Documentation/ABI/testing/sysfs-driver-hid-prodikeys
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
What: /sys/bus/hid/drivers/prodikeys/.../channel
|
||||||
|
Date: April 2010
|
||||||
|
KernelVersion: 2.6.34
|
||||||
|
Contact: Don Prince <dhprince.devel@yahoo.co.uk>
|
||||||
|
Description:
|
||||||
|
Allows control (via software) the midi channel to which
|
||||||
|
that the pc-midi keyboard will output.midi data.
|
||||||
|
Range: 0..15
|
||||||
|
Type: Read/write
|
||||||
|
What: /sys/bus/hid/drivers/prodikeys/.../sustain
|
||||||
|
Date: April 2010
|
||||||
|
KernelVersion: 2.6.34
|
||||||
|
Contact: Don Prince <dhprince.devel@yahoo.co.uk>
|
||||||
|
Description:
|
||||||
|
Allows control (via software) the sustain duration of a
|
||||||
|
note held by the pc-midi driver.
|
||||||
|
0 means sustain mode is disabled.
|
||||||
|
Range: 0..5000 (milliseconds)
|
||||||
|
Type: Read/write
|
||||||
|
What: /sys/bus/hid/drivers/prodikeys/.../octave
|
||||||
|
Date: April 2010
|
||||||
|
KernelVersion: 2.6.34
|
||||||
|
Contact: Don Prince <dhprince.devel@yahoo.co.uk>
|
||||||
|
Description:
|
||||||
|
Controls the octave shift modifier in the pc-midi driver.
|
||||||
|
The octave can be shifted via software up/down 2 octaves.
|
||||||
|
0 means the no ocatve shift.
|
||||||
|
Range: -2..2 (minus 2 to plus 2)
|
||||||
|
Type: Read/Write
|
||||||
111
Documentation/ABI/testing/sysfs-driver-hid-roccat-kone
Normal file
111
Documentation/ABI/testing/sysfs-driver-hid-roccat-kone
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/actual_dpi
|
||||||
|
Date: March 2010
|
||||||
|
Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
|
||||||
|
Description: It is possible to switch the dpi setting of the mouse with the
|
||||||
|
press of a button.
|
||||||
|
When read, this file returns the raw number of the actual dpi
|
||||||
|
setting reported by the mouse. This number has to be further
|
||||||
|
processed to receive the real dpi value.
|
||||||
|
|
||||||
|
VALUE DPI
|
||||||
|
1 800
|
||||||
|
2 1200
|
||||||
|
3 1600
|
||||||
|
4 2000
|
||||||
|
5 2400
|
||||||
|
6 3200
|
||||||
|
|
||||||
|
This file is readonly.
|
||||||
|
|
||||||
|
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/actual_profile
|
||||||
|
Date: March 2010
|
||||||
|
Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
|
||||||
|
Description: When read, this file returns the number of the actual profile.
|
||||||
|
This file is readonly.
|
||||||
|
|
||||||
|
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/firmware_version
|
||||||
|
Date: March 2010
|
||||||
|
Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
|
||||||
|
Description: When read, this file returns the raw integer version number of the
|
||||||
|
firmware reported by the mouse. Using the integer value eases
|
||||||
|
further usage in other programs. To receive the real version
|
||||||
|
number the decimal point has to be shifted 2 positions to the
|
||||||
|
left. E.g. a returned value of 138 means 1.38
|
||||||
|
This file is readonly.
|
||||||
|
|
||||||
|
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/kone_driver_version
|
||||||
|
Date: March 2010
|
||||||
|
Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
|
||||||
|
Description: When read, this file returns the driver version.
|
||||||
|
The format of the string is "v<major>.<minor>.<patchlevel>".
|
||||||
|
This attribute is used by the userland tools to find the sysfs-
|
||||||
|
paths of installed kone-mice and determine the capabilites of
|
||||||
|
the driver. Versions of this driver for old kernels replace
|
||||||
|
usbhid instead of generic-usb. The way to scan for this file
|
||||||
|
has been chosen to provide a consistent way for all supported
|
||||||
|
kernel versions.
|
||||||
|
This file is readonly.
|
||||||
|
|
||||||
|
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/profile[1-5]
|
||||||
|
Date: March 2010
|
||||||
|
Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
|
||||||
|
Description: The mouse can store 5 profiles which can be switched by the
|
||||||
|
press of a button. A profile holds informations like button
|
||||||
|
mappings, sensitivity, the colors of the 5 leds and light
|
||||||
|
effects.
|
||||||
|
When read, these files return the respective profile. The
|
||||||
|
returned data is 975 bytes in size.
|
||||||
|
When written, this file lets one write the respective profile
|
||||||
|
data back to the mouse. The data has to be 975 bytes long.
|
||||||
|
The mouse will reject invalid data, whereas the profile number
|
||||||
|
stored in the profile doesn't need to fit the number of the
|
||||||
|
store.
|
||||||
|
|
||||||
|
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/settings
|
||||||
|
Date: March 2010
|
||||||
|
Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
|
||||||
|
Description: When read, this file returns the settings stored in the mouse.
|
||||||
|
The size of the data is 36 bytes and holds information like the
|
||||||
|
startup_profile, tcu state and calibration_data.
|
||||||
|
When written, this file lets write settings back to the mouse.
|
||||||
|
The data has to be 36 bytes long. The mouse will reject invalid
|
||||||
|
data.
|
||||||
|
|
||||||
|
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/startup_profile
|
||||||
|
Date: March 2010
|
||||||
|
Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
|
||||||
|
Description: The integer value of this attribute ranges from 1 to 5.
|
||||||
|
When read, this attribute returns the number of the profile
|
||||||
|
that's active when the mouse is powered on.
|
||||||
|
When written, this file sets the number of the startup profile
|
||||||
|
and the mouse activates this profile immediately.
|
||||||
|
|
||||||
|
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/tcu
|
||||||
|
Date: March 2010
|
||||||
|
Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
|
||||||
|
Description: The mouse has a "Tracking Control Unit" which lets the user
|
||||||
|
calibrate the laser power to fit the mousepad surface.
|
||||||
|
When read, this file returns the current state of the TCU,
|
||||||
|
where 0 means off and 1 means on.
|
||||||
|
Writing 0 in this file will switch the TCU off.
|
||||||
|
Writing 1 in this file will start the calibration which takes
|
||||||
|
around 6 seconds to complete and activates the TCU.
|
||||||
|
|
||||||
|
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/weight
|
||||||
|
Date: March 2010
|
||||||
|
Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
|
||||||
|
Description: The mouse can be equipped with one of four supplied weights
|
||||||
|
ranging from 5 to 20 grams which are recognized by the mouse
|
||||||
|
and its value can be read out. When read, this file returns the
|
||||||
|
raw value returned by the mouse which eases further processing
|
||||||
|
in other software.
|
||||||
|
The values map to the weights as follows:
|
||||||
|
|
||||||
|
VALUE WEIGHT
|
||||||
|
0 none
|
||||||
|
1 5g
|
||||||
|
2 10g
|
||||||
|
3 15g
|
||||||
|
4 20g
|
||||||
|
|
||||||
|
This file is readonly.
|
||||||
15
Documentation/ABI/testing/sysfs-firmware-sfi
Normal file
15
Documentation/ABI/testing/sysfs-firmware-sfi
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
What: /sys/firmware/sfi/tables/
|
||||||
|
Date: May 2010
|
||||||
|
Contact: Len Brown <lenb@kernel.org>
|
||||||
|
Description:
|
||||||
|
SFI defines a number of small static memory tables
|
||||||
|
so the kernel can get platform information from firmware.
|
||||||
|
|
||||||
|
The tables are defined in the latest SFI specification:
|
||||||
|
http://simplefirmware.org/documentation
|
||||||
|
|
||||||
|
While the tables are used by the kernel, user-space
|
||||||
|
can observe them this way:
|
||||||
|
|
||||||
|
# cd /sys/firmware/sfi/tables
|
||||||
|
# cat $TABLENAME > $TABLENAME.bin
|
||||||
10
Documentation/ABI/testing/sysfs-wacom
Normal file
10
Documentation/ABI/testing/sysfs-wacom
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
What: /sys/class/hidraw/hidraw*/device/speed
|
||||||
|
Date: April 2010
|
||||||
|
Kernel Version: 2.6.35
|
||||||
|
Contact: linux-bluetooth@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
The /sys/class/hidraw/hidraw*/device/speed file controls
|
||||||
|
reporting speed of wacom bluetooth tablet. Reading from
|
||||||
|
this file returns 1 if tablet reports in high speed mode
|
||||||
|
or 0 otherwise. Writing to this file one of these values
|
||||||
|
switches reporting speed.
|
||||||
@@ -639,6 +639,36 @@ is planned to completely remove virt_to_bus() and bus_to_virt() as
|
|||||||
they are entirely deprecated. Some ports already do not provide these
|
they are entirely deprecated. Some ports already do not provide these
|
||||||
as it is impossible to correctly support them.
|
as it is impossible to correctly support them.
|
||||||
|
|
||||||
|
Handling Errors
|
||||||
|
|
||||||
|
DMA address space is limited on some architectures and an allocation
|
||||||
|
failure can be determined by:
|
||||||
|
|
||||||
|
- checking if dma_alloc_coherent returns NULL or dma_map_sg returns 0
|
||||||
|
|
||||||
|
- checking the returned dma_addr_t of dma_map_single and dma_map_page
|
||||||
|
by using dma_mapping_error():
|
||||||
|
|
||||||
|
dma_addr_t dma_handle;
|
||||||
|
|
||||||
|
dma_handle = dma_map_single(dev, addr, size, direction);
|
||||||
|
if (dma_mapping_error(dev, dma_handle)) {
|
||||||
|
/*
|
||||||
|
* reduce current DMA mapping usage,
|
||||||
|
* delay and try again later or
|
||||||
|
* reset driver.
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
Networking drivers must call dev_kfree_skb to free the socket buffer
|
||||||
|
and return NETDEV_TX_OK if the DMA mapping fails on the transmit hook
|
||||||
|
(ndo_start_xmit). This means that the socket buffer is just dropped in
|
||||||
|
the failure case.
|
||||||
|
|
||||||
|
SCSI drivers must return SCSI_MLQUEUE_HOST_BUSY if the DMA mapping
|
||||||
|
fails in the queuecommand hook. This means that the SCSI subsystem
|
||||||
|
passes the command to the driver again later.
|
||||||
|
|
||||||
Optimizing Unmap State Space Consumption
|
Optimizing Unmap State Space Consumption
|
||||||
|
|
||||||
On many platforms, dma_unmap_{single,page}() is simply a nop.
|
On many platforms, dma_unmap_{single,page}() is simply a nop.
|
||||||
@@ -703,42 +733,25 @@ to "Closing".
|
|||||||
|
|
||||||
1) Struct scatterlist requirements.
|
1) Struct scatterlist requirements.
|
||||||
|
|
||||||
Struct scatterlist must contain, at a minimum, the following
|
Don't invent the architecture specific struct scatterlist; just use
|
||||||
members:
|
<asm-generic/scatterlist.h>. You need to enable
|
||||||
|
CONFIG_NEED_SG_DMA_LENGTH if the architecture supports IOMMUs
|
||||||
|
(including software IOMMU).
|
||||||
|
|
||||||
struct page *page;
|
2) ARCH_KMALLOC_MINALIGN
|
||||||
unsigned int offset;
|
|
||||||
unsigned int length;
|
|
||||||
|
|
||||||
The base address is specified by a "page+offset" pair.
|
Architectures must ensure that kmalloc'ed buffer is
|
||||||
|
DMA-safe. Drivers and subsystems depend on it. If an architecture
|
||||||
|
isn't fully DMA-coherent (i.e. hardware doesn't ensure that data in
|
||||||
|
the CPU cache is identical to data in main memory),
|
||||||
|
ARCH_KMALLOC_MINALIGN must be set so that the memory allocator
|
||||||
|
makes sure that kmalloc'ed buffer doesn't share a cache line with
|
||||||
|
the others. See arch/arm/include/asm/cache.h as an example.
|
||||||
|
|
||||||
Previous versions of struct scatterlist contained a "void *address"
|
Note that ARCH_KMALLOC_MINALIGN is about DMA memory alignment
|
||||||
field that was sometimes used instead of page+offset. As of Linux
|
constraints. You don't need to worry about the architecture data
|
||||||
2.5., page+offset is always used, and the "address" field has been
|
alignment constraints (e.g. the alignment constraints about 64-bit
|
||||||
deleted.
|
objects).
|
||||||
|
|
||||||
2) More to come...
|
|
||||||
|
|
||||||
Handling Errors
|
|
||||||
|
|
||||||
DMA address space is limited on some architectures and an allocation
|
|
||||||
failure can be determined by:
|
|
||||||
|
|
||||||
- checking if dma_alloc_coherent returns NULL or dma_map_sg returns 0
|
|
||||||
|
|
||||||
- checking the returned dma_addr_t of dma_map_single and dma_map_page
|
|
||||||
by using dma_mapping_error():
|
|
||||||
|
|
||||||
dma_addr_t dma_handle;
|
|
||||||
|
|
||||||
dma_handle = dma_map_single(dev, addr, size, direction);
|
|
||||||
if (dma_mapping_error(dev, dma_handle)) {
|
|
||||||
/*
|
|
||||||
* reduce current DMA mapping usage,
|
|
||||||
* delay and try again later or
|
|
||||||
* reset driver.
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
Closing
|
Closing
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ DOCBOOKS := z8530book.xml mcabook.xml device-drivers.xml \
|
|||||||
genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \
|
genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \
|
||||||
mac80211.xml debugobjects.xml sh.xml regulator.xml \
|
mac80211.xml debugobjects.xml sh.xml regulator.xml \
|
||||||
alsa-driver-api.xml writing-an-alsa-driver.xml \
|
alsa-driver-api.xml writing-an-alsa-driver.xml \
|
||||||
tracepoint.xml media.xml
|
tracepoint.xml media.xml drm.xml
|
||||||
|
|
||||||
###
|
###
|
||||||
# The build process is as follows (targets):
|
# The build process is as follows (targets):
|
||||||
|
|||||||
839
Documentation/DocBook/drm.tmpl
Normal file
839
Documentation/DocBook/drm.tmpl
Normal file
@@ -0,0 +1,839 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
|
||||||
|
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>
|
||||||
|
|
||||||
|
<book id="drmDevelopersGuide">
|
||||||
|
<bookinfo>
|
||||||
|
<title>Linux DRM Developer's Guide</title>
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
<year>2008-2009</year>
|
||||||
|
<holder>
|
||||||
|
Intel Corporation (Jesse Barnes <jesse.barnes@intel.com>)
|
||||||
|
</holder>
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<legalnotice>
|
||||||
|
<para>
|
||||||
|
The contents of this file may be used under the terms of the GNU
|
||||||
|
General Public License version 2 (the "GPL") as distributed in
|
||||||
|
the kernel source COPYING file.
|
||||||
|
</para>
|
||||||
|
</legalnotice>
|
||||||
|
</bookinfo>
|
||||||
|
|
||||||
|
<toc></toc>
|
||||||
|
|
||||||
|
<!-- Introduction -->
|
||||||
|
|
||||||
|
<chapter id="drmIntroduction">
|
||||||
|
<title>Introduction</title>
|
||||||
|
<para>
|
||||||
|
The Linux DRM layer contains code intended to support the needs
|
||||||
|
of complex graphics devices, usually containing programmable
|
||||||
|
pipelines well suited to 3D graphics acceleration. Graphics
|
||||||
|
drivers in the kernel can make use of DRM functions to make
|
||||||
|
tasks like memory management, interrupt handling and DMA easier,
|
||||||
|
and provide a uniform interface to applications.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
A note on versions: this guide covers features found in the DRM
|
||||||
|
tree, including the TTM memory manager, output configuration and
|
||||||
|
mode setting, and the new vblank internals, in addition to all
|
||||||
|
the regular features found in current kernels.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
[Insert diagram of typical DRM stack here]
|
||||||
|
</para>
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<!-- Internals -->
|
||||||
|
|
||||||
|
<chapter id="drmInternals">
|
||||||
|
<title>DRM Internals</title>
|
||||||
|
<para>
|
||||||
|
This chapter documents DRM internals relevant to driver authors
|
||||||
|
and developers working to add support for the latest features to
|
||||||
|
existing drivers.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
First, we'll go over some typical driver initialization
|
||||||
|
requirements, like setting up command buffers, creating an
|
||||||
|
initial output configuration, and initializing core services.
|
||||||
|
Subsequent sections will cover core internals in more detail,
|
||||||
|
providing implementation notes and examples.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The DRM layer provides several services to graphics drivers,
|
||||||
|
many of them driven by the application interfaces it provides
|
||||||
|
through libdrm, the library that wraps most of the DRM ioctls.
|
||||||
|
These include vblank event handling, memory
|
||||||
|
management, output management, framebuffer management, command
|
||||||
|
submission & fencing, suspend/resume support, and DMA
|
||||||
|
services.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The core of every DRM driver is struct drm_device. Drivers
|
||||||
|
will typically statically initialize a drm_device structure,
|
||||||
|
then pass it to drm_init() at load time.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<!-- Internals: driver init -->
|
||||||
|
|
||||||
|
<sect1>
|
||||||
|
<title>Driver initialization</title>
|
||||||
|
<para>
|
||||||
|
Before calling the DRM initialization routines, the driver must
|
||||||
|
first create and fill out a struct drm_device structure.
|
||||||
|
</para>
|
||||||
|
<programlisting>
|
||||||
|
static struct drm_driver driver = {
|
||||||
|
/* don't use mtrr's here, the Xserver or user space app should
|
||||||
|
* deal with them for intel hardware.
|
||||||
|
*/
|
||||||
|
.driver_features =
|
||||||
|
DRIVER_USE_AGP | DRIVER_REQUIRE_AGP |
|
||||||
|
DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_MODESET,
|
||||||
|
.load = i915_driver_load,
|
||||||
|
.unload = i915_driver_unload,
|
||||||
|
.firstopen = i915_driver_firstopen,
|
||||||
|
.lastclose = i915_driver_lastclose,
|
||||||
|
.preclose = i915_driver_preclose,
|
||||||
|
.save = i915_save,
|
||||||
|
.restore = i915_restore,
|
||||||
|
.device_is_agp = i915_driver_device_is_agp,
|
||||||
|
.get_vblank_counter = i915_get_vblank_counter,
|
||||||
|
.enable_vblank = i915_enable_vblank,
|
||||||
|
.disable_vblank = i915_disable_vblank,
|
||||||
|
.irq_preinstall = i915_driver_irq_preinstall,
|
||||||
|
.irq_postinstall = i915_driver_irq_postinstall,
|
||||||
|
.irq_uninstall = i915_driver_irq_uninstall,
|
||||||
|
.irq_handler = i915_driver_irq_handler,
|
||||||
|
.reclaim_buffers = drm_core_reclaim_buffers,
|
||||||
|
.get_map_ofs = drm_core_get_map_ofs,
|
||||||
|
.get_reg_ofs = drm_core_get_reg_ofs,
|
||||||
|
.fb_probe = intelfb_probe,
|
||||||
|
.fb_remove = intelfb_remove,
|
||||||
|
.fb_resize = intelfb_resize,
|
||||||
|
.master_create = i915_master_create,
|
||||||
|
.master_destroy = i915_master_destroy,
|
||||||
|
#if defined(CONFIG_DEBUG_FS)
|
||||||
|
.debugfs_init = i915_debugfs_init,
|
||||||
|
.debugfs_cleanup = i915_debugfs_cleanup,
|
||||||
|
#endif
|
||||||
|
.gem_init_object = i915_gem_init_object,
|
||||||
|
.gem_free_object = i915_gem_free_object,
|
||||||
|
.gem_vm_ops = &i915_gem_vm_ops,
|
||||||
|
.ioctls = i915_ioctls,
|
||||||
|
.fops = {
|
||||||
|
.owner = THIS_MODULE,
|
||||||
|
.open = drm_open,
|
||||||
|
.release = drm_release,
|
||||||
|
.ioctl = drm_ioctl,
|
||||||
|
.mmap = drm_mmap,
|
||||||
|
.poll = drm_poll,
|
||||||
|
.fasync = drm_fasync,
|
||||||
|
#ifdef CONFIG_COMPAT
|
||||||
|
.compat_ioctl = i915_compat_ioctl,
|
||||||
|
#endif
|
||||||
|
},
|
||||||
|
.pci_driver = {
|
||||||
|
.name = DRIVER_NAME,
|
||||||
|
.id_table = pciidlist,
|
||||||
|
.probe = probe,
|
||||||
|
.remove = __devexit_p(drm_cleanup_pci),
|
||||||
|
},
|
||||||
|
.name = DRIVER_NAME,
|
||||||
|
.desc = DRIVER_DESC,
|
||||||
|
.date = DRIVER_DATE,
|
||||||
|
.major = DRIVER_MAJOR,
|
||||||
|
.minor = DRIVER_MINOR,
|
||||||
|
.patchlevel = DRIVER_PATCHLEVEL,
|
||||||
|
};
|
||||||
|
</programlisting>
|
||||||
|
<para>
|
||||||
|
In the example above, taken from the i915 DRM driver, the driver
|
||||||
|
sets several flags indicating what core features it supports.
|
||||||
|
We'll go over the individual callbacks in later sections. Since
|
||||||
|
flags indicate which features your driver supports to the DRM
|
||||||
|
core, you need to set most of them prior to calling drm_init(). Some,
|
||||||
|
like DRIVER_MODESET can be set later based on user supplied parameters,
|
||||||
|
but that's the exception rather than the rule.
|
||||||
|
</para>
|
||||||
|
<variablelist>
|
||||||
|
<title>Driver flags</title>
|
||||||
|
<varlistentry>
|
||||||
|
<term>DRIVER_USE_AGP</term>
|
||||||
|
<listitem><para>
|
||||||
|
Driver uses AGP interface
|
||||||
|
</para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>DRIVER_REQUIRE_AGP</term>
|
||||||
|
<listitem><para>
|
||||||
|
Driver needs AGP interface to function.
|
||||||
|
</para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>DRIVER_USE_MTRR</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Driver uses MTRR interface for mapping memory. Deprecated.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>DRIVER_PCI_DMA</term>
|
||||||
|
<listitem><para>
|
||||||
|
Driver is capable of PCI DMA. Deprecated.
|
||||||
|
</para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>DRIVER_SG</term>
|
||||||
|
<listitem><para>
|
||||||
|
Driver can perform scatter/gather DMA. Deprecated.
|
||||||
|
</para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>DRIVER_HAVE_DMA</term>
|
||||||
|
<listitem><para>Driver supports DMA. Deprecated.</para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>DRIVER_HAVE_IRQ</term><term>DRIVER_IRQ_SHARED</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
DRIVER_HAVE_IRQ indicates whether the driver has a IRQ
|
||||||
|
handler, DRIVER_IRQ_SHARED indicates whether the device &
|
||||||
|
handler support shared IRQs (note that this is required of
|
||||||
|
PCI drivers).
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>DRIVER_DMA_QUEUE</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
If the driver queues DMA requests and completes them
|
||||||
|
asynchronously, this flag should be set. Deprecated.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>DRIVER_FB_DMA</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Driver supports DMA to/from the framebuffer. Deprecated.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>DRIVER_MODESET</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Driver supports mode setting interfaces.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
<para>
|
||||||
|
In this specific case, the driver requires AGP and supports
|
||||||
|
IRQs. DMA, as we'll see, is handled by device specific ioctls
|
||||||
|
in this case. It also supports the kernel mode setting APIs, though
|
||||||
|
unlike in the actual i915 driver source, this example unconditionally
|
||||||
|
exports KMS capability.
|
||||||
|
</para>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<!-- Internals: driver load -->
|
||||||
|
|
||||||
|
<sect1>
|
||||||
|
<title>Driver load</title>
|
||||||
|
<para>
|
||||||
|
In the previous section, we saw what a typical drm_driver
|
||||||
|
structure might look like. One of the more important fields in
|
||||||
|
the structure is the hook for the load function.
|
||||||
|
</para>
|
||||||
|
<programlisting>
|
||||||
|
static struct drm_driver driver = {
|
||||||
|
...
|
||||||
|
.load = i915_driver_load,
|
||||||
|
...
|
||||||
|
};
|
||||||
|
</programlisting>
|
||||||
|
<para>
|
||||||
|
The load function has many responsibilities: allocating a driver
|
||||||
|
private structure, specifying supported performance counters,
|
||||||
|
configuring the device (e.g. mapping registers & command
|
||||||
|
buffers), initializing the memory manager, and setting up the
|
||||||
|
initial output configuration.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Note that the tasks performed at driver load time must not
|
||||||
|
conflict with DRM client requirements. For instance, if user
|
||||||
|
level mode setting drivers are in use, it would be problematic
|
||||||
|
to perform output discovery & configuration at load time.
|
||||||
|
Likewise, if pre-memory management aware user level drivers are
|
||||||
|
in use, memory management and command buffer setup may need to
|
||||||
|
be omitted. These requirements are driver specific, and care
|
||||||
|
needs to be taken to keep both old and new applications and
|
||||||
|
libraries working. The i915 driver supports the "modeset"
|
||||||
|
module parameter to control whether advanced features are
|
||||||
|
enabled at load time or in legacy fashion. If compatibility is
|
||||||
|
a concern (e.g. with drivers converted over to the new interfaces
|
||||||
|
from the old ones), care must be taken to prevent incompatible
|
||||||
|
device initialization and control with the currently active
|
||||||
|
userspace drivers.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Driver private & performance counters</title>
|
||||||
|
<para>
|
||||||
|
The driver private hangs off the main drm_device structure and
|
||||||
|
can be used for tracking various device specific bits of
|
||||||
|
information, like register offsets, command buffer status,
|
||||||
|
register state for suspend/resume, etc. At load time, a
|
||||||
|
driver can simply allocate one and set drm_device.dev_priv
|
||||||
|
appropriately; at unload the driver can free it and set
|
||||||
|
drm_device.dev_priv to NULL.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The DRM supports several counters which can be used for rough
|
||||||
|
performance characterization. Note that the DRM stat counter
|
||||||
|
system is not often used by applications, and supporting
|
||||||
|
additional counters is completely optional.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
These interfaces are deprecated and should not be used. If performance
|
||||||
|
monitoring is desired, the developer should investigate and
|
||||||
|
potentially enhance the kernel perf and tracing infrastructure to export
|
||||||
|
GPU related performance information to performance monitoring
|
||||||
|
tools and applications.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Configuring the device</title>
|
||||||
|
<para>
|
||||||
|
Obviously, device configuration will be device specific.
|
||||||
|
However, there are several common operations: finding a
|
||||||
|
device's PCI resources, mapping them, and potentially setting
|
||||||
|
up an IRQ handler.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Finding & mapping resources is fairly straightforward. The
|
||||||
|
DRM wrapper functions, drm_get_resource_start() and
|
||||||
|
drm_get_resource_len() can be used to find BARs on the given
|
||||||
|
drm_device struct. Once those values have been retrieved, the
|
||||||
|
driver load function can call drm_addmap() to create a new
|
||||||
|
mapping for the BAR in question. Note you'll probably want a
|
||||||
|
drm_local_map_t in your driver private structure to track any
|
||||||
|
mappings you create.
|
||||||
|
<!-- !Fdrivers/gpu/drm/drm_bufs.c drm_get_resource_* -->
|
||||||
|
<!-- !Finclude/drm/drmP.h drm_local_map_t -->
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
if compatibility with other operating systems isn't a concern
|
||||||
|
(DRM drivers can run under various BSD variants and OpenSolaris),
|
||||||
|
native Linux calls can be used for the above, e.g. pci_resource_*
|
||||||
|
and iomap*/iounmap. See the Linux device driver book for more
|
||||||
|
info.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Once you have a register map, you can use the DRM_READn() and
|
||||||
|
DRM_WRITEn() macros to access the registers on your device, or
|
||||||
|
use driver specific versions to offset into your MMIO space
|
||||||
|
relative to a driver specific base pointer (see I915_READ for
|
||||||
|
example).
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
If your device supports interrupt generation, you may want to
|
||||||
|
setup an interrupt handler at driver load time as well. This
|
||||||
|
is done using the drm_irq_install() function. If your device
|
||||||
|
supports vertical blank interrupts, it should call
|
||||||
|
drm_vblank_init() to initialize the core vblank handling code before
|
||||||
|
enabling interrupts on your device. This ensures the vblank related
|
||||||
|
structures are allocated and allows the core to handle vblank events.
|
||||||
|
</para>
|
||||||
|
<!--!Fdrivers/char/drm/drm_irq.c drm_irq_install-->
|
||||||
|
<para>
|
||||||
|
Once your interrupt handler is registered (it'll use your
|
||||||
|
drm_driver.irq_handler as the actual interrupt handling
|
||||||
|
function), you can safely enable interrupts on your device,
|
||||||
|
assuming any other state your interrupt handler uses is also
|
||||||
|
initialized.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Another task that may be necessary during configuration is
|
||||||
|
mapping the video BIOS. On many devices, the VBIOS describes
|
||||||
|
device configuration, LCD panel timings (if any), and contains
|
||||||
|
flags indicating device state. Mapping the BIOS can be done
|
||||||
|
using the pci_map_rom() call, a convenience function that
|
||||||
|
takes care of mapping the actual ROM, whether it has been
|
||||||
|
shadowed into memory (typically at address 0xc0000) or exists
|
||||||
|
on the PCI device in the ROM BAR. Note that once you've
|
||||||
|
mapped the ROM and extracted any necessary information, be
|
||||||
|
sure to unmap it; on many devices the ROM address decoder is
|
||||||
|
shared with other BARs, so leaving it mapped can cause
|
||||||
|
undesired behavior like hangs or memory corruption.
|
||||||
|
<!--!Fdrivers/pci/rom.c pci_map_rom-->
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Memory manager initialization</title>
|
||||||
|
<para>
|
||||||
|
In order to allocate command buffers, cursor memory, scanout
|
||||||
|
buffers, etc., as well as support the latest features provided
|
||||||
|
by packages like Mesa and the X.Org X server, your driver
|
||||||
|
should support a memory manager.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
If your driver supports memory management (it should!), you'll
|
||||||
|
need to set that up at load time as well. How you intialize
|
||||||
|
it depends on which memory manager you're using, TTM or GEM.
|
||||||
|
</para>
|
||||||
|
<sect3>
|
||||||
|
<title>TTM initialization</title>
|
||||||
|
<para>
|
||||||
|
TTM (for Translation Table Manager) manages video memory and
|
||||||
|
aperture space for graphics devices. TTM supports both UMA devices
|
||||||
|
and devices with dedicated video RAM (VRAM), i.e. most discrete
|
||||||
|
graphics devices. If your device has dedicated RAM, supporting
|
||||||
|
TTM is desireable. TTM also integrates tightly with your
|
||||||
|
driver specific buffer execution function. See the radeon
|
||||||
|
driver for examples.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The core TTM structure is the ttm_bo_driver struct. It contains
|
||||||
|
several fields with function pointers for initializing the TTM,
|
||||||
|
allocating and freeing memory, waiting for command completion
|
||||||
|
and fence synchronization, and memory migration. See the
|
||||||
|
radeon_ttm.c file for an example of usage.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The ttm_global_reference structure is made up of several fields:
|
||||||
|
</para>
|
||||||
|
<programlisting>
|
||||||
|
struct ttm_global_reference {
|
||||||
|
enum ttm_global_types global_type;
|
||||||
|
size_t size;
|
||||||
|
void *object;
|
||||||
|
int (*init) (struct ttm_global_reference *);
|
||||||
|
void (*release) (struct ttm_global_reference *);
|
||||||
|
};
|
||||||
|
</programlisting>
|
||||||
|
<para>
|
||||||
|
There should be one global reference structure for your memory
|
||||||
|
manager as a whole, and there will be others for each object
|
||||||
|
created by the memory manager at runtime. Your global TTM should
|
||||||
|
have a type of TTM_GLOBAL_TTM_MEM. The size field for the global
|
||||||
|
object should be sizeof(struct ttm_mem_global), and the init and
|
||||||
|
release hooks should point at your driver specific init and
|
||||||
|
release routines, which will probably eventually call
|
||||||
|
ttm_mem_global_init and ttm_mem_global_release respectively.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Once your global TTM accounting structure is set up and initialized
|
||||||
|
(done by calling ttm_global_item_ref on the global object you
|
||||||
|
just created), you'll need to create a buffer object TTM to
|
||||||
|
provide a pool for buffer object allocation by clients and the
|
||||||
|
kernel itself. The type of this object should be TTM_GLOBAL_TTM_BO,
|
||||||
|
and its size should be sizeof(struct ttm_bo_global). Again,
|
||||||
|
driver specific init and release functions can be provided,
|
||||||
|
likely eventually calling ttm_bo_global_init and
|
||||||
|
ttm_bo_global_release, respectively. Also like the previous
|
||||||
|
object, ttm_global_item_ref is used to create an initial reference
|
||||||
|
count for the TTM, which will call your initalization function.
|
||||||
|
</para>
|
||||||
|
</sect3>
|
||||||
|
<sect3>
|
||||||
|
<title>GEM initialization</title>
|
||||||
|
<para>
|
||||||
|
GEM is an alternative to TTM, designed specifically for UMA
|
||||||
|
devices. It has simpler initialization and execution requirements
|
||||||
|
than TTM, but has no VRAM management capability. Core GEM
|
||||||
|
initialization is comprised of a basic drm_mm_init call to create
|
||||||
|
a GTT DRM MM object, which provides an address space pool for
|
||||||
|
object allocation. In a KMS configuration, the driver will
|
||||||
|
need to allocate and initialize a command ring buffer following
|
||||||
|
basic GEM initialization. Most UMA devices have a so-called
|
||||||
|
"stolen" memory region, which provides space for the initial
|
||||||
|
framebuffer and large, contiguous memory regions required by the
|
||||||
|
device. This space is not typically managed by GEM, and must
|
||||||
|
be initialized separately into its own DRM MM object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Initialization will be driver specific, and will depend on
|
||||||
|
the architecture of the device. In the case of Intel
|
||||||
|
integrated graphics chips like 965GM, GEM initialization can
|
||||||
|
be done by calling the internal GEM init function,
|
||||||
|
i915_gem_do_init(). Since the 965GM is a UMA device
|
||||||
|
(i.e. it doesn't have dedicated VRAM), GEM will manage
|
||||||
|
making regular RAM available for GPU operations. Memory set
|
||||||
|
aside by the BIOS (called "stolen" memory by the i915
|
||||||
|
driver) will be managed by the DRM memrange allocator; the
|
||||||
|
rest of the aperture will be managed by GEM.
|
||||||
|
<programlisting>
|
||||||
|
/* Basic memrange allocator for stolen space (aka vram) */
|
||||||
|
drm_memrange_init(&dev_priv->vram, 0, prealloc_size);
|
||||||
|
/* Let GEM Manage from end of prealloc space to end of aperture */
|
||||||
|
i915_gem_do_init(dev, prealloc_size, agp_size);
|
||||||
|
</programlisting>
|
||||||
|
<!--!Edrivers/char/drm/drm_memrange.c-->
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Once the memory manager has been set up, we can allocate the
|
||||||
|
command buffer. In the i915 case, this is also done with a
|
||||||
|
GEM function, i915_gem_init_ringbuffer().
|
||||||
|
</para>
|
||||||
|
</sect3>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Output configuration</title>
|
||||||
|
<para>
|
||||||
|
The final initialization task is output configuration. This involves
|
||||||
|
finding and initializing the CRTCs, encoders and connectors
|
||||||
|
for your device, creating an initial configuration and
|
||||||
|
registering a framebuffer console driver.
|
||||||
|
</para>
|
||||||
|
<sect3>
|
||||||
|
<title>Output discovery and initialization</title>
|
||||||
|
<para>
|
||||||
|
Several core functions exist to create CRTCs, encoders and
|
||||||
|
connectors, namely drm_crtc_init(), drm_connector_init() and
|
||||||
|
drm_encoder_init(), along with several "helper" functions to
|
||||||
|
perform common tasks.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Connectors should be registered with sysfs once they've been
|
||||||
|
detected and initialized, using the
|
||||||
|
drm_sysfs_connector_add() function. Likewise, when they're
|
||||||
|
removed from the system, they should be destroyed with
|
||||||
|
drm_sysfs_connector_remove().
|
||||||
|
</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
void intel_crt_init(struct drm_device *dev)
|
||||||
|
{
|
||||||
|
struct drm_connector *connector;
|
||||||
|
struct intel_output *intel_output;
|
||||||
|
|
||||||
|
intel_output = kzalloc(sizeof(struct intel_output), GFP_KERNEL);
|
||||||
|
if (!intel_output)
|
||||||
|
return;
|
||||||
|
|
||||||
|
connector = &intel_output->base;
|
||||||
|
drm_connector_init(dev, &intel_output->base,
|
||||||
|
&intel_crt_connector_funcs, DRM_MODE_CONNECTOR_VGA);
|
||||||
|
|
||||||
|
drm_encoder_init(dev, &intel_output->enc, &intel_crt_enc_funcs,
|
||||||
|
DRM_MODE_ENCODER_DAC);
|
||||||
|
|
||||||
|
drm_mode_connector_attach_encoder(&intel_output->base,
|
||||||
|
&intel_output->enc);
|
||||||
|
|
||||||
|
/* Set up the DDC bus. */
|
||||||
|
intel_output->ddc_bus = intel_i2c_create(dev, GPIOA, "CRTDDC_A");
|
||||||
|
if (!intel_output->ddc_bus) {
|
||||||
|
dev_printk(KERN_ERR, &dev->pdev->dev, "DDC bus registration "
|
||||||
|
"failed.\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
intel_output->type = INTEL_OUTPUT_ANALOG;
|
||||||
|
connector->interlace_allowed = 0;
|
||||||
|
connector->doublescan_allowed = 0;
|
||||||
|
|
||||||
|
drm_encoder_helper_add(&intel_output->enc, &intel_crt_helper_funcs);
|
||||||
|
drm_connector_helper_add(connector, &intel_crt_connector_helper_funcs);
|
||||||
|
|
||||||
|
drm_sysfs_connector_add(connector);
|
||||||
|
}
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
<para>
|
||||||
|
In the example above (again, taken from the i915 driver), a
|
||||||
|
CRT connector and encoder combination is created. A device
|
||||||
|
specific i2c bus is also created, for fetching EDID data and
|
||||||
|
performing monitor detection. Once the process is complete,
|
||||||
|
the new connector is regsitered with sysfs, to make its
|
||||||
|
properties available to applications.
|
||||||
|
</para>
|
||||||
|
<sect4>
|
||||||
|
<title>Helper functions and core functions</title>
|
||||||
|
<para>
|
||||||
|
Since many PC-class graphics devices have similar display output
|
||||||
|
designs, the DRM provides a set of helper functions to make
|
||||||
|
output management easier. The core helper routines handle
|
||||||
|
encoder re-routing and disabling of unused functions following
|
||||||
|
mode set. Using the helpers is optional, but recommended for
|
||||||
|
devices with PC-style architectures (i.e. a set of display planes
|
||||||
|
for feeding pixels to encoders which are in turn routed to
|
||||||
|
connectors). Devices with more complex requirements needing
|
||||||
|
finer grained management can opt to use the core callbacks
|
||||||
|
directly.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
[Insert typical diagram here.] [Insert OMAP style config here.]
|
||||||
|
</para>
|
||||||
|
</sect4>
|
||||||
|
<para>
|
||||||
|
For each encoder, CRTC and connector, several functions must
|
||||||
|
be provided, depending on the object type. Encoder objects
|
||||||
|
need should provide a DPMS (basically on/off) function, mode fixup
|
||||||
|
(for converting requested modes into native hardware timings),
|
||||||
|
and prepare, set and commit functions for use by the core DRM
|
||||||
|
helper functions. Connector helpers need to provide mode fetch and
|
||||||
|
validity functions as well as an encoder matching function for
|
||||||
|
returing an ideal encoder for a given connector. The core
|
||||||
|
connector functions include a DPMS callback, (deprecated)
|
||||||
|
save/restore routines, detection, mode probing, property handling,
|
||||||
|
and cleanup functions.
|
||||||
|
</para>
|
||||||
|
<!--!Edrivers/char/drm/drm_crtc.h-->
|
||||||
|
<!--!Edrivers/char/drm/drm_crtc.c-->
|
||||||
|
<!--!Edrivers/char/drm/drm_crtc_helper.c-->
|
||||||
|
</sect3>
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<!-- Internals: vblank handling -->
|
||||||
|
|
||||||
|
<sect1>
|
||||||
|
<title>VBlank event handling</title>
|
||||||
|
<para>
|
||||||
|
The DRM core exposes two vertical blank related ioctls:
|
||||||
|
DRM_IOCTL_WAIT_VBLANK and DRM_IOCTL_MODESET_CTL.
|
||||||
|
<!--!Edrivers/char/drm/drm_irq.c-->
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
DRM_IOCTL_WAIT_VBLANK takes a struct drm_wait_vblank structure
|
||||||
|
as its argument, and is used to block or request a signal when a
|
||||||
|
specified vblank event occurs.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
DRM_IOCTL_MODESET_CTL should be called by application level
|
||||||
|
drivers before and after mode setting, since on many devices the
|
||||||
|
vertical blank counter will be reset at that time. Internally,
|
||||||
|
the DRM snapshots the last vblank count when the ioctl is called
|
||||||
|
with the _DRM_PRE_MODESET command so that the counter won't go
|
||||||
|
backwards (which is dealt with when _DRM_POST_MODESET is used).
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
To support the functions above, the DRM core provides several
|
||||||
|
helper functions for tracking vertical blank counters, and
|
||||||
|
requires drivers to provide several callbacks:
|
||||||
|
get_vblank_counter(), enable_vblank() and disable_vblank(). The
|
||||||
|
core uses get_vblank_counter() to keep the counter accurate
|
||||||
|
across interrupt disable periods. It should return the current
|
||||||
|
vertical blank event count, which is often tracked in a device
|
||||||
|
register. The enable and disable vblank callbacks should enable
|
||||||
|
and disable vertical blank interrupts, respectively. In the
|
||||||
|
absence of DRM clients waiting on vblank events, the core DRM
|
||||||
|
code will use the disable_vblank() function to disable
|
||||||
|
interrupts, which saves power. They'll be re-enabled again when
|
||||||
|
a client calls the vblank wait ioctl above.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Devices that don't provide a count register can simply use an
|
||||||
|
internal atomic counter incremented on every vertical blank
|
||||||
|
interrupt, and can make their enable and disable vblank
|
||||||
|
functions into no-ops.
|
||||||
|
</para>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1>
|
||||||
|
<title>Memory management</title>
|
||||||
|
<para>
|
||||||
|
The memory manager lies at the heart of many DRM operations, and
|
||||||
|
is also required to support advanced client features like OpenGL
|
||||||
|
pbuffers. The DRM currently contains two memory managers, TTM
|
||||||
|
and GEM.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>The Translation Table Manager (TTM)</title>
|
||||||
|
<para>
|
||||||
|
TTM was developed by Tungsten Graphics, primarily by Thomas
|
||||||
|
Hellström, and is intended to be a flexible, high performance
|
||||||
|
graphics memory manager.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Drivers wishing to support TTM must fill out a drm_bo_driver
|
||||||
|
structure.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
TTM design background and information belongs here.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>The Graphics Execution Manager (GEM)</title>
|
||||||
|
<para>
|
||||||
|
GEM is an Intel project, authored by Eric Anholt and Keith
|
||||||
|
Packard. It provides simpler interfaces than TTM, and is well
|
||||||
|
suited for UMA devices.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
GEM-enabled drivers must provide gem_init_object() and
|
||||||
|
gem_free_object() callbacks to support the core memory
|
||||||
|
allocation routines. They should also provide several driver
|
||||||
|
specific ioctls to support command execution, pinning, buffer
|
||||||
|
read & write, mapping, and domain ownership transfers.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
On a fundamental level, GEM involves several operations: memory
|
||||||
|
allocation and freeing, command execution, and aperture management
|
||||||
|
at command execution time. Buffer object allocation is relatively
|
||||||
|
straightforward and largely provided by Linux's shmem layer, which
|
||||||
|
provides memory to back each object. When mapped into the GTT
|
||||||
|
or used in a command buffer, the backing pages for an object are
|
||||||
|
flushed to memory and marked write combined so as to be coherent
|
||||||
|
with the GPU. Likewise, when the GPU finishes rendering to an object,
|
||||||
|
if the CPU accesses it, it must be made coherent with the CPU's view
|
||||||
|
of memory, usually involving GPU cache flushing of various kinds.
|
||||||
|
This core CPU<->GPU coherency management is provided by the GEM
|
||||||
|
set domain function, which evaluates an object's current domain and
|
||||||
|
performs any necessary flushing or synchronization to put the object
|
||||||
|
into the desired coherency domain (note that the object may be busy,
|
||||||
|
i.e. an active render target; in that case the set domain function
|
||||||
|
will block the client and wait for rendering to complete before
|
||||||
|
performing any necessary flushing operations).
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Perhaps the most important GEM function is providing a command
|
||||||
|
execution interface to clients. Client programs construct command
|
||||||
|
buffers containing references to previously allocated memory objects
|
||||||
|
and submit them to GEM. At that point, GEM will take care to bind
|
||||||
|
all the objects into the GTT, execute the buffer, and provide
|
||||||
|
necessary synchronization between clients accessing the same buffers.
|
||||||
|
This often involves evicting some objects from the GTT and re-binding
|
||||||
|
others (a fairly expensive operation), and providing relocation
|
||||||
|
support which hides fixed GTT offsets from clients. Clients must
|
||||||
|
take care not to submit command buffers that reference more objects
|
||||||
|
than can fit in the GTT or GEM will reject them and no rendering
|
||||||
|
will occur. Similarly, if several objects in the buffer require
|
||||||
|
fence registers to be allocated for correct rendering (e.g. 2D blits
|
||||||
|
on pre-965 chips), care must be taken not to require more fence
|
||||||
|
registers than are available to the client. Such resource management
|
||||||
|
should be abstracted from the client in libdrm.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<!-- Output management -->
|
||||||
|
<sect1>
|
||||||
|
<title>Output management</title>
|
||||||
|
<para>
|
||||||
|
At the core of the DRM output management code is a set of
|
||||||
|
structures representing CRTCs, encoders and connectors.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
A CRTC is an abstraction representing a part of the chip that
|
||||||
|
contains a pointer to a scanout buffer. Therefore, the number
|
||||||
|
of CRTCs available determines how many independent scanout
|
||||||
|
buffers can be active at any given time. The CRTC structure
|
||||||
|
contains several fields to support this: a pointer to some video
|
||||||
|
memory, a display mode, and an (x, y) offset into the video
|
||||||
|
memory to support panning or configurations where one piece of
|
||||||
|
video memory spans multiple CRTCs.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
An encoder takes pixel data from a CRTC and converts it to a
|
||||||
|
format suitable for any attached connectors. On some devices,
|
||||||
|
it may be possible to have a CRTC send data to more than one
|
||||||
|
encoder. In that case, both encoders would receive data from
|
||||||
|
the same scanout buffer, resulting in a "cloned" display
|
||||||
|
configuration across the connectors attached to each encoder.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
A connector is the final destination for pixel data on a device,
|
||||||
|
and usually connects directly to an external display device like
|
||||||
|
a monitor or laptop panel. A connector can only be attached to
|
||||||
|
one encoder at a time. The connector is also the structure
|
||||||
|
where information about the attached display is kept, so it
|
||||||
|
contains fields for display data, EDID data, DPMS &
|
||||||
|
connection status, and information about modes supported on the
|
||||||
|
attached displays.
|
||||||
|
</para>
|
||||||
|
<!--!Edrivers/char/drm/drm_crtc.c-->
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1>
|
||||||
|
<title>Framebuffer management</title>
|
||||||
|
<para>
|
||||||
|
In order to set a mode on a given CRTC, encoder and connector
|
||||||
|
configuration, clients need to provide a framebuffer object which
|
||||||
|
will provide a source of pixels for the CRTC to deliver to the encoder(s)
|
||||||
|
and ultimately the connector(s) in the configuration. A framebuffer
|
||||||
|
is fundamentally a driver specific memory object, made into an opaque
|
||||||
|
handle by the DRM addfb function. Once an fb has been created this
|
||||||
|
way it can be passed to the KMS mode setting routines for use in
|
||||||
|
a configuration.
|
||||||
|
</para>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1>
|
||||||
|
<title>Command submission & fencing</title>
|
||||||
|
<para>
|
||||||
|
This should cover a few device specific command submission
|
||||||
|
implementations.
|
||||||
|
</para>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1>
|
||||||
|
<title>Suspend/resume</title>
|
||||||
|
<para>
|
||||||
|
The DRM core provides some suspend/resume code, but drivers
|
||||||
|
wanting full suspend/resume support should provide save() and
|
||||||
|
restore() functions. These will be called at suspend,
|
||||||
|
hibernate, or resume time, and should perform any state save or
|
||||||
|
restore required by your device across suspend or hibernate
|
||||||
|
states.
|
||||||
|
</para>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1>
|
||||||
|
<title>DMA services</title>
|
||||||
|
<para>
|
||||||
|
This should cover how DMA mapping etc. is supported by the core.
|
||||||
|
These functions are deprecated and should not be used.
|
||||||
|
</para>
|
||||||
|
</sect1>
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<!-- External interfaces -->
|
||||||
|
|
||||||
|
<chapter id="drmExternals">
|
||||||
|
<title>Userland interfaces</title>
|
||||||
|
<para>
|
||||||
|
The DRM core exports several interfaces to applications,
|
||||||
|
generally intended to be used through corresponding libdrm
|
||||||
|
wrapper functions. In addition, drivers export device specific
|
||||||
|
interfaces for use by userspace drivers & device aware
|
||||||
|
applications through ioctls and sysfs files.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
External interfaces include: memory mapping, context management,
|
||||||
|
DMA operations, AGP management, vblank control, fence
|
||||||
|
management, memory management, and output management.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Cover generic ioctls and sysfs layout here. Only need high
|
||||||
|
level info, since man pages will cover the rest.
|
||||||
|
</para>
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<!-- API reference -->
|
||||||
|
|
||||||
|
<appendix id="drmDriverApi">
|
||||||
|
<title>DRM Driver API</title>
|
||||||
|
<para>
|
||||||
|
Include auto-generated API reference here (need to reference it
|
||||||
|
from paragraphs above too).
|
||||||
|
</para>
|
||||||
|
</appendix>
|
||||||
|
|
||||||
|
</book>
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
<book id="kgdbOnLinux">
|
<book id="kgdbOnLinux">
|
||||||
<bookinfo>
|
<bookinfo>
|
||||||
<title>Using kgdb and the kgdb Internals</title>
|
<title>Using kgdb, kdb and the kernel debugger internals</title>
|
||||||
|
|
||||||
<authorgroup>
|
<authorgroup>
|
||||||
<author>
|
<author>
|
||||||
@@ -17,33 +17,8 @@
|
|||||||
</affiliation>
|
</affiliation>
|
||||||
</author>
|
</author>
|
||||||
</authorgroup>
|
</authorgroup>
|
||||||
|
|
||||||
<authorgroup>
|
|
||||||
<author>
|
|
||||||
<firstname>Tom</firstname>
|
|
||||||
<surname>Rini</surname>
|
|
||||||
<affiliation>
|
|
||||||
<address>
|
|
||||||
<email>trini@kernel.crashing.org</email>
|
|
||||||
</address>
|
|
||||||
</affiliation>
|
|
||||||
</author>
|
|
||||||
</authorgroup>
|
|
||||||
|
|
||||||
<authorgroup>
|
|
||||||
<author>
|
|
||||||
<firstname>Amit S.</firstname>
|
|
||||||
<surname>Kale</surname>
|
|
||||||
<affiliation>
|
|
||||||
<address>
|
|
||||||
<email>amitkale@linsyssoft.com</email>
|
|
||||||
</address>
|
|
||||||
</affiliation>
|
|
||||||
</author>
|
|
||||||
</authorgroup>
|
|
||||||
|
|
||||||
<copyright>
|
<copyright>
|
||||||
<year>2008</year>
|
<year>2008,2010</year>
|
||||||
<holder>Wind River Systems, Inc.</holder>
|
<holder>Wind River Systems, Inc.</holder>
|
||||||
</copyright>
|
</copyright>
|
||||||
<copyright>
|
<copyright>
|
||||||
@@ -69,41 +44,76 @@
|
|||||||
<chapter id="Introduction">
|
<chapter id="Introduction">
|
||||||
<title>Introduction</title>
|
<title>Introduction</title>
|
||||||
<para>
|
<para>
|
||||||
kgdb is a source level debugger for linux kernel. It is used along
|
The kernel has two different debugger front ends (kdb and kgdb)
|
||||||
with gdb to debug a linux kernel. The expectation is that gdb can
|
which interface to the debug core. It is possible to use either
|
||||||
be used to "break in" to the kernel to inspect memory, variables
|
of the debugger front ends and dynamically transition between them
|
||||||
and look through call stack information similar to what an
|
if you configure the kernel properly at compile and runtime.
|
||||||
application developer would use gdb for. It is possible to place
|
|
||||||
breakpoints in kernel code and perform some limited execution
|
|
||||||
stepping.
|
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Two machines are required for using kgdb. One of these machines is a
|
Kdb is simplistic shell-style interface which you can use on a
|
||||||
development machine and the other is a test machine. The kernel
|
system console with a keyboard or serial console. You can use it
|
||||||
to be debugged runs on the test machine. The development machine
|
to inspect memory, registers, process lists, dmesg, and even set
|
||||||
runs an instance of gdb against the vmlinux file which contains
|
breakpoints to stop in a certain location. Kdb is not a source
|
||||||
the symbols (not boot image such as bzImage, zImage, uImage...).
|
level debugger, although you can set breakpoints and execute some
|
||||||
In gdb the developer specifies the connection parameters and
|
basic kernel run control. Kdb is mainly aimed at doing some
|
||||||
connects to kgdb. The type of connection a developer makes with
|
analysis to aid in development or diagnosing kernel problems. You
|
||||||
gdb depends on the availability of kgdb I/O modules compiled as
|
can access some symbols by name in kernel built-ins or in kernel
|
||||||
builtin's or kernel modules in the test machine's kernel.
|
modules if the code was built
|
||||||
|
with <symbol>CONFIG_KALLSYMS</symbol>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Kgdb is intended to be used as a source level debugger for the
|
||||||
|
Linux kernel. It is used along with gdb to debug a Linux kernel.
|
||||||
|
The expectation is that gdb can be used to "break in" to the
|
||||||
|
kernel to inspect memory, variables and look through call stack
|
||||||
|
information similar to the way an application developer would use
|
||||||
|
gdb to debug an application. It is possible to place breakpoints
|
||||||
|
in kernel code and perform some limited execution stepping.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Two machines are required for using kgdb. One of these machines is
|
||||||
|
a development machine and the other is the target machine. The
|
||||||
|
kernel to be debugged runs on the target machine. The development
|
||||||
|
machine runs an instance of gdb against the vmlinux file which
|
||||||
|
contains the symbols (not boot image such as bzImage, zImage,
|
||||||
|
uImage...). In gdb the developer specifies the connection
|
||||||
|
parameters and connects to kgdb. The type of connection a
|
||||||
|
developer makes with gdb depends on the availability of kgdb I/O
|
||||||
|
modules compiled as built-ins or loadable kernel modules in the test
|
||||||
|
machine's kernel.
|
||||||
</para>
|
</para>
|
||||||
</chapter>
|
</chapter>
|
||||||
<chapter id="CompilingAKernel">
|
<chapter id="CompilingAKernel">
|
||||||
<title>Compiling a kernel</title>
|
<title>Compiling a kernel</title>
|
||||||
|
<para>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para>In order to enable compilation of kdb, you must first enable kgdb.</para></listitem>
|
||||||
|
<listitem><para>The kgdb test compile options are described in the kgdb test suite chapter.</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
<sect1 id="CompileKGDB">
|
||||||
|
<title>Kernel config options for kgdb</title>
|
||||||
<para>
|
<para>
|
||||||
To enable <symbol>CONFIG_KGDB</symbol> you should first turn on
|
To enable <symbol>CONFIG_KGDB</symbol> you should first turn on
|
||||||
"Prompt for development and/or incomplete code/drivers"
|
"Prompt for development and/or incomplete code/drivers"
|
||||||
(CONFIG_EXPERIMENTAL) in "General setup", then under the
|
(CONFIG_EXPERIMENTAL) in "General setup", then under the
|
||||||
"Kernel debugging" select "KGDB: kernel debugging with remote gdb".
|
"Kernel debugging" select "KGDB: kernel debugger".
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
While it is not a hard requirement that you have symbols in your
|
||||||
|
vmlinux file, gdb tends not to be very useful without the symbolic
|
||||||
|
data, so you will want to turn
|
||||||
|
on <symbol>CONFIG_DEBUG_INFO</symbol> which is called "Compile the
|
||||||
|
kernel with debug info" in the config menu.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
It is advised, but not required that you turn on the
|
It is advised, but not required that you turn on the
|
||||||
CONFIG_FRAME_POINTER kernel option. This option inserts code to
|
<symbol>CONFIG_FRAME_POINTER</symbol> kernel option which is called "Compile the
|
||||||
into the compiled executable which saves the frame information in
|
kernel with frame pointers" in the config menu. This option
|
||||||
registers or on the stack at different points which will allow a
|
inserts code to into the compiled executable which saves the frame
|
||||||
debugger such as gdb to more accurately construct stack back traces
|
information in registers or on the stack at different points which
|
||||||
while debugging the kernel.
|
allows a debugger such as gdb to more accurately construct
|
||||||
|
stack back traces while debugging the kernel.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
If the architecture that you are using supports the kernel option
|
If the architecture that you are using supports the kernel option
|
||||||
@@ -116,38 +126,160 @@
|
|||||||
this option.
|
this option.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Next you should choose one of more I/O drivers to interconnect debugging
|
Next you should choose one of more I/O drivers to interconnect
|
||||||
host and debugged target. Early boot debugging requires a KGDB
|
debugging host and debugged target. Early boot debugging requires
|
||||||
I/O driver that supports early debugging and the driver must be
|
a KGDB I/O driver that supports early debugging and the driver
|
||||||
built into the kernel directly. Kgdb I/O driver configuration
|
must be built into the kernel directly. Kgdb I/O driver
|
||||||
takes place via kernel or module parameters, see following
|
configuration takes place via kernel or module parameters which
|
||||||
chapter.
|
you can learn more about in the in the section that describes the
|
||||||
|
parameter "kgdboc".
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>Here is an example set of .config symbols to enable or
|
||||||
The kgdb test compile options are described in the kgdb test suite chapter.
|
disable for kgdb:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para># CONFIG_DEBUG_RODATA is not set</para></listitem>
|
||||||
|
<listitem><para>CONFIG_FRAME_POINTER=y</para></listitem>
|
||||||
|
<listitem><para>CONFIG_KGDB=y</para></listitem>
|
||||||
|
<listitem><para>CONFIG_KGDB_SERIAL_CONSOLE=y</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
</para>
|
</para>
|
||||||
|
</sect1>
|
||||||
|
<sect1 id="CompileKDB">
|
||||||
|
<title>Kernel config options for kdb</title>
|
||||||
|
<para>Kdb is quite a bit more complex than the simple gdbstub
|
||||||
|
sitting on top of the kernel's debug core. Kdb must implement a
|
||||||
|
shell, and also adds some helper functions in other parts of the
|
||||||
|
kernel, responsible for printing out interesting data such as what
|
||||||
|
you would see if you ran "lsmod", or "ps". In order to build kdb
|
||||||
|
into the kernel you follow the same steps as you would for kgdb.
|
||||||
|
</para>
|
||||||
|
<para>The main config option for kdb
|
||||||
|
is <symbol>CONFIG_KGDB_KDB</symbol> which is called "KGDB_KDB:
|
||||||
|
include kdb frontend for kgdb" in the config menu. In theory you
|
||||||
|
would have already also selected an I/O driver such as the
|
||||||
|
CONFIG_KGDB_SERIAL_CONSOLE interface if you plan on using kdb on a
|
||||||
|
serial port, when you were configuring kgdb.
|
||||||
|
</para>
|
||||||
|
<para>If you want to use a PS/2-style keyboard with kdb, you would
|
||||||
|
select CONFIG_KDB_KEYBOARD which is called "KGDB_KDB: keyboard as
|
||||||
|
input device" in the config menu. The CONFIG_KDB_KEYBOARD option
|
||||||
|
is not used for anything in the gdb interface to kgdb. The
|
||||||
|
CONFIG_KDB_KEYBOARD option only works with kdb.
|
||||||
|
</para>
|
||||||
|
<para>Here is an example set of .config symbols to enable/disable kdb:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para># CONFIG_DEBUG_RODATA is not set</para></listitem>
|
||||||
|
<listitem><para>CONFIG_FRAME_POINTER=y</para></listitem>
|
||||||
|
<listitem><para>CONFIG_KGDB=y</para></listitem>
|
||||||
|
<listitem><para>CONFIG_KGDB_SERIAL_CONSOLE=y</para></listitem>
|
||||||
|
<listitem><para>CONFIG_KGDB_KDB=y</para></listitem>
|
||||||
|
<listitem><para>CONFIG_KDB_KEYBOARD=y</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
</sect1>
|
||||||
</chapter>
|
</chapter>
|
||||||
<chapter id="EnableKGDB">
|
<chapter id="kgdbKernelArgs">
|
||||||
<title>Enable kgdb for debugging</title>
|
<title>Kernel Debugger Boot Arguments</title>
|
||||||
<para>
|
<para>This section describes the various runtime kernel
|
||||||
In order to use kgdb you must activate it by passing configuration
|
parameters that affect the configuration of the kernel debugger.
|
||||||
information to one of the kgdb I/O drivers. If you do not pass any
|
The following chapter covers using kdb and kgdb as well as
|
||||||
configuration information kgdb will not do anything at all. Kgdb
|
provides some examples of the configuration parameters.</para>
|
||||||
will only actively hook up to the kernel trap hooks if a kgdb I/O
|
<sect1 id="kgdboc">
|
||||||
driver is loaded and configured. If you unconfigure a kgdb I/O
|
<title>Kernel parameter: kgdboc</title>
|
||||||
driver, kgdb will unregister all the kernel hook points.
|
<para>The kgdboc driver was originally an abbreviation meant to
|
||||||
|
stand for "kgdb over console". Today it is the primary mechanism
|
||||||
|
to configure how to communicate from gdb to kgdb as well as the
|
||||||
|
devices you want to use to interact with the kdb shell.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>For kgdb/gdb, kgdboc is designed to work with a single serial
|
||||||
All drivers can be reconfigured at run time, if
|
port. It is intended to cover the circumstance where you want to
|
||||||
<symbol>CONFIG_SYSFS</symbol> and <symbol>CONFIG_MODULES</symbol>
|
use a serial console as your primary console as well as using it to
|
||||||
are enabled, by echo'ing a new config string to
|
perform kernel debugging. It is also possible to use kgdb on a
|
||||||
<constant>/sys/module/<driver>/parameter/<option></constant>.
|
serial port which is not designated as a system console. Kgdboc
|
||||||
The driver can be unconfigured by passing an empty string. You cannot
|
may be configured as a kernel built-in or a kernel loadable module.
|
||||||
change the configuration while the debugger is attached. Make sure
|
You can only make use of <constant>kgdbwait</constant> and early
|
||||||
to detach the debugger with the <constant>detach</constant> command
|
debugging if you build kgdboc into the kernel as a built-in.
|
||||||
prior to trying unconfigure a kgdb I/O driver.
|
|
||||||
</para>
|
</para>
|
||||||
|
<sect2 id="kgdbocArgs">
|
||||||
|
<title>kgdboc arguments</title>
|
||||||
|
<para>Usage: <constant>kgdboc=[kbd][[,]serial_device][,baud]</constant></para>
|
||||||
|
<sect3 id="kgdbocArgs1">
|
||||||
|
<title>Using loadable module or built-in</title>
|
||||||
|
<para>
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>As a kernel built-in:</para>
|
||||||
|
<para>Use the kernel boot argument: <constant>kgdboc=<tty-device>,[baud]</constant></para></listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>As a kernel loadable module:</para>
|
||||||
|
<para>Use the command: <constant>modprobe kgdboc kgdboc=<tty-device>,[baud]</constant></para>
|
||||||
|
<para>Here are two examples of how you might formate the kgdboc
|
||||||
|
string. The first is for an x86 target using the first serial port.
|
||||||
|
The second example is for the ARM Versatile AB using the second
|
||||||
|
serial port.
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para><constant>kgdboc=ttyS0,115200</constant></para></listitem>
|
||||||
|
<listitem><para><constant>kgdboc=ttyAMA1,115200</constant></para></listitem>
|
||||||
|
</orderedlist>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</orderedlist></para>
|
||||||
|
</sect3>
|
||||||
|
<sect3 id="kgdbocArgs2">
|
||||||
|
<title>Configure kgdboc at runtime with sysfs</title>
|
||||||
|
<para>At run time you can enable or disable kgdboc by echoing a
|
||||||
|
parameters into the sysfs. Here are two examples:</para>
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>Enable kgdboc on ttyS0</para>
|
||||||
|
<para><constant>echo ttyS0 > /sys/module/kgdboc/parameters/kgdboc</constant></para></listitem>
|
||||||
|
<listitem><para>Disable kgdboc</para>
|
||||||
|
<para><constant>echo "" > /sys/module/kgdboc/parameters/kgdboc</constant></para></listitem>
|
||||||
|
</orderedlist>
|
||||||
|
<para>NOTE: You do not need to specify the baud if you are
|
||||||
|
configuring the console on tty which is already configured or
|
||||||
|
open.</para>
|
||||||
|
</sect3>
|
||||||
|
<sect3 id="kgdbocArgs3">
|
||||||
|
<title>More examples</title>
|
||||||
|
<para>You can configure kgdboc to use the keyboard, and or a serial device
|
||||||
|
depending on if you are using kdb and or kgdb, in one of the
|
||||||
|
following scenarios.
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>kdb and kgdb over only a serial port</para>
|
||||||
|
<para><constant>kgdboc=<serial_device>[,baud]</constant></para>
|
||||||
|
<para>Example: <constant>kgdboc=ttyS0,115200</constant></para>
|
||||||
|
</listitem>
|
||||||
|
<listitem><para>kdb and kgdb with keyboard and a serial port</para>
|
||||||
|
<para><constant>kgdboc=kbd,<serial_device>[,baud]</constant></para>
|
||||||
|
<para>Example: <constant>kgdboc=kbd,ttyS0,115200</constant></para>
|
||||||
|
</listitem>
|
||||||
|
<listitem><para>kdb with a keyboard</para>
|
||||||
|
<para><constant>kgdboc=kbd</constant></para>
|
||||||
|
</listitem>
|
||||||
|
</orderedlist>
|
||||||
|
</para>
|
||||||
|
</sect3>
|
||||||
|
<para>NOTE: Kgdboc does not support interrupting the target via the
|
||||||
|
gdb remote protocol. You must manually send a sysrq-g unless you
|
||||||
|
have a proxy that splits console output to a terminal program.
|
||||||
|
A console proxy has a separate TCP port for the debugger and a separate
|
||||||
|
TCP port for the "human" console. The proxy can take care of sending
|
||||||
|
the sysrq-g for you.
|
||||||
|
</para>
|
||||||
|
<para>When using kgdboc with no debugger proxy, you can end up
|
||||||
|
connecting the debugger at one of two entry points. If an
|
||||||
|
exception occurs after you have loaded kgdboc, a message should
|
||||||
|
print on the console stating it is waiting for the debugger. In
|
||||||
|
this case you disconnect your terminal program and then connect the
|
||||||
|
debugger in its place. If you want to interrupt the target system
|
||||||
|
and forcibly enter a debug session you have to issue a Sysrq
|
||||||
|
sequence and then type the letter <constant>g</constant>. Then
|
||||||
|
you disconnect the terminal session and connect gdb. Your options
|
||||||
|
if you don't like this are to hack gdb to send the sysrq-g for you
|
||||||
|
as well as on the initial connect, or to use a debugger proxy that
|
||||||
|
allows an unmodified gdb to do the debugging.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
<sect1 id="kgdbwait">
|
<sect1 id="kgdbwait">
|
||||||
<title>Kernel parameter: kgdbwait</title>
|
<title>Kernel parameter: kgdbwait</title>
|
||||||
<para>
|
<para>
|
||||||
@@ -162,103 +294,204 @@
|
|||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The kernel will stop and wait as early as the I/O driver and
|
The kernel will stop and wait as early as the I/O driver and
|
||||||
architecture will allow when you use this option. If you build the
|
architecture allows when you use this option. If you build the
|
||||||
kgdb I/O driver as a kernel module kgdbwait will not do anything.
|
kgdb I/O driver as a loadable kernel module kgdbwait will not do
|
||||||
|
anything.
|
||||||
</para>
|
</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="kgdboc">
|
<sect1 id="kgdbcon">
|
||||||
<title>Kernel parameter: kgdboc</title>
|
<title>Kernel parameter: kgdbcon</title>
|
||||||
<para>
|
<para> The kgdbcon feature allows you to see printk() messages
|
||||||
The kgdboc driver was originally an abbreviation meant to stand for
|
inside gdb while gdb is connected to the kernel. Kdb does not make
|
||||||
"kgdb over console". Kgdboc is designed to work with a single
|
use of the kgdbcon feature.
|
||||||
serial port. It was meant to cover the circumstance
|
</para>
|
||||||
where you wanted to use a serial console as your primary console as
|
<para>Kgdb supports using the gdb serial protocol to send console
|
||||||
well as using it to perform kernel debugging. Of course you can
|
messages to the debugger when the debugger is connected and running.
|
||||||
also use kgdboc without assigning a console to the same port.
|
There are two ways to activate this feature.
|
||||||
</para>
|
<orderedlist>
|
||||||
<sect2 id="UsingKgdboc">
|
<listitem><para>Activate with the kernel command line option:</para>
|
||||||
<title>Using kgdboc</title>
|
<para><constant>kgdbcon</constant></para>
|
||||||
<para>
|
</listitem>
|
||||||
You can configure kgdboc via sysfs or a module or kernel boot line
|
<listitem><para>Use sysfs before configuring an I/O driver</para>
|
||||||
parameter depending on if you build with CONFIG_KGDBOC as a module
|
<para>
|
||||||
or built-in.
|
<constant>echo 1 > /sys/module/kgdb/parameters/kgdb_use_con</constant>
|
||||||
<orderedlist>
|
</para>
|
||||||
<listitem><para>From the module load or build-in</para>
|
<para>
|
||||||
<para><constant>kgdboc=<tty-device>,[baud]</constant></para>
|
NOTE: If you do this after you configure the kgdb I/O driver, the
|
||||||
<para>
|
setting will not take effect until the next point the I/O is
|
||||||
The example here would be if your console port was typically ttyS0, you would use something like <constant>kgdboc=ttyS0,115200</constant> or on the ARM Versatile AB you would likely use <constant>kgdboc=ttyAMA0,115200</constant>
|
reconfigured.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem><para>From sysfs</para>
|
</orderedlist>
|
||||||
<para><constant>echo ttyS0 > /sys/module/kgdboc/parameters/kgdboc</constant></para>
|
<para>IMPORTANT NOTE: You cannot use kgdboc + kgdbcon on a tty that is an
|
||||||
</listitem>
|
active system console. An example incorrect usage is <constant>console=ttyS0,115200 kgdboc=ttyS0 kgdbcon</constant>
|
||||||
</orderedlist>
|
</para>
|
||||||
</para>
|
<para>It is possible to use this option with kgdboc on a tty that is not a system console.
|
||||||
<para>
|
</para>
|
||||||
NOTE: Kgdboc does not support interrupting the target via the
|
|
||||||
gdb remote protocol. You must manually send a sysrq-g unless you
|
|
||||||
have a proxy that splits console output to a terminal problem and
|
|
||||||
has a separate port for the debugger to connect to that sends the
|
|
||||||
sysrq-g for you.
|
|
||||||
</para>
|
|
||||||
<para>When using kgdboc with no debugger proxy, you can end up
|
|
||||||
connecting the debugger for one of two entry points. If an
|
|
||||||
exception occurs after you have loaded kgdboc a message should print
|
|
||||||
on the console stating it is waiting for the debugger. In case you
|
|
||||||
disconnect your terminal program and then connect the debugger in
|
|
||||||
its place. If you want to interrupt the target system and forcibly
|
|
||||||
enter a debug session you have to issue a Sysrq sequence and then
|
|
||||||
type the letter <constant>g</constant>. Then you disconnect the
|
|
||||||
terminal session and connect gdb. Your options if you don't like
|
|
||||||
this are to hack gdb to send the sysrq-g for you as well as on the
|
|
||||||
initial connect, or to use a debugger proxy that allows an
|
|
||||||
unmodified gdb to do the debugging.
|
|
||||||
</para>
|
|
||||||
</sect2>
|
|
||||||
</sect1>
|
|
||||||
<sect1 id="kgdbcon">
|
|
||||||
<title>Kernel parameter: kgdbcon</title>
|
|
||||||
<para>
|
|
||||||
Kgdb supports using the gdb serial protocol to send console messages
|
|
||||||
to the debugger when the debugger is connected and running. There
|
|
||||||
are two ways to activate this feature.
|
|
||||||
<orderedlist>
|
|
||||||
<listitem><para>Activate with the kernel command line option:</para>
|
|
||||||
<para><constant>kgdbcon</constant></para>
|
|
||||||
</listitem>
|
|
||||||
<listitem><para>Use sysfs before configuring an io driver</para>
|
|
||||||
<para>
|
|
||||||
<constant>echo 1 > /sys/module/kgdb/parameters/kgdb_use_con</constant>
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
NOTE: If you do this after you configure the kgdb I/O driver, the
|
|
||||||
setting will not take effect until the next point the I/O is
|
|
||||||
reconfigured.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</orderedlist>
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
IMPORTANT NOTE: Using this option with kgdb over the console
|
|
||||||
(kgdboc) is not supported.
|
|
||||||
</para>
|
</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
</chapter>
|
</chapter>
|
||||||
<chapter id="ConnectingGDB">
|
<chapter id="usingKDB">
|
||||||
<title>Connecting gdb</title>
|
<title>Using kdb</title>
|
||||||
|
<para>
|
||||||
|
</para>
|
||||||
|
<sect1 id="quickKDBserial">
|
||||||
|
<title>Quick start for kdb on a serial port</title>
|
||||||
|
<para>This is a quick example of how to use kdb.</para>
|
||||||
|
<para><orderedlist>
|
||||||
|
<listitem><para>Boot kernel with arguments:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para><constant>console=ttyS0,115200 kgdboc=ttyS0,115200</constant></para></listitem>
|
||||||
|
</itemizedlist></para>
|
||||||
|
<para>OR</para>
|
||||||
|
<para>Configure kgdboc after the kernel booted; assuming you are using a serial port console:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para><constant>echo ttyS0 > /sys/module/kgdboc/parameters/kgdboc</constant></para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem><para>Enter the kernel debugger manually or by waiting for an oops or fault. There are several ways you can enter the kernel debugger manually; all involve using the sysrq-g, which means you must have enabled CONFIG_MAGIC_SYSRQ=y in your kernel config.</para>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para>When logged in as root or with a super user session you can run:</para>
|
||||||
|
<para><constant>echo g > /proc/sysrq-trigger</constant></para></listitem>
|
||||||
|
<listitem><para>Example using minicom 2.2</para>
|
||||||
|
<para>Press: <constant>Control-a</constant></para>
|
||||||
|
<para>Press: <constant>f</constant></para>
|
||||||
|
<para>Press: <constant>g</constant></para>
|
||||||
|
</listitem>
|
||||||
|
<listitem><para>When you have telneted to a terminal server that supports sending a remote break</para>
|
||||||
|
<para>Press: <constant>Control-]</constant></para>
|
||||||
|
<para>Type in:<constant>send break</constant></para>
|
||||||
|
<para>Press: <constant>Enter</constant></para>
|
||||||
|
<para>Press: <constant>g</constant></para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</listitem>
|
||||||
|
<listitem><para>From the kdb prompt you can run the "help" command to see a complete list of the commands that are available.</para>
|
||||||
|
<para>Some useful commands in kdb include:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para>lsmod -- Shows where kernel modules are loaded</para></listitem>
|
||||||
|
<listitem><para>ps -- Displays only the active processes</para></listitem>
|
||||||
|
<listitem><para>ps A -- Shows all the processes</para></listitem>
|
||||||
|
<listitem><para>summary -- Shows kernel version info and memory usage</para></listitem>
|
||||||
|
<listitem><para>bt -- Get a backtrace of the current process using dump_stack()</para></listitem>
|
||||||
|
<listitem><para>dmesg -- View the kernel syslog buffer</para></listitem>
|
||||||
|
<listitem><para>go -- Continue the system</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>When you are done using kdb you need to consider rebooting the
|
||||||
|
system or using the "go" command to resuming normal kernel
|
||||||
|
execution. If you have paused the kernel for a lengthy period of
|
||||||
|
time, applications that rely on timely networking or anything to do
|
||||||
|
with real wall clock time could be adversely affected, so you
|
||||||
|
should take this into consideration when using the kernel
|
||||||
|
debugger.</para>
|
||||||
|
</listitem>
|
||||||
|
</orderedlist></para>
|
||||||
|
</sect1>
|
||||||
|
<sect1 id="quickKDBkeyboard">
|
||||||
|
<title>Quick start for kdb using a keyboard connected console</title>
|
||||||
|
<para>This is a quick example of how to use kdb with a keyboard.</para>
|
||||||
|
<para><orderedlist>
|
||||||
|
<listitem><para>Boot kernel with arguments:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para><constant>kgdboc=kbd</constant></para></listitem>
|
||||||
|
</itemizedlist></para>
|
||||||
|
<para>OR</para>
|
||||||
|
<para>Configure kgdboc after the kernel booted:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para><constant>echo kbd > /sys/module/kgdboc/parameters/kgdboc</constant></para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem><para>Enter the kernel debugger manually or by waiting for an oops or fault. There are several ways you can enter the kernel debugger manually; all involve using the sysrq-g, which means you must have enabled CONFIG_MAGIC_SYSRQ=y in your kernel config.</para>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para>When logged in as root or with a super user session you can run:</para>
|
||||||
|
<para><constant>echo g > /proc/sysrq-trigger</constant></para></listitem>
|
||||||
|
<listitem><para>Example using a laptop keyboard</para>
|
||||||
|
<para>Press and hold down: <constant>Alt</constant></para>
|
||||||
|
<para>Press and hold down: <constant>Fn</constant></para>
|
||||||
|
<para>Press and release the key with the label: <constant>SysRq</constant></para>
|
||||||
|
<para>Release: <constant>Fn</constant></para>
|
||||||
|
<para>Press and release: <constant>g</constant></para>
|
||||||
|
<para>Release: <constant>Alt</constant></para>
|
||||||
|
</listitem>
|
||||||
|
<listitem><para>Example using a PS/2 101-key keyboard</para>
|
||||||
|
<para>Press and hold down: <constant>Alt</constant></para>
|
||||||
|
<para>Press and release the key with the label: <constant>SysRq</constant></para>
|
||||||
|
<para>Press and release: <constant>g</constant></para>
|
||||||
|
<para>Release: <constant>Alt</constant></para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Now type in a kdb command such as "help", "dmesg", "bt" or "go" to continue kernel execution.</para>
|
||||||
|
</listitem>
|
||||||
|
</orderedlist></para>
|
||||||
|
</sect1>
|
||||||
|
</chapter>
|
||||||
|
<chapter id="EnableKGDB">
|
||||||
|
<title>Using kgdb / gdb</title>
|
||||||
|
<para>In order to use kgdb you must activate it by passing
|
||||||
|
configuration information to one of the kgdb I/O drivers. If you
|
||||||
|
do not pass any configuration information kgdb will not do anything
|
||||||
|
at all. Kgdb will only actively hook up to the kernel trap hooks
|
||||||
|
if a kgdb I/O driver is loaded and configured. If you unconfigure
|
||||||
|
a kgdb I/O driver, kgdb will unregister all the kernel hook points.
|
||||||
|
</para>
|
||||||
|
<para> All kgdb I/O drivers can be reconfigured at run time, if
|
||||||
|
<symbol>CONFIG_SYSFS</symbol> and <symbol>CONFIG_MODULES</symbol>
|
||||||
|
are enabled, by echo'ing a new config string to
|
||||||
|
<constant>/sys/module/<driver>/parameter/<option></constant>.
|
||||||
|
The driver can be unconfigured by passing an empty string. You cannot
|
||||||
|
change the configuration while the debugger is attached. Make sure
|
||||||
|
to detach the debugger with the <constant>detach</constant> command
|
||||||
|
prior to trying to unconfigure a kgdb I/O driver.
|
||||||
|
</para>
|
||||||
|
<sect1 id="ConnectingGDB">
|
||||||
|
<title>Connecting with gdb to a serial port</title>
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>Configure kgdboc</para>
|
||||||
|
<para>Boot kernel with arguments:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para><constant>kgdboc=ttyS0,115200</constant></para></listitem>
|
||||||
|
</itemizedlist></para>
|
||||||
|
<para>OR</para>
|
||||||
|
<para>Configure kgdboc after the kernel booted:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para><constant>echo ttyS0 > /sys/module/kgdboc/parameters/kgdboc</constant></para></listitem>
|
||||||
|
</itemizedlist></para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Stop kernel execution (break into the debugger)</para>
|
||||||
|
<para>In order to connect to gdb via kgdboc, the kernel must
|
||||||
|
first be stopped. There are several ways to stop the kernel which
|
||||||
|
include using kgdbwait as a boot argument, via a sysrq-g, or running
|
||||||
|
the kernel until it takes an exception where it waits for the
|
||||||
|
debugger to attach.
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para>When logged in as root or with a super user session you can run:</para>
|
||||||
|
<para><constant>echo g > /proc/sysrq-trigger</constant></para></listitem>
|
||||||
|
<listitem><para>Example using minicom 2.2</para>
|
||||||
|
<para>Press: <constant>Control-a</constant></para>
|
||||||
|
<para>Press: <constant>f</constant></para>
|
||||||
|
<para>Press: <constant>g</constant></para>
|
||||||
|
</listitem>
|
||||||
|
<listitem><para>When you have telneted to a terminal server that supports sending a remote break</para>
|
||||||
|
<para>Press: <constant>Control-]</constant></para>
|
||||||
|
<para>Type in:<constant>send break</constant></para>
|
||||||
|
<para>Press: <constant>Enter</constant></para>
|
||||||
|
<para>Press: <constant>g</constant></para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Connect from from gdb</para>
|
||||||
<para>
|
<para>
|
||||||
If you are using kgdboc, you need to have used kgdbwait as a boot
|
Example (using a directly connected port):
|
||||||
argument, issued a sysrq-g, or the system you are going to debug
|
|
||||||
has already taken an exception and is waiting for the debugger to
|
|
||||||
attach before you can connect gdb.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
If you are not using different kgdb I/O driver other than kgdboc,
|
|
||||||
you should be able to connect and the target will automatically
|
|
||||||
respond.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
Example (using a serial port):
|
|
||||||
</para>
|
</para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
% gdb ./vmlinux
|
% gdb ./vmlinux
|
||||||
@@ -266,7 +499,7 @@
|
|||||||
(gdb) target remote /dev/ttyS0
|
(gdb) target remote /dev/ttyS0
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
Example (kgdb to a terminal server on tcp port 2012):
|
Example (kgdb to a terminal server on TCP port 2012):
|
||||||
</para>
|
</para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
% gdb ./vmlinux
|
% gdb ./vmlinux
|
||||||
@@ -283,6 +516,83 @@
|
|||||||
communications. You do this prior to issuing the <constant>target
|
communications. You do this prior to issuing the <constant>target
|
||||||
remote</constant> command by typing in: <constant>set debug remote 1</constant>
|
remote</constant> command by typing in: <constant>set debug remote 1</constant>
|
||||||
</para>
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</orderedlist>
|
||||||
|
<para>Remember if you continue in gdb, and need to "break in" again,
|
||||||
|
you need to issue an other sysrq-g. It is easy to create a simple
|
||||||
|
entry point by putting a breakpoint at <constant>sys_sync</constant>
|
||||||
|
and then you can run "sync" from a shell or script to break into the
|
||||||
|
debugger.</para>
|
||||||
|
</sect1>
|
||||||
|
</chapter>
|
||||||
|
<chapter id="switchKdbKgdb">
|
||||||
|
<title>kgdb and kdb interoperability</title>
|
||||||
|
<para>It is possible to transition between kdb and kgdb dynamically.
|
||||||
|
The debug core will remember which you used the last time and
|
||||||
|
automatically start in the same mode.</para>
|
||||||
|
<sect1>
|
||||||
|
<title>Switching between kdb and kgdb</title>
|
||||||
|
<sect2>
|
||||||
|
<title>Switching from kgdb to kdb</title>
|
||||||
|
<para>
|
||||||
|
There are two ways to switch from kgdb to kdb: you can use gdb to
|
||||||
|
issue a maintenance packet, or you can blindly type the command $3#33.
|
||||||
|
Whenever kernel debugger stops in kgdb mode it will print the
|
||||||
|
message <constant>KGDB or $3#33 for KDB</constant>. It is important
|
||||||
|
to note that you have to type the sequence correctly in one pass.
|
||||||
|
You cannot type a backspace or delete because kgdb will interpret
|
||||||
|
that as part of the debug stream.
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>Change from kgdb to kdb by blindly typing:</para>
|
||||||
|
<para><constant>$3#33</constant></para></listitem>
|
||||||
|
<listitem><para>Change from kgdb to kdb with gdb</para>
|
||||||
|
<para><constant>maintenance packet 3</constant></para>
|
||||||
|
<para>NOTE: Now you must kill gdb. Typically you press control-z and
|
||||||
|
issue the command: kill -9 %</para></listitem>
|
||||||
|
</orderedlist>
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
<sect2>
|
||||||
|
<title>Change from kdb to kgdb</title>
|
||||||
|
<para>There are two ways you can change from kdb to kgdb. You can
|
||||||
|
manually enter kgdb mode by issuing the kgdb command from the kdb
|
||||||
|
shell prompt, or you can connect gdb while the kdb shell prompt is
|
||||||
|
active. The kdb shell looks for the typical first commands that gdb
|
||||||
|
would issue with the gdb remote protocol and if it sees one of those
|
||||||
|
commands it automatically changes into kgdb mode.</para>
|
||||||
|
<orderedlist>
|
||||||
|
<listitem><para>From kdb issue the command:</para>
|
||||||
|
<para><constant>kgdb</constant></para>
|
||||||
|
<para>Now disconnect your terminal program and connect gdb in its place</para></listitem>
|
||||||
|
<listitem><para>At the kdb prompt, disconnect the terminal program and connect gdb in its place.</para></listitem>
|
||||||
|
</orderedlist>
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
<sect1>
|
||||||
|
<title>Running kdb commands from gdb</title>
|
||||||
|
<para>It is possible to run a limited set of kdb commands from gdb,
|
||||||
|
using the gdb monitor command. You don't want to execute any of the
|
||||||
|
run control or breakpoint operations, because it can disrupt the
|
||||||
|
state of the kernel debugger. You should be using gdb for
|
||||||
|
breakpoints and run control operations if you have gdb connected.
|
||||||
|
The more useful commands to run are things like lsmod, dmesg, ps or
|
||||||
|
possibly some of the memory information commands. To see all the kdb
|
||||||
|
commands you can run <constant>monitor help</constant>.</para>
|
||||||
|
<para>Example:
|
||||||
|
<informalexample><programlisting>
|
||||||
|
(gdb) monitor ps
|
||||||
|
1 idle process (state I) and
|
||||||
|
27 sleeping system daemon (state M) processes suppressed,
|
||||||
|
use 'ps A' to see all.
|
||||||
|
Task Addr Pid Parent [*] cpu State Thread Command
|
||||||
|
|
||||||
|
0xc78291d0 1 0 0 0 S 0xc7829404 init
|
||||||
|
0xc7954150 942 1 0 0 S 0xc7954384 dropbear
|
||||||
|
0xc78789c0 944 1 0 0 S 0xc7878bf4 sh
|
||||||
|
(gdb)
|
||||||
|
</programlisting></informalexample>
|
||||||
|
</para>
|
||||||
|
</sect1>
|
||||||
</chapter>
|
</chapter>
|
||||||
<chapter id="KGDBTestSuite">
|
<chapter id="KGDBTestSuite">
|
||||||
<title>kgdb Test Suite</title>
|
<title>kgdb Test Suite</title>
|
||||||
@@ -309,34 +619,36 @@
|
|||||||
</para>
|
</para>
|
||||||
</chapter>
|
</chapter>
|
||||||
<chapter id="CommonBackEndReq">
|
<chapter id="CommonBackEndReq">
|
||||||
<title>KGDB Internals</title>
|
<title>Kernel Debugger Internals</title>
|
||||||
<sect1 id="kgdbArchitecture">
|
<sect1 id="kgdbArchitecture">
|
||||||
<title>Architecture Specifics</title>
|
<title>Architecture Specifics</title>
|
||||||
<para>
|
<para>
|
||||||
Kgdb is organized into three basic components:
|
The kernel debugger is organized into a number of components:
|
||||||
<orderedlist>
|
<orderedlist>
|
||||||
<listitem><para>kgdb core</para>
|
<listitem><para>The debug core</para>
|
||||||
<para>
|
<para>
|
||||||
The kgdb core is found in kernel/kgdb.c. It contains:
|
The debug core is found in kernel/debugger/debug_core.c. It contains:
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem><para>All the logic to implement the gdb serial protocol</para></listitem>
|
<listitem><para>A generic OS exception handler which includes
|
||||||
<listitem><para>A generic OS exception handler which includes sync'ing the processors into a stopped state on an multi cpu system.</para></listitem>
|
sync'ing the processors into a stopped state on an multi-CPU
|
||||||
|
system.</para></listitem>
|
||||||
<listitem><para>The API to talk to the kgdb I/O drivers</para></listitem>
|
<listitem><para>The API to talk to the kgdb I/O drivers</para></listitem>
|
||||||
<listitem><para>The API to make calls to the arch specific kgdb implementation</para></listitem>
|
<listitem><para>The API to make calls to the arch-specific kgdb implementation</para></listitem>
|
||||||
<listitem><para>The logic to perform safe memory reads and writes to memory while using the debugger</para></listitem>
|
<listitem><para>The logic to perform safe memory reads and writes to memory while using the debugger</para></listitem>
|
||||||
<listitem><para>A full implementation for software breakpoints unless overridden by the arch</para></listitem>
|
<listitem><para>A full implementation for software breakpoints unless overridden by the arch</para></listitem>
|
||||||
|
<listitem><para>The API to invoke either the kdb or kgdb frontend to the debug core.</para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem><para>kgdb arch specific implementation</para>
|
<listitem><para>kgdb arch-specific implementation</para>
|
||||||
<para>
|
<para>
|
||||||
This implementation is generally found in arch/*/kernel/kgdb.c.
|
This implementation is generally found in arch/*/kernel/kgdb.c.
|
||||||
As an example, arch/x86/kernel/kgdb.c contains the specifics to
|
As an example, arch/x86/kernel/kgdb.c contains the specifics to
|
||||||
implement HW breakpoint as well as the initialization to
|
implement HW breakpoint as well as the initialization to
|
||||||
dynamically register and unregister for the trap handlers on
|
dynamically register and unregister for the trap handlers on
|
||||||
this architecture. The arch specific portion implements:
|
this architecture. The arch-specific portion implements:
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem><para>contains an arch specific trap catcher which
|
<listitem><para>contains an arch-specific trap catcher which
|
||||||
invokes kgdb_handle_exception() to start kgdb about doing its
|
invokes kgdb_handle_exception() to start kgdb about doing its
|
||||||
work</para></listitem>
|
work</para></listitem>
|
||||||
<listitem><para>translation to and from gdb specific packet format to pt_regs</para></listitem>
|
<listitem><para>translation to and from gdb specific packet format to pt_regs</para></listitem>
|
||||||
@@ -347,11 +659,35 @@
|
|||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem><para>gdbstub frontend (aka kgdb)</para>
|
||||||
|
<para>The gdbstub is located in kernel/debug/gdbstub.c. It contains:</para>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para>All the logic to implement the gdb serial protocol</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</listitem>
|
||||||
|
<listitem><para>kdb frontend</para>
|
||||||
|
<para>The kdb debugger shell is broken down into a number of
|
||||||
|
components. The kdb core is located in kernel/debug/kdb. There
|
||||||
|
are a number of helper functions in some of the other kernel
|
||||||
|
components to make it possible for kdb to examine and report
|
||||||
|
information about the kernel without taking locks that could
|
||||||
|
cause a kernel deadlock. The kdb core contains implements the following functionality.</para>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para>A simple shell</para></listitem>
|
||||||
|
<listitem><para>The kdb core command set</para></listitem>
|
||||||
|
<listitem><para>A registration API to register additional kdb shell commands.</para>
|
||||||
|
<para>A good example of a self-contained kdb module is the "ftdump" command for dumping the ftrace buffer. See: kernel/trace/trace_kdb.c</para></listitem>
|
||||||
|
<listitem><para>The implementation for kdb_printf() which
|
||||||
|
emits messages directly to I/O drivers, bypassing the kernel
|
||||||
|
log.</para></listitem>
|
||||||
|
<listitem><para>SW / HW breakpoint management for the kdb shell</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</listitem>
|
||||||
<listitem><para>kgdb I/O driver</para>
|
<listitem><para>kgdb I/O driver</para>
|
||||||
<para>
|
<para>
|
||||||
Each kgdb I/O driver has to provide an implemenation for the following:
|
Each kgdb I/O driver has to provide an implementation for the following:
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem><para>configuration via builtin or module</para></listitem>
|
<listitem><para>configuration via built-in or module</para></listitem>
|
||||||
<listitem><para>dynamic configuration and kgdb hook registration calls</para></listitem>
|
<listitem><para>dynamic configuration and kgdb hook registration calls</para></listitem>
|
||||||
<listitem><para>read and write character interface</para></listitem>
|
<listitem><para>read and write character interface</para></listitem>
|
||||||
<listitem><para>A cleanup handler for unconfiguring from the kgdb core</para></listitem>
|
<listitem><para>A cleanup handler for unconfiguring from the kgdb core</para></listitem>
|
||||||
@@ -416,15 +752,15 @@
|
|||||||
underlying low level to the hardware driver having "polling hooks"
|
underlying low level to the hardware driver having "polling hooks"
|
||||||
which the to which the tty driver is attached. In the initial
|
which the to which the tty driver is attached. In the initial
|
||||||
implementation of kgdboc it the serial_core was changed to expose a
|
implementation of kgdboc it the serial_core was changed to expose a
|
||||||
low level uart hook for doing polled mode reading and writing of a
|
low level UART hook for doing polled mode reading and writing of a
|
||||||
single character while in an atomic context. When kgdb makes an I/O
|
single character while in an atomic context. When kgdb makes an I/O
|
||||||
request to the debugger, kgdboc invokes a call back in the serial
|
request to the debugger, kgdboc invokes a call back in the serial
|
||||||
core which in turn uses the call back in the uart driver. It is
|
core which in turn uses the call back in the UART driver. It is
|
||||||
certainly possible to extend kgdboc to work with non-uart based
|
certainly possible to extend kgdboc to work with non-UART based
|
||||||
consoles in the future.
|
consoles in the future.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
When using kgdboc with a uart, the uart driver must implement two callbacks in the <constant>struct uart_ops</constant>. Example from drivers/8250.c:<programlisting>
|
When using kgdboc with a UART, the UART driver must implement two callbacks in the <constant>struct uart_ops</constant>. Example from drivers/8250.c:<programlisting>
|
||||||
#ifdef CONFIG_CONSOLE_POLL
|
#ifdef CONFIG_CONSOLE_POLL
|
||||||
.poll_get_char = serial8250_get_poll_char,
|
.poll_get_char = serial8250_get_poll_char,
|
||||||
.poll_put_char = serial8250_put_poll_char,
|
.poll_put_char = serial8250_put_poll_char,
|
||||||
@@ -434,7 +770,7 @@
|
|||||||
<constant>#ifdef CONFIG_CONSOLE_POLL</constant>, as shown above.
|
<constant>#ifdef CONFIG_CONSOLE_POLL</constant>, as shown above.
|
||||||
Keep in mind that polling hooks have to be implemented in such a way
|
Keep in mind that polling hooks have to be implemented in such a way
|
||||||
that they can be called from an atomic context and have to restore
|
that they can be called from an atomic context and have to restore
|
||||||
the state of the uart chip on return such that the system can return
|
the state of the UART chip on return such that the system can return
|
||||||
to normal when the debugger detaches. You need to be very careful
|
to normal when the debugger detaches. You need to be very careful
|
||||||
with any kind of lock you consider, because failing here is most
|
with any kind of lock you consider, because failing here is most
|
||||||
going to mean pressing the reset button.
|
going to mean pressing the reset button.
|
||||||
@@ -453,6 +789,10 @@
|
|||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem><para>Jason Wessel<email>jason.wessel@windriver.com</email></para></listitem>
|
<listitem><para>Jason Wessel<email>jason.wessel@windriver.com</email></para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
In Jan 2010 this document was updated to include kdb.
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para>Jason Wessel<email>jason.wessel@windriver.com</email></para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
</para>
|
</para>
|
||||||
</chapter>
|
</chapter>
|
||||||
</book>
|
</book>
|
||||||
|
|||||||
@@ -269,7 +269,7 @@ static void board_hwcontrol(struct mtd_info *mtd, int cmd)
|
|||||||
information about the device.
|
information about the device.
|
||||||
</para>
|
</para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
int __init board_init (void)
|
static int __init board_init (void)
|
||||||
{
|
{
|
||||||
struct nand_chip *this;
|
struct nand_chip *this;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ Reporting (AER) driver and provides information on how to use it, as
|
|||||||
well as how to enable the drivers of endpoint devices to conform with
|
well as how to enable the drivers of endpoint devices to conform with
|
||||||
PCI Express AER driver.
|
PCI Express AER driver.
|
||||||
|
|
||||||
1.2 Copyright <EFBFBD> Intel Corporation 2006.
|
1.2 Copyright (C) Intel Corporation 2006.
|
||||||
|
|
||||||
1.3 What is the PCI Express AER Driver?
|
1.3 What is the PCI Express AER Driver?
|
||||||
|
|
||||||
@@ -71,15 +71,11 @@ console. If it's a correctable error, it is outputed as a warning.
|
|||||||
Otherwise, it is printed as an error. So users could choose different
|
Otherwise, it is printed as an error. So users could choose different
|
||||||
log level to filter out correctable error messages.
|
log level to filter out correctable error messages.
|
||||||
|
|
||||||
Below shows an example.
|
Below shows an example:
|
||||||
+------ PCI-Express Device Error -----+
|
0000:50:00.0: PCIe Bus Error: severity=Uncorrected (Fatal), type=Transaction Layer, id=0500(Requester ID)
|
||||||
Error Severity : Uncorrected (Fatal)
|
0000:50:00.0: device [8086:0329] error status/mask=00100000/00000000
|
||||||
PCIE Bus Error type : Transaction Layer
|
0000:50:00.0: [20] Unsupported Request (First)
|
||||||
Unsupported Request : First
|
0000:50:00.0: TLP Header: 04000001 00200a03 05010000 00050100
|
||||||
Requester ID : 0500
|
|
||||||
VendorID=8086h, DeviceID=0329h, Bus=05h, Device=00h, Function=00h
|
|
||||||
TLB Header:
|
|
||||||
04000001 00200a03 05010000 00050100
|
|
||||||
|
|
||||||
In the example, 'Requester ID' means the ID of the device who sends
|
In the example, 'Requester ID' means the ID of the device who sends
|
||||||
the error message to root port. Pls. refer to pci express specs for
|
the error message to root port. Pls. refer to pci express specs for
|
||||||
@@ -112,7 +108,7 @@ but the PCI Express link itself is fully functional. Fatal errors, on
|
|||||||
the other hand, cause the link to be unreliable.
|
the other hand, cause the link to be unreliable.
|
||||||
|
|
||||||
When AER is enabled, a PCI Express device will automatically send an
|
When AER is enabled, a PCI Express device will automatically send an
|
||||||
error message to the PCIE root port above it when the device captures
|
error message to the PCIe root port above it when the device captures
|
||||||
an error. The Root Port, upon receiving an error reporting message,
|
an error. The Root Port, upon receiving an error reporting message,
|
||||||
internally processes and logs the error message in its PCI Express
|
internally processes and logs the error message in its PCI Express
|
||||||
capability structure. Error information being logged includes storing
|
capability structure. Error information being logged includes storing
|
||||||
@@ -198,8 +194,9 @@ to reset link, AER port service driver is required to provide the
|
|||||||
function to reset link. Firstly, kernel looks for if the upstream
|
function to reset link. Firstly, kernel looks for if the upstream
|
||||||
component has an aer driver. If it has, kernel uses the reset_link
|
component has an aer driver. If it has, kernel uses the reset_link
|
||||||
callback of the aer driver. If the upstream component has no aer driver
|
callback of the aer driver. If the upstream component has no aer driver
|
||||||
and the port is downstream port, we will use the aer driver of the
|
and the port is downstream port, we will perform a hot reset as the
|
||||||
root port who reports the AER error. As for upstream ports,
|
default by setting the Secondary Bus Reset bit of the Bridge Control
|
||||||
|
register associated with the downstream port. As for upstream ports,
|
||||||
they should provide their own aer service drivers with reset_link
|
they should provide their own aer service drivers with reset_link
|
||||||
function. If error_detected returns PCI_ERS_RESULT_CAN_RECOVER and
|
function. If error_detected returns PCI_ERS_RESULT_CAN_RECOVER and
|
||||||
reset_link returns PCI_ERS_RESULT_RECOVERED, the error handling goes
|
reset_link returns PCI_ERS_RESULT_RECOVERED, the error handling goes
|
||||||
@@ -253,11 +250,11 @@ cleanup uncorrectable status register. Pls. refer to section 3.3.
|
|||||||
|
|
||||||
4. Software error injection
|
4. Software error injection
|
||||||
|
|
||||||
Debugging PCIE AER error recovery code is quite difficult because it
|
Debugging PCIe AER error recovery code is quite difficult because it
|
||||||
is hard to trigger real hardware errors. Software based error
|
is hard to trigger real hardware errors. Software based error
|
||||||
injection can be used to fake various kinds of PCIE errors.
|
injection can be used to fake various kinds of PCIe errors.
|
||||||
|
|
||||||
First you should enable PCIE AER software error injection in kernel
|
First you should enable PCIe AER software error injection in kernel
|
||||||
configuration, that is, following item should be in your .config.
|
configuration, that is, following item should be in your .config.
|
||||||
|
|
||||||
CONFIG_PCIEAER_INJECT=y or CONFIG_PCIEAER_INJECT=m
|
CONFIG_PCIEAER_INJECT=y or CONFIG_PCIEAER_INJECT=m
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ kernel patches.
|
|||||||
|
|
||||||
2b: Passes allnoconfig, allmodconfig
|
2b: Passes allnoconfig, allmodconfig
|
||||||
|
|
||||||
|
2c: Builds successfully when using O=builddir
|
||||||
|
|
||||||
3: Builds on multiple CPU architectures by using local cross-compile tools
|
3: Builds on multiple CPU architectures by using local cross-compile tools
|
||||||
or some other build farm.
|
or some other build farm.
|
||||||
|
|
||||||
@@ -95,3 +97,13 @@ kernel patches.
|
|||||||
|
|
||||||
25: If any ioctl's are added by the patch, then also update
|
25: If any ioctl's are added by the patch, then also update
|
||||||
Documentation/ioctl/ioctl-number.txt.
|
Documentation/ioctl/ioctl-number.txt.
|
||||||
|
|
||||||
|
26: If your modified source code depends on or uses any of the kernel
|
||||||
|
APIs or features that are related to the following kconfig symbols,
|
||||||
|
then test multiple builds with the related kconfig symbols disabled
|
||||||
|
and/or =m (if that option is available) [not all of these at the
|
||||||
|
same time, just various/random combinations of them]:
|
||||||
|
|
||||||
|
CONFIG_SMP, CONFIG_SYSFS, CONFIG_PROC_FS, CONFIG_INPUT, CONFIG_PCI,
|
||||||
|
CONFIG_BLOCK, CONFIG_PM, CONFIG_HOTPLUG, CONFIG_MAGIC_SYSRQ,
|
||||||
|
CONFIG_NET, CONFIG_INET=n (but latter with CONFIG_NET=y)
|
||||||
|
|||||||
@@ -130,6 +130,8 @@ Linux kernel master tree:
|
|||||||
ftp.??.kernel.org:/pub/linux/kernel/...
|
ftp.??.kernel.org:/pub/linux/kernel/...
|
||||||
?? == your country code, such as "us", "uk", "fr", etc.
|
?? == your country code, such as "us", "uk", "fr", etc.
|
||||||
|
|
||||||
|
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git
|
||||||
|
|
||||||
Linux kernel mailing list:
|
Linux kernel mailing list:
|
||||||
linux-kernel@vger.kernel.org
|
linux-kernel@vger.kernel.org
|
||||||
[mail majordomo@vger.kernel.org to subscribe]
|
[mail majordomo@vger.kernel.org to subscribe]
|
||||||
@@ -160,3 +162,6 @@ How to NOT write kernel driver by Arjan van de Ven:
|
|||||||
|
|
||||||
Kernel Janitor:
|
Kernel Janitor:
|
||||||
http://janitor.kernelnewbies.org/
|
http://janitor.kernelnewbies.org/
|
||||||
|
|
||||||
|
GIT, Fast Version Control System:
|
||||||
|
http://git-scm.com/
|
||||||
|
|||||||
59
Documentation/acpi/apei/einj.txt
Normal file
59
Documentation/acpi/apei/einj.txt
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
APEI Error INJection
|
||||||
|
~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
EINJ provides a hardware error injection mechanism
|
||||||
|
It is very useful for debugging and testing of other APEI and RAS features.
|
||||||
|
|
||||||
|
To use EINJ, make sure the following are enabled in your kernel
|
||||||
|
configuration:
|
||||||
|
|
||||||
|
CONFIG_DEBUG_FS
|
||||||
|
CONFIG_ACPI_APEI
|
||||||
|
CONFIG_ACPI_APEI_EINJ
|
||||||
|
|
||||||
|
The user interface of EINJ is debug file system, under the
|
||||||
|
directory apei/einj. The following files are provided.
|
||||||
|
|
||||||
|
- available_error_type
|
||||||
|
Reading this file returns the error injection capability of the
|
||||||
|
platform, that is, which error types are supported. The error type
|
||||||
|
definition is as follow, the left field is the error type value, the
|
||||||
|
right field is error description.
|
||||||
|
|
||||||
|
0x00000001 Processor Correctable
|
||||||
|
0x00000002 Processor Uncorrectable non-fatal
|
||||||
|
0x00000004 Processor Uncorrectable fatal
|
||||||
|
0x00000008 Memory Correctable
|
||||||
|
0x00000010 Memory Uncorrectable non-fatal
|
||||||
|
0x00000020 Memory Uncorrectable fatal
|
||||||
|
0x00000040 PCI Express Correctable
|
||||||
|
0x00000080 PCI Express Uncorrectable fatal
|
||||||
|
0x00000100 PCI Express Uncorrectable non-fatal
|
||||||
|
0x00000200 Platform Correctable
|
||||||
|
0x00000400 Platform Uncorrectable non-fatal
|
||||||
|
0x00000800 Platform Uncorrectable fatal
|
||||||
|
|
||||||
|
The format of file contents are as above, except there are only the
|
||||||
|
available error type lines.
|
||||||
|
|
||||||
|
- error_type
|
||||||
|
This file is used to set the error type value. The error type value
|
||||||
|
is defined in "available_error_type" description.
|
||||||
|
|
||||||
|
- error_inject
|
||||||
|
Write any integer to this file to trigger the error
|
||||||
|
injection. Before this, please specify all necessary error
|
||||||
|
parameters.
|
||||||
|
|
||||||
|
- param1
|
||||||
|
This file is used to set the first error parameter value. Effect of
|
||||||
|
parameter depends on error_type specified. For memory error, this is
|
||||||
|
physical memory address.
|
||||||
|
|
||||||
|
- param2
|
||||||
|
This file is used to set the second error parameter value. Effect of
|
||||||
|
parameter depends on error_type specified. For memory error, this is
|
||||||
|
physical memory address mask.
|
||||||
|
|
||||||
|
For more information about EINJ, please refer to ACPI specification
|
||||||
|
version 4.0, section 17.5.
|
||||||
@@ -12,6 +12,8 @@ Introduction
|
|||||||
of the s3c2410 GPIO system, please read the Samsung provided
|
of the s3c2410 GPIO system, please read the Samsung provided
|
||||||
data-sheet/users manual to find out the complete list.
|
data-sheet/users manual to find out the complete list.
|
||||||
|
|
||||||
|
See Documentation/arm/Samsung/GPIO.txt for the core implemetation.
|
||||||
|
|
||||||
|
|
||||||
GPIOLIB
|
GPIOLIB
|
||||||
-------
|
-------
|
||||||
@@ -24,8 +26,60 @@ GPIOLIB
|
|||||||
listed below will be removed (they may be marked as __deprecated
|
listed below will be removed (they may be marked as __deprecated
|
||||||
in the near future).
|
in the near future).
|
||||||
|
|
||||||
- s3c2410_gpio_getpin
|
The following functions now either have a s3c_ specific variant
|
||||||
- s3c2410_gpio_setpin
|
or are merged into gpiolib. See the definitions in
|
||||||
|
arch/arm/plat-samsung/include/plat/gpio-cfg.h:
|
||||||
|
|
||||||
|
s3c2410_gpio_setpin() gpio_set_value() or gpio_direction_output()
|
||||||
|
s3c2410_gpio_getpin() gpio_get_value() or gpio_direction_input()
|
||||||
|
s3c2410_gpio_getirq() gpio_to_irq()
|
||||||
|
s3c2410_gpio_cfgpin() s3c_gpio_cfgpin()
|
||||||
|
s3c2410_gpio_getcfg() s3c_gpio_getcfg()
|
||||||
|
s3c2410_gpio_pullup() s3c_gpio_setpull()
|
||||||
|
|
||||||
|
|
||||||
|
GPIOLIB conversion
|
||||||
|
------------------
|
||||||
|
|
||||||
|
If you need to convert your board or driver to use gpiolib from the exiting
|
||||||
|
s3c2410 api, then here are some notes on the process.
|
||||||
|
|
||||||
|
1) If your board is exclusively using an GPIO, say to control peripheral
|
||||||
|
power, then it will require to claim the gpio with gpio_request() before
|
||||||
|
it can use it.
|
||||||
|
|
||||||
|
It is recommended to check the return value, with at least WARN_ON()
|
||||||
|
during initialisation.
|
||||||
|
|
||||||
|
2) The s3c2410_gpio_cfgpin() can be directly replaced with s3c_gpio_cfgpin()
|
||||||
|
as they have the same arguments, and can either take the pin specific
|
||||||
|
values, or the more generic special-function-number arguments.
|
||||||
|
|
||||||
|
3) s3c2410_gpio_pullup() changs have the problem that whilst the
|
||||||
|
s3c2410_gpio_pullup(x, 1) can be easily translated to the
|
||||||
|
s3c_gpio_setpull(x, S3C_GPIO_PULL_NONE), the s3c2410_gpio_pullup(x, 0)
|
||||||
|
are not so easy.
|
||||||
|
|
||||||
|
The s3c2410_gpio_pullup(x, 0) case enables the pull-up (or in the case
|
||||||
|
of some of the devices, a pull-down) and as such the new API distinguishes
|
||||||
|
between the UP and DOWN case. There is currently no 'just turn on' setting
|
||||||
|
which may be required if this becomes a problem.
|
||||||
|
|
||||||
|
4) s3c2410_gpio_setpin() can be replaced by gpio_set_value(), the old call
|
||||||
|
does not implicitly configure the relevant gpio to output. The gpio
|
||||||
|
direction should be changed before using gpio_set_value().
|
||||||
|
|
||||||
|
5) s3c2410_gpio_getpin() is replaceable by gpio_get_value() if the pin
|
||||||
|
has been set to input. It is currently unknown what the behaviour is
|
||||||
|
when using gpio_get_value() on an output pin (s3c2410_gpio_getpin
|
||||||
|
would return the value the pin is supposed to be outputting).
|
||||||
|
|
||||||
|
6) s3c2410_gpio_getirq() should be directly replacable with the
|
||||||
|
gpio_to_irq() call.
|
||||||
|
|
||||||
|
The s3c2410_gpio and gpio_ calls have always operated on the same gpio
|
||||||
|
numberspace, so there is no problem with converting the gpio numbering
|
||||||
|
between the calls.
|
||||||
|
|
||||||
|
|
||||||
Headers
|
Headers
|
||||||
@@ -54,6 +108,11 @@ PIN Numbers
|
|||||||
eg S3C2410_GPA(0) or S3C2410_GPF(1). These defines are used to tell
|
eg S3C2410_GPA(0) or S3C2410_GPF(1). These defines are used to tell
|
||||||
the GPIO functions which pin is to be used.
|
the GPIO functions which pin is to be used.
|
||||||
|
|
||||||
|
With the conversion to gpiolib, there is no longer a direct conversion
|
||||||
|
from gpio pin number to register base address as in earlier kernels. This
|
||||||
|
is due to the number space required for newer SoCs where the later
|
||||||
|
GPIOs are not contiguous.
|
||||||
|
|
||||||
|
|
||||||
Configuring a pin
|
Configuring a pin
|
||||||
-----------------
|
-----------------
|
||||||
@@ -71,6 +130,8 @@ Configuring a pin
|
|||||||
which would turn GPA(0) into the lowest Address line A0, and set
|
which would turn GPA(0) into the lowest Address line A0, and set
|
||||||
GPE(8) to be connected to the SDIO/MMC controller's SDDAT1 line.
|
GPE(8) to be connected to the SDIO/MMC controller's SDDAT1 line.
|
||||||
|
|
||||||
|
The s3c_gpio_cfgpin() call is a functional replacement for this call.
|
||||||
|
|
||||||
|
|
||||||
Reading the current configuration
|
Reading the current configuration
|
||||||
---------------------------------
|
---------------------------------
|
||||||
@@ -82,6 +143,9 @@ Reading the current configuration
|
|||||||
The return value will be from the same set of values which can be
|
The return value will be from the same set of values which can be
|
||||||
passed to s3c2410_gpio_cfgpin().
|
passed to s3c2410_gpio_cfgpin().
|
||||||
|
|
||||||
|
The s3c_gpio_getcfg() call should be a functional replacement for
|
||||||
|
this call.
|
||||||
|
|
||||||
|
|
||||||
Configuring a pull-up resistor
|
Configuring a pull-up resistor
|
||||||
------------------------------
|
------------------------------
|
||||||
@@ -95,6 +159,10 @@ Configuring a pull-up resistor
|
|||||||
Where the to value is zero to set the pull-up off, and 1 to enable
|
Where the to value is zero to set the pull-up off, and 1 to enable
|
||||||
the specified pull-up. Any other values are currently undefined.
|
the specified pull-up. Any other values are currently undefined.
|
||||||
|
|
||||||
|
The s3c_gpio_setpull() offers similar functionality, but with the
|
||||||
|
ability to encode whether the pull is up or down. Currently there
|
||||||
|
is no 'just on' state, so up or down must be selected.
|
||||||
|
|
||||||
|
|
||||||
Getting the state of a PIN
|
Getting the state of a PIN
|
||||||
--------------------------
|
--------------------------
|
||||||
@@ -106,6 +174,9 @@ Getting the state of a PIN
|
|||||||
This will return either zero or non-zero. Do not count on this
|
This will return either zero or non-zero. Do not count on this
|
||||||
function returning 1 if the pin is set.
|
function returning 1 if the pin is set.
|
||||||
|
|
||||||
|
This call is now implemented by the relevant gpiolib calls, convert
|
||||||
|
your board or driver to use gpiolib.
|
||||||
|
|
||||||
|
|
||||||
Setting the state of a PIN
|
Setting the state of a PIN
|
||||||
--------------------------
|
--------------------------
|
||||||
@@ -117,6 +188,9 @@ Setting the state of a PIN
|
|||||||
Which sets the given pin to the value. Use 0 to write 0, and 1 to
|
Which sets the given pin to the value. Use 0 to write 0, and 1 to
|
||||||
set the output to 1.
|
set the output to 1.
|
||||||
|
|
||||||
|
This call is now implemented by the relevant gpiolib calls, convert
|
||||||
|
your board or driver to use gpiolib.
|
||||||
|
|
||||||
|
|
||||||
Getting the IRQ number associated with a PIN
|
Getting the IRQ number associated with a PIN
|
||||||
--------------------------------------------
|
--------------------------------------------
|
||||||
@@ -128,6 +202,9 @@ Getting the IRQ number associated with a PIN
|
|||||||
|
|
||||||
Note, not all pins have an IRQ.
|
Note, not all pins have an IRQ.
|
||||||
|
|
||||||
|
This call is now implemented by the relevant gpiolib calls, convert
|
||||||
|
your board or driver to use gpiolib.
|
||||||
|
|
||||||
|
|
||||||
Authour
|
Authour
|
||||||
-------
|
-------
|
||||||
|
|||||||
@@ -8,10 +8,16 @@ Introduction
|
|||||||
|
|
||||||
The Samsung S3C24XX range of ARM9 System-on-Chip CPUs are supported
|
The Samsung S3C24XX range of ARM9 System-on-Chip CPUs are supported
|
||||||
by the 's3c2410' architecture of ARM Linux. Currently the S3C2410,
|
by the 's3c2410' architecture of ARM Linux. Currently the S3C2410,
|
||||||
S3C2412, S3C2413, S3C2440, S3C2442 and S3C2443 devices are supported.
|
S3C2412, S3C2413, S3C2416 S3C2440, S3C2442, S3C2443 and S3C2450 devices
|
||||||
|
are supported.
|
||||||
|
|
||||||
Support for the S3C2400 and S3C24A0 series are in progress.
|
Support for the S3C2400 and S3C24A0 series are in progress.
|
||||||
|
|
||||||
|
The S3C2416 and S3C2450 devices are very similar and S3C2450 support is
|
||||||
|
included under the arch/arm/mach-s3c2416 directory. Note, whilst core
|
||||||
|
support for these SoCs is in, work on some of the extra peripherals
|
||||||
|
and extra interrupts is still ongoing.
|
||||||
|
|
||||||
|
|
||||||
Configuration
|
Configuration
|
||||||
-------------
|
-------------
|
||||||
@@ -209,6 +215,13 @@ GPIO
|
|||||||
Newer kernels carry GPIOLIB, and support is being moved towards
|
Newer kernels carry GPIOLIB, and support is being moved towards
|
||||||
this with some of the older support in line to be removed.
|
this with some of the older support in line to be removed.
|
||||||
|
|
||||||
|
As of v2.6.34, the move towards using gpiolib support is almost
|
||||||
|
complete, and very little of the old calls are left.
|
||||||
|
|
||||||
|
See Documentation/arm/Samsung-S3C24XX/GPIO.txt for the S3C24XX specific
|
||||||
|
support and Documentation/arm/Samsung/GPIO.txt for the core Samsung
|
||||||
|
implementation.
|
||||||
|
|
||||||
|
|
||||||
Clock Management
|
Clock Management
|
||||||
----------------
|
----------------
|
||||||
|
|||||||
42
Documentation/arm/Samsung/GPIO.txt
Normal file
42
Documentation/arm/Samsung/GPIO.txt
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
Samsung GPIO implementation
|
||||||
|
===========================
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
------------
|
||||||
|
|
||||||
|
This outlines the Samsung GPIO implementation and the architecture
|
||||||
|
specfic calls provided alongisde the drivers/gpio core.
|
||||||
|
|
||||||
|
|
||||||
|
S3C24XX (Legacy)
|
||||||
|
----------------
|
||||||
|
|
||||||
|
See Documentation/arm/Samsung-S3C24XX/GPIO.txt for more information
|
||||||
|
about these devices. Their implementation is being brought into line
|
||||||
|
with the core samsung implementation described in this document.
|
||||||
|
|
||||||
|
|
||||||
|
GPIOLIB integration
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
The gpio implementation uses gpiolib as much as possible, only providing
|
||||||
|
specific calls for the items that require Samsung specific handling, such
|
||||||
|
as pin special-function or pull resistor control.
|
||||||
|
|
||||||
|
GPIO numbering is synchronised between the Samsung and gpiolib system.
|
||||||
|
|
||||||
|
|
||||||
|
PIN configuration
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Pin configuration is specific to the Samsung architecutre, with each SoC
|
||||||
|
registering the necessary information for the core gpio configuration
|
||||||
|
implementation to configure pins as necessary.
|
||||||
|
|
||||||
|
The s3c_gpio_cfgpin() and s3c_gpio_setpull() provide the means for a
|
||||||
|
driver or machine to change gpio configuration.
|
||||||
|
|
||||||
|
See arch/arm/plat-samsung/include/plat/gpio-cfg.h for more information
|
||||||
|
on these functions.
|
||||||
|
|
||||||
|
|
||||||
@@ -13,9 +13,10 @@ Introduction
|
|||||||
|
|
||||||
- S3C24XX: See Documentation/arm/Samsung-S3C24XX/Overview.txt for full list
|
- S3C24XX: See Documentation/arm/Samsung-S3C24XX/Overview.txt for full list
|
||||||
- S3C64XX: S3C6400 and S3C6410
|
- S3C64XX: S3C6400 and S3C6410
|
||||||
- S5PC6440
|
- S5P6440
|
||||||
|
- S5P6442
|
||||||
S5PC100 and S5PC110 support is currently being merged
|
- S5PC100
|
||||||
|
- S5PC110 / S5PV210
|
||||||
|
|
||||||
|
|
||||||
S3C24XX Systems
|
S3C24XX Systems
|
||||||
@@ -35,7 +36,10 @@ Configuration
|
|||||||
unifying all the SoCs into one kernel.
|
unifying all the SoCs into one kernel.
|
||||||
|
|
||||||
s5p6440_defconfig - S5P6440 specific default configuration
|
s5p6440_defconfig - S5P6440 specific default configuration
|
||||||
|
s5p6442_defconfig - S5P6442 specific default configuration
|
||||||
s5pc100_defconfig - S5PC100 specific default configuration
|
s5pc100_defconfig - S5PC100 specific default configuration
|
||||||
|
s5pc110_defconfig - S5PC110 specific default configuration
|
||||||
|
s5pv210_defconfig - S5PV210 specific default configuration
|
||||||
|
|
||||||
|
|
||||||
Layout
|
Layout
|
||||||
@@ -50,18 +54,27 @@ Layout
|
|||||||
specific information. It contains the base clock, GPIO and device definitions
|
specific information. It contains the base clock, GPIO and device definitions
|
||||||
to get the system running.
|
to get the system running.
|
||||||
|
|
||||||
plat-s3c is the s3c24xx/s3c64xx platform directory, although it is currently
|
|
||||||
involved in other builds this will be phased out once the relevant code is
|
|
||||||
moved elsewhere.
|
|
||||||
|
|
||||||
plat-s3c24xx is for s3c24xx specific builds, see the S3C24XX docs.
|
plat-s3c24xx is for s3c24xx specific builds, see the S3C24XX docs.
|
||||||
|
|
||||||
plat-s3c64xx is for the s3c64xx specific bits, see the S3C24XX docs.
|
plat-s5p is for s5p specific builds, and contains common support for the
|
||||||
|
S5P specific systems. Not all S5Ps use all the features in this directory
|
||||||
plat-s5p is for s5p specific builds, more to be added.
|
due to differences in the hardware.
|
||||||
|
|
||||||
|
|
||||||
|
Layout changes
|
||||||
|
--------------
|
||||||
|
|
||||||
|
The old plat-s3c and plat-s5pc1xx directories have been removed, with
|
||||||
|
support moved to either plat-samsung or plat-s5p as necessary. These moves
|
||||||
|
where to simplify the include and dependency issues involved with having
|
||||||
|
so many different platform directories.
|
||||||
|
|
||||||
|
It was decided to remove plat-s5pc1xx as some of the support was already
|
||||||
|
in plat-s5p or plat-samsung, with the S5PC110 support added with S5PV210
|
||||||
|
the only user was the S5PC100. The S5PC100 specific items where moved to
|
||||||
|
arch/arm/mach-s5pc100.
|
||||||
|
|
||||||
|
|
||||||
[ to finish ]
|
|
||||||
|
|
||||||
|
|
||||||
Port Contributors
|
Port Contributors
|
||||||
|
|||||||
@@ -17,6 +17,9 @@ HOWTO
|
|||||||
You can do a very simple testing of running two dd threads in two different
|
You can do a very simple testing of running two dd threads in two different
|
||||||
cgroups. Here is what you can do.
|
cgroups. Here is what you can do.
|
||||||
|
|
||||||
|
- Enable Block IO controller
|
||||||
|
CONFIG_BLK_CGROUP=y
|
||||||
|
|
||||||
- Enable group scheduling in CFQ
|
- Enable group scheduling in CFQ
|
||||||
CONFIG_CFQ_GROUP_IOSCHED=y
|
CONFIG_CFQ_GROUP_IOSCHED=y
|
||||||
|
|
||||||
@@ -54,32 +57,52 @@ cgroups. Here is what you can do.
|
|||||||
|
|
||||||
Various user visible config options
|
Various user visible config options
|
||||||
===================================
|
===================================
|
||||||
|
CONFIG_BLK_CGROUP
|
||||||
|
- Block IO controller.
|
||||||
|
|
||||||
|
CONFIG_DEBUG_BLK_CGROUP
|
||||||
|
- Debug help. Right now some additional stats file show up in cgroup
|
||||||
|
if this option is enabled.
|
||||||
|
|
||||||
CONFIG_CFQ_GROUP_IOSCHED
|
CONFIG_CFQ_GROUP_IOSCHED
|
||||||
- Enables group scheduling in CFQ. Currently only 1 level of group
|
- Enables group scheduling in CFQ. Currently only 1 level of group
|
||||||
creation is allowed.
|
creation is allowed.
|
||||||
|
|
||||||
CONFIG_DEBUG_CFQ_IOSCHED
|
|
||||||
- Enables some debugging messages in blktrace. Also creates extra
|
|
||||||
cgroup file blkio.dequeue.
|
|
||||||
|
|
||||||
Config options selected automatically
|
|
||||||
=====================================
|
|
||||||
These config options are not user visible and are selected/deselected
|
|
||||||
automatically based on IO scheduler configuration.
|
|
||||||
|
|
||||||
CONFIG_BLK_CGROUP
|
|
||||||
- Block IO controller. Selected by CONFIG_CFQ_GROUP_IOSCHED.
|
|
||||||
|
|
||||||
CONFIG_DEBUG_BLK_CGROUP
|
|
||||||
- Debug help. Selected by CONFIG_DEBUG_CFQ_IOSCHED.
|
|
||||||
|
|
||||||
Details of cgroup files
|
Details of cgroup files
|
||||||
=======================
|
=======================
|
||||||
- blkio.weight
|
- blkio.weight
|
||||||
- Specifies per cgroup weight.
|
- Specifies per cgroup weight. This is default weight of the group
|
||||||
|
on all the devices until and unless overridden by per device rule.
|
||||||
|
(See blkio.weight_device).
|
||||||
Currently allowed range of weights is from 100 to 1000.
|
Currently allowed range of weights is from 100 to 1000.
|
||||||
|
|
||||||
|
- blkio.weight_device
|
||||||
|
- One can specify per cgroup per device rules using this interface.
|
||||||
|
These rules override the default value of group weight as specified
|
||||||
|
by blkio.weight.
|
||||||
|
|
||||||
|
Following is the format.
|
||||||
|
|
||||||
|
#echo dev_maj:dev_minor weight > /path/to/cgroup/blkio.weight_device
|
||||||
|
Configure weight=300 on /dev/sdb (8:16) in this cgroup
|
||||||
|
# echo 8:16 300 > blkio.weight_device
|
||||||
|
# cat blkio.weight_device
|
||||||
|
dev weight
|
||||||
|
8:16 300
|
||||||
|
|
||||||
|
Configure weight=500 on /dev/sda (8:0) in this cgroup
|
||||||
|
# echo 8:0 500 > blkio.weight_device
|
||||||
|
# cat blkio.weight_device
|
||||||
|
dev weight
|
||||||
|
8:0 500
|
||||||
|
8:16 300
|
||||||
|
|
||||||
|
Remove specific weight for /dev/sda in this cgroup
|
||||||
|
# echo 8:0 0 > blkio.weight_device
|
||||||
|
# cat blkio.weight_device
|
||||||
|
dev weight
|
||||||
|
8:16 300
|
||||||
|
|
||||||
- blkio.time
|
- blkio.time
|
||||||
- disk time allocated to cgroup per device in milliseconds. First
|
- disk time allocated to cgroup per device in milliseconds. First
|
||||||
two fields specify the major and minor number of the device and
|
two fields specify the major and minor number of the device and
|
||||||
@@ -92,13 +115,105 @@ Details of cgroup files
|
|||||||
third field specifies the number of sectors transferred by the
|
third field specifies the number of sectors transferred by the
|
||||||
group to/from the device.
|
group to/from the device.
|
||||||
|
|
||||||
|
- blkio.io_service_bytes
|
||||||
|
- Number of bytes transferred to/from the disk by the group. These
|
||||||
|
are further divided by the type of operation - read or write, sync
|
||||||
|
or async. First two fields specify the major and minor number of the
|
||||||
|
device, third field specifies the operation type and the fourth field
|
||||||
|
specifies the number of bytes.
|
||||||
|
|
||||||
|
- blkio.io_serviced
|
||||||
|
- Number of IOs completed to/from the disk by the group. These
|
||||||
|
are further divided by the type of operation - read or write, sync
|
||||||
|
or async. First two fields specify the major and minor number of the
|
||||||
|
device, third field specifies the operation type and the fourth field
|
||||||
|
specifies the number of IOs.
|
||||||
|
|
||||||
|
- blkio.io_service_time
|
||||||
|
- Total amount of time between request dispatch and request completion
|
||||||
|
for the IOs done by this cgroup. This is in nanoseconds to make it
|
||||||
|
meaningful for flash devices too. For devices with queue depth of 1,
|
||||||
|
this time represents the actual service time. When queue_depth > 1,
|
||||||
|
that is no longer true as requests may be served out of order. This
|
||||||
|
may cause the service time for a given IO to include the service time
|
||||||
|
of multiple IOs when served out of order which may result in total
|
||||||
|
io_service_time > actual time elapsed. This time is further divided by
|
||||||
|
the type of operation - read or write, sync or async. First two fields
|
||||||
|
specify the major and minor number of the device, third field
|
||||||
|
specifies the operation type and the fourth field specifies the
|
||||||
|
io_service_time in ns.
|
||||||
|
|
||||||
|
- blkio.io_wait_time
|
||||||
|
- Total amount of time the IOs for this cgroup spent waiting in the
|
||||||
|
scheduler queues for service. This can be greater than the total time
|
||||||
|
elapsed since it is cumulative io_wait_time for all IOs. It is not a
|
||||||
|
measure of total time the cgroup spent waiting but rather a measure of
|
||||||
|
the wait_time for its individual IOs. For devices with queue_depth > 1
|
||||||
|
this metric does not include the time spent waiting for service once
|
||||||
|
the IO is dispatched to the device but till it actually gets serviced
|
||||||
|
(there might be a time lag here due to re-ordering of requests by the
|
||||||
|
device). This is in nanoseconds to make it meaningful for flash
|
||||||
|
devices too. This time is further divided by the type of operation -
|
||||||
|
read or write, sync or async. First two fields specify the major and
|
||||||
|
minor number of the device, third field specifies the operation type
|
||||||
|
and the fourth field specifies the io_wait_time in ns.
|
||||||
|
|
||||||
|
- blkio.io_merged
|
||||||
|
- Total number of bios/requests merged into requests belonging to this
|
||||||
|
cgroup. This is further divided by the type of operation - read or
|
||||||
|
write, sync or async.
|
||||||
|
|
||||||
|
- blkio.io_queued
|
||||||
|
- Total number of requests queued up at any given instant for this
|
||||||
|
cgroup. This is further divided by the type of operation - read or
|
||||||
|
write, sync or async.
|
||||||
|
|
||||||
|
- blkio.avg_queue_size
|
||||||
|
- Debugging aid only enabled if CONFIG_DEBUG_BLK_CGROUP=y.
|
||||||
|
The average queue size for this cgroup over the entire time of this
|
||||||
|
cgroup's existence. Queue size samples are taken each time one of the
|
||||||
|
queues of this cgroup gets a timeslice.
|
||||||
|
|
||||||
|
- blkio.group_wait_time
|
||||||
|
- Debugging aid only enabled if CONFIG_DEBUG_BLK_CGROUP=y.
|
||||||
|
This is the amount of time the cgroup had to wait since it became busy
|
||||||
|
(i.e., went from 0 to 1 request queued) to get a timeslice for one of
|
||||||
|
its queues. This is different from the io_wait_time which is the
|
||||||
|
cumulative total of the amount of time spent by each IO in that cgroup
|
||||||
|
waiting in the scheduler queue. This is in nanoseconds. If this is
|
||||||
|
read when the cgroup is in a waiting (for timeslice) state, the stat
|
||||||
|
will only report the group_wait_time accumulated till the last time it
|
||||||
|
got a timeslice and will not include the current delta.
|
||||||
|
|
||||||
|
- blkio.empty_time
|
||||||
|
- Debugging aid only enabled if CONFIG_DEBUG_BLK_CGROUP=y.
|
||||||
|
This is the amount of time a cgroup spends without any pending
|
||||||
|
requests when not being served, i.e., it does not include any time
|
||||||
|
spent idling for one of the queues of the cgroup. This is in
|
||||||
|
nanoseconds. If this is read when the cgroup is in an empty state,
|
||||||
|
the stat will only report the empty_time accumulated till the last
|
||||||
|
time it had a pending request and will not include the current delta.
|
||||||
|
|
||||||
|
- blkio.idle_time
|
||||||
|
- Debugging aid only enabled if CONFIG_DEBUG_BLK_CGROUP=y.
|
||||||
|
This is the amount of time spent by the IO scheduler idling for a
|
||||||
|
given cgroup in anticipation of a better request than the exising ones
|
||||||
|
from other queues/cgroups. This is in nanoseconds. If this is read
|
||||||
|
when the cgroup is in an idling state, the stat will only report the
|
||||||
|
idle_time accumulated till the last idle period and will not include
|
||||||
|
the current delta.
|
||||||
|
|
||||||
- blkio.dequeue
|
- blkio.dequeue
|
||||||
- Debugging aid only enabled if CONFIG_DEBUG_CFQ_IOSCHED=y. This
|
- Debugging aid only enabled if CONFIG_DEBUG_BLK_CGROUP=y. This
|
||||||
gives the statistics about how many a times a group was dequeued
|
gives the statistics about how many a times a group was dequeued
|
||||||
from service tree of the device. First two fields specify the major
|
from service tree of the device. First two fields specify the major
|
||||||
and minor number of the device and third field specifies the number
|
and minor number of the device and third field specifies the number
|
||||||
of times a group was dequeued from a particular device.
|
of times a group was dequeued from a particular device.
|
||||||
|
|
||||||
|
- blkio.reset_stats
|
||||||
|
- Writing an int to this file will result in resetting all the stats
|
||||||
|
for that cgroup.
|
||||||
|
|
||||||
CFQ sysfs tunable
|
CFQ sysfs tunable
|
||||||
=================
|
=================
|
||||||
/sys/block/<disk>/queue/iosched/group_isolation
|
/sys/block/<disk>/queue/iosched/group_isolation
|
||||||
|
|||||||
@@ -339,7 +339,7 @@ To mount a cgroup hierarchy with all available subsystems, type:
|
|||||||
The "xxx" is not interpreted by the cgroup code, but will appear in
|
The "xxx" is not interpreted by the cgroup code, but will appear in
|
||||||
/proc/mounts so may be any useful identifying string that you like.
|
/proc/mounts so may be any useful identifying string that you like.
|
||||||
|
|
||||||
To mount a cgroup hierarchy with just the cpuset and numtasks
|
To mount a cgroup hierarchy with just the cpuset and memory
|
||||||
subsystems, type:
|
subsystems, type:
|
||||||
# mount -t cgroup -o cpuset,memory hier1 /dev/cgroup
|
# mount -t cgroup -o cpuset,memory hier1 /dev/cgroup
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,15 @@
|
|||||||
Memory Resource Controller
|
Memory Resource Controller
|
||||||
|
|
||||||
NOTE: The Memory Resource Controller has been generically been referred
|
NOTE: The Memory Resource Controller has been generically been referred
|
||||||
to as the memory controller in this document. Do not confuse memory controller
|
to as the memory controller in this document. Do not confuse memory
|
||||||
used here with the memory controller that is used in hardware.
|
controller used here with the memory controller that is used in hardware.
|
||||||
|
|
||||||
Salient features
|
(For editors)
|
||||||
|
In this document:
|
||||||
a. Enable control of Anonymous, Page Cache (mapped and unmapped) and
|
When we mention a cgroup (cgroupfs's directory) with memory controller,
|
||||||
Swap Cache memory pages.
|
we call it "memory cgroup". When you see git-log and source code, you'll
|
||||||
b. The infrastructure allows easy addition of other types of memory to control
|
see patch's title and function names tend to use "memcg".
|
||||||
c. Provides *zero overhead* for non memory controller users
|
In this document, we avoid using it.
|
||||||
d. Provides a double LRU: global memory pressure causes reclaim from the
|
|
||||||
global LRU; a cgroup on hitting a limit, reclaims from the per
|
|
||||||
cgroup LRU
|
|
||||||
|
|
||||||
Benefits and Purpose of the memory controller
|
Benefits and Purpose of the memory controller
|
||||||
|
|
||||||
@@ -33,6 +30,45 @@ d. A CD/DVD burner could control the amount of memory used by the
|
|||||||
e. There are several other use cases, find one or use the controller just
|
e. There are several other use cases, find one or use the controller just
|
||||||
for fun (to learn and hack on the VM subsystem).
|
for fun (to learn and hack on the VM subsystem).
|
||||||
|
|
||||||
|
Current Status: linux-2.6.34-mmotm(development version of 2010/April)
|
||||||
|
|
||||||
|
Features:
|
||||||
|
- accounting anonymous pages, file caches, swap caches usage and limiting them.
|
||||||
|
- private LRU and reclaim routine. (system's global LRU and private LRU
|
||||||
|
work independently from each other)
|
||||||
|
- optionally, memory+swap usage can be accounted and limited.
|
||||||
|
- hierarchical accounting
|
||||||
|
- soft limit
|
||||||
|
- moving(recharging) account at moving a task is selectable.
|
||||||
|
- usage threshold notifier
|
||||||
|
- oom-killer disable knob and oom-notifier
|
||||||
|
- Root cgroup has no limit controls.
|
||||||
|
|
||||||
|
Kernel memory and Hugepages are not under control yet. We just manage
|
||||||
|
pages on LRU. To add more controls, we have to take care of performance.
|
||||||
|
|
||||||
|
Brief summary of control files.
|
||||||
|
|
||||||
|
tasks # attach a task(thread) and show list of threads
|
||||||
|
cgroup.procs # show list of processes
|
||||||
|
cgroup.event_control # an interface for event_fd()
|
||||||
|
memory.usage_in_bytes # show current memory(RSS+Cache) usage.
|
||||||
|
memory.memsw.usage_in_bytes # show current memory+Swap usage
|
||||||
|
memory.limit_in_bytes # set/show limit of memory usage
|
||||||
|
memory.memsw.limit_in_bytes # set/show limit of memory+Swap usage
|
||||||
|
memory.failcnt # show the number of memory usage hits limits
|
||||||
|
memory.memsw.failcnt # show the number of memory+Swap hits limits
|
||||||
|
memory.max_usage_in_bytes # show max memory usage recorded
|
||||||
|
memory.memsw.usage_in_bytes # show max memory+Swap usage recorded
|
||||||
|
memory.soft_limit_in_bytes # set/show soft limit of memory usage
|
||||||
|
memory.stat # show various statistics
|
||||||
|
memory.use_hierarchy # set/show hierarchical account enabled
|
||||||
|
memory.force_empty # trigger forced move charge to parent
|
||||||
|
memory.swappiness # set/show swappiness parameter of vmscan
|
||||||
|
(See sysctl's vm.swappiness)
|
||||||
|
memory.move_charge_at_immigrate # set/show controls of moving charges
|
||||||
|
memory.oom_control # set/show oom controls.
|
||||||
|
|
||||||
1. History
|
1. History
|
||||||
|
|
||||||
The memory controller has a long history. A request for comments for the memory
|
The memory controller has a long history. A request for comments for the memory
|
||||||
@@ -106,14 +142,14 @@ the necessary data structures and check if the cgroup that is being charged
|
|||||||
is over its limit. If it is then reclaim is invoked on the cgroup.
|
is over its limit. If it is then reclaim is invoked on the cgroup.
|
||||||
More details can be found in the reclaim section of this document.
|
More details can be found in the reclaim section of this document.
|
||||||
If everything goes well, a page meta-data-structure called page_cgroup is
|
If everything goes well, a page meta-data-structure called page_cgroup is
|
||||||
allocated and associated with the page. This routine also adds the page to
|
updated. page_cgroup has its own LRU on cgroup.
|
||||||
the per cgroup LRU.
|
(*) page_cgroup structure is allocated at boot/memory-hotplug time.
|
||||||
|
|
||||||
2.2.1 Accounting details
|
2.2.1 Accounting details
|
||||||
|
|
||||||
All mapped anon pages (RSS) and cache pages (Page Cache) are accounted.
|
All mapped anon pages (RSS) and cache pages (Page Cache) are accounted.
|
||||||
(some pages which never be reclaimable and will not be on global LRU
|
Some pages which are never reclaimable and will not be on the global LRU
|
||||||
are not accounted. we just accounts pages under usual vm management.)
|
are not accounted. We just account pages under usual VM management.
|
||||||
|
|
||||||
RSS pages are accounted at page_fault unless they've already been accounted
|
RSS pages are accounted at page_fault unless they've already been accounted
|
||||||
for earlier. A file page will be accounted for as Page Cache when it's
|
for earlier. A file page will be accounted for as Page Cache when it's
|
||||||
@@ -121,12 +157,19 @@ inserted into inode (radix-tree). While it's mapped into the page tables of
|
|||||||
processes, duplicate accounting is carefully avoided.
|
processes, duplicate accounting is carefully avoided.
|
||||||
|
|
||||||
A RSS page is unaccounted when it's fully unmapped. A PageCache page is
|
A RSS page is unaccounted when it's fully unmapped. A PageCache page is
|
||||||
unaccounted when it's removed from radix-tree.
|
unaccounted when it's removed from radix-tree. Even if RSS pages are fully
|
||||||
|
unmapped (by kswapd), they may exist as SwapCache in the system until they
|
||||||
|
are really freed. Such SwapCaches also also accounted.
|
||||||
|
A swapped-in page is not accounted until it's mapped.
|
||||||
|
|
||||||
|
Note: The kernel does swapin-readahead and read multiple swaps at once.
|
||||||
|
This means swapped-in pages may contain pages for other tasks than a task
|
||||||
|
causing page fault. So, we avoid accounting at swap-in I/O.
|
||||||
|
|
||||||
At page migration, accounting information is kept.
|
At page migration, accounting information is kept.
|
||||||
|
|
||||||
Note: we just account pages-on-lru because our purpose is to control amount
|
Note: we just account pages-on-LRU because our purpose is to control amount
|
||||||
of used pages. not-on-lru pages are tend to be out-of-control from vm view.
|
of used pages; not-on-LRU pages tend to be out-of-control from VM view.
|
||||||
|
|
||||||
2.3 Shared Page Accounting
|
2.3 Shared Page Accounting
|
||||||
|
|
||||||
@@ -143,6 +186,7 @@ caller of swapoff rather than the users of shmem.
|
|||||||
|
|
||||||
|
|
||||||
2.4 Swap Extension (CONFIG_CGROUP_MEM_RES_CTLR_SWAP)
|
2.4 Swap Extension (CONFIG_CGROUP_MEM_RES_CTLR_SWAP)
|
||||||
|
|
||||||
Swap Extension allows you to record charge for swap. A swapped-in page is
|
Swap Extension allows you to record charge for swap. A swapped-in page is
|
||||||
charged back to original page allocator if possible.
|
charged back to original page allocator if possible.
|
||||||
|
|
||||||
@@ -150,13 +194,20 @@ When swap is accounted, following files are added.
|
|||||||
- memory.memsw.usage_in_bytes.
|
- memory.memsw.usage_in_bytes.
|
||||||
- memory.memsw.limit_in_bytes.
|
- memory.memsw.limit_in_bytes.
|
||||||
|
|
||||||
usage of mem+swap is limited by memsw.limit_in_bytes.
|
memsw means memory+swap. Usage of memory+swap is limited by
|
||||||
|
memsw.limit_in_bytes.
|
||||||
|
|
||||||
* why 'mem+swap' rather than swap.
|
Example: Assume a system with 4G of swap. A task which allocates 6G of memory
|
||||||
|
(by mistake) under 2G memory limitation will use all swap.
|
||||||
|
In this case, setting memsw.limit_in_bytes=3G will prevent bad use of swap.
|
||||||
|
By using memsw limit, you can avoid system OOM which can be caused by swap
|
||||||
|
shortage.
|
||||||
|
|
||||||
|
* why 'memory+swap' rather than swap.
|
||||||
The global LRU(kswapd) can swap out arbitrary pages. Swap-out means
|
The global LRU(kswapd) can swap out arbitrary pages. Swap-out means
|
||||||
to move account from memory to swap...there is no change in usage of
|
to move account from memory to swap...there is no change in usage of
|
||||||
mem+swap. In other words, when we want to limit the usage of swap without
|
memory+swap. In other words, when we want to limit the usage of swap without
|
||||||
affecting global LRU, mem+swap limit is better than just limiting swap from
|
affecting global LRU, memory+swap limit is better than just limiting swap from
|
||||||
OS point of view.
|
OS point of view.
|
||||||
|
|
||||||
* What happens when a cgroup hits memory.memsw.limit_in_bytes
|
* What happens when a cgroup hits memory.memsw.limit_in_bytes
|
||||||
@@ -168,12 +219,12 @@ it by cgroup.
|
|||||||
|
|
||||||
2.5 Reclaim
|
2.5 Reclaim
|
||||||
|
|
||||||
Each cgroup maintains a per cgroup LRU that consists of an active
|
Each cgroup maintains a per cgroup LRU which has the same structure as
|
||||||
and inactive list. When a cgroup goes over its limit, we first try
|
global VM. When a cgroup goes over its limit, we first try
|
||||||
to reclaim memory from the cgroup so as to make space for the new
|
to reclaim memory from the cgroup so as to make space for the new
|
||||||
pages that the cgroup has touched. If the reclaim is unsuccessful,
|
pages that the cgroup has touched. If the reclaim is unsuccessful,
|
||||||
an OOM routine is invoked to select and kill the bulkiest task in the
|
an OOM routine is invoked to select and kill the bulkiest task in the
|
||||||
cgroup.
|
cgroup. (See 10. OOM Control below.)
|
||||||
|
|
||||||
The reclaim algorithm has not been modified for cgroups, except that
|
The reclaim algorithm has not been modified for cgroups, except that
|
||||||
pages that are selected for reclaiming come from the per cgroup LRU
|
pages that are selected for reclaiming come from the per cgroup LRU
|
||||||
@@ -184,13 +235,22 @@ limits on the root cgroup.
|
|||||||
|
|
||||||
Note2: When panic_on_oom is set to "2", the whole system will panic.
|
Note2: When panic_on_oom is set to "2", the whole system will panic.
|
||||||
|
|
||||||
2. Locking
|
When oom event notifier is registered, event will be delivered.
|
||||||
|
(See oom_control section)
|
||||||
|
|
||||||
The memory controller uses the following hierarchy
|
2.6 Locking
|
||||||
|
|
||||||
1. zone->lru_lock is used for selecting pages to be isolated
|
lock_page_cgroup()/unlock_page_cgroup() should not be called under
|
||||||
2. mem->per_zone->lru_lock protects the per cgroup LRU (per zone)
|
mapping->tree_lock.
|
||||||
3. lock_page_cgroup() is used to protect page->page_cgroup
|
|
||||||
|
Other lock order is following:
|
||||||
|
PG_locked.
|
||||||
|
mm->page_table_lock
|
||||||
|
zone->lru_lock
|
||||||
|
lock_page_cgroup.
|
||||||
|
In many cases, just lock_page_cgroup() is called.
|
||||||
|
per-zone-per-cgroup LRU (cgroup's private LRU) is just guarded by
|
||||||
|
zone->lru_lock, it has no lock of its own.
|
||||||
|
|
||||||
3. User Interface
|
3. User Interface
|
||||||
|
|
||||||
@@ -199,6 +259,7 @@ The memory controller uses the following hierarchy
|
|||||||
a. Enable CONFIG_CGROUPS
|
a. Enable CONFIG_CGROUPS
|
||||||
b. Enable CONFIG_RESOURCE_COUNTERS
|
b. Enable CONFIG_RESOURCE_COUNTERS
|
||||||
c. Enable CONFIG_CGROUP_MEM_RES_CTLR
|
c. Enable CONFIG_CGROUP_MEM_RES_CTLR
|
||||||
|
d. Enable CONFIG_CGROUP_MEM_RES_CTLR_SWAP (to use swap extension)
|
||||||
|
|
||||||
1. Prepare the cgroups
|
1. Prepare the cgroups
|
||||||
# mkdir -p /cgroups
|
# mkdir -p /cgroups
|
||||||
@@ -206,31 +267,28 @@ c. Enable CONFIG_CGROUP_MEM_RES_CTLR
|
|||||||
|
|
||||||
2. Make the new group and move bash into it
|
2. Make the new group and move bash into it
|
||||||
# mkdir /cgroups/0
|
# mkdir /cgroups/0
|
||||||
# echo $$ > /cgroups/0/tasks
|
# echo $$ > /cgroups/0/tasks
|
||||||
|
|
||||||
Since now we're in the 0 cgroup,
|
Since now we're in the 0 cgroup, we can alter the memory limit:
|
||||||
We can alter the memory limit:
|
|
||||||
# echo 4M > /cgroups/0/memory.limit_in_bytes
|
# echo 4M > /cgroups/0/memory.limit_in_bytes
|
||||||
|
|
||||||
NOTE: We can use a suffix (k, K, m, M, g or G) to indicate values in kilo,
|
NOTE: We can use a suffix (k, K, m, M, g or G) to indicate values in kilo,
|
||||||
mega or gigabytes.
|
mega or gigabytes. (Here, Kilo, Mega, Giga are Kibibytes, Mebibytes, Gibibytes.)
|
||||||
|
|
||||||
NOTE: We can write "-1" to reset the *.limit_in_bytes(unlimited).
|
NOTE: We can write "-1" to reset the *.limit_in_bytes(unlimited).
|
||||||
NOTE: We cannot set limits on the root cgroup any more.
|
NOTE: We cannot set limits on the root cgroup any more.
|
||||||
|
|
||||||
# cat /cgroups/0/memory.limit_in_bytes
|
# cat /cgroups/0/memory.limit_in_bytes
|
||||||
4194304
|
4194304
|
||||||
|
|
||||||
NOTE: The interface has now changed to display the usage in bytes
|
|
||||||
instead of pages
|
|
||||||
|
|
||||||
We can check the usage:
|
We can check the usage:
|
||||||
# cat /cgroups/0/memory.usage_in_bytes
|
# cat /cgroups/0/memory.usage_in_bytes
|
||||||
1216512
|
1216512
|
||||||
|
|
||||||
A successful write to this file does not guarantee a successful set of
|
A successful write to this file does not guarantee a successful set of
|
||||||
this limit to the value written into the file. This can be due to a
|
this limit to the value written into the file. This can be due to a
|
||||||
number of factors, such as rounding up to page boundaries or the total
|
number of factors, such as rounding up to page boundaries or the total
|
||||||
availability of memory on the system. The user is required to re-read
|
availability of memory on the system. The user is required to re-read
|
||||||
this file after a write to guarantee the value committed by the kernel.
|
this file after a write to guarantee the value committed by the kernel.
|
||||||
|
|
||||||
# echo 1 > memory.limit_in_bytes
|
# echo 1 > memory.limit_in_bytes
|
||||||
@@ -245,15 +303,23 @@ caches, RSS and Active pages/Inactive pages are shown.
|
|||||||
|
|
||||||
4. Testing
|
4. Testing
|
||||||
|
|
||||||
Balbir posted lmbench, AIM9, LTP and vmmstress results [10] and [11].
|
For testing features and implementation, see memcg_test.txt.
|
||||||
Apart from that v6 has been tested with several applications and regular
|
|
||||||
daily use. The controller has also been tested on the PPC64, x86_64 and
|
Performance test is also important. To see pure memory controller's overhead,
|
||||||
UML platforms.
|
testing on tmpfs will give you good numbers of small overheads.
|
||||||
|
Example: do kernel make on tmpfs.
|
||||||
|
|
||||||
|
Page-fault scalability is also important. At measuring parallel
|
||||||
|
page fault test, multi-process test may be better than multi-thread
|
||||||
|
test because it has noise of shared objects/status.
|
||||||
|
|
||||||
|
But the above two are testing extreme situations.
|
||||||
|
Trying usual test under memory controller is always helpful.
|
||||||
|
|
||||||
4.1 Troubleshooting
|
4.1 Troubleshooting
|
||||||
|
|
||||||
Sometimes a user might find that the application under a cgroup is
|
Sometimes a user might find that the application under a cgroup is
|
||||||
terminated. There are several causes for this:
|
terminated by OOM killer. There are several causes for this:
|
||||||
|
|
||||||
1. The cgroup limit is too low (just too low to do anything useful)
|
1. The cgroup limit is too low (just too low to do anything useful)
|
||||||
2. The user is using anonymous memory and swap is turned off or too low
|
2. The user is using anonymous memory and swap is turned off or too low
|
||||||
@@ -261,6 +327,9 @@ terminated. There are several causes for this:
|
|||||||
A sync followed by echo 1 > /proc/sys/vm/drop_caches will help get rid of
|
A sync followed by echo 1 > /proc/sys/vm/drop_caches will help get rid of
|
||||||
some of the pages cached in the cgroup (page cache pages).
|
some of the pages cached in the cgroup (page cache pages).
|
||||||
|
|
||||||
|
To know what happens, disable OOM_Kill by 10. OOM Control(see below) and
|
||||||
|
seeing what happens will be helpful.
|
||||||
|
|
||||||
4.2 Task migration
|
4.2 Task migration
|
||||||
|
|
||||||
When a task migrates from one cgroup to another, its charge is not
|
When a task migrates from one cgroup to another, its charge is not
|
||||||
@@ -268,16 +337,19 @@ carried forward by default. The pages allocated from the original cgroup still
|
|||||||
remain charged to it, the charge is dropped when the page is freed or
|
remain charged to it, the charge is dropped when the page is freed or
|
||||||
reclaimed.
|
reclaimed.
|
||||||
|
|
||||||
Note: You can move charges of a task along with task migration. See 8.
|
You can move charges of a task along with task migration.
|
||||||
|
See 8. "Move charges at task migration"
|
||||||
|
|
||||||
4.3 Removing a cgroup
|
4.3 Removing a cgroup
|
||||||
|
|
||||||
A cgroup can be removed by rmdir, but as discussed in sections 4.1 and 4.2, a
|
A cgroup can be removed by rmdir, but as discussed in sections 4.1 and 4.2, a
|
||||||
cgroup might have some charge associated with it, even though all
|
cgroup might have some charge associated with it, even though all
|
||||||
tasks have migrated away from it.
|
tasks have migrated away from it. (because we charge against pages, not
|
||||||
Such charges are freed(at default) or moved to its parent. When moved,
|
against tasks.)
|
||||||
both of RSS and CACHES are moved to parent.
|
|
||||||
If both of them are busy, rmdir() returns -EBUSY. See 5.1 Also.
|
Such charges are freed or moved to their parent. At moving, both of RSS
|
||||||
|
and CACHES are moved to parent.
|
||||||
|
rmdir() may return -EBUSY if freeing/moving fails. See 5.1 also.
|
||||||
|
|
||||||
Charges recorded in swap information is not updated at removal of cgroup.
|
Charges recorded in swap information is not updated at removal of cgroup.
|
||||||
Recorded information is discarded and a cgroup which uses swap (swapcache)
|
Recorded information is discarded and a cgroup which uses swap (swapcache)
|
||||||
@@ -293,10 +365,10 @@ will be charged as a new owner of it.
|
|||||||
|
|
||||||
# echo 0 > memory.force_empty
|
# echo 0 > memory.force_empty
|
||||||
|
|
||||||
Almost all pages tracked by this memcg will be unmapped and freed. Some of
|
Almost all pages tracked by this memory cgroup will be unmapped and freed.
|
||||||
pages cannot be freed because it's locked or in-use. Such pages are moved
|
Some pages cannot be freed because they are locked or in-use. Such pages are
|
||||||
to parent and this cgroup will be empty. But this may return -EBUSY in
|
moved to parent and this cgroup will be empty. This may return -EBUSY if
|
||||||
some too busy case.
|
VM is too busy to free/move all pages immediately.
|
||||||
|
|
||||||
Typical use case of this interface is that calling this before rmdir().
|
Typical use case of this interface is that calling this before rmdir().
|
||||||
Because rmdir() moves all pages to parent, some out-of-use page caches can be
|
Because rmdir() moves all pages to parent, some out-of-use page caches can be
|
||||||
@@ -306,19 +378,41 @@ will be charged as a new owner of it.
|
|||||||
|
|
||||||
memory.stat file includes following statistics
|
memory.stat file includes following statistics
|
||||||
|
|
||||||
|
# per-memory cgroup local status
|
||||||
cache - # of bytes of page cache memory.
|
cache - # of bytes of page cache memory.
|
||||||
rss - # of bytes of anonymous and swap cache memory.
|
rss - # of bytes of anonymous and swap cache memory.
|
||||||
|
mapped_file - # of bytes of mapped file (includes tmpfs/shmem)
|
||||||
pgpgin - # of pages paged in (equivalent to # of charging events).
|
pgpgin - # of pages paged in (equivalent to # of charging events).
|
||||||
pgpgout - # of pages paged out (equivalent to # of uncharging events).
|
pgpgout - # of pages paged out (equivalent to # of uncharging events).
|
||||||
active_anon - # of bytes of anonymous and swap cache memory on active
|
swap - # of bytes of swap usage
|
||||||
lru list.
|
|
||||||
inactive_anon - # of bytes of anonymous memory and swap cache memory on
|
inactive_anon - # of bytes of anonymous memory and swap cache memory on
|
||||||
inactive lru list.
|
LRU list.
|
||||||
active_file - # of bytes of file-backed memory on active lru list.
|
active_anon - # of bytes of anonymous and swap cache memory on active
|
||||||
inactive_file - # of bytes of file-backed memory on inactive lru list.
|
inactive LRU list.
|
||||||
|
inactive_file - # of bytes of file-backed memory on inactive LRU list.
|
||||||
|
active_file - # of bytes of file-backed memory on active LRU list.
|
||||||
unevictable - # of bytes of memory that cannot be reclaimed (mlocked etc).
|
unevictable - # of bytes of memory that cannot be reclaimed (mlocked etc).
|
||||||
|
|
||||||
The following additional stats are dependent on CONFIG_DEBUG_VM.
|
# status considering hierarchy (see memory.use_hierarchy settings)
|
||||||
|
|
||||||
|
hierarchical_memory_limit - # of bytes of memory limit with regard to hierarchy
|
||||||
|
under which the memory cgroup is
|
||||||
|
hierarchical_memsw_limit - # of bytes of memory+swap limit with regard to
|
||||||
|
hierarchy under which memory cgroup is.
|
||||||
|
|
||||||
|
total_cache - sum of all children's "cache"
|
||||||
|
total_rss - sum of all children's "rss"
|
||||||
|
total_mapped_file - sum of all children's "cache"
|
||||||
|
total_pgpgin - sum of all children's "pgpgin"
|
||||||
|
total_pgpgout - sum of all children's "pgpgout"
|
||||||
|
total_swap - sum of all children's "swap"
|
||||||
|
total_inactive_anon - sum of all children's "inactive_anon"
|
||||||
|
total_active_anon - sum of all children's "active_anon"
|
||||||
|
total_inactive_file - sum of all children's "inactive_file"
|
||||||
|
total_active_file - sum of all children's "active_file"
|
||||||
|
total_unevictable - sum of all children's "unevictable"
|
||||||
|
|
||||||
|
# The following additional stats are dependent on CONFIG_DEBUG_VM.
|
||||||
|
|
||||||
inactive_ratio - VM internal parameter. (see mm/page_alloc.c)
|
inactive_ratio - VM internal parameter. (see mm/page_alloc.c)
|
||||||
recent_rotated_anon - VM internal parameter. (see mm/vmscan.c)
|
recent_rotated_anon - VM internal parameter. (see mm/vmscan.c)
|
||||||
@@ -327,24 +421,37 @@ recent_scanned_anon - VM internal parameter. (see mm/vmscan.c)
|
|||||||
recent_scanned_file - VM internal parameter. (see mm/vmscan.c)
|
recent_scanned_file - VM internal parameter. (see mm/vmscan.c)
|
||||||
|
|
||||||
Memo:
|
Memo:
|
||||||
recent_rotated means recent frequency of lru rotation.
|
recent_rotated means recent frequency of LRU rotation.
|
||||||
recent_scanned means recent # of scans to lru.
|
recent_scanned means recent # of scans to LRU.
|
||||||
showing for better debug please see the code for meanings.
|
showing for better debug please see the code for meanings.
|
||||||
|
|
||||||
Note:
|
Note:
|
||||||
Only anonymous and swap cache memory is listed as part of 'rss' stat.
|
Only anonymous and swap cache memory is listed as part of 'rss' stat.
|
||||||
This should not be confused with the true 'resident set size' or the
|
This should not be confused with the true 'resident set size' or the
|
||||||
amount of physical memory used by the cgroup. Per-cgroup rss
|
amount of physical memory used by the cgroup.
|
||||||
accounting is not done yet.
|
'rss + file_mapped" will give you resident set size of cgroup.
|
||||||
|
(Note: file and shmem may be shared among other cgroups. In that case,
|
||||||
|
file_mapped is accounted only when the memory cgroup is owner of page
|
||||||
|
cache.)
|
||||||
|
|
||||||
5.3 swappiness
|
5.3 swappiness
|
||||||
Similar to /proc/sys/vm/swappiness, but affecting a hierarchy of groups only.
|
|
||||||
|
|
||||||
Following cgroups' swappiness can't be changed.
|
Similar to /proc/sys/vm/swappiness, but affecting a hierarchy of groups only.
|
||||||
- root cgroup (uses /proc/sys/vm/swappiness).
|
|
||||||
- a cgroup which uses hierarchy and it has child cgroup.
|
|
||||||
- a cgroup which uses hierarchy and not the root of hierarchy.
|
|
||||||
|
|
||||||
|
Following cgroups' swappiness can't be changed.
|
||||||
|
- root cgroup (uses /proc/sys/vm/swappiness).
|
||||||
|
- a cgroup which uses hierarchy and it has other cgroup(s) below it.
|
||||||
|
- a cgroup which uses hierarchy and not the root of hierarchy.
|
||||||
|
|
||||||
|
5.4 failcnt
|
||||||
|
|
||||||
|
A memory cgroup provides memory.failcnt and memory.memsw.failcnt files.
|
||||||
|
This failcnt(== failure count) shows the number of times that a usage counter
|
||||||
|
hit its limit. When a memory cgroup hits a limit, failcnt increases and
|
||||||
|
memory under it will be reclaimed.
|
||||||
|
|
||||||
|
You can reset failcnt by writing 0 to failcnt file.
|
||||||
|
# echo 0 > .../memory.failcnt
|
||||||
|
|
||||||
6. Hierarchy support
|
6. Hierarchy support
|
||||||
|
|
||||||
@@ -363,13 +470,13 @@ hierarchy
|
|||||||
|
|
||||||
In the diagram above, with hierarchical accounting enabled, all memory
|
In the diagram above, with hierarchical accounting enabled, all memory
|
||||||
usage of e, is accounted to its ancestors up until the root (i.e, c and root),
|
usage of e, is accounted to its ancestors up until the root (i.e, c and root),
|
||||||
that has memory.use_hierarchy enabled. If one of the ancestors goes over its
|
that has memory.use_hierarchy enabled. If one of the ancestors goes over its
|
||||||
limit, the reclaim algorithm reclaims from the tasks in the ancestor and the
|
limit, the reclaim algorithm reclaims from the tasks in the ancestor and the
|
||||||
children of the ancestor.
|
children of the ancestor.
|
||||||
|
|
||||||
6.1 Enabling hierarchical accounting and reclaim
|
6.1 Enabling hierarchical accounting and reclaim
|
||||||
|
|
||||||
The memory controller by default disables the hierarchy feature. Support
|
A memory cgroup by default disables the hierarchy feature. Support
|
||||||
can be enabled by writing 1 to memory.use_hierarchy file of the root cgroup
|
can be enabled by writing 1 to memory.use_hierarchy file of the root cgroup
|
||||||
|
|
||||||
# echo 1 > memory.use_hierarchy
|
# echo 1 > memory.use_hierarchy
|
||||||
@@ -379,10 +486,10 @@ The feature can be disabled by
|
|||||||
# echo 0 > memory.use_hierarchy
|
# echo 0 > memory.use_hierarchy
|
||||||
|
|
||||||
NOTE1: Enabling/disabling will fail if the cgroup already has other
|
NOTE1: Enabling/disabling will fail if the cgroup already has other
|
||||||
cgroups created below it.
|
cgroups created below it.
|
||||||
|
|
||||||
NOTE2: When panic_on_oom is set to "2", the whole system will panic in
|
NOTE2: When panic_on_oom is set to "2", the whole system will panic in
|
||||||
case of an oom event in any cgroup.
|
case of an OOM event in any cgroup.
|
||||||
|
|
||||||
7. Soft limits
|
7. Soft limits
|
||||||
|
|
||||||
@@ -392,7 +499,7 @@ is to allow control groups to use as much of the memory as needed, provided
|
|||||||
a. There is no memory contention
|
a. There is no memory contention
|
||||||
b. They do not exceed their hard limit
|
b. They do not exceed their hard limit
|
||||||
|
|
||||||
When the system detects memory contention or low memory control groups
|
When the system detects memory contention or low memory, control groups
|
||||||
are pushed back to their soft limits. If the soft limit of each control
|
are pushed back to their soft limits. If the soft limit of each control
|
||||||
group is very high, they are pushed back as much as possible to make
|
group is very high, they are pushed back as much as possible to make
|
||||||
sure that one control group does not starve the others of memory.
|
sure that one control group does not starve the others of memory.
|
||||||
@@ -406,7 +513,7 @@ it gets invoked from balance_pgdat (kswapd).
|
|||||||
7.1 Interface
|
7.1 Interface
|
||||||
|
|
||||||
Soft limits can be setup by using the following commands (in this example we
|
Soft limits can be setup by using the following commands (in this example we
|
||||||
assume a soft limit of 256 megabytes)
|
assume a soft limit of 256 MiB)
|
||||||
|
|
||||||
# echo 256M > memory.soft_limit_in_bytes
|
# echo 256M > memory.soft_limit_in_bytes
|
||||||
|
|
||||||
@@ -442,7 +549,7 @@ Note: Charges are moved only when you move mm->owner, IOW, a leader of a thread
|
|||||||
Note: If we cannot find enough space for the task in the destination cgroup, we
|
Note: If we cannot find enough space for the task in the destination cgroup, we
|
||||||
try to make space by reclaiming memory. Task migration may fail if we
|
try to make space by reclaiming memory. Task migration may fail if we
|
||||||
cannot make enough space.
|
cannot make enough space.
|
||||||
Note: It can take several seconds if you move charges in giga bytes order.
|
Note: It can take several seconds if you move charges much.
|
||||||
|
|
||||||
And if you want disable it again:
|
And if you want disable it again:
|
||||||
|
|
||||||
@@ -451,21 +558,27 @@ And if you want disable it again:
|
|||||||
8.2 Type of charges which can be move
|
8.2 Type of charges which can be move
|
||||||
|
|
||||||
Each bits of move_charge_at_immigrate has its own meaning about what type of
|
Each bits of move_charge_at_immigrate has its own meaning about what type of
|
||||||
charges should be moved.
|
charges should be moved. But in any cases, it must be noted that an account of
|
||||||
|
a page or a swap can be moved only when it is charged to the task's current(old)
|
||||||
|
memory cgroup.
|
||||||
|
|
||||||
bit | what type of charges would be moved ?
|
bit | what type of charges would be moved ?
|
||||||
-----+------------------------------------------------------------------------
|
-----+------------------------------------------------------------------------
|
||||||
0 | A charge of an anonymous page(or swap of it) used by the target task.
|
0 | A charge of an anonymous page(or swap of it) used by the target task.
|
||||||
| Those pages and swaps must be used only by the target task. You must
|
| Those pages and swaps must be used only by the target task. You must
|
||||||
| enable Swap Extension(see 2.4) to enable move of swap charges.
|
| enable Swap Extension(see 2.4) to enable move of swap charges.
|
||||||
|
-----+------------------------------------------------------------------------
|
||||||
Note: Those pages and swaps must be charged to the old cgroup.
|
1 | A charge of file pages(normal file, tmpfs file(e.g. ipc shared memory)
|
||||||
Note: More type of pages(e.g. file cache, shmem,) will be supported by other
|
| and swaps of tmpfs file) mmapped by the target task. Unlike the case of
|
||||||
bits in future.
|
| anonymous pages, file pages(and swaps) in the range mmapped by the task
|
||||||
|
| will be moved even if the task hasn't done page fault, i.e. they might
|
||||||
|
| not be the task's "RSS", but other task's "RSS" that maps the same file.
|
||||||
|
| And mapcount of the page is ignored(the page can be moved even if
|
||||||
|
| page_mapcount(page) > 1). You must enable Swap Extension(see 2.4) to
|
||||||
|
| enable move of swap charges.
|
||||||
|
|
||||||
8.3 TODO
|
8.3 TODO
|
||||||
|
|
||||||
- Add support for other types of pages(e.g. file cache, shmem, etc.).
|
|
||||||
- Implement madvise(2) to let users decide the vma to be moved or not to be
|
- Implement madvise(2) to let users decide the vma to be moved or not to be
|
||||||
moved.
|
moved.
|
||||||
- All of moving charge operations are done under cgroup_mutex. It's not good
|
- All of moving charge operations are done under cgroup_mutex. It's not good
|
||||||
@@ -473,22 +586,61 @@ Note: More type of pages(e.g. file cache, shmem,) will be supported by other
|
|||||||
|
|
||||||
9. Memory thresholds
|
9. Memory thresholds
|
||||||
|
|
||||||
Memory controler implements memory thresholds using cgroups notification
|
Memory cgroup implements memory thresholds using cgroups notification
|
||||||
API (see cgroups.txt). It allows to register multiple memory and memsw
|
API (see cgroups.txt). It allows to register multiple memory and memsw
|
||||||
thresholds and gets notifications when it crosses.
|
thresholds and gets notifications when it crosses.
|
||||||
|
|
||||||
To register a threshold application need:
|
To register a threshold application need:
|
||||||
- create an eventfd using eventfd(2);
|
- create an eventfd using eventfd(2);
|
||||||
- open memory.usage_in_bytes or memory.memsw.usage_in_bytes;
|
- open memory.usage_in_bytes or memory.memsw.usage_in_bytes;
|
||||||
- write string like "<event_fd> <memory.usage_in_bytes> <threshold>" to
|
- write string like "<event_fd> <fd of memory.usage_in_bytes> <threshold>" to
|
||||||
cgroup.event_control.
|
cgroup.event_control.
|
||||||
|
|
||||||
Application will be notified through eventfd when memory usage crosses
|
Application will be notified through eventfd when memory usage crosses
|
||||||
threshold in any direction.
|
threshold in any direction.
|
||||||
|
|
||||||
It's applicable for root and non-root cgroup.
|
It's applicable for root and non-root cgroup.
|
||||||
|
|
||||||
10. TODO
|
10. OOM Control
|
||||||
|
|
||||||
|
memory.oom_control file is for OOM notification and other controls.
|
||||||
|
|
||||||
|
Memory cgroup implements OOM notifier using cgroup notification
|
||||||
|
API (See cgroups.txt). It allows to register multiple OOM notification
|
||||||
|
delivery and gets notification when OOM happens.
|
||||||
|
|
||||||
|
To register a notifier, application need:
|
||||||
|
- create an eventfd using eventfd(2)
|
||||||
|
- open memory.oom_control file
|
||||||
|
- write string like "<event_fd> <fd of memory.oom_control>" to
|
||||||
|
cgroup.event_control
|
||||||
|
|
||||||
|
Application will be notified through eventfd when OOM happens.
|
||||||
|
OOM notification doesn't work for root cgroup.
|
||||||
|
|
||||||
|
You can disable OOM-killer by writing "1" to memory.oom_control file, as:
|
||||||
|
|
||||||
|
#echo 1 > memory.oom_control
|
||||||
|
|
||||||
|
This operation is only allowed to the top cgroup of sub-hierarchy.
|
||||||
|
If OOM-killer is disabled, tasks under cgroup will hang/sleep
|
||||||
|
in memory cgroup's OOM-waitqueue when they request accountable memory.
|
||||||
|
|
||||||
|
For running them, you have to relax the memory cgroup's OOM status by
|
||||||
|
* enlarge limit or reduce usage.
|
||||||
|
To reduce usage,
|
||||||
|
* kill some tasks.
|
||||||
|
* move some tasks to other group with account migration.
|
||||||
|
* remove some files (on tmpfs?)
|
||||||
|
|
||||||
|
Then, stopped tasks will work again.
|
||||||
|
|
||||||
|
At reading, current status of OOM is shown.
|
||||||
|
oom_kill_disable 0 or 1 (if 1, oom-killer is disabled)
|
||||||
|
under_oom 0 or 1 (if 1, the memory cgroup is under OOM, tasks may
|
||||||
|
be stopped.)
|
||||||
|
|
||||||
|
11. TODO
|
||||||
|
|
||||||
1. Add support for accounting huge pages (as a separate controller)
|
1. Add support for accounting huge pages (as a separate controller)
|
||||||
2. Make per-cgroup scanner reclaim not-shared pages first
|
2. Make per-cgroup scanner reclaim not-shared pages first
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ The stages that a patch goes through are, generally:
|
|||||||
well.
|
well.
|
||||||
|
|
||||||
- Wider review. When the patch is getting close to ready for mainline
|
- Wider review. When the patch is getting close to ready for mainline
|
||||||
inclusion, it will be accepted by a relevant subsystem maintainer -
|
inclusion, it should be accepted by a relevant subsystem maintainer -
|
||||||
though this acceptance is not a guarantee that the patch will make it
|
though this acceptance is not a guarantee that the patch will make it
|
||||||
all the way to the mainline. The patch will show up in the maintainer's
|
all the way to the mainline. The patch will show up in the maintainer's
|
||||||
subsystem tree and into the staging trees (described below). When the
|
subsystem tree and into the staging trees (described below). When the
|
||||||
@@ -159,6 +159,15 @@ The stages that a patch goes through are, generally:
|
|||||||
the discovery of any problems resulting from the integration of this
|
the discovery of any problems resulting from the integration of this
|
||||||
patch with work being done by others.
|
patch with work being done by others.
|
||||||
|
|
||||||
|
- Please note that most maintainers also have day jobs, so merging
|
||||||
|
your patch may not be their highest priority. If your patch is
|
||||||
|
getting feedback about changes that are needed, you should either
|
||||||
|
make those changes or justify why they should not be made. If your
|
||||||
|
patch has no review complaints but is not being merged by its
|
||||||
|
appropriate subsystem or driver maintainer, you should be persistent
|
||||||
|
in updating the patch to the current kernel so that it applies cleanly
|
||||||
|
and keep sending it for review and merging.
|
||||||
|
|
||||||
- Merging into the mainline. Eventually, a successful patch will be
|
- Merging into the mainline. Eventually, a successful patch will be
|
||||||
merged into the mainline repository managed by Linus Torvalds. More
|
merged into the mainline repository managed by Linus Torvalds. More
|
||||||
comments and/or problems may surface at this time; it is important that
|
comments and/or problems may surface at this time; it is important that
|
||||||
@@ -258,12 +267,8 @@ an appropriate subsystem tree or be sent directly to Linus. In a typical
|
|||||||
development cycle, approximately 10% of the patches going into the mainline
|
development cycle, approximately 10% of the patches going into the mainline
|
||||||
get there via -mm.
|
get there via -mm.
|
||||||
|
|
||||||
The current -mm patch can always be found from the front page of
|
The current -mm patch is available in the "mmotm" (-mm of the moment)
|
||||||
|
directory at:
|
||||||
http://kernel.org/
|
|
||||||
|
|
||||||
Those who want to see the current state of -mm can get the "-mm of the
|
|
||||||
moment" tree, found at:
|
|
||||||
|
|
||||||
http://userweb.kernel.org/~akpm/mmotm/
|
http://userweb.kernel.org/~akpm/mmotm/
|
||||||
|
|
||||||
@@ -298,6 +303,12 @@ volatility of linux-next tends to make it a difficult development target.
|
|||||||
See http://lwn.net/Articles/289013/ for more information on this topic, and
|
See http://lwn.net/Articles/289013/ for more information on this topic, and
|
||||||
stay tuned; much is still in flux where linux-next is involved.
|
stay tuned; much is still in flux where linux-next is involved.
|
||||||
|
|
||||||
|
Besides the mmotm and linux-next trees, the kernel source tree now contains
|
||||||
|
the drivers/staging/ directory and many sub-directories for drivers or
|
||||||
|
filesystems that are on their way to being added to the kernel tree
|
||||||
|
proper, but they remain in drivers/staging/ while they still need more
|
||||||
|
work.
|
||||||
|
|
||||||
|
|
||||||
2.5: TOOLS
|
2.5: TOOLS
|
||||||
|
|
||||||
@@ -319,9 +330,9 @@ developers; even if they do not use it for their own work, they'll need git
|
|||||||
to keep up with what other developers (and the mainline) are doing.
|
to keep up with what other developers (and the mainline) are doing.
|
||||||
|
|
||||||
Git is now packaged by almost all Linux distributions. There is a home
|
Git is now packaged by almost all Linux distributions. There is a home
|
||||||
page at
|
page at:
|
||||||
|
|
||||||
http://git.or.cz/
|
http://git-scm.com/
|
||||||
|
|
||||||
That page has pointers to documentation and tutorials. One should be
|
That page has pointers to documentation and tutorials. One should be
|
||||||
aware, in particular, of the Kernel Hacker's Guide to git, which has
|
aware, in particular, of the Kernel Hacker's Guide to git, which has
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ long document in its own right. Instead, the focus here will be on how git
|
|||||||
fits into the kernel development process in particular. Developers who
|
fits into the kernel development process in particular. Developers who
|
||||||
wish to come up to speed with git will find more information at:
|
wish to come up to speed with git will find more information at:
|
||||||
|
|
||||||
http://git.or.cz/
|
http://git-scm.com/
|
||||||
|
|
||||||
http://www.kernel.org/pub/software/scm/git/docs/user-manual.html
|
http://www.kernel.org/pub/software/scm/git/docs/user-manual.html
|
||||||
|
|
||||||
|
|||||||
@@ -443,6 +443,8 @@ Your cooperation is appreciated.
|
|||||||
231 = /dev/snapshot System memory snapshot device
|
231 = /dev/snapshot System memory snapshot device
|
||||||
232 = /dev/kvm Kernel-based virtual machine (hardware virtualization extensions)
|
232 = /dev/kvm Kernel-based virtual machine (hardware virtualization extensions)
|
||||||
233 = /dev/kmview View-OS A process with a view
|
233 = /dev/kmview View-OS A process with a view
|
||||||
|
234 = /dev/btrfs-control Btrfs control device
|
||||||
|
235 = /dev/autofs Autofs control device
|
||||||
240-254 Reserved for local use
|
240-254 Reserved for local use
|
||||||
255 Reserved for MISC_DYNAMIC_MINOR
|
255 Reserved for MISC_DYNAMIC_MINOR
|
||||||
|
|
||||||
|
|||||||
@@ -303,15 +303,6 @@ Who: Johannes Berg <johannes@sipsolutions.net>
|
|||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
What: CONFIG_NF_CT_ACCT
|
|
||||||
When: 2.6.29
|
|
||||||
Why: Accounting can now be enabled/disabled without kernel recompilation.
|
|
||||||
Currently used only to set a default value for a feature that is also
|
|
||||||
controlled by a kernel/module/sysfs/sysctl parameter.
|
|
||||||
Who: Krzysztof Piotr Oledzki <ole@ans.pl>
|
|
||||||
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
What: sysfs ui for changing p4-clockmod parameters
|
What: sysfs ui for changing p4-clockmod parameters
|
||||||
When: September 2009
|
When: September 2009
|
||||||
Why: See commits 129f8ae9b1b5be94517da76009ea956e89104ce8 and
|
Why: See commits 129f8ae9b1b5be94517da76009ea956e89104ce8 and
|
||||||
@@ -646,3 +637,13 @@ Who: Thomas Gleixner <tglx@linutronix.de>
|
|||||||
|
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
|
What: old ieee1394 subsystem (CONFIG_IEEE1394)
|
||||||
|
When: 2.6.37
|
||||||
|
Files: drivers/ieee1394/ except init_ohci1394_dma.c
|
||||||
|
Why: superseded by drivers/firewire/ (CONFIG_FIREWIRE) which offers more
|
||||||
|
features, better performance, and better security, all with smaller
|
||||||
|
and more modern code base
|
||||||
|
Who: Stefan Richter <stefanr@s5r6.in-berlin.de>
|
||||||
|
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -380,7 +380,7 @@ prototypes:
|
|||||||
int (*open) (struct inode *, struct file *);
|
int (*open) (struct inode *, struct file *);
|
||||||
int (*flush) (struct file *);
|
int (*flush) (struct file *);
|
||||||
int (*release) (struct inode *, struct file *);
|
int (*release) (struct inode *, struct file *);
|
||||||
int (*fsync) (struct file *, struct dentry *, int datasync);
|
int (*fsync) (struct file *, int datasync);
|
||||||
int (*aio_fsync) (struct kiocb *, int datasync);
|
int (*aio_fsync) (struct kiocb *, int datasync);
|
||||||
int (*fasync) (int, struct file *, int);
|
int (*fasync) (int, struct file *, int);
|
||||||
int (*lock) (struct file *, int, struct file_lock *);
|
int (*lock) (struct file *, int, struct file_lock *);
|
||||||
@@ -429,8 +429,9 @@ check_flags: no
|
|||||||
implementations. If your fs is not using generic_file_llseek, you
|
implementations. If your fs is not using generic_file_llseek, you
|
||||||
need to acquire and release the appropriate locks in your ->llseek().
|
need to acquire and release the appropriate locks in your ->llseek().
|
||||||
For many filesystems, it is probably safe to acquire the inode
|
For many filesystems, it is probably safe to acquire the inode
|
||||||
mutex. Note some filesystems (i.e. remote ones) provide no
|
mutex or just to use i_size_read() instead.
|
||||||
protection for i_size so you will need to use the BKL.
|
Note: this does not protect the file->f_pos against concurrent modifications
|
||||||
|
since this is something the userspace has to take care about.
|
||||||
|
|
||||||
Note: ext2_release() was *the* source of contention on fs-intensive
|
Note: ext2_release() was *the* source of contention on fs-intensive
|
||||||
loads and dropping BKL on ->release() helps to get rid of that (we still
|
loads and dropping BKL on ->release() helps to get rid of that (we still
|
||||||
|
|||||||
@@ -59,8 +59,19 @@ commit=nrsec (*) Ext3 can be told to sync all its data and metadata
|
|||||||
Setting it to very large values will improve
|
Setting it to very large values will improve
|
||||||
performance.
|
performance.
|
||||||
|
|
||||||
barrier=1 This enables/disables barriers. barrier=0 disables
|
barrier=<0(*)|1> This enables/disables the use of write barriers in
|
||||||
it, barrier=1 enables it.
|
barrier the jbd code. barrier=0 disables, barrier=1 enables.
|
||||||
|
nobarrier (*) This also requires an IO stack which can support
|
||||||
|
barriers, and if jbd gets an error on a barrier
|
||||||
|
write, it will disable again with a warning.
|
||||||
|
Write barriers enforce proper on-disk ordering
|
||||||
|
of journal commits, making volatile disk write caches
|
||||||
|
safe to use, at some performance penalty. If
|
||||||
|
your disks are battery-backed in one way or another,
|
||||||
|
disabling barriers may safely improve performance.
|
||||||
|
The mount options "barrier" and "nobarrier" can
|
||||||
|
also be used to enable or disable barriers, for
|
||||||
|
consistency with other ext3 mount options.
|
||||||
|
|
||||||
orlov (*) This enables the new Orlov block allocator. It is
|
orlov (*) This enables the new Orlov block allocator. It is
|
||||||
enabled by default.
|
enabled by default.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
Global File System
|
Global File System
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
http://sources.redhat.com/cluster/
|
http://sources.redhat.com/cluster/wiki/
|
||||||
|
|
||||||
GFS is a cluster file system. It allows a cluster of computers to
|
GFS is a cluster file system. It allows a cluster of computers to
|
||||||
simultaneously use a block device that is shared between them (with FC,
|
simultaneously use a block device that is shared between them (with FC,
|
||||||
@@ -36,11 +36,11 @@ GFS2 is not on-disk compatible with previous versions of GFS, but it
|
|||||||
is pretty close.
|
is pretty close.
|
||||||
|
|
||||||
The following man pages can be found at the URL above:
|
The following man pages can be found at the URL above:
|
||||||
fsck.gfs2 to repair a filesystem
|
fsck.gfs2 to repair a filesystem
|
||||||
gfs2_grow to expand a filesystem online
|
gfs2_grow to expand a filesystem online
|
||||||
gfs2_jadd to add journals to a filesystem online
|
gfs2_jadd to add journals to a filesystem online
|
||||||
gfs2_tool to manipulate, examine and tune a filesystem
|
gfs2_tool to manipulate, examine and tune a filesystem
|
||||||
gfs2_quota to examine and change quota values in a filesystem
|
gfs2_quota to examine and change quota values in a filesystem
|
||||||
gfs2_convert to convert a gfs filesystem to gfs2 in-place
|
gfs2_convert to convert a gfs filesystem to gfs2 in-place
|
||||||
mount.gfs2 to help mount(8) mount a filesystem
|
mount.gfs2 to help mount(8) mount a filesystem
|
||||||
mkfs.gfs2 to make a filesystem
|
mkfs.gfs2 to make a filesystem
|
||||||
|
|||||||
@@ -124,6 +124,8 @@ ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>
|
|||||||
|
|
||||||
<hostname> Name of the client. May be supplied by autoconfiguration,
|
<hostname> Name of the client. May be supplied by autoconfiguration,
|
||||||
but its absence will not trigger autoconfiguration.
|
but its absence will not trigger autoconfiguration.
|
||||||
|
If specified and DHCP is used, the user provided hostname will
|
||||||
|
be carried in the DHCP request to hopefully update DNS record.
|
||||||
|
|
||||||
Default: Client IP address is used in ASCII notation.
|
Default: Client IP address is used in ASCII notation.
|
||||||
|
|
||||||
|
|||||||
@@ -50,8 +50,8 @@ NILFS2 supports the following mount options:
|
|||||||
(*) == default
|
(*) == default
|
||||||
|
|
||||||
nobarrier Disables barriers.
|
nobarrier Disables barriers.
|
||||||
errors=continue(*) Keep going on a filesystem error.
|
errors=continue Keep going on a filesystem error.
|
||||||
errors=remount-ro Remount the filesystem read-only on an error.
|
errors=remount-ro(*) Remount the filesystem read-only on an error.
|
||||||
errors=panic Panic and halt the machine if an error occurs.
|
errors=panic Panic and halt the machine if an error occurs.
|
||||||
cp=n Specify the checkpoint-number of the snapshot to be
|
cp=n Specify the checkpoint-number of the snapshot to be
|
||||||
mounted. Checkpoints and snapshots are listed by lscp
|
mounted. Checkpoints and snapshots are listed by lscp
|
||||||
|
|||||||
@@ -80,3 +80,10 @@ user_xattr (*) Enables Extended User Attributes.
|
|||||||
nouser_xattr Disables Extended User Attributes.
|
nouser_xattr Disables Extended User Attributes.
|
||||||
acl Enables POSIX Access Control Lists support.
|
acl Enables POSIX Access Control Lists support.
|
||||||
noacl (*) Disables POSIX Access Control Lists support.
|
noacl (*) Disables POSIX Access Control Lists support.
|
||||||
|
resv_level=2 (*) Set how agressive allocation reservations will be.
|
||||||
|
Valid values are between 0 (reservations off) to 8
|
||||||
|
(maximum space for reservations).
|
||||||
|
dir_resv_level= (*) By default, directory reservations will scale with file
|
||||||
|
reservations - users should rarely need to change this
|
||||||
|
value. If allocation reservations are turned off, this
|
||||||
|
option will have no effect.
|
||||||
|
|||||||
@@ -38,7 +38,8 @@ Hard link support: yes no
|
|||||||
Real inode numbers: yes no
|
Real inode numbers: yes no
|
||||||
32-bit uids/gids: yes no
|
32-bit uids/gids: yes no
|
||||||
File creation time: yes no
|
File creation time: yes no
|
||||||
Xattr and ACL support: no no
|
Xattr support: yes no
|
||||||
|
ACL support: no no
|
||||||
|
|
||||||
Squashfs compresses data, inodes and directories. In addition, inode and
|
Squashfs compresses data, inodes and directories. In addition, inode and
|
||||||
directory data are highly compacted, and packed on byte boundaries. Each
|
directory data are highly compacted, and packed on byte boundaries. Each
|
||||||
@@ -58,7 +59,7 @@ obtained from this site also.
|
|||||||
3. SQUASHFS FILESYSTEM DESIGN
|
3. SQUASHFS FILESYSTEM DESIGN
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
A squashfs filesystem consists of seven parts, packed together on a byte
|
A squashfs filesystem consists of a maximum of eight parts, packed together on a byte
|
||||||
alignment:
|
alignment:
|
||||||
|
|
||||||
---------------
|
---------------
|
||||||
@@ -80,6 +81,9 @@ alignment:
|
|||||||
|---------------|
|
|---------------|
|
||||||
| uid/gid |
|
| uid/gid |
|
||||||
| lookup table |
|
| lookup table |
|
||||||
|
|---------------|
|
||||||
|
| xattr |
|
||||||
|
| table |
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
Compressed data blocks are written to the filesystem as files are read from
|
Compressed data blocks are written to the filesystem as files are read from
|
||||||
@@ -192,6 +196,26 @@ This table is stored compressed into metadata blocks. A second index table is
|
|||||||
used to locate these. This second index table for speed of access (and because
|
used to locate these. This second index table for speed of access (and because
|
||||||
it is small) is read at mount time and cached in memory.
|
it is small) is read at mount time and cached in memory.
|
||||||
|
|
||||||
|
3.7 Xattr table
|
||||||
|
---------------
|
||||||
|
|
||||||
|
The xattr table contains extended attributes for each inode. The xattrs
|
||||||
|
for each inode are stored in a list, each list entry containing a type,
|
||||||
|
name and value field. The type field encodes the xattr prefix
|
||||||
|
("user.", "trusted." etc) and it also encodes how the name/value fields
|
||||||
|
should be interpreted. Currently the type indicates whether the value
|
||||||
|
is stored inline (in which case the value field contains the xattr value),
|
||||||
|
or if it is stored out of line (in which case the value field stores a
|
||||||
|
reference to where the actual value is stored). This allows large values
|
||||||
|
to be stored out of line improving scanning and lookup performance and it
|
||||||
|
also allows values to be de-duplicated, the value being stored once, and
|
||||||
|
all other occurences holding an out of line reference to that value.
|
||||||
|
|
||||||
|
The xattr lists are packed into compressed 8K metadata blocks.
|
||||||
|
To reduce overhead in inodes, rather than storing the on-disk
|
||||||
|
location of the xattr list inside each inode, a 32-bit xattr id
|
||||||
|
is stored. This xattr id is mapped into the location of the xattr
|
||||||
|
list using a second xattr id lookup table.
|
||||||
|
|
||||||
4. TODOS AND OUTSTANDING ISSUES
|
4. TODOS AND OUTSTANDING ISSUES
|
||||||
-------------------------------
|
-------------------------------
|
||||||
@@ -199,9 +223,7 @@ it is small) is read at mount time and cached in memory.
|
|||||||
4.1 Todo list
|
4.1 Todo list
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
Implement Xattr and ACL support. The Squashfs 4.0 filesystem layout has hooks
|
Implement ACL support.
|
||||||
for these but the code has not been written. Once the code has been written
|
|
||||||
the existing layout should not require modification.
|
|
||||||
|
|
||||||
4.2 Squashfs internal cache
|
4.2 Squashfs internal cache
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|||||||
42
Documentation/filesystems/sysfs-tagging.txt
Normal file
42
Documentation/filesystems/sysfs-tagging.txt
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
Sysfs tagging
|
||||||
|
-------------
|
||||||
|
|
||||||
|
(Taken almost verbatim from Eric Biederman's netns tagging patch
|
||||||
|
commit msg)
|
||||||
|
|
||||||
|
The problem. Network devices show up in sysfs and with the network
|
||||||
|
namespace active multiple devices with the same name can show up in
|
||||||
|
the same directory, ouch!
|
||||||
|
|
||||||
|
To avoid that problem and allow existing applications in network
|
||||||
|
namespaces to see the same interface that is currently presented in
|
||||||
|
sysfs, sysfs now has tagging directory support.
|
||||||
|
|
||||||
|
By using the network namespace pointers as tags to separate out the
|
||||||
|
the sysfs directory entries we ensure that we don't have conflicts
|
||||||
|
in the directories and applications only see a limited set of
|
||||||
|
the network devices.
|
||||||
|
|
||||||
|
Each sysfs directory entry may be tagged with zero or one
|
||||||
|
namespaces. A sysfs_dirent is augmented with a void *s_ns. If a
|
||||||
|
directory entry is tagged, then sysfs_dirent->s_flags will have a
|
||||||
|
flag between KOBJ_NS_TYPE_NONE and KOBJ_NS_TYPES, and s_ns will
|
||||||
|
point to the namespace to which it belongs.
|
||||||
|
|
||||||
|
Each sysfs superblock's sysfs_super_info contains an array void
|
||||||
|
*ns[KOBJ_NS_TYPES]. When a a task in a tagging namespace
|
||||||
|
kobj_nstype first mounts sysfs, a new superblock is created. It
|
||||||
|
will be differentiated from other sysfs mounts by having its
|
||||||
|
s_fs_info->ns[kobj_nstype] set to the new namespace. Note that
|
||||||
|
through bind mounting and mounts propagation, a task can easily view
|
||||||
|
the contents of other namespaces' sysfs mounts. Therefore, when a
|
||||||
|
namespace exits, it will call kobj_ns_exit() to invalidate any
|
||||||
|
sysfs_dirent->s_ns pointers pointing to it.
|
||||||
|
|
||||||
|
Users of this interface:
|
||||||
|
- define a type in the kobj_ns_type enumeration.
|
||||||
|
- call kobj_ns_type_register() with its kobj_ns_type_operations which has
|
||||||
|
- current_ns() which returns current's namespace
|
||||||
|
- netlink_ns() which returns a socket's namespace
|
||||||
|
- initial_ns() which returns the initial namesapce
|
||||||
|
- call kobj_ns_exit() when an individual tag is no longer valid
|
||||||
@@ -94,11 +94,19 @@ NodeList format is a comma-separated list of decimal numbers and ranges,
|
|||||||
a range being two hyphen-separated decimal numbers, the smallest and
|
a range being two hyphen-separated decimal numbers, the smallest and
|
||||||
largest node numbers in the range. For example, mpol=bind:0-3,5,7,9-15
|
largest node numbers in the range. For example, mpol=bind:0-3,5,7,9-15
|
||||||
|
|
||||||
|
A memory policy with a valid NodeList will be saved, as specified, for
|
||||||
|
use at file creation time. When a task allocates a file in the file
|
||||||
|
system, the mount option memory policy will be applied with a NodeList,
|
||||||
|
if any, modified by the calling task's cpuset constraints
|
||||||
|
[See Documentation/cgroups/cpusets.txt] and any optional flags, listed
|
||||||
|
below. If the resulting NodeLists is the empty set, the effective memory
|
||||||
|
policy for the file will revert to "default" policy.
|
||||||
|
|
||||||
NUMA memory allocation policies have optional flags that can be used in
|
NUMA memory allocation policies have optional flags that can be used in
|
||||||
conjunction with their modes. These optional flags can be specified
|
conjunction with their modes. These optional flags can be specified
|
||||||
when tmpfs is mounted by appending them to the mode before the NodeList.
|
when tmpfs is mounted by appending them to the mode before the NodeList.
|
||||||
See Documentation/vm/numa_memory_policy.txt for a list of all available
|
See Documentation/vm/numa_memory_policy.txt for a list of all available
|
||||||
memory allocation policy mode flags.
|
memory allocation policy mode flags and their effect on memory policy.
|
||||||
|
|
||||||
=static is equivalent to MPOL_F_STATIC_NODES
|
=static is equivalent to MPOL_F_STATIC_NODES
|
||||||
=relative is equivalent to MPOL_F_RELATIVE_NODES
|
=relative is equivalent to MPOL_F_RELATIVE_NODES
|
||||||
|
|||||||
@@ -401,11 +401,16 @@ otherwise noted.
|
|||||||
started might not be in the page cache at the end of the
|
started might not be in the page cache at the end of the
|
||||||
walk).
|
walk).
|
||||||
|
|
||||||
truncate: called by the VFS to change the size of a file. The
|
truncate: Deprecated. This will not be called if ->setsize is defined.
|
||||||
|
Called by the VFS to change the size of a file. The
|
||||||
i_size field of the inode is set to the desired size by the
|
i_size field of the inode is set to the desired size by the
|
||||||
VFS before this method is called. This method is called by
|
VFS before this method is called. This method is called by
|
||||||
the truncate(2) system call and related functionality.
|
the truncate(2) system call and related functionality.
|
||||||
|
|
||||||
|
Note: ->truncate and vmtruncate are deprecated. Do not add new
|
||||||
|
instances/calls of these. Filesystems should be converted to do their
|
||||||
|
truncate sequence via ->setattr().
|
||||||
|
|
||||||
permission: called by the VFS to check for access rights on a POSIX-like
|
permission: called by the VFS to check for access rights on a POSIX-like
|
||||||
filesystem.
|
filesystem.
|
||||||
|
|
||||||
@@ -729,7 +734,7 @@ struct file_operations {
|
|||||||
int (*open) (struct inode *, struct file *);
|
int (*open) (struct inode *, struct file *);
|
||||||
int (*flush) (struct file *);
|
int (*flush) (struct file *);
|
||||||
int (*release) (struct inode *, struct file *);
|
int (*release) (struct inode *, struct file *);
|
||||||
int (*fsync) (struct file *, struct dentry *, int datasync);
|
int (*fsync) (struct file *, int datasync);
|
||||||
int (*aio_fsync) (struct kiocb *, int datasync);
|
int (*aio_fsync) (struct kiocb *, int datasync);
|
||||||
int (*fasync) (int, struct file *, int);
|
int (*fasync) (int, struct file *, int);
|
||||||
int (*lock) (struct file *, int, struct file_lock *);
|
int (*lock) (struct file *, int, struct file_lock *);
|
||||||
|
|||||||
816
Documentation/filesystems/xfs-delayed-logging-design.txt
Normal file
816
Documentation/filesystems/xfs-delayed-logging-design.txt
Normal file
@@ -0,0 +1,816 @@
|
|||||||
|
XFS Delayed Logging Design
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
Introduction to Re-logging in XFS
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
XFS logging is a combination of logical and physical logging. Some objects,
|
||||||
|
such as inodes and dquots, are logged in logical format where the details
|
||||||
|
logged are made up of the changes to in-core structures rather than on-disk
|
||||||
|
structures. Other objects - typically buffers - have their physical changes
|
||||||
|
logged. The reason for these differences is to reduce the amount of log space
|
||||||
|
required for objects that are frequently logged. Some parts of inodes are more
|
||||||
|
frequently logged than others, and inodes are typically more frequently logged
|
||||||
|
than any other object (except maybe the superblock buffer) so keeping the
|
||||||
|
amount of metadata logged low is of prime importance.
|
||||||
|
|
||||||
|
The reason that this is such a concern is that XFS allows multiple separate
|
||||||
|
modifications to a single object to be carried in the log at any given time.
|
||||||
|
This allows the log to avoid needing to flush each change to disk before
|
||||||
|
recording a new change to the object. XFS does this via a method called
|
||||||
|
"re-logging". Conceptually, this is quite simple - all it requires is that any
|
||||||
|
new change to the object is recorded with a *new copy* of all the existing
|
||||||
|
changes in the new transaction that is written to the log.
|
||||||
|
|
||||||
|
That is, if we have a sequence of changes A through to F, and the object was
|
||||||
|
written to disk after change D, we would see in the log the following series
|
||||||
|
of transactions, their contents and the log sequence number (LSN) of the
|
||||||
|
transaction:
|
||||||
|
|
||||||
|
Transaction Contents LSN
|
||||||
|
A A X
|
||||||
|
B A+B X+n
|
||||||
|
C A+B+C X+n+m
|
||||||
|
D A+B+C+D X+n+m+o
|
||||||
|
<object written to disk>
|
||||||
|
E E Y (> X+n+m+o)
|
||||||
|
F E+F Yٍ+p
|
||||||
|
|
||||||
|
In other words, each time an object is relogged, the new transaction contains
|
||||||
|
the aggregation of all the previous changes currently held only in the log.
|
||||||
|
|
||||||
|
This relogging technique also allows objects to be moved forward in the log so
|
||||||
|
that an object being relogged does not prevent the tail of the log from ever
|
||||||
|
moving forward. This can be seen in the table above by the changing
|
||||||
|
(increasing) LSN of each subsquent transaction - the LSN is effectively a
|
||||||
|
direct encoding of the location in the log of the transaction.
|
||||||
|
|
||||||
|
This relogging is also used to implement long-running, multiple-commit
|
||||||
|
transactions. These transaction are known as rolling transactions, and require
|
||||||
|
a special log reservation known as a permanent transaction reservation. A
|
||||||
|
typical example of a rolling transaction is the removal of extents from an
|
||||||
|
inode which can only be done at a rate of two extents per transaction because
|
||||||
|
of reservation size limitations. Hence a rolling extent removal transaction
|
||||||
|
keeps relogging the inode and btree buffers as they get modified in each
|
||||||
|
removal operation. This keeps them moving forward in the log as the operation
|
||||||
|
progresses, ensuring that current operation never gets blocked by itself if the
|
||||||
|
log wraps around.
|
||||||
|
|
||||||
|
Hence it can be seen that the relogging operation is fundamental to the correct
|
||||||
|
working of the XFS journalling subsystem. From the above description, most
|
||||||
|
people should be able to see why the XFS metadata operations writes so much to
|
||||||
|
the log - repeated operations to the same objects write the same changes to
|
||||||
|
the log over and over again. Worse is the fact that objects tend to get
|
||||||
|
dirtier as they get relogged, so each subsequent transaction is writing more
|
||||||
|
metadata into the log.
|
||||||
|
|
||||||
|
Another feature of the XFS transaction subsystem is that most transactions are
|
||||||
|
asynchronous. That is, they don't commit to disk until either a log buffer is
|
||||||
|
filled (a log buffer can hold multiple transactions) or a synchronous operation
|
||||||
|
forces the log buffers holding the transactions to disk. This means that XFS is
|
||||||
|
doing aggregation of transactions in memory - batching them, if you like - to
|
||||||
|
minimise the impact of the log IO on transaction throughput.
|
||||||
|
|
||||||
|
The limitation on asynchronous transaction throughput is the number and size of
|
||||||
|
log buffers made available by the log manager. By default there are 8 log
|
||||||
|
buffers available and the size of each is 32kB - the size can be increased up
|
||||||
|
to 256kB by use of a mount option.
|
||||||
|
|
||||||
|
Effectively, this gives us the maximum bound of outstanding metadata changes
|
||||||
|
that can be made to the filesystem at any point in time - if all the log
|
||||||
|
buffers are full and under IO, then no more transactions can be committed until
|
||||||
|
the current batch completes. It is now common for a single current CPU core to
|
||||||
|
be to able to issue enough transactions to keep the log buffers full and under
|
||||||
|
IO permanently. Hence the XFS journalling subsystem can be considered to be IO
|
||||||
|
bound.
|
||||||
|
|
||||||
|
Delayed Logging: Concepts
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
The key thing to note about the asynchronous logging combined with the
|
||||||
|
relogging technique XFS uses is that we can be relogging changed objects
|
||||||
|
multiple times before they are committed to disk in the log buffers. If we
|
||||||
|
return to the previous relogging example, it is entirely possible that
|
||||||
|
transactions A through D are committed to disk in the same log buffer.
|
||||||
|
|
||||||
|
That is, a single log buffer may contain multiple copies of the same object,
|
||||||
|
but only one of those copies needs to be there - the last one "D", as it
|
||||||
|
contains all the changes from the previous changes. In other words, we have one
|
||||||
|
necessary copy in the log buffer, and three stale copies that are simply
|
||||||
|
wasting space. When we are doing repeated operations on the same set of
|
||||||
|
objects, these "stale objects" can be over 90% of the space used in the log
|
||||||
|
buffers. It is clear that reducing the number of stale objects written to the
|
||||||
|
log would greatly reduce the amount of metadata we write to the log, and this
|
||||||
|
is the fundamental goal of delayed logging.
|
||||||
|
|
||||||
|
From a conceptual point of view, XFS is already doing relogging in memory (where
|
||||||
|
memory == log buffer), only it is doing it extremely inefficiently. It is using
|
||||||
|
logical to physical formatting to do the relogging because there is no
|
||||||
|
infrastructure to keep track of logical changes in memory prior to physically
|
||||||
|
formatting the changes in a transaction to the log buffer. Hence we cannot avoid
|
||||||
|
accumulating stale objects in the log buffers.
|
||||||
|
|
||||||
|
Delayed logging is the name we've given to keeping and tracking transactional
|
||||||
|
changes to objects in memory outside the log buffer infrastructure. Because of
|
||||||
|
the relogging concept fundamental to the XFS journalling subsystem, this is
|
||||||
|
actually relatively easy to do - all the changes to logged items are already
|
||||||
|
tracked in the current infrastructure. The big problem is how to accumulate
|
||||||
|
them and get them to the log in a consistent, recoverable manner.
|
||||||
|
Describing the problems and how they have been solved is the focus of this
|
||||||
|
document.
|
||||||
|
|
||||||
|
One of the key changes that delayed logging makes to the operation of the
|
||||||
|
journalling subsystem is that it disassociates the amount of outstanding
|
||||||
|
metadata changes from the size and number of log buffers available. In other
|
||||||
|
words, instead of there only being a maximum of 2MB of transaction changes not
|
||||||
|
written to the log at any point in time, there may be a much greater amount
|
||||||
|
being accumulated in memory. Hence the potential for loss of metadata on a
|
||||||
|
crash is much greater than for the existing logging mechanism.
|
||||||
|
|
||||||
|
It should be noted that this does not change the guarantee that log recovery
|
||||||
|
will result in a consistent filesystem. What it does mean is that as far as the
|
||||||
|
recovered filesystem is concerned, there may be many thousands of transactions
|
||||||
|
that simply did not occur as a result of the crash. This makes it even more
|
||||||
|
important that applications that care about their data use fsync() where they
|
||||||
|
need to ensure application level data integrity is maintained.
|
||||||
|
|
||||||
|
It should be noted that delayed logging is not an innovative new concept that
|
||||||
|
warrants rigorous proofs to determine whether it is correct or not. The method
|
||||||
|
of accumulating changes in memory for some period before writing them to the
|
||||||
|
log is used effectively in many filesystems including ext3 and ext4. Hence
|
||||||
|
no time is spent in this document trying to convince the reader that the
|
||||||
|
concept is sound. Instead it is simply considered a "solved problem" and as
|
||||||
|
such implementing it in XFS is purely an exercise in software engineering.
|
||||||
|
|
||||||
|
The fundamental requirements for delayed logging in XFS are simple:
|
||||||
|
|
||||||
|
1. Reduce the amount of metadata written to the log by at least
|
||||||
|
an order of magnitude.
|
||||||
|
2. Supply sufficient statistics to validate Requirement #1.
|
||||||
|
3. Supply sufficient new tracing infrastructure to be able to debug
|
||||||
|
problems with the new code.
|
||||||
|
4. No on-disk format change (metadata or log format).
|
||||||
|
5. Enable and disable with a mount option.
|
||||||
|
6. No performance regressions for synchronous transaction workloads.
|
||||||
|
|
||||||
|
Delayed Logging: Design
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
Storing Changes
|
||||||
|
|
||||||
|
The problem with accumulating changes at a logical level (i.e. just using the
|
||||||
|
existing log item dirty region tracking) is that when it comes to writing the
|
||||||
|
changes to the log buffers, we need to ensure that the object we are formatting
|
||||||
|
is not changing while we do this. This requires locking the object to prevent
|
||||||
|
concurrent modification. Hence flushing the logical changes to the log would
|
||||||
|
require us to lock every object, format them, and then unlock them again.
|
||||||
|
|
||||||
|
This introduces lots of scope for deadlocks with transactions that are already
|
||||||
|
running. For example, a transaction has object A locked and modified, but needs
|
||||||
|
the delayed logging tracking lock to commit the transaction. However, the
|
||||||
|
flushing thread has the delayed logging tracking lock already held, and is
|
||||||
|
trying to get the lock on object A to flush it to the log buffer. This appears
|
||||||
|
to be an unsolvable deadlock condition, and it was solving this problem that
|
||||||
|
was the barrier to implementing delayed logging for so long.
|
||||||
|
|
||||||
|
The solution is relatively simple - it just took a long time to recognise it.
|
||||||
|
Put simply, the current logging code formats the changes to each item into an
|
||||||
|
vector array that points to the changed regions in the item. The log write code
|
||||||
|
simply copies the memory these vectors point to into the log buffer during
|
||||||
|
transaction commit while the item is locked in the transaction. Instead of
|
||||||
|
using the log buffer as the destination of the formatting code, we can use an
|
||||||
|
allocated memory buffer big enough to fit the formatted vector.
|
||||||
|
|
||||||
|
If we then copy the vector into the memory buffer and rewrite the vector to
|
||||||
|
point to the memory buffer rather than the object itself, we now have a copy of
|
||||||
|
the changes in a format that is compatible with the log buffer writing code.
|
||||||
|
that does not require us to lock the item to access. This formatting and
|
||||||
|
rewriting can all be done while the object is locked during transaction commit,
|
||||||
|
resulting in a vector that is transactionally consistent and can be accessed
|
||||||
|
without needing to lock the owning item.
|
||||||
|
|
||||||
|
Hence we avoid the need to lock items when we need to flush outstanding
|
||||||
|
asynchronous transactions to the log. The differences between the existing
|
||||||
|
formatting method and the delayed logging formatting can be seen in the
|
||||||
|
diagram below.
|
||||||
|
|
||||||
|
Current format log vector:
|
||||||
|
|
||||||
|
Object +---------------------------------------------+
|
||||||
|
Vector 1 +----+
|
||||||
|
Vector 2 +----+
|
||||||
|
Vector 3 +----------+
|
||||||
|
|
||||||
|
After formatting:
|
||||||
|
|
||||||
|
Log Buffer +-V1-+-V2-+----V3----+
|
||||||
|
|
||||||
|
Delayed logging vector:
|
||||||
|
|
||||||
|
Object +---------------------------------------------+
|
||||||
|
Vector 1 +----+
|
||||||
|
Vector 2 +----+
|
||||||
|
Vector 3 +----------+
|
||||||
|
|
||||||
|
After formatting:
|
||||||
|
|
||||||
|
Memory Buffer +-V1-+-V2-+----V3----+
|
||||||
|
Vector 1 +----+
|
||||||
|
Vector 2 +----+
|
||||||
|
Vector 3 +----------+
|
||||||
|
|
||||||
|
The memory buffer and associated vector need to be passed as a single object,
|
||||||
|
but still need to be associated with the parent object so if the object is
|
||||||
|
relogged we can replace the current memory buffer with a new memory buffer that
|
||||||
|
contains the latest changes.
|
||||||
|
|
||||||
|
The reason for keeping the vector around after we've formatted the memory
|
||||||
|
buffer is to support splitting vectors across log buffer boundaries correctly.
|
||||||
|
If we don't keep the vector around, we do not know where the region boundaries
|
||||||
|
are in the item, so we'd need a new encapsulation method for regions in the log
|
||||||
|
buffer writing (i.e. double encapsulation). This would be an on-disk format
|
||||||
|
change and as such is not desirable. It also means we'd have to write the log
|
||||||
|
region headers in the formatting stage, which is problematic as there is per
|
||||||
|
region state that needs to be placed into the headers during the log write.
|
||||||
|
|
||||||
|
Hence we need to keep the vector, but by attaching the memory buffer to it and
|
||||||
|
rewriting the vector addresses to point at the memory buffer we end up with a
|
||||||
|
self-describing object that can be passed to the log buffer write code to be
|
||||||
|
handled in exactly the same manner as the existing log vectors are handled.
|
||||||
|
Hence we avoid needing a new on-disk format to handle items that have been
|
||||||
|
relogged in memory.
|
||||||
|
|
||||||
|
|
||||||
|
Tracking Changes
|
||||||
|
|
||||||
|
Now that we can record transactional changes in memory in a form that allows
|
||||||
|
them to be used without limitations, we need to be able to track and accumulate
|
||||||
|
them so that they can be written to the log at some later point in time. The
|
||||||
|
log item is the natural place to store this vector and buffer, and also makes sense
|
||||||
|
to be the object that is used to track committed objects as it will always
|
||||||
|
exist once the object has been included in a transaction.
|
||||||
|
|
||||||
|
The log item is already used to track the log items that have been written to
|
||||||
|
the log but not yet written to disk. Such log items are considered "active"
|
||||||
|
and as such are stored in the Active Item List (AIL) which is a LSN-ordered
|
||||||
|
double linked list. Items are inserted into this list during log buffer IO
|
||||||
|
completion, after which they are unpinned and can be written to disk. An object
|
||||||
|
that is in the AIL can be relogged, which causes the object to be pinned again
|
||||||
|
and then moved forward in the AIL when the log buffer IO completes for that
|
||||||
|
transaction.
|
||||||
|
|
||||||
|
Essentially, this shows that an item that is in the AIL can still be modified
|
||||||
|
and relogged, so any tracking must be separate to the AIL infrastructure. As
|
||||||
|
such, we cannot reuse the AIL list pointers for tracking committed items, nor
|
||||||
|
can we store state in any field that is protected by the AIL lock. Hence the
|
||||||
|
committed item tracking needs it's own locks, lists and state fields in the log
|
||||||
|
item.
|
||||||
|
|
||||||
|
Similar to the AIL, tracking of committed items is done through a new list
|
||||||
|
called the Committed Item List (CIL). The list tracks log items that have been
|
||||||
|
committed and have formatted memory buffers attached to them. It tracks objects
|
||||||
|
in transaction commit order, so when an object is relogged it is removed from
|
||||||
|
it's place in the list and re-inserted at the tail. This is entirely arbitrary
|
||||||
|
and done to make it easy for debugging - the last items in the list are the
|
||||||
|
ones that are most recently modified. Ordering of the CIL is not necessary for
|
||||||
|
transactional integrity (as discussed in the next section) so the ordering is
|
||||||
|
done for convenience/sanity of the developers.
|
||||||
|
|
||||||
|
|
||||||
|
Delayed Logging: Checkpoints
|
||||||
|
|
||||||
|
When we have a log synchronisation event, commonly known as a "log force",
|
||||||
|
all the items in the CIL must be written into the log via the log buffers.
|
||||||
|
We need to write these items in the order that they exist in the CIL, and they
|
||||||
|
need to be written as an atomic transaction. The need for all the objects to be
|
||||||
|
written as an atomic transaction comes from the requirements of relogging and
|
||||||
|
log replay - all the changes in all the objects in a given transaction must
|
||||||
|
either be completely replayed during log recovery, or not replayed at all. If
|
||||||
|
a transaction is not replayed because it is not complete in the log, then
|
||||||
|
no later transactions should be replayed, either.
|
||||||
|
|
||||||
|
To fulfill this requirement, we need to write the entire CIL in a single log
|
||||||
|
transaction. Fortunately, the XFS log code has no fixed limit on the size of a
|
||||||
|
transaction, nor does the log replay code. The only fundamental limit is that
|
||||||
|
the transaction cannot be larger than just under half the size of the log. The
|
||||||
|
reason for this limit is that to find the head and tail of the log, there must
|
||||||
|
be at least one complete transaction in the log at any given time. If a
|
||||||
|
transaction is larger than half the log, then there is the possibility that a
|
||||||
|
crash during the write of a such a transaction could partially overwrite the
|
||||||
|
only complete previous transaction in the log. This will result in a recovery
|
||||||
|
failure and an inconsistent filesystem and hence we must enforce the maximum
|
||||||
|
size of a checkpoint to be slightly less than a half the log.
|
||||||
|
|
||||||
|
Apart from this size requirement, a checkpoint transaction looks no different
|
||||||
|
to any other transaction - it contains a transaction header, a series of
|
||||||
|
formatted log items and a commit record at the tail. From a recovery
|
||||||
|
perspective, the checkpoint transaction is also no different - just a lot
|
||||||
|
bigger with a lot more items in it. The worst case effect of this is that we
|
||||||
|
might need to tune the recovery transaction object hash size.
|
||||||
|
|
||||||
|
Because the checkpoint is just another transaction and all the changes to log
|
||||||
|
items are stored as log vectors, we can use the existing log buffer writing
|
||||||
|
code to write the changes into the log. To do this efficiently, we need to
|
||||||
|
minimise the time we hold the CIL locked while writing the checkpoint
|
||||||
|
transaction. The current log write code enables us to do this easily with the
|
||||||
|
way it separates the writing of the transaction contents (the log vectors) from
|
||||||
|
the transaction commit record, but tracking this requires us to have a
|
||||||
|
per-checkpoint context that travels through the log write process through to
|
||||||
|
checkpoint completion.
|
||||||
|
|
||||||
|
Hence a checkpoint has a context that tracks the state of the current
|
||||||
|
checkpoint from initiation to checkpoint completion. A new context is initiated
|
||||||
|
at the same time a checkpoint transaction is started. That is, when we remove
|
||||||
|
all the current items from the CIL during a checkpoint operation, we move all
|
||||||
|
those changes into the current checkpoint context. We then initialise a new
|
||||||
|
context and attach that to the CIL for aggregation of new transactions.
|
||||||
|
|
||||||
|
This allows us to unlock the CIL immediately after transfer of all the
|
||||||
|
committed items and effectively allow new transactions to be issued while we
|
||||||
|
are formatting the checkpoint into the log. It also allows concurrent
|
||||||
|
checkpoints to be written into the log buffers in the case of log force heavy
|
||||||
|
workloads, just like the existing transaction commit code does. This, however,
|
||||||
|
requires that we strictly order the commit records in the log so that
|
||||||
|
checkpoint sequence order is maintained during log replay.
|
||||||
|
|
||||||
|
To ensure that we can be writing an item into a checkpoint transaction at
|
||||||
|
the same time another transaction modifies the item and inserts the log item
|
||||||
|
into the new CIL, then checkpoint transaction commit code cannot use log items
|
||||||
|
to store the list of log vectors that need to be written into the transaction.
|
||||||
|
Hence log vectors need to be able to be chained together to allow them to be
|
||||||
|
detatched from the log items. That is, when the CIL is flushed the memory
|
||||||
|
buffer and log vector attached to each log item needs to be attached to the
|
||||||
|
checkpoint context so that the log item can be released. In diagrammatic form,
|
||||||
|
the CIL would look like this before the flush:
|
||||||
|
|
||||||
|
CIL Head
|
||||||
|
|
|
||||||
|
V
|
||||||
|
Log Item <-> log vector 1 -> memory buffer
|
||||||
|
| -> vector array
|
||||||
|
V
|
||||||
|
Log Item <-> log vector 2 -> memory buffer
|
||||||
|
| -> vector array
|
||||||
|
V
|
||||||
|
......
|
||||||
|
|
|
||||||
|
V
|
||||||
|
Log Item <-> log vector N-1 -> memory buffer
|
||||||
|
| -> vector array
|
||||||
|
V
|
||||||
|
Log Item <-> log vector N -> memory buffer
|
||||||
|
-> vector array
|
||||||
|
|
||||||
|
And after the flush the CIL head is empty, and the checkpoint context log
|
||||||
|
vector list would look like:
|
||||||
|
|
||||||
|
Checkpoint Context
|
||||||
|
|
|
||||||
|
V
|
||||||
|
log vector 1 -> memory buffer
|
||||||
|
| -> vector array
|
||||||
|
| -> Log Item
|
||||||
|
V
|
||||||
|
log vector 2 -> memory buffer
|
||||||
|
| -> vector array
|
||||||
|
| -> Log Item
|
||||||
|
V
|
||||||
|
......
|
||||||
|
|
|
||||||
|
V
|
||||||
|
log vector N-1 -> memory buffer
|
||||||
|
| -> vector array
|
||||||
|
| -> Log Item
|
||||||
|
V
|
||||||
|
log vector N -> memory buffer
|
||||||
|
-> vector array
|
||||||
|
-> Log Item
|
||||||
|
|
||||||
|
Once this transfer is done, the CIL can be unlocked and new transactions can
|
||||||
|
start, while the checkpoint flush code works over the log vector chain to
|
||||||
|
commit the checkpoint.
|
||||||
|
|
||||||
|
Once the checkpoint is written into the log buffers, the checkpoint context is
|
||||||
|
attached to the log buffer that the commit record was written to along with a
|
||||||
|
completion callback. Log IO completion will call that callback, which can then
|
||||||
|
run transaction committed processing for the log items (i.e. insert into AIL
|
||||||
|
and unpin) in the log vector chain and then free the log vector chain and
|
||||||
|
checkpoint context.
|
||||||
|
|
||||||
|
Discussion Point: I am uncertain as to whether the log item is the most
|
||||||
|
efficient way to track vectors, even though it seems like the natural way to do
|
||||||
|
it. The fact that we walk the log items (in the CIL) just to chain the log
|
||||||
|
vectors and break the link between the log item and the log vector means that
|
||||||
|
we take a cache line hit for the log item list modification, then another for
|
||||||
|
the log vector chaining. If we track by the log vectors, then we only need to
|
||||||
|
break the link between the log item and the log vector, which means we should
|
||||||
|
dirty only the log item cachelines. Normally I wouldn't be concerned about one
|
||||||
|
vs two dirty cachelines except for the fact I've seen upwards of 80,000 log
|
||||||
|
vectors in one checkpoint transaction. I'd guess this is a "measure and
|
||||||
|
compare" situation that can be done after a working and reviewed implementation
|
||||||
|
is in the dev tree....
|
||||||
|
|
||||||
|
Delayed Logging: Checkpoint Sequencing
|
||||||
|
|
||||||
|
One of the key aspects of the XFS transaction subsystem is that it tags
|
||||||
|
committed transactions with the log sequence number of the transaction commit.
|
||||||
|
This allows transactions to be issued asynchronously even though there may be
|
||||||
|
future operations that cannot be completed until that transaction is fully
|
||||||
|
committed to the log. In the rare case that a dependent operation occurs (e.g.
|
||||||
|
re-using a freed metadata extent for a data extent), a special, optimised log
|
||||||
|
force can be issued to force the dependent transaction to disk immediately.
|
||||||
|
|
||||||
|
To do this, transactions need to record the LSN of the commit record of the
|
||||||
|
transaction. This LSN comes directly from the log buffer the transaction is
|
||||||
|
written into. While this works just fine for the existing transaction
|
||||||
|
mechanism, it does not work for delayed logging because transactions are not
|
||||||
|
written directly into the log buffers. Hence some other method of sequencing
|
||||||
|
transactions is required.
|
||||||
|
|
||||||
|
As discussed in the checkpoint section, delayed logging uses per-checkpoint
|
||||||
|
contexts, and as such it is simple to assign a sequence number to each
|
||||||
|
checkpoint. Because the switching of checkpoint contexts must be done
|
||||||
|
atomically, it is simple to ensure that each new context has a monotonically
|
||||||
|
increasing sequence number assigned to it without the need for an external
|
||||||
|
atomic counter - we can just take the current context sequence number and add
|
||||||
|
one to it for the new context.
|
||||||
|
|
||||||
|
Then, instead of assigning a log buffer LSN to the transaction commit LSN
|
||||||
|
during the commit, we can assign the current checkpoint sequence. This allows
|
||||||
|
operations that track transactions that have not yet completed know what
|
||||||
|
checkpoint sequence needs to be committed before they can continue. As a
|
||||||
|
result, the code that forces the log to a specific LSN now needs to ensure that
|
||||||
|
the log forces to a specific checkpoint.
|
||||||
|
|
||||||
|
To ensure that we can do this, we need to track all the checkpoint contexts
|
||||||
|
that are currently committing to the log. When we flush a checkpoint, the
|
||||||
|
context gets added to a "committing" list which can be searched. When a
|
||||||
|
checkpoint commit completes, it is removed from the committing list. Because
|
||||||
|
the checkpoint context records the LSN of the commit record for the checkpoint,
|
||||||
|
we can also wait on the log buffer that contains the commit record, thereby
|
||||||
|
using the existing log force mechanisms to execute synchronous forces.
|
||||||
|
|
||||||
|
It should be noted that the synchronous forces may need to be extended with
|
||||||
|
mitigation algorithms similar to the current log buffer code to allow
|
||||||
|
aggregation of multiple synchronous transactions if there are already
|
||||||
|
synchronous transactions being flushed. Investigation of the performance of the
|
||||||
|
current design is needed before making any decisions here.
|
||||||
|
|
||||||
|
The main concern with log forces is to ensure that all the previous checkpoints
|
||||||
|
are also committed to disk before the one we need to wait for. Therefore we
|
||||||
|
need to check that all the prior contexts in the committing list are also
|
||||||
|
complete before waiting on the one we need to complete. We do this
|
||||||
|
synchronisation in the log force code so that we don't need to wait anywhere
|
||||||
|
else for such serialisation - it only matters when we do a log force.
|
||||||
|
|
||||||
|
The only remaining complexity is that a log force now also has to handle the
|
||||||
|
case where the forcing sequence number is the same as the current context. That
|
||||||
|
is, we need to flush the CIL and potentially wait for it to complete. This is a
|
||||||
|
simple addition to the existing log forcing code to check the sequence numbers
|
||||||
|
and push if required. Indeed, placing the current sequence checkpoint flush in
|
||||||
|
the log force code enables the current mechanism for issuing synchronous
|
||||||
|
transactions to remain untouched (i.e. commit an asynchronous transaction, then
|
||||||
|
force the log at the LSN of that transaction) and so the higher level code
|
||||||
|
behaves the same regardless of whether delayed logging is being used or not.
|
||||||
|
|
||||||
|
Delayed Logging: Checkpoint Log Space Accounting
|
||||||
|
|
||||||
|
The big issue for a checkpoint transaction is the log space reservation for the
|
||||||
|
transaction. We don't know how big a checkpoint transaction is going to be
|
||||||
|
ahead of time, nor how many log buffers it will take to write out, nor the
|
||||||
|
number of split log vector regions are going to be used. We can track the
|
||||||
|
amount of log space required as we add items to the commit item list, but we
|
||||||
|
still need to reserve the space in the log for the checkpoint.
|
||||||
|
|
||||||
|
A typical transaction reserves enough space in the log for the worst case space
|
||||||
|
usage of the transaction. The reservation accounts for log record headers,
|
||||||
|
transaction and region headers, headers for split regions, buffer tail padding,
|
||||||
|
etc. as well as the actual space for all the changed metadata in the
|
||||||
|
transaction. While some of this is fixed overhead, much of it is dependent on
|
||||||
|
the size of the transaction and the number of regions being logged (the number
|
||||||
|
of log vectors in the transaction).
|
||||||
|
|
||||||
|
An example of the differences would be logging directory changes versus logging
|
||||||
|
inode changes. If you modify lots of inode cores (e.g. chmod -R g+w *), then
|
||||||
|
there are lots of transactions that only contain an inode core and an inode log
|
||||||
|
format structure. That is, two vectors totaling roughly 150 bytes. If we modify
|
||||||
|
10,000 inodes, we have about 1.5MB of metadata to write in 20,000 vectors. Each
|
||||||
|
vector is 12 bytes, so the total to be logged is approximately 1.75MB. In
|
||||||
|
comparison, if we are logging full directory buffers, they are typically 4KB
|
||||||
|
each, so we in 1.5MB of directory buffers we'd have roughly 400 buffers and a
|
||||||
|
buffer format structure for each buffer - roughly 800 vectors or 1.51MB total
|
||||||
|
space. From this, it should be obvious that a static log space reservation is
|
||||||
|
not particularly flexible and is difficult to select the "optimal value" for
|
||||||
|
all workloads.
|
||||||
|
|
||||||
|
Further, if we are going to use a static reservation, which bit of the entire
|
||||||
|
reservation does it cover? We account for space used by the transaction
|
||||||
|
reservation by tracking the space currently used by the object in the CIL and
|
||||||
|
then calculating the increase or decrease in space used as the object is
|
||||||
|
relogged. This allows for a checkpoint reservation to only have to account for
|
||||||
|
log buffer metadata used such as log header records.
|
||||||
|
|
||||||
|
However, even using a static reservation for just the log metadata is
|
||||||
|
problematic. Typically log record headers use at least 16KB of log space per
|
||||||
|
1MB of log space consumed (512 bytes per 32k) and the reservation needs to be
|
||||||
|
large enough to handle arbitrary sized checkpoint transactions. This
|
||||||
|
reservation needs to be made before the checkpoint is started, and we need to
|
||||||
|
be able to reserve the space without sleeping. For a 8MB checkpoint, we need a
|
||||||
|
reservation of around 150KB, which is a non-trivial amount of space.
|
||||||
|
|
||||||
|
A static reservation needs to manipulate the log grant counters - we can take a
|
||||||
|
permanent reservation on the space, but we still need to make sure we refresh
|
||||||
|
the write reservation (the actual space available to the transaction) after
|
||||||
|
every checkpoint transaction completion. Unfortunately, if this space is not
|
||||||
|
available when required, then the regrant code will sleep waiting for it.
|
||||||
|
|
||||||
|
The problem with this is that it can lead to deadlocks as we may need to commit
|
||||||
|
checkpoints to be able to free up log space (refer back to the description of
|
||||||
|
rolling transactions for an example of this). Hence we *must* always have
|
||||||
|
space available in the log if we are to use static reservations, and that is
|
||||||
|
very difficult and complex to arrange. It is possible to do, but there is a
|
||||||
|
simpler way.
|
||||||
|
|
||||||
|
The simpler way of doing this is tracking the entire log space used by the
|
||||||
|
items in the CIL and using this to dynamically calculate the amount of log
|
||||||
|
space required by the log metadata. If this log metadata space changes as a
|
||||||
|
result of a transaction commit inserting a new memory buffer into the CIL, then
|
||||||
|
the difference in space required is removed from the transaction that causes
|
||||||
|
the change. Transactions at this level will *always* have enough space
|
||||||
|
available in their reservation for this as they have already reserved the
|
||||||
|
maximal amount of log metadata space they require, and such a delta reservation
|
||||||
|
will always be less than or equal to the maximal amount in the reservation.
|
||||||
|
|
||||||
|
Hence we can grow the checkpoint transaction reservation dynamically as items
|
||||||
|
are added to the CIL and avoid the need for reserving and regranting log space
|
||||||
|
up front. This avoids deadlocks and removes a blocking point from the
|
||||||
|
checkpoint flush code.
|
||||||
|
|
||||||
|
As mentioned early, transactions can't grow to more than half the size of the
|
||||||
|
log. Hence as part of the reservation growing, we need to also check the size
|
||||||
|
of the reservation against the maximum allowed transaction size. If we reach
|
||||||
|
the maximum threshold, we need to push the CIL to the log. This is effectively
|
||||||
|
a "background flush" and is done on demand. This is identical to
|
||||||
|
a CIL push triggered by a log force, only that there is no waiting for the
|
||||||
|
checkpoint commit to complete. This background push is checked and executed by
|
||||||
|
transaction commit code.
|
||||||
|
|
||||||
|
If the transaction subsystem goes idle while we still have items in the CIL,
|
||||||
|
they will be flushed by the periodic log force issued by the xfssyncd. This log
|
||||||
|
force will push the CIL to disk, and if the transaction subsystem stays idle,
|
||||||
|
allow the idle log to be covered (effectively marked clean) in exactly the same
|
||||||
|
manner that is done for the existing logging method. A discussion point is
|
||||||
|
whether this log force needs to be done more frequently than the current rate
|
||||||
|
which is once every 30s.
|
||||||
|
|
||||||
|
|
||||||
|
Delayed Logging: Log Item Pinning
|
||||||
|
|
||||||
|
Currently log items are pinned during transaction commit while the items are
|
||||||
|
still locked. This happens just after the items are formatted, though it could
|
||||||
|
be done any time before the items are unlocked. The result of this mechanism is
|
||||||
|
that items get pinned once for every transaction that is committed to the log
|
||||||
|
buffers. Hence items that are relogged in the log buffers will have a pin count
|
||||||
|
for every outstanding transaction they were dirtied in. When each of these
|
||||||
|
transactions is completed, they will unpin the item once. As a result, the item
|
||||||
|
only becomes unpinned when all the transactions complete and there are no
|
||||||
|
pending transactions. Thus the pinning and unpinning of a log item is symmetric
|
||||||
|
as there is a 1:1 relationship with transaction commit and log item completion.
|
||||||
|
|
||||||
|
For delayed logging, however, we have an assymetric transaction commit to
|
||||||
|
completion relationship. Every time an object is relogged in the CIL it goes
|
||||||
|
through the commit process without a corresponding completion being registered.
|
||||||
|
That is, we now have a many-to-one relationship between transaction commit and
|
||||||
|
log item completion. The result of this is that pinning and unpinning of the
|
||||||
|
log items becomes unbalanced if we retain the "pin on transaction commit, unpin
|
||||||
|
on transaction completion" model.
|
||||||
|
|
||||||
|
To keep pin/unpin symmetry, the algorithm needs to change to a "pin on
|
||||||
|
insertion into the CIL, unpin on checkpoint completion". In other words, the
|
||||||
|
pinning and unpinning becomes symmetric around a checkpoint context. We have to
|
||||||
|
pin the object the first time it is inserted into the CIL - if it is already in
|
||||||
|
the CIL during a transaction commit, then we do not pin it again. Because there
|
||||||
|
can be multiple outstanding checkpoint contexts, we can still see elevated pin
|
||||||
|
counts, but as each checkpoint completes the pin count will retain the correct
|
||||||
|
value according to it's context.
|
||||||
|
|
||||||
|
Just to make matters more slightly more complex, this checkpoint level context
|
||||||
|
for the pin count means that the pinning of an item must take place under the
|
||||||
|
CIL commit/flush lock. If we pin the object outside this lock, we cannot
|
||||||
|
guarantee which context the pin count is associated with. This is because of
|
||||||
|
the fact pinning the item is dependent on whether the item is present in the
|
||||||
|
current CIL or not. If we don't pin the CIL first before we check and pin the
|
||||||
|
object, we have a race with CIL being flushed between the check and the pin
|
||||||
|
(or not pinning, as the case may be). Hence we must hold the CIL flush/commit
|
||||||
|
lock to guarantee that we pin the items correctly.
|
||||||
|
|
||||||
|
Delayed Logging: Concurrent Scalability
|
||||||
|
|
||||||
|
A fundamental requirement for the CIL is that accesses through transaction
|
||||||
|
commits must scale to many concurrent commits. The current transaction commit
|
||||||
|
code does not break down even when there are transactions coming from 2048
|
||||||
|
processors at once. The current transaction code does not go any faster than if
|
||||||
|
there was only one CPU using it, but it does not slow down either.
|
||||||
|
|
||||||
|
As a result, the delayed logging transaction commit code needs to be designed
|
||||||
|
for concurrency from the ground up. It is obvious that there are serialisation
|
||||||
|
points in the design - the three important ones are:
|
||||||
|
|
||||||
|
1. Locking out new transaction commits while flushing the CIL
|
||||||
|
2. Adding items to the CIL and updating item space accounting
|
||||||
|
3. Checkpoint commit ordering
|
||||||
|
|
||||||
|
Looking at the transaction commit and CIL flushing interactions, it is clear
|
||||||
|
that we have a many-to-one interaction here. That is, the only restriction on
|
||||||
|
the number of concurrent transactions that can be trying to commit at once is
|
||||||
|
the amount of space available in the log for their reservations. The practical
|
||||||
|
limit here is in the order of several hundred concurrent transactions for a
|
||||||
|
128MB log, which means that it is generally one per CPU in a machine.
|
||||||
|
|
||||||
|
The amount of time a transaction commit needs to hold out a flush is a
|
||||||
|
relatively long period of time - the pinning of log items needs to be done
|
||||||
|
while we are holding out a CIL flush, so at the moment that means it is held
|
||||||
|
across the formatting of the objects into memory buffers (i.e. while memcpy()s
|
||||||
|
are in progress). Ultimately a two pass algorithm where the formatting is done
|
||||||
|
separately to the pinning of objects could be used to reduce the hold time of
|
||||||
|
the transaction commit side.
|
||||||
|
|
||||||
|
Because of the number of potential transaction commit side holders, the lock
|
||||||
|
really needs to be a sleeping lock - if the CIL flush takes the lock, we do not
|
||||||
|
want every other CPU in the machine spinning on the CIL lock. Given that
|
||||||
|
flushing the CIL could involve walking a list of tens of thousands of log
|
||||||
|
items, it will get held for a significant time and so spin contention is a
|
||||||
|
significant concern. Preventing lots of CPUs spinning doing nothing is the
|
||||||
|
main reason for choosing a sleeping lock even though nothing in either the
|
||||||
|
transaction commit or CIL flush side sleeps with the lock held.
|
||||||
|
|
||||||
|
It should also be noted that CIL flushing is also a relatively rare operation
|
||||||
|
compared to transaction commit for asynchronous transaction workloads - only
|
||||||
|
time will tell if using a read-write semaphore for exclusion will limit
|
||||||
|
transaction commit concurrency due to cache line bouncing of the lock on the
|
||||||
|
read side.
|
||||||
|
|
||||||
|
The second serialisation point is on the transaction commit side where items
|
||||||
|
are inserted into the CIL. Because transactions can enter this code
|
||||||
|
concurrently, the CIL needs to be protected separately from the above
|
||||||
|
commit/flush exclusion. It also needs to be an exclusive lock but it is only
|
||||||
|
held for a very short time and so a spin lock is appropriate here. It is
|
||||||
|
possible that this lock will become a contention point, but given the short
|
||||||
|
hold time once per transaction I think that contention is unlikely.
|
||||||
|
|
||||||
|
The final serialisation point is the checkpoint commit record ordering code
|
||||||
|
that is run as part of the checkpoint commit and log force sequencing. The code
|
||||||
|
path that triggers a CIL flush (i.e. whatever triggers the log force) will enter
|
||||||
|
an ordering loop after writing all the log vectors into the log buffers but
|
||||||
|
before writing the commit record. This loop walks the list of committing
|
||||||
|
checkpoints and needs to block waiting for checkpoints to complete their commit
|
||||||
|
record write. As a result it needs a lock and a wait variable. Log force
|
||||||
|
sequencing also requires the same lock, list walk, and blocking mechanism to
|
||||||
|
ensure completion of checkpoints.
|
||||||
|
|
||||||
|
These two sequencing operations can use the mechanism even though the
|
||||||
|
events they are waiting for are different. The checkpoint commit record
|
||||||
|
sequencing needs to wait until checkpoint contexts contain a commit LSN
|
||||||
|
(obtained through completion of a commit record write) while log force
|
||||||
|
sequencing needs to wait until previous checkpoint contexts are removed from
|
||||||
|
the committing list (i.e. they've completed). A simple wait variable and
|
||||||
|
broadcast wakeups (thundering herds) has been used to implement these two
|
||||||
|
serialisation queues. They use the same lock as the CIL, too. If we see too
|
||||||
|
much contention on the CIL lock, or too many context switches as a result of
|
||||||
|
the broadcast wakeups these operations can be put under a new spinlock and
|
||||||
|
given separate wait lists to reduce lock contention and the number of processes
|
||||||
|
woken by the wrong event.
|
||||||
|
|
||||||
|
|
||||||
|
Lifecycle Changes
|
||||||
|
|
||||||
|
The existing log item life cycle is as follows:
|
||||||
|
|
||||||
|
1. Transaction allocate
|
||||||
|
2. Transaction reserve
|
||||||
|
3. Lock item
|
||||||
|
4. Join item to transaction
|
||||||
|
If not already attached,
|
||||||
|
Allocate log item
|
||||||
|
Attach log item to owner item
|
||||||
|
Attach log item to transaction
|
||||||
|
5. Modify item
|
||||||
|
Record modifications in log item
|
||||||
|
6. Transaction commit
|
||||||
|
Pin item in memory
|
||||||
|
Format item into log buffer
|
||||||
|
Write commit LSN into transaction
|
||||||
|
Unlock item
|
||||||
|
Attach transaction to log buffer
|
||||||
|
|
||||||
|
<log buffer IO dispatched>
|
||||||
|
<log buffer IO completes>
|
||||||
|
|
||||||
|
7. Transaction completion
|
||||||
|
Mark log item committed
|
||||||
|
Insert log item into AIL
|
||||||
|
Write commit LSN into log item
|
||||||
|
Unpin log item
|
||||||
|
8. AIL traversal
|
||||||
|
Lock item
|
||||||
|
Mark log item clean
|
||||||
|
Flush item to disk
|
||||||
|
|
||||||
|
<item IO completion>
|
||||||
|
|
||||||
|
9. Log item removed from AIL
|
||||||
|
Moves log tail
|
||||||
|
Item unlocked
|
||||||
|
|
||||||
|
Essentially, steps 1-6 operate independently from step 7, which is also
|
||||||
|
independent of steps 8-9. An item can be locked in steps 1-6 or steps 8-9
|
||||||
|
at the same time step 7 is occurring, but only steps 1-6 or 8-9 can occur
|
||||||
|
at the same time. If the log item is in the AIL or between steps 6 and 7
|
||||||
|
and steps 1-6 are re-entered, then the item is relogged. Only when steps 8-9
|
||||||
|
are entered and completed is the object considered clean.
|
||||||
|
|
||||||
|
With delayed logging, there are new steps inserted into the life cycle:
|
||||||
|
|
||||||
|
1. Transaction allocate
|
||||||
|
2. Transaction reserve
|
||||||
|
3. Lock item
|
||||||
|
4. Join item to transaction
|
||||||
|
If not already attached,
|
||||||
|
Allocate log item
|
||||||
|
Attach log item to owner item
|
||||||
|
Attach log item to transaction
|
||||||
|
5. Modify item
|
||||||
|
Record modifications in log item
|
||||||
|
6. Transaction commit
|
||||||
|
Pin item in memory if not pinned in CIL
|
||||||
|
Format item into log vector + buffer
|
||||||
|
Attach log vector and buffer to log item
|
||||||
|
Insert log item into CIL
|
||||||
|
Write CIL context sequence into transaction
|
||||||
|
Unlock item
|
||||||
|
|
||||||
|
<next log force>
|
||||||
|
|
||||||
|
7. CIL push
|
||||||
|
lock CIL flush
|
||||||
|
Chain log vectors and buffers together
|
||||||
|
Remove items from CIL
|
||||||
|
unlock CIL flush
|
||||||
|
write log vectors into log
|
||||||
|
sequence commit records
|
||||||
|
attach checkpoint context to log buffer
|
||||||
|
|
||||||
|
<log buffer IO dispatched>
|
||||||
|
<log buffer IO completes>
|
||||||
|
|
||||||
|
8. Checkpoint completion
|
||||||
|
Mark log item committed
|
||||||
|
Insert item into AIL
|
||||||
|
Write commit LSN into log item
|
||||||
|
Unpin log item
|
||||||
|
9. AIL traversal
|
||||||
|
Lock item
|
||||||
|
Mark log item clean
|
||||||
|
Flush item to disk
|
||||||
|
<item IO completion>
|
||||||
|
10. Log item removed from AIL
|
||||||
|
Moves log tail
|
||||||
|
Item unlocked
|
||||||
|
|
||||||
|
From this, it can be seen that the only life cycle differences between the two
|
||||||
|
logging methods are in the middle of the life cycle - they still have the same
|
||||||
|
beginning and end and execution constraints. The only differences are in the
|
||||||
|
commiting of the log items to the log itself and the completion processing.
|
||||||
|
Hence delayed logging should not introduce any constraints on log item
|
||||||
|
behaviour, allocation or freeing that don't already exist.
|
||||||
|
|
||||||
|
As a result of this zero-impact "insertion" of delayed logging infrastructure
|
||||||
|
and the design of the internal structures to avoid on disk format changes, we
|
||||||
|
can basically switch between delayed logging and the existing mechanism with a
|
||||||
|
mount option. Fundamentally, there is no reason why the log manager would not
|
||||||
|
be able to swap methods automatically and transparently depending on load
|
||||||
|
characteristics, but this should not be necessary if delayed logging works as
|
||||||
|
designed.
|
||||||
|
|
||||||
|
Roadmap:
|
||||||
|
|
||||||
|
2.6.35 Inclusion in mainline as an experimental mount option
|
||||||
|
=> approximately 2-3 months to merge window
|
||||||
|
=> needs to be in xfs-dev tree in 4-6 weeks
|
||||||
|
=> code is nearing readiness for review
|
||||||
|
|
||||||
|
2.6.37 Remove experimental tag from mount option
|
||||||
|
=> should be roughly 6 months after initial merge
|
||||||
|
=> enough time to:
|
||||||
|
=> gain confidence and fix problems reported by early
|
||||||
|
adopters (a.k.a. guinea pigs)
|
||||||
|
=> address worst performance regressions and undesired
|
||||||
|
behaviours
|
||||||
|
=> start tuning/optimising code for parallelism
|
||||||
|
=> start tuning/optimising algorithms consuming
|
||||||
|
excessive CPU time
|
||||||
|
|
||||||
|
2.6.39 Switch default mount option to use delayed logging
|
||||||
|
=> should be roughly 12 months after initial merge
|
||||||
|
=> enough time to shake out remaining problems before next round of
|
||||||
|
enterprise distro kernel rebases
|
||||||
@@ -9,11 +9,15 @@ Supported chips:
|
|||||||
* SMSC SCH3112, SCH3114, SCH3116
|
* SMSC SCH3112, SCH3114, SCH3116
|
||||||
Prefix: 'sch311x'
|
Prefix: 'sch311x'
|
||||||
Addresses scanned: none, address read from Super-I/O config space
|
Addresses scanned: none, address read from Super-I/O config space
|
||||||
Datasheet: http://www.nuhorizons.com/FeaturedProducts/Volume1/SMSC/311x.pdf
|
Datasheet: Available on the Internet
|
||||||
* SMSC SCH5027
|
* SMSC SCH5027
|
||||||
Prefix: 'sch5027'
|
Prefix: 'sch5027'
|
||||||
Addresses scanned: I2C 0x2c, 0x2d, 0x2e
|
Addresses scanned: I2C 0x2c, 0x2d, 0x2e
|
||||||
Datasheet: Provided by SMSC upon request and under NDA
|
Datasheet: Provided by SMSC upon request and under NDA
|
||||||
|
* SMSC SCH5127
|
||||||
|
Prefix: 'sch5127'
|
||||||
|
Addresses scanned: none, address read from Super-I/O config space
|
||||||
|
Datasheet: Provided by SMSC upon request and under NDA
|
||||||
|
|
||||||
Authors:
|
Authors:
|
||||||
Juerg Haefliger <juergh@gmail.com>
|
Juerg Haefliger <juergh@gmail.com>
|
||||||
@@ -36,8 +40,8 @@ Description
|
|||||||
-----------
|
-----------
|
||||||
|
|
||||||
This driver implements support for the hardware monitoring capabilities of the
|
This driver implements support for the hardware monitoring capabilities of the
|
||||||
SMSC DME1737 and Asus A8000 (which are the same), SMSC SCH5027, and SMSC
|
SMSC DME1737 and Asus A8000 (which are the same), SMSC SCH5027, SCH311x,
|
||||||
SCH311x Super-I/O chips. These chips feature monitoring of 3 temp sensors
|
and SCH5127 Super-I/O chips. These chips feature monitoring of 3 temp sensors
|
||||||
temp[1-3] (2 remote diodes and 1 internal), 7 voltages in[0-6] (6 external and
|
temp[1-3] (2 remote diodes and 1 internal), 7 voltages in[0-6] (6 external and
|
||||||
1 internal) and up to 6 fan speeds fan[1-6]. Additionally, the chips implement
|
1 internal) and up to 6 fan speeds fan[1-6]. Additionally, the chips implement
|
||||||
up to 5 PWM outputs pwm[1-3,5-6] for controlling fan speeds both manually and
|
up to 5 PWM outputs pwm[1-3,5-6] for controlling fan speeds both manually and
|
||||||
@@ -48,14 +52,14 @@ Fan[3-6] and pwm[3,5-6] are optional features and their availability depends on
|
|||||||
the configuration of the chip. The driver will detect which features are
|
the configuration of the chip. The driver will detect which features are
|
||||||
present during initialization and create the sysfs attributes accordingly.
|
present during initialization and create the sysfs attributes accordingly.
|
||||||
|
|
||||||
For the SCH311x, fan[1-3] and pwm[1-3] are always present and fan[4-6] and
|
For the SCH311x and SCH5127, fan[1-3] and pwm[1-3] are always present and
|
||||||
pwm[5-6] don't exist.
|
fan[4-6] and pwm[5-6] don't exist.
|
||||||
|
|
||||||
The hardware monitoring features of the DME1737, A8000, and SCH5027 are only
|
The hardware monitoring features of the DME1737, A8000, and SCH5027 are only
|
||||||
accessible via SMBus, while the SCH311x only provides access via the ISA bus.
|
accessible via SMBus, while the SCH311x and SCH5127 only provide access via
|
||||||
The driver will therefore register itself as an I2C client driver if it detects
|
the ISA bus. The driver will therefore register itself as an I2C client driver
|
||||||
a DME1737, A8000, or SCH5027 and as a platform driver if it detects a SCH311x
|
if it detects a DME1737, A8000, or SCH5027 and as a platform driver if it
|
||||||
chip.
|
detects a SCH311x or SCH5127 chip.
|
||||||
|
|
||||||
|
|
||||||
Voltage Monitoring
|
Voltage Monitoring
|
||||||
@@ -76,7 +80,7 @@ DME1737, A8000:
|
|||||||
in6: Vbat (+3.0V) 0V - 4.38V
|
in6: Vbat (+3.0V) 0V - 4.38V
|
||||||
|
|
||||||
SCH311x:
|
SCH311x:
|
||||||
in0: +2.5V 0V - 6.64V
|
in0: +2.5V 0V - 3.32V
|
||||||
in1: Vccp (processor core) 0V - 2V
|
in1: Vccp (processor core) 0V - 2V
|
||||||
in2: VCC (internal +3.3V) 0V - 4.38V
|
in2: VCC (internal +3.3V) 0V - 4.38V
|
||||||
in3: +5V 0V - 6.64V
|
in3: +5V 0V - 6.64V
|
||||||
@@ -93,6 +97,15 @@ SCH5027:
|
|||||||
in5: VTR (+3.3V standby) 0V - 4.38V
|
in5: VTR (+3.3V standby) 0V - 4.38V
|
||||||
in6: Vbat (+3.0V) 0V - 4.38V
|
in6: Vbat (+3.0V) 0V - 4.38V
|
||||||
|
|
||||||
|
SCH5127:
|
||||||
|
in0: +2.5 0V - 3.32V
|
||||||
|
in1: Vccp (processor core) 0V - 3V
|
||||||
|
in2: VCC (internal +3.3V) 0V - 4.38V
|
||||||
|
in3: V2_IN 0V - 1.5V
|
||||||
|
in4: V1_IN 0V - 1.5V
|
||||||
|
in5: VTR (+3.3V standby) 0V - 4.38V
|
||||||
|
in6: Vbat (+3.0V) 0V - 4.38V
|
||||||
|
|
||||||
Each voltage input has associated min and max limits which trigger an alarm
|
Each voltage input has associated min and max limits which trigger an alarm
|
||||||
when crossed.
|
when crossed.
|
||||||
|
|
||||||
@@ -293,3 +306,21 @@ pwm[1-3]_auto_point1_pwm RW Auto PWM pwm point. Auto_point1 is the
|
|||||||
pwm[1-3]_auto_point2_pwm RO Auto PWM pwm point. Auto_point2 is the
|
pwm[1-3]_auto_point2_pwm RO Auto PWM pwm point. Auto_point2 is the
|
||||||
full-speed duty-cycle which is hard-
|
full-speed duty-cycle which is hard-
|
||||||
wired to 255 (100% duty-cycle).
|
wired to 255 (100% duty-cycle).
|
||||||
|
|
||||||
|
Chip Differences
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Feature dme1737 sch311x sch5027 sch5127
|
||||||
|
-------------------------------------------------------
|
||||||
|
temp[1-3]_offset yes yes
|
||||||
|
vid yes
|
||||||
|
zone3 yes yes yes
|
||||||
|
zone[1-3]_hyst yes yes
|
||||||
|
pwm min/off yes yes
|
||||||
|
fan3 opt yes opt yes
|
||||||
|
pwm3 opt yes opt yes
|
||||||
|
fan4 opt opt
|
||||||
|
fan5 opt opt
|
||||||
|
pwm5 opt opt
|
||||||
|
fan6 opt opt
|
||||||
|
pwm6 opt opt
|
||||||
|
|||||||
@@ -7,6 +7,11 @@ Supported chips:
|
|||||||
Addresses scanned: I2C 0x4c
|
Addresses scanned: I2C 0x4c
|
||||||
Datasheet: Publicly available at the National Semiconductor website
|
Datasheet: Publicly available at the National Semiconductor website
|
||||||
http://www.national.com/pf/LM/LM63.html
|
http://www.national.com/pf/LM/LM63.html
|
||||||
|
* National Semiconductor LM64
|
||||||
|
Prefix: 'lm64'
|
||||||
|
Addresses scanned: I2C 0x18 and 0x4e
|
||||||
|
Datasheet: Publicly available at the National Semiconductor website
|
||||||
|
http://www.national.com/pf/LM/LM64.html
|
||||||
|
|
||||||
Author: Jean Delvare <khali@linux-fr.org>
|
Author: Jean Delvare <khali@linux-fr.org>
|
||||||
|
|
||||||
@@ -55,3 +60,5 @@ The lm63 driver will not update its values more frequently than every
|
|||||||
second; reading them more often will do no harm, but will return 'old'
|
second; reading them more often will do no harm, but will return 'old'
|
||||||
values.
|
values.
|
||||||
|
|
||||||
|
The LM64 is effectively an LM63 with GPIO lines. The driver does not
|
||||||
|
support these GPIO lines at present.
|
||||||
|
|||||||
@@ -72,9 +72,7 @@ in6_min_alarm 5v output undervoltage alarm
|
|||||||
in7_min_alarm 3v output undervoltage alarm
|
in7_min_alarm 3v output undervoltage alarm
|
||||||
in8_min_alarm Vee (-12v) output undervoltage alarm
|
in8_min_alarm Vee (-12v) output undervoltage alarm
|
||||||
|
|
||||||
in9_input GPIO #1 voltage data
|
in9_input GPIO voltage data
|
||||||
in10_input GPIO #2 voltage data
|
|
||||||
in11_input GPIO #3 voltage data
|
|
||||||
|
|
||||||
power1_input 12v power usage (mW)
|
power1_input 12v power usage (mW)
|
||||||
power2_input 5v power usage (mW)
|
power2_input 5v power usage (mW)
|
||||||
|
|||||||
@@ -80,9 +80,9 @@ All entries (except name) are optional, and should only be created in a
|
|||||||
given driver if the chip has the feature.
|
given driver if the chip has the feature.
|
||||||
|
|
||||||
|
|
||||||
********
|
*********************
|
||||||
* Name *
|
* Global attributes *
|
||||||
********
|
*********************
|
||||||
|
|
||||||
name The chip name.
|
name The chip name.
|
||||||
This should be a short, lowercase string, not containing
|
This should be a short, lowercase string, not containing
|
||||||
@@ -91,6 +91,13 @@ name The chip name.
|
|||||||
I2C devices get this attribute created automatically.
|
I2C devices get this attribute created automatically.
|
||||||
RO
|
RO
|
||||||
|
|
||||||
|
update_rate The rate at which the chip will update readings.
|
||||||
|
Unit: millisecond
|
||||||
|
RW
|
||||||
|
Some devices have a variable update rate. This attribute
|
||||||
|
can be used to change the update rate to the desired
|
||||||
|
frequency.
|
||||||
|
|
||||||
|
|
||||||
************
|
************
|
||||||
* Voltages *
|
* Voltages *
|
||||||
|
|||||||
26
Documentation/hwmon/tmp102
Normal file
26
Documentation/hwmon/tmp102
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
Kernel driver tmp102
|
||||||
|
====================
|
||||||
|
|
||||||
|
Supported chips:
|
||||||
|
* Texas Instruments TMP102
|
||||||
|
Prefix: 'tmp102'
|
||||||
|
Addresses scanned: none
|
||||||
|
Datasheet: http://focus.ti.com/docs/prod/folders/print/tmp102.html
|
||||||
|
|
||||||
|
Author:
|
||||||
|
Steven King <sfking@fdwdc.com>
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
The Texas Instruments TMP102 implements one temperature sensor. Limits can be
|
||||||
|
set through the Overtemperature Shutdown register and Hysteresis register. The
|
||||||
|
sensor is accurate to 0.5 degree over the range of -25 to +85 C, and to 1.0
|
||||||
|
degree from -40 to +125 C. Resolution of the sensor is 0.0625 degree. The
|
||||||
|
operating temperature has a minimum of -55 C and a maximum of +150 C.
|
||||||
|
|
||||||
|
The TMP102 has a programmable update rate that can select between 8, 4, 1, and
|
||||||
|
0.5 Hz. (Currently the driver only supports the default of 4 Hz).
|
||||||
|
|
||||||
|
The driver provides the common sysfs-interface for temperatures (see
|
||||||
|
Documentation/hwmon/sysfs-interface under Temperatures).
|
||||||
@@ -27,7 +27,13 @@ Authors:
|
|||||||
Module Parameters
|
Module Parameters
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
None.
|
* disable_features (bit vector)
|
||||||
|
Disable selected features normally supported by the device. This makes it
|
||||||
|
possible to work around possible driver or hardware bugs if the feature in
|
||||||
|
question doesn't work as intended for whatever reason. Bit values:
|
||||||
|
1 disable SMBus PEC
|
||||||
|
2 disable the block buffer
|
||||||
|
8 disable the I2C block read functionality
|
||||||
|
|
||||||
|
|
||||||
Description
|
Description
|
||||||
|
|||||||
@@ -113,12 +113,16 @@ char *driver_name
|
|||||||
int (*load_firmware)(struct capi_ctr *ctrlr, capiloaddata *ldata)
|
int (*load_firmware)(struct capi_ctr *ctrlr, capiloaddata *ldata)
|
||||||
(optional) pointer to a callback function for sending firmware and
|
(optional) pointer to a callback function for sending firmware and
|
||||||
configuration data to the device
|
configuration data to the device
|
||||||
|
The function may return before the operation has completed.
|
||||||
|
Completion must be signalled by a call to capi_ctr_ready().
|
||||||
Return value: 0 on success, error code on error
|
Return value: 0 on success, error code on error
|
||||||
Called in process context.
|
Called in process context.
|
||||||
|
|
||||||
void (*reset_ctr)(struct capi_ctr *ctrlr)
|
void (*reset_ctr)(struct capi_ctr *ctrlr)
|
||||||
(optional) pointer to a callback function for performing a reset on
|
(optional) pointer to a callback function for stopping the device,
|
||||||
the device, releasing all registered applications
|
releasing all registered applications
|
||||||
|
The function may return before the operation has completed.
|
||||||
|
Completion must be signalled by a call to capi_ctr_down().
|
||||||
Called in process context.
|
Called in process context.
|
||||||
|
|
||||||
void (*register_appl)(struct capi_ctr *ctrlr, u16 applid,
|
void (*register_appl)(struct capi_ctr *ctrlr, u16 applid,
|
||||||
|
|||||||
@@ -47,9 +47,9 @@ GigaSet 307x Device Driver
|
|||||||
|
|
||||||
1.2. Software
|
1.2. Software
|
||||||
--------
|
--------
|
||||||
The driver works with ISDN4linux and so can be used with any software
|
The driver works with the Kernel CAPI subsystem as well as the old
|
||||||
which is able to use ISDN4linux for ISDN connections (voice or data).
|
ISDN4Linux subsystem, so it can be used with any software which is able
|
||||||
Experimental Kernel CAPI support is available as a compilation option.
|
to use CAPI 2.0 or ISDN4Linux for ISDN connections (voice or data).
|
||||||
|
|
||||||
There are some user space tools available at
|
There are some user space tools available at
|
||||||
http://sourceforge.net/projects/gigaset307x/
|
http://sourceforge.net/projects/gigaset307x/
|
||||||
@@ -152,61 +152,42 @@ GigaSet 307x Device Driver
|
|||||||
- GIGVER_FWBASE: retrieve the firmware version of the base
|
- GIGVER_FWBASE: retrieve the firmware version of the base
|
||||||
Upon return, version[] is filled with the requested version information.
|
Upon return, version[] is filled with the requested version information.
|
||||||
|
|
||||||
2.3. ISDN4linux
|
2.3. CAPI
|
||||||
----------
|
|
||||||
This is the "normal" mode of operation. After loading the module you can
|
|
||||||
set up the ISDN system just as you'd do with any ISDN card supported by
|
|
||||||
the ISDN4Linux subsystem. Most distributions provide some configuration
|
|
||||||
utility. If not, you can use some HOWTOs like
|
|
||||||
http://www.linuxhaven.de/dlhp/HOWTO/DE-ISDN-HOWTO-5.html
|
|
||||||
If this doesn't work, because you have some device like SX100 where
|
|
||||||
debug output (see section 3.2.) shows something like this when dialing
|
|
||||||
CMD Received: ERROR
|
|
||||||
Available Params: 0
|
|
||||||
Connection State: 0, Response: -1
|
|
||||||
gigaset_process_response: resp_code -1 in ConState 0 !
|
|
||||||
Timeout occurred
|
|
||||||
you probably need to use unimodem mode. (see section 2.5.)
|
|
||||||
|
|
||||||
2.4. CAPI
|
|
||||||
----
|
----
|
||||||
If the driver is compiled with CAPI support (kernel configuration option
|
If the driver is compiled with CAPI support (kernel configuration option
|
||||||
GIGASET_CAPI, experimental) it can also be used with CAPI 2.0 kernel and
|
GIGASET_CAPI) the devices will show up as CAPI controllers as soon as the
|
||||||
user space applications. For user space access, the module capi.ko must
|
corresponding driver module is loaded, and can then be used with CAPI 2.0
|
||||||
be loaded. The capiinit command (included in the capi4k-utils package)
|
kernel and user space applications. For user space access, the module
|
||||||
does this for you.
|
capi.ko must be loaded.
|
||||||
|
|
||||||
The CAPI variant of the driver supports legacy ISDN4Linux applications
|
Legacy ISDN4Linux applications are supported via the capidrv
|
||||||
via the capidrv compatibility driver. The kernel module capidrv.ko must
|
compatibility driver. The kernel module capidrv.ko must be loaded
|
||||||
be loaded explicitly with the command
|
explicitly with the command
|
||||||
modprobe capidrv
|
modprobe capidrv
|
||||||
if needed, and cannot be unloaded again without unloading the driver
|
if needed, and cannot be unloaded again without unloading the driver
|
||||||
first. (These are limitations of capidrv.)
|
first. (These are limitations of capidrv.)
|
||||||
|
|
||||||
The note about unimodem mode in the preceding section applies here, too.
|
Most distributions handle loading and unloading of the various CAPI
|
||||||
|
modules automatically via the command capiinit(1) from the capi4k-utils
|
||||||
|
package or a similar mechanism. Note that capiinit(1) cannot unload the
|
||||||
|
Gigaset drivers because it doesn't support more than one module per
|
||||||
|
driver.
|
||||||
|
|
||||||
|
2.4. ISDN4Linux
|
||||||
|
----------
|
||||||
|
If the driver is compiled without CAPI support (native ISDN4Linux
|
||||||
|
variant), it registers the device with the legacy ISDN4Linux subsystem
|
||||||
|
after loading the module. It can then be used with ISDN4Linux
|
||||||
|
applications only. Most distributions provide some configuration utility
|
||||||
|
for setting up that subsystem. Otherwise you can use some HOWTOs like
|
||||||
|
http://www.linuxhaven.de/dlhp/HOWTO/DE-ISDN-HOWTO-5.html
|
||||||
|
|
||||||
|
|
||||||
2.5. Unimodem mode
|
2.5. Unimodem mode
|
||||||
-------------
|
-------------
|
||||||
This is needed for some devices [e.g. SX100] as they have problems with
|
|
||||||
the "normal" commands.
|
|
||||||
|
|
||||||
If you have installed the command line tool gigacontr, you can enter
|
|
||||||
unimodem mode using
|
|
||||||
gigacontr --mode unimodem
|
|
||||||
You can switch back using
|
|
||||||
gigacontr --mode isdn
|
|
||||||
|
|
||||||
You can also put the driver directly into Unimodem mode when it's loaded,
|
|
||||||
by passing the module parameter startmode=0 to the hardware specific
|
|
||||||
module, e.g.
|
|
||||||
modprobe usb_gigaset startmode=0
|
|
||||||
or by adding a line like
|
|
||||||
options usb_gigaset startmode=0
|
|
||||||
to an appropriate module configuration file, like /etc/modprobe.d/gigaset
|
|
||||||
or /etc/modprobe.conf.local.
|
|
||||||
|
|
||||||
In this mode the device works like a modem connected to a serial port
|
In this mode the device works like a modem connected to a serial port
|
||||||
(the /dev/ttyGU0, ... mentioned above) which understands the commands
|
(the /dev/ttyGU0, ... mentioned above) which understands the commands
|
||||||
|
|
||||||
ATZ init, reset
|
ATZ init, reset
|
||||||
=> OK or ERROR
|
=> OK or ERROR
|
||||||
ATD
|
ATD
|
||||||
@@ -234,6 +215,31 @@ GigaSet 307x Device Driver
|
|||||||
to an appropriate module configuration file, like /etc/modprobe.d/gigaset
|
to an appropriate module configuration file, like /etc/modprobe.d/gigaset
|
||||||
or /etc/modprobe.conf.local.
|
or /etc/modprobe.conf.local.
|
||||||
|
|
||||||
|
Unimodem mode is needed for making some devices [e.g. SX100] work which
|
||||||
|
do not support the regular Gigaset command set. If debug output (see
|
||||||
|
section 3.2.) shows something like this when dialing:
|
||||||
|
CMD Received: ERROR
|
||||||
|
Available Params: 0
|
||||||
|
Connection State: 0, Response: -1
|
||||||
|
gigaset_process_response: resp_code -1 in ConState 0 !
|
||||||
|
Timeout occurred
|
||||||
|
then switching to unimodem mode may help.
|
||||||
|
|
||||||
|
If you have installed the command line tool gigacontr, you can enter
|
||||||
|
unimodem mode using
|
||||||
|
gigacontr --mode unimodem
|
||||||
|
You can switch back using
|
||||||
|
gigacontr --mode isdn
|
||||||
|
|
||||||
|
You can also put the driver directly into Unimodem mode when it's loaded,
|
||||||
|
by passing the module parameter startmode=0 to the hardware specific
|
||||||
|
module, e.g.
|
||||||
|
modprobe usb_gigaset startmode=0
|
||||||
|
or by adding a line like
|
||||||
|
options usb_gigaset startmode=0
|
||||||
|
to an appropriate module configuration file, like /etc/modprobe.d/gigaset
|
||||||
|
or /etc/modprobe.conf.local.
|
||||||
|
|
||||||
2.6. Call-ID (CID) mode
|
2.6. Call-ID (CID) mode
|
||||||
------------------
|
------------------
|
||||||
Call-IDs are numbers used to tag commands to, and responses from, the
|
Call-IDs are numbers used to tag commands to, and responses from, the
|
||||||
@@ -263,7 +269,22 @@ GigaSet 307x Device Driver
|
|||||||
change its CID mode while the driver is loaded, eg.
|
change its CID mode while the driver is loaded, eg.
|
||||||
echo 0 > /sys/class/tty/ttyGU0/cidmode
|
echo 0 > /sys/class/tty/ttyGU0/cidmode
|
||||||
|
|
||||||
2.7. Unregistered Wireless Devices (M101/M105)
|
2.7. Dialing Numbers
|
||||||
|
---------------
|
||||||
|
The called party number provided by an application for dialing out must
|
||||||
|
be a public network number according to the local dialing plan, without
|
||||||
|
any dial prefix for getting an outside line.
|
||||||
|
|
||||||
|
Internal calls can be made by providing an internal extension number
|
||||||
|
prefixed with "**" (two asterisks) as the called party number. So to dial
|
||||||
|
eg. the first registered DECT handset, give "**11" as the called party
|
||||||
|
number. Dialing "***" (three asterisks) calls all extensions
|
||||||
|
simultaneously (global call).
|
||||||
|
|
||||||
|
This holds for both CAPI 2.0 and ISDN4Linux applications. Unimodem mode
|
||||||
|
does not support internal calls.
|
||||||
|
|
||||||
|
2.8. Unregistered Wireless Devices (M101/M105)
|
||||||
-----------------------------------------
|
-----------------------------------------
|
||||||
The main purpose of the ser_gigaset and usb_gigaset drivers is to allow
|
The main purpose of the ser_gigaset and usb_gigaset drivers is to allow
|
||||||
the M101 and M105 wireless devices to be used as ISDN devices for ISDN
|
the M101 and M105 wireless devices to be used as ISDN devices for ISDN
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ parameter is applicable:
|
|||||||
ISAPNP ISA PnP code is enabled.
|
ISAPNP ISA PnP code is enabled.
|
||||||
ISDN Appropriate ISDN support is enabled.
|
ISDN Appropriate ISDN support is enabled.
|
||||||
JOY Appropriate joystick support is enabled.
|
JOY Appropriate joystick support is enabled.
|
||||||
|
KGDB Kernel debugger support is enabled.
|
||||||
KVM Kernel Virtual Machine support is enabled.
|
KVM Kernel Virtual Machine support is enabled.
|
||||||
LIBATA Libata driver is enabled
|
LIBATA Libata driver is enabled
|
||||||
LP Printer support is enabled.
|
LP Printer support is enabled.
|
||||||
@@ -144,11 +145,10 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
|
|
||||||
acpi= [HW,ACPI,X86]
|
acpi= [HW,ACPI,X86]
|
||||||
Advanced Configuration and Power Interface
|
Advanced Configuration and Power Interface
|
||||||
Format: { force | off | ht | strict | noirq | rsdt }
|
Format: { force | off | strict | noirq | rsdt }
|
||||||
force -- enable ACPI if default was off
|
force -- enable ACPI if default was off
|
||||||
off -- disable ACPI if default was on
|
off -- disable ACPI if default was on
|
||||||
noirq -- do not use ACPI for IRQ routing
|
noirq -- do not use ACPI for IRQ routing
|
||||||
ht -- run only enough ACPI to enable Hyper Threading
|
|
||||||
strict -- Be less tolerant of platforms that are not
|
strict -- Be less tolerant of platforms that are not
|
||||||
strictly ACPI specification compliant.
|
strictly ACPI specification compliant.
|
||||||
rsdt -- prefer RSDT over (default) XSDT
|
rsdt -- prefer RSDT over (default) XSDT
|
||||||
@@ -289,9 +289,6 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
advansys= [HW,SCSI]
|
advansys= [HW,SCSI]
|
||||||
See header of drivers/scsi/advansys.c.
|
See header of drivers/scsi/advansys.c.
|
||||||
|
|
||||||
advwdt= [HW,WDT] Advantech WDT
|
|
||||||
Format: <iostart>,<iostop>
|
|
||||||
|
|
||||||
aedsp16= [HW,OSS] Audio Excel DSP 16
|
aedsp16= [HW,OSS] Audio Excel DSP 16
|
||||||
Format: <io>,<irq>,<dma>,<mss_io>,<mpu_io>,<mpu_irq>
|
Format: <io>,<irq>,<dma>,<mss_io>,<mpu_io>,<mpu_irq>
|
||||||
See also header of sound/oss/aedsp16.c.
|
See also header of sound/oss/aedsp16.c.
|
||||||
@@ -712,6 +709,12 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
The VGA output is eventually overwritten by the real
|
The VGA output is eventually overwritten by the real
|
||||||
console.
|
console.
|
||||||
|
|
||||||
|
ekgdboc= [X86,KGDB] Allow early kernel console debugging
|
||||||
|
ekgdboc=kbd
|
||||||
|
|
||||||
|
This is desgined to be used in conjunction with
|
||||||
|
the boot argument: earlyprintk=vga
|
||||||
|
|
||||||
eata= [HW,SCSI]
|
eata= [HW,SCSI]
|
||||||
|
|
||||||
edd= [EDD]
|
edd= [EDD]
|
||||||
@@ -754,13 +757,14 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
Default value is 0.
|
Default value is 0.
|
||||||
Value can be changed at runtime via /selinux/enforce.
|
Value can be changed at runtime via /selinux/enforce.
|
||||||
|
|
||||||
|
erst_disable [ACPI]
|
||||||
|
Disable Error Record Serialization Table (ERST)
|
||||||
|
support.
|
||||||
|
|
||||||
ether= [HW,NET] Ethernet cards parameters
|
ether= [HW,NET] Ethernet cards parameters
|
||||||
This option is obsoleted by the "netdev=" option, which
|
This option is obsoleted by the "netdev=" option, which
|
||||||
has equivalent usage. See its documentation for details.
|
has equivalent usage. See its documentation for details.
|
||||||
|
|
||||||
eurwdt= [HW,WDT] Eurotech CPU-1220/1410 onboard watchdog.
|
|
||||||
Format: <io>[,<irq>]
|
|
||||||
|
|
||||||
failslab=
|
failslab=
|
||||||
fail_page_alloc=
|
fail_page_alloc=
|
||||||
fail_make_request=[KNL]
|
fail_make_request=[KNL]
|
||||||
@@ -851,6 +855,11 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
hd= [EIDE] (E)IDE hard drive subsystem geometry
|
hd= [EIDE] (E)IDE hard drive subsystem geometry
|
||||||
Format: <cyl>,<head>,<sect>
|
Format: <cyl>,<head>,<sect>
|
||||||
|
|
||||||
|
hest_disable [ACPI]
|
||||||
|
Disable Hardware Error Source Table (HEST) support;
|
||||||
|
corresponding firmware-first mode error processing
|
||||||
|
logic will be disabled.
|
||||||
|
|
||||||
highmem=nn[KMG] [KNL,BOOT] forces the highmem zone to have an exact
|
highmem=nn[KMG] [KNL,BOOT] forces the highmem zone to have an exact
|
||||||
size of <nn>. This works even on boxes that have no
|
size of <nn>. This works even on boxes that have no
|
||||||
highmem otherwise. This also works to reduce highmem
|
highmem otherwise. This also works to reduce highmem
|
||||||
@@ -1120,10 +1129,26 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
use the HighMem zone if it exists, and the Normal
|
use the HighMem zone if it exists, and the Normal
|
||||||
zone if it does not.
|
zone if it does not.
|
||||||
|
|
||||||
kgdboc= [HW] kgdb over consoles.
|
kgdbdbgp= [KGDB,HW] kgdb over EHCI usb debug port.
|
||||||
Requires a tty driver that supports console polling.
|
Format: <Controller#>[,poll interval]
|
||||||
(only serial supported for now)
|
The controller # is the number of the ehci usb debug
|
||||||
Format: <serial_device>[,baud]
|
port as it is probed via PCI. The poll interval is
|
||||||
|
optional and is the number seconds in between
|
||||||
|
each poll cycle to the debug port in case you need
|
||||||
|
the functionality for interrupting the kernel with
|
||||||
|
gdb or control-c on the dbgp connection. When
|
||||||
|
not using this parameter you use sysrq-g to break into
|
||||||
|
the kernel debugger.
|
||||||
|
|
||||||
|
kgdboc= [KGDB,HW] kgdb over consoles.
|
||||||
|
Requires a tty driver that supports console polling,
|
||||||
|
or a supported polling keyboard driver (non-usb).
|
||||||
|
Serial only format: <serial_device>[,baud]
|
||||||
|
keyboard only format: kbd
|
||||||
|
keyboard and serial format: kbd,<serial_device>[,baud]
|
||||||
|
|
||||||
|
kgdbwait [KGDB] Stop kernel execution and enter the
|
||||||
|
kernel debugger at the earliest opportunity.
|
||||||
|
|
||||||
kmac= [MIPS] korina ethernet MAC address.
|
kmac= [MIPS] korina ethernet MAC address.
|
||||||
Configure the RouterBoard 532 series on-chip
|
Configure the RouterBoard 532 series on-chip
|
||||||
@@ -1235,6 +1260,8 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
* nohrst, nosrst, norst: suppress hard, soft
|
* nohrst, nosrst, norst: suppress hard, soft
|
||||||
and both resets.
|
and both resets.
|
||||||
|
|
||||||
|
* dump_id: dump IDENTIFY data.
|
||||||
|
|
||||||
If there are multiple matching configurations changing
|
If there are multiple matching configurations changing
|
||||||
the same attribute, the last one is used.
|
the same attribute, the last one is used.
|
||||||
|
|
||||||
@@ -1570,8 +1597,7 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
[NETFILTER] Enable connection tracking flow accounting
|
[NETFILTER] Enable connection tracking flow accounting
|
||||||
0 to disable accounting
|
0 to disable accounting
|
||||||
1 to enable accounting
|
1 to enable accounting
|
||||||
Default value depends on CONFIG_NF_CT_ACCT that is
|
Default value is 0.
|
||||||
going to be removed in 2.6.29.
|
|
||||||
|
|
||||||
nfsaddrs= [NFS]
|
nfsaddrs= [NFS]
|
||||||
See Documentation/filesystems/nfs/nfsroot.txt.
|
See Documentation/filesystems/nfs/nfsroot.txt.
|
||||||
@@ -2244,9 +2270,6 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
|
|
||||||
sched_debug [KNL] Enables verbose scheduler debug messages.
|
sched_debug [KNL] Enables verbose scheduler debug messages.
|
||||||
|
|
||||||
sc1200wdt= [HW,WDT] SC1200 WDT (watchdog) driver
|
|
||||||
Format: <io>[,<timeout>[,<isapnp>]]
|
|
||||||
|
|
||||||
scsi_debug_*= [SCSI]
|
scsi_debug_*= [SCSI]
|
||||||
See drivers/scsi/scsi_debug.c.
|
See drivers/scsi/scsi_debug.c.
|
||||||
|
|
||||||
@@ -2835,8 +2858,10 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
wd7000= [HW,SCSI]
|
wd7000= [HW,SCSI]
|
||||||
See header of drivers/scsi/wd7000.c.
|
See header of drivers/scsi/wd7000.c.
|
||||||
|
|
||||||
wdt= [WDT] Watchdog
|
watchdog timers [HW,WDT] For information on watchdog timers,
|
||||||
See Documentation/watchdog/wdt.txt.
|
see Documentation/watchdog/watchdog-parameters.txt
|
||||||
|
or other driver-specific files in the
|
||||||
|
Documentation/watchdog/ directory.
|
||||||
|
|
||||||
x2apic_phys [X86-64,APIC] Use x2apic physical mode instead of
|
x2apic_phys [X86-64,APIC] Use x2apic physical mode instead of
|
||||||
default x2apic cluster mode on platforms
|
default x2apic cluster mode on platforms
|
||||||
|
|||||||
@@ -656,6 +656,7 @@ struct kvm_clock_data {
|
|||||||
4.29 KVM_GET_VCPU_EVENTS
|
4.29 KVM_GET_VCPU_EVENTS
|
||||||
|
|
||||||
Capability: KVM_CAP_VCPU_EVENTS
|
Capability: KVM_CAP_VCPU_EVENTS
|
||||||
|
Extended by: KVM_CAP_INTR_SHADOW
|
||||||
Architectures: x86
|
Architectures: x86
|
||||||
Type: vm ioctl
|
Type: vm ioctl
|
||||||
Parameters: struct kvm_vcpu_event (out)
|
Parameters: struct kvm_vcpu_event (out)
|
||||||
@@ -676,7 +677,7 @@ struct kvm_vcpu_events {
|
|||||||
__u8 injected;
|
__u8 injected;
|
||||||
__u8 nr;
|
__u8 nr;
|
||||||
__u8 soft;
|
__u8 soft;
|
||||||
__u8 pad;
|
__u8 shadow;
|
||||||
} interrupt;
|
} interrupt;
|
||||||
struct {
|
struct {
|
||||||
__u8 injected;
|
__u8 injected;
|
||||||
@@ -688,9 +689,13 @@ struct kvm_vcpu_events {
|
|||||||
__u32 flags;
|
__u32 flags;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
KVM_VCPUEVENT_VALID_SHADOW may be set in the flags field to signal that
|
||||||
|
interrupt.shadow contains a valid state. Otherwise, this field is undefined.
|
||||||
|
|
||||||
4.30 KVM_SET_VCPU_EVENTS
|
4.30 KVM_SET_VCPU_EVENTS
|
||||||
|
|
||||||
Capability: KVM_CAP_VCPU_EVENTS
|
Capability: KVM_CAP_VCPU_EVENTS
|
||||||
|
Extended by: KVM_CAP_INTR_SHADOW
|
||||||
Architectures: x86
|
Architectures: x86
|
||||||
Type: vm ioctl
|
Type: vm ioctl
|
||||||
Parameters: struct kvm_vcpu_event (in)
|
Parameters: struct kvm_vcpu_event (in)
|
||||||
@@ -709,6 +714,183 @@ current in-kernel state. The bits are:
|
|||||||
KVM_VCPUEVENT_VALID_NMI_PENDING - transfer nmi.pending to the kernel
|
KVM_VCPUEVENT_VALID_NMI_PENDING - transfer nmi.pending to the kernel
|
||||||
KVM_VCPUEVENT_VALID_SIPI_VECTOR - transfer sipi_vector
|
KVM_VCPUEVENT_VALID_SIPI_VECTOR - transfer sipi_vector
|
||||||
|
|
||||||
|
If KVM_CAP_INTR_SHADOW is available, KVM_VCPUEVENT_VALID_SHADOW can be set in
|
||||||
|
the flags field to signal that interrupt.shadow contains a valid state and
|
||||||
|
shall be written into the VCPU.
|
||||||
|
|
||||||
|
4.32 KVM_GET_DEBUGREGS
|
||||||
|
|
||||||
|
Capability: KVM_CAP_DEBUGREGS
|
||||||
|
Architectures: x86
|
||||||
|
Type: vm ioctl
|
||||||
|
Parameters: struct kvm_debugregs (out)
|
||||||
|
Returns: 0 on success, -1 on error
|
||||||
|
|
||||||
|
Reads debug registers from the vcpu.
|
||||||
|
|
||||||
|
struct kvm_debugregs {
|
||||||
|
__u64 db[4];
|
||||||
|
__u64 dr6;
|
||||||
|
__u64 dr7;
|
||||||
|
__u64 flags;
|
||||||
|
__u64 reserved[9];
|
||||||
|
};
|
||||||
|
|
||||||
|
4.33 KVM_SET_DEBUGREGS
|
||||||
|
|
||||||
|
Capability: KVM_CAP_DEBUGREGS
|
||||||
|
Architectures: x86
|
||||||
|
Type: vm ioctl
|
||||||
|
Parameters: struct kvm_debugregs (in)
|
||||||
|
Returns: 0 on success, -1 on error
|
||||||
|
|
||||||
|
Writes debug registers into the vcpu.
|
||||||
|
|
||||||
|
See KVM_GET_DEBUGREGS for the data structure. The flags field is unused
|
||||||
|
yet and must be cleared on entry.
|
||||||
|
|
||||||
|
4.34 KVM_SET_USER_MEMORY_REGION
|
||||||
|
|
||||||
|
Capability: KVM_CAP_USER_MEM
|
||||||
|
Architectures: all
|
||||||
|
Type: vm ioctl
|
||||||
|
Parameters: struct kvm_userspace_memory_region (in)
|
||||||
|
Returns: 0 on success, -1 on error
|
||||||
|
|
||||||
|
struct kvm_userspace_memory_region {
|
||||||
|
__u32 slot;
|
||||||
|
__u32 flags;
|
||||||
|
__u64 guest_phys_addr;
|
||||||
|
__u64 memory_size; /* bytes */
|
||||||
|
__u64 userspace_addr; /* start of the userspace allocated memory */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* for kvm_memory_region::flags */
|
||||||
|
#define KVM_MEM_LOG_DIRTY_PAGES 1UL
|
||||||
|
|
||||||
|
This ioctl allows the user to create or modify a guest physical memory
|
||||||
|
slot. When changing an existing slot, it may be moved in the guest
|
||||||
|
physical memory space, or its flags may be modified. It may not be
|
||||||
|
resized. Slots may not overlap in guest physical address space.
|
||||||
|
|
||||||
|
Memory for the region is taken starting at the address denoted by the
|
||||||
|
field userspace_addr, which must point at user addressable memory for
|
||||||
|
the entire memory slot size. Any object may back this memory, including
|
||||||
|
anonymous memory, ordinary files, and hugetlbfs.
|
||||||
|
|
||||||
|
It is recommended that the lower 21 bits of guest_phys_addr and userspace_addr
|
||||||
|
be identical. This allows large pages in the guest to be backed by large
|
||||||
|
pages in the host.
|
||||||
|
|
||||||
|
The flags field supports just one flag, KVM_MEM_LOG_DIRTY_PAGES, which
|
||||||
|
instructs kvm to keep track of writes to memory within the slot. See
|
||||||
|
the KVM_GET_DIRTY_LOG ioctl.
|
||||||
|
|
||||||
|
When the KVM_CAP_SYNC_MMU capability, changes in the backing of the memory
|
||||||
|
region are automatically reflected into the guest. For example, an mmap()
|
||||||
|
that affects the region will be made visible immediately. Another example
|
||||||
|
is madvise(MADV_DROP).
|
||||||
|
|
||||||
|
It is recommended to use this API instead of the KVM_SET_MEMORY_REGION ioctl.
|
||||||
|
The KVM_SET_MEMORY_REGION does not allow fine grained control over memory
|
||||||
|
allocation and is deprecated.
|
||||||
|
|
||||||
|
4.35 KVM_SET_TSS_ADDR
|
||||||
|
|
||||||
|
Capability: KVM_CAP_SET_TSS_ADDR
|
||||||
|
Architectures: x86
|
||||||
|
Type: vm ioctl
|
||||||
|
Parameters: unsigned long tss_address (in)
|
||||||
|
Returns: 0 on success, -1 on error
|
||||||
|
|
||||||
|
This ioctl defines the physical address of a three-page region in the guest
|
||||||
|
physical address space. The region must be within the first 4GB of the
|
||||||
|
guest physical address space and must not conflict with any memory slot
|
||||||
|
or any mmio address. The guest may malfunction if it accesses this memory
|
||||||
|
region.
|
||||||
|
|
||||||
|
This ioctl is required on Intel-based hosts. This is needed on Intel hardware
|
||||||
|
because of a quirk in the virtualization implementation (see the internals
|
||||||
|
documentation when it pops into existence).
|
||||||
|
|
||||||
|
4.36 KVM_ENABLE_CAP
|
||||||
|
|
||||||
|
Capability: KVM_CAP_ENABLE_CAP
|
||||||
|
Architectures: ppc
|
||||||
|
Type: vcpu ioctl
|
||||||
|
Parameters: struct kvm_enable_cap (in)
|
||||||
|
Returns: 0 on success; -1 on error
|
||||||
|
|
||||||
|
+Not all extensions are enabled by default. Using this ioctl the application
|
||||||
|
can enable an extension, making it available to the guest.
|
||||||
|
|
||||||
|
On systems that do not support this ioctl, it always fails. On systems that
|
||||||
|
do support it, it only works for extensions that are supported for enablement.
|
||||||
|
|
||||||
|
To check if a capability can be enabled, the KVM_CHECK_EXTENSION ioctl should
|
||||||
|
be used.
|
||||||
|
|
||||||
|
struct kvm_enable_cap {
|
||||||
|
/* in */
|
||||||
|
__u32 cap;
|
||||||
|
|
||||||
|
The capability that is supposed to get enabled.
|
||||||
|
|
||||||
|
__u32 flags;
|
||||||
|
|
||||||
|
A bitfield indicating future enhancements. Has to be 0 for now.
|
||||||
|
|
||||||
|
__u64 args[4];
|
||||||
|
|
||||||
|
Arguments for enabling a feature. If a feature needs initial values to
|
||||||
|
function properly, this is the place to put them.
|
||||||
|
|
||||||
|
__u8 pad[64];
|
||||||
|
};
|
||||||
|
|
||||||
|
4.37 KVM_GET_MP_STATE
|
||||||
|
|
||||||
|
Capability: KVM_CAP_MP_STATE
|
||||||
|
Architectures: x86, ia64
|
||||||
|
Type: vcpu ioctl
|
||||||
|
Parameters: struct kvm_mp_state (out)
|
||||||
|
Returns: 0 on success; -1 on error
|
||||||
|
|
||||||
|
struct kvm_mp_state {
|
||||||
|
__u32 mp_state;
|
||||||
|
};
|
||||||
|
|
||||||
|
Returns the vcpu's current "multiprocessing state" (though also valid on
|
||||||
|
uniprocessor guests).
|
||||||
|
|
||||||
|
Possible values are:
|
||||||
|
|
||||||
|
- KVM_MP_STATE_RUNNABLE: the vcpu is currently running
|
||||||
|
- KVM_MP_STATE_UNINITIALIZED: the vcpu is an application processor (AP)
|
||||||
|
which has not yet received an INIT signal
|
||||||
|
- KVM_MP_STATE_INIT_RECEIVED: the vcpu has received an INIT signal, and is
|
||||||
|
now ready for a SIPI
|
||||||
|
- KVM_MP_STATE_HALTED: the vcpu has executed a HLT instruction and
|
||||||
|
is waiting for an interrupt
|
||||||
|
- KVM_MP_STATE_SIPI_RECEIVED: the vcpu has just received a SIPI (vector
|
||||||
|
accesible via KVM_GET_VCPU_EVENTS)
|
||||||
|
|
||||||
|
This ioctl is only useful after KVM_CREATE_IRQCHIP. Without an in-kernel
|
||||||
|
irqchip, the multiprocessing state must be maintained by userspace.
|
||||||
|
|
||||||
|
4.38 KVM_SET_MP_STATE
|
||||||
|
|
||||||
|
Capability: KVM_CAP_MP_STATE
|
||||||
|
Architectures: x86, ia64
|
||||||
|
Type: vcpu ioctl
|
||||||
|
Parameters: struct kvm_mp_state (in)
|
||||||
|
Returns: 0 on success; -1 on error
|
||||||
|
|
||||||
|
Sets the vcpu's current "multiprocessing state"; see KVM_GET_MP_STATE for
|
||||||
|
arguments.
|
||||||
|
|
||||||
|
This ioctl is only useful after KVM_CREATE_IRQCHIP. Without an in-kernel
|
||||||
|
irqchip, the multiprocessing state must be maintained by userspace.
|
||||||
|
|
||||||
5. The kvm_run structure
|
5. The kvm_run structure
|
||||||
|
|
||||||
@@ -820,6 +1002,13 @@ executed a memory-mapped I/O instruction which could not be satisfied
|
|||||||
by kvm. The 'data' member contains the written data if 'is_write' is
|
by kvm. The 'data' member contains the written data if 'is_write' is
|
||||||
true, and should be filled by application code otherwise.
|
true, and should be filled by application code otherwise.
|
||||||
|
|
||||||
|
NOTE: For KVM_EXIT_IO, KVM_EXIT_MMIO and KVM_EXIT_OSI, the corresponding
|
||||||
|
operations are complete (and guest state is consistent) only after userspace
|
||||||
|
has re-entered the kernel with KVM_RUN. The kernel side will first finish
|
||||||
|
incomplete operations and then check for pending signals. Userspace
|
||||||
|
can re-enter the guest with an unmasked signal pending to complete
|
||||||
|
pending operations.
|
||||||
|
|
||||||
/* KVM_EXIT_HYPERCALL */
|
/* KVM_EXIT_HYPERCALL */
|
||||||
struct {
|
struct {
|
||||||
__u64 nr;
|
__u64 nr;
|
||||||
@@ -829,7 +1018,9 @@ true, and should be filled by application code otherwise.
|
|||||||
__u32 pad;
|
__u32 pad;
|
||||||
} hypercall;
|
} hypercall;
|
||||||
|
|
||||||
Unused.
|
Unused. This was once used for 'hypercall to userspace'. To implement
|
||||||
|
such functionality, use KVM_EXIT_IO (x86) or KVM_EXIT_MMIO (all except s390).
|
||||||
|
Note KVM_EXIT_IO is significantly faster than KVM_EXIT_MMIO.
|
||||||
|
|
||||||
/* KVM_EXIT_TPR_ACCESS */
|
/* KVM_EXIT_TPR_ACCESS */
|
||||||
struct {
|
struct {
|
||||||
@@ -870,6 +1061,19 @@ s390 specific.
|
|||||||
|
|
||||||
powerpc specific.
|
powerpc specific.
|
||||||
|
|
||||||
|
/* KVM_EXIT_OSI */
|
||||||
|
struct {
|
||||||
|
__u64 gprs[32];
|
||||||
|
} osi;
|
||||||
|
|
||||||
|
MOL uses a special hypercall interface it calls 'OSI'. To enable it, we catch
|
||||||
|
hypercalls and exit with this exit struct that contains all the guest gprs.
|
||||||
|
|
||||||
|
If exit_reason is KVM_EXIT_OSI, then the vcpu has triggered such a hypercall.
|
||||||
|
Userspace can now handle the hypercall and when it's done modify the gprs as
|
||||||
|
necessary. Upon guest entry all guest GPRs will then be replaced by the values
|
||||||
|
in this struct.
|
||||||
|
|
||||||
/* Fix the size of the union. */
|
/* Fix the size of the union. */
|
||||||
char padding[256];
|
char padding[256];
|
||||||
};
|
};
|
||||||
|
|||||||
42
Documentation/kvm/cpuid.txt
Normal file
42
Documentation/kvm/cpuid.txt
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
KVM CPUID bits
|
||||||
|
Glauber Costa <glommer@redhat.com>, Red Hat Inc, 2010
|
||||||
|
=====================================================
|
||||||
|
|
||||||
|
A guest running on a kvm host, can check some of its features using
|
||||||
|
cpuid. This is not always guaranteed to work, since userspace can
|
||||||
|
mask-out some, or even all KVM-related cpuid features before launching
|
||||||
|
a guest.
|
||||||
|
|
||||||
|
KVM cpuid functions are:
|
||||||
|
|
||||||
|
function: KVM_CPUID_SIGNATURE (0x40000000)
|
||||||
|
returns : eax = 0,
|
||||||
|
ebx = 0x4b4d564b,
|
||||||
|
ecx = 0x564b4d56,
|
||||||
|
edx = 0x4d.
|
||||||
|
Note that this value in ebx, ecx and edx corresponds to the string "KVMKVMKVM".
|
||||||
|
This function queries the presence of KVM cpuid leafs.
|
||||||
|
|
||||||
|
|
||||||
|
function: define KVM_CPUID_FEATURES (0x40000001)
|
||||||
|
returns : ebx, ecx, edx = 0
|
||||||
|
eax = and OR'ed group of (1 << flag), where each flags is:
|
||||||
|
|
||||||
|
|
||||||
|
flag || value || meaning
|
||||||
|
=============================================================================
|
||||||
|
KVM_FEATURE_CLOCKSOURCE || 0 || kvmclock available at msrs
|
||||||
|
|| || 0x11 and 0x12.
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
KVM_FEATURE_NOP_IO_DELAY || 1 || not necessary to perform delays
|
||||||
|
|| || on PIO operations.
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
KVM_FEATURE_MMU_OP || 2 || deprecated.
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
KVM_FEATURE_CLOCKSOURCE2 || 3 || kvmclock available at msrs
|
||||||
|
|| || 0x4b564d00 and 0x4b564d01
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
KVM_FEATURE_CLOCKSOURCE_STABLE_BIT || 24 || host will warn if no guest-side
|
||||||
|
|| || per-cpu warps are expected in
|
||||||
|
|| || kvmclock.
|
||||||
|
------------------------------------------------------------------------------
|
||||||
304
Documentation/kvm/mmu.txt
Normal file
304
Documentation/kvm/mmu.txt
Normal file
@@ -0,0 +1,304 @@
|
|||||||
|
The x86 kvm shadow mmu
|
||||||
|
======================
|
||||||
|
|
||||||
|
The mmu (in arch/x86/kvm, files mmu.[ch] and paging_tmpl.h) is responsible
|
||||||
|
for presenting a standard x86 mmu to the guest, while translating guest
|
||||||
|
physical addresses to host physical addresses.
|
||||||
|
|
||||||
|
The mmu code attempts to satisfy the following requirements:
|
||||||
|
|
||||||
|
- correctness: the guest should not be able to determine that it is running
|
||||||
|
on an emulated mmu except for timing (we attempt to comply
|
||||||
|
with the specification, not emulate the characteristics of
|
||||||
|
a particular implementation such as tlb size)
|
||||||
|
- security: the guest must not be able to touch host memory not assigned
|
||||||
|
to it
|
||||||
|
- performance: minimize the performance penalty imposed by the mmu
|
||||||
|
- scaling: need to scale to large memory and large vcpu guests
|
||||||
|
- hardware: support the full range of x86 virtualization hardware
|
||||||
|
- integration: Linux memory management code must be in control of guest memory
|
||||||
|
so that swapping, page migration, page merging, transparent
|
||||||
|
hugepages, and similar features work without change
|
||||||
|
- dirty tracking: report writes to guest memory to enable live migration
|
||||||
|
and framebuffer-based displays
|
||||||
|
- footprint: keep the amount of pinned kernel memory low (most memory
|
||||||
|
should be shrinkable)
|
||||||
|
- reliablity: avoid multipage or GFP_ATOMIC allocations
|
||||||
|
|
||||||
|
Acronyms
|
||||||
|
========
|
||||||
|
|
||||||
|
pfn host page frame number
|
||||||
|
hpa host physical address
|
||||||
|
hva host virtual address
|
||||||
|
gfn guest frame number
|
||||||
|
gpa guest physical address
|
||||||
|
gva guest virtual address
|
||||||
|
ngpa nested guest physical address
|
||||||
|
ngva nested guest virtual address
|
||||||
|
pte page table entry (used also to refer generically to paging structure
|
||||||
|
entries)
|
||||||
|
gpte guest pte (referring to gfns)
|
||||||
|
spte shadow pte (referring to pfns)
|
||||||
|
tdp two dimensional paging (vendor neutral term for NPT and EPT)
|
||||||
|
|
||||||
|
Virtual and real hardware supported
|
||||||
|
===================================
|
||||||
|
|
||||||
|
The mmu supports first-generation mmu hardware, which allows an atomic switch
|
||||||
|
of the current paging mode and cr3 during guest entry, as well as
|
||||||
|
two-dimensional paging (AMD's NPT and Intel's EPT). The emulated hardware
|
||||||
|
it exposes is the traditional 2/3/4 level x86 mmu, with support for global
|
||||||
|
pages, pae, pse, pse36, cr0.wp, and 1GB pages. Work is in progress to support
|
||||||
|
exposing NPT capable hardware on NPT capable hosts.
|
||||||
|
|
||||||
|
Translation
|
||||||
|
===========
|
||||||
|
|
||||||
|
The primary job of the mmu is to program the processor's mmu to translate
|
||||||
|
addresses for the guest. Different translations are required at different
|
||||||
|
times:
|
||||||
|
|
||||||
|
- when guest paging is disabled, we translate guest physical addresses to
|
||||||
|
host physical addresses (gpa->hpa)
|
||||||
|
- when guest paging is enabled, we translate guest virtual addresses, to
|
||||||
|
guest physical addresses, to host physical addresses (gva->gpa->hpa)
|
||||||
|
- when the guest launches a guest of its own, we translate nested guest
|
||||||
|
virtual addresses, to nested guest physical addresses, to guest physical
|
||||||
|
addresses, to host physical addresses (ngva->ngpa->gpa->hpa)
|
||||||
|
|
||||||
|
The primary challenge is to encode between 1 and 3 translations into hardware
|
||||||
|
that support only 1 (traditional) and 2 (tdp) translations. When the
|
||||||
|
number of required translations matches the hardware, the mmu operates in
|
||||||
|
direct mode; otherwise it operates in shadow mode (see below).
|
||||||
|
|
||||||
|
Memory
|
||||||
|
======
|
||||||
|
|
||||||
|
Guest memory (gpa) is part of the user address space of the process that is
|
||||||
|
using kvm. Userspace defines the translation between guest addresses and user
|
||||||
|
addresses (gpa->hva); note that two gpas may alias to the same gva, but not
|
||||||
|
vice versa.
|
||||||
|
|
||||||
|
These gvas may be backed using any method available to the host: anonymous
|
||||||
|
memory, file backed memory, and device memory. Memory might be paged by the
|
||||||
|
host at any time.
|
||||||
|
|
||||||
|
Events
|
||||||
|
======
|
||||||
|
|
||||||
|
The mmu is driven by events, some from the guest, some from the host.
|
||||||
|
|
||||||
|
Guest generated events:
|
||||||
|
- writes to control registers (especially cr3)
|
||||||
|
- invlpg/invlpga instruction execution
|
||||||
|
- access to missing or protected translations
|
||||||
|
|
||||||
|
Host generated events:
|
||||||
|
- changes in the gpa->hpa translation (either through gpa->hva changes or
|
||||||
|
through hva->hpa changes)
|
||||||
|
- memory pressure (the shrinker)
|
||||||
|
|
||||||
|
Shadow pages
|
||||||
|
============
|
||||||
|
|
||||||
|
The principal data structure is the shadow page, 'struct kvm_mmu_page'. A
|
||||||
|
shadow page contains 512 sptes, which can be either leaf or nonleaf sptes. A
|
||||||
|
shadow page may contain a mix of leaf and nonleaf sptes.
|
||||||
|
|
||||||
|
A nonleaf spte allows the hardware mmu to reach the leaf pages and
|
||||||
|
is not related to a translation directly. It points to other shadow pages.
|
||||||
|
|
||||||
|
A leaf spte corresponds to either one or two translations encoded into
|
||||||
|
one paging structure entry. These are always the lowest level of the
|
||||||
|
translation stack, with optional higher level translations left to NPT/EPT.
|
||||||
|
Leaf ptes point at guest pages.
|
||||||
|
|
||||||
|
The following table shows translations encoded by leaf ptes, with higher-level
|
||||||
|
translations in parentheses:
|
||||||
|
|
||||||
|
Non-nested guests:
|
||||||
|
nonpaging: gpa->hpa
|
||||||
|
paging: gva->gpa->hpa
|
||||||
|
paging, tdp: (gva->)gpa->hpa
|
||||||
|
Nested guests:
|
||||||
|
non-tdp: ngva->gpa->hpa (*)
|
||||||
|
tdp: (ngva->)ngpa->gpa->hpa
|
||||||
|
|
||||||
|
(*) the guest hypervisor will encode the ngva->gpa translation into its page
|
||||||
|
tables if npt is not present
|
||||||
|
|
||||||
|
Shadow pages contain the following information:
|
||||||
|
role.level:
|
||||||
|
The level in the shadow paging hierarchy that this shadow page belongs to.
|
||||||
|
1=4k sptes, 2=2M sptes, 3=1G sptes, etc.
|
||||||
|
role.direct:
|
||||||
|
If set, leaf sptes reachable from this page are for a linear range.
|
||||||
|
Examples include real mode translation, large guest pages backed by small
|
||||||
|
host pages, and gpa->hpa translations when NPT or EPT is active.
|
||||||
|
The linear range starts at (gfn << PAGE_SHIFT) and its size is determined
|
||||||
|
by role.level (2MB for first level, 1GB for second level, 0.5TB for third
|
||||||
|
level, 256TB for fourth level)
|
||||||
|
If clear, this page corresponds to a guest page table denoted by the gfn
|
||||||
|
field.
|
||||||
|
role.quadrant:
|
||||||
|
When role.cr4_pae=0, the guest uses 32-bit gptes while the host uses 64-bit
|
||||||
|
sptes. That means a guest page table contains more ptes than the host,
|
||||||
|
so multiple shadow pages are needed to shadow one guest page.
|
||||||
|
For first-level shadow pages, role.quadrant can be 0 or 1 and denotes the
|
||||||
|
first or second 512-gpte block in the guest page table. For second-level
|
||||||
|
page tables, each 32-bit gpte is converted to two 64-bit sptes
|
||||||
|
(since each first-level guest page is shadowed by two first-level
|
||||||
|
shadow pages) so role.quadrant takes values in the range 0..3. Each
|
||||||
|
quadrant maps 1GB virtual address space.
|
||||||
|
role.access:
|
||||||
|
Inherited guest access permissions in the form uwx. Note execute
|
||||||
|
permission is positive, not negative.
|
||||||
|
role.invalid:
|
||||||
|
The page is invalid and should not be used. It is a root page that is
|
||||||
|
currently pinned (by a cpu hardware register pointing to it); once it is
|
||||||
|
unpinned it will be destroyed.
|
||||||
|
role.cr4_pae:
|
||||||
|
Contains the value of cr4.pae for which the page is valid (e.g. whether
|
||||||
|
32-bit or 64-bit gptes are in use).
|
||||||
|
role.cr4_nxe:
|
||||||
|
Contains the value of efer.nxe for which the page is valid.
|
||||||
|
role.cr0_wp:
|
||||||
|
Contains the value of cr0.wp for which the page is valid.
|
||||||
|
gfn:
|
||||||
|
Either the guest page table containing the translations shadowed by this
|
||||||
|
page, or the base page frame for linear translations. See role.direct.
|
||||||
|
spt:
|
||||||
|
A pageful of 64-bit sptes containing the translations for this page.
|
||||||
|
Accessed by both kvm and hardware.
|
||||||
|
The page pointed to by spt will have its page->private pointing back
|
||||||
|
at the shadow page structure.
|
||||||
|
sptes in spt point either at guest pages, or at lower-level shadow pages.
|
||||||
|
Specifically, if sp1 and sp2 are shadow pages, then sp1->spt[n] may point
|
||||||
|
at __pa(sp2->spt). sp2 will point back at sp1 through parent_pte.
|
||||||
|
The spt array forms a DAG structure with the shadow page as a node, and
|
||||||
|
guest pages as leaves.
|
||||||
|
gfns:
|
||||||
|
An array of 512 guest frame numbers, one for each present pte. Used to
|
||||||
|
perform a reverse map from a pte to a gfn.
|
||||||
|
slot_bitmap:
|
||||||
|
A bitmap containing one bit per memory slot. If the page contains a pte
|
||||||
|
mapping a page from memory slot n, then bit n of slot_bitmap will be set
|
||||||
|
(if a page is aliased among several slots, then it is not guaranteed that
|
||||||
|
all slots will be marked).
|
||||||
|
Used during dirty logging to avoid scanning a shadow page if none if its
|
||||||
|
pages need tracking.
|
||||||
|
root_count:
|
||||||
|
A counter keeping track of how many hardware registers (guest cr3 or
|
||||||
|
pdptrs) are now pointing at the page. While this counter is nonzero, the
|
||||||
|
page cannot be destroyed. See role.invalid.
|
||||||
|
multimapped:
|
||||||
|
Whether there exist multiple sptes pointing at this page.
|
||||||
|
parent_pte/parent_ptes:
|
||||||
|
If multimapped is zero, parent_pte points at the single spte that points at
|
||||||
|
this page's spt. Otherwise, parent_ptes points at a data structure
|
||||||
|
with a list of parent_ptes.
|
||||||
|
unsync:
|
||||||
|
If true, then the translations in this page may not match the guest's
|
||||||
|
translation. This is equivalent to the state of the tlb when a pte is
|
||||||
|
changed but before the tlb entry is flushed. Accordingly, unsync ptes
|
||||||
|
are synchronized when the guest executes invlpg or flushes its tlb by
|
||||||
|
other means. Valid for leaf pages.
|
||||||
|
unsync_children:
|
||||||
|
How many sptes in the page point at pages that are unsync (or have
|
||||||
|
unsynchronized children).
|
||||||
|
unsync_child_bitmap:
|
||||||
|
A bitmap indicating which sptes in spt point (directly or indirectly) at
|
||||||
|
pages that may be unsynchronized. Used to quickly locate all unsychronized
|
||||||
|
pages reachable from a given page.
|
||||||
|
|
||||||
|
Reverse map
|
||||||
|
===========
|
||||||
|
|
||||||
|
The mmu maintains a reverse mapping whereby all ptes mapping a page can be
|
||||||
|
reached given its gfn. This is used, for example, when swapping out a page.
|
||||||
|
|
||||||
|
Synchronized and unsynchronized pages
|
||||||
|
=====================================
|
||||||
|
|
||||||
|
The guest uses two events to synchronize its tlb and page tables: tlb flushes
|
||||||
|
and page invalidations (invlpg).
|
||||||
|
|
||||||
|
A tlb flush means that we need to synchronize all sptes reachable from the
|
||||||
|
guest's cr3. This is expensive, so we keep all guest page tables write
|
||||||
|
protected, and synchronize sptes to gptes when a gpte is written.
|
||||||
|
|
||||||
|
A special case is when a guest page table is reachable from the current
|
||||||
|
guest cr3. In this case, the guest is obliged to issue an invlpg instruction
|
||||||
|
before using the translation. We take advantage of that by removing write
|
||||||
|
protection from the guest page, and allowing the guest to modify it freely.
|
||||||
|
We synchronize modified gptes when the guest invokes invlpg. This reduces
|
||||||
|
the amount of emulation we have to do when the guest modifies multiple gptes,
|
||||||
|
or when the a guest page is no longer used as a page table and is used for
|
||||||
|
random guest data.
|
||||||
|
|
||||||
|
As a side effect we have to resynchronize all reachable unsynchronized shadow
|
||||||
|
pages on a tlb flush.
|
||||||
|
|
||||||
|
|
||||||
|
Reaction to events
|
||||||
|
==================
|
||||||
|
|
||||||
|
- guest page fault (or npt page fault, or ept violation)
|
||||||
|
|
||||||
|
This is the most complicated event. The cause of a page fault can be:
|
||||||
|
|
||||||
|
- a true guest fault (the guest translation won't allow the access) (*)
|
||||||
|
- access to a missing translation
|
||||||
|
- access to a protected translation
|
||||||
|
- when logging dirty pages, memory is write protected
|
||||||
|
- synchronized shadow pages are write protected (*)
|
||||||
|
- access to untranslatable memory (mmio)
|
||||||
|
|
||||||
|
(*) not applicable in direct mode
|
||||||
|
|
||||||
|
Handling a page fault is performed as follows:
|
||||||
|
|
||||||
|
- if needed, walk the guest page tables to determine the guest translation
|
||||||
|
(gva->gpa or ngpa->gpa)
|
||||||
|
- if permissions are insufficient, reflect the fault back to the guest
|
||||||
|
- determine the host page
|
||||||
|
- if this is an mmio request, there is no host page; call the emulator
|
||||||
|
to emulate the instruction instead
|
||||||
|
- walk the shadow page table to find the spte for the translation,
|
||||||
|
instantiating missing intermediate page tables as necessary
|
||||||
|
- try to unsynchronize the page
|
||||||
|
- if successful, we can let the guest continue and modify the gpte
|
||||||
|
- emulate the instruction
|
||||||
|
- if failed, unshadow the page and let the guest continue
|
||||||
|
- update any translations that were modified by the instruction
|
||||||
|
|
||||||
|
invlpg handling:
|
||||||
|
|
||||||
|
- walk the shadow page hierarchy and drop affected translations
|
||||||
|
- try to reinstantiate the indicated translation in the hope that the
|
||||||
|
guest will use it in the near future
|
||||||
|
|
||||||
|
Guest control register updates:
|
||||||
|
|
||||||
|
- mov to cr3
|
||||||
|
- look up new shadow roots
|
||||||
|
- synchronize newly reachable shadow pages
|
||||||
|
|
||||||
|
- mov to cr0/cr4/efer
|
||||||
|
- set up mmu context for new paging mode
|
||||||
|
- look up new shadow roots
|
||||||
|
- synchronize newly reachable shadow pages
|
||||||
|
|
||||||
|
Host translation updates:
|
||||||
|
|
||||||
|
- mmu notifier called with updated hva
|
||||||
|
- look up affected sptes through reverse map
|
||||||
|
- drop (or update) translations
|
||||||
|
|
||||||
|
Further reading
|
||||||
|
===============
|
||||||
|
|
||||||
|
- NPT presentation from KVM Forum 2008
|
||||||
|
http://www.linux-kvm.org/wiki/images/c/c8/KvmForum2008%24kdf2008_21.pdf
|
||||||
|
|
||||||
@@ -292,13 +292,13 @@ sysfs notes:
|
|||||||
|
|
||||||
Warning: when in NVRAM mode, the volume up/down/mute
|
Warning: when in NVRAM mode, the volume up/down/mute
|
||||||
keys are synthesized according to changes in the mixer,
|
keys are synthesized according to changes in the mixer,
|
||||||
so you have to use volume up or volume down to unmute,
|
which uses a single volume up or volume down hotkey
|
||||||
as per the ThinkPad volume mixer user interface. When
|
press to unmute, as per the ThinkPad volume mixer user
|
||||||
in ACPI event mode, volume up/down/mute are reported as
|
interface. When in ACPI event mode, volume up/down/mute
|
||||||
separate events, but this behaviour may be corrected in
|
events are reported by the firmware and can behave
|
||||||
future releases of this driver, in which case the
|
differently (and that behaviour changes with firmware
|
||||||
ThinkPad volume mixer user interface semantics will be
|
version -- not just with firmware models -- as well as
|
||||||
enforced.
|
OSI(Linux) state).
|
||||||
|
|
||||||
hotkey_poll_freq:
|
hotkey_poll_freq:
|
||||||
frequency in Hz for hot key polling. It must be between
|
frequency in Hz for hot key polling. It must be between
|
||||||
@@ -309,7 +309,7 @@ sysfs notes:
|
|||||||
will cause hot key presses that require NVRAM polling
|
will cause hot key presses that require NVRAM polling
|
||||||
to never be reported.
|
to never be reported.
|
||||||
|
|
||||||
Setting hotkey_poll_freq too low will cause repeated
|
Setting hotkey_poll_freq too low may cause repeated
|
||||||
pressings of the same hot key to be misreported as a
|
pressings of the same hot key to be misreported as a
|
||||||
single key press, or to not even be detected at all.
|
single key press, or to not even be detected at all.
|
||||||
The recommended polling frequency is 10Hz.
|
The recommended polling frequency is 10Hz.
|
||||||
@@ -397,6 +397,7 @@ ACPI Scan
|
|||||||
event code Key Notes
|
event code Key Notes
|
||||||
|
|
||||||
0x1001 0x00 FN+F1 -
|
0x1001 0x00 FN+F1 -
|
||||||
|
|
||||||
0x1002 0x01 FN+F2 IBM: battery (rare)
|
0x1002 0x01 FN+F2 IBM: battery (rare)
|
||||||
Lenovo: Screen lock
|
Lenovo: Screen lock
|
||||||
|
|
||||||
@@ -404,7 +405,8 @@ event code Key Notes
|
|||||||
this hot key, even with hot keys
|
this hot key, even with hot keys
|
||||||
disabled or with Fn+F3 masked
|
disabled or with Fn+F3 masked
|
||||||
off
|
off
|
||||||
IBM: screen lock
|
IBM: screen lock, often turns
|
||||||
|
off the ThinkLight as side-effect
|
||||||
Lenovo: battery
|
Lenovo: battery
|
||||||
|
|
||||||
0x1004 0x03 FN+F4 Sleep button (ACPI sleep button
|
0x1004 0x03 FN+F4 Sleep button (ACPI sleep button
|
||||||
@@ -433,7 +435,8 @@ event code Key Notes
|
|||||||
Do you feel lucky today?
|
Do you feel lucky today?
|
||||||
|
|
||||||
0x1008 0x07 FN+F8 IBM: toggle screen expand
|
0x1008 0x07 FN+F8 IBM: toggle screen expand
|
||||||
Lenovo: configure UltraNav
|
Lenovo: configure UltraNav,
|
||||||
|
or toggle screen expand
|
||||||
|
|
||||||
0x1009 0x08 FN+F9 -
|
0x1009 0x08 FN+F9 -
|
||||||
.. .. ..
|
.. .. ..
|
||||||
@@ -444,7 +447,7 @@ event code Key Notes
|
|||||||
either through the ACPI event,
|
either through the ACPI event,
|
||||||
or through a hotkey event.
|
or through a hotkey event.
|
||||||
The firmware may refuse to
|
The firmware may refuse to
|
||||||
generate further FN+F4 key
|
generate further FN+F12 key
|
||||||
press events until a S3 or S4
|
press events until a S3 or S4
|
||||||
ACPI sleep cycle is performed,
|
ACPI sleep cycle is performed,
|
||||||
or some time passes.
|
or some time passes.
|
||||||
@@ -512,15 +515,19 @@ events for switches:
|
|||||||
SW_RFKILL_ALL T60 and later hardware rfkill rocker switch
|
SW_RFKILL_ALL T60 and later hardware rfkill rocker switch
|
||||||
SW_TABLET_MODE Tablet ThinkPads HKEY events 0x5009 and 0x500A
|
SW_TABLET_MODE Tablet ThinkPads HKEY events 0x5009 and 0x500A
|
||||||
|
|
||||||
Non hot-key ACPI HKEY event map:
|
Non hotkey ACPI HKEY event map:
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
Events that are not propagated by the driver, except for legacy
|
||||||
|
compatibility purposes when hotkey_report_mode is set to 1:
|
||||||
|
|
||||||
0x5001 Lid closed
|
0x5001 Lid closed
|
||||||
0x5002 Lid opened
|
0x5002 Lid opened
|
||||||
0x5009 Tablet swivel: switched to tablet mode
|
0x5009 Tablet swivel: switched to tablet mode
|
||||||
0x500A Tablet swivel: switched to normal mode
|
0x500A Tablet swivel: switched to normal mode
|
||||||
0x7000 Radio Switch may have changed state
|
0x7000 Radio Switch may have changed state
|
||||||
|
|
||||||
The above events are not propagated by the driver, except for legacy
|
Events that are never propagated by the driver:
|
||||||
compatibility purposes when hotkey_report_mode is set to 1.
|
|
||||||
|
|
||||||
0x2304 System is waking up from suspend to undock
|
0x2304 System is waking up from suspend to undock
|
||||||
0x2305 System is waking up from suspend to eject bay
|
0x2305 System is waking up from suspend to eject bay
|
||||||
@@ -528,14 +535,39 @@ compatibility purposes when hotkey_report_mode is set to 1.
|
|||||||
0x2405 System is waking up from hibernation to eject bay
|
0x2405 System is waking up from hibernation to eject bay
|
||||||
0x5010 Brightness level changed/control event
|
0x5010 Brightness level changed/control event
|
||||||
|
|
||||||
The above events are never propagated by the driver.
|
Events that are propagated by the driver to userspace:
|
||||||
|
|
||||||
|
0x2313 ALARM: System is waking up from suspend because
|
||||||
|
the battery is nearly empty
|
||||||
|
0x2413 ALARM: System is waking up from hibernation because
|
||||||
|
the battery is nearly empty
|
||||||
0x3003 Bay ejection (see 0x2x05) complete, can sleep again
|
0x3003 Bay ejection (see 0x2x05) complete, can sleep again
|
||||||
|
0x3006 Bay hotplug request (hint to power up SATA link when
|
||||||
|
the optical drive tray is ejected)
|
||||||
0x4003 Undocked (see 0x2x04), can sleep again
|
0x4003 Undocked (see 0x2x04), can sleep again
|
||||||
0x500B Tablet pen inserted into its storage bay
|
0x500B Tablet pen inserted into its storage bay
|
||||||
0x500C Tablet pen removed from its storage bay
|
0x500C Tablet pen removed from its storage bay
|
||||||
|
0x6011 ALARM: battery is too hot
|
||||||
|
0x6012 ALARM: battery is extremely hot
|
||||||
|
0x6021 ALARM: a sensor is too hot
|
||||||
|
0x6022 ALARM: a sensor is extremely hot
|
||||||
|
0x6030 System thermal table changed
|
||||||
|
|
||||||
The above events are propagated by the driver.
|
Battery nearly empty alarms are a last resort attempt to get the
|
||||||
|
operating system to hibernate or shutdown cleanly (0x2313), or shutdown
|
||||||
|
cleanly (0x2413) before power is lost. They must be acted upon, as the
|
||||||
|
wake up caused by the firmware will have negated most safety nets...
|
||||||
|
|
||||||
|
When any of the "too hot" alarms happen, according to Lenovo the user
|
||||||
|
should suspend or hibernate the laptop (and in the case of battery
|
||||||
|
alarms, unplug the AC adapter) to let it cool down. These alarms do
|
||||||
|
signal that something is wrong, they should never happen on normal
|
||||||
|
operating conditions.
|
||||||
|
|
||||||
|
The "extremely hot" alarms are emergencies. According to Lenovo, the
|
||||||
|
operating system is to force either an immediate suspend or hibernate
|
||||||
|
cycle, or a system shutdown. Obviously, something is very wrong if this
|
||||||
|
happens.
|
||||||
|
|
||||||
Compatibility notes:
|
Compatibility notes:
|
||||||
|
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ Table of Contents
|
|||||||
3.3 Configuring Bonding Manually with Ifenslave
|
3.3 Configuring Bonding Manually with Ifenslave
|
||||||
3.3.1 Configuring Multiple Bonds Manually
|
3.3.1 Configuring Multiple Bonds Manually
|
||||||
3.4 Configuring Bonding Manually via Sysfs
|
3.4 Configuring Bonding Manually via Sysfs
|
||||||
|
3.5 Overriding Configuration for Special Cases
|
||||||
|
|
||||||
4. Querying Bonding Configuration
|
4. Querying Bonding Configuration
|
||||||
4.1 Bonding Configuration
|
4.1 Bonding Configuration
|
||||||
@@ -1318,8 +1319,87 @@ echo 2000 > /sys/class/net/bond1/bonding/arp_interval
|
|||||||
echo +eth2 > /sys/class/net/bond1/bonding/slaves
|
echo +eth2 > /sys/class/net/bond1/bonding/slaves
|
||||||
echo +eth3 > /sys/class/net/bond1/bonding/slaves
|
echo +eth3 > /sys/class/net/bond1/bonding/slaves
|
||||||
|
|
||||||
|
3.5 Overriding Configuration for Special Cases
|
||||||
|
----------------------------------------------
|
||||||
|
When using the bonding driver, the physical port which transmits a frame is
|
||||||
|
typically selected by the bonding driver, and is not relevant to the user or
|
||||||
|
system administrator. The output port is simply selected using the policies of
|
||||||
|
the selected bonding mode. On occasion however, it is helpful to direct certain
|
||||||
|
classes of traffic to certain physical interfaces on output to implement
|
||||||
|
slightly more complex policies. For example, to reach a web server over a
|
||||||
|
bonded interface in which eth0 connects to a private network, while eth1
|
||||||
|
connects via a public network, it may be desirous to bias the bond to send said
|
||||||
|
traffic over eth0 first, using eth1 only as a fall back, while all other traffic
|
||||||
|
can safely be sent over either interface. Such configurations may be achieved
|
||||||
|
using the traffic control utilities inherent in linux.
|
||||||
|
|
||||||
4. Querying Bonding Configuration
|
By default the bonding driver is multiqueue aware and 16 queues are created
|
||||||
|
when the driver initializes (see Documentation/networking/multiqueue.txt
|
||||||
|
for details). If more or less queues are desired the module parameter
|
||||||
|
tx_queues can be used to change this value. There is no sysfs parameter
|
||||||
|
available as the allocation is done at module init time.
|
||||||
|
|
||||||
|
The output of the file /proc/net/bonding/bondX has changed so the output Queue
|
||||||
|
ID is now printed for each slave:
|
||||||
|
|
||||||
|
Bonding Mode: fault-tolerance (active-backup)
|
||||||
|
Primary Slave: None
|
||||||
|
Currently Active Slave: eth0
|
||||||
|
MII Status: up
|
||||||
|
MII Polling Interval (ms): 0
|
||||||
|
Up Delay (ms): 0
|
||||||
|
Down Delay (ms): 0
|
||||||
|
|
||||||
|
Slave Interface: eth0
|
||||||
|
MII Status: up
|
||||||
|
Link Failure Count: 0
|
||||||
|
Permanent HW addr: 00:1a:a0:12:8f:cb
|
||||||
|
Slave queue ID: 0
|
||||||
|
|
||||||
|
Slave Interface: eth1
|
||||||
|
MII Status: up
|
||||||
|
Link Failure Count: 0
|
||||||
|
Permanent HW addr: 00:1a:a0:12:8f:cc
|
||||||
|
Slave queue ID: 2
|
||||||
|
|
||||||
|
The queue_id for a slave can be set using the command:
|
||||||
|
|
||||||
|
# echo "eth1:2" > /sys/class/net/bond0/bonding/queue_id
|
||||||
|
|
||||||
|
Any interface that needs a queue_id set should set it with multiple calls
|
||||||
|
like the one above until proper priorities are set for all interfaces. On
|
||||||
|
distributions that allow configuration via initscripts, multiple 'queue_id'
|
||||||
|
arguments can be added to BONDING_OPTS to set all needed slave queues.
|
||||||
|
|
||||||
|
These queue id's can be used in conjunction with the tc utility to configure
|
||||||
|
a multiqueue qdisc and filters to bias certain traffic to transmit on certain
|
||||||
|
slave devices. For instance, say we wanted, in the above configuration to
|
||||||
|
force all traffic bound to 192.168.1.100 to use eth1 in the bond as its output
|
||||||
|
device. The following commands would accomplish this:
|
||||||
|
|
||||||
|
# tc qdisc add dev bond0 handle 1 root multiq
|
||||||
|
|
||||||
|
# tc filter add dev bond0 protocol ip parent 1: prio 1 u32 match ip dst \
|
||||||
|
192.168.1.100 action skbedit queue_mapping 2
|
||||||
|
|
||||||
|
These commands tell the kernel to attach a multiqueue queue discipline to the
|
||||||
|
bond0 interface and filter traffic enqueued to it, such that packets with a dst
|
||||||
|
ip of 192.168.1.100 have their output queue mapping value overwritten to 2.
|
||||||
|
This value is then passed into the driver, causing the normal output path
|
||||||
|
selection policy to be overridden, selecting instead qid 2, which maps to eth1.
|
||||||
|
|
||||||
|
Note that qid values begin at 1. Qid 0 is reserved to initiate to the driver
|
||||||
|
that normal output policy selection should take place. One benefit to simply
|
||||||
|
leaving the qid for a slave to 0 is the multiqueue awareness in the bonding
|
||||||
|
driver that is now present. This awareness allows tc filters to be placed on
|
||||||
|
slave devices as well as bond devices and the bonding driver will simply act as
|
||||||
|
a pass-through for selecting output queues on the slave device rather than
|
||||||
|
output port selection.
|
||||||
|
|
||||||
|
This feature first appeared in bonding driver version 3.7.0 and support for
|
||||||
|
output slave selection was limited to round-robin and active-backup modes.
|
||||||
|
|
||||||
|
4 Querying Bonding Configuration
|
||||||
=================================
|
=================================
|
||||||
|
|
||||||
4.1 Bonding Configuration
|
4.1 Bonding Configuration
|
||||||
|
|||||||
208
Documentation/networking/caif/spi_porting.txt
Normal file
208
Documentation/networking/caif/spi_porting.txt
Normal file
@@ -0,0 +1,208 @@
|
|||||||
|
- CAIF SPI porting -
|
||||||
|
|
||||||
|
- CAIF SPI basics:
|
||||||
|
|
||||||
|
Running CAIF over SPI needs some extra setup, owing to the nature of SPI.
|
||||||
|
Two extra GPIOs have been added in order to negotiate the transfers
|
||||||
|
between the master and the slave. The minimum requirement for running
|
||||||
|
CAIF over SPI is a SPI slave chip and two GPIOs (more details below).
|
||||||
|
Please note that running as a slave implies that you need to keep up
|
||||||
|
with the master clock. An overrun or underrun event is fatal.
|
||||||
|
|
||||||
|
- CAIF SPI framework:
|
||||||
|
|
||||||
|
To make porting as easy as possible, the CAIF SPI has been divided in
|
||||||
|
two parts. The first part (called the interface part) deals with all
|
||||||
|
generic functionality such as length framing, SPI frame negotiation
|
||||||
|
and SPI frame delivery and transmission. The other part is the CAIF
|
||||||
|
SPI slave device part, which is the module that you have to write if
|
||||||
|
you want to run SPI CAIF on a new hardware. This part takes care of
|
||||||
|
the physical hardware, both with regard to SPI and to GPIOs.
|
||||||
|
|
||||||
|
- Implementing a CAIF SPI device:
|
||||||
|
|
||||||
|
- Functionality provided by the CAIF SPI slave device:
|
||||||
|
|
||||||
|
In order to implement a SPI device you will, as a minimum,
|
||||||
|
need to implement the following
|
||||||
|
functions:
|
||||||
|
|
||||||
|
int (*init_xfer) (struct cfspi_xfer * xfer, struct cfspi_dev *dev):
|
||||||
|
|
||||||
|
This function is called by the CAIF SPI interface to give
|
||||||
|
you a chance to set up your hardware to be ready to receive
|
||||||
|
a stream of data from the master. The xfer structure contains
|
||||||
|
both physical and logical adresses, as well as the total length
|
||||||
|
of the transfer in both directions.The dev parameter can be used
|
||||||
|
to map to different CAIF SPI slave devices.
|
||||||
|
|
||||||
|
void (*sig_xfer) (bool xfer, struct cfspi_dev *dev):
|
||||||
|
|
||||||
|
This function is called by the CAIF SPI interface when the output
|
||||||
|
(SPI_INT) GPIO needs to change state. The boolean value of the xfer
|
||||||
|
variable indicates whether the GPIO should be asserted (HIGH) or
|
||||||
|
deasserted (LOW). The dev parameter can be used to map to different CAIF
|
||||||
|
SPI slave devices.
|
||||||
|
|
||||||
|
- Functionality provided by the CAIF SPI interface:
|
||||||
|
|
||||||
|
void (*ss_cb) (bool assert, struct cfspi_ifc *ifc);
|
||||||
|
|
||||||
|
This function is called by the CAIF SPI slave device in order to
|
||||||
|
signal a change of state of the input GPIO (SS) to the interface.
|
||||||
|
Only active edges are mandatory to be reported.
|
||||||
|
This function can be called from IRQ context (recommended in order
|
||||||
|
not to introduce latency). The ifc parameter should be the pointer
|
||||||
|
returned from the platform probe function in the SPI device structure.
|
||||||
|
|
||||||
|
void (*xfer_done_cb) (struct cfspi_ifc *ifc);
|
||||||
|
|
||||||
|
This function is called by the CAIF SPI slave device in order to
|
||||||
|
report that a transfer is completed. This function should only be
|
||||||
|
called once both the transmission and the reception are completed.
|
||||||
|
This function can be called from IRQ context (recommended in order
|
||||||
|
not to introduce latency). The ifc parameter should be the pointer
|
||||||
|
returned from the platform probe function in the SPI device structure.
|
||||||
|
|
||||||
|
- Connecting the bits and pieces:
|
||||||
|
|
||||||
|
- Filling in the SPI slave device structure:
|
||||||
|
|
||||||
|
Connect the necessary callback functions.
|
||||||
|
Indicate clock speed (used to calculate toggle delays).
|
||||||
|
Chose a suitable name (helps debugging if you use several CAIF
|
||||||
|
SPI slave devices).
|
||||||
|
Assign your private data (can be used to map to your structure).
|
||||||
|
|
||||||
|
- Filling in the SPI slave platform device structure:
|
||||||
|
Add name of driver to connect to ("cfspi_sspi").
|
||||||
|
Assign the SPI slave device structure as platform data.
|
||||||
|
|
||||||
|
- Padding:
|
||||||
|
|
||||||
|
In order to optimize throughput, a number of SPI padding options are provided.
|
||||||
|
Padding can be enabled independently for uplink and downlink transfers.
|
||||||
|
Padding can be enabled for the head, the tail and for the total frame size.
|
||||||
|
The padding needs to be correctly configured on both sides of the link.
|
||||||
|
The padding can be changed via module parameters in cfspi_sspi.c or via
|
||||||
|
the sysfs directory of the cfspi_sspi driver (before device registration).
|
||||||
|
|
||||||
|
- CAIF SPI device template:
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (C) ST-Ericsson AB 2010
|
||||||
|
* Author: Daniel Martensson / Daniel.Martensson@stericsson.com
|
||||||
|
* License terms: GNU General Public License (GPL), version 2.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <linux/init.h>
|
||||||
|
#include <linux/module.h>
|
||||||
|
#include <linux/device.h>
|
||||||
|
#include <linux/wait.h>
|
||||||
|
#include <linux/interrupt.h>
|
||||||
|
#include <linux/dma-mapping.h>
|
||||||
|
#include <net/caif/caif_spi.h>
|
||||||
|
|
||||||
|
MODULE_LICENSE("GPL");
|
||||||
|
|
||||||
|
struct sspi_struct {
|
||||||
|
struct cfspi_dev sdev;
|
||||||
|
struct cfspi_xfer *xfer;
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct sspi_struct slave;
|
||||||
|
static struct platform_device slave_device;
|
||||||
|
|
||||||
|
static irqreturn_t sspi_irq(int irq, void *arg)
|
||||||
|
{
|
||||||
|
/* You only need to trigger on an edge to the active state of the
|
||||||
|
* SS signal. Once a edge is detected, the ss_cb() function should be
|
||||||
|
* called with the parameter assert set to true. It is OK
|
||||||
|
* (and even advised) to call the ss_cb() function in IRQ context in
|
||||||
|
* order not to add any delay. */
|
||||||
|
|
||||||
|
return IRQ_HANDLED;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sspi_complete(void *context)
|
||||||
|
{
|
||||||
|
/* Normally the DMA or the SPI framework will call you back
|
||||||
|
* in something similar to this. The only thing you need to
|
||||||
|
* do is to call the xfer_done_cb() function, providing the pointer
|
||||||
|
* to the CAIF SPI interface. It is OK to call this function
|
||||||
|
* from IRQ context. */
|
||||||
|
}
|
||||||
|
|
||||||
|
static int sspi_init_xfer(struct cfspi_xfer *xfer, struct cfspi_dev *dev)
|
||||||
|
{
|
||||||
|
/* Store transfer info. For a normal implementation you should
|
||||||
|
* set up your DMA here and make sure that you are ready to
|
||||||
|
* receive the data from the master SPI. */
|
||||||
|
|
||||||
|
struct sspi_struct *sspi = (struct sspi_struct *)dev->priv;
|
||||||
|
|
||||||
|
sspi->xfer = xfer;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sspi_sig_xfer(bool xfer, struct cfspi_dev *dev)
|
||||||
|
{
|
||||||
|
/* If xfer is true then you should assert the SPI_INT to indicate to
|
||||||
|
* the master that you are ready to recieve the data from the master
|
||||||
|
* SPI. If xfer is false then you should de-assert SPI_INT to indicate
|
||||||
|
* that the transfer is done.
|
||||||
|
*/
|
||||||
|
|
||||||
|
struct sspi_struct *sspi = (struct sspi_struct *)dev->priv;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sspi_release(struct device *dev)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Here you should release your SPI device resources.
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
static int __init sspi_init(void)
|
||||||
|
{
|
||||||
|
/* Here you should initialize your SPI device by providing the
|
||||||
|
* necessary functions, clock speed, name and private data. Once
|
||||||
|
* done, you can register your device with the
|
||||||
|
* platform_device_register() function. This function will return
|
||||||
|
* with the CAIF SPI interface initialized. This is probably also
|
||||||
|
* the place where you should set up your GPIOs, interrupts and SPI
|
||||||
|
* resources. */
|
||||||
|
|
||||||
|
int res = 0;
|
||||||
|
|
||||||
|
/* Initialize slave device. */
|
||||||
|
slave.sdev.init_xfer = sspi_init_xfer;
|
||||||
|
slave.sdev.sig_xfer = sspi_sig_xfer;
|
||||||
|
slave.sdev.clk_mhz = 13;
|
||||||
|
slave.sdev.priv = &slave;
|
||||||
|
slave.sdev.name = "spi_sspi";
|
||||||
|
slave_device.dev.release = sspi_release;
|
||||||
|
|
||||||
|
/* Initialize platform device. */
|
||||||
|
slave_device.name = "cfspi_sspi";
|
||||||
|
slave_device.dev.platform_data = &slave.sdev;
|
||||||
|
|
||||||
|
/* Register platform device. */
|
||||||
|
res = platform_device_register(&slave_device);
|
||||||
|
if (res) {
|
||||||
|
printk(KERN_WARNING "sspi_init: failed to register dev.\n");
|
||||||
|
return -ENODEV;
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void __exit sspi_exit(void)
|
||||||
|
{
|
||||||
|
platform_device_del(&slave_device);
|
||||||
|
}
|
||||||
|
|
||||||
|
module_init(sspi_init);
|
||||||
|
module_exit(sspi_exit);
|
||||||
@@ -903,7 +903,7 @@ arp_ignore - INTEGER
|
|||||||
arp_notify - BOOLEAN
|
arp_notify - BOOLEAN
|
||||||
Define mode for notification of address and device changes.
|
Define mode for notification of address and device changes.
|
||||||
0 - (default): do nothing
|
0 - (default): do nothing
|
||||||
1 - Generate gratuitous arp replies when device is brought up
|
1 - Generate gratuitous arp requests when device is brought up
|
||||||
or hardware address changes.
|
or hardware address changes.
|
||||||
|
|
||||||
arp_accept - BOOLEAN
|
arp_accept - BOOLEAN
|
||||||
|
|||||||
@@ -493,6 +493,32 @@ The user can also use poll() to check if a buffer is available:
|
|||||||
pfd.events = POLLOUT;
|
pfd.events = POLLOUT;
|
||||||
retval = poll(&pfd, 1, timeout);
|
retval = poll(&pfd, 1, timeout);
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
+ PACKET_TIMESTAMP
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
The PACKET_TIMESTAMP setting determines the source of the timestamp in
|
||||||
|
the packet meta information. If your NIC is capable of timestamping
|
||||||
|
packets in hardware, you can request those hardware timestamps to used.
|
||||||
|
Note: you may need to enable the generation of hardware timestamps with
|
||||||
|
SIOCSHWTSTAMP.
|
||||||
|
|
||||||
|
PACKET_TIMESTAMP accepts the same integer bit field as
|
||||||
|
SO_TIMESTAMPING. However, only the SOF_TIMESTAMPING_SYS_HARDWARE
|
||||||
|
and SOF_TIMESTAMPING_RAW_HARDWARE values are recognized by
|
||||||
|
PACKET_TIMESTAMP. SOF_TIMESTAMPING_SYS_HARDWARE takes precedence over
|
||||||
|
SOF_TIMESTAMPING_RAW_HARDWARE if both bits are set.
|
||||||
|
|
||||||
|
int req = 0;
|
||||||
|
req |= SOF_TIMESTAMPING_SYS_HARDWARE;
|
||||||
|
setsockopt(fd, SOL_PACKET, PACKET_TIMESTAMP, (void *) &req, sizeof(req))
|
||||||
|
|
||||||
|
If PACKET_TIMESTAMP is not set, a software timestamp generated inside
|
||||||
|
the networking stack is used (the behavior before this setting was added).
|
||||||
|
|
||||||
|
See include/linux/net_tstamp.h and Documentation/networking/timestamping
|
||||||
|
for more information on hardware timestamps.
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
+ THANKS
|
+ THANKS
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -151,6 +151,8 @@ Examples:
|
|||||||
|
|
||||||
pgset stop aborts injection. Also, ^C aborts generator.
|
pgset stop aborts injection. Also, ^C aborts generator.
|
||||||
|
|
||||||
|
pgset "rate 300M" set rate to 300 Mb/s
|
||||||
|
pgset "ratep 1000000" set rate to 1Mpps
|
||||||
|
|
||||||
Example scripts
|
Example scripts
|
||||||
===============
|
===============
|
||||||
@@ -241,6 +243,9 @@ src6
|
|||||||
flows
|
flows
|
||||||
flowlen
|
flowlen
|
||||||
|
|
||||||
|
rate
|
||||||
|
ratep
|
||||||
|
|
||||||
References:
|
References:
|
||||||
ftp://robur.slu.se/pub/Linux/net-development/pktgen-testing/
|
ftp://robur.slu.se/pub/Linux/net-development/pktgen-testing/
|
||||||
ftp://robur.slu.se/pub/Linux/net-development/pktgen-testing/examples/
|
ftp://robur.slu.se/pub/Linux/net-development/pktgen-testing/examples/
|
||||||
|
|||||||
@@ -256,9 +256,13 @@ characters, each representing a particular tainted value.
|
|||||||
9: 'A' if the ACPI table has been overridden.
|
9: 'A' if the ACPI table has been overridden.
|
||||||
|
|
||||||
10: 'W' if a warning has previously been issued by the kernel.
|
10: 'W' if a warning has previously been issued by the kernel.
|
||||||
|
(Though some warnings may set more specific taint flags.)
|
||||||
|
|
||||||
11: 'C' if a staging driver has been loaded.
|
11: 'C' if a staging driver has been loaded.
|
||||||
|
|
||||||
|
12: 'I' if the kernel is working around a severe bug in the platform
|
||||||
|
firmware (BIOS or similar).
|
||||||
|
|
||||||
The primary reason for the 'Tainted: ' string is to tell kernel
|
The primary reason for the 'Tainted: ' string is to tell kernel
|
||||||
debuggers if this is a clean kernel or if anything unusual has
|
debuggers if this is a clean kernel or if anything unusual has
|
||||||
occurred. Tainting is permanent: even if an offending module is
|
occurred. Tainting is permanent: even if an offending module is
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
18
Documentation/powerpc/dts-bindings/4xx/reboot.txt
Normal file
18
Documentation/powerpc/dts-bindings/4xx/reboot.txt
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
Reboot property to control system reboot on PPC4xx systems:
|
||||||
|
|
||||||
|
By setting "reset_type" to one of the following values, the default
|
||||||
|
software reset mechanism may be overidden. Here the possible values of
|
||||||
|
"reset_type":
|
||||||
|
|
||||||
|
1 - PPC4xx core reset
|
||||||
|
2 - PPC4xx chip reset
|
||||||
|
3 - PPC4xx system reset (default)
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
cpu@0 {
|
||||||
|
device_type = "cpu";
|
||||||
|
model = "PowerPC,440SPe";
|
||||||
|
...
|
||||||
|
reset-type = <2>; /* Use chip-reset */
|
||||||
|
};
|
||||||
@@ -11,7 +11,7 @@ Required properties:
|
|||||||
83xx, "fsl,mpc8572-gpio" for 85xx and "fsl,mpc8610-gpio" for 86xx.
|
83xx, "fsl,mpc8572-gpio" for 85xx and "fsl,mpc8610-gpio" for 86xx.
|
||||||
- #gpio-cells : Should be two. The first cell is the pin number and the
|
- #gpio-cells : Should be two. The first cell is the pin number and the
|
||||||
second cell is used to specify optional parameters (currently unused).
|
second cell is used to specify optional parameters (currently unused).
|
||||||
- interrupts : Interrupt mapping for GPIO IRQ (currently unused).
|
- interrupts : Interrupt mapping for GPIO IRQ.
|
||||||
- interrupt-parent : Phandle for the interrupt controller that
|
- interrupt-parent : Phandle for the interrupt controller that
|
||||||
services interrupts for this device.
|
services interrupts for this device.
|
||||||
- gpio-controller : Marks the port as GPIO controller.
|
- gpio-controller : Marks the port as GPIO controller.
|
||||||
@@ -38,3 +38,23 @@ Example of gpio-controller nodes for a MPC8347 SoC:
|
|||||||
|
|
||||||
See booting-without-of.txt for details of how to specify GPIO
|
See booting-without-of.txt for details of how to specify GPIO
|
||||||
information for devices.
|
information for devices.
|
||||||
|
|
||||||
|
To use GPIO pins as interrupt sources for peripherals, specify the
|
||||||
|
GPIO controller as the interrupt parent and define GPIO number +
|
||||||
|
trigger mode using the interrupts property, which is defined like
|
||||||
|
this:
|
||||||
|
|
||||||
|
interrupts = <number trigger>, where:
|
||||||
|
- number: GPIO pin (0..31)
|
||||||
|
- trigger: trigger mode:
|
||||||
|
2 = trigger on falling edge
|
||||||
|
3 = trigger on both edges
|
||||||
|
|
||||||
|
Example of device using this is:
|
||||||
|
|
||||||
|
funkyfpga@0 {
|
||||||
|
compatible = "funky-fpga";
|
||||||
|
...
|
||||||
|
interrupts = <4 3>;
|
||||||
|
interrupt-parent = <&gpio1>;
|
||||||
|
};
|
||||||
|
|||||||
95
Documentation/spi/ep93xx_spi
Normal file
95
Documentation/spi/ep93xx_spi
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
Cirrus EP93xx SPI controller driver HOWTO
|
||||||
|
=========================================
|
||||||
|
|
||||||
|
ep93xx_spi driver brings SPI master support for EP93xx SPI controller. Chip
|
||||||
|
selects are implemented with GPIO lines.
|
||||||
|
|
||||||
|
NOTE: If possible, don't use SFRMOUT (SFRM1) signal as a chip select. It will
|
||||||
|
not work correctly (it cannot be controlled by software). Use GPIO lines
|
||||||
|
instead.
|
||||||
|
|
||||||
|
Sample configuration
|
||||||
|
====================
|
||||||
|
|
||||||
|
Typically driver configuration is done in platform board files (the files under
|
||||||
|
arch/arm/mach-ep93xx/*.c). In this example we configure MMC over SPI through
|
||||||
|
this driver on TS-7260 board. You can adapt the code to suit your needs.
|
||||||
|
|
||||||
|
This example uses EGPIO9 as SD/MMC card chip select (this is wired in DIO1
|
||||||
|
header on the board).
|
||||||
|
|
||||||
|
You need to select CONFIG_MMC_SPI to use mmc_spi driver.
|
||||||
|
|
||||||
|
arch/arm/mach-ep93xx/ts72xx.c:
|
||||||
|
|
||||||
|
...
|
||||||
|
#include <linux/gpio.h>
|
||||||
|
#include <linux/spi/spi.h>
|
||||||
|
|
||||||
|
#include <mach/ep93xx_spi.h>
|
||||||
|
|
||||||
|
/* this is our GPIO line used for chip select */
|
||||||
|
#define MMC_CHIP_SELECT_GPIO EP93XX_GPIO_LINE_EGPIO9
|
||||||
|
|
||||||
|
static int ts72xx_mmc_spi_setup(struct spi_device *spi)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
|
||||||
|
err = gpio_request(MMC_CHIP_SELECT_GPIO, spi->modalias);
|
||||||
|
if (err)
|
||||||
|
return err;
|
||||||
|
|
||||||
|
gpio_direction_output(MMC_CHIP_SELECT_GPIO, 1);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ts72xx_mmc_spi_cleanup(struct spi_device *spi)
|
||||||
|
{
|
||||||
|
gpio_set_value(MMC_CHIP_SELECT_GPIO, 1);
|
||||||
|
gpio_direction_input(MMC_CHIP_SELECT_GPIO);
|
||||||
|
gpio_free(MMC_CHIP_SELECT_GPIO);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ts72xx_mmc_spi_cs_control(struct spi_device *spi, int value)
|
||||||
|
{
|
||||||
|
gpio_set_value(MMC_CHIP_SELECT_GPIO, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct ep93xx_spi_chip_ops ts72xx_mmc_spi_ops = {
|
||||||
|
.setup = ts72xx_mmc_spi_setup,
|
||||||
|
.cleanup = ts72xx_mmc_spi_cleanup,
|
||||||
|
.cs_control = ts72xx_mmc_spi_cs_control,
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct spi_board_info ts72xx_spi_devices[] __initdata = {
|
||||||
|
{
|
||||||
|
.modalias = "mmc_spi",
|
||||||
|
.controller_data = &ts72xx_mmc_spi_ops,
|
||||||
|
/*
|
||||||
|
* We use 10 MHz even though the maximum is 7.4 MHz. The driver
|
||||||
|
* will limit it automatically to max. frequency.
|
||||||
|
*/
|
||||||
|
.max_speed_hz = 10 * 1000 * 1000,
|
||||||
|
.bus_num = 0,
|
||||||
|
.chip_select = 0,
|
||||||
|
.mode = SPI_MODE_0,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct ep93xx_spi_info ts72xx_spi_info = {
|
||||||
|
.num_chipselect = ARRAY_SIZE(ts72xx_spi_devices),
|
||||||
|
};
|
||||||
|
|
||||||
|
static void __init ts72xx_init_machine(void)
|
||||||
|
{
|
||||||
|
...
|
||||||
|
ep93xx_register_spi(&ts72xx_spi_info, ts72xx_spi_devices,
|
||||||
|
ARRAY_SIZE(ts72xx_spi_devices));
|
||||||
|
}
|
||||||
|
|
||||||
|
Thanks to
|
||||||
|
=========
|
||||||
|
Martin Guy, H. Hartley Sweeten and others who helped me during development of
|
||||||
|
the driver. Simplemachines.it donated me a Sim.One board which I used testing
|
||||||
|
the driver on EP9307.
|
||||||
@@ -58,10 +58,10 @@ static void do_msg(int fd, int len)
|
|||||||
len = sizeof buf;
|
len = sizeof buf;
|
||||||
|
|
||||||
buf[0] = 0xaa;
|
buf[0] = 0xaa;
|
||||||
xfer[0].tx_buf = (__u64) buf;
|
xfer[0].tx_buf = (unsigned long)buf;
|
||||||
xfer[0].len = 1;
|
xfer[0].len = 1;
|
||||||
|
|
||||||
xfer[1].rx_buf = (__u64) buf;
|
xfer[1].rx_buf = (unsigned long) buf;
|
||||||
xfer[1].len = len;
|
xfer[1].len = len;
|
||||||
|
|
||||||
status = ioctl(fd, SPI_IOC_MESSAGE(2), xfer);
|
status = ioctl(fd, SPI_IOC_MESSAGE(2), xfer);
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ files can be found in mm/swap.c.
|
|||||||
Currently, these files are in /proc/sys/vm:
|
Currently, these files are in /proc/sys/vm:
|
||||||
|
|
||||||
- block_dump
|
- block_dump
|
||||||
|
- compact_memory
|
||||||
- dirty_background_bytes
|
- dirty_background_bytes
|
||||||
- dirty_background_ratio
|
- dirty_background_ratio
|
||||||
- dirty_bytes
|
- dirty_bytes
|
||||||
@@ -26,6 +27,7 @@ Currently, these files are in /proc/sys/vm:
|
|||||||
- dirty_ratio
|
- dirty_ratio
|
||||||
- dirty_writeback_centisecs
|
- dirty_writeback_centisecs
|
||||||
- drop_caches
|
- drop_caches
|
||||||
|
- extfrag_threshold
|
||||||
- hugepages_treat_as_movable
|
- hugepages_treat_as_movable
|
||||||
- hugetlb_shm_group
|
- hugetlb_shm_group
|
||||||
- laptop_mode
|
- laptop_mode
|
||||||
@@ -64,6 +66,15 @@ information on block I/O debugging is in Documentation/laptops/laptop-mode.txt.
|
|||||||
|
|
||||||
==============================================================
|
==============================================================
|
||||||
|
|
||||||
|
compact_memory
|
||||||
|
|
||||||
|
Available only when CONFIG_COMPACTION is set. When 1 is written to the file,
|
||||||
|
all zones are compacted such that free memory is available in contiguous
|
||||||
|
blocks where possible. This can be important for example in the allocation of
|
||||||
|
huge pages although processes will also directly compact memory as required.
|
||||||
|
|
||||||
|
==============================================================
|
||||||
|
|
||||||
dirty_background_bytes
|
dirty_background_bytes
|
||||||
|
|
||||||
Contains the amount of dirty memory at which the pdflush background writeback
|
Contains the amount of dirty memory at which the pdflush background writeback
|
||||||
@@ -139,6 +150,20 @@ user should run `sync' first.
|
|||||||
|
|
||||||
==============================================================
|
==============================================================
|
||||||
|
|
||||||
|
extfrag_threshold
|
||||||
|
|
||||||
|
This parameter affects whether the kernel will compact memory or direct
|
||||||
|
reclaim to satisfy a high-order allocation. /proc/extfrag_index shows what
|
||||||
|
the fragmentation index for each order is in each zone in the system. Values
|
||||||
|
tending towards 0 imply allocations would fail due to lack of memory,
|
||||||
|
values towards 1000 imply failures are due to fragmentation and -1 implies
|
||||||
|
that the allocation will succeed as long as watermarks are met.
|
||||||
|
|
||||||
|
The kernel will not compact memory in a zone if the
|
||||||
|
fragmentation index is <= extfrag_threshold. The default value is 500.
|
||||||
|
|
||||||
|
==============================================================
|
||||||
|
|
||||||
hugepages_treat_as_movable
|
hugepages_treat_as_movable
|
||||||
|
|
||||||
This parameter is only useful when kernelcore= is specified at boot time to
|
This parameter is only useful when kernelcore= is specified at boot time to
|
||||||
|
|||||||
@@ -10,7 +10,6 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <fcntl.h>
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <linux/hpet.h>
|
#include <linux/hpet.h>
|
||||||
@@ -24,7 +23,6 @@ extern void hpet_read(int, const char **);
|
|||||||
|
|
||||||
#include <sys/poll.h>
|
#include <sys/poll.h>
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
#include <signal.h>
|
|
||||||
|
|
||||||
struct hpet_command {
|
struct hpet_command {
|
||||||
char *command;
|
char *command;
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
#define PROTECTION (PROT_READ | PROT_WRITE)
|
#define PROTECTION (PROT_READ | PROT_WRITE)
|
||||||
|
|
||||||
#ifndef MAP_HUGETLB
|
#ifndef MAP_HUGETLB
|
||||||
#define MAP_HUGETLB 0x40
|
#define MAP_HUGETLB 0x40000 /* arch specific */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Only ia64 requires this */
|
/* Only ia64 requires this */
|
||||||
|
|||||||
@@ -1,41 +1,149 @@
|
|||||||
Started Nov 1999 by Kanoj Sarcar <kanoj@sgi.com>
|
Started Nov 1999 by Kanoj Sarcar <kanoj@sgi.com>
|
||||||
|
|
||||||
The intent of this file is to have an uptodate, running commentary
|
What is NUMA?
|
||||||
from different people about NUMA specific code in the Linux vm.
|
|
||||||
|
|
||||||
What is NUMA? It is an architecture where the memory access times
|
This question can be answered from a couple of perspectives: the
|
||||||
for different regions of memory from a given processor varies
|
hardware view and the Linux software view.
|
||||||
according to the "distance" of the memory region from the processor.
|
|
||||||
Each region of memory to which access times are the same from any
|
|
||||||
cpu, is called a node. On such architectures, it is beneficial if
|
|
||||||
the kernel tries to minimize inter node communications. Schemes
|
|
||||||
for this range from kernel text and read-only data replication
|
|
||||||
across nodes, and trying to house all the data structures that
|
|
||||||
key components of the kernel need on memory on that node.
|
|
||||||
|
|
||||||
Currently, all the numa support is to provide efficient handling
|
From the hardware perspective, a NUMA system is a computer platform that
|
||||||
of widely discontiguous physical memory, so architectures which
|
comprises multiple components or assemblies each of which may contain 0
|
||||||
are not NUMA but can have huge holes in the physical address space
|
or more CPUs, local memory, and/or IO buses. For brevity and to
|
||||||
can use the same code. All this code is bracketed by CONFIG_DISCONTIGMEM.
|
disambiguate the hardware view of these physical components/assemblies
|
||||||
|
from the software abstraction thereof, we'll call the components/assemblies
|
||||||
|
'cells' in this document.
|
||||||
|
|
||||||
The initial port includes NUMAizing the bootmem allocator code by
|
Each of the 'cells' may be viewed as an SMP [symmetric multi-processor] subset
|
||||||
encapsulating all the pieces of information into a bootmem_data_t
|
of the system--although some components necessary for a stand-alone SMP system
|
||||||
structure. Node specific calls have been added to the allocator.
|
may not be populated on any given cell. The cells of the NUMA system are
|
||||||
In theory, any platform which uses the bootmem allocator should
|
connected together with some sort of system interconnect--e.g., a crossbar or
|
||||||
be able to put the bootmem and mem_map data structures anywhere
|
point-to-point link are common types of NUMA system interconnects. Both of
|
||||||
it deems best.
|
these types of interconnects can be aggregated to create NUMA platforms with
|
||||||
|
cells at multiple distances from other cells.
|
||||||
|
|
||||||
Each node's page allocation data structures have also been encapsulated
|
For Linux, the NUMA platforms of interest are primarily what is known as Cache
|
||||||
into a pg_data_t. The bootmem_data_t is just one part of this. To
|
Coherent NUMA or ccNUMA systems. With ccNUMA systems, all memory is visible
|
||||||
make the code look uniform between NUMA and regular UMA platforms,
|
to and accessible from any CPU attached to any cell and cache coherency
|
||||||
UMA platforms have a statically allocated pg_data_t too (contig_page_data).
|
is handled in hardware by the processor caches and/or the system interconnect.
|
||||||
For the sake of uniformity, the function num_online_nodes() is also defined
|
|
||||||
for all platforms. As we run benchmarks, we might decide to NUMAize
|
|
||||||
more variables like low_on_memory, nr_free_pages etc into the pg_data_t.
|
|
||||||
|
|
||||||
The NUMA aware page allocation code currently tries to allocate pages
|
Memory access time and effective memory bandwidth varies depending on how far
|
||||||
from different nodes in a round robin manner. This will be changed to
|
away the cell containing the CPU or IO bus making the memory access is from the
|
||||||
do concentratic circle search, starting from current node, once the
|
cell containing the target memory. For example, access to memory by CPUs
|
||||||
NUMA port achieves more maturity. The call alloc_pages_node has been
|
attached to the same cell will experience faster access times and higher
|
||||||
added, so that drivers can make the call and not worry about whether
|
bandwidths than accesses to memory on other, remote cells. NUMA platforms
|
||||||
it is running on a NUMA or UMA platform.
|
can have cells at multiple remote distances from any given cell.
|
||||||
|
|
||||||
|
Platform vendors don't build NUMA systems just to make software developers'
|
||||||
|
lives interesting. Rather, this architecture is a means to provide scalable
|
||||||
|
memory bandwidth. However, to achieve scalable memory bandwidth, system and
|
||||||
|
application software must arrange for a large majority of the memory references
|
||||||
|
[cache misses] to be to "local" memory--memory on the same cell, if any--or
|
||||||
|
to the closest cell with memory.
|
||||||
|
|
||||||
|
This leads to the Linux software view of a NUMA system:
|
||||||
|
|
||||||
|
Linux divides the system's hardware resources into multiple software
|
||||||
|
abstractions called "nodes". Linux maps the nodes onto the physical cells
|
||||||
|
of the hardware platform, abstracting away some of the details for some
|
||||||
|
architectures. As with physical cells, software nodes may contain 0 or more
|
||||||
|
CPUs, memory and/or IO buses. And, again, memory accesses to memory on
|
||||||
|
"closer" nodes--nodes that map to closer cells--will generally experience
|
||||||
|
faster access times and higher effective bandwidth than accesses to more
|
||||||
|
remote cells.
|
||||||
|
|
||||||
|
For some architectures, such as x86, Linux will "hide" any node representing a
|
||||||
|
physical cell that has no memory attached, and reassign any CPUs attached to
|
||||||
|
that cell to a node representing a cell that does have memory. Thus, on
|
||||||
|
these architectures, one cannot assume that all CPUs that Linux associates with
|
||||||
|
a given node will see the same local memory access times and bandwidth.
|
||||||
|
|
||||||
|
In addition, for some architectures, again x86 is an example, Linux supports
|
||||||
|
the emulation of additional nodes. For NUMA emulation, linux will carve up
|
||||||
|
the existing nodes--or the system memory for non-NUMA platforms--into multiple
|
||||||
|
nodes. Each emulated node will manage a fraction of the underlying cells'
|
||||||
|
physical memory. NUMA emluation is useful for testing NUMA kernel and
|
||||||
|
application features on non-NUMA platforms, and as a sort of memory resource
|
||||||
|
management mechanism when used together with cpusets.
|
||||||
|
[see Documentation/cgroups/cpusets.txt]
|
||||||
|
|
||||||
|
For each node with memory, Linux constructs an independent memory management
|
||||||
|
subsystem, complete with its own free page lists, in-use page lists, usage
|
||||||
|
statistics and locks to mediate access. In addition, Linux constructs for
|
||||||
|
each memory zone [one or more of DMA, DMA32, NORMAL, HIGH_MEMORY, MOVABLE],
|
||||||
|
an ordered "zonelist". A zonelist specifies the zones/nodes to visit when a
|
||||||
|
selected zone/node cannot satisfy the allocation request. This situation,
|
||||||
|
when a zone has no available memory to satisfy a request, is called
|
||||||
|
"overflow" or "fallback".
|
||||||
|
|
||||||
|
Because some nodes contain multiple zones containing different types of
|
||||||
|
memory, Linux must decide whether to order the zonelists such that allocations
|
||||||
|
fall back to the same zone type on a different node, or to a different zone
|
||||||
|
type on the same node. This is an important consideration because some zones,
|
||||||
|
such as DMA or DMA32, represent relatively scarce resources. Linux chooses
|
||||||
|
a default zonelist order based on the sizes of the various zone types relative
|
||||||
|
to the total memory of the node and the total memory of the system. The
|
||||||
|
default zonelist order may be overridden using the numa_zonelist_order kernel
|
||||||
|
boot parameter or sysctl. [see Documentation/kernel-parameters.txt and
|
||||||
|
Documentation/sysctl/vm.txt]
|
||||||
|
|
||||||
|
By default, Linux will attempt to satisfy memory allocation requests from the
|
||||||
|
node to which the CPU that executes the request is assigned. Specifically,
|
||||||
|
Linux will attempt to allocate from the first node in the appropriate zonelist
|
||||||
|
for the node where the request originates. This is called "local allocation."
|
||||||
|
If the "local" node cannot satisfy the request, the kernel will examine other
|
||||||
|
nodes' zones in the selected zonelist looking for the first zone in the list
|
||||||
|
that can satisfy the request.
|
||||||
|
|
||||||
|
Local allocation will tend to keep subsequent access to the allocated memory
|
||||||
|
"local" to the underlying physical resources and off the system interconnect--
|
||||||
|
as long as the task on whose behalf the kernel allocated some memory does not
|
||||||
|
later migrate away from that memory. The Linux scheduler is aware of the
|
||||||
|
NUMA topology of the platform--embodied in the "scheduling domains" data
|
||||||
|
structures [see Documentation/scheduler/sched-domains.txt]--and the scheduler
|
||||||
|
attempts to minimize task migration to distant scheduling domains. However,
|
||||||
|
the scheduler does not take a task's NUMA footprint into account directly.
|
||||||
|
Thus, under sufficient imbalance, tasks can migrate between nodes, remote
|
||||||
|
from their initial node and kernel data structures.
|
||||||
|
|
||||||
|
System administrators and application designers can restrict a task's migration
|
||||||
|
to improve NUMA locality using various CPU affinity command line interfaces,
|
||||||
|
such as taskset(1) and numactl(1), and program interfaces such as
|
||||||
|
sched_setaffinity(2). Further, one can modify the kernel's default local
|
||||||
|
allocation behavior using Linux NUMA memory policy.
|
||||||
|
[see Documentation/vm/numa_memory_policy.]
|
||||||
|
|
||||||
|
System administrators can restrict the CPUs and nodes' memories that a non-
|
||||||
|
privileged user can specify in the scheduling or NUMA commands and functions
|
||||||
|
using control groups and CPUsets. [see Documentation/cgroups/CPUsets.txt]
|
||||||
|
|
||||||
|
On architectures that do not hide memoryless nodes, Linux will include only
|
||||||
|
zones [nodes] with memory in the zonelists. This means that for a memoryless
|
||||||
|
node the "local memory node"--the node of the first zone in CPU's node's
|
||||||
|
zonelist--will not be the node itself. Rather, it will be the node that the
|
||||||
|
kernel selected as the nearest node with memory when it built the zonelists.
|
||||||
|
So, default, local allocations will succeed with the kernel supplying the
|
||||||
|
closest available memory. This is a consequence of the same mechanism that
|
||||||
|
allows such allocations to fallback to other nearby nodes when a node that
|
||||||
|
does contain memory overflows.
|
||||||
|
|
||||||
|
Some kernel allocations do not want or cannot tolerate this allocation fallback
|
||||||
|
behavior. Rather they want to be sure they get memory from the specified node
|
||||||
|
or get notified that the node has no free memory. This is usually the case when
|
||||||
|
a subsystem allocates per CPU memory resources, for example.
|
||||||
|
|
||||||
|
A typical model for making such an allocation is to obtain the node id of the
|
||||||
|
node to which the "current CPU" is attached using one of the kernel's
|
||||||
|
numa_node_id() or CPU_to_node() functions and then request memory from only
|
||||||
|
the node id returned. When such an allocation fails, the requesting subsystem
|
||||||
|
may revert to its own fallback path. The slab kernel memory allocator is an
|
||||||
|
example of this. Or, the subsystem may choose to disable or not to enable
|
||||||
|
itself on allocation failure. The kernel profiling subsystem is an example of
|
||||||
|
this.
|
||||||
|
|
||||||
|
If the architecture supports--does not hide--memoryless nodes, then CPUs
|
||||||
|
attached to memoryless nodes would always incur the fallback path overhead
|
||||||
|
or some subsystems would fail to initialize if they attempted to allocated
|
||||||
|
memory exclusively from a node without memory. To support such
|
||||||
|
architectures transparently, kernel subsystems can use the numa_mem_id()
|
||||||
|
or cpu_to_mem() function to locate the "local memory node" for the calling or
|
||||||
|
specified CPU. Again, this is the same node from which default, local page
|
||||||
|
allocations will be attempted.
|
||||||
|
|||||||
@@ -1,10 +1,15 @@
|
|||||||
00-INDEX
|
00-INDEX
|
||||||
- this file.
|
- this file.
|
||||||
|
hpwdt.txt
|
||||||
|
- information on the HP iLO2 NMI watchdog
|
||||||
pcwd-watchdog.txt
|
pcwd-watchdog.txt
|
||||||
- documentation for Berkshire Products PC Watchdog ISA cards.
|
- documentation for Berkshire Products PC Watchdog ISA cards.
|
||||||
src/
|
src/
|
||||||
- directory holding watchdog related example programs.
|
- directory holding watchdog related example programs.
|
||||||
watchdog-api.txt
|
watchdog-api.txt
|
||||||
- description of the Linux Watchdog driver API.
|
- description of the Linux Watchdog driver API.
|
||||||
|
watchdog-parameters.txt
|
||||||
|
- information on driver parameters (for drivers other than
|
||||||
|
the ones that have driver-specific files here)
|
||||||
wdt.txt
|
wdt.txt
|
||||||
- description of the Watchdog Timer Interfaces for Linux.
|
- description of the Watchdog Timer Interfaces for Linux.
|
||||||
|
|||||||
390
Documentation/watchdog/watchdog-parameters.txt
Normal file
390
Documentation/watchdog/watchdog-parameters.txt
Normal file
@@ -0,0 +1,390 @@
|
|||||||
|
This file provides information on the module parameters of many of
|
||||||
|
the Linux watchdog drivers. Watchdog driver parameter specs should
|
||||||
|
be listed here unless the driver has its own driver-specific information
|
||||||
|
file.
|
||||||
|
|
||||||
|
|
||||||
|
See Documentation/kernel-parameters.txt for information on
|
||||||
|
providing kernel parameters for builtin drivers versus loadable
|
||||||
|
modules.
|
||||||
|
|
||||||
|
|
||||||
|
-------------------------------------------------
|
||||||
|
acquirewdt:
|
||||||
|
wdt_stop: Acquire WDT 'stop' io port (default 0x43)
|
||||||
|
wdt_start: Acquire WDT 'start' io port (default 0x443)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
advantechwdt:
|
||||||
|
wdt_stop: Advantech WDT 'stop' io port (default 0x443)
|
||||||
|
wdt_start: Advantech WDT 'start' io port (default 0x443)
|
||||||
|
timeout: Watchdog timeout in seconds. 1<= timeout <=63, default=60.
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
alim1535_wdt:
|
||||||
|
timeout: Watchdog timeout in seconds. (0 < timeout < 18000, default=60
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
alim7101_wdt:
|
||||||
|
timeout: Watchdog timeout in seconds. (1<=timeout<=3600, default=30
|
||||||
|
use_gpio: Use the gpio watchdog (required by old cobalt boards).
|
||||||
|
default=0/off/no
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
ar7_wdt:
|
||||||
|
margin: Watchdog margin in seconds (default=60)
|
||||||
|
nowayout: Disable watchdog shutdown on close
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
at32ap700x_wdt:
|
||||||
|
timeout: Timeout value. Limited to be 1 or 2 seconds. (default=2)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
at91rm9200_wdt:
|
||||||
|
wdt_time: Watchdog time in seconds. (default=5)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
at91sam9_wdt:
|
||||||
|
heartbeat: Watchdog heartbeats in seconds. (default = 15)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
bcm47xx_wdt:
|
||||||
|
wdt_time: Watchdog time in seconds. (default=30)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
bfin_wdt:
|
||||||
|
timeout: Watchdog timeout in seconds. (1<=timeout<=((2^32)/SCLK), default=20)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
coh901327_wdt:
|
||||||
|
margin: Watchdog margin in seconds (default 60s)
|
||||||
|
-------------------------------------------------
|
||||||
|
cpu5wdt:
|
||||||
|
port: base address of watchdog card, default is 0x91
|
||||||
|
verbose: be verbose, default is 0 (no)
|
||||||
|
ticks: count down ticks, default is 10000
|
||||||
|
-------------------------------------------------
|
||||||
|
cpwd:
|
||||||
|
wd0_timeout: Default watchdog0 timeout in 1/10secs
|
||||||
|
wd1_timeout: Default watchdog1 timeout in 1/10secs
|
||||||
|
wd2_timeout: Default watchdog2 timeout in 1/10secs
|
||||||
|
-------------------------------------------------
|
||||||
|
davinci_wdt:
|
||||||
|
heartbeat: Watchdog heartbeat period in seconds from 1 to 600, default 60
|
||||||
|
-------------------------------------------------
|
||||||
|
ep93xx_wdt:
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
timeout: Watchdog timeout in seconds. (1<=timeout<=3600, default=TBD)
|
||||||
|
-------------------------------------------------
|
||||||
|
eurotechwdt:
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
io: Eurotech WDT io port (default=0x3f0)
|
||||||
|
irq: Eurotech WDT irq (default=10)
|
||||||
|
ev: Eurotech WDT event type (default is `int')
|
||||||
|
-------------------------------------------------
|
||||||
|
gef_wdt:
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
geodewdt:
|
||||||
|
timeout: Watchdog timeout in seconds. 1<= timeout <=131, default=60.
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
i6300esb:
|
||||||
|
heartbeat: Watchdog heartbeat in seconds. (1<heartbeat<2046, default=30)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
iTCO_wdt:
|
||||||
|
heartbeat: Watchdog heartbeat in seconds.
|
||||||
|
(2<heartbeat<39 (TCO v1) or 613 (TCO v2), default=30)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
iTCO_vendor_support:
|
||||||
|
vendorsupport: iTCO vendor specific support mode, default=0 (none),
|
||||||
|
1=SuperMicro Pent3, 2=SuperMicro Pent4+, 911=Broken SMI BIOS
|
||||||
|
-------------------------------------------------
|
||||||
|
ib700wdt:
|
||||||
|
timeout: Watchdog timeout in seconds. 0<= timeout <=30, default=30.
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
ibmasr:
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
indydog:
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
iop_wdt:
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
it8712f_wdt:
|
||||||
|
margin: Watchdog margin in seconds (default 60)
|
||||||
|
nowayout: Disable watchdog shutdown on close
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
it87_wdt:
|
||||||
|
nogameport: Forbid the activation of game port, default=0
|
||||||
|
exclusive: Watchdog exclusive device open, default=1
|
||||||
|
timeout: Watchdog timeout in seconds, default=60
|
||||||
|
testmode: Watchdog test mode (1 = no reboot), default=0
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
ixp2000_wdt:
|
||||||
|
heartbeat: Watchdog heartbeat in seconds (default 60s)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
ixp4xx_wdt:
|
||||||
|
heartbeat: Watchdog heartbeat in seconds (default 60s)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
ks8695_wdt:
|
||||||
|
wdt_time: Watchdog time in seconds. (default=5)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
machzwd:
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
action: after watchdog resets, generate:
|
||||||
|
0 = RESET(*) 1 = SMI 2 = NMI 3 = SCI
|
||||||
|
-------------------------------------------------
|
||||||
|
max63xx_wdt:
|
||||||
|
heartbeat: Watchdog heartbeat period in seconds from 1 to 60, default 60
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
nodelay: Force selection of a timeout setting without initial delay
|
||||||
|
(max6373/74 only, default=0)
|
||||||
|
-------------------------------------------------
|
||||||
|
mixcomwd:
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
mpc8xxx_wdt:
|
||||||
|
timeout: Watchdog timeout in ticks. (0<timeout<65536, default=65535)
|
||||||
|
reset: Watchdog Interrupt/Reset Mode. 0 = interrupt, 1 = reset
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
mpcore_wdt:
|
||||||
|
mpcore_margin: MPcore timer margin in seconds.
|
||||||
|
(0 < mpcore_margin < 65536, default=60)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
mpcore_noboot: MPcore watchdog action, set to 1 to ignore reboots,
|
||||||
|
0 to reboot (default=0
|
||||||
|
-------------------------------------------------
|
||||||
|
mv64x60_wdt:
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
nuc900_wdt:
|
||||||
|
heartbeat: Watchdog heartbeats in seconds.
|
||||||
|
(default = 15)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
omap_wdt:
|
||||||
|
timer_margin: initial watchdog timeout (in seconds)
|
||||||
|
-------------------------------------------------
|
||||||
|
orion_wdt:
|
||||||
|
heartbeat: Initial watchdog heartbeat in seconds
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
pc87413_wdt:
|
||||||
|
io: pc87413 WDT I/O port (default: io).
|
||||||
|
timeout: Watchdog timeout in minutes (default=timeout).
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
pika_wdt:
|
||||||
|
heartbeat: Watchdog heartbeats in seconds. (default = 15)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
pnx4008_wdt:
|
||||||
|
heartbeat: Watchdog heartbeat period in seconds from 1 to 60, default 19
|
||||||
|
nowayout: Set to 1 to keep watchdog running after device release
|
||||||
|
-------------------------------------------------
|
||||||
|
pnx833x_wdt:
|
||||||
|
timeout: Watchdog timeout in Mhz. (68Mhz clock), default=2040000000 (30 seconds)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
start_enabled: Watchdog is started on module insertion (default=1)
|
||||||
|
-------------------------------------------------
|
||||||
|
rc32434_wdt:
|
||||||
|
timeout: Watchdog timeout value, in seconds (default=20)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
riowd:
|
||||||
|
riowd_timeout: Watchdog timeout in minutes (default=1)
|
||||||
|
-------------------------------------------------
|
||||||
|
s3c2410_wdt:
|
||||||
|
tmr_margin: Watchdog tmr_margin in seconds. (default=15)
|
||||||
|
tmr_atboot: Watchdog is started at boot time if set to 1, default=0
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
soft_noboot: Watchdog action, set to 1 to ignore reboots, 0 to reboot
|
||||||
|
debug: Watchdog debug, set to >1 for debug, (default 0)
|
||||||
|
-------------------------------------------------
|
||||||
|
sa1100_wdt:
|
||||||
|
margin: Watchdog margin in seconds (default 60s)
|
||||||
|
-------------------------------------------------
|
||||||
|
sb_wdog:
|
||||||
|
timeout: Watchdog timeout in microseconds (max/default 8388607 or 8.3ish secs)
|
||||||
|
-------------------------------------------------
|
||||||
|
sbc60xxwdt:
|
||||||
|
wdt_stop: SBC60xx WDT 'stop' io port (default 0x45)
|
||||||
|
wdt_start: SBC60xx WDT 'start' io port (default 0x443)
|
||||||
|
timeout: Watchdog timeout in seconds. (1<=timeout<=3600, default=30)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
sbc7240_wdt:
|
||||||
|
timeout: Watchdog timeout in seconds. (1<=timeout<=255, default=30)
|
||||||
|
nowayout: Disable watchdog when closing device file
|
||||||
|
-------------------------------------------------
|
||||||
|
sbc8360:
|
||||||
|
timeout: Index into timeout table (0-63) (default=27 (60s))
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
sbc_epx_c3:
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
sbc_fitpc2_wdt:
|
||||||
|
margin: Watchdog margin in seconds (default 60s)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
-------------------------------------------------
|
||||||
|
sc1200wdt:
|
||||||
|
isapnp: When set to 0 driver ISA PnP support will be disabled (default=1)
|
||||||
|
io: io port
|
||||||
|
timeout: range is 0-255 minutes, default is 1
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
sc520_wdt:
|
||||||
|
timeout: Watchdog timeout in seconds. (1 <= timeout <= 3600, default=30)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
sch311x_wdt:
|
||||||
|
force_id: Override the detected device ID
|
||||||
|
therm_trip: Should a ThermTrip trigger the reset generator
|
||||||
|
timeout: Watchdog timeout in seconds. 1<= timeout <=15300, default=60
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
scx200_wdt:
|
||||||
|
margin: Watchdog margin in seconds
|
||||||
|
nowayout: Disable watchdog shutdown on close
|
||||||
|
-------------------------------------------------
|
||||||
|
shwdt:
|
||||||
|
clock_division_ratio: Clock division ratio. Valid ranges are from 0x5 (1.31ms)
|
||||||
|
to 0x7 (5.25ms). (default=7)
|
||||||
|
heartbeat: Watchdog heartbeat in seconds. (1 <= heartbeat <= 3600, default=30
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
smsc37b787_wdt:
|
||||||
|
timeout: range is 1-255 units, default is 60
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
softdog:
|
||||||
|
soft_margin: Watchdog soft_margin in seconds.
|
||||||
|
(0 < soft_margin < 65536, default=60)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
soft_noboot: Softdog action, set to 1 to ignore reboots, 0 to reboot
|
||||||
|
(default=0)
|
||||||
|
-------------------------------------------------
|
||||||
|
stmp3xxx_wdt:
|
||||||
|
heartbeat: Watchdog heartbeat period in seconds from 1 to 4194304, default 19
|
||||||
|
-------------------------------------------------
|
||||||
|
ts72xx_wdt:
|
||||||
|
timeout: Watchdog timeout in seconds. (1 <= timeout <= 8, default=8)
|
||||||
|
nowayout: Disable watchdog shutdown on close
|
||||||
|
-------------------------------------------------
|
||||||
|
twl4030_wdt:
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
txx9wdt:
|
||||||
|
timeout: Watchdog timeout in seconds. (0<timeout<N, default=60)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
w83627hf_wdt:
|
||||||
|
wdt_io: w83627hf/thf WDT io port (default 0x2E)
|
||||||
|
timeout: Watchdog timeout in seconds. 1 <= timeout <= 255, default=60.
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
w83697hf_wdt:
|
||||||
|
wdt_io: w83697hf/hg WDT io port (default 0x2e, 0 = autodetect)
|
||||||
|
timeout: Watchdog timeout in seconds. 1<= timeout <=255 (default=60)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
early_disable: Watchdog gets disabled at boot time (default=1)
|
||||||
|
-------------------------------------------------
|
||||||
|
w83697ug_wdt:
|
||||||
|
wdt_io: w83697ug/uf WDT io port (default 0x2e)
|
||||||
|
timeout: Watchdog timeout in seconds. 1<= timeout <=255 (default=60)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
w83877f_wdt:
|
||||||
|
timeout: Watchdog timeout in seconds. (1<=timeout<=3600, default=30)
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
w83977f_wdt:
|
||||||
|
timeout: Watchdog timeout in seconds (15..7635), default=45)
|
||||||
|
testmode: Watchdog testmode (1 = no reboot), default=0
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
wafer5823wdt:
|
||||||
|
timeout: Watchdog timeout in seconds. 1 <= timeout <= 255, default=60.
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
wdt285:
|
||||||
|
soft_margin: Watchdog timeout in seconds (default=60)
|
||||||
|
-------------------------------------------------
|
||||||
|
wdt977:
|
||||||
|
timeout: Watchdog timeout in seconds (60..15300, default=60)
|
||||||
|
testmode: Watchdog testmode (1 = no reboot), default=0
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
wm831x_wdt:
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
|
wm8350_wdt:
|
||||||
|
nowayout: Watchdog cannot be stopped once started
|
||||||
|
(default=kernel config parameter)
|
||||||
|
-------------------------------------------------
|
||||||
@@ -14,14 +14,22 @@ reboot will depend on the state of the machines and interrupts. The hardware
|
|||||||
boards physically pull the machine down off their own onboard timers and
|
boards physically pull the machine down off their own onboard timers and
|
||||||
will reboot from almost anything.
|
will reboot from almost anything.
|
||||||
|
|
||||||
A second temperature monitoring interface is available on the WDT501P cards
|
A second temperature monitoring interface is available on the WDT501P cards.
|
||||||
This provides /dev/temperature. This is the machine internal temperature in
|
This provides /dev/temperature. This is the machine internal temperature in
|
||||||
degrees Fahrenheit. Each read returns a single byte giving the temperature.
|
degrees Fahrenheit. Each read returns a single byte giving the temperature.
|
||||||
|
|
||||||
The third interface logs kernel messages on additional alert events.
|
The third interface logs kernel messages on additional alert events.
|
||||||
|
|
||||||
The wdt card cannot be safely probed for. Instead you need to pass
|
The ICS ISA-bus wdt card cannot be safely probed for. Instead you need to
|
||||||
wdt=ioaddr,irq as a boot parameter - eg "wdt=0x240,11".
|
pass IO address and IRQ boot parameters. E.g.:
|
||||||
|
wdt.io=0x240 wdt.irq=11
|
||||||
|
|
||||||
|
Other "wdt" driver parameters are:
|
||||||
|
heartbeat Watchdog heartbeat in seconds (default 60)
|
||||||
|
nowayout Watchdog cannot be stopped once started (kernel
|
||||||
|
build parameter)
|
||||||
|
tachometer WDT501-P Fan Tachometer support (0=disable, default=0)
|
||||||
|
type WDT501-P Card type (500 or 501, default=500)
|
||||||
|
|
||||||
Features
|
Features
|
||||||
--------
|
--------
|
||||||
@@ -40,4 +48,3 @@ Minor numbers are however allocated for it.
|
|||||||
|
|
||||||
|
|
||||||
Example Watchdog Driver: see Documentation/watchdog/src/watchdog-simple.c
|
Example Watchdog Driver: see Documentation/watchdog/src/watchdog-simple.c
|
||||||
|
|
||||||
|
|||||||
82
MAINTAINERS
82
MAINTAINERS
@@ -131,19 +131,12 @@ L: netdev@vger.kernel.org
|
|||||||
S: Maintained
|
S: Maintained
|
||||||
F: drivers/net/typhoon*
|
F: drivers/net/typhoon*
|
||||||
|
|
||||||
3W-9XXX SATA-RAID CONTROLLER DRIVER
|
3WARE SAS/SATA-RAID SCSI DRIVERS (3W-XXXX, 3W-9XXX, 3W-SAS)
|
||||||
M: Adam Radford <linuxraid@amcc.com>
|
M: Adam Radford <linuxraid@lsi.com>
|
||||||
L: linux-scsi@vger.kernel.org
|
L: linux-scsi@vger.kernel.org
|
||||||
W: http://www.amcc.com
|
W: http://www.lsi.com
|
||||||
S: Supported
|
S: Supported
|
||||||
F: drivers/scsi/3w-9xxx*
|
F: drivers/scsi/3w-*
|
||||||
|
|
||||||
3W-XXXX ATA-RAID CONTROLLER DRIVER
|
|
||||||
M: Adam Radford <linuxraid@amcc.com>
|
|
||||||
L: linux-scsi@vger.kernel.org
|
|
||||||
W: http://www.amcc.com
|
|
||||||
S: Supported
|
|
||||||
F: drivers/scsi/3w-xxxx*
|
|
||||||
|
|
||||||
53C700 AND 53C700-66 SCSI DRIVER
|
53C700 AND 53C700-66 SCSI DRIVER
|
||||||
M: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
|
M: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
|
||||||
@@ -974,6 +967,18 @@ M: Wan ZongShun <mcuos.com@gmail.com>
|
|||||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||||
W: http://www.mcuos.com
|
W: http://www.mcuos.com
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
F: arch/arm/mach-w90x900/
|
||||||
|
F: arch/arm/mach-nuc93x/
|
||||||
|
F: drivers/input/keyboard/w90p910_keypad.c
|
||||||
|
F: drivers/input/touchscreen/w90p910_ts.c
|
||||||
|
F: drivers/watchdog/nuc900_wdt.c
|
||||||
|
F: drivers/net/arm/w90p910_ether.c
|
||||||
|
F: drivers/mtd/nand/w90p910_nand.c
|
||||||
|
F: drivers/rtc/rtc-nuc900.c
|
||||||
|
F: drivers/spi/spi_nuc900.c
|
||||||
|
F: drivers/usb/host/ehci-w90x900.c
|
||||||
|
F: drivers/video/nuc900fb.c
|
||||||
|
F: drivers/sound/soc/nuc900/
|
||||||
|
|
||||||
ARM/U300 MACHINE SUPPORT
|
ARM/U300 MACHINE SUPPORT
|
||||||
M: Linus Walleij <linus.walleij@stericsson.com>
|
M: Linus Walleij <linus.walleij@stericsson.com>
|
||||||
@@ -1762,6 +1767,13 @@ W: http://www.openfabrics.org
|
|||||||
S: Supported
|
S: Supported
|
||||||
F: drivers/infiniband/hw/cxgb4/
|
F: drivers/infiniband/hw/cxgb4/
|
||||||
|
|
||||||
|
CXGB4VF ETHERNET DRIVER (CXGB4VF)
|
||||||
|
M: Casey Leedom <leedom@chelsio.com>
|
||||||
|
L: netdev@vger.kernel.org
|
||||||
|
W: http://www.chelsio.com
|
||||||
|
S: Supported
|
||||||
|
F: drivers/net/cxgb4vf/
|
||||||
|
|
||||||
CYBERPRO FB DRIVER
|
CYBERPRO FB DRIVER
|
||||||
M: Russell King <linux@arm.linux.org.uk>
|
M: Russell King <linux@arm.linux.org.uk>
|
||||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||||
@@ -2880,6 +2892,13 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git
|
|||||||
S: Maintained
|
S: Maintained
|
||||||
F: drivers/input/
|
F: drivers/input/
|
||||||
|
|
||||||
|
INTEL IDLE DRIVER
|
||||||
|
M: Len Brown <lenb@kernel.org>
|
||||||
|
L: linux-pm@lists.linux-foundation.org
|
||||||
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6.git
|
||||||
|
S: Supported
|
||||||
|
F: drivers/idle/intel_idle.c
|
||||||
|
|
||||||
INTEL FRAMEBUFFER DRIVER (excluding 810 and 815)
|
INTEL FRAMEBUFFER DRIVER (excluding 810 and 815)
|
||||||
M: Maik Broemme <mbroemme@plusserver.de>
|
M: Maik Broemme <mbroemme@plusserver.de>
|
||||||
L: linux-fbdev@vger.kernel.org
|
L: linux-fbdev@vger.kernel.org
|
||||||
@@ -3315,15 +3334,17 @@ F: include/linux/key-type.h
|
|||||||
F: include/keys/
|
F: include/keys/
|
||||||
F: security/keys/
|
F: security/keys/
|
||||||
|
|
||||||
KGDB
|
KGDB / KDB /debug_core
|
||||||
M: Jason Wessel <jason.wessel@windriver.com>
|
M: Jason Wessel <jason.wessel@windriver.com>
|
||||||
|
W: http://kgdb.wiki.kernel.org/
|
||||||
L: kgdb-bugreport@lists.sourceforge.net
|
L: kgdb-bugreport@lists.sourceforge.net
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/DocBook/kgdb.tmpl
|
F: Documentation/DocBook/kgdb.tmpl
|
||||||
F: drivers/misc/kgdbts.c
|
F: drivers/misc/kgdbts.c
|
||||||
F: drivers/serial/kgdboc.c
|
F: drivers/serial/kgdboc.c
|
||||||
|
F: include/linux/kdb.h
|
||||||
F: include/linux/kgdb.h
|
F: include/linux/kgdb.h
|
||||||
F: kernel/kgdb.c
|
F: kernel/debug/
|
||||||
|
|
||||||
KMEMCHECK
|
KMEMCHECK
|
||||||
M: Vegard Nossum <vegardno@ifi.uio.no>
|
M: Vegard Nossum <vegardno@ifi.uio.no>
|
||||||
@@ -3879,17 +3900,19 @@ L: netem@lists.linux-foundation.org
|
|||||||
S: Maintained
|
S: Maintained
|
||||||
F: net/sched/sch_netem.c
|
F: net/sched/sch_netem.c
|
||||||
|
|
||||||
NETERION (S2IO) 10GbE DRIVER (xframe/vxge)
|
NETERION 10GbE DRIVERS (s2io/vxge)
|
||||||
M: Ramkrishna Vepa <ram.vepa@neterion.com>
|
M: Ramkrishna Vepa <ramkrishna.vepa@exar.com>
|
||||||
M: Rastapur Santosh <santosh.rastapur@neterion.com>
|
M: Sivakumar Subramani <sivakumar.subramani@exar.com>
|
||||||
M: Sivakumar Subramani <sivakumar.subramani@neterion.com>
|
M: Sreenivasa Honnur <sreenivasa.honnur@exar.com>
|
||||||
M: Sreenivasa Honnur <sreenivasa.honnur@neterion.com>
|
M: Jon Mason <jon.mason@exar.com>
|
||||||
L: netdev@vger.kernel.org
|
L: netdev@vger.kernel.org
|
||||||
W: http://trac.neterion.com/cgi-bin/trac.cgi/wiki/Linux?Anonymous
|
W: http://trac.neterion.com/cgi-bin/trac.cgi/wiki/Linux?Anonymous
|
||||||
W: http://trac.neterion.com/cgi-bin/trac.cgi/wiki/X3100Linux?Anonymous
|
W: http://trac.neterion.com/cgi-bin/trac.cgi/wiki/X3100Linux?Anonymous
|
||||||
S: Supported
|
S: Supported
|
||||||
F: Documentation/networking/s2io.txt
|
F: Documentation/networking/s2io.txt
|
||||||
F: drivers/net/s2io*
|
F: drivers/net/s2io*
|
||||||
|
F: Documentation/networking/vxge.txt
|
||||||
|
F: drivers/net/vxge/
|
||||||
|
|
||||||
NETFILTER/IPTABLES/IPCHAINS
|
NETFILTER/IPTABLES/IPCHAINS
|
||||||
P: Rusty Russell
|
P: Rusty Russell
|
||||||
@@ -4609,6 +4632,14 @@ S: Supported
|
|||||||
F: Documentation/scsi/LICENSE.qla2xxx
|
F: Documentation/scsi/LICENSE.qla2xxx
|
||||||
F: drivers/scsi/qla2xxx/
|
F: drivers/scsi/qla2xxx/
|
||||||
|
|
||||||
|
QLOGIC QLA4XXX iSCSI DRIVER
|
||||||
|
M: Ravi Anand <ravi.anand@qlogic.com>
|
||||||
|
M: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
|
||||||
|
M: iscsi-driver@qlogic.com
|
||||||
|
L: linux-scsi@vger.kernel.org
|
||||||
|
S: Supported
|
||||||
|
F: drivers/scsi/qla4xxx/
|
||||||
|
|
||||||
QLOGIC QLA3XXX NETWORK DRIVER
|
QLOGIC QLA3XXX NETWORK DRIVER
|
||||||
M: Ron Mercer <ron.mercer@qlogic.com>
|
M: Ron Mercer <ron.mercer@qlogic.com>
|
||||||
M: linux-driver@qlogic.com
|
M: linux-driver@qlogic.com
|
||||||
@@ -4748,6 +4779,12 @@ S: Maintained
|
|||||||
F: Documentation/rfkill.txt
|
F: Documentation/rfkill.txt
|
||||||
F: net/rfkill/
|
F: net/rfkill/
|
||||||
|
|
||||||
|
RICOH SMARTMEDIA/XD DRIVER
|
||||||
|
M: Maxim Levitsky <maximlevitsky@gmail.com>
|
||||||
|
S: Maintained
|
||||||
|
F: drivers/mtd/nand/r822.c
|
||||||
|
F: drivers/mtd/nand/r822.h
|
||||||
|
|
||||||
RISCOM8 DRIVER
|
RISCOM8 DRIVER
|
||||||
S: Orphan
|
S: Orphan
|
||||||
F: Documentation/serial/riscom8.txt
|
F: Documentation/serial/riscom8.txt
|
||||||
@@ -4802,6 +4839,9 @@ W: http://www.ibm.com/developerworks/linux/linux390/
|
|||||||
S: Supported
|
S: Supported
|
||||||
F: arch/s390/
|
F: arch/s390/
|
||||||
F: drivers/s390/
|
F: drivers/s390/
|
||||||
|
F: fs/partitions/ibm.c
|
||||||
|
F: Documentation/s390/
|
||||||
|
F: Documentation/DocBook/s390*
|
||||||
|
|
||||||
S390 NETWORK DRIVERS
|
S390 NETWORK DRIVERS
|
||||||
M: Ursula Braun <ursula.braun@de.ibm.com>
|
M: Ursula Braun <ursula.braun@de.ibm.com>
|
||||||
@@ -4970,6 +5010,12 @@ L: linux-mmc@vger.kernel.org
|
|||||||
S: Maintained
|
S: Maintained
|
||||||
F: drivers/mmc/host/sdhci-s3c.c
|
F: drivers/mmc/host/sdhci-s3c.c
|
||||||
|
|
||||||
|
SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) ST SPEAR DRIVER
|
||||||
|
M: Viresh Kumar <viresh.kumar@st.com>
|
||||||
|
L: linux-mmc@vger.kernel.org
|
||||||
|
S: Maintained
|
||||||
|
F: drivers/mmc/host/sdhci-spear.c
|
||||||
|
|
||||||
SECURITY SUBSYSTEM
|
SECURITY SUBSYSTEM
|
||||||
M: James Morris <jmorris@namei.org>
|
M: James Morris <jmorris@namei.org>
|
||||||
L: linux-security-module@vger.kernel.org (suggested Cc:)
|
L: linux-security-module@vger.kernel.org (suggested Cc:)
|
||||||
|
|||||||
4
Makefile
4
Makefile
@@ -1,7 +1,7 @@
|
|||||||
VERSION = 2
|
VERSION = 2
|
||||||
PATCHLEVEL = 6
|
PATCHLEVEL = 6
|
||||||
SUBLEVEL = 34
|
SUBLEVEL = 35
|
||||||
EXTRAVERSION =
|
EXTRAVERSION = -rc1
|
||||||
NAME = Sheep on Meth
|
NAME = Sheep on Meth
|
||||||
|
|
||||||
# *DOCUMENTATION*
|
# *DOCUMENTATION*
|
||||||
|
|||||||
@@ -51,10 +51,6 @@ config GENERIC_TIME
|
|||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|
||||||
config ARCH_USES_GETTIMEOFFSET
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
|
|
||||||
config GENERIC_CMOS_UPDATE
|
config GENERIC_CMOS_UPDATE
|
||||||
def_bool y
|
def_bool y
|
||||||
|
|
||||||
@@ -65,6 +61,9 @@ config ZONE_DMA
|
|||||||
config NEED_DMA_MAP_STATE
|
config NEED_DMA_MAP_STATE
|
||||||
def_bool y
|
def_bool y
|
||||||
|
|
||||||
|
config NEED_SG_DMA_LENGTH
|
||||||
|
def_bool y
|
||||||
|
|
||||||
config GENERIC_ISA_DMA
|
config GENERIC_ISA_DMA
|
||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|||||||
@@ -438,22 +438,20 @@ static inline unsigned int __arch_hweight8(unsigned int w)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Every architecture must define this function. It's the fastest
|
* Every architecture must define this function. It's the fastest
|
||||||
* way of searching a 140-bit bitmap where the first 100 bits are
|
* way of searching a 100-bit bitmap. It's guaranteed that at least
|
||||||
* unlikely to be set. It's guaranteed that at least one of the 140
|
* one of the 100 bits is cleared.
|
||||||
* bits is set.
|
|
||||||
*/
|
*/
|
||||||
static inline unsigned long
|
static inline unsigned long
|
||||||
sched_find_first_bit(unsigned long b[3])
|
sched_find_first_bit(const unsigned long b[2])
|
||||||
{
|
{
|
||||||
unsigned long b0 = b[0], b1 = b[1], b2 = b[2];
|
unsigned long b0, b1, ofs, tmp;
|
||||||
unsigned long ofs;
|
|
||||||
|
|
||||||
ofs = (b1 ? 64 : 128);
|
b0 = b[0];
|
||||||
b1 = (b1 ? b1 : b2);
|
b1 = b[1];
|
||||||
ofs = (b0 ? 0 : ofs);
|
ofs = (b0 ? 0 : 64);
|
||||||
b0 = (b0 ? b0 : b1);
|
tmp = (b0 ? b0 : b1);
|
||||||
|
|
||||||
return __ffs(b0) + ofs;
|
return __ffs(tmp) + ofs;
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <asm-generic/bitops/ext2-non-atomic.h>
|
#include <asm-generic/bitops/ext2-non-atomic.h>
|
||||||
|
|||||||
@@ -1,24 +1,7 @@
|
|||||||
#ifndef _ALPHA_SCATTERLIST_H
|
#ifndef _ALPHA_SCATTERLIST_H
|
||||||
#define _ALPHA_SCATTERLIST_H
|
#define _ALPHA_SCATTERLIST_H
|
||||||
|
|
||||||
#include <asm/page.h>
|
#include <asm-generic/scatterlist.h>
|
||||||
#include <asm/types.h>
|
|
||||||
|
|
||||||
struct scatterlist {
|
|
||||||
#ifdef CONFIG_DEBUG_SG
|
|
||||||
unsigned long sg_magic;
|
|
||||||
#endif
|
|
||||||
unsigned long page_link;
|
|
||||||
unsigned int offset;
|
|
||||||
|
|
||||||
unsigned int length;
|
|
||||||
|
|
||||||
dma_addr_t dma_address;
|
|
||||||
__u32 dma_length;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define sg_dma_address(sg) ((sg)->dma_address)
|
|
||||||
#define sg_dma_len(sg) ((sg)->dma_length)
|
|
||||||
|
|
||||||
#define ISA_DMA_THRESHOLD (~0UL)
|
#define ISA_DMA_THRESHOLD (~0UL)
|
||||||
|
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ static int __pci_mmap_fits(struct pci_dev *pdev, int num,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* pci_mmap_resource - map a PCI resource into user memory space
|
* pci_mmap_resource - map a PCI resource into user memory space
|
||||||
|
* @filp: open sysfs file
|
||||||
* @kobj: kobject for mapping
|
* @kobj: kobject for mapping
|
||||||
* @attr: struct bin_attribute for the file being mapped
|
* @attr: struct bin_attribute for the file being mapped
|
||||||
* @vma: struct vm_area_struct passed into the mmap
|
* @vma: struct vm_area_struct passed into the mmap
|
||||||
@@ -60,7 +61,8 @@ static int __pci_mmap_fits(struct pci_dev *pdev, int num,
|
|||||||
*
|
*
|
||||||
* Use the bus mapping routines to map a PCI resource into userspace.
|
* Use the bus mapping routines to map a PCI resource into userspace.
|
||||||
*/
|
*/
|
||||||
static int pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr,
|
static int pci_mmap_resource(struct file *filp, struct kobject *kobj,
|
||||||
|
struct bin_attribute *attr,
|
||||||
struct vm_area_struct *vma, int sparse)
|
struct vm_area_struct *vma, int sparse)
|
||||||
{
|
{
|
||||||
struct pci_dev *pdev = to_pci_dev(container_of(kobj,
|
struct pci_dev *pdev = to_pci_dev(container_of(kobj,
|
||||||
@@ -89,14 +91,14 @@ static int pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr,
|
|||||||
return hose_mmap_page_range(pdev->sysdata, vma, mmap_type, sparse);
|
return hose_mmap_page_range(pdev->sysdata, vma, mmap_type, sparse);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int pci_mmap_resource_sparse(struct kobject *kobj,
|
static int pci_mmap_resource_sparse(struct file *filp, struct kobject *kobj,
|
||||||
struct bin_attribute *attr,
|
struct bin_attribute *attr,
|
||||||
struct vm_area_struct *vma)
|
struct vm_area_struct *vma)
|
||||||
{
|
{
|
||||||
return pci_mmap_resource(kobj, attr, vma, 1);
|
return pci_mmap_resource(kobj, attr, vma, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int pci_mmap_resource_dense(struct kobject *kobj,
|
static int pci_mmap_resource_dense(struct file *filp, struct kobject *kobj,
|
||||||
struct bin_attribute *attr,
|
struct bin_attribute *attr,
|
||||||
struct vm_area_struct *vma)
|
struct vm_area_struct *vma)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -51,6 +51,7 @@
|
|||||||
#include <linux/mc146818rtc.h>
|
#include <linux/mc146818rtc.h>
|
||||||
#include <linux/time.h>
|
#include <linux/time.h>
|
||||||
#include <linux/timex.h>
|
#include <linux/timex.h>
|
||||||
|
#include <linux/clocksource.h>
|
||||||
|
|
||||||
#include "proto.h"
|
#include "proto.h"
|
||||||
#include "irq_impl.h"
|
#include "irq_impl.h"
|
||||||
@@ -332,6 +333,34 @@ rpcc_after_update_in_progress(void)
|
|||||||
return rpcc();
|
return rpcc();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef CONFIG_SMP
|
||||||
|
/* Until and unless we figure out how to get cpu cycle counters
|
||||||
|
in sync and keep them there, we can't use the rpcc. */
|
||||||
|
static cycle_t read_rpcc(struct clocksource *cs)
|
||||||
|
{
|
||||||
|
cycle_t ret = (cycle_t)rpcc();
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct clocksource clocksource_rpcc = {
|
||||||
|
.name = "rpcc",
|
||||||
|
.rating = 300,
|
||||||
|
.read = read_rpcc,
|
||||||
|
.mask = CLOCKSOURCE_MASK(32),
|
||||||
|
.flags = CLOCK_SOURCE_IS_CONTINUOUS
|
||||||
|
};
|
||||||
|
|
||||||
|
static inline void register_rpcc_clocksource(long cycle_freq)
|
||||||
|
{
|
||||||
|
clocksource_calc_mult_shift(&clocksource_rpcc, cycle_freq, 4);
|
||||||
|
clocksource_register(&clocksource_rpcc);
|
||||||
|
}
|
||||||
|
#else /* !CONFIG_SMP */
|
||||||
|
static inline void register_rpcc_clocksource(long cycle_freq)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif /* !CONFIG_SMP */
|
||||||
|
|
||||||
void __init
|
void __init
|
||||||
time_init(void)
|
time_init(void)
|
||||||
{
|
{
|
||||||
@@ -385,6 +414,8 @@ time_init(void)
|
|||||||
__you_loose();
|
__you_loose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
register_rpcc_clocksource(cycle_freq);
|
||||||
|
|
||||||
state.last_time = cc1;
|
state.last_time = cc1;
|
||||||
state.scaled_ticks_per_cycle
|
state.scaled_ticks_per_cycle
|
||||||
= ((unsigned long) HZ << FIX_SHIFT) / cycle_freq;
|
= ((unsigned long) HZ << FIX_SHIFT) / cycle_freq;
|
||||||
@@ -394,44 +425,6 @@ time_init(void)
|
|||||||
alpha_mv.init_rtc();
|
alpha_mv.init_rtc();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Use the cycle counter to estimate an displacement from the last time
|
|
||||||
* tick. Unfortunately the Alpha designers made only the low 32-bits of
|
|
||||||
* the cycle counter active, so we overflow on 8.2 seconds on a 500MHz
|
|
||||||
* part. So we can't do the "find absolute time in terms of cycles" thing
|
|
||||||
* that the other ports do.
|
|
||||||
*/
|
|
||||||
u32 arch_gettimeoffset(void)
|
|
||||||
{
|
|
||||||
#ifdef CONFIG_SMP
|
|
||||||
/* Until and unless we figure out how to get cpu cycle counters
|
|
||||||
in sync and keep them there, we can't use the rpcc tricks. */
|
|
||||||
return 0;
|
|
||||||
#else
|
|
||||||
unsigned long delta_cycles, delta_usec, partial_tick;
|
|
||||||
|
|
||||||
delta_cycles = rpcc() - state.last_time;
|
|
||||||
partial_tick = state.partial_tick;
|
|
||||||
/*
|
|
||||||
* usec = cycles * ticks_per_cycle * 2**48 * 1e6 / (2**48 * ticks)
|
|
||||||
* = cycles * (s_t_p_c) * 1e6 / (2**48 * ticks)
|
|
||||||
* = cycles * (s_t_p_c) * 15625 / (2**42 * ticks)
|
|
||||||
*
|
|
||||||
* which, given a 600MHz cycle and a 1024Hz tick, has a
|
|
||||||
* dynamic range of about 1.7e17, which is less than the
|
|
||||||
* 1.8e19 in an unsigned long, so we are safe from overflow.
|
|
||||||
*
|
|
||||||
* Round, but with .5 up always, since .5 to even is harder
|
|
||||||
* with no clear gain.
|
|
||||||
*/
|
|
||||||
|
|
||||||
delta_usec = (delta_cycles * state.scaled_ticks_per_cycle
|
|
||||||
+ partial_tick) * 15625;
|
|
||||||
delta_usec = ((delta_usec / ((1UL << (FIX_SHIFT-6-1)) * HZ)) + 1) / 2;
|
|
||||||
return delta_usec * 1000;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* In order to set the CMOS clock precisely, set_rtc_mmss has to be
|
* In order to set the CMOS clock precisely, set_rtc_mmss has to be
|
||||||
* called 500 ms after the second nowtime has started, because when
|
* called 500 ms after the second nowtime has started, because when
|
||||||
|
|||||||
@@ -142,7 +142,6 @@ do_page_fault(unsigned long address, unsigned long mmcsr,
|
|||||||
goto bad_area;
|
goto bad_area;
|
||||||
}
|
}
|
||||||
|
|
||||||
survive:
|
|
||||||
/* If for any reason at all we couldn't handle the fault,
|
/* If for any reason at all we couldn't handle the fault,
|
||||||
make sure we exit gracefully rather than endlessly redo
|
make sure we exit gracefully rather than endlessly redo
|
||||||
the fault. */
|
the fault. */
|
||||||
@@ -188,16 +187,10 @@ do_page_fault(unsigned long address, unsigned long mmcsr,
|
|||||||
/* We ran out of memory, or some other thing happened to us that
|
/* We ran out of memory, or some other thing happened to us that
|
||||||
made us unable to handle the page fault gracefully. */
|
made us unable to handle the page fault gracefully. */
|
||||||
out_of_memory:
|
out_of_memory:
|
||||||
if (is_global_init(current)) {
|
|
||||||
yield();
|
|
||||||
down_read(&mm->mmap_sem);
|
|
||||||
goto survive;
|
|
||||||
}
|
|
||||||
printk(KERN_ALERT "VM: killing process %s(%d)\n",
|
|
||||||
current->comm, task_pid_nr(current));
|
|
||||||
if (!user_mode(regs))
|
if (!user_mode(regs))
|
||||||
goto no_context;
|
goto no_context;
|
||||||
do_group_exit(SIGKILL);
|
pagefault_out_of_memory();
|
||||||
|
return;
|
||||||
|
|
||||||
do_sigbus:
|
do_sigbus:
|
||||||
/* Send a sigbus, regardless of whether we were in kernel
|
/* Send a sigbus, regardless of whether we were in kernel
|
||||||
|
|||||||
@@ -671,6 +671,7 @@ config ARCH_S5P6440
|
|||||||
select CPU_V6
|
select CPU_V6
|
||||||
select GENERIC_GPIO
|
select GENERIC_GPIO
|
||||||
select HAVE_CLK
|
select HAVE_CLK
|
||||||
|
select ARCH_USES_GETTIMEOFFSET
|
||||||
help
|
help
|
||||||
Samsung S5P6440 CPU based systems
|
Samsung S5P6440 CPU based systems
|
||||||
|
|
||||||
@@ -679,17 +680,19 @@ config ARCH_S5P6442
|
|||||||
select CPU_V6
|
select CPU_V6
|
||||||
select GENERIC_GPIO
|
select GENERIC_GPIO
|
||||||
select HAVE_CLK
|
select HAVE_CLK
|
||||||
|
select ARCH_USES_GETTIMEOFFSET
|
||||||
help
|
help
|
||||||
Samsung S5P6442 CPU based systems
|
Samsung S5P6442 CPU based systems
|
||||||
|
|
||||||
config ARCH_S5PC1XX
|
config ARCH_S5PC100
|
||||||
bool "Samsung S5PC1XX"
|
bool "Samsung S5PC100"
|
||||||
select GENERIC_GPIO
|
select GENERIC_GPIO
|
||||||
select HAVE_CLK
|
select HAVE_CLK
|
||||||
select CPU_V7
|
select CPU_V7
|
||||||
select ARM_L1_CACHE_SHIFT_6
|
select ARM_L1_CACHE_SHIFT_6
|
||||||
|
select ARCH_USES_GETTIMEOFFSET
|
||||||
help
|
help
|
||||||
Samsung S5PC1XX series based systems
|
Samsung S5PC100 series based systems
|
||||||
|
|
||||||
config ARCH_S5PV210
|
config ARCH_S5PV210
|
||||||
bool "Samsung S5PV210/S5PC110"
|
bool "Samsung S5PV210/S5PC110"
|
||||||
@@ -697,6 +700,7 @@ config ARCH_S5PV210
|
|||||||
select GENERIC_GPIO
|
select GENERIC_GPIO
|
||||||
select HAVE_CLK
|
select HAVE_CLK
|
||||||
select ARM_L1_CACHE_SHIFT_6
|
select ARM_L1_CACHE_SHIFT_6
|
||||||
|
select ARCH_USES_GETTIMEOFFSET
|
||||||
help
|
help
|
||||||
Samsung S5PV210/S5PC110 series based systems
|
Samsung S5PV210/S5PC110 series based systems
|
||||||
|
|
||||||
@@ -876,7 +880,7 @@ source "arch/arm/mach-sa1100/Kconfig"
|
|||||||
source "arch/arm/plat-samsung/Kconfig"
|
source "arch/arm/plat-samsung/Kconfig"
|
||||||
source "arch/arm/plat-s3c24xx/Kconfig"
|
source "arch/arm/plat-s3c24xx/Kconfig"
|
||||||
source "arch/arm/plat-s5p/Kconfig"
|
source "arch/arm/plat-s5p/Kconfig"
|
||||||
source "arch/arm/plat-s5pc1xx/Kconfig"
|
|
||||||
source "arch/arm/plat-spear/Kconfig"
|
source "arch/arm/plat-spear/Kconfig"
|
||||||
|
|
||||||
if ARCH_S3C2410
|
if ARCH_S3C2410
|
||||||
@@ -896,9 +900,7 @@ source "arch/arm/mach-s5p6440/Kconfig"
|
|||||||
|
|
||||||
source "arch/arm/mach-s5p6442/Kconfig"
|
source "arch/arm/mach-s5p6442/Kconfig"
|
||||||
|
|
||||||
if ARCH_S5PC1XX
|
|
||||||
source "arch/arm/mach-s5pc100/Kconfig"
|
source "arch/arm/mach-s5pc100/Kconfig"
|
||||||
endif
|
|
||||||
|
|
||||||
source "arch/arm/mach-s5pv210/Kconfig"
|
source "arch/arm/mach-s5pv210/Kconfig"
|
||||||
|
|
||||||
@@ -1419,6 +1421,17 @@ config CMDLINE
|
|||||||
time by entering them here. As a minimum, you should specify the
|
time by entering them here. As a minimum, you should specify the
|
||||||
memory size and the root device (e.g., mem=64M root=/dev/nfs).
|
memory size and the root device (e.g., mem=64M root=/dev/nfs).
|
||||||
|
|
||||||
|
config CMDLINE_FORCE
|
||||||
|
bool "Always use the default kernel command string"
|
||||||
|
depends on CMDLINE != ""
|
||||||
|
help
|
||||||
|
Always use the default kernel command string, even if the boot
|
||||||
|
loader passes other arguments to the kernel.
|
||||||
|
This is useful if you cannot or don't want to change the
|
||||||
|
command-line options your boot loader passes to the kernel.
|
||||||
|
|
||||||
|
If unsure, say N.
|
||||||
|
|
||||||
config XIP_KERNEL
|
config XIP_KERNEL
|
||||||
bool "Kernel Execute-In-Place from ROM"
|
bool "Kernel Execute-In-Place from ROM"
|
||||||
depends on !ZBOOT_ROM
|
depends on !ZBOOT_ROM
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ machine-$(CONFIG_ARCH_S3C24A0) := s3c24a0
|
|||||||
machine-$(CONFIG_ARCH_S3C64XX) := s3c64xx
|
machine-$(CONFIG_ARCH_S3C64XX) := s3c64xx
|
||||||
machine-$(CONFIG_ARCH_S5P6440) := s5p6440
|
machine-$(CONFIG_ARCH_S5P6440) := s5p6440
|
||||||
machine-$(CONFIG_ARCH_S5P6442) := s5p6442
|
machine-$(CONFIG_ARCH_S5P6442) := s5p6442
|
||||||
machine-$(CONFIG_ARCH_S5PC1XX) := s5pc100
|
machine-$(CONFIG_ARCH_S5PC100) := s5pc100
|
||||||
machine-$(CONFIG_ARCH_S5PV210) := s5pv210
|
machine-$(CONFIG_ARCH_S5PV210) := s5pv210
|
||||||
machine-$(CONFIG_ARCH_SA1100) := sa1100
|
machine-$(CONFIG_ARCH_SA1100) := sa1100
|
||||||
machine-$(CONFIG_ARCH_SHARK) := shark
|
machine-$(CONFIG_ARCH_SHARK) := shark
|
||||||
@@ -198,7 +198,6 @@ plat-$(CONFIG_PLAT_NOMADIK) := nomadik
|
|||||||
plat-$(CONFIG_PLAT_ORION) := orion
|
plat-$(CONFIG_PLAT_ORION) := orion
|
||||||
plat-$(CONFIG_PLAT_PXA) := pxa
|
plat-$(CONFIG_PLAT_PXA) := pxa
|
||||||
plat-$(CONFIG_PLAT_S3C24XX) := s3c24xx samsung
|
plat-$(CONFIG_PLAT_S3C24XX) := s3c24xx samsung
|
||||||
plat-$(CONFIG_PLAT_S5PC1XX) := s5pc1xx samsung
|
|
||||||
plat-$(CONFIG_PLAT_S5P) := s5p samsung
|
plat-$(CONFIG_PLAT_S5P) := s5p samsung
|
||||||
plat-$(CONFIG_PLAT_SPEAR) := spear
|
plat-$(CONFIG_PLAT_SPEAR) := spear
|
||||||
plat-$(CONFIG_PLAT_VERSATILE) := versatile
|
plat-$(CONFIG_PLAT_VERSATILE) := versatile
|
||||||
|
|||||||
@@ -422,15 +422,29 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
|
|||||||
#
|
#
|
||||||
# CONFIG_NET_PKTGEN is not set
|
# CONFIG_NET_PKTGEN is not set
|
||||||
# CONFIG_HAMRADIO is not set
|
# CONFIG_HAMRADIO is not set
|
||||||
# CONFIG_CAN is not set
|
CONFIG_CAN=y
|
||||||
|
CONFIG_CAN_RAW=y
|
||||||
|
CONFIG_CAN_BCM=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# CAN Device Drivers
|
||||||
|
#
|
||||||
|
CONFIG_CAN_VCAN=y
|
||||||
|
CONFIG_CAN_DEV=y
|
||||||
|
CONFIG_CAN_CALC_BITTIMING=y
|
||||||
|
CONFIG_CAN_TI_HECC=y
|
||||||
|
# CONFIG_CAN_SJA1000 is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# CAN USB interfaces
|
||||||
|
#
|
||||||
|
# CONFIG_CAN_EMS_USB is not set
|
||||||
|
CONFIG_CAN_DEBUG_DEVICES=y
|
||||||
# CONFIG_IRDA is not set
|
# CONFIG_IRDA is not set
|
||||||
# CONFIG_BT is not set
|
# CONFIG_BT is not set
|
||||||
# CONFIG_AF_RXRPC is not set
|
# CONFIG_AF_RXRPC is not set
|
||||||
CONFIG_WIRELESS=y
|
CONFIG_WIRELESS=y
|
||||||
# CONFIG_CFG80211 is not set
|
# CONFIG_CFG80211 is not set
|
||||||
CONFIG_CFG80211_DEFAULT_PS_VALUE=0
|
|
||||||
# CONFIG_WIRELESS_OLD_REGULATORY is not set
|
|
||||||
# CONFIG_WIRELESS_EXT is not set
|
|
||||||
# CONFIG_LIB80211 is not set
|
# CONFIG_LIB80211 is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -517,7 +531,75 @@ CONFIG_SCSI_LOWLEVEL=y
|
|||||||
# CONFIG_SCSI_OSD_INITIATOR is not set
|
# CONFIG_SCSI_OSD_INITIATOR is not set
|
||||||
# CONFIG_ATA is not set
|
# CONFIG_ATA is not set
|
||||||
# CONFIG_MD is not set
|
# CONFIG_MD is not set
|
||||||
# CONFIG_NETDEVICES is not set
|
CONFIG_NETDEVICES=y
|
||||||
|
# CONFIG_DUMMY is not set
|
||||||
|
# CONFIG_BONDING is not set
|
||||||
|
# CONFIG_MACVLAN is not set
|
||||||
|
# CONFIG_EQUALIZER is not set
|
||||||
|
# CONFIG_TUN is not set
|
||||||
|
# CONFIG_VETH is not set
|
||||||
|
CONFIG_PHYLIB=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# MII PHY device drivers
|
||||||
|
#
|
||||||
|
# CONFIG_MARVELL_PHY is not set
|
||||||
|
# CONFIG_DAVICOM_PHY is not set
|
||||||
|
# CONFIG_QSEMI_PHY is not set
|
||||||
|
# CONFIG_LXT_PHY is not set
|
||||||
|
# CONFIG_CICADA_PHY is not set
|
||||||
|
# CONFIG_VITESSE_PHY is not set
|
||||||
|
# CONFIG_SMSC_PHY is not set
|
||||||
|
# CONFIG_BROADCOM_PHY is not set
|
||||||
|
# CONFIG_ICPLUS_PHY is not set
|
||||||
|
# CONFIG_REALTEK_PHY is not set
|
||||||
|
# CONFIG_NATIONAL_PHY is not set
|
||||||
|
# CONFIG_STE10XP is not set
|
||||||
|
# CONFIG_LSI_ET1011C_PHY is not set
|
||||||
|
# CONFIG_FIXED_PHY is not set
|
||||||
|
# CONFIG_MDIO_BITBANG is not set
|
||||||
|
CONFIG_NET_ETHERNET=y
|
||||||
|
# CONFIG_MII is not set
|
||||||
|
# CONFIG_AX88796 is not set
|
||||||
|
# CONFIG_SMC91X is not set
|
||||||
|
CONFIG_TI_DAVINCI_EMAC=y
|
||||||
|
# CONFIG_DM9000 is not set
|
||||||
|
# CONFIG_ETHOC is not set
|
||||||
|
# CONFIG_SMC911X is not set
|
||||||
|
# CONFIG_SMSC911X is not set
|
||||||
|
# CONFIG_DNET is not set
|
||||||
|
# CONFIG_IBM_NEW_EMAC_ZMII is not set
|
||||||
|
# CONFIG_IBM_NEW_EMAC_RGMII is not set
|
||||||
|
# CONFIG_IBM_NEW_EMAC_TAH is not set
|
||||||
|
# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
|
||||||
|
# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
|
||||||
|
# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
|
||||||
|
# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
|
||||||
|
# CONFIG_B44 is not set
|
||||||
|
# CONFIG_KS8842 is not set
|
||||||
|
# CONFIG_KS8851_MLL is not set
|
||||||
|
# CONFIG_NETDEV_1000 is not set
|
||||||
|
# CONFIG_NETDEV_10000 is not set
|
||||||
|
# CONFIG_WLAN is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Enable WiMAX (Networking options) to see the WiMAX drivers
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# USB Network Adapters
|
||||||
|
#
|
||||||
|
# CONFIG_USB_CATC is not set
|
||||||
|
# CONFIG_USB_KAWETH is not set
|
||||||
|
# CONFIG_USB_PEGASUS is not set
|
||||||
|
# CONFIG_USB_RTL8150 is not set
|
||||||
|
# CONFIG_USB_USBNET is not set
|
||||||
|
# CONFIG_WAN is not set
|
||||||
|
# CONFIG_PPP is not set
|
||||||
|
# CONFIG_SLIP is not set
|
||||||
|
# CONFIG_NETCONSOLE is not set
|
||||||
|
# CONFIG_NETPOLL is not set
|
||||||
|
# CONFIG_NET_POLL_CONTROLLER is not set
|
||||||
# CONFIG_ISDN is not set
|
# CONFIG_ISDN is not set
|
||||||
# CONFIG_PHONE is not set
|
# CONFIG_PHONE is not set
|
||||||
|
|
||||||
@@ -692,7 +774,57 @@ CONFIG_SSB_POSSIBLE=y
|
|||||||
#
|
#
|
||||||
# CONFIG_VGASTATE is not set
|
# CONFIG_VGASTATE is not set
|
||||||
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
|
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
|
||||||
# CONFIG_FB is not set
|
CONFIG_FB=y
|
||||||
|
# CONFIG_FIRMWARE_EDID is not set
|
||||||
|
# CONFIG_FB_DDC is not set
|
||||||
|
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
|
||||||
|
CONFIG_FB_CFB_FILLRECT=y
|
||||||
|
CONFIG_FB_CFB_COPYAREA=y
|
||||||
|
CONFIG_FB_CFB_IMAGEBLIT=y
|
||||||
|
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
|
||||||
|
# CONFIG_FB_SYS_FILLRECT is not set
|
||||||
|
# CONFIG_FB_SYS_COPYAREA is not set
|
||||||
|
# CONFIG_FB_SYS_IMAGEBLIT is not set
|
||||||
|
# CONFIG_FB_FOREIGN_ENDIAN is not set
|
||||||
|
# CONFIG_FB_SYS_FOPS is not set
|
||||||
|
# CONFIG_FB_SVGALIB is not set
|
||||||
|
# CONFIG_FB_MACMODES is not set
|
||||||
|
# CONFIG_FB_BACKLIGHT is not set
|
||||||
|
# CONFIG_FB_MODE_HELPERS is not set
|
||||||
|
# CONFIG_FB_TILEBLITTING is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Frame buffer hardware drivers
|
||||||
|
#
|
||||||
|
# CONFIG_FB_ARMCLCD is not set
|
||||||
|
# CONFIG_FB_S1D13XXX is not set
|
||||||
|
# CONFIG_FB_VIRTUAL is not set
|
||||||
|
# CONFIG_FB_METRONOME is not set
|
||||||
|
# CONFIG_FB_MB862XX is not set
|
||||||
|
# CONFIG_FB_BROADSHEET is not set
|
||||||
|
# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
|
||||||
|
CONFIG_OMAP2_VRAM=y
|
||||||
|
CONFIG_OMAP2_VRFB=y
|
||||||
|
CONFIG_OMAP2_DSS=y
|
||||||
|
CONFIG_OMAP2_VRAM_SIZE=4
|
||||||
|
CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y
|
||||||
|
# CONFIG_OMAP2_DSS_RFBI is not set
|
||||||
|
CONFIG_OMAP2_DSS_VENC=y
|
||||||
|
# CONFIG_OMAP2_DSS_SDI is not set
|
||||||
|
# CONFIG_OMAP2_DSS_DSI is not set
|
||||||
|
# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set
|
||||||
|
CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=4
|
||||||
|
CONFIG_FB_OMAP2=y
|
||||||
|
CONFIG_FB_OMAP2_DEBUG_SUPPORT=y
|
||||||
|
# CONFIG_FB_OMAP2_FORCE_AUTO_UPDATE is not set
|
||||||
|
CONFIG_FB_OMAP2_NUM_FBS=3
|
||||||
|
|
||||||
|
#
|
||||||
|
# OMAP2/3 Display Device Drivers
|
||||||
|
#
|
||||||
|
CONFIG_PANEL_GENERIC=y
|
||||||
|
# CONFIG_PANEL_SHARP_LS037V7DW01 is not set
|
||||||
|
CONFIG_PANEL_SHARP_LQ043T1DG01=y
|
||||||
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
|
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ CONFIG_SYSVIPC_SYSCTL=y
|
|||||||
# CONFIG_TASKSTATS is not set
|
# CONFIG_TASKSTATS is not set
|
||||||
# CONFIG_UTS_NS is not set
|
# CONFIG_UTS_NS is not set
|
||||||
# CONFIG_AUDIT is not set
|
# CONFIG_AUDIT is not set
|
||||||
|
CONFIG_TREE_PREEMPT_RCU=y
|
||||||
# CONFIG_IKCONFIG is not set
|
# CONFIG_IKCONFIG is not set
|
||||||
CONFIG_LOG_BUF_SHIFT=14
|
CONFIG_LOG_BUF_SHIFT=14
|
||||||
CONFIG_SYSFS_DEPRECATED=y
|
CONFIG_SYSFS_DEPRECATED=y
|
||||||
@@ -95,9 +96,8 @@ CONFIG_KMOD=y
|
|||||||
# Block layer
|
# Block layer
|
||||||
#
|
#
|
||||||
CONFIG_BLOCK=y
|
CONFIG_BLOCK=y
|
||||||
# CONFIG_LBD is not set
|
# CONFIG_LBDAF is not set
|
||||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||||
# CONFIG_LSF is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# IO Schedulers
|
# IO Schedulers
|
||||||
@@ -699,6 +699,7 @@ CONFIG_SERIO=y
|
|||||||
CONFIG_SERIO_SERPORT=y
|
CONFIG_SERIO_SERPORT=y
|
||||||
CONFIG_SERIO_LIBPS2=y
|
CONFIG_SERIO_LIBPS2=y
|
||||||
# CONFIG_SERIO_RAW is not set
|
# CONFIG_SERIO_RAW is not set
|
||||||
|
CONFIG_SERIO_AMS_DELTA=y
|
||||||
# CONFIG_GAMEPORT is not set
|
# CONFIG_GAMEPORT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -835,7 +836,8 @@ CONFIG_DAB=y
|
|||||||
#
|
#
|
||||||
# Graphics support
|
# Graphics support
|
||||||
#
|
#
|
||||||
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
|
CONFIG_BACKLIGHT_LCD_SUPPORT=y
|
||||||
|
CONFIG_LCD_CLASS_DEVICE=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Display device support
|
# Display device support
|
||||||
@@ -1283,7 +1285,7 @@ CONFIG_DEBUG_PREEMPT=y
|
|||||||
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
|
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
|
||||||
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
|
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
|
||||||
# CONFIG_DEBUG_KOBJECT is not set
|
# CONFIG_DEBUG_KOBJECT is not set
|
||||||
CONFIG_DEBUG_BUGVERBOSE=y
|
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||||
# CONFIG_DEBUG_INFO is not set
|
# CONFIG_DEBUG_INFO is not set
|
||||||
# CONFIG_DEBUG_VM is not set
|
# CONFIG_DEBUG_VM is not set
|
||||||
# CONFIG_DEBUG_LIST is not set
|
# CONFIG_DEBUG_LIST is not set
|
||||||
|
|||||||
@@ -1,13 +1,14 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.33-rc6
|
# Linux kernel version: 2.6.34-rc2
|
||||||
# Thu Feb 4 15:42:56 2010
|
# Wed Mar 24 13:27:25 2010
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||||
CONFIG_GENERIC_GPIO=y
|
CONFIG_GENERIC_GPIO=y
|
||||||
CONFIG_GENERIC_TIME=y
|
CONFIG_GENERIC_TIME=y
|
||||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||||
|
CONFIG_HAVE_PROC_CPU=y
|
||||||
CONFIG_GENERIC_HARDIRQS=y
|
CONFIG_GENERIC_HARDIRQS=y
|
||||||
CONFIG_STACKTRACE_SUPPORT=y
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
|
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
|
||||||
@@ -19,7 +20,9 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
|||||||
CONFIG_ARCH_HAS_CPUFREQ=y
|
CONFIG_ARCH_HAS_CPUFREQ=y
|
||||||
CONFIG_GENERIC_HWEIGHT=y
|
CONFIG_GENERIC_HWEIGHT=y
|
||||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||||
|
CONFIG_NEED_DMA_MAP_STATE=y
|
||||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||||
|
CONFIG_ARM_L1_CACHE_SHIFT_6=y
|
||||||
CONFIG_VECTORS_BASE=0xffff0000
|
CONFIG_VECTORS_BASE=0xffff0000
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
CONFIG_CONSTRUCTORS=y
|
CONFIG_CONSTRUCTORS=y
|
||||||
@@ -60,11 +63,6 @@ CONFIG_RCU_FANOUT=32
|
|||||||
CONFIG_IKCONFIG=y
|
CONFIG_IKCONFIG=y
|
||||||
CONFIG_IKCONFIG_PROC=y
|
CONFIG_IKCONFIG_PROC=y
|
||||||
CONFIG_LOG_BUF_SHIFT=14
|
CONFIG_LOG_BUF_SHIFT=14
|
||||||
CONFIG_GROUP_SCHED=y
|
|
||||||
CONFIG_FAIR_GROUP_SCHED=y
|
|
||||||
# CONFIG_RT_GROUP_SCHED is not set
|
|
||||||
CONFIG_USER_SCHED=y
|
|
||||||
# CONFIG_CGROUP_SCHED is not set
|
|
||||||
# CONFIG_CGROUPS is not set
|
# CONFIG_CGROUPS is not set
|
||||||
# CONFIG_SYSFS_DEPRECATED_V2 is not set
|
# CONFIG_SYSFS_DEPRECATED_V2 is not set
|
||||||
# CONFIG_RELAY is not set
|
# CONFIG_RELAY is not set
|
||||||
@@ -96,10 +94,14 @@ CONFIG_TIMERFD=y
|
|||||||
CONFIG_EVENTFD=y
|
CONFIG_EVENTFD=y
|
||||||
CONFIG_SHMEM=y
|
CONFIG_SHMEM=y
|
||||||
CONFIG_AIO=y
|
CONFIG_AIO=y
|
||||||
|
CONFIG_HAVE_PERF_EVENTS=y
|
||||||
|
CONFIG_PERF_USE_VMALLOC=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Kernel Performance Events And Counters
|
# Kernel Performance Events And Counters
|
||||||
#
|
#
|
||||||
|
# CONFIG_PERF_EVENTS is not set
|
||||||
|
# CONFIG_PERF_COUNTERS is not set
|
||||||
CONFIG_VM_EVENT_COUNTERS=y
|
CONFIG_VM_EVENT_COUNTERS=y
|
||||||
CONFIG_COMPAT_BRK=y
|
CONFIG_COMPAT_BRK=y
|
||||||
CONFIG_SLAB=y
|
CONFIG_SLAB=y
|
||||||
@@ -170,7 +172,7 @@ CONFIG_INLINE_WRITE_UNLOCK=y
|
|||||||
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
|
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
|
||||||
# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
|
# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
|
||||||
# CONFIG_MUTEX_SPIN_ON_OWNER is not set
|
# CONFIG_MUTEX_SPIN_ON_OWNER is not set
|
||||||
# CONFIG_FREEZER is not set
|
CONFIG_FREEZER=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# System Type
|
# System Type
|
||||||
@@ -181,6 +183,7 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_REALVIEW is not set
|
# CONFIG_ARCH_REALVIEW is not set
|
||||||
# CONFIG_ARCH_VERSATILE is not set
|
# CONFIG_ARCH_VERSATILE is not set
|
||||||
# CONFIG_ARCH_AT91 is not set
|
# CONFIG_ARCH_AT91 is not set
|
||||||
|
# CONFIG_ARCH_BCMRING is not set
|
||||||
# CONFIG_ARCH_CLPS711X is not set
|
# CONFIG_ARCH_CLPS711X is not set
|
||||||
# CONFIG_ARCH_GEMINI is not set
|
# CONFIG_ARCH_GEMINI is not set
|
||||||
# CONFIG_ARCH_EBSA110 is not set
|
# CONFIG_ARCH_EBSA110 is not set
|
||||||
@@ -190,7 +193,6 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_STMP3XXX is not set
|
# CONFIG_ARCH_STMP3XXX is not set
|
||||||
# CONFIG_ARCH_NETX is not set
|
# CONFIG_ARCH_NETX is not set
|
||||||
# CONFIG_ARCH_H720X is not set
|
# CONFIG_ARCH_H720X is not set
|
||||||
# CONFIG_ARCH_NOMADIK is not set
|
|
||||||
# CONFIG_ARCH_IOP13XX is not set
|
# CONFIG_ARCH_IOP13XX is not set
|
||||||
# CONFIG_ARCH_IOP32X is not set
|
# CONFIG_ARCH_IOP32X is not set
|
||||||
# CONFIG_ARCH_IOP33X is not set
|
# CONFIG_ARCH_IOP33X is not set
|
||||||
@@ -207,21 +209,26 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_KS8695 is not set
|
# CONFIG_ARCH_KS8695 is not set
|
||||||
# CONFIG_ARCH_NS9XXX is not set
|
# CONFIG_ARCH_NS9XXX is not set
|
||||||
# CONFIG_ARCH_W90X900 is not set
|
# CONFIG_ARCH_W90X900 is not set
|
||||||
|
# CONFIG_ARCH_NUC93X is not set
|
||||||
# CONFIG_ARCH_PNX4008 is not set
|
# CONFIG_ARCH_PNX4008 is not set
|
||||||
# CONFIG_ARCH_PXA is not set
|
# CONFIG_ARCH_PXA is not set
|
||||||
# CONFIG_ARCH_MSM is not set
|
# CONFIG_ARCH_MSM is not set
|
||||||
|
# CONFIG_ARCH_SHMOBILE is not set
|
||||||
# CONFIG_ARCH_RPC is not set
|
# CONFIG_ARCH_RPC is not set
|
||||||
# CONFIG_ARCH_SA1100 is not set
|
# CONFIG_ARCH_SA1100 is not set
|
||||||
# CONFIG_ARCH_S3C2410 is not set
|
# CONFIG_ARCH_S3C2410 is not set
|
||||||
# CONFIG_ARCH_S3C64XX is not set
|
# CONFIG_ARCH_S3C64XX is not set
|
||||||
|
# CONFIG_ARCH_S5P6440 is not set
|
||||||
|
# CONFIG_ARCH_S5P6442 is not set
|
||||||
# CONFIG_ARCH_S5PC1XX is not set
|
# CONFIG_ARCH_S5PC1XX is not set
|
||||||
|
# CONFIG_ARCH_S5PV210 is not set
|
||||||
# CONFIG_ARCH_SHARK is not set
|
# CONFIG_ARCH_SHARK is not set
|
||||||
# CONFIG_ARCH_LH7A40X is not set
|
# CONFIG_ARCH_LH7A40X is not set
|
||||||
# CONFIG_ARCH_U300 is not set
|
# CONFIG_ARCH_U300 is not set
|
||||||
|
# CONFIG_ARCH_U8500 is not set
|
||||||
|
# CONFIG_ARCH_NOMADIK is not set
|
||||||
# CONFIG_ARCH_DAVINCI is not set
|
# CONFIG_ARCH_DAVINCI is not set
|
||||||
CONFIG_ARCH_OMAP=y
|
CONFIG_ARCH_OMAP=y
|
||||||
# CONFIG_ARCH_BCMRING is not set
|
|
||||||
# CONFIG_ARCH_U8500 is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# TI OMAP Implementations
|
# TI OMAP Implementations
|
||||||
@@ -237,16 +244,20 @@ CONFIG_ARCH_OMAP3=y
|
|||||||
# OMAP Feature Selections
|
# OMAP Feature Selections
|
||||||
#
|
#
|
||||||
# CONFIG_OMAP_RESET_CLOCKS is not set
|
# CONFIG_OMAP_RESET_CLOCKS is not set
|
||||||
# CONFIG_OMAP_MUX is not set
|
CONFIG_OMAP_MUX=y
|
||||||
|
# CONFIG_OMAP_MUX_DEBUG is not set
|
||||||
|
CONFIG_OMAP_MUX_WARNINGS=y
|
||||||
CONFIG_OMAP_MCBSP=y
|
CONFIG_OMAP_MCBSP=y
|
||||||
# CONFIG_OMAP_MBOX_FWK is not set
|
# CONFIG_OMAP_MBOX_FWK is not set
|
||||||
# CONFIG_OMAP_MPU_TIMER is not set
|
# CONFIG_OMAP_MPU_TIMER is not set
|
||||||
CONFIG_OMAP_32K_TIMER=y
|
CONFIG_OMAP_32K_TIMER=y
|
||||||
|
# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set
|
||||||
CONFIG_OMAP_32K_TIMER_HZ=128
|
CONFIG_OMAP_32K_TIMER_HZ=128
|
||||||
CONFIG_OMAP_DM_TIMER=y
|
CONFIG_OMAP_DM_TIMER=y
|
||||||
# CONFIG_OMAP_PM_NONE is not set
|
# CONFIG_OMAP_PM_NONE is not set
|
||||||
CONFIG_OMAP_PM_NOOP=y
|
CONFIG_OMAP_PM_NOOP=y
|
||||||
CONFIG_ARCH_OMAP3430=y
|
CONFIG_ARCH_OMAP3430=y
|
||||||
|
CONFIG_OMAP_PACKAGE_CUS=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# OMAP Board Type
|
# OMAP Board Type
|
||||||
@@ -295,6 +306,7 @@ CONFIG_ARM_THUMB=y
|
|||||||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||||
CONFIG_HAS_TLS_REG=y
|
CONFIG_HAS_TLS_REG=y
|
||||||
CONFIG_ARM_L1_CACHE_SHIFT=6
|
CONFIG_ARM_L1_CACHE_SHIFT=6
|
||||||
|
CONFIG_CPU_HAS_PMU=y
|
||||||
# CONFIG_ARM_ERRATA_430973 is not set
|
# CONFIG_ARM_ERRATA_430973 is not set
|
||||||
# CONFIG_ARM_ERRATA_458693 is not set
|
# CONFIG_ARM_ERRATA_458693 is not set
|
||||||
# CONFIG_ARM_ERRATA_460075 is not set
|
# CONFIG_ARM_ERRATA_460075 is not set
|
||||||
@@ -387,7 +399,14 @@ CONFIG_HAVE_AOUT=y
|
|||||||
#
|
#
|
||||||
# Power management options
|
# Power management options
|
||||||
#
|
#
|
||||||
# CONFIG_PM is not set
|
CONFIG_PM=y
|
||||||
|
# CONFIG_PM_DEBUG is not set
|
||||||
|
CONFIG_PM_SLEEP=y
|
||||||
|
CONFIG_SUSPEND=y
|
||||||
|
CONFIG_SUSPEND_FREEZER=y
|
||||||
|
# CONFIG_APM_EMULATION is not set
|
||||||
|
# CONFIG_PM_RUNTIME is not set
|
||||||
|
CONFIG_PM_OPS=y
|
||||||
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
|
|
||||||
@@ -395,7 +414,6 @@ CONFIG_NET=y
|
|||||||
# Networking options
|
# Networking options
|
||||||
#
|
#
|
||||||
CONFIG_PACKET=y
|
CONFIG_PACKET=y
|
||||||
# CONFIG_PACKET_MMAP is not set
|
|
||||||
CONFIG_UNIX=y
|
CONFIG_UNIX=y
|
||||||
CONFIG_XFRM=y
|
CONFIG_XFRM=y
|
||||||
# CONFIG_XFRM_USER is not set
|
# CONFIG_XFRM_USER is not set
|
||||||
@@ -666,6 +684,7 @@ CONFIG_HAVE_IDE=y
|
|||||||
#
|
#
|
||||||
# SCSI device support
|
# SCSI device support
|
||||||
#
|
#
|
||||||
|
CONFIG_SCSI_MOD=y
|
||||||
# CONFIG_RAID_ATTRS is not set
|
# CONFIG_RAID_ATTRS is not set
|
||||||
CONFIG_SCSI=y
|
CONFIG_SCSI=y
|
||||||
CONFIG_SCSI_DMA=y
|
CONFIG_SCSI_DMA=y
|
||||||
@@ -717,6 +736,7 @@ CONFIG_NET_ETHERNET=y
|
|||||||
CONFIG_MII=y
|
CONFIG_MII=y
|
||||||
# CONFIG_AX88796 is not set
|
# CONFIG_AX88796 is not set
|
||||||
# CONFIG_SMC91X is not set
|
# CONFIG_SMC91X is not set
|
||||||
|
# CONFIG_TI_DAVINCI_EMAC is not set
|
||||||
CONFIG_DM9000=y
|
CONFIG_DM9000=y
|
||||||
CONFIG_DM9000_DEBUGLEVEL=4
|
CONFIG_DM9000_DEBUGLEVEL=4
|
||||||
CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL=y
|
CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL=y
|
||||||
@@ -863,6 +883,7 @@ CONFIG_SERIAL_8250_RSA=y
|
|||||||
# CONFIG_SERIAL_MAX3100 is not set
|
# CONFIG_SERIAL_MAX3100 is not set
|
||||||
CONFIG_SERIAL_CORE=y
|
CONFIG_SERIAL_CORE=y
|
||||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||||
|
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||||
CONFIG_UNIX98_PTYS=y
|
CONFIG_UNIX98_PTYS=y
|
||||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||||
# CONFIG_LEGACY_PTYS is not set
|
# CONFIG_LEGACY_PTYS is not set
|
||||||
@@ -891,6 +912,7 @@ CONFIG_I2C_HELPER_AUTO=y
|
|||||||
# CONFIG_I2C_OCORES is not set
|
# CONFIG_I2C_OCORES is not set
|
||||||
CONFIG_I2C_OMAP=y
|
CONFIG_I2C_OMAP=y
|
||||||
# CONFIG_I2C_SIMTEC is not set
|
# CONFIG_I2C_SIMTEC is not set
|
||||||
|
# CONFIG_I2C_XILINX is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# External I2C/SMBus adapter drivers
|
# External I2C/SMBus adapter drivers
|
||||||
@@ -904,15 +926,9 @@ CONFIG_I2C_OMAP=y
|
|||||||
#
|
#
|
||||||
# CONFIG_I2C_PCA_PLATFORM is not set
|
# CONFIG_I2C_PCA_PLATFORM is not set
|
||||||
# CONFIG_I2C_STUB is not set
|
# CONFIG_I2C_STUB is not set
|
||||||
|
|
||||||
#
|
|
||||||
# Miscellaneous I2C Chip support
|
|
||||||
#
|
|
||||||
# CONFIG_SENSORS_TSL2550 is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CORE is not set
|
# CONFIG_I2C_DEBUG_CORE is not set
|
||||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||||
# CONFIG_I2C_DEBUG_BUS is not set
|
# CONFIG_I2C_DEBUG_BUS is not set
|
||||||
# CONFIG_I2C_DEBUG_CHIP is not set
|
|
||||||
CONFIG_SPI=y
|
CONFIG_SPI=y
|
||||||
# CONFIG_SPI_DEBUG is not set
|
# CONFIG_SPI_DEBUG is not set
|
||||||
CONFIG_SPI_MASTER=y
|
CONFIG_SPI_MASTER=y
|
||||||
@@ -944,10 +960,12 @@ CONFIG_GPIOLIB=y
|
|||||||
#
|
#
|
||||||
# Memory mapped GPIO expanders:
|
# Memory mapped GPIO expanders:
|
||||||
#
|
#
|
||||||
|
# CONFIG_GPIO_IT8761E is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# I2C GPIO expanders:
|
# I2C GPIO expanders:
|
||||||
#
|
#
|
||||||
|
# CONFIG_GPIO_MAX7300 is not set
|
||||||
# CONFIG_GPIO_MAX732X is not set
|
# CONFIG_GPIO_MAX732X is not set
|
||||||
# CONFIG_GPIO_PCA953X is not set
|
# CONFIG_GPIO_PCA953X is not set
|
||||||
# CONFIG_GPIO_PCF857X is not set
|
# CONFIG_GPIO_PCF857X is not set
|
||||||
@@ -984,10 +1002,12 @@ CONFIG_SSB_POSSIBLE=y
|
|||||||
# Multifunction device drivers
|
# Multifunction device drivers
|
||||||
#
|
#
|
||||||
CONFIG_MFD_CORE=y
|
CONFIG_MFD_CORE=y
|
||||||
|
# CONFIG_MFD_88PM860X is not set
|
||||||
# CONFIG_MFD_SM501 is not set
|
# CONFIG_MFD_SM501 is not set
|
||||||
# CONFIG_MFD_ASIC3 is not set
|
# CONFIG_MFD_ASIC3 is not set
|
||||||
# CONFIG_HTC_EGPIO is not set
|
# CONFIG_HTC_EGPIO is not set
|
||||||
# CONFIG_HTC_PASIC3 is not set
|
# CONFIG_HTC_PASIC3 is not set
|
||||||
|
# CONFIG_HTC_I2CPLD is not set
|
||||||
# CONFIG_TPS65010 is not set
|
# CONFIG_TPS65010 is not set
|
||||||
CONFIG_TWL4030_CORE=y
|
CONFIG_TWL4030_CORE=y
|
||||||
CONFIG_TWL4030_POWER=y
|
CONFIG_TWL4030_POWER=y
|
||||||
@@ -998,22 +1018,25 @@ CONFIG_TWL4030_CODEC=y
|
|||||||
# CONFIG_MFD_TC6393XB is not set
|
# CONFIG_MFD_TC6393XB is not set
|
||||||
# CONFIG_PMIC_DA903X is not set
|
# CONFIG_PMIC_DA903X is not set
|
||||||
# CONFIG_PMIC_ADP5520 is not set
|
# CONFIG_PMIC_ADP5520 is not set
|
||||||
|
# CONFIG_MFD_MAX8925 is not set
|
||||||
# CONFIG_MFD_WM8400 is not set
|
# CONFIG_MFD_WM8400 is not set
|
||||||
# CONFIG_MFD_WM831X is not set
|
# CONFIG_MFD_WM831X is not set
|
||||||
# CONFIG_MFD_WM8350_I2C is not set
|
# CONFIG_MFD_WM8350_I2C is not set
|
||||||
|
# CONFIG_MFD_WM8994 is not set
|
||||||
# CONFIG_MFD_PCF50633 is not set
|
# CONFIG_MFD_PCF50633 is not set
|
||||||
# CONFIG_MFD_MC13783 is not set
|
# CONFIG_MFD_MC13783 is not set
|
||||||
# CONFIG_AB3100_CORE is not set
|
# CONFIG_AB3100_CORE is not set
|
||||||
# CONFIG_EZX_PCAP is not set
|
# CONFIG_EZX_PCAP is not set
|
||||||
# CONFIG_MFD_88PM8607 is not set
|
|
||||||
# CONFIG_AB4500_CORE is not set
|
# CONFIG_AB4500_CORE is not set
|
||||||
CONFIG_REGULATOR=y
|
CONFIG_REGULATOR=y
|
||||||
# CONFIG_REGULATOR_DEBUG is not set
|
# CONFIG_REGULATOR_DEBUG is not set
|
||||||
|
# CONFIG_REGULATOR_DUMMY is not set
|
||||||
# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
|
# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
|
||||||
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
|
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
|
||||||
# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
|
# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
|
||||||
# CONFIG_REGULATOR_BQ24022 is not set
|
# CONFIG_REGULATOR_BQ24022 is not set
|
||||||
# CONFIG_REGULATOR_MAX1586 is not set
|
# CONFIG_REGULATOR_MAX1586 is not set
|
||||||
|
# CONFIG_REGULATOR_MAX8649 is not set
|
||||||
# CONFIG_REGULATOR_MAX8660 is not set
|
# CONFIG_REGULATOR_MAX8660 is not set
|
||||||
CONFIG_REGULATOR_TWL4030=y
|
CONFIG_REGULATOR_TWL4030=y
|
||||||
# CONFIG_REGULATOR_LP3971 is not set
|
# CONFIG_REGULATOR_LP3971 is not set
|
||||||
@@ -1072,7 +1095,6 @@ CONFIG_OMAP2_DSS_VENC=y
|
|||||||
CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0
|
CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0
|
||||||
CONFIG_FB_OMAP2=y
|
CONFIG_FB_OMAP2=y
|
||||||
CONFIG_FB_OMAP2_DEBUG_SUPPORT=y
|
CONFIG_FB_OMAP2_DEBUG_SUPPORT=y
|
||||||
# CONFIG_FB_OMAP2_FORCE_AUTO_UPDATE is not set
|
|
||||||
CONFIG_FB_OMAP2_NUM_FBS=3
|
CONFIG_FB_OMAP2_NUM_FBS=3
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -1080,7 +1102,9 @@ CONFIG_FB_OMAP2_NUM_FBS=3
|
|||||||
#
|
#
|
||||||
CONFIG_PANEL_GENERIC=y
|
CONFIG_PANEL_GENERIC=y
|
||||||
# CONFIG_PANEL_SHARP_LS037V7DW01 is not set
|
# CONFIG_PANEL_SHARP_LS037V7DW01 is not set
|
||||||
CONFIG_PANEL_INNOLUX_AT070TN83=y
|
# CONFIG_PANEL_SHARP_LQ043T1DG01 is not set
|
||||||
|
# CONFIG_PANEL_TOPPOLY_TDO35S is not set
|
||||||
|
# CONFIG_PANEL_TPO_TD043MTEA1 is not set
|
||||||
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
|
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -1136,6 +1160,7 @@ CONFIG_SND_ARM=y
|
|||||||
CONFIG_SND_SPI=y
|
CONFIG_SND_SPI=y
|
||||||
CONFIG_SND_USB=y
|
CONFIG_SND_USB=y
|
||||||
# CONFIG_SND_USB_AUDIO is not set
|
# CONFIG_SND_USB_AUDIO is not set
|
||||||
|
# CONFIG_SND_USB_UA101 is not set
|
||||||
# CONFIG_SND_USB_CAIAQ is not set
|
# CONFIG_SND_USB_CAIAQ is not set
|
||||||
CONFIG_SND_SOC=y
|
CONFIG_SND_SOC=y
|
||||||
CONFIG_SND_OMAP_SOC=y
|
CONFIG_SND_OMAP_SOC=y
|
||||||
@@ -1147,42 +1172,44 @@ CONFIG_SND_SOC_TWL4030=y
|
|||||||
# CONFIG_SOUND_PRIME is not set
|
# CONFIG_SOUND_PRIME is not set
|
||||||
CONFIG_HID_SUPPORT=y
|
CONFIG_HID_SUPPORT=y
|
||||||
CONFIG_HID=y
|
CONFIG_HID=y
|
||||||
CONFIG_HIDRAW=y
|
# CONFIG_HIDRAW is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# USB Input Devices
|
# USB Input Devices
|
||||||
#
|
#
|
||||||
CONFIG_USB_HID=y
|
CONFIG_USB_HID=y
|
||||||
# CONFIG_HID_PID is not set
|
# CONFIG_HID_PID is not set
|
||||||
CONFIG_USB_HIDDEV=y
|
# CONFIG_USB_HIDDEV is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Special HID drivers
|
# Special HID drivers
|
||||||
#
|
#
|
||||||
CONFIG_HID_A4TECH=y
|
# CONFIG_HID_3M_PCT is not set
|
||||||
CONFIG_HID_APPLE=y
|
# CONFIG_HID_A4TECH is not set
|
||||||
CONFIG_HID_BELKIN=y
|
# CONFIG_HID_APPLE is not set
|
||||||
CONFIG_HID_CHERRY=y
|
# CONFIG_HID_BELKIN is not set
|
||||||
CONFIG_HID_CHICONY=y
|
# CONFIG_HID_CHERRY is not set
|
||||||
CONFIG_HID_CYPRESS=y
|
# CONFIG_HID_CHICONY is not set
|
||||||
|
# CONFIG_HID_CYPRESS is not set
|
||||||
# CONFIG_HID_DRAGONRISE is not set
|
# CONFIG_HID_DRAGONRISE is not set
|
||||||
CONFIG_HID_EZKEY=y
|
# CONFIG_HID_EZKEY is not set
|
||||||
# CONFIG_HID_KYE is not set
|
# CONFIG_HID_KYE is not set
|
||||||
CONFIG_HID_GYRATION=y
|
# CONFIG_HID_GYRATION is not set
|
||||||
# CONFIG_HID_TWINHAN is not set
|
# CONFIG_HID_TWINHAN is not set
|
||||||
# CONFIG_HID_KENSINGTON is not set
|
# CONFIG_HID_KENSINGTON is not set
|
||||||
CONFIG_HID_LOGITECH=y
|
# CONFIG_HID_LOGITECH is not set
|
||||||
# CONFIG_LOGITECH_FF is not set
|
# CONFIG_HID_MICROSOFT is not set
|
||||||
# CONFIG_LOGIRUMBLEPAD2_FF is not set
|
# CONFIG_HID_MOSART is not set
|
||||||
CONFIG_HID_MICROSOFT=y
|
# CONFIG_HID_MONTEREY is not set
|
||||||
CONFIG_HID_MONTEREY=y
|
|
||||||
# CONFIG_HID_NTRIG is not set
|
# CONFIG_HID_NTRIG is not set
|
||||||
CONFIG_HID_PANTHERLORD=y
|
# CONFIG_HID_ORTEK is not set
|
||||||
# CONFIG_PANTHERLORD_FF is not set
|
# CONFIG_HID_PANTHERLORD is not set
|
||||||
CONFIG_HID_PETALYNX=y
|
# CONFIG_HID_PETALYNX is not set
|
||||||
CONFIG_HID_SAMSUNG=y
|
# CONFIG_HID_QUANTA is not set
|
||||||
CONFIG_HID_SONY=y
|
# CONFIG_HID_SAMSUNG is not set
|
||||||
CONFIG_HID_SUNPLUS=y
|
# CONFIG_HID_SONY is not set
|
||||||
|
# CONFIG_HID_STANTUM is not set
|
||||||
|
# CONFIG_HID_SUNPLUS is not set
|
||||||
# CONFIG_HID_GREENASIA is not set
|
# CONFIG_HID_GREENASIA is not set
|
||||||
# CONFIG_HID_SMARTJOYPLUS is not set
|
# CONFIG_HID_SMARTJOYPLUS is not set
|
||||||
# CONFIG_HID_TOPSEED is not set
|
# CONFIG_HID_TOPSEED is not set
|
||||||
@@ -1193,7 +1220,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
|
|||||||
CONFIG_USB_ARCH_HAS_OHCI=y
|
CONFIG_USB_ARCH_HAS_OHCI=y
|
||||||
CONFIG_USB_ARCH_HAS_EHCI=y
|
CONFIG_USB_ARCH_HAS_EHCI=y
|
||||||
CONFIG_USB=y
|
CONFIG_USB=y
|
||||||
# CONFIG_USB_DEBUG is not set
|
CONFIG_USB_DEBUG=y
|
||||||
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
|
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -1202,7 +1229,7 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
|
|||||||
# CONFIG_USB_DEVICEFS is not set
|
# CONFIG_USB_DEVICEFS is not set
|
||||||
# CONFIG_USB_DEVICE_CLASS is not set
|
# CONFIG_USB_DEVICE_CLASS is not set
|
||||||
# CONFIG_USB_DYNAMIC_MINORS is not set
|
# CONFIG_USB_DYNAMIC_MINORS is not set
|
||||||
# CONFIG_USB_OTG is not set
|
CONFIG_USB_OTG=y
|
||||||
# CONFIG_USB_OTG_WHITELIST is not set
|
# CONFIG_USB_OTG_WHITELIST is not set
|
||||||
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
|
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
|
||||||
CONFIG_USB_MON=y
|
CONFIG_USB_MON=y
|
||||||
@@ -1230,15 +1257,15 @@ CONFIG_USB_MUSB_SOC=y
|
|||||||
#
|
#
|
||||||
# OMAP 343x high speed USB support
|
# OMAP 343x high speed USB support
|
||||||
#
|
#
|
||||||
CONFIG_USB_MUSB_HOST=y
|
# CONFIG_USB_MUSB_HOST is not set
|
||||||
# CONFIG_USB_MUSB_PERIPHERAL is not set
|
# CONFIG_USB_MUSB_PERIPHERAL is not set
|
||||||
# CONFIG_USB_MUSB_OTG is not set
|
CONFIG_USB_MUSB_OTG=y
|
||||||
# CONFIG_USB_GADGET_MUSB_HDRC is not set
|
CONFIG_USB_GADGET_MUSB_HDRC=y
|
||||||
CONFIG_USB_MUSB_HDRC_HCD=y
|
CONFIG_USB_MUSB_HDRC_HCD=y
|
||||||
# CONFIG_MUSB_PIO_ONLY is not set
|
# CONFIG_MUSB_PIO_ONLY is not set
|
||||||
CONFIG_USB_INVENTRA_DMA=y
|
CONFIG_USB_INVENTRA_DMA=y
|
||||||
# CONFIG_USB_TI_CPPI_DMA is not set
|
# CONFIG_USB_TI_CPPI_DMA is not set
|
||||||
# CONFIG_USB_MUSB_DEBUG is not set
|
CONFIG_USB_MUSB_DEBUG=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# USB Device Class drivers
|
# USB Device Class drivers
|
||||||
@@ -1291,7 +1318,6 @@ CONFIG_USB_STORAGE=m
|
|||||||
# CONFIG_USB_RIO500 is not set
|
# CONFIG_USB_RIO500 is not set
|
||||||
# CONFIG_USB_LEGOTOWER is not set
|
# CONFIG_USB_LEGOTOWER is not set
|
||||||
# CONFIG_USB_LCD is not set
|
# CONFIG_USB_LCD is not set
|
||||||
# CONFIG_USB_BERRY_CHARGE is not set
|
|
||||||
# CONFIG_USB_LED is not set
|
# CONFIG_USB_LED is not set
|
||||||
# CONFIG_USB_CYPRESS_CY7C63 is not set
|
# CONFIG_USB_CYPRESS_CY7C63 is not set
|
||||||
# CONFIG_USB_CYTHERM is not set
|
# CONFIG_USB_CYTHERM is not set
|
||||||
@@ -1304,9 +1330,8 @@ CONFIG_USB_STORAGE=m
|
|||||||
# CONFIG_USB_IOWARRIOR is not set
|
# CONFIG_USB_IOWARRIOR is not set
|
||||||
# CONFIG_USB_TEST is not set
|
# CONFIG_USB_TEST is not set
|
||||||
# CONFIG_USB_ISIGHTFW is not set
|
# CONFIG_USB_ISIGHTFW is not set
|
||||||
# CONFIG_USB_VST is not set
|
|
||||||
CONFIG_USB_GADGET=y
|
CONFIG_USB_GADGET=y
|
||||||
# CONFIG_USB_GADGET_DEBUG is not set
|
CONFIG_USB_GADGET_DEBUG=y
|
||||||
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||||
CONFIG_USB_GADGET_VBUS_DRAW=2
|
CONFIG_USB_GADGET_VBUS_DRAW=2
|
||||||
CONFIG_USB_GADGET_SELECTED=y
|
CONFIG_USB_GADGET_SELECTED=y
|
||||||
@@ -1314,8 +1339,7 @@ CONFIG_USB_GADGET_SELECTED=y
|
|||||||
# CONFIG_USB_GADGET_ATMEL_USBA is not set
|
# CONFIG_USB_GADGET_ATMEL_USBA is not set
|
||||||
# CONFIG_USB_GADGET_FSL_USB2 is not set
|
# CONFIG_USB_GADGET_FSL_USB2 is not set
|
||||||
# CONFIG_USB_GADGET_LH7A40X is not set
|
# CONFIG_USB_GADGET_LH7A40X is not set
|
||||||
CONFIG_USB_GADGET_OMAP=y
|
# CONFIG_USB_GADGET_OMAP is not set
|
||||||
CONFIG_USB_OMAP=y
|
|
||||||
# CONFIG_USB_GADGET_PXA25X is not set
|
# CONFIG_USB_GADGET_PXA25X is not set
|
||||||
# CONFIG_USB_GADGET_R8A66597 is not set
|
# CONFIG_USB_GADGET_R8A66597 is not set
|
||||||
# CONFIG_USB_GADGET_PXA27X is not set
|
# CONFIG_USB_GADGET_PXA27X is not set
|
||||||
@@ -1330,19 +1354,20 @@ CONFIG_USB_OMAP=y
|
|||||||
# CONFIG_USB_GADGET_GOKU is not set
|
# CONFIG_USB_GADGET_GOKU is not set
|
||||||
# CONFIG_USB_GADGET_LANGWELL is not set
|
# CONFIG_USB_GADGET_LANGWELL is not set
|
||||||
# CONFIG_USB_GADGET_DUMMY_HCD is not set
|
# CONFIG_USB_GADGET_DUMMY_HCD is not set
|
||||||
# CONFIG_USB_GADGET_DUALSPEED is not set
|
CONFIG_USB_GADGET_DUALSPEED=y
|
||||||
# CONFIG_USB_ZERO is not set
|
# CONFIG_USB_ZERO is not set
|
||||||
CONFIG_USB_AUDIO=m
|
# CONFIG_USB_AUDIO is not set
|
||||||
CONFIG_USB_ETH=m
|
CONFIG_USB_ETH=y
|
||||||
CONFIG_USB_ETH_RNDIS=y
|
# CONFIG_USB_ETH_RNDIS is not set
|
||||||
CONFIG_USB_ETH_EEM=y
|
# CONFIG_USB_ETH_EEM is not set
|
||||||
CONFIG_USB_GADGETFS=m
|
# CONFIG_USB_GADGETFS is not set
|
||||||
# CONFIG_USB_FILE_STORAGE is not set
|
# CONFIG_USB_FILE_STORAGE is not set
|
||||||
# CONFIG_USB_MASS_STORAGE is not set
|
# CONFIG_USB_MASS_STORAGE is not set
|
||||||
CONFIG_USB_G_SERIAL=m
|
# CONFIG_USB_G_SERIAL is not set
|
||||||
# CONFIG_USB_MIDI_GADGET is not set
|
# CONFIG_USB_MIDI_GADGET is not set
|
||||||
CONFIG_USB_G_PRINTER=m
|
# CONFIG_USB_G_PRINTER is not set
|
||||||
# CONFIG_USB_CDC_COMPOSITE is not set
|
# CONFIG_USB_CDC_COMPOSITE is not set
|
||||||
|
# CONFIG_USB_G_NOKIA is not set
|
||||||
# CONFIG_USB_G_MULTI is not set
|
# CONFIG_USB_G_MULTI is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -1373,8 +1398,6 @@ CONFIG_MMC_SDHCI=y
|
|||||||
CONFIG_MMC_SDHCI_PLTFM=m
|
CONFIG_MMC_SDHCI_PLTFM=m
|
||||||
# CONFIG_MMC_OMAP is not set
|
# CONFIG_MMC_OMAP is not set
|
||||||
CONFIG_MMC_OMAP_HS=y
|
CONFIG_MMC_OMAP_HS=y
|
||||||
# CONFIG_MMC_AT91 is not set
|
|
||||||
# CONFIG_MMC_ATMELMCI is not set
|
|
||||||
CONFIG_MMC_SPI=m
|
CONFIG_MMC_SPI=m
|
||||||
# CONFIG_MEMSTICK is not set
|
# CONFIG_MEMSTICK is not set
|
||||||
CONFIG_NEW_LEDS=y
|
CONFIG_NEW_LEDS=y
|
||||||
@@ -1392,11 +1415,11 @@ CONFIG_LEDS_GPIO_PLATFORM=y
|
|||||||
# CONFIG_LEDS_REGULATOR is not set
|
# CONFIG_LEDS_REGULATOR is not set
|
||||||
# CONFIG_LEDS_BD2802 is not set
|
# CONFIG_LEDS_BD2802 is not set
|
||||||
# CONFIG_LEDS_LT3593 is not set
|
# CONFIG_LEDS_LT3593 is not set
|
||||||
|
CONFIG_LEDS_TRIGGERS=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# LED Triggers
|
# LED Triggers
|
||||||
#
|
#
|
||||||
CONFIG_LEDS_TRIGGERS=y
|
|
||||||
# CONFIG_LEDS_TRIGGER_TIMER is not set
|
# CONFIG_LEDS_TRIGGER_TIMER is not set
|
||||||
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
||||||
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
|
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
|
||||||
@@ -1580,6 +1603,7 @@ CONFIG_UBIFS_FS=y
|
|||||||
CONFIG_UBIFS_FS_LZO=y
|
CONFIG_UBIFS_FS_LZO=y
|
||||||
CONFIG_UBIFS_FS_ZLIB=y
|
CONFIG_UBIFS_FS_ZLIB=y
|
||||||
# CONFIG_UBIFS_FS_DEBUG is not set
|
# CONFIG_UBIFS_FS_DEBUG is not set
|
||||||
|
# CONFIG_LOGFS is not set
|
||||||
CONFIG_CRAMFS=y
|
CONFIG_CRAMFS=y
|
||||||
# CONFIG_SQUASHFS is not set
|
# CONFIG_SQUASHFS is not set
|
||||||
# CONFIG_VXFS_FS is not set
|
# CONFIG_VXFS_FS is not set
|
||||||
@@ -1606,6 +1630,7 @@ CONFIG_SUNRPC_GSS=y
|
|||||||
CONFIG_RPCSEC_GSS_KRB5=y
|
CONFIG_RPCSEC_GSS_KRB5=y
|
||||||
# CONFIG_RPCSEC_GSS_SPKM3 is not set
|
# CONFIG_RPCSEC_GSS_SPKM3 is not set
|
||||||
# CONFIG_SMB_FS is not set
|
# CONFIG_SMB_FS is not set
|
||||||
|
# CONFIG_CEPH_FS is not set
|
||||||
# CONFIG_CIFS is not set
|
# CONFIG_CIFS is not set
|
||||||
# CONFIG_NCP_FS is not set
|
# CONFIG_NCP_FS is not set
|
||||||
# CONFIG_CODA_FS is not set
|
# CONFIG_CODA_FS is not set
|
||||||
|
|||||||
@@ -809,7 +809,22 @@ CONFIG_SSB_POSSIBLE=y
|
|||||||
CONFIG_DUMMY_CONSOLE=y
|
CONFIG_DUMMY_CONSOLE=y
|
||||||
# CONFIG_SOUND is not set
|
# CONFIG_SOUND is not set
|
||||||
# CONFIG_HID_SUPPORT is not set
|
# CONFIG_HID_SUPPORT is not set
|
||||||
# CONFIG_USB_SUPPORT is not set
|
CONFIG_USB_SUPPORT=y
|
||||||
|
CONFIG_USB_ARCH_HAS_HCD=y
|
||||||
|
# CONFIG_USB_ARCH_HAS_OHCI is not set
|
||||||
|
CONFIG_USB_ARCH_HAS_EHCI=y
|
||||||
|
CONFIG_USB=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# USB Host Controller Drivers
|
||||||
|
#
|
||||||
|
# CONFIG_USB_C67X00_HCD is not set
|
||||||
|
CONFIG_USB_EHCI_HCD=y
|
||||||
|
CONFIG_USB_EHCI_ROOT_HUB_TT=y
|
||||||
|
# CONFIG_USB_EHCI_TT_NEWSCHED is not set
|
||||||
|
CONFIG_USB_EHCI_MXC=y
|
||||||
|
|
||||||
|
|
||||||
CONFIG_MMC=y
|
CONFIG_MMC=y
|
||||||
# CONFIG_MMC_DEBUG is not set
|
# CONFIG_MMC_DEBUG is not set
|
||||||
# CONFIG_MMC_UNSAFE_RESUME is not set
|
# CONFIG_MMC_UNSAFE_RESUME is not set
|
||||||
|
|||||||
@@ -1,13 +1,14 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.33-rc5
|
# Linux kernel version: 2.6.34-rc7
|
||||||
# Tue Jan 26 11:05:31 2010
|
# Thu May 13 10:54:43 2010
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||||
CONFIG_GENERIC_GPIO=y
|
CONFIG_GENERIC_GPIO=y
|
||||||
CONFIG_GENERIC_TIME=y
|
CONFIG_GENERIC_TIME=y
|
||||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||||
|
CONFIG_HAVE_PROC_CPU=y
|
||||||
CONFIG_GENERIC_HARDIRQS=y
|
CONFIG_GENERIC_HARDIRQS=y
|
||||||
CONFIG_STACKTRACE_SUPPORT=y
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
|
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
|
||||||
@@ -19,7 +20,9 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
|||||||
CONFIG_ARCH_HAS_CPUFREQ=y
|
CONFIG_ARCH_HAS_CPUFREQ=y
|
||||||
CONFIG_GENERIC_HWEIGHT=y
|
CONFIG_GENERIC_HWEIGHT=y
|
||||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||||
|
CONFIG_NEED_DMA_MAP_STATE=y
|
||||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||||
|
CONFIG_ARM_L1_CACHE_SHIFT_6=y
|
||||||
CONFIG_OPROFILE_ARMV6=y
|
CONFIG_OPROFILE_ARMV6=y
|
||||||
CONFIG_OPROFILE_ARM11_CORE=y
|
CONFIG_OPROFILE_ARM11_CORE=y
|
||||||
CONFIG_OPROFILE_ARMV7=y
|
CONFIG_OPROFILE_ARMV7=y
|
||||||
@@ -63,12 +66,7 @@ CONFIG_RCU_FANOUT=32
|
|||||||
# CONFIG_TREE_RCU_TRACE is not set
|
# CONFIG_TREE_RCU_TRACE is not set
|
||||||
CONFIG_IKCONFIG=y
|
CONFIG_IKCONFIG=y
|
||||||
CONFIG_IKCONFIG_PROC=y
|
CONFIG_IKCONFIG_PROC=y
|
||||||
CONFIG_LOG_BUF_SHIFT=14
|
CONFIG_LOG_BUF_SHIFT=16
|
||||||
CONFIG_GROUP_SCHED=y
|
|
||||||
CONFIG_FAIR_GROUP_SCHED=y
|
|
||||||
# CONFIG_RT_GROUP_SCHED is not set
|
|
||||||
CONFIG_USER_SCHED=y
|
|
||||||
# CONFIG_CGROUP_SCHED is not set
|
|
||||||
# CONFIG_CGROUPS is not set
|
# CONFIG_CGROUPS is not set
|
||||||
# CONFIG_SYSFS_DEPRECATED_V2 is not set
|
# CONFIG_SYSFS_DEPRECATED_V2 is not set
|
||||||
# CONFIG_RELAY is not set
|
# CONFIG_RELAY is not set
|
||||||
@@ -100,17 +98,21 @@ CONFIG_TIMERFD=y
|
|||||||
CONFIG_EVENTFD=y
|
CONFIG_EVENTFD=y
|
||||||
CONFIG_SHMEM=y
|
CONFIG_SHMEM=y
|
||||||
CONFIG_AIO=y
|
CONFIG_AIO=y
|
||||||
|
CONFIG_HAVE_PERF_EVENTS=y
|
||||||
|
CONFIG_PERF_USE_VMALLOC=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Kernel Performance Events And Counters
|
# Kernel Performance Events And Counters
|
||||||
#
|
#
|
||||||
|
CONFIG_PERF_EVENTS=y
|
||||||
|
# CONFIG_PERF_COUNTERS is not set
|
||||||
|
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
|
||||||
CONFIG_VM_EVENT_COUNTERS=y
|
CONFIG_VM_EVENT_COUNTERS=y
|
||||||
CONFIG_COMPAT_BRK=y
|
CONFIG_COMPAT_BRK=y
|
||||||
CONFIG_SLAB=y
|
CONFIG_SLAB=y
|
||||||
# CONFIG_SLUB is not set
|
# CONFIG_SLUB is not set
|
||||||
# CONFIG_SLOB is not set
|
# CONFIG_SLOB is not set
|
||||||
CONFIG_PROFILING=y
|
CONFIG_PROFILING=y
|
||||||
CONFIG_TRACEPOINTS=y
|
|
||||||
CONFIG_OPROFILE=y
|
CONFIG_OPROFILE=y
|
||||||
CONFIG_HAVE_OPROFILE=y
|
CONFIG_HAVE_OPROFILE=y
|
||||||
CONFIG_KPROBES=y
|
CONFIG_KPROBES=y
|
||||||
@@ -189,6 +191,7 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_REALVIEW is not set
|
# CONFIG_ARCH_REALVIEW is not set
|
||||||
# CONFIG_ARCH_VERSATILE is not set
|
# CONFIG_ARCH_VERSATILE is not set
|
||||||
# CONFIG_ARCH_AT91 is not set
|
# CONFIG_ARCH_AT91 is not set
|
||||||
|
# CONFIG_ARCH_BCMRING is not set
|
||||||
# CONFIG_ARCH_CLPS711X is not set
|
# CONFIG_ARCH_CLPS711X is not set
|
||||||
# CONFIG_ARCH_GEMINI is not set
|
# CONFIG_ARCH_GEMINI is not set
|
||||||
# CONFIG_ARCH_EBSA110 is not set
|
# CONFIG_ARCH_EBSA110 is not set
|
||||||
@@ -198,7 +201,6 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_STMP3XXX is not set
|
# CONFIG_ARCH_STMP3XXX is not set
|
||||||
# CONFIG_ARCH_NETX is not set
|
# CONFIG_ARCH_NETX is not set
|
||||||
# CONFIG_ARCH_H720X is not set
|
# CONFIG_ARCH_H720X is not set
|
||||||
# CONFIG_ARCH_NOMADIK is not set
|
|
||||||
# CONFIG_ARCH_IOP13XX is not set
|
# CONFIG_ARCH_IOP13XX is not set
|
||||||
# CONFIG_ARCH_IOP32X is not set
|
# CONFIG_ARCH_IOP32X is not set
|
||||||
# CONFIG_ARCH_IOP33X is not set
|
# CONFIG_ARCH_IOP33X is not set
|
||||||
@@ -215,21 +217,26 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_KS8695 is not set
|
# CONFIG_ARCH_KS8695 is not set
|
||||||
# CONFIG_ARCH_NS9XXX is not set
|
# CONFIG_ARCH_NS9XXX is not set
|
||||||
# CONFIG_ARCH_W90X900 is not set
|
# CONFIG_ARCH_W90X900 is not set
|
||||||
|
# CONFIG_ARCH_NUC93X is not set
|
||||||
# CONFIG_ARCH_PNX4008 is not set
|
# CONFIG_ARCH_PNX4008 is not set
|
||||||
# CONFIG_ARCH_PXA is not set
|
# CONFIG_ARCH_PXA is not set
|
||||||
# CONFIG_ARCH_MSM is not set
|
# CONFIG_ARCH_MSM is not set
|
||||||
|
# CONFIG_ARCH_SHMOBILE is not set
|
||||||
# CONFIG_ARCH_RPC is not set
|
# CONFIG_ARCH_RPC is not set
|
||||||
# CONFIG_ARCH_SA1100 is not set
|
# CONFIG_ARCH_SA1100 is not set
|
||||||
# CONFIG_ARCH_S3C2410 is not set
|
# CONFIG_ARCH_S3C2410 is not set
|
||||||
# CONFIG_ARCH_S3C64XX is not set
|
# CONFIG_ARCH_S3C64XX is not set
|
||||||
|
# CONFIG_ARCH_S5P6440 is not set
|
||||||
|
# CONFIG_ARCH_S5P6442 is not set
|
||||||
# CONFIG_ARCH_S5PC1XX is not set
|
# CONFIG_ARCH_S5PC1XX is not set
|
||||||
|
# CONFIG_ARCH_S5PV210 is not set
|
||||||
# CONFIG_ARCH_SHARK is not set
|
# CONFIG_ARCH_SHARK is not set
|
||||||
# CONFIG_ARCH_LH7A40X is not set
|
# CONFIG_ARCH_LH7A40X is not set
|
||||||
# CONFIG_ARCH_U300 is not set
|
# CONFIG_ARCH_U300 is not set
|
||||||
|
# CONFIG_ARCH_U8500 is not set
|
||||||
|
# CONFIG_ARCH_NOMADIK is not set
|
||||||
# CONFIG_ARCH_DAVINCI is not set
|
# CONFIG_ARCH_DAVINCI is not set
|
||||||
CONFIG_ARCH_OMAP=y
|
CONFIG_ARCH_OMAP=y
|
||||||
# CONFIG_ARCH_BCMRING is not set
|
|
||||||
# CONFIG_ARCH_U8500 is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# TI OMAP Implementations
|
# TI OMAP Implementations
|
||||||
@@ -254,6 +261,7 @@ CONFIG_OMAP_MCBSP=y
|
|||||||
# CONFIG_OMAP_MBOX_FWK is not set
|
# CONFIG_OMAP_MBOX_FWK is not set
|
||||||
# CONFIG_OMAP_MPU_TIMER is not set
|
# CONFIG_OMAP_MPU_TIMER is not set
|
||||||
CONFIG_OMAP_32K_TIMER=y
|
CONFIG_OMAP_32K_TIMER=y
|
||||||
|
# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set
|
||||||
CONFIG_OMAP_32K_TIMER_HZ=128
|
CONFIG_OMAP_32K_TIMER_HZ=128
|
||||||
CONFIG_OMAP_DM_TIMER=y
|
CONFIG_OMAP_DM_TIMER=y
|
||||||
# CONFIG_OMAP_PM_NONE is not set
|
# CONFIG_OMAP_PM_NONE is not set
|
||||||
@@ -264,7 +272,7 @@ CONFIG_MACH_OMAP_GENERIC=y
|
|||||||
# OMAP Core Type
|
# OMAP Core Type
|
||||||
#
|
#
|
||||||
CONFIG_ARCH_OMAP2420=y
|
CONFIG_ARCH_OMAP2420=y
|
||||||
# CONFIG_ARCH_OMAP2430 is not set
|
CONFIG_ARCH_OMAP2430=y
|
||||||
CONFIG_ARCH_OMAP3430=y
|
CONFIG_ARCH_OMAP3430=y
|
||||||
CONFIG_OMAP_PACKAGE_CBB=y
|
CONFIG_OMAP_PACKAGE_CBB=y
|
||||||
CONFIG_OMAP_PACKAGE_CUS=y
|
CONFIG_OMAP_PACKAGE_CUS=y
|
||||||
@@ -276,8 +284,9 @@ CONFIG_OMAP_PACKAGE_CBP=y
|
|||||||
CONFIG_MACH_OMAP2_TUSB6010=y
|
CONFIG_MACH_OMAP2_TUSB6010=y
|
||||||
CONFIG_MACH_OMAP_H4=y
|
CONFIG_MACH_OMAP_H4=y
|
||||||
CONFIG_MACH_OMAP_APOLLON=y
|
CONFIG_MACH_OMAP_APOLLON=y
|
||||||
# CONFIG_MACH_OMAP_2430SDP is not set
|
CONFIG_MACH_OMAP_2430SDP=y
|
||||||
CONFIG_MACH_OMAP3_BEAGLE=y
|
CONFIG_MACH_OMAP3_BEAGLE=y
|
||||||
|
CONFIG_MACH_DEVKIT8000=y
|
||||||
CONFIG_MACH_OMAP_LDP=y
|
CONFIG_MACH_OMAP_LDP=y
|
||||||
CONFIG_MACH_OVERO=y
|
CONFIG_MACH_OVERO=y
|
||||||
CONFIG_MACH_OMAP3EVM=y
|
CONFIG_MACH_OMAP3EVM=y
|
||||||
@@ -294,6 +303,7 @@ CONFIG_MACH_OMAP_ZOOM2=y
|
|||||||
CONFIG_MACH_OMAP_ZOOM3=y
|
CONFIG_MACH_OMAP_ZOOM3=y
|
||||||
CONFIG_MACH_CM_T35=y
|
CONFIG_MACH_CM_T35=y
|
||||||
CONFIG_MACH_IGEP0020=y
|
CONFIG_MACH_IGEP0020=y
|
||||||
|
CONFIG_MACH_SBC3530=y
|
||||||
CONFIG_MACH_OMAP_3630SDP=y
|
CONFIG_MACH_OMAP_3630SDP=y
|
||||||
CONFIG_MACH_OMAP_4430SDP=y
|
CONFIG_MACH_OMAP_4430SDP=y
|
||||||
# CONFIG_OMAP3_EMU is not set
|
# CONFIG_OMAP3_EMU is not set
|
||||||
@@ -330,11 +340,16 @@ CONFIG_ARM_THUMBEE=y
|
|||||||
# CONFIG_CPU_DCACHE_DISABLE is not set
|
# CONFIG_CPU_DCACHE_DISABLE is not set
|
||||||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||||
CONFIG_HAS_TLS_REG=y
|
CONFIG_HAS_TLS_REG=y
|
||||||
|
CONFIG_OUTER_CACHE=y
|
||||||
|
CONFIG_OUTER_CACHE_SYNC=y
|
||||||
|
CONFIG_CACHE_L2X0=y
|
||||||
CONFIG_ARM_L1_CACHE_SHIFT=6
|
CONFIG_ARM_L1_CACHE_SHIFT=6
|
||||||
|
CONFIG_CPU_HAS_PMU=y
|
||||||
# CONFIG_ARM_ERRATA_411920 is not set
|
# CONFIG_ARM_ERRATA_411920 is not set
|
||||||
# CONFIG_ARM_ERRATA_430973 is not set
|
# CONFIG_ARM_ERRATA_430973 is not set
|
||||||
# CONFIG_ARM_ERRATA_458693 is not set
|
# CONFIG_ARM_ERRATA_458693 is not set
|
||||||
# CONFIG_ARM_ERRATA_460075 is not set
|
# CONFIG_ARM_ERRATA_460075 is not set
|
||||||
|
# CONFIG_PL310_ERRATA_588369 is not set
|
||||||
CONFIG_ARM_GIC=y
|
CONFIG_ARM_GIC=y
|
||||||
CONFIG_COMMON_CLKDEV=y
|
CONFIG_COMMON_CLKDEV=y
|
||||||
|
|
||||||
@@ -368,6 +383,7 @@ CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
|
|||||||
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
|
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
|
||||||
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
|
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
|
||||||
# CONFIG_HIGHMEM is not set
|
# CONFIG_HIGHMEM is not set
|
||||||
|
CONFIG_HW_PERF_EVENTS=y
|
||||||
CONFIG_SELECT_MEMORY_MODEL=y
|
CONFIG_SELECT_MEMORY_MODEL=y
|
||||||
CONFIG_FLATMEM_MANUAL=y
|
CONFIG_FLATMEM_MANUAL=y
|
||||||
# CONFIG_DISCONTIGMEM_MANUAL is not set
|
# CONFIG_DISCONTIGMEM_MANUAL is not set
|
||||||
@@ -390,7 +406,7 @@ CONFIG_ALIGNMENT_TRAP=y
|
|||||||
#
|
#
|
||||||
CONFIG_ZBOOT_ROM_TEXT=0x0
|
CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||||
CONFIG_ZBOOT_ROM_BSS=0x0
|
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||||
CONFIG_CMDLINE="root=/dev/nfs nfsroot=192.168.0.1:/home/user/buildroot ip=192.168.0.2:192.168.0.1:192.168.0.1:255.255.255.0:tgt:eth0:off rw console=ttyS2,115200n8"
|
CONFIG_CMDLINE="root=/dev/mmcblk0p2 rootwait console=ttyS2,115200"
|
||||||
# CONFIG_XIP_KERNEL is not set
|
# CONFIG_XIP_KERNEL is not set
|
||||||
CONFIG_KEXEC=y
|
CONFIG_KEXEC=y
|
||||||
CONFIG_ATAGS_PROC=y
|
CONFIG_ATAGS_PROC=y
|
||||||
@@ -443,7 +459,8 @@ CONFIG_BINFMT_MISC=y
|
|||||||
#
|
#
|
||||||
CONFIG_PM=y
|
CONFIG_PM=y
|
||||||
CONFIG_PM_DEBUG=y
|
CONFIG_PM_DEBUG=y
|
||||||
CONFIG_PM_VERBOSE=y
|
# CONFIG_PM_ADVANCED_DEBUG is not set
|
||||||
|
# CONFIG_PM_VERBOSE is not set
|
||||||
CONFIG_CAN_PM_TRACE=y
|
CONFIG_CAN_PM_TRACE=y
|
||||||
CONFIG_PM_SLEEP=y
|
CONFIG_PM_SLEEP=y
|
||||||
CONFIG_SUSPEND=y
|
CONFIG_SUSPEND=y
|
||||||
@@ -451,6 +468,7 @@ CONFIG_SUSPEND=y
|
|||||||
CONFIG_SUSPEND_FREEZER=y
|
CONFIG_SUSPEND_FREEZER=y
|
||||||
# CONFIG_APM_EMULATION is not set
|
# CONFIG_APM_EMULATION is not set
|
||||||
CONFIG_PM_RUNTIME=y
|
CONFIG_PM_RUNTIME=y
|
||||||
|
CONFIG_PM_OPS=y
|
||||||
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
|
|
||||||
@@ -458,7 +476,6 @@ CONFIG_NET=y
|
|||||||
# Networking options
|
# Networking options
|
||||||
#
|
#
|
||||||
CONFIG_PACKET=y
|
CONFIG_PACKET=y
|
||||||
CONFIG_PACKET_MMAP=y
|
|
||||||
CONFIG_UNIX=y
|
CONFIG_UNIX=y
|
||||||
CONFIG_XFRM=y
|
CONFIG_XFRM=y
|
||||||
CONFIG_XFRM_USER=y
|
CONFIG_XFRM_USER=y
|
||||||
@@ -544,7 +561,6 @@ CONFIG_NETFILTER_ADVANCED=y
|
|||||||
#
|
#
|
||||||
# CONFIG_NET_PKTGEN is not set
|
# CONFIG_NET_PKTGEN is not set
|
||||||
# CONFIG_NET_TCPPROBE is not set
|
# CONFIG_NET_TCPPROBE is not set
|
||||||
# CONFIG_NET_DROP_MONITOR is not set
|
|
||||||
# CONFIG_HAMRADIO is not set
|
# CONFIG_HAMRADIO is not set
|
||||||
# CONFIG_CAN is not set
|
# CONFIG_CAN is not set
|
||||||
# CONFIG_IRDA is not set
|
# CONFIG_IRDA is not set
|
||||||
@@ -584,7 +600,7 @@ CONFIG_CFG80211=y
|
|||||||
# CONFIG_CFG80211_REG_DEBUG is not set
|
# CONFIG_CFG80211_REG_DEBUG is not set
|
||||||
CONFIG_CFG80211_DEFAULT_PS=y
|
CONFIG_CFG80211_DEFAULT_PS=y
|
||||||
# CONFIG_CFG80211_DEBUGFS is not set
|
# CONFIG_CFG80211_DEBUGFS is not set
|
||||||
CONFIG_WIRELESS_OLD_REGULATORY=y
|
# CONFIG_CFG80211_INTERNAL_REGDB is not set
|
||||||
CONFIG_CFG80211_WEXT=y
|
CONFIG_CFG80211_WEXT=y
|
||||||
CONFIG_WIRELESS_EXT_SYSFS=y
|
CONFIG_WIRELESS_EXT_SYSFS=y
|
||||||
CONFIG_LIB80211=y
|
CONFIG_LIB80211=y
|
||||||
@@ -676,7 +692,6 @@ CONFIG_MTD_CFI_UTIL=y
|
|||||||
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
|
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
|
||||||
# CONFIG_MTD_PHYSMAP is not set
|
# CONFIG_MTD_PHYSMAP is not set
|
||||||
# CONFIG_MTD_ARM_INTEGRATOR is not set
|
# CONFIG_MTD_ARM_INTEGRATOR is not set
|
||||||
CONFIG_MTD_OMAP_NOR=y
|
|
||||||
# CONFIG_MTD_PLATRAM is not set
|
# CONFIG_MTD_PLATRAM is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -754,6 +769,7 @@ CONFIG_MISC_DEVICES=y
|
|||||||
# CONFIG_ICS932S401 is not set
|
# CONFIG_ICS932S401 is not set
|
||||||
# CONFIG_ENCLOSURE_SERVICES is not set
|
# CONFIG_ENCLOSURE_SERVICES is not set
|
||||||
# CONFIG_ISL29003 is not set
|
# CONFIG_ISL29003 is not set
|
||||||
|
# CONFIG_SENSORS_TSL2550 is not set
|
||||||
# CONFIG_DS1682 is not set
|
# CONFIG_DS1682 is not set
|
||||||
# CONFIG_TI_DAC7512 is not set
|
# CONFIG_TI_DAC7512 is not set
|
||||||
# CONFIG_C2PORT is not set
|
# CONFIG_C2PORT is not set
|
||||||
@@ -773,6 +789,7 @@ CONFIG_HAVE_IDE=y
|
|||||||
#
|
#
|
||||||
# SCSI device support
|
# SCSI device support
|
||||||
#
|
#
|
||||||
|
CONFIG_SCSI_MOD=y
|
||||||
# CONFIG_RAID_ATTRS is not set
|
# CONFIG_RAID_ATTRS is not set
|
||||||
CONFIG_SCSI=y
|
CONFIG_SCSI=y
|
||||||
CONFIG_SCSI_DMA=y
|
CONFIG_SCSI_DMA=y
|
||||||
@@ -839,12 +856,14 @@ CONFIG_SMSC_PHY=y
|
|||||||
# CONFIG_NATIONAL_PHY is not set
|
# CONFIG_NATIONAL_PHY is not set
|
||||||
# CONFIG_STE10XP is not set
|
# CONFIG_STE10XP is not set
|
||||||
# CONFIG_LSI_ET1011C_PHY is not set
|
# CONFIG_LSI_ET1011C_PHY is not set
|
||||||
|
# CONFIG_MICREL_PHY is not set
|
||||||
# CONFIG_FIXED_PHY is not set
|
# CONFIG_FIXED_PHY is not set
|
||||||
# CONFIG_MDIO_BITBANG is not set
|
# CONFIG_MDIO_BITBANG is not set
|
||||||
CONFIG_NET_ETHERNET=y
|
CONFIG_NET_ETHERNET=y
|
||||||
CONFIG_MII=y
|
CONFIG_MII=y
|
||||||
# CONFIG_AX88796 is not set
|
# CONFIG_AX88796 is not set
|
||||||
CONFIG_SMC91X=y
|
CONFIG_SMC91X=y
|
||||||
|
# CONFIG_TI_DAVINCI_EMAC is not set
|
||||||
# CONFIG_DM9000 is not set
|
# CONFIG_DM9000 is not set
|
||||||
# CONFIG_ENC28J60 is not set
|
# CONFIG_ENC28J60 is not set
|
||||||
# CONFIG_ETHOC is not set
|
# CONFIG_ETHOC is not set
|
||||||
@@ -881,6 +900,7 @@ CONFIG_LIBERTAS_USB=y
|
|||||||
CONFIG_LIBERTAS_SDIO=y
|
CONFIG_LIBERTAS_SDIO=y
|
||||||
# CONFIG_LIBERTAS_SPI is not set
|
# CONFIG_LIBERTAS_SPI is not set
|
||||||
CONFIG_LIBERTAS_DEBUG=y
|
CONFIG_LIBERTAS_DEBUG=y
|
||||||
|
# CONFIG_LIBERTAS_MESH is not set
|
||||||
# CONFIG_P54_COMMON is not set
|
# CONFIG_P54_COMMON is not set
|
||||||
# CONFIG_RT2X00 is not set
|
# CONFIG_RT2X00 is not set
|
||||||
# CONFIG_WL12XX is not set
|
# CONFIG_WL12XX is not set
|
||||||
@@ -902,6 +922,7 @@ CONFIG_USB_NET_AX8817X=y
|
|||||||
CONFIG_USB_NET_CDCETHER=y
|
CONFIG_USB_NET_CDCETHER=y
|
||||||
# CONFIG_USB_NET_CDC_EEM is not set
|
# CONFIG_USB_NET_CDC_EEM is not set
|
||||||
# CONFIG_USB_NET_DM9601 is not set
|
# CONFIG_USB_NET_DM9601 is not set
|
||||||
|
# CONFIG_USB_NET_SMSC75XX is not set
|
||||||
# CONFIG_USB_NET_SMSC95XX is not set
|
# CONFIG_USB_NET_SMSC95XX is not set
|
||||||
# CONFIG_USB_NET_GL620A is not set
|
# CONFIG_USB_NET_GL620A is not set
|
||||||
CONFIG_USB_NET_NET1080=y
|
CONFIG_USB_NET_NET1080=y
|
||||||
@@ -917,6 +938,8 @@ CONFIG_USB_EPSON2888=y
|
|||||||
CONFIG_USB_KC2190=y
|
CONFIG_USB_KC2190=y
|
||||||
CONFIG_USB_NET_ZAURUS=y
|
CONFIG_USB_NET_ZAURUS=y
|
||||||
# CONFIG_USB_NET_INT51X1 is not set
|
# CONFIG_USB_NET_INT51X1 is not set
|
||||||
|
# CONFIG_USB_IPHETH is not set
|
||||||
|
# CONFIG_USB_SIERRA_NET is not set
|
||||||
# CONFIG_WAN is not set
|
# CONFIG_WAN is not set
|
||||||
# CONFIG_PPP is not set
|
# CONFIG_PPP is not set
|
||||||
# CONFIG_SLIP is not set
|
# CONFIG_SLIP is not set
|
||||||
@@ -1012,6 +1035,7 @@ CONFIG_INPUT_MISC=y
|
|||||||
# CONFIG_INPUT_YEALINK is not set
|
# CONFIG_INPUT_YEALINK is not set
|
||||||
# CONFIG_INPUT_CM109 is not set
|
# CONFIG_INPUT_CM109 is not set
|
||||||
CONFIG_INPUT_TWL4030_PWRBUTTON=y
|
CONFIG_INPUT_TWL4030_PWRBUTTON=y
|
||||||
|
# CONFIG_INPUT_TWL4030_VIBRA is not set
|
||||||
# CONFIG_INPUT_UINPUT is not set
|
# CONFIG_INPUT_UINPUT is not set
|
||||||
# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
|
# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
|
||||||
|
|
||||||
@@ -1055,6 +1079,7 @@ CONFIG_SERIAL_8250_RSA=y
|
|||||||
# CONFIG_SERIAL_MAX3100 is not set
|
# CONFIG_SERIAL_MAX3100 is not set
|
||||||
CONFIG_SERIAL_CORE=y
|
CONFIG_SERIAL_CORE=y
|
||||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||||
|
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||||
CONFIG_UNIX98_PTYS=y
|
CONFIG_UNIX98_PTYS=y
|
||||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||||
# CONFIG_LEGACY_PTYS is not set
|
# CONFIG_LEGACY_PTYS is not set
|
||||||
@@ -1083,6 +1108,7 @@ CONFIG_I2C_HELPER_AUTO=y
|
|||||||
# CONFIG_I2C_OCORES is not set
|
# CONFIG_I2C_OCORES is not set
|
||||||
CONFIG_I2C_OMAP=y
|
CONFIG_I2C_OMAP=y
|
||||||
# CONFIG_I2C_SIMTEC is not set
|
# CONFIG_I2C_SIMTEC is not set
|
||||||
|
# CONFIG_I2C_XILINX is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# External I2C/SMBus adapter drivers
|
# External I2C/SMBus adapter drivers
|
||||||
@@ -1096,15 +1122,9 @@ CONFIG_I2C_OMAP=y
|
|||||||
#
|
#
|
||||||
# CONFIG_I2C_PCA_PLATFORM is not set
|
# CONFIG_I2C_PCA_PLATFORM is not set
|
||||||
# CONFIG_I2C_STUB is not set
|
# CONFIG_I2C_STUB is not set
|
||||||
|
|
||||||
#
|
|
||||||
# Miscellaneous I2C Chip support
|
|
||||||
#
|
|
||||||
# CONFIG_SENSORS_TSL2550 is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CORE is not set
|
# CONFIG_I2C_DEBUG_CORE is not set
|
||||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||||
# CONFIG_I2C_DEBUG_BUS is not set
|
# CONFIG_I2C_DEBUG_BUS is not set
|
||||||
# CONFIG_I2C_DEBUG_CHIP is not set
|
|
||||||
CONFIG_SPI=y
|
CONFIG_SPI=y
|
||||||
# CONFIG_SPI_DEBUG is not set
|
# CONFIG_SPI_DEBUG is not set
|
||||||
CONFIG_SPI_MASTER=y
|
CONFIG_SPI_MASTER=y
|
||||||
@@ -1136,10 +1156,12 @@ CONFIG_GPIO_SYSFS=y
|
|||||||
#
|
#
|
||||||
# Memory mapped GPIO expanders:
|
# Memory mapped GPIO expanders:
|
||||||
#
|
#
|
||||||
|
# CONFIG_GPIO_IT8761E is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# I2C GPIO expanders:
|
# I2C GPIO expanders:
|
||||||
#
|
#
|
||||||
|
# CONFIG_GPIO_MAX7300 is not set
|
||||||
# CONFIG_GPIO_MAX732X is not set
|
# CONFIG_GPIO_MAX732X is not set
|
||||||
# CONFIG_GPIO_PCA953X is not set
|
# CONFIG_GPIO_PCA953X is not set
|
||||||
# CONFIG_GPIO_PCF857X is not set
|
# CONFIG_GPIO_PCF857X is not set
|
||||||
@@ -1204,10 +1226,11 @@ CONFIG_HWMON=y
|
|||||||
# CONFIG_SENSORS_ADM1029 is not set
|
# CONFIG_SENSORS_ADM1029 is not set
|
||||||
# CONFIG_SENSORS_ADM1031 is not set
|
# CONFIG_SENSORS_ADM1031 is not set
|
||||||
# CONFIG_SENSORS_ADM9240 is not set
|
# CONFIG_SENSORS_ADM9240 is not set
|
||||||
|
# CONFIG_SENSORS_ADT7411 is not set
|
||||||
# CONFIG_SENSORS_ADT7462 is not set
|
# CONFIG_SENSORS_ADT7462 is not set
|
||||||
# CONFIG_SENSORS_ADT7470 is not set
|
# CONFIG_SENSORS_ADT7470 is not set
|
||||||
# CONFIG_SENSORS_ADT7473 is not set
|
|
||||||
# CONFIG_SENSORS_ADT7475 is not set
|
# CONFIG_SENSORS_ADT7475 is not set
|
||||||
|
# CONFIG_SENSORS_ASC7621 is not set
|
||||||
# CONFIG_SENSORS_ATXP1 is not set
|
# CONFIG_SENSORS_ATXP1 is not set
|
||||||
# CONFIG_SENSORS_DS1621 is not set
|
# CONFIG_SENSORS_DS1621 is not set
|
||||||
# CONFIG_SENSORS_F71805F is not set
|
# CONFIG_SENSORS_F71805F is not set
|
||||||
@@ -1262,7 +1285,7 @@ CONFIG_HWMON=y
|
|||||||
# CONFIG_SENSORS_LIS3_I2C is not set
|
# CONFIG_SENSORS_LIS3_I2C is not set
|
||||||
# CONFIG_THERMAL is not set
|
# CONFIG_THERMAL is not set
|
||||||
CONFIG_WATCHDOG=y
|
CONFIG_WATCHDOG=y
|
||||||
CONFIG_WATCHDOG_NOWAYOUT=y
|
# CONFIG_WATCHDOG_NOWAYOUT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Watchdog Device Drivers
|
# Watchdog Device Drivers
|
||||||
@@ -1270,6 +1293,7 @@ CONFIG_WATCHDOG_NOWAYOUT=y
|
|||||||
# CONFIG_SOFT_WATCHDOG is not set
|
# CONFIG_SOFT_WATCHDOG is not set
|
||||||
CONFIG_OMAP_WATCHDOG=y
|
CONFIG_OMAP_WATCHDOG=y
|
||||||
CONFIG_TWL4030_WATCHDOG=y
|
CONFIG_TWL4030_WATCHDOG=y
|
||||||
|
# CONFIG_MAX63XX_WATCHDOG is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# USB-based Watchdog Cards
|
# USB-based Watchdog Cards
|
||||||
@@ -1286,14 +1310,16 @@ CONFIG_SSB_POSSIBLE=y
|
|||||||
# Multifunction device drivers
|
# Multifunction device drivers
|
||||||
#
|
#
|
||||||
CONFIG_MFD_CORE=y
|
CONFIG_MFD_CORE=y
|
||||||
|
# CONFIG_MFD_88PM860X is not set
|
||||||
# CONFIG_MFD_SM501 is not set
|
# CONFIG_MFD_SM501 is not set
|
||||||
# CONFIG_MFD_ASIC3 is not set
|
# CONFIG_MFD_ASIC3 is not set
|
||||||
# CONFIG_HTC_EGPIO is not set
|
# CONFIG_HTC_EGPIO is not set
|
||||||
# CONFIG_HTC_PASIC3 is not set
|
# CONFIG_HTC_PASIC3 is not set
|
||||||
|
# CONFIG_HTC_I2CPLD is not set
|
||||||
# CONFIG_TPS65010 is not set
|
# CONFIG_TPS65010 is not set
|
||||||
# CONFIG_MENELAUS is not set
|
CONFIG_MENELAUS=y
|
||||||
CONFIG_TWL4030_CORE=y
|
CONFIG_TWL4030_CORE=y
|
||||||
# CONFIG_TWL4030_POWER is not set
|
CONFIG_TWL4030_POWER=y
|
||||||
CONFIG_TWL4030_CODEC=y
|
CONFIG_TWL4030_CODEC=y
|
||||||
# CONFIG_MFD_TMIO is not set
|
# CONFIG_MFD_TMIO is not set
|
||||||
# CONFIG_MFD_T7L66XB is not set
|
# CONFIG_MFD_T7L66XB is not set
|
||||||
@@ -1301,27 +1327,30 @@ CONFIG_TWL4030_CODEC=y
|
|||||||
# CONFIG_MFD_TC6393XB is not set
|
# CONFIG_MFD_TC6393XB is not set
|
||||||
# CONFIG_PMIC_DA903X is not set
|
# CONFIG_PMIC_DA903X is not set
|
||||||
# CONFIG_PMIC_ADP5520 is not set
|
# CONFIG_PMIC_ADP5520 is not set
|
||||||
|
# CONFIG_MFD_MAX8925 is not set
|
||||||
# CONFIG_MFD_WM8400 is not set
|
# CONFIG_MFD_WM8400 is not set
|
||||||
# CONFIG_MFD_WM831X is not set
|
# CONFIG_MFD_WM831X is not set
|
||||||
# CONFIG_MFD_WM8350_I2C is not set
|
# CONFIG_MFD_WM8350_I2C is not set
|
||||||
|
# CONFIG_MFD_WM8994 is not set
|
||||||
# CONFIG_MFD_PCF50633 is not set
|
# CONFIG_MFD_PCF50633 is not set
|
||||||
# CONFIG_MFD_MC13783 is not set
|
# CONFIG_MFD_MC13783 is not set
|
||||||
# CONFIG_AB3100_CORE is not set
|
# CONFIG_AB3100_CORE is not set
|
||||||
# CONFIG_EZX_PCAP is not set
|
# CONFIG_EZX_PCAP is not set
|
||||||
# CONFIG_MFD_88PM8607 is not set
|
|
||||||
# CONFIG_AB4500_CORE is not set
|
# CONFIG_AB4500_CORE is not set
|
||||||
CONFIG_REGULATOR=y
|
CONFIG_REGULATOR=y
|
||||||
# CONFIG_REGULATOR_DEBUG is not set
|
# CONFIG_REGULATOR_DEBUG is not set
|
||||||
CONFIG_REGULATOR_FIXED_VOLTAGE=y
|
# CONFIG_REGULATOR_DUMMY is not set
|
||||||
|
# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
|
||||||
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
|
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
|
||||||
# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
|
# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
|
||||||
# CONFIG_REGULATOR_BQ24022 is not set
|
# CONFIG_REGULATOR_BQ24022 is not set
|
||||||
# CONFIG_REGULATOR_MAX1586 is not set
|
# CONFIG_REGULATOR_MAX1586 is not set
|
||||||
|
# CONFIG_REGULATOR_MAX8649 is not set
|
||||||
# CONFIG_REGULATOR_MAX8660 is not set
|
# CONFIG_REGULATOR_MAX8660 is not set
|
||||||
CONFIG_REGULATOR_TWL4030=y
|
CONFIG_REGULATOR_TWL4030=y
|
||||||
# CONFIG_REGULATOR_LP3971 is not set
|
# CONFIG_REGULATOR_LP3971 is not set
|
||||||
# CONFIG_REGULATOR_TPS65023 is not set
|
CONFIG_REGULATOR_TPS65023=y
|
||||||
# CONFIG_REGULATOR_TPS6507X is not set
|
CONFIG_REGULATOR_TPS6507X=y
|
||||||
# CONFIG_MEDIA_SUPPORT is not set
|
# CONFIG_MEDIA_SUPPORT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -1333,9 +1362,9 @@ CONFIG_FB=y
|
|||||||
CONFIG_FIRMWARE_EDID=y
|
CONFIG_FIRMWARE_EDID=y
|
||||||
# CONFIG_FB_DDC is not set
|
# CONFIG_FB_DDC is not set
|
||||||
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
|
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
|
||||||
CONFIG_FB_CFB_FILLRECT=y
|
# CONFIG_FB_CFB_FILLRECT is not set
|
||||||
CONFIG_FB_CFB_COPYAREA=y
|
# CONFIG_FB_CFB_COPYAREA is not set
|
||||||
CONFIG_FB_CFB_IMAGEBLIT=y
|
# CONFIG_FB_CFB_IMAGEBLIT is not set
|
||||||
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
|
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
|
||||||
# CONFIG_FB_SYS_FILLRECT is not set
|
# CONFIG_FB_SYS_FILLRECT is not set
|
||||||
# CONFIG_FB_SYS_COPYAREA is not set
|
# CONFIG_FB_SYS_COPYAREA is not set
|
||||||
@@ -1358,19 +1387,12 @@ CONFIG_FB_TILEBLITTING=y
|
|||||||
# CONFIG_FB_METRONOME is not set
|
# CONFIG_FB_METRONOME is not set
|
||||||
# CONFIG_FB_MB862XX is not set
|
# CONFIG_FB_MB862XX is not set
|
||||||
# CONFIG_FB_BROADSHEET is not set
|
# CONFIG_FB_BROADSHEET is not set
|
||||||
CONFIG_FB_OMAP=y
|
# CONFIG_FB_OMAP is not set
|
||||||
CONFIG_FB_OMAP_LCD_VGA=y
|
CONFIG_FB_OMAP_LCD_VGA=y
|
||||||
# CONFIG_FB_OMAP_031M3R is not set
|
|
||||||
# CONFIG_FB_OMAP_048M3R is not set
|
|
||||||
CONFIG_FB_OMAP_079M3R=y
|
|
||||||
# CONFIG_FB_OMAP_092M9R is not set
|
|
||||||
# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
|
|
||||||
# CONFIG_FB_OMAP_LCD_MIPID is not set
|
|
||||||
# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
|
|
||||||
CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
|
|
||||||
# CONFIG_OMAP2_DSS is not set
|
# CONFIG_OMAP2_DSS is not set
|
||||||
CONFIG_BACKLIGHT_LCD_SUPPORT=y
|
CONFIG_BACKLIGHT_LCD_SUPPORT=y
|
||||||
CONFIG_LCD_CLASS_DEVICE=y
|
CONFIG_LCD_CLASS_DEVICE=y
|
||||||
|
# CONFIG_LCD_L4F00242T03 is not set
|
||||||
# CONFIG_LCD_LMS283GF05 is not set
|
# CONFIG_LCD_LMS283GF05 is not set
|
||||||
# CONFIG_LCD_LTV350QV is not set
|
# CONFIG_LCD_LTV350QV is not set
|
||||||
# CONFIG_LCD_ILI9320 is not set
|
# CONFIG_LCD_ILI9320 is not set
|
||||||
@@ -1448,6 +1470,7 @@ CONFIG_SND_ARM=y
|
|||||||
CONFIG_SND_SPI=y
|
CONFIG_SND_SPI=y
|
||||||
CONFIG_SND_USB=y
|
CONFIG_SND_USB=y
|
||||||
CONFIG_SND_USB_AUDIO=y
|
CONFIG_SND_USB_AUDIO=y
|
||||||
|
# CONFIG_SND_USB_UA101 is not set
|
||||||
# CONFIG_SND_USB_CAIAQ is not set
|
# CONFIG_SND_USB_CAIAQ is not set
|
||||||
CONFIG_SND_SOC=y
|
CONFIG_SND_SOC=y
|
||||||
CONFIG_SND_OMAP_SOC=y
|
CONFIG_SND_OMAP_SOC=y
|
||||||
@@ -1479,6 +1502,7 @@ CONFIG_USB_HID=y
|
|||||||
#
|
#
|
||||||
# Special HID drivers
|
# Special HID drivers
|
||||||
#
|
#
|
||||||
|
# CONFIG_HID_3M_PCT is not set
|
||||||
# CONFIG_HID_A4TECH is not set
|
# CONFIG_HID_A4TECH is not set
|
||||||
# CONFIG_HID_APPLE is not set
|
# CONFIG_HID_APPLE is not set
|
||||||
# CONFIG_HID_BELKIN is not set
|
# CONFIG_HID_BELKIN is not set
|
||||||
@@ -1492,13 +1516,18 @@ CONFIG_USB_HID=y
|
|||||||
# CONFIG_HID_TWINHAN is not set
|
# CONFIG_HID_TWINHAN is not set
|
||||||
# CONFIG_HID_KENSINGTON is not set
|
# CONFIG_HID_KENSINGTON is not set
|
||||||
# CONFIG_HID_LOGITECH is not set
|
# CONFIG_HID_LOGITECH is not set
|
||||||
|
# CONFIG_HID_MAGICMOUSE is not set
|
||||||
# CONFIG_HID_MICROSOFT is not set
|
# CONFIG_HID_MICROSOFT is not set
|
||||||
|
# CONFIG_HID_MOSART is not set
|
||||||
# CONFIG_HID_MONTEREY is not set
|
# CONFIG_HID_MONTEREY is not set
|
||||||
# CONFIG_HID_NTRIG is not set
|
# CONFIG_HID_NTRIG is not set
|
||||||
|
# CONFIG_HID_ORTEK is not set
|
||||||
# CONFIG_HID_PANTHERLORD is not set
|
# CONFIG_HID_PANTHERLORD is not set
|
||||||
# CONFIG_HID_PETALYNX is not set
|
# CONFIG_HID_PETALYNX is not set
|
||||||
|
# CONFIG_HID_QUANTA is not set
|
||||||
# CONFIG_HID_SAMSUNG is not set
|
# CONFIG_HID_SAMSUNG is not set
|
||||||
# CONFIG_HID_SONY is not set
|
# CONFIG_HID_SONY is not set
|
||||||
|
# CONFIG_HID_STANTUM is not set
|
||||||
# CONFIG_HID_SUNPLUS is not set
|
# CONFIG_HID_SUNPLUS is not set
|
||||||
# CONFIG_HID_GREENASIA is not set
|
# CONFIG_HID_GREENASIA is not set
|
||||||
# CONFIG_HID_SMARTJOYPLUS is not set
|
# CONFIG_HID_SMARTJOYPLUS is not set
|
||||||
@@ -1544,6 +1573,10 @@ CONFIG_USB_MON=y
|
|||||||
CONFIG_USB_MUSB_HDRC=y
|
CONFIG_USB_MUSB_HDRC=y
|
||||||
CONFIG_USB_MUSB_SOC=y
|
CONFIG_USB_MUSB_SOC=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# OMAP 243x high speed USB support
|
||||||
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# OMAP 343x high speed USB support
|
# OMAP 343x high speed USB support
|
||||||
#
|
#
|
||||||
@@ -1608,7 +1641,6 @@ CONFIG_USB_LIBUSUAL=y
|
|||||||
# CONFIG_USB_RIO500 is not set
|
# CONFIG_USB_RIO500 is not set
|
||||||
# CONFIG_USB_LEGOTOWER is not set
|
# CONFIG_USB_LEGOTOWER is not set
|
||||||
# CONFIG_USB_LCD is not set
|
# CONFIG_USB_LCD is not set
|
||||||
# CONFIG_USB_BERRY_CHARGE is not set
|
|
||||||
# CONFIG_USB_LED is not set
|
# CONFIG_USB_LED is not set
|
||||||
# CONFIG_USB_CYPRESS_CY7C63 is not set
|
# CONFIG_USB_CYPRESS_CY7C63 is not set
|
||||||
# CONFIG_USB_CYTHERM is not set
|
# CONFIG_USB_CYTHERM is not set
|
||||||
@@ -1621,7 +1653,6 @@ CONFIG_USB_LIBUSUAL=y
|
|||||||
# CONFIG_USB_IOWARRIOR is not set
|
# CONFIG_USB_IOWARRIOR is not set
|
||||||
CONFIG_USB_TEST=y
|
CONFIG_USB_TEST=y
|
||||||
# CONFIG_USB_ISIGHTFW is not set
|
# CONFIG_USB_ISIGHTFW is not set
|
||||||
# CONFIG_USB_VST is not set
|
|
||||||
CONFIG_USB_GADGET=y
|
CONFIG_USB_GADGET=y
|
||||||
CONFIG_USB_GADGET_DEBUG=y
|
CONFIG_USB_GADGET_DEBUG=y
|
||||||
CONFIG_USB_GADGET_DEBUG_FILES=y
|
CONFIG_USB_GADGET_DEBUG_FILES=y
|
||||||
@@ -1659,6 +1690,7 @@ CONFIG_USB_ZERO=m
|
|||||||
# CONFIG_USB_MIDI_GADGET is not set
|
# CONFIG_USB_MIDI_GADGET is not set
|
||||||
# CONFIG_USB_G_PRINTER is not set
|
# CONFIG_USB_G_PRINTER is not set
|
||||||
# CONFIG_USB_CDC_COMPOSITE is not set
|
# CONFIG_USB_CDC_COMPOSITE is not set
|
||||||
|
# CONFIG_USB_G_NOKIA is not set
|
||||||
# CONFIG_USB_G_MULTI is not set
|
# CONFIG_USB_G_MULTI is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -1686,10 +1718,8 @@ CONFIG_SDIO_UART=y
|
|||||||
# MMC/SD/SDIO Host Controller Drivers
|
# MMC/SD/SDIO Host Controller Drivers
|
||||||
#
|
#
|
||||||
# CONFIG_MMC_SDHCI is not set
|
# CONFIG_MMC_SDHCI is not set
|
||||||
# CONFIG_MMC_OMAP is not set
|
CONFIG_MMC_OMAP=y
|
||||||
CONFIG_MMC_OMAP_HS=y
|
CONFIG_MMC_OMAP_HS=y
|
||||||
# CONFIG_MMC_AT91 is not set
|
|
||||||
# CONFIG_MMC_ATMELMCI is not set
|
|
||||||
# CONFIG_MMC_SPI is not set
|
# CONFIG_MMC_SPI is not set
|
||||||
# CONFIG_MEMSTICK is not set
|
# CONFIG_MEMSTICK is not set
|
||||||
CONFIG_NEW_LEDS=y
|
CONFIG_NEW_LEDS=y
|
||||||
@@ -1707,11 +1737,11 @@ CONFIG_LEDS_GPIO_PLATFORM=y
|
|||||||
# CONFIG_LEDS_REGULATOR is not set
|
# CONFIG_LEDS_REGULATOR is not set
|
||||||
# CONFIG_LEDS_BD2802 is not set
|
# CONFIG_LEDS_BD2802 is not set
|
||||||
# CONFIG_LEDS_LT3593 is not set
|
# CONFIG_LEDS_LT3593 is not set
|
||||||
|
CONFIG_LEDS_TRIGGERS=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# LED Triggers
|
# LED Triggers
|
||||||
#
|
#
|
||||||
CONFIG_LEDS_TRIGGERS=y
|
|
||||||
CONFIG_LEDS_TRIGGER_TIMER=y
|
CONFIG_LEDS_TRIGGER_TIMER=y
|
||||||
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
||||||
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
|
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
|
||||||
@@ -1751,6 +1781,7 @@ CONFIG_RTC_INTF_DEV=y
|
|||||||
# CONFIG_RTC_DRV_PCF8583 is not set
|
# CONFIG_RTC_DRV_PCF8583 is not set
|
||||||
# CONFIG_RTC_DRV_M41T80 is not set
|
# CONFIG_RTC_DRV_M41T80 is not set
|
||||||
# CONFIG_RTC_DRV_BQ32K is not set
|
# CONFIG_RTC_DRV_BQ32K is not set
|
||||||
|
CONFIG_RTC_DRV_TWL92330=y
|
||||||
CONFIG_RTC_DRV_TWL4030=y
|
CONFIG_RTC_DRV_TWL4030=y
|
||||||
# CONFIG_RTC_DRV_S35390A is not set
|
# CONFIG_RTC_DRV_S35390A is not set
|
||||||
# CONFIG_RTC_DRV_FM3130 is not set
|
# CONFIG_RTC_DRV_FM3130 is not set
|
||||||
@@ -1798,6 +1829,11 @@ CONFIG_RTC_DRV_TWL4030=y
|
|||||||
#
|
#
|
||||||
# CONFIG_STAGING is not set
|
# CONFIG_STAGING is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# CBUS support
|
||||||
|
#
|
||||||
|
# CONFIG_CBUS is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# File systems
|
# File systems
|
||||||
#
|
#
|
||||||
@@ -1826,6 +1862,7 @@ CONFIG_INOTIFY_USER=y
|
|||||||
CONFIG_QUOTA=y
|
CONFIG_QUOTA=y
|
||||||
# CONFIG_QUOTA_NETLINK_INTERFACE is not set
|
# CONFIG_QUOTA_NETLINK_INTERFACE is not set
|
||||||
CONFIG_PRINT_QUOTA_WARNING=y
|
CONFIG_PRINT_QUOTA_WARNING=y
|
||||||
|
# CONFIG_QUOTA_DEBUG is not set
|
||||||
CONFIG_QUOTA_TREE=y
|
CONFIG_QUOTA_TREE=y
|
||||||
# CONFIG_QFMT_V1 is not set
|
# CONFIG_QFMT_V1 is not set
|
||||||
CONFIG_QFMT_V2=y
|
CONFIG_QFMT_V2=y
|
||||||
@@ -1897,6 +1934,7 @@ CONFIG_UBIFS_FS=y
|
|||||||
CONFIG_UBIFS_FS_LZO=y
|
CONFIG_UBIFS_FS_LZO=y
|
||||||
CONFIG_UBIFS_FS_ZLIB=y
|
CONFIG_UBIFS_FS_ZLIB=y
|
||||||
# CONFIG_UBIFS_FS_DEBUG is not set
|
# CONFIG_UBIFS_FS_DEBUG is not set
|
||||||
|
# CONFIG_LOGFS is not set
|
||||||
CONFIG_CRAMFS=y
|
CONFIG_CRAMFS=y
|
||||||
# CONFIG_SQUASHFS is not set
|
# CONFIG_SQUASHFS is not set
|
||||||
# CONFIG_VXFS_FS is not set
|
# CONFIG_VXFS_FS is not set
|
||||||
@@ -1924,6 +1962,7 @@ CONFIG_SUNRPC_GSS=y
|
|||||||
CONFIG_RPCSEC_GSS_KRB5=y
|
CONFIG_RPCSEC_GSS_KRB5=y
|
||||||
# CONFIG_RPCSEC_GSS_SPKM3 is not set
|
# CONFIG_RPCSEC_GSS_SPKM3 is not set
|
||||||
# CONFIG_SMB_FS is not set
|
# CONFIG_SMB_FS is not set
|
||||||
|
# CONFIG_CEPH_FS is not set
|
||||||
# CONFIG_CIFS is not set
|
# CONFIG_CIFS is not set
|
||||||
# CONFIG_NCP_FS is not set
|
# CONFIG_NCP_FS is not set
|
||||||
# CONFIG_CODA_FS is not set
|
# CONFIG_CODA_FS is not set
|
||||||
@@ -2024,6 +2063,7 @@ CONFIG_DEBUG_SPINLOCK=y
|
|||||||
CONFIG_DEBUG_MUTEXES=y
|
CONFIG_DEBUG_MUTEXES=y
|
||||||
CONFIG_DEBUG_LOCK_ALLOC=y
|
CONFIG_DEBUG_LOCK_ALLOC=y
|
||||||
CONFIG_PROVE_LOCKING=y
|
CONFIG_PROVE_LOCKING=y
|
||||||
|
# CONFIG_PROVE_RCU is not set
|
||||||
CONFIG_LOCKDEP=y
|
CONFIG_LOCKDEP=y
|
||||||
CONFIG_LOCK_STAT=y
|
CONFIG_LOCK_STAT=y
|
||||||
# CONFIG_DEBUG_LOCKDEP is not set
|
# CONFIG_DEBUG_LOCKDEP is not set
|
||||||
@@ -2053,13 +2093,9 @@ CONFIG_DEBUG_INFO=y
|
|||||||
# CONFIG_LATENCYTOP is not set
|
# CONFIG_LATENCYTOP is not set
|
||||||
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
|
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
|
||||||
# CONFIG_PAGE_POISONING is not set
|
# CONFIG_PAGE_POISONING is not set
|
||||||
CONFIG_NOP_TRACER=y
|
|
||||||
CONFIG_HAVE_FUNCTION_TRACER=y
|
CONFIG_HAVE_FUNCTION_TRACER=y
|
||||||
CONFIG_RING_BUFFER=y
|
CONFIG_RING_BUFFER=y
|
||||||
CONFIG_EVENT_TRACING=y
|
|
||||||
CONFIG_CONTEXT_SWITCH_TRACER=y
|
|
||||||
CONFIG_RING_BUFFER_ALLOW_SWAP=y
|
CONFIG_RING_BUFFER_ALLOW_SWAP=y
|
||||||
CONFIG_TRACING=y
|
|
||||||
CONFIG_TRACING_SUPPORT=y
|
CONFIG_TRACING_SUPPORT=y
|
||||||
CONFIG_FTRACE=y
|
CONFIG_FTRACE=y
|
||||||
# CONFIG_FUNCTION_TRACER is not set
|
# CONFIG_FUNCTION_TRACER is not set
|
||||||
@@ -2199,7 +2235,7 @@ CONFIG_CRYPTO_LZO=y
|
|||||||
#
|
#
|
||||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||||
CONFIG_CRYPTO_HW=y
|
CONFIG_CRYPTO_HW=y
|
||||||
CONFIG_BINARY_PRINTF=y
|
# CONFIG_BINARY_PRINTF is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Library routines
|
# Library routines
|
||||||
@@ -2222,3 +2258,4 @@ CONFIG_HAS_IOMEM=y
|
|||||||
CONFIG_HAS_IOPORT=y
|
CONFIG_HAS_IOPORT=y
|
||||||
CONFIG_HAS_DMA=y
|
CONFIG_HAS_DMA=y
|
||||||
CONFIG_NLATTR=y
|
CONFIG_NLATTR=y
|
||||||
|
CONFIG_GENERIC_ATOMIC64=y
|
||||||
|
|||||||
@@ -911,7 +911,56 @@ CONFIG_DAB=y
|
|||||||
#
|
#
|
||||||
# CONFIG_VGASTATE is not set
|
# CONFIG_VGASTATE is not set
|
||||||
CONFIG_VIDEO_OUTPUT_CONTROL=m
|
CONFIG_VIDEO_OUTPUT_CONTROL=m
|
||||||
# CONFIG_FB is not set
|
CONFIG_FB=y
|
||||||
|
# CONFIG_FIRMWARE_EDID is not set
|
||||||
|
# CONFIG_FB_DDC is not set
|
||||||
|
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
|
||||||
|
CONFIG_FB_CFB_FILLRECT=y
|
||||||
|
CONFIG_FB_CFB_COPYAREA=y
|
||||||
|
CONFIG_FB_CFB_IMAGEBLIT=y
|
||||||
|
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
|
||||||
|
# CONFIG_FB_SYS_FILLRECT is not set
|
||||||
|
# CONFIG_FB_SYS_COPYAREA is not set
|
||||||
|
# CONFIG_FB_SYS_IMAGEBLIT is not set
|
||||||
|
# CONFIG_FB_FOREIGN_ENDIAN is not set
|
||||||
|
# CONFIG_FB_SYS_FOPS is not set
|
||||||
|
# CONFIG_FB_SVGALIB is not set
|
||||||
|
# CONFIG_FB_MACMODES is not set
|
||||||
|
# CONFIG_FB_BACKLIGHT is not set
|
||||||
|
# CONFIG_FB_MODE_HELPERS is not set
|
||||||
|
# CONFIG_FB_TILEBLITTING is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Frame buffer hardware drivers
|
||||||
|
#
|
||||||
|
# CONFIG_FB_S1D13XXX is not set
|
||||||
|
# CONFIG_FB_VIRTUAL is not set
|
||||||
|
# CONFIG_FB_METRONOME is not set
|
||||||
|
# CONFIG_FB_MB862XX is not set
|
||||||
|
# CONFIG_FB_BROADSHEET is not set
|
||||||
|
# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
|
||||||
|
CONFIG_OMAP2_VRAM=y
|
||||||
|
CONFIG_OMAP2_VRFB=y
|
||||||
|
CONFIG_OMAP2_DSS=y
|
||||||
|
CONFIG_OMAP2_VRAM_SIZE=4
|
||||||
|
# CONFIG_OMAP2_DSS_DEBUG_SUPPORT is not set
|
||||||
|
# CONFIG_OMAP2_DSS_RFBI is not set
|
||||||
|
CONFIG_OMAP2_DSS_VENC=y
|
||||||
|
# CONFIG_OMAP2_DSS_SDI is not set
|
||||||
|
# CONFIG_OMAP2_DSS_DSI is not set
|
||||||
|
# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set
|
||||||
|
CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=4
|
||||||
|
CONFIG_FB_OMAP2=y
|
||||||
|
# CONFIG_FB_OMAP2_DEBUG_SUPPORT is not set
|
||||||
|
# CONFIG_FB_OMAP2_FORCE_AUTO_UPDATE is not set
|
||||||
|
CONFIG_FB_OMAP2_NUM_FBS=3
|
||||||
|
|
||||||
|
#
|
||||||
|
# OMAP2/3 Display Device Drivers
|
||||||
|
#
|
||||||
|
CONFIG_PANEL_GENERIC=y
|
||||||
|
# CONFIG_PANEL_SAMSUNG_LTE430WQ_F0C is not set
|
||||||
|
CONFIG_PANEL_SHARP_LS037V7DW01=y
|
||||||
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
|
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|||||||
1691
arch/arm/configs/omap3_stalker_lks_defconfig
Normal file
1691
arch/arm/configs/omap3_stalker_lks_defconfig
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.32
|
# Linux kernel version: 2.6.34-rc7
|
||||||
# Sun Dec 6 23:37:45 2009
|
# Wed May 12 12:26:05 2010
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||||
@@ -9,6 +9,7 @@ CONFIG_GENERIC_GPIO=y
|
|||||||
CONFIG_GENERIC_TIME=y
|
CONFIG_GENERIC_TIME=y
|
||||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||||
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
|
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
|
||||||
|
CONFIG_HAVE_PROC_CPU=y
|
||||||
CONFIG_GENERIC_HARDIRQS=y
|
CONFIG_GENERIC_HARDIRQS=y
|
||||||
CONFIG_STACKTRACE_SUPPORT=y
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_LOCKDEP_SUPPORT=y
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
@@ -20,6 +21,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
|||||||
CONFIG_ARCH_HAS_CPUFREQ=y
|
CONFIG_ARCH_HAS_CPUFREQ=y
|
||||||
CONFIG_GENERIC_HWEIGHT=y
|
CONFIG_GENERIC_HWEIGHT=y
|
||||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||||
|
CONFIG_NEED_DMA_MAP_STATE=y
|
||||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||||
CONFIG_VECTORS_BASE=0xffff0000
|
CONFIG_VECTORS_BASE=0xffff0000
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
@@ -33,28 +35,33 @@ CONFIG_LOCK_KERNEL=y
|
|||||||
CONFIG_INIT_ENV_ARG_LIMIT=32
|
CONFIG_INIT_ENV_ARG_LIMIT=32
|
||||||
CONFIG_LOCALVERSION=""
|
CONFIG_LOCALVERSION=""
|
||||||
CONFIG_LOCALVERSION_AUTO=y
|
CONFIG_LOCALVERSION_AUTO=y
|
||||||
|
CONFIG_HAVE_KERNEL_GZIP=y
|
||||||
|
CONFIG_HAVE_KERNEL_LZO=y
|
||||||
|
CONFIG_KERNEL_GZIP=y
|
||||||
|
# CONFIG_KERNEL_BZIP2 is not set
|
||||||
|
# CONFIG_KERNEL_LZMA is not set
|
||||||
|
# CONFIG_KERNEL_LZO is not set
|
||||||
CONFIG_SWAP=y
|
CONFIG_SWAP=y
|
||||||
CONFIG_SYSVIPC=y
|
CONFIG_SYSVIPC=y
|
||||||
CONFIG_SYSVIPC_SYSCTL=y
|
CONFIG_SYSVIPC_SYSCTL=y
|
||||||
|
# CONFIG_POSIX_MQUEUE is not set
|
||||||
CONFIG_BSD_PROCESS_ACCT=y
|
CONFIG_BSD_PROCESS_ACCT=y
|
||||||
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
|
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
|
||||||
|
# CONFIG_TASKSTATS is not set
|
||||||
|
# CONFIG_AUDIT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# RCU Subsystem
|
# RCU Subsystem
|
||||||
#
|
#
|
||||||
CONFIG_TREE_RCU=y
|
CONFIG_TREE_RCU=y
|
||||||
# CONFIG_TREE_PREEMPT_RCU is not set
|
# CONFIG_TREE_PREEMPT_RCU is not set
|
||||||
|
# CONFIG_TINY_RCU is not set
|
||||||
# CONFIG_RCU_TRACE is not set
|
# CONFIG_RCU_TRACE is not set
|
||||||
CONFIG_RCU_FANOUT=32
|
CONFIG_RCU_FANOUT=32
|
||||||
# CONFIG_RCU_FANOUT_EXACT is not set
|
# CONFIG_RCU_FANOUT_EXACT is not set
|
||||||
# CONFIG_TREE_RCU_TRACE is not set
|
# CONFIG_TREE_RCU_TRACE is not set
|
||||||
# CONFIG_IKCONFIG is not set
|
# CONFIG_IKCONFIG is not set
|
||||||
CONFIG_LOG_BUF_SHIFT=14
|
CONFIG_LOG_BUF_SHIFT=14
|
||||||
CONFIG_GROUP_SCHED=y
|
|
||||||
CONFIG_FAIR_GROUP_SCHED=y
|
|
||||||
# CONFIG_RT_GROUP_SCHED is not set
|
|
||||||
CONFIG_USER_SCHED=y
|
|
||||||
# CONFIG_CGROUP_SCHED is not set
|
|
||||||
# CONFIG_CGROUPS is not set
|
# CONFIG_CGROUPS is not set
|
||||||
# CONFIG_SYSFS_DEPRECATED_V2 is not set
|
# CONFIG_SYSFS_DEPRECATED_V2 is not set
|
||||||
# CONFIG_RELAY is not set
|
# CONFIG_RELAY is not set
|
||||||
@@ -64,6 +71,7 @@ CONFIG_INITRAMFS_SOURCE=""
|
|||||||
CONFIG_RD_GZIP=y
|
CONFIG_RD_GZIP=y
|
||||||
# CONFIG_RD_BZIP2 is not set
|
# CONFIG_RD_BZIP2 is not set
|
||||||
# CONFIG_RD_LZMA is not set
|
# CONFIG_RD_LZMA is not set
|
||||||
|
# CONFIG_RD_LZO is not set
|
||||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||||
CONFIG_SYSCTL=y
|
CONFIG_SYSCTL=y
|
||||||
CONFIG_ANON_INODES=y
|
CONFIG_ANON_INODES=y
|
||||||
@@ -85,10 +93,14 @@ CONFIG_TIMERFD=y
|
|||||||
CONFIG_EVENTFD=y
|
CONFIG_EVENTFD=y
|
||||||
CONFIG_SHMEM=y
|
CONFIG_SHMEM=y
|
||||||
CONFIG_AIO=y
|
CONFIG_AIO=y
|
||||||
|
CONFIG_HAVE_PERF_EVENTS=y
|
||||||
|
CONFIG_PERF_USE_VMALLOC=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Kernel Performance Events And Counters
|
# Kernel Performance Events And Counters
|
||||||
#
|
#
|
||||||
|
# CONFIG_PERF_EVENTS is not set
|
||||||
|
# CONFIG_PERF_COUNTERS is not set
|
||||||
CONFIG_VM_EVENT_COUNTERS=y
|
CONFIG_VM_EVENT_COUNTERS=y
|
||||||
CONFIG_SLUB_DEBUG=y
|
CONFIG_SLUB_DEBUG=y
|
||||||
CONFIG_COMPAT_BRK=y
|
CONFIG_COMPAT_BRK=y
|
||||||
@@ -127,14 +139,41 @@ CONFIG_LBDAF=y
|
|||||||
# IO Schedulers
|
# IO Schedulers
|
||||||
#
|
#
|
||||||
CONFIG_IOSCHED_NOOP=y
|
CONFIG_IOSCHED_NOOP=y
|
||||||
CONFIG_IOSCHED_AS=y
|
|
||||||
CONFIG_IOSCHED_DEADLINE=y
|
CONFIG_IOSCHED_DEADLINE=y
|
||||||
CONFIG_IOSCHED_CFQ=y
|
CONFIG_IOSCHED_CFQ=y
|
||||||
CONFIG_DEFAULT_AS=y
|
|
||||||
# CONFIG_DEFAULT_DEADLINE is not set
|
# CONFIG_DEFAULT_DEADLINE is not set
|
||||||
# CONFIG_DEFAULT_CFQ is not set
|
CONFIG_DEFAULT_CFQ=y
|
||||||
# CONFIG_DEFAULT_NOOP is not set
|
# CONFIG_DEFAULT_NOOP is not set
|
||||||
CONFIG_DEFAULT_IOSCHED="anticipatory"
|
CONFIG_DEFAULT_IOSCHED="cfq"
|
||||||
|
# CONFIG_INLINE_SPIN_TRYLOCK is not set
|
||||||
|
# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
|
||||||
|
# CONFIG_INLINE_SPIN_LOCK is not set
|
||||||
|
# CONFIG_INLINE_SPIN_LOCK_BH is not set
|
||||||
|
# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
|
||||||
|
# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
|
||||||
|
# CONFIG_INLINE_SPIN_UNLOCK is not set
|
||||||
|
# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
|
||||||
|
# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
|
||||||
|
# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
|
||||||
|
# CONFIG_INLINE_READ_TRYLOCK is not set
|
||||||
|
# CONFIG_INLINE_READ_LOCK is not set
|
||||||
|
# CONFIG_INLINE_READ_LOCK_BH is not set
|
||||||
|
# CONFIG_INLINE_READ_LOCK_IRQ is not set
|
||||||
|
# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
|
||||||
|
# CONFIG_INLINE_READ_UNLOCK is not set
|
||||||
|
# CONFIG_INLINE_READ_UNLOCK_BH is not set
|
||||||
|
# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
|
||||||
|
# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
|
||||||
|
# CONFIG_INLINE_WRITE_TRYLOCK is not set
|
||||||
|
# CONFIG_INLINE_WRITE_LOCK is not set
|
||||||
|
# CONFIG_INLINE_WRITE_LOCK_BH is not set
|
||||||
|
# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
|
||||||
|
# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
|
||||||
|
# CONFIG_INLINE_WRITE_UNLOCK is not set
|
||||||
|
# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
|
||||||
|
# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
|
||||||
|
# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
|
||||||
|
CONFIG_MUTEX_SPIN_ON_OWNER=y
|
||||||
# CONFIG_FREEZER is not set
|
# CONFIG_FREEZER is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -146,6 +185,7 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_REALVIEW is not set
|
# CONFIG_ARCH_REALVIEW is not set
|
||||||
# CONFIG_ARCH_VERSATILE is not set
|
# CONFIG_ARCH_VERSATILE is not set
|
||||||
# CONFIG_ARCH_AT91 is not set
|
# CONFIG_ARCH_AT91 is not set
|
||||||
|
# CONFIG_ARCH_BCMRING is not set
|
||||||
# CONFIG_ARCH_CLPS711X is not set
|
# CONFIG_ARCH_CLPS711X is not set
|
||||||
# CONFIG_ARCH_GEMINI is not set
|
# CONFIG_ARCH_GEMINI is not set
|
||||||
# CONFIG_ARCH_EBSA110 is not set
|
# CONFIG_ARCH_EBSA110 is not set
|
||||||
@@ -155,7 +195,6 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_STMP3XXX is not set
|
# CONFIG_ARCH_STMP3XXX is not set
|
||||||
# CONFIG_ARCH_NETX is not set
|
# CONFIG_ARCH_NETX is not set
|
||||||
# CONFIG_ARCH_H720X is not set
|
# CONFIG_ARCH_H720X is not set
|
||||||
# CONFIG_ARCH_NOMADIK is not set
|
|
||||||
# CONFIG_ARCH_IOP13XX is not set
|
# CONFIG_ARCH_IOP13XX is not set
|
||||||
# CONFIG_ARCH_IOP32X is not set
|
# CONFIG_ARCH_IOP32X is not set
|
||||||
# CONFIG_ARCH_IOP33X is not set
|
# CONFIG_ARCH_IOP33X is not set
|
||||||
@@ -163,6 +202,7 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_IXP2000 is not set
|
# CONFIG_ARCH_IXP2000 is not set
|
||||||
# CONFIG_ARCH_IXP4XX is not set
|
# CONFIG_ARCH_IXP4XX is not set
|
||||||
# CONFIG_ARCH_L7200 is not set
|
# CONFIG_ARCH_L7200 is not set
|
||||||
|
# CONFIG_ARCH_DOVE is not set
|
||||||
# CONFIG_ARCH_KIRKWOOD is not set
|
# CONFIG_ARCH_KIRKWOOD is not set
|
||||||
# CONFIG_ARCH_LOKI is not set
|
# CONFIG_ARCH_LOKI is not set
|
||||||
# CONFIG_ARCH_MV78XX0 is not set
|
# CONFIG_ARCH_MV78XX0 is not set
|
||||||
@@ -171,25 +211,32 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_KS8695 is not set
|
# CONFIG_ARCH_KS8695 is not set
|
||||||
# CONFIG_ARCH_NS9XXX is not set
|
# CONFIG_ARCH_NS9XXX is not set
|
||||||
# CONFIG_ARCH_W90X900 is not set
|
# CONFIG_ARCH_W90X900 is not set
|
||||||
|
# CONFIG_ARCH_NUC93X is not set
|
||||||
# CONFIG_ARCH_PNX4008 is not set
|
# CONFIG_ARCH_PNX4008 is not set
|
||||||
# CONFIG_ARCH_PXA is not set
|
# CONFIG_ARCH_PXA is not set
|
||||||
# CONFIG_ARCH_MSM is not set
|
# CONFIG_ARCH_MSM is not set
|
||||||
|
# CONFIG_ARCH_SHMOBILE is not set
|
||||||
# CONFIG_ARCH_RPC is not set
|
# CONFIG_ARCH_RPC is not set
|
||||||
# CONFIG_ARCH_SA1100 is not set
|
# CONFIG_ARCH_SA1100 is not set
|
||||||
# CONFIG_ARCH_S3C2410 is not set
|
# CONFIG_ARCH_S3C2410 is not set
|
||||||
# CONFIG_ARCH_S3C64XX is not set
|
# CONFIG_ARCH_S3C64XX is not set
|
||||||
|
# CONFIG_ARCH_S5P6440 is not set
|
||||||
|
# CONFIG_ARCH_S5P6442 is not set
|
||||||
# CONFIG_ARCH_S5PC1XX is not set
|
# CONFIG_ARCH_S5PC1XX is not set
|
||||||
|
# CONFIG_ARCH_S5PV210 is not set
|
||||||
# CONFIG_ARCH_SHARK is not set
|
# CONFIG_ARCH_SHARK is not set
|
||||||
# CONFIG_ARCH_LH7A40X is not set
|
# CONFIG_ARCH_LH7A40X is not set
|
||||||
# CONFIG_ARCH_U300 is not set
|
# CONFIG_ARCH_U300 is not set
|
||||||
|
# CONFIG_ARCH_U8500 is not set
|
||||||
|
# CONFIG_ARCH_NOMADIK is not set
|
||||||
# CONFIG_ARCH_DAVINCI is not set
|
# CONFIG_ARCH_DAVINCI is not set
|
||||||
CONFIG_ARCH_OMAP=y
|
CONFIG_ARCH_OMAP=y
|
||||||
# CONFIG_ARCH_BCMRING is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# TI OMAP Implementations
|
# TI OMAP Implementations
|
||||||
#
|
#
|
||||||
# CONFIG_ARCH_OMAP1 is not set
|
# CONFIG_ARCH_OMAP1 is not set
|
||||||
|
CONFIG_ARCH_OMAP2PLUS=y
|
||||||
# CONFIG_ARCH_OMAP2 is not set
|
# CONFIG_ARCH_OMAP2 is not set
|
||||||
# CONFIG_ARCH_OMAP3 is not set
|
# CONFIG_ARCH_OMAP3 is not set
|
||||||
CONFIG_ARCH_OMAP4=y
|
CONFIG_ARCH_OMAP4=y
|
||||||
@@ -205,10 +252,6 @@ CONFIG_OMAP_MCBSP=y
|
|||||||
CONFIG_OMAP_32K_TIMER=y
|
CONFIG_OMAP_32K_TIMER=y
|
||||||
CONFIG_OMAP_32K_TIMER_HZ=128
|
CONFIG_OMAP_32K_TIMER_HZ=128
|
||||||
CONFIG_OMAP_DM_TIMER=y
|
CONFIG_OMAP_DM_TIMER=y
|
||||||
# CONFIG_OMAP_LL_DEBUG_UART1 is not set
|
|
||||||
# CONFIG_OMAP_LL_DEBUG_UART2 is not set
|
|
||||||
CONFIG_OMAP_LL_DEBUG_UART3=y
|
|
||||||
# CONFIG_OMAP_LL_DEBUG_NONE is not set
|
|
||||||
# CONFIG_OMAP_PM_NONE is not set
|
# CONFIG_OMAP_PM_NONE is not set
|
||||||
CONFIG_OMAP_PM_NOOP=y
|
CONFIG_OMAP_PM_NOOP=y
|
||||||
|
|
||||||
@@ -243,13 +286,16 @@ CONFIG_CPU_CP15_MMU=y
|
|||||||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||||
CONFIG_HAS_TLS_REG=y
|
CONFIG_HAS_TLS_REG=y
|
||||||
CONFIG_OUTER_CACHE=y
|
CONFIG_OUTER_CACHE=y
|
||||||
|
CONFIG_OUTER_CACHE_SYNC=y
|
||||||
CONFIG_CACHE_L2X0=y
|
CONFIG_CACHE_L2X0=y
|
||||||
CONFIG_ARM_L1_CACHE_SHIFT=5
|
CONFIG_ARM_L1_CACHE_SHIFT=5
|
||||||
|
CONFIG_CPU_HAS_PMU=y
|
||||||
# CONFIG_ARM_ERRATA_430973 is not set
|
# CONFIG_ARM_ERRATA_430973 is not set
|
||||||
# CONFIG_ARM_ERRATA_458693 is not set
|
# CONFIG_ARM_ERRATA_458693 is not set
|
||||||
# CONFIG_ARM_ERRATA_460075 is not set
|
# CONFIG_ARM_ERRATA_460075 is not set
|
||||||
CONFIG_PL310_ERRATA_588369=y
|
CONFIG_PL310_ERRATA_588369=y
|
||||||
CONFIG_ARM_GIC=y
|
CONFIG_ARM_GIC=y
|
||||||
|
CONFIG_COMMON_CLKDEV=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bus support
|
# Bus support
|
||||||
@@ -280,6 +326,7 @@ CONFIG_HZ=128
|
|||||||
# CONFIG_THUMB2_KERNEL is not set
|
# CONFIG_THUMB2_KERNEL is not set
|
||||||
CONFIG_AEABI=y
|
CONFIG_AEABI=y
|
||||||
CONFIG_OABI_COMPAT=y
|
CONFIG_OABI_COMPAT=y
|
||||||
|
CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
|
||||||
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
|
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
|
||||||
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
|
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
|
||||||
# CONFIG_HIGHMEM is not set
|
# CONFIG_HIGHMEM is not set
|
||||||
@@ -294,8 +341,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
|
|||||||
# CONFIG_PHYS_ADDR_T_64BIT is not set
|
# CONFIG_PHYS_ADDR_T_64BIT is not set
|
||||||
CONFIG_ZONE_DMA_FLAG=0
|
CONFIG_ZONE_DMA_FLAG=0
|
||||||
CONFIG_VIRT_TO_BUS=y
|
CONFIG_VIRT_TO_BUS=y
|
||||||
CONFIG_HAVE_MLOCK=y
|
|
||||||
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
|
|
||||||
# CONFIG_KSM is not set
|
# CONFIG_KSM is not set
|
||||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
||||||
# CONFIG_LEDS is not set
|
# CONFIG_LEDS is not set
|
||||||
@@ -343,7 +388,83 @@ CONFIG_BINFMT_MISC=y
|
|||||||
#
|
#
|
||||||
# CONFIG_PM is not set
|
# CONFIG_PM is not set
|
||||||
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
||||||
# CONFIG_NET is not set
|
CONFIG_NET=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking options
|
||||||
|
#
|
||||||
|
CONFIG_PACKET=y
|
||||||
|
# CONFIG_UNIX is not set
|
||||||
|
CONFIG_XFRM=y
|
||||||
|
# CONFIG_XFRM_USER is not set
|
||||||
|
# CONFIG_XFRM_SUB_POLICY is not set
|
||||||
|
# CONFIG_XFRM_MIGRATE is not set
|
||||||
|
# CONFIG_XFRM_STATISTICS is not set
|
||||||
|
# CONFIG_NET_KEY is not set
|
||||||
|
CONFIG_INET=y
|
||||||
|
# CONFIG_IP_MULTICAST is not set
|
||||||
|
# CONFIG_IP_ADVANCED_ROUTER is not set
|
||||||
|
CONFIG_IP_FIB_HASH=y
|
||||||
|
CONFIG_IP_PNP=y
|
||||||
|
CONFIG_IP_PNP_DHCP=y
|
||||||
|
CONFIG_IP_PNP_BOOTP=y
|
||||||
|
CONFIG_IP_PNP_RARP=y
|
||||||
|
# CONFIG_NET_IPIP is not set
|
||||||
|
# CONFIG_NET_IPGRE is not set
|
||||||
|
# CONFIG_ARPD is not set
|
||||||
|
# CONFIG_SYN_COOKIES is not set
|
||||||
|
# CONFIG_INET_AH is not set
|
||||||
|
# CONFIG_INET_ESP is not set
|
||||||
|
# CONFIG_INET_IPCOMP is not set
|
||||||
|
# CONFIG_INET_XFRM_TUNNEL is not set
|
||||||
|
# CONFIG_INET_TUNNEL is not set
|
||||||
|
CONFIG_INET_XFRM_MODE_TRANSPORT=y
|
||||||
|
CONFIG_INET_XFRM_MODE_TUNNEL=y
|
||||||
|
CONFIG_INET_XFRM_MODE_BEET=y
|
||||||
|
CONFIG_INET_LRO=y
|
||||||
|
CONFIG_INET_DIAG=y
|
||||||
|
CONFIG_INET_TCP_DIAG=y
|
||||||
|
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||||
|
CONFIG_TCP_CONG_CUBIC=y
|
||||||
|
CONFIG_DEFAULT_TCP_CONG="cubic"
|
||||||
|
# CONFIG_TCP_MD5SIG is not set
|
||||||
|
# CONFIG_IPV6 is not set
|
||||||
|
# CONFIG_NETWORK_SECMARK is not set
|
||||||
|
# CONFIG_NETFILTER is not set
|
||||||
|
# CONFIG_IP_DCCP is not set
|
||||||
|
# CONFIG_IP_SCTP is not set
|
||||||
|
# CONFIG_RDS is not set
|
||||||
|
# CONFIG_TIPC is not set
|
||||||
|
# CONFIG_ATM is not set
|
||||||
|
# CONFIG_BRIDGE is not set
|
||||||
|
# CONFIG_NET_DSA is not set
|
||||||
|
# CONFIG_VLAN_8021Q is not set
|
||||||
|
# CONFIG_DECNET is not set
|
||||||
|
# CONFIG_LLC2 is not set
|
||||||
|
# CONFIG_IPX is not set
|
||||||
|
# CONFIG_ATALK is not set
|
||||||
|
# CONFIG_X25 is not set
|
||||||
|
# CONFIG_LAPB is not set
|
||||||
|
# CONFIG_ECONET is not set
|
||||||
|
# CONFIG_WAN_ROUTER is not set
|
||||||
|
# CONFIG_PHONET is not set
|
||||||
|
# CONFIG_IEEE802154 is not set
|
||||||
|
# CONFIG_NET_SCHED is not set
|
||||||
|
# CONFIG_DCB is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Network testing
|
||||||
|
#
|
||||||
|
# CONFIG_NET_PKTGEN is not set
|
||||||
|
# CONFIG_HAMRADIO is not set
|
||||||
|
# CONFIG_CAN is not set
|
||||||
|
# CONFIG_IRDA is not set
|
||||||
|
# CONFIG_BT is not set
|
||||||
|
# CONFIG_AF_RXRPC is not set
|
||||||
|
# CONFIG_WIRELESS is not set
|
||||||
|
# CONFIG_WIMAX is not set
|
||||||
|
# CONFIG_RFKILL is not set
|
||||||
|
# CONFIG_NET_9P is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Device Drivers
|
# Device Drivers
|
||||||
@@ -360,17 +481,24 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
|
|||||||
# CONFIG_DEBUG_DRIVER is not set
|
# CONFIG_DEBUG_DRIVER is not set
|
||||||
# CONFIG_DEBUG_DEVRES is not set
|
# CONFIG_DEBUG_DEVRES is not set
|
||||||
# CONFIG_SYS_HYPERVISOR is not set
|
# CONFIG_SYS_HYPERVISOR is not set
|
||||||
|
# CONFIG_CONNECTOR is not set
|
||||||
# CONFIG_MTD is not set
|
# CONFIG_MTD is not set
|
||||||
# CONFIG_PARPORT is not set
|
# CONFIG_PARPORT is not set
|
||||||
CONFIG_BLK_DEV=y
|
CONFIG_BLK_DEV=y
|
||||||
# CONFIG_BLK_DEV_COW_COMMON is not set
|
# CONFIG_BLK_DEV_COW_COMMON is not set
|
||||||
CONFIG_BLK_DEV_LOOP=y
|
CONFIG_BLK_DEV_LOOP=y
|
||||||
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
|
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
|
||||||
|
#
|
||||||
|
# CONFIG_BLK_DEV_NBD is not set
|
||||||
CONFIG_BLK_DEV_RAM=y
|
CONFIG_BLK_DEV_RAM=y
|
||||||
CONFIG_BLK_DEV_RAM_COUNT=16
|
CONFIG_BLK_DEV_RAM_COUNT=16
|
||||||
CONFIG_BLK_DEV_RAM_SIZE=16384
|
CONFIG_BLK_DEV_RAM_SIZE=16384
|
||||||
# CONFIG_BLK_DEV_XIP is not set
|
# CONFIG_BLK_DEV_XIP is not set
|
||||||
# CONFIG_CDROM_PKTCDVD is not set
|
# CONFIG_CDROM_PKTCDVD is not set
|
||||||
|
# CONFIG_ATA_OVER_ETH is not set
|
||||||
# CONFIG_MG_DISK is not set
|
# CONFIG_MG_DISK is not set
|
||||||
# CONFIG_MISC_DEVICES is not set
|
# CONFIG_MISC_DEVICES is not set
|
||||||
CONFIG_HAVE_IDE=y
|
CONFIG_HAVE_IDE=y
|
||||||
@@ -379,12 +507,56 @@ CONFIG_HAVE_IDE=y
|
|||||||
#
|
#
|
||||||
# SCSI device support
|
# SCSI device support
|
||||||
#
|
#
|
||||||
|
CONFIG_SCSI_MOD=y
|
||||||
# CONFIG_RAID_ATTRS is not set
|
# CONFIG_RAID_ATTRS is not set
|
||||||
# CONFIG_SCSI is not set
|
# CONFIG_SCSI is not set
|
||||||
# CONFIG_SCSI_DMA is not set
|
# CONFIG_SCSI_DMA is not set
|
||||||
# CONFIG_SCSI_NETLINK is not set
|
# CONFIG_SCSI_NETLINK is not set
|
||||||
# CONFIG_ATA is not set
|
# CONFIG_ATA is not set
|
||||||
# CONFIG_MD is not set
|
# CONFIG_MD is not set
|
||||||
|
CONFIG_NETDEVICES=y
|
||||||
|
# CONFIG_DUMMY is not set
|
||||||
|
# CONFIG_BONDING is not set
|
||||||
|
# CONFIG_MACVLAN is not set
|
||||||
|
# CONFIG_EQUALIZER is not set
|
||||||
|
# CONFIG_TUN is not set
|
||||||
|
# CONFIG_VETH is not set
|
||||||
|
# CONFIG_PHYLIB is not set
|
||||||
|
CONFIG_NET_ETHERNET=y
|
||||||
|
CONFIG_MII=y
|
||||||
|
# CONFIG_AX88796 is not set
|
||||||
|
# CONFIG_SMC91X is not set
|
||||||
|
# CONFIG_DM9000 is not set
|
||||||
|
# CONFIG_ENC28J60 is not set
|
||||||
|
# CONFIG_ETHOC is not set
|
||||||
|
# CONFIG_SMC911X is not set
|
||||||
|
# CONFIG_SMSC911X is not set
|
||||||
|
# CONFIG_DNET is not set
|
||||||
|
# CONFIG_IBM_NEW_EMAC_ZMII is not set
|
||||||
|
# CONFIG_IBM_NEW_EMAC_RGMII is not set
|
||||||
|
# CONFIG_IBM_NEW_EMAC_TAH is not set
|
||||||
|
# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
|
||||||
|
# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
|
||||||
|
# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
|
||||||
|
# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
|
||||||
|
# CONFIG_B44 is not set
|
||||||
|
# CONFIG_KS8842 is not set
|
||||||
|
CONFIG_KS8851=y
|
||||||
|
# CONFIG_KS8851_MLL is not set
|
||||||
|
# CONFIG_NETDEV_1000 is not set
|
||||||
|
# CONFIG_NETDEV_10000 is not set
|
||||||
|
# CONFIG_WLAN is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Enable WiMAX (Networking options) to see the WiMAX drivers
|
||||||
|
#
|
||||||
|
# CONFIG_WAN is not set
|
||||||
|
# CONFIG_PPP is not set
|
||||||
|
# CONFIG_SLIP is not set
|
||||||
|
# CONFIG_NETCONSOLE is not set
|
||||||
|
# CONFIG_NETPOLL is not set
|
||||||
|
# CONFIG_NET_POLL_CONTROLLER is not set
|
||||||
|
# CONFIG_ISDN is not set
|
||||||
# CONFIG_PHONE is not set
|
# CONFIG_PHONE is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -393,6 +565,7 @@ CONFIG_HAVE_IDE=y
|
|||||||
CONFIG_INPUT=y
|
CONFIG_INPUT=y
|
||||||
# CONFIG_INPUT_FF_MEMLESS is not set
|
# CONFIG_INPUT_FF_MEMLESS is not set
|
||||||
# CONFIG_INPUT_POLLDEV is not set
|
# CONFIG_INPUT_POLLDEV is not set
|
||||||
|
# CONFIG_INPUT_SPARSEKMAP is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Userland interfaces
|
# Userland interfaces
|
||||||
@@ -445,8 +618,10 @@ CONFIG_SERIAL_8250_RSA=y
|
|||||||
#
|
#
|
||||||
# Non-8250 serial port support
|
# Non-8250 serial port support
|
||||||
#
|
#
|
||||||
|
# CONFIG_SERIAL_MAX3100 is not set
|
||||||
CONFIG_SERIAL_CORE=y
|
CONFIG_SERIAL_CORE=y
|
||||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||||
|
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||||
CONFIG_UNIX98_PTYS=y
|
CONFIG_UNIX98_PTYS=y
|
||||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||||
# CONFIG_LEGACY_PTYS is not set
|
# CONFIG_LEGACY_PTYS is not set
|
||||||
@@ -456,8 +631,58 @@ CONFIG_HW_RANDOM=y
|
|||||||
# CONFIG_R3964 is not set
|
# CONFIG_R3964 is not set
|
||||||
# CONFIG_RAW_DRIVER is not set
|
# CONFIG_RAW_DRIVER is not set
|
||||||
# CONFIG_TCG_TPM is not set
|
# CONFIG_TCG_TPM is not set
|
||||||
# CONFIG_I2C is not set
|
CONFIG_I2C=y
|
||||||
# CONFIG_SPI is not set
|
CONFIG_I2C_BOARDINFO=y
|
||||||
|
CONFIG_I2C_COMPAT=y
|
||||||
|
CONFIG_I2C_CHARDEV=y
|
||||||
|
CONFIG_I2C_HELPER_AUTO=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# I2C Hardware Bus support
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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_OMAP=y
|
||||||
|
# CONFIG_I2C_SIMTEC is not set
|
||||||
|
# CONFIG_I2C_XILINX is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# External I2C/SMBus adapter drivers
|
||||||
|
#
|
||||||
|
# CONFIG_I2C_PARPORT_LIGHT is not set
|
||||||
|
# CONFIG_I2C_TAOS_EVM is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Other I2C/SMBus bus drivers
|
||||||
|
#
|
||||||
|
# CONFIG_I2C_PCA_PLATFORM is not set
|
||||||
|
# CONFIG_I2C_STUB is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CORE is not set
|
||||||
|
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||||
|
# CONFIG_I2C_DEBUG_BUS is not set
|
||||||
|
CONFIG_SPI=y
|
||||||
|
# CONFIG_SPI_DEBUG is not set
|
||||||
|
CONFIG_SPI_MASTER=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# SPI Master Controller Drivers
|
||||||
|
#
|
||||||
|
# CONFIG_SPI_BITBANG is not set
|
||||||
|
# CONFIG_SPI_GPIO is not set
|
||||||
|
CONFIG_SPI_OMAP24XX=y
|
||||||
|
# CONFIG_SPI_XILINX is not set
|
||||||
|
# CONFIG_SPI_DESIGNWARE is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# SPI Protocol Masters
|
||||||
|
#
|
||||||
|
# CONFIG_SPI_SPIDEV is not set
|
||||||
|
# CONFIG_SPI_TLE62X0 is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# PPS support
|
# PPS support
|
||||||
@@ -471,10 +696,17 @@ CONFIG_GPIOLIB=y
|
|||||||
#
|
#
|
||||||
# Memory mapped GPIO expanders:
|
# Memory mapped GPIO expanders:
|
||||||
#
|
#
|
||||||
|
# CONFIG_GPIO_IT8761E is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# I2C GPIO expanders:
|
# I2C GPIO expanders:
|
||||||
#
|
#
|
||||||
|
# CONFIG_GPIO_MAX7300 is not set
|
||||||
|
# CONFIG_GPIO_MAX732X is not set
|
||||||
|
# CONFIG_GPIO_PCA953X is not set
|
||||||
|
# CONFIG_GPIO_PCF857X is not set
|
||||||
|
# CONFIG_GPIO_TWL4030 is not set
|
||||||
|
# CONFIG_GPIO_ADP5588 is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# PCI GPIO expanders:
|
# PCI GPIO expanders:
|
||||||
@@ -483,6 +715,9 @@ CONFIG_GPIOLIB=y
|
|||||||
#
|
#
|
||||||
# SPI GPIO expanders:
|
# SPI GPIO expanders:
|
||||||
#
|
#
|
||||||
|
# CONFIG_GPIO_MAX7301 is not set
|
||||||
|
# CONFIG_GPIO_MCP23S08 is not set
|
||||||
|
# CONFIG_GPIO_MC33880 is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# AC97 GPIO expanders:
|
# AC97 GPIO expanders:
|
||||||
@@ -492,7 +727,15 @@ CONFIG_GPIOLIB=y
|
|||||||
# CONFIG_HWMON is not set
|
# CONFIG_HWMON is not set
|
||||||
# CONFIG_THERMAL is not set
|
# CONFIG_THERMAL is not set
|
||||||
CONFIG_WATCHDOG=y
|
CONFIG_WATCHDOG=y
|
||||||
|
# CONFIG_WATCHDOG_NOWAYOUT is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Watchdog Device Drivers
|
||||||
|
#
|
||||||
|
# CONFIG_SOFT_WATCHDOG is not set
|
||||||
CONFIG_OMAP_WATCHDOG=y
|
CONFIG_OMAP_WATCHDOG=y
|
||||||
|
# CONFIG_TWL4030_WATCHDOG is not set
|
||||||
|
# CONFIG_MAX63XX_WATCHDOG is not set
|
||||||
CONFIG_SSB_POSSIBLE=y
|
CONFIG_SSB_POSSIBLE=y
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -504,15 +747,46 @@ CONFIG_SSB_POSSIBLE=y
|
|||||||
# Multifunction device drivers
|
# Multifunction device drivers
|
||||||
#
|
#
|
||||||
# CONFIG_MFD_CORE is not set
|
# CONFIG_MFD_CORE is not set
|
||||||
|
# CONFIG_MFD_88PM860X is not set
|
||||||
# CONFIG_MFD_SM501 is not set
|
# CONFIG_MFD_SM501 is not set
|
||||||
# CONFIG_MFD_ASIC3 is not set
|
# CONFIG_MFD_ASIC3 is not set
|
||||||
# CONFIG_HTC_EGPIO is not set
|
# CONFIG_HTC_EGPIO is not set
|
||||||
# CONFIG_HTC_PASIC3 is not set
|
# CONFIG_HTC_PASIC3 is not set
|
||||||
|
# CONFIG_HTC_I2CPLD is not set
|
||||||
|
# CONFIG_TPS65010 is not set
|
||||||
|
CONFIG_TWL4030_CORE=y
|
||||||
|
# CONFIG_TWL4030_POWER is not set
|
||||||
|
# CONFIG_TWL4030_CODEC is not set
|
||||||
# CONFIG_MFD_TMIO is not set
|
# CONFIG_MFD_TMIO is not set
|
||||||
# CONFIG_MFD_T7L66XB is not set
|
# CONFIG_MFD_T7L66XB is not set
|
||||||
# CONFIG_MFD_TC6387XB is not set
|
# CONFIG_MFD_TC6387XB is not set
|
||||||
# CONFIG_MFD_TC6393XB is not set
|
# CONFIG_MFD_TC6393XB is not set
|
||||||
# CONFIG_REGULATOR is not set
|
# CONFIG_PMIC_DA903X is not set
|
||||||
|
# CONFIG_PMIC_ADP5520 is not set
|
||||||
|
# CONFIG_MFD_MAX8925 is not set
|
||||||
|
# CONFIG_MFD_WM8400 is not set
|
||||||
|
# CONFIG_MFD_WM831X is not set
|
||||||
|
# CONFIG_MFD_WM8350_I2C is not set
|
||||||
|
# CONFIG_MFD_WM8994 is not set
|
||||||
|
# CONFIG_MFD_PCF50633 is not set
|
||||||
|
# CONFIG_MFD_MC13783 is not set
|
||||||
|
# CONFIG_AB3100_CORE is not set
|
||||||
|
# CONFIG_EZX_PCAP is not set
|
||||||
|
# CONFIG_AB4500_CORE is not set
|
||||||
|
CONFIG_REGULATOR=y
|
||||||
|
# CONFIG_REGULATOR_DEBUG is not set
|
||||||
|
# CONFIG_REGULATOR_DUMMY 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_MAX8649 is not set
|
||||||
|
# CONFIG_REGULATOR_MAX8660 is not set
|
||||||
|
CONFIG_REGULATOR_TWL4030=y
|
||||||
|
# CONFIG_REGULATOR_LP3971 is not set
|
||||||
|
# CONFIG_REGULATOR_TPS65023 is not set
|
||||||
|
# CONFIG_REGULATOR_TPS6507X is not set
|
||||||
# CONFIG_MEDIA_SUPPORT is not set
|
# CONFIG_MEDIA_SUPPORT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -536,12 +810,94 @@ CONFIG_DUMMY_CONSOLE=y
|
|||||||
# CONFIG_SOUND is not set
|
# CONFIG_SOUND is not set
|
||||||
# CONFIG_HID_SUPPORT is not set
|
# CONFIG_HID_SUPPORT is not set
|
||||||
# CONFIG_USB_SUPPORT is not set
|
# CONFIG_USB_SUPPORT is not set
|
||||||
# CONFIG_MMC is not set
|
CONFIG_MMC=y
|
||||||
|
# CONFIG_MMC_DEBUG is not set
|
||||||
|
# CONFIG_MMC_UNSAFE_RESUME is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# MMC/SD/SDIO Card Drivers
|
||||||
|
#
|
||||||
|
CONFIG_MMC_BLOCK=y
|
||||||
|
CONFIG_MMC_BLOCK_BOUNCE=y
|
||||||
|
# CONFIG_SDIO_UART is not set
|
||||||
|
# CONFIG_MMC_TEST is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# MMC/SD/SDIO Host Controller Drivers
|
||||||
|
#
|
||||||
|
# CONFIG_MMC_SDHCI is not set
|
||||||
|
# CONFIG_MMC_OMAP is not set
|
||||||
|
CONFIG_MMC_OMAP_HS=y
|
||||||
# CONFIG_MEMSTICK is not set
|
# CONFIG_MEMSTICK is not set
|
||||||
# CONFIG_NEW_LEDS is not set
|
# CONFIG_NEW_LEDS is not set
|
||||||
# CONFIG_ACCESSIBILITY is not set
|
# CONFIG_ACCESSIBILITY is not set
|
||||||
CONFIG_RTC_LIB=y
|
CONFIG_RTC_LIB=y
|
||||||
# CONFIG_RTC_CLASS is not set
|
CONFIG_RTC_CLASS=y
|
||||||
|
CONFIG_RTC_HCTOSYS=y
|
||||||
|
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
|
||||||
|
# CONFIG_RTC_DEBUG is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# RTC interfaces
|
||||||
|
#
|
||||||
|
CONFIG_RTC_INTF_SYSFS=y
|
||||||
|
CONFIG_RTC_INTF_PROC=y
|
||||||
|
CONFIG_RTC_INTF_DEV=y
|
||||||
|
# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
|
||||||
|
# CONFIG_RTC_DRV_TEST is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# I2C RTC drivers
|
||||||
|
#
|
||||||
|
# CONFIG_RTC_DRV_DS1307 is not set
|
||||||
|
# CONFIG_RTC_DRV_DS1374 is not set
|
||||||
|
# CONFIG_RTC_DRV_DS1672 is not set
|
||||||
|
# CONFIG_RTC_DRV_MAX6900 is not set
|
||||||
|
# CONFIG_RTC_DRV_RS5C372 is not set
|
||||||
|
# CONFIG_RTC_DRV_ISL1208 is not set
|
||||||
|
# CONFIG_RTC_DRV_X1205 is not set
|
||||||
|
# CONFIG_RTC_DRV_PCF8563 is not set
|
||||||
|
# CONFIG_RTC_DRV_PCF8583 is not set
|
||||||
|
# CONFIG_RTC_DRV_M41T80 is not set
|
||||||
|
# CONFIG_RTC_DRV_BQ32K is not set
|
||||||
|
CONFIG_RTC_DRV_TWL4030=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
|
||||||
|
#
|
||||||
|
# CONFIG_RTC_DRV_M41T94 is not set
|
||||||
|
# CONFIG_RTC_DRV_DS1305 is not set
|
||||||
|
# CONFIG_RTC_DRV_DS1390 is not set
|
||||||
|
# CONFIG_RTC_DRV_MAX6902 is not set
|
||||||
|
# CONFIG_RTC_DRV_R9701 is not set
|
||||||
|
# CONFIG_RTC_DRV_RS5C348 is not set
|
||||||
|
# CONFIG_RTC_DRV_DS3234 is not set
|
||||||
|
# CONFIG_RTC_DRV_PCF2123 is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Platform RTC drivers
|
||||||
|
#
|
||||||
|
# CONFIG_RTC_DRV_CMOS is not set
|
||||||
|
# CONFIG_RTC_DRV_DS1286 is not set
|
||||||
|
# CONFIG_RTC_DRV_DS1511 is not set
|
||||||
|
# CONFIG_RTC_DRV_DS1553 is not set
|
||||||
|
# CONFIG_RTC_DRV_DS1742 is not set
|
||||||
|
# CONFIG_RTC_DRV_STK17TA8 is not set
|
||||||
|
# CONFIG_RTC_DRV_M48T86 is not set
|
||||||
|
# CONFIG_RTC_DRV_M48T35 is not set
|
||||||
|
# CONFIG_RTC_DRV_M48T59 is not set
|
||||||
|
# CONFIG_RTC_DRV_MSM6242 is not set
|
||||||
|
# CONFIG_RTC_DRV_BQ4802 is not set
|
||||||
|
# CONFIG_RTC_DRV_RP5C01 is not set
|
||||||
|
# CONFIG_RTC_DRV_V3020 is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# on-CPU RTC drivers
|
||||||
|
#
|
||||||
# CONFIG_DMADEVICES is not set
|
# CONFIG_DMADEVICES is not set
|
||||||
# CONFIG_AUXDISPLAY is not set
|
# CONFIG_AUXDISPLAY is not set
|
||||||
# CONFIG_UIO is not set
|
# CONFIG_UIO is not set
|
||||||
@@ -564,9 +920,10 @@ CONFIG_EXT3_FS=y
|
|||||||
CONFIG_JBD=y
|
CONFIG_JBD=y
|
||||||
# CONFIG_REISERFS_FS is not set
|
# CONFIG_REISERFS_FS is not set
|
||||||
# CONFIG_JFS_FS is not set
|
# CONFIG_JFS_FS is not set
|
||||||
# CONFIG_FS_POSIX_ACL is not set
|
CONFIG_FS_POSIX_ACL=y
|
||||||
# CONFIG_XFS_FS is not set
|
# CONFIG_XFS_FS is not set
|
||||||
# CONFIG_GFS2_FS is not set
|
# CONFIG_GFS2_FS is not set
|
||||||
|
# CONFIG_OCFS2_FS is not set
|
||||||
# CONFIG_BTRFS_FS is not set
|
# CONFIG_BTRFS_FS is not set
|
||||||
# CONFIG_NILFS2_FS is not set
|
# CONFIG_NILFS2_FS is not set
|
||||||
CONFIG_FILE_LOCKING=y
|
CONFIG_FILE_LOCKING=y
|
||||||
@@ -575,7 +932,9 @@ CONFIG_DNOTIFY=y
|
|||||||
CONFIG_INOTIFY=y
|
CONFIG_INOTIFY=y
|
||||||
CONFIG_INOTIFY_USER=y
|
CONFIG_INOTIFY_USER=y
|
||||||
CONFIG_QUOTA=y
|
CONFIG_QUOTA=y
|
||||||
|
# CONFIG_QUOTA_NETLINK_INTERFACE is not set
|
||||||
CONFIG_PRINT_QUOTA_WARNING=y
|
CONFIG_PRINT_QUOTA_WARNING=y
|
||||||
|
# CONFIG_QUOTA_DEBUG is not set
|
||||||
CONFIG_QUOTA_TREE=y
|
CONFIG_QUOTA_TREE=y
|
||||||
# CONFIG_QFMT_V1 is not set
|
# CONFIG_QFMT_V1 is not set
|
||||||
CONFIG_QFMT_V2=y
|
CONFIG_QFMT_V2=y
|
||||||
@@ -624,6 +983,7 @@ CONFIG_MISC_FILESYSTEMS=y
|
|||||||
# CONFIG_BEFS_FS is not set
|
# CONFIG_BEFS_FS is not set
|
||||||
# CONFIG_BFS_FS is not set
|
# CONFIG_BFS_FS is not set
|
||||||
# CONFIG_EFS_FS is not set
|
# CONFIG_EFS_FS is not set
|
||||||
|
# CONFIG_LOGFS is not set
|
||||||
# CONFIG_CRAMFS is not set
|
# CONFIG_CRAMFS is not set
|
||||||
# CONFIG_SQUASHFS is not set
|
# CONFIG_SQUASHFS is not set
|
||||||
# CONFIG_VXFS_FS is not set
|
# CONFIG_VXFS_FS is not set
|
||||||
@@ -634,6 +994,28 @@ CONFIG_MISC_FILESYSTEMS=y
|
|||||||
# CONFIG_ROMFS_FS is not set
|
# CONFIG_ROMFS_FS is not set
|
||||||
# CONFIG_SYSV_FS is not set
|
# CONFIG_SYSV_FS is not set
|
||||||
# CONFIG_UFS_FS is not set
|
# CONFIG_UFS_FS is not set
|
||||||
|
CONFIG_NETWORK_FILESYSTEMS=y
|
||||||
|
CONFIG_NFS_FS=y
|
||||||
|
CONFIG_NFS_V3=y
|
||||||
|
CONFIG_NFS_V3_ACL=y
|
||||||
|
CONFIG_NFS_V4=y
|
||||||
|
# CONFIG_NFS_V4_1 is not set
|
||||||
|
CONFIG_ROOT_NFS=y
|
||||||
|
# CONFIG_NFSD is not set
|
||||||
|
CONFIG_LOCKD=y
|
||||||
|
CONFIG_LOCKD_V4=y
|
||||||
|
CONFIG_NFS_ACL_SUPPORT=y
|
||||||
|
CONFIG_NFS_COMMON=y
|
||||||
|
CONFIG_SUNRPC=y
|
||||||
|
CONFIG_SUNRPC_GSS=y
|
||||||
|
CONFIG_RPCSEC_GSS_KRB5=y
|
||||||
|
# CONFIG_RPCSEC_GSS_SPKM3 is not set
|
||||||
|
# CONFIG_SMB_FS is not set
|
||||||
|
# CONFIG_CEPH_FS is not set
|
||||||
|
# CONFIG_CIFS is not set
|
||||||
|
# CONFIG_NCP_FS is not set
|
||||||
|
# CONFIG_CODA_FS is not set
|
||||||
|
# CONFIG_AFS_FS is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Partition Types
|
# Partition Types
|
||||||
@@ -696,6 +1078,7 @@ CONFIG_NLS_ISO8859_1=y
|
|||||||
# CONFIG_NLS_KOI8_R is not set
|
# CONFIG_NLS_KOI8_R is not set
|
||||||
# CONFIG_NLS_KOI8_U is not set
|
# CONFIG_NLS_KOI8_U is not set
|
||||||
# CONFIG_NLS_UTF8 is not set
|
# CONFIG_NLS_UTF8 is not set
|
||||||
|
# CONFIG_DLM is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
@@ -750,13 +1133,11 @@ CONFIG_FRAME_POINTER=y
|
|||||||
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
|
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
|
||||||
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
|
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
|
||||||
# CONFIG_FAULT_INJECTION is not set
|
# CONFIG_FAULT_INJECTION is not set
|
||||||
|
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
|
||||||
# CONFIG_PAGE_POISONING is not set
|
# CONFIG_PAGE_POISONING is not set
|
||||||
CONFIG_HAVE_FUNCTION_TRACER=y
|
CONFIG_HAVE_FUNCTION_TRACER=y
|
||||||
CONFIG_TRACING_SUPPORT=y
|
CONFIG_TRACING_SUPPORT=y
|
||||||
# CONFIG_FTRACE is not set
|
# CONFIG_FTRACE is not set
|
||||||
# CONFIG_BRANCH_PROFILE_NONE is not set
|
|
||||||
# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
|
|
||||||
# CONFIG_PROFILE_ALL_BRANCHES is not set
|
|
||||||
# CONFIG_SAMPLES is not set
|
# CONFIG_SAMPLES is not set
|
||||||
CONFIG_HAVE_ARCH_KGDB=y
|
CONFIG_HAVE_ARCH_KGDB=y
|
||||||
# CONFIG_KGDB is not set
|
# CONFIG_KGDB is not set
|
||||||
@@ -765,6 +1146,7 @@ CONFIG_HAVE_ARCH_KGDB=y
|
|||||||
# CONFIG_DEBUG_ERRORS is not set
|
# CONFIG_DEBUG_ERRORS is not set
|
||||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||||
# CONFIG_DEBUG_LL is not set
|
# CONFIG_DEBUG_LL is not set
|
||||||
|
# CONFIG_OC_ETM is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Security options
|
# Security options
|
||||||
@@ -772,7 +1154,11 @@ CONFIG_HAVE_ARCH_KGDB=y
|
|||||||
# CONFIG_KEYS is not set
|
# CONFIG_KEYS is not set
|
||||||
# CONFIG_SECURITY is not set
|
# CONFIG_SECURITY is not set
|
||||||
# CONFIG_SECURITYFS is not set
|
# CONFIG_SECURITYFS is not set
|
||||||
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
|
# CONFIG_DEFAULT_SECURITY_SELINUX is not set
|
||||||
|
# CONFIG_DEFAULT_SECURITY_SMACK is not set
|
||||||
|
# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
|
||||||
|
CONFIG_DEFAULT_SECURITY_DAC=y
|
||||||
|
CONFIG_DEFAULT_SECURITY=""
|
||||||
CONFIG_CRYPTO=y
|
CONFIG_CRYPTO=y
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -791,6 +1177,7 @@ CONFIG_CRYPTO_MANAGER=y
|
|||||||
CONFIG_CRYPTO_MANAGER2=y
|
CONFIG_CRYPTO_MANAGER2=y
|
||||||
# CONFIG_CRYPTO_GF128MUL is not set
|
# CONFIG_CRYPTO_GF128MUL is not set
|
||||||
# CONFIG_CRYPTO_NULL is not set
|
# CONFIG_CRYPTO_NULL is not set
|
||||||
|
# CONFIG_CRYPTO_PCRYPT is not set
|
||||||
CONFIG_CRYPTO_WORKQUEUE=y
|
CONFIG_CRYPTO_WORKQUEUE=y
|
||||||
# CONFIG_CRYPTO_CRYPTD is not set
|
# CONFIG_CRYPTO_CRYPTD is not set
|
||||||
# CONFIG_CRYPTO_AUTHENC is not set
|
# CONFIG_CRYPTO_AUTHENC is not set
|
||||||
@@ -889,3 +1276,4 @@ CONFIG_DECOMPRESS_GZIP=y
|
|||||||
CONFIG_HAS_IOMEM=y
|
CONFIG_HAS_IOMEM=y
|
||||||
CONFIG_HAS_IOPORT=y
|
CONFIG_HAS_IOPORT=y
|
||||||
CONFIG_HAS_DMA=y
|
CONFIG_HAS_DMA=y
|
||||||
|
CONFIG_NLATTR=y
|
||||||
|
|||||||
@@ -784,6 +784,7 @@ CONFIG_INPUT_KEYBOARD=y
|
|||||||
# CONFIG_KEYBOARD_NEWTON is not set
|
# CONFIG_KEYBOARD_NEWTON is not set
|
||||||
# CONFIG_KEYBOARD_STOWAWAY is not set
|
# CONFIG_KEYBOARD_STOWAWAY is not set
|
||||||
CONFIG_KEYBOARD_GPIO=m
|
CONFIG_KEYBOARD_GPIO=m
|
||||||
|
CONFIG_KEYBOARD_TWL4030=y
|
||||||
# CONFIG_INPUT_MOUSE is not set
|
# CONFIG_INPUT_MOUSE is not set
|
||||||
# CONFIG_INPUT_JOYSTICK is not set
|
# CONFIG_INPUT_JOYSTICK is not set
|
||||||
# CONFIG_INPUT_TABLET is not set
|
# CONFIG_INPUT_TABLET is not set
|
||||||
@@ -809,6 +810,7 @@ CONFIG_INPUT_MISC=y
|
|||||||
# CONFIG_INPUT_POWERMATE is not set
|
# CONFIG_INPUT_POWERMATE is not set
|
||||||
# CONFIG_INPUT_YEALINK is not set
|
# CONFIG_INPUT_YEALINK is not set
|
||||||
# CONFIG_INPUT_CM109 is not set
|
# CONFIG_INPUT_CM109 is not set
|
||||||
|
CONFIG_INPUT_TWL4030_PWRBUTTON=y
|
||||||
CONFIG_INPUT_UINPUT=m
|
CONFIG_INPUT_UINPUT=m
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -1110,7 +1112,40 @@ CONFIG_RADIO_ADAPTERS=y
|
|||||||
#
|
#
|
||||||
# CONFIG_VGASTATE is not set
|
# CONFIG_VGASTATE is not set
|
||||||
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
|
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
|
||||||
# CONFIG_FB is not set
|
CONFIG_FB=y
|
||||||
|
CONFIG_FB_CFB_FILLRECT=y
|
||||||
|
CONFIG_FB_CFB_COPYAREA=y
|
||||||
|
CONFIG_FB_CFB_IMAGEBLIT=y
|
||||||
|
|
||||||
|
# Frame buffer hardware drivers
|
||||||
|
#
|
||||||
|
CONFIG_OMAP2_VRAM=y
|
||||||
|
CONFIG_OMAP2_VRFB=y
|
||||||
|
CONFIG_OMAP2_DSS=y
|
||||||
|
CONFIG_OMAP2_VRAM_SIZE=0
|
||||||
|
# CONFIG_OMAP2_DSS_DEBUG_SUPPORT is not set
|
||||||
|
# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set
|
||||||
|
# CONFIG_OMAP2_DSS_DPI is not set
|
||||||
|
# CONFIG_OMAP2_DSS_RFBI is not set
|
||||||
|
# CONFIG_OMAP2_DSS_VENC is not set
|
||||||
|
CONFIG_OMAP2_DSS_SDI=y
|
||||||
|
# CONFIG_OMAP2_DSS_DSI is not set
|
||||||
|
# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set
|
||||||
|
CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0
|
||||||
|
CONFIG_FB_OMAP2=y
|
||||||
|
CONFIG_FB_OMAP2_DEBUG_SUPPORT=y
|
||||||
|
CONFIG_FB_OMAP2_NUM_FBS=3
|
||||||
|
|
||||||
|
#
|
||||||
|
# OMAP2/3 Display Device Drivers
|
||||||
|
#
|
||||||
|
# CONFIG_PANEL_GENERIC is not set
|
||||||
|
# CONFIG_PANEL_SHARP_LS037V7DW01 is not set
|
||||||
|
# CONFIG_PANEL_SHARP_LQ043T1DG01 is not set
|
||||||
|
# CONFIG_PANEL_TOPPOLY_TDO35S is not set
|
||||||
|
# CONFIG_PANEL_TPO_TD043MTEA1 is not set
|
||||||
|
CONFIG_PANEL_ACX565AKM=y
|
||||||
|
|
||||||
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
|
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -1127,6 +1162,8 @@ CONFIG_DISPLAY_SUPPORT=y
|
|||||||
#
|
#
|
||||||
# CONFIG_VGA_CONSOLE is not set
|
# CONFIG_VGA_CONSOLE is not set
|
||||||
CONFIG_DUMMY_CONSOLE=y
|
CONFIG_DUMMY_CONSOLE=y
|
||||||
|
CONFIG_FRAMEBUFFER_CONSOLE=y
|
||||||
|
CONFIG_LOGO=y
|
||||||
CONFIG_SOUND=y
|
CONFIG_SOUND=y
|
||||||
# CONFIG_SOUND_OSS_CORE is not set
|
# CONFIG_SOUND_OSS_CORE is not set
|
||||||
CONFIG_SND=y
|
CONFIG_SND=y
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,11 +1,15 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.33-rc4
|
# Linux kernel version: 2.6.34
|
||||||
# Tue Jan 19 13:12:40 2010
|
# Fri May 28 19:05:39 2010
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
|
CONFIG_HAVE_PWM=y
|
||||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||||
CONFIG_GENERIC_GPIO=y
|
CONFIG_GENERIC_GPIO=y
|
||||||
|
CONFIG_GENERIC_TIME=y
|
||||||
|
CONFIG_ARCH_USES_GETTIMEOFFSET=y
|
||||||
|
CONFIG_HAVE_PROC_CPU=y
|
||||||
CONFIG_NO_IOPORT=y
|
CONFIG_NO_IOPORT=y
|
||||||
CONFIG_GENERIC_HARDIRQS=y
|
CONFIG_GENERIC_HARDIRQS=y
|
||||||
CONFIG_STACKTRACE_SUPPORT=y
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
@@ -18,6 +22,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
|||||||
CONFIG_ARCH_HAS_CPUFREQ=y
|
CONFIG_ARCH_HAS_CPUFREQ=y
|
||||||
CONFIG_GENERIC_HWEIGHT=y
|
CONFIG_GENERIC_HWEIGHT=y
|
||||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||||
|
CONFIG_NEED_DMA_MAP_STATE=y
|
||||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||||
CONFIG_VECTORS_BASE=0xffff0000
|
CONFIG_VECTORS_BASE=0xffff0000
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
@@ -32,6 +37,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
|
|||||||
CONFIG_LOCALVERSION=""
|
CONFIG_LOCALVERSION=""
|
||||||
CONFIG_LOCALVERSION_AUTO=y
|
CONFIG_LOCALVERSION_AUTO=y
|
||||||
CONFIG_HAVE_KERNEL_GZIP=y
|
CONFIG_HAVE_KERNEL_GZIP=y
|
||||||
|
CONFIG_HAVE_KERNEL_LZMA=y
|
||||||
CONFIG_HAVE_KERNEL_LZO=y
|
CONFIG_HAVE_KERNEL_LZO=y
|
||||||
CONFIG_KERNEL_GZIP=y
|
CONFIG_KERNEL_GZIP=y
|
||||||
# CONFIG_KERNEL_BZIP2 is not set
|
# CONFIG_KERNEL_BZIP2 is not set
|
||||||
@@ -53,7 +59,6 @@ CONFIG_RCU_FANOUT=32
|
|||||||
# CONFIG_TREE_RCU_TRACE is not set
|
# CONFIG_TREE_RCU_TRACE is not set
|
||||||
# CONFIG_IKCONFIG is not set
|
# CONFIG_IKCONFIG is not set
|
||||||
CONFIG_LOG_BUF_SHIFT=17
|
CONFIG_LOG_BUF_SHIFT=17
|
||||||
# CONFIG_GROUP_SCHED is not set
|
|
||||||
# CONFIG_CGROUPS is not set
|
# CONFIG_CGROUPS is not set
|
||||||
CONFIG_SYSFS_DEPRECATED=y
|
CONFIG_SYSFS_DEPRECATED=y
|
||||||
CONFIG_SYSFS_DEPRECATED_V2=y
|
CONFIG_SYSFS_DEPRECATED_V2=y
|
||||||
@@ -89,10 +94,14 @@ CONFIG_TIMERFD=y
|
|||||||
CONFIG_EVENTFD=y
|
CONFIG_EVENTFD=y
|
||||||
CONFIG_SHMEM=y
|
CONFIG_SHMEM=y
|
||||||
CONFIG_AIO=y
|
CONFIG_AIO=y
|
||||||
|
CONFIG_HAVE_PERF_EVENTS=y
|
||||||
|
CONFIG_PERF_USE_VMALLOC=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Kernel Performance Events And Counters
|
# Kernel Performance Events And Counters
|
||||||
#
|
#
|
||||||
|
# CONFIG_PERF_EVENTS is not set
|
||||||
|
# CONFIG_PERF_COUNTERS is not set
|
||||||
CONFIG_VM_EVENT_COUNTERS=y
|
CONFIG_VM_EVENT_COUNTERS=y
|
||||||
CONFIG_SLUB_DEBUG=y
|
CONFIG_SLUB_DEBUG=y
|
||||||
CONFIG_COMPAT_BRK=y
|
CONFIG_COMPAT_BRK=y
|
||||||
@@ -164,7 +173,7 @@ CONFIG_DEFAULT_IOSCHED="cfq"
|
|||||||
# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
|
# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
|
||||||
# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
|
# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
|
||||||
# CONFIG_MUTEX_SPIN_ON_OWNER is not set
|
# CONFIG_MUTEX_SPIN_ON_OWNER is not set
|
||||||
# CONFIG_FREEZER is not set
|
CONFIG_FREEZER=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# System Type
|
# System Type
|
||||||
@@ -174,8 +183,11 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_INTEGRATOR is not set
|
# CONFIG_ARCH_INTEGRATOR is not set
|
||||||
# CONFIG_ARCH_REALVIEW is not set
|
# CONFIG_ARCH_REALVIEW is not set
|
||||||
# CONFIG_ARCH_VERSATILE is not set
|
# CONFIG_ARCH_VERSATILE is not set
|
||||||
|
# CONFIG_ARCH_VEXPRESS is not set
|
||||||
# CONFIG_ARCH_AT91 is not set
|
# CONFIG_ARCH_AT91 is not set
|
||||||
|
# CONFIG_ARCH_BCMRING is not set
|
||||||
# CONFIG_ARCH_CLPS711X is not set
|
# CONFIG_ARCH_CLPS711X is not set
|
||||||
|
# CONFIG_ARCH_CNS3XXX is not set
|
||||||
# CONFIG_ARCH_GEMINI is not set
|
# CONFIG_ARCH_GEMINI is not set
|
||||||
# CONFIG_ARCH_EBSA110 is not set
|
# CONFIG_ARCH_EBSA110 is not set
|
||||||
# CONFIG_ARCH_EP93XX is not set
|
# CONFIG_ARCH_EP93XX is not set
|
||||||
@@ -184,7 +196,6 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_STMP3XXX is not set
|
# CONFIG_ARCH_STMP3XXX is not set
|
||||||
# CONFIG_ARCH_NETX is not set
|
# CONFIG_ARCH_NETX is not set
|
||||||
# CONFIG_ARCH_H720X is not set
|
# CONFIG_ARCH_H720X is not set
|
||||||
# CONFIG_ARCH_NOMADIK is not set
|
|
||||||
# CONFIG_ARCH_IOP13XX is not set
|
# CONFIG_ARCH_IOP13XX is not set
|
||||||
# CONFIG_ARCH_IOP32X is not set
|
# CONFIG_ARCH_IOP32X is not set
|
||||||
# CONFIG_ARCH_IOP33X is not set
|
# CONFIG_ARCH_IOP33X is not set
|
||||||
@@ -201,70 +212,89 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_KS8695 is not set
|
# CONFIG_ARCH_KS8695 is not set
|
||||||
# CONFIG_ARCH_NS9XXX is not set
|
# CONFIG_ARCH_NS9XXX is not set
|
||||||
# CONFIG_ARCH_W90X900 is not set
|
# CONFIG_ARCH_W90X900 is not set
|
||||||
|
# CONFIG_ARCH_NUC93X is not set
|
||||||
# CONFIG_ARCH_PNX4008 is not set
|
# CONFIG_ARCH_PNX4008 is not set
|
||||||
# CONFIG_ARCH_PXA is not set
|
# CONFIG_ARCH_PXA is not set
|
||||||
# CONFIG_ARCH_MSM is not set
|
# CONFIG_ARCH_MSM is not set
|
||||||
|
# CONFIG_ARCH_SHMOBILE is not set
|
||||||
# CONFIG_ARCH_RPC is not set
|
# CONFIG_ARCH_RPC is not set
|
||||||
# CONFIG_ARCH_SA1100 is not set
|
# CONFIG_ARCH_SA1100 is not set
|
||||||
# CONFIG_ARCH_S3C2410 is not set
|
# CONFIG_ARCH_S3C2410 is not set
|
||||||
CONFIG_ARCH_S3C64XX=y
|
CONFIG_ARCH_S3C64XX=y
|
||||||
# CONFIG_ARCH_S5P6440 is not set
|
# CONFIG_ARCH_S5P6440 is not set
|
||||||
# CONFIG_ARCH_S5PC1XX is not set
|
# CONFIG_ARCH_S5P6442 is not set
|
||||||
|
# CONFIG_ARCH_S5PC100 is not set
|
||||||
|
# CONFIG_ARCH_S5PV210 is not set
|
||||||
# CONFIG_ARCH_SHARK is not set
|
# CONFIG_ARCH_SHARK is not set
|
||||||
# CONFIG_ARCH_LH7A40X is not set
|
# CONFIG_ARCH_LH7A40X is not set
|
||||||
# CONFIG_ARCH_U300 is not set
|
# CONFIG_ARCH_U300 is not set
|
||||||
|
# CONFIG_ARCH_U8500 is not set
|
||||||
|
# CONFIG_ARCH_NOMADIK is not set
|
||||||
# CONFIG_ARCH_DAVINCI is not set
|
# CONFIG_ARCH_DAVINCI is not set
|
||||||
# CONFIG_ARCH_OMAP is not set
|
# CONFIG_ARCH_OMAP is not set
|
||||||
# CONFIG_ARCH_BCMRING is not set
|
# CONFIG_PLAT_SPEAR is not set
|
||||||
# CONFIG_ARCH_U8500 is not set
|
|
||||||
CONFIG_PLAT_SAMSUNG=y
|
CONFIG_PLAT_SAMSUNG=y
|
||||||
CONFIG_SAMSUNG_CLKSRC=y
|
|
||||||
CONFIG_SAMSUNG_IRQ_VIC_TIMER=y
|
|
||||||
CONFIG_SAMSUNG_IRQ_UART=y
|
|
||||||
CONFIG_S3C_GPIO_CFG_S3C24XX=y
|
|
||||||
CONFIG_S3C_GPIO_CFG_S3C64XX=y
|
|
||||||
CONFIG_S3C_GPIO_PULL_UPDOWN=y
|
|
||||||
CONFIG_SAMSUNG_GPIO_EXTRA=0
|
|
||||||
# CONFIG_S3C_ADC is not set
|
|
||||||
CONFIG_S3C_DEV_HSMMC=y
|
|
||||||
CONFIG_S3C_DEV_HSMMC1=y
|
|
||||||
CONFIG_S3C_DEV_I2C1=y
|
|
||||||
CONFIG_S3C_DEV_FB=y
|
|
||||||
CONFIG_S3C_DEV_USB_HOST=y
|
|
||||||
CONFIG_S3C_DEV_USB_HSOTG=y
|
|
||||||
CONFIG_S3C_DEV_NAND=y
|
|
||||||
CONFIG_PLAT_S3C64XX=y
|
|
||||||
CONFIG_CPU_S3C6400_INIT=y
|
|
||||||
CONFIG_CPU_S3C6400_CLOCK=y
|
|
||||||
# CONFIG_S3C64XX_DMA is not set
|
|
||||||
CONFIG_S3C64XX_SETUP_I2C0=y
|
|
||||||
CONFIG_S3C64XX_SETUP_I2C1=y
|
|
||||||
CONFIG_S3C64XX_SETUP_FB_24BPP=y
|
|
||||||
CONFIG_S3C64XX_SETUP_SDHCI_GPIO=y
|
|
||||||
CONFIG_PLAT_S3C=y
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Boot options
|
# Boot options
|
||||||
#
|
#
|
||||||
CONFIG_S3C_BOOT_ERROR_RESET=y
|
CONFIG_S3C_BOOT_ERROR_RESET=y
|
||||||
CONFIG_S3C_BOOT_UART_FORCE_FIFO=y
|
CONFIG_S3C_BOOT_UART_FORCE_FIFO=y
|
||||||
|
CONFIG_S3C_LOWLEVEL_UART_PORT=0
|
||||||
|
CONFIG_SAMSUNG_CLKSRC=y
|
||||||
|
CONFIG_SAMSUNG_IRQ_VIC_TIMER=y
|
||||||
|
CONFIG_SAMSUNG_IRQ_UART=y
|
||||||
|
CONFIG_SAMSUNG_GPIOLIB_4BIT=y
|
||||||
|
CONFIG_S3C_GPIO_CFG_S3C24XX=y
|
||||||
|
CONFIG_S3C_GPIO_CFG_S3C64XX=y
|
||||||
|
CONFIG_S3C_GPIO_PULL_UPDOWN=y
|
||||||
|
CONFIG_SAMSUNG_GPIO_EXTRA=0
|
||||||
|
CONFIG_S3C_GPIO_SPACE=0
|
||||||
|
CONFIG_S3C_GPIO_TRACK=y
|
||||||
|
# CONFIG_S3C_ADC is not set
|
||||||
|
CONFIG_S3C_DEV_HSMMC=y
|
||||||
|
CONFIG_S3C_DEV_HSMMC1=y
|
||||||
|
CONFIG_S3C_DEV_HSMMC2=y
|
||||||
|
CONFIG_S3C_DEV_HWMON=y
|
||||||
|
CONFIG_S3C_DEV_I2C1=y
|
||||||
|
CONFIG_S3C_DEV_FB=y
|
||||||
|
CONFIG_S3C_DEV_USB_HOST=y
|
||||||
|
CONFIG_S3C_DEV_USB_HSOTG=y
|
||||||
|
CONFIG_S3C_DEV_WDT=y
|
||||||
|
CONFIG_S3C_DEV_NAND=y
|
||||||
|
CONFIG_S3C_DEV_RTC=y
|
||||||
|
CONFIG_SAMSUNG_DEV_ADC=y
|
||||||
|
CONFIG_SAMSUNG_DEV_TS=y
|
||||||
|
CONFIG_S3C_DMA=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Power management
|
# Power management
|
||||||
#
|
#
|
||||||
CONFIG_S3C_LOWLEVEL_UART_PORT=0
|
# CONFIG_SAMSUNG_PM_DEBUG is not set
|
||||||
CONFIG_S3C_GPIO_SPACE=0
|
# CONFIG_S3C_PM_DEBUG_LED_SMDK is not set
|
||||||
CONFIG_S3C_GPIO_TRACK=y
|
# CONFIG_SAMSUNG_PM_CHECK is not set
|
||||||
# CONFIG_MACH_SMDK6400 is not set
|
CONFIG_SAMSUNG_WAKEMASK=y
|
||||||
|
CONFIG_PLAT_S3C64XX=y
|
||||||
|
CONFIG_CPU_S3C6400=y
|
||||||
CONFIG_CPU_S3C6410=y
|
CONFIG_CPU_S3C6410=y
|
||||||
CONFIG_S3C6410_SETUP_SDHCI=y
|
CONFIG_S3C64XX_DMA=y
|
||||||
# CONFIG_MACH_ANW6410 is not set
|
CONFIG_S3C64XX_SETUP_SDHCI=y
|
||||||
|
CONFIG_S3C64XX_SETUP_I2C0=y
|
||||||
|
CONFIG_S3C64XX_SETUP_I2C1=y
|
||||||
|
CONFIG_S3C64XX_SETUP_FB_24BPP=y
|
||||||
|
CONFIG_S3C64XX_SETUP_SDHCI_GPIO=y
|
||||||
|
CONFIG_MACH_SMDK6400=y
|
||||||
|
CONFIG_MACH_ANW6410=y
|
||||||
CONFIG_MACH_SMDK6410=y
|
CONFIG_MACH_SMDK6410=y
|
||||||
CONFIG_SMDK6410_SD_CH0=y
|
CONFIG_SMDK6410_SD_CH0=y
|
||||||
# CONFIG_SMDK6410_SD_CH1 is not set
|
# CONFIG_SMDK6410_SD_CH1 is not set
|
||||||
# CONFIG_SMDK6410_WM1190_EV1 is not set
|
# CONFIG_SMDK6410_WM1190_EV1 is not set
|
||||||
# CONFIG_MACH_NCP is not set
|
# CONFIG_SMDK6410_WM1192_EV1 is not set
|
||||||
# CONFIG_MACH_HMT is not set
|
CONFIG_MACH_NCP=y
|
||||||
|
CONFIG_MACH_HMT=y
|
||||||
|
CONFIG_MACH_SMARTQ=y
|
||||||
|
CONFIG_MACH_SMARTQ5=y
|
||||||
|
CONFIG_MACH_SMARTQ7=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Processor Type
|
# Processor Type
|
||||||
@@ -290,6 +320,8 @@ CONFIG_ARM_THUMB=y
|
|||||||
# CONFIG_CPU_DCACHE_DISABLE is not set
|
# CONFIG_CPU_DCACHE_DISABLE is not set
|
||||||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||||
CONFIG_ARM_L1_CACHE_SHIFT=5
|
CONFIG_ARM_L1_CACHE_SHIFT=5
|
||||||
|
CONFIG_ARM_DMA_MEM_BUFFERABLE=y
|
||||||
|
CONFIG_CPU_HAS_PMU=y
|
||||||
# CONFIG_ARM_ERRATA_411920 is not set
|
# CONFIG_ARM_ERRATA_411920 is not set
|
||||||
CONFIG_ARM_VIC=y
|
CONFIG_ARM_VIC=y
|
||||||
CONFIG_ARM_VIC_NR=2
|
CONFIG_ARM_VIC_NR=2
|
||||||
@@ -339,6 +371,7 @@ CONFIG_ALIGNMENT_TRAP=y
|
|||||||
CONFIG_ZBOOT_ROM_TEXT=0
|
CONFIG_ZBOOT_ROM_TEXT=0
|
||||||
CONFIG_ZBOOT_ROM_BSS=0
|
CONFIG_ZBOOT_ROM_BSS=0
|
||||||
CONFIG_CMDLINE="console=ttySAC0,115200 root=/dev/ram init=/linuxrc initrd=0x51000000,6M ramdisk_size=6144"
|
CONFIG_CMDLINE="console=ttySAC0,115200 root=/dev/ram init=/linuxrc initrd=0x51000000,6M ramdisk_size=6144"
|
||||||
|
# CONFIG_CMDLINE_FORCE is not set
|
||||||
# CONFIG_XIP_KERNEL is not set
|
# CONFIG_XIP_KERNEL is not set
|
||||||
# CONFIG_KEXEC is not set
|
# CONFIG_KEXEC is not set
|
||||||
|
|
||||||
@@ -371,7 +404,14 @@ CONFIG_HAVE_AOUT=y
|
|||||||
#
|
#
|
||||||
# Power management options
|
# Power management options
|
||||||
#
|
#
|
||||||
# CONFIG_PM is not set
|
CONFIG_PM=y
|
||||||
|
# CONFIG_PM_DEBUG is not set
|
||||||
|
CONFIG_PM_SLEEP=y
|
||||||
|
CONFIG_SUSPEND=y
|
||||||
|
CONFIG_SUSPEND_FREEZER=y
|
||||||
|
# CONFIG_APM_EMULATION is not set
|
||||||
|
# CONFIG_PM_RUNTIME is not set
|
||||||
|
CONFIG_PM_OPS=y
|
||||||
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
||||||
# CONFIG_NET is not set
|
# CONFIG_NET is not set
|
||||||
|
|
||||||
@@ -392,7 +432,96 @@ CONFIG_EXTRA_FIRMWARE=""
|
|||||||
# CONFIG_DEBUG_DRIVER is not set
|
# CONFIG_DEBUG_DRIVER is not set
|
||||||
# CONFIG_DEBUG_DEVRES is not set
|
# CONFIG_DEBUG_DEVRES is not set
|
||||||
# CONFIG_SYS_HYPERVISOR is not set
|
# CONFIG_SYS_HYPERVISOR is not set
|
||||||
# CONFIG_MTD is not set
|
CONFIG_MTD=y
|
||||||
|
# CONFIG_MTD_DEBUG is not set
|
||||||
|
# CONFIG_MTD_TESTS is not set
|
||||||
|
# CONFIG_MTD_CONCAT is not set
|
||||||
|
# CONFIG_MTD_PARTITIONS is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# User Modules And Translation Layers
|
||||||
|
#
|
||||||
|
# CONFIG_MTD_CHAR is not set
|
||||||
|
# CONFIG_MTD_BLKDEVS is not set
|
||||||
|
# CONFIG_MTD_BLOCK is not set
|
||||||
|
# CONFIG_MTD_BLOCK_RO is not set
|
||||||
|
# CONFIG_FTL is not set
|
||||||
|
# CONFIG_NFTL is not set
|
||||||
|
# CONFIG_INFTL is not set
|
||||||
|
# CONFIG_RFD_FTL is not set
|
||||||
|
# CONFIG_SSFDC is not set
|
||||||
|
# CONFIG_SM_FTL is not set
|
||||||
|
# CONFIG_MTD_OOPS is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# RAM/ROM/Flash chip drivers
|
||||||
|
#
|
||||||
|
# CONFIG_MTD_CFI is not set
|
||||||
|
# CONFIG_MTD_JEDECPROBE is not set
|
||||||
|
CONFIG_MTD_MAP_BANK_WIDTH_1=y
|
||||||
|
CONFIG_MTD_MAP_BANK_WIDTH_2=y
|
||||||
|
CONFIG_MTD_MAP_BANK_WIDTH_4=y
|
||||||
|
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
|
||||||
|
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
|
||||||
|
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
|
||||||
|
CONFIG_MTD_CFI_I1=y
|
||||||
|
CONFIG_MTD_CFI_I2=y
|
||||||
|
# CONFIG_MTD_CFI_I4 is not set
|
||||||
|
# CONFIG_MTD_CFI_I8 is not set
|
||||||
|
# CONFIG_MTD_RAM is not set
|
||||||
|
# CONFIG_MTD_ROM is not set
|
||||||
|
# CONFIG_MTD_ABSENT is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Mapping drivers for chip access
|
||||||
|
#
|
||||||
|
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
|
||||||
|
# CONFIG_MTD_PLATRAM is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Self-contained MTD device drivers
|
||||||
|
#
|
||||||
|
# CONFIG_MTD_DATAFLASH is not set
|
||||||
|
# CONFIG_MTD_M25P80 is not set
|
||||||
|
# CONFIG_MTD_SST25L is not set
|
||||||
|
# CONFIG_MTD_SLRAM is not set
|
||||||
|
# CONFIG_MTD_PHRAM is not set
|
||||||
|
# CONFIG_MTD_MTDRAM is not set
|
||||||
|
# CONFIG_MTD_BLOCK2MTD is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Disk-On-Chip Device Drivers
|
||||||
|
#
|
||||||
|
# CONFIG_MTD_DOC2000 is not set
|
||||||
|
# CONFIG_MTD_DOC2001 is not set
|
||||||
|
# CONFIG_MTD_DOC2001PLUS is not set
|
||||||
|
CONFIG_MTD_NAND=y
|
||||||
|
CONFIG_MTD_NAND_ECC=y
|
||||||
|
# CONFIG_MTD_NAND_ECC_SMC is not set
|
||||||
|
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
|
||||||
|
# CONFIG_MTD_SM_COMMON is not set
|
||||||
|
# CONFIG_MTD_NAND_MUSEUM_IDS is not set
|
||||||
|
CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xFF108018
|
||||||
|
# CONFIG_MTD_NAND_GPIO is not set
|
||||||
|
CONFIG_MTD_NAND_IDS=y
|
||||||
|
CONFIG_MTD_NAND_S3C2410=y
|
||||||
|
# CONFIG_MTD_NAND_S3C2410_DEBUG is not set
|
||||||
|
# CONFIG_MTD_NAND_S3C2410_HWECC is not set
|
||||||
|
# CONFIG_MTD_NAND_S3C2410_CLKSTOP is not set
|
||||||
|
# CONFIG_MTD_NAND_DISKONCHIP is not set
|
||||||
|
# CONFIG_MTD_NAND_PLATFORM is not set
|
||||||
|
# CONFIG_MTD_ALAUDA is not set
|
||||||
|
# CONFIG_MTD_ONENAND is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# LPDDR flash memory drivers
|
||||||
|
#
|
||||||
|
# CONFIG_MTD_LPDDR is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# UBI - Unsorted block images
|
||||||
|
#
|
||||||
|
# CONFIG_MTD_UBI is not set
|
||||||
# CONFIG_PARPORT is not set
|
# CONFIG_PARPORT is not set
|
||||||
CONFIG_BLK_DEV=y
|
CONFIG_BLK_DEV=y
|
||||||
# CONFIG_BLK_DEV_COW_COMMON is not set
|
# CONFIG_BLK_DEV_COW_COMMON is not set
|
||||||
@@ -402,6 +531,7 @@ CONFIG_BLK_DEV_LOOP=y
|
|||||||
#
|
#
|
||||||
# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
|
# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
|
||||||
#
|
#
|
||||||
|
# CONFIG_BLK_DEV_UB is not set
|
||||||
CONFIG_BLK_DEV_RAM=y
|
CONFIG_BLK_DEV_RAM=y
|
||||||
CONFIG_BLK_DEV_RAM_COUNT=16
|
CONFIG_BLK_DEV_RAM_COUNT=16
|
||||||
CONFIG_BLK_DEV_RAM_SIZE=4096
|
CONFIG_BLK_DEV_RAM_SIZE=4096
|
||||||
@@ -413,13 +543,16 @@ CONFIG_MISC_DEVICES=y
|
|||||||
# CONFIG_ICS932S401 is not set
|
# CONFIG_ICS932S401 is not set
|
||||||
# CONFIG_ENCLOSURE_SERVICES is not set
|
# CONFIG_ENCLOSURE_SERVICES is not set
|
||||||
# CONFIG_ISL29003 is not set
|
# CONFIG_ISL29003 is not set
|
||||||
|
# CONFIG_SENSORS_TSL2550 is not set
|
||||||
# CONFIG_DS1682 is not set
|
# CONFIG_DS1682 is not set
|
||||||
|
# CONFIG_TI_DAC7512 is not set
|
||||||
# CONFIG_C2PORT is not set
|
# CONFIG_C2PORT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# EEPROM support
|
# EEPROM support
|
||||||
#
|
#
|
||||||
CONFIG_EEPROM_AT24=y
|
CONFIG_EEPROM_AT24=y
|
||||||
|
# CONFIG_EEPROM_AT25 is not set
|
||||||
# CONFIG_EEPROM_LEGACY is not set
|
# CONFIG_EEPROM_LEGACY is not set
|
||||||
# CONFIG_EEPROM_MAX6875 is not set
|
# CONFIG_EEPROM_MAX6875 is not set
|
||||||
# CONFIG_EEPROM_93CX6 is not set
|
# CONFIG_EEPROM_93CX6 is not set
|
||||||
@@ -430,6 +563,7 @@ CONFIG_HAVE_IDE=y
|
|||||||
#
|
#
|
||||||
# SCSI device support
|
# SCSI device support
|
||||||
#
|
#
|
||||||
|
CONFIG_SCSI_MOD=y
|
||||||
# CONFIG_RAID_ATTRS is not set
|
# CONFIG_RAID_ATTRS is not set
|
||||||
# CONFIG_SCSI is not set
|
# CONFIG_SCSI is not set
|
||||||
# CONFIG_SCSI_DMA is not set
|
# CONFIG_SCSI_DMA is not set
|
||||||
@@ -466,6 +600,7 @@ CONFIG_KEYBOARD_ATKBD=y
|
|||||||
# CONFIG_QT2160 is not set
|
# CONFIG_QT2160 is not set
|
||||||
# CONFIG_KEYBOARD_LKKBD is not set
|
# CONFIG_KEYBOARD_LKKBD is not set
|
||||||
# CONFIG_KEYBOARD_GPIO is not set
|
# CONFIG_KEYBOARD_GPIO is not set
|
||||||
|
# CONFIG_KEYBOARD_TCA6416 is not set
|
||||||
# CONFIG_KEYBOARD_MATRIX is not set
|
# CONFIG_KEYBOARD_MATRIX is not set
|
||||||
# CONFIG_KEYBOARD_MAX7359 is not set
|
# CONFIG_KEYBOARD_MAX7359 is not set
|
||||||
# CONFIG_KEYBOARD_NEWTON is not set
|
# CONFIG_KEYBOARD_NEWTON is not set
|
||||||
@@ -527,12 +662,17 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
|
|||||||
# Non-8250 serial port support
|
# Non-8250 serial port support
|
||||||
#
|
#
|
||||||
CONFIG_SERIAL_SAMSUNG=y
|
CONFIG_SERIAL_SAMSUNG=y
|
||||||
|
CONFIG_SERIAL_SAMSUNG_UARTS_4=y
|
||||||
CONFIG_SERIAL_SAMSUNG_UARTS=4
|
CONFIG_SERIAL_SAMSUNG_UARTS=4
|
||||||
# CONFIG_SERIAL_SAMSUNG_DEBUG is not set
|
# CONFIG_SERIAL_SAMSUNG_DEBUG is not set
|
||||||
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
|
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
|
||||||
CONFIG_SERIAL_S3C6400=y
|
CONFIG_SERIAL_S3C6400=y
|
||||||
|
# CONFIG_SERIAL_MAX3100 is not set
|
||||||
CONFIG_SERIAL_CORE=y
|
CONFIG_SERIAL_CORE=y
|
||||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||||
|
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||||
|
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
|
||||||
|
# CONFIG_SERIAL_ALTERA_UART is not set
|
||||||
CONFIG_UNIX98_PTYS=y
|
CONFIG_UNIX98_PTYS=y
|
||||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||||
CONFIG_LEGACY_PTYS=y
|
CONFIG_LEGACY_PTYS=y
|
||||||
@@ -561,28 +701,41 @@ CONFIG_I2C_HELPER_AUTO=y
|
|||||||
# CONFIG_I2C_OCORES is not set
|
# CONFIG_I2C_OCORES is not set
|
||||||
CONFIG_I2C_S3C2410=y
|
CONFIG_I2C_S3C2410=y
|
||||||
# CONFIG_I2C_SIMTEC is not set
|
# CONFIG_I2C_SIMTEC is not set
|
||||||
|
# CONFIG_I2C_XILINX is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# External I2C/SMBus adapter drivers
|
# External I2C/SMBus adapter drivers
|
||||||
#
|
#
|
||||||
# CONFIG_I2C_PARPORT_LIGHT is not set
|
# CONFIG_I2C_PARPORT_LIGHT is not set
|
||||||
# CONFIG_I2C_TAOS_EVM is not set
|
# CONFIG_I2C_TAOS_EVM is not set
|
||||||
|
# CONFIG_I2C_TINY_USB is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Other I2C/SMBus bus drivers
|
# Other I2C/SMBus bus drivers
|
||||||
#
|
#
|
||||||
# CONFIG_I2C_PCA_PLATFORM is not set
|
# CONFIG_I2C_PCA_PLATFORM is not set
|
||||||
# CONFIG_I2C_STUB is not set
|
# CONFIG_I2C_STUB is not set
|
||||||
|
|
||||||
#
|
|
||||||
# Miscellaneous I2C Chip support
|
|
||||||
#
|
|
||||||
# CONFIG_SENSORS_TSL2550 is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CORE is not set
|
# CONFIG_I2C_DEBUG_CORE is not set
|
||||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||||
# CONFIG_I2C_DEBUG_BUS is not set
|
# CONFIG_I2C_DEBUG_BUS is not set
|
||||||
# CONFIG_I2C_DEBUG_CHIP is not set
|
CONFIG_SPI=y
|
||||||
# CONFIG_SPI is not set
|
# CONFIG_SPI_DEBUG is not set
|
||||||
|
CONFIG_SPI_MASTER=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# SPI Master Controller Drivers
|
||||||
|
#
|
||||||
|
CONFIG_SPI_BITBANG=m
|
||||||
|
CONFIG_SPI_GPIO=m
|
||||||
|
CONFIG_SPI_S3C64XX=m
|
||||||
|
# CONFIG_SPI_XILINX is not set
|
||||||
|
# CONFIG_SPI_DESIGNWARE is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# SPI Protocol Masters
|
||||||
|
#
|
||||||
|
# CONFIG_SPI_SPIDEV is not set
|
||||||
|
# CONFIG_SPI_TLE62X0 is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# PPS support
|
# PPS support
|
||||||
@@ -596,10 +749,12 @@ CONFIG_GPIOLIB=y
|
|||||||
#
|
#
|
||||||
# Memory mapped GPIO expanders:
|
# Memory mapped GPIO expanders:
|
||||||
#
|
#
|
||||||
|
# CONFIG_GPIO_IT8761E is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# I2C GPIO expanders:
|
# I2C GPIO expanders:
|
||||||
#
|
#
|
||||||
|
# CONFIG_GPIO_MAX7300 is not set
|
||||||
# CONFIG_GPIO_MAX732X is not set
|
# CONFIG_GPIO_MAX732X is not set
|
||||||
# CONFIG_GPIO_PCA953X is not set
|
# CONFIG_GPIO_PCA953X is not set
|
||||||
# CONFIG_GPIO_PCF857X is not set
|
# CONFIG_GPIO_PCF857X is not set
|
||||||
@@ -612,6 +767,9 @@ CONFIG_GPIOLIB=y
|
|||||||
#
|
#
|
||||||
# SPI GPIO expanders:
|
# SPI GPIO expanders:
|
||||||
#
|
#
|
||||||
|
# CONFIG_GPIO_MAX7301 is not set
|
||||||
|
# CONFIG_GPIO_MCP23S08 is not set
|
||||||
|
# CONFIG_GPIO_MC33880 is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# AC97 GPIO expanders:
|
# AC97 GPIO expanders:
|
||||||
@@ -627,16 +785,18 @@ CONFIG_HWMON=y
|
|||||||
#
|
#
|
||||||
# CONFIG_SENSORS_AD7414 is not set
|
# CONFIG_SENSORS_AD7414 is not set
|
||||||
# CONFIG_SENSORS_AD7418 is not set
|
# CONFIG_SENSORS_AD7418 is not set
|
||||||
|
# CONFIG_SENSORS_ADCXX is not set
|
||||||
# CONFIG_SENSORS_ADM1021 is not set
|
# CONFIG_SENSORS_ADM1021 is not set
|
||||||
# CONFIG_SENSORS_ADM1025 is not set
|
# CONFIG_SENSORS_ADM1025 is not set
|
||||||
# CONFIG_SENSORS_ADM1026 is not set
|
# CONFIG_SENSORS_ADM1026 is not set
|
||||||
# CONFIG_SENSORS_ADM1029 is not set
|
# CONFIG_SENSORS_ADM1029 is not set
|
||||||
# CONFIG_SENSORS_ADM1031 is not set
|
# CONFIG_SENSORS_ADM1031 is not set
|
||||||
# CONFIG_SENSORS_ADM9240 is not set
|
# CONFIG_SENSORS_ADM9240 is not set
|
||||||
|
# CONFIG_SENSORS_ADT7411 is not set
|
||||||
# CONFIG_SENSORS_ADT7462 is not set
|
# CONFIG_SENSORS_ADT7462 is not set
|
||||||
# CONFIG_SENSORS_ADT7470 is not set
|
# CONFIG_SENSORS_ADT7470 is not set
|
||||||
# CONFIG_SENSORS_ADT7473 is not set
|
|
||||||
# CONFIG_SENSORS_ADT7475 is not set
|
# CONFIG_SENSORS_ADT7475 is not set
|
||||||
|
# CONFIG_SENSORS_ASC7621 is not set
|
||||||
# CONFIG_SENSORS_ATXP1 is not set
|
# CONFIG_SENSORS_ATXP1 is not set
|
||||||
# CONFIG_SENSORS_DS1621 is not set
|
# CONFIG_SENSORS_DS1621 is not set
|
||||||
# CONFIG_SENSORS_F71805F is not set
|
# CONFIG_SENSORS_F71805F is not set
|
||||||
@@ -647,6 +807,7 @@ CONFIG_HWMON=y
|
|||||||
# CONFIG_SENSORS_GL520SM is not set
|
# CONFIG_SENSORS_GL520SM is not set
|
||||||
# CONFIG_SENSORS_IT87 is not set
|
# CONFIG_SENSORS_IT87 is not set
|
||||||
# CONFIG_SENSORS_LM63 is not set
|
# CONFIG_SENSORS_LM63 is not set
|
||||||
|
# CONFIG_SENSORS_LM70 is not set
|
||||||
# CONFIG_SENSORS_LM73 is not set
|
# CONFIG_SENSORS_LM73 is not set
|
||||||
# CONFIG_SENSORS_LM75 is not set
|
# CONFIG_SENSORS_LM75 is not set
|
||||||
# CONFIG_SENSORS_LM77 is not set
|
# CONFIG_SENSORS_LM77 is not set
|
||||||
@@ -661,6 +822,7 @@ CONFIG_HWMON=y
|
|||||||
# CONFIG_SENSORS_LTC4215 is not set
|
# CONFIG_SENSORS_LTC4215 is not set
|
||||||
# CONFIG_SENSORS_LTC4245 is not set
|
# CONFIG_SENSORS_LTC4245 is not set
|
||||||
# CONFIG_SENSORS_LM95241 is not set
|
# CONFIG_SENSORS_LM95241 is not set
|
||||||
|
# CONFIG_SENSORS_MAX1111 is not set
|
||||||
# CONFIG_SENSORS_MAX1619 is not set
|
# CONFIG_SENSORS_MAX1619 is not set
|
||||||
# CONFIG_SENSORS_MAX6650 is not set
|
# CONFIG_SENSORS_MAX6650 is not set
|
||||||
# CONFIG_SENSORS_PC87360 is not set
|
# CONFIG_SENSORS_PC87360 is not set
|
||||||
@@ -672,6 +834,7 @@ CONFIG_HWMON=y
|
|||||||
# CONFIG_SENSORS_SMSC47M192 is not set
|
# CONFIG_SENSORS_SMSC47M192 is not set
|
||||||
# CONFIG_SENSORS_SMSC47B397 is not set
|
# CONFIG_SENSORS_SMSC47B397 is not set
|
||||||
# CONFIG_SENSORS_ADS7828 is not set
|
# CONFIG_SENSORS_ADS7828 is not set
|
||||||
|
# CONFIG_SENSORS_ADS7871 is not set
|
||||||
# CONFIG_SENSORS_AMC6821 is not set
|
# CONFIG_SENSORS_AMC6821 is not set
|
||||||
# CONFIG_SENSORS_THMC50 is not set
|
# CONFIG_SENSORS_THMC50 is not set
|
||||||
# CONFIG_SENSORS_TMP401 is not set
|
# CONFIG_SENSORS_TMP401 is not set
|
||||||
@@ -685,9 +848,11 @@ CONFIG_HWMON=y
|
|||||||
# CONFIG_SENSORS_W83L786NG is not set
|
# CONFIG_SENSORS_W83L786NG is not set
|
||||||
# CONFIG_SENSORS_W83627HF is not set
|
# CONFIG_SENSORS_W83627HF is not set
|
||||||
# CONFIG_SENSORS_W83627EHF is not set
|
# CONFIG_SENSORS_W83627EHF is not set
|
||||||
|
# CONFIG_SENSORS_LIS3_SPI is not set
|
||||||
# CONFIG_SENSORS_LIS3_I2C is not set
|
# CONFIG_SENSORS_LIS3_I2C is not set
|
||||||
# CONFIG_THERMAL is not set
|
# CONFIG_THERMAL is not set
|
||||||
# CONFIG_WATCHDOG is not set
|
# CONFIG_WATCHDOG is not set
|
||||||
|
CONFIG_HAVE_S3C2410_WATCHDOG=y
|
||||||
CONFIG_SSB_POSSIBLE=y
|
CONFIG_SSB_POSSIBLE=y
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -699,10 +864,13 @@ CONFIG_SSB_POSSIBLE=y
|
|||||||
# Multifunction device drivers
|
# Multifunction device drivers
|
||||||
#
|
#
|
||||||
# CONFIG_MFD_CORE is not set
|
# CONFIG_MFD_CORE is not set
|
||||||
|
# CONFIG_MFD_88PM860X is not set
|
||||||
# CONFIG_MFD_SM501 is not set
|
# CONFIG_MFD_SM501 is not set
|
||||||
# CONFIG_MFD_ASIC3 is not set
|
# CONFIG_MFD_ASIC3 is not set
|
||||||
# CONFIG_HTC_EGPIO is not set
|
# CONFIG_HTC_EGPIO is not set
|
||||||
# CONFIG_HTC_PASIC3 is not set
|
# CONFIG_HTC_PASIC3 is not set
|
||||||
|
# CONFIG_HTC_I2CPLD is not set
|
||||||
|
# CONFIG_UCB1400_CORE is not set
|
||||||
# CONFIG_TPS65010 is not set
|
# CONFIG_TPS65010 is not set
|
||||||
# CONFIG_TWL4030_CORE is not set
|
# CONFIG_TWL4030_CORE is not set
|
||||||
# CONFIG_MFD_TMIO is not set
|
# CONFIG_MFD_TMIO is not set
|
||||||
@@ -711,12 +879,16 @@ CONFIG_SSB_POSSIBLE=y
|
|||||||
# CONFIG_MFD_TC6393XB is not set
|
# CONFIG_MFD_TC6393XB is not set
|
||||||
# CONFIG_PMIC_DA903X is not set
|
# CONFIG_PMIC_DA903X is not set
|
||||||
# CONFIG_PMIC_ADP5520 is not set
|
# CONFIG_PMIC_ADP5520 is not set
|
||||||
|
# CONFIG_MFD_MAX8925 is not set
|
||||||
# CONFIG_MFD_WM8400 is not set
|
# CONFIG_MFD_WM8400 is not set
|
||||||
# CONFIG_MFD_WM831X is not set
|
# CONFIG_MFD_WM831X is not set
|
||||||
# CONFIG_MFD_WM8350_I2C is not set
|
# CONFIG_MFD_WM8350_I2C is not set
|
||||||
|
# CONFIG_MFD_WM8994 is not set
|
||||||
# CONFIG_MFD_PCF50633 is not set
|
# CONFIG_MFD_PCF50633 is not set
|
||||||
|
# CONFIG_MFD_MC13783 is not set
|
||||||
# CONFIG_AB3100_CORE is not set
|
# CONFIG_AB3100_CORE is not set
|
||||||
# CONFIG_MFD_88PM8607 is not set
|
# CONFIG_EZX_PCAP is not set
|
||||||
|
# CONFIG_AB4500_CORE is not set
|
||||||
# CONFIG_REGULATOR is not set
|
# CONFIG_REGULATOR is not set
|
||||||
# CONFIG_MEDIA_SUPPORT is not set
|
# CONFIG_MEDIA_SUPPORT is not set
|
||||||
|
|
||||||
@@ -725,8 +897,47 @@ CONFIG_SSB_POSSIBLE=y
|
|||||||
#
|
#
|
||||||
# CONFIG_VGASTATE is not set
|
# CONFIG_VGASTATE is not set
|
||||||
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
|
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
|
||||||
# CONFIG_FB is not set
|
CONFIG_FB=y
|
||||||
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
|
# CONFIG_FIRMWARE_EDID is not set
|
||||||
|
# CONFIG_FB_DDC is not set
|
||||||
|
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
|
||||||
|
CONFIG_FB_CFB_FILLRECT=y
|
||||||
|
CONFIG_FB_CFB_COPYAREA=y
|
||||||
|
CONFIG_FB_CFB_IMAGEBLIT=y
|
||||||
|
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
|
||||||
|
# CONFIG_FB_SYS_FILLRECT is not set
|
||||||
|
# CONFIG_FB_SYS_COPYAREA is not set
|
||||||
|
# CONFIG_FB_SYS_IMAGEBLIT is not set
|
||||||
|
# CONFIG_FB_FOREIGN_ENDIAN is not set
|
||||||
|
# CONFIG_FB_SYS_FOPS is not set
|
||||||
|
# CONFIG_FB_SVGALIB is not set
|
||||||
|
# CONFIG_FB_MACMODES is not set
|
||||||
|
# CONFIG_FB_BACKLIGHT is not set
|
||||||
|
# CONFIG_FB_MODE_HELPERS is not set
|
||||||
|
# CONFIG_FB_TILEBLITTING is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Frame buffer hardware drivers
|
||||||
|
#
|
||||||
|
# CONFIG_FB_S1D13XXX is not set
|
||||||
|
CONFIG_FB_S3C=y
|
||||||
|
# CONFIG_FB_S3C_DEBUG_REGWRITE is not set
|
||||||
|
# CONFIG_FB_VIRTUAL is not set
|
||||||
|
# CONFIG_FB_METRONOME is not set
|
||||||
|
# CONFIG_FB_MB862XX is not set
|
||||||
|
# CONFIG_FB_BROADSHEET is not set
|
||||||
|
CONFIG_BACKLIGHT_LCD_SUPPORT=y
|
||||||
|
CONFIG_LCD_CLASS_DEVICE=y
|
||||||
|
# CONFIG_LCD_L4F00242T03 is not set
|
||||||
|
# CONFIG_LCD_LMS283GF05 is not set
|
||||||
|
CONFIG_LCD_LTV350QV=y
|
||||||
|
# CONFIG_LCD_ILI9320 is not set
|
||||||
|
# CONFIG_LCD_TDO24M is not set
|
||||||
|
# CONFIG_LCD_VGG2432A4 is not set
|
||||||
|
# CONFIG_LCD_PLATFORM is not set
|
||||||
|
CONFIG_BACKLIGHT_CLASS_DEVICE=y
|
||||||
|
CONFIG_BACKLIGHT_GENERIC=y
|
||||||
|
CONFIG_BACKLIGHT_PWM=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Display device support
|
# Display device support
|
||||||
@@ -738,33 +949,246 @@ CONFIG_SSB_POSSIBLE=y
|
|||||||
#
|
#
|
||||||
# CONFIG_VGA_CONSOLE is not set
|
# CONFIG_VGA_CONSOLE is not set
|
||||||
CONFIG_DUMMY_CONSOLE=y
|
CONFIG_DUMMY_CONSOLE=y
|
||||||
# CONFIG_SOUND is not set
|
# CONFIG_FRAMEBUFFER_CONSOLE is not set
|
||||||
|
# CONFIG_LOGO is not set
|
||||||
|
CONFIG_SOUND=y
|
||||||
|
CONFIG_SOUND_OSS_CORE=y
|
||||||
|
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
|
||||||
|
CONFIG_SND=m
|
||||||
|
CONFIG_SND_TIMER=m
|
||||||
|
CONFIG_SND_PCM=m
|
||||||
|
CONFIG_SND_JACK=y
|
||||||
|
# CONFIG_SND_SEQUENCER is not set
|
||||||
|
CONFIG_SND_OSSEMUL=y
|
||||||
|
CONFIG_SND_MIXER_OSS=m
|
||||||
|
CONFIG_SND_PCM_OSS=m
|
||||||
|
CONFIG_SND_PCM_OSS_PLUGINS=y
|
||||||
|
# CONFIG_SND_DYNAMIC_MINORS is not set
|
||||||
|
CONFIG_SND_SUPPORT_OLD_API=y
|
||||||
|
CONFIG_SND_VERBOSE_PROCFS=y
|
||||||
|
# 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=y
|
||||||
|
# CONFIG_SND_DUMMY is not set
|
||||||
|
# CONFIG_SND_MTPAV is not set
|
||||||
|
# CONFIG_SND_SERIAL_U16550 is not set
|
||||||
|
# CONFIG_SND_MPU401 is not set
|
||||||
|
CONFIG_SND_ARM=y
|
||||||
|
CONFIG_SND_SPI=y
|
||||||
|
CONFIG_SND_USB=y
|
||||||
|
# CONFIG_SND_USB_AUDIO is not set
|
||||||
|
# CONFIG_SND_USB_UA101 is not set
|
||||||
|
# CONFIG_SND_USB_CAIAQ is not set
|
||||||
|
CONFIG_SND_SOC=m
|
||||||
|
CONFIG_SND_SOC_AC97_BUS=y
|
||||||
|
CONFIG_SND_S3C24XX_SOC=m
|
||||||
|
CONFIG_SND_S3C_SOC_AC97=m
|
||||||
|
# CONFIG_SND_S3C64XX_SOC_WM8580 is not set
|
||||||
|
CONFIG_SND_SOC_SMDK_WM9713=m
|
||||||
|
CONFIG_SND_SOC_I2C_AND_SPI=m
|
||||||
|
# CONFIG_SND_SOC_ALL_CODECS is not set
|
||||||
|
CONFIG_SND_SOC_WM9713=m
|
||||||
|
# CONFIG_SOUND_PRIME is not set
|
||||||
|
CONFIG_AC97_BUS=m
|
||||||
CONFIG_HID_SUPPORT=y
|
CONFIG_HID_SUPPORT=y
|
||||||
CONFIG_HID=y
|
CONFIG_HID=y
|
||||||
# CONFIG_HIDRAW is not set
|
# CONFIG_HIDRAW is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# USB Input Devices
|
||||||
|
#
|
||||||
|
CONFIG_USB_HID=y
|
||||||
# CONFIG_HID_PID is not set
|
# CONFIG_HID_PID is not set
|
||||||
|
# CONFIG_USB_HIDDEV is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Special HID drivers
|
# Special HID drivers
|
||||||
#
|
#
|
||||||
|
# CONFIG_HID_3M_PCT is not set
|
||||||
|
CONFIG_HID_A4TECH=y
|
||||||
|
CONFIG_HID_APPLE=y
|
||||||
|
CONFIG_HID_BELKIN=y
|
||||||
|
# CONFIG_HID_CANDO is not set
|
||||||
|
CONFIG_HID_CHERRY=y
|
||||||
|
CONFIG_HID_CHICONY=y
|
||||||
|
# CONFIG_HID_PRODIKEYS is not set
|
||||||
|
CONFIG_HID_CYPRESS=y
|
||||||
|
# CONFIG_HID_DRAGONRISE is not set
|
||||||
|
# CONFIG_HID_EGALAX is not set
|
||||||
|
CONFIG_HID_EZKEY=y
|
||||||
|
CONFIG_HID_KYE=y
|
||||||
|
# CONFIG_HID_GYRATION is not set
|
||||||
|
# CONFIG_HID_TWINHAN is not set
|
||||||
|
CONFIG_HID_KENSINGTON=y
|
||||||
|
CONFIG_HID_LOGITECH=y
|
||||||
|
# CONFIG_LOGITECH_FF is not set
|
||||||
|
# CONFIG_LOGIRUMBLEPAD2_FF is not set
|
||||||
|
# CONFIG_LOGIG940_FF is not set
|
||||||
|
CONFIG_HID_MICROSOFT=y
|
||||||
|
# CONFIG_HID_MOSART is not set
|
||||||
|
CONFIG_HID_MONTEREY=y
|
||||||
|
# CONFIG_HID_NTRIG is not set
|
||||||
|
# CONFIG_HID_ORTEK is not set
|
||||||
|
# CONFIG_HID_PANTHERLORD is not set
|
||||||
|
# CONFIG_HID_PETALYNX is not set
|
||||||
|
# CONFIG_HID_PICOLCD is not set
|
||||||
|
# CONFIG_HID_QUANTA is not set
|
||||||
|
# CONFIG_HID_ROCCAT_KONE is not set
|
||||||
|
# CONFIG_HID_SAMSUNG is not set
|
||||||
|
# CONFIG_HID_SONY is not set
|
||||||
|
# CONFIG_HID_STANTUM is not set
|
||||||
|
# CONFIG_HID_SUNPLUS is not set
|
||||||
|
# CONFIG_HID_GREENASIA is not set
|
||||||
|
# CONFIG_HID_SMARTJOYPLUS is not set
|
||||||
|
# CONFIG_HID_TOPSEED is not set
|
||||||
|
# CONFIG_HID_THRUSTMASTER is not set
|
||||||
|
# CONFIG_HID_ZEROPLUS is not set
|
||||||
|
# CONFIG_HID_ZYDACRON is not set
|
||||||
CONFIG_USB_SUPPORT=y
|
CONFIG_USB_SUPPORT=y
|
||||||
CONFIG_USB_ARCH_HAS_HCD=y
|
CONFIG_USB_ARCH_HAS_HCD=y
|
||||||
CONFIG_USB_ARCH_HAS_OHCI=y
|
CONFIG_USB_ARCH_HAS_OHCI=y
|
||||||
# CONFIG_USB_ARCH_HAS_EHCI is not set
|
# CONFIG_USB_ARCH_HAS_EHCI is not set
|
||||||
# CONFIG_USB is not set
|
CONFIG_USB=y
|
||||||
|
# CONFIG_USB_DEBUG is not set
|
||||||
|
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Enable Host or Gadget support to see Inventra options
|
# Miscellaneous USB options
|
||||||
#
|
#
|
||||||
|
CONFIG_USB_DEVICEFS=y
|
||||||
|
CONFIG_USB_DEVICE_CLASS=y
|
||||||
|
# CONFIG_USB_DYNAMIC_MINORS is not set
|
||||||
|
# CONFIG_USB_MON is not set
|
||||||
|
# CONFIG_USB_WUSB is not set
|
||||||
|
# CONFIG_USB_WUSB_CBAF is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# USB Host Controller Drivers
|
||||||
|
#
|
||||||
|
# CONFIG_USB_C67X00_HCD is not set
|
||||||
|
# CONFIG_USB_OXU210HP_HCD is not set
|
||||||
|
# CONFIG_USB_ISP116X_HCD is not set
|
||||||
|
# CONFIG_USB_ISP1760_HCD is not set
|
||||||
|
# CONFIG_USB_ISP1362_HCD is not set
|
||||||
|
CONFIG_USB_OHCI_HCD=y
|
||||||
|
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
|
||||||
|
# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
|
||||||
|
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
|
||||||
|
# CONFIG_USB_SL811_HCD is not set
|
||||||
|
# CONFIG_USB_R8A66597_HCD is not set
|
||||||
|
# CONFIG_USB_HWA_HCD is not set
|
||||||
|
# CONFIG_USB_MUSB_HDRC is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# USB Device Class drivers
|
||||||
|
#
|
||||||
|
CONFIG_USB_ACM=m
|
||||||
|
CONFIG_USB_PRINTER=m
|
||||||
|
# CONFIG_USB_WDM is not set
|
||||||
|
# CONFIG_USB_TMC is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
|
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
|
||||||
#
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# also be needed; see USB_STORAGE Help for more info
|
||||||
|
#
|
||||||
|
# CONFIG_USB_LIBUSUAL is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# USB Imaging devices
|
||||||
|
#
|
||||||
|
# CONFIG_USB_MDC800 is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# USB port drivers
|
||||||
|
#
|
||||||
|
CONFIG_USB_SERIAL=m
|
||||||
|
# CONFIG_USB_EZUSB is not set
|
||||||
|
CONFIG_USB_SERIAL_GENERIC=y
|
||||||
|
# CONFIG_USB_SERIAL_AIRCABLE is not set
|
||||||
|
# CONFIG_USB_SERIAL_ARK3116 is not set
|
||||||
|
# CONFIG_USB_SERIAL_BELKIN is not set
|
||||||
|
# CONFIG_USB_SERIAL_CH341 is not set
|
||||||
|
# CONFIG_USB_SERIAL_WHITEHEAT is not set
|
||||||
|
# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
|
||||||
|
# CONFIG_USB_SERIAL_CP210X is not set
|
||||||
|
# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
|
||||||
|
CONFIG_USB_SERIAL_EMPEG=m
|
||||||
|
CONFIG_USB_SERIAL_FTDI_SIO=m
|
||||||
|
# CONFIG_USB_SERIAL_FUNSOFT is not set
|
||||||
|
# CONFIG_USB_SERIAL_VISOR is not set
|
||||||
|
# CONFIG_USB_SERIAL_IPAQ is not set
|
||||||
|
# CONFIG_USB_SERIAL_IR is not set
|
||||||
|
# CONFIG_USB_SERIAL_EDGEPORT is not set
|
||||||
|
# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
|
||||||
|
# CONFIG_USB_SERIAL_GARMIN is not set
|
||||||
|
# CONFIG_USB_SERIAL_IPW is not set
|
||||||
|
# CONFIG_USB_SERIAL_IUU is not set
|
||||||
|
# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
|
||||||
|
# CONFIG_USB_SERIAL_KEYSPAN is not set
|
||||||
|
# CONFIG_USB_SERIAL_KLSI is not set
|
||||||
|
# CONFIG_USB_SERIAL_KOBIL_SCT is not set
|
||||||
|
# CONFIG_USB_SERIAL_MCT_U232 is not set
|
||||||
|
# CONFIG_USB_SERIAL_MOS7720 is not set
|
||||||
|
# CONFIG_USB_SERIAL_MOS7840 is not set
|
||||||
|
# CONFIG_USB_SERIAL_MOTOROLA is not set
|
||||||
|
# CONFIG_USB_SERIAL_NAVMAN is not set
|
||||||
|
CONFIG_USB_SERIAL_PL2303=m
|
||||||
|
# CONFIG_USB_SERIAL_OTI6858 is not set
|
||||||
|
# CONFIG_USB_SERIAL_QCAUX is not set
|
||||||
|
# CONFIG_USB_SERIAL_QUALCOMM is not set
|
||||||
|
# CONFIG_USB_SERIAL_SPCP8X5 is not set
|
||||||
|
# CONFIG_USB_SERIAL_HP4X is not set
|
||||||
|
# CONFIG_USB_SERIAL_SAFE is not set
|
||||||
|
# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
|
||||||
|
# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
|
||||||
|
# CONFIG_USB_SERIAL_SYMBOL is not set
|
||||||
|
# CONFIG_USB_SERIAL_TI is not set
|
||||||
|
# CONFIG_USB_SERIAL_CYBERJACK is not set
|
||||||
|
# CONFIG_USB_SERIAL_XIRCOM is not set
|
||||||
|
# CONFIG_USB_SERIAL_OPTION is not set
|
||||||
|
# CONFIG_USB_SERIAL_OMNINET is not set
|
||||||
|
# CONFIG_USB_SERIAL_OPTICON is not set
|
||||||
|
# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set
|
||||||
|
# CONFIG_USB_SERIAL_ZIO is not set
|
||||||
|
# CONFIG_USB_SERIAL_DEBUG is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# USB Miscellaneous drivers
|
||||||
|
#
|
||||||
|
# CONFIG_USB_EMI62 is not set
|
||||||
|
# CONFIG_USB_EMI26 is not set
|
||||||
|
# CONFIG_USB_ADUTUX is not set
|
||||||
|
# CONFIG_USB_SEVSEG is not set
|
||||||
|
# CONFIG_USB_RIO500 is not set
|
||||||
|
# CONFIG_USB_LEGOTOWER is not set
|
||||||
|
# CONFIG_USB_LCD is not set
|
||||||
|
# CONFIG_USB_LED is not set
|
||||||
|
# CONFIG_USB_CYPRESS_CY7C63 is not set
|
||||||
|
# CONFIG_USB_CYTHERM is not set
|
||||||
|
# CONFIG_USB_IDMOUSE is not set
|
||||||
|
# CONFIG_USB_FTDI_ELAN is not set
|
||||||
|
# CONFIG_USB_APPLEDISPLAY is not set
|
||||||
|
# CONFIG_USB_LD is not set
|
||||||
|
# CONFIG_USB_TRANCEVIBRATOR is not set
|
||||||
|
# CONFIG_USB_IOWARRIOR is not set
|
||||||
|
# CONFIG_USB_TEST is not set
|
||||||
|
# CONFIG_USB_ISIGHTFW is not set
|
||||||
# CONFIG_USB_GADGET is not set
|
# CONFIG_USB_GADGET is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# OTG and related infrastructure
|
# OTG and related infrastructure
|
||||||
#
|
#
|
||||||
|
# CONFIG_USB_GPIO_VBUS is not set
|
||||||
|
# CONFIG_USB_ULPI is not set
|
||||||
|
# CONFIG_NOP_USB_XCEIV is not set
|
||||||
CONFIG_MMC=y
|
CONFIG_MMC=y
|
||||||
CONFIG_MMC_DEBUG=y
|
CONFIG_MMC_DEBUG=y
|
||||||
CONFIG_MMC_UNSAFE_RESUME=y
|
CONFIG_MMC_UNSAFE_RESUME=y
|
||||||
@@ -784,20 +1208,80 @@ CONFIG_MMC_SDHCI=y
|
|||||||
# CONFIG_MMC_SDHCI_PLTFM is not set
|
# CONFIG_MMC_SDHCI_PLTFM is not set
|
||||||
CONFIG_MMC_SDHCI_S3C=y
|
CONFIG_MMC_SDHCI_S3C=y
|
||||||
# CONFIG_MMC_SDHCI_S3C_DMA is not set
|
# CONFIG_MMC_SDHCI_S3C_DMA is not set
|
||||||
# CONFIG_MMC_AT91 is not set
|
# CONFIG_MMC_SPI is not set
|
||||||
# CONFIG_MMC_ATMELMCI is not set
|
|
||||||
# CONFIG_MEMSTICK is not set
|
# CONFIG_MEMSTICK is not set
|
||||||
# CONFIG_NEW_LEDS is not set
|
# CONFIG_NEW_LEDS is not set
|
||||||
# CONFIG_ACCESSIBILITY is not set
|
# CONFIG_ACCESSIBILITY is not set
|
||||||
CONFIG_RTC_LIB=y
|
CONFIG_RTC_LIB=y
|
||||||
# CONFIG_RTC_CLASS is not set
|
CONFIG_RTC_CLASS=y
|
||||||
|
CONFIG_RTC_HCTOSYS=y
|
||||||
|
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
|
||||||
|
# CONFIG_RTC_DEBUG is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# RTC interfaces
|
||||||
|
#
|
||||||
|
CONFIG_RTC_INTF_SYSFS=y
|
||||||
|
CONFIG_RTC_INTF_PROC=y
|
||||||
|
CONFIG_RTC_INTF_DEV=y
|
||||||
|
# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
|
||||||
|
# CONFIG_RTC_DRV_TEST is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# I2C RTC drivers
|
||||||
|
#
|
||||||
|
# CONFIG_RTC_DRV_DS1307 is not set
|
||||||
|
# CONFIG_RTC_DRV_DS1374 is not set
|
||||||
|
# CONFIG_RTC_DRV_DS1672 is not set
|
||||||
|
# CONFIG_RTC_DRV_MAX6900 is not set
|
||||||
|
# CONFIG_RTC_DRV_RS5C372 is not set
|
||||||
|
# CONFIG_RTC_DRV_ISL1208 is not set
|
||||||
|
# CONFIG_RTC_DRV_X1205 is not set
|
||||||
|
# CONFIG_RTC_DRV_PCF8563 is not set
|
||||||
|
# CONFIG_RTC_DRV_PCF8583 is not set
|
||||||
|
# CONFIG_RTC_DRV_M41T80 is not set
|
||||||
|
# CONFIG_RTC_DRV_BQ32K is not set
|
||||||
|
# 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
|
||||||
|
#
|
||||||
|
# CONFIG_RTC_DRV_M41T94 is not set
|
||||||
|
# CONFIG_RTC_DRV_DS1305 is not set
|
||||||
|
# CONFIG_RTC_DRV_DS1390 is not set
|
||||||
|
# CONFIG_RTC_DRV_MAX6902 is not set
|
||||||
|
# CONFIG_RTC_DRV_R9701 is not set
|
||||||
|
# CONFIG_RTC_DRV_RS5C348 is not set
|
||||||
|
# CONFIG_RTC_DRV_DS3234 is not set
|
||||||
|
# CONFIG_RTC_DRV_PCF2123 is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Platform RTC drivers
|
||||||
|
#
|
||||||
|
# CONFIG_RTC_DRV_CMOS is not set
|
||||||
|
# CONFIG_RTC_DRV_DS1286 is not set
|
||||||
|
# CONFIG_RTC_DRV_DS1511 is not set
|
||||||
|
# CONFIG_RTC_DRV_DS1553 is not set
|
||||||
|
# CONFIG_RTC_DRV_DS1742 is not set
|
||||||
|
# CONFIG_RTC_DRV_STK17TA8 is not set
|
||||||
|
# CONFIG_RTC_DRV_M48T86 is not set
|
||||||
|
# CONFIG_RTC_DRV_M48T35 is not set
|
||||||
|
# CONFIG_RTC_DRV_M48T59 is not set
|
||||||
|
# CONFIG_RTC_DRV_MSM6242 is not set
|
||||||
|
# CONFIG_RTC_DRV_BQ4802 is not set
|
||||||
|
# CONFIG_RTC_DRV_RP5C01 is not set
|
||||||
|
# CONFIG_RTC_DRV_V3020 is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# on-CPU RTC drivers
|
||||||
|
#
|
||||||
|
CONFIG_RTC_DRV_S3C=y
|
||||||
# CONFIG_DMADEVICES is not set
|
# CONFIG_DMADEVICES is not set
|
||||||
# CONFIG_AUXDISPLAY is not set
|
# CONFIG_AUXDISPLAY is not set
|
||||||
# CONFIG_UIO is not set
|
# CONFIG_UIO is not set
|
||||||
|
|
||||||
#
|
|
||||||
# TI VLYNQ
|
|
||||||
#
|
|
||||||
# CONFIG_STAGING is not set
|
# CONFIG_STAGING is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -869,6 +1353,8 @@ CONFIG_MISC_FILESYSTEMS=y
|
|||||||
# CONFIG_BEFS_FS is not set
|
# CONFIG_BEFS_FS is not set
|
||||||
# CONFIG_BFS_FS is not set
|
# CONFIG_BFS_FS is not set
|
||||||
# CONFIG_EFS_FS is not set
|
# CONFIG_EFS_FS is not set
|
||||||
|
# CONFIG_JFFS2_FS is not set
|
||||||
|
# CONFIG_LOGFS is not set
|
||||||
CONFIG_CRAMFS=y
|
CONFIG_CRAMFS=y
|
||||||
# CONFIG_SQUASHFS is not set
|
# CONFIG_SQUASHFS is not set
|
||||||
# CONFIG_VXFS_FS is not set
|
# CONFIG_VXFS_FS is not set
|
||||||
@@ -889,7 +1375,46 @@ CONFIG_ROMFS_ON_BLOCK=y
|
|||||||
#
|
#
|
||||||
# CONFIG_PARTITION_ADVANCED is not set
|
# CONFIG_PARTITION_ADVANCED is not set
|
||||||
CONFIG_MSDOS_PARTITION=y
|
CONFIG_MSDOS_PARTITION=y
|
||||||
# CONFIG_NLS is not set
|
CONFIG_NLS=y
|
||||||
|
CONFIG_NLS_DEFAULT="iso8859-1"
|
||||||
|
# CONFIG_NLS_CODEPAGE_437 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_737 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_775 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_850 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_852 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_855 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_857 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_860 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_861 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_862 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_863 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_864 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_865 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_866 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_869 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_936 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_950 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_932 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_949 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_874 is not set
|
||||||
|
# CONFIG_NLS_ISO8859_8 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_1250 is not set
|
||||||
|
# CONFIG_NLS_CODEPAGE_1251 is not set
|
||||||
|
# CONFIG_NLS_ASCII is not set
|
||||||
|
# CONFIG_NLS_ISO8859_1 is not set
|
||||||
|
# CONFIG_NLS_ISO8859_2 is not set
|
||||||
|
# CONFIG_NLS_ISO8859_3 is not set
|
||||||
|
# CONFIG_NLS_ISO8859_4 is not set
|
||||||
|
# CONFIG_NLS_ISO8859_5 is not set
|
||||||
|
# CONFIG_NLS_ISO8859_6 is not set
|
||||||
|
# CONFIG_NLS_ISO8859_7 is not set
|
||||||
|
# CONFIG_NLS_ISO8859_9 is not set
|
||||||
|
# CONFIG_NLS_ISO8859_13 is not set
|
||||||
|
# CONFIG_NLS_ISO8859_14 is not set
|
||||||
|
# CONFIG_NLS_ISO8859_15 is not set
|
||||||
|
# CONFIG_NLS_KOI8_R is not set
|
||||||
|
# CONFIG_NLS_KOI8_U is not set
|
||||||
|
# CONFIG_NLS_UTF8 is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
@@ -952,6 +1477,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
|
|||||||
CONFIG_TRACING_SUPPORT=y
|
CONFIG_TRACING_SUPPORT=y
|
||||||
CONFIG_FTRACE=y
|
CONFIG_FTRACE=y
|
||||||
# CONFIG_FUNCTION_TRACER is not set
|
# CONFIG_FUNCTION_TRACER is not set
|
||||||
|
# CONFIG_IRQSOFF_TRACER is not set
|
||||||
# CONFIG_SCHED_TRACER is not set
|
# CONFIG_SCHED_TRACER is not set
|
||||||
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
|
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
|
||||||
# CONFIG_BOOT_TRACER is not set
|
# CONFIG_BOOT_TRACER is not set
|
||||||
@@ -962,6 +1488,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
|
|||||||
# CONFIG_KMEMTRACE is not set
|
# CONFIG_KMEMTRACE is not set
|
||||||
# CONFIG_WORKQUEUE_TRACER is not set
|
# CONFIG_WORKQUEUE_TRACER is not set
|
||||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||||
|
# CONFIG_ATOMIC64_SELFTEST is not set
|
||||||
# CONFIG_SAMPLES is not set
|
# CONFIG_SAMPLES is not set
|
||||||
CONFIG_HAVE_ARCH_KGDB=y
|
CONFIG_HAVE_ARCH_KGDB=y
|
||||||
# CONFIG_KGDB is not set
|
# CONFIG_KGDB is not set
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.33-rc2
|
# Linux kernel version: 2.6.34
|
||||||
# Sat Jan 9 16:33:55 2010
|
# Wed May 26 19:04:32 2010
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||||
CONFIG_GENERIC_GPIO=y
|
CONFIG_GENERIC_GPIO=y
|
||||||
|
CONFIG_GENERIC_TIME=y
|
||||||
|
CONFIG_ARCH_USES_GETTIMEOFFSET=y
|
||||||
|
CONFIG_HAVE_PROC_CPU=y
|
||||||
CONFIG_NO_IOPORT=y
|
CONFIG_NO_IOPORT=y
|
||||||
CONFIG_GENERIC_HARDIRQS=y
|
CONFIG_GENERIC_HARDIRQS=y
|
||||||
CONFIG_STACKTRACE_SUPPORT=y
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
@@ -17,6 +20,7 @@ CONFIG_GENERIC_IRQ_PROBE=y
|
|||||||
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||||
CONFIG_GENERIC_HWEIGHT=y
|
CONFIG_GENERIC_HWEIGHT=y
|
||||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||||
|
CONFIG_NEED_DMA_MAP_STATE=y
|
||||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||||
CONFIG_VECTORS_BASE=0xffff0000
|
CONFIG_VECTORS_BASE=0xffff0000
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
@@ -30,6 +34,13 @@ CONFIG_BROKEN_ON_SMP=y
|
|||||||
CONFIG_INIT_ENV_ARG_LIMIT=32
|
CONFIG_INIT_ENV_ARG_LIMIT=32
|
||||||
CONFIG_LOCALVERSION=""
|
CONFIG_LOCALVERSION=""
|
||||||
CONFIG_LOCALVERSION_AUTO=y
|
CONFIG_LOCALVERSION_AUTO=y
|
||||||
|
CONFIG_HAVE_KERNEL_GZIP=y
|
||||||
|
CONFIG_HAVE_KERNEL_LZMA=y
|
||||||
|
CONFIG_HAVE_KERNEL_LZO=y
|
||||||
|
CONFIG_KERNEL_GZIP=y
|
||||||
|
# CONFIG_KERNEL_BZIP2 is not set
|
||||||
|
# CONFIG_KERNEL_LZMA is not set
|
||||||
|
# CONFIG_KERNEL_LZO is not set
|
||||||
CONFIG_SWAP=y
|
CONFIG_SWAP=y
|
||||||
# CONFIG_SYSVIPC is not set
|
# CONFIG_SYSVIPC is not set
|
||||||
# CONFIG_BSD_PROCESS_ACCT is not set
|
# CONFIG_BSD_PROCESS_ACCT is not set
|
||||||
@@ -46,7 +57,6 @@ CONFIG_RCU_FANOUT=32
|
|||||||
# CONFIG_TREE_RCU_TRACE is not set
|
# CONFIG_TREE_RCU_TRACE is not set
|
||||||
# CONFIG_IKCONFIG is not set
|
# CONFIG_IKCONFIG is not set
|
||||||
CONFIG_LOG_BUF_SHIFT=17
|
CONFIG_LOG_BUF_SHIFT=17
|
||||||
# CONFIG_GROUP_SCHED is not set
|
|
||||||
# CONFIG_CGROUPS is not set
|
# CONFIG_CGROUPS is not set
|
||||||
CONFIG_SYSFS_DEPRECATED=y
|
CONFIG_SYSFS_DEPRECATED=y
|
||||||
CONFIG_SYSFS_DEPRECATED_V2=y
|
CONFIG_SYSFS_DEPRECATED_V2=y
|
||||||
@@ -60,6 +70,7 @@ CONFIG_INITRAMFS_SOURCE=""
|
|||||||
CONFIG_RD_GZIP=y
|
CONFIG_RD_GZIP=y
|
||||||
CONFIG_RD_BZIP2=y
|
CONFIG_RD_BZIP2=y
|
||||||
CONFIG_RD_LZMA=y
|
CONFIG_RD_LZMA=y
|
||||||
|
CONFIG_RD_LZO=y
|
||||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||||
CONFIG_SYSCTL=y
|
CONFIG_SYSCTL=y
|
||||||
CONFIG_ANON_INODES=y
|
CONFIG_ANON_INODES=y
|
||||||
@@ -81,10 +92,14 @@ CONFIG_TIMERFD=y
|
|||||||
CONFIG_EVENTFD=y
|
CONFIG_EVENTFD=y
|
||||||
CONFIG_SHMEM=y
|
CONFIG_SHMEM=y
|
||||||
CONFIG_AIO=y
|
CONFIG_AIO=y
|
||||||
|
CONFIG_HAVE_PERF_EVENTS=y
|
||||||
|
CONFIG_PERF_USE_VMALLOC=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Kernel Performance Events And Counters
|
# Kernel Performance Events And Counters
|
||||||
#
|
#
|
||||||
|
# CONFIG_PERF_EVENTS is not set
|
||||||
|
# CONFIG_PERF_COUNTERS is not set
|
||||||
CONFIG_VM_EVENT_COUNTERS=y
|
CONFIG_VM_EVENT_COUNTERS=y
|
||||||
CONFIG_SLUB_DEBUG=y
|
CONFIG_SLUB_DEBUG=y
|
||||||
CONFIG_COMPAT_BRK=y
|
CONFIG_COMPAT_BRK=y
|
||||||
@@ -166,8 +181,11 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_INTEGRATOR is not set
|
# CONFIG_ARCH_INTEGRATOR is not set
|
||||||
# CONFIG_ARCH_REALVIEW is not set
|
# CONFIG_ARCH_REALVIEW is not set
|
||||||
# CONFIG_ARCH_VERSATILE is not set
|
# CONFIG_ARCH_VERSATILE is not set
|
||||||
|
# CONFIG_ARCH_VEXPRESS is not set
|
||||||
# CONFIG_ARCH_AT91 is not set
|
# CONFIG_ARCH_AT91 is not set
|
||||||
|
# CONFIG_ARCH_BCMRING is not set
|
||||||
# CONFIG_ARCH_CLPS711X is not set
|
# CONFIG_ARCH_CLPS711X is not set
|
||||||
|
# CONFIG_ARCH_CNS3XXX is not set
|
||||||
# CONFIG_ARCH_GEMINI is not set
|
# CONFIG_ARCH_GEMINI is not set
|
||||||
# CONFIG_ARCH_EBSA110 is not set
|
# CONFIG_ARCH_EBSA110 is not set
|
||||||
# CONFIG_ARCH_EP93XX is not set
|
# CONFIG_ARCH_EP93XX is not set
|
||||||
@@ -176,7 +194,6 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_STMP3XXX is not set
|
# CONFIG_ARCH_STMP3XXX is not set
|
||||||
# CONFIG_ARCH_NETX is not set
|
# CONFIG_ARCH_NETX is not set
|
||||||
# CONFIG_ARCH_H720X is not set
|
# CONFIG_ARCH_H720X is not set
|
||||||
# CONFIG_ARCH_NOMADIK is not set
|
|
||||||
# CONFIG_ARCH_IOP13XX is not set
|
# CONFIG_ARCH_IOP13XX is not set
|
||||||
# CONFIG_ARCH_IOP32X is not set
|
# CONFIG_ARCH_IOP32X is not set
|
||||||
# CONFIG_ARCH_IOP33X is not set
|
# CONFIG_ARCH_IOP33X is not set
|
||||||
@@ -193,44 +210,56 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_KS8695 is not set
|
# CONFIG_ARCH_KS8695 is not set
|
||||||
# CONFIG_ARCH_NS9XXX is not set
|
# CONFIG_ARCH_NS9XXX is not set
|
||||||
# CONFIG_ARCH_W90X900 is not set
|
# CONFIG_ARCH_W90X900 is not set
|
||||||
|
# CONFIG_ARCH_NUC93X is not set
|
||||||
# CONFIG_ARCH_PNX4008 is not set
|
# CONFIG_ARCH_PNX4008 is not set
|
||||||
# CONFIG_ARCH_PXA is not set
|
# CONFIG_ARCH_PXA is not set
|
||||||
# CONFIG_ARCH_MSM is not set
|
# CONFIG_ARCH_MSM is not set
|
||||||
|
# CONFIG_ARCH_SHMOBILE is not set
|
||||||
# CONFIG_ARCH_RPC is not set
|
# CONFIG_ARCH_RPC is not set
|
||||||
# CONFIG_ARCH_SA1100 is not set
|
# CONFIG_ARCH_SA1100 is not set
|
||||||
# CONFIG_ARCH_S3C2410 is not set
|
# CONFIG_ARCH_S3C2410 is not set
|
||||||
# CONFIG_ARCH_S3C64XX is not set
|
# CONFIG_ARCH_S3C64XX is not set
|
||||||
CONFIG_ARCH_S5P6440=y
|
CONFIG_ARCH_S5P6440=y
|
||||||
# CONFIG_ARCH_S5PC1XX is not set
|
# CONFIG_ARCH_S5P6442 is not set
|
||||||
|
# CONFIG_ARCH_S5PC100 is not set
|
||||||
|
# CONFIG_ARCH_S5PV210 is not set
|
||||||
# CONFIG_ARCH_SHARK is not set
|
# CONFIG_ARCH_SHARK is not set
|
||||||
# CONFIG_ARCH_LH7A40X is not set
|
# CONFIG_ARCH_LH7A40X is not set
|
||||||
# CONFIG_ARCH_U300 is not set
|
# CONFIG_ARCH_U300 is not set
|
||||||
|
# CONFIG_ARCH_U8500 is not set
|
||||||
|
# CONFIG_ARCH_NOMADIK is not set
|
||||||
# CONFIG_ARCH_DAVINCI is not set
|
# CONFIG_ARCH_DAVINCI is not set
|
||||||
# CONFIG_ARCH_OMAP is not set
|
# CONFIG_ARCH_OMAP is not set
|
||||||
# CONFIG_ARCH_BCMRING is not set
|
# CONFIG_PLAT_SPEAR is not set
|
||||||
# CONFIG_ARCH_U8500 is not set
|
|
||||||
CONFIG_PLAT_SAMSUNG=y
|
CONFIG_PLAT_SAMSUNG=y
|
||||||
CONFIG_SAMSUNG_CLKSRC=y
|
|
||||||
CONFIG_SAMSUNG_IRQ_VIC_TIMER=y
|
|
||||||
CONFIG_SAMSUNG_IRQ_UART=y
|
|
||||||
CONFIG_SAMSUNG_GPIO_EXTRA=0
|
|
||||||
CONFIG_PLAT_S3C=y
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Boot options
|
# Boot options
|
||||||
#
|
#
|
||||||
CONFIG_S3C_BOOT_ERROR_RESET=y
|
CONFIG_S3C_BOOT_ERROR_RESET=y
|
||||||
CONFIG_S3C_BOOT_UART_FORCE_FIFO=y
|
CONFIG_S3C_BOOT_UART_FORCE_FIFO=y
|
||||||
|
CONFIG_S3C_LOWLEVEL_UART_PORT=1
|
||||||
|
CONFIG_SAMSUNG_CLKSRC=y
|
||||||
|
CONFIG_SAMSUNG_IRQ_VIC_TIMER=y
|
||||||
|
CONFIG_SAMSUNG_IRQ_UART=y
|
||||||
|
CONFIG_SAMSUNG_GPIOLIB_4BIT=y
|
||||||
|
CONFIG_S3C_GPIO_CFG_S3C24XX=y
|
||||||
|
CONFIG_S3C_GPIO_CFG_S3C64XX=y
|
||||||
|
CONFIG_S3C_GPIO_PULL_UPDOWN=y
|
||||||
|
CONFIG_S5P_GPIO_DRVSTR=y
|
||||||
|
CONFIG_SAMSUNG_GPIO_EXTRA=0
|
||||||
|
CONFIG_S3C_GPIO_SPACE=0
|
||||||
|
CONFIG_S3C_GPIO_TRACK=y
|
||||||
|
# CONFIG_S3C_ADC is not set
|
||||||
|
CONFIG_S3C_DEV_WDT=y
|
||||||
|
CONFIG_SAMSUNG_DEV_ADC=y
|
||||||
|
CONFIG_SAMSUNG_DEV_TS=y
|
||||||
|
CONFIG_S3C_PL330_DMA=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Power management
|
# Power management
|
||||||
#
|
#
|
||||||
CONFIG_S3C_LOWLEVEL_UART_PORT=1
|
|
||||||
CONFIG_S3C_GPIO_SPACE=0
|
|
||||||
CONFIG_S3C_GPIO_TRACK=y
|
|
||||||
CONFIG_PLAT_S5P=y
|
CONFIG_PLAT_S5P=y
|
||||||
CONFIG_CPU_S5P6440_INIT=y
|
|
||||||
CONFIG_CPU_S5P6440_CLOCK=y
|
|
||||||
CONFIG_CPU_S5P6440=y
|
CONFIG_CPU_S5P6440=y
|
||||||
CONFIG_MACH_SMDK6440=y
|
CONFIG_MACH_SMDK6440=y
|
||||||
|
|
||||||
@@ -258,9 +287,12 @@ CONFIG_ARM_THUMB=y
|
|||||||
# CONFIG_CPU_DCACHE_DISABLE is not set
|
# CONFIG_CPU_DCACHE_DISABLE is not set
|
||||||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||||
CONFIG_ARM_L1_CACHE_SHIFT=5
|
CONFIG_ARM_L1_CACHE_SHIFT=5
|
||||||
|
CONFIG_ARM_DMA_MEM_BUFFERABLE=y
|
||||||
|
CONFIG_CPU_HAS_PMU=y
|
||||||
# CONFIG_ARM_ERRATA_411920 is not set
|
# CONFIG_ARM_ERRATA_411920 is not set
|
||||||
CONFIG_ARM_VIC=y
|
CONFIG_ARM_VIC=y
|
||||||
CONFIG_ARM_VIC_NR=2
|
CONFIG_ARM_VIC_NR=2
|
||||||
|
CONFIG_PL330=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bus support
|
# Bus support
|
||||||
@@ -307,6 +339,7 @@ CONFIG_ALIGNMENT_TRAP=y
|
|||||||
CONFIG_ZBOOT_ROM_TEXT=0
|
CONFIG_ZBOOT_ROM_TEXT=0
|
||||||
CONFIG_ZBOOT_ROM_BSS=0
|
CONFIG_ZBOOT_ROM_BSS=0
|
||||||
CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x20800000,8M console=ttySAC1,115200 init=/linuxrc"
|
CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x20800000,8M console=ttySAC1,115200 init=/linuxrc"
|
||||||
|
# CONFIG_CMDLINE_FORCE is not set
|
||||||
# CONFIG_XIP_KERNEL is not set
|
# CONFIG_XIP_KERNEL is not set
|
||||||
# CONFIG_KEXEC is not set
|
# CONFIG_KEXEC is not set
|
||||||
|
|
||||||
@@ -382,6 +415,7 @@ CONFIG_HAVE_IDE=y
|
|||||||
#
|
#
|
||||||
# SCSI device support
|
# SCSI device support
|
||||||
#
|
#
|
||||||
|
CONFIG_SCSI_MOD=y
|
||||||
# CONFIG_RAID_ATTRS is not set
|
# CONFIG_RAID_ATTRS is not set
|
||||||
CONFIG_SCSI=y
|
CONFIG_SCSI=y
|
||||||
CONFIG_SCSI_DMA=y
|
CONFIG_SCSI_DMA=y
|
||||||
@@ -470,7 +504,9 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
|
|||||||
CONFIG_INPUT_TOUCHSCREEN=y
|
CONFIG_INPUT_TOUCHSCREEN=y
|
||||||
# CONFIG_TOUCHSCREEN_AD7879 is not set
|
# CONFIG_TOUCHSCREEN_AD7879 is not set
|
||||||
# CONFIG_TOUCHSCREEN_DYNAPRO is not set
|
# CONFIG_TOUCHSCREEN_DYNAPRO is not set
|
||||||
|
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
|
||||||
# CONFIG_TOUCHSCREEN_FUJITSU is not set
|
# CONFIG_TOUCHSCREEN_FUJITSU is not set
|
||||||
|
# CONFIG_TOUCHSCREEN_S3C2410 is not set
|
||||||
# CONFIG_TOUCHSCREEN_GUNZE is not set
|
# CONFIG_TOUCHSCREEN_GUNZE is not set
|
||||||
# CONFIG_TOUCHSCREEN_ELO is not set
|
# CONFIG_TOUCHSCREEN_ELO is not set
|
||||||
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
|
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
|
||||||
@@ -518,12 +554,16 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=3
|
|||||||
# Non-8250 serial port support
|
# Non-8250 serial port support
|
||||||
#
|
#
|
||||||
CONFIG_SERIAL_SAMSUNG=y
|
CONFIG_SERIAL_SAMSUNG=y
|
||||||
|
CONFIG_SERIAL_SAMSUNG_UARTS_4=y
|
||||||
CONFIG_SERIAL_SAMSUNG_UARTS=4
|
CONFIG_SERIAL_SAMSUNG_UARTS=4
|
||||||
# CONFIG_SERIAL_SAMSUNG_DEBUG is not set
|
# CONFIG_SERIAL_SAMSUNG_DEBUG is not set
|
||||||
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
|
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
|
||||||
CONFIG_SERIAL_S5P6440=y
|
CONFIG_SERIAL_S3C6400=y
|
||||||
CONFIG_SERIAL_CORE=y
|
CONFIG_SERIAL_CORE=y
|
||||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||||
|
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||||
|
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
|
||||||
|
# CONFIG_SERIAL_ALTERA_UART is not set
|
||||||
CONFIG_UNIX98_PTYS=y
|
CONFIG_UNIX98_PTYS=y
|
||||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||||
CONFIG_LEGACY_PTYS=y
|
CONFIG_LEGACY_PTYS=y
|
||||||
@@ -549,6 +589,7 @@ CONFIG_GPIOLIB=y
|
|||||||
#
|
#
|
||||||
# Memory mapped GPIO expanders:
|
# Memory mapped GPIO expanders:
|
||||||
#
|
#
|
||||||
|
# CONFIG_GPIO_IT8761E is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# I2C GPIO expanders:
|
# I2C GPIO expanders:
|
||||||
@@ -570,6 +611,7 @@ CONFIG_GPIOLIB=y
|
|||||||
# CONFIG_HWMON is not set
|
# CONFIG_HWMON is not set
|
||||||
# CONFIG_THERMAL is not set
|
# CONFIG_THERMAL is not set
|
||||||
# CONFIG_WATCHDOG is not set
|
# CONFIG_WATCHDOG is not set
|
||||||
|
CONFIG_HAVE_S3C2410_WATCHDOG=y
|
||||||
CONFIG_SSB_POSSIBLE=y
|
CONFIG_SSB_POSSIBLE=y
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -626,10 +668,6 @@ CONFIG_RTC_LIB=y
|
|||||||
# CONFIG_DMADEVICES is not set
|
# CONFIG_DMADEVICES is not set
|
||||||
# CONFIG_AUXDISPLAY is not set
|
# CONFIG_AUXDISPLAY is not set
|
||||||
# CONFIG_UIO is not set
|
# CONFIG_UIO is not set
|
||||||
|
|
||||||
#
|
|
||||||
# TI VLYNQ
|
|
||||||
#
|
|
||||||
# CONFIG_STAGING is not set
|
# CONFIG_STAGING is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -704,6 +742,7 @@ CONFIG_MISC_FILESYSTEMS=y
|
|||||||
# CONFIG_BEFS_FS is not set
|
# CONFIG_BEFS_FS is not set
|
||||||
# CONFIG_BFS_FS is not set
|
# CONFIG_BFS_FS is not set
|
||||||
# CONFIG_EFS_FS is not set
|
# CONFIG_EFS_FS is not set
|
||||||
|
# CONFIG_LOGFS is not set
|
||||||
CONFIG_CRAMFS=y
|
CONFIG_CRAMFS=y
|
||||||
# CONFIG_SQUASHFS is not set
|
# CONFIG_SQUASHFS is not set
|
||||||
# CONFIG_VXFS_FS is not set
|
# CONFIG_VXFS_FS is not set
|
||||||
@@ -826,6 +865,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
|
|||||||
CONFIG_TRACING_SUPPORT=y
|
CONFIG_TRACING_SUPPORT=y
|
||||||
CONFIG_FTRACE=y
|
CONFIG_FTRACE=y
|
||||||
# CONFIG_FUNCTION_TRACER is not set
|
# CONFIG_FUNCTION_TRACER is not set
|
||||||
|
# CONFIG_IRQSOFF_TRACER is not set
|
||||||
# CONFIG_SCHED_TRACER is not set
|
# CONFIG_SCHED_TRACER is not set
|
||||||
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
|
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
|
||||||
# CONFIG_BOOT_TRACER is not set
|
# CONFIG_BOOT_TRACER is not set
|
||||||
@@ -836,6 +876,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
|
|||||||
# CONFIG_KMEMTRACE is not set
|
# CONFIG_KMEMTRACE is not set
|
||||||
# CONFIG_WORKQUEUE_TRACER is not set
|
# CONFIG_WORKQUEUE_TRACER is not set
|
||||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||||
|
# CONFIG_ATOMIC64_SELFTEST is not set
|
||||||
# CONFIG_SAMPLES is not set
|
# CONFIG_SAMPLES is not set
|
||||||
CONFIG_HAVE_ARCH_KGDB=y
|
CONFIG_HAVE_ARCH_KGDB=y
|
||||||
# CONFIG_KGDB is not set
|
# CONFIG_KGDB is not set
|
||||||
@@ -962,8 +1003,10 @@ CONFIG_CRC32=y
|
|||||||
# CONFIG_CRC7 is not set
|
# CONFIG_CRC7 is not set
|
||||||
# CONFIG_LIBCRC32C is not set
|
# CONFIG_LIBCRC32C is not set
|
||||||
CONFIG_ZLIB_INFLATE=y
|
CONFIG_ZLIB_INFLATE=y
|
||||||
|
CONFIG_LZO_DECOMPRESS=y
|
||||||
CONFIG_DECOMPRESS_GZIP=y
|
CONFIG_DECOMPRESS_GZIP=y
|
||||||
CONFIG_DECOMPRESS_BZIP2=y
|
CONFIG_DECOMPRESS_BZIP2=y
|
||||||
CONFIG_DECOMPRESS_LZMA=y
|
CONFIG_DECOMPRESS_LZMA=y
|
||||||
|
CONFIG_DECOMPRESS_LZO=y
|
||||||
CONFIG_HAS_IOMEM=y
|
CONFIG_HAS_IOMEM=y
|
||||||
CONFIG_HAS_DMA=y
|
CONFIG_HAS_DMA=y
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.33-rc4
|
# Linux kernel version: 2.6.34
|
||||||
# Mon Jan 25 08:50:28 2010
|
# Wed May 26 19:04:34 2010
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||||
CONFIG_GENERIC_GPIO=y
|
CONFIG_GENERIC_GPIO=y
|
||||||
|
CONFIG_GENERIC_TIME=y
|
||||||
|
CONFIG_ARCH_USES_GETTIMEOFFSET=y
|
||||||
|
CONFIG_HAVE_PROC_CPU=y
|
||||||
CONFIG_NO_IOPORT=y
|
CONFIG_NO_IOPORT=y
|
||||||
CONFIG_GENERIC_HARDIRQS=y
|
CONFIG_GENERIC_HARDIRQS=y
|
||||||
CONFIG_STACKTRACE_SUPPORT=y
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
@@ -17,6 +20,7 @@ CONFIG_GENERIC_IRQ_PROBE=y
|
|||||||
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||||
CONFIG_GENERIC_HWEIGHT=y
|
CONFIG_GENERIC_HWEIGHT=y
|
||||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||||
|
CONFIG_NEED_DMA_MAP_STATE=y
|
||||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||||
CONFIG_VECTORS_BASE=0xffff0000
|
CONFIG_VECTORS_BASE=0xffff0000
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
@@ -31,6 +35,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
|
|||||||
CONFIG_LOCALVERSION=""
|
CONFIG_LOCALVERSION=""
|
||||||
CONFIG_LOCALVERSION_AUTO=y
|
CONFIG_LOCALVERSION_AUTO=y
|
||||||
CONFIG_HAVE_KERNEL_GZIP=y
|
CONFIG_HAVE_KERNEL_GZIP=y
|
||||||
|
CONFIG_HAVE_KERNEL_LZMA=y
|
||||||
CONFIG_HAVE_KERNEL_LZO=y
|
CONFIG_HAVE_KERNEL_LZO=y
|
||||||
CONFIG_KERNEL_GZIP=y
|
CONFIG_KERNEL_GZIP=y
|
||||||
# CONFIG_KERNEL_BZIP2 is not set
|
# CONFIG_KERNEL_BZIP2 is not set
|
||||||
@@ -52,7 +57,6 @@ CONFIG_RCU_FANOUT=32
|
|||||||
# CONFIG_TREE_RCU_TRACE is not set
|
# CONFIG_TREE_RCU_TRACE is not set
|
||||||
# CONFIG_IKCONFIG is not set
|
# CONFIG_IKCONFIG is not set
|
||||||
CONFIG_LOG_BUF_SHIFT=17
|
CONFIG_LOG_BUF_SHIFT=17
|
||||||
# CONFIG_GROUP_SCHED is not set
|
|
||||||
# CONFIG_CGROUPS is not set
|
# CONFIG_CGROUPS is not set
|
||||||
CONFIG_SYSFS_DEPRECATED=y
|
CONFIG_SYSFS_DEPRECATED=y
|
||||||
CONFIG_SYSFS_DEPRECATED_V2=y
|
CONFIG_SYSFS_DEPRECATED_V2=y
|
||||||
@@ -88,10 +92,14 @@ CONFIG_TIMERFD=y
|
|||||||
CONFIG_EVENTFD=y
|
CONFIG_EVENTFD=y
|
||||||
CONFIG_SHMEM=y
|
CONFIG_SHMEM=y
|
||||||
CONFIG_AIO=y
|
CONFIG_AIO=y
|
||||||
|
CONFIG_HAVE_PERF_EVENTS=y
|
||||||
|
CONFIG_PERF_USE_VMALLOC=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Kernel Performance Events And Counters
|
# Kernel Performance Events And Counters
|
||||||
#
|
#
|
||||||
|
# CONFIG_PERF_EVENTS is not set
|
||||||
|
# CONFIG_PERF_COUNTERS is not set
|
||||||
CONFIG_VM_EVENT_COUNTERS=y
|
CONFIG_VM_EVENT_COUNTERS=y
|
||||||
CONFIG_SLUB_DEBUG=y
|
CONFIG_SLUB_DEBUG=y
|
||||||
CONFIG_COMPAT_BRK=y
|
CONFIG_COMPAT_BRK=y
|
||||||
@@ -173,8 +181,11 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_INTEGRATOR is not set
|
# CONFIG_ARCH_INTEGRATOR is not set
|
||||||
# CONFIG_ARCH_REALVIEW is not set
|
# CONFIG_ARCH_REALVIEW is not set
|
||||||
# CONFIG_ARCH_VERSATILE is not set
|
# CONFIG_ARCH_VERSATILE is not set
|
||||||
|
# CONFIG_ARCH_VEXPRESS is not set
|
||||||
# CONFIG_ARCH_AT91 is not set
|
# CONFIG_ARCH_AT91 is not set
|
||||||
|
# CONFIG_ARCH_BCMRING is not set
|
||||||
# CONFIG_ARCH_CLPS711X is not set
|
# CONFIG_ARCH_CLPS711X is not set
|
||||||
|
# CONFIG_ARCH_CNS3XXX is not set
|
||||||
# CONFIG_ARCH_GEMINI is not set
|
# CONFIG_ARCH_GEMINI is not set
|
||||||
# CONFIG_ARCH_EBSA110 is not set
|
# CONFIG_ARCH_EBSA110 is not set
|
||||||
# CONFIG_ARCH_EP93XX is not set
|
# CONFIG_ARCH_EP93XX is not set
|
||||||
@@ -183,7 +194,6 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_STMP3XXX is not set
|
# CONFIG_ARCH_STMP3XXX is not set
|
||||||
# CONFIG_ARCH_NETX is not set
|
# CONFIG_ARCH_NETX is not set
|
||||||
# CONFIG_ARCH_H720X is not set
|
# CONFIG_ARCH_H720X is not set
|
||||||
# CONFIG_ARCH_NOMADIK is not set
|
|
||||||
# CONFIG_ARCH_IOP13XX is not set
|
# CONFIG_ARCH_IOP13XX is not set
|
||||||
# CONFIG_ARCH_IOP32X is not set
|
# CONFIG_ARCH_IOP32X is not set
|
||||||
# CONFIG_ARCH_IOP33X is not set
|
# CONFIG_ARCH_IOP33X is not set
|
||||||
@@ -200,38 +210,28 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_KS8695 is not set
|
# CONFIG_ARCH_KS8695 is not set
|
||||||
# CONFIG_ARCH_NS9XXX is not set
|
# CONFIG_ARCH_NS9XXX is not set
|
||||||
# CONFIG_ARCH_W90X900 is not set
|
# CONFIG_ARCH_W90X900 is not set
|
||||||
|
# CONFIG_ARCH_NUC93X is not set
|
||||||
# CONFIG_ARCH_PNX4008 is not set
|
# CONFIG_ARCH_PNX4008 is not set
|
||||||
# CONFIG_ARCH_PXA is not set
|
# CONFIG_ARCH_PXA is not set
|
||||||
# CONFIG_ARCH_MSM is not set
|
# CONFIG_ARCH_MSM is not set
|
||||||
|
# CONFIG_ARCH_SHMOBILE is not set
|
||||||
# CONFIG_ARCH_RPC is not set
|
# CONFIG_ARCH_RPC is not set
|
||||||
# CONFIG_ARCH_SA1100 is not set
|
# CONFIG_ARCH_SA1100 is not set
|
||||||
# CONFIG_ARCH_S3C2410 is not set
|
# CONFIG_ARCH_S3C2410 is not set
|
||||||
# CONFIG_ARCH_S3C64XX is not set
|
# CONFIG_ARCH_S3C64XX is not set
|
||||||
# CONFIG_ARCH_S5P6440 is not set
|
# CONFIG_ARCH_S5P6440 is not set
|
||||||
CONFIG_ARCH_S5P6442=y
|
CONFIG_ARCH_S5P6442=y
|
||||||
# CONFIG_ARCH_S5PC1XX is not set
|
# CONFIG_ARCH_S5PC100 is not set
|
||||||
|
# CONFIG_ARCH_S5PV210 is not set
|
||||||
# CONFIG_ARCH_SHARK is not set
|
# CONFIG_ARCH_SHARK is not set
|
||||||
# CONFIG_ARCH_LH7A40X is not set
|
# CONFIG_ARCH_LH7A40X is not set
|
||||||
# CONFIG_ARCH_U300 is not set
|
# CONFIG_ARCH_U300 is not set
|
||||||
|
# CONFIG_ARCH_U8500 is not set
|
||||||
|
# CONFIG_ARCH_NOMADIK is not set
|
||||||
# CONFIG_ARCH_DAVINCI is not set
|
# CONFIG_ARCH_DAVINCI is not set
|
||||||
# CONFIG_ARCH_OMAP is not set
|
# CONFIG_ARCH_OMAP is not set
|
||||||
# CONFIG_ARCH_BCMRING is not set
|
# CONFIG_PLAT_SPEAR is not set
|
||||||
# CONFIG_ARCH_U8500 is not set
|
|
||||||
CONFIG_PLAT_SAMSUNG=y
|
CONFIG_PLAT_SAMSUNG=y
|
||||||
CONFIG_SAMSUNG_CLKSRC=y
|
|
||||||
CONFIG_SAMSUNG_IRQ_VIC_TIMER=y
|
|
||||||
CONFIG_SAMSUNG_IRQ_UART=y
|
|
||||||
CONFIG_SAMSUNG_GPIOLIB_4BIT=y
|
|
||||||
CONFIG_S3C_GPIO_CFG_S3C24XX=y
|
|
||||||
CONFIG_S3C_GPIO_CFG_S3C64XX=y
|
|
||||||
CONFIG_S3C_GPIO_PULL_UPDOWN=y
|
|
||||||
CONFIG_SAMSUNG_GPIO_EXTRA=0
|
|
||||||
# CONFIG_S3C_ADC is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# Power management
|
|
||||||
#
|
|
||||||
CONFIG_PLAT_S3C=y
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Boot options
|
# Boot options
|
||||||
@@ -239,8 +239,23 @@ CONFIG_PLAT_S3C=y
|
|||||||
# CONFIG_S3C_BOOT_ERROR_RESET is not set
|
# CONFIG_S3C_BOOT_ERROR_RESET is not set
|
||||||
CONFIG_S3C_BOOT_UART_FORCE_FIFO=y
|
CONFIG_S3C_BOOT_UART_FORCE_FIFO=y
|
||||||
CONFIG_S3C_LOWLEVEL_UART_PORT=1
|
CONFIG_S3C_LOWLEVEL_UART_PORT=1
|
||||||
|
CONFIG_SAMSUNG_CLKSRC=y
|
||||||
|
CONFIG_SAMSUNG_IRQ_VIC_TIMER=y
|
||||||
|
CONFIG_SAMSUNG_IRQ_UART=y
|
||||||
|
CONFIG_SAMSUNG_GPIOLIB_4BIT=y
|
||||||
|
CONFIG_S3C_GPIO_CFG_S3C24XX=y
|
||||||
|
CONFIG_S3C_GPIO_CFG_S3C64XX=y
|
||||||
|
CONFIG_S3C_GPIO_PULL_UPDOWN=y
|
||||||
|
CONFIG_S5P_GPIO_DRVSTR=y
|
||||||
|
CONFIG_SAMSUNG_GPIO_EXTRA=0
|
||||||
CONFIG_S3C_GPIO_SPACE=0
|
CONFIG_S3C_GPIO_SPACE=0
|
||||||
CONFIG_S3C_GPIO_TRACK=y
|
CONFIG_S3C_GPIO_TRACK=y
|
||||||
|
# CONFIG_S3C_ADC is not set
|
||||||
|
CONFIG_S3C_PL330_DMA=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Power management
|
||||||
|
#
|
||||||
CONFIG_PLAT_S5P=y
|
CONFIG_PLAT_S5P=y
|
||||||
CONFIG_CPU_S5P6442=y
|
CONFIG_CPU_S5P6442=y
|
||||||
CONFIG_MACH_SMDK6442=y
|
CONFIG_MACH_SMDK6442=y
|
||||||
@@ -269,9 +284,12 @@ CONFIG_ARM_THUMB=y
|
|||||||
# CONFIG_CPU_DCACHE_DISABLE is not set
|
# CONFIG_CPU_DCACHE_DISABLE is not set
|
||||||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||||
CONFIG_ARM_L1_CACHE_SHIFT=5
|
CONFIG_ARM_L1_CACHE_SHIFT=5
|
||||||
|
CONFIG_ARM_DMA_MEM_BUFFERABLE=y
|
||||||
|
CONFIG_CPU_HAS_PMU=y
|
||||||
# CONFIG_ARM_ERRATA_411920 is not set
|
# CONFIG_ARM_ERRATA_411920 is not set
|
||||||
CONFIG_ARM_VIC=y
|
CONFIG_ARM_VIC=y
|
||||||
CONFIG_ARM_VIC_NR=2
|
CONFIG_ARM_VIC_NR=2
|
||||||
|
CONFIG_PL330=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bus support
|
# Bus support
|
||||||
@@ -318,6 +336,7 @@ CONFIG_ALIGNMENT_TRAP=y
|
|||||||
CONFIG_ZBOOT_ROM_TEXT=0
|
CONFIG_ZBOOT_ROM_TEXT=0
|
||||||
CONFIG_ZBOOT_ROM_BSS=0
|
CONFIG_ZBOOT_ROM_BSS=0
|
||||||
CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x20800000,8M console=ttySAC1,115200 init=/linuxrc"
|
CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x20800000,8M console=ttySAC1,115200 init=/linuxrc"
|
||||||
|
# CONFIG_CMDLINE_FORCE is not set
|
||||||
# CONFIG_XIP_KERNEL is not set
|
# CONFIG_XIP_KERNEL is not set
|
||||||
# CONFIG_KEXEC is not set
|
# CONFIG_KEXEC is not set
|
||||||
|
|
||||||
@@ -394,6 +413,7 @@ CONFIG_HAVE_IDE=y
|
|||||||
#
|
#
|
||||||
# SCSI device support
|
# SCSI device support
|
||||||
#
|
#
|
||||||
|
CONFIG_SCSI_MOD=y
|
||||||
# CONFIG_RAID_ATTRS is not set
|
# CONFIG_RAID_ATTRS is not set
|
||||||
CONFIG_SCSI=y
|
CONFIG_SCSI=y
|
||||||
CONFIG_SCSI_DMA=y
|
CONFIG_SCSI_DMA=y
|
||||||
@@ -462,6 +482,7 @@ CONFIG_INPUT_EVDEV=y
|
|||||||
CONFIG_INPUT_TOUCHSCREEN=y
|
CONFIG_INPUT_TOUCHSCREEN=y
|
||||||
# CONFIG_TOUCHSCREEN_AD7879 is not set
|
# CONFIG_TOUCHSCREEN_AD7879 is not set
|
||||||
# CONFIG_TOUCHSCREEN_DYNAPRO is not set
|
# CONFIG_TOUCHSCREEN_DYNAPRO is not set
|
||||||
|
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
|
||||||
# CONFIG_TOUCHSCREEN_FUJITSU is not set
|
# CONFIG_TOUCHSCREEN_FUJITSU is not set
|
||||||
# CONFIG_TOUCHSCREEN_GUNZE is not set
|
# CONFIG_TOUCHSCREEN_GUNZE is not set
|
||||||
# CONFIG_TOUCHSCREEN_ELO is not set
|
# CONFIG_TOUCHSCREEN_ELO is not set
|
||||||
@@ -515,6 +536,9 @@ CONFIG_SERIAL_SAMSUNG_CONSOLE=y
|
|||||||
CONFIG_SERIAL_S5PV210=y
|
CONFIG_SERIAL_S5PV210=y
|
||||||
CONFIG_SERIAL_CORE=y
|
CONFIG_SERIAL_CORE=y
|
||||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||||
|
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||||
|
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
|
||||||
|
# CONFIG_SERIAL_ALTERA_UART is not set
|
||||||
CONFIG_UNIX98_PTYS=y
|
CONFIG_UNIX98_PTYS=y
|
||||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||||
CONFIG_LEGACY_PTYS=y
|
CONFIG_LEGACY_PTYS=y
|
||||||
@@ -540,6 +564,7 @@ CONFIG_GPIOLIB=y
|
|||||||
#
|
#
|
||||||
# Memory mapped GPIO expanders:
|
# Memory mapped GPIO expanders:
|
||||||
#
|
#
|
||||||
|
# CONFIG_GPIO_IT8761E is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# I2C GPIO expanders:
|
# I2C GPIO expanders:
|
||||||
@@ -613,10 +638,6 @@ CONFIG_RTC_LIB=y
|
|||||||
# CONFIG_DMADEVICES is not set
|
# CONFIG_DMADEVICES is not set
|
||||||
# CONFIG_AUXDISPLAY is not set
|
# CONFIG_AUXDISPLAY is not set
|
||||||
# CONFIG_UIO is not set
|
# CONFIG_UIO is not set
|
||||||
|
|
||||||
#
|
|
||||||
# TI VLYNQ
|
|
||||||
#
|
|
||||||
# CONFIG_STAGING is not set
|
# CONFIG_STAGING is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -685,6 +706,7 @@ CONFIG_MISC_FILESYSTEMS=y
|
|||||||
# CONFIG_BEFS_FS is not set
|
# CONFIG_BEFS_FS is not set
|
||||||
# CONFIG_BFS_FS is not set
|
# CONFIG_BFS_FS is not set
|
||||||
# CONFIG_EFS_FS is not set
|
# CONFIG_EFS_FS is not set
|
||||||
|
# CONFIG_LOGFS is not set
|
||||||
CONFIG_CRAMFS=y
|
CONFIG_CRAMFS=y
|
||||||
# CONFIG_SQUASHFS is not set
|
# CONFIG_SQUASHFS is not set
|
||||||
# CONFIG_VXFS_FS is not set
|
# CONFIG_VXFS_FS is not set
|
||||||
@@ -824,6 +846,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
|
|||||||
CONFIG_TRACING_SUPPORT=y
|
CONFIG_TRACING_SUPPORT=y
|
||||||
CONFIG_FTRACE=y
|
CONFIG_FTRACE=y
|
||||||
# CONFIG_FUNCTION_TRACER is not set
|
# CONFIG_FUNCTION_TRACER is not set
|
||||||
|
# CONFIG_IRQSOFF_TRACER is not set
|
||||||
# CONFIG_SCHED_TRACER is not set
|
# CONFIG_SCHED_TRACER is not set
|
||||||
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
|
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
|
||||||
# CONFIG_BOOT_TRACER is not set
|
# CONFIG_BOOT_TRACER is not set
|
||||||
@@ -834,6 +857,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
|
|||||||
# CONFIG_KMEMTRACE is not set
|
# CONFIG_KMEMTRACE is not set
|
||||||
# CONFIG_WORKQUEUE_TRACER is not set
|
# CONFIG_WORKQUEUE_TRACER is not set
|
||||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||||
|
# CONFIG_ATOMIC64_SELFTEST is not set
|
||||||
# CONFIG_SAMPLES is not set
|
# CONFIG_SAMPLES is not set
|
||||||
CONFIG_HAVE_ARCH_KGDB=y
|
CONFIG_HAVE_ARCH_KGDB=y
|
||||||
# CONFIG_KGDB is not set
|
# CONFIG_KGDB is not set
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.30
|
# Linux kernel version: 2.6.34
|
||||||
# Wed Jul 1 15:53:07 2009
|
# Wed May 26 19:04:35 2010
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||||
CONFIG_GENERIC_GPIO=y
|
CONFIG_GENERIC_GPIO=y
|
||||||
CONFIG_MMU=y
|
CONFIG_GENERIC_TIME=y
|
||||||
|
CONFIG_ARCH_USES_GETTIMEOFFSET=y
|
||||||
|
CONFIG_HAVE_PROC_CPU=y
|
||||||
CONFIG_NO_IOPORT=y
|
CONFIG_NO_IOPORT=y
|
||||||
CONFIG_GENERIC_HARDIRQS=y
|
CONFIG_GENERIC_HARDIRQS=y
|
||||||
CONFIG_STACKTRACE_SUPPORT=y
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
@@ -18,7 +20,9 @@ CONFIG_GENERIC_IRQ_PROBE=y
|
|||||||
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||||
CONFIG_GENERIC_HWEIGHT=y
|
CONFIG_GENERIC_HWEIGHT=y
|
||||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||||
|
CONFIG_NEED_DMA_MAP_STATE=y
|
||||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||||
|
CONFIG_ARM_L1_CACHE_SHIFT_6=y
|
||||||
CONFIG_VECTORS_BASE=0xffff0000
|
CONFIG_VECTORS_BASE=0xffff0000
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
CONFIG_CONSTRUCTORS=y
|
CONFIG_CONSTRUCTORS=y
|
||||||
@@ -31,6 +35,13 @@ CONFIG_BROKEN_ON_SMP=y
|
|||||||
CONFIG_INIT_ENV_ARG_LIMIT=32
|
CONFIG_INIT_ENV_ARG_LIMIT=32
|
||||||
CONFIG_LOCALVERSION=""
|
CONFIG_LOCALVERSION=""
|
||||||
CONFIG_LOCALVERSION_AUTO=y
|
CONFIG_LOCALVERSION_AUTO=y
|
||||||
|
CONFIG_HAVE_KERNEL_GZIP=y
|
||||||
|
CONFIG_HAVE_KERNEL_LZMA=y
|
||||||
|
CONFIG_HAVE_KERNEL_LZO=y
|
||||||
|
CONFIG_KERNEL_GZIP=y
|
||||||
|
# CONFIG_KERNEL_BZIP2 is not set
|
||||||
|
# CONFIG_KERNEL_LZMA is not set
|
||||||
|
# CONFIG_KERNEL_LZO is not set
|
||||||
CONFIG_SWAP=y
|
CONFIG_SWAP=y
|
||||||
# CONFIG_SYSVIPC is not set
|
# CONFIG_SYSVIPC is not set
|
||||||
# CONFIG_BSD_PROCESS_ACCT is not set
|
# CONFIG_BSD_PROCESS_ACCT is not set
|
||||||
@@ -38,14 +49,15 @@ CONFIG_SWAP=y
|
|||||||
#
|
#
|
||||||
# RCU Subsystem
|
# RCU Subsystem
|
||||||
#
|
#
|
||||||
CONFIG_CLASSIC_RCU=y
|
CONFIG_TREE_RCU=y
|
||||||
# CONFIG_TREE_RCU is not set
|
# CONFIG_TREE_PREEMPT_RCU is not set
|
||||||
# CONFIG_PREEMPT_RCU is not set
|
# CONFIG_TINY_RCU is not set
|
||||||
|
# CONFIG_RCU_TRACE is not set
|
||||||
|
CONFIG_RCU_FANOUT=32
|
||||||
|
# CONFIG_RCU_FANOUT_EXACT is not set
|
||||||
# CONFIG_TREE_RCU_TRACE is not set
|
# CONFIG_TREE_RCU_TRACE is not set
|
||||||
# CONFIG_PREEMPT_RCU_TRACE is not set
|
|
||||||
# CONFIG_IKCONFIG is not set
|
# CONFIG_IKCONFIG is not set
|
||||||
CONFIG_LOG_BUF_SHIFT=17
|
CONFIG_LOG_BUF_SHIFT=17
|
||||||
# CONFIG_GROUP_SCHED is not set
|
|
||||||
# CONFIG_CGROUPS is not set
|
# CONFIG_CGROUPS is not set
|
||||||
CONFIG_SYSFS_DEPRECATED=y
|
CONFIG_SYSFS_DEPRECATED=y
|
||||||
CONFIG_SYSFS_DEPRECATED_V2=y
|
CONFIG_SYSFS_DEPRECATED_V2=y
|
||||||
@@ -59,6 +71,7 @@ CONFIG_INITRAMFS_SOURCE=""
|
|||||||
CONFIG_RD_GZIP=y
|
CONFIG_RD_GZIP=y
|
||||||
CONFIG_RD_BZIP2=y
|
CONFIG_RD_BZIP2=y
|
||||||
CONFIG_RD_LZMA=y
|
CONFIG_RD_LZMA=y
|
||||||
|
CONFIG_RD_LZO=y
|
||||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||||
CONFIG_SYSCTL=y
|
CONFIG_SYSCTL=y
|
||||||
CONFIG_ANON_INODES=y
|
CONFIG_ANON_INODES=y
|
||||||
@@ -80,19 +93,21 @@ CONFIG_TIMERFD=y
|
|||||||
CONFIG_EVENTFD=y
|
CONFIG_EVENTFD=y
|
||||||
CONFIG_SHMEM=y
|
CONFIG_SHMEM=y
|
||||||
CONFIG_AIO=y
|
CONFIG_AIO=y
|
||||||
|
CONFIG_HAVE_PERF_EVENTS=y
|
||||||
|
CONFIG_PERF_USE_VMALLOC=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Performance Counters
|
# Kernel Performance Events And Counters
|
||||||
#
|
#
|
||||||
|
# CONFIG_PERF_EVENTS is not set
|
||||||
|
# CONFIG_PERF_COUNTERS is not set
|
||||||
CONFIG_VM_EVENT_COUNTERS=y
|
CONFIG_VM_EVENT_COUNTERS=y
|
||||||
CONFIG_SLUB_DEBUG=y
|
CONFIG_SLUB_DEBUG=y
|
||||||
# CONFIG_STRIP_ASM_SYMS is not set
|
|
||||||
CONFIG_COMPAT_BRK=y
|
CONFIG_COMPAT_BRK=y
|
||||||
# CONFIG_SLAB is not set
|
# CONFIG_SLAB is not set
|
||||||
CONFIG_SLUB=y
|
CONFIG_SLUB=y
|
||||||
# CONFIG_SLOB is not set
|
# CONFIG_SLOB is not set
|
||||||
# CONFIG_PROFILING is not set
|
# CONFIG_PROFILING is not set
|
||||||
# CONFIG_MARKERS is not set
|
|
||||||
CONFIG_HAVE_OPROFILE=y
|
CONFIG_HAVE_OPROFILE=y
|
||||||
# CONFIG_KPROBES is not set
|
# CONFIG_KPROBES is not set
|
||||||
CONFIG_HAVE_KPROBES=y
|
CONFIG_HAVE_KPROBES=y
|
||||||
@@ -122,25 +137,56 @@ CONFIG_LBDAF=y
|
|||||||
# IO Schedulers
|
# IO Schedulers
|
||||||
#
|
#
|
||||||
CONFIG_IOSCHED_NOOP=y
|
CONFIG_IOSCHED_NOOP=y
|
||||||
CONFIG_IOSCHED_AS=y
|
|
||||||
CONFIG_IOSCHED_DEADLINE=y
|
CONFIG_IOSCHED_DEADLINE=y
|
||||||
CONFIG_IOSCHED_CFQ=y
|
CONFIG_IOSCHED_CFQ=y
|
||||||
# CONFIG_DEFAULT_AS is not set
|
|
||||||
# CONFIG_DEFAULT_DEADLINE is not set
|
# CONFIG_DEFAULT_DEADLINE is not set
|
||||||
CONFIG_DEFAULT_CFQ=y
|
CONFIG_DEFAULT_CFQ=y
|
||||||
# CONFIG_DEFAULT_NOOP is not set
|
# CONFIG_DEFAULT_NOOP is not set
|
||||||
CONFIG_DEFAULT_IOSCHED="cfq"
|
CONFIG_DEFAULT_IOSCHED="cfq"
|
||||||
|
# CONFIG_INLINE_SPIN_TRYLOCK is not set
|
||||||
|
# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
|
||||||
|
# CONFIG_INLINE_SPIN_LOCK is not set
|
||||||
|
# CONFIG_INLINE_SPIN_LOCK_BH is not set
|
||||||
|
# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
|
||||||
|
# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
|
||||||
|
# CONFIG_INLINE_SPIN_UNLOCK is not set
|
||||||
|
# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
|
||||||
|
# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
|
||||||
|
# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
|
||||||
|
# CONFIG_INLINE_READ_TRYLOCK is not set
|
||||||
|
# CONFIG_INLINE_READ_LOCK is not set
|
||||||
|
# CONFIG_INLINE_READ_LOCK_BH is not set
|
||||||
|
# CONFIG_INLINE_READ_LOCK_IRQ is not set
|
||||||
|
# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
|
||||||
|
# CONFIG_INLINE_READ_UNLOCK is not set
|
||||||
|
# CONFIG_INLINE_READ_UNLOCK_BH is not set
|
||||||
|
# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
|
||||||
|
# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
|
||||||
|
# CONFIG_INLINE_WRITE_TRYLOCK is not set
|
||||||
|
# CONFIG_INLINE_WRITE_LOCK is not set
|
||||||
|
# CONFIG_INLINE_WRITE_LOCK_BH is not set
|
||||||
|
# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
|
||||||
|
# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
|
||||||
|
# CONFIG_INLINE_WRITE_UNLOCK is not set
|
||||||
|
# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
|
||||||
|
# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
|
||||||
|
# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
|
||||||
|
# CONFIG_MUTEX_SPIN_ON_OWNER is not set
|
||||||
# CONFIG_FREEZER is not set
|
# CONFIG_FREEZER is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# System Type
|
# System Type
|
||||||
#
|
#
|
||||||
|
CONFIG_MMU=y
|
||||||
# CONFIG_ARCH_AAEC2000 is not set
|
# CONFIG_ARCH_AAEC2000 is not set
|
||||||
# CONFIG_ARCH_INTEGRATOR is not set
|
# CONFIG_ARCH_INTEGRATOR is not set
|
||||||
# CONFIG_ARCH_REALVIEW is not set
|
# CONFIG_ARCH_REALVIEW is not set
|
||||||
# CONFIG_ARCH_VERSATILE is not set
|
# CONFIG_ARCH_VERSATILE is not set
|
||||||
|
# CONFIG_ARCH_VEXPRESS is not set
|
||||||
# CONFIG_ARCH_AT91 is not set
|
# CONFIG_ARCH_AT91 is not set
|
||||||
|
# CONFIG_ARCH_BCMRING is not set
|
||||||
# CONFIG_ARCH_CLPS711X is not set
|
# CONFIG_ARCH_CLPS711X is not set
|
||||||
|
# CONFIG_ARCH_CNS3XXX is not set
|
||||||
# CONFIG_ARCH_GEMINI is not set
|
# CONFIG_ARCH_GEMINI is not set
|
||||||
# CONFIG_ARCH_EBSA110 is not set
|
# CONFIG_ARCH_EBSA110 is not set
|
||||||
# CONFIG_ARCH_EP93XX is not set
|
# CONFIG_ARCH_EP93XX is not set
|
||||||
@@ -156,6 +202,7 @@ CONFIG_DEFAULT_IOSCHED="cfq"
|
|||||||
# CONFIG_ARCH_IXP2000 is not set
|
# CONFIG_ARCH_IXP2000 is not set
|
||||||
# CONFIG_ARCH_IXP4XX is not set
|
# CONFIG_ARCH_IXP4XX is not set
|
||||||
# CONFIG_ARCH_L7200 is not set
|
# CONFIG_ARCH_L7200 is not set
|
||||||
|
# CONFIG_ARCH_DOVE is not set
|
||||||
# CONFIG_ARCH_KIRKWOOD is not set
|
# CONFIG_ARCH_KIRKWOOD is not set
|
||||||
# CONFIG_ARCH_LOKI is not set
|
# CONFIG_ARCH_LOKI is not set
|
||||||
# CONFIG_ARCH_MV78XX0 is not set
|
# CONFIG_ARCH_MV78XX0 is not set
|
||||||
@@ -164,39 +211,64 @@ CONFIG_DEFAULT_IOSCHED="cfq"
|
|||||||
# CONFIG_ARCH_KS8695 is not set
|
# CONFIG_ARCH_KS8695 is not set
|
||||||
# CONFIG_ARCH_NS9XXX is not set
|
# CONFIG_ARCH_NS9XXX is not set
|
||||||
# CONFIG_ARCH_W90X900 is not set
|
# CONFIG_ARCH_W90X900 is not set
|
||||||
|
# CONFIG_ARCH_NUC93X is not set
|
||||||
# CONFIG_ARCH_PNX4008 is not set
|
# CONFIG_ARCH_PNX4008 is not set
|
||||||
# CONFIG_ARCH_PXA is not set
|
# CONFIG_ARCH_PXA is not set
|
||||||
# CONFIG_ARCH_MSM is not set
|
# CONFIG_ARCH_MSM is not set
|
||||||
|
# CONFIG_ARCH_SHMOBILE is not set
|
||||||
# CONFIG_ARCH_RPC is not set
|
# CONFIG_ARCH_RPC is not set
|
||||||
# CONFIG_ARCH_SA1100 is not set
|
# CONFIG_ARCH_SA1100 is not set
|
||||||
# CONFIG_ARCH_S3C2410 is not set
|
# CONFIG_ARCH_S3C2410 is not set
|
||||||
# CONFIG_ARCH_S3C64XX is not set
|
# CONFIG_ARCH_S3C64XX is not set
|
||||||
CONFIG_ARCH_S5PC1XX=y
|
# CONFIG_ARCH_S5P6440 is not set
|
||||||
|
# CONFIG_ARCH_S5P6442 is not set
|
||||||
|
CONFIG_ARCH_S5PC100=y
|
||||||
|
# CONFIG_ARCH_S5PV210 is not set
|
||||||
# CONFIG_ARCH_SHARK is not set
|
# CONFIG_ARCH_SHARK is not set
|
||||||
# CONFIG_ARCH_LH7A40X is not set
|
# CONFIG_ARCH_LH7A40X is not set
|
||||||
# CONFIG_ARCH_U300 is not set
|
# CONFIG_ARCH_U300 is not set
|
||||||
|
# CONFIG_ARCH_U8500 is not set
|
||||||
|
# CONFIG_ARCH_NOMADIK is not set
|
||||||
# CONFIG_ARCH_DAVINCI is not set
|
# CONFIG_ARCH_DAVINCI is not set
|
||||||
# CONFIG_ARCH_OMAP is not set
|
# CONFIG_ARCH_OMAP is not set
|
||||||
CONFIG_PLAT_S3C=y
|
# CONFIG_PLAT_SPEAR is not set
|
||||||
|
CONFIG_PLAT_SAMSUNG=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Boot options
|
# Boot options
|
||||||
#
|
#
|
||||||
# CONFIG_S3C_BOOT_ERROR_RESET is not set
|
# CONFIG_S3C_BOOT_ERROR_RESET is not set
|
||||||
CONFIG_S3C_BOOT_UART_FORCE_FIFO=y
|
CONFIG_S3C_BOOT_UART_FORCE_FIFO=y
|
||||||
|
CONFIG_S3C_LOWLEVEL_UART_PORT=0
|
||||||
|
CONFIG_SAMSUNG_CLKSRC=y
|
||||||
|
CONFIG_SAMSUNG_IRQ_VIC_TIMER=y
|
||||||
|
CONFIG_SAMSUNG_IRQ_UART=y
|
||||||
|
CONFIG_SAMSUNG_GPIOLIB_4BIT=y
|
||||||
|
CONFIG_S3C_GPIO_CFG_S3C24XX=y
|
||||||
|
CONFIG_S3C_GPIO_CFG_S3C64XX=y
|
||||||
|
CONFIG_S3C_GPIO_PULL_UPDOWN=y
|
||||||
|
CONFIG_S5P_GPIO_DRVSTR=y
|
||||||
|
CONFIG_SAMSUNG_GPIO_EXTRA=0
|
||||||
|
CONFIG_S3C_GPIO_SPACE=0
|
||||||
|
CONFIG_S3C_GPIO_TRACK=y
|
||||||
|
# CONFIG_S3C_ADC is not set
|
||||||
|
CONFIG_S3C_DEV_HSMMC=y
|
||||||
|
CONFIG_S3C_DEV_HSMMC1=y
|
||||||
|
CONFIG_S3C_DEV_HSMMC2=y
|
||||||
|
CONFIG_S3C_DEV_I2C1=y
|
||||||
|
CONFIG_S3C_DEV_FB=y
|
||||||
|
CONFIG_S3C_PL330_DMA=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Power management
|
# Power management
|
||||||
#
|
#
|
||||||
CONFIG_S3C_LOWLEVEL_UART_PORT=0
|
CONFIG_PLAT_S5P=y
|
||||||
CONFIG_S3C_GPIO_SPACE=0
|
CONFIG_S5P_EXT_INT=y
|
||||||
CONFIG_S3C_GPIO_TRACK=y
|
|
||||||
CONFIG_S3C_GPIO_PULL_UPDOWN=y
|
|
||||||
CONFIG_PLAT_S5PC1XX=y
|
|
||||||
CONFIG_CPU_S5PC100_INIT=y
|
|
||||||
CONFIG_CPU_S5PC100_CLOCK=y
|
|
||||||
CONFIG_S5PC100_SETUP_I2C0=y
|
|
||||||
CONFIG_CPU_S5PC100=y
|
CONFIG_CPU_S5PC100=y
|
||||||
|
CONFIG_S5PC100_SETUP_FB_24BPP=y
|
||||||
|
CONFIG_S5PC100_SETUP_I2C1=y
|
||||||
|
CONFIG_S5PC100_SETUP_SDHCI=y
|
||||||
|
CONFIG_S5PC100_SETUP_SDHCI_GPIO=y
|
||||||
CONFIG_MACH_SMDKC100=y
|
CONFIG_MACH_SMDKC100=y
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -206,7 +278,7 @@ CONFIG_CPU_32v6K=y
|
|||||||
CONFIG_CPU_V7=y
|
CONFIG_CPU_V7=y
|
||||||
CONFIG_CPU_32v7=y
|
CONFIG_CPU_32v7=y
|
||||||
CONFIG_CPU_ABRT_EV7=y
|
CONFIG_CPU_ABRT_EV7=y
|
||||||
CONFIG_CPU_PABRT_IFAR=y
|
CONFIG_CPU_PABRT_V7=y
|
||||||
CONFIG_CPU_CACHE_V7=y
|
CONFIG_CPU_CACHE_V7=y
|
||||||
CONFIG_CPU_CACHE_VIPT=y
|
CONFIG_CPU_CACHE_VIPT=y
|
||||||
CONFIG_CPU_COPY_V6=y
|
CONFIG_CPU_COPY_V6=y
|
||||||
@@ -224,11 +296,15 @@ CONFIG_ARM_THUMB=y
|
|||||||
# CONFIG_CPU_DCACHE_DISABLE is not set
|
# CONFIG_CPU_DCACHE_DISABLE is not set
|
||||||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||||
CONFIG_HAS_TLS_REG=y
|
CONFIG_HAS_TLS_REG=y
|
||||||
|
CONFIG_ARM_L1_CACHE_SHIFT=6
|
||||||
|
CONFIG_ARM_DMA_MEM_BUFFERABLE=y
|
||||||
|
CONFIG_CPU_HAS_PMU=y
|
||||||
# CONFIG_ARM_ERRATA_430973 is not set
|
# CONFIG_ARM_ERRATA_430973 is not set
|
||||||
# CONFIG_ARM_ERRATA_458693 is not set
|
# CONFIG_ARM_ERRATA_458693 is not set
|
||||||
# CONFIG_ARM_ERRATA_460075 is not set
|
# CONFIG_ARM_ERRATA_460075 is not set
|
||||||
CONFIG_ARM_VIC=y
|
CONFIG_ARM_VIC=y
|
||||||
CONFIG_ARM_VIC_NR=2
|
CONFIG_ARM_VIC_NR=2
|
||||||
|
CONFIG_PL330=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bus support
|
# Bus support
|
||||||
@@ -244,8 +320,11 @@ CONFIG_VMSPLIT_3G=y
|
|||||||
# CONFIG_VMSPLIT_2G is not set
|
# CONFIG_VMSPLIT_2G is not set
|
||||||
# CONFIG_VMSPLIT_1G is not set
|
# CONFIG_VMSPLIT_1G is not set
|
||||||
CONFIG_PAGE_OFFSET=0xC0000000
|
CONFIG_PAGE_OFFSET=0xC0000000
|
||||||
|
CONFIG_PREEMPT_NONE=y
|
||||||
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
CONFIG_HZ=100
|
CONFIG_HZ=100
|
||||||
|
# CONFIG_THUMB2_KERNEL is not set
|
||||||
CONFIG_AEABI=y
|
CONFIG_AEABI=y
|
||||||
CONFIG_OABI_COMPAT=y
|
CONFIG_OABI_COMPAT=y
|
||||||
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
|
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
|
||||||
@@ -258,12 +337,11 @@ CONFIG_FLATMEM_MANUAL=y
|
|||||||
CONFIG_FLATMEM=y
|
CONFIG_FLATMEM=y
|
||||||
CONFIG_FLAT_NODE_MEM_MAP=y
|
CONFIG_FLAT_NODE_MEM_MAP=y
|
||||||
CONFIG_PAGEFLAGS_EXTENDED=y
|
CONFIG_PAGEFLAGS_EXTENDED=y
|
||||||
CONFIG_SPLIT_PTLOCK_CPUS=4
|
CONFIG_SPLIT_PTLOCK_CPUS=999999
|
||||||
# CONFIG_PHYS_ADDR_T_64BIT is not set
|
# CONFIG_PHYS_ADDR_T_64BIT is not set
|
||||||
CONFIG_ZONE_DMA_FLAG=0
|
CONFIG_ZONE_DMA_FLAG=0
|
||||||
CONFIG_VIRT_TO_BUS=y
|
CONFIG_VIRT_TO_BUS=y
|
||||||
CONFIG_HAVE_MLOCK=y
|
# CONFIG_KSM is not set
|
||||||
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
|
|
||||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
||||||
CONFIG_ALIGNMENT_TRAP=y
|
CONFIG_ALIGNMENT_TRAP=y
|
||||||
# CONFIG_UACCESS_WITH_MEMCPY is not set
|
# CONFIG_UACCESS_WITH_MEMCPY is not set
|
||||||
@@ -274,6 +352,7 @@ CONFIG_ALIGNMENT_TRAP=y
|
|||||||
CONFIG_ZBOOT_ROM_TEXT=0
|
CONFIG_ZBOOT_ROM_TEXT=0
|
||||||
CONFIG_ZBOOT_ROM_BSS=0
|
CONFIG_ZBOOT_ROM_BSS=0
|
||||||
CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=cramfs init=/linuxrc console=ttySAC2,115200 mem=128M"
|
CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=cramfs init=/linuxrc console=ttySAC2,115200 mem=128M"
|
||||||
|
# CONFIG_CMDLINE_FORCE is not set
|
||||||
# CONFIG_XIP_KERNEL is not set
|
# CONFIG_XIP_KERNEL is not set
|
||||||
# CONFIG_KEXEC is not set
|
# CONFIG_KEXEC is not set
|
||||||
|
|
||||||
@@ -317,6 +396,7 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
|
|||||||
# Generic Driver Options
|
# Generic Driver Options
|
||||||
#
|
#
|
||||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||||
|
# CONFIG_DEVTMPFS is not set
|
||||||
CONFIG_STANDALONE=y
|
CONFIG_STANDALONE=y
|
||||||
CONFIG_PREVENT_FIRMWARE_BUILD=y
|
CONFIG_PREVENT_FIRMWARE_BUILD=y
|
||||||
CONFIG_FW_LOADER=y
|
CONFIG_FW_LOADER=y
|
||||||
@@ -331,6 +411,10 @@ CONFIG_BLK_DEV=y
|
|||||||
# CONFIG_BLK_DEV_COW_COMMON is not set
|
# CONFIG_BLK_DEV_COW_COMMON is not set
|
||||||
CONFIG_BLK_DEV_LOOP=y
|
CONFIG_BLK_DEV_LOOP=y
|
||||||
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
|
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
|
||||||
|
#
|
||||||
CONFIG_BLK_DEV_RAM=y
|
CONFIG_BLK_DEV_RAM=y
|
||||||
CONFIG_BLK_DEV_RAM_COUNT=16
|
CONFIG_BLK_DEV_RAM_COUNT=16
|
||||||
CONFIG_BLK_DEV_RAM_SIZE=8192
|
CONFIG_BLK_DEV_RAM_SIZE=8192
|
||||||
@@ -338,9 +422,12 @@ CONFIG_BLK_DEV_RAM_SIZE=8192
|
|||||||
# CONFIG_CDROM_PKTCDVD is not set
|
# CONFIG_CDROM_PKTCDVD is not set
|
||||||
# CONFIG_MG_DISK is not set
|
# CONFIG_MG_DISK is not set
|
||||||
CONFIG_MISC_DEVICES=y
|
CONFIG_MISC_DEVICES=y
|
||||||
|
# CONFIG_AD525X_DPOT is not set
|
||||||
# CONFIG_ICS932S401 is not set
|
# CONFIG_ICS932S401 is not set
|
||||||
# CONFIG_ENCLOSURE_SERVICES is not set
|
# CONFIG_ENCLOSURE_SERVICES is not set
|
||||||
# CONFIG_ISL29003 is not set
|
# CONFIG_ISL29003 is not set
|
||||||
|
# CONFIG_SENSORS_TSL2550 is not set
|
||||||
|
# CONFIG_DS1682 is not set
|
||||||
# CONFIG_C2PORT is not set
|
# CONFIG_C2PORT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -350,18 +437,21 @@ CONFIG_EEPROM_AT24=y
|
|||||||
# CONFIG_EEPROM_LEGACY is not set
|
# CONFIG_EEPROM_LEGACY is not set
|
||||||
# CONFIG_EEPROM_MAX6875 is not set
|
# CONFIG_EEPROM_MAX6875 is not set
|
||||||
# CONFIG_EEPROM_93CX6 is not set
|
# CONFIG_EEPROM_93CX6 is not set
|
||||||
|
# CONFIG_IWMC3200TOP is not set
|
||||||
CONFIG_HAVE_IDE=y
|
CONFIG_HAVE_IDE=y
|
||||||
# CONFIG_IDE is not set
|
# CONFIG_IDE is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# SCSI device support
|
# SCSI device support
|
||||||
#
|
#
|
||||||
|
CONFIG_SCSI_MOD=y
|
||||||
# CONFIG_RAID_ATTRS is not set
|
# CONFIG_RAID_ATTRS is not set
|
||||||
# CONFIG_SCSI is not set
|
# CONFIG_SCSI is not set
|
||||||
# CONFIG_SCSI_DMA is not set
|
# CONFIG_SCSI_DMA is not set
|
||||||
# CONFIG_SCSI_NETLINK is not set
|
# CONFIG_SCSI_NETLINK is not set
|
||||||
# CONFIG_ATA is not set
|
# CONFIG_ATA is not set
|
||||||
# CONFIG_MD is not set
|
# CONFIG_MD is not set
|
||||||
|
# CONFIG_PHONE is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Input device support
|
# Input device support
|
||||||
@@ -369,6 +459,7 @@ CONFIG_HAVE_IDE=y
|
|||||||
CONFIG_INPUT=y
|
CONFIG_INPUT=y
|
||||||
# CONFIG_INPUT_FF_MEMLESS is not set
|
# CONFIG_INPUT_FF_MEMLESS is not set
|
||||||
# CONFIG_INPUT_POLLDEV is not set
|
# CONFIG_INPUT_POLLDEV is not set
|
||||||
|
# CONFIG_INPUT_SPARSEKMAP is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Userland interfaces
|
# Userland interfaces
|
||||||
@@ -385,13 +476,19 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
|
|||||||
# Input Device Drivers
|
# Input Device Drivers
|
||||||
#
|
#
|
||||||
CONFIG_INPUT_KEYBOARD=y
|
CONFIG_INPUT_KEYBOARD=y
|
||||||
|
# CONFIG_KEYBOARD_ADP5588 is not set
|
||||||
CONFIG_KEYBOARD_ATKBD=y
|
CONFIG_KEYBOARD_ATKBD=y
|
||||||
# CONFIG_KEYBOARD_SUNKBD is not set
|
# CONFIG_QT2160 is not set
|
||||||
# CONFIG_KEYBOARD_LKKBD is not set
|
# CONFIG_KEYBOARD_LKKBD is not set
|
||||||
# CONFIG_KEYBOARD_XTKBD is not set
|
|
||||||
# CONFIG_KEYBOARD_NEWTON is not set
|
|
||||||
# CONFIG_KEYBOARD_STOWAWAY is not set
|
|
||||||
# CONFIG_KEYBOARD_GPIO is not set
|
# CONFIG_KEYBOARD_GPIO is not set
|
||||||
|
# CONFIG_KEYBOARD_TCA6416 is not set
|
||||||
|
# CONFIG_KEYBOARD_MATRIX is not set
|
||||||
|
# CONFIG_KEYBOARD_MAX7359 is not set
|
||||||
|
# CONFIG_KEYBOARD_NEWTON is not set
|
||||||
|
# CONFIG_KEYBOARD_OPENCORES is not set
|
||||||
|
# CONFIG_KEYBOARD_STOWAWAY is not set
|
||||||
|
# CONFIG_KEYBOARD_SUNKBD is not set
|
||||||
|
# CONFIG_KEYBOARD_XTKBD is not set
|
||||||
CONFIG_INPUT_MOUSE=y
|
CONFIG_INPUT_MOUSE=y
|
||||||
CONFIG_MOUSE_PS2=y
|
CONFIG_MOUSE_PS2=y
|
||||||
CONFIG_MOUSE_PS2_ALPS=y
|
CONFIG_MOUSE_PS2_ALPS=y
|
||||||
@@ -399,6 +496,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
|
|||||||
CONFIG_MOUSE_PS2_SYNAPTICS=y
|
CONFIG_MOUSE_PS2_SYNAPTICS=y
|
||||||
CONFIG_MOUSE_PS2_TRACKPOINT=y
|
CONFIG_MOUSE_PS2_TRACKPOINT=y
|
||||||
# CONFIG_MOUSE_PS2_ELANTECH is not set
|
# CONFIG_MOUSE_PS2_ELANTECH is not set
|
||||||
|
# CONFIG_MOUSE_PS2_SENTELIC is not set
|
||||||
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
|
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
|
||||||
# CONFIG_MOUSE_SERIAL is not set
|
# CONFIG_MOUSE_SERIAL is not set
|
||||||
# CONFIG_MOUSE_APPLETOUCH is not set
|
# CONFIG_MOUSE_APPLETOUCH is not set
|
||||||
@@ -418,6 +516,7 @@ CONFIG_SERIO=y
|
|||||||
CONFIG_SERIO_SERPORT=y
|
CONFIG_SERIO_SERPORT=y
|
||||||
CONFIG_SERIO_LIBPS2=y
|
CONFIG_SERIO_LIBPS2=y
|
||||||
# CONFIG_SERIO_RAW is not set
|
# CONFIG_SERIO_RAW is not set
|
||||||
|
# CONFIG_SERIO_ALTERA_PS2 is not set
|
||||||
# CONFIG_GAMEPORT is not set
|
# CONFIG_GAMEPORT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -444,11 +543,16 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
|
|||||||
# Non-8250 serial port support
|
# Non-8250 serial port support
|
||||||
#
|
#
|
||||||
CONFIG_SERIAL_SAMSUNG=y
|
CONFIG_SERIAL_SAMSUNG=y
|
||||||
CONFIG_SERIAL_SAMSUNG_UARTS=3
|
CONFIG_SERIAL_SAMSUNG_UARTS_4=y
|
||||||
|
CONFIG_SERIAL_SAMSUNG_UARTS=4
|
||||||
# CONFIG_SERIAL_SAMSUNG_DEBUG is not set
|
# CONFIG_SERIAL_SAMSUNG_DEBUG is not set
|
||||||
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
|
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
|
||||||
|
CONFIG_SERIAL_S3C6400=y
|
||||||
CONFIG_SERIAL_CORE=y
|
CONFIG_SERIAL_CORE=y
|
||||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||||
|
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||||
|
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
|
||||||
|
# CONFIG_SERIAL_ALTERA_UART is not set
|
||||||
CONFIG_UNIX98_PTYS=y
|
CONFIG_UNIX98_PTYS=y
|
||||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||||
CONFIG_LEGACY_PTYS=y
|
CONFIG_LEGACY_PTYS=y
|
||||||
@@ -461,6 +565,7 @@ CONFIG_HW_RANDOM=y
|
|||||||
# CONFIG_TCG_TPM is not set
|
# CONFIG_TCG_TPM is not set
|
||||||
CONFIG_I2C=y
|
CONFIG_I2C=y
|
||||||
CONFIG_I2C_BOARDINFO=y
|
CONFIG_I2C_BOARDINFO=y
|
||||||
|
CONFIG_I2C_COMPAT=y
|
||||||
CONFIG_I2C_CHARDEV=y
|
CONFIG_I2C_CHARDEV=y
|
||||||
CONFIG_I2C_HELPER_AUTO=y
|
CONFIG_I2C_HELPER_AUTO=y
|
||||||
|
|
||||||
@@ -471,9 +576,11 @@ CONFIG_I2C_HELPER_AUTO=y
|
|||||||
#
|
#
|
||||||
# I2C system bus drivers (mostly embedded / system-on-chip)
|
# I2C system bus drivers (mostly embedded / system-on-chip)
|
||||||
#
|
#
|
||||||
|
# CONFIG_I2C_DESIGNWARE is not set
|
||||||
# CONFIG_I2C_GPIO is not set
|
# CONFIG_I2C_GPIO is not set
|
||||||
# CONFIG_I2C_OCORES is not set
|
# CONFIG_I2C_OCORES is not set
|
||||||
# CONFIG_I2C_SIMTEC is not set
|
# CONFIG_I2C_SIMTEC is not set
|
||||||
|
# CONFIG_I2C_XILINX is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# External I2C/SMBus adapter drivers
|
# External I2C/SMBus adapter drivers
|
||||||
@@ -486,20 +593,15 @@ CONFIG_I2C_HELPER_AUTO=y
|
|||||||
#
|
#
|
||||||
# CONFIG_I2C_PCA_PLATFORM is not set
|
# CONFIG_I2C_PCA_PLATFORM is not set
|
||||||
# CONFIG_I2C_STUB is not set
|
# CONFIG_I2C_STUB is not set
|
||||||
|
|
||||||
#
|
|
||||||
# Miscellaneous I2C Chip support
|
|
||||||
#
|
|
||||||
# CONFIG_DS1682 is not set
|
|
||||||
# CONFIG_SENSORS_PCF8574 is not set
|
|
||||||
# CONFIG_PCF8575 is not set
|
|
||||||
# CONFIG_SENSORS_PCA9539 is not set
|
|
||||||
# CONFIG_SENSORS_TSL2550 is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CORE is not set
|
# CONFIG_I2C_DEBUG_CORE is not set
|
||||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||||
# CONFIG_I2C_DEBUG_BUS is not set
|
# CONFIG_I2C_DEBUG_BUS is not set
|
||||||
# CONFIG_I2C_DEBUG_CHIP is not set
|
|
||||||
# CONFIG_SPI is not set
|
# CONFIG_SPI is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# PPS support
|
||||||
|
#
|
||||||
|
# CONFIG_PPS is not set
|
||||||
CONFIG_ARCH_REQUIRE_GPIOLIB=y
|
CONFIG_ARCH_REQUIRE_GPIOLIB=y
|
||||||
CONFIG_GPIOLIB=y
|
CONFIG_GPIOLIB=y
|
||||||
# CONFIG_DEBUG_GPIO is not set
|
# CONFIG_DEBUG_GPIO is not set
|
||||||
@@ -508,13 +610,16 @@ CONFIG_GPIOLIB=y
|
|||||||
#
|
#
|
||||||
# Memory mapped GPIO expanders:
|
# Memory mapped GPIO expanders:
|
||||||
#
|
#
|
||||||
|
# CONFIG_GPIO_IT8761E is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# I2C GPIO expanders:
|
# I2C GPIO expanders:
|
||||||
#
|
#
|
||||||
|
# CONFIG_GPIO_MAX7300 is not set
|
||||||
# CONFIG_GPIO_MAX732X is not set
|
# CONFIG_GPIO_MAX732X is not set
|
||||||
# CONFIG_GPIO_PCA953X is not set
|
# CONFIG_GPIO_PCA953X is not set
|
||||||
# CONFIG_GPIO_PCF857X is not set
|
# CONFIG_GPIO_PCF857X is not set
|
||||||
|
# CONFIG_GPIO_ADP5588 is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# PCI GPIO expanders:
|
# PCI GPIO expanders:
|
||||||
@@ -523,10 +628,19 @@ CONFIG_GPIOLIB=y
|
|||||||
#
|
#
|
||||||
# SPI GPIO expanders:
|
# SPI GPIO expanders:
|
||||||
#
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# AC97 GPIO expanders:
|
||||||
|
#
|
||||||
# CONFIG_W1 is not set
|
# CONFIG_W1 is not set
|
||||||
# CONFIG_POWER_SUPPLY is not set
|
# CONFIG_POWER_SUPPLY is not set
|
||||||
CONFIG_HWMON=y
|
CONFIG_HWMON=y
|
||||||
# CONFIG_HWMON_VID is not set
|
# CONFIG_HWMON_VID is not set
|
||||||
|
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Native drivers
|
||||||
|
#
|
||||||
# CONFIG_SENSORS_AD7414 is not set
|
# CONFIG_SENSORS_AD7414 is not set
|
||||||
# CONFIG_SENSORS_AD7418 is not set
|
# CONFIG_SENSORS_AD7418 is not set
|
||||||
# CONFIG_SENSORS_ADM1021 is not set
|
# CONFIG_SENSORS_ADM1021 is not set
|
||||||
@@ -535,10 +649,11 @@ CONFIG_HWMON=y
|
|||||||
# CONFIG_SENSORS_ADM1029 is not set
|
# CONFIG_SENSORS_ADM1029 is not set
|
||||||
# CONFIG_SENSORS_ADM1031 is not set
|
# CONFIG_SENSORS_ADM1031 is not set
|
||||||
# CONFIG_SENSORS_ADM9240 is not set
|
# CONFIG_SENSORS_ADM9240 is not set
|
||||||
|
# CONFIG_SENSORS_ADT7411 is not set
|
||||||
# CONFIG_SENSORS_ADT7462 is not set
|
# CONFIG_SENSORS_ADT7462 is not set
|
||||||
# CONFIG_SENSORS_ADT7470 is not set
|
# CONFIG_SENSORS_ADT7470 is not set
|
||||||
# CONFIG_SENSORS_ADT7473 is not set
|
|
||||||
# CONFIG_SENSORS_ADT7475 is not set
|
# CONFIG_SENSORS_ADT7475 is not set
|
||||||
|
# CONFIG_SENSORS_ASC7621 is not set
|
||||||
# CONFIG_SENSORS_ATXP1 is not set
|
# CONFIG_SENSORS_ATXP1 is not set
|
||||||
# CONFIG_SENSORS_DS1621 is not set
|
# CONFIG_SENSORS_DS1621 is not set
|
||||||
# CONFIG_SENSORS_F71805F is not set
|
# CONFIG_SENSORS_F71805F is not set
|
||||||
@@ -549,6 +664,7 @@ CONFIG_HWMON=y
|
|||||||
# CONFIG_SENSORS_GL520SM is not set
|
# CONFIG_SENSORS_GL520SM is not set
|
||||||
# CONFIG_SENSORS_IT87 is not set
|
# CONFIG_SENSORS_IT87 is not set
|
||||||
# CONFIG_SENSORS_LM63 is not set
|
# CONFIG_SENSORS_LM63 is not set
|
||||||
|
# CONFIG_SENSORS_LM73 is not set
|
||||||
# CONFIG_SENSORS_LM75 is not set
|
# CONFIG_SENSORS_LM75 is not set
|
||||||
# CONFIG_SENSORS_LM77 is not set
|
# CONFIG_SENSORS_LM77 is not set
|
||||||
# CONFIG_SENSORS_LM78 is not set
|
# CONFIG_SENSORS_LM78 is not set
|
||||||
@@ -573,8 +689,10 @@ CONFIG_HWMON=y
|
|||||||
# CONFIG_SENSORS_SMSC47M192 is not set
|
# CONFIG_SENSORS_SMSC47M192 is not set
|
||||||
# CONFIG_SENSORS_SMSC47B397 is not set
|
# CONFIG_SENSORS_SMSC47B397 is not set
|
||||||
# CONFIG_SENSORS_ADS7828 is not set
|
# CONFIG_SENSORS_ADS7828 is not set
|
||||||
|
# CONFIG_SENSORS_AMC6821 is not set
|
||||||
# CONFIG_SENSORS_THMC50 is not set
|
# CONFIG_SENSORS_THMC50 is not set
|
||||||
# CONFIG_SENSORS_TMP401 is not set
|
# CONFIG_SENSORS_TMP401 is not set
|
||||||
|
# CONFIG_SENSORS_TMP421 is not set
|
||||||
# CONFIG_SENSORS_VT1211 is not set
|
# CONFIG_SENSORS_VT1211 is not set
|
||||||
# CONFIG_SENSORS_W83781D is not set
|
# CONFIG_SENSORS_W83781D is not set
|
||||||
# CONFIG_SENSORS_W83791D is not set
|
# CONFIG_SENSORS_W83791D is not set
|
||||||
@@ -584,9 +702,8 @@ CONFIG_HWMON=y
|
|||||||
# CONFIG_SENSORS_W83L786NG is not set
|
# CONFIG_SENSORS_W83L786NG is not set
|
||||||
# CONFIG_SENSORS_W83627HF is not set
|
# CONFIG_SENSORS_W83627HF is not set
|
||||||
# CONFIG_SENSORS_W83627EHF is not set
|
# CONFIG_SENSORS_W83627EHF is not set
|
||||||
# CONFIG_HWMON_DEBUG_CHIP is not set
|
# CONFIG_SENSORS_LIS3_I2C is not set
|
||||||
# CONFIG_THERMAL is not set
|
# CONFIG_THERMAL is not set
|
||||||
# CONFIG_THERMAL_HWMON is not set
|
|
||||||
# CONFIG_WATCHDOG is not set
|
# CONFIG_WATCHDOG is not set
|
||||||
CONFIG_SSB_POSSIBLE=y
|
CONFIG_SSB_POSSIBLE=y
|
||||||
|
|
||||||
@@ -599,10 +716,12 @@ CONFIG_SSB_POSSIBLE=y
|
|||||||
# Multifunction device drivers
|
# Multifunction device drivers
|
||||||
#
|
#
|
||||||
# CONFIG_MFD_CORE is not set
|
# CONFIG_MFD_CORE is not set
|
||||||
|
# CONFIG_MFD_88PM860X is not set
|
||||||
# CONFIG_MFD_SM501 is not set
|
# CONFIG_MFD_SM501 is not set
|
||||||
# CONFIG_MFD_ASIC3 is not set
|
# CONFIG_MFD_ASIC3 is not set
|
||||||
# CONFIG_HTC_EGPIO is not set
|
# CONFIG_HTC_EGPIO is not set
|
||||||
# CONFIG_HTC_PASIC3 is not set
|
# CONFIG_HTC_PASIC3 is not set
|
||||||
|
# CONFIG_HTC_I2CPLD is not set
|
||||||
# CONFIG_TPS65010 is not set
|
# CONFIG_TPS65010 is not set
|
||||||
# CONFIG_TWL4030_CORE is not set
|
# CONFIG_TWL4030_CORE is not set
|
||||||
# CONFIG_MFD_TMIO is not set
|
# CONFIG_MFD_TMIO is not set
|
||||||
@@ -610,10 +729,15 @@ CONFIG_SSB_POSSIBLE=y
|
|||||||
# CONFIG_MFD_TC6387XB is not set
|
# CONFIG_MFD_TC6387XB is not set
|
||||||
# CONFIG_MFD_TC6393XB is not set
|
# CONFIG_MFD_TC6393XB is not set
|
||||||
# CONFIG_PMIC_DA903X is not set
|
# CONFIG_PMIC_DA903X is not set
|
||||||
|
# CONFIG_PMIC_ADP5520 is not set
|
||||||
|
# CONFIG_MFD_MAX8925 is not set
|
||||||
# CONFIG_MFD_WM8400 is not set
|
# CONFIG_MFD_WM8400 is not set
|
||||||
|
# CONFIG_MFD_WM831X is not set
|
||||||
# CONFIG_MFD_WM8350_I2C is not set
|
# CONFIG_MFD_WM8350_I2C is not set
|
||||||
|
# CONFIG_MFD_WM8994 is not set
|
||||||
# CONFIG_MFD_PCF50633 is not set
|
# CONFIG_MFD_PCF50633 is not set
|
||||||
# CONFIG_AB3100_CORE is not set
|
# CONFIG_AB3100_CORE is not set
|
||||||
|
# CONFIG_REGULATOR is not set
|
||||||
# CONFIG_MEDIA_SUPPORT is not set
|
# CONFIG_MEDIA_SUPPORT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -637,7 +761,6 @@ CONFIG_DUMMY_CONSOLE=y
|
|||||||
# CONFIG_SOUND is not set
|
# CONFIG_SOUND is not set
|
||||||
CONFIG_HID_SUPPORT=y
|
CONFIG_HID_SUPPORT=y
|
||||||
CONFIG_HID=y
|
CONFIG_HID=y
|
||||||
CONFIG_HID_DEBUG=y
|
|
||||||
# CONFIG_HIDRAW is not set
|
# CONFIG_HIDRAW is not set
|
||||||
# CONFIG_HID_PID is not set
|
# CONFIG_HID_PID is not set
|
||||||
|
|
||||||
@@ -680,13 +803,12 @@ CONFIG_SDIO_UART=y
|
|||||||
CONFIG_MMC_SDHCI=y
|
CONFIG_MMC_SDHCI=y
|
||||||
# CONFIG_MMC_SDHCI_PLTFM is not set
|
# CONFIG_MMC_SDHCI_PLTFM is not set
|
||||||
# CONFIG_MEMSTICK is not set
|
# CONFIG_MEMSTICK is not set
|
||||||
# CONFIG_ACCESSIBILITY is not set
|
|
||||||
# CONFIG_NEW_LEDS is not set
|
# CONFIG_NEW_LEDS is not set
|
||||||
|
# CONFIG_ACCESSIBILITY is not set
|
||||||
CONFIG_RTC_LIB=y
|
CONFIG_RTC_LIB=y
|
||||||
# CONFIG_RTC_CLASS is not set
|
# CONFIG_RTC_CLASS is not set
|
||||||
# CONFIG_DMADEVICES is not set
|
# CONFIG_DMADEVICES is not set
|
||||||
# CONFIG_AUXDISPLAY is not set
|
# CONFIG_AUXDISPLAY is not set
|
||||||
# CONFIG_REGULATOR is not set
|
|
||||||
# CONFIG_UIO is not set
|
# CONFIG_UIO is not set
|
||||||
# CONFIG_STAGING is not set
|
# CONFIG_STAGING is not set
|
||||||
|
|
||||||
@@ -710,6 +832,7 @@ CONFIG_FS_POSIX_ACL=y
|
|||||||
# CONFIG_XFS_FS is not set
|
# CONFIG_XFS_FS is not set
|
||||||
# CONFIG_GFS2_FS is not set
|
# CONFIG_GFS2_FS is not set
|
||||||
# CONFIG_BTRFS_FS is not set
|
# CONFIG_BTRFS_FS is not set
|
||||||
|
# CONFIG_NILFS2_FS is not set
|
||||||
CONFIG_FILE_LOCKING=y
|
CONFIG_FILE_LOCKING=y
|
||||||
CONFIG_FSNOTIFY=y
|
CONFIG_FSNOTIFY=y
|
||||||
CONFIG_DNOTIFY=y
|
CONFIG_DNOTIFY=y
|
||||||
@@ -758,6 +881,7 @@ CONFIG_MISC_FILESYSTEMS=y
|
|||||||
# CONFIG_BEFS_FS is not set
|
# CONFIG_BEFS_FS is not set
|
||||||
# CONFIG_BFS_FS is not set
|
# CONFIG_BFS_FS is not set
|
||||||
# CONFIG_EFS_FS is not set
|
# CONFIG_EFS_FS is not set
|
||||||
|
# CONFIG_LOGFS is not set
|
||||||
CONFIG_CRAMFS=y
|
CONFIG_CRAMFS=y
|
||||||
# CONFIG_SQUASHFS is not set
|
# CONFIG_SQUASHFS is not set
|
||||||
# CONFIG_VXFS_FS is not set
|
# CONFIG_VXFS_FS is not set
|
||||||
@@ -772,7 +896,6 @@ CONFIG_ROMFS_BACKED_BY_BLOCK=y
|
|||||||
CONFIG_ROMFS_ON_BLOCK=y
|
CONFIG_ROMFS_ON_BLOCK=y
|
||||||
# CONFIG_SYSV_FS is not set
|
# CONFIG_SYSV_FS is not set
|
||||||
# CONFIG_UFS_FS is not set
|
# CONFIG_UFS_FS is not set
|
||||||
# CONFIG_NILFS2_FS is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Partition Types
|
# Partition Types
|
||||||
@@ -789,6 +912,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
|
|||||||
CONFIG_ENABLE_MUST_CHECK=y
|
CONFIG_ENABLE_MUST_CHECK=y
|
||||||
CONFIG_FRAME_WARN=1024
|
CONFIG_FRAME_WARN=1024
|
||||||
CONFIG_MAGIC_SYSRQ=y
|
CONFIG_MAGIC_SYSRQ=y
|
||||||
|
# CONFIG_STRIP_ASM_SYMS is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
# CONFIG_DEBUG_FS is not set
|
# CONFIG_DEBUG_FS is not set
|
||||||
# CONFIG_HEADERS_CHECK is not set
|
# CONFIG_HEADERS_CHECK is not set
|
||||||
@@ -826,11 +950,13 @@ CONFIG_DEBUG_MEMORY_INIT=y
|
|||||||
# CONFIG_DEBUG_LIST is not set
|
# CONFIG_DEBUG_LIST is not set
|
||||||
# CONFIG_DEBUG_SG is not set
|
# CONFIG_DEBUG_SG is not set
|
||||||
# CONFIG_DEBUG_NOTIFIERS is not set
|
# CONFIG_DEBUG_NOTIFIERS is not set
|
||||||
|
# CONFIG_DEBUG_CREDENTIALS is not set
|
||||||
# CONFIG_BOOT_PRINTK_DELAY is not set
|
# CONFIG_BOOT_PRINTK_DELAY is not set
|
||||||
# CONFIG_RCU_TORTURE_TEST is not set
|
# CONFIG_RCU_TORTURE_TEST is not set
|
||||||
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
|
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
|
||||||
# CONFIG_BACKTRACE_SELF_TEST is not set
|
# CONFIG_BACKTRACE_SELF_TEST is not set
|
||||||
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
|
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
|
||||||
|
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
|
||||||
# CONFIG_FAULT_INJECTION is not set
|
# CONFIG_FAULT_INJECTION is not set
|
||||||
# CONFIG_LATENCYTOP is not set
|
# CONFIG_LATENCYTOP is not set
|
||||||
CONFIG_SYSCTL_SYSCALL_CHECK=y
|
CONFIG_SYSCTL_SYSCALL_CHECK=y
|
||||||
@@ -839,6 +965,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y
|
|||||||
CONFIG_TRACING_SUPPORT=y
|
CONFIG_TRACING_SUPPORT=y
|
||||||
CONFIG_FTRACE=y
|
CONFIG_FTRACE=y
|
||||||
# CONFIG_FUNCTION_TRACER is not set
|
# CONFIG_FUNCTION_TRACER is not set
|
||||||
|
# CONFIG_IRQSOFF_TRACER is not set
|
||||||
# CONFIG_SCHED_TRACER is not set
|
# CONFIG_SCHED_TRACER is not set
|
||||||
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
|
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
|
||||||
# CONFIG_BOOT_TRACER is not set
|
# CONFIG_BOOT_TRACER is not set
|
||||||
@@ -849,6 +976,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
|
|||||||
# CONFIG_KMEMTRACE is not set
|
# CONFIG_KMEMTRACE is not set
|
||||||
# CONFIG_WORKQUEUE_TRACER is not set
|
# CONFIG_WORKQUEUE_TRACER is not set
|
||||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||||
|
# CONFIG_ATOMIC64_SELFTEST is not set
|
||||||
# CONFIG_SAMPLES is not set
|
# CONFIG_SAMPLES is not set
|
||||||
CONFIG_HAVE_ARCH_KGDB=y
|
CONFIG_HAVE_ARCH_KGDB=y
|
||||||
# CONFIG_KGDB is not set
|
# CONFIG_KGDB is not set
|
||||||
@@ -857,8 +985,9 @@ CONFIG_DEBUG_USER=y
|
|||||||
CONFIG_DEBUG_ERRORS=y
|
CONFIG_DEBUG_ERRORS=y
|
||||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||||
CONFIG_DEBUG_LL=y
|
CONFIG_DEBUG_LL=y
|
||||||
|
# CONFIG_EARLY_PRINTK is not set
|
||||||
# CONFIG_DEBUG_ICEDCC is not set
|
# CONFIG_DEBUG_ICEDCC is not set
|
||||||
CONFIG_DEBUG_S3C_PORT=y
|
# CONFIG_OC_ETM is not set
|
||||||
CONFIG_DEBUG_S3C_UART=0
|
CONFIG_DEBUG_S3C_UART=0
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -867,7 +996,11 @@ CONFIG_DEBUG_S3C_UART=0
|
|||||||
# CONFIG_KEYS is not set
|
# CONFIG_KEYS is not set
|
||||||
# CONFIG_SECURITY is not set
|
# CONFIG_SECURITY is not set
|
||||||
# CONFIG_SECURITYFS is not set
|
# CONFIG_SECURITYFS is not set
|
||||||
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
|
# CONFIG_DEFAULT_SECURITY_SELINUX is not set
|
||||||
|
# CONFIG_DEFAULT_SECURITY_SMACK is not set
|
||||||
|
# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
|
||||||
|
CONFIG_DEFAULT_SECURITY_DAC=y
|
||||||
|
CONFIG_DEFAULT_SECURITY=""
|
||||||
# CONFIG_CRYPTO is not set
|
# CONFIG_CRYPTO is not set
|
||||||
# CONFIG_BINARY_PRINTF is not set
|
# CONFIG_BINARY_PRINTF is not set
|
||||||
|
|
||||||
@@ -884,8 +1017,10 @@ CONFIG_CRC32=y
|
|||||||
# CONFIG_CRC7 is not set
|
# CONFIG_CRC7 is not set
|
||||||
# CONFIG_LIBCRC32C is not set
|
# CONFIG_LIBCRC32C is not set
|
||||||
CONFIG_ZLIB_INFLATE=y
|
CONFIG_ZLIB_INFLATE=y
|
||||||
|
CONFIG_LZO_DECOMPRESS=y
|
||||||
CONFIG_DECOMPRESS_GZIP=y
|
CONFIG_DECOMPRESS_GZIP=y
|
||||||
CONFIG_DECOMPRESS_BZIP2=y
|
CONFIG_DECOMPRESS_BZIP2=y
|
||||||
CONFIG_DECOMPRESS_LZMA=y
|
CONFIG_DECOMPRESS_LZMA=y
|
||||||
|
CONFIG_DECOMPRESS_LZO=y
|
||||||
CONFIG_HAS_IOMEM=y
|
CONFIG_HAS_IOMEM=y
|
||||||
CONFIG_HAS_DMA=y
|
CONFIG_HAS_DMA=y
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.33-rc4
|
# Linux kernel version: 2.6.34
|
||||||
# Wed Feb 24 15:36:54 2010
|
# Wed May 26 19:04:37 2010
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||||
CONFIG_GENERIC_GPIO=y
|
CONFIG_GENERIC_GPIO=y
|
||||||
|
CONFIG_GENERIC_TIME=y
|
||||||
|
CONFIG_ARCH_USES_GETTIMEOFFSET=y
|
||||||
|
CONFIG_HAVE_PROC_CPU=y
|
||||||
CONFIG_NO_IOPORT=y
|
CONFIG_NO_IOPORT=y
|
||||||
CONFIG_GENERIC_HARDIRQS=y
|
CONFIG_GENERIC_HARDIRQS=y
|
||||||
CONFIG_STACKTRACE_SUPPORT=y
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
@@ -17,6 +20,7 @@ CONFIG_GENERIC_IRQ_PROBE=y
|
|||||||
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||||
CONFIG_GENERIC_HWEIGHT=y
|
CONFIG_GENERIC_HWEIGHT=y
|
||||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||||
|
CONFIG_NEED_DMA_MAP_STATE=y
|
||||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||||
CONFIG_ARM_L1_CACHE_SHIFT_6=y
|
CONFIG_ARM_L1_CACHE_SHIFT_6=y
|
||||||
CONFIG_VECTORS_BASE=0xffff0000
|
CONFIG_VECTORS_BASE=0xffff0000
|
||||||
@@ -33,6 +37,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
|
|||||||
CONFIG_LOCALVERSION=""
|
CONFIG_LOCALVERSION=""
|
||||||
CONFIG_LOCALVERSION_AUTO=y
|
CONFIG_LOCALVERSION_AUTO=y
|
||||||
CONFIG_HAVE_KERNEL_GZIP=y
|
CONFIG_HAVE_KERNEL_GZIP=y
|
||||||
|
CONFIG_HAVE_KERNEL_LZMA=y
|
||||||
CONFIG_HAVE_KERNEL_LZO=y
|
CONFIG_HAVE_KERNEL_LZO=y
|
||||||
CONFIG_KERNEL_GZIP=y
|
CONFIG_KERNEL_GZIP=y
|
||||||
# CONFIG_KERNEL_BZIP2 is not set
|
# CONFIG_KERNEL_BZIP2 is not set
|
||||||
@@ -54,7 +59,6 @@ CONFIG_RCU_FANOUT=32
|
|||||||
# CONFIG_TREE_RCU_TRACE is not set
|
# CONFIG_TREE_RCU_TRACE is not set
|
||||||
# CONFIG_IKCONFIG is not set
|
# CONFIG_IKCONFIG is not set
|
||||||
CONFIG_LOG_BUF_SHIFT=17
|
CONFIG_LOG_BUF_SHIFT=17
|
||||||
# CONFIG_GROUP_SCHED is not set
|
|
||||||
# CONFIG_CGROUPS is not set
|
# CONFIG_CGROUPS is not set
|
||||||
CONFIG_SYSFS_DEPRECATED=y
|
CONFIG_SYSFS_DEPRECATED=y
|
||||||
CONFIG_SYSFS_DEPRECATED_V2=y
|
CONFIG_SYSFS_DEPRECATED_V2=y
|
||||||
@@ -90,10 +94,14 @@ CONFIG_TIMERFD=y
|
|||||||
CONFIG_EVENTFD=y
|
CONFIG_EVENTFD=y
|
||||||
CONFIG_SHMEM=y
|
CONFIG_SHMEM=y
|
||||||
CONFIG_AIO=y
|
CONFIG_AIO=y
|
||||||
|
CONFIG_HAVE_PERF_EVENTS=y
|
||||||
|
CONFIG_PERF_USE_VMALLOC=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Kernel Performance Events And Counters
|
# Kernel Performance Events And Counters
|
||||||
#
|
#
|
||||||
|
# CONFIG_PERF_EVENTS is not set
|
||||||
|
# CONFIG_PERF_COUNTERS is not set
|
||||||
CONFIG_VM_EVENT_COUNTERS=y
|
CONFIG_VM_EVENT_COUNTERS=y
|
||||||
CONFIG_SLUB_DEBUG=y
|
CONFIG_SLUB_DEBUG=y
|
||||||
CONFIG_COMPAT_BRK=y
|
CONFIG_COMPAT_BRK=y
|
||||||
@@ -175,8 +183,11 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_INTEGRATOR is not set
|
# CONFIG_ARCH_INTEGRATOR is not set
|
||||||
# CONFIG_ARCH_REALVIEW is not set
|
# CONFIG_ARCH_REALVIEW is not set
|
||||||
# CONFIG_ARCH_VERSATILE is not set
|
# CONFIG_ARCH_VERSATILE is not set
|
||||||
|
# CONFIG_ARCH_VEXPRESS is not set
|
||||||
# CONFIG_ARCH_AT91 is not set
|
# CONFIG_ARCH_AT91 is not set
|
||||||
|
# CONFIG_ARCH_BCMRING is not set
|
||||||
# CONFIG_ARCH_CLPS711X is not set
|
# CONFIG_ARCH_CLPS711X is not set
|
||||||
|
# CONFIG_ARCH_CNS3XXX is not set
|
||||||
# CONFIG_ARCH_GEMINI is not set
|
# CONFIG_ARCH_GEMINI is not set
|
||||||
# CONFIG_ARCH_EBSA110 is not set
|
# CONFIG_ARCH_EBSA110 is not set
|
||||||
# CONFIG_ARCH_EP93XX is not set
|
# CONFIG_ARCH_EP93XX is not set
|
||||||
@@ -185,7 +196,6 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_STMP3XXX is not set
|
# CONFIG_ARCH_STMP3XXX is not set
|
||||||
# CONFIG_ARCH_NETX is not set
|
# CONFIG_ARCH_NETX is not set
|
||||||
# CONFIG_ARCH_H720X is not set
|
# CONFIG_ARCH_H720X is not set
|
||||||
# CONFIG_ARCH_NOMADIK is not set
|
|
||||||
# CONFIG_ARCH_IOP13XX is not set
|
# CONFIG_ARCH_IOP13XX is not set
|
||||||
# CONFIG_ARCH_IOP32X is not set
|
# CONFIG_ARCH_IOP32X is not set
|
||||||
# CONFIG_ARCH_IOP33X is not set
|
# CONFIG_ARCH_IOP33X is not set
|
||||||
@@ -202,24 +212,27 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_KS8695 is not set
|
# CONFIG_ARCH_KS8695 is not set
|
||||||
# CONFIG_ARCH_NS9XXX is not set
|
# CONFIG_ARCH_NS9XXX is not set
|
||||||
# CONFIG_ARCH_W90X900 is not set
|
# CONFIG_ARCH_W90X900 is not set
|
||||||
|
# CONFIG_ARCH_NUC93X is not set
|
||||||
# CONFIG_ARCH_PNX4008 is not set
|
# CONFIG_ARCH_PNX4008 is not set
|
||||||
# CONFIG_ARCH_PXA is not set
|
# CONFIG_ARCH_PXA is not set
|
||||||
# CONFIG_ARCH_MSM is not set
|
# CONFIG_ARCH_MSM is not set
|
||||||
|
# CONFIG_ARCH_SHMOBILE is not set
|
||||||
# CONFIG_ARCH_RPC is not set
|
# CONFIG_ARCH_RPC is not set
|
||||||
# CONFIG_ARCH_SA1100 is not set
|
# CONFIG_ARCH_SA1100 is not set
|
||||||
# CONFIG_ARCH_S3C2410 is not set
|
# CONFIG_ARCH_S3C2410 is not set
|
||||||
# CONFIG_ARCH_S3C64XX is not set
|
# CONFIG_ARCH_S3C64XX is not set
|
||||||
# CONFIG_ARCH_S5P6440 is not set
|
# CONFIG_ARCH_S5P6440 is not set
|
||||||
# CONFIG_ARCH_S5P6442 is not set
|
# CONFIG_ARCH_S5P6442 is not set
|
||||||
# CONFIG_ARCH_S5PC1XX is not set
|
# CONFIG_ARCH_S5PC100 is not set
|
||||||
CONFIG_ARCH_S5PV210=y
|
CONFIG_ARCH_S5PV210=y
|
||||||
# CONFIG_ARCH_SHARK is not set
|
# CONFIG_ARCH_SHARK is not set
|
||||||
# CONFIG_ARCH_LH7A40X is not set
|
# CONFIG_ARCH_LH7A40X is not set
|
||||||
# CONFIG_ARCH_U300 is not set
|
# CONFIG_ARCH_U300 is not set
|
||||||
|
# CONFIG_ARCH_U8500 is not set
|
||||||
|
# CONFIG_ARCH_NOMADIK is not set
|
||||||
# CONFIG_ARCH_DAVINCI is not set
|
# CONFIG_ARCH_DAVINCI is not set
|
||||||
# CONFIG_ARCH_OMAP is not set
|
# CONFIG_ARCH_OMAP is not set
|
||||||
# CONFIG_ARCH_BCMRING is not set
|
# CONFIG_PLAT_SPEAR is not set
|
||||||
# CONFIG_ARCH_U8500 is not set
|
|
||||||
CONFIG_PLAT_SAMSUNG=y
|
CONFIG_PLAT_SAMSUNG=y
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -235,16 +248,22 @@ CONFIG_SAMSUNG_GPIOLIB_4BIT=y
|
|||||||
CONFIG_S3C_GPIO_CFG_S3C24XX=y
|
CONFIG_S3C_GPIO_CFG_S3C24XX=y
|
||||||
CONFIG_S3C_GPIO_CFG_S3C64XX=y
|
CONFIG_S3C_GPIO_CFG_S3C64XX=y
|
||||||
CONFIG_S3C_GPIO_PULL_UPDOWN=y
|
CONFIG_S3C_GPIO_PULL_UPDOWN=y
|
||||||
|
CONFIG_S5P_GPIO_DRVSTR=y
|
||||||
CONFIG_SAMSUNG_GPIO_EXTRA=0
|
CONFIG_SAMSUNG_GPIO_EXTRA=0
|
||||||
CONFIG_S3C_GPIO_SPACE=0
|
CONFIG_S3C_GPIO_SPACE=0
|
||||||
CONFIG_S3C_GPIO_TRACK=y
|
CONFIG_S3C_GPIO_TRACK=y
|
||||||
# CONFIG_S3C_ADC is not set
|
# CONFIG_S3C_ADC is not set
|
||||||
|
CONFIG_S3C_DEV_WDT=y
|
||||||
|
CONFIG_S3C_PL330_DMA=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Power management
|
# Power management
|
||||||
#
|
#
|
||||||
CONFIG_PLAT_S5P=y
|
CONFIG_PLAT_S5P=y
|
||||||
|
CONFIG_S5P_EXT_INT=y
|
||||||
CONFIG_CPU_S5PV210=y
|
CONFIG_CPU_S5PV210=y
|
||||||
|
# CONFIG_MACH_AQUILA is not set
|
||||||
|
# CONFIG_MACH_GONI is not set
|
||||||
# CONFIG_MACH_SMDKV210 is not set
|
# CONFIG_MACH_SMDKV210 is not set
|
||||||
CONFIG_MACH_SMDKC110=y
|
CONFIG_MACH_SMDKC110=y
|
||||||
|
|
||||||
@@ -274,11 +293,14 @@ CONFIG_ARM_THUMB=y
|
|||||||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||||
CONFIG_HAS_TLS_REG=y
|
CONFIG_HAS_TLS_REG=y
|
||||||
CONFIG_ARM_L1_CACHE_SHIFT=6
|
CONFIG_ARM_L1_CACHE_SHIFT=6
|
||||||
|
CONFIG_ARM_DMA_MEM_BUFFERABLE=y
|
||||||
|
CONFIG_CPU_HAS_PMU=y
|
||||||
# CONFIG_ARM_ERRATA_430973 is not set
|
# CONFIG_ARM_ERRATA_430973 is not set
|
||||||
# CONFIG_ARM_ERRATA_458693 is not set
|
# CONFIG_ARM_ERRATA_458693 is not set
|
||||||
# CONFIG_ARM_ERRATA_460075 is not set
|
# CONFIG_ARM_ERRATA_460075 is not set
|
||||||
CONFIG_ARM_VIC=y
|
CONFIG_ARM_VIC=y
|
||||||
CONFIG_ARM_VIC_NR=2
|
CONFIG_ARM_VIC_NR=2
|
||||||
|
CONFIG_PL330=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bus support
|
# Bus support
|
||||||
@@ -327,6 +349,7 @@ CONFIG_ALIGNMENT_TRAP=y
|
|||||||
CONFIG_ZBOOT_ROM_TEXT=0
|
CONFIG_ZBOOT_ROM_TEXT=0
|
||||||
CONFIG_ZBOOT_ROM_BSS=0
|
CONFIG_ZBOOT_ROM_BSS=0
|
||||||
CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x20800000,8M console=ttySAC1,115200 init=/linuxrc"
|
CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x20800000,8M console=ttySAC1,115200 init=/linuxrc"
|
||||||
|
# CONFIG_CMDLINE_FORCE is not set
|
||||||
# CONFIG_XIP_KERNEL is not set
|
# CONFIG_XIP_KERNEL is not set
|
||||||
# CONFIG_KEXEC is not set
|
# CONFIG_KEXEC is not set
|
||||||
|
|
||||||
@@ -404,6 +427,7 @@ CONFIG_HAVE_IDE=y
|
|||||||
#
|
#
|
||||||
# SCSI device support
|
# SCSI device support
|
||||||
#
|
#
|
||||||
|
CONFIG_SCSI_MOD=y
|
||||||
# CONFIG_RAID_ATTRS is not set
|
# CONFIG_RAID_ATTRS is not set
|
||||||
CONFIG_SCSI=y
|
CONFIG_SCSI=y
|
||||||
CONFIG_SCSI_DMA=y
|
CONFIG_SCSI_DMA=y
|
||||||
@@ -472,6 +496,7 @@ CONFIG_INPUT_EVDEV=y
|
|||||||
CONFIG_INPUT_TOUCHSCREEN=y
|
CONFIG_INPUT_TOUCHSCREEN=y
|
||||||
# CONFIG_TOUCHSCREEN_AD7879 is not set
|
# CONFIG_TOUCHSCREEN_AD7879 is not set
|
||||||
# CONFIG_TOUCHSCREEN_DYNAPRO is not set
|
# CONFIG_TOUCHSCREEN_DYNAPRO is not set
|
||||||
|
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
|
||||||
# CONFIG_TOUCHSCREEN_FUJITSU is not set
|
# CONFIG_TOUCHSCREEN_FUJITSU is not set
|
||||||
# CONFIG_TOUCHSCREEN_GUNZE is not set
|
# CONFIG_TOUCHSCREEN_GUNZE is not set
|
||||||
# CONFIG_TOUCHSCREEN_ELO is not set
|
# CONFIG_TOUCHSCREEN_ELO is not set
|
||||||
@@ -526,6 +551,9 @@ CONFIG_SERIAL_SAMSUNG_CONSOLE=y
|
|||||||
CONFIG_SERIAL_S5PV210=y
|
CONFIG_SERIAL_S5PV210=y
|
||||||
CONFIG_SERIAL_CORE=y
|
CONFIG_SERIAL_CORE=y
|
||||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||||
|
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||||
|
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
|
||||||
|
# CONFIG_SERIAL_ALTERA_UART is not set
|
||||||
CONFIG_UNIX98_PTYS=y
|
CONFIG_UNIX98_PTYS=y
|
||||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||||
CONFIG_LEGACY_PTYS=y
|
CONFIG_LEGACY_PTYS=y
|
||||||
@@ -551,6 +579,7 @@ CONFIG_GPIOLIB=y
|
|||||||
#
|
#
|
||||||
# Memory mapped GPIO expanders:
|
# Memory mapped GPIO expanders:
|
||||||
#
|
#
|
||||||
|
# CONFIG_GPIO_IT8761E is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# I2C GPIO expanders:
|
# I2C GPIO expanders:
|
||||||
@@ -572,6 +601,7 @@ CONFIG_GPIOLIB=y
|
|||||||
# CONFIG_HWMON is not set
|
# CONFIG_HWMON is not set
|
||||||
# CONFIG_THERMAL is not set
|
# CONFIG_THERMAL is not set
|
||||||
# CONFIG_WATCHDOG is not set
|
# CONFIG_WATCHDOG is not set
|
||||||
|
CONFIG_HAVE_S3C2410_WATCHDOG=y
|
||||||
CONFIG_SSB_POSSIBLE=y
|
CONFIG_SSB_POSSIBLE=y
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -624,10 +654,6 @@ CONFIG_RTC_LIB=y
|
|||||||
# CONFIG_DMADEVICES is not set
|
# CONFIG_DMADEVICES is not set
|
||||||
# CONFIG_AUXDISPLAY is not set
|
# CONFIG_AUXDISPLAY is not set
|
||||||
# CONFIG_UIO is not set
|
# CONFIG_UIO is not set
|
||||||
|
|
||||||
#
|
|
||||||
# TI VLYNQ
|
|
||||||
#
|
|
||||||
# CONFIG_STAGING is not set
|
# CONFIG_STAGING is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -696,6 +722,7 @@ CONFIG_MISC_FILESYSTEMS=y
|
|||||||
# CONFIG_BEFS_FS is not set
|
# CONFIG_BEFS_FS is not set
|
||||||
# CONFIG_BFS_FS is not set
|
# CONFIG_BFS_FS is not set
|
||||||
# CONFIG_EFS_FS is not set
|
# CONFIG_EFS_FS is not set
|
||||||
|
# CONFIG_LOGFS is not set
|
||||||
CONFIG_CRAMFS=y
|
CONFIG_CRAMFS=y
|
||||||
# CONFIG_SQUASHFS is not set
|
# CONFIG_SQUASHFS is not set
|
||||||
# CONFIG_VXFS_FS is not set
|
# CONFIG_VXFS_FS is not set
|
||||||
@@ -835,6 +862,8 @@ CONFIG_HAVE_FUNCTION_TRACER=y
|
|||||||
CONFIG_TRACING_SUPPORT=y
|
CONFIG_TRACING_SUPPORT=y
|
||||||
CONFIG_FTRACE=y
|
CONFIG_FTRACE=y
|
||||||
# CONFIG_FUNCTION_TRACER is not set
|
# 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_SCHED_TRACER is not set
|
||||||
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
|
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
|
||||||
# CONFIG_BOOT_TRACER is not set
|
# CONFIG_BOOT_TRACER is not set
|
||||||
@@ -845,6 +874,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
|
|||||||
# CONFIG_KMEMTRACE is not set
|
# CONFIG_KMEMTRACE is not set
|
||||||
# CONFIG_WORKQUEUE_TRACER is not set
|
# CONFIG_WORKQUEUE_TRACER is not set
|
||||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||||
|
# CONFIG_ATOMIC64_SELFTEST is not set
|
||||||
# CONFIG_SAMPLES is not set
|
# CONFIG_SAMPLES is not set
|
||||||
CONFIG_HAVE_ARCH_KGDB=y
|
CONFIG_HAVE_ARCH_KGDB=y
|
||||||
# CONFIG_KGDB is not set
|
# CONFIG_KGDB is not set
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.33-rc4
|
# Linux kernel version: 2.6.34
|
||||||
# Wed Feb 24 15:36:16 2010
|
# Wed May 26 19:04:39 2010
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||||
CONFIG_GENERIC_GPIO=y
|
CONFIG_GENERIC_GPIO=y
|
||||||
|
CONFIG_GENERIC_TIME=y
|
||||||
|
CONFIG_ARCH_USES_GETTIMEOFFSET=y
|
||||||
|
CONFIG_HAVE_PROC_CPU=y
|
||||||
CONFIG_NO_IOPORT=y
|
CONFIG_NO_IOPORT=y
|
||||||
CONFIG_GENERIC_HARDIRQS=y
|
CONFIG_GENERIC_HARDIRQS=y
|
||||||
CONFIG_STACKTRACE_SUPPORT=y
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
@@ -17,6 +20,7 @@ CONFIG_GENERIC_IRQ_PROBE=y
|
|||||||
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||||
CONFIG_GENERIC_HWEIGHT=y
|
CONFIG_GENERIC_HWEIGHT=y
|
||||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||||
|
CONFIG_NEED_DMA_MAP_STATE=y
|
||||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||||
CONFIG_ARM_L1_CACHE_SHIFT_6=y
|
CONFIG_ARM_L1_CACHE_SHIFT_6=y
|
||||||
CONFIG_VECTORS_BASE=0xffff0000
|
CONFIG_VECTORS_BASE=0xffff0000
|
||||||
@@ -33,6 +37,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
|
|||||||
CONFIG_LOCALVERSION=""
|
CONFIG_LOCALVERSION=""
|
||||||
CONFIG_LOCALVERSION_AUTO=y
|
CONFIG_LOCALVERSION_AUTO=y
|
||||||
CONFIG_HAVE_KERNEL_GZIP=y
|
CONFIG_HAVE_KERNEL_GZIP=y
|
||||||
|
CONFIG_HAVE_KERNEL_LZMA=y
|
||||||
CONFIG_HAVE_KERNEL_LZO=y
|
CONFIG_HAVE_KERNEL_LZO=y
|
||||||
CONFIG_KERNEL_GZIP=y
|
CONFIG_KERNEL_GZIP=y
|
||||||
# CONFIG_KERNEL_BZIP2 is not set
|
# CONFIG_KERNEL_BZIP2 is not set
|
||||||
@@ -54,7 +59,6 @@ CONFIG_RCU_FANOUT=32
|
|||||||
# CONFIG_TREE_RCU_TRACE is not set
|
# CONFIG_TREE_RCU_TRACE is not set
|
||||||
# CONFIG_IKCONFIG is not set
|
# CONFIG_IKCONFIG is not set
|
||||||
CONFIG_LOG_BUF_SHIFT=17
|
CONFIG_LOG_BUF_SHIFT=17
|
||||||
# CONFIG_GROUP_SCHED is not set
|
|
||||||
# CONFIG_CGROUPS is not set
|
# CONFIG_CGROUPS is not set
|
||||||
CONFIG_SYSFS_DEPRECATED=y
|
CONFIG_SYSFS_DEPRECATED=y
|
||||||
CONFIG_SYSFS_DEPRECATED_V2=y
|
CONFIG_SYSFS_DEPRECATED_V2=y
|
||||||
@@ -90,10 +94,14 @@ CONFIG_TIMERFD=y
|
|||||||
CONFIG_EVENTFD=y
|
CONFIG_EVENTFD=y
|
||||||
CONFIG_SHMEM=y
|
CONFIG_SHMEM=y
|
||||||
CONFIG_AIO=y
|
CONFIG_AIO=y
|
||||||
|
CONFIG_HAVE_PERF_EVENTS=y
|
||||||
|
CONFIG_PERF_USE_VMALLOC=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Kernel Performance Events And Counters
|
# Kernel Performance Events And Counters
|
||||||
#
|
#
|
||||||
|
# CONFIG_PERF_EVENTS is not set
|
||||||
|
# CONFIG_PERF_COUNTERS is not set
|
||||||
CONFIG_VM_EVENT_COUNTERS=y
|
CONFIG_VM_EVENT_COUNTERS=y
|
||||||
CONFIG_SLUB_DEBUG=y
|
CONFIG_SLUB_DEBUG=y
|
||||||
CONFIG_COMPAT_BRK=y
|
CONFIG_COMPAT_BRK=y
|
||||||
@@ -175,8 +183,11 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_INTEGRATOR is not set
|
# CONFIG_ARCH_INTEGRATOR is not set
|
||||||
# CONFIG_ARCH_REALVIEW is not set
|
# CONFIG_ARCH_REALVIEW is not set
|
||||||
# CONFIG_ARCH_VERSATILE is not set
|
# CONFIG_ARCH_VERSATILE is not set
|
||||||
|
# CONFIG_ARCH_VEXPRESS is not set
|
||||||
# CONFIG_ARCH_AT91 is not set
|
# CONFIG_ARCH_AT91 is not set
|
||||||
|
# CONFIG_ARCH_BCMRING is not set
|
||||||
# CONFIG_ARCH_CLPS711X is not set
|
# CONFIG_ARCH_CLPS711X is not set
|
||||||
|
# CONFIG_ARCH_CNS3XXX is not set
|
||||||
# CONFIG_ARCH_GEMINI is not set
|
# CONFIG_ARCH_GEMINI is not set
|
||||||
# CONFIG_ARCH_EBSA110 is not set
|
# CONFIG_ARCH_EBSA110 is not set
|
||||||
# CONFIG_ARCH_EP93XX is not set
|
# CONFIG_ARCH_EP93XX is not set
|
||||||
@@ -185,7 +196,6 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_STMP3XXX is not set
|
# CONFIG_ARCH_STMP3XXX is not set
|
||||||
# CONFIG_ARCH_NETX is not set
|
# CONFIG_ARCH_NETX is not set
|
||||||
# CONFIG_ARCH_H720X is not set
|
# CONFIG_ARCH_H720X is not set
|
||||||
# CONFIG_ARCH_NOMADIK is not set
|
|
||||||
# CONFIG_ARCH_IOP13XX is not set
|
# CONFIG_ARCH_IOP13XX is not set
|
||||||
# CONFIG_ARCH_IOP32X is not set
|
# CONFIG_ARCH_IOP32X is not set
|
||||||
# CONFIG_ARCH_IOP33X is not set
|
# CONFIG_ARCH_IOP33X is not set
|
||||||
@@ -202,24 +212,27 @@ CONFIG_MMU=y
|
|||||||
# CONFIG_ARCH_KS8695 is not set
|
# CONFIG_ARCH_KS8695 is not set
|
||||||
# CONFIG_ARCH_NS9XXX is not set
|
# CONFIG_ARCH_NS9XXX is not set
|
||||||
# CONFIG_ARCH_W90X900 is not set
|
# CONFIG_ARCH_W90X900 is not set
|
||||||
|
# CONFIG_ARCH_NUC93X is not set
|
||||||
# CONFIG_ARCH_PNX4008 is not set
|
# CONFIG_ARCH_PNX4008 is not set
|
||||||
# CONFIG_ARCH_PXA is not set
|
# CONFIG_ARCH_PXA is not set
|
||||||
# CONFIG_ARCH_MSM is not set
|
# CONFIG_ARCH_MSM is not set
|
||||||
|
# CONFIG_ARCH_SHMOBILE is not set
|
||||||
# CONFIG_ARCH_RPC is not set
|
# CONFIG_ARCH_RPC is not set
|
||||||
# CONFIG_ARCH_SA1100 is not set
|
# CONFIG_ARCH_SA1100 is not set
|
||||||
# CONFIG_ARCH_S3C2410 is not set
|
# CONFIG_ARCH_S3C2410 is not set
|
||||||
# CONFIG_ARCH_S3C64XX is not set
|
# CONFIG_ARCH_S3C64XX is not set
|
||||||
# CONFIG_ARCH_S5P6440 is not set
|
# CONFIG_ARCH_S5P6440 is not set
|
||||||
# CONFIG_ARCH_S5P6442 is not set
|
# CONFIG_ARCH_S5P6442 is not set
|
||||||
# CONFIG_ARCH_S5PC1XX is not set
|
# CONFIG_ARCH_S5PC100 is not set
|
||||||
CONFIG_ARCH_S5PV210=y
|
CONFIG_ARCH_S5PV210=y
|
||||||
# CONFIG_ARCH_SHARK is not set
|
# CONFIG_ARCH_SHARK is not set
|
||||||
# CONFIG_ARCH_LH7A40X is not set
|
# CONFIG_ARCH_LH7A40X is not set
|
||||||
# CONFIG_ARCH_U300 is not set
|
# CONFIG_ARCH_U300 is not set
|
||||||
|
# CONFIG_ARCH_U8500 is not set
|
||||||
|
# CONFIG_ARCH_NOMADIK is not set
|
||||||
# CONFIG_ARCH_DAVINCI is not set
|
# CONFIG_ARCH_DAVINCI is not set
|
||||||
# CONFIG_ARCH_OMAP is not set
|
# CONFIG_ARCH_OMAP is not set
|
||||||
# CONFIG_ARCH_BCMRING is not set
|
# CONFIG_PLAT_SPEAR is not set
|
||||||
# CONFIG_ARCH_U8500 is not set
|
|
||||||
CONFIG_PLAT_SAMSUNG=y
|
CONFIG_PLAT_SAMSUNG=y
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -235,16 +248,24 @@ CONFIG_SAMSUNG_GPIOLIB_4BIT=y
|
|||||||
CONFIG_S3C_GPIO_CFG_S3C24XX=y
|
CONFIG_S3C_GPIO_CFG_S3C24XX=y
|
||||||
CONFIG_S3C_GPIO_CFG_S3C64XX=y
|
CONFIG_S3C_GPIO_CFG_S3C64XX=y
|
||||||
CONFIG_S3C_GPIO_PULL_UPDOWN=y
|
CONFIG_S3C_GPIO_PULL_UPDOWN=y
|
||||||
|
CONFIG_S5P_GPIO_DRVSTR=y
|
||||||
CONFIG_SAMSUNG_GPIO_EXTRA=0
|
CONFIG_SAMSUNG_GPIO_EXTRA=0
|
||||||
CONFIG_S3C_GPIO_SPACE=0
|
CONFIG_S3C_GPIO_SPACE=0
|
||||||
CONFIG_S3C_GPIO_TRACK=y
|
CONFIG_S3C_GPIO_TRACK=y
|
||||||
# CONFIG_S3C_ADC is not set
|
# CONFIG_S3C_ADC is not set
|
||||||
|
CONFIG_S3C_DEV_WDT=y
|
||||||
|
CONFIG_SAMSUNG_DEV_ADC=y
|
||||||
|
CONFIG_SAMSUNG_DEV_TS=y
|
||||||
|
CONFIG_S3C_PL330_DMA=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Power management
|
# Power management
|
||||||
#
|
#
|
||||||
CONFIG_PLAT_S5P=y
|
CONFIG_PLAT_S5P=y
|
||||||
|
CONFIG_S5P_EXT_INT=y
|
||||||
CONFIG_CPU_S5PV210=y
|
CONFIG_CPU_S5PV210=y
|
||||||
|
# CONFIG_MACH_AQUILA is not set
|
||||||
|
# CONFIG_MACH_GONI is not set
|
||||||
CONFIG_MACH_SMDKV210=y
|
CONFIG_MACH_SMDKV210=y
|
||||||
# CONFIG_MACH_SMDKC110 is not set
|
# CONFIG_MACH_SMDKC110 is not set
|
||||||
|
|
||||||
@@ -274,11 +295,14 @@ CONFIG_ARM_THUMB=y
|
|||||||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||||
CONFIG_HAS_TLS_REG=y
|
CONFIG_HAS_TLS_REG=y
|
||||||
CONFIG_ARM_L1_CACHE_SHIFT=6
|
CONFIG_ARM_L1_CACHE_SHIFT=6
|
||||||
|
CONFIG_ARM_DMA_MEM_BUFFERABLE=y
|
||||||
|
CONFIG_CPU_HAS_PMU=y
|
||||||
# CONFIG_ARM_ERRATA_430973 is not set
|
# CONFIG_ARM_ERRATA_430973 is not set
|
||||||
# CONFIG_ARM_ERRATA_458693 is not set
|
# CONFIG_ARM_ERRATA_458693 is not set
|
||||||
# CONFIG_ARM_ERRATA_460075 is not set
|
# CONFIG_ARM_ERRATA_460075 is not set
|
||||||
CONFIG_ARM_VIC=y
|
CONFIG_ARM_VIC=y
|
||||||
CONFIG_ARM_VIC_NR=2
|
CONFIG_ARM_VIC_NR=2
|
||||||
|
CONFIG_PL330=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bus support
|
# Bus support
|
||||||
@@ -327,6 +351,7 @@ CONFIG_ALIGNMENT_TRAP=y
|
|||||||
CONFIG_ZBOOT_ROM_TEXT=0
|
CONFIG_ZBOOT_ROM_TEXT=0
|
||||||
CONFIG_ZBOOT_ROM_BSS=0
|
CONFIG_ZBOOT_ROM_BSS=0
|
||||||
CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x20800000,8M console=ttySAC1,115200 init=/linuxrc"
|
CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x20800000,8M console=ttySAC1,115200 init=/linuxrc"
|
||||||
|
# CONFIG_CMDLINE_FORCE is not set
|
||||||
# CONFIG_XIP_KERNEL is not set
|
# CONFIG_XIP_KERNEL is not set
|
||||||
# CONFIG_KEXEC is not set
|
# CONFIG_KEXEC is not set
|
||||||
|
|
||||||
@@ -404,6 +429,7 @@ CONFIG_HAVE_IDE=y
|
|||||||
#
|
#
|
||||||
# SCSI device support
|
# SCSI device support
|
||||||
#
|
#
|
||||||
|
CONFIG_SCSI_MOD=y
|
||||||
# CONFIG_RAID_ATTRS is not set
|
# CONFIG_RAID_ATTRS is not set
|
||||||
CONFIG_SCSI=y
|
CONFIG_SCSI=y
|
||||||
CONFIG_SCSI_DMA=y
|
CONFIG_SCSI_DMA=y
|
||||||
@@ -472,7 +498,9 @@ CONFIG_INPUT_EVDEV=y
|
|||||||
CONFIG_INPUT_TOUCHSCREEN=y
|
CONFIG_INPUT_TOUCHSCREEN=y
|
||||||
# CONFIG_TOUCHSCREEN_AD7879 is not set
|
# CONFIG_TOUCHSCREEN_AD7879 is not set
|
||||||
# CONFIG_TOUCHSCREEN_DYNAPRO is not set
|
# CONFIG_TOUCHSCREEN_DYNAPRO is not set
|
||||||
|
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
|
||||||
# CONFIG_TOUCHSCREEN_FUJITSU is not set
|
# CONFIG_TOUCHSCREEN_FUJITSU is not set
|
||||||
|
# CONFIG_TOUCHSCREEN_S3C2410 is not set
|
||||||
# CONFIG_TOUCHSCREEN_GUNZE is not set
|
# CONFIG_TOUCHSCREEN_GUNZE is not set
|
||||||
# CONFIG_TOUCHSCREEN_ELO is not set
|
# CONFIG_TOUCHSCREEN_ELO is not set
|
||||||
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
|
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
|
||||||
@@ -526,6 +554,9 @@ CONFIG_SERIAL_SAMSUNG_CONSOLE=y
|
|||||||
CONFIG_SERIAL_S5PV210=y
|
CONFIG_SERIAL_S5PV210=y
|
||||||
CONFIG_SERIAL_CORE=y
|
CONFIG_SERIAL_CORE=y
|
||||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||||
|
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||||
|
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
|
||||||
|
# CONFIG_SERIAL_ALTERA_UART is not set
|
||||||
CONFIG_UNIX98_PTYS=y
|
CONFIG_UNIX98_PTYS=y
|
||||||
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
|
||||||
CONFIG_LEGACY_PTYS=y
|
CONFIG_LEGACY_PTYS=y
|
||||||
@@ -551,6 +582,7 @@ CONFIG_GPIOLIB=y
|
|||||||
#
|
#
|
||||||
# Memory mapped GPIO expanders:
|
# Memory mapped GPIO expanders:
|
||||||
#
|
#
|
||||||
|
# CONFIG_GPIO_IT8761E is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# I2C GPIO expanders:
|
# I2C GPIO expanders:
|
||||||
@@ -572,6 +604,7 @@ CONFIG_GPIOLIB=y
|
|||||||
# CONFIG_HWMON is not set
|
# CONFIG_HWMON is not set
|
||||||
# CONFIG_THERMAL is not set
|
# CONFIG_THERMAL is not set
|
||||||
# CONFIG_WATCHDOG is not set
|
# CONFIG_WATCHDOG is not set
|
||||||
|
CONFIG_HAVE_S3C2410_WATCHDOG=y
|
||||||
CONFIG_SSB_POSSIBLE=y
|
CONFIG_SSB_POSSIBLE=y
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -624,10 +657,6 @@ CONFIG_RTC_LIB=y
|
|||||||
# CONFIG_DMADEVICES is not set
|
# CONFIG_DMADEVICES is not set
|
||||||
# CONFIG_AUXDISPLAY is not set
|
# CONFIG_AUXDISPLAY is not set
|
||||||
# CONFIG_UIO is not set
|
# CONFIG_UIO is not set
|
||||||
|
|
||||||
#
|
|
||||||
# TI VLYNQ
|
|
||||||
#
|
|
||||||
# CONFIG_STAGING is not set
|
# CONFIG_STAGING is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -696,6 +725,7 @@ CONFIG_MISC_FILESYSTEMS=y
|
|||||||
# CONFIG_BEFS_FS is not set
|
# CONFIG_BEFS_FS is not set
|
||||||
# CONFIG_BFS_FS is not set
|
# CONFIG_BFS_FS is not set
|
||||||
# CONFIG_EFS_FS is not set
|
# CONFIG_EFS_FS is not set
|
||||||
|
# CONFIG_LOGFS is not set
|
||||||
CONFIG_CRAMFS=y
|
CONFIG_CRAMFS=y
|
||||||
# CONFIG_SQUASHFS is not set
|
# CONFIG_SQUASHFS is not set
|
||||||
# CONFIG_VXFS_FS is not set
|
# CONFIG_VXFS_FS is not set
|
||||||
@@ -835,6 +865,8 @@ CONFIG_HAVE_FUNCTION_TRACER=y
|
|||||||
CONFIG_TRACING_SUPPORT=y
|
CONFIG_TRACING_SUPPORT=y
|
||||||
CONFIG_FTRACE=y
|
CONFIG_FTRACE=y
|
||||||
# CONFIG_FUNCTION_TRACER is not set
|
# 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_SCHED_TRACER is not set
|
||||||
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
|
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
|
||||||
# CONFIG_BOOT_TRACER is not set
|
# CONFIG_BOOT_TRACER is not set
|
||||||
@@ -845,6 +877,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
|
|||||||
# CONFIG_KMEMTRACE is not set
|
# CONFIG_KMEMTRACE is not set
|
||||||
# CONFIG_WORKQUEUE_TRACER is not set
|
# CONFIG_WORKQUEUE_TRACER is not set
|
||||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||||
|
# CONFIG_ATOMIC64_SELFTEST is not set
|
||||||
# CONFIG_SAMPLES is not set
|
# CONFIG_SAMPLES is not set
|
||||||
CONFIG_HAVE_ARCH_KGDB=y
|
CONFIG_HAVE_ARCH_KGDB=y
|
||||||
# CONFIG_KGDB is not set
|
# CONFIG_KGDB is not set
|
||||||
|
|||||||
@@ -12,7 +12,9 @@ typedef struct {
|
|||||||
|
|
||||||
#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
|
#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
|
||||||
|
|
||||||
#if NR_IRQS > 256
|
#if NR_IRQS > 512
|
||||||
|
#define HARDIRQ_BITS 10
|
||||||
|
#elif NR_IRQS > 256
|
||||||
#define HARDIRQ_BITS 9
|
#define HARDIRQ_BITS 9
|
||||||
#else
|
#else
|
||||||
#define HARDIRQ_BITS 8
|
#define HARDIRQ_BITS 8
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ enum km_type {
|
|||||||
KM_SOFTIRQ1,
|
KM_SOFTIRQ1,
|
||||||
KM_L1_CACHE,
|
KM_L1_CACHE,
|
||||||
KM_L2_CACHE,
|
KM_L2_CACHE,
|
||||||
|
KM_KDB,
|
||||||
KM_TYPE_NR
|
KM_TYPE_NR
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -3,9 +3,6 @@
|
|||||||
|
|
||||||
#include <asm/memory.h>
|
#include <asm/memory.h>
|
||||||
#include <asm/types.h>
|
#include <asm/types.h>
|
||||||
|
|
||||||
#include <asm-generic/scatterlist.h>
|
#include <asm-generic/scatterlist.h>
|
||||||
|
|
||||||
#undef ARCH_HAS_SG_CHAIN
|
|
||||||
|
|
||||||
#endif /* _ASMARM_SCATTERLIST_H */
|
#endif /* _ASMARM_SCATTERLIST_H */
|
||||||
|
|||||||
@@ -98,6 +98,11 @@ sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *task)
|
|||||||
gdb_regs[_CPSR] = thread_regs->ARM_cpsr;
|
gdb_regs[_CPSR] = thread_regs->ARM_cpsr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long pc)
|
||||||
|
{
|
||||||
|
regs->ARM_pc = pc;
|
||||||
|
}
|
||||||
|
|
||||||
static int compiled_break;
|
static int compiled_break;
|
||||||
|
|
||||||
int kgdb_arch_handle_exception(int exception_vector, int signo,
|
int kgdb_arch_handle_exception(int exception_vector, int signo,
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user