Merge branch 'linus' into perf/urgent
Merge reason: Fix upstream breakage introduced by:
de5d9bf
: Move list types from <linux/list.h> to <linux/types.h>.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
@@ -130,8 +130,6 @@ edac.txt
|
|||||||
- information on EDAC - Error Detection And Correction
|
- information on EDAC - Error Detection And Correction
|
||||||
eisa.txt
|
eisa.txt
|
||||||
- info on EISA bus support.
|
- info on EISA bus support.
|
||||||
exception.txt
|
|
||||||
- how Linux v2.2 handles exceptions without verify_area etc.
|
|
||||||
fault-injection/
|
fault-injection/
|
||||||
- dir with docs about the fault injection capabilities infrastructure.
|
- dir with docs about the fault injection capabilities infrastructure.
|
||||||
fb/
|
fb/
|
||||||
@@ -234,6 +232,8 @@ memory.txt
|
|||||||
- info on typical Linux memory problems.
|
- info on typical Linux memory problems.
|
||||||
mips/
|
mips/
|
||||||
- directory with info about Linux on MIPS architecture.
|
- directory with info about Linux on MIPS architecture.
|
||||||
|
mmc/
|
||||||
|
- directory with info about the MMC subsystem
|
||||||
mono.txt
|
mono.txt
|
||||||
- how to execute Mono-based .NET binaries with the help of BINFMT_MISC.
|
- how to execute Mono-based .NET binaries with the help of BINFMT_MISC.
|
||||||
mutex-design.txt
|
mutex-design.txt
|
||||||
|
20
Documentation/ABI/testing/debugfs-ec
Normal file
20
Documentation/ABI/testing/debugfs-ec
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
What: /sys/kernel/debug/ec/*/{gpe,use_global_lock,io}
|
||||||
|
Date: July 2010
|
||||||
|
Contact: Thomas Renninger <trenn@suse.de>
|
||||||
|
Description:
|
||||||
|
|
||||||
|
General information like which GPE is assigned to the EC and whether
|
||||||
|
the global lock should get used.
|
||||||
|
Knowing the EC GPE one can watch the amount of HW events related to
|
||||||
|
the EC here (XY -> GPE number from /sys/kernel/debug/ec/*/gpe):
|
||||||
|
/sys/firmware/acpi/interrupts/gpeXY
|
||||||
|
|
||||||
|
The io file is binary and a userspace tool located here:
|
||||||
|
ftp://ftp.suse.com/pub/people/trenn/sources/ec/
|
||||||
|
should get used to read out the 256 Embedded Controller registers
|
||||||
|
or writing to them.
|
||||||
|
|
||||||
|
CAUTION: Do not write to the Embedded Controller if you don't know
|
||||||
|
what you are doing! Rebooting afterwards also is a good idea.
|
||||||
|
This can influence the way your machine is cooled and fans may
|
||||||
|
not get switched on again after you did a wrong write.
|
21
Documentation/ABI/testing/sysfs-bus-i2c-devices-hm6352
Normal file
21
Documentation/ABI/testing/sysfs-bus-i2c-devices-hm6352
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
Where: /sys/bus/i2c/devices/.../heading0_input
|
||||||
|
Date: April 2010
|
||||||
|
Kernel Version: 2.6.36?
|
||||||
|
Contact: alan.cox@intel.com
|
||||||
|
Description: Reports the current heading from the compass as a floating
|
||||||
|
point value in degrees.
|
||||||
|
|
||||||
|
Where: /sys/bus/i2c/devices/.../power_state
|
||||||
|
Date: April 2010
|
||||||
|
Kernel Version: 2.6.36?
|
||||||
|
Contact: alan.cox@intel.com
|
||||||
|
Description: Sets the power state of the device. 0 sets the device into
|
||||||
|
sleep mode, 1 wakes it up.
|
||||||
|
|
||||||
|
Where: /sys/bus/i2c/devices/.../calibration
|
||||||
|
Date: April 2010
|
||||||
|
Kernel Version: 2.6.36?
|
||||||
|
Contact: alan.cox@intel.com
|
||||||
|
Description: Sets the calibration on or off (1 = on, 0 = off). See the
|
||||||
|
chip data sheet.
|
||||||
|
|
@@ -139,3 +139,30 @@ Contact: linux-pci@vger.kernel.org
|
|||||||
Description:
|
Description:
|
||||||
This symbolic link points to the PCI hotplug controller driver
|
This symbolic link points to the PCI hotplug controller driver
|
||||||
module that manages the hotplug slot.
|
module that manages the hotplug slot.
|
||||||
|
|
||||||
|
What: /sys/bus/pci/devices/.../label
|
||||||
|
Date: July 2010
|
||||||
|
Contact: Narendra K <narendra_k@dell.com>, linux-bugs@dell.com
|
||||||
|
Description:
|
||||||
|
Reading this attribute will provide the firmware
|
||||||
|
given name(SMBIOS type 41 string) of the PCI device.
|
||||||
|
The attribute will be created only if the firmware
|
||||||
|
has given a name to the PCI device.
|
||||||
|
Users:
|
||||||
|
Userspace applications interested in knowing the
|
||||||
|
firmware assigned name of the PCI device.
|
||||||
|
|
||||||
|
What: /sys/bus/pci/devices/.../index
|
||||||
|
Date: July 2010
|
||||||
|
Contact: Narendra K <narendra_k@dell.com>, linux-bugs@dell.com
|
||||||
|
Description:
|
||||||
|
Reading this attribute will provide the firmware
|
||||||
|
given instance(SMBIOS type 41 device type instance)
|
||||||
|
of the PCI device. The attribute will be created
|
||||||
|
only if the firmware has given a device type instance
|
||||||
|
to the PCI device.
|
||||||
|
Users:
|
||||||
|
Userspace applications interested in knowing the
|
||||||
|
firmware assigned device type instance of the PCI
|
||||||
|
device that can help in understanding the firmware
|
||||||
|
intended order of the PCI device.
|
||||||
|
@@ -7,7 +7,7 @@ Description:
|
|||||||
added or removed dynamically to represent hot-add/remove
|
added or removed dynamically to represent hot-add/remove
|
||||||
operations.
|
operations.
|
||||||
Users: hotplug memory add/remove tools
|
Users: hotplug memory add/remove tools
|
||||||
https://w3.opensource.ibm.com/projects/powerpc-utils/
|
http://www.ibm.com/developerworks/wikis/display/LinuxP/powerpc-utils
|
||||||
|
|
||||||
What: /sys/devices/system/memory/memoryX/removable
|
What: /sys/devices/system/memory/memoryX/removable
|
||||||
Date: June 2008
|
Date: June 2008
|
||||||
@@ -19,7 +19,7 @@ Description:
|
|||||||
identify removable sections of the memory before attempting
|
identify removable sections of the memory before attempting
|
||||||
potentially expensive hot-remove memory operation
|
potentially expensive hot-remove memory operation
|
||||||
Users: hotplug memory remove tools
|
Users: hotplug memory remove tools
|
||||||
https://w3.opensource.ibm.com/projects/powerpc-utils/
|
http://www.ibm.com/developerworks/wikis/display/LinuxP/powerpc-utils
|
||||||
|
|
||||||
What: /sys/devices/system/memory/memoryX/phys_device
|
What: /sys/devices/system/memory/memoryX/phys_device
|
||||||
Date: September 2008
|
Date: September 2008
|
||||||
@@ -58,7 +58,7 @@ Description:
|
|||||||
by root to offline that section.
|
by root to offline that section.
|
||||||
# echo offline > /sys/devices/system/memory/memory22/state
|
# echo offline > /sys/devices/system/memory/memory22/state
|
||||||
Users: hotplug memory remove tools
|
Users: hotplug memory remove tools
|
||||||
https://w3.opensource.ibm.com/projects/powerpc-utils/
|
http://www.ibm.com/developerworks/wikis/display/LinuxP/powerpc-utils
|
||||||
|
|
||||||
|
|
||||||
What: /sys/devices/system/memoryX/nodeY
|
What: /sys/devices/system/memoryX/nodeY
|
||||||
|
@@ -7,3 +7,15 @@ Description:
|
|||||||
0 -> resumed
|
0 -> resumed
|
||||||
|
|
||||||
(_UDC_ is the name of the USB Device Controller driver)
|
(_UDC_ is the name of the USB Device Controller driver)
|
||||||
|
|
||||||
|
What: /sys/devices/platform/_UDC_/gadget/gadget-lunX/nofua
|
||||||
|
Date: July 2010
|
||||||
|
Contact: Andy Shevchenko <andy.shevchenko@gmail.com>
|
||||||
|
Description:
|
||||||
|
Show or set the reaction on the FUA (Force Unit Access) bit in
|
||||||
|
the SCSI WRITE(10,12) commands when a gadget in USB Mass
|
||||||
|
Storage mode.
|
||||||
|
|
||||||
|
Possible values are:
|
||||||
|
1 -> ignore the FUA flag
|
||||||
|
0 -> obey the FUA flag
|
||||||
|
@@ -197,7 +197,7 @@ Description: These files exist in every cpu's cache index directories.
|
|||||||
Currently, only AMD Family 10h Processors support cache index
|
Currently, only AMD Family 10h Processors support cache index
|
||||||
disable, and only for their L3 caches. See the BIOS and
|
disable, and only for their L3 caches. See the BIOS and
|
||||||
Kernel Developer's Guide at
|
Kernel Developer's Guide at
|
||||||
http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/31116-Public-GH-BKDG_3.20_2-4-09.pdf
|
http://support.amd.com/us/Embedded_TechDocs/31116-Public-GH-BKDG_3-28_5-28-09.pdf
|
||||||
for formatting information and other details on the
|
for formatting information and other details on the
|
||||||
cache index disable.
|
cache index disable.
|
||||||
Users: joachim.deguara@amd.com
|
Users: joachim.deguara@amd.com
|
||||||
|
@@ -33,19 +33,6 @@ Description: When read, this file returns the raw integer version number of the
|
|||||||
left. E.g. a returned value of 138 means 1.38
|
left. E.g. a returned value of 138 means 1.38
|
||||||
This file is readonly.
|
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]
|
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/profile[1-5]
|
||||||
Date: March 2010
|
Date: March 2010
|
||||||
Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
|
Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
|
||||||
|
31
Documentation/ABI/testing/sysfs-i2c-bmp085
Normal file
31
Documentation/ABI/testing/sysfs-i2c-bmp085
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
What: /sys/bus/i2c/devices/<busnum>-<devaddr>/pressure0_input
|
||||||
|
Date: June 2010
|
||||||
|
Contact: Christoph Mair <christoph.mair@gmail.com>
|
||||||
|
Description: Start a pressure measurement and read the result. Values
|
||||||
|
represent the ambient air pressure in pascal (0.01 millibar).
|
||||||
|
|
||||||
|
Reading: returns the current air pressure.
|
||||||
|
|
||||||
|
|
||||||
|
What: /sys/bus/i2c/devices/<busnum>-<devaddr>/temp0_input
|
||||||
|
Date: June 2010
|
||||||
|
Contact: Christoph Mair <christoph.mair@gmail.com>
|
||||||
|
Description: Measure the ambient temperature. The returned value represents
|
||||||
|
the ambient temperature in units of 0.1 degree celsius.
|
||||||
|
|
||||||
|
Reading: returns the current temperature.
|
||||||
|
|
||||||
|
|
||||||
|
What: /sys/bus/i2c/devices/<busnum>-<devaddr>/oversampling
|
||||||
|
Date: June 2010
|
||||||
|
Contact: Christoph Mair <christoph.mair@gmail.com>
|
||||||
|
Description: Tell the bmp085 to use more samples to calculate a pressure
|
||||||
|
value. When writing to this file the chip will use 2^x samples
|
||||||
|
to calculate the next pressure value with x being the value
|
||||||
|
written. Using this feature will decrease RMS noise and
|
||||||
|
increase the measurement time.
|
||||||
|
|
||||||
|
Reading: returns the current oversampling setting.
|
||||||
|
|
||||||
|
Writing: sets a new oversampling setting.
|
||||||
|
Accepted values: 0..3.
|
@@ -114,3 +114,18 @@ Description:
|
|||||||
if this file contains "1", which is the default. It may be
|
if this file contains "1", which is the default. It may be
|
||||||
disabled by writing "0" to this file, in which case all devices
|
disabled by writing "0" to this file, in which case all devices
|
||||||
will be suspended and resumed synchronously.
|
will be suspended and resumed synchronously.
|
||||||
|
|
||||||
|
What: /sys/power/wakeup_count
|
||||||
|
Date: July 2010
|
||||||
|
Contact: Rafael J. Wysocki <rjw@sisk.pl>
|
||||||
|
Description:
|
||||||
|
The /sys/power/wakeup_count file allows user space to put the
|
||||||
|
system into a sleep state while taking into account the
|
||||||
|
concurrent arrival of wakeup events. Reading from it returns
|
||||||
|
the current number of registered wakeup events and it blocks if
|
||||||
|
some wakeup events are being processed at the time the file is
|
||||||
|
read from. Writing to it will only succeed if the current
|
||||||
|
number of wakeup events is equal to the written value and, if
|
||||||
|
successful, will make the kernel abort a subsequent transition
|
||||||
|
to a sleep state if any wakeup events are reported after the
|
||||||
|
write has returned.
|
||||||
|
@@ -331,7 +331,7 @@ o <ftp://ftp.kernel.org/pub/linux/kernel/people/rusty/modules/>
|
|||||||
|
|
||||||
Mkinitrd
|
Mkinitrd
|
||||||
--------
|
--------
|
||||||
o <ftp://rawhide.redhat.com/pub/rawhide/SRPMS/SRPMS/>
|
o <https://code.launchpad.net/initrd-tools/main>
|
||||||
|
|
||||||
E2fsprogs
|
E2fsprogs
|
||||||
---------
|
---------
|
||||||
@@ -343,11 +343,11 @@ o <http://jfs.sourceforge.net/>
|
|||||||
|
|
||||||
Reiserfsprogs
|
Reiserfsprogs
|
||||||
-------------
|
-------------
|
||||||
o <http://www.namesys.com/pub/reiserfsprogs/reiserfsprogs-3.6.3.tar.gz>
|
o <http://www.kernel.org/pub/linux/utils/fs/reiserfs/>
|
||||||
|
|
||||||
Xfsprogs
|
Xfsprogs
|
||||||
--------
|
--------
|
||||||
o <ftp://oss.sgi.com/projects/xfs/download/>
|
o <ftp://oss.sgi.com/projects/xfs/>
|
||||||
|
|
||||||
Pcmciautils
|
Pcmciautils
|
||||||
-----------
|
-----------
|
||||||
@@ -387,18 +387,18 @@ o <http://sourceforge.net/projects/fuse>
|
|||||||
|
|
||||||
mcelog
|
mcelog
|
||||||
------
|
------
|
||||||
o <ftp://ftp.kernel.org/pub/linux/utils/cpu/mce/mcelog/>
|
o <ftp://ftp.kernel.org/pub/linux/utils/cpu/mce/>
|
||||||
|
|
||||||
Networking
|
Networking
|
||||||
**********
|
**********
|
||||||
|
|
||||||
PPP
|
PPP
|
||||||
---
|
---
|
||||||
o <ftp://ftp.samba.org/pub/ppp/ppp-2.4.0.tar.gz>
|
o <ftp://ftp.samba.org/pub/ppp/>
|
||||||
|
|
||||||
Isdn4k-utils
|
Isdn4k-utils
|
||||||
------------
|
------------
|
||||||
o <ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/isdn4k-utils.v3.1pre1.tar.gz>
|
o <ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/>
|
||||||
|
|
||||||
NFS-utils
|
NFS-utils
|
||||||
---------
|
---------
|
||||||
|
@@ -753,6 +753,16 @@ to "Closing".
|
|||||||
alignment constraints (e.g. the alignment constraints about 64-bit
|
alignment constraints (e.g. the alignment constraints about 64-bit
|
||||||
objects).
|
objects).
|
||||||
|
|
||||||
|
3) Supporting multiple types of IOMMUs
|
||||||
|
|
||||||
|
If your architecture needs to support multiple types of IOMMUs, you
|
||||||
|
can use include/linux/asm-generic/dma-mapping-common.h. It's a
|
||||||
|
library to support the DMA API with multiple types of IOMMUs. Lots
|
||||||
|
of architectures (x86, powerpc, sh, alpha, ia64, microblaze and
|
||||||
|
sparc) use it. Choose one to see how it can be used. If you need to
|
||||||
|
support multiple types of IOMMUs in a single system, the example of
|
||||||
|
x86 or powerpc helps.
|
||||||
|
|
||||||
Closing
|
Closing
|
||||||
|
|
||||||
This document, and the API itself, would not be in its current
|
This document, and the API itself, would not be in its current
|
||||||
|
@@ -455,12 +455,6 @@ Free memory allocated by the nonconsistent API. All parameters must
|
|||||||
be identical to those passed in (and returned by
|
be identical to those passed in (and returned by
|
||||||
dma_alloc_noncoherent()).
|
dma_alloc_noncoherent()).
|
||||||
|
|
||||||
int
|
|
||||||
dma_is_consistent(struct device *dev, dma_addr_t dma_handle)
|
|
||||||
|
|
||||||
Returns true if the device dev is performing consistent DMA on the memory
|
|
||||||
area pointed to by the dma_handle.
|
|
||||||
|
|
||||||
int
|
int
|
||||||
dma_get_cache_alignment(void)
|
dma_get_cache_alignment(void)
|
||||||
|
|
||||||
|
@@ -35,7 +35,7 @@ PS_METHOD = $(prefer-db2x)
|
|||||||
PHONY += xmldocs sgmldocs psdocs pdfdocs htmldocs mandocs installmandocs cleandocs xmldoclinks
|
PHONY += xmldocs sgmldocs psdocs pdfdocs htmldocs mandocs installmandocs cleandocs xmldoclinks
|
||||||
|
|
||||||
BOOKS := $(addprefix $(obj)/,$(DOCBOOKS))
|
BOOKS := $(addprefix $(obj)/,$(DOCBOOKS))
|
||||||
xmldocs: $(BOOKS) xmldoclinks
|
xmldocs: $(BOOKS)
|
||||||
sgmldocs: xmldocs
|
sgmldocs: xmldocs
|
||||||
|
|
||||||
PS := $(patsubst %.xml, %.ps, $(BOOKS))
|
PS := $(patsubst %.xml, %.ps, $(BOOKS))
|
||||||
@@ -45,7 +45,7 @@ PDF := $(patsubst %.xml, %.pdf, $(BOOKS))
|
|||||||
pdfdocs: $(PDF)
|
pdfdocs: $(PDF)
|
||||||
|
|
||||||
HTML := $(sort $(patsubst %.xml, %.html, $(BOOKS)))
|
HTML := $(sort $(patsubst %.xml, %.html, $(BOOKS)))
|
||||||
htmldocs: $(HTML)
|
htmldocs: $(HTML) xmldoclinks
|
||||||
$(call build_main_index)
|
$(call build_main_index)
|
||||||
$(call build_images)
|
$(call build_images)
|
||||||
|
|
||||||
@@ -95,7 +95,7 @@ define rule_docproc
|
|||||||
) > $(dir $@).$(notdir $@).cmd
|
) > $(dir $@).$(notdir $@).cmd
|
||||||
endef
|
endef
|
||||||
|
|
||||||
%.xml: %.tmpl FORCE
|
%.xml: %.tmpl xmldoclinks FORCE
|
||||||
$(call if_changed_rule,docproc)
|
$(call if_changed_rule,docproc)
|
||||||
|
|
||||||
###
|
###
|
||||||
|
@@ -111,6 +111,7 @@ X!Edrivers/base/attribute_container.c
|
|||||||
<!--
|
<!--
|
||||||
X!Edrivers/base/interface.c
|
X!Edrivers/base/interface.c
|
||||||
-->
|
-->
|
||||||
|
!Iinclude/linux/platform_device.h
|
||||||
!Edrivers/base/platform.c
|
!Edrivers/base/platform.c
|
||||||
!Edrivers/base/bus.c
|
!Edrivers/base/bus.c
|
||||||
</sect1>
|
</sect1>
|
||||||
|
@@ -12,10 +12,12 @@
|
|||||||
<othername role="mi">O. C.</othername>
|
<othername role="mi">O. C.</othername>
|
||||||
<affiliation><address><email>rjkm@metzlerbros.de</email></address></affiliation>
|
<affiliation><address><email>rjkm@metzlerbros.de</email></address></affiliation>
|
||||||
</author>
|
</author>
|
||||||
|
</authorgroup>
|
||||||
|
<authorgroup>
|
||||||
<author>
|
<author>
|
||||||
<firstname>Mauro</firstname>
|
<firstname>Mauro</firstname>
|
||||||
<surname>Chehab</surname>
|
|
||||||
<othername role="mi">Carvalho</othername>
|
<othername role="mi">Carvalho</othername>
|
||||||
|
<surname>Chehab</surname>
|
||||||
<affiliation><address><email>mchehab@redhat.com</email></address></affiliation>
|
<affiliation><address><email>mchehab@redhat.com</email></address></affiliation>
|
||||||
<contrib>Ported document to Docbook XML.</contrib>
|
<contrib>Ported document to Docbook XML.</contrib>
|
||||||
</author>
|
</author>
|
||||||
@@ -23,12 +25,23 @@
|
|||||||
<copyright>
|
<copyright>
|
||||||
<year>2002</year>
|
<year>2002</year>
|
||||||
<year>2003</year>
|
<year>2003</year>
|
||||||
<year>2009</year>
|
|
||||||
<holder>Convergence GmbH</holder>
|
<holder>Convergence GmbH</holder>
|
||||||
</copyright>
|
</copyright>
|
||||||
|
<copyright>
|
||||||
|
<year>2009-2010</year>
|
||||||
|
<holder>Mauro Carvalho Chehab</holder>
|
||||||
|
</copyright>
|
||||||
|
|
||||||
<revhistory>
|
<revhistory>
|
||||||
<!-- Put document revisions here, newest first. -->
|
<!-- Put document revisions here, newest first. -->
|
||||||
|
<revision>
|
||||||
|
<revnumber>2.0.3</revnumber>
|
||||||
|
<date>2010-07-03</date>
|
||||||
|
<authorinitials>mcc</authorinitials>
|
||||||
|
<revremark>
|
||||||
|
Add some frontend capabilities flags, present on kernel, but missing at the specs.
|
||||||
|
</revremark>
|
||||||
|
</revision>
|
||||||
<revision>
|
<revision>
|
||||||
<revnumber>2.0.2</revnumber>
|
<revnumber>2.0.2</revnumber>
|
||||||
<date>2009-10-25</date>
|
<date>2009-10-25</date>
|
||||||
@@ -63,7 +76,7 @@ Added ISDB-T test originally written by Patrick Boettcher
|
|||||||
|
|
||||||
|
|
||||||
<title>LINUX DVB API</title>
|
<title>LINUX DVB API</title>
|
||||||
<subtitle>Version 3</subtitle>
|
<subtitle>Version 5.2</subtitle>
|
||||||
<!-- ADD THE CHAPTERS HERE -->
|
<!-- ADD THE CHAPTERS HERE -->
|
||||||
<chapter id="dvb_introdution">
|
<chapter id="dvb_introdution">
|
||||||
&sub-intro;
|
&sub-intro;
|
||||||
|
@@ -63,6 +63,7 @@ typedef enum fe_caps {
|
|||||||
FE_CAN_8VSB = 0x200000,
|
FE_CAN_8VSB = 0x200000,
|
||||||
FE_CAN_16VSB = 0x400000,
|
FE_CAN_16VSB = 0x400000,
|
||||||
FE_HAS_EXTENDED_CAPS = 0x800000, /* We need more bitspace for newer APIs, indicate this. */
|
FE_HAS_EXTENDED_CAPS = 0x800000, /* We need more bitspace for newer APIs, indicate this. */
|
||||||
|
FE_CAN_TURBO_FEC = 0x8000000, /* frontend supports "turbo fec modulation" */
|
||||||
FE_CAN_2G_MODULATION = 0x10000000, /* frontend supports "2nd generation modulation" (DVB-S2) */
|
FE_CAN_2G_MODULATION = 0x10000000, /* frontend supports "2nd generation modulation" (DVB-S2) */
|
||||||
FE_NEEDS_BENDING = 0x20000000, /* not supported anymore, don't use (frontend requires frequency bending) */
|
FE_NEEDS_BENDING = 0x20000000, /* not supported anymore, don't use (frontend requires frequency bending) */
|
||||||
FE_CAN_RECOVER = 0x40000000, /* frontend can recover from a cable unplug automatically */
|
FE_CAN_RECOVER = 0x40000000, /* frontend can recover from a cable unplug automatically */
|
||||||
|
@@ -64,8 +64,14 @@ a specific frontend type.</para>
|
|||||||
FE_CAN_BANDWIDTH_AUTO = 0x40000,
|
FE_CAN_BANDWIDTH_AUTO = 0x40000,
|
||||||
FE_CAN_GUARD_INTERVAL_AUTO = 0x80000,
|
FE_CAN_GUARD_INTERVAL_AUTO = 0x80000,
|
||||||
FE_CAN_HIERARCHY_AUTO = 0x100000,
|
FE_CAN_HIERARCHY_AUTO = 0x100000,
|
||||||
FE_CAN_MUTE_TS = 0x80000000,
|
FE_CAN_8VSB = 0x200000,
|
||||||
FE_CAN_CLEAN_SETUP = 0x40000000
|
FE_CAN_16VSB = 0x400000,
|
||||||
|
FE_HAS_EXTENDED_CAPS = 0x800000,
|
||||||
|
FE_CAN_TURBO_FEC = 0x8000000,
|
||||||
|
FE_CAN_2G_MODULATION = 0x10000000,
|
||||||
|
FE_NEEDS_BENDING = 0x20000000,
|
||||||
|
FE_CAN_RECOVER = 0x40000000,
|
||||||
|
FE_CAN_MUTE_TS = 0x80000000
|
||||||
} fe_caps_t;
|
} fe_caps_t;
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</section>
|
</section>
|
||||||
|
@@ -132,7 +132,6 @@ X!Ilib/string.c
|
|||||||
<title>FIFO Buffer</title>
|
<title>FIFO Buffer</title>
|
||||||
<sect1><title>kfifo interface</title>
|
<sect1><title>kfifo interface</title>
|
||||||
!Iinclude/linux/kfifo.h
|
!Iinclude/linux/kfifo.h
|
||||||
!Ekernel/kfifo.c
|
|
||||||
</sect1>
|
</sect1>
|
||||||
</chapter>
|
</chapter>
|
||||||
|
|
||||||
|
@@ -199,10 +199,33 @@
|
|||||||
may be configured as a kernel built-in or a kernel loadable module.
|
may be configured as a kernel built-in or a kernel loadable module.
|
||||||
You can only make use of <constant>kgdbwait</constant> and early
|
You can only make use of <constant>kgdbwait</constant> and early
|
||||||
debugging if you build kgdboc into the kernel as a built-in.
|
debugging if you build kgdboc into the kernel as a built-in.
|
||||||
|
<para>Optionally you can elect to activate kms (Kernel Mode
|
||||||
|
Setting) integration. When you use kms with kgdboc and you have a
|
||||||
|
video driver that has atomic mode setting hooks, it is possible to
|
||||||
|
enter the debugger on the graphics console. When the kernel
|
||||||
|
execution is resumed, the previous graphics mode will be restored.
|
||||||
|
This integration can serve as a useful tool to aid in diagnosing
|
||||||
|
crashes or doing analysis of memory with kdb while allowing the
|
||||||
|
full graphics console applications to run.
|
||||||
|
</para>
|
||||||
</para>
|
</para>
|
||||||
<sect2 id="kgdbocArgs">
|
<sect2 id="kgdbocArgs">
|
||||||
<title>kgdboc arguments</title>
|
<title>kgdboc arguments</title>
|
||||||
<para>Usage: <constant>kgdboc=[kbd][[,]serial_device][,baud]</constant></para>
|
<para>Usage: <constant>kgdboc=[kms][[,]kbd][[,]serial_device][,baud]</constant></para>
|
||||||
|
<para>The order listed above must be observed if you use any of the
|
||||||
|
optional configurations together.
|
||||||
|
</para>
|
||||||
|
<para>Abbreviations:
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para>kms = Kernel Mode Setting</para></listitem>
|
||||||
|
<listitem><para>kbd = Keyboard</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
<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. The order listed above must be observed if
|
||||||
|
you use any of the optional configurations together. Using kms +
|
||||||
|
only gdb is generally not a useful combination.</para>
|
||||||
<sect3 id="kgdbocArgs1">
|
<sect3 id="kgdbocArgs1">
|
||||||
<title>Using loadable module or built-in</title>
|
<title>Using loadable module or built-in</title>
|
||||||
<para>
|
<para>
|
||||||
@@ -212,7 +235,7 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>As a kernel loadable module:</para>
|
<para>As a kernel loadable module:</para>
|
||||||
<para>Use the command: <constant>modprobe kgdboc kgdboc=<tty-device>,[baud]</constant></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
|
<para>Here are two examples of how you might format the kgdboc
|
||||||
string. The first is for an x86 target using the first serial port.
|
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
|
The second example is for the ARM Versatile AB using the second
|
||||||
serial port.
|
serial port.
|
||||||
@@ -240,6 +263,9 @@
|
|||||||
</sect3>
|
</sect3>
|
||||||
<sect3 id="kgdbocArgs3">
|
<sect3 id="kgdbocArgs3">
|
||||||
<title>More examples</title>
|
<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.</para>
|
||||||
<para>You can configure kgdboc to use the keyboard, and or a serial device
|
<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
|
depending on if you are using kdb and or kgdb, in one of the
|
||||||
following scenarios.
|
following scenarios.
|
||||||
@@ -255,6 +281,12 @@
|
|||||||
<listitem><para>kdb with a keyboard</para>
|
<listitem><para>kdb with a keyboard</para>
|
||||||
<para><constant>kgdboc=kbd</constant></para>
|
<para><constant>kgdboc=kbd</constant></para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem><para>kdb with kernel mode setting</para>
|
||||||
|
<para><constant>kgdboc=kms,kbd</constant></para>
|
||||||
|
</listitem>
|
||||||
|
<listitem><para>kdb with kernel mode setting and kgdb over a serial port</para>
|
||||||
|
<para><constant>kgdboc=kms,kbd,ttyS0,115200</constant></para>
|
||||||
|
</listitem>
|
||||||
</orderedlist>
|
</orderedlist>
|
||||||
</para>
|
</para>
|
||||||
</sect3>
|
</sect3>
|
||||||
@@ -637,6 +669,8 @@ Task Addr Pid Parent [*] cpu State Thread Command
|
|||||||
<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>
|
<listitem><para>The API to invoke either the kdb or kgdb frontend to the debug core.</para></listitem>
|
||||||
|
<listitem><para>The structures and callback API for atomic kernel mode setting.</para>
|
||||||
|
<para>NOTE: kgdboc is where the kms callbacks are invoked.</para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
@@ -747,6 +781,8 @@ Task Addr Pid Parent [*] cpu State Thread Command
|
|||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="kgdbocDesign">
|
<sect1 id="kgdbocDesign">
|
||||||
<title>kgdboc internals</title>
|
<title>kgdboc internals</title>
|
||||||
|
<sect2>
|
||||||
|
<title>kgdboc and uarts</title>
|
||||||
<para>
|
<para>
|
||||||
The kgdboc driver is actually a very thin driver that relies on the
|
The kgdboc driver is actually a very thin driver that relies on the
|
||||||
underlying low level to the hardware driver having "polling hooks"
|
underlying low level to the hardware driver having "polling hooks"
|
||||||
@@ -754,11 +790,8 @@ Task Addr Pid Parent [*] cpu State Thread Command
|
|||||||
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 callback in the serial
|
||||||
core which in turn uses the call back in the UART driver. It is
|
core which in turn uses the callback in the UART driver.</para>
|
||||||
certainly possible to extend kgdboc to work with non-UART based
|
|
||||||
consoles in the future.
|
|
||||||
</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
|
||||||
@@ -772,9 +805,68 @@ Task Addr Pid Parent [*] cpu State Thread Command
|
|||||||
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 likely
|
||||||
going to mean pressing the reset button.
|
going to mean pressing the reset button.
|
||||||
</para>
|
</para>
|
||||||
|
</sect2>
|
||||||
|
<sect2 id="kgdbocKbd">
|
||||||
|
<title>kgdboc and keyboards</title>
|
||||||
|
<para>The kgdboc driver contains logic to configure communications
|
||||||
|
with an attached keyboard. The keyboard infrastructure is only
|
||||||
|
compiled into the kernel when CONFIG_KDB_KEYBOARD=y is set in the
|
||||||
|
kernel configuration.</para>
|
||||||
|
<para>The core polled keyboard driver driver for PS/2 type keyboards
|
||||||
|
is in drivers/char/kdb_keyboard.c. This driver is hooked into the
|
||||||
|
debug core when kgdboc populates the callback in the array
|
||||||
|
called <constant>kdb_poll_funcs[]</constant>. The
|
||||||
|
kdb_get_kbd_char() is the top-level function which polls hardware
|
||||||
|
for single character input.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
<sect2 id="kgdbocKms">
|
||||||
|
<title>kgdboc and kms</title>
|
||||||
|
<para>The kgdboc driver contains logic to request the graphics
|
||||||
|
display to switch to a text context when you are using
|
||||||
|
"kgdboc=kms,kbd", provided that you have a video driver which has a
|
||||||
|
frame buffer console and atomic kernel mode setting support.</para>
|
||||||
|
<para>
|
||||||
|
Every time the kernel
|
||||||
|
debugger is entered it calls kgdboc_pre_exp_handler() which in turn
|
||||||
|
calls con_debug_enter() in the virtual console layer. On resuming kernel
|
||||||
|
execution, the kernel debugger calls kgdboc_post_exp_handler() which
|
||||||
|
in turn calls con_debug_leave().</para>
|
||||||
|
<para>Any video driver that wants to be compatible with the kernel
|
||||||
|
debugger and the atomic kms callbacks must implement the
|
||||||
|
mode_set_base_atomic, fb_debug_enter and fb_debug_leave operations.
|
||||||
|
For the fb_debug_enter and fb_debug_leave the option exists to use
|
||||||
|
the generic drm fb helper functions or implement something custom for
|
||||||
|
the hardware. The following example shows the initialization of the
|
||||||
|
.mode_set_base_atomic operation in
|
||||||
|
drivers/gpu/drm/i915/intel_display.c:
|
||||||
|
<informalexample>
|
||||||
|
<programlisting>
|
||||||
|
static const struct drm_crtc_helper_funcs intel_helper_funcs = {
|
||||||
|
[...]
|
||||||
|
.mode_set_base_atomic = intel_pipe_set_base_atomic,
|
||||||
|
[...]
|
||||||
|
};
|
||||||
|
</programlisting>
|
||||||
|
</informalexample>
|
||||||
|
</para>
|
||||||
|
<para>Here is an example of how the i915 driver initializes the fb_debug_enter and fb_debug_leave functions to use the generic drm helpers in
|
||||||
|
drivers/gpu/drm/i915/intel_fb.c:
|
||||||
|
<informalexample>
|
||||||
|
<programlisting>
|
||||||
|
static struct fb_ops intelfb_ops = {
|
||||||
|
[...]
|
||||||
|
.fb_debug_enter = drm_fb_helper_debug_enter,
|
||||||
|
.fb_debug_leave = drm_fb_helper_debug_leave,
|
||||||
|
[...]
|
||||||
|
};
|
||||||
|
</programlisting>
|
||||||
|
</informalexample>
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
</sect1>
|
</sect1>
|
||||||
</chapter>
|
</chapter>
|
||||||
<chapter id="credits">
|
<chapter id="credits">
|
||||||
|
@@ -218,6 +218,7 @@
|
|||||||
<!ENTITY sub-dev-teletext SYSTEM "v4l/dev-teletext.xml">
|
<!ENTITY sub-dev-teletext SYSTEM "v4l/dev-teletext.xml">
|
||||||
<!ENTITY sub-driver SYSTEM "v4l/driver.xml">
|
<!ENTITY sub-driver SYSTEM "v4l/driver.xml">
|
||||||
<!ENTITY sub-libv4l SYSTEM "v4l/libv4l.xml">
|
<!ENTITY sub-libv4l SYSTEM "v4l/libv4l.xml">
|
||||||
|
<!ENTITY sub-lirc_device_interface SYSTEM "v4l/lirc_device_interface.xml">
|
||||||
<!ENTITY sub-remote_controllers SYSTEM "v4l/remote_controllers.xml">
|
<!ENTITY sub-remote_controllers SYSTEM "v4l/remote_controllers.xml">
|
||||||
<!ENTITY sub-fdl-appendix SYSTEM "v4l/fdl-appendix.xml">
|
<!ENTITY sub-fdl-appendix SYSTEM "v4l/fdl-appendix.xml">
|
||||||
<!ENTITY sub-close SYSTEM "v4l/func-close.xml">
|
<!ENTITY sub-close SYSTEM "v4l/func-close.xml">
|
||||||
|
@@ -28,7 +28,7 @@
|
|||||||
<title>LINUX MEDIA INFRASTRUCTURE API</title>
|
<title>LINUX MEDIA INFRASTRUCTURE API</title>
|
||||||
|
|
||||||
<copyright>
|
<copyright>
|
||||||
<year>2009</year>
|
<year>2009-2010</year>
|
||||||
<holder>LinuxTV Developers</holder>
|
<holder>LinuxTV Developers</holder>
|
||||||
</copyright>
|
</copyright>
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ Foundation. A copy of the license is included in the chapter entitled
|
|||||||
in fact it covers several different video standards including
|
in fact it covers several different video standards including
|
||||||
DVB-T, DVB-S, DVB-C and ATSC. The API is currently being updated
|
DVB-T, DVB-S, DVB-C and ATSC. The API is currently being updated
|
||||||
to documment support also for DVB-S2, ISDB-T and ISDB-S.</para>
|
to documment support also for DVB-S2, ISDB-T and ISDB-S.</para>
|
||||||
<para>The third part covers other API's used by all media infrastructure devices</para>
|
<para>The third part covers Remote Controller API</para>
|
||||||
<para>For additional information and for the latest development code,
|
<para>For additional information and for the latest development code,
|
||||||
see: <ulink url="http://linuxtv.org">http://linuxtv.org</ulink>.</para>
|
see: <ulink url="http://linuxtv.org">http://linuxtv.org</ulink>.</para>
|
||||||
<para>For discussing improvements, reporting troubles, sending new drivers, etc, please mail to: <ulink url="http://vger.kernel.org/vger-lists.html#linux-media">Linux Media Mailing List (LMML).</ulink>.</para>
|
<para>For discussing improvements, reporting troubles, sending new drivers, etc, please mail to: <ulink url="http://vger.kernel.org/vger-lists.html#linux-media">Linux Media Mailing List (LMML).</ulink>.</para>
|
||||||
@@ -86,7 +86,7 @@ Foundation. A copy of the license is included in the chapter entitled
|
|||||||
</author>
|
</author>
|
||||||
</authorgroup>
|
</authorgroup>
|
||||||
<copyright>
|
<copyright>
|
||||||
<year>2009</year>
|
<year>2009-2010</year>
|
||||||
<holder>Mauro Carvalho Chehab</holder>
|
<holder>Mauro Carvalho Chehab</holder>
|
||||||
</copyright>
|
</copyright>
|
||||||
|
|
||||||
@@ -101,7 +101,7 @@ Foundation. A copy of the license is included in the chapter entitled
|
|||||||
</revhistory>
|
</revhistory>
|
||||||
</partinfo>
|
</partinfo>
|
||||||
|
|
||||||
<title>Other API's used by media infrastructure drivers</title>
|
<title>Remote Controller API</title>
|
||||||
<chapter id="remote_controllers">
|
<chapter id="remote_controllers">
|
||||||
&sub-remote_controllers;
|
&sub-remote_controllers;
|
||||||
</chapter>
|
</chapter>
|
||||||
|
@@ -393,7 +393,7 @@
|
|||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
For documentation see
|
For documentation see
|
||||||
<ulink url='http://www.torque.net/sg/sdebug26.html'>http://www.torque.net/sg/sdebug26.html</ulink>
|
<ulink url='http://sg.danny.cz/sg/sdebug26.html'>http://sg.danny.cz/sg/sdebug26.html</ulink>
|
||||||
</para>
|
</para>
|
||||||
<!-- !Edrivers/scsi/scsi_debug.c -->
|
<!-- !Edrivers/scsi/scsi_debug.c -->
|
||||||
</sect2>
|
</sect2>
|
||||||
|
@@ -6,4 +6,5 @@
|
|||||||
<param name="callout.graphics">0</param>
|
<param name="callout.graphics">0</param>
|
||||||
<!-- <param name="paper.type">A4</param> -->
|
<!-- <param name="paper.type">A4</param> -->
|
||||||
<param name="generate.section.toc.level">2</param>
|
<param name="generate.section.toc.level">2</param>
|
||||||
|
<param name="use.id.as.filename">1</param>
|
||||||
</stylesheet>
|
</stylesheet>
|
||||||
|
@@ -1091,8 +1091,9 @@ signed 64-bit integer. Output devices should not send a buffer out
|
|||||||
until the time in the timestamp field has arrived. I would like to
|
until the time in the timestamp field has arrived. I would like to
|
||||||
follow SGI's lead, and adopt a multimedia timestamping system like
|
follow SGI's lead, and adopt a multimedia timestamping system like
|
||||||
their UST (Unadjusted System Time). See
|
their UST (Unadjusted System Time). See
|
||||||
http://reality.sgi.com/cpirazzi_engr/lg/time/intro.html. [This link is
|
http://web.archive.org/web/*/http://reality.sgi.com
|
||||||
no longer valid.] UST uses timestamps that are 64-bit signed integers
|
/cpirazzi_engr/lg/time/intro.html.
|
||||||
|
UST uses timestamps that are 64-bit signed integers
|
||||||
(not struct timeval's) and given in nanosecond units. The UST clock
|
(not struct timeval's) and given in nanosecond units. The UST clock
|
||||||
starts at zero when the system is booted and runs continuously and
|
starts at zero when the system is booted and runs continuously and
|
||||||
uniformly. It takes a little over 292 years for UST to overflow. There
|
uniformly. It takes a little over 292 years for UST to overflow. There
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
The GNU Free Documentation License 1.1 in DocBook
|
The GNU Free Documentation License 1.1 in DocBook
|
||||||
Markup by Eric Baudais <baudais@okstate.edu>
|
Markup by Eric Baudais <baudais@okstate.edu>
|
||||||
Maintained by the GNOME Documentation Project
|
Maintained by the GNOME Documentation Project
|
||||||
http://developer.gnome.org/projects/gdp
|
http://live.gnome.org/DocumentationProject
|
||||||
Version: 1.0.1
|
Version: 1.0.1
|
||||||
Last Modified: Nov 16, 2000
|
Last Modified: Nov 16, 2000
|
||||||
-->
|
-->
|
||||||
|
251
Documentation/DocBook/v4l/lirc_device_interface.xml
Normal file
251
Documentation/DocBook/v4l/lirc_device_interface.xml
Normal file
@@ -0,0 +1,251 @@
|
|||||||
|
<section id="lirc_dev">
|
||||||
|
<title>LIRC Device Interface</title>
|
||||||
|
|
||||||
|
|
||||||
|
<section id="lirc_dev_intro">
|
||||||
|
<title>Introduction</title>
|
||||||
|
|
||||||
|
<para>The LIRC device interface is a bi-directional interface for
|
||||||
|
transporting raw IR data between userspace and kernelspace. Fundamentally,
|
||||||
|
it is just a chardev (/dev/lircX, for X = 0, 1, 2, ...), with a number
|
||||||
|
of standard struct file_operations defined on it. With respect to
|
||||||
|
transporting raw IR data to and fro, the essential fops are read, write
|
||||||
|
and ioctl.</para>
|
||||||
|
|
||||||
|
<para>Example dmesg output upon a driver registering w/LIRC:</para>
|
||||||
|
<blockquote>
|
||||||
|
<para>$ dmesg |grep lirc_dev</para>
|
||||||
|
<para>lirc_dev: IR Remote Control driver registered, major 248</para>
|
||||||
|
<para>rc rc0: lirc_dev: driver ir-lirc-codec (mceusb) registered at minor = 0</para>
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
<para>What you should see for a chardev:</para>
|
||||||
|
<blockquote>
|
||||||
|
<para>$ ls -l /dev/lirc*</para>
|
||||||
|
<para>crw-rw---- 1 root root 248, 0 Jul 2 22:20 /dev/lirc0</para>
|
||||||
|
</blockquote>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="lirc_read">
|
||||||
|
<title>LIRC read fop</title>
|
||||||
|
|
||||||
|
<para>The lircd userspace daemon reads raw IR data from the LIRC chardev. The
|
||||||
|
exact format of the data depends on what modes a driver supports, and what
|
||||||
|
mode has been selected. lircd obtains supported modes and sets the active mode
|
||||||
|
via the ioctl interface, detailed at <xref linkend="lirc_ioctl"/>. The generally
|
||||||
|
preferred mode is LIRC_MODE_MODE2, in which packets containing an int value
|
||||||
|
describing an IR signal are read from the chardev.</para>
|
||||||
|
|
||||||
|
<para>See also <ulink url="http://www.lirc.org/html/technical.html">http://www.lirc.org/html/technical.html</ulink> for more info.</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="lirc_write">
|
||||||
|
<title>LIRC write fop</title>
|
||||||
|
|
||||||
|
<para>The data written to the chardev is a pulse/space sequence of integer
|
||||||
|
values. Pulses and spaces are only marked implicitly by their position. The
|
||||||
|
data must start and end with a pulse, therefore, the data must always include
|
||||||
|
an unevent number of samples. The write function must block until the data has
|
||||||
|
been transmitted by the hardware.</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="lirc_ioctl">
|
||||||
|
<title>LIRC ioctl fop</title>
|
||||||
|
|
||||||
|
<para>The LIRC device's ioctl definition is bound by the ioctl function
|
||||||
|
definition of struct file_operations, leaving us with an unsigned int
|
||||||
|
for the ioctl command and an unsigned long for the arg. For the purposes
|
||||||
|
of ioctl portability across 32-bit and 64-bit, these values are capped
|
||||||
|
to their 32-bit sizes.</para>
|
||||||
|
|
||||||
|
<para>The following ioctls can be used to change specific hardware settings.
|
||||||
|
In general each driver should have a default set of settings. The driver
|
||||||
|
implementation is expected to re-apply the default settings when the device
|
||||||
|
is closed by user-space, so that every application opening the device can rely
|
||||||
|
on working with the default settings initially.</para>
|
||||||
|
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term>LIRC_GET_FEATURES</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Obviously, get the underlying hardware device's features. If a driver
|
||||||
|
does not announce support of certain features, calling of the corresponding
|
||||||
|
ioctls is undefined.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>LIRC_GET_SEND_MODE</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Get supported transmit mode. Only LIRC_MODE_PULSE is supported by lircd.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>LIRC_GET_REC_MODE</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Get supported receive modes. Only LIRC_MODE_MODE2 and LIRC_MODE_LIRCCODE
|
||||||
|
are supported by lircd.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>LIRC_GET_SEND_CARRIER</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Get carrier frequency (in Hz) currently used for transmit.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>LIRC_GET_REC_CARRIER</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Get carrier frequency (in Hz) currently used for IR reception.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>LIRC_{G,S}ET_{SEND,REC}_DUTY_CYCLE</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Get/set the duty cycle (from 0 to 100) of the carrier signal. Currently,
|
||||||
|
no special meaning is defined for 0 or 100, but this could be used to switch
|
||||||
|
off carrier generation in the future, so these values should be reserved.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>LIRC_GET_REC_RESOLUTION</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Some receiver have maximum resolution which is defined by internal
|
||||||
|
sample rate or data format limitations. E.g. it's common that signals can
|
||||||
|
only be reported in 50 microsecond steps. This integer value is used by
|
||||||
|
lircd to automatically adjust the aeps tolerance value in the lircd
|
||||||
|
config file.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>LIRC_GET_M{IN,AX}_TIMEOUT</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Some devices have internal timers that can be used to detect when
|
||||||
|
there's no IR activity for a long time. This can help lircd in detecting
|
||||||
|
that a IR signal is finished and can speed up the decoding process.
|
||||||
|
Returns an integer value with the minimum/maximum timeout that can be
|
||||||
|
set. Some devices have a fixed timeout, in that case both ioctls will
|
||||||
|
return the same value even though the timeout cannot be changed.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>LIRC_GET_M{IN,AX}_FILTER_{PULSE,SPACE}</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Some devices are able to filter out spikes in the incoming signal
|
||||||
|
using given filter rules. These ioctls return the hardware capabilities
|
||||||
|
that describe the bounds of the possible filters. Filter settings depend
|
||||||
|
on the IR protocols that are expected. lircd derives the settings from
|
||||||
|
all protocols definitions found in its config file.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>LIRC_GET_LENGTH</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Retrieves the code length in bits (only for LIRC_MODE_LIRCCODE).
|
||||||
|
Reads on the device must be done in blocks matching the bit count.
|
||||||
|
The bit could should be rounded up so that it matches full bytes.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>LIRC_SET_{SEND,REC}_MODE</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Set send/receive mode. Largely obsolete for send, as only
|
||||||
|
LIRC_MODE_PULSE is supported.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>LIRC_SET_{SEND,REC}_CARRIER</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Set send/receive carrier (in Hz).</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>LIRC_SET_TRANSMITTER_MASK</term>
|
||||||
|
<listitem>
|
||||||
|
<para>This enables the given set of transmitters. The first transmitter
|
||||||
|
is encoded by the least significant bit, etc. When an invalid bit mask
|
||||||
|
is given, i.e. a bit is set, even though the device does not have so many
|
||||||
|
transitters, then this ioctl returns the number of available transitters
|
||||||
|
and does nothing otherwise.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>LIRC_SET_REC_TIMEOUT</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Sets the integer value for IR inactivity timeout (cf.
|
||||||
|
LIRC_GET_MIN_TIMEOUT and LIRC_GET_MAX_TIMEOUT). A value of 0 (if
|
||||||
|
supported by the hardware) disables all hardware timeouts and data should
|
||||||
|
be reported as soon as possible. If the exact value cannot be set, then
|
||||||
|
the next possible value _greater_ than the given value should be set.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>LIRC_SET_REC_TIMEOUT_REPORTS</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Enable (1) or disable (0) timeout reports in LIRC_MODE_MODE2. By
|
||||||
|
default, timeout reports should be turned off.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>LIRC_SET_REC_FILTER_{,PULSE,SPACE}</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Pulses/spaces shorter than this are filtered out by hardware. If
|
||||||
|
filters cannot be set independently for pulse/space, the corresponding
|
||||||
|
ioctls must return an error and LIRC_SET_REC_FILTER shall be used instead.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>LIRC_SET_MEASURE_CARRIER_MODE</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Enable (1)/disable (0) measure mode. If enabled, from the next key
|
||||||
|
press on, the driver will send LIRC_MODE2_FREQUENCY packets. By default
|
||||||
|
this should be turned off.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>LIRC_SET_REC_{DUTY_CYCLE,CARRIER}_RANGE</term>
|
||||||
|
<listitem>
|
||||||
|
<para>To set a range use LIRC_SET_REC_DUTY_CYCLE_RANGE/LIRC_SET_REC_CARRIER_RANGE
|
||||||
|
with the lower bound first and later LIRC_SET_REC_DUTY_CYCLE/LIRC_SET_REC_CARRIER
|
||||||
|
with the upper bound.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>LIRC_NOTIFY_DECODE</term>
|
||||||
|
<listitem>
|
||||||
|
<para>This ioctl is called by lircd whenever a successful decoding of an
|
||||||
|
incoming IR signal could be done. This can be used by supporting hardware
|
||||||
|
to give visual feedback to the user e.g. by flashing a LED.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>LIRC_SETUP_{START,END}</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Setting of several driver parameters can be optimized by encapsulating
|
||||||
|
the according ioctl calls with LIRC_SETUP_START/LIRC_SETUP_END. When a
|
||||||
|
driver receives a LIRC_SETUP_START ioctl it can choose to not commit
|
||||||
|
further setting changes to the hardware until a LIRC_SETUP_END is received.
|
||||||
|
But this is open to the driver implementation and every driver must also
|
||||||
|
handle parameter changes which are not encapsulated by LIRC_SETUP_START
|
||||||
|
and LIRC_SETUP_END. Drivers can also choose to ignore these ioctls.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>LIRC_SET_WIDEBAND_RECEIVER</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Some receivers are equipped with special wide band receiver which is intended
|
||||||
|
to be used to learn output of existing remote.
|
||||||
|
Calling that ioctl with (1) will enable it, and with (0) disable it.
|
||||||
|
This might be useful of receivers that have otherwise narrow band receiver
|
||||||
|
that prevents them to be used with some remotes.
|
||||||
|
Wide band receiver might also be more precise
|
||||||
|
On the other hand its disadvantage it usually reduced range of reception.
|
||||||
|
Note: wide band receiver might be implictly enabled if you enable
|
||||||
|
carrier reports. In that case it will be disabled as soon as you disable
|
||||||
|
carrier reports. Trying to disable wide band receiver while carrier
|
||||||
|
reports are active will do nothing.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</section>
|
@@ -240,6 +240,45 @@ colorspace <constant>V4L2_COLORSPACE_SRGB</constant>.</para>
|
|||||||
<entry>r<subscript>1</subscript></entry>
|
<entry>r<subscript>1</subscript></entry>
|
||||||
<entry>r<subscript>0</subscript></entry>
|
<entry>r<subscript>0</subscript></entry>
|
||||||
</row>
|
</row>
|
||||||
|
<row id="V4L2-PIX-FMT-BGR666">
|
||||||
|
<entry><constant>V4L2_PIX_FMT_BGR666</constant></entry>
|
||||||
|
<entry>'BGRH'</entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>b<subscript>5</subscript></entry>
|
||||||
|
<entry>b<subscript>4</subscript></entry>
|
||||||
|
<entry>b<subscript>3</subscript></entry>
|
||||||
|
<entry>b<subscript>2</subscript></entry>
|
||||||
|
<entry>b<subscript>1</subscript></entry>
|
||||||
|
<entry>b<subscript>0</subscript></entry>
|
||||||
|
<entry>g<subscript>5</subscript></entry>
|
||||||
|
<entry>g<subscript>4</subscript></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>g<subscript>3</subscript></entry>
|
||||||
|
<entry>g<subscript>2</subscript></entry>
|
||||||
|
<entry>g<subscript>1</subscript></entry>
|
||||||
|
<entry>g<subscript>0</subscript></entry>
|
||||||
|
<entry>r<subscript>5</subscript></entry>
|
||||||
|
<entry>r<subscript>4</subscript></entry>
|
||||||
|
<entry>r<subscript>3</subscript></entry>
|
||||||
|
<entry>r<subscript>2</subscript></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>r<subscript>1</subscript></entry>
|
||||||
|
<entry>r<subscript>0</subscript></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
</row>
|
||||||
<row id="V4L2-PIX-FMT-BGR24">
|
<row id="V4L2-PIX-FMT-BGR24">
|
||||||
<entry><constant>V4L2_PIX_FMT_BGR24</constant></entry>
|
<entry><constant>V4L2_PIX_FMT_BGR24</constant></entry>
|
||||||
<entry>'BGR3'</entry>
|
<entry>'BGR3'</entry>
|
||||||
@@ -700,6 +739,45 @@ defined in error. Drivers may interpret them as in <xref
|
|||||||
<entry>b<subscript>1</subscript></entry>
|
<entry>b<subscript>1</subscript></entry>
|
||||||
<entry>b<subscript>0</subscript></entry>
|
<entry>b<subscript>0</subscript></entry>
|
||||||
</row>
|
</row>
|
||||||
|
<row id="V4L2-PIX-FMT-BGR666">
|
||||||
|
<entry><constant>V4L2_PIX_FMT_BGR666</constant></entry>
|
||||||
|
<entry>'BGRH'</entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>b<subscript>5</subscript></entry>
|
||||||
|
<entry>b<subscript>4</subscript></entry>
|
||||||
|
<entry>b<subscript>3</subscript></entry>
|
||||||
|
<entry>b<subscript>2</subscript></entry>
|
||||||
|
<entry>b<subscript>1</subscript></entry>
|
||||||
|
<entry>b<subscript>0</subscript></entry>
|
||||||
|
<entry>g<subscript>5</subscript></entry>
|
||||||
|
<entry>g<subscript>4</subscript></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>g<subscript>3</subscript></entry>
|
||||||
|
<entry>g<subscript>2</subscript></entry>
|
||||||
|
<entry>g<subscript>1</subscript></entry>
|
||||||
|
<entry>g<subscript>0</subscript></entry>
|
||||||
|
<entry>r<subscript>5</subscript></entry>
|
||||||
|
<entry>r<subscript>4</subscript></entry>
|
||||||
|
<entry>r<subscript>3</subscript></entry>
|
||||||
|
<entry>r<subscript>2</subscript></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>r<subscript>1</subscript></entry>
|
||||||
|
<entry>r<subscript>0</subscript></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
<entry></entry>
|
||||||
|
</row>
|
||||||
<row><!-- id="V4L2-PIX-FMT-BGR24" -->
|
<row><!-- id="V4L2-PIX-FMT-BGR24" -->
|
||||||
<entry><constant>V4L2_PIX_FMT_BGR24</constant></entry>
|
<entry><constant>V4L2_PIX_FMT_BGR24</constant></entry>
|
||||||
<entry>'BGR3'</entry>
|
<entry>'BGR3'</entry>
|
||||||
|
@@ -173,3 +173,5 @@ keymapping.</para>
|
|||||||
<para>This program demonstrates how to replace the keymap tables.</para>
|
<para>This program demonstrates how to replace the keymap tables.</para>
|
||||||
&sub-keytable-c;
|
&sub-keytable-c;
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
&sub-lirc_device_interface;
|
||||||
|
@@ -187,7 +187,7 @@ apply a patch.
|
|||||||
If you do not know where you want to start, but you want to look for
|
If you do not know where you want to start, but you want to look for
|
||||||
some task to start doing to join into the kernel development community,
|
some task to start doing to join into the kernel development community,
|
||||||
go to the Linux Kernel Janitor's project:
|
go to the Linux Kernel Janitor's project:
|
||||||
http://janitor.kernelnewbies.org/
|
http://kernelnewbies.org/KernelJanitors
|
||||||
It is a great place to start. It describes a list of relatively simple
|
It is a great place to start. It describes a list of relatively simple
|
||||||
problems that need to be cleaned up and fixed within the Linux kernel
|
problems that need to be cleaned up and fixed within the Linux kernel
|
||||||
source tree. Working with the developers in charge of this project, you
|
source tree. Working with the developers in charge of this project, you
|
||||||
@@ -315,7 +315,7 @@ process is tracked with the tool patchwork. Patchwork offers a web
|
|||||||
interface which shows patch postings, any comments on a patch or
|
interface which shows patch postings, any comments on a patch or
|
||||||
revisions to it, and maintainers can mark patches as under review,
|
revisions to it, and maintainers can mark patches as under review,
|
||||||
accepted, or rejected. Most of these patchwork sites are listed at
|
accepted, or rejected. Most of these patchwork sites are listed at
|
||||||
http://patchwork.kernel.org/ or http://patchwork.ozlabs.org/.
|
http://patchwork.kernel.org/.
|
||||||
|
|
||||||
2.6.x -next kernel tree for integration tests
|
2.6.x -next kernel tree for integration tests
|
||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
@@ -595,7 +595,7 @@ start exactly where you are now.
|
|||||||
|
|
||||||
----------
|
----------
|
||||||
Thanks to Paolo Ciarrocchi who allowed the "Development Process"
|
Thanks to Paolo Ciarrocchi who allowed the "Development Process"
|
||||||
(http://linux.tar.bz/articles/2.6-development_process) section
|
(http://lwn.net/Articles/94386/) section
|
||||||
to be based on text he had written, and to Randy Dunlap and Gerrit
|
to be based on text he had written, and to Randy Dunlap and Gerrit
|
||||||
Huizenga for some of the list of things you should and should not say.
|
Huizenga for some of the list of things you should and should not say.
|
||||||
Also thanks to Pat Mochel, Hanna Linder, Randy Dunlap, Kay Sievers,
|
Also thanks to Pat Mochel, Hanna Linder, Randy Dunlap, Kay Sievers,
|
||||||
|
@@ -581,7 +581,7 @@ to be handled by platform and generic code, not individual drivers.
|
|||||||
8. Vendor and device identifications
|
8. Vendor and device identifications
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
One is not not required to add new device ids to include/linux/pci_ids.h.
|
One is not required to add new device ids to include/linux/pci_ids.h.
|
||||||
Please add PCI_VENDOR_ID_xxx for vendors and a hex constant for device ids.
|
Please add PCI_VENDOR_ID_xxx for vendors and a hex constant for device ids.
|
||||||
|
|
||||||
PCI_VENDOR_ID_xxx constants are re-used. The device ids are arbitrary
|
PCI_VENDOR_ID_xxx constants are re-used. The device ids are arbitrary
|
||||||
|
@@ -606,7 +606,7 @@ Suparna Bhattacharya"
|
|||||||
,Year="2006"
|
,Year="2006"
|
||||||
,pages="v2 123-138"
|
,pages="v2 123-138"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://www.linuxsymposium.org/2006/view_abstract.php?content_key=184}
|
\url{http://www.linuxsymposium.org/2006/index_2006.php}
|
||||||
\url{http://www.rdrop.com/users/paulmck/RCU/OLSrtRCU.2006.08.11a.pdf}
|
\url{http://www.rdrop.com/users/paulmck/RCU/OLSrtRCU.2006.08.11a.pdf}
|
||||||
[Viewed January 1, 2007]"
|
[Viewed January 1, 2007]"
|
||||||
,annotation="
|
,annotation="
|
||||||
|
@@ -161,7 +161,7 @@ How to NOT write kernel driver by Arjan van de Ven:
|
|||||||
http://www.fenrus.org/how-to-not-write-a-device-driver-paper.pdf
|
http://www.fenrus.org/how-to-not-write-a-device-driver-paper.pdf
|
||||||
|
|
||||||
Kernel Janitor:
|
Kernel Janitor:
|
||||||
http://janitor.kernelnewbies.org/
|
http://kernelnewbies.org/KernelJanitors
|
||||||
|
|
||||||
GIT, Fast Version Control System:
|
GIT, Fast Version Control System:
|
||||||
http://git-scm.com/
|
http://git-scm.com/
|
||||||
|
@@ -98,6 +98,17 @@ system, git, as a "commit log". See #15, below.
|
|||||||
If your description starts to get long, that's a sign that you probably
|
If your description starts to get long, that's a sign that you probably
|
||||||
need to split up your patch. See #3, next.
|
need to split up your patch. See #3, next.
|
||||||
|
|
||||||
|
When you submit or resubmit a patch or patch series, include the
|
||||||
|
complete patch description and justification for it. Don't just
|
||||||
|
say that this is version N of the patch (series). Don't expect the
|
||||||
|
patch merger to refer back to earlier patch versions or referenced
|
||||||
|
URLs to find the patch description and put that into the patch.
|
||||||
|
I.e., the patch (series) and its description should be self-contained.
|
||||||
|
This benefits both the patch merger(s) and reviewers. Some reviewers
|
||||||
|
probably didn't even receive earlier versions of the patch.
|
||||||
|
|
||||||
|
If the patch fixes a logged bug entry, refer to that bug entry by
|
||||||
|
number and URL.
|
||||||
|
|
||||||
|
|
||||||
3) Separate your changes.
|
3) Separate your changes.
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
The EtherDrive (R) HOWTO for users of 2.6 kernels is found at ...
|
The EtherDrive (R) HOWTO for users of 2.6 kernels is found at ...
|
||||||
|
|
||||||
http://www.coraid.com/support/linux/EtherDrive-2.6-HOWTO.html
|
http://www.coraid.com/SUPPORT/EtherDrive-HBA
|
||||||
|
|
||||||
It has many tips and hints!
|
It has many tips and hints!
|
||||||
|
|
||||||
|
39
Documentation/apparmor.txt
Normal file
39
Documentation/apparmor.txt
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
--- What is AppArmor? ---
|
||||||
|
|
||||||
|
AppArmor is MAC style security extension for the Linux kernel. It implements
|
||||||
|
a task centered policy, with task "profiles" being created and loaded
|
||||||
|
from user space. Tasks on the system that do not have a profile defined for
|
||||||
|
them run in an unconfined state which is equivalent to standard Linux DAC
|
||||||
|
permissions.
|
||||||
|
|
||||||
|
--- How to enable/disable ---
|
||||||
|
|
||||||
|
set CONFIG_SECURITY_APPARMOR=y
|
||||||
|
|
||||||
|
If AppArmor should be selected as the default security module then
|
||||||
|
set CONFIG_DEFAULT_SECURITY="apparmor"
|
||||||
|
and CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1
|
||||||
|
|
||||||
|
Build the kernel
|
||||||
|
|
||||||
|
If AppArmor is not the default security module it can be enabled by passing
|
||||||
|
security=apparmor on the kernel's command line.
|
||||||
|
|
||||||
|
If AppArmor is the default security module it can be disabled by passing
|
||||||
|
apparmor=0, security=XXXX (where XXX is valid security module), on the
|
||||||
|
kernel's command line
|
||||||
|
|
||||||
|
For AppArmor to enforce any restrictions beyond standard Linux DAC permissions
|
||||||
|
policy must be loaded into the kernel from user space (see the Documentation
|
||||||
|
and tools links).
|
||||||
|
|
||||||
|
--- Documentation ---
|
||||||
|
|
||||||
|
Documentation can be found on the wiki.
|
||||||
|
|
||||||
|
--- Links ---
|
||||||
|
|
||||||
|
Mailing List - apparmor@lists.ubuntu.com
|
||||||
|
Wiki - http://apparmor.wiki.kernel.org/
|
||||||
|
User space tools - https://launchpad.net/apparmor
|
||||||
|
Kernel module - git://git.kernel.org/pub/scm/linux/kernel/git/jj/apparmor-dev.git
|
@@ -14,7 +14,7 @@ telecom systems. In addition to an XScale core, it contains up to 8
|
|||||||
interfaces (UTOPIA, SPI, etc), a PCI host bridge, one serial port,
|
interfaces (UTOPIA, SPI, etc), a PCI host bridge, one serial port,
|
||||||
flash interface, and some other odds and ends. For more information, see:
|
flash interface, and some other odds and ends. For more information, see:
|
||||||
|
|
||||||
http://developer.intel.com/design/network/products/npfamily/ixp2xxx.htm
|
http://developer.intel.com
|
||||||
|
|
||||||
2. Linux Support
|
2. Linux Support
|
||||||
|
|
||||||
|
@@ -45,7 +45,7 @@ require the use of Intel's propietary CSR softare:
|
|||||||
If you need to use any of the above, you need to download Intel's
|
If you need to use any of the above, you need to download Intel's
|
||||||
software from:
|
software from:
|
||||||
|
|
||||||
http://developer.intel.com/design/network/products/npfamily/ixp425swr1.htm
|
http://developer.intel.com/design/network/products/npfamily/ixp425.htm
|
||||||
|
|
||||||
DO NOT POST QUESTIONS TO THE LINUX MAILING LISTS REGARDING THE PROPIETARY
|
DO NOT POST QUESTIONS TO THE LINUX MAILING LISTS REGARDING THE PROPIETARY
|
||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
@@ -53,7 +53,7 @@ SOFTWARE.
|
|||||||
There are several websites that provide directions/pointers on using
|
There are several websites that provide directions/pointers on using
|
||||||
Intel's software:
|
Intel's software:
|
||||||
|
|
||||||
http://ixp4xx-osdg.sourceforge.net/
|
http://sourceforge.net/projects/ixp4xx-osdg/
|
||||||
Open Source Developer's Guide for using uClinux and the Intel libraries
|
Open Source Developer's Guide for using uClinux and the Intel libraries
|
||||||
|
|
||||||
http://gatewaymaker.sourceforge.net/
|
http://gatewaymaker.sourceforge.net/
|
||||||
@@ -112,21 +112,21 @@ http://www.adiengineering.com/productsCoyote.html
|
|||||||
Finally, there is an IDE port hanging off the expansion bus.
|
Finally, there is an IDE port hanging off the expansion bus.
|
||||||
|
|
||||||
Gateworks Avila Network Platform
|
Gateworks Avila Network Platform
|
||||||
http://www.gateworks.com/avila_sbc.htm
|
http://www.gateworks.com/support/overview.php
|
||||||
|
|
||||||
The Avila platform is basically and IXDP425 with the 4 PCI slots
|
The Avila platform is basically and IXDP425 with the 4 PCI slots
|
||||||
replaced with mini-PCI slots and a CF IDE interface hanging off
|
replaced with mini-PCI slots and a CF IDE interface hanging off
|
||||||
the expansion bus.
|
the expansion bus.
|
||||||
|
|
||||||
Intel IXDP425 Development Platform
|
Intel IXDP425 Development Platform
|
||||||
http://developer.intel.com/design/network/products/npfamily/ixdp425.htm
|
http://www.intel.com/design/network/products/npfamily/ixdpg425.htm
|
||||||
|
|
||||||
This is Intel's standard reference platform for the IXDP425 and is
|
This is Intel's standard reference platform for the IXDP425 and is
|
||||||
also known as the Richfield board. It contains 4 PCI slots, 16MB
|
also known as the Richfield board. It contains 4 PCI slots, 16MB
|
||||||
of flash, two 10/100 ports and one ADSL port.
|
of flash, two 10/100 ports and one ADSL port.
|
||||||
|
|
||||||
Intel IXDP465 Development Platform
|
Intel IXDP465 Development Platform
|
||||||
http://developer.intel.com/design/network/products/npfamily/ixdp465.htm
|
http://www.intel.com/design/network/products/npfamily/ixdp465.htm
|
||||||
|
|
||||||
This is basically an IXDP425 with an IXP465 and 32M of flash instead
|
This is basically an IXDP425 with an IXP465 and 32M of flash instead
|
||||||
of just 16.
|
of just 16.
|
||||||
@@ -141,15 +141,13 @@ Intel IXDPG425 Development Platform
|
|||||||
a pivot_root to NFS.
|
a pivot_root to NFS.
|
||||||
|
|
||||||
Motorola PrPMC1100 Processor Mezanine Card
|
Motorola PrPMC1100 Processor Mezanine Card
|
||||||
http://www.fountainsys.com/datasheet/PrPMC1100.pdf
|
http://www.fountainsys.com
|
||||||
|
|
||||||
The PrPMC1100 is based on the IXCP1100 and is meant to plug into
|
The PrPMC1100 is based on the IXCP1100 and is meant to plug into
|
||||||
and IXP2400/2800 system to act as the system controller. It simply
|
and IXP2400/2800 system to act as the system controller. It simply
|
||||||
contains a CPU and 16MB of flash on the board and needs to be
|
contains a CPU and 16MB of flash on the board and needs to be
|
||||||
plugged into a carrier board to function. Currently Linux only
|
plugged into a carrier board to function. Currently Linux only
|
||||||
supports the Motorola PrPMC carrier board for this platform.
|
supports the Motorola PrPMC carrier board for this platform.
|
||||||
See https://mcg.motorola.com/us/ds/pdf/ds0144.pdf for info
|
|
||||||
on the carrier board.
|
|
||||||
|
|
||||||
5. TODO LIST
|
5. TODO LIST
|
||||||
|
|
||||||
|
@@ -41,12 +41,12 @@ Bug reports etc
|
|||||||
---------------
|
---------------
|
||||||
|
|
||||||
Please send patches to the patch system. For more information, see
|
Please send patches to the patch system. For more information, see
|
||||||
http://www.arm.linux.org.uk/patches/info.html Always include some
|
http://www.arm.linux.org.uk/developer/patches/info.php Always include some
|
||||||
explanation as to what the patch does and why it is needed.
|
explanation as to what the patch does and why it is needed.
|
||||||
|
|
||||||
Bug reports should be sent to linux-arm-kernel@lists.arm.linux.org.uk,
|
Bug reports should be sent to linux-arm-kernel@lists.arm.linux.org.uk,
|
||||||
or submitted through the web form at
|
or submitted through the web form at
|
||||||
http://www.arm.linux.org.uk/forms/solution.shtml
|
http://www.arm.linux.org.uk/developer/
|
||||||
|
|
||||||
When sending bug reports, please ensure that they contain all relevant
|
When sending bug reports, please ensure that they contain all relevant
|
||||||
information, eg. the kernel messages that were printed before/during
|
information, eg. the kernel messages that were printed before/during
|
||||||
|
@@ -2,8 +2,7 @@ The Intel Assabet (SA-1110 evaluation) board
|
|||||||
============================================
|
============================================
|
||||||
|
|
||||||
Please see:
|
Please see:
|
||||||
http://developer.intel.com/design/strong/quicklist/eval-plat/sa-1110.htm
|
http://developer.intel.com
|
||||||
http://developer.intel.com/design/strong/guides/278278.htm
|
|
||||||
|
|
||||||
Also some notes from John G Dorsey <jd5q@andrew.cmu.edu>:
|
Also some notes from John G Dorsey <jd5q@andrew.cmu.edu>:
|
||||||
http://www.cs.cmu.edu/~wearable/software/assabet.html
|
http://www.cs.cmu.edu/~wearable/software/assabet.html
|
||||||
@@ -64,7 +63,7 @@ Initial RedBoot configuration
|
|||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
The commands used here are explained in The RedBoot User's Guide available
|
The commands used here are explained in The RedBoot User's Guide available
|
||||||
on-line at http://sources.redhat.com/ecos/docs-latest/redboot/redboot.html.
|
on-line at http://sources.redhat.com/ecos/docs.html.
|
||||||
Please refer to it for explanations.
|
Please refer to it for explanations.
|
||||||
|
|
||||||
If you have a CF network card (my Assabet kit contained a CF+ LP-E from
|
If you have a CF network card (my Assabet kit contained a CF+ LP-E from
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
Brutus is an evaluation platform for the SA1100 manufactured by Intel.
|
Brutus is an evaluation platform for the SA1100 manufactured by Intel.
|
||||||
For more details, see:
|
For more details, see:
|
||||||
|
|
||||||
http://developer.intel.com/design/strong/applnots/sa1100lx/getstart.htm
|
http://developer.intel.com
|
||||||
|
|
||||||
To compile for Brutus, you must issue the following commands:
|
To compile for Brutus, you must issue the following commands:
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
Freebird-1.1 is produced by Legned(C) ,Inc.
|
Freebird-1.1 is produced by Legned(C) ,Inc.
|
||||||
(http://www.legend.com.cn)
|
http://web.archive.org/web/*/http://www.legend.com.cn
|
||||||
and software/linux mainatined by Coventive(C),Inc.
|
and software/linux mainatined by Coventive(C),Inc.
|
||||||
(http://www.coventive.com)
|
(http://www.coventive.com)
|
||||||
|
|
||||||
|
@@ -71,7 +71,7 @@ Supported peripherals:
|
|||||||
- serial ports (ttyS[0-2])
|
- serial ports (ttyS[0-2])
|
||||||
- ttyS0 is default for serial console
|
- ttyS0 is default for serial console
|
||||||
- Smart I/O (ADC, keypad, digital inputs, etc)
|
- Smart I/O (ADC, keypad, digital inputs, etc)
|
||||||
See http://www.applieddata.com/developers/linux for IOCTL documentation
|
See http://www.eurotech-inc.com/linux-sbc.asp for IOCTL documentation
|
||||||
and example user space code. ps/2 keybd is multiplexed through this driver
|
and example user space code. ps/2 keybd is multiplexed through this driver
|
||||||
|
|
||||||
To do:
|
To do:
|
||||||
|
@@ -28,7 +28,7 @@ Supported peripherals:
|
|||||||
- serial ports (ttyS[0-2])
|
- serial ports (ttyS[0-2])
|
||||||
- ttyS0 is default for serial console
|
- ttyS0 is default for serial console
|
||||||
- Smart I/O (ADC, keypad, digital inputs, etc)
|
- Smart I/O (ADC, keypad, digital inputs, etc)
|
||||||
See http://www.applieddata.com/developers/linux for IOCTL documentation
|
See http://www.eurotech-inc.com/linux-sbc.asp for IOCTL documentation
|
||||||
and example user space code. ps/2 keybd is multiplexed through this driver
|
and example user space code. ps/2 keybd is multiplexed through this driver
|
||||||
|
|
||||||
To do:
|
To do:
|
||||||
|
@@ -4,7 +4,7 @@ research projects at Compaq that are related to pocket computing.
|
|||||||
|
|
||||||
For more information, see:
|
For more information, see:
|
||||||
|
|
||||||
http://www.research.digital.com/wrl/itsy/index.html
|
http://www.hpl.hp.com/downloads/crl/itsy/
|
||||||
|
|
||||||
Notes on initial 2.4 Itsy support (8/27/2000) :
|
Notes on initial 2.4 Itsy support (8/27/2000) :
|
||||||
The port was done on an Itsy version 1.5 machine with a daughtercard with
|
The port was done on an Itsy version 1.5 machine with a daughtercard with
|
||||||
|
@@ -6,6 +6,6 @@ PLEB support has yet to be fully integrated.
|
|||||||
|
|
||||||
For more information, see:
|
For more information, see:
|
||||||
|
|
||||||
http://www.cse.unsw.edu.au/~pleb/
|
http://www.cse.unsw.edu.au
|
||||||
|
|
||||||
|
|
||||||
|
@@ -3,7 +3,7 @@ VisuAide, Inc. to be used by blind people.
|
|||||||
|
|
||||||
For more information related to Victor, see:
|
For more information related to Victor, see:
|
||||||
|
|
||||||
http://www.visuaide.com/victor
|
http://www.humanware.com/en-usa/products
|
||||||
|
|
||||||
Of course Victor is using Linux as its main operating system.
|
Of course Victor is using Linux as its main operating system.
|
||||||
The Victor implementation for Linux is maintained by Nicolas Pitre:
|
The Victor implementation for Linux is maintained by Nicolas Pitre:
|
||||||
|
@@ -7,5 +7,5 @@ for more info.
|
|||||||
(Ref: Stuart Adams <sja@brightstareng.com>)
|
(Ref: Stuart Adams <sja@brightstareng.com>)
|
||||||
|
|
||||||
Also visit Larry Doolittle's "Linux for the nanoEngine" site:
|
Also visit Larry Doolittle's "Linux for the nanoEngine" site:
|
||||||
http://recycle.lbl.gov/~ldoolitt/bse/
|
http://www.brightstareng.com/arm/nanoeng.htm
|
||||||
|
|
||||||
|
@@ -33,7 +33,13 @@ ffff0000 ffff0fff CPU vector page.
|
|||||||
|
|
||||||
fffe0000 fffeffff XScale cache flush area. This is used
|
fffe0000 fffeffff XScale cache flush area. This is used
|
||||||
in proc-xscale.S to flush the whole data
|
in proc-xscale.S to flush the whole data
|
||||||
cache. Free for other usage on non-XScale.
|
cache. (XScale does not have TCM.)
|
||||||
|
|
||||||
|
fffe8000 fffeffff DTCM mapping area for platforms with
|
||||||
|
DTCM mounted inside the CPU.
|
||||||
|
|
||||||
|
fffe0000 fffe7fff ITCM mapping area for platforms with
|
||||||
|
ITCM mounted inside the CPU.
|
||||||
|
|
||||||
fff00000 fffdffff Fixmap mapping region. Addresses provided
|
fff00000 fffdffff Fixmap mapping region. Addresses provided
|
||||||
by fix_to_virt() will be located here.
|
by fix_to_virt() will be located here.
|
||||||
|
@@ -19,8 +19,8 @@ defines a CPUID_TCM register that you can read out from the
|
|||||||
system control coprocessor. Documentation from ARM can be found
|
system control coprocessor. Documentation from ARM can be found
|
||||||
at http://infocenter.arm.com, search for "TCM Status Register"
|
at http://infocenter.arm.com, search for "TCM Status Register"
|
||||||
to see documents for all CPUs. Reading this register you can
|
to see documents for all CPUs. Reading this register you can
|
||||||
determine if ITCM (bit 0) and/or DTCM (bit 16) is present in the
|
determine if ITCM (bits 1-0) and/or DTCM (bit 17-16) is present
|
||||||
machine.
|
in the machine.
|
||||||
|
|
||||||
There is further a TCM region register (search for "TCM Region
|
There is further a TCM region register (search for "TCM Region
|
||||||
Registers" at the ARM site) that can report and modify the location
|
Registers" at the ARM site) that can report and modify the location
|
||||||
@@ -35,7 +35,15 @@ The TCM memory can then be remapped to another address again using
|
|||||||
the MMU, but notice that the TCM if often used in situations where
|
the MMU, but notice that the TCM if often used in situations where
|
||||||
the MMU is turned off. To avoid confusion the current Linux
|
the MMU is turned off. To avoid confusion the current Linux
|
||||||
implementation will map the TCM 1 to 1 from physical to virtual
|
implementation will map the TCM 1 to 1 from physical to virtual
|
||||||
memory in the location specified by the machine.
|
memory in the location specified by the kernel. Currently Linux
|
||||||
|
will map ITCM to 0xfffe0000 and on, and DTCM to 0xfffe8000 and
|
||||||
|
on, supporting a maximum of 32KiB of ITCM and 32KiB of DTCM.
|
||||||
|
|
||||||
|
Newer versions of the region registers also support dividing these
|
||||||
|
TCMs in two separate banks, so for example an 8KiB ITCM is divided
|
||||||
|
into two 4KiB banks with its own control registers. The idea is to
|
||||||
|
be able to lock and hide one of the banks for use by the secure
|
||||||
|
world (TrustZone).
|
||||||
|
|
||||||
TCM is used for a few things:
|
TCM is used for a few things:
|
||||||
|
|
||||||
@@ -65,18 +73,18 @@ in <asm/tcm.h>. Using this interface it is possible to:
|
|||||||
memory. Such a heap is great for things like saving
|
memory. Such a heap is great for things like saving
|
||||||
device state when shutting off device power domains.
|
device state when shutting off device power domains.
|
||||||
|
|
||||||
A machine that has TCM memory shall select HAVE_TCM in
|
A machine that has TCM memory shall select HAVE_TCM from
|
||||||
arch/arm/Kconfig for itself, and then the
|
arch/arm/Kconfig for itself. Code that needs to use TCM shall
|
||||||
rest of the functionality will depend on the physical
|
#include <asm/tcm.h>
|
||||||
location and size of ITCM and DTCM to be defined in
|
|
||||||
mach/memory.h for the machine. Code that needs to use
|
|
||||||
TCM shall #include <asm/tcm.h> If the TCM is not located
|
|
||||||
at the place given in memory.h it will be moved using
|
|
||||||
the TCM Region registers.
|
|
||||||
|
|
||||||
Functions to go into itcm can be tagged like this:
|
Functions to go into itcm can be tagged like this:
|
||||||
int __tcmfunc foo(int bar);
|
int __tcmfunc foo(int bar);
|
||||||
|
|
||||||
|
Since these are marked to become long_calls and you may want
|
||||||
|
to have functions called locally inside the TCM without
|
||||||
|
wasting space, there is also the __tcmlocalfunc prefix that
|
||||||
|
will make the call relative.
|
||||||
|
|
||||||
Variables to go into dtcm can be tagged like this:
|
Variables to go into dtcm can be tagged like this:
|
||||||
int __tcmdata foo;
|
int __tcmdata foo;
|
||||||
|
|
||||||
|
@@ -111,6 +111,6 @@ cause unexpected behaviour and can be a security hazard.
|
|||||||
|
|
||||||
|
|
||||||
There is a web page about binfmt_misc at
|
There is a web page about binfmt_misc at
|
||||||
http://www.tat.physik.uni-tuebingen.de/~rguenth/linux/binfmt_misc.html
|
http://www.tat.physik.uni-tuebingen.de
|
||||||
|
|
||||||
Richard Günther <rguenth@tat.physik.uni-tuebingen.de>
|
Richard Günther <rguenth@tat.physik.uni-tuebingen.de>
|
||||||
|
@@ -1,11 +1,8 @@
|
|||||||
00-INDEX
|
00-INDEX
|
||||||
- This file
|
- This file
|
||||||
|
|
||||||
cachefeatures.txt
|
bfin-gpio-notes.txt
|
||||||
- Supported cache features.
|
|
||||||
|
|
||||||
Filesystems
|
|
||||||
- Requirements for mounting the root file system.
|
|
||||||
|
|
||||||
bfin-gpio-note.txt
|
|
||||||
- Notes in developing/using bfin-gpio driver.
|
- Notes in developing/using bfin-gpio driver.
|
||||||
|
|
||||||
|
bfin-spi-notes.txt
|
||||||
|
- Notes for using bfin spi bus driver.
|
||||||
|
@@ -1,169 +0,0 @@
|
|||||||
/*
|
|
||||||
* File: Documentation/blackfin/Filesystems
|
|
||||||
* Based on:
|
|
||||||
* Author:
|
|
||||||
*
|
|
||||||
* Created:
|
|
||||||
* Description: This file contains the simple DMA Implementation for Blackfin
|
|
||||||
*
|
|
||||||
* Rev: $Id: Filesystems 2384 2006-11-01 04:12:43Z magicyang $
|
|
||||||
*
|
|
||||||
* Modified:
|
|
||||||
* Copyright 2004-2006 Analog Devices Inc.
|
|
||||||
*
|
|
||||||
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
How to mount the root file system in uClinux/Blackfin
|
|
||||||
-----------------------------------------------------
|
|
||||||
|
|
||||||
1 Mounting EXT3 File system.
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
Creating an EXT3 File system for uClinux/Blackfin:
|
|
||||||
|
|
||||||
|
|
||||||
Please follow the steps to form the EXT3 File system and mount the same as root
|
|
||||||
file system.
|
|
||||||
|
|
||||||
a Make an ext3 file system as large as you want the final root file
|
|
||||||
system.
|
|
||||||
|
|
||||||
mkfs.ext3 /dev/ram0 <your-rootfs-size-in-1k-blocks>
|
|
||||||
|
|
||||||
b Mount this Empty file system on a free directory as:
|
|
||||||
|
|
||||||
mount -t ext3 /dev/ram0 ./test
|
|
||||||
where ./test is the empty directory.
|
|
||||||
|
|
||||||
c Copy your root fs directory that you have so carefully made over.
|
|
||||||
|
|
||||||
cp -af /tmp/my_final_rootfs_files/* ./test
|
|
||||||
|
|
||||||
(For ex: cp -af uClinux-dist/romfs/* ./test)
|
|
||||||
|
|
||||||
d If you have done everything right till now you should be able to see
|
|
||||||
the required "root" dir's (that's etc, root, bin, lib, sbin...)
|
|
||||||
|
|
||||||
e Now unmount the file system
|
|
||||||
|
|
||||||
umount ./test
|
|
||||||
|
|
||||||
f Create the root file system image.
|
|
||||||
|
|
||||||
dd if=/dev/ram0 bs=1k count=<your-rootfs-size-in-1k-blocks> \
|
|
||||||
> ext3fs.img
|
|
||||||
|
|
||||||
|
|
||||||
Now you have to tell the kernel that will be mounting this file system as
|
|
||||||
rootfs.
|
|
||||||
So do a make menuconfig under kernel and select the Ext3 journaling file system
|
|
||||||
support under File system --> submenu.
|
|
||||||
|
|
||||||
|
|
||||||
2. Mounting EXT2 File system.
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
By default the ext2 file system image will be created if you invoke make from
|
|
||||||
the top uClinux-dist directory.
|
|
||||||
|
|
||||||
|
|
||||||
3. Mounting CRAMFS File System
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
To create a CRAMFS file system image execute the command
|
|
||||||
|
|
||||||
mkfs.cramfs ./test cramfs.img
|
|
||||||
|
|
||||||
where ./test is the target directory.
|
|
||||||
|
|
||||||
|
|
||||||
4. Mounting ROMFS File System
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
To create a ROMFS file system image execute the command
|
|
||||||
|
|
||||||
genromfs -v -V "ROMdisk" -f romfs.img -d ./test
|
|
||||||
|
|
||||||
where ./test is the target directory
|
|
||||||
|
|
||||||
|
|
||||||
5. Mounting the JFFS2 Filesystem
|
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
To create a compressed JFFS filesystem (JFFS2), please execute the command
|
|
||||||
|
|
||||||
mkfs.jffs2 -d ./test -o jffs2.img
|
|
||||||
|
|
||||||
where ./test is the target directory.
|
|
||||||
|
|
||||||
However, please make sure the following is in your kernel config.
|
|
||||||
|
|
||||||
/*
|
|
||||||
* RAM/ROM/Flash chip drivers
|
|
||||||
*/
|
|
||||||
#define CONFIG_MTD_CFI 1
|
|
||||||
#define CONFIG_MTD_ROM 1
|
|
||||||
/*
|
|
||||||
* Mapping drivers for chip access
|
|
||||||
*/
|
|
||||||
#define CONFIG_MTD_COMPLEX_MAPPINGS 1
|
|
||||||
#define CONFIG_MTD_BF533 1
|
|
||||||
#undef CONFIG_MTD_UCLINUX
|
|
||||||
|
|
||||||
Through the u-boot boot loader, use the jffs2.img in the corresponding
|
|
||||||
partition made in linux-2.6.x/drivers/mtd/maps/bf533_flash.c.
|
|
||||||
|
|
||||||
NOTE - Currently the Flash driver is available only for EZKIT. Watch out for a
|
|
||||||
STAMP driver soon.
|
|
||||||
|
|
||||||
|
|
||||||
6. Mounting the NFS File system
|
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
For mounting the NFS please do the following in the kernel config.
|
|
||||||
|
|
||||||
In Networking Support --> Networking options --> TCP/IP networking -->
|
|
||||||
IP: kernel level autoconfiguration
|
|
||||||
|
|
||||||
Enable BOOTP Support.
|
|
||||||
|
|
||||||
In Kernel hacking --> Compiled-in kernel boot parameter add the following
|
|
||||||
|
|
||||||
root=/dev/nfs rw ip=bootp
|
|
||||||
|
|
||||||
In File system --> Network File system, Enable
|
|
||||||
|
|
||||||
NFS file system support --> NFSv3 client support
|
|
||||||
Root File system on NFS
|
|
||||||
|
|
||||||
in uClibc menuconfig, do the following
|
|
||||||
In Networking Support
|
|
||||||
enable Remote Procedure Call (RPC) support
|
|
||||||
Full RPC Support
|
|
||||||
|
|
||||||
On the Host side, ensure that /etc/dhcpd.conf looks something like this
|
|
||||||
|
|
||||||
ddns-update-style ad-hoc;
|
|
||||||
allow bootp;
|
|
||||||
subnet 10.100.4.0 netmask 255.255.255.0 {
|
|
||||||
default-lease-time 122209600;
|
|
||||||
max-lease-time 31557600;
|
|
||||||
group {
|
|
||||||
host bf533 {
|
|
||||||
hardware ethernet 00:CF:52:49:C3:01;
|
|
||||||
fixed-address 10.100.4.50;
|
|
||||||
option root-path "/home/nfsmount";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ensure that /etc/exports looks something like this
|
|
||||||
/home/nfsmount *(rw,no_root_squash,no_all_squash)
|
|
||||||
|
|
||||||
run the following commands as root (may differ depending on your
|
|
||||||
distribution) :
|
|
||||||
- service nfs start
|
|
||||||
- service portmap start
|
|
||||||
- service dhcpd start
|
|
||||||
- /usr/sbin/exportfs
|
|
14
Documentation/blackfin/bfin-spi-notes.txt
Normal file
14
Documentation/blackfin/bfin-spi-notes.txt
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
SPI Chip Select behavior:
|
||||||
|
|
||||||
|
With the Blackfin on-chip SPI peripheral, there is some logic tied to the CPHA
|
||||||
|
bit whether the Slave Select Line is controlled by hardware (CPHA=0) or
|
||||||
|
controlled by software (CPHA=1). However, the Linux SPI bus driver assumes that
|
||||||
|
the Slave Select is always under software control and being asserted during
|
||||||
|
the entire SPI transfer. - And not just bits_per_word duration.
|
||||||
|
|
||||||
|
In most cases you can utilize SPI MODE_3 instead of MODE_0 to work-around this
|
||||||
|
behavior. If your SPI slave device in question requires SPI MODE_0 or MODE_2
|
||||||
|
timing, you can utilize the GPIO controlled SPI Slave Select option instead.
|
||||||
|
|
||||||
|
You can even use the same pin whose peripheral role is a SSEL,
|
||||||
|
but use it as a GPIO instead.
|
@@ -1,55 +0,0 @@
|
|||||||
/*
|
|
||||||
* File: Documentation/blackfin/cachefeatures.txt
|
|
||||||
* Based on:
|
|
||||||
* Author:
|
|
||||||
*
|
|
||||||
* Created:
|
|
||||||
* Description: This file contains the simple DMA Implementation for Blackfin
|
|
||||||
*
|
|
||||||
* Rev: $Id: cachefeatures.txt 2384 2006-11-01 04:12:43Z magicyang $
|
|
||||||
*
|
|
||||||
* Modified:
|
|
||||||
* Copyright 2004-2006 Analog Devices Inc.
|
|
||||||
*
|
|
||||||
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
- Instruction and Data cache initialization.
|
|
||||||
icache_init();
|
|
||||||
dcache_init();
|
|
||||||
|
|
||||||
- Instruction and Data cache Invalidation Routines, when flushing the
|
|
||||||
same is not required.
|
|
||||||
_icache_invalidate();
|
|
||||||
_dcache_invalidate();
|
|
||||||
|
|
||||||
Also, for invalidating the entire instruction and data cache, the below
|
|
||||||
routines are provided (another method for invalidation, refer page no 267 and 287 of
|
|
||||||
ADSP-BF533 Hardware Reference manual)
|
|
||||||
|
|
||||||
invalidate_entire_dcache();
|
|
||||||
invalidate_entire_icache();
|
|
||||||
|
|
||||||
-External Flushing of Instruction and data cache routines.
|
|
||||||
|
|
||||||
flush_instruction_cache();
|
|
||||||
flush_data_cache();
|
|
||||||
|
|
||||||
- Internal Flushing of Instruction and Data Cache.
|
|
||||||
|
|
||||||
icplb_flush();
|
|
||||||
dcplb_flush();
|
|
||||||
|
|
||||||
- Miscellaneous cache functions.
|
|
||||||
|
|
||||||
flush_cache_all();
|
|
||||||
flush_cache_mm();
|
|
||||||
invalidate_dcache_range();
|
|
||||||
flush_dcache_range();
|
|
||||||
flush_dcache_page();
|
|
||||||
flush_cache_range();
|
|
||||||
flush_cache_page();
|
|
||||||
invalidate_dcache_range();
|
|
||||||
flush_page_to_ram();
|
|
||||||
|
|
@@ -7,7 +7,7 @@ Notes Written on Jan 15, 2002:
|
|||||||
|
|
||||||
Last Updated May 2, 2002
|
Last Updated May 2, 2002
|
||||||
September 2003: Updated I/O Scheduler portions
|
September 2003: Updated I/O Scheduler portions
|
||||||
Nick Piggin <piggin@cyberone.com.au>
|
Nick Piggin <npiggin@kernel.dk>
|
||||||
|
|
||||||
Introduction:
|
Introduction:
|
||||||
|
|
||||||
|
@@ -412,6 +412,6 @@ have in your mail headers, when sending mail to the list server.
|
|||||||
You might also find some useful information on the linux-parport
|
You might also find some useful information on the linux-parport
|
||||||
web pages (although they are not always up to date) at
|
web pages (although they are not always up to date) at
|
||||||
|
|
||||||
http://www.torque.net/parport/
|
http://web.archive.org/web/*/http://www.torque.net/parport/
|
||||||
|
|
||||||
|
|
||||||
|
@@ -95,7 +95,7 @@ Using the pktcdvd sysfs interface
|
|||||||
|
|
||||||
Since Linux 2.6.20, the pktcdvd module has a sysfs interface
|
Since Linux 2.6.20, the pktcdvd module has a sysfs interface
|
||||||
and can be controlled by it. For example the "pktcdvd" tool uses
|
and can be controlled by it. For example the "pktcdvd" tool uses
|
||||||
this interface. (see http://people.freenet.de/BalaGi#pktcdvd )
|
this interface. (see http://tom.ist-im-web.de/download/pktcdvd )
|
||||||
|
|
||||||
"pktcdvd" works similar to "pktsetup", e.g.:
|
"pktcdvd" works similar to "pktsetup", e.g.:
|
||||||
|
|
||||||
|
@@ -691,7 +691,7 @@ There are ways to query or modify cpusets:
|
|||||||
cat, rmdir commands from the shell, or their equivalent from C.
|
cat, rmdir commands from the shell, or their equivalent from C.
|
||||||
- via the C library libcpuset.
|
- via the C library libcpuset.
|
||||||
- via the C library libcgroup.
|
- via the C library libcgroup.
|
||||||
(http://sourceforge.net/proects/libcg/)
|
(http://sourceforge.net/projects/libcg/)
|
||||||
- via the python application cset.
|
- via the python application cset.
|
||||||
(http://developer.novell.com/wiki/index.php/Cpuset)
|
(http://developer.novell.com/wiki/index.php/Cpuset)
|
||||||
|
|
||||||
|
258
Documentation/coccinelle.txt
Normal file
258
Documentation/coccinelle.txt
Normal file
@@ -0,0 +1,258 @@
|
|||||||
|
Copyright 2010 Nicolas Palix <npalix@diku.dk>
|
||||||
|
Copyright 2010 Julia Lawall <julia@diku.dk>
|
||||||
|
Copyright 2010 Gilles Muller <Gilles.Muller@lip6.fr>
|
||||||
|
|
||||||
|
|
||||||
|
Getting Coccinelle
|
||||||
|
~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
The semantic patches included in the kernel use the 'virtual rule'
|
||||||
|
feature which was introduced in Coccinelle version 0.1.11.
|
||||||
|
|
||||||
|
Coccinelle (>=0.2.0) is available through the package manager
|
||||||
|
of many distributions, e.g. :
|
||||||
|
|
||||||
|
- Debian (>=squeeze)
|
||||||
|
- Fedora (>=13)
|
||||||
|
- Ubuntu (>=10.04 Lucid Lynx)
|
||||||
|
- OpenSUSE
|
||||||
|
- Arch Linux
|
||||||
|
- NetBSD
|
||||||
|
- FreeBSD
|
||||||
|
|
||||||
|
|
||||||
|
You can get the latest version released from the Coccinelle homepage at
|
||||||
|
http://coccinelle.lip6.fr/
|
||||||
|
|
||||||
|
Once you have it, run the following command:
|
||||||
|
|
||||||
|
./configure
|
||||||
|
make
|
||||||
|
|
||||||
|
as a regular user, and install it with
|
||||||
|
|
||||||
|
sudo make install
|
||||||
|
|
||||||
|
|
||||||
|
Using Coccinelle on the Linux kernel
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
A Coccinelle-specific target is defined in the top level
|
||||||
|
Makefile. This target is named 'coccicheck' and calls the 'coccicheck'
|
||||||
|
front-end in the 'scripts' directory.
|
||||||
|
|
||||||
|
Four modes are defined: report, patch, context, and org. The mode to
|
||||||
|
use is specified by setting the MODE variable with 'MODE=<mode>'.
|
||||||
|
|
||||||
|
'report' generates a list in the following format:
|
||||||
|
file:line:column-column: message
|
||||||
|
|
||||||
|
'patch' proposes a fix, when possible.
|
||||||
|
|
||||||
|
'context' highlights lines of interest and their context in a
|
||||||
|
diff-like style.Lines of interest are indicated with '-'.
|
||||||
|
|
||||||
|
'org' generates a report in the Org mode format of Emacs.
|
||||||
|
|
||||||
|
Note that not all semantic patches implement all modes.
|
||||||
|
|
||||||
|
To make a report for every semantic patch, run the following command:
|
||||||
|
|
||||||
|
make coccicheck MODE=report
|
||||||
|
|
||||||
|
NB: The 'report' mode is the default one.
|
||||||
|
|
||||||
|
To produce patches, run:
|
||||||
|
|
||||||
|
make coccicheck MODE=patch
|
||||||
|
|
||||||
|
|
||||||
|
The coccicheck target applies every semantic patch available in the
|
||||||
|
subdirectories of 'scripts/coccinelle' to the entire Linux kernel.
|
||||||
|
|
||||||
|
For each semantic patch, a changelog message is proposed. It gives a
|
||||||
|
description of the problem being checked by the semantic patch, and
|
||||||
|
includes a reference to Coccinelle.
|
||||||
|
|
||||||
|
As any static code analyzer, Coccinelle produces false
|
||||||
|
positives. Thus, reports must be carefully checked, and patches
|
||||||
|
reviewed.
|
||||||
|
|
||||||
|
|
||||||
|
Using Coccinelle with a single semantic patch
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
The optional make variable COCCI can be used to check a single
|
||||||
|
semantic patch. In that case, the variable must be initialized with
|
||||||
|
the name of the semantic patch to apply.
|
||||||
|
|
||||||
|
For instance:
|
||||||
|
|
||||||
|
make coccicheck COCCI=<my_SP.cocci> MODE=patch
|
||||||
|
or
|
||||||
|
make coccicheck COCCI=<my_SP.cocci> MODE=report
|
||||||
|
|
||||||
|
|
||||||
|
Proposing new semantic patches
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
New semantic patches can be proposed and submitted by kernel
|
||||||
|
developers. For sake of clarity, they should be organized in the
|
||||||
|
subdirectories of 'scripts/coccinelle/'.
|
||||||
|
|
||||||
|
|
||||||
|
Detailed description of the 'report' mode
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
'report' generates a list in the following format:
|
||||||
|
file:line:column-column: message
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
Running
|
||||||
|
|
||||||
|
make coccicheck MODE=report COCCI=scripts/coccinelle/err_cast.cocci
|
||||||
|
|
||||||
|
will execute the following part of the SmPL script.
|
||||||
|
|
||||||
|
<smpl>
|
||||||
|
@r depends on !context && !patch && (org || report)@
|
||||||
|
expression x;
|
||||||
|
position p;
|
||||||
|
@@
|
||||||
|
|
||||||
|
ERR_PTR@p(PTR_ERR(x))
|
||||||
|
|
||||||
|
@script:python depends on report@
|
||||||
|
p << r.p;
|
||||||
|
x << r.x;
|
||||||
|
@@
|
||||||
|
|
||||||
|
msg="ERR_CAST can be used with %s" % (x)
|
||||||
|
coccilib.report.print_report(p[0], msg)
|
||||||
|
</smpl>
|
||||||
|
|
||||||
|
This SmPL excerpt generates entries on the standard output, as
|
||||||
|
illustrated below:
|
||||||
|
|
||||||
|
/home/user/linux/crypto/ctr.c:188:9-16: ERR_CAST can be used with alg
|
||||||
|
/home/user/linux/crypto/authenc.c:619:9-16: ERR_CAST can be used with auth
|
||||||
|
/home/user/linux/crypto/xts.c:227:9-16: ERR_CAST can be used with alg
|
||||||
|
|
||||||
|
|
||||||
|
Detailed description of the 'patch' mode
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
When the 'patch' mode is available, it proposes a fix for each problem
|
||||||
|
identified.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
Running
|
||||||
|
make coccicheck MODE=patch COCCI=scripts/coccinelle/err_cast.cocci
|
||||||
|
|
||||||
|
will execute the following part of the SmPL script.
|
||||||
|
|
||||||
|
<smpl>
|
||||||
|
@ depends on !context && patch && !org && !report @
|
||||||
|
expression x;
|
||||||
|
@@
|
||||||
|
|
||||||
|
- ERR_PTR(PTR_ERR(x))
|
||||||
|
+ ERR_CAST(x)
|
||||||
|
</smpl>
|
||||||
|
|
||||||
|
This SmPL excerpt generates patch hunks on the standard output, as
|
||||||
|
illustrated below:
|
||||||
|
|
||||||
|
diff -u -p a/crypto/ctr.c b/crypto/ctr.c
|
||||||
|
--- a/crypto/ctr.c 2010-05-26 10:49:38.000000000 +0200
|
||||||
|
+++ b/crypto/ctr.c 2010-06-03 23:44:49.000000000 +0200
|
||||||
|
@@ -185,7 +185,7 @@ static struct crypto_instance *crypto_ct
|
||||||
|
alg = crypto_attr_alg(tb[1], CRYPTO_ALG_TYPE_CIPHER,
|
||||||
|
CRYPTO_ALG_TYPE_MASK);
|
||||||
|
if (IS_ERR(alg))
|
||||||
|
- return ERR_PTR(PTR_ERR(alg));
|
||||||
|
+ return ERR_CAST(alg);
|
||||||
|
|
||||||
|
/* Block size must be >= 4 bytes. */
|
||||||
|
err = -EINVAL;
|
||||||
|
|
||||||
|
Detailed description of the 'context' mode
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
'context' highlights lines of interest and their context
|
||||||
|
in a diff-like style.
|
||||||
|
|
||||||
|
NOTE: The diff-like output generated is NOT an applicable patch. The
|
||||||
|
intent of the 'context' mode is to highlight the important lines
|
||||||
|
(annotated with minus, '-') and gives some surrounding context
|
||||||
|
lines around. This output can be used with the diff mode of
|
||||||
|
Emacs to review the code.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
Running
|
||||||
|
make coccicheck MODE=context COCCI=scripts/coccinelle/err_cast.cocci
|
||||||
|
|
||||||
|
will execute the following part of the SmPL script.
|
||||||
|
|
||||||
|
<smpl>
|
||||||
|
@ depends on context && !patch && !org && !report@
|
||||||
|
expression x;
|
||||||
|
@@
|
||||||
|
|
||||||
|
* ERR_PTR(PTR_ERR(x))
|
||||||
|
</smpl>
|
||||||
|
|
||||||
|
This SmPL excerpt generates diff hunks on the standard output, as
|
||||||
|
illustrated below:
|
||||||
|
|
||||||
|
diff -u -p /home/user/linux/crypto/ctr.c /tmp/nothing
|
||||||
|
--- /home/user/linux/crypto/ctr.c 2010-05-26 10:49:38.000000000 +0200
|
||||||
|
+++ /tmp/nothing
|
||||||
|
@@ -185,7 +185,6 @@ static struct crypto_instance *crypto_ct
|
||||||
|
alg = crypto_attr_alg(tb[1], CRYPTO_ALG_TYPE_CIPHER,
|
||||||
|
CRYPTO_ALG_TYPE_MASK);
|
||||||
|
if (IS_ERR(alg))
|
||||||
|
- return ERR_PTR(PTR_ERR(alg));
|
||||||
|
|
||||||
|
/* Block size must be >= 4 bytes. */
|
||||||
|
err = -EINVAL;
|
||||||
|
|
||||||
|
Detailed description of the 'org' mode
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
'org' generates a report in the Org mode format of Emacs.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
Running
|
||||||
|
make coccicheck MODE=org COCCI=scripts/coccinelle/err_cast.cocci
|
||||||
|
|
||||||
|
will execute the following part of the SmPL script.
|
||||||
|
|
||||||
|
<smpl>
|
||||||
|
@r depends on !context && !patch && (org || report)@
|
||||||
|
expression x;
|
||||||
|
position p;
|
||||||
|
@@
|
||||||
|
|
||||||
|
ERR_PTR@p(PTR_ERR(x))
|
||||||
|
|
||||||
|
@script:python depends on org@
|
||||||
|
p << r.p;
|
||||||
|
x << r.x;
|
||||||
|
@@
|
||||||
|
|
||||||
|
msg="ERR_CAST can be used with %s" % (x)
|
||||||
|
msg_safe=msg.replace("[","@(").replace("]",")")
|
||||||
|
coccilib.org.print_todo(p[0], msg_safe)
|
||||||
|
</smpl>
|
||||||
|
|
||||||
|
This SmPL excerpt generates Org entries on the standard output, as
|
||||||
|
illustrated below:
|
||||||
|
|
||||||
|
* TODO [[view:/home/user/linux/crypto/ctr.c::face=ovl-face1::linb=188::colb=9::cole=16][ERR_CAST can be used with alg]]
|
||||||
|
* TODO [[view:/home/user/linux/crypto/authenc.c::face=ovl-face1::linb=619::colb=9::cole=16][ERR_CAST can be used with auth]]
|
||||||
|
* TODO [[view:/home/user/linux/crypto/xts.c::face=ovl-face1::linb=227::colb=9::cole=16][ERR_CAST can be used with alg]]
|
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Maintainers:
|
Maintainers:
|
||||||
CPU Hotplug Core:
|
CPU Hotplug Core:
|
||||||
Rusty Russell <rusty@rustycorp.com.au>
|
Rusty Russell <rusty@rustcorp.com.au>
|
||||||
Srivatsa Vaddagiri <vatsa@in.ibm.com>
|
Srivatsa Vaddagiri <vatsa@in.ibm.com>
|
||||||
i386:
|
i386:
|
||||||
Zwane Mwaikambo <zwane@arm.linux.org.uk>
|
Zwane Mwaikambo <zwane@arm.linux.org.uk>
|
||||||
|
@@ -281,7 +281,7 @@ With sparse, the programmer can be warned about confusion between
|
|||||||
user-space and kernel-space addresses, mixture of big-endian and
|
user-space and kernel-space addresses, mixture of big-endian and
|
||||||
small-endian quantities, the passing of integer values where a set of bit
|
small-endian quantities, the passing of integer values where a set of bit
|
||||||
flags is expected, and so on. Sparse must be installed separately (it can
|
flags is expected, and so on. Sparse must be installed separately (it can
|
||||||
be found at http://www.kernel.org/pub/software/devel/sparse/ if your
|
be found at https://sparse.wiki.kernel.org/index.php/Main_Page if your
|
||||||
distributor does not package it); it can then be run on the code by adding
|
distributor does not package it); it can then be run on the code by adding
|
||||||
"C=1" to your make command.
|
"C=1" to your make command.
|
||||||
|
|
||||||
|
@@ -36,7 +36,7 @@ Example scripts
|
|||||||
===============
|
===============
|
||||||
LUKS (Linux Unified Key Setup) is now the preferred way to set up disk
|
LUKS (Linux Unified Key Setup) is now the preferred way to set up disk
|
||||||
encryption with dm-crypt using the 'cryptsetup' utility, see
|
encryption with dm-crypt using the 'cryptsetup' utility, see
|
||||||
http://luks.endorphin.org/
|
http://clemens.endorphin.org/cryptography
|
||||||
|
|
||||||
[[
|
[[
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
@@ -445,6 +445,7 @@ Your cooperation is appreciated.
|
|||||||
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
|
234 = /dev/btrfs-control Btrfs control device
|
||||||
235 = /dev/autofs Autofs control device
|
235 = /dev/autofs Autofs control device
|
||||||
|
236 = /dev/mapper/control Device-Mapper 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
|
||||||
|
|
||||||
@@ -1517,7 +1518,7 @@ Your cooperation is appreciated.
|
|||||||
...
|
...
|
||||||
|
|
||||||
The driver and documentation may be obtained from
|
The driver and documentation may be obtained from
|
||||||
http://www.proximity.com.au/~brian/winradio/
|
http://www.winradio.com/
|
||||||
|
|
||||||
82 block I2O hard disk
|
82 block I2O hard disk
|
||||||
0 = /dev/i2o/hdag 33rd I2O hard disk, whole disk
|
0 = /dev/i2o/hdag 33rd I2O hard disk, whole disk
|
||||||
@@ -1723,7 +1724,7 @@ Your cooperation is appreciated.
|
|||||||
1 = /dev/comedi1 Second comedi device
|
1 = /dev/comedi1 Second comedi device
|
||||||
...
|
...
|
||||||
|
|
||||||
See http://stm.lbl.gov/comedi or http://www.llp.fu-berlin.de/.
|
See http://stm.lbl.gov/comedi.
|
||||||
|
|
||||||
98 block User-mode virtual block device
|
98 block User-mode virtual block device
|
||||||
0 = /dev/ubda First user-mode block device
|
0 = /dev/ubda First user-mode block device
|
||||||
@@ -1984,7 +1985,7 @@ Your cooperation is appreciated.
|
|||||||
256 NetWare volumes can be supported in a single
|
256 NetWare volumes can be supported in a single
|
||||||
machine.
|
machine.
|
||||||
|
|
||||||
http://www.kernel.org/pub/linux/kernel/people/jmerkey/nwfs
|
http://cgfa.telepac.pt/ftp2/kernel.org/linux/kernel/people/jmerkey/nwfs/
|
||||||
|
|
||||||
0 = /dev/nwfs/v0 First NetWare (NWFS) Logical Volume
|
0 = /dev/nwfs/v0 First NetWare (NWFS) Logical Volume
|
||||||
1 = /dev/nwfs/v1 Second NetWare (NWFS) Logical Volume
|
1 = /dev/nwfs/v1 Second NetWare (NWFS) Logical Volume
|
||||||
@@ -2591,7 +2592,8 @@ Your cooperation is appreciated.
|
|||||||
1 = /dev/intermezzo1 Second cache manager
|
1 = /dev/intermezzo1 Second cache manager
|
||||||
...
|
...
|
||||||
|
|
||||||
See http://www.inter-mezzo.org/ for more information.
|
See http://web.archive.org/web/20080115195241/
|
||||||
|
http://inter-mezzo.org/index.html
|
||||||
|
|
||||||
186 char Object-based storage control device
|
186 char Object-based storage control device
|
||||||
0 = /dev/obd0 First obd control device
|
0 = /dev/obd0 First obd control device
|
||||||
|
@@ -76,7 +76,7 @@ Some very frequently asked questions about linuxtv-dvb
|
|||||||
the TuxBox CVS many interesting DVB applications and the dBox2
|
the TuxBox CVS many interesting DVB applications and the dBox2
|
||||||
DVB source
|
DVB source
|
||||||
|
|
||||||
http://sourceforge.net/projects/dvbsak/
|
http://www.linuxtv.org/downloads/
|
||||||
DVB Swiss Army Knife library and utilities
|
DVB Swiss Army Knife library and utilities
|
||||||
|
|
||||||
http://www.nenie.org/misc/mpsys/
|
http://www.nenie.org/misc/mpsys/
|
||||||
|
@@ -26,7 +26,7 @@ use IO::Handle;
|
|||||||
"dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004",
|
"dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004",
|
||||||
"or51211", "or51132_qam", "or51132_vsb", "bluebird",
|
"or51211", "or51132_qam", "or51132_vsb", "bluebird",
|
||||||
"opera1", "cx231xx", "cx18", "cx23885", "pvrusb2", "mpc718",
|
"opera1", "cx231xx", "cx18", "cx23885", "pvrusb2", "mpc718",
|
||||||
"af9015", "ngene");
|
"af9015", "ngene", "az6027");
|
||||||
|
|
||||||
# Check args
|
# Check args
|
||||||
syntax() if (scalar(@ARGV) != 1);
|
syntax() if (scalar(@ARGV) != 1);
|
||||||
@@ -518,11 +518,11 @@ sub bluebird {
|
|||||||
sub af9015 {
|
sub af9015 {
|
||||||
my $sourcefile = "download.ashx?file=57";
|
my $sourcefile = "download.ashx?file=57";
|
||||||
my $url = "http://www.ite.com.tw/EN/Services/$sourcefile";
|
my $url = "http://www.ite.com.tw/EN/Services/$sourcefile";
|
||||||
my $hash = "ff5b096ed47c080870eacdab2de33ad6";
|
my $hash = "e3f08935158038d385ad382442f4bb2d";
|
||||||
my $outfile = "dvb-usb-af9015.fw";
|
my $outfile = "dvb-usb-af9015.fw";
|
||||||
my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
|
my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
|
||||||
my $fwoffset = 0x22708;
|
my $fwoffset = 0x25690;
|
||||||
my $fwlength = 18225;
|
my $fwlength = 18725;
|
||||||
my ($chunklength, $buf, $rcount);
|
my ($chunklength, $buf, $rcount);
|
||||||
|
|
||||||
checkstandard();
|
checkstandard();
|
||||||
@@ -567,6 +567,23 @@ sub ngene {
|
|||||||
"$file1, $file2";
|
"$file1, $file2";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub az6027{
|
||||||
|
my $file = "AZ6027_Linux_Driver.tar.gz";
|
||||||
|
my $url = "http://linux.terratec.de/files/$file";
|
||||||
|
my $firmware = "dvb-usb-az6027-03.fw";
|
||||||
|
|
||||||
|
wgetfile($file, $url);
|
||||||
|
|
||||||
|
#untar
|
||||||
|
if( system("tar xzvf $file $firmware")){
|
||||||
|
die "failed to untar firmware";
|
||||||
|
}
|
||||||
|
if( system("rm $file")){
|
||||||
|
die ("unable to remove unnecessary files");
|
||||||
|
}
|
||||||
|
|
||||||
|
$firmware;
|
||||||
|
}
|
||||||
# ---------------------------------------------------------------
|
# ---------------------------------------------------------------
|
||||||
# Utilities
|
# Utilities
|
||||||
|
|
||||||
|
@@ -330,7 +330,7 @@ and on its mirrors.
|
|||||||
|
|
||||||
The latest version of fbset can be found at
|
The latest version of fbset can be found at
|
||||||
|
|
||||||
http://home.tvd.be/cr26864/Linux/fbdev/
|
http://www.linux-fbdev.org/
|
||||||
|
|
||||||
|
|
||||||
10. Credits
|
10. Credits
|
||||||
|
@@ -93,7 +93,7 @@ Why: Broken design for runtime control over driver power states, confusing
|
|||||||
inputs. This framework was never widely used, and most attempts to
|
inputs. This framework was never widely used, and most attempts to
|
||||||
use it were broken. Drivers should instead be exposing domain-specific
|
use it were broken. Drivers should instead be exposing domain-specific
|
||||||
interfaces either to kernel or to userspace.
|
interfaces either to kernel or to userspace.
|
||||||
Who: Pavel Machek <pavel@suse.cz>
|
Who: Pavel Machek <pavel@ucw.cz>
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
@@ -116,29 +116,6 @@ Who: Mauro Carvalho Chehab <mchehab@infradead.org>
|
|||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl])
|
|
||||||
When: 2.6.35/2.6.36
|
|
||||||
Files: drivers/pcmcia/: pcmcia_ioctl.c
|
|
||||||
Why: With the 16-bit PCMCIA subsystem now behaving (almost) like a
|
|
||||||
normal hotpluggable bus, and with it using the default kernel
|
|
||||||
infrastructure (hotplug, driver core, sysfs) keeping the PCMCIA
|
|
||||||
control ioctl needed by cardmgr and cardctl from pcmcia-cs is
|
|
||||||
unnecessary and potentially harmful (it does not provide for
|
|
||||||
proper locking), and makes further cleanups and integration of the
|
|
||||||
PCMCIA subsystem into the Linux kernel device driver model more
|
|
||||||
difficult. The features provided by cardmgr and cardctl are either
|
|
||||||
handled by the kernel itself now or are available in the new
|
|
||||||
pcmciautils package available at
|
|
||||||
http://kernel.org/pub/linux/utils/kernel/pcmcia/
|
|
||||||
|
|
||||||
For all architectures except ARM, the associated config symbol
|
|
||||||
has been removed from kernel 2.6.34; for ARM, it will be likely
|
|
||||||
be removed from kernel 2.6.35. The actual code will then likely
|
|
||||||
be removed from kernel 2.6.36.
|
|
||||||
Who: Dominik Brodowski <linux@dominikbrodowski.net>
|
|
||||||
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
What: sys_sysctl
|
What: sys_sysctl
|
||||||
When: September 2010
|
When: September 2010
|
||||||
Option: CONFIG_SYSCTL_SYSCALL
|
Option: CONFIG_SYSCTL_SYSCALL
|
||||||
@@ -174,6 +151,31 @@ Who: Eric Biederman <ebiederm@xmission.com>
|
|||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
|
What: /proc/<pid>/oom_adj
|
||||||
|
When: August 2012
|
||||||
|
Why: /proc/<pid>/oom_adj allows userspace to influence the oom killer's
|
||||||
|
badness heuristic used to determine which task to kill when the kernel
|
||||||
|
is out of memory.
|
||||||
|
|
||||||
|
The badness heuristic has since been rewritten since the introduction of
|
||||||
|
this tunable such that its meaning is deprecated. The value was
|
||||||
|
implemented as a bitshift on a score generated by the badness()
|
||||||
|
function that did not have any precise units of measure. With the
|
||||||
|
rewrite, the score is given as a proportion of available memory to the
|
||||||
|
task allocating pages, so using a bitshift which grows the score
|
||||||
|
exponentially is, thus, impossible to tune with fine granularity.
|
||||||
|
|
||||||
|
A much more powerful interface, /proc/<pid>/oom_score_adj, was
|
||||||
|
introduced with the oom killer rewrite that allows users to increase or
|
||||||
|
decrease the badness() score linearly. This interface will replace
|
||||||
|
/proc/<pid>/oom_adj.
|
||||||
|
|
||||||
|
A warning will be emitted to the kernel log if an application uses this
|
||||||
|
deprecated interface. After it is printed once, future warnings will be
|
||||||
|
suppressed until the kernel is rebooted.
|
||||||
|
|
||||||
|
---------------------------
|
||||||
|
|
||||||
What: remove EXPORT_SYMBOL(kernel_thread)
|
What: remove EXPORT_SYMBOL(kernel_thread)
|
||||||
When: August 2006
|
When: August 2006
|
||||||
Files: arch/*/kernel/*_ksyms.c
|
Files: arch/*/kernel/*_ksyms.c
|
||||||
@@ -303,15 +305,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
|
||||||
@@ -367,24 +360,6 @@ When: 2.6.33
|
|||||||
Why: Should be implemented in userspace, policy daemon.
|
Why: Should be implemented in userspace, policy daemon.
|
||||||
Who: Johannes Berg <johannes@sipsolutions.net>
|
Who: Johannes Berg <johannes@sipsolutions.net>
|
||||||
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
What: CONFIG_INOTIFY
|
|
||||||
When: 2.6.33
|
|
||||||
Why: last user (audit) will be converted to the newer more generic
|
|
||||||
and more easily maintained fsnotify subsystem
|
|
||||||
Who: Eric Paris <eparis@redhat.com>
|
|
||||||
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
What: lock_policy_rwsem_* and unlock_policy_rwsem_* will not be
|
|
||||||
exported interface anymore.
|
|
||||||
When: 2.6.33
|
|
||||||
Why: cpu_policy_rwsem has a new cleaner definition making it local to
|
|
||||||
cpufreq core and contained inside cpufreq.c. Other dependent
|
|
||||||
drivers should not use it in order to safely avoid lockdep issues.
|
|
||||||
Who: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
|
|
||||||
|
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
What: sound-slot/service-* module aliases and related clutters in
|
What: sound-slot/service-* module aliases and related clutters in
|
||||||
@@ -459,57 +434,6 @@ Who: Corentin Chary <corentin.chary@gmail.com>
|
|||||||
|
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
What: usbvideo quickcam_messenger driver
|
|
||||||
When: 2.6.35
|
|
||||||
Files: drivers/media/video/usbvideo/quickcam_messenger.[ch]
|
|
||||||
Why: obsolete v4l1 driver replaced by gspca_stv06xx
|
|
||||||
Who: Hans de Goede <hdegoede@redhat.com>
|
|
||||||
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
What: ov511 v4l1 driver
|
|
||||||
When: 2.6.35
|
|
||||||
Files: drivers/media/video/ov511.[ch]
|
|
||||||
Why: obsolete v4l1 driver replaced by gspca_ov519
|
|
||||||
Who: Hans de Goede <hdegoede@redhat.com>
|
|
||||||
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
What: w9968cf v4l1 driver
|
|
||||||
When: 2.6.35
|
|
||||||
Files: drivers/media/video/w9968cf*.[ch]
|
|
||||||
Why: obsolete v4l1 driver replaced by gspca_ov519
|
|
||||||
Who: Hans de Goede <hdegoede@redhat.com>
|
|
||||||
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
What: ovcamchip sensor framework
|
|
||||||
When: 2.6.35
|
|
||||||
Files: drivers/media/video/ovcamchip/*
|
|
||||||
Why: Only used by obsoleted v4l1 drivers
|
|
||||||
Who: Hans de Goede <hdegoede@redhat.com>
|
|
||||||
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
What: stv680 v4l1 driver
|
|
||||||
When: 2.6.35
|
|
||||||
Files: drivers/media/video/stv680.[ch]
|
|
||||||
Why: obsolete v4l1 driver replaced by gspca_stv0680
|
|
||||||
Who: Hans de Goede <hdegoede@redhat.com>
|
|
||||||
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
What: zc0301 v4l driver
|
|
||||||
When: 2.6.35
|
|
||||||
Files: drivers/media/video/zc0301/*
|
|
||||||
Why: Duplicate functionality with the gspca_zc3xx driver, zc0301 only
|
|
||||||
supports 2 USB-ID's (because it only supports a limited set of
|
|
||||||
sensors) wich are also supported by the gspca_zc3xx driver
|
|
||||||
(which supports 53 USB-ID's in total)
|
|
||||||
Who: Hans de Goede <hdegoede@redhat.com>
|
|
||||||
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
What: sysfs-class-rfkill state file
|
What: sysfs-class-rfkill state file
|
||||||
When: Feb 2014
|
When: Feb 2014
|
||||||
Files: net/rfkill/core.c
|
Files: net/rfkill/core.c
|
||||||
@@ -538,37 +462,6 @@ Who: Jan Kiszka <jan.kiszka@web.de>
|
|||||||
|
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
What: KVM memory aliases support
|
|
||||||
When: July 2010
|
|
||||||
Why: Memory aliasing support is used for speeding up guest vga access
|
|
||||||
through the vga windows.
|
|
||||||
|
|
||||||
Modern userspace no longer uses this feature, so it's just bitrotted
|
|
||||||
code and can be removed with no impact.
|
|
||||||
Who: Avi Kivity <avi@redhat.com>
|
|
||||||
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
What: xtime, wall_to_monotonic
|
|
||||||
When: 2.6.36+
|
|
||||||
Files: kernel/time/timekeeping.c include/linux/time.h
|
|
||||||
Why: Cleaning up timekeeping internal values. Please use
|
|
||||||
existing timekeeping accessor functions to access
|
|
||||||
the equivalent functionality.
|
|
||||||
Who: John Stultz <johnstul@us.ibm.com>
|
|
||||||
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
What: KVM kernel-allocated memory slots
|
|
||||||
When: July 2010
|
|
||||||
Why: Since 2.6.25, kvm supports user-allocated memory slots, which are
|
|
||||||
much more flexible than kernel-allocated slots. All current userspace
|
|
||||||
supports the newer interface and this code can be removed with no
|
|
||||||
impact.
|
|
||||||
Who: Avi Kivity <avi@redhat.com>
|
|
||||||
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
What: KVM paravirt mmu host support
|
What: KVM paravirt mmu host support
|
||||||
When: January 2011
|
When: January 2011
|
||||||
Why: The paravirt mmu host support is slower than non-paravirt mmu, both
|
Why: The paravirt mmu host support is slower than non-paravirt mmu, both
|
||||||
@@ -654,3 +547,20 @@ Why: superseded by acpi_sleep=nonvs
|
|||||||
Who: Rafael J. Wysocki <rjw@sisk.pl>
|
Who: Rafael J. Wysocki <rjw@sisk.pl>
|
||||||
|
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
|
What: PCI DMA unmap state API
|
||||||
|
When: August 2012
|
||||||
|
Why: PCI DMA unmap state API (include/linux/pci-dma.h) was replaced
|
||||||
|
with DMA unmap state API (DMA unmap state API can be used for
|
||||||
|
any bus).
|
||||||
|
Who: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
||||||
|
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
What: DMA_xxBIT_MASK macros
|
||||||
|
When: Jun 2011
|
||||||
|
Why: DMA_xxBIT_MASK macros were replaced with DMA_BIT_MASK() macros.
|
||||||
|
Who: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
||||||
|
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
@@ -128,7 +128,7 @@ OPTIONS
|
|||||||
RESOURCES
|
RESOURCES
|
||||||
=========
|
=========
|
||||||
|
|
||||||
Our current recommendation is to use Inferno (http://www.vitanuova.com/inferno)
|
Our current recommendation is to use Inferno (http://www.vitanuova.com/nferno/index.html)
|
||||||
as the 9p server. You can start a 9p server under Inferno by issuing the
|
as the 9p server. You can start a 9p server under Inferno by issuing the
|
||||||
following command:
|
following command:
|
||||||
; styxlisten -A tcp!*!564 export '#U*'
|
; styxlisten -A tcp!*!564 export '#U*'
|
||||||
|
@@ -92,8 +92,8 @@ prototypes:
|
|||||||
void (*destroy_inode)(struct inode *);
|
void (*destroy_inode)(struct inode *);
|
||||||
void (*dirty_inode) (struct inode *);
|
void (*dirty_inode) (struct inode *);
|
||||||
int (*write_inode) (struct inode *, int);
|
int (*write_inode) (struct inode *, int);
|
||||||
void (*drop_inode) (struct inode *);
|
int (*drop_inode) (struct inode *);
|
||||||
void (*delete_inode) (struct inode *);
|
void (*evict_inode) (struct inode *);
|
||||||
void (*put_super) (struct super_block *);
|
void (*put_super) (struct super_block *);
|
||||||
void (*write_super) (struct super_block *);
|
void (*write_super) (struct super_block *);
|
||||||
int (*sync_fs)(struct super_block *sb, int wait);
|
int (*sync_fs)(struct super_block *sb, int wait);
|
||||||
@@ -101,14 +101,13 @@ prototypes:
|
|||||||
int (*unfreeze_fs) (struct super_block *);
|
int (*unfreeze_fs) (struct super_block *);
|
||||||
int (*statfs) (struct dentry *, struct kstatfs *);
|
int (*statfs) (struct dentry *, struct kstatfs *);
|
||||||
int (*remount_fs) (struct super_block *, int *, char *);
|
int (*remount_fs) (struct super_block *, int *, char *);
|
||||||
void (*clear_inode) (struct inode *);
|
|
||||||
void (*umount_begin) (struct super_block *);
|
void (*umount_begin) (struct super_block *);
|
||||||
int (*show_options)(struct seq_file *, struct vfsmount *);
|
int (*show_options)(struct seq_file *, struct vfsmount *);
|
||||||
ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t);
|
ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t);
|
||||||
ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);
|
ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);
|
||||||
|
|
||||||
locking rules:
|
locking rules:
|
||||||
All may block.
|
All may block [not true, see below]
|
||||||
None have BKL
|
None have BKL
|
||||||
s_umount
|
s_umount
|
||||||
alloc_inode:
|
alloc_inode:
|
||||||
@@ -116,22 +115,25 @@ destroy_inode:
|
|||||||
dirty_inode: (must not sleep)
|
dirty_inode: (must not sleep)
|
||||||
write_inode:
|
write_inode:
|
||||||
drop_inode: !!!inode_lock!!!
|
drop_inode: !!!inode_lock!!!
|
||||||
delete_inode:
|
evict_inode:
|
||||||
put_super: write
|
put_super: write
|
||||||
write_super: read
|
write_super: read
|
||||||
sync_fs: read
|
sync_fs: read
|
||||||
freeze_fs: read
|
freeze_fs: read
|
||||||
unfreeze_fs: read
|
unfreeze_fs: read
|
||||||
statfs: no
|
statfs: maybe(read) (see below)
|
||||||
remount_fs: maybe (see below)
|
remount_fs: write
|
||||||
clear_inode:
|
|
||||||
umount_begin: no
|
umount_begin: no
|
||||||
show_options: no (namespace_sem)
|
show_options: no (namespace_sem)
|
||||||
quota_read: no (see below)
|
quota_read: no (see below)
|
||||||
quota_write: no (see below)
|
quota_write: no (see below)
|
||||||
|
|
||||||
->remount_fs() will have the s_umount exclusive lock if it's already mounted.
|
->statfs() has s_umount (shared) when called by ustat(2) (native or
|
||||||
When called from get_sb_single, it does NOT have the s_umount lock.
|
compat), but that's an accident of bad API; s_umount is used to pin
|
||||||
|
the superblock down when we only have dev_t given us by userland to
|
||||||
|
identify the superblock. Everything else (statfs(), fstatfs(), etc.)
|
||||||
|
doesn't hold it when calling ->statfs() - superblock is pinned down
|
||||||
|
by resolving the pathname passed to syscall.
|
||||||
->quota_read() and ->quota_write() functions are both guaranteed to
|
->quota_read() and ->quota_write() functions are both guaranteed to
|
||||||
be the only ones operating on the quota file by the quota code (via
|
be the only ones operating on the quota file by the quota code (via
|
||||||
dqio_sem) (unless an admin really wants to screw up something and
|
dqio_sem) (unless an admin really wants to screw up something and
|
||||||
|
@@ -216,4 +216,4 @@ due to an incompatibility with the Amiga floppy controller.
|
|||||||
|
|
||||||
If you are interested in an Amiga Emulator for Linux, look at
|
If you are interested in an Amiga Emulator for Linux, look at
|
||||||
|
|
||||||
http://www.freiburg.linux.de/~uae/
|
http://web.archive.org/web/*/http://www.freiburg.linux.de/~uae/
|
||||||
|
@@ -31,7 +31,7 @@ Current maintainer: Sergey S. Kostyliov <rathamahata@php4.ru>
|
|||||||
|
|
||||||
WHAT IS THIS DRIVER?
|
WHAT IS THIS DRIVER?
|
||||||
==================
|
==================
|
||||||
This module implements the native filesystem of BeOS <http://www.be.com/>
|
This module implements the native filesystem of BeOS http://www.beincorporated.com/
|
||||||
for the linux 2.4.1 and later kernels. Currently it is a read-only
|
for the linux 2.4.1 and later kernels. Currently it is a read-only
|
||||||
implementation.
|
implementation.
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ step 2. Configuration & make kernel
|
|||||||
|
|
||||||
The linux kernel has many compile-time options. Most of them are beyond the
|
The linux kernel has many compile-time options. Most of them are beyond the
|
||||||
scope of this document. I suggest the Kernel-HOWTO document as a good general
|
scope of this document. I suggest the Kernel-HOWTO document as a good general
|
||||||
reference on this topic. <http://www.linux.com/howto/Kernel-HOWTO.html>
|
reference on this topic. http://www.linuxdocs.org/HOWTOs/Kernel-HOWTO-4.html
|
||||||
|
|
||||||
However, to use the BeFS module, you must enable it at configure time.
|
However, to use the BeFS module, you must enable it at configure time.
|
||||||
|
|
||||||
|
@@ -343,8 +343,8 @@ This will look something like:
|
|||||||
[root@andromeda ~]# head /proc/fs/fscache/objects
|
[root@andromeda ~]# head /proc/fs/fscache/objects
|
||||||
OBJECT PARENT STAT CHLDN OPS OOP IPR EX READS EM EV F S | NETFS_COOKIE_DEF TY FL NETFS_DATA OBJECT_KEY, AUX_DATA
|
OBJECT PARENT STAT CHLDN OPS OOP IPR EX READS EM EV F S | NETFS_COOKIE_DEF TY FL NETFS_DATA OBJECT_KEY, AUX_DATA
|
||||||
======== ======== ==== ===== === === === == ===== == == = = | ================ == == ================ ================
|
======== ======== ==== ===== === === === == ===== == == = = | ================ == == ================ ================
|
||||||
17e4b 2 ACTV 0 0 0 0 0 0 7b 4 0 8 | NFS.fh DT 0 ffff88001dd82820 010006017edcf8bbc93b43298fdfbe71e50b57b13a172c0117f38472, e567634700000000000000000000000063f2404a000000000000000000000000c9030000000000000000000063f2404a
|
17e4b 2 ACTV 0 0 0 0 0 0 7b 4 0 0 | NFS.fh DT 0 ffff88001dd82820 010006017edcf8bbc93b43298fdfbe71e50b57b13a172c0117f38472, e567634700000000000000000000000063f2404a000000000000000000000000c9030000000000000000000063f2404a
|
||||||
1693a 2 ACTV 0 0 0 0 0 0 7b 4 0 8 | NFS.fh DT 0 ffff88002db23380 010006017edcf8bbc93b43298fdfbe71e50b57b1e0162c01a2df0ea6, 420ebc4a000000000000000000000000420ebc4a0000000000000000000000000e1801000000000000000000420ebc4a
|
1693a 2 ACTV 0 0 0 0 0 0 7b 4 0 0 | NFS.fh DT 0 ffff88002db23380 010006017edcf8bbc93b43298fdfbe71e50b57b1e0162c01a2df0ea6, 420ebc4a000000000000000000000000420ebc4a0000000000000000000000000e1801000000000000000000420ebc4a
|
||||||
|
|
||||||
where the first set of columns before the '|' describe the object:
|
where the first set of columns before the '|' describe the object:
|
||||||
|
|
||||||
@@ -362,7 +362,7 @@ where the first set of columns before the '|' describe the object:
|
|||||||
EM Object's event mask
|
EM Object's event mask
|
||||||
EV Events raised on this object
|
EV Events raised on this object
|
||||||
F Object flags
|
F Object flags
|
||||||
S Object slow-work work item flags
|
S Object work item busy state mask (1:pending 2:running)
|
||||||
|
|
||||||
and the second set of columns describe the object's cookie, if present:
|
and the second set of columns describe the object's cookie, if present:
|
||||||
|
|
||||||
@@ -395,8 +395,8 @@ and the following paired letters:
|
|||||||
w Show objects that don't have pending writes
|
w Show objects that don't have pending writes
|
||||||
R Show objects that have outstanding reads
|
R Show objects that have outstanding reads
|
||||||
r Show objects that don't have outstanding reads
|
r Show objects that don't have outstanding reads
|
||||||
S Show objects that have slow work queued
|
S Show objects that have work queued
|
||||||
s Show objects that don't have slow work queued
|
s Show objects that don't have work queued
|
||||||
|
|
||||||
If neither side of a letter pair is given, then both are implied. For example:
|
If neither side of a letter pair is given, then both are implied. For example:
|
||||||
|
|
||||||
|
@@ -41,7 +41,7 @@ Mount options unique to the isofs filesystem.
|
|||||||
sbsector=xxx Session begins from sector xxx
|
sbsector=xxx Session begins from sector xxx
|
||||||
|
|
||||||
Recommended documents about ISO 9660 standard are located at:
|
Recommended documents about ISO 9660 standard are located at:
|
||||||
http://www.y-adagio.com/public/standards/iso_cdromr/tocont.htm
|
http://www.y-adagio.com/
|
||||||
ftp://ftp.ecma.ch/ecma-st/Ecma-119.pdf
|
ftp://ftp.ecma.ch/ecma-st/Ecma-119.pdf
|
||||||
Quoting from the PDF "This 2nd Edition of Standard ECMA-119 is technically
|
Quoting from the PDF "This 2nd Edition of Standard ECMA-119 is technically
|
||||||
identical with ISO 9660.", so it is a valid and gratis substitute of the
|
identical with ISO 9660.", so it is a valid and gratis substitute of the
|
||||||
|
@@ -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.
|
||||||
|
|
||||||
|
@@ -49,7 +49,10 @@ Mount options
|
|||||||
NILFS2 supports the following mount options:
|
NILFS2 supports the following mount options:
|
||||||
(*) == default
|
(*) == default
|
||||||
|
|
||||||
nobarrier Disables barriers.
|
barrier(*) This enables/disables the use of write barriers. This
|
||||||
|
nobarrier requires an IO stack which can support barriers, and
|
||||||
|
if nilfs gets an error on a barrier write, it will
|
||||||
|
disable again with a warning.
|
||||||
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.
|
||||||
@@ -74,9 +77,10 @@ norecovery Disable recovery of the filesystem on mount.
|
|||||||
This disables every write access on the device for
|
This disables every write access on the device for
|
||||||
read-only mounts or snapshots. This option will fail
|
read-only mounts or snapshots. This option will fail
|
||||||
for r/w mounts on an unclean volume.
|
for r/w mounts on an unclean volume.
|
||||||
discard Issue discard/TRIM commands to the underlying block
|
discard This enables/disables the use of discard/TRIM commands.
|
||||||
device when blocks are freed. This is useful for SSD
|
nodiscard(*) The discard/TRIM commands are sent to the underlying
|
||||||
devices and sparse/thinly-provisioned LUNs.
|
block device when blocks are freed. This is useful
|
||||||
|
for SSD devices and sparse/thinly-provisioned LUNs.
|
||||||
|
|
||||||
NILFS2 usage
|
NILFS2 usage
|
||||||
============
|
============
|
||||||
|
@@ -273,3 +273,48 @@ it's safe to remove it. If you don't need it, remove it.
|
|||||||
deliberate; as soon as struct block_device * is propagated in a reasonable
|
deliberate; as soon as struct block_device * is propagated in a reasonable
|
||||||
way by that code fixing will become trivial; until then nothing can be
|
way by that code fixing will become trivial; until then nothing can be
|
||||||
done.
|
done.
|
||||||
|
|
||||||
|
[mandatory]
|
||||||
|
|
||||||
|
block truncatation on error exit from ->write_begin, and ->direct_IO
|
||||||
|
moved from generic methods (block_write_begin, cont_write_begin,
|
||||||
|
nobh_write_begin, blockdev_direct_IO*) to callers. Take a look at
|
||||||
|
ext2_write_failed and callers for an example.
|
||||||
|
|
||||||
|
[mandatory]
|
||||||
|
|
||||||
|
->truncate is going away. The whole truncate sequence needs to be
|
||||||
|
implemented in ->setattr, which is now mandatory for filesystems
|
||||||
|
implementing on-disk size changes. Start with a copy of the old inode_setattr
|
||||||
|
and vmtruncate, and the reorder the vmtruncate + foofs_vmtruncate sequence to
|
||||||
|
be in order of zeroing blocks using block_truncate_page or similar helpers,
|
||||||
|
size update and on finally on-disk truncation which should not fail.
|
||||||
|
inode_change_ok now includes the size checks for ATTR_SIZE and must be called
|
||||||
|
in the beginning of ->setattr unconditionally.
|
||||||
|
|
||||||
|
[mandatory]
|
||||||
|
|
||||||
|
->clear_inode() and ->delete_inode() are gone; ->evict_inode() should
|
||||||
|
be used instead. It gets called whenever the inode is evicted, whether it has
|
||||||
|
remaining links or not. Caller does *not* evict the pagecache or inode-associated
|
||||||
|
metadata buffers; getting rid of those is responsibility of method, as it had
|
||||||
|
been for ->delete_inode().
|
||||||
|
->drop_inode() returns int now; it's called on final iput() with inode_lock
|
||||||
|
held and it returns true if filesystems wants the inode to be dropped. As before,
|
||||||
|
generic_drop_inode() is still the default and it's been updated appropriately.
|
||||||
|
generic_delete_inode() is also alive and it consists simply of return 1. Note that
|
||||||
|
all actual eviction work is done by caller after ->drop_inode() returns.
|
||||||
|
clear_inode() is gone; use end_writeback() instead. As before, it must
|
||||||
|
be called exactly once on each call of ->evict_inode() (as it used to be for
|
||||||
|
each call of ->delete_inode()). Unlike before, if you are using inode-associated
|
||||||
|
metadata buffers (i.e. mark_buffer_dirty_inode()), it's your responsibility to
|
||||||
|
call invalidate_inode_buffers() before end_writeback().
|
||||||
|
No async writeback (and thus no calls of ->write_inode()) will happen
|
||||||
|
after end_writeback() returns, so actions that should not overlap with ->write_inode()
|
||||||
|
(e.g. freeing on-disk inode if i_nlink is 0) ought to be done after that call.
|
||||||
|
|
||||||
|
NOTE: checking i_nlink in the beginning of ->write_inode() and bailing out
|
||||||
|
if it's zero is not *and* *never* *had* *been* enough. Final unlink() and iput()
|
||||||
|
may happen while the inode is in the middle of ->write_inode(); e.g. if you blindly
|
||||||
|
free the on-disk inode, you may end up doing that while ->write_inode() is writing
|
||||||
|
to it.
|
||||||
|
@@ -33,7 +33,8 @@ Table of Contents
|
|||||||
2 Modifying System Parameters
|
2 Modifying System Parameters
|
||||||
|
|
||||||
3 Per-Process Parameters
|
3 Per-Process Parameters
|
||||||
3.1 /proc/<pid>/oom_adj - Adjust the oom-killer score
|
3.1 /proc/<pid>/oom_adj & /proc/<pid>/oom_score_adj - Adjust the oom-killer
|
||||||
|
score
|
||||||
3.2 /proc/<pid>/oom_score - Display current oom-killer score
|
3.2 /proc/<pid>/oom_score - Display current oom-killer score
|
||||||
3.3 /proc/<pid>/io - Display the IO accounting fields
|
3.3 /proc/<pid>/io - Display the IO accounting fields
|
||||||
3.4 /proc/<pid>/coredump_filter - Core dump filtering settings
|
3.4 /proc/<pid>/coredump_filter - Core dump filtering settings
|
||||||
@@ -73,9 +74,9 @@ contact Bodo Bauer at bb@ricochet.net. We'll be happy to add them to this
|
|||||||
document.
|
document.
|
||||||
|
|
||||||
The latest version of this document is available online at
|
The latest version of this document is available online at
|
||||||
http://skaro.nightcrawler.com/~bb/Docs/Proc as HTML version.
|
http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/proc.html
|
||||||
|
|
||||||
If the above direction does not works for you, ypu could try the kernel
|
If the above direction does not works for you, you could try the kernel
|
||||||
mailing list at linux-kernel@vger.kernel.org and/or try to reach me at
|
mailing list at linux-kernel@vger.kernel.org and/or try to reach me at
|
||||||
comandante@zaralinux.com.
|
comandante@zaralinux.com.
|
||||||
|
|
||||||
@@ -1234,42 +1235,64 @@ of the kernel.
|
|||||||
CHAPTER 3: PER-PROCESS PARAMETERS
|
CHAPTER 3: PER-PROCESS PARAMETERS
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
3.1 /proc/<pid>/oom_adj - Adjust the oom-killer score
|
3.1 /proc/<pid>/oom_adj & /proc/<pid>/oom_score_adj- Adjust the oom-killer score
|
||||||
------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
This file can be used to adjust the score used to select which processes
|
These file can be used to adjust the badness heuristic used to select which
|
||||||
should be killed in an out-of-memory situation. Giving it a high score will
|
process gets killed in out of memory conditions.
|
||||||
increase the likelihood of this process being killed by the oom-killer. Valid
|
|
||||||
values are in the range -16 to +15, plus the special value -17, which disables
|
|
||||||
oom-killing altogether for this process.
|
|
||||||
|
|
||||||
The process to be killed in an out-of-memory situation is selected among all others
|
The badness heuristic assigns a value to each candidate task ranging from 0
|
||||||
based on its badness score. This value equals the original memory size of the process
|
(never kill) to 1000 (always kill) to determine which process is targeted. The
|
||||||
and is then updated according to its CPU time (utime + stime) and the
|
units are roughly a proportion along that range of allowed memory the process
|
||||||
run time (uptime - start time). The longer it runs the smaller is the score.
|
may allocate from based on an estimation of its current memory and swap use.
|
||||||
Badness score is divided by the square root of the CPU time and then by
|
For example, if a task is using all allowed memory, its badness score will be
|
||||||
the double square root of the run time.
|
1000. If it is using half of its allowed memory, its score will be 500.
|
||||||
|
|
||||||
Swapped out tasks are killed first. Half of each child's memory size is added to
|
There is an additional factor included in the badness score: root
|
||||||
the parent's score if they do not share the same memory. Thus forking servers
|
processes are given 3% extra memory over other tasks.
|
||||||
are the prime candidates to be killed. Having only one 'hungry' child will make
|
|
||||||
parent less preferable than the child.
|
|
||||||
|
|
||||||
/proc/<pid>/oom_score shows process' current badness score.
|
The amount of "allowed" memory depends on the context in which the oom killer
|
||||||
|
was called. If it is due to the memory assigned to the allocating task's cpuset
|
||||||
|
being exhausted, the allowed memory represents the set of mems assigned to that
|
||||||
|
cpuset. If it is due to a mempolicy's node(s) being exhausted, the allowed
|
||||||
|
memory represents the set of mempolicy nodes. If it is due to a memory
|
||||||
|
limit (or swap limit) being reached, the allowed memory is that configured
|
||||||
|
limit. Finally, if it is due to the entire system being out of memory, the
|
||||||
|
allowed memory represents all allocatable resources.
|
||||||
|
|
||||||
The following heuristics are then applied:
|
The value of /proc/<pid>/oom_score_adj is added to the badness score before it
|
||||||
* if the task was reniced, its score doubles
|
is used to determine which task to kill. Acceptable values range from -1000
|
||||||
* superuser or direct hardware access tasks (CAP_SYS_ADMIN, CAP_SYS_RESOURCE
|
(OOM_SCORE_ADJ_MIN) to +1000 (OOM_SCORE_ADJ_MAX). This allows userspace to
|
||||||
or CAP_SYS_RAWIO) have their score divided by 4
|
polarize the preference for oom killing either by always preferring a certain
|
||||||
* if oom condition happened in one cpuset and checked process does not belong
|
task or completely disabling it. The lowest possible value, -1000, is
|
||||||
to it, its score is divided by 8
|
equivalent to disabling oom killing entirely for that task since it will always
|
||||||
* the resulting score is multiplied by two to the power of oom_adj, i.e.
|
report a badness score of 0.
|
||||||
points <<= oom_adj when it is positive and
|
|
||||||
points >>= -(oom_adj) otherwise
|
Consequently, it is very simple for userspace to define the amount of memory to
|
||||||
|
consider for each task. Setting a /proc/<pid>/oom_score_adj value of +500, for
|
||||||
|
example, is roughly equivalent to allowing the remainder of tasks sharing the
|
||||||
|
same system, cpuset, mempolicy, or memory controller resources to use at least
|
||||||
|
50% more memory. A value of -500, on the other hand, would be roughly
|
||||||
|
equivalent to discounting 50% of the task's allowed memory from being considered
|
||||||
|
as scoring against the task.
|
||||||
|
|
||||||
|
For backwards compatibility with previous kernels, /proc/<pid>/oom_adj may also
|
||||||
|
be used to tune the badness score. Its acceptable values range from -16
|
||||||
|
(OOM_ADJUST_MIN) to +15 (OOM_ADJUST_MAX) and a special value of -17
|
||||||
|
(OOM_DISABLE) to disable oom killing entirely for that task. Its value is
|
||||||
|
scaled linearly with /proc/<pid>/oom_score_adj.
|
||||||
|
|
||||||
|
Writing to /proc/<pid>/oom_score_adj or /proc/<pid>/oom_adj will change the
|
||||||
|
other with its scaled value.
|
||||||
|
|
||||||
|
NOTICE: /proc/<pid>/oom_adj is deprecated and will be removed, please see
|
||||||
|
Documentation/feature-removal-schedule.txt.
|
||||||
|
|
||||||
|
Caveat: when a parent task is selected, the oom killer will sacrifice any first
|
||||||
|
generation children with seperate address spaces instead, if possible. This
|
||||||
|
avoids servers and important system daemons from being killed and loses the
|
||||||
|
minimal amount of work.
|
||||||
|
|
||||||
The task with the highest badness score is then selected and its children
|
|
||||||
are killed, process itself will be killed in an OOM situation when it does
|
|
||||||
not have children or some of them disabled oom like described above.
|
|
||||||
|
|
||||||
3.2 /proc/<pid>/oom_score - Display current oom-killer score
|
3.2 /proc/<pid>/oom_score - Display current oom-killer score
|
||||||
-------------------------------------------------------------
|
-------------------------------------------------------------
|
||||||
|
@@ -2,7 +2,7 @@ SQUASHFS 4.0 FILESYSTEM
|
|||||||
=======================
|
=======================
|
||||||
|
|
||||||
Squashfs is a compressed read-only filesystem for Linux.
|
Squashfs is a compressed read-only filesystem for Linux.
|
||||||
It uses zlib compression to compress files, inodes and directories.
|
It uses zlib/lzo compression to compress files, inodes and directories.
|
||||||
Inodes in the system are very small and all blocks are packed to minimise
|
Inodes in the system are very small and all blocks are packed to minimise
|
||||||
data overhead. Block sizes greater than 4K are supported up to a maximum
|
data overhead. Block sizes greater than 4K are supported up to a maximum
|
||||||
of 1Mbytes (default block size 128K).
|
of 1Mbytes (default block size 128K).
|
||||||
|
@@ -39,7 +39,7 @@ files, each with their own function.
|
|||||||
local_cpus nearby CPU mask (cpumask, ro)
|
local_cpus nearby CPU mask (cpumask, ro)
|
||||||
remove remove device from kernel's list (ascii, wo)
|
remove remove device from kernel's list (ascii, wo)
|
||||||
resource PCI resource host addresses (ascii, ro)
|
resource PCI resource host addresses (ascii, ro)
|
||||||
resource0..N PCI resource N, if present (binary, mmap)
|
resource0..N PCI resource N, if present (binary, mmap, rw[1])
|
||||||
resource0_wc..N_wc PCI WC map resource N, if prefetchable (binary, mmap)
|
resource0_wc..N_wc PCI WC map resource N, if prefetchable (binary, mmap)
|
||||||
rom PCI ROM resource, if present (binary, ro)
|
rom PCI ROM resource, if present (binary, ro)
|
||||||
subsystem_device PCI subsystem device (ascii, ro)
|
subsystem_device PCI subsystem device (ascii, ro)
|
||||||
@@ -54,13 +54,16 @@ files, each with their own function.
|
|||||||
binary - file contains binary data
|
binary - file contains binary data
|
||||||
cpumask - file contains a cpumask type
|
cpumask - file contains a cpumask type
|
||||||
|
|
||||||
|
[1] rw for RESOURCE_IO (I/O port) regions only
|
||||||
|
|
||||||
The read only files are informational, writes to them will be ignored, with
|
The read only files are informational, writes to them will be ignored, with
|
||||||
the exception of the 'rom' file. Writable files can be used to perform
|
the exception of the 'rom' file. Writable files can be used to perform
|
||||||
actions on the device (e.g. changing config space, detaching a device).
|
actions on the device (e.g. changing config space, detaching a device).
|
||||||
mmapable files are available via an mmap of the file at offset 0 and can be
|
mmapable files are available via an mmap of the file at offset 0 and can be
|
||||||
used to do actual device programming from userspace. Note that some platforms
|
used to do actual device programming from userspace. Note that some platforms
|
||||||
don't support mmapping of certain resources, so be sure to check the return
|
don't support mmapping of certain resources, so be sure to check the return
|
||||||
value from any attempted mmap.
|
value from any attempted mmap. The most notable of these are I/O port
|
||||||
|
resources, which also provide read/write access.
|
||||||
|
|
||||||
The 'enable' file provides a counter that indicates how many times the device
|
The 'enable' file provides a counter that indicates how many times the device
|
||||||
has been enabled. If the 'enable' file currently returns '4', and a '1' is
|
has been enabled. If the 'enable' file currently returns '4', and a '1' is
|
||||||
|
@@ -4,7 +4,7 @@ sysfs - _The_ filesystem for exporting kernel objects.
|
|||||||
Patrick Mochel <mochel@osdl.org>
|
Patrick Mochel <mochel@osdl.org>
|
||||||
Mike Murphy <mamurph@cs.clemson.edu>
|
Mike Murphy <mamurph@cs.clemson.edu>
|
||||||
|
|
||||||
Revised: 22 February 2009
|
Revised: 15 July 2010
|
||||||
Original: 10 January 2003
|
Original: 10 January 2003
|
||||||
|
|
||||||
|
|
||||||
@@ -124,7 +124,7 @@ show and store methods of the attribute owners.
|
|||||||
|
|
||||||
struct sysfs_ops {
|
struct sysfs_ops {
|
||||||
ssize_t (*show)(struct kobject *, struct attribute *, char *);
|
ssize_t (*show)(struct kobject *, struct attribute *, char *);
|
||||||
ssize_t (*store)(struct kobject *, struct attribute *, const char *);
|
ssize_t (*store)(struct kobject *, struct attribute *, const char *, size_t);
|
||||||
};
|
};
|
||||||
|
|
||||||
[ Subsystems should have already defined a struct kobj_type as a
|
[ Subsystems should have already defined a struct kobj_type as a
|
||||||
@@ -139,18 +139,22 @@ calls the associated methods.
|
|||||||
|
|
||||||
To illustrate:
|
To illustrate:
|
||||||
|
|
||||||
|
#define to_dev(obj) container_of(obj, struct device, kobj)
|
||||||
#define to_dev_attr(_attr) container_of(_attr, struct device_attribute, attr)
|
#define to_dev_attr(_attr) container_of(_attr, struct device_attribute, attr)
|
||||||
#define to_dev(d) container_of(d, struct device, kobj)
|
|
||||||
|
|
||||||
static ssize_t
|
static ssize_t dev_attr_show(struct kobject *kobj, struct attribute *attr,
|
||||||
dev_attr_show(struct kobject * kobj, struct attribute * attr, char * buf)
|
char *buf)
|
||||||
{
|
{
|
||||||
struct device_attribute * dev_attr = to_dev_attr(attr);
|
struct device_attribute *dev_attr = to_dev_attr(attr);
|
||||||
struct device * dev = to_dev(kobj);
|
struct device *dev = to_dev(kobj);
|
||||||
ssize_t ret = 0;
|
ssize_t ret = -EIO;
|
||||||
|
|
||||||
if (dev_attr->show)
|
if (dev_attr->show)
|
||||||
ret = dev_attr->show(dev, buf);
|
ret = dev_attr->show(dev, dev_attr, buf);
|
||||||
|
if (ret >= (ssize_t)PAGE_SIZE) {
|
||||||
|
print_symbol("dev_attr_show: %s returned bad count\n",
|
||||||
|
(unsigned long)dev_attr->show);
|
||||||
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -163,10 +167,9 @@ To read or write attributes, show() or store() methods must be
|
|||||||
specified when declaring the attribute. The method types should be as
|
specified when declaring the attribute. The method types should be as
|
||||||
simple as those defined for device attributes:
|
simple as those defined for device attributes:
|
||||||
|
|
||||||
ssize_t (*show)(struct device * dev, struct device_attribute * attr,
|
ssize_t (*show)(struct device *dev, struct device_attribute *attr, char *buf);
|
||||||
char * buf);
|
ssize_t (*store)(struct device *dev, struct device_attribute *attr,
|
||||||
ssize_t (*store)(struct device * dev, struct device_attribute * attr,
|
const char *buf, size_t count);
|
||||||
const char * buf);
|
|
||||||
|
|
||||||
IOW, they should take only an object, an attribute, and a buffer as parameters.
|
IOW, they should take only an object, an attribute, and a buffer as parameters.
|
||||||
|
|
||||||
@@ -209,8 +212,8 @@ Other notes:
|
|||||||
|
|
||||||
- show() should always use snprintf().
|
- show() should always use snprintf().
|
||||||
|
|
||||||
- store() should return the number of bytes used from the buffer. This
|
- store() should return the number of bytes used from the buffer. If the
|
||||||
can be done using strlen().
|
entire buffer has been used, just return the count argument.
|
||||||
|
|
||||||
- show() or store() can always return errors. If a bad value comes
|
- show() or store() can always return errors. If a bad value comes
|
||||||
through, be sure to return an error.
|
through, be sure to return an error.
|
||||||
@@ -223,15 +226,18 @@ Other notes:
|
|||||||
|
|
||||||
A very simple (and naive) implementation of a device attribute is:
|
A very simple (and naive) implementation of a device attribute is:
|
||||||
|
|
||||||
static ssize_t show_name(struct device *dev, struct device_attribute *attr, char *buf)
|
static ssize_t show_name(struct device *dev, struct device_attribute *attr,
|
||||||
|
char *buf)
|
||||||
{
|
{
|
||||||
return snprintf(buf, PAGE_SIZE, "%s\n", dev->name);
|
return snprintf(buf, PAGE_SIZE, "%s\n", dev->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t store_name(struct device * dev, const char * buf)
|
static ssize_t store_name(struct device *dev, struct device_attribute *attr,
|
||||||
|
const char *buf, size_t count)
|
||||||
{
|
{
|
||||||
sscanf(buf, "%20s", dev->name);
|
snprintf(dev->name, sizeof(dev->name), "%.*s",
|
||||||
return strnlen(buf, PAGE_SIZE);
|
(int)min(count, sizeof(dev->name) - 1), buf);
|
||||||
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static DEVICE_ATTR(name, S_IRUGO, show_name, store_name);
|
static DEVICE_ATTR(name, S_IRUGO, show_name, store_name);
|
||||||
@@ -327,7 +333,7 @@ Structure:
|
|||||||
struct bus_attribute {
|
struct bus_attribute {
|
||||||
struct attribute attr;
|
struct attribute attr;
|
||||||
ssize_t (*show)(struct bus_type *, char * buf);
|
ssize_t (*show)(struct bus_type *, char * buf);
|
||||||
ssize_t (*store)(struct bus_type *, const char * buf);
|
ssize_t (*store)(struct bus_type *, const char * buf, size_t count);
|
||||||
};
|
};
|
||||||
|
|
||||||
Declaring:
|
Declaring:
|
||||||
|
@@ -165,7 +165,8 @@ TEST SUITE
|
|||||||
If you plan to make any modifications to the vfat filesystem, please
|
If you plan to make any modifications to the vfat filesystem, please
|
||||||
get the test suite that comes with the vfat distribution at
|
get the test suite that comes with the vfat distribution at
|
||||||
|
|
||||||
http://bmrc.berkeley.edu/people/chaffee/vfat.html
|
http://web.archive.org/web/*/http://bmrc.berkeley.edu/
|
||||||
|
people/chaffee/vfat.html
|
||||||
|
|
||||||
This tests quite a few parts of the vfat filesystem and additional
|
This tests quite a few parts of the vfat filesystem and additional
|
||||||
tests for new features or untested features would be appreciated.
|
tests for new features or untested features would be appreciated.
|
||||||
|
@@ -131,17 +131,6 @@ When mounting an XFS filesystem, the following options are accepted.
|
|||||||
Don't check for double mounted file systems using the file system uuid.
|
Don't check for double mounted file systems using the file system uuid.
|
||||||
This is useful to mount LVM snapshot volumes.
|
This is useful to mount LVM snapshot volumes.
|
||||||
|
|
||||||
osyncisosync
|
|
||||||
Make O_SYNC writes implement true O_SYNC. WITHOUT this option,
|
|
||||||
Linux XFS behaves as if an "osyncisdsync" option is used,
|
|
||||||
which will make writes to files opened with the O_SYNC flag set
|
|
||||||
behave as if the O_DSYNC flag had been used instead.
|
|
||||||
This can result in better performance without compromising
|
|
||||||
data safety.
|
|
||||||
However if this option is not in effect, timestamp updates from
|
|
||||||
O_SYNC writes can be lost if the system crashes.
|
|
||||||
If timestamp updates are critical, use the osyncisosync option.
|
|
||||||
|
|
||||||
uquota/usrquota/uqnoenforce/quota
|
uquota/usrquota/uqnoenforce/quota
|
||||||
User disk quota accounting enabled, and limits (optionally)
|
User disk quota accounting enabled, and limits (optionally)
|
||||||
enforced. Refer to xfs_quota(8) for further details.
|
enforced. Refer to xfs_quota(8) for further details.
|
||||||
|
@@ -6,11 +6,12 @@
|
|||||||
|
|
||||||
HOTPLUG_FW_DIR=/usr/lib/hotplug/firmware/
|
HOTPLUG_FW_DIR=/usr/lib/hotplug/firmware/
|
||||||
|
|
||||||
echo 1 > /sys/$DEVPATH/loading
|
if [ "$SUBSYSTEM" == "firmware" -a "$ACTION" == "add" ]; then
|
||||||
cat $HOTPLUG_FW_DIR/$FIRMWARE > /sys/$DEVPATH/data
|
if [ -f $HOTPLUG_FW_DIR/$FIRMWARE ]; then
|
||||||
echo 0 > /sys/$DEVPATH/loading
|
echo 1 > /sys/$DEVPATH/loading
|
||||||
|
cat $HOTPLUG_FW_DIR/$FIRMWARE > /sys/$DEVPATH/data
|
||||||
# To cancel the load in case of error:
|
echo 0 > /sys/$DEVPATH/loading
|
||||||
#
|
else
|
||||||
# echo -1 > /sys/$DEVPATH/loading
|
echo -1 > /sys/$DEVPATH/loading
|
||||||
#
|
fi
|
||||||
|
fi
|
||||||
|
@@ -158,10 +158,11 @@ and configure pullups/pulldowns appropriately.)
|
|||||||
Spinlock-Safe GPIO access
|
Spinlock-Safe GPIO access
|
||||||
-------------------------
|
-------------------------
|
||||||
Most GPIO controllers can be accessed with memory read/write instructions.
|
Most GPIO controllers can be accessed with memory read/write instructions.
|
||||||
That doesn't need to sleep, and can safely be done from inside IRQ handlers.
|
Those don't need to sleep, and can safely be done from inside hard
|
||||||
(That includes hardirq contexts on RT kernels.)
|
(nonthreaded) IRQ handlers and similar contexts.
|
||||||
|
|
||||||
Use these calls to access such GPIOs:
|
Use the following calls to access such GPIOs,
|
||||||
|
for which gpio_cansleep() will always return false (see below):
|
||||||
|
|
||||||
/* GPIO INPUT: return zero or nonzero */
|
/* GPIO INPUT: return zero or nonzero */
|
||||||
int gpio_get_value(unsigned gpio);
|
int gpio_get_value(unsigned gpio);
|
||||||
@@ -210,9 +211,31 @@ To access such GPIOs, a different set of accessors is defined:
|
|||||||
/* GPIO OUTPUT, might sleep */
|
/* GPIO OUTPUT, might sleep */
|
||||||
void gpio_set_value_cansleep(unsigned gpio, int value);
|
void gpio_set_value_cansleep(unsigned gpio, int value);
|
||||||
|
|
||||||
Other than the fact that these calls might sleep, and will not be ignored
|
|
||||||
for GPIOs that can't be accessed from IRQ handlers, these calls act the
|
Accessing such GPIOs requires a context which may sleep, for example
|
||||||
same as the spinlock-safe calls.
|
a threaded IRQ handler, and those accessors must be used instead of
|
||||||
|
spinlock-safe accessors without the cansleep() name suffix.
|
||||||
|
|
||||||
|
Other than the fact that these accessors might sleep, and will work
|
||||||
|
on GPIOs that can't be accessed from hardIRQ handlers, these calls act
|
||||||
|
the same as the spinlock-safe calls.
|
||||||
|
|
||||||
|
** IN ADDITION ** calls to setup and configure such GPIOs must be made
|
||||||
|
from contexts which may sleep, since they may need to access the GPIO
|
||||||
|
controller chip too: (These setup calls are usually made from board
|
||||||
|
setup or driver probe/teardown code, so this is an easy constraint.)
|
||||||
|
|
||||||
|
gpio_direction_input()
|
||||||
|
gpio_direction_output()
|
||||||
|
gpio_request()
|
||||||
|
|
||||||
|
## gpio_request_one()
|
||||||
|
## gpio_request_array()
|
||||||
|
## gpio_free_array()
|
||||||
|
|
||||||
|
gpio_free()
|
||||||
|
gpio_set_debounce()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Claiming and Releasing GPIOs
|
Claiming and Releasing GPIOs
|
||||||
|
@@ -6,7 +6,7 @@ Supported chips:
|
|||||||
Prefix: 'adm1026'
|
Prefix: 'adm1026'
|
||||||
Addresses scanned: I2C 0x2c, 0x2d, 0x2e
|
Addresses scanned: I2C 0x2c, 0x2d, 0x2e
|
||||||
Datasheet: Publicly available at the Analog Devices website
|
Datasheet: Publicly available at the Analog Devices website
|
||||||
http://www.analog.com/en/prod/0,,766_825_ADM1026,00.html
|
http://www.onsemi.com/PowerSolutions/product.do?id=ADM1026
|
||||||
|
|
||||||
Authors:
|
Authors:
|
||||||
Philip Pokorny <ppokorny@penguincomputing.com> for Penguin Computing
|
Philip Pokorny <ppokorny@penguincomputing.com> for Penguin Computing
|
||||||
|
@@ -21,8 +21,8 @@ Temperature is measured in degrees Celsius and measurement resolution is
|
|||||||
1 degree C. Valid temperatures are from 0 to TjMax degrees C, because
|
1 degree C. Valid temperatures are from 0 to TjMax degrees C, because
|
||||||
the actual value of temperature register is in fact a delta from TjMax.
|
the actual value of temperature register is in fact a delta from TjMax.
|
||||||
|
|
||||||
Temperature known as TjMax is the maximum junction temperature of processor.
|
Temperature known as TjMax is the maximum junction temperature of processor,
|
||||||
Intel defines this temperature as 85C or 100C. At this temperature, protection
|
which depends on the CPU model. See table below. At this temperature, protection
|
||||||
mechanism will perform actions to forcibly cool down the processor. Alarm
|
mechanism will perform actions to forcibly cool down the processor. Alarm
|
||||||
may be raised, if the temperature grows enough (more than TjMax) to trigger
|
may be raised, if the temperature grows enough (more than TjMax) to trigger
|
||||||
the Out-Of-Spec bit. Following table summarizes the exported sysfs files:
|
the Out-Of-Spec bit. Following table summarizes the exported sysfs files:
|
||||||
@@ -38,3 +38,104 @@ temp1_label - Contains string "Core X", where X is processor
|
|||||||
The TjMax temperature is set to 85 degrees C if undocumented model specific
|
The TjMax temperature is set to 85 degrees C if undocumented model specific
|
||||||
register (UMSR) 0xee has bit 30 set. If not the TjMax is 100 degrees C as
|
register (UMSR) 0xee has bit 30 set. If not the TjMax is 100 degrees C as
|
||||||
(sometimes) documented in processor datasheet.
|
(sometimes) documented in processor datasheet.
|
||||||
|
|
||||||
|
Appendix A. Known TjMax lists (TBD):
|
||||||
|
Some information comes from ark.intel.com
|
||||||
|
|
||||||
|
Process Processor TjMax(C)
|
||||||
|
|
||||||
|
32nm Core i3/i5/i7 Processors
|
||||||
|
i7 660UM/640/620, 640LM/620, 620M, 610E 105
|
||||||
|
i5 540UM/520/430, 540M/520/450/430 105
|
||||||
|
i3 330E, 370M/350/330 90 rPGA, 105 BGA
|
||||||
|
i3 330UM 105
|
||||||
|
|
||||||
|
32nm Core i7 Extreme Processors
|
||||||
|
980X 100
|
||||||
|
|
||||||
|
32nm Celeron Processors
|
||||||
|
U3400 105
|
||||||
|
P4505/P4500 90
|
||||||
|
|
||||||
|
45nm Xeon Processors 5400 Quad-Core
|
||||||
|
X5492, X5482, X5472, X5470, X5460, X5450 85
|
||||||
|
E5472, E5462, E5450/40/30/20/10/05 85
|
||||||
|
L5408 95
|
||||||
|
L5430, L5420, L5410 70
|
||||||
|
|
||||||
|
45nm Xeon Processors 5200 Dual-Core
|
||||||
|
X5282, X5272, X5270, X5260 90
|
||||||
|
E5240 90
|
||||||
|
E5205, E5220 70, 90
|
||||||
|
L5240 70
|
||||||
|
L5238, L5215 95
|
||||||
|
|
||||||
|
45nm Atom Processors
|
||||||
|
D525/510/425/410 100
|
||||||
|
Z560/550/540/530P/530/520PT/520/515/510PT/510P 90
|
||||||
|
Z510/500 90
|
||||||
|
N475/470/455/450 100
|
||||||
|
N280/270 90
|
||||||
|
330/230 125
|
||||||
|
|
||||||
|
45nm Core2 Processors
|
||||||
|
Solo ULV SU3500/3300 100
|
||||||
|
T9900/9800/9600/9550/9500/9400/9300/8300/8100 105
|
||||||
|
T6670/6500/6400 105
|
||||||
|
T6600 90
|
||||||
|
SU9600/9400/9300 105
|
||||||
|
SP9600/9400 105
|
||||||
|
SL9600/9400/9380/9300 105
|
||||||
|
P9700/9600/9500/8800/8700/8600/8400/7570 105
|
||||||
|
P7550/7450 90
|
||||||
|
|
||||||
|
45nm Core2 Quad Processors
|
||||||
|
Q9100/9000 100
|
||||||
|
|
||||||
|
45nm Core2 Extreme Processors
|
||||||
|
X9100/9000 105
|
||||||
|
QX9300 100
|
||||||
|
|
||||||
|
45nm Core i3/i5/i7 Processors
|
||||||
|
i7 940XM/920 100
|
||||||
|
i7 840QM/820/740/720 100
|
||||||
|
|
||||||
|
45nm Celeron Processors
|
||||||
|
SU2300 100
|
||||||
|
900 105
|
||||||
|
|
||||||
|
65nm Core2 Duo Processors
|
||||||
|
Solo U2200, U2100 100
|
||||||
|
U7700/7600/7500 100
|
||||||
|
T7800/7700/7600/7500/7400/7300/7250/7200/7100 100
|
||||||
|
T5870/5670/5600/5550/5500/5470/5450/5300/5270 100
|
||||||
|
T5250 100
|
||||||
|
T5800/5750/5200 85
|
||||||
|
L7700/7500/7400/7300/7200 100
|
||||||
|
|
||||||
|
65nm Core2 Extreme Processors
|
||||||
|
X7900/7800 100
|
||||||
|
|
||||||
|
65nm Core Duo Processors
|
||||||
|
U2500/2400 100
|
||||||
|
T2700/2600/2450/2400/2350/2300E/2300/2250/2050 100
|
||||||
|
L2500/2400/2300 100
|
||||||
|
|
||||||
|
65nm Core Solo Processors
|
||||||
|
U1500/1400/1300 100
|
||||||
|
T1400/1350/1300/1250 100
|
||||||
|
|
||||||
|
65nm Xeon Processors 5000 Quad-Core
|
||||||
|
X5000 90-95
|
||||||
|
E5000 80
|
||||||
|
L5000 70
|
||||||
|
L5318 95
|
||||||
|
|
||||||
|
65nm Xeon Processors 5000 Dual-Core
|
||||||
|
5080, 5063, 5060, 5050, 5030 80-90
|
||||||
|
5160, 5150, 5148, 5140, 5130, 5120, 5110 80
|
||||||
|
L5138 100
|
||||||
|
|
||||||
|
65nm Celeron Processors
|
||||||
|
T1700/1600 100
|
||||||
|
560/550/540/530 100
|
||||||
|
@@ -2,6 +2,10 @@ Kernel driver f71882fg
|
|||||||
======================
|
======================
|
||||||
|
|
||||||
Supported chips:
|
Supported chips:
|
||||||
|
* Fintek F71808E
|
||||||
|
Prefix: 'f71808fg'
|
||||||
|
Addresses scanned: none, address read from Super I/O config space
|
||||||
|
Datasheet: Not public
|
||||||
* Fintek F71858FG
|
* Fintek F71858FG
|
||||||
Prefix: 'f71858fg'
|
Prefix: 'f71858fg'
|
||||||
Addresses scanned: none, address read from Super I/O config space
|
Addresses scanned: none, address read from Super I/O config space
|
||||||
|
@@ -5,7 +5,7 @@ Supported chips:
|
|||||||
* Global Mixed-mode Technology Inc. G760A
|
* Global Mixed-mode Technology Inc. G760A
|
||||||
Prefix: 'g760a'
|
Prefix: 'g760a'
|
||||||
Datasheet: Publicly available at the GMT website
|
Datasheet: Publicly available at the GMT website
|
||||||
http://www.gmt.com.tw/datasheet/g760a.pdf
|
http://www.gmt.com.tw/product/datasheet/EDS-760A.pdf
|
||||||
|
|
||||||
Author: Herbert Valerio Riedel <hvr@gnu.org>
|
Author: Herbert Valerio Riedel <hvr@gnu.org>
|
||||||
|
|
||||||
|
@@ -5,11 +5,10 @@ Supported chips:
|
|||||||
* Genesys Logic GL518SM release 0x00
|
* Genesys Logic GL518SM release 0x00
|
||||||
Prefix: 'gl518sm'
|
Prefix: 'gl518sm'
|
||||||
Addresses scanned: I2C 0x2c and 0x2d
|
Addresses scanned: I2C 0x2c and 0x2d
|
||||||
Datasheet: http://www.genesyslogic.com/pdf
|
|
||||||
* Genesys Logic GL518SM release 0x80
|
* Genesys Logic GL518SM release 0x80
|
||||||
Prefix: 'gl518sm'
|
Prefix: 'gl518sm'
|
||||||
Addresses scanned: I2C 0x2c and 0x2d
|
Addresses scanned: I2C 0x2c and 0x2d
|
||||||
Datasheet: http://www.genesyslogic.com/pdf
|
Datasheet: http://www.genesyslogic.com/
|
||||||
|
|
||||||
Authors:
|
Authors:
|
||||||
Frodo Looijaard <frodol@dds.nl>,
|
Frodo Looijaard <frodol@dds.nl>,
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
/* Disk protection for HP machines.
|
/* Disk protection for HP machines.
|
||||||
*
|
*
|
||||||
* Copyright 2008 Eric Piel
|
* Copyright 2008 Eric Piel
|
||||||
* Copyright 2009 Pavel Machek <pavel@suse.cz>
|
* Copyright 2009 Pavel Machek <pavel@ucw.cz>
|
||||||
*
|
*
|
||||||
* GPLv2.
|
* GPLv2.
|
||||||
*/
|
*/
|
||||||
|
97
Documentation/hwmon/jc42
Normal file
97
Documentation/hwmon/jc42
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
Kernel driver jc42
|
||||||
|
==================
|
||||||
|
|
||||||
|
Supported chips:
|
||||||
|
* Analog Devices ADT7408
|
||||||
|
Prefix: 'adt7408'
|
||||||
|
Addresses scanned: I2C 0x18 - 0x1f
|
||||||
|
Datasheets:
|
||||||
|
http://www.analog.com/static/imported-files/data_sheets/ADT7408.pdf
|
||||||
|
* IDT TSE2002B3, TS3000B3
|
||||||
|
Prefix: 'tse2002b3', 'ts3000b3'
|
||||||
|
Addresses scanned: I2C 0x18 - 0x1f
|
||||||
|
Datasheets:
|
||||||
|
http://www.idt.com/products/getdoc.cfm?docid=18715691
|
||||||
|
http://www.idt.com/products/getdoc.cfm?docid=18715692
|
||||||
|
* Maxim MAX6604
|
||||||
|
Prefix: 'max6604'
|
||||||
|
Addresses scanned: I2C 0x18 - 0x1f
|
||||||
|
Datasheets:
|
||||||
|
http://datasheets.maxim-ic.com/en/ds/MAX6604.pdf
|
||||||
|
* Microchip MCP9805, MCP98242, MCP98243, MCP9843
|
||||||
|
Prefixes: 'mcp9805', 'mcp98242', 'mcp98243', 'mcp9843'
|
||||||
|
Addresses scanned: I2C 0x18 - 0x1f
|
||||||
|
Datasheets:
|
||||||
|
http://ww1.microchip.com/downloads/en/DeviceDoc/21977b.pdf
|
||||||
|
http://ww1.microchip.com/downloads/en/DeviceDoc/21996a.pdf
|
||||||
|
http://ww1.microchip.com/downloads/en/DeviceDoc/22153c.pdf
|
||||||
|
* NXP Semiconductors SE97, SE97B
|
||||||
|
Prefix: 'se97'
|
||||||
|
Addresses scanned: I2C 0x18 - 0x1f
|
||||||
|
Datasheets:
|
||||||
|
http://www.nxp.com/documents/data_sheet/SE97.pdf
|
||||||
|
http://www.nxp.com/documents/data_sheet/SE97B.pdf
|
||||||
|
* NXP Semiconductors SE98
|
||||||
|
Prefix: 'se98'
|
||||||
|
Addresses scanned: I2C 0x18 - 0x1f
|
||||||
|
Datasheets:
|
||||||
|
http://www.nxp.com/documents/data_sheet/SE98.pdf
|
||||||
|
* ON Semiconductor CAT34TS02, CAT6095
|
||||||
|
Prefix: 'cat34ts02', 'cat6095'
|
||||||
|
Addresses scanned: I2C 0x18 - 0x1f
|
||||||
|
Datasheet:
|
||||||
|
http://www.onsemi.com/pub_link/Collateral/CAT34TS02-D.PDF
|
||||||
|
http://www.onsemi.com/pub/Collateral/CAT6095-D.PDF
|
||||||
|
* ST Microelectronics STTS424, STTS424E02
|
||||||
|
Prefix: 'stts424'
|
||||||
|
Addresses scanned: I2C 0x18 - 0x1f
|
||||||
|
Datasheets:
|
||||||
|
http://www.st.com/stonline/products/literature/ds/13447/stts424.pdf
|
||||||
|
http://www.st.com/stonline/products/literature/ds/13448/stts424e02.pdf
|
||||||
|
* JEDEC JC 42.4 compliant temperature sensor chips
|
||||||
|
Prefix: 'jc42'
|
||||||
|
Addresses scanned: I2C 0x18 - 0x1f
|
||||||
|
Datasheet: -
|
||||||
|
|
||||||
|
Author:
|
||||||
|
Guenter Roeck <guenter.roeck@ericsson.com>
|
||||||
|
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This driver implements support for JEDEC JC 42.4 compliant temperature sensors.
|
||||||
|
The driver auto-detects the chips listed above, but can be manually instantiated
|
||||||
|
to support other JC 42.4 compliant chips.
|
||||||
|
|
||||||
|
Example: the following will load the driver for a generic JC 42.4 compliant
|
||||||
|
temperature sensor at address 0x18 on I2C bus #1:
|
||||||
|
|
||||||
|
# modprobe jc42
|
||||||
|
# echo jc42 0x18 > /sys/bus/i2c/devices/i2c-1/new_device
|
||||||
|
|
||||||
|
A JC 42.4 compliant chip supports a single temperature sensor. Minimum, maximum,
|
||||||
|
and critical temperature can be configured. There are alarms for high, low,
|
||||||
|
and critical thresholds.
|
||||||
|
|
||||||
|
There is also an hysteresis to control the thresholds for resetting alarms.
|
||||||
|
Per JC 42.4 specification, the hysteresis threshold can be configured to 0, 1.5,
|
||||||
|
3.0, and 6.0 degrees C. Configured hysteresis values will be rounded to those
|
||||||
|
limits. The chip supports only a single register to configure the hysteresis,
|
||||||
|
which applies to all limits. This register can be written by writing into
|
||||||
|
temp1_crit_hyst. Other hysteresis attributes are read-only.
|
||||||
|
|
||||||
|
Sysfs entries
|
||||||
|
-------------
|
||||||
|
|
||||||
|
temp1_input Temperature (RO)
|
||||||
|
temp1_min Minimum temperature (RW)
|
||||||
|
temp1_max Maximum temperature (RW)
|
||||||
|
temp1_crit Critical high temperature (RW)
|
||||||
|
|
||||||
|
temp1_crit_hyst Critical hysteresis temperature (RW)
|
||||||
|
temp1_max_hyst Maximum hysteresis temperature (RO)
|
||||||
|
|
||||||
|
temp1_min_alarm Temperature low alarm
|
||||||
|
temp1_max_alarm Temperature high alarm
|
||||||
|
temp1_crit_alarm Temperature critical alarm
|
@@ -5,7 +5,7 @@ Supported chips:
|
|||||||
* AMD Athlon64/FX or Opteron CPUs
|
* AMD Athlon64/FX or Opteron CPUs
|
||||||
Prefix: 'k8temp'
|
Prefix: 'k8temp'
|
||||||
Addresses scanned: PCI space
|
Addresses scanned: PCI space
|
||||||
Datasheet: http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/32559.pdf
|
Datasheet: http://support.amd.com/us/Processor_TechDocs/32559.pdf
|
||||||
|
|
||||||
Author: Rudolf Marek
|
Author: Rudolf Marek
|
||||||
Contact: Rudolf Marek <r.marek@assembler.cz>
|
Contact: Rudolf Marek <r.marek@assembler.cz>
|
||||||
|
@@ -9,15 +9,15 @@ Supported chips:
|
|||||||
* Analog Devices ADM1027
|
* Analog Devices ADM1027
|
||||||
Prefix: 'adm1027'
|
Prefix: 'adm1027'
|
||||||
Addresses scanned: I2C 0x2c, 0x2d, 0x2e
|
Addresses scanned: I2C 0x2c, 0x2d, 0x2e
|
||||||
Datasheet: http://www.analog.com/en/prod/0,,766_825_ADM1027,00.html
|
Datasheet: http://www.onsemi.com/PowerSolutions/product.do?id=ADM1027
|
||||||
* Analog Devices ADT7463
|
* Analog Devices ADT7463
|
||||||
Prefix: 'adt7463'
|
Prefix: 'adt7463'
|
||||||
Addresses scanned: I2C 0x2c, 0x2d, 0x2e
|
Addresses scanned: I2C 0x2c, 0x2d, 0x2e
|
||||||
Datasheet: http://www.analog.com/en/prod/0,,766_825_ADT7463,00.html
|
Datasheet: http://www.onsemi.com/PowerSolutions/product.do?id=ADT7463
|
||||||
* SMSC EMC6D100, SMSC EMC6D101
|
* SMSC EMC6D100, SMSC EMC6D101
|
||||||
Prefix: 'emc6d100'
|
Prefix: 'emc6d100'
|
||||||
Addresses scanned: I2C 0x2c, 0x2d, 0x2e
|
Addresses scanned: I2C 0x2c, 0x2d, 0x2e
|
||||||
Datasheet: http://www.smsc.com/main/tools/discontinued/6d100.pdf
|
Datasheet: http://www.smsc.com/media/Downloads_Public/discontinued/6d100.pdf
|
||||||
* SMSC EMC6D102
|
* SMSC EMC6D102
|
||||||
Prefix: 'emc6d102'
|
Prefix: 'emc6d102'
|
||||||
Addresses scanned: I2C 0x2c, 0x2d, 0x2e
|
Addresses scanned: I2C 0x2c, 0x2d, 0x2e
|
||||||
|
36
Documentation/hwmon/pkgtemp
Normal file
36
Documentation/hwmon/pkgtemp
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
Kernel driver pkgtemp
|
||||||
|
======================
|
||||||
|
|
||||||
|
Supported chips:
|
||||||
|
* Intel family
|
||||||
|
Prefix: 'pkgtemp'
|
||||||
|
CPUID:
|
||||||
|
Datasheet: Intel 64 and IA-32 Architectures Software Developer's Manual
|
||||||
|
Volume 3A: System Programming Guide
|
||||||
|
|
||||||
|
Author: Fenghua Yu
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This driver permits reading package level temperature sensor embedded inside
|
||||||
|
Intel CPU package. The sensors can be in core, uncore, memory controller, or
|
||||||
|
other components in a package. The feature is first implemented in Intel Sandy
|
||||||
|
Bridge platform.
|
||||||
|
|
||||||
|
Temperature is measured in degrees Celsius and measurement resolution is
|
||||||
|
1 degree C. Valid temperatures are from 0 to TjMax degrees C, because the actual
|
||||||
|
value of temperature register is in fact a delta from TjMax.
|
||||||
|
|
||||||
|
Temperature known as TjMax is the maximum junction temperature of package.
|
||||||
|
We get this from MSR_IA32_TEMPERATURE_TARGET. If the MSR is not accessible,
|
||||||
|
we define TjMax as 100 degrees Celsius. At this temperature, protection
|
||||||
|
mechanism will perform actions to forcibly cool down the package. Alarm
|
||||||
|
may be raised, if the temperature grows enough (more than TjMax) to trigger
|
||||||
|
the Out-Of-Spec bit. Following table summarizes the exported sysfs files:
|
||||||
|
|
||||||
|
temp1_input - Package temperature (in millidegrees Celsius).
|
||||||
|
temp1_max - All cooling devices should be turned on.
|
||||||
|
temp1_crit - Maximum junction temperature (in millidegrees Celsius).
|
||||||
|
temp1_crit_alarm - Set when Out-of-spec bit is set, never clears.
|
||||||
|
Correct CPU operation is no longer guaranteed.
|
157
Documentation/hwmon/smm665
Normal file
157
Documentation/hwmon/smm665
Normal file
@@ -0,0 +1,157 @@
|
|||||||
|
Kernel driver smm665
|
||||||
|
====================
|
||||||
|
|
||||||
|
Supported chips:
|
||||||
|
* Summit Microelectronics SMM465
|
||||||
|
Prefix: 'smm465'
|
||||||
|
Addresses scanned: -
|
||||||
|
Datasheet:
|
||||||
|
http://www.summitmicro.com/prod_select/summary/SMM465/SMM465DS.pdf
|
||||||
|
* Summit Microelectronics SMM665, SMM665B
|
||||||
|
Prefix: 'smm665'
|
||||||
|
Addresses scanned: -
|
||||||
|
Datasheet:
|
||||||
|
http://www.summitmicro.com/prod_select/summary/SMM665/SMM665B_2089_20.pdf
|
||||||
|
* Summit Microelectronics SMM665C
|
||||||
|
Prefix: 'smm665c'
|
||||||
|
Addresses scanned: -
|
||||||
|
Datasheet:
|
||||||
|
http://www.summitmicro.com/prod_select/summary/SMM665C/SMM665C_2125.pdf
|
||||||
|
* Summit Microelectronics SMM764
|
||||||
|
Prefix: 'smm764'
|
||||||
|
Addresses scanned: -
|
||||||
|
Datasheet:
|
||||||
|
http://www.summitmicro.com/prod_select/summary/SMM764/SMM764_2098.pdf
|
||||||
|
* Summit Microelectronics SMM766, SMM766B
|
||||||
|
Prefix: 'smm766'
|
||||||
|
Addresses scanned: -
|
||||||
|
Datasheets:
|
||||||
|
http://www.summitmicro.com/prod_select/summary/SMM766/SMM766_2086.pdf
|
||||||
|
http://www.summitmicro.com/prod_select/summary/SMM766B/SMM766B_2122.pdf
|
||||||
|
|
||||||
|
Author: Guenter Roeck <guenter.roeck@ericsson.com>
|
||||||
|
|
||||||
|
|
||||||
|
Module Parameters
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
* vref: int
|
||||||
|
Default: 1250 (mV)
|
||||||
|
Reference voltage on VREF_ADC pin in mV. It should not be necessary to set
|
||||||
|
this parameter unless a non-default reference voltage is used.
|
||||||
|
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
[From datasheet] The SMM665 is an Active DC Output power supply Controller
|
||||||
|
that monitors, margins and cascade sequences power. The part monitors six
|
||||||
|
power supply channels as well as VDD, 12V input, two general-purpose analog
|
||||||
|
inputs and an internal temperature sensor using a 10-bit ADC.
|
||||||
|
|
||||||
|
Each monitored channel has its own high and low limits, plus a critical
|
||||||
|
limit.
|
||||||
|
|
||||||
|
Support for SMM465, SMM764, and SMM766 has been implemented but is untested.
|
||||||
|
|
||||||
|
|
||||||
|
Usage Notes
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This driver does not probe for devices, since there is no register which
|
||||||
|
can be safely used to identify the chip. You will have to instantiate
|
||||||
|
the devices explicitly. When instantiating the device, you have to specify
|
||||||
|
its configuration register address.
|
||||||
|
|
||||||
|
Example: the following will load the driver for an SMM665 at address 0x57
|
||||||
|
on I2C bus #1:
|
||||||
|
$ modprobe smm665
|
||||||
|
$ echo smm665 0x57 > /sys/bus/i2c/devices/i2c-1/new_device
|
||||||
|
|
||||||
|
|
||||||
|
Sysfs entries
|
||||||
|
-------------
|
||||||
|
|
||||||
|
This driver uses the values in the datasheet to convert ADC register values
|
||||||
|
into the values specified in the sysfs-interface document. All attributes are
|
||||||
|
read only.
|
||||||
|
|
||||||
|
Min, max, lcrit, and crit values are used by the chip to trigger external signals
|
||||||
|
and/or other activity. Triggered signals can include HEALTHY, RST, Power Off,
|
||||||
|
or Fault depending on the chip configuration. The driver reports values as lcrit
|
||||||
|
or crit if exceeding the limits triggers RST, Power Off, or Fault, and as min or
|
||||||
|
max otherwise. For details please see the SMM665 datasheet.
|
||||||
|
|
||||||
|
For SMM465 and SMM764, values for Channel E and F are reported but undefined.
|
||||||
|
|
||||||
|
in1_input 12V input voltage (mV)
|
||||||
|
in2_input 3.3V (VDD) input voltage (mV)
|
||||||
|
in3_input Channel A voltage (mV)
|
||||||
|
in4_input Channel B voltage (mV)
|
||||||
|
in5_input Channel C voltage (mV)
|
||||||
|
in6_input Channel D voltage (mV)
|
||||||
|
in7_input Channel E voltage (mV)
|
||||||
|
in8_input Channel F voltage (mV)
|
||||||
|
in9_input AIN1 voltage (mV)
|
||||||
|
in10_input AIN2 voltage (mV)
|
||||||
|
|
||||||
|
in1_min 12v input minimum voltage (mV)
|
||||||
|
in2_min 3.3V (VDD) input minimum voltage (mV)
|
||||||
|
in3_min Channel A minimum voltage (mV)
|
||||||
|
in4_min Channel B minimum voltage (mV)
|
||||||
|
in5_min Channel C minimum voltage (mV)
|
||||||
|
in6_min Channel D minimum voltage (mV)
|
||||||
|
in7_min Channel E minimum voltage (mV)
|
||||||
|
in8_min Channel F minimum voltage (mV)
|
||||||
|
in9_min AIN1 minimum voltage (mV)
|
||||||
|
in10_min AIN2 minimum voltage (mV)
|
||||||
|
|
||||||
|
in1_max 12v input maximum voltage (mV)
|
||||||
|
in2_max 3.3V (VDD) input maximum voltage (mV)
|
||||||
|
in3_max Channel A maximum voltage (mV)
|
||||||
|
in4_max Channel B maximum voltage (mV)
|
||||||
|
in5_max Channel C maximum voltage (mV)
|
||||||
|
in6_max Channel D maximum voltage (mV)
|
||||||
|
in7_max Channel E maximum voltage (mV)
|
||||||
|
in8_max Channel F maximum voltage (mV)
|
||||||
|
in9_max AIN1 maximum voltage (mV)
|
||||||
|
in10_max AIN2 maximum voltage (mV)
|
||||||
|
|
||||||
|
in1_lcrit 12v input critical minimum voltage (mV)
|
||||||
|
in2_lcrit 3.3V (VDD) input critical minimum voltage (mV)
|
||||||
|
in3_lcrit Channel A critical minimum voltage (mV)
|
||||||
|
in4_lcrit Channel B critical minimum voltage (mV)
|
||||||
|
in5_lcrit Channel C critical minimum voltage (mV)
|
||||||
|
in6_lcrit Channel D critical minimum voltage (mV)
|
||||||
|
in7_lcrit Channel E critical minimum voltage (mV)
|
||||||
|
in8_lcrit Channel F critical minimum voltage (mV)
|
||||||
|
in9_lcrit AIN1 critical minimum voltage (mV)
|
||||||
|
in10_lcrit AIN2 critical minimum voltage (mV)
|
||||||
|
|
||||||
|
in1_crit 12v input critical maximum voltage (mV)
|
||||||
|
in2_crit 3.3V (VDD) input critical maximum voltage (mV)
|
||||||
|
in3_crit Channel A critical maximum voltage (mV)
|
||||||
|
in4_crit Channel B critical maximum voltage (mV)
|
||||||
|
in5_crit Channel C critical maximum voltage (mV)
|
||||||
|
in6_crit Channel D critical maximum voltage (mV)
|
||||||
|
in7_crit Channel E critical maximum voltage (mV)
|
||||||
|
in8_crit Channel F critical maximum voltage (mV)
|
||||||
|
in9_crit AIN1 critical maximum voltage (mV)
|
||||||
|
in10_crit AIN2 critical maximum voltage (mV)
|
||||||
|
|
||||||
|
in1_crit_alarm 12v input critical alarm
|
||||||
|
in2_crit_alarm 3.3V (VDD) input critical alarm
|
||||||
|
in3_crit_alarm Channel A critical alarm
|
||||||
|
in4_crit_alarm Channel B critical alarm
|
||||||
|
in5_crit_alarm Channel C critical alarm
|
||||||
|
in6_crit_alarm Channel D critical alarm
|
||||||
|
in7_crit_alarm Channel E critical alarm
|
||||||
|
in8_crit_alarm Channel F critical alarm
|
||||||
|
in9_crit_alarm AIN1 critical alarm
|
||||||
|
in10_crit_alarm AIN2 critical alarm
|
||||||
|
|
||||||
|
temp1_input Chip tempererature
|
||||||
|
temp1_min Mimimum chip tempererature
|
||||||
|
temp1_max Maximum chip tempererature
|
||||||
|
temp1_crit Critical chip tempererature
|
||||||
|
temp1_crit_alarm Temperature critical alarm
|
@@ -7,13 +7,10 @@ Supported chips:
|
|||||||
Addresses scanned: none, address read from Super I/O config space
|
Addresses scanned: none, address read from Super I/O config space
|
||||||
Prefix: 'smsc47m1'
|
Prefix: 'smsc47m1'
|
||||||
Datasheets:
|
Datasheets:
|
||||||
http://www.smsc.com/main/datasheets/47b27x.pdf
|
http://www.smsc.com/media/Downloads_Public/Data_Sheets/47b272.pdf
|
||||||
http://www.smsc.com/main/datasheets/47m10x.pdf
|
http://www.smsc.com/media/Downloads_Public/Data_Sheets/47m10x.pdf
|
||||||
http://www.smsc.com/main/datasheets/47m112.pdf
|
http://www.smsc.com/media/Downloads_Public/Data_Sheets/47m112.pdf
|
||||||
http://www.smsc.com/main/tools/discontinued/47m13x.pdf
|
http://www.smsc.com/
|
||||||
http://www.smsc.com/main/datasheets/47m14x.pdf
|
|
||||||
http://www.smsc.com/main/tools/discontinued/47m15x.pdf
|
|
||||||
http://www.smsc.com/main/datasheets/47m192.pdf
|
|
||||||
* SMSC LPC47M292
|
* SMSC LPC47M292
|
||||||
Addresses scanned: none, address read from Super I/O config space
|
Addresses scanned: none, address read from Super I/O config space
|
||||||
Prefix: 'smsc47m2'
|
Prefix: 'smsc47m2'
|
||||||
|
@@ -9,7 +9,7 @@ Supported chips:
|
|||||||
* Texas Instruments THMC50
|
* Texas Instruments THMC50
|
||||||
Prefix: 'thmc50'
|
Prefix: 'thmc50'
|
||||||
Addresses scanned: I2C 0x2c - 0x2e
|
Addresses scanned: I2C 0x2c - 0x2e
|
||||||
Datasheet: http://focus.ti.com/docs/prod/folders/print/thmc50.html
|
Datasheet: http://www.ti.com/
|
||||||
|
|
||||||
Author: Krzysztof Helt <krzysztof.h1@wp.pl>
|
Author: Krzysztof Helt <krzysztof.h1@wp.pl>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@ Supported chips:
|
|||||||
* Via VT82C686A, VT82C686B Southbridge Integrated Hardware Monitor
|
* Via VT82C686A, VT82C686B Southbridge Integrated Hardware Monitor
|
||||||
Prefix: 'via686a'
|
Prefix: 'via686a'
|
||||||
Addresses scanned: ISA in PCI-space encoded address
|
Addresses scanned: ISA in PCI-space encoded address
|
||||||
Datasheet: On request through web form (http://www.via.com.tw/en/support/datasheets/)
|
Datasheet: On request through web form (http://www.via.com.tw/en/resources/download-center/)
|
||||||
|
|
||||||
Authors:
|
Authors:
|
||||||
Kyösti Mälkki <kmalkki@cc.hut.fi>,
|
Kyösti Mälkki <kmalkki@cc.hut.fi>,
|
||||||
|
@@ -5,23 +5,19 @@ Supported chips:
|
|||||||
* Winbond W83627HF (ISA accesses ONLY)
|
* Winbond W83627HF (ISA accesses ONLY)
|
||||||
Prefix: 'w83627hf'
|
Prefix: 'w83627hf'
|
||||||
Addresses scanned: ISA address retrieved from Super I/O registers
|
Addresses scanned: ISA address retrieved from Super I/O registers
|
||||||
Datasheet: http://www.winbond.com/PDF/sheet/w83627hf.pdf
|
|
||||||
* Winbond W83627THF
|
* Winbond W83627THF
|
||||||
Prefix: 'w83627thf'
|
Prefix: 'w83627thf'
|
||||||
Addresses scanned: ISA address retrieved from Super I/O registers
|
Addresses scanned: ISA address retrieved from Super I/O registers
|
||||||
Datasheet: http://www.winbond.com/PDF/sheet/w83627thf.pdf
|
|
||||||
* Winbond W83697HF
|
* Winbond W83697HF
|
||||||
Prefix: 'w83697hf'
|
Prefix: 'w83697hf'
|
||||||
Addresses scanned: ISA address retrieved from Super I/O registers
|
Addresses scanned: ISA address retrieved from Super I/O registers
|
||||||
Datasheet: http://www.winbond.com/PDF/sheet/697hf.pdf
|
|
||||||
* Winbond W83637HF
|
* Winbond W83637HF
|
||||||
Prefix: 'w83637hf'
|
Prefix: 'w83637hf'
|
||||||
Addresses scanned: ISA address retrieved from Super I/O registers
|
Addresses scanned: ISA address retrieved from Super I/O registers
|
||||||
Datasheet: http://www.winbond.com/PDF/sheet/w83637hf.pdf
|
|
||||||
* Winbond W83687THF
|
* Winbond W83687THF
|
||||||
Prefix: 'w83687thf'
|
Prefix: 'w83687thf'
|
||||||
Addresses scanned: ISA address retrieved from Super I/O registers
|
Addresses scanned: ISA address retrieved from Super I/O registers
|
||||||
Datasheet: Provided by Winbond on request
|
Datasheet: Provided by Winbond on request(http://www.winbond.com/hq/enu)
|
||||||
|
|
||||||
Authors:
|
Authors:
|
||||||
Frodo Looijaard <frodol@dds.nl>,
|
Frodo Looijaard <frodol@dds.nl>,
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user