2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-24 22:55:35 +08:00

Merge remote-tracking branch 'torvalds/master' into perf/urgent

To pick up BPF fixes to allow a clean 'make -C tools/perf build-test':

  7c3977d1e8 libbpf: Fix sym->st_value print on 32-bit arches
  1fd450f992 libbpf: Fix up generation of bpf_helper_defs.h

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Arnaldo Carvalho de Melo 2019-12-11 09:58:16 -03:00
commit 761bfc33dd
2693 changed files with 99809 additions and 41649 deletions

2
.gitattributes vendored
View File

@ -1,2 +1,4 @@
*.c diff=cpp *.c diff=cpp
*.h diff=cpp *.h diff=cpp
*.dtsi diff=dts
*.dts diff=dts

2
.gitignore vendored
View File

@ -32,7 +32,6 @@
*.lzo *.lzo
*.mod *.mod
*.mod.c *.mod.c
*.ns_deps
*.o *.o
*.o.* *.o.*
*.patch *.patch
@ -61,6 +60,7 @@ modules.order
/System.map /System.map
/Module.markers /Module.markers
/modules.builtin.modinfo /modules.builtin.modinfo
/modules.nsdeps
# #
# RPM spec file (make rpm-pkg) # RPM spec file (make rpm-pkg)

View File

@ -105,6 +105,9 @@ James E Wilson <wilson@specifix.com>
James Hogan <jhogan@kernel.org> <james.hogan@imgtec.com> James Hogan <jhogan@kernel.org> <james.hogan@imgtec.com>
James Hogan <jhogan@kernel.org> <james@albanarts.com> James Hogan <jhogan@kernel.org> <james@albanarts.com>
James Ketrenos <jketreno@io.(none)> James Ketrenos <jketreno@io.(none)>
Jan Glauber <jan.glauber@gmail.com> <jang@de.ibm.com>
Jan Glauber <jan.glauber@gmail.com> <jang@linux.vnet.ibm.com>
Jan Glauber <jan.glauber@gmail.com> <jglauber@cavium.com>
Jason Gunthorpe <jgg@ziepe.ca> <jgg@mellanox.com> Jason Gunthorpe <jgg@ziepe.ca> <jgg@mellanox.com>
Jason Gunthorpe <jgg@ziepe.ca> <jgunthorpe@obsidianresearch.com> Jason Gunthorpe <jgg@ziepe.ca> <jgunthorpe@obsidianresearch.com>
Javi Merino <javi.merino@kernel.org> <javi.merino@arm.com> Javi Merino <javi.merino@kernel.org> <javi.merino@arm.com>
@ -156,6 +159,7 @@ Mark Brown <broonie@sirena.org.uk>
Mark Yao <markyao0591@gmail.com> <mark.yao@rock-chips.com> Mark Yao <markyao0591@gmail.com> <mark.yao@rock-chips.com>
Martin Kepplinger <martink@posteo.de> <martin.kepplinger@theobroma-systems.com> Martin Kepplinger <martink@posteo.de> <martin.kepplinger@theobroma-systems.com>
Martin Kepplinger <martink@posteo.de> <martin.kepplinger@ginzinger.com> Martin Kepplinger <martink@posteo.de> <martin.kepplinger@ginzinger.com>
Martin Kepplinger <martink@posteo.de> <martin.kepplinger@puri.sm>
Mathieu Othacehe <m.othacehe@gmail.com> Mathieu Othacehe <m.othacehe@gmail.com>
Matthew Wilcox <willy@infradead.org> <matthew.r.wilcox@intel.com> Matthew Wilcox <willy@infradead.org> <matthew.r.wilcox@intel.com>
Matthew Wilcox <willy@infradead.org> <matthew@wil.cx> Matthew Wilcox <willy@infradead.org> <matthew@wil.cx>

View File

@ -1875,8 +1875,9 @@ S: The Netherlands
N: Martin Kepplinger N: Martin Kepplinger
E: martink@posteo.de E: martink@posteo.de
E: martin.kepplinger@ginzinger.com E: martin.kepplinger@puri.sm
W: http://www.martinkepplinger.com W: http://www.martinkepplinger.com
P: 4096R/5AB387D3 F208 2B88 0F9E 4239 3468 6E3F 5003 98DF 5AB3 87D3
D: mma8452 accelerators iio driver D: mma8452 accelerators iio driver
D: pegasus_notetaker input driver D: pegasus_notetaker input driver
D: Kernel fixes and cleanups D: Kernel fixes and cleanups

View File

@ -6,10 +6,19 @@ Description: Configures which IO port the host side of the UART
Users: OpenBMC. Proposed changes should be mailed to Users: OpenBMC. Proposed changes should be mailed to
openbmc@lists.ozlabs.org openbmc@lists.ozlabs.org
What: /sys/bus/platform/drivers/aspeed-vuart*/sirq What: /sys/bus/platform/drivers/aspeed-vuart/*/sirq
Date: April 2017 Date: April 2017
Contact: Jeremy Kerr <jk@ozlabs.org> Contact: Jeremy Kerr <jk@ozlabs.org>
Description: Configures which interrupt number the host side of Description: Configures which interrupt number the host side of
the UART will appear on the host <-> BMC LPC bus. the UART will appear on the host <-> BMC LPC bus.
Users: OpenBMC. Proposed changes should be mailed to Users: OpenBMC. Proposed changes should be mailed to
openbmc@lists.ozlabs.org openbmc@lists.ozlabs.org
What: /sys/bus/platform/drivers/aspeed-vuart/*/sirq_polarity
Date: July 2019
Contact: Oskar Senft <osk@google.com>
Description: Configures the polarity of the serial interrupt to the
host via the BMC LPC bus.
Set to 0 for active-low or 1 for active-high.
Users: OpenBMC. Proposed changes should be mailed to
openbmc@lists.ozlabs.org

View File

@ -1,4 +1,4 @@
What: /sys/bus/coresight/devices/<memory_map>.etm/enable_source What: /sys/bus/coresight/devices/etm<N>/enable_source
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
@ -8,82 +8,82 @@ Description: (RW) Enable/disable tracing on this specific trace entiry.
of coresight components linking the source to the sink is of coresight components linking the source to the sink is
configured and managed automatically by the coresight framework. configured and managed automatically by the coresight framework.
What: /sys/bus/coresight/devices/<memory_map>.etm/cpu What: /sys/bus/coresight/devices/etm<N>/cpu
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) The CPU this tracing entity is associated with. Description: (R) The CPU this tracing entity is associated with.
What: /sys/bus/coresight/devices/<memory_map>.etm/nr_pe_cmp What: /sys/bus/coresight/devices/etm<N>/nr_pe_cmp
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Indicates the number of PE comparator inputs that are Description: (R) Indicates the number of PE comparator inputs that are
available for tracing. available for tracing.
What: /sys/bus/coresight/devices/<memory_map>.etm/nr_addr_cmp What: /sys/bus/coresight/devices/etm<N>/nr_addr_cmp
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Indicates the number of address comparator pairs that are Description: (R) Indicates the number of address comparator pairs that are
available for tracing. available for tracing.
What: /sys/bus/coresight/devices/<memory_map>.etm/nr_cntr What: /sys/bus/coresight/devices/etm<N>/nr_cntr
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Indicates the number of counters that are available for Description: (R) Indicates the number of counters that are available for
tracing. tracing.
What: /sys/bus/coresight/devices/<memory_map>.etm/nr_ext_inp What: /sys/bus/coresight/devices/etm<N>/nr_ext_inp
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Indicates how many external inputs are implemented. Description: (R) Indicates how many external inputs are implemented.
What: /sys/bus/coresight/devices/<memory_map>.etm/numcidc What: /sys/bus/coresight/devices/etm<N>/numcidc
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Indicates the number of Context ID comparators that are Description: (R) Indicates the number of Context ID comparators that are
available for tracing. available for tracing.
What: /sys/bus/coresight/devices/<memory_map>.etm/numvmidc What: /sys/bus/coresight/devices/etm<N>/numvmidc
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Indicates the number of VMID comparators that are available Description: (R) Indicates the number of VMID comparators that are available
for tracing. for tracing.
What: /sys/bus/coresight/devices/<memory_map>.etm/nrseqstate What: /sys/bus/coresight/devices/etm<N>/nrseqstate
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Indicates the number of sequencer states that are Description: (R) Indicates the number of sequencer states that are
implemented. implemented.
What: /sys/bus/coresight/devices/<memory_map>.etm/nr_resource What: /sys/bus/coresight/devices/etm<N>/nr_resource
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Indicates the number of resource selection pairs that are Description: (R) Indicates the number of resource selection pairs that are
available for tracing. available for tracing.
What: /sys/bus/coresight/devices/<memory_map>.etm/nr_ss_cmp What: /sys/bus/coresight/devices/etm<N>/nr_ss_cmp
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Indicates the number of single-shot comparator controls that Description: (R) Indicates the number of single-shot comparator controls that
are available for tracing. are available for tracing.
What: /sys/bus/coresight/devices/<memory_map>.etm/reset What: /sys/bus/coresight/devices/etm<N>/reset
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (W) Cancels all configuration on a trace unit and set it back Description: (W) Cancels all configuration on a trace unit and set it back
to its boot configuration. to its boot configuration.
What: /sys/bus/coresight/devices/<memory_map>.etm/mode What: /sys/bus/coresight/devices/etm<N>/mode
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
@ -91,302 +91,349 @@ Description: (RW) Controls various modes supported by this ETM, for example
P0 instruction tracing, branch broadcast, cycle counting and P0 instruction tracing, branch broadcast, cycle counting and
context ID tracing. context ID tracing.
What: /sys/bus/coresight/devices/<memory_map>.etm/pe What: /sys/bus/coresight/devices/etm<N>/pe
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Controls which PE to trace. Description: (RW) Controls which PE to trace.
What: /sys/bus/coresight/devices/<memory_map>.etm/event What: /sys/bus/coresight/devices/etm<N>/event
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Controls the tracing of arbitrary events from bank 0 to 3. Description: (RW) Controls the tracing of arbitrary events from bank 0 to 3.
What: /sys/bus/coresight/devices/<memory_map>.etm/event_instren What: /sys/bus/coresight/devices/etm<N>/event_instren
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Controls the behavior of the events in bank 0 to 3. Description: (RW) Controls the behavior of the events in bank 0 to 3.
What: /sys/bus/coresight/devices/<memory_map>.etm/event_ts What: /sys/bus/coresight/devices/etm<N>/event_ts
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Controls the insertion of global timestamps in the trace Description: (RW) Controls the insertion of global timestamps in the trace
streams. streams.
What: /sys/bus/coresight/devices/<memory_map>.etm/syncfreq What: /sys/bus/coresight/devices/etm<N>/syncfreq
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Controls how often trace synchronization requests occur. Description: (RW) Controls how often trace synchronization requests occur.
What: /sys/bus/coresight/devices/<memory_map>.etm/cyc_threshold What: /sys/bus/coresight/devices/etm<N>/cyc_threshold
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Sets the threshold value for cycle counting. Description: (RW) Sets the threshold value for cycle counting.
What: /sys/bus/coresight/devices/<memory_map>.etm/bb_ctrl What: /sys/bus/coresight/devices/etm<N>/bb_ctrl
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Controls which regions in the memory map are enabled to Description: (RW) Controls which regions in the memory map are enabled to
use branch broadcasting. use branch broadcasting.
What: /sys/bus/coresight/devices/<memory_map>.etm/event_vinst What: /sys/bus/coresight/devices/etm<N>/event_vinst
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Controls instruction trace filtering. Description: (RW) Controls instruction trace filtering.
What: /sys/bus/coresight/devices/<memory_map>.etm/s_exlevel_vinst What: /sys/bus/coresight/devices/etm<N>/s_exlevel_vinst
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) In Secure state, each bit controls whether instruction Description: (RW) In Secure state, each bit controls whether instruction
tracing is enabled for the corresponding exception level. tracing is enabled for the corresponding exception level.
What: /sys/bus/coresight/devices/<memory_map>.etm/ns_exlevel_vinst What: /sys/bus/coresight/devices/etm<N>/ns_exlevel_vinst
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) In non-secure state, each bit controls whether instruction Description: (RW) In non-secure state, each bit controls whether instruction
tracing is enabled for the corresponding exception level. tracing is enabled for the corresponding exception level.
What: /sys/bus/coresight/devices/<memory_map>.etm/addr_idx What: /sys/bus/coresight/devices/etm<N>/addr_idx
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Select which address comparator or pair (of comparators) to Description: (RW) Select which address comparator or pair (of comparators) to
work with. work with.
What: /sys/bus/coresight/devices/<memory_map>.etm/addr_instdatatype What: /sys/bus/coresight/devices/etm<N>/addr_instdatatype
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Controls what type of comparison the trace unit performs. Description: (RW) Controls what type of comparison the trace unit performs.
What: /sys/bus/coresight/devices/<memory_map>.etm/addr_single What: /sys/bus/coresight/devices/etm<N>/addr_single
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Used to setup single address comparator values. Description: (RW) Used to setup single address comparator values.
What: /sys/bus/coresight/devices/<memory_map>.etm/addr_range What: /sys/bus/coresight/devices/etm<N>/addr_range
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Used to setup address range comparator values. Description: (RW) Used to setup address range comparator values.
What: /sys/bus/coresight/devices/<memory_map>.etm/seq_idx What: /sys/bus/coresight/devices/etm<N>/seq_idx
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Select which sequensor. Description: (RW) Select which sequensor.
What: /sys/bus/coresight/devices/<memory_map>.etm/seq_state What: /sys/bus/coresight/devices/etm<N>/seq_state
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Use this to set, or read, the sequencer state. Description: (RW) Use this to set, or read, the sequencer state.
What: /sys/bus/coresight/devices/<memory_map>.etm/seq_event What: /sys/bus/coresight/devices/etm<N>/seq_event
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Moves the sequencer state to a specific state. Description: (RW) Moves the sequencer state to a specific state.
What: /sys/bus/coresight/devices/<memory_map>.etm/seq_reset_event What: /sys/bus/coresight/devices/etm<N>/seq_reset_event
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Moves the sequencer to state 0 when a programmed event Description: (RW) Moves the sequencer to state 0 when a programmed event
occurs. occurs.
What: /sys/bus/coresight/devices/<memory_map>.etm/cntr_idx What: /sys/bus/coresight/devices/etm<N>/cntr_idx
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Select which counter unit to work with. Description: (RW) Select which counter unit to work with.
What: /sys/bus/coresight/devices/<memory_map>.etm/cntrldvr What: /sys/bus/coresight/devices/etm<N>/cntrldvr
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) This sets or returns the reload count value of the Description: (RW) This sets or returns the reload count value of the
specific counter. specific counter.
What: /sys/bus/coresight/devices/<memory_map>.etm/cntr_val What: /sys/bus/coresight/devices/etm<N>/cntr_val
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) This sets or returns the current count value of the Description: (RW) This sets or returns the current count value of the
specific counter. specific counter.
What: /sys/bus/coresight/devices/<memory_map>.etm/cntr_ctrl What: /sys/bus/coresight/devices/etm<N>/cntr_ctrl
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Controls the operation of the selected counter. Description: (RW) Controls the operation of the selected counter.
What: /sys/bus/coresight/devices/<memory_map>.etm/res_idx What: /sys/bus/coresight/devices/etm<N>/res_idx
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Select which resource selection unit to work with. Description: (RW) Select which resource selection unit to work with.
What: /sys/bus/coresight/devices/<memory_map>.etm/res_ctrl What: /sys/bus/coresight/devices/etm<N>/res_ctrl
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Controls the selection of the resources in the trace unit. Description: (RW) Controls the selection of the resources in the trace unit.
What: /sys/bus/coresight/devices/<memory_map>.etm/ctxid_idx What: /sys/bus/coresight/devices/etm<N>/ctxid_idx
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Select which context ID comparator to work with. Description: (RW) Select which context ID comparator to work with.
What: /sys/bus/coresight/devices/<memory_map>.etm/ctxid_pid What: /sys/bus/coresight/devices/etm<N>/ctxid_pid
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Get/Set the context ID comparator value to trigger on. Description: (RW) Get/Set the context ID comparator value to trigger on.
What: /sys/bus/coresight/devices/<memory_map>.etm/ctxid_masks What: /sys/bus/coresight/devices/etm<N>/ctxid_masks
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Mask for all 8 context ID comparator value Description: (RW) Mask for all 8 context ID comparator value
registers (if implemented). registers (if implemented).
What: /sys/bus/coresight/devices/<memory_map>.etm/vmid_idx What: /sys/bus/coresight/devices/etm<N>/vmid_idx
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Select which virtual machine ID comparator to work with. Description: (RW) Select which virtual machine ID comparator to work with.
What: /sys/bus/coresight/devices/<memory_map>.etm/vmid_val What: /sys/bus/coresight/devices/etm<N>/vmid_val
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Get/Set the virtual machine ID comparator value to Description: (RW) Get/Set the virtual machine ID comparator value to
trigger on. trigger on.
What: /sys/bus/coresight/devices/<memory_map>.etm/vmid_masks What: /sys/bus/coresight/devices/etm<N>/vmid_masks
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Mask for all 8 virtual machine ID comparator value Description: (RW) Mask for all 8 virtual machine ID comparator value
registers (if implemented). registers (if implemented).
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trcoslsr What: /sys/bus/coresight/devices/etm<N>/addr_exlevel_s_ns
Date: December 2019
KernelVersion: 5.5
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Set the Exception Level matching bits for secure and
non-secure exception levels.
What: /sys/bus/coresight/devices/etm<N>/vinst_pe_cmp_start_stop
Date: December 2019
KernelVersion: 5.5
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Access the start stop control register for PE input
comparators.
What: /sys/bus/coresight/devices/etm<N>/addr_cmp_view
Date: December 2019
KernelVersion: 5.5
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Print the current settings for the selected address
comparator.
What: /sys/bus/coresight/devices/etm<N>/sshot_idx
Date: December 2019
KernelVersion: 5.5
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Select the single shot control register to access.
What: /sys/bus/coresight/devices/etm<N>/sshot_ctrl
Date: December 2019
KernelVersion: 5.5
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Access the selected single shot control register.
What: /sys/bus/coresight/devices/etm<N>/sshot_status
Date: December 2019
KernelVersion: 5.5
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Print the current value of the selected single shot
status register.
What: /sys/bus/coresight/devices/etm<N>/sshot_pe_ctrl
Date: December 2019
KernelVersion: 5.5
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Access the selected single show PE comparator control
register.
What: /sys/bus/coresight/devices/etm<N>/mgmt/trcoslsr
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Print the content of the OS Lock Status Register (0x304). Description: (R) Print the content of the OS Lock Status Register (0x304).
The value it taken directly from the HW. The value it taken directly from the HW.
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trcpdcr What: /sys/bus/coresight/devices/etm<N>/mgmt/trcpdcr
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Print the content of the Power Down Control Register Description: (R) Print the content of the Power Down Control Register
(0x310). The value is taken directly from the HW. (0x310). The value is taken directly from the HW.
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trcpdsr What: /sys/bus/coresight/devices/etm<N>/mgmt/trcpdsr
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Print the content of the Power Down Status Register Description: (R) Print the content of the Power Down Status Register
(0x314). The value is taken directly from the HW. (0x314). The value is taken directly from the HW.
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trclsr What: /sys/bus/coresight/devices/etm<N>/mgmt/trclsr
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Print the content of the SW Lock Status Register Description: (R) Print the content of the SW Lock Status Register
(0xFB4). The value is taken directly from the HW. (0xFB4). The value is taken directly from the HW.
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trcauthstatus What: /sys/bus/coresight/devices/etm<N>/mgmt/trcauthstatus
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Print the content of the Authentication Status Register Description: (R) Print the content of the Authentication Status Register
(0xFB8). The value is taken directly from the HW. (0xFB8). The value is taken directly from the HW.
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trcdevid What: /sys/bus/coresight/devices/etm<N>/mgmt/trcdevid
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Print the content of the Device ID Register Description: (R) Print the content of the Device ID Register
(0xFC8). The value is taken directly from the HW. (0xFC8). The value is taken directly from the HW.
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trcdevtype What: /sys/bus/coresight/devices/etm<N>/mgmt/trcdevtype
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Print the content of the Device Type Register Description: (R) Print the content of the Device Type Register
(0xFCC). The value is taken directly from the HW. (0xFCC). The value is taken directly from the HW.
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trcpidr0 What: /sys/bus/coresight/devices/etm<N>/mgmt/trcpidr0
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Print the content of the Peripheral ID0 Register Description: (R) Print the content of the Peripheral ID0 Register
(0xFE0). The value is taken directly from the HW. (0xFE0). The value is taken directly from the HW.
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trcpidr1 What: /sys/bus/coresight/devices/etm<N>/mgmt/trcpidr1
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Print the content of the Peripheral ID1 Register Description: (R) Print the content of the Peripheral ID1 Register
(0xFE4). The value is taken directly from the HW. (0xFE4). The value is taken directly from the HW.
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trcpidr2 What: /sys/bus/coresight/devices/etm<N>/mgmt/trcpidr2
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Print the content of the Peripheral ID2 Register Description: (R) Print the content of the Peripheral ID2 Register
(0xFE8). The value is taken directly from the HW. (0xFE8). The value is taken directly from the HW.
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trcpidr3 What: /sys/bus/coresight/devices/etm<N>/mgmt/trcpidr3
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Print the content of the Peripheral ID3 Register Description: (R) Print the content of the Peripheral ID3 Register
(0xFEC). The value is taken directly from the HW. (0xFEC). The value is taken directly from the HW.
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trcconfig What: /sys/bus/coresight/devices/etm<N>/mgmt/trcconfig
Date: February 2016 Date: February 2016
KernelVersion: 4.07 KernelVersion: 4.07
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Print the content of the trace configuration register Description: (R) Print the content of the trace configuration register
(0x010) as currently set by SW. (0x010) as currently set by SW.
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trctraceid What: /sys/bus/coresight/devices/etm<N>/mgmt/trctraceid
Date: February 2016 Date: February 2016
KernelVersion: 4.07 KernelVersion: 4.07
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Print the content of the trace ID register (0x040). Description: (R) Print the content of the trace ID register (0x040).
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr0 What: /sys/bus/coresight/devices/etm<N>/trcidr/trcidr0
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Returns the tracing capabilities of the trace unit (0x1E0). Description: (R) Returns the tracing capabilities of the trace unit (0x1E0).
The value is taken directly from the HW. The value is taken directly from the HW.
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr1 What: /sys/bus/coresight/devices/etm<N>/trcidr/trcidr1
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Returns the tracing capabilities of the trace unit (0x1E4). Description: (R) Returns the tracing capabilities of the trace unit (0x1E4).
The value is taken directly from the HW. The value is taken directly from the HW.
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr2 What: /sys/bus/coresight/devices/etm<N>/trcidr/trcidr2
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
@ -394,7 +441,7 @@ Description: (R) Returns the maximum size of the data value, data address,
VMID, context ID and instuction address in the trace unit VMID, context ID and instuction address in the trace unit
(0x1E8). The value is taken directly from the HW. (0x1E8). The value is taken directly from the HW.
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr3 What: /sys/bus/coresight/devices/etm<N>/trcidr/trcidr3
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
@ -403,42 +450,42 @@ Description: (R) Returns the value associated with various resources
architecture specification for more details (0x1E8). architecture specification for more details (0x1E8).
The value is taken directly from the HW. The value is taken directly from the HW.
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr4 What: /sys/bus/coresight/devices/etm<N>/trcidr/trcidr4
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Returns how many resources the trace unit supports (0x1F0). Description: (R) Returns how many resources the trace unit supports (0x1F0).
The value is taken directly from the HW. The value is taken directly from the HW.
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr5 What: /sys/bus/coresight/devices/etm<N>/trcidr/trcidr5
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Returns how many resources the trace unit supports (0x1F4). Description: (R) Returns how many resources the trace unit supports (0x1F4).
The value is taken directly from the HW. The value is taken directly from the HW.
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr8 What: /sys/bus/coresight/devices/etm<N>/trcidr/trcidr8
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Returns the maximum speculation depth of the instruction Description: (R) Returns the maximum speculation depth of the instruction
trace stream. (0x180). The value is taken directly from the HW. trace stream. (0x180). The value is taken directly from the HW.
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr9 What: /sys/bus/coresight/devices/etm<N>/trcidr/trcidr9
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Returns the number of P0 right-hand keys that the trace unit Description: (R) Returns the number of P0 right-hand keys that the trace unit
can use (0x184). The value is taken directly from the HW. can use (0x184). The value is taken directly from the HW.
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr10 What: /sys/bus/coresight/devices/etm<N>/trcidr/trcidr10
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (R) Returns the number of P1 right-hand keys that the trace unit Description: (R) Returns the number of P1 right-hand keys that the trace unit
can use (0x188). The value is taken directly from the HW. can use (0x188). The value is taken directly from the HW.
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr11 What: /sys/bus/coresight/devices/etm<N>/trcidr/trcidr11
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
@ -446,7 +493,7 @@ Description: (R) Returns the number of special P1 right-hand keys that the
trace unit can use (0x18C). The value is taken directly from trace unit can use (0x18C). The value is taken directly from
the HW. the HW.
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr12 What: /sys/bus/coresight/devices/etm<N>/trcidr/trcidr12
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
@ -454,7 +501,7 @@ Description: (R) Returns the number of conditional P1 right-hand keys that
the trace unit can use (0x190). The value is taken directly the trace unit can use (0x190). The value is taken directly
from the HW. from the HW.
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr13 What: /sys/bus/coresight/devices/etm<N>/trcidr/trcidr13
Date: April 2015 Date: April 2015
KernelVersion: 4.01 KernelVersion: 4.01
Contact: Mathieu Poirier <mathieu.poirier@linaro.org> Contact: Mathieu Poirier <mathieu.poirier@linaro.org>

View File

@ -347,3 +347,16 @@ Description:
If the device has any Peer-to-Peer memory registered, this If the device has any Peer-to-Peer memory registered, this
file contains a '1' if the memory has been published for file contains a '1' if the memory has been published for
use outside the driver that owns the device. use outside the driver that owns the device.
What: /sys/bus/pci/devices/.../link/clkpm
/sys/bus/pci/devices/.../link/l0s_aspm
/sys/bus/pci/devices/.../link/l1_aspm
/sys/bus/pci/devices/.../link/l1_1_aspm
/sys/bus/pci/devices/.../link/l1_2_aspm
/sys/bus/pci/devices/.../link/l1_1_pcipm
/sys/bus/pci/devices/.../link/l1_2_pcipm
Date: October 2019
Contact: Heiner Kallweit <hkallweit1@gmail.com>
Description: If ASPM is supported for an endpoint, these files can be
used to disable or enable the individual power management
states. Write y/1/on to enable, n/0/off to disable.

View File

@ -31,6 +31,23 @@ Description:
Output will a version string be similar to the example below: Output will a version string be similar to the example below:
08B6 08B6
What: /sys/bus/platform/devices/GOOG000C\:00/usb_charge
Date: October 2019
KernelVersion: 5.5
Description:
Control the USB PowerShare Policy. USB PowerShare is a policy
which affects charging via the special USB PowerShare port
(marked with a small lightning bolt or battery icon) when in
low power states:
- In S0, the port will always provide power.
- In S0ix, if usb_charge is enabled, then power will be
supplied to the port when on AC or if battery is > 50%.
Else no power is supplied.
- In S5, if usb_charge is enabled, then power will be supplied
to the port when on AC. Else no power is supplied.
Input should be either "0" or "1".
What: /sys/bus/platform/devices/GOOG000C\:00/version What: /sys/bus/platform/devices/GOOG000C\:00/version
Date: May 2019 Date: May 2019
KernelVersion: 5.3 KernelVersion: 5.3

View File

@ -13,7 +13,7 @@ endif
SPHINXBUILD = sphinx-build SPHINXBUILD = sphinx-build
SPHINXOPTS = SPHINXOPTS =
SPHINXDIRS = . SPHINXDIRS = .
_SPHINXDIRS = $(patsubst $(srctree)/Documentation/%/conf.py,%,$(wildcard $(srctree)/Documentation/*/conf.py)) _SPHINXDIRS = $(patsubst $(srctree)/Documentation/%/index.rst,%,$(wildcard $(srctree)/Documentation/*/index.rst))
SPHINX_CONF = conf.py SPHINX_CONF = conf.py
PAPER = PAPER =
BUILDDIR = $(obj)/output BUILDDIR = $(obj)/output
@ -33,8 +33,6 @@ ifeq ($(HAVE_SPHINX),0)
else # HAVE_SPHINX else # HAVE_SPHINX
export SPHINXOPTS = $(shell perl -e 'open IN,"sphinx-build --version 2>&1 |"; while (<IN>) { if (m/([\d\.]+)/) { print "-jauto" if ($$1 >= "1.7") } ;} close IN')
# User-friendly check for pdflatex and latexmk # User-friendly check for pdflatex and latexmk
HAVE_PDFLATEX := $(shell if which $(PDFLATEX) >/dev/null 2>&1; then echo 1; else echo 0; fi) HAVE_PDFLATEX := $(shell if which $(PDFLATEX) >/dev/null 2>&1; then echo 1; else echo 0; fi)
HAVE_LATEXMK := $(shell if which latexmk >/dev/null 2>&1; then echo 1; else echo 0; fi) HAVE_LATEXMK := $(shell if which latexmk >/dev/null 2>&1; then echo 1; else echo 0; fi)
@ -67,6 +65,8 @@ quiet_cmd_sphinx = SPHINX $@ --> file://$(abspath $(BUILDDIR)/$3/$4)
cmd_sphinx = $(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/media $2 && \ cmd_sphinx = $(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/media $2 && \
PYTHONDONTWRITEBYTECODE=1 \ PYTHONDONTWRITEBYTECODE=1 \
BUILDDIR=$(abspath $(BUILDDIR)) SPHINX_CONF=$(abspath $(srctree)/$(src)/$5/$(SPHINX_CONF)) \ BUILDDIR=$(abspath $(BUILDDIR)) SPHINX_CONF=$(abspath $(srctree)/$(src)/$5/$(SPHINX_CONF)) \
$(PYTHON) $(srctree)/scripts/jobserver-exec \
$(SHELL) $(srctree)/Documentation/sphinx/parallel-wrapper.sh \
$(SPHINXBUILD) \ $(SPHINXBUILD) \
-b $2 \ -b $2 \
-c $(abspath $(srctree)/$(src)) \ -c $(abspath $(srctree)/$(src)) \
@ -128,8 +128,10 @@ dochelp:
@echo ' pdfdocs - PDF' @echo ' pdfdocs - PDF'
@echo ' epubdocs - EPUB' @echo ' epubdocs - EPUB'
@echo ' xmldocs - XML' @echo ' xmldocs - XML'
@echo ' linkcheckdocs - check for broken external links (will connect to external hosts)' @echo ' linkcheckdocs - check for broken external links'
@echo ' refcheckdocs - check for references to non-existing files under Documentation' @echo ' (will connect to external hosts)'
@echo ' refcheckdocs - check for references to non-existing files under'
@echo ' Documentation'
@echo ' cleandocs - clean all generated files' @echo ' cleandocs - clean all generated files'
@echo @echo
@echo ' make SPHINXDIRS="s1 s2" [target] Generate only docs of folder s1, s2' @echo ' make SPHINXDIRS="s1 s2" [target] Generate only docs of folder s1, s2'

View File

@ -56,7 +56,7 @@ setid capabilities from the application completely and refactor the process
spawning semantics in the application (e.g. by using a privileged helper program spawning semantics in the application (e.g. by using a privileged helper program
to do process spawning and UID/GID transitions). Unfortunately, there are a to do process spawning and UID/GID transitions). Unfortunately, there are a
number of semantics around process spawning that would be affected by this, such number of semantics around process spawning that would be affected by this, such
as fork() calls where the program doesn???t immediately call exec() after the as fork() calls where the program doesn't immediately call exec() after the
fork(), parent processes specifying custom environment variables or command line fork(), parent processes specifying custom environment variables or command line
args for spawned child processes, or inheritance of file handles across a args for spawned child processes, or inheritance of file handles across a
fork()/exec(). Because of this, as solution that uses a privileged helper in fork()/exec(). Because of this, as solution that uses a privileged helper in
@ -72,7 +72,7 @@ own user namespace, and only approved UIDs/GIDs could be mapped back to the
initial system user namespace, affectively preventing privilege escalation. initial system user namespace, affectively preventing privilege escalation.
Unfortunately, it is not generally feasible to use user namespaces in isolation, Unfortunately, it is not generally feasible to use user namespaces in isolation,
without pairing them with other namespace types, which is not always an option. without pairing them with other namespace types, which is not always an option.
Linux checks for capabilities based off of the user namespace that ???owns??? some Linux checks for capabilities based off of the user namespace that "owns" some
entity. For example, Linux has the notion that network namespaces are owned by entity. For example, Linux has the notion that network namespaces are owned by
the user namespace in which they were created. A consequence of this is that the user namespace in which they were created. A consequence of this is that
capability checks for access to a given network namespace are done by checking capability checks for access to a given network namespace are done by checking

View File

@ -1120,8 +1120,9 @@ PAGE_SIZE multiple when read back.
Best-effort memory protection. If the memory usage of a Best-effort memory protection. If the memory usage of a
cgroup is within its effective low boundary, the cgroup's cgroup is within its effective low boundary, the cgroup's
memory won't be reclaimed unless memory can be reclaimed memory won't be reclaimed unless there is no reclaimable
from unprotected cgroups. Above the effective low boundary (or memory available in unprotected cgroups.
Above the effective low boundary (or
effective min boundary if it is higher), pages are reclaimed effective min boundary if it is higher), pages are reclaimed
proportionally to the overage, reducing reclaim pressure for proportionally to the overage, reducing reclaim pressure for
smaller overages. smaller overages.
@ -1925,7 +1926,7 @@ Cpuset Interface Files
It accepts only the following input values when written to. It accepts only the following input values when written to.
"root" - a paritition root "root" - a partition root
"member" - a non-root member of a partition "member" - a non-root member of a partition
When set to be a partition root, the current cgroup is the When set to be a partition root, the current cgroup is the

View File

@ -1,11 +1,11 @@
============================================================= =========================================
Usage of the new open sourced rbu (Remote BIOS Update) driver Dell Remote BIOS Update driver (dell_rbu)
============================================================= =========================================
Purpose Purpose
======= =======
Document demonstrating the use of the Dell Remote BIOS Update driver. Document demonstrating the use of the Dell Remote BIOS Update driver
for updating BIOS images on Dell servers and desktops. for updating BIOS images on Dell servers and desktops.
Scope Scope
@ -37,7 +37,7 @@ maintains a link list of packets for reading them back.
If the dell_rbu driver is unloaded all the allocated memory is freed. If the dell_rbu driver is unloaded all the allocated memory is freed.
The rbu driver needs to have an application (as mentioned above)which will The rbu driver needs to have an application (as mentioned above) which will
inform the BIOS to enable the update in the next system reboot. inform the BIOS to enable the update in the next system reboot.
The user should not unload the rbu driver after downloading the BIOS image The user should not unload the rbu driver after downloading the BIOS image
@ -71,7 +71,7 @@ be downloaded. It is done as below::
echo XXXX > /sys/devices/platform/dell_rbu/packet_size echo XXXX > /sys/devices/platform/dell_rbu/packet_size
In the packet update mechanism, the user needs to create a new file having In the packet update mechanism, the user needs to create a new file having
packets of data arranged back to back. It can be done as follows packets of data arranged back to back. It can be done as follows:
The user creates packets header, gets the chunk of the BIOS image and The user creates packets header, gets the chunk of the BIOS image and
places it next to the packetheader; now, the packetheader + BIOS image chunk places it next to the packetheader; now, the packetheader + BIOS image chunk
added together should match the specified packet_size. This makes one added together should match the specified packet_size. This makes one
@ -114,7 +114,7 @@ The entries can be recreated by doing the following::
echo init > /sys/devices/platform/dell_rbu/image_type echo init > /sys/devices/platform/dell_rbu/image_type
.. note:: echoing init in image_type does not change it original value. .. note:: echoing init in image_type does not change its original value.
Also the driver provides /sys/devices/platform/dell_rbu/data readonly file to Also the driver provides /sys/devices/platform/dell_rbu/data readonly file to
read back the image downloaded. read back the image downloaded.

View File

@ -31,218 +31,233 @@ configured "bad blocks" will be treated as bad, or bypassed.
This allows the pre-writing of test data and metadata prior to This allows the pre-writing of test data and metadata prior to
simulating a "failure" event where bad sectors start to appear. simulating a "failure" event where bad sectors start to appear.
Table parameters: Table parameters
----------------- ----------------
<device_path> <offset> <blksz> <device_path> <offset> <blksz>
Mandatory parameters: Mandatory parameters:
<device_path>: path to the block device. <device_path>:
<offset>: offset to data area from start of device_path Path to the block device.
<blksz>: block size in bytes
<offset>:
Offset to data area from start of device_path
<blksz>:
Block size in bytes
(minimum 512, maximum 1073741824, must be a power of 2) (minimum 512, maximum 1073741824, must be a power of 2)
Usage instructions: Usage instructions
------------------- ------------------
First, find the size (in 512-byte sectors) of the device to be used: First, find the size (in 512-byte sectors) of the device to be used::
$ sudo blockdev --getsz /dev/vdb1 $ sudo blockdev --getsz /dev/vdb1
33552384 33552384
Create the dm-dust device: Create the dm-dust device:
(For a device with a block size of 512 bytes) (For a device with a block size of 512 bytes)
$ sudo dmsetup create dust1 --table '0 33552384 dust /dev/vdb1 0 512'
::
$ sudo dmsetup create dust1 --table '0 33552384 dust /dev/vdb1 0 512'
(For a device with a block size of 4096 bytes) (For a device with a block size of 4096 bytes)
$ sudo dmsetup create dust1 --table '0 33552384 dust /dev/vdb1 0 4096'
::
$ sudo dmsetup create dust1 --table '0 33552384 dust /dev/vdb1 0 4096'
Check the status of the read behavior ("bypass" indicates that all I/O Check the status of the read behavior ("bypass" indicates that all I/O
will be passed through to the underlying device): will be passed through to the underlying device)::
$ sudo dmsetup status dust1
0 33552384 dust 252:17 bypass
$ sudo dd if=/dev/mapper/dust1 of=/dev/null bs=512 count=128 iflag=direct $ sudo dmsetup status dust1
128+0 records in 0 33552384 dust 252:17 bypass
128+0 records out
$ sudo dd if=/dev/zero of=/dev/mapper/dust1 bs=512 count=128 oflag=direct $ sudo dd if=/dev/mapper/dust1 of=/dev/null bs=512 count=128 iflag=direct
128+0 records in 128+0 records in
128+0 records out 128+0 records out
Adding and removing bad blocks: $ sudo dd if=/dev/zero of=/dev/mapper/dust1 bs=512 count=128 oflag=direct
------------------------------- 128+0 records in
128+0 records out
Adding and removing bad blocks
------------------------------
At any time (i.e.: whether the device has the "bad block" emulation At any time (i.e.: whether the device has the "bad block" emulation
enabled or disabled), bad blocks may be added or removed from the enabled or disabled), bad blocks may be added or removed from the
device via the "addbadblock" and "removebadblock" messages: device via the "addbadblock" and "removebadblock" messages::
$ sudo dmsetup message dust1 0 addbadblock 60 $ sudo dmsetup message dust1 0 addbadblock 60
kernel: device-mapper: dust: badblock added at block 60 kernel: device-mapper: dust: badblock added at block 60
$ sudo dmsetup message dust1 0 addbadblock 67 $ sudo dmsetup message dust1 0 addbadblock 67
kernel: device-mapper: dust: badblock added at block 67 kernel: device-mapper: dust: badblock added at block 67
$ sudo dmsetup message dust1 0 addbadblock 72 $ sudo dmsetup message dust1 0 addbadblock 72
kernel: device-mapper: dust: badblock added at block 72 kernel: device-mapper: dust: badblock added at block 72
These bad blocks will be stored in the "bad block list". These bad blocks will be stored in the "bad block list".
While the device is in "bypass" mode, reads and writes will succeed: While the device is in "bypass" mode, reads and writes will succeed::
$ sudo dmsetup status dust1 $ sudo dmsetup status dust1
0 33552384 dust 252:17 bypass 0 33552384 dust 252:17 bypass
Enabling block read failures: Enabling block read failures
----------------------------- ----------------------------
To enable the "fail read on bad block" behavior, send the "enable" message: To enable the "fail read on bad block" behavior, send the "enable" message::
$ sudo dmsetup message dust1 0 enable $ sudo dmsetup message dust1 0 enable
kernel: device-mapper: dust: enabling read failures on bad sectors kernel: device-mapper: dust: enabling read failures on bad sectors
$ sudo dmsetup status dust1 $ sudo dmsetup status dust1
0 33552384 dust 252:17 fail_read_on_bad_block 0 33552384 dust 252:17 fail_read_on_bad_block
With the device in "fail read on bad block" mode, attempting to read a With the device in "fail read on bad block" mode, attempting to read a
block will encounter an "Input/output error": block will encounter an "Input/output error"::
$ sudo dd if=/dev/mapper/dust1 of=/dev/null bs=512 count=1 skip=67 iflag=direct $ sudo dd if=/dev/mapper/dust1 of=/dev/null bs=512 count=1 skip=67 iflag=direct
dd: error reading '/dev/mapper/dust1': Input/output error dd: error reading '/dev/mapper/dust1': Input/output error
0+0 records in 0+0 records in
0+0 records out 0+0 records out
0 bytes copied, 0.00040651 s, 0.0 kB/s 0 bytes copied, 0.00040651 s, 0.0 kB/s
...and writing to the bad blocks will remove the blocks from the list, ...and writing to the bad blocks will remove the blocks from the list,
therefore emulating the "remap" behavior of hard disk drives: therefore emulating the "remap" behavior of hard disk drives::
$ sudo dd if=/dev/zero of=/dev/mapper/dust1 bs=512 count=128 oflag=direct $ sudo dd if=/dev/zero of=/dev/mapper/dust1 bs=512 count=128 oflag=direct
128+0 records in 128+0 records in
128+0 records out 128+0 records out
kernel: device-mapper: dust: block 60 removed from badblocklist by write kernel: device-mapper: dust: block 60 removed from badblocklist by write
kernel: device-mapper: dust: block 67 removed from badblocklist by write kernel: device-mapper: dust: block 67 removed from badblocklist by write
kernel: device-mapper: dust: block 72 removed from badblocklist by write kernel: device-mapper: dust: block 72 removed from badblocklist by write
kernel: device-mapper: dust: block 87 removed from badblocklist by write kernel: device-mapper: dust: block 87 removed from badblocklist by write
Bad block add/remove error handling: Bad block add/remove error handling
------------------------------------ -----------------------------------
Attempting to add a bad block that already exists in the list will Attempting to add a bad block that already exists in the list will
result in an "Invalid argument" error, as well as a helpful message: result in an "Invalid argument" error, as well as a helpful message::
$ sudo dmsetup message dust1 0 addbadblock 88 $ sudo dmsetup message dust1 0 addbadblock 88
device-mapper: message ioctl on dust1 failed: Invalid argument device-mapper: message ioctl on dust1 failed: Invalid argument
kernel: device-mapper: dust: block 88 already in badblocklist kernel: device-mapper: dust: block 88 already in badblocklist
Attempting to remove a bad block that doesn't exist in the list will Attempting to remove a bad block that doesn't exist in the list will
result in an "Invalid argument" error, as well as a helpful message: result in an "Invalid argument" error, as well as a helpful message::
$ sudo dmsetup message dust1 0 removebadblock 87 $ sudo dmsetup message dust1 0 removebadblock 87
device-mapper: message ioctl on dust1 failed: Invalid argument device-mapper: message ioctl on dust1 failed: Invalid argument
kernel: device-mapper: dust: block 87 not found in badblocklist kernel: device-mapper: dust: block 87 not found in badblocklist
Counting the number of bad blocks in the bad block list: Counting the number of bad blocks in the bad block list
-------------------------------------------------------- -------------------------------------------------------
To count the number of bad blocks configured in the device, run the To count the number of bad blocks configured in the device, run the
following message command: following message command::
$ sudo dmsetup message dust1 0 countbadblocks $ sudo dmsetup message dust1 0 countbadblocks
A message will print with the number of bad blocks currently A message will print with the number of bad blocks currently
configured on the device: configured on the device::
kernel: device-mapper: dust: countbadblocks: 895 badblock(s) found kernel: device-mapper: dust: countbadblocks: 895 badblock(s) found
Querying for specific bad blocks: Querying for specific bad blocks
--------------------------------- --------------------------------
To find out if a specific block is in the bad block list, run the To find out if a specific block is in the bad block list, run the
following message command: following message command::
$ sudo dmsetup message dust1 0 queryblock 72 $ sudo dmsetup message dust1 0 queryblock 72
The following message will print if the block is in the list: The following message will print if the block is in the list::
device-mapper: dust: queryblock: block 72 found in badblocklist
The following message will print if the block is in the list: device-mapper: dust: queryblock: block 72 found in badblocklist
device-mapper: dust: queryblock: block 72 not found in badblocklist
The following message will print if the block is not in the list::
device-mapper: dust: queryblock: block 72 not found in badblocklist
The "queryblock" message command will work in both the "enabled" The "queryblock" message command will work in both the "enabled"
and "disabled" modes, allowing the verification of whether a block and "disabled" modes, allowing the verification of whether a block
will be treated as "bad" without having to issue I/O to the device, will be treated as "bad" without having to issue I/O to the device,
or having to "enable" the bad block emulation. or having to "enable" the bad block emulation.
Clearing the bad block list: Clearing the bad block list
---------------------------- ---------------------------
To clear the bad block list (without needing to individually run To clear the bad block list (without needing to individually run
a "removebadblock" message command for every block), run the a "removebadblock" message command for every block), run the
following message command: following message command::
$ sudo dmsetup message dust1 0 clearbadblocks $ sudo dmsetup message dust1 0 clearbadblocks
After clearing the bad block list, the following message will appear: After clearing the bad block list, the following message will appear::
kernel: device-mapper: dust: clearbadblocks: badblocks cleared kernel: device-mapper: dust: clearbadblocks: badblocks cleared
If there were no bad blocks to clear, the following message will If there were no bad blocks to clear, the following message will
appear: appear::
kernel: device-mapper: dust: clearbadblocks: no badblocks found kernel: device-mapper: dust: clearbadblocks: no badblocks found
Message commands list: Message commands list
---------------------- ---------------------
Below is a list of the messages that can be sent to a dust device: Below is a list of the messages that can be sent to a dust device:
Operations on blocks (requires a <blknum> argument): Operations on blocks (requires a <blknum> argument)::
addbadblock <blknum> addbadblock <blknum>
queryblock <blknum> queryblock <blknum>
removebadblock <blknum> removebadblock <blknum>
...where <blknum> is a block number within range of the device ...where <blknum> is a block number within range of the device
(corresponding to the block size of the device.) (corresponding to the block size of the device.)
Single argument message commands: Single argument message commands::
countbadblocks countbadblocks
clearbadblocks clearbadblocks
disable disable
enable enable
quiet quiet
Device removal: Device removal
--------------- --------------
When finished, remove the device via the "dmsetup remove" command: When finished, remove the device via the "dmsetup remove" command::
$ sudo dmsetup remove dust1 $ sudo dmsetup remove dust1
Quiet mode: Quiet mode
----------- ----------
On test runs with many bad blocks, it may be desirable to avoid On test runs with many bad blocks, it may be desirable to avoid
excessive logging (from bad blocks added, removed, or "remapped"). excessive logging (from bad blocks added, removed, or "remapped").
This can be done by enabling "quiet mode" via the following message: This can be done by enabling "quiet mode" via the following message::
$ sudo dmsetup message dust1 0 quiet $ sudo dmsetup message dust1 0 quiet
This will suppress log messages from add / remove / removed by write This will suppress log messages from add / remove / removed by write
operations. Log messages from "countbadblocks" or "queryblock" operations. Log messages from "countbadblocks" or "queryblock"
message commands will still print in quiet mode. message commands will still print in quiet mode.
The status of quiet mode can be seen by running "dmsetup status": The status of quiet mode can be seen by running "dmsetup status"::
$ sudo dmsetup status dust1 $ sudo dmsetup status dust1
0 33552384 dust 252:17 fail_read_on_bad_block quiet 0 33552384 dust 252:17 fail_read_on_bad_block quiet
To disable quiet mode, send the "quiet" message again: To disable quiet mode, send the "quiet" message again::
$ sudo dmsetup message dust1 0 quiet $ sudo dmsetup message dust1 0 quiet
$ sudo dmsetup status dust1 $ sudo dmsetup status dust1
0 33552384 dust 252:17 fail_read_on_bad_block verbose 0 33552384 dust 252:17 fail_read_on_bad_block verbose
(The presence of "verbose" indicates normal logging.) (The presence of "verbose" indicates normal logging.)

View File

@ -9,6 +9,7 @@ Device Mapper
cache cache
delay delay
dm-crypt dm-crypt
dm-dust
dm-flakey dm-flakey
dm-init dm-init
dm-integrity dm-integrity

View File

@ -57,60 +57,61 @@ configure specific aspects of kernel behavior to your liking.
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
initrd
cgroup-v2
cgroup-v1/index
serial-console
braille-console
parport
md
module-signing
rapidio
sysrq
unicode
vga-softcursor
binfmt-misc
mono
java
ras
bcache
blockdev/index
ext4
binderfs
cifs/index
xfs
jfs
ufs
pm/index
thunderbolt
LSM/index
mm/index
namespaces/index
perf-security
acpi/index acpi/index
aoe/index aoe/index
auxdisplay/index
bcache
binderfs
binfmt-misc
blockdev/index
braille-console
btmrvl btmrvl
cgroup-v1/index
cgroup-v2
cifs/index
clearing-warn-once clearing-warn-once
cpu-load cpu-load
cputopology cputopology
dell_rbu
device-mapper/index device-mapper/index
efi-stub efi-stub
ext4
gpio/index gpio/index
highuid highuid
hw_random hw_random
initrd
iostats iostats
java
jfs
kernel-per-CPU-kthreads kernel-per-CPU-kthreads
laptops/index laptops/index
auxdisplay/index
lcd-panel-cgram lcd-panel-cgram
ldm ldm
lockup-watchdogs lockup-watchdogs
LSM/index
md
mm/index
module-signing
mono
namespaces/index
numastat numastat
parport
perf-security
pm/index
pnp pnp
rapidio
ras
rtc rtc
serial-console
svga svga
wimax/index sysrq
thunderbolt
ufs
unicode
vga-softcursor
video-output video-output
wimax/index
xfs
.. only:: subproject and html .. only:: subproject and html

View File

@ -46,78 +46,79 @@ each snapshot of your disk statistics.
In 2.4, the statistics fields are those after the device name. In In 2.4, the statistics fields are those after the device name. In
the above example, the first field of statistics would be 446216. the above example, the first field of statistics would be 446216.
By contrast, in 2.6+ if you look at ``/sys/block/hda/stat``, you'll By contrast, in 2.6+ if you look at ``/sys/block/hda/stat``, you'll
find just the eleven fields, beginning with 446216. If you look at find just the 15 fields, beginning with 446216. If you look at
``/proc/diskstats``, the eleven fields will be preceded by the major and ``/proc/diskstats``, the 15 fields will be preceded by the major and
minor device numbers, and device name. Each of these formats provides minor device numbers, and device name. Each of these formats provides
eleven fields of statistics, each meaning exactly the same things. 15 fields of statistics, each meaning exactly the same things.
All fields except field 9 are cumulative since boot. Field 9 should All fields except field 9 are cumulative since boot. Field 9 should
go to zero as I/Os complete; all others only increase (unless they go to zero as I/Os complete; all others only increase (unless they
overflow and wrap). Yes, these are (32-bit or 64-bit) unsigned long overflow and wrap). Wrapping might eventually occur on a very busy
(native word size) numbers, and on a very busy or long-lived system they or long-lived system; so applications should be prepared to deal with
may wrap. Applications should be prepared to deal with that; unless it. Regarding wrapping, the types of the fields are either unsigned
your observations are measured in large numbers of minutes or hours, int (32 bit) or unsigned long (32-bit or 64-bit, depending on your
they should not wrap twice before you notice them. machine) as noted per-field below. Unless your observations are very
spread in time, these fields should not wrap twice before you notice it.
Each set of stats only applies to the indicated device; if you want Each set of stats only applies to the indicated device; if you want
system-wide stats you'll have to find all the devices and sum them all up. system-wide stats you'll have to find all the devices and sum them all up.
Field 1 -- # of reads completed Field 1 -- # of reads completed (unsigned long)
This is the total number of reads completed successfully. This is the total number of reads completed successfully.
Field 2 -- # of reads merged, field 6 -- # of writes merged Field 2 -- # of reads merged, field 6 -- # of writes merged (unsigned long)
Reads and writes which are adjacent to each other may be merged for Reads and writes which are adjacent to each other may be merged for
efficiency. Thus two 4K reads may become one 8K read before it is efficiency. Thus two 4K reads may become one 8K read before it is
ultimately handed to the disk, and so it will be counted (and queued) ultimately handed to the disk, and so it will be counted (and queued)
as only one I/O. This field lets you know how often this was done. as only one I/O. This field lets you know how often this was done.
Field 3 -- # of sectors read Field 3 -- # of sectors read (unsigned long)
This is the total number of sectors read successfully. This is the total number of sectors read successfully.
Field 4 -- # of milliseconds spent reading Field 4 -- # of milliseconds spent reading (unsigned int)
This is the total number of milliseconds spent by all reads (as This is the total number of milliseconds spent by all reads (as
measured from __make_request() to end_that_request_last()). measured from __make_request() to end_that_request_last()).
Field 5 -- # of writes completed Field 5 -- # of writes completed (unsigned long)
This is the total number of writes completed successfully. This is the total number of writes completed successfully.
Field 6 -- # of writes merged Field 6 -- # of writes merged (unsigned long)
See the description of field 2. See the description of field 2.
Field 7 -- # of sectors written Field 7 -- # of sectors written (unsigned long)
This is the total number of sectors written successfully. This is the total number of sectors written successfully.
Field 8 -- # of milliseconds spent writing Field 8 -- # of milliseconds spent writing (unsigned int)
This is the total number of milliseconds spent by all writes (as This is the total number of milliseconds spent by all writes (as
measured from __make_request() to end_that_request_last()). measured from __make_request() to end_that_request_last()).
Field 9 -- # of I/Os currently in progress Field 9 -- # of I/Os currently in progress (unsigned int)
The only field that should go to zero. Incremented as requests are The only field that should go to zero. Incremented as requests are
given to appropriate struct request_queue and decremented as they finish. given to appropriate struct request_queue and decremented as they finish.
Field 10 -- # of milliseconds spent doing I/Os Field 10 -- # of milliseconds spent doing I/Os (unsigned int)
This field increases so long as field 9 is nonzero. This field increases so long as field 9 is nonzero.
Since 5.0 this field counts jiffies when at least one request was Since 5.0 this field counts jiffies when at least one request was
started or completed. If request runs more than 2 jiffies then some started or completed. If request runs more than 2 jiffies then some
I/O time will not be accounted unless there are other requests. I/O time will not be accounted unless there are other requests.
Field 11 -- weighted # of milliseconds spent doing I/Os Field 11 -- weighted # of milliseconds spent doing I/Os (unsigned int)
This field is incremented at each I/O start, I/O completion, I/O This field is incremented at each I/O start, I/O completion, I/O
merge, or read of these stats by the number of I/Os in progress merge, or read of these stats by the number of I/Os in progress
(field 9) times the number of milliseconds spent doing I/O since the (field 9) times the number of milliseconds spent doing I/O since the
last update of this field. This can provide an easy measure of both last update of this field. This can provide an easy measure of both
I/O completion time and the backlog that may be accumulating. I/O completion time and the backlog that may be accumulating.
Field 12 -- # of discards completed Field 12 -- # of discards completed (unsigned long)
This is the total number of discards completed successfully. This is the total number of discards completed successfully.
Field 13 -- # of discards merged Field 13 -- # of discards merged (unsigned long)
See the description of field 2 See the description of field 2
Field 14 -- # of sectors discarded Field 14 -- # of sectors discarded (unsigned long)
This is the total number of sectors discarded successfully. This is the total number of sectors discarded successfully.
Field 15 -- # of milliseconds spent discarding Field 15 -- # of milliseconds spent discarding (unsigned int)
This is the total number of milliseconds spent by all discards (as This is the total number of milliseconds spent by all discards (as
measured from __make_request() to end_that_request_last()). measured from __make_request() to end_that_request_last()).

View File

@ -113,7 +113,7 @@
the GPE dispatcher. the GPE dispatcher.
This facility can be used to prevent such uncontrolled This facility can be used to prevent such uncontrolled
GPE floodings. GPE floodings.
Format: <int> Format: <byte>
acpi_no_auto_serialize [HW,ACPI] acpi_no_auto_serialize [HW,ACPI]
Disable auto-serialization of AML methods Disable auto-serialization of AML methods
@ -437,8 +437,6 @@
no delay (0). no delay (0).
Format: integer Format: integer
bootmem_debug [KNL] Enable bootmem allocator debug messages.
bert_disable [ACPI] bert_disable [ACPI]
Disable BERT OS support on buggy BIOSes. Disable BERT OS support on buggy BIOSes.
@ -983,12 +981,10 @@
earlycon= [KNL] Output early console device and options. earlycon= [KNL] Output early console device and options.
[ARM64] The early console is determined by the When used with no options, the early console is
stdout-path property in device tree's chosen node, determined by stdout-path property in device tree's
or determined by the ACPI SPCR table. chosen node or the ACPI SPCR table if supported by
the platform.
[X86] When used with no options the early console is
determined by the ACPI SPCR table.
cdns,<addr>[,options] cdns,<addr>[,options]
Start an early, polled-mode console on a Cadence Start an early, polled-mode console on a Cadence
@ -1101,7 +1097,7 @@
mapped with the correct attributes. mapped with the correct attributes.
linflex,<addr> linflex,<addr>
Use early console provided by Freescale LinFlex UART Use early console provided by Freescale LINFlexD UART
serial driver for NXP S32V234 SoCs. A valid base serial driver for NXP S32V234 SoCs. A valid base
address must be provided, and the serial port must address must be provided, and the serial port must
already be setup and configured. already be setup and configured.
@ -3544,8 +3540,15 @@
hpiosize=nn[KMG] The fixed amount of bus space which is hpiosize=nn[KMG] The fixed amount of bus space which is
reserved for hotplug bridge's IO window. reserved for hotplug bridge's IO window.
Default size is 256 bytes. Default size is 256 bytes.
hpmmiosize=nn[KMG] The fixed amount of bus space which is
reserved for hotplug bridge's MMIO window.
Default size is 2 megabytes.
hpmmioprefsize=nn[KMG] The fixed amount of bus space which is
reserved for hotplug bridge's MMIO_PREF window.
Default size is 2 megabytes.
hpmemsize=nn[KMG] The fixed amount of bus space which is hpmemsize=nn[KMG] The fixed amount of bus space which is
reserved for hotplug bridge's memory window. reserved for hotplug bridge's MMIO and
MMIO_PREF window.
Default size is 2 megabytes. Default size is 2 megabytes.
hpbussize=nn The minimum amount of additional bus numbers hpbussize=nn The minimum amount of additional bus numbers
reserved for buses below a hotplug bridge. reserved for buses below a hotplug bridge.
@ -3592,6 +3595,8 @@
even if the platform doesn't give the OS permission to even if the platform doesn't give the OS permission to
use them. This may cause conflicts if the platform use them. This may cause conflicts if the platform
also tries to use these services. also tries to use these services.
dpc-native Use native PCIe service for DPC only. May
cause conflicts if firmware uses AER or DPC.
compat Disable native PCIe services (PME, AER, DPC, PCIe compat Disable native PCIe services (PME, AER, DPC, PCIe
hotplug). hotplug).

View File

@ -19,7 +19,9 @@ devices/imx8_ddr0/format/. The "events" directory describes the events types
hardware supported that can be used with perf tool, see /sys/bus/event_source/ hardware supported that can be used with perf tool, see /sys/bus/event_source/
devices/imx8_ddr0/events/. The "caps" directory describes filter features implemented devices/imx8_ddr0/events/. The "caps" directory describes filter features implemented
in DDR PMU, see /sys/bus/events_source/devices/imx8_ddr0/caps/. in DDR PMU, see /sys/bus/events_source/devices/imx8_ddr0/caps/.
e.g.::
.. code-block:: bash
perf stat -a -e imx8_ddr0/cycles/ cmd perf stat -a -e imx8_ddr0/cycles/ cmd
perf stat -a -e imx8_ddr0/read/,imx8_ddr0/write/ cmd perf stat -a -e imx8_ddr0/read/,imx8_ddr0/write/ cmd
@ -35,24 +37,31 @@ value 1 for supported.
Filter is defined with two configuration parts: Filter is defined with two configuration parts:
--AXI_ID defines AxID matching value. --AXI_ID defines AxID matching value.
--AXI_MASKING defines which bits of AxID are meaningful for the matching. --AXI_MASKING defines which bits of AxID are meaningful for the matching.
0corresponding bit is masked.
1: corresponding bit is not masked, i.e. used to do the matching. - 0: corresponding bit is masked.
- 1: corresponding bit is not masked, i.e. used to do the matching.
AXI_ID and AXI_MASKING are mapped on DPCR1 register in performance counter. AXI_ID and AXI_MASKING are mapped on DPCR1 register in performance counter.
When non-masked bits are matching corresponding AXI_ID bits then counter is When non-masked bits are matching corresponding AXI_ID bits then counter is
incremented. Perf counter is incremented if incremented. Perf counter is incremented if
AxID && AXI_MASKING == AXI_ID && AXI_MASKING AxID && AXI_MASKING == AXI_ID && AXI_MASKING
This filter doesn't support filter different AXI ID for axid-read and axid-write This filter doesn't support filter different AXI ID for axid-read and axid-write
event at the same time as this filter is shared between counters. event at the same time as this filter is shared between counters.
e.g.::
perf stat -a -e imx8_ddr0/axid-read,axi_mask=0xMMMM,axi_id=0xDDDD/ cmd
perf stat -a -e imx8_ddr0/axid-write,axi_mask=0xMMMM,axi_id=0xDDDD/ cmd
NOTE: axi_mask is inverted in userspace(i.e. set bits are bits to mask), and .. code-block:: bash
it will be reverted in driver automatically. so that the user can just specify
axi_id to monitor a specific id, rather than having to specify axi_mask. perf stat -a -e imx8_ddr0/axid-read,axi_mask=0xMMMM,axi_id=0xDDDD/ cmd
e.g.:: perf stat -a -e imx8_ddr0/axid-write,axi_mask=0xMMMM,axi_id=0xDDDD/ cmd
.. note::
axi_mask is inverted in userspace(i.e. set bits are bits to mask), and
it will be reverted in driver automatically. so that the user can just specify
axi_id to monitor a specific id, rather than having to specify axi_mask.
.. code-block:: bash
perf stat -a -e imx8_ddr0/axid-read,axi_id=0x12/ cmd, which will monitor ARID=0x12 perf stat -a -e imx8_ddr0/axid-read,axi_id=0x12/ cmd, which will monitor ARID=0x12
* With DDR_CAP_AXI_ID_FILTER_ENHANCED quirk(filter: 1, enhanced_filter: 1). * With DDR_CAP_AXI_ID_FILTER_ENHANCED quirk(filter: 1, enhanced_filter: 1).

View File

@ -8,6 +8,7 @@ Performance monitor support
:maxdepth: 1 :maxdepth: 1
hisi-pmu hisi-pmu
imx-ddr
qcom_l2_pmu qcom_l2_pmu
qcom_l3_pmu qcom_l3_pmu
arm-ccn arm-ccn

View File

@ -831,8 +831,8 @@ printk_ratelimit:
================= =================
Some warning messages are rate limited. printk_ratelimit specifies Some warning messages are rate limited. printk_ratelimit specifies
the minimum length of time between these messages (in jiffies), by the minimum length of time between these messages (in seconds).
default we allow one every 5 seconds. The default value is 5 seconds.
A value of 0 will disable rate limiting. A value of 0 will disable rate limiting.
@ -845,6 +845,8 @@ seconds, we do allow a burst of messages to pass through.
printk_ratelimit_burst specifies the number of messages we can printk_ratelimit_burst specifies the number of messages we can
send before ratelimiting kicks in. send before ratelimiting kicks in.
The default value is 10 messages.
printk_devkmsg: printk_devkmsg:
=============== ===============
@ -1101,7 +1103,7 @@ During initialization the kernel sets this value such that even if the
maximum number of threads is created, the thread structures occupy only maximum number of threads is created, the thread structures occupy only
a part (1/8th) of the available RAM pages. a part (1/8th) of the available RAM pages.
The minimum value that can be written to threads-max is 20. The minimum value that can be written to threads-max is 1.
The maximum value that can be written to threads-max is given by the The maximum value that can be written to threads-max is given by the
constant FUTEX_TID_MASK (0x3fffffff). constant FUTEX_TID_MASK (0x3fffffff).
@ -1109,10 +1111,6 @@ constant FUTEX_TID_MASK (0x3fffffff).
If a value outside of this range is written to threads-max an error If a value outside of this range is written to threads-max an error
EINVAL occurs. EINVAL occurs.
The value written is checked against the available RAM pages. If the
thread structures would occupy too much (more than 1/8th) of the
available RAM pages threads-max is reduced accordingly.
unknown_nmi_panic: unknown_nmi_panic:
================== ==================

View File

@ -103,7 +103,7 @@ the Microchip website: http://www.microchip.com.
* Datasheet * Datasheet
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-11121-32-bit-Cortex-A5-Microcontroller-SAMA5D3_Datasheet.pdf http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-11121-32-bit-Cortex-A5-Microcontroller-SAMA5D3_Datasheet_B.pdf
* ARM Cortex-A5 + NEON based SoCs * ARM Cortex-A5 + NEON based SoCs
- sama5d4 family - sama5d4 family
@ -167,7 +167,7 @@ the Microchip website: http://www.microchip.com.
* Datasheet * Datasheet
http://ww1.microchip.com/downloads/en/DeviceDoc/60001527A.pdf http://ww1.microchip.com/downloads/en/DeviceDoc/SAM-E70-S70-V70-V71-Family-Data-Sheet-DS60001527D.pdf
Linux kernel information Linux kernel information

View File

@ -37,7 +37,8 @@ needs_sphinx = '1.3'
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones. # ones.
extensions = ['kerneldoc', 'rstFlatTable', 'kernel_include', 'cdomain', extensions = ['kerneldoc', 'rstFlatTable', 'kernel_include', 'cdomain',
'kfigure', 'sphinx.ext.ifconfig', 'automarkup'] 'kfigure', 'sphinx.ext.ifconfig', 'automarkup',
'maintainers_include']
# The name of the math extension changed on Sphinx 1.4 # The name of the math extension changed on Sphinx 1.4
if (major == 1 and minor > 3) or (major > 1): if (major == 1 and minor > 3) or (major > 1):

View File

@ -23,7 +23,7 @@ begins with the creation of a pool using one of:
.. kernel-doc:: lib/genalloc.c .. kernel-doc:: lib/genalloc.c
:functions: devm_gen_pool_create :functions: devm_gen_pool_create
A call to :c:func:`gen_pool_create` will create a pool. The granularity of A call to gen_pool_create() will create a pool. The granularity of
allocations is set with min_alloc_order; it is a log-base-2 number like allocations is set with min_alloc_order; it is a log-base-2 number like
those used by the page allocator, but it refers to bytes rather than pages. those used by the page allocator, but it refers to bytes rather than pages.
So, if min_alloc_order is passed as 3, then all allocations will be a So, if min_alloc_order is passed as 3, then all allocations will be a
@ -32,7 +32,7 @@ required to track the memory in the pool. The nid parameter specifies
which NUMA node should be used for the allocation of the housekeeping which NUMA node should be used for the allocation of the housekeeping
structures; it can be -1 if the caller doesn't care. structures; it can be -1 if the caller doesn't care.
The "managed" interface :c:func:`devm_gen_pool_create` ties the pool to a The "managed" interface devm_gen_pool_create() ties the pool to a
specific device. Among other things, it will automatically clean up the specific device. Among other things, it will automatically clean up the
pool when the given device is destroyed. pool when the given device is destroyed.
@ -53,32 +53,32 @@ to the pool. That can be done with one of:
:functions: gen_pool_add :functions: gen_pool_add
.. kernel-doc:: lib/genalloc.c .. kernel-doc:: lib/genalloc.c
:functions: gen_pool_add_virt :functions: gen_pool_add_owner
A call to :c:func:`gen_pool_add` will place the size bytes of memory A call to gen_pool_add() will place the size bytes of memory
starting at addr (in the kernel's virtual address space) into the given starting at addr (in the kernel's virtual address space) into the given
pool, once again using nid as the node ID for ancillary memory allocations. pool, once again using nid as the node ID for ancillary memory allocations.
The :c:func:`gen_pool_add_virt` variant associates an explicit physical The gen_pool_add_virt() variant associates an explicit physical
address with the memory; this is only necessary if the pool will be used address with the memory; this is only necessary if the pool will be used
for DMA allocations. for DMA allocations.
The functions for allocating memory from the pool (and putting it back) The functions for allocating memory from the pool (and putting it back)
are: are:
.. kernel-doc:: lib/genalloc.c .. kernel-doc:: include/linux/genalloc.h
:functions: gen_pool_alloc :functions: gen_pool_alloc
.. kernel-doc:: lib/genalloc.c .. kernel-doc:: lib/genalloc.c
:functions: gen_pool_dma_alloc :functions: gen_pool_dma_alloc
.. kernel-doc:: lib/genalloc.c .. kernel-doc:: lib/genalloc.c
:functions: gen_pool_free :functions: gen_pool_free_owner
As one would expect, :c:func:`gen_pool_alloc` will allocate size< bytes As one would expect, gen_pool_alloc() will allocate size< bytes
from the given pool. The :c:func:`gen_pool_dma_alloc` variant allocates from the given pool. The gen_pool_dma_alloc() variant allocates
memory for use with DMA operations, returning the associated physical memory for use with DMA operations, returning the associated physical
address in the space pointed to by dma. This will only work if the memory address in the space pointed to by dma. This will only work if the memory
was added with :c:func:`gen_pool_add_virt`. Note that this function was added with gen_pool_add_virt(). Note that this function
departs from the usual genpool pattern of using unsigned long values to departs from the usual genpool pattern of using unsigned long values to
represent kernel addresses; it returns a void * instead. represent kernel addresses; it returns a void * instead.
@ -89,14 +89,14 @@ return. If that sort of control is needed, the following functions will be
of interest: of interest:
.. kernel-doc:: lib/genalloc.c .. kernel-doc:: lib/genalloc.c
:functions: gen_pool_alloc_algo :functions: gen_pool_alloc_algo_owner
.. kernel-doc:: lib/genalloc.c .. kernel-doc:: lib/genalloc.c
:functions: gen_pool_set_algo :functions: gen_pool_set_algo
Allocations with :c:func:`gen_pool_alloc_algo` specify an algorithm to be Allocations with gen_pool_alloc_algo() specify an algorithm to be
used to choose the memory to be allocated; the default algorithm can be set used to choose the memory to be allocated; the default algorithm can be set
with :c:func:`gen_pool_set_algo`. The data value is passed to the with gen_pool_set_algo(). The data value is passed to the
algorithm; most ignore it, but it is occasionally needed. One can, algorithm; most ignore it, but it is occasionally needed. One can,
naturally, write a special-purpose algorithm, but there is a fair set naturally, write a special-purpose algorithm, but there is a fair set
already available: already available:
@ -129,7 +129,7 @@ writing of special-purpose memory allocators in the future.
:functions: gen_pool_for_each_chunk :functions: gen_pool_for_each_chunk
.. kernel-doc:: lib/genalloc.c .. kernel-doc:: lib/genalloc.c
:functions: addr_in_gen_pool :functions: gen_pool_has_addr
.. kernel-doc:: lib/genalloc.c .. kernel-doc:: lib/genalloc.c
:functions: gen_pool_avail :functions: gen_pool_avail

View File

@ -26,7 +26,7 @@ Rationale
========= =========
The original implementation of interrupt handling in Linux uses the The original implementation of interrupt handling in Linux uses the
:c:func:`__do_IRQ` super-handler, which is able to deal with every type of __do_IRQ() super-handler, which is able to deal with every type of
interrupt logic. interrupt logic.
Originally, Russell King identified different types of handlers to build Originally, Russell King identified different types of handlers to build
@ -43,7 +43,7 @@ During the implementation we identified another type:
- Fast EOI type - Fast EOI type
In the SMP world of the :c:func:`__do_IRQ` super-handler another type was In the SMP world of the __do_IRQ() super-handler another type was
identified: identified:
- Per CPU type - Per CPU type
@ -83,7 +83,7 @@ IRQ-flow implementation for 'level type' interrupts and add a
(sub)architecture specific 'edge type' implementation. (sub)architecture specific 'edge type' implementation.
To make the transition to the new model easier and prevent the breakage To make the transition to the new model easier and prevent the breakage
of existing implementations, the :c:func:`__do_IRQ` super-handler is still of existing implementations, the __do_IRQ() super-handler is still
available. This leads to a kind of duality for the time being. Over time available. This leads to a kind of duality for the time being. Over time
the new model should be used in more and more architectures, as it the new model should be used in more and more architectures, as it
enables smaller and cleaner IRQ subsystems. It's deprecated for three enables smaller and cleaner IRQ subsystems. It's deprecated for three
@ -116,7 +116,7 @@ status information and pointers to the interrupt flow method and the
interrupt chip structure which are assigned to this interrupt. interrupt chip structure which are assigned to this interrupt.
Whenever an interrupt triggers, the low-level architecture code calls Whenever an interrupt triggers, the low-level architecture code calls
into the generic interrupt code by calling :c:func:`desc->handle_irq`. This into the generic interrupt code by calling desc->handle_irq(). This
high-level IRQ handling function only uses desc->irq_data.chip high-level IRQ handling function only uses desc->irq_data.chip
primitives referenced by the assigned chip descriptor structure. primitives referenced by the assigned chip descriptor structure.
@ -125,27 +125,29 @@ High-level Driver API
The high-level Driver API consists of following functions: The high-level Driver API consists of following functions:
- :c:func:`request_irq` - request_irq()
- :c:func:`free_irq` - request_threaded_irq()
- :c:func:`disable_irq` - free_irq()
- :c:func:`enable_irq` - disable_irq()
- :c:func:`disable_irq_nosync` (SMP only) - enable_irq()
- :c:func:`synchronize_irq` (SMP only) - disable_irq_nosync() (SMP only)
- :c:func:`irq_set_irq_type` - synchronize_irq() (SMP only)
- :c:func:`irq_set_irq_wake` - irq_set_irq_type()
- :c:func:`irq_set_handler_data` - irq_set_irq_wake()
- :c:func:`irq_set_chip` - irq_set_handler_data()
- :c:func:`irq_set_chip_data` - irq_set_chip()
- irq_set_chip_data()
See the autogenerated function documentation for details. See the autogenerated function documentation for details.
@ -154,19 +156,19 @@ High-level IRQ flow handlers
The generic layer provides a set of pre-defined irq-flow methods: The generic layer provides a set of pre-defined irq-flow methods:
- :c:func:`handle_level_irq` - handle_level_irq()
- :c:func:`handle_edge_irq` - handle_edge_irq()
- :c:func:`handle_fasteoi_irq` - handle_fasteoi_irq()
- :c:func:`handle_simple_irq` - handle_simple_irq()
- :c:func:`handle_percpu_irq` - handle_percpu_irq()
- :c:func:`handle_edge_eoi_irq` - handle_edge_eoi_irq()
- :c:func:`handle_bad_irq` - handle_bad_irq()
The interrupt flow handlers (either pre-defined or architecture The interrupt flow handlers (either pre-defined or architecture
specific) are assigned to specific interrupts by the architecture either specific) are assigned to specific interrupts by the architecture either
@ -325,14 +327,14 @@ Delayed interrupt disable
This per interrupt selectable feature, which was introduced by Russell This per interrupt selectable feature, which was introduced by Russell
King in the ARM interrupt implementation, does not mask an interrupt at King in the ARM interrupt implementation, does not mask an interrupt at
the hardware level when :c:func:`disable_irq` is called. The interrupt is kept the hardware level when disable_irq() is called. The interrupt is kept
enabled and is masked in the flow handler when an interrupt event enabled and is masked in the flow handler when an interrupt event
happens. This prevents losing edge interrupts on hardware which does not happens. This prevents losing edge interrupts on hardware which does not
store an edge interrupt event while the interrupt is disabled at the store an edge interrupt event while the interrupt is disabled at the
hardware level. When an interrupt arrives while the IRQ_DISABLED flag hardware level. When an interrupt arrives while the IRQ_DISABLED flag
is set, then the interrupt is masked at the hardware level and the is set, then the interrupt is masked at the hardware level and the
IRQ_PENDING bit is set. When the interrupt is re-enabled by IRQ_PENDING bit is set. When the interrupt is re-enabled by
:c:func:`enable_irq` the pending bit is checked and if it is set, the interrupt enable_irq() the pending bit is checked and if it is set, the interrupt
is resent either via hardware or by a software resend mechanism. (It's is resent either via hardware or by a software resend mechanism. (It's
necessary to enable CONFIG_HARDIRQS_SW_RESEND when you want to use necessary to enable CONFIG_HARDIRQS_SW_RESEND when you want to use
the delayed interrupt disable feature and your hardware is not capable the delayed interrupt disable feature and your hardware is not capable
@ -369,7 +371,7 @@ handler(s) to use these basic units of low-level functionality.
__do_IRQ entry point __do_IRQ entry point
==================== ====================
The original implementation :c:func:`__do_IRQ` was an alternative entry point The original implementation __do_IRQ() was an alternative entry point
for all types of interrupts. It no longer exists. for all types of interrupts. It no longer exists.
This handler turned out to be not suitable for all interrupt hardware This handler turned out to be not suitable for all interrupt hardware

View File

@ -57,7 +57,13 @@ The Linux kernel provides more basic utility functions.
Bit Operations Bit Operations
-------------- --------------
.. kernel-doc:: include/asm-generic/bitops-instrumented.h .. kernel-doc:: include/asm-generic/bitops/instrumented-atomic.h
:internal:
.. kernel-doc:: include/asm-generic/bitops/instrumented-non-atomic.h
:internal:
.. kernel-doc:: include/asm-generic/bitops/instrumented-lock.h
:internal: :internal:
Bitmap Operations Bitmap Operations

View File

@ -88,10 +88,11 @@ Selecting memory allocator
========================== ==========================
The most straightforward way to allocate memory is to use a function The most straightforward way to allocate memory is to use a function
from the :c:func:`kmalloc` family. And, to be on the safe size it's from the kmalloc() family. And, to be on the safe side it's best to use
best to use routines that set memory to zero, like routines that set memory to zero, like kzalloc(). If you need to
:c:func:`kzalloc`. If you need to allocate memory for an array, there allocate memory for an array, there are kmalloc_array() and kcalloc()
are :c:func:`kmalloc_array` and :c:func:`kcalloc` helpers. helpers. The helpers struct_size(), array_size() and array3_size() can
be used to safely calculate object sizes without overflowing.
The maximal size of a chunk that can be allocated with `kmalloc` is The maximal size of a chunk that can be allocated with `kmalloc` is
limited. The actual limit depends on the hardware and the kernel limited. The actual limit depends on the hardware and the kernel
@ -102,29 +103,26 @@ The address of a chunk allocated with `kmalloc` is aligned to at least
ARCH_KMALLOC_MINALIGN bytes. For sizes which are a power of two, the ARCH_KMALLOC_MINALIGN bytes. For sizes which are a power of two, the
alignment is also guaranteed to be at least the respective size. alignment is also guaranteed to be at least the respective size.
For large allocations you can use :c:func:`vmalloc` and For large allocations you can use vmalloc() and vzalloc(), or directly
:c:func:`vzalloc`, or directly request pages from the page request pages from the page allocator. The memory allocated by `vmalloc`
allocator. The memory allocated by `vmalloc` and related functions is and related functions is not physically contiguous.
not physically contiguous.
If you are not sure whether the allocation size is too large for If you are not sure whether the allocation size is too large for
`kmalloc`, it is possible to use :c:func:`kvmalloc` and its `kmalloc`, it is possible to use kvmalloc() and its derivatives. It will
derivatives. It will try to allocate memory with `kmalloc` and if the try to allocate memory with `kmalloc` and if the allocation fails it
allocation fails it will be retried with `vmalloc`. There are will be retried with `vmalloc`. There are restrictions on which GFP
restrictions on which GFP flags can be used with `kvmalloc`; please flags can be used with `kvmalloc`; please see kvmalloc_node() reference
see :c:func:`kvmalloc_node` reference documentation. Note that documentation. Note that `kvmalloc` may return memory that is not
`kvmalloc` may return memory that is not physically contiguous. physically contiguous.
If you need to allocate many identical objects you can use the slab If you need to allocate many identical objects you can use the slab
cache allocator. The cache should be set up with cache allocator. The cache should be set up with kmem_cache_create() or
:c:func:`kmem_cache_create` or :c:func:`kmem_cache_create_usercopy` kmem_cache_create_usercopy() before it can be used. The second function
before it can be used. The second function should be used if a part of should be used if a part of the cache might be copied to the userspace.
the cache might be copied to the userspace. After the cache is After the cache is created kmem_cache_alloc() and its convenience
created :c:func:`kmem_cache_alloc` and its convenience wrappers can wrappers can allocate memory from that cache.
allocate memory from that cache.
When the allocated memory is no longer needed it must be freed. You When the allocated memory is no longer needed it must be freed. You can
can use :c:func:`kvfree` for the memory allocated with `kmalloc`, use kvfree() for the memory allocated with `kmalloc`, `vmalloc` and
`vmalloc` and `kvmalloc`. The slab caches should be freed with `kvmalloc`. The slab caches should be freed with kmem_cache_free(). And
:c:func:`kmem_cache_free`. And don't forget to destroy the cache with don't forget to destroy the cache with kmem_cache_destroy().
:c:func:`kmem_cache_destroy`.

View File

@ -11,7 +11,7 @@ User Space Memory Access
.. kernel-doc:: arch/x86/lib/usercopy_32.c .. kernel-doc:: arch/x86/lib/usercopy_32.c
:export: :export:
.. kernel-doc:: mm/util.c .. kernel-doc:: mm/gup.c
:functions: get_user_pages_fast :functions: get_user_pages_fast
.. _mm-api-gfp-flags: .. _mm-api-gfp-flags:

View File

@ -137,6 +137,20 @@ equivalent to %lx (or %lu). %px is preferred because it is more uniquely
grep'able. If in the future we need to modify the way the kernel handles grep'able. If in the future we need to modify the way the kernel handles
printing pointers we will be better equipped to find the call sites. printing pointers we will be better equipped to find the call sites.
Pointer Differences
-------------------
::
%td 2560
%tx a00
For printing the pointer differences, use the %t modifier for ptrdiff_t.
Example::
printk("test: difference between pointers: %td\n", ptr2 - ptr1);
Struct Resources Struct Resources
---------------- ----------------

View File

@ -35,7 +35,7 @@ atomics & refcounters only provide atomicity and
program order (po) relation (on the same CPU). It guarantees that program order (po) relation (on the same CPU). It guarantees that
each ``atomic_*()`` and ``refcount_*()`` operation is atomic and instructions each ``atomic_*()`` and ``refcount_*()`` operation is atomic and instructions
are executed in program order on a single CPU. are executed in program order on a single CPU.
This is implemented using :c:func:`READ_ONCE`/:c:func:`WRITE_ONCE` and This is implemented using READ_ONCE()/WRITE_ONCE() and
compare-and-swap primitives. compare-and-swap primitives.
A strong (full) memory ordering guarantees that all prior loads and A strong (full) memory ordering guarantees that all prior loads and
@ -44,7 +44,7 @@ before any po-later instruction is executed on the same CPU.
It also guarantees that all po-earlier stores on the same CPU It also guarantees that all po-earlier stores on the same CPU
and all propagated stores from other CPUs must propagate to all and all propagated stores from other CPUs must propagate to all
other CPUs before any po-later instruction is executed on the original other CPUs before any po-later instruction is executed on the original
CPU (A-cumulative property). This is implemented using :c:func:`smp_mb`. CPU (A-cumulative property). This is implemented using smp_mb().
A RELEASE memory ordering guarantees that all prior loads and A RELEASE memory ordering guarantees that all prior loads and
stores (all po-earlier instructions) on the same CPU are completed stores (all po-earlier instructions) on the same CPU are completed
@ -52,14 +52,14 @@ before the operation. It also guarantees that all po-earlier
stores on the same CPU and all propagated stores from other CPUs stores on the same CPU and all propagated stores from other CPUs
must propagate to all other CPUs before the release operation must propagate to all other CPUs before the release operation
(A-cumulative property). This is implemented using (A-cumulative property). This is implemented using
:c:func:`smp_store_release`. smp_store_release().
An ACQUIRE memory ordering guarantees that all post loads and An ACQUIRE memory ordering guarantees that all post loads and
stores (all po-later instructions) on the same CPU are stores (all po-later instructions) on the same CPU are
completed after the acquire operation. It also guarantees that all completed after the acquire operation. It also guarantees that all
po-later stores on the same CPU must propagate to all other CPUs po-later stores on the same CPU must propagate to all other CPUs
after the acquire operation executes. This is implemented using after the acquire operation executes. This is implemented using
:c:func:`smp_acquire__after_ctrl_dep`. smp_acquire__after_ctrl_dep().
A control dependency (on success) for refcounters guarantees that A control dependency (on success) for refcounters guarantees that
if a reference for an object was successfully obtained (reference if a reference for an object was successfully obtained (reference
@ -78,8 +78,8 @@ case 1) - non-"Read/Modify/Write" (RMW) ops
Function changes: Function changes:
* :c:func:`atomic_set` --> :c:func:`refcount_set` * atomic_set() --> refcount_set()
* :c:func:`atomic_read` --> :c:func:`refcount_read` * atomic_read() --> refcount_read()
Memory ordering guarantee changes: Memory ordering guarantee changes:
@ -91,8 +91,8 @@ case 2) - increment-based ops that return no value
Function changes: Function changes:
* :c:func:`atomic_inc` --> :c:func:`refcount_inc` * atomic_inc() --> refcount_inc()
* :c:func:`atomic_add` --> :c:func:`refcount_add` * atomic_add() --> refcount_add()
Memory ordering guarantee changes: Memory ordering guarantee changes:
@ -103,7 +103,7 @@ case 3) - decrement-based RMW ops that return no value
Function changes: Function changes:
* :c:func:`atomic_dec` --> :c:func:`refcount_dec` * atomic_dec() --> refcount_dec()
Memory ordering guarantee changes: Memory ordering guarantee changes:
@ -115,8 +115,8 @@ case 4) - increment-based RMW ops that return a value
Function changes: Function changes:
* :c:func:`atomic_inc_not_zero` --> :c:func:`refcount_inc_not_zero` * atomic_inc_not_zero() --> refcount_inc_not_zero()
* no atomic counterpart --> :c:func:`refcount_add_not_zero` * no atomic counterpart --> refcount_add_not_zero()
Memory ordering guarantees changes: Memory ordering guarantees changes:
@ -131,8 +131,8 @@ case 5) - generic dec/sub decrement-based RMW ops that return a value
Function changes: Function changes:
* :c:func:`atomic_dec_and_test` --> :c:func:`refcount_dec_and_test` * atomic_dec_and_test() --> refcount_dec_and_test()
* :c:func:`atomic_sub_and_test` --> :c:func:`refcount_sub_and_test` * atomic_sub_and_test() --> refcount_sub_and_test()
Memory ordering guarantees changes: Memory ordering guarantees changes:
@ -144,14 +144,14 @@ case 6) other decrement-based RMW ops that return a value
Function changes: Function changes:
* no atomic counterpart --> :c:func:`refcount_dec_if_one` * no atomic counterpart --> refcount_dec_if_one()
* ``atomic_add_unless(&var, -1, 1)`` --> ``refcount_dec_not_one(&var)`` * ``atomic_add_unless(&var, -1, 1)`` --> ``refcount_dec_not_one(&var)``
Memory ordering guarantees changes: Memory ordering guarantees changes:
* fully ordered --> RELEASE ordering + control dependency * fully ordered --> RELEASE ordering + control dependency
.. note:: :c:func:`atomic_add_unless` only provides full order on success. .. note:: atomic_add_unless() only provides full order on success.
case 7) - lock-based RMW case 7) - lock-based RMW
@ -159,10 +159,10 @@ case 7) - lock-based RMW
Function changes: Function changes:
* :c:func:`atomic_dec_and_lock` --> :c:func:`refcount_dec_and_lock` * atomic_dec_and_lock() --> refcount_dec_and_lock()
* :c:func:`atomic_dec_and_mutex_lock` --> :c:func:`refcount_dec_and_mutex_lock` * atomic_dec_and_mutex_lock() --> refcount_dec_and_mutex_lock()
Memory ordering guarantees changes: Memory ordering guarantees changes:
* fully ordered --> RELEASE ordering + control dependency + hold * fully ordered --> RELEASE ordering + control dependency + hold
:c:func:`spin_lock` on success spin_lock() on success

View File

@ -152,3 +152,6 @@ in-tree modules::
- notice the warning of modpost telling about a missing import - notice the warning of modpost telling about a missing import
- run `make nsdeps` to add the import to the correct code location - run `make nsdeps` to add the import to the correct code location
You can also run nsdeps for external module builds. A typical usage is::
$ make -C <path_to_kernel_src> M=$PWD nsdeps

View File

@ -34,6 +34,7 @@ Profiling data will only become accessible once debugfs has been mounted::
Coverage collection Coverage collection
------------------- -------------------
The following program demonstrates coverage collection from within a test The following program demonstrates coverage collection from within a test
program using kcov: program using kcov:
@ -128,6 +129,7 @@ only need to enable coverage (disable happens automatically on thread end).
Comparison operands collection Comparison operands collection
------------------------------ ------------------------------
Comparison operands collection is similar to coverage collection: Comparison operands collection is similar to coverage collection:
.. code-block:: c .. code-block:: c
@ -202,3 +204,130 @@ Comparison operands collection is similar to coverage collection:
Note that the kcov modes (coverage collection or comparison operands) are Note that the kcov modes (coverage collection or comparison operands) are
mutually exclusive. mutually exclusive.
Remote coverage collection
--------------------------
With KCOV_ENABLE coverage is collected only for syscalls that are issued
from the current process. With KCOV_REMOTE_ENABLE it's possible to collect
coverage for arbitrary parts of the kernel code, provided that those parts
are annotated with kcov_remote_start()/kcov_remote_stop().
This allows to collect coverage from two types of kernel background
threads: the global ones, that are spawned during kernel boot in a limited
number of instances (e.g. one USB hub_event() worker thread is spawned per
USB HCD); and the local ones, that are spawned when a user interacts with
some kernel interface (e.g. vhost workers).
To enable collecting coverage from a global background thread, a unique
global handle must be assigned and passed to the corresponding
kcov_remote_start() call. Then a userspace process can pass a list of such
handles to the KCOV_REMOTE_ENABLE ioctl in the handles array field of the
kcov_remote_arg struct. This will attach the used kcov device to the code
sections, that are referenced by those handles.
Since there might be many local background threads spawned from different
userspace processes, we can't use a single global handle per annotation.
Instead, the userspace process passes a non-zero handle through the
common_handle field of the kcov_remote_arg struct. This common handle gets
saved to the kcov_handle field in the current task_struct and needs to be
passed to the newly spawned threads via custom annotations. Those threads
should in turn be annotated with kcov_remote_start()/kcov_remote_stop().
Internally kcov stores handles as u64 integers. The top byte of a handle
is used to denote the id of a subsystem that this handle belongs to, and
the lower 4 bytes are used to denote the id of a thread instance within
that subsystem. A reserved value 0 is used as a subsystem id for common
handles as they don't belong to a particular subsystem. The bytes 4-7 are
currently reserved and must be zero. In the future the number of bytes
used for the subsystem or handle ids might be increased.
When a particular userspace proccess collects coverage by via a common
handle, kcov will collect coverage for each code section that is annotated
to use the common handle obtained as kcov_handle from the current
task_struct. However non common handles allow to collect coverage
selectively from different subsystems.
.. code-block:: c
struct kcov_remote_arg {
unsigned trace_mode;
unsigned area_size;
unsigned num_handles;
uint64_t common_handle;
uint64_t handles[0];
};
#define KCOV_INIT_TRACE _IOR('c', 1, unsigned long)
#define KCOV_DISABLE _IO('c', 101)
#define KCOV_REMOTE_ENABLE _IOW('c', 102, struct kcov_remote_arg)
#define COVER_SIZE (64 << 10)
#define KCOV_TRACE_PC 0
#define KCOV_SUBSYSTEM_COMMON (0x00ull << 56)
#define KCOV_SUBSYSTEM_USB (0x01ull << 56)
#define KCOV_SUBSYSTEM_MASK (0xffull << 56)
#define KCOV_INSTANCE_MASK (0xffffffffull)
static inline __u64 kcov_remote_handle(__u64 subsys, __u64 inst)
{
if (subsys & ~KCOV_SUBSYSTEM_MASK || inst & ~KCOV_INSTANCE_MASK)
return 0;
return subsys | inst;
}
#define KCOV_COMMON_ID 0x42
#define KCOV_USB_BUS_NUM 1
int main(int argc, char **argv)
{
int fd;
unsigned long *cover, n, i;
struct kcov_remote_arg *arg;
fd = open("/sys/kernel/debug/kcov", O_RDWR);
if (fd == -1)
perror("open"), exit(1);
if (ioctl(fd, KCOV_INIT_TRACE, COVER_SIZE))
perror("ioctl"), exit(1);
cover = (unsigned long*)mmap(NULL, COVER_SIZE * sizeof(unsigned long),
PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
if ((void*)cover == MAP_FAILED)
perror("mmap"), exit(1);
/* Enable coverage collection via common handle and from USB bus #1. */
arg = calloc(1, sizeof(*arg) + sizeof(uint64_t));
if (!arg)
perror("calloc"), exit(1);
arg->trace_mode = KCOV_TRACE_PC;
arg->area_size = COVER_SIZE;
arg->num_handles = 1;
arg->common_handle = kcov_remote_handle(KCOV_SUBSYSTEM_COMMON,
KCOV_COMMON_ID);
arg->handles[0] = kcov_remote_handle(KCOV_SUBSYSTEM_USB,
KCOV_USB_BUS_NUM);
if (ioctl(fd, KCOV_REMOTE_ENABLE, arg))
perror("ioctl"), free(arg), exit(1);
free(arg);
/*
* Here the user needs to trigger execution of a kernel code section
* that is either annotated with the common handle, or to trigger some
* activity on USB bus #1.
*/
sleep(2);
n = __atomic_load_n(&cover[0], __ATOMIC_RELAXED);
for (i = 0; i < n; i++)
printf("0x%lx\n", cover[i + 1]);
if (ioctl(fd, KCOV_DISABLE, 0))
perror("ioctl"), exit(1);
if (munmap(cover, COVER_SIZE * sizeof(unsigned long)))
perror("munmap"), exit(1);
if (close(fd))
perror("close"), exit(1);
return 0;
}

View File

@ -69,7 +69,7 @@ the kernel command line.
Memory may be allocated or freed before kmemleak is initialised and Memory may be allocated or freed before kmemleak is initialised and
these actions are stored in an early log buffer. The size of this buffer these actions are stored in an early log buffer. The size of this buffer
is configured via the CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE option. is configured via the CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE option.
If CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF are enabled, the kmemleak is If CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF are enabled, the kmemleak is
disabled by default. Passing ``kmemleak=on`` on the kernel command disabled by default. Passing ``kmemleak=on`` on the kernel command

View File

@ -12,7 +12,6 @@ $(obj)/%.example.dts: $(src)/%.yaml FORCE
$(call if_changed,chk_binding) $(call if_changed,chk_binding)
DT_TMP_SCHEMA := processed-schema.yaml DT_TMP_SCHEMA := processed-schema.yaml
extra-y += $(DT_TMP_SCHEMA)
quiet_cmd_mk_schema = SCHEMA $@ quiet_cmd_mk_schema = SCHEMA $@
cmd_mk_schema = $(DT_MK_SCHEMA) $(DT_MK_SCHEMA_FLAGS) -o $@ $(real-prereqs) cmd_mk_schema = $(DT_MK_SCHEMA) $(DT_MK_SCHEMA_FLAGS) -o $@ $(real-prereqs)
@ -26,8 +25,12 @@ DT_DOCS = $(shell \
DT_SCHEMA_FILES ?= $(addprefix $(src)/,$(DT_DOCS)) DT_SCHEMA_FILES ?= $(addprefix $(src)/,$(DT_DOCS))
ifeq ($(CHECK_DTBS),)
extra-y += $(patsubst $(src)/%.yaml,%.example.dts, $(DT_SCHEMA_FILES)) extra-y += $(patsubst $(src)/%.yaml,%.example.dts, $(DT_SCHEMA_FILES))
extra-y += $(patsubst $(src)/%.yaml,%.example.dt.yaml, $(DT_SCHEMA_FILES)) extra-y += $(patsubst $(src)/%.yaml,%.example.dt.yaml, $(DT_SCHEMA_FILES))
endif
$(obj)/$(DT_TMP_SCHEMA): $(DT_SCHEMA_FILES) FORCE $(obj)/$(DT_TMP_SCHEMA): $(DT_SCHEMA_FILES) FORCE
$(call if_changed,mk_schema) $(call if_changed,mk_schema)
extra-y += $(DT_TMP_SCHEMA)

View File

@ -94,7 +94,7 @@ properties:
- amlogic,p212 - amlogic,p212
- hwacom,amazetv - hwacom,amazetv
- khadas,vim - khadas,vim
- libretech,cc - libretech,aml-s905x-cc
- nexbox,a95x - nexbox,a95x
- const: amlogic,s905x - const: amlogic,s905x
- const: amlogic,meson-gxl - const: amlogic,meson-gxl
@ -147,6 +147,7 @@ properties:
- enum: - enum:
- hardkernel,odroid-n2 - hardkernel,odroid-n2
- khadas,vim3 - khadas,vim3
- ugoos,am6
- const: amlogic,s922x - const: amlogic,s922x
- const: amlogic,g12b - const: amlogic,g12b
@ -156,4 +157,10 @@ properties:
- seirobotics,sei610 - seirobotics,sei610
- khadas,vim3l - khadas,vim3l
- const: amlogic,sm1 - const: amlogic,sm1
- description: Boards with the Amlogic Meson A1 A113L SoC
items:
- enum:
- amlogic,ad401
- const: amlogic,a1
... ...

View File

@ -1,32 +0,0 @@
Amlogic Meson8 and Meson8b SRAM for smp bringup:
------------------------------------------------
Amlogic's SMP-capable SoCs use part of the sram for the bringup of the cores.
Once the core gets powered up it executes the code that is residing at a
specific location.
Therefore a reserved section sub-node has to be added to the mmio-sram
declaration.
Required sub-node properties:
- compatible : depending on the SoC this should be one of:
"amlogic,meson8-smp-sram"
"amlogic,meson8b-smp-sram"
The rest of the properties should follow the generic mmio-sram discription
found in ../../misc/sram.txt
Example:
sram: sram@d9000000 {
compatible = "mmio-sram";
reg = <0xd9000000 0x20000>;
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0xd9000000 0x20000>;
smp-sram@1ff80 {
compatible = "amlogic,meson8b-smp-sram";
reg = <0x1ff80 0x8>;
};
};

View File

@ -100,7 +100,7 @@ Required sub-node properties:
[0] http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/index.html [0] http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/index.html
[1] Documentation/devicetree/bindings/clock/clock-bindings.txt [1] Documentation/devicetree/bindings/clock/clock-bindings.txt
[2] Documentation/devicetree/bindings/power/power_domain.txt [2] Documentation/devicetree/bindings/power/power-domain.yaml
[3] Documentation/devicetree/bindings/thermal/thermal.txt [3] Documentation/devicetree/bindings/thermal/thermal.txt
[4] Documentation/devicetree/bindings/sram/sram.txt [4] Documentation/devicetree/bindings/sram/sram.txt
[5] Documentation/devicetree/bindings/reset/reset.txt [5] Documentation/devicetree/bindings/reset/reset.txt

View File

@ -110,7 +110,7 @@ Required properties:
[1] Documentation/devicetree/bindings/clock/clock-bindings.txt [1] Documentation/devicetree/bindings/clock/clock-bindings.txt
[2] Documentation/devicetree/bindings/thermal/thermal.txt [2] Documentation/devicetree/bindings/thermal/thermal.txt
[3] Documentation/devicetree/bindings/sram/sram.txt [3] Documentation/devicetree/bindings/sram/sram.txt
[4] Documentation/devicetree/bindings/power/power_domain.txt [4] Documentation/devicetree/bindings/power/power-domain.yaml
Example: Example:

View File

@ -45,6 +45,13 @@ properties:
- const: atmel,at91sam9x5 - const: atmel,at91sam9x5
- const: atmel,at91sam9 - const: atmel,at91sam9
- description: Overkiz kizbox3 board
items:
- const: overkiz,kizbox3-hs
- const: atmel,sama5d27
- const: atmel,sama5d2
- const: atmel,sama5
- items: - items:
- const: atmel,sama5d27 - const: atmel,sama5d27
- const: atmel,sama5d2 - const: atmel,sama5d2
@ -73,6 +80,13 @@ properties:
- const: atmel,sama5d3 - const: atmel,sama5d3
- const: atmel,sama5 - const: atmel,sama5
- description: Overkiz kizbox2 board with two heads
items:
- const: overkiz,kizbox2-2
- const: atmel,sama5d31
- const: atmel,sama5d3
- const: atmel,sama5
- items: - items:
- enum: - enum:
- atmel,sama5d31 - atmel,sama5d31

View File

@ -1,28 +0,0 @@
Device tree bindings for Axentia ARM devices
============================================
Linea CPU module
----------------
Required root node properties:
compatible = "axentia,linea",
"atmel,sama5d31", "atmel,sama5d3", "atmel,sama5";
and following the rules from atmel-at91.txt for a sama5d31 SoC.
Nattis v2 board with Natte v2 power board
-----------------------------------------
Required root node properties:
compatible = "axentia,nattis-2", "axentia,natte-2", "axentia,linea",
"atmel,sama5d31", "atmel,sama5d3", "atmel,sama5";
and following the rules from above for the axentia,linea CPU module.
TSE-850 v3 board
----------------
Required root node properties:
compatible = "axentia,tse850v3", "axentia,linea",
"atmel,sama5d31", "atmel,sama5d3", "atmel,sama5";
and following the rules from above for the axentia,linea CPU module.

View File

@ -0,0 +1,54 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/bcm/bcm2835.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Broadcom BCM2711/BCM2835 Platforms Device Tree Bindings
maintainers:
- Eric Anholt <eric@anholt.net>
- Stefan Wahren <wahrenst@gmx.net>
properties:
$nodename:
const: '/'
compatible:
oneOf:
- description: BCM2711 based Boards
items:
- enum:
- raspberrypi,4-model-b
- const: brcm,bcm2711
- description: BCM2835 based Boards
items:
- enum:
- raspberrypi,model-a
- raspberrypi,model-a-plus
- raspberrypi,model-b
- raspberrypi,model-b-i2c0 # Raspberry Pi Model B (no P5)
- raspberrypi,model-b-rev2
- raspberrypi,model-b-plus
- raspberrypi,compute-module
- raspberrypi,model-zero
- raspberrypi,model-zero-w
- const: brcm,bcm2835
- description: BCM2836 based Boards
items:
- enum:
- raspberrypi,2-model-b
- const: brcm,bcm2836
- description: BCM2837 based Boards
items:
- enum:
- raspberrypi,3-model-a-plus
- raspberrypi,3-model-b
- raspberrypi,3-model-b-plus
- raspberrypi,3-compute-module
- raspberrypi,3-compute-module-lite
- const: brcm,bcm2837
...

View File

@ -1,67 +0,0 @@
Broadcom BCM2835 device tree bindings
-------------------------------------------
Raspberry Pi Model A
Required root node properties:
compatible = "raspberrypi,model-a", "brcm,bcm2835";
Raspberry Pi Model A+
Required root node properties:
compatible = "raspberrypi,model-a-plus", "brcm,bcm2835";
Raspberry Pi Model B
Required root node properties:
compatible = "raspberrypi,model-b", "brcm,bcm2835";
Raspberry Pi Model B (no P5)
early model B with I2C0 rather than I2C1 routed to the expansion header
Required root node properties:
compatible = "raspberrypi,model-b-i2c0", "brcm,bcm2835";
Raspberry Pi Model B rev2
Required root node properties:
compatible = "raspberrypi,model-b-rev2", "brcm,bcm2835";
Raspberry Pi Model B+
Required root node properties:
compatible = "raspberrypi,model-b-plus", "brcm,bcm2835";
Raspberry Pi 2 Model B
Required root node properties:
compatible = "raspberrypi,2-model-b", "brcm,bcm2836";
Raspberry Pi 3 Model A+
Required root node properties:
compatible = "raspberrypi,3-model-a-plus", "brcm,bcm2837";
Raspberry Pi 3 Model B
Required root node properties:
compatible = "raspberrypi,3-model-b", "brcm,bcm2837";
Raspberry Pi 3 Model B+
Required root node properties:
compatible = "raspberrypi,3-model-b-plus", "brcm,bcm2837";
Raspberry Pi Compute Module
Required root node properties:
compatible = "raspberrypi,compute-module", "brcm,bcm2835";
Raspberry Pi Compute Module 3
Required root node properties:
compatible = "raspberrypi,3-compute-module", "brcm,bcm2837";
Raspberry Pi Compute Module 3 Lite
Required root node properties:
compatible = "raspberrypi,3-compute-module-lite", "brcm,bcm2837";
Raspberry Pi Zero
Required root node properties:
compatible = "raspberrypi,model-zero", "brcm,bcm2835";
Raspberry Pi Zero W
Required root node properties:
compatible = "raspberrypi,model-zero-w", "brcm,bcm2835";
Generic BCM2835 board
Required root node properties:
compatible = "brcm,bcm2835";

View File

@ -189,6 +189,7 @@ properties:
- marvell,armada-390-smp - marvell,armada-390-smp
- marvell,armada-xp-smp - marvell,armada-xp-smp
- marvell,98dx3236-smp - marvell,98dx3236-smp
- marvell,mmp3-smp
- mediatek,mt6589-smp - mediatek,mt6589-smp
- mediatek,mt81xx-tz-smp - mediatek,mt81xx-tz-smp
- qcom,gcc-msm8660 - qcom,gcc-msm8660

View File

@ -124,7 +124,7 @@ Required properties for Pinctrl sub nodes:
CONFIG settings. CONFIG settings.
[1] Documentation/devicetree/bindings/clock/clock-bindings.txt [1] Documentation/devicetree/bindings/clock/clock-bindings.txt
[2] Documentation/devicetree/bindings/power/power_domain.txt [2] Documentation/devicetree/bindings/power/power-domain.yaml
[3] Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt [3] Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt
RTC bindings based on SCU Message Protocol RTC bindings based on SCU Message Protocol

View File

@ -38,12 +38,16 @@ properties:
- description: i.MX27 Product Development Kit - description: i.MX27 Product Development Kit
items: items:
- enum: - enum:
- armadeus,imx27-apf27 # APF27 SoM
- armadeus,imx27-apf27dev # APF27 SoM on APF27Dev board
- fsl,imx27-pdk - fsl,imx27-pdk
- const: fsl,imx27 - const: fsl,imx27
- description: i.MX28 based Boards - description: i.MX28 based Boards
items: items:
- enum: - enum:
- armadeus,imx28-apf28 # APF28 SoM
- armadeus,imx28-apf28dev # APF28 SoM on APF28Dev board
- fsl,imx28-evk - fsl,imx28-evk
- i2se,duckbill - i2se,duckbill
- i2se,duckbill-2 - i2se,duckbill-2
@ -87,7 +91,8 @@ properties:
- description: i.MX51 Babbage Board - description: i.MX51 Babbage Board
items: items:
- enum: - enum:
- armadeus,imx51-apf51 - armadeus,imx51-apf51 # APF51 SoM
- armadeus,imx51-apf51dev # APF51 SoM on APF51Dev board
- fsl,imx51-babbage - fsl,imx51-babbage
- technologic,imx51-ts4800 - technologic,imx51-ts4800
- const: fsl,imx51 - const: fsl,imx51
@ -106,6 +111,8 @@ properties:
- description: i.MX6Q based Boards - description: i.MX6Q based Boards
items: items:
- enum: - enum:
- armadeus,imx6q-apf6 # APF6 (Quad/Dual) SoM
- armadeus,imx6q-apf6dev # APF6 (Quad/Dual) SoM on APF6Dev board
- emtrion,emcon-mx6 # emCON-MX6D or emCON-MX6Q SoM - emtrion,emcon-mx6 # emCON-MX6D or emCON-MX6Q SoM
- emtrion,emcon-mx6-avari # emCON-MX6D or emCON-MX6Q SoM on Avari Base - emtrion,emcon-mx6-avari # emCON-MX6D or emCON-MX6Q SoM on Avari Base
- fsl,imx6q-arm2 - fsl,imx6q-arm2
@ -114,6 +121,11 @@ properties:
- fsl,imx6q-sabresd - fsl,imx6q-sabresd
- technologic,imx6q-ts4900 - technologic,imx6q-ts4900
- technologic,imx6q-ts7970 - technologic,imx6q-ts7970
- toradex,apalis_imx6q # Apalis iMX6 Module
- toradex,apalis_imx6q-eval # Apalis iMX6 Module on Apalis Evaluation Board
- toradex,apalis_imx6q-ixora # Apalis iMX6 Module on Ixora
- toradex,apalis_imx6q-ixora-v1.1 # Apalis iMX6 Module on Ixora V1.1
- variscite,dt6customboard
- const: fsl,imx6q - const: fsl,imx6q
- description: i.MX6QP based Boards - description: i.MX6QP based Boards
@ -126,6 +138,8 @@ properties:
- description: i.MX6DL based Boards - description: i.MX6DL based Boards
items: items:
- enum: - enum:
- armadeus,imx6dl-apf6 # APF6 (Solo) SoM
- armadeus,imx6dl-apf6dldev # APF6 (Solo) SoM on APF6Dev board
- eckelmann,imx6dl-ci4x10 - eckelmann,imx6dl-ci4x10
- emtrion,emcon-mx6 # emCON-MX6S or emCON-MX6DL SoM - emtrion,emcon-mx6 # emCON-MX6S or emCON-MX6DL SoM
- emtrion,emcon-mx6-avari # emCON-MX6S or emCON-MX6DL SoM on Avari Base - emtrion,emcon-mx6-avari # emCON-MX6S or emCON-MX6DL SoM on Avari Base
@ -133,6 +147,8 @@ properties:
- fsl,imx6dl-sabresd # i.MX6 DualLite SABRE Smart Device Board - fsl,imx6dl-sabresd # i.MX6 DualLite SABRE Smart Device Board
- technologic,imx6dl-ts4900 - technologic,imx6dl-ts4900
- technologic,imx6dl-ts7970 - technologic,imx6dl-ts7970
- toradex,colibri_imx6dl # Colibri iMX6 Module
- toradex,colibri_imx6dl-eval-v3 # Colibri iMX6 Module on Colibri Evaluation Board V3
- ysoft,imx6dl-yapp4-draco # i.MX6 DualLite Y Soft IOTA Draco board - ysoft,imx6dl-yapp4-draco # i.MX6 DualLite Y Soft IOTA Draco board
- ysoft,imx6dl-yapp4-hydra # i.MX6 DualLite Y Soft IOTA Hydra board - ysoft,imx6dl-yapp4-hydra # i.MX6 DualLite Y Soft IOTA Hydra board
- ysoft,imx6dl-yapp4-ursa # i.MX6 Solo Y Soft IOTA Ursa board - ysoft,imx6dl-yapp4-ursa # i.MX6 Solo Y Soft IOTA Ursa board
@ -148,6 +164,7 @@ properties:
items: items:
- enum: - enum:
- fsl,imx6sll-evk - fsl,imx6sll-evk
- kobo,clarahd
- const: fsl,imx6sll - const: fsl,imx6sll
- description: i.MX6SX based Boards - description: i.MX6SX based Boards
@ -160,8 +177,11 @@ properties:
- description: i.MX6UL based Boards - description: i.MX6UL based Boards
items: items:
- enum: - enum:
- armadeus,imx6ul-opos6ul # OPOS6UL (i.MX6UL) SoM
- armadeus,imx6ul-opos6uldev # OPOS6UL (i.MX6UL) SoM on OPOS6ULDev board
- fsl,imx6ul-14x14-evk # i.MX6 UltraLite 14x14 EVK Board - fsl,imx6ul-14x14-evk # i.MX6 UltraLite 14x14 EVK Board
- kontron,imx6ul-n6310-som # Kontron N6310 SOM - kontron,imx6ul-n6310-som # Kontron N6310 SOM
- kontron,imx6ul-n6311-som # Kontron N6311 SOM
- const: fsl,imx6ul - const: fsl,imx6ul
- description: Kontron N6310 S Board - description: Kontron N6310 S Board
@ -170,6 +190,12 @@ properties:
- const: kontron,imx6ul-n6310-som - const: kontron,imx6ul-n6310-som
- const: fsl,imx6ul - const: fsl,imx6ul
- description: Kontron N6311 S Board
items:
- const: kontron,imx6ul-n6311-s
- const: kontron,imx6ul-n6311-som
- const: fsl,imx6ul
- description: Kontron N6310 S 43 Board - description: Kontron N6310 S 43 Board
items: items:
- const: kontron,imx6ul-n6310-s-43 - const: kontron,imx6ul-n6310-s-43
@ -180,7 +206,18 @@ properties:
- description: i.MX6ULL based Boards - description: i.MX6ULL based Boards
items: items:
- enum: - enum:
- armadeus,imx6ull-opos6ul # OPOS6UL (i.MX6ULL) SoM
- armadeus,imx6ull-opos6uldev # OPOS6UL (i.MX6ULL) SoM on OPOS6ULDev board
- fsl,imx6ull-14x14-evk # i.MX6 UltraLiteLite 14x14 EVK Board - fsl,imx6ull-14x14-evk # i.MX6 UltraLiteLite 14x14 EVK Board
- kontron,imx6ull-n6411-som # Kontron N6411 SOM
- toradex,colibri-imx6ull-eval # Colibri iMX6ULL Module on Colibri Evaluation Board
- toradex,colibri-imx6ull-wifi-eval # Colibri iMX6ULL Wi-Fi / Bluetooth Module on Colibri Evaluation Board
- const: fsl,imx6ull
- description: Kontron N6411 S Board
items:
- const: kontron,imx6ull-n6411-s
- const: kontron,imx6ull-n6411-som
- const: fsl,imx6ull - const: fsl,imx6ull
- description: i.MX6ULZ based Boards - description: i.MX6ULZ based Boards
@ -193,6 +230,8 @@ properties:
- description: i.MX7S based Boards - description: i.MX7S based Boards
items: items:
- enum: - enum:
- toradex,colibri-imx7s # Colibri iMX7 Solo Module
- toradex,colibri-imx7s-eval-v3 # Colibri iMX7 Solo Module on Colibri Evaluation Board V3
- tq,imx7s-mba7 # i.MX7S TQ MBa7 with TQMa7S SoM - tq,imx7s-mba7 # i.MX7S TQ MBa7 with TQMa7S SoM
- const: fsl,imx7s - const: fsl,imx7s
@ -201,6 +240,10 @@ properties:
- enum: - enum:
- fsl,imx7d-sdb # i.MX7 SabreSD Board - fsl,imx7d-sdb # i.MX7 SabreSD Board
- novtech,imx7d-meerkat96 # i.MX7 Meerkat96 Board - novtech,imx7d-meerkat96 # i.MX7 Meerkat96 Board
- toradex,colibri-imx7d # Colibri iMX7 Dual Module
- toradex,colibri-imx7d-emmc # Colibri iMX7 Dual 1GB (eMMC) Module
- toradex,colibri-imx7d-emmc-eval-v3 # Colibri iMX7 Dual 1GB (eMMC) Module on Colibri Evaluation Board V3
- toradex,colibri-imx7d-eval-v3 # Colibri iMX7 Dual Module on Colibri Evaluation Board V3
- tq,imx7d-mba7 # i.MX7D TQ MBa7 with TQMa7D SoM - tq,imx7d-mba7 # i.MX7D TQ MBa7 with TQMa7D SoM
- zii,imx7d-rmu2 # ZII RMU2 Board - zii,imx7d-rmu2 # ZII RMU2 Board
- zii,imx7d-rpu2 # ZII RPU2 Board - zii,imx7d-rpu2 # ZII RPU2 Board
@ -233,6 +276,7 @@ properties:
items: items:
- enum: - enum:
- fsl,imx8mn-ddr4-evk # i.MX8MN DDR4 EVK Board - fsl,imx8mn-ddr4-evk # i.MX8MN DDR4 EVK Board
- fsl,imx8mn-evk # i.MX8MN LPDDR4 EVK Board
- const: fsl,imx8mn - const: fsl,imx8mn
- description: i.MX8MQ based Boards - description: i.MX8MQ based Boards
@ -250,6 +294,8 @@ properties:
- enum: - enum:
- einfochips,imx8qxp-ai_ml # i.MX8QXP AI_ML Board - einfochips,imx8qxp-ai_ml # i.MX8QXP AI_ML Board
- fsl,imx8qxp-mek # i.MX8QXP MEK Board - fsl,imx8qxp-mek # i.MX8QXP MEK Board
- toradex,colibri-imx8x # Colibri iMX8X Module
- toradex,colibri-imx8x-eval-v3 # Colibri iMX8X Module on Colibri Evaluation Board V3
- const: fsl,imx8qxp - const: fsl,imx8qxp
- description: - description:
@ -267,6 +313,10 @@ properties:
- fsl,vf600 - fsl,vf600
- fsl,vf610 - fsl,vf610
- fsl,vf610m4 - fsl,vf610m4
- toradex,vf500-colibri_vf50 # Colibri VF50 Module
- toradex,vf500-colibri_vf50-on-eval # Colibri VF50 Module on Colibri Evaluation Board
- toradex,vf610-colibri_vf61 # Colibri VF61 Module
- toradex,vf610-colibri_vf61-on-eval # Colibri VF61 Module on Colibri Evaluation Board
- description: ZII's VF610 based Boards - description: ZII's VF610 based Boards
items: items:
@ -335,4 +385,10 @@ properties:
- fsl,ls2088a-rdb - fsl,ls2088a-rdb
- const: fsl,ls2088a - const: fsl,ls2088a
- description: S32V234 based Boards
items:
- enum:
- fsl,s32v234-evb # S32V234-EVB2 Customer Evaluation Board
- const: fsl,s32v234
... ...

View File

@ -1,15 +1,15 @@
Marvell Armada AP806 System Controller Marvell Armada AP80x System Controller
====================================== ======================================
The AP806 is one of the two core HW blocks of the Marvell Armada 7K/8K The AP806/AP807 is one of the two core HW blocks of the Marvell Armada
SoCs. It contains system controllers, which provide several registers 7K/8K/931x SoCs. It contains system controllers, which provide several
giving access to numerous features: clocks, pin-muxing and many other registers giving access to numerous features: clocks, pin-muxing and
SoC configuration items. This DT binding allows to describe these many other SoC configuration items. This DT binding allows to describe
system controllers. these system controllers.
For the top level node: For the top level node:
- compatible: must be: "syscon", "simple-mfd"; - compatible: must be: "syscon", "simple-mfd";
- reg: register area of the AP806 system controller - reg: register area of the AP80x system controller
SYSTEM CONTROLLER 0 SYSTEM CONTROLLER 0
=================== ===================

View File

@ -1,24 +0,0 @@
Marvell Armada 7K/8K Platforms Device Tree Bindings
---------------------------------------------------
Boards using a SoC of the Marvell Armada 7K or 8K families must carry
the following root node property:
- compatible, with one of the following values:
- "marvell,armada7020", "marvell,armada-ap806-dual", "marvell,armada-ap806"
when the SoC being used is the Armada 7020
- "marvell,armada7040", "marvell,armada-ap806-quad", "marvell,armada-ap806"
when the SoC being used is the Armada 7040
- "marvell,armada8020", "marvell,armada-ap806-dual", "marvell,armada-ap806"
when the SoC being used is the Armada 8020
- "marvell,armada8040", "marvell,armada-ap806-quad", "marvell,armada-ap806"
when the SoC being used is the Armada 8040
Example:
compatible = "marvell,armada7040-db", "marvell,armada7040",
"marvell,armada-ap806-quad", "marvell,armada-ap806";

View File

@ -0,0 +1,61 @@
# SPDX-License-Identifier: (GPL-2.0+ OR X11)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/marvell/armada-7k-8k.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Marvell Armada 7K/8K Platforms Device Tree Bindings
maintainers:
- Gregory CLEMENT <gregory.clement@bootlin.com>
properties:
$nodename:
const: '/'
compatible:
oneOf:
- description: Armada 7020 SoC
items:
- const: marvell,armada7020
- const: marvell,armada-ap806-dual
- const: marvell,armada-ap806
- description: Armada 7040 SoC
items:
- const: marvell,armada7040
- const: marvell,armada-ap806-quad
- const: marvell,armada-ap806
- description: Armada 8020 SoC
items:
- const: marvell,armada8020
- const: marvell,armada-ap806-dual
- const: marvell,armada-ap806
- description: Armada 8040 SoC
items:
- const: marvell,armada8040
- const: marvell,armada-ap806-quad
- const: marvell,armada-ap806
- description: Armada CN9130 SoC with no external CP
items:
- const: marvell,cn9130
- const: marvell,armada-ap807-quad
- const: marvell,armada-ap807
- description: Armada CN9131 SoC with one external CP
items:
- const: marvell,cn9131
- const: marvell,cn9130
- const: marvell,armada-ap807-quad
- const: marvell,armada-ap807
- description: Armada CN9132 SoC with two external CPs
items:
- const: marvell,cn9132
- const: marvell,cn9131
- const: marvell,cn9130
- const: marvell,armada-ap807-quad
- const: marvell,armada-ap807

View File

@ -1,14 +0,0 @@
Marvell Platforms Device Tree Bindings
----------------------------------------------------
PXA168 Aspenite Board
Required root node properties:
- compatible = "mrvl,pxa168-aspenite", "mrvl,pxa168";
PXA910 DKB Board
Required root node properties:
- compatible = "mrvl,pxa910-dkb";
MMP2 Brownstone Board
Required root node properties:
- compatible = "mrvl,mmp2-brownstone", "mrvl,mmp2";

View File

@ -0,0 +1,35 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/mrvl/mrvl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Marvell Platforms Device Tree Bindings
maintainers:
- Lubomir Rintel <lkundrak@v3.sk>
properties:
$nodename:
const: '/'
compatible:
oneOf:
- description: PXA168 Aspenite Board
items:
- enum:
- mrvl,pxa168-aspenite
- const: mrvl,pxa168
- description: PXA910 DKB Board
items:
- enum:
- mrvl,pxa910-dkb
- const: mrvl,pxa910
- description: MMP2 based boards
items:
- enum:
- mrvl,mmp2-brownstone
- const: mrvl,mmp2
- description: MMP3 based boards
items:
- const: mrvl,mmp3
...

View File

@ -1,41 +0,0 @@
== Introduction==
LLCC (Last Level Cache Controller) provides last level of cache memory in SOC,
that can be shared by multiple clients. Clients here are different cores in the
SOC, the idea is to minimize the local caches at the clients and migrate to
common pool of memory. Cache memory is divided into partitions called slices
which are assigned to clients. Clients can query the slice details, activate
and deactivate them.
Properties:
- compatible:
Usage: required
Value type: <string>
Definition: must be "qcom,sdm845-llcc"
- reg:
Usage: required
Value Type: <prop-encoded-array>
Definition: The first element specifies the llcc base start address and
the size of the register region. The second element specifies
the llcc broadcast base address and size of the register region.
- reg-names:
Usage: required
Value Type: <stringlist>
Definition: Register region names. Must be "llcc_base", "llcc_broadcast_base".
- interrupts:
Usage: required
Definition: The interrupt is associated with the llcc edac device.
It's used for llcc cache single and double bit error detection
and reporting.
Example:
cache-controller@1100000 {
compatible = "qcom,sdm845-llcc";
reg = <0x1100000 0x200000>, <0x1300000 0x50000> ;
reg-names = "llcc_base", "llcc_broadcast_base";
interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
};

View File

@ -0,0 +1,55 @@
# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/msm/qcom,llcc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Last Level Cache Controller
maintainers:
- Rishabh Bhatnagar <rishabhb@codeaurora.org>
- Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
description: |
LLCC (Last Level Cache Controller) provides last level of cache memory in SoC,
that can be shared by multiple clients. Clients here are different cores in the
SoC, the idea is to minimize the local caches at the clients and migrate to
common pool of memory. Cache memory is divided into partitions called slices
which are assigned to clients. Clients can query the slice details, activate
and deactivate them.
properties:
compatible:
enum:
- qcom,sc7180-llcc
- qcom,sdm845-llcc
reg:
items:
- description: LLCC base register region
- description: LLCC broadcast base register region
reg-names:
items:
- const: llcc_base
- const: llcc_broadcast_base
interrupts:
maxItems: 1
required:
- compatible
- reg
- reg-names
- interrupts
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
cache-controller@1100000 {
compatible = "qcom,sdm845-llcc";
reg = <0x1100000 0x200000>, <0x1300000 0x50000> ;
reg-names = "llcc_base", "llcc_broadcast_base";
interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
};

View File

@ -0,0 +1,29 @@
OMAP PRM instance bindings
Power and Reset Manager is an IP block on OMAP family of devices which
handle the power domains and their current state, and provide reset
handling for the domains and/or separate IP blocks under the power domain
hierarchy.
Required properties:
- compatible: Must contain one of the following:
"ti,am3-prm-inst"
"ti,am4-prm-inst"
"ti,omap4-prm-inst"
"ti,omap5-prm-inst"
"ti,dra7-prm-inst"
and additionally must contain:
"ti,omap-prm-inst"
- reg: Contains PRM instance register address range
(base address and length)
Optional properties:
- #reset-cells: Should be 1 if the PRM instance in question supports resets.
Example:
prm_dsp2: prm@1b00 {
compatible = "ti,dra7-prm-inst", "ti,omap-prm-inst";
reg = <0x1b00 0x40>;
#reset-cells = <1>;
};

View File

@ -13,11 +13,24 @@ properties:
$nodename: $nodename:
const: '/' const: '/'
compatible: compatible:
# RTD1295 SoC based boards oneOf:
items: # RTD1293 SoC based boards
- enum: - items:
- mele,v9 - enum:
- probox2,ava - synology,ds418j # Synology DiskStation DS418j
- zidoo,x9s - const: realtek,rtd1293
- const: realtek,rtd1295
# RTD1295 SoC based boards
- items:
- enum:
- mele,v9 # MeLE V9
- probox2,ava # ProBox2 AVA
- zidoo,x9s # Zidoo X9S
- const: realtek,rtd1295
# RTD1296 SoC based boards
- items:
- enum:
- synology,ds418 # Synology DiskStation DS418
- const: realtek,rtd1296
... ...

View File

@ -1,20 +0,0 @@
Renesas Product Register
Most Renesas ARM SoCs have a Product Register or Boundary Scan ID Register that
allows to retrieve SoC product and revision information. If present, a device
node for this register should be added.
Required properties:
- compatible: Must be one of:
"renesas,prr"
"renesas,bsid"
- reg: Base address and length of the register block.
Examples
--------
prr: chipid@ff000044 {
compatible = "renesas,prr";
reg = <0 0xff000044 0 4>;
};

View File

@ -0,0 +1,35 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/renesas,prr.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Renesas Product Register
maintainers:
- Geert Uytterhoeven <geert+renesas@glider.be>
- Magnus Damm <magnus.damm@gmail.com>
description: |
Most Renesas ARM SoCs have a Product Register or Boundary Scan ID
Register that allows to retrieve SoC product and revision information.
If present, a device node for this register should be added.
properties:
compatible:
enum:
- renesas,prr
- renesas,bsid
reg:
maxItems: 1
required:
- compatible
- reg
examples:
- |
prr: chipid@ff000044 {
compatible = "renesas,prr";
reg = <0 0xff000044 0 4>;
};

View File

@ -116,6 +116,18 @@ properties:
- const: hoperun,hihope-rzg2m - const: hoperun,hihope-rzg2m
- const: renesas,r8a774a1 - const: renesas,r8a774a1
- description: RZ/G2N (R8A774B1)
items:
- enum:
- hoperun,hihope-rzg2n # HopeRun HiHope RZ/G2N platform
- const: renesas,r8a774b1
- items:
- enum:
- hoperun,hihope-rzg2-ex # HopeRun expansion board for HiHope RZ/G2 platforms
- const: hoperun,hihope-rzg2n
- const: renesas,r8a774b1
- description: RZ/G2E (R8A774C0) - description: RZ/G2E (R8A774C0)
items: items:
- enum: - enum:
@ -193,15 +205,23 @@ properties:
- renesas,salvator-xs # Salvator-XS (Salvator-X 2nd version, RTP0RC7796SIPB0012S) - renesas,salvator-xs # Salvator-XS (Salvator-X 2nd version, RTP0RC7796SIPB0012S)
- const: renesas,r8a7796 - const: renesas,r8a7796
- description: R-Car M3-W+ (R8A77961)
items:
- enum:
- renesas,salvator-xs # Salvator-XS (Salvator-X 2nd version, RTP0RC7796SIPB0012SA5A)
- const: renesas,r8a77961
- description: Kingfisher (SBEV-RCAR-KF-M03) - description: Kingfisher (SBEV-RCAR-KF-M03)
items: items:
- const: shimafuji,kingfisher - const: shimafuji,kingfisher
- enum: - enum:
- renesas,h3ulcb - renesas,h3ulcb
- renesas,m3ulcb - renesas,m3ulcb
- renesas,m3nulcb
- enum: - enum:
- renesas,r8a7795 - renesas,r8a7795
- renesas,r8a7796 - renesas,r8a7796
- renesas,r8a77965
- description: R-Car M3-N (R8A77965) - description: R-Car M3-N (R8A77965)
items: items:

View File

@ -40,6 +40,11 @@ properties:
- const: asus,rk3288-tinker-s - const: asus,rk3288-tinker-s
- const: rockchip,rk3288 - const: rockchip,rk3288
- description: Beelink A1
items:
- const: azw,beelink-a1
- const: rockchip,rk3328
- description: bq Curie 2 tablet - description: bq Curie 2 tablet
items: items:
- const: mundoreader,bq-curie2 - const: mundoreader,bq-curie2
@ -82,6 +87,11 @@ properties:
- const: firefly,firefly-rk3399 - const: firefly,firefly-rk3399
- const: rockchip,rk3399 - const: rockchip,rk3399
- description: Firefly ROC-RK3308-CC
items:
- const: firefly,roc-rk3308-cc
- const: rockchip,rk3308
- description: Firefly roc-rk3328-cc - description: Firefly roc-rk3328-cc
items: items:
- const: firefly,roc-rk3328-cc - const: firefly,roc-rk3328-cc
@ -89,7 +99,9 @@ properties:
- description: Firefly ROC-RK3399-PC - description: Firefly ROC-RK3399-PC
items: items:
- const: firefly,roc-rk3399-pc - enum:
- firefly,roc-rk3399-pc
- firefly,roc-rk3399-pc-mezzanine
- const: rockchip,rk3399 - const: rockchip,rk3399
- description: FriendlyElec NanoPi4 series boards - description: FriendlyElec NanoPi4 series boards
@ -464,6 +476,11 @@ properties:
- rockchip,rk3288-evb-rk808 - rockchip,rk3288-evb-rk808
- const: rockchip,rk3288 - const: rockchip,rk3288
- description: Rockchip RK3308 Evaluation board
items:
- const: rockchip,rk3308-evb
- const: rockchip,rk3308
- description: Rockchip RK3328 Evaluation board - description: Rockchip RK3328 Evaluation board
items: items:
- const: rockchip,rk3328-evb - const: rockchip,rk3328-evb

View File

@ -1,12 +0,0 @@
SAMSUNG Exynos SoCs Chipid driver.
Required properties:
- compatible : Should at least contain "samsung,exynos4210-chipid".
- reg: offset and length of the register set
Example:
chipid@10000000 {
compatible = "samsung,exynos4210-chipid";
reg = <0x10000000 0x100>;
};

View File

@ -0,0 +1,39 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/samsung/exynos-chipid.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Samsung Exynos SoC series Chipid driver
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
properties:
compatible:
items:
- const: samsung,exynos4210-chipid
reg:
maxItems: 1
samsung,asv-bin:
description:
Adaptive Supply Voltage bin selection. This can be used
to determine the ASV bin of an SoC if respective information
is missing in the CHIPID registers or in the OTP memory.
allOf:
- $ref: /schemas/types.yaml#/definitions/uint32
- enum: [ 0, 1, 2, 3 ]
required:
- compatible
- reg
examples:
- |
chipid@10000000 {
compatible = "samsung,exynos4210-chipid";
reg = <0x10000000 0x100>;
samsung,asv-bin = <2>;
};

View File

@ -1,72 +0,0 @@
SAMSUNG Exynos SoC series PMU Registers
Properties:
- compatible : should contain two values. First value must be one from following list:
- "samsung,exynos3250-pmu" - for Exynos3250 SoC,
- "samsung,exynos4210-pmu" - for Exynos4210 SoC,
- "samsung,exynos4412-pmu" - for Exynos4412 SoC,
- "samsung,exynos5250-pmu" - for Exynos5250 SoC,
- "samsung,exynos5260-pmu" - for Exynos5260 SoC.
- "samsung,exynos5410-pmu" - for Exynos5410 SoC,
- "samsung,exynos5420-pmu" - for Exynos5420 SoC.
- "samsung,exynos5433-pmu" - for Exynos5433 SoC.
- "samsung,exynos7-pmu" - for Exynos7 SoC.
second value must be always "syscon".
- reg : offset and length of the register set.
- #clock-cells : must be <1>, since PMU requires once cell as clock specifier.
The single specifier cell is used as index to list of clocks
provided by PMU, which is currently:
0 : SoC clock output (CLKOUT pin)
- clock-names : list of clock names for particular CLKOUT mux inputs in
following format:
"clkoutN", where N is a decimal number corresponding to
CLKOUT mux control bits value for given input, e.g.
"clkout0", "clkout7", "clkout15".
- clocks : list of phandles and specifiers to all input clocks listed in
clock-names property.
Optional properties:
Some PMUs are capable of behaving as an interrupt controller (mostly
to wake up a suspended PMU). In which case, they can have the
following properties:
- interrupt-controller: indicate that said PMU is an interrupt controller
- #interrupt-cells: must be identical to the that of the parent interrupt
controller.
Optional nodes:
- nodes defining the restart and poweroff syscon children
Example :
pmu_system_controller: system-controller@10040000 {
compatible = "samsung,exynos5250-pmu", "syscon";
reg = <0x10040000 0x5000>;
interrupt-controller;
#interrupt-cells = <3>;
interrupt-parent = <&gic>;
#clock-cells = <1>;
clock-names = "clkout0", "clkout1", "clkout2", "clkout3",
"clkout4", "clkout8", "clkout9";
clocks = <&clock CLK_OUT_DMC>, <&clock CLK_OUT_TOP>,
<&clock CLK_OUT_LEFTBUS>, <&clock CLK_OUT_RIGHTBUS>,
<&clock CLK_OUT_CPU>, <&clock CLK_XXTI>,
<&clock CLK_XUSBXTI>;
};
Example of clock consumer :
usb3503: usb3503@8 {
/* ... */
clock-names = "refclk";
clocks = <&pmu_system_controller 0>;
/* ... */
};

View File

@ -0,0 +1,105 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/samsung/pmu.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Samsung Exynos SoC series Power Management Unit (PMU)
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
# Custom select to avoid matching all nodes with 'syscon'
select:
properties:
compatible:
contains:
enum:
- samsung,exynos3250-pmu
- samsung,exynos4210-pmu
- samsung,exynos4412-pmu
- samsung,exynos5250-pmu
- samsung,exynos5260-pmu
- samsung,exynos5410-pmu
- samsung,exynos5420-pmu
- samsung,exynos5433-pmu
- samsung,exynos7-pmu
required:
- compatible
properties:
compatible:
items:
- enum:
- samsung,exynos3250-pmu
- samsung,exynos4210-pmu
- samsung,exynos4412-pmu
- samsung,exynos5250-pmu
- samsung,exynos5260-pmu
- samsung,exynos5410-pmu
- samsung,exynos5420-pmu
- samsung,exynos5433-pmu
- samsung,exynos7-pmu
- const: syscon
reg:
maxItems: 1
'#clock-cells':
const: 1
clock-names:
description:
List of clock names for particular CLKOUT mux inputs
minItems: 1
maxItems: 32
items:
pattern: '^clkout([0-9]|[12][0-9]|3[0-1])$'
clocks:
minItems: 1
maxItems: 32
interrupt-controller:
description:
Some PMUs are capable of behaving as an interrupt controller (mostly
to wake up a suspended PMU).
'#interrupt-cells':
description:
Must be identical to the that of the parent interrupt controller.
const: 3
syscon-poweroff:
$ref: "../../power/reset/syscon-poweroff.yaml#"
type: object
description:
Node for power off method
syscon-reboot:
$ref: "../../power/reset/syscon-reboot.yaml#"
type: object
description:
Node for reboot method
required:
- compatible
- reg
- '#clock-cells'
- clock-names
- clocks
examples:
- |
#include <dt-bindings/clock/exynos5250.h>
pmu_system_controller: system-controller@10040000 {
compatible = "samsung,exynos5250-pmu", "syscon";
reg = <0x10040000 0x5000>;
interrupt-controller;
#interrupt-cells = <3>;
interrupt-parent = <&gic>;
#clock-cells = <1>;
clock-names = "clkout16";
clocks = <&clock CLK_FIN_PLL>;
};

View File

@ -1,83 +0,0 @@
* Samsung's Exynos and S5P SoC based boards
Required root node properties:
- compatible = should be one or more of the following.
- "samsung,aries" - for S5PV210-based Samsung Aries board.
- "samsung,fascinate4g" - for S5PV210-based Samsung Galaxy S Fascinate 4G (SGH-T959P) board.
- "samsung,galaxys" - for S5PV210-based Samsung Galaxy S (i9000) board.
- "samsung,artik5" - for Exynos3250-based Samsung ARTIK5 module.
- "samsung,artik5-eval" - for Exynos3250-based Samsung ARTIK5 eval board.
- "samsung,monk" - for Exynos3250-based Samsung Simband board.
- "samsung,rinato" - for Exynos3250-based Samsung Gear2 board.
- "samsung,smdkv310" - for Exynos4210-based Samsung SMDKV310 eval board.
- "samsung,trats" - for Exynos4210-based Tizen Reference board.
- "samsung,universal_c210" - for Exynos4210-based Samsung board.
- "samsung,i9300" - for Exynos4412-based Samsung GT-I9300 board.
- "samsung,i9305" - for Exynos4412-based Samsung GT-I9305 board.
- "samsung,midas" - for Exynos4412-based Samsung Midas board.
- "samsung,smdk4412", - for Exynos4412-based Samsung SMDK4412 eval board.
- "samsung,n710x" - for Exynos4412-based Samsung GT-N7100/GT-N7105 board.
- "samsung,trats2" - for Exynos4412-based Tizen Reference board.
- "samsung,smdk5250" - for Exynos5250-based Samsung SMDK5250 eval board.
- "samsung,xyref5260" - for Exynos5260-based Samsung board.
- "samsung,smdk5410" - for Exynos5410-based Samsung SMDK5410 eval board.
- "samsung,smdk5420" - for Exynos5420-based Samsung SMDK5420 eval board.
- "samsung,tm2" - for Exynos5433-based Samsung TM2 board.
- "samsung,tm2e" - for Exynos5433-based Samsung TM2E board.
* Other companies Exynos SoC based
* FriendlyARM
- "friendlyarm,tiny4412" - for Exynos4412-based FriendlyARM
TINY4412 board.
* TOPEET
- "topeet,itop4412-elite" - for Exynos4412-based TOPEET
Elite base board.
* Google
- "google,pi" - for Exynos5800-based Google Peach Pi
Rev 10+ board,
also: "google,pi-rev16", "google,pi-rev15", "google,pi-rev14",
"google,pi-rev13", "google,pi-rev12", "google,pi-rev11",
"google,pi-rev10", "google,peach".
- "google,pit" - for Exynos5420-based Google Peach Pit
Rev 6+ (Exynos5420),
also: "google,pit-rev16", "google,pit-rev15", "google,pit-rev14",
"google,pit-rev13", "google,pit-rev12", "google,pit-rev11",
"google,pit-rev10", "google,pit-rev9", "google,pit-rev8",
"google,pit-rev7", "google,pit-rev6", "google,peach".
- "google,snow-rev4" - for Exynos5250-based Google Snow board,
also: "google,snow"
- "google,snow-rev5" - for Exynos5250-based Google Snow
Rev 5+ board.
- "google,spring" - for Exynos5250-based Google Spring board.
* Hardkernel
- "hardkernel,odroid-u3" - for Exynos4412-based Hardkernel Odroid U3.
- "hardkernel,odroid-x" - for Exynos4412-based Hardkernel Odroid X.
- "hardkernel,odroid-x2" - for Exynos4412-based Hardkernel Odroid X2.
- "hardkernel,odroid-xu" - for Exynos5410-based Hardkernel Odroid XU.
- "hardkernel,odroid-xu3" - for Exynos5422-based Hardkernel Odroid XU3.
- "hardkernel,odroid-xu3-lite" - for Exynos5422-based Hardkernel
Odroid XU3 Lite board.
- "hardkernel,odroid-xu4" - for Exynos5422-based Hardkernel Odroid XU4.
- "hardkernel,odroid-hc1" - for Exynos5422-based Hardkernel Odroid HC1.
* Insignal
- "insignal,arndale" - for Exynos5250-based Insignal Arndale board.
- "insignal,arndale-octa" - for Exynos5420-based Insignal Arndale
Octa board.
- "insignal,origen" - for Exynos4210-based Insignal Origen board.
- "insignal,origen4412" - for Exynos4412-based Insignal Origen board.
Optional nodes:
- firmware node, specifying presence and type of secure firmware:
- compatible: only "samsung,secure-firmware" is currently supported
- reg: address of non-secure SYSRAM used for communication with firmware
firmware@203f000 {
compatible = "samsung,secure-firmware";
reg = <0x0203F000 0x1000>;
};

View File

@ -0,0 +1,181 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/samsung/samsung-boards.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Samsung Exynos and S5P SoC based boards
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
properties:
$nodename:
const: '/'
compatible:
oneOf:
- description: S5PV210 based boards
items:
- enum:
- aesop,torbreck # aESOP Torbreck based on S5PV210
- samsung,aquila # Samsung Aquila based on S5PC110
- samsung,goni # Samsung Goni based on S5PC110
- yic,smdkc110 # YIC System SMDKC110 based on S5PC110
- yic,smdkv210 # YIC System SMDKV210 based on S5PV210
- const: samsung,s5pv210
- description: S5PV210 based Aries boards
items:
- enum:
- samsung,fascinate4g # Samsung Galaxy S Fascinate 4G (SGH-T959P)
- samsung,galaxys # Samsung Galaxy S (i9000)
- const: samsung,aries
- const: samsung,s5pv210
- description: Exynos3250 based boards
items:
- enum:
- samsung,monk # Samsung Simband
- samsung,rinato # Samsung Gear2
- const: samsung,exynos3250
- const: samsung,exynos3
- description: Samsung ARTIK5 boards
items:
- enum:
- samsung,artik5-eval # Samsung ARTIK5 eval board
- const: samsung,artik5 # Samsung ARTIK5 module
- const: samsung,exynos3250
- const: samsung,exynos3
- description: Exynos4210 based boards
items:
- enum:
- insignal,origen # Insignal Origen
- samsung,smdkv310 # Samsung SMDKV310 eval
- samsung,trats # Samsung Tizen Reference
- samsung,universal_c210 # Samsung C210
- const: samsung,exynos4210
- const: samsung,exynos4
- description: Exynos4412 based boards
items:
- enum:
- friendlyarm,tiny4412 # FriendlyARM TINY4412
- hardkernel,odroid-u3 # Hardkernel Odroid U3
- hardkernel,odroid-x # Hardkernel Odroid X
- hardkernel,odroid-x2 # Hardkernel Odroid X2
- insignal,origen4412 # Insignal Origen
- samsung,smdk4412 # Samsung SMDK4412 eval
- topeet,itop4412-elite # TOPEET Elite base
- const: samsung,exynos4412
- const: samsung,exynos4
- description: Samsung Midas family boards
items:
- enum:
- samsung,i9300 # Samsung GT-I9300
- samsung,i9305 # Samsung GT-I9305
- samsung,n710x # Samsung GT-N7100/GT-N7105
- samsung,trats2 # Samsung Tizen Reference
- const: samsung,midas
- const: samsung,exynos4412
- const: samsung,exynos4
- description: Exynos5250 based boards
items:
- enum:
- google,snow-rev5 # Google Snow Rev 5+
- google,spring # Google Spring
- insignal,arndale # Insignal Arndale
- samsung,smdk5250 # Samsung SMDK5250 eval
- const: samsung,exynos5250
- const: samsung,exynos5
- description: Google Snow Boards (Rev 4+)
items:
- const: google,snow-rev4
- const: google,snow
- const: samsung,exynos5250
- const: samsung,exynos5
- description: Exynos5260 based boards
items:
- enum:
- samsung,xyref5260 # Samsung Xyref5260 eval
- const: samsung,exynos5260
- const: samsung,exynos5
- description: Exynos5410 based boards
items:
- enum:
- hardkernel,odroid-xu # Hardkernel Odroid XU
- samsung,smdk5410 # Samsung SMDK5410 eval
- const: samsung,exynos5410
- const: samsung,exynos5
- description: Exynos5420 based boards
items:
- enum:
- insignal,arndale-octa # Insignal Arndale Octa
- samsung,smdk5420 # Samsung SMDK5420 eval
- const: samsung,exynos5420
- const: samsung,exynos5
- description: Google Peach Pit Boards (Rev 6+)
items:
- const: google,pit-rev16
- const: google,pit-rev15
- const: google,pit-rev14
- const: google,pit-rev13
- const: google,pit-rev12
- const: google,pit-rev11
- const: google,pit-rev10
- const: google,pit-rev9
- const: google,pit-rev8
- const: google,pit-rev7
- const: google,pit-rev6
- const: google,pit
- const: google,peach
- const: samsung,exynos5420
- const: samsung,exynos5
- description: Exynos5800 based boards
items:
- enum:
- hardkernel,odroid-xu3 # Hardkernel Odroid XU3
- hardkernel,odroid-xu3-lite # Hardkernel Odroid XU3 Lite
- hardkernel,odroid-xu4 # Hardkernel Odroid XU4
- hardkernel,odroid-hc1 # Hardkernel Odroid HC1
- const: samsung,exynos5800
- const: samsung,exynos5
- description: Google Peach Pi Boards (Rev 10+)
items:
- const: google,pi-rev16
- const: google,pi-rev15
- const: google,pi-rev14
- const: google,pi-rev13
- const: google,pi-rev12
- const: google,pi-rev11
- const: google,pi-rev10
- const: google,pi
- const: google,peach
- const: samsung,exynos5800
- const: samsung,exynos5
- description: Exynos5433 based boards
items:
- enum:
- samsung,tm2 # Samsung TM2
- samsung,tm2e # Samsung TM2E
- const: samsung,exynos5433
- description: Exynos7 based boards
items:
- enum:
- samsung,exynos7-espresso # Samsung Exynos7 Espresso
- const: samsung,exynos7
required:
- compatible

View File

@ -0,0 +1,31 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/samsung/samsung-secure-firmware.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Samsung Exynos Secure Firmware
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
properties:
compatible:
items:
- const: samsung,secure-firmware
reg:
description:
Address of non-secure SYSRAM used for communication with firmware.
maxItems: 1
required:
- compatible
- reg
examples:
- |
firmware@203f000 {
compatible = "samsung,secure-firmware";
reg = <0x0203f000 0x1000>;
};

View File

@ -1,19 +0,0 @@
SAMSUNG S5P/Exynos SoC series System Registers (SYSREG)
Properties:
- compatible : should contain two values. First value must be one from following list:
- "samsung,exynos4-sysreg" - for Exynos4 based SoCs,
- "samsung,exynos5-sysreg" - for Exynos5 based SoCs.
second value must be always "syscon".
- reg : offset and length of the register set.
Example:
syscon@10010000 {
compatible = "samsung,exynos4-sysreg", "syscon";
reg = <0x10010000 0x400>;
};
syscon@10050000 {
compatible = "samsung,exynos5-sysreg", "syscon";
reg = <0x10050000 0x5000>;
};

View File

@ -0,0 +1,45 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/samsung/sysreg.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Samsung S5P/Exynos SoC series System Registers (SYSREG)
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
# Custom select to avoid matching all nodes with 'syscon'
select:
properties:
compatible:
contains:
enum:
- samsung,exynos4-sysreg
- samsung,exynos5-sysreg
required:
- compatible
properties:
compatible:
allOf:
- items:
- enum:
- samsung,exynos4-sysreg
- samsung,exynos5-sysreg
- const: syscon
reg:
maxItems: 1
examples:
- |
syscon@10010000 {
compatible = "samsung,exynos4-sysreg", "syscon";
reg = <0x10010000 0x400>;
};
syscon@10050000 {
compatible = "samsung,exynos5-sysreg", "syscon";
reg = <0x10050000 0x5000>;
};

View File

@ -1,14 +0,0 @@
Spreadtrum SoC Platforms Device Tree Bindings
----------------------------------------------------
SC9836 openphone Board
Required root node properties:
- compatible = "sprd,sc9836-openphone", "sprd,sc9836";
SC9860 SoC
Required root node properties:
- compatible = "sprd,sc9860"
SP9860G 3GFHD Board
Required root node properties:
- compatible = "sprd,sp9860g-1h10", "sprd,sc9860";

View File

@ -0,0 +1,33 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright 2019 Unisoc Inc.
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/sprd.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Unisoc platforms device tree bindings
maintainers:
- Orson Zhai <orsonzhai@gmail.com>
- Baolin Wang <baolin.wang7@gmail.com>
- Chunyan Zhang <zhang.lyra@gmail.com>
properties:
$nodename:
const: '/'
compatible:
oneOf:
- items:
- enum:
- sprd,sc9836-openphone
- const: sprd,sc9836
- items:
- enum:
- sprd,sp9860g-1h10
- const: sprd,sc9860
- items:
- enum:
- sprd,sp9863a-1h10
- const: sprd,sc9863a
...

View File

@ -13,19 +13,38 @@ properties:
compatible: compatible:
oneOf: oneOf:
- items: - items:
- enum:
- st,stm32f429i-disco
- st,stm32429i-eval
- const: st,stm32f429 - const: st,stm32f429
- items: - items:
- enum:
- st,stm32f469i-disco
- const: st,stm32f469 - const: st,stm32f469
- items: - items:
- enum:
- st,stm32f746-disco
- st,stm32746g-eval
- const: st,stm32f746 - const: st,stm32f746
- items: - items:
- enum:
- st,stm32f769-disco
- const: st,stm32f769
- items:
- enum:
- st,stm32h743i-disco
- st,stm32h743i-eval
- const: st,stm32h743 - const: st,stm32h743
- items: - items:
- enum: - enum:
- arrow,stm32mp157a-avenger96 # Avenger96 - arrow,stm32mp157a-avenger96 # Avenger96
- st,stm32mp157c-ed1
- st,stm32mp157a-dk1
- st,stm32mp157c-dk2
- const: st,stm32mp157
- items:
- const: st,stm32mp157c-ev1
- const: st,stm32mp157c-ed1
- const: st,stm32mp157 - const: st,stm32mp157
... ...

View File

@ -211,6 +211,11 @@ properties:
- const: friendlyarm,nanopi-a64 - const: friendlyarm,nanopi-a64
- const: allwinner,sun50i-a64 - const: allwinner,sun50i-a64
- description: FriendlyARM NanoPi Duo2
items:
- const: friendlyarm,nanopi-duo2
- const: allwinner,sun8i-h3
- description: FriendlyARM NanoPi M1 - description: FriendlyARM NanoPi M1
items: items:
- const: friendlyarm,nanopi-m1 - const: friendlyarm,nanopi-m1

View File

@ -1,44 +0,0 @@
Allwinner SRAM for smp bringup:
------------------------------------------------
Allwinner's A80 SoC uses part of the secure sram for hotplugging of the
primary core (cpu0). Once the core gets powered up it checks if a magic
value is set at a specific location. If it is then the BROM will jump
to the software entry address, instead of executing a standard boot.
Therefore a reserved section sub-node has to be added to the mmio-sram
declaration.
Note that this is separate from the Allwinner SRAM controller found in
../../sram/sunxi-sram.txt. This SRAM is secure only and not mappable to
any device.
Also there are no "secure-only" properties. The implementation should
check if this SRAM is usable first.
Required sub-node properties:
- compatible : depending on the SoC this should be one of:
"allwinner,sun9i-a80-smp-sram"
The rest of the properties should follow the generic mmio-sram discription
found in ../../misc/sram.txt
Example:
sram_b: sram@20000 {
/* 256 KiB secure SRAM at 0x20000 */
compatible = "mmio-sram";
reg = <0x00020000 0x40000>;
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x00020000 0x40000>;
smp-sram@1000 {
/*
* This is checked by BROM to determine if
* cpu0 should jump to SMP entry vector
*/
compatible = "allwinner,sun9i-a80-smp-sram";
reg = <0x1000 0x8>;
};
};

View File

@ -8,6 +8,7 @@ bus.
Required properties: Required properties:
- compatible: Must be one of: - compatible: Must be one of:
- allwinner,sun5i-a13-mbus - allwinner,sun5i-a13-mbus
- allwinner,sun8i-h3-mbus
- reg: Offset and length of the register set for the controller - reg: Offset and length of the register set for the controller
- clocks: phandle to the clock driving the controller - clocks: phandle to the clock driving the controller
- dma-ranges: See section 2.3.9 of the DeviceTree Specification - dma-ranges: See section 2.3.9 of the DeviceTree Specification

View File

@ -2,6 +2,7 @@
Required properties: Required properties:
- compatible : should contain one or more of the following: - compatible : should contain one or more of the following:
- "renesas,sata-r8a774b1" for RZ/G2N
- "renesas,sata-r8a7779" for R-Car H1 - "renesas,sata-r8a7779" for R-Car H1
- "renesas,sata-r8a7790-es1" for R-Car H2 ES1 - "renesas,sata-r8a7790-es1" for R-Car H2 ES1
- "renesas,sata-r8a7790" for R-Car H2 other than ES1 - "renesas,sata-r8a7790" for R-Car H2 other than ES1
@ -9,8 +10,10 @@ Required properties:
- "renesas,sata-r8a7793" for R-Car M2-N - "renesas,sata-r8a7793" for R-Car M2-N
- "renesas,sata-r8a7795" for R-Car H3 - "renesas,sata-r8a7795" for R-Car H3
- "renesas,sata-r8a77965" for R-Car M3-N - "renesas,sata-r8a77965" for R-Car M3-N
- "renesas,rcar-gen2-sata" for a generic R-Car Gen2 compatible device - "renesas,rcar-gen2-sata" for a generic R-Car Gen2
- "renesas,rcar-gen3-sata" for a generic R-Car Gen3 compatible device compatible device
- "renesas,rcar-gen3-sata" for a generic R-Car Gen3 or
RZ/G2 compatible device
- "renesas,rcar-sata" is deprecated - "renesas,rcar-sata" is deprecated
When compatible with the generic version nodes When compatible with the generic version nodes

View File

@ -1,46 +0,0 @@
Renesas Bus State Controller (BSC)
==================================
The Renesas Bus State Controller (BSC, sometimes called "LBSC within Bus
Bridge", or "External Bus Interface") can be found in several Renesas ARM SoCs.
It provides an external bus for connecting multiple external devices to the
SoC, driving several chip select lines, for e.g. NOR FLASH, Ethernet and USB.
While the BSC is a fairly simple memory-mapped bus, it may be part of a PM
domain, and may have a gateable functional clock.
Before a device connected to the BSC can be accessed, the PM domain
containing the BSC must be powered on, and the functional clock
driving the BSC must be enabled.
The bindings for the BSC extend the bindings for "simple-pm-bus".
Required properties
- compatible: Must contain an SoC-specific value, and "renesas,bsc" and
"simple-pm-bus" as fallbacks.
SoC-specific values can be:
"renesas,bsc-r8a73a4" for R-Mobile APE6 (r8a73a4)
"renesas,bsc-sh73a0" for SH-Mobile AG5 (sh73a0)
- #address-cells, #size-cells, ranges: Must describe the mapping between
parent address and child address spaces.
- reg: Must contain the base address and length to access the bus controller.
Optional properties:
- interrupts: Must contain a reference to the BSC interrupt, if available.
- clocks: Must contain a reference to the functional clock, if available.
- power-domains: Must contain a reference to the PM domain, if available.
Example:
bsc: bus@fec10000 {
compatible = "renesas,bsc-sh73a0", "renesas,bsc",
"simple-pm-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0 0x20000000>;
reg = <0xfec10000 0x400>;
interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&zb_clk>;
power-domains = <&pd_a4s>;
};

View File

@ -0,0 +1,60 @@
%YAML 1.2
---
$id: http://devicetree.org/schemas/bus/renesas,bsc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Renesas Bus State Controller (BSC)
maintainers:
- Geert Uytterhoeven <geert+renesas@glider.be>
description: |
The Renesas Bus State Controller (BSC, sometimes called "LBSC within Bus
Bridge", or "External Bus Interface") can be found in several Renesas ARM
SoCs. It provides an external bus for connecting multiple external
devices to the SoC, driving several chip select lines, for e.g. NOR
FLASH, Ethernet and USB.
While the BSC is a fairly simple memory-mapped bus, it may be part of a
PM domain, and may have a gateable functional clock. Before a device
connected to the BSC can be accessed, the PM domain containing the BSC
must be powered on, and the functional clock driving the BSC must be
enabled.
The bindings for the BSC extend the bindings for "simple-pm-bus".
allOf:
- $ref: simple-pm-bus.yaml#
properties:
compatible:
items:
- enum:
- renesas,bsc-r8a73a4 # R-Mobile APE6 (r8a73a4)
- renesas,bsc-sh73a0 # SH-Mobile AG5 (sh73a0)
- const: renesas,bsc
- {} # simple-pm-bus, but not listed here to avoid false select
reg:
maxItems: 1
interrupts:
maxItems: 1
required:
- reg
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
bsc: bus@fec10000 {
compatible = "renesas,bsc-sh73a0", "renesas,bsc", "simple-pm-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0 0x20000000>;
reg = <0xfec10000 0x400>;
interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&zb_clk>;
power-domains = <&pd_a4s>;
};

View File

@ -1,44 +0,0 @@
Simple Power-Managed Bus
========================
A Simple Power-Managed Bus is a transparent bus that doesn't need a real
driver, as it's typically initialized by the boot loader.
However, its bus controller is part of a PM domain, or under the control of a
functional clock. Hence, the bus controller's PM domain and/or clock must be
enabled for child devices connected to the bus (either on-SoC or externally)
to function.
While "simple-pm-bus" follows the "simple-bus" set of properties, as specified
in the Devicetree Specification, it is not an extension of "simple-bus".
Required properties:
- compatible: Must contain at least "simple-pm-bus".
Must not contain "simple-bus".
It's recommended to let this be preceded by one or more
vendor-specific compatible values.
- #address-cells, #size-cells, ranges: Must describe the mapping between
parent address and child address spaces.
Optional platform-specific properties for clock or PM domain control (at least
one of them is required):
- clocks: Must contain a reference to the functional clock(s),
- power-domains: Must contain a reference to the PM domain.
Please refer to the binding documentation for the clock and/or PM domain
providers for more details.
Example:
bsc: bus@fec10000 {
compatible = "renesas,bsc-sh73a0", "renesas,bsc",
"simple-pm-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0 0x20000000>;
reg = <0xfec10000 0x400>;
interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&zb_clk>;
power-domains = <&pd_a4s>;
};

View File

@ -0,0 +1,75 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/bus/simple-pm-bus.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Simple Power-Managed Bus
maintainers:
- Geert Uytterhoeven <geert+renesas@glider.be>
description: |
A Simple Power-Managed Bus is a transparent bus that doesn't need a real
driver, as it's typically initialized by the boot loader.
However, its bus controller is part of a PM domain, or under the control
of a functional clock. Hence, the bus controller's PM domain and/or
clock must be enabled for child devices connected to the bus (either
on-SoC or externally) to function.
While "simple-pm-bus" follows the "simple-bus" set of properties, as
specified in the Devicetree Specification, it is not an extension of
"simple-bus".
properties:
$nodename:
pattern: "^bus(@[0-9a-f]+)?$"
compatible:
contains:
const: simple-pm-bus
description:
Shall contain "simple-pm-bus" in addition to a optional bus-specific
compatible strings defined in individual pm-bus bindings.
'#address-cells':
enum: [ 1, 2 ]
'#size-cells':
enum: [ 1, 2 ]
ranges: true
clocks: true
# Functional clocks
# Required if power-domains is absent, optional otherwise
power-domains:
# Required if clocks is absent, optional otherwise
minItems: 1
required:
- compatible
- '#address-cells'
- '#size-cells'
- ranges
anyOf:
- required:
- clocks
- required:
- power-domains
examples:
- |
#include <dt-bindings/clock/qcom,gcc-msm8996.h>
#include <dt-bindings/interrupt-controller/irq.h>
bus {
power-domains = <&gcc AGGRE0_NOC_GDSC>;
compatible = "simple-pm-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges;
};

View File

@ -62,7 +62,7 @@ Required Properties:
power-managed through Module Standby should refer to the CPG device power-managed through Module Standby should refer to the CPG device
node in their "power-domains" property, as documented by the generic PM node in their "power-domains" property, as documented by the generic PM
Domain bindings in Domain bindings in
Documentation/devicetree/bindings/power/power_domain.txt. Documentation/devicetree/bindings/power/power-domain.yaml.
- #reset-cells: Must be 1 - #reset-cells: Must be 1
- The single reset specifier cell must be the module number, as defined - The single reset specifier cell must be the module number, as defined

View File

@ -10,6 +10,11 @@ Required Properties:
- compatible: CRU should be "rockchip,px30-cru" - compatible: CRU should be "rockchip,px30-cru"
- reg: physical base address of the controller and length of memory mapped - reg: physical base address of the controller and length of memory mapped
region. region.
- clocks: A list of phandle + clock-specifier pairs for the clocks listed
in clock-names
- clock-names: Should contain the following:
- "xin24m" for both PMUCRU and CRU
- "gpll" for CRU (sourced from PMUCRU)
- #clock-cells: should be 1. - #clock-cells: should be 1.
- #reset-cells: should be 1. - #reset-cells: should be 1.

View File

@ -67,5 +67,5 @@ Examples:
Also see: Also see:
- Documentation/devicetree/bindings/clock/clock-bindings.txt - Documentation/devicetree/bindings/clock/clock-bindings.txt
- Documentation/devicetree/bindings/power/power_domain.txt - Documentation/devicetree/bindings/power/power-domain.yaml
- Documentation/devicetree/bindings/reset/reset.txt - Documentation/devicetree/bindings/reset/reset.txt

View File

@ -1,29 +0,0 @@
STMicroelectronics STM32 Low-Power Timer quadrature encoder and counter
STM32 Low-Power Timer provides several counter modes. It can be used as:
- quadrature encoder to detect angular position and direction of rotary
elements, from IN1 and IN2 input signals.
- simple counter from IN1 input signal.
Must be a sub-node of an STM32 Low-Power Timer device tree node.
See ../mfd/stm32-lptimer.txt for details about the parent node.
Required properties:
- compatible: Must be "st,stm32-lptimer-counter".
- pinctrl-names: Set to "default". An additional "sleep" state can be
defined to set pins in sleep state.
- pinctrl-n: List of phandles pointing to pin configuration nodes,
to set IN1/IN2 pins in mode of operation for Low-Power
Timer input on external pin.
Example:
timer@40002400 {
compatible = "st,stm32-lptimer";
...
counter {
compatible = "st,stm32-lptimer-counter";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&lptim1_in_pins>;
pinctrl-1 = <&lptim1_sleep_in_pins>;
};
};

View File

@ -1,31 +0,0 @@
STMicroelectronics STM32 Timer quadrature encoder
STM32 Timer provides quadrature encoder to detect
angular position and direction of rotary elements,
from IN1 and IN2 input signals.
Must be a sub-node of an STM32 Timer device tree node.
See ../mfd/stm32-timers.txt for details about the parent node.
Required properties:
- compatible: Must be "st,stm32-timer-counter".
- pinctrl-names: Set to "default".
- pinctrl-0: List of phandles pointing to pin configuration nodes,
to set CH1/CH2 pins in mode of operation for STM32
Timer input on external pin.
Example:
timers@40010000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "st,stm32-timers";
reg = <0x40010000 0x400>;
clocks = <&rcc 0 160>;
clock-names = "int";
counter {
compatible = "st,stm32-timer-counter";
pinctrl-names = "default";
pinctrl-0 = <&tim1_in_pins>;
};
};

View File

@ -549,5 +549,5 @@ Example 3: HiFive Unleashed (RISC-V 64 bit, 4 core system)
[2] Devicetree NUMA binding description [2] Devicetree NUMA binding description
Documentation/devicetree/bindings/numa.txt Documentation/devicetree/bindings/numa.txt
[3] RISC-V Linux kernel documentation [3] RISC-V Linux kernel documentation
Documentation/devicetree/bindings/riscv/cpus.txt Documentation/devicetree/bindings/riscv/cpus.yaml
[4] https://www.devicetree.org/specifications/ [4] https://www.devicetree.org/specifications/

View File

@ -0,0 +1,88 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/crypto/allwinner,sun8i-ce.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Allwinner Crypto Engine driver
maintainers:
- Corentin Labbe <clabbe.montjoie@gmail.com>
properties:
compatible:
enum:
- allwinner,sun8i-h3-crypto
- allwinner,sun8i-r40-crypto
- allwinner,sun50i-a64-crypto
- allwinner,sun50i-h5-crypto
- allwinner,sun50i-h6-crypto
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
items:
- description: Bus clock
- description: Module clock
- description: MBus clock
minItems: 2
maxItems: 3
clock-names:
items:
- const: bus
- const: mod
- const: ram
minItems: 2
maxItems: 3
resets:
maxItems: 1
if:
properties:
compatible:
items:
const: allwinner,sun50i-h6-crypto
then:
properties:
clocks:
minItems: 3
clock-names:
minItems: 3
else:
properties:
clocks:
maxItems: 2
clock-names:
maxItems: 2
required:
- compatible
- reg
- interrupts
- clocks
- clock-names
- resets
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/sun50i-a64-ccu.h>
#include <dt-bindings/reset/sun50i-a64-ccu.h>
crypto: crypto@1c15000 {
compatible = "allwinner,sun8i-h3-crypto";
reg = <0x01c15000 0x1000>;
interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_CE>, <&ccu CLK_CE>;
clock-names = "bus", "mod";
resets = <&ccu RST_BUS_CE>;
};

View File

@ -1,19 +0,0 @@
Samsung SoC SlimSSS (Slim Security SubSystem) module
The SlimSSS module in Exynos5433 SoC supports the following:
-- Feeder (FeedCtrl)
-- Advanced Encryption Standard (AES) with ECB,CBC,CTR,XTS and (CBC/XTS)/CTS
-- SHA-1/SHA-256 and (SHA-1/SHA-256)/HMAC
Required properties:
- compatible : Should contain entry for slimSSS version:
- "samsung,exynos5433-slim-sss" for Exynos5433 SoC.
- reg : Offset and length of the register set for the module
- interrupts : interrupt specifiers of SlimSSS module interrupts (one feed
control interrupt).
- clocks : list of clock phandle and specifier pairs for all clocks listed in
clock-names property.
- clock-names : list of device clock input names; should contain "pclk" and
"aclk" for slim-sss in Exynos5433.

View File

@ -0,0 +1,47 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/crypto/samsung-slimsss.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Samsung Exynos SoC SlimSSS (Slim Security SubSystem) module
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
- Kamil Konieczny <k.konieczny@partner.samsung.com>
description: |+
The SlimSSS module in Exynos5433 SoC supports the following:
-- Feeder (FeedCtrl)
-- Advanced Encryption Standard (AES) with ECB,CBC,CTR,XTS and (CBC/XTS)/CTS
-- SHA-1/SHA-256 and (SHA-1/SHA-256)/HMAC
properties:
compatible:
items:
- const: samsung,exynos5433-slim-ss
reg:
maxItems: 1
clocks:
minItems: 2
maxItems: 2
clock-names:
items:
- const: pclk
- const: aclk
interrupts:
description: One feed control interrupt.
maxItems: 1
required:
- compatible
- reg
- clock-names
- clocks
- interrupts
additionalProperties: false

View File

@ -1,32 +0,0 @@
Samsung SoC SSS (Security SubSystem) module
The SSS module in S5PV210 SoC supports the following:
-- Feeder (FeedCtrl)
-- Advanced Encryption Standard (AES)
-- Data Encryption Standard (DES)/3DES
-- Public Key Accelerator (PKA)
-- SHA-1/SHA-256/MD5/HMAC (SHA-1/SHA-256/MD5)/PRNG
-- PRNG: Pseudo Random Number Generator
The SSS module in Exynos4 (Exynos4210) and
Exynos5 (Exynos5420 and Exynos5250) SoCs
supports the following also:
-- ARCFOUR (ARC4)
-- True Random Number Generator (TRNG)
-- Secure Key Manager
Required properties:
- compatible : Should contain entries for this and backward compatible
SSS versions:
- "samsung,s5pv210-secss" for S5PV210 SoC.
- "samsung,exynos4210-secss" for Exynos4210, Exynos4212, Exynos4412, Exynos5250,
Exynos5260 and Exynos5420 SoCs.
- reg : Offset and length of the register set for the module
- interrupts : interrupt specifiers of SSS module interrupts (one feed
control interrupt).
- clocks : list of clock phandle and specifier pairs for all clocks listed in
clock-names property.
- clock-names : list of device clock input names; should contain one entry
"secss".

View File

@ -0,0 +1,58 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/crypto/samsung-sss.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Samsung Exynos SoC SSS (Security SubSystem) module
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
- Kamil Konieczny <k.konieczny@partner.samsung.com>
description: |+
The SSS module in S5PV210 SoC supports the following:
-- Feeder (FeedCtrl)
-- Advanced Encryption Standard (AES)
-- Data Encryption Standard (DES)/3DES
-- Public Key Accelerator (PKA)
-- SHA-1/SHA-256/MD5/HMAC (SHA-1/SHA-256/MD5)/PRNG
-- PRNG: Pseudo Random Number Generator
The SSS module in Exynos4 (Exynos4210) and Exynos5 (Exynos5420 and Exynos5250)
SoCs supports the following also:
-- ARCFOUR (ARC4)
-- True Random Number Generator (TRNG)
-- Secure Key Manager
properties:
compatible:
items:
- enum:
- samsung,s5pv210-secss # for S5PV210
- samsung,exynos4210-secss # for Exynos4210, Exynos4212,
# Exynos4412, Exynos5250,
# Exynos5260 and Exynos5420
reg:
maxItems: 1
clocks:
maxItems: 1
clock-names:
items:
- const: secss
interrupts:
description: One feed control interrupt.
maxItems: 1
required:
- compatible
- reg
- clock-names
- clocks
- interrupts
additionalProperties: false

View File

@ -1,16 +0,0 @@
* STMicroelectronics STM32 CRC
Required properties:
- compatible: Should be "st,stm32f7-crc".
- reg: The address and length of the peripheral registers space
- clocks: The input clock of the CRC instance
Optional properties: none
Example:
crc: crc@40023000 {
compatible = "st,stm32f7-crc";
reg = <0x40023000 0x400>;
clocks = <&rcc 0 12>;
};

View File

@ -0,0 +1,38 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/crypto/st,stm32-crc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: STMicroelectronics STM32 CRC bindings
maintainers:
- Lionel Debieve <lionel.debieve@st.com>
properties:
compatible:
const: st,stm32f7-crc
reg:
maxItems: 1
clocks:
maxItems: 1
required:
- compatible
- reg
- clocks
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/stm32mp1-clks.h>
crc@40023000 {
compatible = "st,stm32f7-crc";
reg = <0x40023000 0x400>;
clocks = <&rcc 0 12>;
};
...

View File

@ -1,19 +0,0 @@
* STMicroelectronics STM32 CRYP
Required properties:
- compatible: Should be "st,stm32f756-cryp".
- reg: The address and length of the peripheral registers space
- clocks: The input clock of the CRYP instance
- interrupts: The CRYP interrupt
Optional properties:
- resets: The input reset of the CRYP instance
Example:
crypto@50060000 {
compatible = "st,stm32f756-cryp";
reg = <0x50060000 0x400>;
interrupts = <79>;
clocks = <&rcc 0 STM32F7_AHB2_CLOCK(CRYP)>;
resets = <&rcc STM32F7_AHB2_RESET(CRYP)>;
};

View File

@ -0,0 +1,51 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/crypto/st,stm32-cryp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: STMicroelectronics STM32 CRYP bindings
maintainers:
- Lionel Debieve <lionel.debieve@st.com>
properties:
compatible:
enum:
- st,stm32f756-cryp
- st,stm32mp1-cryp
reg:
maxItems: 1
clocks:
maxItems: 1
interrupts:
maxItems: 1
resets:
maxItems: 1
required:
- compatible
- reg
- clocks
- interrupts
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/stm32mp1-clks.h>
#include <dt-bindings/reset/stm32mp1-resets.h>
cryp@54001000 {
compatible = "st,stm32mp1-cryp";
reg = <0x54001000 0x400>;
interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&rcc CRYP1>;
resets = <&rcc CRYP1_R>;
};
...

View File

@ -1,30 +0,0 @@
* STMicroelectronics STM32 HASH
Required properties:
- compatible: Should contain entries for this and backward compatible
HASH versions:
- "st,stm32f456-hash" for stm32 F456.
- "st,stm32f756-hash" for stm32 F756.
- reg: The address and length of the peripheral registers space
- interrupts: the interrupt specifier for the HASH
- clocks: The input clock of the HASH instance
Optional properties:
- resets: The input reset of the HASH instance
- dmas: DMA specifiers for the HASH. See the DMA client binding,
Documentation/devicetree/bindings/dma/dma.txt
- dma-names: DMA request name. Should be "in" if a dma is present.
- dma-maxburst: Set number of maximum dma burst supported
Example:
hash1: hash@50060400 {
compatible = "st,stm32f756-hash";
reg = <0x50060400 0x400>;
interrupts = <80>;
clocks = <&rcc 0 STM32F7_AHB2_CLOCK(HASH)>;
resets = <&rcc STM32F7_AHB2_RESET(HASH)>;
dmas = <&dma2 7 2 0x400 0x0>;
dma-names = "in";
dma-maxburst = <0>;
};

View File

@ -0,0 +1,69 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/crypto/st,stm32-hash.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: STMicroelectronics STM32 HASH bindings
maintainers:
- Lionel Debieve <lionel.debieve@st.com>
properties:
compatible:
enum:
- st,stm32f456-hash
- st,stm32f756-hash
reg:
maxItems: 1
clocks:
maxItems: 1
interrupts:
maxItems: 1
resets:
maxItems: 1
dmas:
maxItems: 1
dma-names:
items:
- const: in
dma-maxburst:
description: Set number of maximum dma burst supported
allOf:
- $ref: /schemas/types.yaml#/definitions/uint32
- minimum: 0
- maximum: 2
- default: 0
required:
- compatible
- reg
- clocks
- interrupts
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/stm32mp1-clks.h>
#include <dt-bindings/reset/stm32mp1-resets.h>
hash@54002000 {
compatible = "st,stm32f756-hash";
reg = <0x54002000 0x400>;
interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&rcc HASH1>;
resets = <&rcc HASH1_R>;
dmas = <&mdma1 31 0x10 0x1000A02 0x0 0x0>;
dma-names = "in";
dma-maxburst = <2>;
};
...

View File

@ -36,7 +36,7 @@ Child nodes:
"lpddr2-timings" provides AC timing parameters of the device for "lpddr2-timings" provides AC timing parameters of the device for
a given speed-bin. The user may provide the timings for as many a given speed-bin. The user may provide the timings for as many
speed-bins as is required. Please see Documentation/devicetree/ speed-bins as is required. Please see Documentation/devicetree/
bindings/lpddr2/lpddr2-timings.txt for more information on "lpddr2-timings" bindings/ddr/lpddr2-timings.txt for more information on "lpddr2-timings"
Example: Example:

View File

@ -0,0 +1,58 @@
* AC timing parameters of LPDDR3 memories for a given speed-bin.
The structures are based on LPDDR2 and extended where needed.
Required properties:
- compatible : Should be "jedec,lpddr3-timings"
- min-freq : minimum DDR clock frequency for the speed-bin. Type is <u32>
- reg : maximum DDR clock frequency for the speed-bin. Type is <u32>
Optional properties:
The following properties represent AC timing parameters from the memory
data-sheet of the device for a given speed-bin. All these properties are
of type <u32> and the default unit is ps (pico seconds).
- tRFC
- tRRD
- tRPab
- tRPpb
- tRCD
- tRC
- tRAS
- tWTR
- tWR
- tRTP
- tW2W-C2C
- tR2R-C2C
- tFAW
- tXSR
- tXP
- tCKE
- tCKESR
- tMRD
Example:
timings_samsung_K3QF2F20DB_800mhz: lpddr3-timings@800000000 {
compatible = "jedec,lpddr3-timings";
reg = <800000000>; /* workaround: it shows max-freq */
min-freq = <100000000>;
tRFC = <65000>;
tRRD = <6000>;
tRPab = <12000>;
tRPpb = <12000>;
tRCD = <10000>;
tRC = <33750>;
tRAS = <23000>;
tWTR = <3750>;
tWR = <7500>;
tRTP = <3750>;
tW2W-C2C = <0>;
tR2R-C2C = <0>;
tFAW = <25000>;
tXSR = <70000>;
tXP = <3750>;
tCKE = <3750>;
tCKESR = <3750>;
tMRD = <7000>;
};

View File

@ -0,0 +1,101 @@
* LPDDR3 SDRAM memories compliant to JEDEC JESD209-3C
Required properties:
- compatible : Should be "<vendor>,<type>", and generic value "jedec,lpddr3".
Example "<vendor>,<type>" values:
"samsung,K3QF2F20DB"
- density : <u32> representing density in Mb (Mega bits)
- io-width : <u32> representing bus width. Possible values are 8, 16, 32, 64
- #address-cells: Must be set to 1
- #size-cells: Must be set to 0
Optional properties:
The following optional properties represent the minimum value of some AC
timing parameters of the DDR device in terms of number of clock cycles.
These values shall be obtained from the device data-sheet.
- tRFC-min-tck
- tRRD-min-tck
- tRPab-min-tck
- tRPpb-min-tck
- tRCD-min-tck
- tRC-min-tck
- tRAS-min-tck
- tWTR-min-tck
- tWR-min-tck
- tRTP-min-tck
- tW2W-C2C-min-tck
- tR2R-C2C-min-tck
- tWL-min-tck
- tDQSCK-min-tck
- tRL-min-tck
- tFAW-min-tck
- tXSR-min-tck
- tXP-min-tck
- tCKE-min-tck
- tCKESR-min-tck
- tMRD-min-tck
Child nodes:
- The lpddr3 node may have one or more child nodes of type "lpddr3-timings".
"lpddr3-timings" provides AC timing parameters of the device for
a given speed-bin. Please see Documentation/devicetree/
bindings/ddr/lpddr3-timings.txt for more information on "lpddr3-timings"
Example:
samsung_K3QF2F20DB: lpddr3 {
compatible = "samsung,K3QF2F20DB", "jedec,lpddr3";
density = <16384>;
io-width = <32>;
#address-cells = <1>;
#size-cells = <0>;
tRFC-min-tck = <17>;
tRRD-min-tck = <2>;
tRPab-min-tck = <2>;
tRPpb-min-tck = <2>;
tRCD-min-tck = <3>;
tRC-min-tck = <6>;
tRAS-min-tck = <5>;
tWTR-min-tck = <2>;
tWR-min-tck = <7>;
tRTP-min-tck = <2>;
tW2W-C2C-min-tck = <0>;
tR2R-C2C-min-tck = <0>;
tWL-min-tck = <8>;
tDQSCK-min-tck = <5>;
tRL-min-tck = <14>;
tFAW-min-tck = <5>;
tXSR-min-tck = <12>;
tXP-min-tck = <2>;
tCKE-min-tck = <2>;
tCKESR-min-tck = <2>;
tMRD-min-tck = <5>;
timings_samsung_K3QF2F20DB_800mhz: lpddr3-timings@800000000 {
compatible = "jedec,lpddr3-timings";
/* workaround: 'reg' shows max-freq */
reg = <800000000>;
min-freq = <100000000>;
tRFC = <65000>;
tRRD = <6000>;
tRPab = <12000>;
tRPpb = <12000>;
tRCD = <10000>;
tRC = <33750>;
tRAS = <23000>;
tWTR = <3750>;
tWR = <7500>;
tRTP = <3750>;
tW2W-C2C = <0>;
tR2R-C2C = <0>;
tFAW = <25000>;
tXSR = <70000>;
tXP = <3750>;
tCKE = <3750>;
tCKESR = <3750>;
tMRD = <7000>;
};
}

View File

@ -79,8 +79,6 @@ properties:
hdmi-supply: hdmi-supply:
description: phandle to an external 5V regulator to power the HDMI logic description: phandle to an external 5V regulator to power the HDMI logic
allOf:
- $ref: /schemas/types.yaml#/definitions/phandle
port@0: port@0:
type: object type: object

View File

@ -0,0 +1,102 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/bridge/anx6345.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analogix ANX6345 eDP Transmitter Device Tree Bindings
maintainers:
- Torsten Duwe <duwe@lst.de>
description: |
The ANX6345 is an ultra-low power Full-HD eDP transmitter designed for
portable devices.
properties:
compatible:
const: analogix,anx6345
reg:
maxItems: 1
description: base I2C address of the device
reset-gpios:
maxItems: 1
description: GPIO connected to active low reset
dvdd12-supply:
maxItems: 1
description: Regulator for 1.2V digital core power.
dvdd25-supply:
maxItems: 1
description: Regulator for 2.5V digital core power.
ports:
type: object
properties:
port@0:
type: object
description: |
Video port for LVTTL input
port@1:
type: object
description: |
Video port for eDP output (panel or connector).
May be omitted if EDID works reliably.
required:
- port@0
required:
- compatible
- reg
- reset-gpios
- dvdd12-supply
- dvdd25-supply
- ports
additionalProperties: false
examples:
- |
i2c0 {
#address-cells = <1>;
#size-cells = <0>;
anx6345: anx6345@38 {
compatible = "analogix,anx6345";
reg = <0x38>;
reset-gpios = <&pio42 1 /* GPIO_ACTIVE_LOW */>;
dvdd25-supply = <&reg_dldo2>;
dvdd12-supply = <&reg_fldo1>;
ports {
#address-cells = <1>;
#size-cells = <0>;
anx6345_in: port@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
anx6345_in_tcon0: endpoint@0 {
reg = <0>;
remote-endpoint = <&tcon0_out_anx6345>;
};
};
anx6345_out: port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
anx6345_out_panel: endpoint@0 {
reg = <0>;
remote-endpoint = <&panel_in_edp>;
};
};
};
};
};

Some files were not shown because too many files have changed in this diff Show More