mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-18 14:46:22 +07:00
Linux 5.7-rc6
-----BEGIN PGP SIGNATURE----- iQFSBAABCAA8FiEEq68RxlopcLEwq+PEeb4+QwBBGIYFAl7BzV8eHHRvcnZhbGRz QGxpbnV4LWZvdW5kYXRpb24ub3JnAAoJEHm+PkMAQRiGg8EH/A2pXMTxtc96RI4S sttEsUQqbakFS0Z/2tQPpMGr/qW2e5eHgsTX/a3SiUeZiIXk6f4lMFkMuctzBf7p X77cNEDwGOEdbtCXTsMcmKSde7sP2zCXsPB8xTWLyE6rnaFRgikwwkeqgkIKhp1h bvOQV0t9HNGvxGAM0iZeOvQAvFl4vd7nS123/MYbir9cugfQUSJRueQ4BiCiJqVE 6cNA7/vFzDJuFGszzIrJ7HXn/IdQMMWHkvTDjgBw0GZw1mDbGFbfbZwOeTz1ojCt smUQ4tIFxBa/VA5zx7dOy2P2keHbSVf4VLkZRPcceT7OqVS65ETmFDp+qt5NdWM5 vZ8+7/0= =CyYH -----END PGP SIGNATURE----- Merge tag 'v5.7-rc6' into rdma.git for-next Linux 5.7-rc6 Conflict in drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c resolved by deleting dr_cq_event, matching how netdev resolved it. Required for dependencies in the following patches. Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
commit
eafd47fc20
@ -142,10 +142,13 @@ ForEachMacros:
|
|||||||
- 'for_each_card_auxs'
|
- 'for_each_card_auxs'
|
||||||
- 'for_each_card_auxs_safe'
|
- 'for_each_card_auxs_safe'
|
||||||
- 'for_each_card_components'
|
- 'for_each_card_components'
|
||||||
|
- 'for_each_card_dapms'
|
||||||
- 'for_each_card_pre_auxs'
|
- 'for_each_card_pre_auxs'
|
||||||
- 'for_each_card_prelinks'
|
- 'for_each_card_prelinks'
|
||||||
- 'for_each_card_rtds'
|
- 'for_each_card_rtds'
|
||||||
- 'for_each_card_rtds_safe'
|
- 'for_each_card_rtds_safe'
|
||||||
|
- 'for_each_card_widgets'
|
||||||
|
- 'for_each_card_widgets_safe'
|
||||||
- 'for_each_cgroup_storage_type'
|
- 'for_each_cgroup_storage_type'
|
||||||
- 'for_each_child_of_node'
|
- 'for_each_child_of_node'
|
||||||
- 'for_each_clear_bit'
|
- 'for_each_clear_bit'
|
||||||
@ -160,6 +163,7 @@ ForEachMacros:
|
|||||||
- 'for_each_cpu_and'
|
- 'for_each_cpu_and'
|
||||||
- 'for_each_cpu_not'
|
- 'for_each_cpu_not'
|
||||||
- 'for_each_cpu_wrap'
|
- 'for_each_cpu_wrap'
|
||||||
|
- 'for_each_dapm_widgets'
|
||||||
- 'for_each_dev_addr'
|
- 'for_each_dev_addr'
|
||||||
- 'for_each_dev_scope'
|
- 'for_each_dev_scope'
|
||||||
- 'for_each_displayid_db'
|
- 'for_each_displayid_db'
|
||||||
@ -170,7 +174,6 @@ ForEachMacros:
|
|||||||
- 'for_each_dpcm_fe'
|
- 'for_each_dpcm_fe'
|
||||||
- 'for_each_drhd_unit'
|
- 'for_each_drhd_unit'
|
||||||
- 'for_each_dss_dev'
|
- 'for_each_dss_dev'
|
||||||
- 'for_each_efi_handle'
|
|
||||||
- 'for_each_efi_memory_desc'
|
- 'for_each_efi_memory_desc'
|
||||||
- 'for_each_efi_memory_desc_in_map'
|
- 'for_each_efi_memory_desc_in_map'
|
||||||
- 'for_each_element'
|
- 'for_each_element'
|
||||||
@ -191,6 +194,7 @@ ForEachMacros:
|
|||||||
- 'for_each_ip_tunnel_rcu'
|
- 'for_each_ip_tunnel_rcu'
|
||||||
- 'for_each_irq_nr'
|
- 'for_each_irq_nr'
|
||||||
- 'for_each_link_codecs'
|
- 'for_each_link_codecs'
|
||||||
|
- 'for_each_link_cpus'
|
||||||
- 'for_each_link_platforms'
|
- 'for_each_link_platforms'
|
||||||
- 'for_each_lru'
|
- 'for_each_lru'
|
||||||
- 'for_each_matching_node'
|
- 'for_each_matching_node'
|
||||||
@ -250,6 +254,7 @@ ForEachMacros:
|
|||||||
- 'for_each_pci_bridge'
|
- 'for_each_pci_bridge'
|
||||||
- 'for_each_pci_dev'
|
- 'for_each_pci_dev'
|
||||||
- 'for_each_pci_msi_entry'
|
- 'for_each_pci_msi_entry'
|
||||||
|
- 'for_each_pcm_streams'
|
||||||
- 'for_each_populated_zone'
|
- 'for_each_populated_zone'
|
||||||
- 'for_each_possible_cpu'
|
- 'for_each_possible_cpu'
|
||||||
- 'for_each_present_cpu'
|
- 'for_each_present_cpu'
|
||||||
@ -260,9 +265,12 @@ ForEachMacros:
|
|||||||
- 'for_each_property_of_node'
|
- 'for_each_property_of_node'
|
||||||
- 'for_each_registered_fb'
|
- 'for_each_registered_fb'
|
||||||
- 'for_each_reserved_mem_region'
|
- 'for_each_reserved_mem_region'
|
||||||
- 'for_each_rtd_codec_dai'
|
- 'for_each_rtd_codec_dais'
|
||||||
- 'for_each_rtd_codec_dai_rollback'
|
- 'for_each_rtd_codec_dais_rollback'
|
||||||
- 'for_each_rtd_components'
|
- 'for_each_rtd_components'
|
||||||
|
- 'for_each_rtd_cpu_dais'
|
||||||
|
- 'for_each_rtd_cpu_dais_rollback'
|
||||||
|
- 'for_each_rtd_dais'
|
||||||
- 'for_each_set_bit'
|
- 'for_each_set_bit'
|
||||||
- 'for_each_set_bit_from'
|
- 'for_each_set_bit_from'
|
||||||
- 'for_each_set_clump8'
|
- 'for_each_set_clump8'
|
||||||
@ -334,6 +342,7 @@ ForEachMacros:
|
|||||||
- 'klp_for_each_object'
|
- 'klp_for_each_object'
|
||||||
- 'klp_for_each_object_safe'
|
- 'klp_for_each_object_safe'
|
||||||
- 'klp_for_each_object_static'
|
- 'klp_for_each_object_static'
|
||||||
|
- 'kunit_suite_for_each_test_case'
|
||||||
- 'kvm_for_each_memslot'
|
- 'kvm_for_each_memslot'
|
||||||
- 'kvm_for_each_vcpu'
|
- 'kvm_for_each_vcpu'
|
||||||
- 'list_for_each'
|
- 'list_for_each'
|
||||||
@ -387,6 +396,7 @@ ForEachMacros:
|
|||||||
- 'of_property_for_each_string'
|
- 'of_property_for_each_string'
|
||||||
- 'of_property_for_each_u32'
|
- 'of_property_for_each_u32'
|
||||||
- 'pci_bus_for_each_resource'
|
- 'pci_bus_for_each_resource'
|
||||||
|
- 'pcm_for_each_format'
|
||||||
- 'ping_portaddr_for_each_entry'
|
- 'ping_portaddr_for_each_entry'
|
||||||
- 'plist_for_each'
|
- 'plist_for_each'
|
||||||
- 'plist_for_each_continue'
|
- 'plist_for_each_continue'
|
||||||
@ -482,7 +492,7 @@ KeepEmptyLinesAtTheStartOfBlocks: false
|
|||||||
MacroBlockBegin: ''
|
MacroBlockBegin: ''
|
||||||
MacroBlockEnd: ''
|
MacroBlockEnd: ''
|
||||||
MaxEmptyLinesToKeep: 1
|
MaxEmptyLinesToKeep: 1
|
||||||
NamespaceIndentation: Inner
|
NamespaceIndentation: None
|
||||||
#ObjCBinPackProtocolList: Auto # Unknown to clang-format-5.0
|
#ObjCBinPackProtocolList: Auto # Unknown to clang-format-5.0
|
||||||
ObjCBlockIndentWidth: 8
|
ObjCBlockIndentWidth: 8
|
||||||
ObjCSpaceAfterProperty: true
|
ObjCSpaceAfterProperty: true
|
||||||
|
@ -182,12 +182,15 @@ fix_padding
|
|||||||
space-efficient. If this option is not present, large padding is
|
space-efficient. If this option is not present, large padding is
|
||||||
used - that is for compatibility with older kernels.
|
used - that is for compatibility with older kernels.
|
||||||
|
|
||||||
|
allow_discards
|
||||||
|
Allow block discard requests (a.k.a. TRIM) for the integrity device.
|
||||||
|
Discards are only allowed to devices using internal hash.
|
||||||
|
|
||||||
The journal mode (D/J), buffer_sectors, journal_watermark, commit_time can
|
The journal mode (D/J), buffer_sectors, journal_watermark, commit_time and
|
||||||
be changed when reloading the target (load an inactive table and swap the
|
allow_discards can be changed when reloading the target (load an inactive
|
||||||
tables with suspend and resume). The other arguments should not be changed
|
table and swap the tables with suspend and resume). The other arguments
|
||||||
when reloading the target because the layout of disk data depend on them
|
should not be changed when reloading the target because the layout of disk
|
||||||
and the reloaded target would be non-functional.
|
data depend on them and the reloaded target would be non-functional.
|
||||||
|
|
||||||
|
|
||||||
The layout of the formatted block device:
|
The layout of the formatted block device:
|
||||||
|
@ -5187,8 +5187,7 @@
|
|||||||
|
|
||||||
usbcore.old_scheme_first=
|
usbcore.old_scheme_first=
|
||||||
[USB] Start with the old device initialization
|
[USB] Start with the old device initialization
|
||||||
scheme, applies only to low and full-speed devices
|
scheme (default 0 = off).
|
||||||
(default 0 = off).
|
|
||||||
|
|
||||||
usbcore.usbfs_memory_mb=
|
usbcore.usbfs_memory_mb=
|
||||||
[USB] Memory limit (in MB) for buffers allocated by
|
[USB] Memory limit (in MB) for buffers allocated by
|
||||||
|
@ -390,9 +390,17 @@ When ``kptr_restrict`` is set to 2, kernel pointers printed using
|
|||||||
modprobe
|
modprobe
|
||||||
========
|
========
|
||||||
|
|
||||||
This gives the full path of the modprobe command which the kernel will
|
The full path to the usermode helper for autoloading kernel modules,
|
||||||
use to load modules. This can be used to debug module loading
|
by default "/sbin/modprobe". This binary is executed when the kernel
|
||||||
requests::
|
requests a module. For example, if userspace passes an unknown
|
||||||
|
filesystem type to mount(), then the kernel will automatically request
|
||||||
|
the corresponding filesystem module by executing this usermode helper.
|
||||||
|
This usermode helper should insert the needed module into the kernel.
|
||||||
|
|
||||||
|
This sysctl only affects module autoloading. It has no effect on the
|
||||||
|
ability to explicitly insert modules.
|
||||||
|
|
||||||
|
This sysctl can be used to debug module loading requests::
|
||||||
|
|
||||||
echo '#! /bin/sh' > /tmp/modprobe
|
echo '#! /bin/sh' > /tmp/modprobe
|
||||||
echo 'echo "$@" >> /tmp/modprobe.log' >> /tmp/modprobe
|
echo 'echo "$@" >> /tmp/modprobe.log' >> /tmp/modprobe
|
||||||
@ -400,10 +408,15 @@ requests::
|
|||||||
chmod a+x /tmp/modprobe
|
chmod a+x /tmp/modprobe
|
||||||
echo /tmp/modprobe > /proc/sys/kernel/modprobe
|
echo /tmp/modprobe > /proc/sys/kernel/modprobe
|
||||||
|
|
||||||
This only applies when the *kernel* is requesting that the module be
|
Alternatively, if this sysctl is set to the empty string, then module
|
||||||
loaded; it won't have any effect if the module is being loaded
|
autoloading is completely disabled. The kernel will not try to
|
||||||
explicitly using ``modprobe`` from userspace.
|
execute a usermode helper at all, nor will it call the
|
||||||
|
kernel_module_request LSM hook.
|
||||||
|
|
||||||
|
If CONFIG_STATIC_USERMODEHELPER=y is set in the kernel configuration,
|
||||||
|
then the configured static usermode helper overrides this sysctl,
|
||||||
|
except that the empty string is still accepted to completely disable
|
||||||
|
module autoloading as described above.
|
||||||
|
|
||||||
modules_disabled
|
modules_disabled
|
||||||
================
|
================
|
||||||
@ -446,28 +459,6 @@ Notes:
|
|||||||
successful IPC object allocation. If an IPC object allocation syscall
|
successful IPC object allocation. If an IPC object allocation syscall
|
||||||
fails, it is undefined if the value remains unmodified or is reset to -1.
|
fails, it is undefined if the value remains unmodified or is reset to -1.
|
||||||
|
|
||||||
modprobe:
|
|
||||||
=========
|
|
||||||
|
|
||||||
The path to the usermode helper for autoloading kernel modules, by
|
|
||||||
default "/sbin/modprobe". This binary is executed when the kernel
|
|
||||||
requests a module. For example, if userspace passes an unknown
|
|
||||||
filesystem type to mount(), then the kernel will automatically request
|
|
||||||
the corresponding filesystem module by executing this usermode helper.
|
|
||||||
This usermode helper should insert the needed module into the kernel.
|
|
||||||
|
|
||||||
This sysctl only affects module autoloading. It has no effect on the
|
|
||||||
ability to explicitly insert modules.
|
|
||||||
|
|
||||||
If this sysctl is set to the empty string, then module autoloading is
|
|
||||||
completely disabled. The kernel will not try to execute a usermode
|
|
||||||
helper at all, nor will it call the kernel_module_request LSM hook.
|
|
||||||
|
|
||||||
If CONFIG_STATIC_USERMODEHELPER=y is set in the kernel configuration,
|
|
||||||
then the configured static usermode helper overrides this sysctl,
|
|
||||||
except that the empty string is still accepted to completely disable
|
|
||||||
module autoloading as described above.
|
|
||||||
|
|
||||||
nmi_watchdog
|
nmi_watchdog
|
||||||
============
|
============
|
||||||
|
|
||||||
|
@ -23,13 +23,14 @@ optional external memory-mapped interface.
|
|||||||
|
|
||||||
Version 1 of the Activity Monitors architecture implements a counter group
|
Version 1 of the Activity Monitors architecture implements a counter group
|
||||||
of four fixed and architecturally defined 64-bit event counters.
|
of four fixed and architecturally defined 64-bit event counters.
|
||||||
- CPU cycle counter: increments at the frequency of the CPU.
|
|
||||||
- Constant counter: increments at the fixed frequency of the system
|
- CPU cycle counter: increments at the frequency of the CPU.
|
||||||
clock.
|
- Constant counter: increments at the fixed frequency of the system
|
||||||
- Instructions retired: increments with every architecturally executed
|
clock.
|
||||||
instruction.
|
- Instructions retired: increments with every architecturally executed
|
||||||
- Memory stall cycles: counts instruction dispatch stall cycles caused by
|
instruction.
|
||||||
misses in the last level cache within the clock domain.
|
- Memory stall cycles: counts instruction dispatch stall cycles caused by
|
||||||
|
misses in the last level cache within the clock domain.
|
||||||
|
|
||||||
When in WFI or WFE these counters do not increment.
|
When in WFI or WFE these counters do not increment.
|
||||||
|
|
||||||
@ -57,11 +58,12 @@ counters, only the presence of the extension.
|
|||||||
|
|
||||||
Firmware (code running at higher exception levels, e.g. arm-tf) support is
|
Firmware (code running at higher exception levels, e.g. arm-tf) support is
|
||||||
needed to:
|
needed to:
|
||||||
- Enable access for lower exception levels (EL2 and EL1) to the AMU
|
|
||||||
registers.
|
- Enable access for lower exception levels (EL2 and EL1) to the AMU
|
||||||
- Enable the counters. If not enabled these will read as 0.
|
registers.
|
||||||
- Save/restore the counters before/after the CPU is being put/brought up
|
- Enable the counters. If not enabled these will read as 0.
|
||||||
from the 'off' power state.
|
- Save/restore the counters before/after the CPU is being put/brought up
|
||||||
|
from the 'off' power state.
|
||||||
|
|
||||||
When using kernels that have this feature enabled but boot with broken
|
When using kernels that have this feature enabled but boot with broken
|
||||||
firmware the user may experience panics or lockups when accessing the
|
firmware the user may experience panics or lockups when accessing the
|
||||||
@ -78,10 +80,11 @@ are not trapped in EL2/EL3.
|
|||||||
|
|
||||||
The fixed counters of AMUv1 are accessible though the following system
|
The fixed counters of AMUv1 are accessible though the following system
|
||||||
register definitions:
|
register definitions:
|
||||||
- SYS_AMEVCNTR0_CORE_EL0
|
|
||||||
- SYS_AMEVCNTR0_CONST_EL0
|
- SYS_AMEVCNTR0_CORE_EL0
|
||||||
- SYS_AMEVCNTR0_INST_RET_EL0
|
- SYS_AMEVCNTR0_CONST_EL0
|
||||||
- SYS_AMEVCNTR0_MEM_STALL_EL0
|
- SYS_AMEVCNTR0_INST_RET_EL0
|
||||||
|
- SYS_AMEVCNTR0_MEM_STALL_EL0
|
||||||
|
|
||||||
Auxiliary platform specific counters can be accessed using
|
Auxiliary platform specific counters can be accessed using
|
||||||
SYS_AMEVCNTR1_EL0(n), where n is a value between 0 and 15.
|
SYS_AMEVCNTR1_EL0(n), where n is a value between 0 and 15.
|
||||||
@ -93,9 +96,10 @@ Userspace access
|
|||||||
----------------
|
----------------
|
||||||
|
|
||||||
Currently, access from userspace to the AMU registers is disabled due to:
|
Currently, access from userspace to the AMU registers is disabled due to:
|
||||||
- Security reasons: they might expose information about code executed in
|
|
||||||
secure mode.
|
- Security reasons: they might expose information about code executed in
|
||||||
- Purpose: AMU counters are intended for system management use.
|
secure mode.
|
||||||
|
- Purpose: AMU counters are intended for system management use.
|
||||||
|
|
||||||
Also, the presence of the feature is not visible to userspace.
|
Also, the presence of the feature is not visible to userspace.
|
||||||
|
|
||||||
@ -105,8 +109,9 @@ Virtualization
|
|||||||
|
|
||||||
Currently, access from userspace (EL0) and kernelspace (EL1) on the KVM
|
Currently, access from userspace (EL0) and kernelspace (EL1) on the KVM
|
||||||
guest side is disabled due to:
|
guest side is disabled due to:
|
||||||
- Security reasons: they might expose information about code executed
|
|
||||||
by other guests or the host.
|
- Security reasons: they might expose information about code executed
|
||||||
|
by other guests or the host.
|
||||||
|
|
||||||
Any attempt to access the AMU registers will result in an UNDEFINED
|
Any attempt to access the AMU registers will result in an UNDEFINED
|
||||||
exception being injected into the guest.
|
exception being injected into the guest.
|
||||||
|
@ -112,6 +112,20 @@ used when printing stack backtraces. The specifier takes into
|
|||||||
consideration the effect of compiler optimisations which may occur
|
consideration the effect of compiler optimisations which may occur
|
||||||
when tail-calls are used and marked with the noreturn GCC attribute.
|
when tail-calls are used and marked with the noreturn GCC attribute.
|
||||||
|
|
||||||
|
Probed Pointers from BPF / tracing
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
%pks kernel string
|
||||||
|
%pus user string
|
||||||
|
|
||||||
|
The ``k`` and ``u`` specifiers are used for printing prior probed memory from
|
||||||
|
either kernel memory (k) or user memory (u). The subsequent ``s`` specifier
|
||||||
|
results in printing a string. For direct use in regular vsnprintf() the (k)
|
||||||
|
and (u) annotation is ignored, however, when used out of BPF's bpf_trace_printk(),
|
||||||
|
for example, it reads the memory it is pointing to without faulting.
|
||||||
|
|
||||||
Kernel Pointers
|
Kernel Pointers
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
|
@ -154,9 +154,9 @@ architectures. These are the recommended replacements:
|
|||||||
|
|
||||||
Use ktime_get() or ktime_get_ts64() instead.
|
Use ktime_get() or ktime_get_ts64() instead.
|
||||||
|
|
||||||
.. c:function:: struct timeval do_gettimeofday( void )
|
.. c:function:: void do_gettimeofday( struct timeval * )
|
||||||
struct timespec getnstimeofday( void )
|
void getnstimeofday( struct timespec * )
|
||||||
struct timespec64 getnstimeofday64( void )
|
void getnstimeofday64( struct timespec64 * )
|
||||||
void ktime_get_real_ts( struct timespec * )
|
void ktime_get_real_ts( struct timespec * )
|
||||||
|
|
||||||
ktime_get_real_ts64() is a direct replacement, but consider using
|
ktime_get_real_ts64() is a direct replacement, but consider using
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
DT_DOC_CHECKER ?= dt-doc-validate
|
DT_DOC_CHECKER ?= dt-doc-validate
|
||||||
DT_EXTRACT_EX ?= dt-extract-example
|
DT_EXTRACT_EX ?= dt-extract-example
|
||||||
DT_MK_SCHEMA ?= dt-mk-schema
|
DT_MK_SCHEMA ?= dt-mk-schema
|
||||||
|
DT_MK_SCHEMA_USERONLY_FLAG := $(if $(DT_SCHEMA_FILES), -u)
|
||||||
|
|
||||||
quiet_cmd_chk_binding = CHKDT $(patsubst $(srctree)/%,%,$<)
|
quiet_cmd_chk_binding = CHKDT $(patsubst $(srctree)/%,%,$<)
|
||||||
cmd_chk_binding = $(DT_DOC_CHECKER) -u $(srctree)/$(src) $< ; \
|
cmd_chk_binding = $(DT_DOC_CHECKER) -u $(srctree)/$(src) $< ; \
|
||||||
@ -13,16 +14,18 @@ $(obj)/%.example.dts: $(src)/%.yaml FORCE
|
|||||||
# Use full schemas when checking %.example.dts
|
# Use full schemas when checking %.example.dts
|
||||||
DT_TMP_SCHEMA := $(obj)/processed-schema-examples.yaml
|
DT_TMP_SCHEMA := $(obj)/processed-schema-examples.yaml
|
||||||
|
|
||||||
quiet_cmd_mk_schema = SCHEMA $@
|
find_cmd = find $(srctree)/$(src) \( -name '*.yaml' ! \
|
||||||
cmd_mk_schema = $(DT_MK_SCHEMA) $(DT_MK_SCHEMA_FLAGS) -o $@ $(real-prereqs)
|
|
||||||
|
|
||||||
DT_DOCS = $(addprefix $(src)/, \
|
|
||||||
$(shell \
|
|
||||||
cd $(srctree)/$(src) && \
|
|
||||||
find * \( -name '*.yaml' ! \
|
|
||||||
-name 'processed-schema*' ! \
|
-name 'processed-schema*' ! \
|
||||||
-name '*.example.dt.yaml' \) \
|
-name '*.example.dt.yaml' \)
|
||||||
))
|
|
||||||
|
quiet_cmd_mk_schema = SCHEMA $@
|
||||||
|
cmd_mk_schema = rm -f $@ ; \
|
||||||
|
$(if $(DT_MK_SCHEMA_FLAGS), \
|
||||||
|
echo $(real-prereqs), \
|
||||||
|
$(find_cmd)) | \
|
||||||
|
xargs $(DT_MK_SCHEMA) $(DT_MK_SCHEMA_FLAGS) >> $@
|
||||||
|
|
||||||
|
DT_DOCS = $(shell $(find_cmd) | sed -e 's|^$(srctree)/||')
|
||||||
|
|
||||||
DT_SCHEMA_FILES ?= $(DT_DOCS)
|
DT_SCHEMA_FILES ?= $(DT_DOCS)
|
||||||
|
|
||||||
@ -37,7 +40,7 @@ override DTC_FLAGS := \
|
|||||||
$(obj)/processed-schema-examples.yaml: $(DT_DOCS) FORCE
|
$(obj)/processed-schema-examples.yaml: $(DT_DOCS) FORCE
|
||||||
$(call if_changed,mk_schema)
|
$(call if_changed,mk_schema)
|
||||||
|
|
||||||
$(obj)/processed-schema.yaml: DT_MK_SCHEMA_FLAGS := -u
|
$(obj)/processed-schema.yaml: DT_MK_SCHEMA_FLAGS := $(DT_MK_SCHEMA_USERONLY_FLAG)
|
||||||
$(obj)/processed-schema.yaml: $(DT_SCHEMA_FILES) FORCE
|
$(obj)/processed-schema.yaml: $(DT_SCHEMA_FILES) FORCE
|
||||||
$(call if_changed,mk_schema)
|
$(call if_changed,mk_schema)
|
||||||
|
|
||||||
|
@ -42,6 +42,10 @@ properties:
|
|||||||
description:
|
description:
|
||||||
See section 2.3.9 of the DeviceTree Specification.
|
See section 2.3.9 of the DeviceTree Specification.
|
||||||
|
|
||||||
|
'#address-cells': true
|
||||||
|
|
||||||
|
'#size-cells': true
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- "#interconnect-cells"
|
- "#interconnect-cells"
|
||||||
- compatible
|
- compatible
|
||||||
@ -59,6 +63,8 @@ examples:
|
|||||||
compatible = "allwinner,sun5i-a13-mbus";
|
compatible = "allwinner,sun5i-a13-mbus";
|
||||||
reg = <0x01c01000 0x1000>;
|
reg = <0x01c01000 0x1000>;
|
||||||
clocks = <&ccu CLK_MBUS>;
|
clocks = <&ccu CLK_MBUS>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
dma-ranges = <0x00000000 0x40000000 0x20000000>;
|
dma-ranges = <0x00000000 0x40000000 0x20000000>;
|
||||||
#interconnect-cells = <1>;
|
#interconnect-cells = <1>;
|
||||||
};
|
};
|
||||||
|
@ -91,7 +91,7 @@ required:
|
|||||||
|
|
||||||
examples:
|
examples:
|
||||||
- |
|
- |
|
||||||
vco1: clock@00 {
|
vco1: clock {
|
||||||
compatible = "arm,impd1-vco1";
|
compatible = "arm,impd1-vco1";
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
lock-offset = <0x08>;
|
lock-offset = <0x08>;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
Analog Device ADV7123 Video DAC
|
Analog Devices ADV7123 Video DAC
|
||||||
-------------------------------
|
--------------------------------
|
||||||
|
|
||||||
The ADV7123 is a digital-to-analog converter that outputs VGA signals from a
|
The ADV7123 is a digital-to-analog converter that outputs VGA signals from a
|
||||||
parallel video input.
|
parallel video input.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
Analog Device ADV7511(W)/13/33/35 HDMI Encoders
|
Analog Devices ADV7511(W)/13/33/35 HDMI Encoders
|
||||||
-----------------------------------------
|
------------------------------------------------
|
||||||
|
|
||||||
The ADV7511, ADV7511W, ADV7513, ADV7533 and ADV7535 are HDMI audio and video
|
The ADV7511, ADV7511W, ADV7513, ADV7533 and ADV7535 are HDMI audio and video
|
||||||
transmitters compatible with HDMI 1.4 and DVI 1.0. They support color space
|
transmitters compatible with HDMI 1.4 and DVI 1.0. They support color space
|
||||||
|
@ -37,7 +37,6 @@ examples:
|
|||||||
dsi {
|
dsi {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
reg = <0xff450000 0x1000>;
|
|
||||||
|
|
||||||
panel@0 {
|
panel@0 {
|
||||||
compatible = "leadtek,ltk500hd1829";
|
compatible = "leadtek,ltk500hd1829";
|
||||||
|
@ -96,12 +96,20 @@ properties:
|
|||||||
If set, reverse the bit order described in the data mappings below on all
|
If set, reverse the bit order described in the data mappings below on all
|
||||||
data lanes, transmitting bits for slots 6 to 0 instead of 0 to 6.
|
data lanes, transmitting bits for slots 6 to 0 instead of 0 to 6.
|
||||||
|
|
||||||
|
port: true
|
||||||
|
ports: true
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- compatible
|
- compatible
|
||||||
- data-mapping
|
- data-mapping
|
||||||
- width-mm
|
- width-mm
|
||||||
- height-mm
|
- height-mm
|
||||||
- panel-timing
|
- panel-timing
|
||||||
- port
|
|
||||||
|
oneOf:
|
||||||
|
- required:
|
||||||
|
- port
|
||||||
|
- required:
|
||||||
|
- ports
|
||||||
|
|
||||||
...
|
...
|
||||||
|
@ -37,7 +37,6 @@ examples:
|
|||||||
dsi {
|
dsi {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
reg = <0xff450000 0x1000>;
|
|
||||||
|
|
||||||
panel@0 {
|
panel@0 {
|
||||||
compatible = "xinpeng,xpp055c272";
|
compatible = "xinpeng,xpp055c272";
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
Analog Device AXI-DMAC DMA controller
|
Analog Devices AXI-DMAC DMA controller
|
||||||
|
|
||||||
Required properties:
|
Required properties:
|
||||||
- compatible: Must be "adi,axi-dmac-1.00.a".
|
- compatible: Must be "adi,axi-dmac-1.00.a".
|
||||||
|
@ -10,7 +10,8 @@ Required properties:
|
|||||||
- compatible :
|
- compatible :
|
||||||
- "fsl,vf610-edma" for eDMA used similar to that on Vybrid vf610 SoC
|
- "fsl,vf610-edma" for eDMA used similar to that on Vybrid vf610 SoC
|
||||||
- "fsl,imx7ulp-edma" for eDMA2 used similar to that on i.mx7ulp
|
- "fsl,imx7ulp-edma" for eDMA2 used similar to that on i.mx7ulp
|
||||||
- "fsl,fsl,ls1028a-edma" for eDMA used similar to that on Vybrid vf610 SoC
|
- "fsl,ls1028a-edma" followed by "fsl,vf610-edma" for eDMA used on the
|
||||||
|
LS1028A SoC.
|
||||||
- reg : Specifies base physical address(s) and size of the eDMA registers.
|
- reg : Specifies base physical address(s) and size of the eDMA registers.
|
||||||
The 1st region is eDMA control register's address and size.
|
The 1st region is eDMA control register's address and size.
|
||||||
The 2nd and the 3rd regions are programmable channel multiplexing
|
The 2nd and the 3rd regions are programmable channel multiplexing
|
||||||
|
@ -22,9 +22,7 @@ properties:
|
|||||||
const: socionext,uniphier-xdmac
|
const: socionext,uniphier-xdmac
|
||||||
|
|
||||||
reg:
|
reg:
|
||||||
items:
|
maxItems: 1
|
||||||
- description: XDMAC base register region (offset and length)
|
|
||||||
- description: XDMAC extension register region (offset and length)
|
|
||||||
|
|
||||||
interrupts:
|
interrupts:
|
||||||
maxItems: 1
|
maxItems: 1
|
||||||
@ -49,12 +47,13 @@ required:
|
|||||||
- reg
|
- reg
|
||||||
- interrupts
|
- interrupts
|
||||||
- "#dma-cells"
|
- "#dma-cells"
|
||||||
|
- dma-channels
|
||||||
|
|
||||||
examples:
|
examples:
|
||||||
- |
|
- |
|
||||||
xdmac: dma-controller@5fc10000 {
|
xdmac: dma-controller@5fc10000 {
|
||||||
compatible = "socionext,uniphier-xdmac";
|
compatible = "socionext,uniphier-xdmac";
|
||||||
reg = <0x5fc10000 0x1000>, <0x5fc20000 0x800>;
|
reg = <0x5fc10000 0x5300>;
|
||||||
interrupts = <0 188 4>;
|
interrupts = <0 188 4>;
|
||||||
#dma-cells = <2>;
|
#dma-cells = <2>;
|
||||||
dma-channels = <16>;
|
dma-channels = <16>;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# Copyright 2019 Analog Devices Inc.
|
# Copyright 2019 Analog Devices Inc.
|
||||||
%YAML 1.2
|
%YAML 1.2
|
||||||
---
|
---
|
||||||
$id: http://devicetree.org/schemas/bindings/hwmon/adi,axi-fan-control.yaml#
|
$id: http://devicetree.org/schemas/hwmon/adi,axi-fan-control.yaml#
|
||||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
title: Analog Devices AXI FAN Control Device Tree Bindings
|
title: Analog Devices AXI FAN Control Device Tree Bindings
|
||||||
@ -47,7 +47,7 @@ required:
|
|||||||
|
|
||||||
examples:
|
examples:
|
||||||
- |
|
- |
|
||||||
fpga_axi: fpga-axi@0 {
|
fpga_axi: fpga-axi {
|
||||||
#address-cells = <0x2>;
|
#address-cells = <0x2>;
|
||||||
#size-cells = <0x1>;
|
#size-cells = <0x1>;
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||||
%YAML 1.2
|
%YAML 1.2
|
||||||
---
|
---
|
||||||
$id: http://devicetree.org/schemas/adt7475.yaml#
|
$id: http://devicetree.org/schemas/hwmon/adt7475.yaml#
|
||||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
title: ADT7475 hwmon sensor
|
title: ADT7475 hwmon sensor
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||||
%YAML 1.2
|
%YAML 1.2
|
||||||
---
|
---
|
||||||
$id: "http://devicetree.org/schemas/bindings/iio/adc/st,stm32-adc.yaml#"
|
$id: "http://devicetree.org/schemas/iio/adc/st,stm32-adc.yaml#"
|
||||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||||
|
|
||||||
title: STMicroelectronics STM32 ADC bindings
|
title: STMicroelectronics STM32 ADC bindings
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
* Analog Device AD5755 IIO Multi-Channel DAC Linux Driver
|
* Analog Devices AD5755 IIO Multi-Channel DAC Linux Driver
|
||||||
|
|
||||||
Required properties:
|
Required properties:
|
||||||
- compatible: Has to contain one of the following:
|
- compatible: Has to contain one of the following:
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# Copyright 2020 Analog Devices Inc.
|
# Copyright 2020 Analog Devices Inc.
|
||||||
%YAML 1.2
|
%YAML 1.2
|
||||||
---
|
---
|
||||||
$id: http://devicetree.org/schemas/bindings/iio/dac/adi,ad5770r.yaml#
|
$id: http://devicetree.org/schemas/iio/dac/adi,ad5770r.yaml#
|
||||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
title: Analog Devices AD5770R DAC device driver
|
title: Analog Devices AD5770R DAC device driver
|
||||||
@ -49,93 +49,86 @@ properties:
|
|||||||
asserted during driver probe.
|
asserted during driver probe.
|
||||||
maxItems: 1
|
maxItems: 1
|
||||||
|
|
||||||
channel0:
|
channel@0:
|
||||||
description: Represents an external channel which are
|
description: Represents an external channel which are
|
||||||
connected to the DAC. Channel 0 can act both as a current
|
connected to the DAC. Channel 0 can act both as a current
|
||||||
source and sink.
|
source and sink.
|
||||||
type: object
|
type: object
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
num:
|
reg:
|
||||||
description: This represents the channel number.
|
description: This represents the channel number.
|
||||||
items:
|
const: 0
|
||||||
const: 0
|
|
||||||
|
|
||||||
adi,range-microamp:
|
adi,range-microamp:
|
||||||
description: Output range of the channel.
|
description: Output range of the channel.
|
||||||
oneOf:
|
oneOf:
|
||||||
- $ref: /schemas/types.yaml#/definitions/int32-array
|
|
||||||
- items:
|
- items:
|
||||||
- enum: [0 300000]
|
- const: 0
|
||||||
- enum: [-60000 0]
|
- const: 300000
|
||||||
- enum: [-60000 300000]
|
- items:
|
||||||
|
- const: -60000
|
||||||
|
- const: 0
|
||||||
|
- items:
|
||||||
|
- const: -60000
|
||||||
|
- const: 300000
|
||||||
|
|
||||||
channel1:
|
channel@1:
|
||||||
description: Represents an external channel which are
|
description: Represents an external channel which are
|
||||||
connected to the DAC.
|
connected to the DAC.
|
||||||
type: object
|
type: object
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
num:
|
reg:
|
||||||
description: This represents the channel number.
|
description: This represents the channel number.
|
||||||
items:
|
const: 1
|
||||||
const: 1
|
|
||||||
|
|
||||||
adi,range-microamp:
|
adi,range-microamp:
|
||||||
description: Output range of the channel.
|
description: Output range of the channel.
|
||||||
oneOf:
|
items:
|
||||||
- $ref: /schemas/types.yaml#/definitions/uint32-array
|
- const: 0
|
||||||
- items:
|
- enum: [ 140000, 250000 ]
|
||||||
- enum: [0 140000]
|
|
||||||
- enum: [0 250000]
|
|
||||||
|
|
||||||
channel2:
|
channel@2:
|
||||||
description: Represents an external channel which are
|
description: Represents an external channel which are
|
||||||
connected to the DAC.
|
connected to the DAC.
|
||||||
type: object
|
type: object
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
num:
|
reg:
|
||||||
description: This represents the channel number.
|
description: This represents the channel number.
|
||||||
items:
|
const: 2
|
||||||
const: 2
|
|
||||||
|
|
||||||
adi,range-microamp:
|
adi,range-microamp:
|
||||||
description: Output range of the channel.
|
description: Output range of the channel.
|
||||||
oneOf:
|
items:
|
||||||
- $ref: /schemas/types.yaml#/definitions/uint32-array
|
- const: 0
|
||||||
- items:
|
- enum: [ 55000, 150000 ]
|
||||||
- enum: [0 140000]
|
|
||||||
- enum: [0 250000]
|
|
||||||
|
|
||||||
patternProperties:
|
patternProperties:
|
||||||
"^channel@([3-5])$":
|
"^channel@([3-5])$":
|
||||||
type: object
|
type: object
|
||||||
description: Represents the external channels which are connected to the DAC.
|
description: Represents the external channels which are connected to the DAC.
|
||||||
properties:
|
properties:
|
||||||
num:
|
reg:
|
||||||
description: This represents the channel number.
|
description: This represents the channel number.
|
||||||
items:
|
minimum: 3
|
||||||
minimum: 3
|
maximum: 5
|
||||||
maximum: 5
|
|
||||||
|
|
||||||
adi,range-microamp:
|
adi,range-microamp:
|
||||||
description: Output range of the channel.
|
description: Output range of the channel.
|
||||||
oneOf:
|
items:
|
||||||
- $ref: /schemas/types.yaml#/definitions/uint32-array
|
- const: 0
|
||||||
- items:
|
- enum: [ 45000, 100000 ]
|
||||||
- enum: [0 45000]
|
|
||||||
- enum: [0 100000]
|
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- reg
|
- reg
|
||||||
- diff-channels
|
- channel@0
|
||||||
- channel0
|
- channel@1
|
||||||
- channel1
|
- channel@2
|
||||||
- channel2
|
- channel@3
|
||||||
- channel3
|
- channel@4
|
||||||
- channel4
|
- channel@5
|
||||||
- channel5
|
|
||||||
|
|
||||||
examples:
|
examples:
|
||||||
- |
|
- |
|
||||||
@ -144,40 +137,42 @@ examples:
|
|||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
|
||||||
ad5770r@0 {
|
ad5770r@0 {
|
||||||
compatible = "ad5770r";
|
compatible = "adi,ad5770r";
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
spi-max-frequency = <1000000>;
|
spi-max-frequency = <1000000>;
|
||||||
vref-supply = <&vref>;
|
vref-supply = <&vref>;
|
||||||
adi,external-resistor;
|
adi,external-resistor;
|
||||||
reset-gpios = <&gpio 22 0>;
|
reset-gpios = <&gpio 22 0>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
channel@0 {
|
channel@0 {
|
||||||
num = <0>;
|
reg = <0>;
|
||||||
adi,range-microamp = <(-60000) 300000>;
|
adi,range-microamp = <0 300000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
channel@1 {
|
channel@1 {
|
||||||
num = <1>;
|
reg = <1>;
|
||||||
adi,range-microamp = <0 140000>;
|
adi,range-microamp = <0 140000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
channel@2 {
|
channel@2 {
|
||||||
num = <2>;
|
reg = <2>;
|
||||||
adi,range-microamp = <0 55000>;
|
adi,range-microamp = <0 55000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
channel@3 {
|
channel@3 {
|
||||||
num = <3>;
|
reg = <3>;
|
||||||
adi,range-microamp = <0 45000>;
|
adi,range-microamp = <0 45000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
channel@4 {
|
channel@4 {
|
||||||
num = <4>;
|
reg = <4>;
|
||||||
adi,range-microamp = <0 45000>;
|
adi,range-microamp = <0 45000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
channel@5 {
|
channel@5 {
|
||||||
num = <5>;
|
reg = <5>;
|
||||||
adi,range-microamp = <0 45000>;
|
adi,range-microamp = <0 45000>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -109,7 +109,7 @@ examples:
|
|||||||
- |
|
- |
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
i2c@00000000 {
|
i2c {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
edt-ft5x06@38 {
|
edt-ft5x06@38 {
|
||||||
|
@ -56,9 +56,8 @@ properties:
|
|||||||
cell with zero.
|
cell with zero.
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: /schemas/types.yaml#/definitions/uint32-array
|
- $ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
- items:
|
- minItems: 4
|
||||||
minItems: 4
|
maxItems: 4
|
||||||
maxItems: 4
|
|
||||||
|
|
||||||
|
|
||||||
required:
|
required:
|
||||||
|
@ -97,30 +97,35 @@ examples:
|
|||||||
#include <dt-bindings/clock/tegra186-clock.h>
|
#include <dt-bindings/clock/tegra186-clock.h>
|
||||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
|
|
||||||
memory-controller@2c00000 {
|
bus {
|
||||||
compatible = "nvidia,tegra186-mc";
|
|
||||||
reg = <0x0 0x02c00000 0x0 0xb0000>;
|
|
||||||
interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
|
|
||||||
#address-cells = <2>;
|
#address-cells = <2>;
|
||||||
#size-cells = <2>;
|
#size-cells = <2>;
|
||||||
|
|
||||||
ranges = <0x0 0x02c00000 0x02c00000 0x0 0xb0000>;
|
memory-controller@2c00000 {
|
||||||
|
compatible = "nvidia,tegra186-mc";
|
||||||
|
reg = <0x0 0x02c00000 0x0 0xb0000>;
|
||||||
|
interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
|
||||||
/*
|
#address-cells = <2>;
|
||||||
* Memory clients have access to all 40 bits that the memory
|
#size-cells = <2>;
|
||||||
* controller can address.
|
|
||||||
*/
|
|
||||||
dma-ranges = <0x0 0x0 0x0 0x0 0x100 0x0>;
|
|
||||||
|
|
||||||
external-memory-controller@2c60000 {
|
ranges = <0x0 0x02c00000 0x0 0x02c00000 0x0 0xb0000>;
|
||||||
compatible = "nvidia,tegra186-emc";
|
|
||||||
reg = <0x0 0x02c60000 0x0 0x50000>;
|
|
||||||
interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
clocks = <&bpmp TEGRA186_CLK_EMC>;
|
|
||||||
clock-names = "emc";
|
|
||||||
|
|
||||||
nvidia,bpmp = <&bpmp>;
|
/*
|
||||||
|
* Memory clients have access to all 40 bits that the memory
|
||||||
|
* controller can address.
|
||||||
|
*/
|
||||||
|
dma-ranges = <0x0 0x0 0x0 0x0 0x100 0x0>;
|
||||||
|
|
||||||
|
external-memory-controller@2c60000 {
|
||||||
|
compatible = "nvidia,tegra186-emc";
|
||||||
|
reg = <0x0 0x02c60000 0x0 0x50000>;
|
||||||
|
interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
clocks = <&bpmp TEGRA186_CLK_EMC>;
|
||||||
|
clock-names = "emc";
|
||||||
|
|
||||||
|
nvidia,bpmp = <&bpmp>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -123,7 +123,9 @@ examples:
|
|||||||
#include <dt-bindings/leds/common.h>
|
#include <dt-bindings/leds/common.h>
|
||||||
|
|
||||||
i2c {
|
i2c {
|
||||||
pmic: pmic@4b {
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
pmic: pmic@4b {
|
||||||
compatible = "rohm,bd71837";
|
compatible = "rohm,bd71837";
|
||||||
reg = <0x4b>;
|
reg = <0x4b>;
|
||||||
interrupt-parent = <&gpio1>;
|
interrupt-parent = <&gpio1>;
|
||||||
|
@ -128,7 +128,9 @@ examples:
|
|||||||
#include <dt-bindings/leds/common.h>
|
#include <dt-bindings/leds/common.h>
|
||||||
|
|
||||||
i2c {
|
i2c {
|
||||||
pmic: pmic@4b {
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
pmic: pmic@4b {
|
||||||
compatible = "rohm,bd71847";
|
compatible = "rohm,bd71847";
|
||||||
reg = <0x4b>;
|
reg = <0x4b>;
|
||||||
interrupt-parent = <&gpio1>;
|
interrupt-parent = <&gpio1>;
|
||||||
|
@ -259,8 +259,6 @@ properties:
|
|||||||
|
|
||||||
additionalProperties: false
|
additionalProperties: false
|
||||||
|
|
||||||
additionalProperties: false
|
|
||||||
|
|
||||||
additionalProperties: false
|
additionalProperties: false
|
||||||
|
|
||||||
required:
|
required:
|
||||||
@ -274,7 +272,7 @@ examples:
|
|||||||
- |
|
- |
|
||||||
#include <dt-bindings/mfd/st,stpmic1.h>
|
#include <dt-bindings/mfd/st,stpmic1.h>
|
||||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
i2c@0 {
|
i2c {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
pmic@33 {
|
pmic@33 {
|
||||||
|
@ -43,6 +43,9 @@ properties:
|
|||||||
second group of digits is the Phy Identifier 2 register,
|
second group of digits is the Phy Identifier 2 register,
|
||||||
this is the chip vendor OUI bits 19:24, followed by 10
|
this is the chip vendor OUI bits 19:24, followed by 10
|
||||||
bits of a vendor specific ID.
|
bits of a vendor specific ID.
|
||||||
|
- items:
|
||||||
|
- pattern: "^ethernet-phy-id[a-f0-9]{4}\\.[a-f0-9]{4}$"
|
||||||
|
- const: ethernet-phy-ieee802.3-c22
|
||||||
- items:
|
- items:
|
||||||
- pattern: "^ethernet-phy-id[a-f0-9]{4}\\.[a-f0-9]{4}$"
|
- pattern: "^ethernet-phy-id[a-f0-9]{4}\\.[a-f0-9]{4}$"
|
||||||
- const: ethernet-phy-ieee802.3-c45
|
- const: ethernet-phy-ieee802.3-c45
|
||||||
|
@ -22,6 +22,8 @@ Optional properties:
|
|||||||
- fsl,err006687-workaround-present: If present indicates that the system has
|
- fsl,err006687-workaround-present: If present indicates that the system has
|
||||||
the hardware workaround for ERR006687 applied and does not need a software
|
the hardware workaround for ERR006687 applied and does not need a software
|
||||||
workaround.
|
workaround.
|
||||||
|
- gpr: phandle of SoC general purpose register mode. Required for wake on LAN
|
||||||
|
on some SoCs
|
||||||
-interrupt-names: names of the interrupts listed in interrupts property in
|
-interrupt-names: names of the interrupts listed in interrupts property in
|
||||||
the same order. The defaults if not specified are
|
the same order. The defaults if not specified are
|
||||||
__Number of interrupts__ __Default__
|
__Number of interrupts__ __Default__
|
||||||
|
@ -48,6 +48,7 @@ examples:
|
|||||||
|
|
||||||
switch@10 {
|
switch@10 {
|
||||||
compatible = "qca,qca8337";
|
compatible = "qca,qca8337";
|
||||||
|
reg = <0x10>;
|
||||||
/* ... */
|
/* ... */
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -29,7 +29,7 @@ Required properties for compatible string qcom,wcn399x-bt:
|
|||||||
|
|
||||||
Optional properties for compatible string qcom,wcn399x-bt:
|
Optional properties for compatible string qcom,wcn399x-bt:
|
||||||
|
|
||||||
- max-speed: see Documentation/devicetree/bindings/serial/slave-device.txt
|
- max-speed: see Documentation/devicetree/bindings/serial/serial.yaml
|
||||||
- firmware-name: specify the name of nvm firmware to load
|
- firmware-name: specify the name of nvm firmware to load
|
||||||
- clocks: clock provided to the controller
|
- clocks: clock provided to the controller
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@ then:
|
|||||||
- $ref: /schemas/types.yaml#/definitions/uint32
|
- $ref: /schemas/types.yaml#/definitions/uint32
|
||||||
- minimum: 0
|
- minimum: 0
|
||||||
maximum: 63
|
maximum: 63
|
||||||
default: 0
|
default: 32
|
||||||
|
|
||||||
qcom,charge-ctrl-value:
|
qcom,charge-ctrl-value:
|
||||||
description:
|
description:
|
||||||
@ -130,7 +130,7 @@ then:
|
|||||||
- $ref: /schemas/types.yaml#/definitions/uint32
|
- $ref: /schemas/types.yaml#/definitions/uint32
|
||||||
- minimum: 0
|
- minimum: 0
|
||||||
maximum: 3
|
maximum: 3
|
||||||
default: 2
|
default: 0
|
||||||
|
|
||||||
qcom,preemphasis-width:
|
qcom,preemphasis-width:
|
||||||
description:
|
description:
|
||||||
@ -152,7 +152,7 @@ then:
|
|||||||
- $ref: /schemas/types.yaml#/definitions/uint32
|
- $ref: /schemas/types.yaml#/definitions/uint32
|
||||||
- minimum: 0
|
- minimum: 0
|
||||||
maximum: 3
|
maximum: 3
|
||||||
default: 0
|
default: 1
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- compatible
|
- compatible
|
||||||
|
@ -146,7 +146,7 @@ patternProperties:
|
|||||||
bindings specified in
|
bindings specified in
|
||||||
Documentation/devicetree/bindings/phy/phy-cadence-sierra.txt
|
Documentation/devicetree/bindings/phy/phy-cadence-sierra.txt
|
||||||
Torrent SERDES should follow the bindings specified in
|
Torrent SERDES should follow the bindings specified in
|
||||||
Documentation/devicetree/bindings/phy/phy-cadence-dp.txt
|
Documentation/devicetree/bindings/phy/phy-cadence-torrent.yaml
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- compatible
|
- compatible
|
||||||
|
@ -31,10 +31,17 @@ additionalProperties: false
|
|||||||
|
|
||||||
examples:
|
examples:
|
||||||
- |
|
- |
|
||||||
cros-ec@0 {
|
spi {
|
||||||
compatible = "google,cros-ec-spi";
|
#address-cells = <1>;
|
||||||
cros_ec_pwm: ec-pwm {
|
#size-cells = <0>;
|
||||||
compatible = "google,cros-ec-pwm";
|
|
||||||
#pwm-cells = <1>;
|
cros-ec@0 {
|
||||||
|
compatible = "google,cros-ec-spi";
|
||||||
|
reg = <0>;
|
||||||
|
|
||||||
|
cros_ec_pwm: ec-pwm {
|
||||||
|
compatible = "google,cros-ec-pwm";
|
||||||
|
#pwm-cells = <1>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -37,7 +37,6 @@ properties:
|
|||||||
type: object
|
type: object
|
||||||
|
|
||||||
additionalProperties: false
|
additionalProperties: false
|
||||||
additionalProperties: false
|
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- compatible
|
- compatible
|
||||||
|
@ -75,7 +75,8 @@ properties:
|
|||||||
description: |
|
description: |
|
||||||
disables over voltage protection of this buck
|
disables over voltage protection of this buck
|
||||||
|
|
||||||
additionalProperties: false
|
unevaluatedProperties: false
|
||||||
|
|
||||||
additionalProperties: false
|
additionalProperties: false
|
||||||
|
|
||||||
required:
|
required:
|
||||||
|
@ -35,6 +35,8 @@ patternProperties:
|
|||||||
description:
|
description:
|
||||||
should be "ldo1", ..., "ldo7"
|
should be "ldo1", ..., "ldo7"
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
"^BUCK[1-7]$":
|
"^BUCK[1-7]$":
|
||||||
type: object
|
type: object
|
||||||
allOf:
|
allOf:
|
||||||
@ -103,5 +105,7 @@ patternProperties:
|
|||||||
|
|
||||||
required:
|
required:
|
||||||
- regulator-name
|
- regulator-name
|
||||||
additionalProperties: false
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
additionalProperties: false
|
additionalProperties: false
|
||||||
|
@ -41,6 +41,8 @@ patternProperties:
|
|||||||
description:
|
description:
|
||||||
should be "ldo1", ..., "ldo7"
|
should be "ldo1", ..., "ldo7"
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
"^BUCK[1-8]$":
|
"^BUCK[1-8]$":
|
||||||
type: object
|
type: object
|
||||||
allOf:
|
allOf:
|
||||||
@ -99,5 +101,7 @@ patternProperties:
|
|||||||
|
|
||||||
required:
|
required:
|
||||||
- regulator-name
|
- regulator-name
|
||||||
additionalProperties: false
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
additionalProperties: false
|
additionalProperties: false
|
||||||
|
@ -40,6 +40,8 @@ patternProperties:
|
|||||||
description:
|
description:
|
||||||
should be "ldo1", ..., "ldo6"
|
should be "ldo1", ..., "ldo6"
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
"^BUCK[1-6]$":
|
"^BUCK[1-6]$":
|
||||||
type: object
|
type: object
|
||||||
allOf:
|
allOf:
|
||||||
@ -93,5 +95,7 @@ patternProperties:
|
|||||||
|
|
||||||
required:
|
required:
|
||||||
- regulator-name
|
- regulator-name
|
||||||
additionalProperties: false
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
additionalProperties: false
|
additionalProperties: false
|
||||||
|
@ -39,7 +39,7 @@ additionalProperties: false
|
|||||||
|
|
||||||
examples:
|
examples:
|
||||||
- |
|
- |
|
||||||
rng {
|
rng@7e104000 {
|
||||||
compatible = "brcm,bcm2835-rng";
|
compatible = "brcm,bcm2835-rng";
|
||||||
reg = <0x7e104000 0x10>;
|
reg = <0x7e104000 0x10>;
|
||||||
interrupts = <2 29>;
|
interrupts = <2 29>;
|
||||||
|
@ -56,6 +56,9 @@ properties:
|
|||||||
- const: tx
|
- const: tx
|
||||||
- const: rx
|
- const: rx
|
||||||
|
|
||||||
|
power-domains:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
rockchip,capture-channels:
|
rockchip,capture-channels:
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: /schemas/types.yaml#/definitions/uint32
|
- $ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
@ -1,45 +0,0 @@
|
|||||||
* Rockchip SPDIF transceiver
|
|
||||||
|
|
||||||
The S/PDIF audio block is a stereo transceiver that allows the
|
|
||||||
processor to receive and transmit digital audio via an coaxial cable or
|
|
||||||
a fibre cable.
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
|
|
||||||
- compatible: should be one of the following:
|
|
||||||
- "rockchip,rk3066-spdif"
|
|
||||||
- "rockchip,rk3188-spdif"
|
|
||||||
- "rockchip,rk3228-spdif"
|
|
||||||
- "rockchip,rk3288-spdif"
|
|
||||||
- "rockchip,rk3328-spdif"
|
|
||||||
- "rockchip,rk3366-spdif"
|
|
||||||
- "rockchip,rk3368-spdif"
|
|
||||||
- "rockchip,rk3399-spdif"
|
|
||||||
- reg: physical base address of the controller and length of memory mapped
|
|
||||||
region.
|
|
||||||
- interrupts: should contain the SPDIF interrupt.
|
|
||||||
- dmas: DMA specifiers for tx dma. See the DMA client binding,
|
|
||||||
Documentation/devicetree/bindings/dma/dma.txt
|
|
||||||
- dma-names: should be "tx"
|
|
||||||
- clocks: a list of phandle + clock-specifier pairs, one for each entry
|
|
||||||
in clock-names.
|
|
||||||
- clock-names: should contain following:
|
|
||||||
- "hclk": clock for SPDIF controller
|
|
||||||
- "mclk" : clock for SPDIF bus
|
|
||||||
|
|
||||||
Required properties on RK3288:
|
|
||||||
- rockchip,grf: the phandle of the syscon node for the general register
|
|
||||||
file (GRF)
|
|
||||||
|
|
||||||
Example for the rk3188 SPDIF controller:
|
|
||||||
|
|
||||||
spdif: spdif@1011e000 {
|
|
||||||
compatible = "rockchip,rk3188-spdif", "rockchip,rk3066-spdif";
|
|
||||||
reg = <0x1011e000 0x2000>;
|
|
||||||
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
dmas = <&dmac1_s 8>;
|
|
||||||
dma-names = "tx";
|
|
||||||
clock-names = "hclk", "mclk";
|
|
||||||
clocks = <&cru HCLK_SPDIF>, <&cru SCLK_SPDIF>;
|
|
||||||
#sound-dai-cells = <0>;
|
|
||||||
};
|
|
101
Documentation/devicetree/bindings/sound/rockchip-spdif.yaml
Normal file
101
Documentation/devicetree/bindings/sound/rockchip-spdif.yaml
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/sound/rockchip-spdif.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Rockchip SPDIF transceiver
|
||||||
|
|
||||||
|
description:
|
||||||
|
The S/PDIF audio block is a stereo transceiver that allows the
|
||||||
|
processor to receive and transmit digital audio via a coaxial or
|
||||||
|
fibre cable.
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Heiko Stuebner <heiko@sntech.de>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
oneOf:
|
||||||
|
- const: rockchip,rk3066-spdif
|
||||||
|
- const: rockchip,rk3228-spdif
|
||||||
|
- const: rockchip,rk3328-spdif
|
||||||
|
- const: rockchip,rk3366-spdif
|
||||||
|
- const: rockchip,rk3368-spdif
|
||||||
|
- const: rockchip,rk3399-spdif
|
||||||
|
- items:
|
||||||
|
- enum:
|
||||||
|
- rockchip,rk3188-spdif
|
||||||
|
- rockchip,rk3288-spdif
|
||||||
|
- const: rockchip,rk3066-spdif
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
items:
|
||||||
|
- description: clock for SPDIF bus
|
||||||
|
- description: clock for SPDIF controller
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
items:
|
||||||
|
- const: mclk
|
||||||
|
- const: hclk
|
||||||
|
|
||||||
|
dmas:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
dma-names:
|
||||||
|
const: tx
|
||||||
|
|
||||||
|
power-domains:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
rockchip,grf:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/phandle
|
||||||
|
description:
|
||||||
|
The phandle of the syscon node for the GRF register.
|
||||||
|
Required property on RK3288.
|
||||||
|
|
||||||
|
"#sound-dai-cells":
|
||||||
|
const: 0
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- interrupts
|
||||||
|
- clocks
|
||||||
|
- clock-names
|
||||||
|
- dmas
|
||||||
|
- dma-names
|
||||||
|
- "#sound-dai-cells"
|
||||||
|
|
||||||
|
if:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
const: rockchip,rk3288-spdif
|
||||||
|
|
||||||
|
then:
|
||||||
|
required:
|
||||||
|
- rockchip,grf
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/clock/rk3188-cru.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
|
spdif: spdif@1011e000 {
|
||||||
|
compatible = "rockchip,rk3188-spdif", "rockchip,rk3066-spdif";
|
||||||
|
reg = <0x1011e000 0x2000>;
|
||||||
|
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
clocks = <&cru SCLK_SPDIF>, <&cru HCLK_SPDIF>;
|
||||||
|
clock-names = "mclk", "hclk";
|
||||||
|
dmas = <&dmac1_s 8>;
|
||||||
|
dma-names = "tx";
|
||||||
|
#sound-dai-cells = <0>;
|
||||||
|
};
|
@ -61,7 +61,7 @@ examples:
|
|||||||
#include <dt-bindings/clock/qcom,gcc-sdm845.h>
|
#include <dt-bindings/clock/qcom,gcc-sdm845.h>
|
||||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
|
|
||||||
soc: soc@0 {
|
soc: soc {
|
||||||
#address-cells = <2>;
|
#address-cells = <2>;
|
||||||
#size-cells = <2>;
|
#size-cells = <2>;
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ additionalProperties: false
|
|||||||
examples:
|
examples:
|
||||||
- |
|
- |
|
||||||
#include <dt-bindings/clock/jz4740-cgu.h>
|
#include <dt-bindings/clock/jz4740-cgu.h>
|
||||||
usb_phy: usb-phy@0 {
|
usb_phy: usb-phy {
|
||||||
compatible = "usb-nop-xceiv";
|
compatible = "usb-nop-xceiv";
|
||||||
#phy-cells = <0>;
|
#phy-cells = <0>;
|
||||||
};
|
};
|
||||||
|
@ -52,8 +52,8 @@ A child node must exist to represent the core DWC3 IP block. The name of
|
|||||||
the node is not important. The content of the node is defined in dwc3.txt.
|
the node is not important. The content of the node is defined in dwc3.txt.
|
||||||
|
|
||||||
Phy documentation is provided in the following places:
|
Phy documentation is provided in the following places:
|
||||||
Documentation/devicetree/bindings/phy/qcom-qmp-phy.txt - USB3 QMP PHY
|
Documentation/devicetree/bindings/phy/qcom-qmp-phy.txt - USB3 QMP PHY
|
||||||
Documentation/devicetree/bindings/phy/qcom-qusb2-phy.txt - USB2 QUSB2 PHY
|
Documentation/devicetree/bindings/phy/qcom,qusb2-phy.yaml - USB2 QUSB2 PHY
|
||||||
|
|
||||||
Example device nodes:
|
Example device nodes:
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@ properties:
|
|||||||
- renesas,r8a774c0-usb3-peri # RZ/G2E
|
- renesas,r8a774c0-usb3-peri # RZ/G2E
|
||||||
- renesas,r8a7795-usb3-peri # R-Car H3
|
- renesas,r8a7795-usb3-peri # R-Car H3
|
||||||
- renesas,r8a7796-usb3-peri # R-Car M3-W
|
- renesas,r8a7796-usb3-peri # R-Car M3-W
|
||||||
|
- renesas,r8a77961-usb3-peri # R-Car M3-W+
|
||||||
- renesas,r8a77965-usb3-peri # R-Car M3-N
|
- renesas,r8a77965-usb3-peri # R-Car M3-N
|
||||||
- renesas,r8a77990-usb3-peri # R-Car E3
|
- renesas,r8a77990-usb3-peri # R-Car E3
|
||||||
- const: renesas,rcar-gen3-usb3-peri
|
- const: renesas,rcar-gen3-usb3-peri
|
||||||
|
@ -40,6 +40,7 @@ properties:
|
|||||||
- renesas,usbhs-r8a774c0 # RZ/G2E
|
- renesas,usbhs-r8a774c0 # RZ/G2E
|
||||||
- renesas,usbhs-r8a7795 # R-Car H3
|
- renesas,usbhs-r8a7795 # R-Car H3
|
||||||
- renesas,usbhs-r8a7796 # R-Car M3-W
|
- renesas,usbhs-r8a7796 # R-Car M3-W
|
||||||
|
- renesas,usbhs-r8a77961 # R-Car M3-W+
|
||||||
- renesas,usbhs-r8a77965 # R-Car M3-N
|
- renesas,usbhs-r8a77965 # R-Car M3-N
|
||||||
- renesas,usbhs-r8a77990 # R-Car E3
|
- renesas,usbhs-r8a77990 # R-Car E3
|
||||||
- renesas,usbhs-r8a77995 # R-Car D3
|
- renesas,usbhs-r8a77995 # R-Car D3
|
||||||
|
@ -16,7 +16,7 @@ A child node must exist to represent the core DWC3 IP block. The name of
|
|||||||
the node is not important. The content of the node is defined in dwc3.txt.
|
the node is not important. The content of the node is defined in dwc3.txt.
|
||||||
|
|
||||||
Phy documentation is provided in the following places:
|
Phy documentation is provided in the following places:
|
||||||
Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.txt - USB2.0 PHY
|
Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.yaml - USB2.0 PHY
|
||||||
Documentation/devicetree/bindings/phy/phy-rockchip-typec.txt - Type-C PHY
|
Documentation/devicetree/bindings/phy/phy-rockchip-typec.txt - Type-C PHY
|
||||||
|
|
||||||
Example device nodes:
|
Example device nodes:
|
||||||
|
@ -16,7 +16,8 @@ Required properties:
|
|||||||
- "renesas,xhci-r8a7791" for r8a7791 SoC
|
- "renesas,xhci-r8a7791" for r8a7791 SoC
|
||||||
- "renesas,xhci-r8a7793" for r8a7793 SoC
|
- "renesas,xhci-r8a7793" for r8a7793 SoC
|
||||||
- "renesas,xhci-r8a7795" for r8a7795 SoC
|
- "renesas,xhci-r8a7795" for r8a7795 SoC
|
||||||
- "renesas,xhci-r8a7796" for r8a7796 SoC
|
- "renesas,xhci-r8a7796" for r8a77960 SoC
|
||||||
|
- "renesas,xhci-r8a77961" for r8a77961 SoC
|
||||||
- "renesas,xhci-r8a77965" for r8a77965 SoC
|
- "renesas,xhci-r8a77965" for r8a77965 SoC
|
||||||
- "renesas,xhci-r8a77990" for r8a77990 SoC
|
- "renesas,xhci-r8a77990" for r8a77990 SoC
|
||||||
- "renesas,rcar-gen2-xhci" for a generic R-Car Gen2 or RZ/G1 compatible
|
- "renesas,rcar-gen2-xhci" for a generic R-Car Gen2 or RZ/G1 compatible
|
||||||
|
@ -79,8 +79,8 @@ created with any of::
|
|||||||
struct dentry *parent, u8 *value);
|
struct dentry *parent, u8 *value);
|
||||||
void debugfs_create_u16(const char *name, umode_t mode,
|
void debugfs_create_u16(const char *name, umode_t mode,
|
||||||
struct dentry *parent, u16 *value);
|
struct dentry *parent, u16 *value);
|
||||||
struct dentry *debugfs_create_u32(const char *name, umode_t mode,
|
void debugfs_create_u32(const char *name, umode_t mode,
|
||||||
struct dentry *parent, u32 *value);
|
struct dentry *parent, u32 *value);
|
||||||
void debugfs_create_u64(const char *name, umode_t mode,
|
void debugfs_create_u64(const char *name, umode_t mode,
|
||||||
struct dentry *parent, u64 *value);
|
struct dentry *parent, u64 *value);
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL68220
|
* Renesas ISL68220
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'isl68220'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL68221
|
* Renesas ISL68221
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_3rail'
|
Prefix: 'isl68221'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL68222
|
* Renesas ISL68222
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'isl68222'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL68223
|
* Renesas ISL68223
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'isl68223'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -56,7 +56,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL68224
|
* Renesas ISL68224
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_3rail'
|
Prefix: 'isl68224'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -66,7 +66,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL68225
|
* Renesas ISL68225
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'isl68225'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -76,7 +76,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL68226
|
* Renesas ISL68226
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_3rail'
|
Prefix: 'isl68226'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -86,7 +86,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL68227
|
* Renesas ISL68227
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_1rail'
|
Prefix: 'isl68227'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -96,7 +96,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL68229
|
* Renesas ISL68229
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_3rail'
|
Prefix: 'isl68229'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -106,7 +106,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL68233
|
* Renesas ISL68233
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'isl68233'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -116,7 +116,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL68239
|
* Renesas ISL68239
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_3rail'
|
Prefix: 'isl68239'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -126,7 +126,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL69222
|
* Renesas ISL69222
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'isl69222'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -136,7 +136,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL69223
|
* Renesas ISL69223
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_3rail'
|
Prefix: 'isl69223'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -146,7 +146,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL69224
|
* Renesas ISL69224
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'isl69224'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -156,7 +156,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL69225
|
* Renesas ISL69225
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'isl69225'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -166,7 +166,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL69227
|
* Renesas ISL69227
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_3rail'
|
Prefix: 'isl69227'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -176,7 +176,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL69228
|
* Renesas ISL69228
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_3rail'
|
Prefix: 'isl69228'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -186,7 +186,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL69234
|
* Renesas ISL69234
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'isl69234'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -196,7 +196,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL69236
|
* Renesas ISL69236
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'isl69236'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -206,7 +206,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL69239
|
* Renesas ISL69239
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_3rail'
|
Prefix: 'isl69239'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -216,7 +216,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL69242
|
* Renesas ISL69242
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'isl69242'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -226,7 +226,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL69243
|
* Renesas ISL69243
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_1rail'
|
Prefix: 'isl69243'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -236,7 +236,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL69247
|
* Renesas ISL69247
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'isl69247'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -246,7 +246,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL69248
|
* Renesas ISL69248
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'isl69248'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -256,7 +256,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL69254
|
* Renesas ISL69254
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'isl69254'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -266,7 +266,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL69255
|
* Renesas ISL69255
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'isl69255'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -276,7 +276,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL69256
|
* Renesas ISL69256
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'isl69256'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -286,7 +286,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL69259
|
* Renesas ISL69259
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'isl69259'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -296,7 +296,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL69260
|
* Renesas ISL69260
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'isl69260'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -306,7 +306,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL69268
|
* Renesas ISL69268
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'isl69268'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -316,7 +316,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL69269
|
* Renesas ISL69269
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_3rail'
|
Prefix: 'isl69269'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -326,7 +326,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas ISL69298
|
* Renesas ISL69298
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'isl69298'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -336,7 +336,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas RAA228000
|
* Renesas RAA228000
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_hv'
|
Prefix: 'raa228000'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -346,7 +346,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas RAA228004
|
* Renesas RAA228004
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_hv'
|
Prefix: 'raa228004'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -356,7 +356,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas RAA228006
|
* Renesas RAA228006
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_hv'
|
Prefix: 'raa228006'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -366,7 +366,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas RAA228228
|
* Renesas RAA228228
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'raa228228'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -376,7 +376,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas RAA229001
|
* Renesas RAA229001
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'raa229001'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
@ -386,7 +386,7 @@ Supported chips:
|
|||||||
|
|
||||||
* Renesas RAA229004
|
* Renesas RAA229004
|
||||||
|
|
||||||
Prefix: 'raa_dmpvr2_2rail'
|
Prefix: 'raa229004'
|
||||||
|
|
||||||
Addresses scanned: -
|
Addresses scanned: -
|
||||||
|
|
||||||
|
@ -1241,7 +1241,8 @@ When kbuild executes, the following steps are followed (roughly):
|
|||||||
will be displayed with "make KBUILD_VERBOSE=0".
|
will be displayed with "make KBUILD_VERBOSE=0".
|
||||||
|
|
||||||
|
|
||||||
--- 6.9 Preprocessing linker scripts
|
6.9 Preprocessing linker scripts
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
When the vmlinux image is built, the linker script
|
When the vmlinux image is built, the linker script
|
||||||
arch/$(ARCH)/kernel/vmlinux.lds is used.
|
arch/$(ARCH)/kernel/vmlinux.lds is used.
|
||||||
|
@ -257,6 +257,8 @@ drivers:
|
|||||||
* :doc:`netdevsim`
|
* :doc:`netdevsim`
|
||||||
* :doc:`mlxsw`
|
* :doc:`mlxsw`
|
||||||
|
|
||||||
|
.. _Generic-Packet-Trap-Groups:
|
||||||
|
|
||||||
Generic Packet Trap Groups
|
Generic Packet Trap Groups
|
||||||
==========================
|
==========================
|
||||||
|
|
||||||
|
@ -61,8 +61,8 @@ The ``ice`` driver reports the following versions
|
|||||||
- running
|
- running
|
||||||
- ICE OS Default Package
|
- ICE OS Default Package
|
||||||
- The name of the DDP package that is active in the device. The DDP
|
- The name of the DDP package that is active in the device. The DDP
|
||||||
package is loaded by the driver during initialization. Each varation
|
package is loaded by the driver during initialization. Each
|
||||||
of DDP package shall have a unique name.
|
variation of the DDP package has a unique name.
|
||||||
* - ``fw.app``
|
* - ``fw.app``
|
||||||
- running
|
- running
|
||||||
- 1.3.1.0
|
- 1.3.1.0
|
||||||
|
@ -22,6 +22,7 @@ Contents:
|
|||||||
z8530book
|
z8530book
|
||||||
msg_zerocopy
|
msg_zerocopy
|
||||||
failover
|
failover
|
||||||
|
net_dim
|
||||||
net_failover
|
net_failover
|
||||||
phy
|
phy
|
||||||
sfp-phylink
|
sfp-phylink
|
||||||
|
@ -812,7 +812,7 @@ tcp_limit_output_bytes - INTEGER
|
|||||||
tcp_challenge_ack_limit - INTEGER
|
tcp_challenge_ack_limit - INTEGER
|
||||||
Limits number of Challenge ACK sent per second, as recommended
|
Limits number of Challenge ACK sent per second, as recommended
|
||||||
in RFC 5961 (Improving TCP's Robustness to Blind In-Window Attacks)
|
in RFC 5961 (Improving TCP's Robustness to Blind In-Window Attacks)
|
||||||
Default: 100
|
Default: 1000
|
||||||
|
|
||||||
tcp_rx_skb_cache - BOOLEAN
|
tcp_rx_skb_cache - BOOLEAN
|
||||||
Controls a per TCP socket cache of one skb, that might help
|
Controls a per TCP socket cache of one skb, that might help
|
||||||
@ -983,6 +983,13 @@ ip_early_demux - BOOLEAN
|
|||||||
reduces overall throughput, in such case you should disable it.
|
reduces overall throughput, in such case you should disable it.
|
||||||
Default: 1
|
Default: 1
|
||||||
|
|
||||||
|
ping_group_range - 2 INTEGERS
|
||||||
|
Restrict ICMP_PROTO datagram sockets to users in the group range.
|
||||||
|
The default is "1 0", meaning, that nobody (not even root) may
|
||||||
|
create ping sockets. Setting it to "100 100" would grant permissions
|
||||||
|
to the single group. "0 4294967295" would enable it for the world, "100
|
||||||
|
4294967295" would enable it for the users, but not daemons.
|
||||||
|
|
||||||
tcp_early_demux - BOOLEAN
|
tcp_early_demux - BOOLEAN
|
||||||
Enable early demux for established TCP sockets.
|
Enable early demux for established TCP sockets.
|
||||||
Default: 1
|
Default: 1
|
||||||
|
@ -1,28 +1,20 @@
|
|||||||
|
======================================================
|
||||||
Net DIM - Generic Network Dynamic Interrupt Moderation
|
Net DIM - Generic Network Dynamic Interrupt Moderation
|
||||||
======================================================
|
======================================================
|
||||||
|
|
||||||
Author:
|
:Author: Tal Gilboa <talgi@mellanox.com>
|
||||||
Tal Gilboa <talgi@mellanox.com>
|
|
||||||
|
|
||||||
|
.. contents:: :depth: 2
|
||||||
|
|
||||||
Contents
|
Assumptions
|
||||||
=========
|
===========
|
||||||
|
|
||||||
- Assumptions
|
|
||||||
- Introduction
|
|
||||||
- The Net DIM Algorithm
|
|
||||||
- Registering a Network Device to DIM
|
|
||||||
- Example
|
|
||||||
|
|
||||||
Part 0: Assumptions
|
|
||||||
======================
|
|
||||||
|
|
||||||
This document assumes the reader has basic knowledge in network drivers
|
This document assumes the reader has basic knowledge in network drivers
|
||||||
and in general interrupt moderation.
|
and in general interrupt moderation.
|
||||||
|
|
||||||
|
|
||||||
Part I: Introduction
|
Introduction
|
||||||
======================
|
============
|
||||||
|
|
||||||
Dynamic Interrupt Moderation (DIM) (in networking) refers to changing the
|
Dynamic Interrupt Moderation (DIM) (in networking) refers to changing the
|
||||||
interrupt moderation configuration of a channel in order to optimize packet
|
interrupt moderation configuration of a channel in order to optimize packet
|
||||||
@ -41,14 +33,15 @@ number of wanted packets per event. The Net DIM algorithm ascribes importance to
|
|||||||
increase bandwidth over reducing interrupt rate.
|
increase bandwidth over reducing interrupt rate.
|
||||||
|
|
||||||
|
|
||||||
Part II: The Net DIM Algorithm
|
Net DIM Algorithm
|
||||||
===============================
|
=================
|
||||||
|
|
||||||
Each iteration of the Net DIM algorithm follows these steps:
|
Each iteration of the Net DIM algorithm follows these steps:
|
||||||
1. Calculates new data sample.
|
|
||||||
2. Compares it to previous sample.
|
#. Calculates new data sample.
|
||||||
3. Makes a decision - suggests interrupt moderation configuration fields.
|
#. Compares it to previous sample.
|
||||||
4. Applies a schedule work function, which applies suggested configuration.
|
#. Makes a decision - suggests interrupt moderation configuration fields.
|
||||||
|
#. Applies a schedule work function, which applies suggested configuration.
|
||||||
|
|
||||||
The first two steps are straightforward, both the new and the previous data are
|
The first two steps are straightforward, both the new and the previous data are
|
||||||
supplied by the driver registered to Net DIM. The previous data is the new data
|
supplied by the driver registered to Net DIM. The previous data is the new data
|
||||||
@ -89,19 +82,21 @@ manoeuvre as it may provide partial data or ignore the algorithm suggestion
|
|||||||
under some conditions.
|
under some conditions.
|
||||||
|
|
||||||
|
|
||||||
Part III: Registering a Network Device to DIM
|
Registering a Network Device to DIM
|
||||||
==============================================
|
===================================
|
||||||
|
|
||||||
Net DIM API exposes the main function net_dim(struct dim *dim,
|
Net DIM API exposes the main function net_dim().
|
||||||
struct dim_sample end_sample). This function is the entry point to the Net
|
This function is the entry point to the Net
|
||||||
DIM algorithm and has to be called every time the driver would like to check if
|
DIM algorithm and has to be called every time the driver would like to check if
|
||||||
it should change interrupt moderation parameters. The driver should provide two
|
it should change interrupt moderation parameters. The driver should provide two
|
||||||
data structures: struct dim and struct dim_sample. Struct dim
|
data structures: :c:type:`struct dim <dim>` and
|
||||||
|
:c:type:`struct dim_sample <dim_sample>`. :c:type:`struct dim <dim>`
|
||||||
describes the state of DIM for a specific object (RX queue, TX queue,
|
describes the state of DIM for a specific object (RX queue, TX queue,
|
||||||
other queues, etc.). This includes the current selected profile, previous data
|
other queues, etc.). This includes the current selected profile, previous data
|
||||||
samples, the callback function provided by the driver and more.
|
samples, the callback function provided by the driver and more.
|
||||||
Struct dim_sample describes a data sample, which will be compared to the
|
:c:type:`struct dim_sample <dim_sample>` describes a data sample,
|
||||||
data sample stored in struct dim in order to decide on the algorithm's next
|
which will be compared to the data sample stored in :c:type:`struct dim <dim>`
|
||||||
|
in order to decide on the algorithm's next
|
||||||
step. The sample should include bytes, packets and interrupts, measured by
|
step. The sample should include bytes, packets and interrupts, measured by
|
||||||
the driver.
|
the driver.
|
||||||
|
|
||||||
@ -110,9 +105,10 @@ main net_dim() function. The recommended method is to call net_dim() on each
|
|||||||
interrupt. Since Net DIM has a built-in moderation and it might decide to skip
|
interrupt. Since Net DIM has a built-in moderation and it might decide to skip
|
||||||
iterations under certain conditions, there is no need to moderate the net_dim()
|
iterations under certain conditions, there is no need to moderate the net_dim()
|
||||||
calls as well. As mentioned above, the driver needs to provide an object of type
|
calls as well. As mentioned above, the driver needs to provide an object of type
|
||||||
struct dim to the net_dim() function call. It is advised for each entity
|
:c:type:`struct dim <dim>` to the net_dim() function call. It is advised for
|
||||||
using Net DIM to hold a struct dim as part of its data structure and use it
|
each entity using Net DIM to hold a :c:type:`struct dim <dim>` as part of its
|
||||||
as the main Net DIM API object. The struct dim_sample should hold the latest
|
data structure and use it as the main Net DIM API object.
|
||||||
|
The :c:type:`struct dim_sample <dim_sample>` should hold the latest
|
||||||
bytes, packets and interrupts count. No need to perform any calculations, just
|
bytes, packets and interrupts count. No need to perform any calculations, just
|
||||||
include the raw data.
|
include the raw data.
|
||||||
|
|
||||||
@ -124,19 +120,19 @@ the data flow. After the work is done, Net DIM algorithm needs to be set to
|
|||||||
the proper state in order to move to the next iteration.
|
the proper state in order to move to the next iteration.
|
||||||
|
|
||||||
|
|
||||||
Part IV: Example
|
Example
|
||||||
=================
|
=======
|
||||||
|
|
||||||
The following code demonstrates how to register a driver to Net DIM. The actual
|
The following code demonstrates how to register a driver to Net DIM. The actual
|
||||||
usage is not complete but it should make the outline of the usage clear.
|
usage is not complete but it should make the outline of the usage clear.
|
||||||
|
|
||||||
my_driver.c:
|
.. code-block:: c
|
||||||
|
|
||||||
#include <linux/dim.h>
|
#include <linux/dim.h>
|
||||||
|
|
||||||
/* Callback for net DIM to schedule on a decision to change moderation */
|
/* Callback for net DIM to schedule on a decision to change moderation */
|
||||||
void my_driver_do_dim_work(struct work_struct *work)
|
void my_driver_do_dim_work(struct work_struct *work)
|
||||||
{
|
{
|
||||||
/* Get struct dim from struct work_struct */
|
/* Get struct dim from struct work_struct */
|
||||||
struct dim *dim = container_of(work, struct dim,
|
struct dim *dim = container_of(work, struct dim,
|
||||||
work);
|
work);
|
||||||
@ -145,11 +141,11 @@ void my_driver_do_dim_work(struct work_struct *work)
|
|||||||
|
|
||||||
/* Signal net DIM work is done and it should move to next iteration */
|
/* Signal net DIM work is done and it should move to next iteration */
|
||||||
dim->state = DIM_START_MEASURE;
|
dim->state = DIM_START_MEASURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* My driver's interrupt handler */
|
/* My driver's interrupt handler */
|
||||||
int my_driver_handle_interrupt(struct my_driver_entity *my_entity, ...)
|
int my_driver_handle_interrupt(struct my_driver_entity *my_entity, ...)
|
||||||
{
|
{
|
||||||
...
|
...
|
||||||
/* A struct to hold current measured data */
|
/* A struct to hold current measured data */
|
||||||
struct dim_sample dim_sample;
|
struct dim_sample dim_sample;
|
||||||
@ -162,13 +158,19 @@ int my_driver_handle_interrupt(struct my_driver_entity *my_entity, ...)
|
|||||||
/* Call net DIM */
|
/* Call net DIM */
|
||||||
net_dim(&my_entity->dim, dim_sample);
|
net_dim(&my_entity->dim, dim_sample);
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
|
|
||||||
/* My entity's initialization function (my_entity was already allocated) */
|
/* My entity's initialization function (my_entity was already allocated) */
|
||||||
int my_driver_init_my_entity(struct my_driver_entity *my_entity, ...)
|
int my_driver_init_my_entity(struct my_driver_entity *my_entity, ...)
|
||||||
{
|
{
|
||||||
...
|
...
|
||||||
/* Initiate struct work_struct with my driver's callback function */
|
/* Initiate struct work_struct with my driver's callback function */
|
||||||
INIT_WORK(&my_entity->dim.work, my_driver_do_dim_work);
|
INIT_WORK(&my_entity->dim.work, my_driver_do_dim_work);
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Dynamic Interrupt Moderation (DIM) library API
|
||||||
|
==============================================
|
||||||
|
|
||||||
|
.. kernel-doc:: include/linux/dim.h
|
||||||
|
:internal:
|
@ -27,9 +27,8 @@ differences are:
|
|||||||
3. Raw Gadget provides a way to select a UDC device/driver to bind to,
|
3. Raw Gadget provides a way to select a UDC device/driver to bind to,
|
||||||
while GadgetFS currently binds to the first available UDC.
|
while GadgetFS currently binds to the first available UDC.
|
||||||
|
|
||||||
4. Raw Gadget uses predictable endpoint names (handles) across different
|
4. Raw Gadget explicitly exposes information about endpoints addresses and
|
||||||
UDCs (as long as UDCs have enough endpoints of each required transfer
|
capabilities allowing a user to write UDC-agnostic gadgets.
|
||||||
type).
|
|
||||||
|
|
||||||
5. Raw Gadget has ioctl-based interface instead of a filesystem-based one.
|
5. Raw Gadget has ioctl-based interface instead of a filesystem-based one.
|
||||||
|
|
||||||
@ -50,12 +49,36 @@ The typical usage of Raw Gadget looks like:
|
|||||||
Raw Gadget and react to those depending on what kind of USB device
|
Raw Gadget and react to those depending on what kind of USB device
|
||||||
needs to be emulated.
|
needs to be emulated.
|
||||||
|
|
||||||
|
Note, that some UDC drivers have fixed addresses assigned to endpoints, and
|
||||||
|
therefore arbitrary endpoint addresses can't be used in the descriptors.
|
||||||
|
Nevertheles, Raw Gadget provides a UDC-agnostic way to write USB gadgets.
|
||||||
|
Once a USB_RAW_EVENT_CONNECT event is received via USB_RAW_IOCTL_EVENT_FETCH,
|
||||||
|
the USB_RAW_IOCTL_EPS_INFO ioctl can be used to find out information about
|
||||||
|
endpoints that the UDC driver has. Based on that information, the user must
|
||||||
|
chose UDC endpoints that will be used for the gadget being emulated, and
|
||||||
|
properly assign addresses in endpoint descriptors.
|
||||||
|
|
||||||
|
You can find usage examples (along with a test suite) here:
|
||||||
|
|
||||||
|
https://github.com/xairy/raw-gadget
|
||||||
|
|
||||||
|
Internal details
|
||||||
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Currently every endpoint read/write ioctl submits a USB request and waits until
|
||||||
|
its completion. This is the desired mode for coverage-guided fuzzing (as we'd
|
||||||
|
like all USB request processing happen during the lifetime of a syscall),
|
||||||
|
and must be kept in the implementation. (This might be slow for real world
|
||||||
|
applications, thus the O_NONBLOCK improvement suggestion below.)
|
||||||
|
|
||||||
Potential future improvements
|
Potential future improvements
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
- Implement ioctl's for setting/clearing halt status on endpoints.
|
- Report more events (suspend, resume, etc.) through USB_RAW_IOCTL_EVENT_FETCH.
|
||||||
|
|
||||||
- Reporting more events (suspend, resume, etc.) through
|
|
||||||
USB_RAW_IOCTL_EVENT_FETCH.
|
|
||||||
|
|
||||||
- Support O_NONBLOCK I/O.
|
- Support O_NONBLOCK I/O.
|
||||||
|
|
||||||
|
- Support USB 3 features (accept SS endpoint companion descriptor when
|
||||||
|
enabling endpoints; allow providing stream_id for bulk transfers).
|
||||||
|
|
||||||
|
- Support ISO transfer features (expose frame_number for completed requests).
|
||||||
|
@ -28,3 +28,5 @@ KVM
|
|||||||
arm/index
|
arm/index
|
||||||
|
|
||||||
devices/index
|
devices/index
|
||||||
|
|
||||||
|
running-nested-guests
|
||||||
|
276
Documentation/virt/kvm/running-nested-guests.rst
Normal file
276
Documentation/virt/kvm/running-nested-guests.rst
Normal file
@ -0,0 +1,276 @@
|
|||||||
|
==============================
|
||||||
|
Running nested guests with KVM
|
||||||
|
==============================
|
||||||
|
|
||||||
|
A nested guest is the ability to run a guest inside another guest (it
|
||||||
|
can be KVM-based or a different hypervisor). The straightforward
|
||||||
|
example is a KVM guest that in turn runs on a KVM guest (the rest of
|
||||||
|
this document is built on this example)::
|
||||||
|
|
||||||
|
.----------------. .----------------.
|
||||||
|
| | | |
|
||||||
|
| L2 | | L2 |
|
||||||
|
| (Nested Guest) | | (Nested Guest) |
|
||||||
|
| | | |
|
||||||
|
|----------------'--'----------------|
|
||||||
|
| |
|
||||||
|
| L1 (Guest Hypervisor) |
|
||||||
|
| KVM (/dev/kvm) |
|
||||||
|
| |
|
||||||
|
.------------------------------------------------------.
|
||||||
|
| L0 (Host Hypervisor) |
|
||||||
|
| KVM (/dev/kvm) |
|
||||||
|
|------------------------------------------------------|
|
||||||
|
| Hardware (with virtualization extensions) |
|
||||||
|
'------------------------------------------------------'
|
||||||
|
|
||||||
|
Terminology:
|
||||||
|
|
||||||
|
- L0 – level-0; the bare metal host, running KVM
|
||||||
|
|
||||||
|
- L1 – level-1 guest; a VM running on L0; also called the "guest
|
||||||
|
hypervisor", as it itself is capable of running KVM.
|
||||||
|
|
||||||
|
- L2 – level-2 guest; a VM running on L1, this is the "nested guest"
|
||||||
|
|
||||||
|
.. note:: The above diagram is modelled after the x86 architecture;
|
||||||
|
s390x, ppc64 and other architectures are likely to have
|
||||||
|
a different design for nesting.
|
||||||
|
|
||||||
|
For example, s390x always has an LPAR (LogicalPARtition)
|
||||||
|
hypervisor running on bare metal, adding another layer and
|
||||||
|
resulting in at least four levels in a nested setup — L0 (bare
|
||||||
|
metal, running the LPAR hypervisor), L1 (host hypervisor), L2
|
||||||
|
(guest hypervisor), L3 (nested guest).
|
||||||
|
|
||||||
|
This document will stick with the three-level terminology (L0,
|
||||||
|
L1, and L2) for all architectures; and will largely focus on
|
||||||
|
x86.
|
||||||
|
|
||||||
|
|
||||||
|
Use Cases
|
||||||
|
---------
|
||||||
|
|
||||||
|
There are several scenarios where nested KVM can be useful, to name a
|
||||||
|
few:
|
||||||
|
|
||||||
|
- As a developer, you want to test your software on different operating
|
||||||
|
systems (OSes). Instead of renting multiple VMs from a Cloud
|
||||||
|
Provider, using nested KVM lets you rent a large enough "guest
|
||||||
|
hypervisor" (level-1 guest). This in turn allows you to create
|
||||||
|
multiple nested guests (level-2 guests), running different OSes, on
|
||||||
|
which you can develop and test your software.
|
||||||
|
|
||||||
|
- Live migration of "guest hypervisors" and their nested guests, for
|
||||||
|
load balancing, disaster recovery, etc.
|
||||||
|
|
||||||
|
- VM image creation tools (e.g. ``virt-install``, etc) often run
|
||||||
|
their own VM, and users expect these to work inside a VM.
|
||||||
|
|
||||||
|
- Some OSes use virtualization internally for security (e.g. to let
|
||||||
|
applications run safely in isolation).
|
||||||
|
|
||||||
|
|
||||||
|
Enabling "nested" (x86)
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
From Linux kernel v4.19 onwards, the ``nested`` KVM parameter is enabled
|
||||||
|
by default for Intel and AMD. (Though your Linux distribution might
|
||||||
|
override this default.)
|
||||||
|
|
||||||
|
In case you are running a Linux kernel older than v4.19, to enable
|
||||||
|
nesting, set the ``nested`` KVM module parameter to ``Y`` or ``1``. To
|
||||||
|
persist this setting across reboots, you can add it in a config file, as
|
||||||
|
shown below:
|
||||||
|
|
||||||
|
1. On the bare metal host (L0), list the kernel modules and ensure that
|
||||||
|
the KVM modules::
|
||||||
|
|
||||||
|
$ lsmod | grep -i kvm
|
||||||
|
kvm_intel 133627 0
|
||||||
|
kvm 435079 1 kvm_intel
|
||||||
|
|
||||||
|
2. Show information for ``kvm_intel`` module::
|
||||||
|
|
||||||
|
$ modinfo kvm_intel | grep -i nested
|
||||||
|
parm: nested:bool
|
||||||
|
|
||||||
|
3. For the nested KVM configuration to persist across reboots, place the
|
||||||
|
below in ``/etc/modprobed/kvm_intel.conf`` (create the file if it
|
||||||
|
doesn't exist)::
|
||||||
|
|
||||||
|
$ cat /etc/modprobe.d/kvm_intel.conf
|
||||||
|
options kvm-intel nested=y
|
||||||
|
|
||||||
|
4. Unload and re-load the KVM Intel module::
|
||||||
|
|
||||||
|
$ sudo rmmod kvm-intel
|
||||||
|
$ sudo modprobe kvm-intel
|
||||||
|
|
||||||
|
5. Verify if the ``nested`` parameter for KVM is enabled::
|
||||||
|
|
||||||
|
$ cat /sys/module/kvm_intel/parameters/nested
|
||||||
|
Y
|
||||||
|
|
||||||
|
For AMD hosts, the process is the same as above, except that the module
|
||||||
|
name is ``kvm-amd``.
|
||||||
|
|
||||||
|
|
||||||
|
Additional nested-related kernel parameters (x86)
|
||||||
|
-------------------------------------------------
|
||||||
|
|
||||||
|
If your hardware is sufficiently advanced (Intel Haswell processor or
|
||||||
|
higher, which has newer hardware virt extensions), the following
|
||||||
|
additional features will also be enabled by default: "Shadow VMCS
|
||||||
|
(Virtual Machine Control Structure)", APIC Virtualization on your bare
|
||||||
|
metal host (L0). Parameters for Intel hosts::
|
||||||
|
|
||||||
|
$ cat /sys/module/kvm_intel/parameters/enable_shadow_vmcs
|
||||||
|
Y
|
||||||
|
|
||||||
|
$ cat /sys/module/kvm_intel/parameters/enable_apicv
|
||||||
|
Y
|
||||||
|
|
||||||
|
$ cat /sys/module/kvm_intel/parameters/ept
|
||||||
|
Y
|
||||||
|
|
||||||
|
.. note:: If you suspect your L2 (i.e. nested guest) is running slower,
|
||||||
|
ensure the above are enabled (particularly
|
||||||
|
``enable_shadow_vmcs`` and ``ept``).
|
||||||
|
|
||||||
|
|
||||||
|
Starting a nested guest (x86)
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Once your bare metal host (L0) is configured for nesting, you should be
|
||||||
|
able to start an L1 guest with::
|
||||||
|
|
||||||
|
$ qemu-kvm -cpu host [...]
|
||||||
|
|
||||||
|
The above will pass through the host CPU's capabilities as-is to the
|
||||||
|
gues); or for better live migration compatibility, use a named CPU
|
||||||
|
model supported by QEMU. e.g.::
|
||||||
|
|
||||||
|
$ qemu-kvm -cpu Haswell-noTSX-IBRS,vmx=on
|
||||||
|
|
||||||
|
then the guest hypervisor will subsequently be capable of running a
|
||||||
|
nested guest with accelerated KVM.
|
||||||
|
|
||||||
|
|
||||||
|
Enabling "nested" (s390x)
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
1. On the host hypervisor (L0), enable the ``nested`` parameter on
|
||||||
|
s390x::
|
||||||
|
|
||||||
|
$ rmmod kvm
|
||||||
|
$ modprobe kvm nested=1
|
||||||
|
|
||||||
|
.. note:: On s390x, the kernel parameter ``hpage`` is mutually exclusive
|
||||||
|
with the ``nested`` paramter — i.e. to be able to enable
|
||||||
|
``nested``, the ``hpage`` parameter *must* be disabled.
|
||||||
|
|
||||||
|
2. The guest hypervisor (L1) must be provided with the ``sie`` CPU
|
||||||
|
feature — with QEMU, this can be done by using "host passthrough"
|
||||||
|
(via the command-line ``-cpu host``).
|
||||||
|
|
||||||
|
3. Now the KVM module can be loaded in the L1 (guest hypervisor)::
|
||||||
|
|
||||||
|
$ modprobe kvm
|
||||||
|
|
||||||
|
|
||||||
|
Live migration with nested KVM
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
Migrating an L1 guest, with a *live* nested guest in it, to another
|
||||||
|
bare metal host, works as of Linux kernel 5.3 and QEMU 4.2.0 for
|
||||||
|
Intel x86 systems, and even on older versions for s390x.
|
||||||
|
|
||||||
|
On AMD systems, once an L1 guest has started an L2 guest, the L1 guest
|
||||||
|
should no longer be migrated or saved (refer to QEMU documentation on
|
||||||
|
"savevm"/"loadvm") until the L2 guest shuts down. Attempting to migrate
|
||||||
|
or save-and-load an L1 guest while an L2 guest is running will result in
|
||||||
|
undefined behavior. You might see a ``kernel BUG!`` entry in ``dmesg``, a
|
||||||
|
kernel 'oops', or an outright kernel panic. Such a migrated or loaded L1
|
||||||
|
guest can no longer be considered stable or secure, and must be restarted.
|
||||||
|
Migrating an L1 guest merely configured to support nesting, while not
|
||||||
|
actually running L2 guests, is expected to function normally even on AMD
|
||||||
|
systems but may fail once guests are started.
|
||||||
|
|
||||||
|
Migrating an L2 guest is always expected to succeed, so all the following
|
||||||
|
scenarios should work even on AMD systems:
|
||||||
|
|
||||||
|
- Migrating a nested guest (L2) to another L1 guest on the *same* bare
|
||||||
|
metal host.
|
||||||
|
|
||||||
|
- Migrating a nested guest (L2) to another L1 guest on a *different*
|
||||||
|
bare metal host.
|
||||||
|
|
||||||
|
- Migrating a nested guest (L2) to a bare metal host.
|
||||||
|
|
||||||
|
Reporting bugs from nested setups
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
Debugging "nested" problems can involve sifting through log files across
|
||||||
|
L0, L1 and L2; this can result in tedious back-n-forth between the bug
|
||||||
|
reporter and the bug fixer.
|
||||||
|
|
||||||
|
- Mention that you are in a "nested" setup. If you are running any kind
|
||||||
|
of "nesting" at all, say so. Unfortunately, this needs to be called
|
||||||
|
out because when reporting bugs, people tend to forget to even
|
||||||
|
*mention* that they're using nested virtualization.
|
||||||
|
|
||||||
|
- Ensure you are actually running KVM on KVM. Sometimes people do not
|
||||||
|
have KVM enabled for their guest hypervisor (L1), which results in
|
||||||
|
them running with pure emulation or what QEMU calls it as "TCG", but
|
||||||
|
they think they're running nested KVM. Thus confusing "nested Virt"
|
||||||
|
(which could also mean, QEMU on KVM) with "nested KVM" (KVM on KVM).
|
||||||
|
|
||||||
|
Information to collect (generic)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
The following is not an exhaustive list, but a very good starting point:
|
||||||
|
|
||||||
|
- Kernel, libvirt, and QEMU version from L0
|
||||||
|
|
||||||
|
- Kernel, libvirt and QEMU version from L1
|
||||||
|
|
||||||
|
- QEMU command-line of L1 -- when using libvirt, you'll find it here:
|
||||||
|
``/var/log/libvirt/qemu/instance.log``
|
||||||
|
|
||||||
|
- QEMU command-line of L2 -- as above, when using libvirt, get the
|
||||||
|
complete libvirt-generated QEMU command-line
|
||||||
|
|
||||||
|
- ``cat /sys/cpuinfo`` from L0
|
||||||
|
|
||||||
|
- ``cat /sys/cpuinfo`` from L1
|
||||||
|
|
||||||
|
- ``lscpu`` from L0
|
||||||
|
|
||||||
|
- ``lscpu`` from L1
|
||||||
|
|
||||||
|
- Full ``dmesg`` output from L0
|
||||||
|
|
||||||
|
- Full ``dmesg`` output from L1
|
||||||
|
|
||||||
|
x86-specific info to collect
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Both the below commands, ``x86info`` and ``dmidecode``, should be
|
||||||
|
available on most Linux distributions with the same name:
|
||||||
|
|
||||||
|
- Output of: ``x86info -a`` from L0
|
||||||
|
|
||||||
|
- Output of: ``x86info -a`` from L1
|
||||||
|
|
||||||
|
- Output of: ``dmidecode`` from L0
|
||||||
|
|
||||||
|
- Output of: ``dmidecode`` from L1
|
||||||
|
|
||||||
|
s390x-specific info to collect
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Along with the earlier mentioned generic details, the below is
|
||||||
|
also recommended:
|
||||||
|
|
||||||
|
- ``/proc/sysinfo`` from L1; this will also include the info from L0
|
@ -1399,8 +1399,8 @@ must have read/write permission; CS must be __BOOT_CS and DS, ES, SS
|
|||||||
must be __BOOT_DS; interrupt must be disabled; %rsi must hold the base
|
must be __BOOT_DS; interrupt must be disabled; %rsi must hold the base
|
||||||
address of the struct boot_params.
|
address of the struct boot_params.
|
||||||
|
|
||||||
EFI Handover Protocol
|
EFI Handover Protocol (deprecated)
|
||||||
=====================
|
==================================
|
||||||
|
|
||||||
This protocol allows boot loaders to defer initialisation to the EFI
|
This protocol allows boot loaders to defer initialisation to the EFI
|
||||||
boot stub. The boot loader is required to load the kernel/initrd(s)
|
boot stub. The boot loader is required to load the kernel/initrd(s)
|
||||||
@ -1408,6 +1408,12 @@ from the boot media and jump to the EFI handover protocol entry point
|
|||||||
which is hdr->handover_offset bytes from the beginning of
|
which is hdr->handover_offset bytes from the beginning of
|
||||||
startup_{32,64}.
|
startup_{32,64}.
|
||||||
|
|
||||||
|
The boot loader MUST respect the kernel's PE/COFF metadata when it comes
|
||||||
|
to section alignment, the memory footprint of the executable image beyond
|
||||||
|
the size of the file itself, and any other aspect of the PE/COFF header
|
||||||
|
that may affect correct operation of the image as a PE/COFF binary in the
|
||||||
|
execution context provided by the EFI firmware.
|
||||||
|
|
||||||
The function prototype for the handover entry point looks like this::
|
The function prototype for the handover entry point looks like this::
|
||||||
|
|
||||||
efi_main(void *handle, efi_system_table_t *table, struct boot_params *bp)
|
efi_main(void *handle, efi_system_table_t *table, struct boot_params *bp)
|
||||||
@ -1419,9 +1425,18 @@ UEFI specification. 'bp' is the boot loader-allocated boot params.
|
|||||||
|
|
||||||
The boot loader *must* fill out the following fields in bp::
|
The boot loader *must* fill out the following fields in bp::
|
||||||
|
|
||||||
- hdr.code32_start
|
|
||||||
- hdr.cmd_line_ptr
|
- hdr.cmd_line_ptr
|
||||||
- hdr.ramdisk_image (if applicable)
|
- hdr.ramdisk_image (if applicable)
|
||||||
- hdr.ramdisk_size (if applicable)
|
- hdr.ramdisk_size (if applicable)
|
||||||
|
|
||||||
All other fields should be zero.
|
All other fields should be zero.
|
||||||
|
|
||||||
|
NOTE: The EFI Handover Protocol is deprecated in favour of the ordinary PE/COFF
|
||||||
|
entry point, combined with the LINUX_EFI_INITRD_MEDIA_GUID based initrd
|
||||||
|
loading protocol (refer to [0] for an example of the bootloader side of
|
||||||
|
this), which removes the need for any knowledge on the part of the EFI
|
||||||
|
bootloader regarding the internal representation of boot_params or any
|
||||||
|
requirements/limitations regarding the placement of the command line
|
||||||
|
and ramdisk in memory, or the placement of the kernel image itself.
|
||||||
|
|
||||||
|
[0] https://github.com/u-boot/u-boot/commit/ec80b4735a593961fe701cc3a5d717d4739b0fd0
|
||||||
|
102
MAINTAINERS
102
MAINTAINERS
@ -189,7 +189,7 @@ F: drivers/net/hamradio/6pack.c
|
|||||||
M: Johannes Berg <johannes@sipsolutions.net>
|
M: Johannes Berg <johannes@sipsolutions.net>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
W: http://wireless.kernel.org/
|
W: https://wireless.wiki.kernel.org/
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
|
||||||
F: Documentation/driver-api/80211/cfg80211.rst
|
F: Documentation/driver-api/80211/cfg80211.rst
|
||||||
@ -505,7 +505,7 @@ F: drivers/hwmon/adm1029.c
|
|||||||
ADM8211 WIRELESS DRIVER
|
ADM8211 WIRELESS DRIVER
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Orphan
|
S: Orphan
|
||||||
W: http://wireless.kernel.org/
|
W: https://wireless.wiki.kernel.org/
|
||||||
F: drivers/net/wireless/admtek/adm8211.*
|
F: drivers/net/wireless/admtek/adm8211.*
|
||||||
|
|
||||||
ADP1653 FLASH CONTROLLER DRIVER
|
ADP1653 FLASH CONTROLLER DRIVER
|
||||||
@ -570,7 +570,7 @@ F: Documentation/devicetree/bindings/iio/accel/adi,adxl345.yaml
|
|||||||
F: drivers/input/misc/adxl34x.c
|
F: drivers/input/misc/adxl34x.c
|
||||||
|
|
||||||
ADXL372 THREE-AXIS DIGITAL ACCELEROMETER DRIVER
|
ADXL372 THREE-AXIS DIGITAL ACCELEROMETER DRIVER
|
||||||
M: Stefan Popa <stefan.popa@analog.com>
|
M: Michael Hennerich <michael.hennerich@analog.com>
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://ez.analog.com/community/linux-device-drivers
|
W: http://ez.analog.com/community/linux-device-drivers
|
||||||
F: Documentation/devicetree/bindings/iio/accel/adi,adxl372.yaml
|
F: Documentation/devicetree/bindings/iio/accel/adi,adxl372.yaml
|
||||||
@ -922,7 +922,7 @@ F: arch/arm64/boot/dts/amd/amd-seattle-xgbe*.dtsi
|
|||||||
F: drivers/net/ethernet/amd/xgbe/
|
F: drivers/net/ethernet/amd/xgbe/
|
||||||
|
|
||||||
ANALOG DEVICES INC AD5686 DRIVER
|
ANALOG DEVICES INC AD5686 DRIVER
|
||||||
M: Stefan Popa <stefan.popa@analog.com>
|
M: Michael Hennerich <Michael.Hennerich@analog.com>
|
||||||
L: linux-pm@vger.kernel.org
|
L: linux-pm@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://ez.analog.com/community/linux-device-drivers
|
W: http://ez.analog.com/community/linux-device-drivers
|
||||||
@ -930,7 +930,7 @@ F: drivers/iio/dac/ad5686*
|
|||||||
F: drivers/iio/dac/ad5696*
|
F: drivers/iio/dac/ad5696*
|
||||||
|
|
||||||
ANALOG DEVICES INC AD5758 DRIVER
|
ANALOG DEVICES INC AD5758 DRIVER
|
||||||
M: Stefan Popa <stefan.popa@analog.com>
|
M: Michael Hennerich <Michael.Hennerich@analog.com>
|
||||||
L: linux-iio@vger.kernel.org
|
L: linux-iio@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://ez.analog.com/community/linux-device-drivers
|
W: http://ez.analog.com/community/linux-device-drivers
|
||||||
@ -946,7 +946,7 @@ F: Documentation/devicetree/bindings/iio/adc/adi,ad7091r5.yaml
|
|||||||
F: drivers/iio/adc/ad7091r5.c
|
F: drivers/iio/adc/ad7091r5.c
|
||||||
|
|
||||||
ANALOG DEVICES INC AD7124 DRIVER
|
ANALOG DEVICES INC AD7124 DRIVER
|
||||||
M: Stefan Popa <stefan.popa@analog.com>
|
M: Michael Hennerich <Michael.Hennerich@analog.com>
|
||||||
L: linux-iio@vger.kernel.org
|
L: linux-iio@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://ez.analog.com/community/linux-device-drivers
|
W: http://ez.analog.com/community/linux-device-drivers
|
||||||
@ -970,7 +970,7 @@ F: Documentation/devicetree/bindings/iio/adc/adi,ad7292.yaml
|
|||||||
F: drivers/iio/adc/ad7292.c
|
F: drivers/iio/adc/ad7292.c
|
||||||
|
|
||||||
ANALOG DEVICES INC AD7606 DRIVER
|
ANALOG DEVICES INC AD7606 DRIVER
|
||||||
M: Stefan Popa <stefan.popa@analog.com>
|
M: Michael Hennerich <Michael.Hennerich@analog.com>
|
||||||
M: Beniamin Bia <beniamin.bia@analog.com>
|
M: Beniamin Bia <beniamin.bia@analog.com>
|
||||||
L: linux-iio@vger.kernel.org
|
L: linux-iio@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
@ -979,7 +979,7 @@ F: Documentation/devicetree/bindings/iio/adc/adi,ad7606.yaml
|
|||||||
F: drivers/iio/adc/ad7606.c
|
F: drivers/iio/adc/ad7606.c
|
||||||
|
|
||||||
ANALOG DEVICES INC AD7768-1 DRIVER
|
ANALOG DEVICES INC AD7768-1 DRIVER
|
||||||
M: Stefan Popa <stefan.popa@analog.com>
|
M: Michael Hennerich <Michael.Hennerich@analog.com>
|
||||||
L: linux-iio@vger.kernel.org
|
L: linux-iio@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://ez.analog.com/community/linux-device-drivers
|
W: http://ez.analog.com/community/linux-device-drivers
|
||||||
@ -1040,7 +1040,7 @@ F: Documentation/devicetree/bindings/hwmon/adi,adm1177.yaml
|
|||||||
F: drivers/hwmon/adm1177.c
|
F: drivers/hwmon/adm1177.c
|
||||||
|
|
||||||
ANALOG DEVICES INC ADP5061 DRIVER
|
ANALOG DEVICES INC ADP5061 DRIVER
|
||||||
M: Stefan Popa <stefan.popa@analog.com>
|
M: Michael Hennerich <Michael.Hennerich@analog.com>
|
||||||
L: linux-pm@vger.kernel.org
|
L: linux-pm@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://ez.analog.com/community/linux-device-drivers
|
W: http://ez.analog.com/community/linux-device-drivers
|
||||||
@ -1109,7 +1109,6 @@ F: drivers/iio/amplifiers/hmc425a.c
|
|||||||
ANALOG DEVICES INC IIO DRIVERS
|
ANALOG DEVICES INC IIO DRIVERS
|
||||||
M: Lars-Peter Clausen <lars@metafoo.de>
|
M: Lars-Peter Clausen <lars@metafoo.de>
|
||||||
M: Michael Hennerich <Michael.Hennerich@analog.com>
|
M: Michael Hennerich <Michael.Hennerich@analog.com>
|
||||||
M: Stefan Popa <stefan.popa@analog.com>
|
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://wiki.analog.com/
|
W: http://wiki.analog.com/
|
||||||
W: http://ez.analog.com/community/linux-device-drivers
|
W: http://ez.analog.com/community/linux-device-drivers
|
||||||
@ -1323,7 +1322,10 @@ ARM INTEGRATOR, VERSATILE AND REALVIEW SUPPORT
|
|||||||
M: Linus Walleij <linus.walleij@linaro.org>
|
M: Linus Walleij <linus.walleij@linaro.org>
|
||||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/arm/arm-boards
|
F: Documentation/devicetree/bindings/arm/arm,integrator.yaml
|
||||||
|
F: Documentation/devicetree/bindings/arm/arm,realview.yaml
|
||||||
|
F: Documentation/devicetree/bindings/arm/arm,versatile.yaml
|
||||||
|
F: Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml
|
||||||
F: Documentation/devicetree/bindings/auxdisplay/arm-charlcd.txt
|
F: Documentation/devicetree/bindings/auxdisplay/arm-charlcd.txt
|
||||||
F: Documentation/devicetree/bindings/clock/arm,syscon-icst.yaml
|
F: Documentation/devicetree/bindings/clock/arm,syscon-icst.yaml
|
||||||
F: Documentation/devicetree/bindings/i2c/i2c-versatile.txt
|
F: Documentation/devicetree/bindings/i2c/i2c-versatile.txt
|
||||||
@ -2847,14 +2849,14 @@ M: Nick Kossifidis <mickflemm@gmail.com>
|
|||||||
M: Luis Chamberlain <mcgrof@kernel.org>
|
M: Luis Chamberlain <mcgrof@kernel.org>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/ath5k
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath5k
|
||||||
F: drivers/net/wireless/ath/ath5k/
|
F: drivers/net/wireless/ath/ath5k/
|
||||||
|
|
||||||
ATHEROS ATH6KL WIRELESS DRIVER
|
ATHEROS ATH6KL WIRELESS DRIVER
|
||||||
M: Kalle Valo <kvalo@codeaurora.org>
|
M: Kalle Valo <kvalo@codeaurora.org>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/ath6kl
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath6kl
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
|
||||||
F: drivers/net/wireless/ath/ath6kl/
|
F: drivers/net/wireless/ath/ath6kl/
|
||||||
|
|
||||||
@ -3017,7 +3019,7 @@ B43 WIRELESS DRIVER
|
|||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
L: b43-dev@lists.infradead.org
|
L: b43-dev@lists.infradead.org
|
||||||
S: Odd Fixes
|
S: Odd Fixes
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/b43
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/b43
|
||||||
F: drivers/net/wireless/broadcom/b43/
|
F: drivers/net/wireless/broadcom/b43/
|
||||||
|
|
||||||
B43LEGACY WIRELESS DRIVER
|
B43LEGACY WIRELESS DRIVER
|
||||||
@ -3025,7 +3027,7 @@ M: Larry Finger <Larry.Finger@lwfinger.net>
|
|||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
L: b43-dev@lists.infradead.org
|
L: b43-dev@lists.infradead.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/b43
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/b43
|
||||||
F: drivers/net/wireless/broadcom/b43legacy/
|
F: drivers/net/wireless/broadcom/b43legacy/
|
||||||
|
|
||||||
BACKLIGHT CLASS/SUBSYSTEM
|
BACKLIGHT CLASS/SUBSYSTEM
|
||||||
@ -3655,7 +3657,7 @@ L: linux-btrfs@vger.kernel.org
|
|||||||
S: Maintained
|
S: Maintained
|
||||||
W: http://btrfs.wiki.kernel.org/
|
W: http://btrfs.wiki.kernel.org/
|
||||||
Q: http://patchwork.kernel.org/project/linux-btrfs/list/
|
Q: http://patchwork.kernel.org/project/linux-btrfs/list/
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git
|
||||||
F: Documentation/filesystems/btrfs.rst
|
F: Documentation/filesystems/btrfs.rst
|
||||||
F: fs/btrfs/
|
F: fs/btrfs/
|
||||||
F: include/linux/btrfs*
|
F: include/linux/btrfs*
|
||||||
@ -3840,7 +3842,7 @@ CARL9170 LINUX COMMUNITY WIRELESS DRIVER
|
|||||||
M: Christian Lamparter <chunkeey@googlemail.com>
|
M: Christian Lamparter <chunkeey@googlemail.com>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/carl9170
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/carl9170
|
||||||
F: drivers/net/wireless/ath/carl9170/
|
F: drivers/net/wireless/ath/carl9170/
|
||||||
|
|
||||||
CAVIUM I2C DRIVER
|
CAVIUM I2C DRIVER
|
||||||
@ -3934,11 +3936,9 @@ F: arch/powerpc/platforms/cell/
|
|||||||
CEPH COMMON CODE (LIBCEPH)
|
CEPH COMMON CODE (LIBCEPH)
|
||||||
M: Ilya Dryomov <idryomov@gmail.com>
|
M: Ilya Dryomov <idryomov@gmail.com>
|
||||||
M: Jeff Layton <jlayton@kernel.org>
|
M: Jeff Layton <jlayton@kernel.org>
|
||||||
M: Sage Weil <sage@redhat.com>
|
|
||||||
L: ceph-devel@vger.kernel.org
|
L: ceph-devel@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://ceph.com/
|
W: http://ceph.com/
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client.git
|
|
||||||
T: git git://github.com/ceph/ceph-client.git
|
T: git git://github.com/ceph/ceph-client.git
|
||||||
F: include/linux/ceph/
|
F: include/linux/ceph/
|
||||||
F: include/linux/crush/
|
F: include/linux/crush/
|
||||||
@ -3946,12 +3946,10 @@ F: net/ceph/
|
|||||||
|
|
||||||
CEPH DISTRIBUTED FILE SYSTEM CLIENT (CEPH)
|
CEPH DISTRIBUTED FILE SYSTEM CLIENT (CEPH)
|
||||||
M: Jeff Layton <jlayton@kernel.org>
|
M: Jeff Layton <jlayton@kernel.org>
|
||||||
M: Sage Weil <sage@redhat.com>
|
|
||||||
M: Ilya Dryomov <idryomov@gmail.com>
|
M: Ilya Dryomov <idryomov@gmail.com>
|
||||||
L: ceph-devel@vger.kernel.org
|
L: ceph-devel@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://ceph.com/
|
W: http://ceph.com/
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client.git
|
|
||||||
T: git git://github.com/ceph/ceph-client.git
|
T: git git://github.com/ceph/ceph-client.git
|
||||||
F: Documentation/filesystems/ceph.rst
|
F: Documentation/filesystems/ceph.rst
|
||||||
F: fs/ceph/
|
F: fs/ceph/
|
||||||
@ -5173,6 +5171,7 @@ S: Maintained
|
|||||||
F: drivers/soc/fsl/dpio
|
F: drivers/soc/fsl/dpio
|
||||||
|
|
||||||
DPAA2 ETHERNET DRIVER
|
DPAA2 ETHERNET DRIVER
|
||||||
|
M: Ioana Ciornei <ioana.ciornei@nxp.com>
|
||||||
M: Ioana Radulescu <ruxandra.radulescu@nxp.com>
|
M: Ioana Radulescu <ruxandra.radulescu@nxp.com>
|
||||||
L: netdev@vger.kernel.org
|
L: netdev@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
@ -5552,7 +5551,7 @@ M: Chen-Yu Tsai <wens@csie.org>
|
|||||||
L: dri-devel@lists.freedesktop.org
|
L: dri-devel@lists.freedesktop.org
|
||||||
S: Supported
|
S: Supported
|
||||||
T: git git://anongit.freedesktop.org/drm/drm-misc
|
T: git git://anongit.freedesktop.org/drm/drm-misc
|
||||||
F: Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt
|
F: Documentation/devicetree/bindings/display/allwinner*
|
||||||
F: drivers/gpu/drm/sun4i/
|
F: drivers/gpu/drm/sun4i/
|
||||||
|
|
||||||
DRM DRIVERS FOR AMLOGIC SOCS
|
DRM DRIVERS FOR AMLOGIC SOCS
|
||||||
@ -5932,6 +5931,7 @@ F: lib/dynamic_debug.c
|
|||||||
DYNAMIC INTERRUPT MODERATION
|
DYNAMIC INTERRUPT MODERATION
|
||||||
M: Tal Gilboa <talgi@mellanox.com>
|
M: Tal Gilboa <talgi@mellanox.com>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
F: Documentation/networking/net_dim.rst
|
||||||
F: include/linux/dim.h
|
F: include/linux/dim.h
|
||||||
F: lib/dim/
|
F: lib/dim/
|
||||||
|
|
||||||
@ -7115,9 +7115,10 @@ F: include/uapi/asm-generic/
|
|||||||
|
|
||||||
GENERIC PHY FRAMEWORK
|
GENERIC PHY FRAMEWORK
|
||||||
M: Kishon Vijay Abraham I <kishon@ti.com>
|
M: Kishon Vijay Abraham I <kishon@ti.com>
|
||||||
|
M: Vinod Koul <vkoul@kernel.org>
|
||||||
L: linux-kernel@vger.kernel.org
|
L: linux-kernel@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy.git
|
||||||
F: Documentation/devicetree/bindings/phy/
|
F: Documentation/devicetree/bindings/phy/
|
||||||
F: drivers/phy/
|
F: drivers/phy/
|
||||||
F: include/linux/phy/
|
F: include/linux/phy/
|
||||||
@ -7742,11 +7743,6 @@ L: platform-driver-x86@vger.kernel.org
|
|||||||
S: Orphan
|
S: Orphan
|
||||||
F: drivers/platform/x86/tc1100-wmi.c
|
F: drivers/platform/x86/tc1100-wmi.c
|
||||||
|
|
||||||
HP100: Driver for HP 10/100 Mbit/s Voice Grade Network Adapter Series
|
|
||||||
M: Jaroslav Kysela <perex@perex.cz>
|
|
||||||
S: Obsolete
|
|
||||||
F: drivers/staging/hp/hp100.*
|
|
||||||
|
|
||||||
HPET: High Precision Event Timers driver
|
HPET: High Precision Event Timers driver
|
||||||
M: Clemens Ladisch <clemens@ladisch.de>
|
M: Clemens Ladisch <clemens@ladisch.de>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
@ -9325,6 +9321,7 @@ M: Christian Borntraeger <borntraeger@de.ibm.com>
|
|||||||
M: Janosch Frank <frankja@linux.ibm.com>
|
M: Janosch Frank <frankja@linux.ibm.com>
|
||||||
R: David Hildenbrand <david@redhat.com>
|
R: David Hildenbrand <david@redhat.com>
|
||||||
R: Cornelia Huck <cohuck@redhat.com>
|
R: Cornelia Huck <cohuck@redhat.com>
|
||||||
|
R: Claudio Imbrenda <imbrenda@linux.ibm.com>
|
||||||
L: kvm@vger.kernel.org
|
L: kvm@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://www.ibm.com/developerworks/linux/linux390/
|
W: http://www.ibm.com/developerworks/linux/linux390/
|
||||||
@ -9412,6 +9409,13 @@ F: include/linux/keyctl.h
|
|||||||
F: include/uapi/linux/keyctl.h
|
F: include/uapi/linux/keyctl.h
|
||||||
F: security/keys/
|
F: security/keys/
|
||||||
|
|
||||||
|
KFIFO
|
||||||
|
M: Stefani Seibold <stefani@seibold.net>
|
||||||
|
S: Maintained
|
||||||
|
F: include/linux/kfifo.h
|
||||||
|
F: lib/kfifo.c
|
||||||
|
F: samples/kfifo/
|
||||||
|
|
||||||
KGDB / KDB /debug_core
|
KGDB / KDB /debug_core
|
||||||
M: Jason Wessel <jason.wessel@windriver.com>
|
M: Jason Wessel <jason.wessel@windriver.com>
|
||||||
M: Daniel Thompson <daniel.thompson@linaro.org>
|
M: Daniel Thompson <daniel.thompson@linaro.org>
|
||||||
@ -10063,7 +10067,7 @@ MAC80211
|
|||||||
M: Johannes Berg <johannes@sipsolutions.net>
|
M: Johannes Berg <johannes@sipsolutions.net>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
W: http://wireless.kernel.org/
|
W: https://wireless.wiki.kernel.org/
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
|
||||||
F: Documentation/networking/mac80211-injection.txt
|
F: Documentation/networking/mac80211-injection.txt
|
||||||
@ -10693,7 +10697,6 @@ MEDIATEK MT76 WIRELESS LAN DRIVER
|
|||||||
M: Felix Fietkau <nbd@nbd.name>
|
M: Felix Fietkau <nbd@nbd.name>
|
||||||
M: Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
|
M: Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
|
||||||
R: Ryder Lee <ryder.lee@mediatek.com>
|
R: Ryder Lee <ryder.lee@mediatek.com>
|
||||||
R: Roy Luo <royluo@google.com>
|
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: drivers/net/wireless/mediatek/mt76/
|
F: drivers/net/wireless/mediatek/mt76/
|
||||||
@ -11707,8 +11710,9 @@ F: net/core/drop_monitor.c
|
|||||||
|
|
||||||
NETWORKING DRIVERS
|
NETWORKING DRIVERS
|
||||||
M: "David S. Miller" <davem@davemloft.net>
|
M: "David S. Miller" <davem@davemloft.net>
|
||||||
|
M: Jakub Kicinski <kuba@kernel.org>
|
||||||
L: netdev@vger.kernel.org
|
L: netdev@vger.kernel.org
|
||||||
S: Odd Fixes
|
S: Maintained
|
||||||
W: http://www.linuxfoundation.org/en/Net
|
W: http://www.linuxfoundation.org/en/Net
|
||||||
Q: http://patchwork.ozlabs.org/project/netdev/list/
|
Q: http://patchwork.ozlabs.org/project/netdev/list/
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
|
||||||
@ -12644,7 +12648,7 @@ F: fs/orangefs/
|
|||||||
ORINOCO DRIVER
|
ORINOCO DRIVER
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Orphan
|
S: Orphan
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/orinoco
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/orinoco
|
||||||
W: http://www.nongnu.org/orinoco/
|
W: http://www.nongnu.org/orinoco/
|
||||||
F: drivers/net/wireless/intersil/orinoco/
|
F: drivers/net/wireless/intersil/orinoco/
|
||||||
|
|
||||||
@ -12670,7 +12674,7 @@ P54 WIRELESS DRIVER
|
|||||||
M: Christian Lamparter <chunkeey@googlemail.com>
|
M: Christian Lamparter <chunkeey@googlemail.com>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/p54
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/p54
|
||||||
F: drivers/net/wireless/intersil/p54/
|
F: drivers/net/wireless/intersil/p54/
|
||||||
|
|
||||||
PACKING
|
PACKING
|
||||||
@ -13038,7 +13042,7 @@ F: drivers/pci/controller/pci-xgene-msi.c
|
|||||||
|
|
||||||
PCI NATIVE HOST BRIDGE AND ENDPOINT DRIVERS
|
PCI NATIVE HOST BRIDGE AND ENDPOINT DRIVERS
|
||||||
M: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
M: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||||
R: Andrew Murray <amurray@thegoodpenguin.co.uk>
|
R: Rob Herring <robh@kernel.org>
|
||||||
L: linux-pci@vger.kernel.org
|
L: linux-pci@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
Q: http://patchwork.ozlabs.org/project/linux-pci/list/
|
Q: http://patchwork.ozlabs.org/project/linux-pci/list/
|
||||||
@ -13591,7 +13595,7 @@ PRISM54 WIRELESS DRIVER
|
|||||||
M: Luis Chamberlain <mcgrof@kernel.org>
|
M: Luis Chamberlain <mcgrof@kernel.org>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Obsolete
|
S: Obsolete
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/p54
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/p54
|
||||||
F: drivers/net/wireless/intersil/prism54/
|
F: drivers/net/wireless/intersil/prism54/
|
||||||
|
|
||||||
PROC FILESYSTEM
|
PROC FILESYSTEM
|
||||||
@ -13853,7 +13857,8 @@ S: Maintained
|
|||||||
F: drivers/scsi/qla1280.[ch]
|
F: drivers/scsi/qla1280.[ch]
|
||||||
|
|
||||||
QLOGIC QLA2XXX FC-SCSI DRIVER
|
QLOGIC QLA2XXX FC-SCSI DRIVER
|
||||||
M: hmadhani@marvell.com
|
M: Nilesh Javali <njavali@marvell.com>
|
||||||
|
M: GR-QLogic-Storage-Upstream@marvell.com
|
||||||
L: linux-scsi@vger.kernel.org
|
L: linux-scsi@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
F: Documentation/scsi/LICENSE.qla2xxx
|
F: Documentation/scsi/LICENSE.qla2xxx
|
||||||
@ -13931,7 +13936,7 @@ QUALCOMM ATHEROS ATH10K WIRELESS DRIVER
|
|||||||
M: Kalle Valo <kvalo@codeaurora.org>
|
M: Kalle Valo <kvalo@codeaurora.org>
|
||||||
L: ath10k@lists.infradead.org
|
L: ath10k@lists.infradead.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/ath10k
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath10k
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
|
||||||
F: drivers/net/wireless/ath/ath10k/
|
F: drivers/net/wireless/ath/ath10k/
|
||||||
|
|
||||||
@ -13946,7 +13951,7 @@ QUALCOMM ATHEROS ATH9K WIRELESS DRIVER
|
|||||||
M: QCA ath9k Development <ath9k-devel@qca.qualcomm.com>
|
M: QCA ath9k Development <ath9k-devel@qca.qualcomm.com>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/ath9k
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath9k
|
||||||
F: drivers/net/wireless/ath/ath9k/
|
F: drivers/net/wireless/ath/ath9k/
|
||||||
|
|
||||||
QUALCOMM CAMERA SUBSYSTEM DRIVER
|
QUALCOMM CAMERA SUBSYSTEM DRIVER
|
||||||
@ -14043,13 +14048,12 @@ QUALCOMM WCN36XX WIRELESS DRIVER
|
|||||||
M: Kalle Valo <kvalo@codeaurora.org>
|
M: Kalle Valo <kvalo@codeaurora.org>
|
||||||
L: wcn36xx@lists.infradead.org
|
L: wcn36xx@lists.infradead.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/wcn36xx
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/wcn36xx
|
||||||
T: git git://github.com/KrasnikovEugene/wcn36xx.git
|
T: git git://github.com/KrasnikovEugene/wcn36xx.git
|
||||||
F: drivers/net/wireless/ath/wcn36xx/
|
F: drivers/net/wireless/ath/wcn36xx/
|
||||||
|
|
||||||
QUANTENNA QTNFMAC WIRELESS DRIVER
|
QUANTENNA QTNFMAC WIRELESS DRIVER
|
||||||
M: Igor Mitsyanko <imitsyanko@quantenna.com>
|
M: Igor Mitsyanko <imitsyanko@quantenna.com>
|
||||||
M: Avinash Patil <avinashp@quantenna.com>
|
|
||||||
M: Sergey Matyukevich <smatyukevich@quantenna.com>
|
M: Sergey Matyukevich <smatyukevich@quantenna.com>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
@ -14091,12 +14095,10 @@ F: drivers/media/radio/radio-tea5777.c
|
|||||||
|
|
||||||
RADOS BLOCK DEVICE (RBD)
|
RADOS BLOCK DEVICE (RBD)
|
||||||
M: Ilya Dryomov <idryomov@gmail.com>
|
M: Ilya Dryomov <idryomov@gmail.com>
|
||||||
M: Sage Weil <sage@redhat.com>
|
|
||||||
R: Dongsheng Yang <dongsheng.yang@easystack.cn>
|
R: Dongsheng Yang <dongsheng.yang@easystack.cn>
|
||||||
L: ceph-devel@vger.kernel.org
|
L: ceph-devel@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://ceph.com/
|
W: http://ceph.com/
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client.git
|
|
||||||
T: git git://github.com/ceph/ceph-client.git
|
T: git git://github.com/ceph/ceph-client.git
|
||||||
F: Documentation/ABI/testing/sysfs-bus-rbd
|
F: Documentation/ABI/testing/sysfs-bus-rbd
|
||||||
F: drivers/block/rbd.c
|
F: drivers/block/rbd.c
|
||||||
@ -14271,7 +14273,7 @@ REALTEK WIRELESS DRIVER (rtlwifi family)
|
|||||||
M: Ping-Ke Shih <pkshih@realtek.com>
|
M: Ping-Ke Shih <pkshih@realtek.com>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
W: http://wireless.kernel.org/
|
W: https://wireless.wiki.kernel.org/
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
|
||||||
F: drivers/net/wireless/realtek/rtlwifi/
|
F: drivers/net/wireless/realtek/rtlwifi/
|
||||||
|
|
||||||
@ -14406,7 +14408,7 @@ RFKILL
|
|||||||
M: Johannes Berg <johannes@sipsolutions.net>
|
M: Johannes Berg <johannes@sipsolutions.net>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
W: http://wireless.kernel.org/
|
W: https://wireless.wiki.kernel.org/
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
|
||||||
F: Documentation/ABI/stable/sysfs-class-rfkill
|
F: Documentation/ABI/stable/sysfs-class-rfkill
|
||||||
@ -14562,7 +14564,7 @@ F: drivers/media/dvb-frontends/rtl2832_sdr*
|
|||||||
RTL8180 WIRELESS DRIVER
|
RTL8180 WIRELESS DRIVER
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Orphan
|
S: Orphan
|
||||||
W: http://wireless.kernel.org/
|
W: https://wireless.wiki.kernel.org/
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
|
||||||
F: drivers/net/wireless/realtek/rtl818x/rtl8180/
|
F: drivers/net/wireless/realtek/rtl818x/rtl8180/
|
||||||
|
|
||||||
@ -14572,7 +14574,7 @@ M: Hin-Tak Leung <htl10@users.sourceforge.net>
|
|||||||
M: Larry Finger <Larry.Finger@lwfinger.net>
|
M: Larry Finger <Larry.Finger@lwfinger.net>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
W: http://wireless.kernel.org/
|
W: https://wireless.wiki.kernel.org/
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
|
||||||
F: drivers/net/wireless/realtek/rtl818x/rtl8187/
|
F: drivers/net/wireless/realtek/rtl818x/rtl8187/
|
||||||
|
|
||||||
@ -14647,6 +14649,7 @@ F: drivers/iommu/s390-iommu.c
|
|||||||
|
|
||||||
S390 IUCV NETWORK LAYER
|
S390 IUCV NETWORK LAYER
|
||||||
M: Julian Wiedmann <jwi@linux.ibm.com>
|
M: Julian Wiedmann <jwi@linux.ibm.com>
|
||||||
|
M: Karsten Graul <kgraul@linux.ibm.com>
|
||||||
M: Ursula Braun <ubraun@linux.ibm.com>
|
M: Ursula Braun <ubraun@linux.ibm.com>
|
||||||
L: linux-s390@vger.kernel.org
|
L: linux-s390@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
@ -14657,6 +14660,7 @@ F: net/iucv/
|
|||||||
|
|
||||||
S390 NETWORK DRIVERS
|
S390 NETWORK DRIVERS
|
||||||
M: Julian Wiedmann <jwi@linux.ibm.com>
|
M: Julian Wiedmann <jwi@linux.ibm.com>
|
||||||
|
M: Karsten Graul <kgraul@linux.ibm.com>
|
||||||
M: Ursula Braun <ubraun@linux.ibm.com>
|
M: Ursula Braun <ubraun@linux.ibm.com>
|
||||||
L: linux-s390@vger.kernel.org
|
L: linux-s390@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
@ -16934,8 +16938,8 @@ F: drivers/media/platform/ti-vpe/
|
|||||||
TI WILINK WIRELESS DRIVERS
|
TI WILINK WIRELESS DRIVERS
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Orphan
|
S: Orphan
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/wl12xx
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/wl12xx
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/wl1251
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/wl1251
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx.git
|
||||||
F: drivers/net/wireless/ti/
|
F: drivers/net/wireless/ti/
|
||||||
F: include/linux/wl12xx.h
|
F: include/linux/wl12xx.h
|
||||||
@ -18217,7 +18221,7 @@ M: Maya Erez <merez@codeaurora.org>
|
|||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
L: wil6210@qti.qualcomm.com
|
L: wil6210@qti.qualcomm.com
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://wireless.kernel.org/en/users/Drivers/wil6210
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/wil6210
|
||||||
F: drivers/net/wireless/ath/wil6210/
|
F: drivers/net/wireless/ath/wil6210/
|
||||||
|
|
||||||
WIMAX STACK
|
WIMAX STACK
|
||||||
|
17
Makefile
17
Makefile
@ -2,7 +2,7 @@
|
|||||||
VERSION = 5
|
VERSION = 5
|
||||||
PATCHLEVEL = 7
|
PATCHLEVEL = 7
|
||||||
SUBLEVEL = 0
|
SUBLEVEL = 0
|
||||||
EXTRAVERSION = -rc1
|
EXTRAVERSION = -rc6
|
||||||
NAME = Kleptomaniac Octopus
|
NAME = Kleptomaniac Octopus
|
||||||
|
|
||||||
# *DOCUMENTATION*
|
# *DOCUMENTATION*
|
||||||
@ -729,10 +729,6 @@ else ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
|
|||||||
KBUILD_CFLAGS += -Os
|
KBUILD_CFLAGS += -Os
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef CONFIG_CC_DISABLE_WARN_MAYBE_UNINITIALIZED
|
|
||||||
KBUILD_CFLAGS += -Wno-maybe-uninitialized
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Tell gcc to never replace conditional load with a non-conditional one
|
# Tell gcc to never replace conditional load with a non-conditional one
|
||||||
KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0)
|
KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0)
|
||||||
KBUILD_CFLAGS += $(call cc-option,-fno-allow-store-data-races)
|
KBUILD_CFLAGS += $(call cc-option,-fno-allow-store-data-races)
|
||||||
@ -881,6 +877,17 @@ KBUILD_CFLAGS += -Wno-pointer-sign
|
|||||||
# disable stringop warnings in gcc 8+
|
# disable stringop warnings in gcc 8+
|
||||||
KBUILD_CFLAGS += $(call cc-disable-warning, stringop-truncation)
|
KBUILD_CFLAGS += $(call cc-disable-warning, stringop-truncation)
|
||||||
|
|
||||||
|
# We'll want to enable this eventually, but it's not going away for 5.7 at least
|
||||||
|
KBUILD_CFLAGS += $(call cc-disable-warning, zero-length-bounds)
|
||||||
|
KBUILD_CFLAGS += $(call cc-disable-warning, array-bounds)
|
||||||
|
KBUILD_CFLAGS += $(call cc-disable-warning, stringop-overflow)
|
||||||
|
|
||||||
|
# Another good warning that we'll want to enable eventually
|
||||||
|
KBUILD_CFLAGS += $(call cc-disable-warning, restrict)
|
||||||
|
|
||||||
|
# Enabled with W=2, disabled by default as noisy
|
||||||
|
KBUILD_CFLAGS += $(call cc-disable-warning, maybe-uninitialized)
|
||||||
|
|
||||||
# disable invalid "can't wrap" optimizations for signed / pointers
|
# disable invalid "can't wrap" optimizations for signed / pointers
|
||||||
KBUILD_CFLAGS += $(call cc-option,-fno-strict-overflow)
|
KBUILD_CFLAGS += $(call cc-option,-fno-strict-overflow)
|
||||||
|
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
* Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
|
* Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
|
||||||
*
|
*
|
||||||
* Amit Bhor, Sameer Dhavale: Codito Technologies 2004
|
* Amit Bhor, Sameer Dhavale: Codito Technologies 2004
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _ASM_ARC_MODULE_H
|
#ifndef _ASM_ARC_MODULE_H
|
||||||
@ -19,8 +18,4 @@ struct mod_arch_specific {
|
|||||||
const char *secstr;
|
const char *secstr;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MODULE_PROC_FAMILY "ARC700"
|
|
||||||
|
|
||||||
#define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY
|
|
||||||
|
|
||||||
#endif /* _ASM_ARC_MODULE_H */
|
#endif /* _ASM_ARC_MODULE_H */
|
||||||
|
8
arch/arc/include/asm/vermagic.h
Normal file
8
arch/arc/include/asm/vermagic.h
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
/* SPDX-License-Identifier: GPL-2.0 */
|
||||||
|
|
||||||
|
#ifndef _ASM_VERMAGIC_H
|
||||||
|
#define _ASM_VERMAGIC_H
|
||||||
|
|
||||||
|
#define MODULE_ARCH_VERMAGIC "ARC700"
|
||||||
|
|
||||||
|
#endif /* _ASM_VERMAGIC_H */
|
@ -12,6 +12,7 @@ config ARM
|
|||||||
select ARCH_HAS_KEEPINITRD
|
select ARCH_HAS_KEEPINITRD
|
||||||
select ARCH_HAS_KCOV
|
select ARCH_HAS_KCOV
|
||||||
select ARCH_HAS_MEMBARRIER_SYNC_CORE
|
select ARCH_HAS_MEMBARRIER_SYNC_CORE
|
||||||
|
select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
|
||||||
select ARCH_HAS_PTE_SPECIAL if ARM_LPAE
|
select ARCH_HAS_PTE_SPECIAL if ARM_LPAE
|
||||||
select ARCH_HAS_PHYS_TO_DMA
|
select ARCH_HAS_PHYS_TO_DMA
|
||||||
select ARCH_HAS_SETUP_DMA_OPS
|
select ARCH_HAS_SETUP_DMA_OPS
|
||||||
|
@ -1450,7 +1450,8 @@ ENTRY(efi_enter_kernel)
|
|||||||
@ running beyond the PoU, and so calling cache_off below from
|
@ running beyond the PoU, and so calling cache_off below from
|
||||||
@ inside the PE/COFF loader allocated region is unsafe unless
|
@ inside the PE/COFF loader allocated region is unsafe unless
|
||||||
@ we explicitly clean it to the PoC.
|
@ we explicitly clean it to the PoC.
|
||||||
adr r0, call_cache_fn @ region of code we will
|
ARM( adrl r0, call_cache_fn )
|
||||||
|
THUMB( adr r0, call_cache_fn ) @ region of code we will
|
||||||
adr r1, 0f @ run with MMU off
|
adr r1, 0f @ run with MMU off
|
||||||
bl cache_clean_flush
|
bl cache_clean_flush
|
||||||
bl cache_off
|
bl cache_off
|
||||||
|
@ -40,3 +40,7 @@ &mac {
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
dual_emac;
|
dual_emac;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&m_can0 {
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
@ -14,6 +14,9 @@ act {
|
|||||||
soc {
|
soc {
|
||||||
firmware: firmware {
|
firmware: firmware {
|
||||||
compatible = "raspberrypi,bcm2835-firmware", "simple-bus";
|
compatible = "raspberrypi,bcm2835-firmware", "simple-bus";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
mboxes = <&mailbox>;
|
mboxes = <&mailbox>;
|
||||||
dma-ranges;
|
dma-ranges;
|
||||||
};
|
};
|
||||||
|
@ -372,6 +372,7 @@ dsi0: dsi@7e209000 {
|
|||||||
"dsi0_ddr2",
|
"dsi0_ddr2",
|
||||||
"dsi0_ddr";
|
"dsi0_ddr";
|
||||||
|
|
||||||
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
aux: aux@7e215000 {
|
aux: aux@7e215000 {
|
||||||
|
@ -172,6 +172,7 @@ axi@0 {
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
ranges = <0x51000000 0x51000000 0x3000
|
ranges = <0x51000000 0x51000000 0x3000
|
||||||
0x0 0x20000000 0x10000000>;
|
0x0 0x20000000 0x10000000>;
|
||||||
|
dma-ranges;
|
||||||
/**
|
/**
|
||||||
* To enable PCI endpoint mode, disable the pcie1_rc
|
* To enable PCI endpoint mode, disable the pcie1_rc
|
||||||
* node and enable pcie1_ep mode.
|
* node and enable pcie1_ep mode.
|
||||||
@ -185,7 +186,6 @@ pcie1_rc: pcie@51000000 {
|
|||||||
device_type = "pci";
|
device_type = "pci";
|
||||||
ranges = <0x81000000 0 0 0x03000 0 0x00010000
|
ranges = <0x81000000 0 0 0x03000 0 0x00010000
|
||||||
0x82000000 0 0x20013000 0x13000 0 0xffed000>;
|
0x82000000 0 0x20013000 0x13000 0 0xffed000>;
|
||||||
dma-ranges = <0x02000000 0x0 0x00000000 0x00000000 0x1 0x00000000>;
|
|
||||||
bus-range = <0x00 0xff>;
|
bus-range = <0x00 0xff>;
|
||||||
#interrupt-cells = <1>;
|
#interrupt-cells = <1>;
|
||||||
num-lanes = <1>;
|
num-lanes = <1>;
|
||||||
@ -230,6 +230,7 @@ axi@1 {
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
ranges = <0x51800000 0x51800000 0x3000
|
ranges = <0x51800000 0x51800000 0x3000
|
||||||
0x0 0x30000000 0x10000000>;
|
0x0 0x30000000 0x10000000>;
|
||||||
|
dma-ranges;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
pcie2_rc: pcie@51800000 {
|
pcie2_rc: pcie@51800000 {
|
||||||
reg = <0x51800000 0x2000>, <0x51802000 0x14c>, <0x1000 0x2000>;
|
reg = <0x51800000 0x2000>, <0x51802000 0x14c>, <0x1000 0x2000>;
|
||||||
@ -240,7 +241,6 @@ pcie2_rc: pcie@51800000 {
|
|||||||
device_type = "pci";
|
device_type = "pci";
|
||||||
ranges = <0x81000000 0 0 0x03000 0 0x00010000
|
ranges = <0x81000000 0 0 0x03000 0 0x00010000
|
||||||
0x82000000 0 0x30013000 0x13000 0 0xffed000>;
|
0x82000000 0 0x30013000 0x13000 0 0xffed000>;
|
||||||
dma-ranges = <0x02000000 0x0 0x00000000 0x00000000 0x1 0x00000000>;
|
|
||||||
bus-range = <0x00 0xff>;
|
bus-range = <0x00 0xff>;
|
||||||
#interrupt-cells = <1>;
|
#interrupt-cells = <1>;
|
||||||
num-lanes = <1>;
|
num-lanes = <1>;
|
||||||
|
@ -75,8 +75,8 @@ &iomuxc {
|
|||||||
imx27-phycard-s-rdk {
|
imx27-phycard-s-rdk {
|
||||||
pinctrl_i2c1: i2c1grp {
|
pinctrl_i2c1: i2c1grp {
|
||||||
fsl,pins = <
|
fsl,pins = <
|
||||||
MX27_PAD_I2C2_SDA__I2C2_SDA 0x0
|
MX27_PAD_I2C_DATA__I2C_DATA 0x0
|
||||||
MX27_PAD_I2C2_SCL__I2C2_SCL 0x0
|
MX27_PAD_I2C_CLK__I2C_CLK 0x0
|
||||||
>;
|
>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ ®_usb_h1_vbus {
|
|||||||
};
|
};
|
||||||
|
|
||||||
&switch_ports {
|
&switch_ports {
|
||||||
/delete-node/ port@2;
|
/delete-node/ port@3;
|
||||||
};
|
};
|
||||||
|
|
||||||
&touchscreen {
|
&touchscreen {
|
||||||
|
@ -1039,13 +1039,13 @@ fec: ethernet@2188000 {
|
|||||||
compatible = "fsl,imx6q-fec";
|
compatible = "fsl,imx6q-fec";
|
||||||
reg = <0x02188000 0x4000>;
|
reg = <0x02188000 0x4000>;
|
||||||
interrupt-names = "int0", "pps";
|
interrupt-names = "int0", "pps";
|
||||||
interrupts-extended =
|
interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
<&intc 0 118 IRQ_TYPE_LEVEL_HIGH>,
|
<0 119 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
<&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
clocks = <&clks IMX6QDL_CLK_ENET>,
|
clocks = <&clks IMX6QDL_CLK_ENET>,
|
||||||
<&clks IMX6QDL_CLK_ENET>,
|
<&clks IMX6QDL_CLK_ENET>,
|
||||||
<&clks IMX6QDL_CLK_ENET_REF>;
|
<&clks IMX6QDL_CLK_ENET_REF>;
|
||||||
clock-names = "ipg", "ahb", "ptp";
|
clock-names = "ipg", "ahb", "ptp";
|
||||||
|
gpr = <&gpr>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -77,7 +77,6 @@ prg2: prg@21cd000 {
|
|||||||
};
|
};
|
||||||
|
|
||||||
&fec {
|
&fec {
|
||||||
/delete-property/interrupts-extended;
|
|
||||||
interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>,
|
interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
<0 119 IRQ_TYPE_LEVEL_HIGH>;
|
<0 119 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
};
|
};
|
||||||
|
@ -72,8 +72,6 @@ hdmi@39 {
|
|||||||
adi,input-depth = <8>;
|
adi,input-depth = <8>;
|
||||||
adi,input-colorspace = "rgb";
|
adi,input-colorspace = "rgb";
|
||||||
adi,input-clock = "1x";
|
adi,input-clock = "1x";
|
||||||
adi,input-style = <1>;
|
|
||||||
adi,input-justification = "evenly";
|
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
|
@ -367,6 +367,8 @@ &mmc2 {
|
|||||||
};
|
};
|
||||||
|
|
||||||
&mmc3 {
|
&mmc3 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&mmc3_pins>;
|
||||||
vmmc-supply = <&wl12xx_vmmc>;
|
vmmc-supply = <&wl12xx_vmmc>;
|
||||||
/* uart2_tx.sdmmc3_dat1 pad as wakeirq */
|
/* uart2_tx.sdmmc3_dat1 pad as wakeirq */
|
||||||
interrupts-extended = <&wakeupgen GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH
|
interrupts-extended = <&wakeupgen GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH
|
||||||
@ -472,6 +474,37 @@ OMAP4_IOPAD(0x09e, PIN_INPUT | MUX_MODE0)
|
|||||||
>;
|
>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Android uses PIN_OFF_INPUT_PULLDOWN | PIN_INPUT_PULLUP | MUX_MODE3
|
||||||
|
* for gpio_100, but the internal pull makes wlan flakey on some
|
||||||
|
* devices. Off mode value should be tested if we have off mode working
|
||||||
|
* later on.
|
||||||
|
*/
|
||||||
|
mmc3_pins: pinmux_mmc3_pins {
|
||||||
|
pinctrl-single,pins = <
|
||||||
|
/* 0x4a10008e gpmc_wait2.gpio_100 d23 */
|
||||||
|
OMAP4_IOPAD(0x08e, PIN_INPUT | MUX_MODE3)
|
||||||
|
|
||||||
|
/* 0x4a100102 abe_mcbsp1_dx.sdmmc3_dat2 ab25 */
|
||||||
|
OMAP4_IOPAD(0x102, PIN_INPUT_PULLUP | MUX_MODE1)
|
||||||
|
|
||||||
|
/* 0x4a100104 abe_mcbsp1_fsx.sdmmc3_dat3 ac27 */
|
||||||
|
OMAP4_IOPAD(0x104, PIN_INPUT_PULLUP | MUX_MODE1)
|
||||||
|
|
||||||
|
/* 0x4a100118 uart2_cts.sdmmc3_clk ab26 */
|
||||||
|
OMAP4_IOPAD(0x118, PIN_INPUT | MUX_MODE1)
|
||||||
|
|
||||||
|
/* 0x4a10011a uart2_rts.sdmmc3_cmd ab27 */
|
||||||
|
OMAP4_IOPAD(0x11a, PIN_INPUT_PULLUP | MUX_MODE1)
|
||||||
|
|
||||||
|
/* 0x4a10011c uart2_rx.sdmmc3_dat0 aa25 */
|
||||||
|
OMAP4_IOPAD(0x11c, PIN_INPUT_PULLUP | MUX_MODE1)
|
||||||
|
|
||||||
|
/* 0x4a10011e uart2_tx.sdmmc3_dat1 aa26 */
|
||||||
|
OMAP4_IOPAD(0x11e, PIN_INPUT_PULLUP | MUX_MODE1)
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
|
||||||
/* gpmc_ncs0.gpio_50 */
|
/* gpmc_ncs0.gpio_50 */
|
||||||
poweroff_gpio: pinmux_poweroff_pins {
|
poweroff_gpio: pinmux_poweroff_pins {
|
||||||
pinctrl-single,pins = <
|
pinctrl-single,pins = <
|
||||||
@ -690,14 +723,18 @@ &timer9 {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* As uart1 is wired to mdm6600 with rts and cts, we can use the cts pin for
|
* The uart1 port is wired to mdm6600 with rts and cts. The modem uses gpio_149
|
||||||
* uart1 wakeirq.
|
* for wake-up events for both the USB PHY and the UART. We can use gpio_149
|
||||||
|
* pad as the shared wakeirq for the UART rather than the RX or CTS pad as we
|
||||||
|
* have gpio_149 trigger before the UART transfer starts.
|
||||||
*/
|
*/
|
||||||
&uart1 {
|
&uart1 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart1_pins>;
|
pinctrl-0 = <&uart1_pins>;
|
||||||
interrupts-extended = <&wakeupgen GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH
|
interrupts-extended = <&wakeupgen GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH
|
||||||
&omap4_pmx_core 0xfc>;
|
&omap4_pmx_core 0x110>;
|
||||||
|
uart-has-rtscts;
|
||||||
|
current-speed = <115200>;
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart3 {
|
&uart3 {
|
||||||
|
@ -341,6 +341,11 @@ &mmc3 {
|
|||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* RNG not directly accessible on N950/N9. */
|
||||||
|
&rng_target {
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
&usb_otg_hs {
|
&usb_otg_hs {
|
||||||
interface-type = <0>;
|
interface-type = <0>;
|
||||||
usb-phy = <&usb2_phy>;
|
usb-phy = <&usb2_phy>;
|
||||||
|
@ -304,7 +304,6 @@ ostm0: timer@e803b000 {
|
|||||||
reg = <0xe803b000 0x30>;
|
reg = <0xe803b000 0x30>;
|
||||||
interrupts = <GIC_SPI 56 IRQ_TYPE_EDGE_RISING>;
|
interrupts = <GIC_SPI 56 IRQ_TYPE_EDGE_RISING>;
|
||||||
clocks = <&cpg CPG_MOD 36>;
|
clocks = <&cpg CPG_MOD 36>;
|
||||||
clock-names = "ostm0";
|
|
||||||
power-domains = <&cpg>;
|
power-domains = <&cpg>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
@ -314,7 +313,6 @@ ostm1: timer@e803c000 {
|
|||||||
reg = <0xe803c000 0x30>;
|
reg = <0xe803c000 0x30>;
|
||||||
interrupts = <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>;
|
interrupts = <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>;
|
||||||
clocks = <&cpg CPG_MOD 35>;
|
clocks = <&cpg CPG_MOD 35>;
|
||||||
clock-names = "ostm1";
|
|
||||||
power-domains = <&cpg>;
|
power-domains = <&cpg>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
@ -324,7 +322,6 @@ ostm2: timer@e803d000 {
|
|||||||
reg = <0xe803d000 0x30>;
|
reg = <0xe803d000 0x30>;
|
||||||
interrupts = <GIC_SPI 58 IRQ_TYPE_EDGE_RISING>;
|
interrupts = <GIC_SPI 58 IRQ_TYPE_EDGE_RISING>;
|
||||||
clocks = <&cpg CPG_MOD 34>;
|
clocks = <&cpg CPG_MOD 34>;
|
||||||
clock-names = "ostm2";
|
|
||||||
power-domains = <&cpg>;
|
power-domains = <&cpg>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
@ -131,7 +131,14 @@ i2c5: i2c@e60b0000 {
|
|||||||
cmt1: timer@e6130000 {
|
cmt1: timer@e6130000 {
|
||||||
compatible = "renesas,r8a73a4-cmt1", "renesas,rcar-gen2-cmt1";
|
compatible = "renesas,r8a73a4-cmt1", "renesas,rcar-gen2-cmt1";
|
||||||
reg = <0 0xe6130000 0 0x1004>;
|
reg = <0 0xe6130000 0 0x1004>;
|
||||||
interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
clocks = <&mstp3_clks R8A73A4_CLK_CMT1>;
|
clocks = <&mstp3_clks R8A73A4_CLK_CMT1>;
|
||||||
clock-names = "fck";
|
clock-names = "fck";
|
||||||
power-domains = <&pd_c5>;
|
power-domains = <&pd_c5>;
|
||||||
|
@ -479,7 +479,7 @@ fsibck_clk: fsibck {
|
|||||||
cpg_clocks: cpg_clocks@e6150000 {
|
cpg_clocks: cpg_clocks@e6150000 {
|
||||||
compatible = "renesas,r8a7740-cpg-clocks";
|
compatible = "renesas,r8a7740-cpg-clocks";
|
||||||
reg = <0xe6150000 0x10000>;
|
reg = <0xe6150000 0x10000>;
|
||||||
clocks = <&extal1_clk>, <&extalr_clk>;
|
clocks = <&extal1_clk>, <&extal2_clk>, <&extalr_clk>;
|
||||||
#clock-cells = <1>;
|
#clock-cells = <1>;
|
||||||
clock-output-names = "system", "pllc0", "pllc1",
|
clock-output-names = "system", "pllc0", "pllc1",
|
||||||
"pllc2", "r",
|
"pllc2", "r",
|
||||||
|
@ -84,8 +84,6 @@ hdmi@39 {
|
|||||||
adi,input-depth = <8>;
|
adi,input-depth = <8>;
|
||||||
adi,input-colorspace = "rgb";
|
adi,input-colorspace = "rgb";
|
||||||
adi,input-clock = "1x";
|
adi,input-clock = "1x";
|
||||||
adi,input-style = <1>;
|
|
||||||
adi,input-justification = "evenly";
|
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
|
@ -364,8 +364,6 @@ hdmi@39 {
|
|||||||
adi,input-depth = <8>;
|
adi,input-depth = <8>;
|
||||||
adi,input-colorspace = "rgb";
|
adi,input-colorspace = "rgb";
|
||||||
adi,input-clock = "1x";
|
adi,input-clock = "1x";
|
||||||
adi,input-style = <1>;
|
|
||||||
adi,input-justification = "evenly";
|
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
|
@ -297,8 +297,6 @@ hdmi@39 {
|
|||||||
adi,input-depth = <8>;
|
adi,input-depth = <8>;
|
||||||
adi,input-colorspace = "rgb";
|
adi,input-colorspace = "rgb";
|
||||||
adi,input-clock = "1x";
|
adi,input-clock = "1x";
|
||||||
adi,input-style = <1>;
|
|
||||||
adi,input-justification = "evenly";
|
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
|
@ -387,8 +387,6 @@ hdmi@39 {
|
|||||||
adi,input-depth = <8>;
|
adi,input-depth = <8>;
|
||||||
adi,input-colorspace = "rgb";
|
adi,input-colorspace = "rgb";
|
||||||
adi,input-clock = "1x";
|
adi,input-clock = "1x";
|
||||||
adi,input-style = <1>;
|
|
||||||
adi,input-justification = "evenly";
|
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
|
@ -181,8 +181,6 @@ hdmi@39 {
|
|||||||
adi,input-depth = <8>;
|
adi,input-depth = <8>;
|
||||||
adi,input-colorspace = "rgb";
|
adi,input-colorspace = "rgb";
|
||||||
adi,input-clock = "1x";
|
adi,input-clock = "1x";
|
||||||
adi,input-style = <1>;
|
|
||||||
adi,input-justification = "evenly";
|
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
|
@ -289,8 +289,6 @@ hdmi@39 {
|
|||||||
adi,input-depth = <8>;
|
adi,input-depth = <8>;
|
||||||
adi,input-colorspace = "rgb";
|
adi,input-colorspace = "rgb";
|
||||||
adi,input-clock = "1x";
|
adi,input-clock = "1x";
|
||||||
adi,input-style = <1>;
|
|
||||||
adi,input-justification = "evenly";
|
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
|
@ -249,14 +249,12 @@ &i2c4 {
|
|||||||
*/
|
*/
|
||||||
hdmi@3d {
|
hdmi@3d {
|
||||||
compatible = "adi,adv7513";
|
compatible = "adi,adv7513";
|
||||||
reg = <0x3d>, <0x2d>, <0x4d>, <0x5d>;
|
reg = <0x3d>, <0x4d>, <0x2d>, <0x5d>;
|
||||||
reg-names = "main", "cec", "edid", "packet";
|
reg-names = "main", "edid", "cec", "packet";
|
||||||
|
|
||||||
adi,input-depth = <8>;
|
adi,input-depth = <8>;
|
||||||
adi,input-colorspace = "rgb";
|
adi,input-colorspace = "rgb";
|
||||||
adi,input-clock = "1x";
|
adi,input-clock = "1x";
|
||||||
adi,input-style = <1>;
|
|
||||||
adi,input-justification = "evenly";
|
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
@ -280,14 +278,12 @@ adv7513_0_out: endpoint {
|
|||||||
|
|
||||||
hdmi@39 {
|
hdmi@39 {
|
||||||
compatible = "adi,adv7513";
|
compatible = "adi,adv7513";
|
||||||
reg = <0x39>, <0x29>, <0x49>, <0x59>;
|
reg = <0x39>, <0x49>, <0x29>, <0x59>;
|
||||||
reg-names = "main", "cec", "edid", "packet";
|
reg-names = "main", "edid", "cec", "packet";
|
||||||
|
|
||||||
adi,input-depth = <8>;
|
adi,input-depth = <8>;
|
||||||
adi,input-colorspace = "rgb";
|
adi,input-colorspace = "rgb";
|
||||||
adi,input-clock = "1x";
|
adi,input-clock = "1x";
|
||||||
adi,input-style = <1>;
|
|
||||||
adi,input-justification = "evenly";
|
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
|
@ -366,8 +366,6 @@ hdmi@39 {
|
|||||||
adi,input-depth = <8>;
|
adi,input-depth = <8>;
|
||||||
adi,input-colorspace = "rgb";
|
adi,input-colorspace = "rgb";
|
||||||
adi,input-clock = "1x";
|
adi,input-clock = "1x";
|
||||||
adi,input-style = <1>;
|
|
||||||
adi,input-justification = "evenly";
|
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
|
@ -255,8 +255,6 @@ hdmi@39 {
|
|||||||
adi,input-depth = <8>;
|
adi,input-depth = <8>;
|
||||||
adi,input-colorspace = "rgb";
|
adi,input-colorspace = "rgb";
|
||||||
adi,input-clock = "1x";
|
adi,input-clock = "1x";
|
||||||
adi,input-style = <1>;
|
|
||||||
adi,input-justification = "evenly";
|
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
|
@ -128,7 +128,7 @@ gpu: gpu@10090000 {
|
|||||||
assigned-clocks = <&cru SCLK_GPU>;
|
assigned-clocks = <&cru SCLK_GPU>;
|
||||||
assigned-clock-rates = <100000000>;
|
assigned-clock-rates = <100000000>;
|
||||||
clocks = <&cru SCLK_GPU>, <&cru SCLK_GPU>;
|
clocks = <&cru SCLK_GPU>, <&cru SCLK_GPU>;
|
||||||
clock-names = "core", "bus";
|
clock-names = "bus", "core";
|
||||||
resets = <&cru SRST_GPU>;
|
resets = <&cru SRST_GPU>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
@ -46,7 +46,7 @@ mdio {
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
|
||||||
phy: phy@0 {
|
phy: ethernet-phy@0 {
|
||||||
compatible = "ethernet-phy-id1234.d400", "ethernet-phy-ieee802.3-c22";
|
compatible = "ethernet-phy-id1234.d400", "ethernet-phy-ieee802.3-c22";
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
clocks = <&cru SCLK_MAC_PHY>;
|
clocks = <&cru SCLK_MAC_PHY>;
|
||||||
|
@ -150,7 +150,7 @@ mdio {
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
|
||||||
phy: phy@0 {
|
phy: ethernet-phy@0 {
|
||||||
compatible = "ethernet-phy-id1234.d400",
|
compatible = "ethernet-phy-id1234.d400",
|
||||||
"ethernet-phy-ieee802.3-c22";
|
"ethernet-phy-ieee802.3-c22";
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
|
@ -555,7 +555,7 @@ gpu: gpu@20000000 {
|
|||||||
"pp1",
|
"pp1",
|
||||||
"ppmmu1";
|
"ppmmu1";
|
||||||
clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>;
|
clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>;
|
||||||
clock-names = "core", "bus";
|
clock-names = "bus", "core";
|
||||||
resets = <&cru SRST_GPU_A>;
|
resets = <&cru SRST_GPU_A>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
@ -1020,7 +1020,7 @@ i2c3_xfer: i2c3-xfer {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
spi-0 {
|
spi0 {
|
||||||
spi0_clk: spi0-clk {
|
spi0_clk: spi0-clk {
|
||||||
rockchip,pins = <0 RK_PB1 2 &pcfg_pull_up>;
|
rockchip,pins = <0 RK_PB1 2 &pcfg_pull_up>;
|
||||||
};
|
};
|
||||||
@ -1038,7 +1038,7 @@ spi0_cs1: spi0-cs1 {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
spi-1 {
|
spi1 {
|
||||||
spi1_clk: spi1-clk {
|
spi1_clk: spi1-clk {
|
||||||
rockchip,pins = <0 RK_PC7 2 &pcfg_pull_up>;
|
rockchip,pins = <0 RK_PC7 2 &pcfg_pull_up>;
|
||||||
};
|
};
|
||||||
|
@ -84,7 +84,7 @@ gpu: gpu@10090000 {
|
|||||||
compatible = "arm,mali-400";
|
compatible = "arm,mali-400";
|
||||||
reg = <0x10090000 0x10000>;
|
reg = <0x10090000 0x10000>;
|
||||||
clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>;
|
clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>;
|
||||||
clock-names = "core", "bus";
|
clock-names = "bus", "core";
|
||||||
assigned-clocks = <&cru ACLK_GPU>;
|
assigned-clocks = <&cru ACLK_GPU>;
|
||||||
assigned-clock-rates = <100000000>;
|
assigned-clock-rates = <100000000>;
|
||||||
resets = <&cru SRST_GPU>;
|
resets = <&cru SRST_GPU>;
|
||||||
|
@ -147,6 +147,7 @@ CONFIG_I2C_DAVINCI=y
|
|||||||
CONFIG_SPI=y
|
CONFIG_SPI=y
|
||||||
CONFIG_SPI_DAVINCI=y
|
CONFIG_SPI_DAVINCI=y
|
||||||
CONFIG_SPI_SPIDEV=y
|
CONFIG_SPI_SPIDEV=y
|
||||||
|
CONFIG_PTP_1588_CLOCK=y
|
||||||
CONFIG_PINCTRL_SINGLE=y
|
CONFIG_PINCTRL_SINGLE=y
|
||||||
CONFIG_GPIOLIB=y
|
CONFIG_GPIOLIB=y
|
||||||
CONFIG_GPIO_SYSFS=y
|
CONFIG_GPIO_SYSFS=y
|
||||||
|
@ -274,6 +274,7 @@ CONFIG_SPI_TI_QSPI=m
|
|||||||
CONFIG_HSI=m
|
CONFIG_HSI=m
|
||||||
CONFIG_OMAP_SSI=m
|
CONFIG_OMAP_SSI=m
|
||||||
CONFIG_SSI_PROTOCOL=m
|
CONFIG_SSI_PROTOCOL=m
|
||||||
|
CONFIG_PTP_1588_CLOCK=y
|
||||||
CONFIG_PINCTRL_SINGLE=y
|
CONFIG_PINCTRL_SINGLE=y
|
||||||
CONFIG_DEBUG_GPIO=y
|
CONFIG_DEBUG_GPIO=y
|
||||||
CONFIG_GPIO_SYSFS=y
|
CONFIG_GPIO_SYSFS=y
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user