Merge drm/drm-next into drm-intel-next
Sync up with upstream. Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
@@ -109,6 +109,7 @@ ForEachMacros:
|
|||||||
- 'css_for_each_child'
|
- 'css_for_each_child'
|
||||||
- 'css_for_each_descendant_post'
|
- 'css_for_each_descendant_post'
|
||||||
- 'css_for_each_descendant_pre'
|
- 'css_for_each_descendant_pre'
|
||||||
|
- 'cxl_for_each_cmd'
|
||||||
- 'device_for_each_child_node'
|
- 'device_for_each_child_node'
|
||||||
- 'dma_fence_chain_for_each'
|
- 'dma_fence_chain_for_each'
|
||||||
- 'do_for_each_ftrace_op'
|
- 'do_for_each_ftrace_op'
|
||||||
@@ -122,6 +123,7 @@ ForEachMacros:
|
|||||||
- 'drm_for_each_bridge_in_chain'
|
- 'drm_for_each_bridge_in_chain'
|
||||||
- 'drm_for_each_connector_iter'
|
- 'drm_for_each_connector_iter'
|
||||||
- 'drm_for_each_crtc'
|
- 'drm_for_each_crtc'
|
||||||
|
- 'drm_for_each_crtc_reverse'
|
||||||
- 'drm_for_each_encoder'
|
- 'drm_for_each_encoder'
|
||||||
- 'drm_for_each_encoder_mask'
|
- 'drm_for_each_encoder_mask'
|
||||||
- 'drm_for_each_fb'
|
- 'drm_for_each_fb'
|
||||||
@@ -203,14 +205,13 @@ ForEachMacros:
|
|||||||
- 'for_each_matching_node'
|
- 'for_each_matching_node'
|
||||||
- 'for_each_matching_node_and_match'
|
- 'for_each_matching_node_and_match'
|
||||||
- 'for_each_member'
|
- 'for_each_member'
|
||||||
- 'for_each_mem_region'
|
|
||||||
- 'for_each_memblock_type'
|
|
||||||
- 'for_each_memcg_cache_index'
|
- 'for_each_memcg_cache_index'
|
||||||
- 'for_each_mem_pfn_range'
|
- 'for_each_mem_pfn_range'
|
||||||
- '__for_each_mem_range'
|
- '__for_each_mem_range'
|
||||||
- 'for_each_mem_range'
|
- 'for_each_mem_range'
|
||||||
- '__for_each_mem_range_rev'
|
- '__for_each_mem_range_rev'
|
||||||
- 'for_each_mem_range_rev'
|
- 'for_each_mem_range_rev'
|
||||||
|
- 'for_each_mem_region'
|
||||||
- 'for_each_migratetype_order'
|
- 'for_each_migratetype_order'
|
||||||
- 'for_each_msi_entry'
|
- 'for_each_msi_entry'
|
||||||
- 'for_each_msi_entry_safe'
|
- 'for_each_msi_entry_safe'
|
||||||
@@ -276,10 +277,8 @@ ForEachMacros:
|
|||||||
- 'for_each_reserved_mem_range'
|
- 'for_each_reserved_mem_range'
|
||||||
- 'for_each_reserved_mem_region'
|
- 'for_each_reserved_mem_region'
|
||||||
- 'for_each_rtd_codec_dais'
|
- 'for_each_rtd_codec_dais'
|
||||||
- 'for_each_rtd_codec_dais_rollback'
|
|
||||||
- 'for_each_rtd_components'
|
- 'for_each_rtd_components'
|
||||||
- 'for_each_rtd_cpu_dais'
|
- 'for_each_rtd_cpu_dais'
|
||||||
- 'for_each_rtd_cpu_dais_rollback'
|
|
||||||
- 'for_each_rtd_dais'
|
- 'for_each_rtd_dais'
|
||||||
- 'for_each_set_bit'
|
- 'for_each_set_bit'
|
||||||
- 'for_each_set_bit_from'
|
- 'for_each_set_bit_from'
|
||||||
@@ -298,6 +297,7 @@ ForEachMacros:
|
|||||||
- '__for_each_thread'
|
- '__for_each_thread'
|
||||||
- 'for_each_thread'
|
- 'for_each_thread'
|
||||||
- 'for_each_unicast_dest_pgid'
|
- 'for_each_unicast_dest_pgid'
|
||||||
|
- 'for_each_vsi'
|
||||||
- 'for_each_wakeup_source'
|
- 'for_each_wakeup_source'
|
||||||
- 'for_each_zone'
|
- 'for_each_zone'
|
||||||
- 'for_each_zone_zonelist'
|
- 'for_each_zone_zonelist'
|
||||||
@@ -330,6 +330,7 @@ ForEachMacros:
|
|||||||
- 'hlist_for_each_entry_rcu_bh'
|
- 'hlist_for_each_entry_rcu_bh'
|
||||||
- 'hlist_for_each_entry_rcu_notrace'
|
- 'hlist_for_each_entry_rcu_notrace'
|
||||||
- 'hlist_for_each_entry_safe'
|
- 'hlist_for_each_entry_safe'
|
||||||
|
- 'hlist_for_each_entry_srcu'
|
||||||
- '__hlist_for_each_rcu'
|
- '__hlist_for_each_rcu'
|
||||||
- 'hlist_for_each_safe'
|
- 'hlist_for_each_safe'
|
||||||
- 'hlist_nulls_for_each_entry'
|
- 'hlist_nulls_for_each_entry'
|
||||||
@@ -378,6 +379,7 @@ ForEachMacros:
|
|||||||
- 'list_for_each_entry_safe_continue'
|
- 'list_for_each_entry_safe_continue'
|
||||||
- 'list_for_each_entry_safe_from'
|
- 'list_for_each_entry_safe_from'
|
||||||
- 'list_for_each_entry_safe_reverse'
|
- 'list_for_each_entry_safe_reverse'
|
||||||
|
- 'list_for_each_entry_srcu'
|
||||||
- 'list_for_each_prev'
|
- 'list_for_each_prev'
|
||||||
- 'list_for_each_prev_safe'
|
- 'list_for_each_prev_safe'
|
||||||
- 'list_for_each_safe'
|
- 'list_for_each_safe'
|
||||||
@@ -411,6 +413,8 @@ 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'
|
||||||
|
- 'pcl_for_each_chunk'
|
||||||
|
- 'pcl_for_each_segment'
|
||||||
- 'pcm_for_each_format'
|
- 'pcm_for_each_format'
|
||||||
- 'ping_portaddr_for_each_entry'
|
- 'ping_portaddr_for_each_entry'
|
||||||
- 'plist_for_each'
|
- 'plist_for_each'
|
||||||
|
|||||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -18,6 +18,7 @@
|
|||||||
*.c.[012]*.*
|
*.c.[012]*.*
|
||||||
*.dt.yaml
|
*.dt.yaml
|
||||||
*.dtb
|
*.dtb
|
||||||
|
*.dtbo
|
||||||
*.dtb.S
|
*.dtb.S
|
||||||
*.dwo
|
*.dwo
|
||||||
*.elf
|
*.elf
|
||||||
@@ -41,6 +42,7 @@
|
|||||||
*.so.dbg
|
*.so.dbg
|
||||||
*.su
|
*.su
|
||||||
*.symtypes
|
*.symtypes
|
||||||
|
*.symversions
|
||||||
*.tab.[ch]
|
*.tab.[ch]
|
||||||
*.tar
|
*.tar
|
||||||
*.xz
|
*.xz
|
||||||
|
|||||||
16
.mailmap
16
.mailmap
@@ -9,9 +9,6 @@
|
|||||||
#
|
#
|
||||||
# Please keep this list dictionary sorted.
|
# Please keep this list dictionary sorted.
|
||||||
#
|
#
|
||||||
# This comment is parsed by git-shortlog:
|
|
||||||
# repo-abbrev: /pub/scm/linux/kernel/git/
|
|
||||||
#
|
|
||||||
Aaron Durbin <adurbin@google.com>
|
Aaron Durbin <adurbin@google.com>
|
||||||
Adam Oldham <oldhamca@gmail.com>
|
Adam Oldham <oldhamca@gmail.com>
|
||||||
Adam Radford <aradford@gmail.com>
|
Adam Radford <aradford@gmail.com>
|
||||||
@@ -40,6 +37,7 @@ Andrew Murray <amurray@thegoodpenguin.co.uk> <amurray@embedded-bits.co.uk>
|
|||||||
Andrew Murray <amurray@thegoodpenguin.co.uk> <andrew.murray@arm.com>
|
Andrew Murray <amurray@thegoodpenguin.co.uk> <andrew.murray@arm.com>
|
||||||
Andrew Vasquez <andrew.vasquez@qlogic.com>
|
Andrew Vasquez <andrew.vasquez@qlogic.com>
|
||||||
Andrey Ryabinin <ryabinin.a.a@gmail.com> <a.ryabinin@samsung.com>
|
Andrey Ryabinin <ryabinin.a.a@gmail.com> <a.ryabinin@samsung.com>
|
||||||
|
Andrey Ryabinin <ryabinin.a.a@gmail.com> <aryabinin@virtuozzo.com>
|
||||||
Andy Adamson <andros@citi.umich.edu>
|
Andy Adamson <andros@citi.umich.edu>
|
||||||
Antoine Tenart <atenart@kernel.org> <antoine.tenart@bootlin.com>
|
Antoine Tenart <atenart@kernel.org> <antoine.tenart@bootlin.com>
|
||||||
Antoine Tenart <atenart@kernel.org> <antoine.tenart@free-electrons.com>
|
Antoine Tenart <atenart@kernel.org> <antoine.tenart@free-electrons.com>
|
||||||
@@ -55,6 +53,8 @@ Bart Van Assche <bvanassche@acm.org> <bart.vanassche@wdc.com>
|
|||||||
Ben Gardner <bgardner@wabtec.com>
|
Ben Gardner <bgardner@wabtec.com>
|
||||||
Ben M Cahill <ben.m.cahill@intel.com>
|
Ben M Cahill <ben.m.cahill@intel.com>
|
||||||
Björn Steinbrink <B.Steinbrink@gmx.de>
|
Björn Steinbrink <B.Steinbrink@gmx.de>
|
||||||
|
Björn Töpel <bjorn@kernel.org> <bjorn.topel@gmail.com>
|
||||||
|
Björn Töpel <bjorn@kernel.org> <bjorn.topel@intel.com>
|
||||||
Boris Brezillon <bbrezillon@kernel.org> <b.brezillon.dev@gmail.com>
|
Boris Brezillon <bbrezillon@kernel.org> <b.brezillon.dev@gmail.com>
|
||||||
Boris Brezillon <bbrezillon@kernel.org> <b.brezillon@overkiz.com>
|
Boris Brezillon <bbrezillon@kernel.org> <b.brezillon@overkiz.com>
|
||||||
Boris Brezillon <bbrezillon@kernel.org> <boris.brezillon@bootlin.com>
|
Boris Brezillon <bbrezillon@kernel.org> <boris.brezillon@bootlin.com>
|
||||||
@@ -174,12 +174,13 @@ Juha Yrjola <at solidboot.com>
|
|||||||
Juha Yrjola <juha.yrjola@nokia.com>
|
Juha Yrjola <juha.yrjola@nokia.com>
|
||||||
Juha Yrjola <juha.yrjola@solidboot.com>
|
Juha Yrjola <juha.yrjola@solidboot.com>
|
||||||
Julien Thierry <julien.thierry.kdev@gmail.com> <julien.thierry@arm.com>
|
Julien Thierry <julien.thierry.kdev@gmail.com> <julien.thierry@arm.com>
|
||||||
Kamil Konieczny <k.konieczny@samsung.com> <k.konieczny@partner.samsung.com>
|
|
||||||
Kay Sievers <kay.sievers@vrfy.org>
|
Kay Sievers <kay.sievers@vrfy.org>
|
||||||
Kees Cook <keescook@chromium.org> <kees.cook@canonical.com>
|
Kees Cook <keescook@chromium.org> <kees.cook@canonical.com>
|
||||||
Kees Cook <keescook@chromium.org> <keescook@google.com>
|
Kees Cook <keescook@chromium.org> <keescook@google.com>
|
||||||
Kees Cook <keescook@chromium.org> <kees@outflux.net>
|
Kees Cook <keescook@chromium.org> <kees@outflux.net>
|
||||||
Kees Cook <keescook@chromium.org> <kees@ubuntu.com>
|
Kees Cook <keescook@chromium.org> <kees@ubuntu.com>
|
||||||
|
Keith Busch <kbusch@kernel.org> <keith.busch@intel.com>
|
||||||
|
Keith Busch <kbusch@kernel.org> <keith.busch@linux.intel.com>
|
||||||
Kenneth W Chen <kenneth.w.chen@intel.com>
|
Kenneth W Chen <kenneth.w.chen@intel.com>
|
||||||
Konstantin Khlebnikov <koct9i@gmail.com> <khlebnikov@yandex-team.ru>
|
Konstantin Khlebnikov <koct9i@gmail.com> <khlebnikov@yandex-team.ru>
|
||||||
Konstantin Khlebnikov <koct9i@gmail.com> <k.khlebnikov@samsung.com>
|
Konstantin Khlebnikov <koct9i@gmail.com> <k.khlebnikov@samsung.com>
|
||||||
@@ -200,6 +201,9 @@ Li Yang <leoyang.li@nxp.com> <leoli@freescale.com>
|
|||||||
Li Yang <leoyang.li@nxp.com> <leo@zh-kernel.org>
|
Li Yang <leoyang.li@nxp.com> <leo@zh-kernel.org>
|
||||||
Lukasz Luba <lukasz.luba@arm.com> <l.luba@partner.samsung.com>
|
Lukasz Luba <lukasz.luba@arm.com> <l.luba@partner.samsung.com>
|
||||||
Maciej W. Rozycki <macro@mips.com> <macro@imgtec.com>
|
Maciej W. Rozycki <macro@mips.com> <macro@imgtec.com>
|
||||||
|
Maciej W. Rozycki <macro@orcam.me.uk> <macro@linux-mips.org>
|
||||||
|
Manivannan Sadhasivam <mani@kernel.org> <manivannanece23@gmail.com>
|
||||||
|
Manivannan Sadhasivam <mani@kernel.org> <manivannan.sadhasivam@linaro.org>
|
||||||
Marcin Nowakowski <marcin.nowakowski@mips.com> <marcin.nowakowski@imgtec.com>
|
Marcin Nowakowski <marcin.nowakowski@mips.com> <marcin.nowakowski@imgtec.com>
|
||||||
Marc Zyngier <maz@kernel.org> <marc.zyngier@arm.com>
|
Marc Zyngier <maz@kernel.org> <marc.zyngier@arm.com>
|
||||||
Mark Brown <broonie@sirena.org.uk>
|
Mark Brown <broonie@sirena.org.uk>
|
||||||
@@ -233,6 +237,7 @@ Maxime Ripard <mripard@kernel.org> <maxime.ripard@free-electrons.com>
|
|||||||
Mayuresh Janorkar <mayur@ti.com>
|
Mayuresh Janorkar <mayur@ti.com>
|
||||||
Michael Buesch <m@bues.ch>
|
Michael Buesch <m@bues.ch>
|
||||||
Michel Dänzer <michel@tungstengraphics.com>
|
Michel Dänzer <michel@tungstengraphics.com>
|
||||||
|
Miguel Ojeda <ojeda@kernel.org> <miguel.ojeda.sandonis@gmail.com>
|
||||||
Mike Rapoport <rppt@kernel.org> <mike@compulab.co.il>
|
Mike Rapoport <rppt@kernel.org> <mike@compulab.co.il>
|
||||||
Mike Rapoport <rppt@kernel.org> <mike.rapoport@gmail.com>
|
Mike Rapoport <rppt@kernel.org> <mike.rapoport@gmail.com>
|
||||||
Mike Rapoport <rppt@kernel.org> <rppt@linux.ibm.com>
|
Mike Rapoport <rppt@kernel.org> <rppt@linux.ibm.com>
|
||||||
@@ -245,6 +250,7 @@ Morten Welinder <welinder@anemone.rentec.com>
|
|||||||
Morten Welinder <welinder@darter.rentec.com>
|
Morten Welinder <welinder@darter.rentec.com>
|
||||||
Morten Welinder <welinder@troll.com>
|
Morten Welinder <welinder@troll.com>
|
||||||
Mythri P K <mythripk@ti.com>
|
Mythri P K <mythripk@ti.com>
|
||||||
|
Nathan Chancellor <nathan@kernel.org> <natechancellor@gmail.com>
|
||||||
Nguyen Anh Quynh <aquynh@gmail.com>
|
Nguyen Anh Quynh <aquynh@gmail.com>
|
||||||
Nicolas Ferre <nicolas.ferre@microchip.com> <nicolas.ferre@atmel.com>
|
Nicolas Ferre <nicolas.ferre@microchip.com> <nicolas.ferre@atmel.com>
|
||||||
Nicolas Pitre <nico@fluxnic.net> <nicolas.pitre@linaro.org>
|
Nicolas Pitre <nico@fluxnic.net> <nicolas.pitre@linaro.org>
|
||||||
@@ -335,6 +341,8 @@ Vinod Koul <vkoul@kernel.org> <vkoul@infradead.org>
|
|||||||
Viresh Kumar <vireshk@kernel.org> <viresh.kumar2@arm.com>
|
Viresh Kumar <vireshk@kernel.org> <viresh.kumar2@arm.com>
|
||||||
Viresh Kumar <vireshk@kernel.org> <viresh.kumar@st.com>
|
Viresh Kumar <vireshk@kernel.org> <viresh.kumar@st.com>
|
||||||
Viresh Kumar <vireshk@kernel.org> <viresh.linux@gmail.com>
|
Viresh Kumar <vireshk@kernel.org> <viresh.linux@gmail.com>
|
||||||
|
Viresh Kumar <viresh.kumar@linaro.org> <viresh.kumar@linaro.org>
|
||||||
|
Viresh Kumar <viresh.kumar@linaro.org> <viresh.kumar@linaro.com>
|
||||||
Vivien Didelot <vivien.didelot@gmail.com> <vivien.didelot@savoirfairelinux.com>
|
Vivien Didelot <vivien.didelot@gmail.com> <vivien.didelot@savoirfairelinux.com>
|
||||||
Vlad Dogaru <ddvlad@gmail.com> <vlad.dogaru@intel.com>
|
Vlad Dogaru <ddvlad@gmail.com> <vlad.dogaru@intel.com>
|
||||||
Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@parallels.com>
|
Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@parallels.com>
|
||||||
|
|||||||
41
CREDITS
41
CREDITS
@@ -710,6 +710,10 @@ S: Las Cuevas 2385 - Bo Guemes
|
|||||||
S: Las Heras, Mendoza CP 5539
|
S: Las Heras, Mendoza CP 5539
|
||||||
S: Argentina
|
S: Argentina
|
||||||
|
|
||||||
|
N: Jay Cliburn
|
||||||
|
E: jcliburn@gmail.com
|
||||||
|
D: ATLX Ethernet drivers
|
||||||
|
|
||||||
N: Steven P. Cole
|
N: Steven P. Cole
|
||||||
E: scole@lanl.gov
|
E: scole@lanl.gov
|
||||||
E: elenstev@mesatop.com
|
E: elenstev@mesatop.com
|
||||||
@@ -1240,10 +1244,10 @@ S: 80050-430 - Curitiba - Paraná
|
|||||||
S: Brazil
|
S: Brazil
|
||||||
|
|
||||||
N: Oded Gabbay
|
N: Oded Gabbay
|
||||||
E: oded.gabbay@gmail.com
|
E: ogabbay@kernel.org
|
||||||
D: HabanaLabs and AMD KFD maintainer
|
D: HabanaLabs maintainer
|
||||||
S: 12 Shraga Raphaeli
|
S: 29 Duchifat St.
|
||||||
S: Petah-Tikva, 4906418
|
S: Ra'anana 4372029
|
||||||
S: Israel
|
S: Israel
|
||||||
|
|
||||||
N: Kumar Gala
|
N: Kumar Gala
|
||||||
@@ -1284,6 +1288,10 @@ D: Major kbuild rework during the 2.5 cycle
|
|||||||
D: ISDN Maintainer
|
D: ISDN Maintainer
|
||||||
S: USA
|
S: USA
|
||||||
|
|
||||||
|
N: Gerrit Renker
|
||||||
|
E: gerrit@erg.abdn.ac.uk
|
||||||
|
D: DCCP protocol support.
|
||||||
|
|
||||||
N: Philip Gladstone
|
N: Philip Gladstone
|
||||||
E: philip@gladstonefamily.net
|
E: philip@gladstonefamily.net
|
||||||
D: Kernel / timekeeping stuff
|
D: Kernel / timekeeping stuff
|
||||||
@@ -2138,6 +2146,10 @@ E: seasons@falcon.sch.bme.hu
|
|||||||
E: seasons@makosteszta.sote.hu
|
E: seasons@makosteszta.sote.hu
|
||||||
D: Original author of software suspend
|
D: Original author of software suspend
|
||||||
|
|
||||||
|
N: Alexey Kuznetsov
|
||||||
|
E: kuznet@ms2.inr.ac.ru
|
||||||
|
D: Author and maintainer of large parts of the networking stack
|
||||||
|
|
||||||
N: Jaroslav Kysela
|
N: Jaroslav Kysela
|
||||||
E: perex@perex.cz
|
E: perex@perex.cz
|
||||||
W: https://www.perex.cz
|
W: https://www.perex.cz
|
||||||
@@ -2696,6 +2708,10 @@ N: Wolfgang Muees
|
|||||||
E: wolfgang@iksw-muees.de
|
E: wolfgang@iksw-muees.de
|
||||||
D: Auerswald USB driver
|
D: Auerswald USB driver
|
||||||
|
|
||||||
|
N: Shrijeet Mukherjee
|
||||||
|
E: shrijeet@gmail.com
|
||||||
|
D: Network routing domains (VRF).
|
||||||
|
|
||||||
N: Paul Mundt
|
N: Paul Mundt
|
||||||
E: paul.mundt@gmail.com
|
E: paul.mundt@gmail.com
|
||||||
D: SuperH maintainer
|
D: SuperH maintainer
|
||||||
@@ -2825,14 +2841,11 @@ S: Subiaco, 6008
|
|||||||
S: Perth, Western Australia
|
S: Perth, Western Australia
|
||||||
S: Australia
|
S: Australia
|
||||||
|
|
||||||
N: Miguel Ojeda Sandonis
|
N: Miguel Ojeda
|
||||||
E: miguel.ojeda.sandonis@gmail.com
|
E: ojeda@kernel.org
|
||||||
W: http://miguelojeda.es
|
W: https://ojeda.dev
|
||||||
W: http://jair.lab.fi.uva.es/~migojed/
|
|
||||||
D: Author of the ks0108, cfag12864b and cfag12864bfb auxiliary display drivers.
|
D: Author of the ks0108, cfag12864b and cfag12864bfb auxiliary display drivers.
|
||||||
D: Maintainer of the auxiliary display drivers tree (drivers/auxdisplay/*)
|
D: Maintainer of the auxiliary display drivers tree (drivers/auxdisplay/*)
|
||||||
S: C/ Mieses 20, 9-B
|
|
||||||
S: Valladolid 47009
|
|
||||||
S: Spain
|
S: Spain
|
||||||
|
|
||||||
N: Peter Oruba
|
N: Peter Oruba
|
||||||
@@ -4110,6 +4123,10 @@ S: B-1206 Jingmao Guojigongyu
|
|||||||
S: 16 Baliqiao Nanjie, Beijing 101100
|
S: 16 Baliqiao Nanjie, Beijing 101100
|
||||||
S: People's Repulic of China
|
S: People's Repulic of China
|
||||||
|
|
||||||
|
N: Aviad Yehezkel
|
||||||
|
E: aviadye@nvidia.com
|
||||||
|
D: Kernel TLS implementation and offload support.
|
||||||
|
|
||||||
N: Victor Yodaiken
|
N: Victor Yodaiken
|
||||||
E: yodaiken@fsmlabs.com
|
E: yodaiken@fsmlabs.com
|
||||||
D: RTLinux (RealTime Linux)
|
D: RTLinux (RealTime Linux)
|
||||||
@@ -4167,6 +4184,10 @@ S: 1507 145th Place SE #B5
|
|||||||
S: Bellevue, Washington 98007
|
S: Bellevue, Washington 98007
|
||||||
S: USA
|
S: USA
|
||||||
|
|
||||||
|
N: Wensong Zhang
|
||||||
|
E: wensong@linux-vs.org
|
||||||
|
D: IP virtual server (IPVS).
|
||||||
|
|
||||||
N: Haojian Zhuang
|
N: Haojian Zhuang
|
||||||
E: haojian.zhuang@gmail.com
|
E: haojian.zhuang@gmail.com
|
||||||
D: MMP support
|
D: MMP support
|
||||||
|
|||||||
19
Documentation/ABI/stable/sysfs-bus-fsl-mc
Normal file
19
Documentation/ABI/stable/sysfs-bus-fsl-mc
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
What: /sys/bus/fsl-mc/rescan
|
||||||
|
Date: January 2021
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: Ioana Ciornei <ioana.ciornei@nxp.com>
|
||||||
|
Description: Writing a non-zero value to this attribute will
|
||||||
|
force a rescan of fsl-mc bus in the system and
|
||||||
|
synchronize the objects under fsl-mc bus and the
|
||||||
|
Management Complex firmware.
|
||||||
|
Users: Userspace drivers and management tools
|
||||||
|
|
||||||
|
What: /sys/bus/fsl-mc/autorescan
|
||||||
|
Date: January 2021
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: Ioana Ciornei <ioana.ciornei@nxp.com>
|
||||||
|
Description: Writing a zero value to this attribute will
|
||||||
|
disable the DPRC IRQs on which automatic rescan
|
||||||
|
of the fsl-mc bus is performed. A non-zero value
|
||||||
|
will enable the DPRC IRQs.
|
||||||
|
Users: Userspace drivers and management tools
|
||||||
@@ -1,3 +1,10 @@
|
|||||||
|
What: /sys/bus/vmbus/hibernation
|
||||||
|
Date: Jan 2021
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: Dexuan Cui <decui@microsoft.com>
|
||||||
|
Description: Whether the host supports hibernation for the VM.
|
||||||
|
Users: Daemon that sets up swap partition/file for hibernation.
|
||||||
|
|
||||||
What: /sys/bus/vmbus/devices/<UUID>/id
|
What: /sys/bus/vmbus/devices/<UUID>/id
|
||||||
Date: Jul 2009
|
Date: Jul 2009
|
||||||
KernelVersion: 2.6.31
|
KernelVersion: 2.6.31
|
||||||
|
|||||||
@@ -194,3 +194,17 @@ Description: The "tpm_version_major" property shows the TCG spec major version
|
|||||||
Example output::
|
Example output::
|
||||||
|
|
||||||
2
|
2
|
||||||
|
|
||||||
|
What: /sys/class/tpm/tpmX/pcr-H/N
|
||||||
|
Date: March 2021
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: linux-integrity@vger.kernel.org
|
||||||
|
Description: produces output in compact hex representation for PCR
|
||||||
|
number N from hash bank H. N is the numeric value of
|
||||||
|
the PCR number and H is the crypto string
|
||||||
|
representation of the hash
|
||||||
|
|
||||||
|
Example output::
|
||||||
|
|
||||||
|
cat /sys/class/tpm/tpm0/pcr-sha256/7
|
||||||
|
2ED93F199692DC6788EFA6A1FE74514AB9760B2A6CEEAEF6C808C13E4ABB0D42
|
||||||
|
|||||||
@@ -273,7 +273,7 @@ Description: In `/sys/accessibility/speakup` is a directory corresponding to
|
|||||||
Below is a description of values and parameters for soft
|
Below is a description of values and parameters for soft
|
||||||
synthesizer, which is currently the most commonly used.
|
synthesizer, which is currently the most commonly used.
|
||||||
|
|
||||||
What: /sys/accessibility/speakup/soft/caps_start
|
What: /sys/accessibility/speakup/<synth-name>/caps_start
|
||||||
KernelVersion: 2.6
|
KernelVersion: 2.6
|
||||||
Contact: speakup@linux-speakup.org
|
Contact: speakup@linux-speakup.org
|
||||||
Description: This is the string that is sent to the synthesizer to cause it
|
Description: This is the string that is sent to the synthesizer to cause it
|
||||||
@@ -281,7 +281,7 @@ Description: This is the string that is sent to the synthesizer to cause it
|
|||||||
and most others, this causes the pitch of the voice to rise
|
and most others, this causes the pitch of the voice to rise
|
||||||
above the currently set pitch.
|
above the currently set pitch.
|
||||||
|
|
||||||
What: /sys/accessibility/speakup/soft/caps_stop
|
What: /sys/accessibility/speakup/<synth-name>/caps_stop
|
||||||
KernelVersion: 2.6
|
KernelVersion: 2.6
|
||||||
Contact: speakup@linux-speakup.org
|
Contact: speakup@linux-speakup.org
|
||||||
Description: This is the string sent to the synthesizer to cause it to stop
|
Description: This is the string sent to the synthesizer to cause it to stop
|
||||||
@@ -290,12 +290,12 @@ Description: This is the string sent to the synthesizer to cause it to stop
|
|||||||
down to the
|
down to the
|
||||||
currently set pitch.
|
currently set pitch.
|
||||||
|
|
||||||
What: /sys/accessibility/speakup/soft/delay_time
|
What: /sys/accessibility/speakup/<synth-name>/delay_time
|
||||||
KernelVersion: 2.6
|
KernelVersion: 2.6
|
||||||
Contact: speakup@linux-speakup.org
|
Contact: speakup@linux-speakup.org
|
||||||
Description: TODO:
|
Description: TODO:
|
||||||
|
|
||||||
What: /sys/accessibility/speakup/soft/direct
|
What: /sys/accessibility/speakup/<synth-name>/direct
|
||||||
KernelVersion: 2.6
|
KernelVersion: 2.6
|
||||||
Contact: speakup@linux-speakup.org
|
Contact: speakup@linux-speakup.org
|
||||||
Description: Controls if punctuation is spoken by speakup, or by the
|
Description: Controls if punctuation is spoken by speakup, or by the
|
||||||
@@ -306,36 +306,43 @@ Description: Controls if punctuation is spoken by speakup, or by the
|
|||||||
than". Zero lets speakup speak the punctuation. One lets the
|
than". Zero lets speakup speak the punctuation. One lets the
|
||||||
synthesizer itself speak punctuation.
|
synthesizer itself speak punctuation.
|
||||||
|
|
||||||
What: /sys/accessibility/speakup/soft/freq
|
What: /sys/accessibility/speakup/<synth-name>/freq
|
||||||
KernelVersion: 2.6
|
KernelVersion: 2.6
|
||||||
Contact: speakup@linux-speakup.org
|
Contact: speakup@linux-speakup.org
|
||||||
Description: Gets or sets the frequency of the speech synthesizer. Range is
|
Description: Gets or sets the frequency of the speech synthesizer. Range is
|
||||||
0-9.
|
0-9.
|
||||||
|
|
||||||
What: /sys/accessibility/speakup/soft/full_time
|
What: /sys/accessibility/speakup/<synth-name>/flush_time
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: speakup@linux-speakup.org
|
||||||
|
Description: Gets or sets the timeout to wait for the synthesizer flush to
|
||||||
|
complete. This can be used when the cable gets faulty and flush
|
||||||
|
notifications are getting lost.
|
||||||
|
|
||||||
|
What: /sys/accessibility/speakup/<synth-name>/full_time
|
||||||
KernelVersion: 2.6
|
KernelVersion: 2.6
|
||||||
Contact: speakup@linux-speakup.org
|
Contact: speakup@linux-speakup.org
|
||||||
Description: TODO:
|
Description: TODO:
|
||||||
|
|
||||||
What: /sys/accessibility/speakup/soft/jiffy_delta
|
What: /sys/accessibility/speakup/<synth-name>/jiffy_delta
|
||||||
KernelVersion: 2.6
|
KernelVersion: 2.6
|
||||||
Contact: speakup@linux-speakup.org
|
Contact: speakup@linux-speakup.org
|
||||||
Description: This controls how many jiffys the kernel gives to the
|
Description: This controls how many jiffys the kernel gives to the
|
||||||
synthesizer. Setting this too high can make a system unstable,
|
synthesizer. Setting this too high can make a system unstable,
|
||||||
or even crash it.
|
or even crash it.
|
||||||
|
|
||||||
What: /sys/accessibility/speakup/soft/pitch
|
What: /sys/accessibility/speakup/<synth-name>/pitch
|
||||||
KernelVersion: 2.6
|
KernelVersion: 2.6
|
||||||
Contact: speakup@linux-speakup.org
|
Contact: speakup@linux-speakup.org
|
||||||
Description: Gets or sets the pitch of the synthesizer. The range is 0-9.
|
Description: Gets or sets the pitch of the synthesizer. The range is 0-9.
|
||||||
|
|
||||||
What: /sys/accessibility/speakup/soft/inflection
|
What: /sys/accessibility/speakup/<synth-name>/inflection
|
||||||
KernelVersion: 5.8
|
KernelVersion: 5.8
|
||||||
Contact: speakup@linux-speakup.org
|
Contact: speakup@linux-speakup.org
|
||||||
Description: Gets or sets the inflection of the synthesizer, i.e. the pitch
|
Description: Gets or sets the inflection of the synthesizer, i.e. the pitch
|
||||||
range. The range is 0-9.
|
range. The range is 0-9.
|
||||||
|
|
||||||
What: /sys/accessibility/speakup/soft/punct
|
What: /sys/accessibility/speakup/<synth-name>/punct
|
||||||
KernelVersion: 2.6
|
KernelVersion: 2.6
|
||||||
Contact: speakup@linux-speakup.org
|
Contact: speakup@linux-speakup.org
|
||||||
Description: Gets or sets the amount of punctuation spoken by the
|
Description: Gets or sets the amount of punctuation spoken by the
|
||||||
@@ -343,13 +350,13 @@ Description: Gets or sets the amount of punctuation spoken by the
|
|||||||
TODO: How is this related to speakup's punc_level, or
|
TODO: How is this related to speakup's punc_level, or
|
||||||
reading_punc.
|
reading_punc.
|
||||||
|
|
||||||
What: /sys/accessibility/speakup/soft/rate
|
What: /sys/accessibility/speakup/<synth-name>/rate
|
||||||
KernelVersion: 2.6
|
KernelVersion: 2.6
|
||||||
Contact: speakup@linux-speakup.org
|
Contact: speakup@linux-speakup.org
|
||||||
Description: Gets or sets the rate of the synthesizer. Range is from zero
|
Description: Gets or sets the rate of the synthesizer. Range is from zero
|
||||||
slowest, to nine fastest.
|
slowest, to nine fastest.
|
||||||
|
|
||||||
What: /sys/accessibility/speakup/soft/tone
|
What: /sys/accessibility/speakup/<synth-name>/tone
|
||||||
KernelVersion: 2.6
|
KernelVersion: 2.6
|
||||||
Contact: speakup@linux-speakup.org
|
Contact: speakup@linux-speakup.org
|
||||||
Description: Gets or sets the tone of the speech synthesizer. The range for
|
Description: Gets or sets the tone of the speech synthesizer. The range for
|
||||||
@@ -357,12 +364,12 @@ Description: Gets or sets the tone of the speech synthesizer. The range for
|
|||||||
difference if using espeak and the espeakup connector.
|
difference if using espeak and the espeakup connector.
|
||||||
TODO: does espeakup support different tonalities?
|
TODO: does espeakup support different tonalities?
|
||||||
|
|
||||||
What: /sys/accessibility/speakup/soft/trigger_time
|
What: /sys/accessibility/speakup/<synth-name>/trigger_time
|
||||||
KernelVersion: 2.6
|
KernelVersion: 2.6
|
||||||
Contact: speakup@linux-speakup.org
|
Contact: speakup@linux-speakup.org
|
||||||
Description: TODO:
|
Description: TODO:
|
||||||
|
|
||||||
What: /sys/accessibility/speakup/soft/voice
|
What: /sys/accessibility/speakup/<synth-name>/voice
|
||||||
KernelVersion: 2.6
|
KernelVersion: 2.6
|
||||||
Contact: speakup@linux-speakup.org
|
Contact: speakup@linux-speakup.org
|
||||||
Description: Gets or sets the voice used by the synthesizer if the
|
Description: Gets or sets the voice used by the synthesizer if the
|
||||||
@@ -371,7 +378,7 @@ Description: Gets or sets the voice used by the synthesizer if the
|
|||||||
voices, this parameter will not set the voice when the espeakup
|
voices, this parameter will not set the voice when the espeakup
|
||||||
connector is used between speakup and espeak.
|
connector is used between speakup and espeak.
|
||||||
|
|
||||||
What: /sys/accessibility/speakup/soft/vol
|
What: /sys/accessibility/speakup/<synth-name>/vol
|
||||||
KernelVersion: 2.6
|
KernelVersion: 2.6
|
||||||
Contact: speakup@linux-speakup.org
|
Contact: speakup@linux-speakup.org
|
||||||
Description: Gets or sets the volume of the speech synthesizer. Range is 0-9,
|
Description: Gets or sets the volume of the speech synthesizer. Range is 0-9,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
What: /sys/kernel/debug/habanalabs/hl<n>/addr
|
What: /sys/kernel/debug/habanalabs/hl<n>/addr
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Sets the device address to be used for read or write through
|
Description: Sets the device address to be used for read or write through
|
||||||
PCI bar, or the device VA of a host mapped memory to be read or
|
PCI bar, or the device VA of a host mapped memory to be read or
|
||||||
written directly from the host. The latter option is allowed
|
written directly from the host. The latter option is allowed
|
||||||
@@ -11,7 +11,7 @@ Description: Sets the device address to be used for read or write through
|
|||||||
What: /sys/kernel/debug/habanalabs/hl<n>/clk_gate
|
What: /sys/kernel/debug/habanalabs/hl<n>/clk_gate
|
||||||
Date: May 2020
|
Date: May 2020
|
||||||
KernelVersion: 5.8
|
KernelVersion: 5.8
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Allow the root user to disable/enable in runtime the clock
|
Description: Allow the root user to disable/enable in runtime the clock
|
||||||
gating mechanism in Gaudi. Due to how Gaudi is built, the
|
gating mechanism in Gaudi. Due to how Gaudi is built, the
|
||||||
clock gating needs to be disabled in order to access the
|
clock gating needs to be disabled in order to access the
|
||||||
@@ -34,28 +34,28 @@ Description: Allow the root user to disable/enable in runtime the clock
|
|||||||
What: /sys/kernel/debug/habanalabs/hl<n>/command_buffers
|
What: /sys/kernel/debug/habanalabs/hl<n>/command_buffers
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Displays a list with information about the currently allocated
|
Description: Displays a list with information about the currently allocated
|
||||||
command buffers
|
command buffers
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/command_submission
|
What: /sys/kernel/debug/habanalabs/hl<n>/command_submission
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Displays a list with information about the currently active
|
Description: Displays a list with information about the currently active
|
||||||
command submissions
|
command submissions
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/command_submission_jobs
|
What: /sys/kernel/debug/habanalabs/hl<n>/command_submission_jobs
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Displays a list with detailed information about each JOB (CB) of
|
Description: Displays a list with detailed information about each JOB (CB) of
|
||||||
each active command submission
|
each active command submission
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/data32
|
What: /sys/kernel/debug/habanalabs/hl<n>/data32
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Allows the root user to read or write directly through the
|
Description: Allows the root user to read or write directly through the
|
||||||
device's PCI bar. Writing to this file generates a write
|
device's PCI bar. Writing to this file generates a write
|
||||||
transaction while reading from the file generates a read
|
transaction while reading from the file generates a read
|
||||||
@@ -70,7 +70,7 @@ Description: Allows the root user to read or write directly through the
|
|||||||
What: /sys/kernel/debug/habanalabs/hl<n>/data64
|
What: /sys/kernel/debug/habanalabs/hl<n>/data64
|
||||||
Date: Jan 2020
|
Date: Jan 2020
|
||||||
KernelVersion: 5.6
|
KernelVersion: 5.6
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Allows the root user to read or write 64 bit data directly
|
Description: Allows the root user to read or write 64 bit data directly
|
||||||
through the device's PCI bar. Writing to this file generates a
|
through the device's PCI bar. Writing to this file generates a
|
||||||
write transaction while reading from the file generates a read
|
write transaction while reading from the file generates a read
|
||||||
@@ -85,7 +85,7 @@ Description: Allows the root user to read or write 64 bit data directly
|
|||||||
What: /sys/kernel/debug/habanalabs/hl<n>/device
|
What: /sys/kernel/debug/habanalabs/hl<n>/device
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Enables the root user to set the device to specific state.
|
Description: Enables the root user to set the device to specific state.
|
||||||
Valid values are "disable", "enable", "suspend", "resume".
|
Valid values are "disable", "enable", "suspend", "resume".
|
||||||
User can read this property to see the valid values
|
User can read this property to see the valid values
|
||||||
@@ -93,28 +93,28 @@ Description: Enables the root user to set the device to specific state.
|
|||||||
What: /sys/kernel/debug/habanalabs/hl<n>/engines
|
What: /sys/kernel/debug/habanalabs/hl<n>/engines
|
||||||
Date: Jul 2019
|
Date: Jul 2019
|
||||||
KernelVersion: 5.3
|
KernelVersion: 5.3
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Displays the status registers values of the device engines and
|
Description: Displays the status registers values of the device engines and
|
||||||
their derived idle status
|
their derived idle status
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_addr
|
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_addr
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Sets I2C device address for I2C transaction that is generated
|
Description: Sets I2C device address for I2C transaction that is generated
|
||||||
by the device's CPU
|
by the device's CPU
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_bus
|
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_bus
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Sets I2C bus address for I2C transaction that is generated by
|
Description: Sets I2C bus address for I2C transaction that is generated by
|
||||||
the device's CPU
|
the device's CPU
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_data
|
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_data
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Triggers an I2C transaction that is generated by the device's
|
Description: Triggers an I2C transaction that is generated by the device's
|
||||||
CPU. Writing to this file generates a write transaction while
|
CPU. Writing to this file generates a write transaction while
|
||||||
reading from the file generates a read transcation
|
reading from the file generates a read transcation
|
||||||
@@ -122,32 +122,32 @@ Description: Triggers an I2C transaction that is generated by the device's
|
|||||||
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_reg
|
What: /sys/kernel/debug/habanalabs/hl<n>/i2c_reg
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Sets I2C register id for I2C transaction that is generated by
|
Description: Sets I2C register id for I2C transaction that is generated by
|
||||||
the device's CPU
|
the device's CPU
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/led0
|
What: /sys/kernel/debug/habanalabs/hl<n>/led0
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Sets the state of the first S/W led on the device
|
Description: Sets the state of the first S/W led on the device
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/led1
|
What: /sys/kernel/debug/habanalabs/hl<n>/led1
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Sets the state of the second S/W led on the device
|
Description: Sets the state of the second S/W led on the device
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/led2
|
What: /sys/kernel/debug/habanalabs/hl<n>/led2
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Sets the state of the third S/W led on the device
|
Description: Sets the state of the third S/W led on the device
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/mmu
|
What: /sys/kernel/debug/habanalabs/hl<n>/mmu
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Displays the hop values and physical address for a given ASID
|
Description: Displays the hop values and physical address for a given ASID
|
||||||
and virtual address. The user should write the ASID and VA into
|
and virtual address. The user should write the ASID and VA into
|
||||||
the file and then read the file to get the result.
|
the file and then read the file to get the result.
|
||||||
@@ -157,14 +157,14 @@ Description: Displays the hop values and physical address for a given ASID
|
|||||||
What: /sys/kernel/debug/habanalabs/hl<n>/set_power_state
|
What: /sys/kernel/debug/habanalabs/hl<n>/set_power_state
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Sets the PCI power state. Valid values are "1" for D0 and "2"
|
Description: Sets the PCI power state. Valid values are "1" for D0 and "2"
|
||||||
for D3Hot
|
for D3Hot
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/userptr
|
What: /sys/kernel/debug/habanalabs/hl<n>/userptr
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Displays a list with information about the currently user
|
Description: Displays a list with information about the currently user
|
||||||
pointers (user virtual addresses) that are pinned and mapped
|
pointers (user virtual addresses) that are pinned and mapped
|
||||||
to DMA addresses
|
to DMA addresses
|
||||||
@@ -172,13 +172,21 @@ Description: Displays a list with information about the currently user
|
|||||||
What: /sys/kernel/debug/habanalabs/hl<n>/vm
|
What: /sys/kernel/debug/habanalabs/hl<n>/vm
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Displays a list with information about all the active virtual
|
Description: Displays a list with information about all the active virtual
|
||||||
address mappings per ASID
|
address mappings per ASID
|
||||||
|
|
||||||
What: /sys/kernel/debug/habanalabs/hl<n>/stop_on_err
|
What: /sys/kernel/debug/habanalabs/hl<n>/stop_on_err
|
||||||
Date: Mar 2020
|
Date: Mar 2020
|
||||||
KernelVersion: 5.6
|
KernelVersion: 5.6
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Sets the stop-on_error option for the device engines. Value of
|
Description: Sets the stop-on_error option for the device engines. Value of
|
||||||
"0" is for disable, otherwise enable.
|
"0" is for disable, otherwise enable.
|
||||||
|
|
||||||
|
What: /sys/kernel/debug/habanalabs/hl<n>/dump_security_violations
|
||||||
|
Date: Jan 2021
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: ogabbay@kernel.org
|
||||||
|
Description: Dumps all security violations to dmesg. This will also ack
|
||||||
|
all security violations meanings those violations will not be
|
||||||
|
dumped next time user calls this API
|
||||||
|
|||||||
@@ -29,10 +29,10 @@ Description:
|
|||||||
option: [[appraise_type=]] [template=] [permit_directio]
|
option: [[appraise_type=]] [template=] [permit_directio]
|
||||||
[appraise_flag=] [keyrings=]
|
[appraise_flag=] [keyrings=]
|
||||||
base:
|
base:
|
||||||
func:= [BPRM_CHECK][MMAP_CHECK][CREDS_CHECK][FILE_CHECK]MODULE_CHECK]
|
func:= [BPRM_CHECK][MMAP_CHECK][CREDS_CHECK][FILE_CHECK][MODULE_CHECK]
|
||||||
[FIRMWARE_CHECK]
|
[FIRMWARE_CHECK]
|
||||||
[KEXEC_KERNEL_CHECK] [KEXEC_INITRAMFS_CHECK]
|
[KEXEC_KERNEL_CHECK] [KEXEC_INITRAMFS_CHECK]
|
||||||
[KEXEC_CMDLINE] [KEY_CHECK]
|
[KEXEC_CMDLINE] [KEY_CHECK] [CRITICAL_DATA]
|
||||||
mask:= [[^]MAY_READ] [[^]MAY_WRITE] [[^]MAY_APPEND]
|
mask:= [[^]MAY_READ] [[^]MAY_WRITE] [[^]MAY_APPEND]
|
||||||
[[^]MAY_EXEC]
|
[[^]MAY_EXEC]
|
||||||
fsmagic:= hex value
|
fsmagic:= hex value
|
||||||
@@ -52,6 +52,9 @@ Description:
|
|||||||
template:= name of a defined IMA template type
|
template:= name of a defined IMA template type
|
||||||
(eg, ima-ng). Only valid when action is "measure".
|
(eg, ima-ng). Only valid when action is "measure".
|
||||||
pcr:= decimal value
|
pcr:= decimal value
|
||||||
|
label:= [selinux]|[kernel_info]|[data_label]
|
||||||
|
data_label:= a unique string used for grouping and limiting critical data.
|
||||||
|
For example, "selinux" to measure critical data for SELinux.
|
||||||
|
|
||||||
default policy:
|
default policy:
|
||||||
# PROC_SUPER_MAGIC
|
# PROC_SUPER_MAGIC
|
||||||
|
|||||||
@@ -371,6 +371,14 @@ Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
|||||||
Description: (Read) Print the content of the Device ID Register
|
Description: (Read) Print the content of the Device ID Register
|
||||||
(0xFC8). The value is taken directly from the HW.
|
(0xFC8). The value is taken directly from the HW.
|
||||||
|
|
||||||
|
What: /sys/bus/coresight/devices/etm<N>/mgmt/trcdevarch
|
||||||
|
Date: January 2021
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||||
|
Description: (Read) Print the content of the Device Architecture Register
|
||||||
|
(offset 0xFBC). The value is taken directly read
|
||||||
|
from the HW.
|
||||||
|
|
||||||
What: /sys/bus/coresight/devices/etm<N>/mgmt/trcdevtype
|
What: /sys/bus/coresight/devices/etm<N>/mgmt/trcdevtype
|
||||||
Date: April 2015
|
Date: April 2015
|
||||||
KernelVersion: 4.01
|
KernelVersion: 4.01
|
||||||
|
|||||||
26
Documentation/ABI/testing/sysfs-bus-cxl
Normal file
26
Documentation/ABI/testing/sysfs-bus-cxl
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
What: /sys/bus/cxl/devices/memX/firmware_version
|
||||||
|
Date: December, 2020
|
||||||
|
KernelVersion: v5.12
|
||||||
|
Contact: linux-cxl@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
(RO) "FW Revision" string as reported by the Identify
|
||||||
|
Memory Device Output Payload in the CXL-2.0
|
||||||
|
specification.
|
||||||
|
|
||||||
|
What: /sys/bus/cxl/devices/memX/ram/size
|
||||||
|
Date: December, 2020
|
||||||
|
KernelVersion: v5.12
|
||||||
|
Contact: linux-cxl@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
(RO) "Volatile Only Capacity" as bytes. Represents the
|
||||||
|
identically named field in the Identify Memory Device Output
|
||||||
|
Payload in the CXL-2.0 specification.
|
||||||
|
|
||||||
|
What: /sys/bus/cxl/devices/memX/pmem/size
|
||||||
|
Date: December, 2020
|
||||||
|
KernelVersion: v5.12
|
||||||
|
Contact: linux-cxl@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
(RO) "Persistent Only Capacity" as bytes. Represents the
|
||||||
|
identically named field in the Identify Memory Device Output
|
||||||
|
Payload in the CXL-2.0 specification.
|
||||||
25
Documentation/ABI/testing/sysfs-bus-dfl-devices-emif
Normal file
25
Documentation/ABI/testing/sysfs-bus-dfl-devices-emif
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
What: /sys/bus/dfl/devices/dfl_dev.X/infX_cal_fail
|
||||||
|
Date: Oct 2020
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: Xu Yilun <yilun.xu@intel.com>
|
||||||
|
Description: Read-only. It indicates if the calibration failed on this
|
||||||
|
memory interface. "1" for calibration failure, "0" for OK.
|
||||||
|
Format: %u
|
||||||
|
|
||||||
|
What: /sys/bus/dfl/devices/dfl_dev.X/infX_init_done
|
||||||
|
Date: Oct 2020
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: Xu Yilun <yilun.xu@intel.com>
|
||||||
|
Description: Read-only. It indicates if the initialization completed on
|
||||||
|
this memory interface. "1" for initialization complete, "0"
|
||||||
|
for not yet.
|
||||||
|
Format: %u
|
||||||
|
|
||||||
|
What: /sys/bus/dfl/devices/dfl_dev.X/infX_clear
|
||||||
|
Date: Oct 2020
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: Xu Yilun <yilun.xu@intel.com>
|
||||||
|
Description: Write-only. Writing "1" to this file will zero out all memory
|
||||||
|
data in this memory interface. Writing of other values is
|
||||||
|
invalid.
|
||||||
|
Format: %u
|
||||||
47
Documentation/ABI/testing/sysfs-bus-dfl-devices-n3000-nios
Normal file
47
Documentation/ABI/testing/sysfs-bus-dfl-devices-n3000-nios
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
What: /sys/bus/dfl/devices/dfl_dev.X/fec_mode
|
||||||
|
Date: Oct 2020
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: Xu Yilun <yilun.xu@intel.com>
|
||||||
|
Description: Read-only. Returns the FEC mode of the 25G links of the
|
||||||
|
ethernet retimers configured by Nios firmware. "rs" for Reed
|
||||||
|
Solomon FEC, "kr" for Fire Code FEC, "no" for NO FEC.
|
||||||
|
"not supported" if the FEC mode setting is not supported, this
|
||||||
|
happens when the Nios firmware version major < 3, or no link is
|
||||||
|
configured to 25G.
|
||||||
|
Format: string
|
||||||
|
|
||||||
|
What: /sys/bus/dfl/devices/dfl_dev.X/retimer_A_mode
|
||||||
|
Date: Oct 2020
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: Xu Yilun <yilun.xu@intel.com>
|
||||||
|
Description: Read-only. Returns the enumeration value of the working mode of
|
||||||
|
the retimer A configured by the Nios firmware. The value is
|
||||||
|
read out from shared registers filled by the Nios firmware. Now
|
||||||
|
the values could be:
|
||||||
|
|
||||||
|
- "0": Reset
|
||||||
|
- "1": 4x10G
|
||||||
|
- "2": 4x25G
|
||||||
|
- "3": 2x25G
|
||||||
|
- "4": 2x25G+2x10G
|
||||||
|
- "5": 1x25G
|
||||||
|
|
||||||
|
If the Nios firmware is updated in future to support more
|
||||||
|
retimer modes, more enumeration value is expected.
|
||||||
|
Format: 0x%x
|
||||||
|
|
||||||
|
What: /sys/bus/dfl/devices/dfl_dev.X/retimer_B_mode
|
||||||
|
Date: Oct 2020
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: Xu Yilun <yilun.xu@intel.com>
|
||||||
|
Description: Read-only. Returns the enumeration value of the working mode of
|
||||||
|
the retimer B configured by the Nios firmware. The value format
|
||||||
|
is the same as retimer_A_mode.
|
||||||
|
|
||||||
|
What: /sys/bus/dfl/devices/dfl_dev.X/nios_fw_version
|
||||||
|
Date: Oct 2020
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: Xu Yilun <yilun.xu@intel.com>
|
||||||
|
Description: Read-only. Returns the version of the Nios firmware in the
|
||||||
|
FPGA. Its format is "major.minor.patch".
|
||||||
|
Format: %x.%x.%x
|
||||||
@@ -198,6 +198,7 @@ Description:
|
|||||||
Units after application of scale and offset are m/s^2.
|
Units after application of scale and offset are m/s^2.
|
||||||
|
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/in_angl_raw
|
What: /sys/bus/iio/devices/iio:deviceX/in_angl_raw
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/in_anglY_raw
|
||||||
KernelVersion: 4.17
|
KernelVersion: 4.17
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
@@ -1812,3 +1813,13 @@ Contact: linux-iio@vger.kernel.org
|
|||||||
Description:
|
Description:
|
||||||
Unscaled light intensity according to CIE 1931/DIN 5033 color space.
|
Unscaled light intensity according to CIE 1931/DIN 5033 color space.
|
||||||
Units after application of scale are nano nanowatts per square meter.
|
Units after application of scale are nano nanowatts per square meter.
|
||||||
|
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/in_anglY_label
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: linux-iio@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Optional symbolic label for channel Y.
|
||||||
|
For Intel hid hinge sensor, the label values are:
|
||||||
|
hinge, keyboard, screen. It means the three channels
|
||||||
|
each correspond respectively to hinge angle, keyboard angle,
|
||||||
|
and screen angle.
|
||||||
|
|||||||
31
Documentation/ABI/testing/sysfs-bus-iio-dac-ad5766
Normal file
31
Documentation/ABI/testing/sysfs-bus-iio-dac-ad5766
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_dither_enable
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: linux-iio@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Dither enable. Write 1 to enable dither or 0 to disable it.
|
||||||
|
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_dither_invert
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: linux-iio@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Inverts the dither applied to the selected DAC channel. Dither is not
|
||||||
|
inverted by default. Write "1" to invert dither.
|
||||||
|
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_dither_scale_available
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: linux-iio@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Returns possible scalings available for the current channel.
|
||||||
|
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_dither_scale
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: linux-iio@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Scales the dither before it is applied to the selected channel.
|
||||||
|
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_dither_source
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: linux-iio@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Selects dither source applied to the selected channel. Write "0" to
|
||||||
|
select N0 source, write "1" to select N1 source.
|
||||||
24
Documentation/ABI/testing/sysfs-bus-pci-devices-pvpanic
Normal file
24
Documentation/ABI/testing/sysfs-bus-pci-devices-pvpanic
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
What: /sys/devices/pci0000:00/*/QEMU0001:00/capability
|
||||||
|
Date: Jan 2021
|
||||||
|
Contact: zhenwei pi <pizhenwei@bytedance.com>
|
||||||
|
Description:
|
||||||
|
Read-only attribute. Capabilities of pvpanic device which
|
||||||
|
are supported by QEMU.
|
||||||
|
|
||||||
|
Format: %x.
|
||||||
|
|
||||||
|
Detailed bit definition refers to section <Bit Definition>
|
||||||
|
from pvpanic device specification:
|
||||||
|
https://git.qemu.org/?p=qemu.git;a=blob_plain;f=docs/specs/pvpanic.txt
|
||||||
|
|
||||||
|
What: /sys/devices/pci0000:00/*/QEMU0001:00/events
|
||||||
|
Date: Jan 2021
|
||||||
|
Contact: zhenwei pi <pizhenwei@bytedance.com>
|
||||||
|
Description:
|
||||||
|
RW attribute. Set/get which features in-use. This attribute
|
||||||
|
is used to enable/disable feature(s) of pvpanic device.
|
||||||
|
Notice that this value should be a subset of capability.
|
||||||
|
|
||||||
|
Format: %x.
|
||||||
|
|
||||||
|
Also refer to pvpanic device specification.
|
||||||
@@ -49,6 +49,15 @@ Description: Holds a comma separated list of device unique_ids that
|
|||||||
If a device is authorized automatically during boot its
|
If a device is authorized automatically during boot its
|
||||||
boot attribute is set to 1.
|
boot attribute is set to 1.
|
||||||
|
|
||||||
|
What: /sys/bus/thunderbolt/devices/.../domainX/deauthorization
|
||||||
|
Date: May 2021
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: Mika Westerberg <mika.westerberg@linux.intel.com>
|
||||||
|
Description: This attribute tells whether the system supports
|
||||||
|
de-authorization of devices. Value of 1 means user can
|
||||||
|
de-authorize PCIe tunnel by writing 0 to authorized
|
||||||
|
attribute under each device.
|
||||||
|
|
||||||
What: /sys/bus/thunderbolt/devices/.../domainX/iommu_dma_protection
|
What: /sys/bus/thunderbolt/devices/.../domainX/iommu_dma_protection
|
||||||
Date: Mar 2019
|
Date: Mar 2019
|
||||||
KernelVersion: 4.21
|
KernelVersion: 4.21
|
||||||
@@ -76,6 +85,8 @@ Description: This attribute holds current Thunderbolt security level
|
|||||||
usbonly Automatically tunnel USB controller of the
|
usbonly Automatically tunnel USB controller of the
|
||||||
connected Thunderbolt dock (and Display Port). All
|
connected Thunderbolt dock (and Display Port). All
|
||||||
PCIe links downstream of the dock are removed.
|
PCIe links downstream of the dock are removed.
|
||||||
|
nopcie USB4 system where PCIe tunneling is disabled from
|
||||||
|
the BIOS.
|
||||||
======= ==================================================
|
======= ==================================================
|
||||||
|
|
||||||
What: /sys/bus/thunderbolt/devices/.../authorized
|
What: /sys/bus/thunderbolt/devices/.../authorized
|
||||||
@@ -84,22 +95,25 @@ KernelVersion: 4.13
|
|||||||
Contact: thunderbolt-software@lists.01.org
|
Contact: thunderbolt-software@lists.01.org
|
||||||
Description: This attribute is used to authorize Thunderbolt devices
|
Description: This attribute is used to authorize Thunderbolt devices
|
||||||
after they have been connected. If the device is not
|
after they have been connected. If the device is not
|
||||||
authorized, no devices such as PCIe and Display port are
|
authorized, no PCIe devices are available to the system.
|
||||||
available to the system.
|
|
||||||
|
|
||||||
Contents of this attribute will be 0 when the device is not
|
Contents of this attribute will be 0 when the device is not
|
||||||
yet authorized.
|
yet authorized.
|
||||||
|
|
||||||
Possible values are supported:
|
Possible values are supported:
|
||||||
|
|
||||||
== ===========================================
|
== ===================================================
|
||||||
|
0 The device will be de-authorized (only supported if
|
||||||
|
deauthorization attribute under domain contains 1)
|
||||||
1 The device will be authorized and connected
|
1 The device will be authorized and connected
|
||||||
== ===========================================
|
== ===================================================
|
||||||
|
|
||||||
When key attribute contains 32 byte hex string the possible
|
When key attribute contains 32 byte hex string the possible
|
||||||
values are:
|
values are:
|
||||||
|
|
||||||
== ========================================================
|
== ========================================================
|
||||||
|
0 The device will be de-authorized (only supported if
|
||||||
|
deauthorization attribute under domain contains 1)
|
||||||
1 The 32 byte hex string is added to the device NVM and
|
1 The 32 byte hex string is added to the device NVM and
|
||||||
the device is authorized.
|
the device is authorized.
|
||||||
2 Send a challenge based on the 32 byte hex string. If the
|
2 Send a challenge based on the 32 byte hex string. If the
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ Description:
|
|||||||
Provide a place in sysfs for the device link objects in the
|
Provide a place in sysfs for the device link objects in the
|
||||||
kernel at any given time. The name of a device link directory,
|
kernel at any given time. The name of a device link directory,
|
||||||
denoted as ... above, is of the form <supplier>--<consumer>
|
denoted as ... above, is of the form <supplier>--<consumer>
|
||||||
where <supplier> is the supplier device name and <consumer> is
|
where <supplier> is the supplier bus:device name and <consumer>
|
||||||
the consumer device name.
|
is the consumer bus:device name.
|
||||||
|
|
||||||
What: /sys/class/devlink/.../auto_remove_on
|
What: /sys/class/devlink/.../auto_remove_on
|
||||||
Date: May 2020
|
Date: May 2020
|
||||||
|
|||||||
6
Documentation/ABI/testing/sysfs-class-led-trigger-tty
Normal file
6
Documentation/ABI/testing/sysfs-class-led-trigger-tty
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
What: /sys/class/leds/<led>/ttyname
|
||||||
|
Date: Dec 2020
|
||||||
|
KernelVersion: 5.10
|
||||||
|
Contact: linux-leds@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Specifies the tty device name of the triggering tty
|
||||||
@@ -337,3 +337,18 @@ Contact: netdev@vger.kernel.org
|
|||||||
Description:
|
Description:
|
||||||
32-bit unsigned integer counting the number of times the link has
|
32-bit unsigned integer counting the number of times the link has
|
||||||
been down
|
been down
|
||||||
|
|
||||||
|
What: /sys/class/net/<iface>/threaded
|
||||||
|
Date: Jan 2021
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: netdev@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Boolean value to control the threaded mode per device. User could
|
||||||
|
set this value to enable/disable threaded mode for all napi
|
||||||
|
belonging to this device, without the need to do device up/down.
|
||||||
|
|
||||||
|
Possible values:
|
||||||
|
== ==================================
|
||||||
|
0 threaded mode disabled for this dev
|
||||||
|
1 threaded mode enabled for this dev
|
||||||
|
== ==================================
|
||||||
|
|||||||
@@ -3,5 +3,12 @@ Date: August 2018
|
|||||||
KernelVersion: 4.20
|
KernelVersion: 4.20
|
||||||
Contact: netdev@vger.kernel.org
|
Contact: netdev@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
String indicating the type of tagging protocol used by the
|
On read, this file returns a string indicating the type of
|
||||||
DSA slave network device.
|
tagging protocol used by the DSA network devices that are
|
||||||
|
attached to this master interface.
|
||||||
|
On write, this file changes the tagging protocol of the
|
||||||
|
attached DSA switches, if this operation is supported by the
|
||||||
|
driver. Changing the tagging protocol must be done with the DSA
|
||||||
|
interfaces and the master interface all administratively down.
|
||||||
|
See the "name" field of each registered struct dsa_device_ops
|
||||||
|
for a list of valid values.
|
||||||
|
|||||||
@@ -48,3 +48,13 @@ Description:
|
|||||||
|
|
||||||
Write a number ranging from 1 to 254 to delete a previously
|
Write a number ranging from 1 to 254 to delete a previously
|
||||||
created qmap mux based network device.
|
created qmap mux based network device.
|
||||||
|
|
||||||
|
What: /sys/class/net/<qmimux iface>/qmap/mux_id
|
||||||
|
Date: January 2021
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: Daniele Palmas <dnlplm@gmail.com>
|
||||||
|
Description:
|
||||||
|
Unsigned integer
|
||||||
|
|
||||||
|
Indicates the mux id associated to the qmimux network interface
|
||||||
|
during its creation.
|
||||||
|
|||||||
82
Documentation/ABI/testing/sysfs-class-power-ltc4162l
Normal file
82
Documentation/ABI/testing/sysfs-class-power-ltc4162l
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
What: /sys/class/power_supply/ltc4162-l/charge_status
|
||||||
|
Date: Januari 2021
|
||||||
|
KernelVersion: 5.11
|
||||||
|
Description:
|
||||||
|
Detailed charge status information as reported by the chip.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
|
||||||
|
Valid values:
|
||||||
|
ilim_reg_active
|
||||||
|
thermal_reg_active
|
||||||
|
vin_uvcl_active
|
||||||
|
iin_limit_active
|
||||||
|
constant_current
|
||||||
|
constant_voltage
|
||||||
|
charger_off
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/ltc4162-l/ibat
|
||||||
|
Date: Januari 2021
|
||||||
|
KernelVersion: 5.11
|
||||||
|
Description:
|
||||||
|
Battery input current as measured by the charger. Negative value
|
||||||
|
means that the battery is discharging.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
|
||||||
|
Valid values: Signed value in microamps
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/ltc4162-l/vbat
|
||||||
|
Date: Januari 2021
|
||||||
|
KernelVersion: 5.11
|
||||||
|
Description:
|
||||||
|
Battery voltage as measured by the charger.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
|
||||||
|
Valid values: In microvolts
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/ltc4162-l/vbat_avg
|
||||||
|
Date: Januari 2021
|
||||||
|
KernelVersion: 5.11
|
||||||
|
Description:
|
||||||
|
Battery voltage, averaged over time, as measured by the charger.
|
||||||
|
|
||||||
|
Access: Read
|
||||||
|
|
||||||
|
Valid values: In microvolts
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/ltc4162-l/force_telemetry
|
||||||
|
Date: Januari 2021
|
||||||
|
KernelVersion: 5.11
|
||||||
|
Description:
|
||||||
|
To save battery current, the measurement system is disabled if
|
||||||
|
the battery is the only source of power. This affects all
|
||||||
|
voltage, current and temperature measurements.
|
||||||
|
Write a "1" to this to keep performing telemetry once every few
|
||||||
|
seconds, even when running on battery (as reported by the online
|
||||||
|
property, which is "1" when external power is available and "0"
|
||||||
|
when the system runs on battery).
|
||||||
|
|
||||||
|
Access: Read, Write
|
||||||
|
|
||||||
|
Valid values: 0 (disabled) or 1 (enabled)
|
||||||
|
|
||||||
|
What: /sys/class/power_supply/ltc4162-l/arm_ship_mode
|
||||||
|
Date: Januari 2021
|
||||||
|
KernelVersion: 5.11
|
||||||
|
Description:
|
||||||
|
The charger will normally drain the battery while inactive,
|
||||||
|
typically drawing about 54 microamps. Write a "1" to this
|
||||||
|
property to arm a special "ship" mode that extends shelf life
|
||||||
|
by reducing the leakage to about 2.8 microamps. The chip will
|
||||||
|
remain in this mode (and no longer respond to I2C commands)
|
||||||
|
until some external power-supply is attached raising the input
|
||||||
|
voltage above 1V. It will then automatically revert to "0".
|
||||||
|
Writing a "0" to the property cancels the "ship" mode request.
|
||||||
|
The ship mode, when armed, activates once the input voltage
|
||||||
|
drops below 1V.
|
||||||
|
|
||||||
|
Access: Read, Write
|
||||||
|
|
||||||
|
Valid values: 0 (disable) or 1 (enable)
|
||||||
@@ -105,7 +105,25 @@ Date: April 2017
|
|||||||
Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
|
Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
|
||||||
Description:
|
Description:
|
||||||
Revision number of the supported USB Power Delivery
|
Revision number of the supported USB Power Delivery
|
||||||
specification, or 0 when USB Power Delivery is not supported.
|
specification, or 0.0 when USB Power Delivery is not supported.
|
||||||
|
|
||||||
|
Example values:
|
||||||
|
- "2.0": USB Power Delivery Release 2.0
|
||||||
|
- "3.0": USB Power Delivery Release 3.0
|
||||||
|
- "3.1": USB Power Delivery Release 3.1
|
||||||
|
|
||||||
|
What: /sys/class/typec/<port>-{partner|cable}/usb_power_delivery_revision
|
||||||
|
Date: January 2021
|
||||||
|
Contact: Benson Leung <bleung@chromium.org>
|
||||||
|
Description:
|
||||||
|
Revision number of the supported USB Power Delivery
|
||||||
|
specification of the port partner or cable, or 0.0 when USB
|
||||||
|
Power Delivery is not supported.
|
||||||
|
|
||||||
|
Example values:
|
||||||
|
- "2.0": USB Power Delivery Release 2.0
|
||||||
|
- "3.0": USB Power Delivery Release 3.0
|
||||||
|
- "3.1": USB Power Delivery Release 3.1
|
||||||
|
|
||||||
What: /sys/class/typec/<port>/usb_typec_revision
|
What: /sys/class/typec/<port>/usb_typec_revision
|
||||||
Date: April 2017
|
Date: April 2017
|
||||||
|
|||||||
@@ -4,5 +4,6 @@ Contact: Saravana Kannan <saravanak@google.com>
|
|||||||
Description:
|
Description:
|
||||||
The /sys/devices/.../consumer:<consumer> are symlinks to device
|
The /sys/devices/.../consumer:<consumer> are symlinks to device
|
||||||
links where this device is the supplier. <consumer> denotes the
|
links where this device is the supplier. <consumer> denotes the
|
||||||
name of the consumer in that device link. There can be zero or
|
name of the consumer in that device link and is of the form
|
||||||
more of these symlinks for a given device.
|
bus:device name. There can be zero or more of these symlinks
|
||||||
|
for a given device.
|
||||||
|
|||||||
@@ -13,21 +13,22 @@ What: /sys/devices/system/memory/memoryX/removable
|
|||||||
Date: June 2008
|
Date: June 2008
|
||||||
Contact: Badari Pulavarty <pbadari@us.ibm.com>
|
Contact: Badari Pulavarty <pbadari@us.ibm.com>
|
||||||
Description:
|
Description:
|
||||||
The file /sys/devices/system/memory/memoryX/removable
|
The file /sys/devices/system/memory/memoryX/removable is a
|
||||||
indicates whether this memory block is removable or not.
|
legacy interface used to indicated whether a memory block is
|
||||||
This is useful for a user-level agent to determine
|
likely to be offlineable or not. Newer kernel versions return
|
||||||
identify removable sections of the memory before attempting
|
"1" if and only if the kernel supports memory offlining.
|
||||||
potentially expensive hot-remove memory operation
|
|
||||||
Users: hotplug memory remove tools
|
Users: hotplug memory remove tools
|
||||||
http://www.ibm.com/developerworks/wikis/display/LinuxP/powerpc-utils
|
http://www.ibm.com/developerworks/wikis/display/LinuxP/powerpc-utils
|
||||||
|
lsmem/chmem part of util-linux
|
||||||
|
|
||||||
What: /sys/devices/system/memory/memoryX/phys_device
|
What: /sys/devices/system/memory/memoryX/phys_device
|
||||||
Date: September 2008
|
Date: September 2008
|
||||||
Contact: Badari Pulavarty <pbadari@us.ibm.com>
|
Contact: Badari Pulavarty <pbadari@us.ibm.com>
|
||||||
Description:
|
Description:
|
||||||
The file /sys/devices/system/memory/memoryX/phys_device
|
The file /sys/devices/system/memory/memoryX/phys_device
|
||||||
is read-only and is designed to show the name of physical
|
is read-only; it is a legacy interface only ever used on s390x
|
||||||
memory device. Implementation is currently incomplete.
|
to expose the covered storage increment.
|
||||||
|
Users: Legacy s390-tools lsmem/chmem
|
||||||
|
|
||||||
What: /sys/devices/system/memory/memoryX/phys_index
|
What: /sys/devices/system/memory/memoryX/phys_index
|
||||||
Date: September 2008
|
Date: September 2008
|
||||||
@@ -43,23 +44,25 @@ Date: September 2008
|
|||||||
Contact: Badari Pulavarty <pbadari@us.ibm.com>
|
Contact: Badari Pulavarty <pbadari@us.ibm.com>
|
||||||
Description:
|
Description:
|
||||||
The file /sys/devices/system/memory/memoryX/state
|
The file /sys/devices/system/memory/memoryX/state
|
||||||
is read-write. When read, its contents show the
|
is read-write. When read, it returns the online/offline
|
||||||
online/offline state of the memory section. When written,
|
state of the memory block. When written, root can toggle
|
||||||
root can toggle the the online/offline state of a removable
|
the online/offline state of a memory block using the following
|
||||||
memory section (see removable file description above)
|
commands::
|
||||||
using the following commands::
|
|
||||||
|
|
||||||
# echo online > /sys/devices/system/memory/memoryX/state
|
# echo online > /sys/devices/system/memory/memoryX/state
|
||||||
# echo offline > /sys/devices/system/memory/memoryX/state
|
# echo offline > /sys/devices/system/memory/memoryX/state
|
||||||
|
|
||||||
For example, if /sys/devices/system/memory/memory22/removable
|
On newer kernel versions, advanced states can be specified
|
||||||
contains a value of 1 and
|
when onlining to select a target zone: "online_movable"
|
||||||
/sys/devices/system/memory/memory22/state contains the
|
selects the movable zone. "online_kernel" selects the
|
||||||
string "online" the following command can be executed by
|
applicable kernel zone (DMA, DMA32, or Normal). However,
|
||||||
by root to offline that section::
|
after successfully setting one of the advanced states,
|
||||||
|
reading the file will return "online"; the zone information
|
||||||
# echo offline > /sys/devices/system/memory/memory22/state
|
can be obtained via "valid_zones" instead.
|
||||||
|
|
||||||
|
While onlining is unlikely to fail, there are no guarantees
|
||||||
|
that offlining will succeed. Offlining is more likely to
|
||||||
|
succeed if "valid_zones" indicates "Movable".
|
||||||
Users: hotplug memory remove tools
|
Users: hotplug memory remove tools
|
||||||
http://www.ibm.com/developerworks/wikis/display/LinuxP/powerpc-utils
|
http://www.ibm.com/developerworks/wikis/display/LinuxP/powerpc-utils
|
||||||
|
|
||||||
@@ -69,8 +72,19 @@ Date: July 2014
|
|||||||
Contact: Zhang Zhen <zhenzhang.zhang@huawei.com>
|
Contact: Zhang Zhen <zhenzhang.zhang@huawei.com>
|
||||||
Description:
|
Description:
|
||||||
The file /sys/devices/system/memory/memoryX/valid_zones is
|
The file /sys/devices/system/memory/memoryX/valid_zones is
|
||||||
read-only and is designed to show which zone this memory
|
read-only.
|
||||||
block can be onlined to.
|
|
||||||
|
For online memory blocks, it returns in which zone memory
|
||||||
|
provided by a memory block is managed. If multiple zones
|
||||||
|
apply (not applicable for hotplugged memory), "None" is returned
|
||||||
|
and the memory block cannot be offlined.
|
||||||
|
|
||||||
|
For offline memory blocks, it returns by which zone memory
|
||||||
|
provided by a memory block can be managed when onlining.
|
||||||
|
The first returned zone ("default") will be used when setting
|
||||||
|
the state of an offline memory block to "online". Only one of
|
||||||
|
the kernel zones (DMA, DMA32, Normal) is applicable for a single
|
||||||
|
memory block.
|
||||||
|
|
||||||
What: /sys/devices/system/memoryX/nodeY
|
What: /sys/devices/system/memoryX/nodeY
|
||||||
Date: October 2009
|
Date: October 2009
|
||||||
|
|||||||
@@ -4,5 +4,6 @@ Contact: Saravana Kannan <saravanak@google.com>
|
|||||||
Description:
|
Description:
|
||||||
The /sys/devices/.../supplier:<supplier> are symlinks to device
|
The /sys/devices/.../supplier:<supplier> are symlinks to device
|
||||||
links where this device is the consumer. <supplier> denotes the
|
links where this device is the consumer. <supplier> denotes the
|
||||||
name of the supplier in that device link. There can be zero or
|
name of the supplier in that device link and is of the form
|
||||||
more of these symlinks for a given device.
|
bus:device name. There can be zero or more of these symlinks
|
||||||
|
for a given device.
|
||||||
|
|||||||
41
Documentation/ABI/testing/sysfs-devices-xenbus
Normal file
41
Documentation/ABI/testing/sysfs-devices-xenbus
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
What: /sys/devices/*/xenbus/event_channels
|
||||||
|
Date: February 2021
|
||||||
|
Contact: Xen Developers mailing list <xen-devel@lists.xenproject.org>
|
||||||
|
Description:
|
||||||
|
Number of Xen event channels associated with a kernel based
|
||||||
|
paravirtualized device frontend or backend.
|
||||||
|
|
||||||
|
What: /sys/devices/*/xenbus/events
|
||||||
|
Date: February 2021
|
||||||
|
Contact: Xen Developers mailing list <xen-devel@lists.xenproject.org>
|
||||||
|
Description:
|
||||||
|
Total number of Xen events received for a Xen pv device
|
||||||
|
frontend or backend.
|
||||||
|
|
||||||
|
What: /sys/devices/*/xenbus/jiffies_eoi_delayed
|
||||||
|
Date: February 2021
|
||||||
|
Contact: Xen Developers mailing list <xen-devel@lists.xenproject.org>
|
||||||
|
Description:
|
||||||
|
Summed up time in jiffies the EOI of an interrupt for a Xen
|
||||||
|
pv device has been delayed in order to avoid stalls due to
|
||||||
|
event storms. This value rising is a first sign for a rogue
|
||||||
|
other end of the pv device.
|
||||||
|
|
||||||
|
What: /sys/devices/*/xenbus/spurious_events
|
||||||
|
Date: February 2021
|
||||||
|
Contact: Xen Developers mailing list <xen-devel@lists.xenproject.org>
|
||||||
|
Description:
|
||||||
|
Number of events received for a Xen pv device which did not
|
||||||
|
require any action. Too many spurious events in a row will
|
||||||
|
trigger delayed EOI processing.
|
||||||
|
|
||||||
|
What: /sys/devices/*/xenbus/spurious_threshold
|
||||||
|
Date: February 2021
|
||||||
|
Contact: Xen Developers mailing list <xen-devel@lists.xenproject.org>
|
||||||
|
Description:
|
||||||
|
Controls the tolerated number of subsequent spurious events
|
||||||
|
before delayed EOI processing is triggered for a Xen pv
|
||||||
|
device. Default is 1. This can be modified in case the other
|
||||||
|
end of the pv device is issuing spurious events on a regular
|
||||||
|
basis and is known not to be malicious on purpose. Raising
|
||||||
|
the value for such cases can improve pv device performance.
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
What: /sys/class/habanalabs/hl<n>/armcp_kernel_ver
|
What: /sys/class/habanalabs/hl<n>/armcp_kernel_ver
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Version of the Linux kernel running on the device's CPU.
|
Description: Version of the Linux kernel running on the device's CPU.
|
||||||
Will be DEPRECATED in Linux kernel version 5.10, and be
|
Will be DEPRECATED in Linux kernel version 5.10, and be
|
||||||
replaced with cpucp_kernel_ver
|
replaced with cpucp_kernel_ver
|
||||||
@@ -9,7 +9,7 @@ Description: Version of the Linux kernel running on the device's CPU.
|
|||||||
What: /sys/class/habanalabs/hl<n>/armcp_ver
|
What: /sys/class/habanalabs/hl<n>/armcp_ver
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Version of the application running on the device's CPU
|
Description: Version of the application running on the device's CPU
|
||||||
Will be DEPRECATED in Linux kernel version 5.10, and be
|
Will be DEPRECATED in Linux kernel version 5.10, and be
|
||||||
replaced with cpucp_ver
|
replaced with cpucp_ver
|
||||||
@@ -17,7 +17,7 @@ Description: Version of the application running on the device's CPU
|
|||||||
What: /sys/class/habanalabs/hl<n>/clk_max_freq_mhz
|
What: /sys/class/habanalabs/hl<n>/clk_max_freq_mhz
|
||||||
Date: Jun 2019
|
Date: Jun 2019
|
||||||
KernelVersion: not yet upstreamed
|
KernelVersion: not yet upstreamed
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Allows the user to set the maximum clock frequency, in MHz.
|
Description: Allows the user to set the maximum clock frequency, in MHz.
|
||||||
The device clock might be set to lower value than the maximum.
|
The device clock might be set to lower value than the maximum.
|
||||||
The user should read the clk_cur_freq_mhz to see the actual
|
The user should read the clk_cur_freq_mhz to see the actual
|
||||||
@@ -27,52 +27,52 @@ Description: Allows the user to set the maximum clock frequency, in MHz.
|
|||||||
What: /sys/class/habanalabs/hl<n>/clk_cur_freq_mhz
|
What: /sys/class/habanalabs/hl<n>/clk_cur_freq_mhz
|
||||||
Date: Jun 2019
|
Date: Jun 2019
|
||||||
KernelVersion: not yet upstreamed
|
KernelVersion: not yet upstreamed
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Displays the current frequency, in MHz, of the device clock.
|
Description: Displays the current frequency, in MHz, of the device clock.
|
||||||
This property is valid only for the Gaudi ASIC family
|
This property is valid only for the Gaudi ASIC family
|
||||||
|
|
||||||
What: /sys/class/habanalabs/hl<n>/cpld_ver
|
What: /sys/class/habanalabs/hl<n>/cpld_ver
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Version of the Device's CPLD F/W
|
Description: Version of the Device's CPLD F/W
|
||||||
|
|
||||||
What: /sys/class/habanalabs/hl<n>/cpucp_kernel_ver
|
What: /sys/class/habanalabs/hl<n>/cpucp_kernel_ver
|
||||||
Date: Oct 2020
|
Date: Oct 2020
|
||||||
KernelVersion: 5.10
|
KernelVersion: 5.10
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Version of the Linux kernel running on the device's CPU
|
Description: Version of the Linux kernel running on the device's CPU
|
||||||
|
|
||||||
What: /sys/class/habanalabs/hl<n>/cpucp_ver
|
What: /sys/class/habanalabs/hl<n>/cpucp_ver
|
||||||
Date: Oct 2020
|
Date: Oct 2020
|
||||||
KernelVersion: 5.10
|
KernelVersion: 5.10
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Version of the application running on the device's CPU
|
Description: Version of the application running on the device's CPU
|
||||||
|
|
||||||
What: /sys/class/habanalabs/hl<n>/device_type
|
What: /sys/class/habanalabs/hl<n>/device_type
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Displays the code name of the device according to its type.
|
Description: Displays the code name of the device according to its type.
|
||||||
The supported values are: "GOYA"
|
The supported values are: "GOYA"
|
||||||
|
|
||||||
What: /sys/class/habanalabs/hl<n>/eeprom
|
What: /sys/class/habanalabs/hl<n>/eeprom
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: A binary file attribute that contains the contents of the
|
Description: A binary file attribute that contains the contents of the
|
||||||
on-board EEPROM
|
on-board EEPROM
|
||||||
|
|
||||||
What: /sys/class/habanalabs/hl<n>/fuse_ver
|
What: /sys/class/habanalabs/hl<n>/fuse_ver
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Displays the device's version from the eFuse
|
Description: Displays the device's version from the eFuse
|
||||||
|
|
||||||
What: /sys/class/habanalabs/hl<n>/hard_reset
|
What: /sys/class/habanalabs/hl<n>/hard_reset
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Interface to trigger a hard-reset operation for the device.
|
Description: Interface to trigger a hard-reset operation for the device.
|
||||||
Hard-reset will reset ALL internal components of the device
|
Hard-reset will reset ALL internal components of the device
|
||||||
except for the PCI interface and the internal PLLs
|
except for the PCI interface and the internal PLLs
|
||||||
@@ -80,14 +80,14 @@ Description: Interface to trigger a hard-reset operation for the device.
|
|||||||
What: /sys/class/habanalabs/hl<n>/hard_reset_cnt
|
What: /sys/class/habanalabs/hl<n>/hard_reset_cnt
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Displays how many times the device have undergone a hard-reset
|
Description: Displays how many times the device have undergone a hard-reset
|
||||||
operation since the driver was loaded
|
operation since the driver was loaded
|
||||||
|
|
||||||
What: /sys/class/habanalabs/hl<n>/high_pll
|
What: /sys/class/habanalabs/hl<n>/high_pll
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Allows the user to set the maximum clock frequency for MME, TPC
|
Description: Allows the user to set the maximum clock frequency for MME, TPC
|
||||||
and IC when the power management profile is set to "automatic".
|
and IC when the power management profile is set to "automatic".
|
||||||
This property is valid only for the Goya ASIC family
|
This property is valid only for the Goya ASIC family
|
||||||
@@ -95,7 +95,7 @@ Description: Allows the user to set the maximum clock frequency for MME, TPC
|
|||||||
What: /sys/class/habanalabs/hl<n>/ic_clk
|
What: /sys/class/habanalabs/hl<n>/ic_clk
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Allows the user to set the maximum clock frequency, in Hz, of
|
Description: Allows the user to set the maximum clock frequency, in Hz, of
|
||||||
the Interconnect fabric. Writes to this parameter affect the
|
the Interconnect fabric. Writes to this parameter affect the
|
||||||
device only when the power management profile is set to "manual"
|
device only when the power management profile is set to "manual"
|
||||||
@@ -107,27 +107,27 @@ Description: Allows the user to set the maximum clock frequency, in Hz, of
|
|||||||
What: /sys/class/habanalabs/hl<n>/ic_clk_curr
|
What: /sys/class/habanalabs/hl<n>/ic_clk_curr
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Displays the current clock frequency, in Hz, of the Interconnect
|
Description: Displays the current clock frequency, in Hz, of the Interconnect
|
||||||
fabric. This property is valid only for the Goya ASIC family
|
fabric. This property is valid only for the Goya ASIC family
|
||||||
|
|
||||||
What: /sys/class/habanalabs/hl<n>/infineon_ver
|
What: /sys/class/habanalabs/hl<n>/infineon_ver
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Version of the Device's power supply F/W code
|
Description: Version of the Device's power supply F/W code
|
||||||
|
|
||||||
What: /sys/class/habanalabs/hl<n>/max_power
|
What: /sys/class/habanalabs/hl<n>/max_power
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Allows the user to set the maximum power consumption of the
|
Description: Allows the user to set the maximum power consumption of the
|
||||||
device in milliwatts.
|
device in milliwatts.
|
||||||
|
|
||||||
What: /sys/class/habanalabs/hl<n>/mme_clk
|
What: /sys/class/habanalabs/hl<n>/mme_clk
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Allows the user to set the maximum clock frequency, in Hz, of
|
Description: Allows the user to set the maximum clock frequency, in Hz, of
|
||||||
the MME compute engine. Writes to this parameter affect the
|
the MME compute engine. Writes to this parameter affect the
|
||||||
device only when the power management profile is set to "manual"
|
device only when the power management profile is set to "manual"
|
||||||
@@ -139,21 +139,21 @@ Description: Allows the user to set the maximum clock frequency, in Hz, of
|
|||||||
What: /sys/class/habanalabs/hl<n>/mme_clk_curr
|
What: /sys/class/habanalabs/hl<n>/mme_clk_curr
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Displays the current clock frequency, in Hz, of the MME compute
|
Description: Displays the current clock frequency, in Hz, of the MME compute
|
||||||
engine. This property is valid only for the Goya ASIC family
|
engine. This property is valid only for the Goya ASIC family
|
||||||
|
|
||||||
What: /sys/class/habanalabs/hl<n>/pci_addr
|
What: /sys/class/habanalabs/hl<n>/pci_addr
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Displays the PCI address of the device. This is needed so the
|
Description: Displays the PCI address of the device. This is needed so the
|
||||||
user would be able to open a device based on its PCI address
|
user would be able to open a device based on its PCI address
|
||||||
|
|
||||||
What: /sys/class/habanalabs/hl<n>/pm_mng_profile
|
What: /sys/class/habanalabs/hl<n>/pm_mng_profile
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Power management profile. Values are "auto", "manual". In "auto"
|
Description: Power management profile. Values are "auto", "manual". In "auto"
|
||||||
mode, the driver will set the maximum clock frequency to a high
|
mode, the driver will set the maximum clock frequency to a high
|
||||||
value when a user-space process opens the device's file (unless
|
value when a user-space process opens the device's file (unless
|
||||||
@@ -167,13 +167,13 @@ Description: Power management profile. Values are "auto", "manual". In "auto"
|
|||||||
What: /sys/class/habanalabs/hl<n>/preboot_btl_ver
|
What: /sys/class/habanalabs/hl<n>/preboot_btl_ver
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Version of the device's preboot F/W code
|
Description: Version of the device's preboot F/W code
|
||||||
|
|
||||||
What: /sys/class/habanalabs/hl<n>/soft_reset
|
What: /sys/class/habanalabs/hl<n>/soft_reset
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Interface to trigger a soft-reset operation for the device.
|
Description: Interface to trigger a soft-reset operation for the device.
|
||||||
Soft-reset will reset only the compute and DMA engines of the
|
Soft-reset will reset only the compute and DMA engines of the
|
||||||
device
|
device
|
||||||
@@ -181,26 +181,26 @@ Description: Interface to trigger a soft-reset operation for the device.
|
|||||||
What: /sys/class/habanalabs/hl<n>/soft_reset_cnt
|
What: /sys/class/habanalabs/hl<n>/soft_reset_cnt
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Displays how many times the device have undergone a soft-reset
|
Description: Displays how many times the device have undergone a soft-reset
|
||||||
operation since the driver was loaded
|
operation since the driver was loaded
|
||||||
|
|
||||||
What: /sys/class/habanalabs/hl<n>/status
|
What: /sys/class/habanalabs/hl<n>/status
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Status of the card: "Operational", "Malfunction", "In reset".
|
Description: Status of the card: "Operational", "Malfunction", "In reset".
|
||||||
|
|
||||||
What: /sys/class/habanalabs/hl<n>/thermal_ver
|
What: /sys/class/habanalabs/hl<n>/thermal_ver
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Version of the Device's thermal daemon
|
Description: Version of the Device's thermal daemon
|
||||||
|
|
||||||
What: /sys/class/habanalabs/hl<n>/tpc_clk
|
What: /sys/class/habanalabs/hl<n>/tpc_clk
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Allows the user to set the maximum clock frequency, in Hz, of
|
Description: Allows the user to set the maximum clock frequency, in Hz, of
|
||||||
the TPC compute engines. Writes to this parameter affect the
|
the TPC compute engines. Writes to this parameter affect the
|
||||||
device only when the power management profile is set to "manual"
|
device only when the power management profile is set to "manual"
|
||||||
@@ -212,12 +212,12 @@ Description: Allows the user to set the maximum clock frequency, in Hz, of
|
|||||||
What: /sys/class/habanalabs/hl<n>/tpc_clk_curr
|
What: /sys/class/habanalabs/hl<n>/tpc_clk_curr
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Displays the current clock frequency, in Hz, of the TPC compute
|
Description: Displays the current clock frequency, in Hz, of the TPC compute
|
||||||
engines. This property is valid only for the Goya ASIC family
|
engines. This property is valid only for the Goya ASIC family
|
||||||
|
|
||||||
What: /sys/class/habanalabs/hl<n>/uboot_ver
|
What: /sys/class/habanalabs/hl<n>/uboot_ver
|
||||||
Date: Jan 2019
|
Date: Jan 2019
|
||||||
KernelVersion: 5.1
|
KernelVersion: 5.1
|
||||||
Contact: oded.gabbay@gmail.com
|
Contact: ogabbay@kernel.org
|
||||||
Description: Version of the u-boot running on the device's CPU
|
Description: Version of the u-boot running on the device's CPU
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
What: /sys/class/input/input(x)/device/function_row_physmap
|
||||||
|
Date: January 2021
|
||||||
|
Contact: Philip Chen <philipchen@chromium.org>
|
||||||
|
Description: A space separated list of scancodes for the top row keys,
|
||||||
|
ordered by the physical positions of the keys, from left
|
||||||
|
to right.
|
||||||
@@ -13,3 +13,24 @@ Contact: Xu Yilun <yilun.xu@intel.com>
|
|||||||
Description: Read only. Returns the firmware version of Intel MAX10
|
Description: Read only. Returns the firmware version of Intel MAX10
|
||||||
BMC chip.
|
BMC chip.
|
||||||
Format: "0x%x".
|
Format: "0x%x".
|
||||||
|
|
||||||
|
What: /sys/bus/spi/devices/.../mac_address
|
||||||
|
Date: January 2021
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: Russ Weight <russell.h.weight@intel.com>
|
||||||
|
Description: Read only. Returns the first MAC address in a block
|
||||||
|
of sequential MAC addresses assigned to the board
|
||||||
|
that is managed by the Intel MAX10 BMC. It is stored in
|
||||||
|
FLASH storage and is mirrored in the MAX10 BMC register
|
||||||
|
space.
|
||||||
|
Format: "%02x:%02x:%02x:%02x:%02x:%02x".
|
||||||
|
|
||||||
|
What: /sys/bus/spi/devices/.../mac_count
|
||||||
|
Date: January 2021
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: Russ Weight <russell.h.weight@intel.com>
|
||||||
|
Description: Read only. Returns the number of sequential MAC
|
||||||
|
addresses assigned to the board managed by the Intel
|
||||||
|
MAX10 BMC. This value is stored in FLASH and is mirrored
|
||||||
|
in the MAX10 BMC register space.
|
||||||
|
Format: "%u".
|
||||||
|
|||||||
@@ -916,21 +916,25 @@ Date: September 2014
|
|||||||
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
||||||
Description: This entry could be used to set or show the UFS device
|
Description: This entry could be used to set or show the UFS device
|
||||||
runtime power management level. The current driver
|
runtime power management level. The current driver
|
||||||
implementation supports 6 levels with next target states:
|
implementation supports 7 levels with next target states:
|
||||||
|
|
||||||
== ====================================================
|
== ====================================================
|
||||||
0 an UFS device will stay active, an UIC link will
|
0 UFS device will stay active, UIC link will
|
||||||
stay active
|
stay active
|
||||||
1 an UFS device will stay active, an UIC link will
|
1 UFS device will stay active, UIC link will
|
||||||
hibernate
|
hibernate
|
||||||
2 an UFS device will moved to sleep, an UIC link will
|
2 UFS device will be moved to sleep, UIC link will
|
||||||
stay active
|
stay active
|
||||||
3 an UFS device will moved to sleep, an UIC link will
|
3 UFS device will be moved to sleep, UIC link will
|
||||||
hibernate
|
hibernate
|
||||||
4 an UFS device will be powered off, an UIC link will
|
4 UFS device will be powered off, UIC link will
|
||||||
hibernate
|
hibernate
|
||||||
5 an UFS device will be powered off, an UIC link will
|
5 UFS device will be powered off, UIC link will
|
||||||
be powered off
|
be powered off
|
||||||
|
6 UFS device will be moved to deep sleep, UIC link
|
||||||
|
will be powered off. Note, deep sleep might not be
|
||||||
|
supported in which case this value will not be
|
||||||
|
accepted
|
||||||
== ====================================================
|
== ====================================================
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/rpm_target_dev_state
|
What: /sys/bus/platform/drivers/ufshcd/*/rpm_target_dev_state
|
||||||
@@ -954,21 +958,25 @@ Date: September 2014
|
|||||||
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
||||||
Description: This entry could be used to set or show the UFS device
|
Description: This entry could be used to set or show the UFS device
|
||||||
system power management level. The current driver
|
system power management level. The current driver
|
||||||
implementation supports 6 levels with next target states:
|
implementation supports 7 levels with next target states:
|
||||||
|
|
||||||
== ====================================================
|
== ====================================================
|
||||||
0 an UFS device will stay active, an UIC link will
|
0 UFS device will stay active, UIC link will
|
||||||
stay active
|
stay active
|
||||||
1 an UFS device will stay active, an UIC link will
|
1 UFS device will stay active, UIC link will
|
||||||
hibernate
|
hibernate
|
||||||
2 an UFS device will moved to sleep, an UIC link will
|
2 UFS device will be moved to sleep, UIC link will
|
||||||
stay active
|
stay active
|
||||||
3 an UFS device will moved to sleep, an UIC link will
|
3 UFS device will be moved to sleep, UIC link will
|
||||||
hibernate
|
hibernate
|
||||||
4 an UFS device will be powered off, an UIC link will
|
4 UFS device will be powered off, UIC link will
|
||||||
hibernate
|
hibernate
|
||||||
5 an UFS device will be powered off, an UIC link will
|
5 UFS device will be powered off, UIC link will
|
||||||
be powered off
|
be powered off
|
||||||
|
6 UFS device will be moved to deep sleep, UIC link
|
||||||
|
will be powered off. Note, deep sleep might not be
|
||||||
|
supported in which case this value will not be
|
||||||
|
accepted
|
||||||
== ====================================================
|
== ====================================================
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/spm_target_dev_state
|
What: /sys/bus/platform/drivers/ufshcd/*/spm_target_dev_state
|
||||||
@@ -1153,3 +1161,14 @@ Description: This entry shows the configured size of WriteBooster buffer.
|
|||||||
0400h corresponds to 4GB.
|
0400h corresponds to 4GB.
|
||||||
|
|
||||||
The file is read only.
|
The file is read only.
|
||||||
|
|
||||||
|
What: /sys/bus/platform/drivers/ufshcd/*/wb_on
|
||||||
|
Date: January 2021
|
||||||
|
Contact: Bean Huo <beanhuo@micron.com>
|
||||||
|
Description: This node is used to set or display whether UFS WriteBooster is
|
||||||
|
enabled. Echo 0 to this file to disable UFS WriteBooster or 1 to
|
||||||
|
enable it. The WriteBooster is enabled after power-on/reset,
|
||||||
|
however, it will be disabled/enable while CLK scaling down/up
|
||||||
|
(if the platform supports UFSHCD_CAP_CLK_SCALING). For a
|
||||||
|
platform that doesn't support UFSHCD_CAP_CLK_SCALING, we can
|
||||||
|
disable/enable WriteBooster through this sysfs node.
|
||||||
|
|||||||
@@ -1,3 +1,46 @@
|
|||||||
|
What: /sys/firmware/acpi/fpdt/
|
||||||
|
Date: Jan 2021
|
||||||
|
Contact: Zhang Rui <rui.zhang@intel.com>
|
||||||
|
Description:
|
||||||
|
ACPI Firmware Performance Data Table (FPDT) provides
|
||||||
|
information for firmware performance data for system boot,
|
||||||
|
S3 suspend and S3 resume. This sysfs entry contains the
|
||||||
|
performance data retrieved from the FPDT.
|
||||||
|
|
||||||
|
boot:
|
||||||
|
firmware_start_ns: Timer value logged at the beginning
|
||||||
|
of firmware image execution. In nanoseconds.
|
||||||
|
bootloader_load_ns: Timer value logged just prior to
|
||||||
|
loading the OS boot loader into memory.
|
||||||
|
In nanoseconds.
|
||||||
|
bootloader_launch_ns: Timer value logged just prior to
|
||||||
|
launching the currently loaded OS boot loader
|
||||||
|
image. In nanoseconds.
|
||||||
|
exitbootservice_start_ns: Timer value logged at the
|
||||||
|
point when the OS loader calls the
|
||||||
|
ExitBootServices function for UEFI compatible
|
||||||
|
firmware. In nanoseconds.
|
||||||
|
exitbootservice_end_ns: Timer value logged at the point
|
||||||
|
just prior to the OS loader gaining control
|
||||||
|
back from the ExitBootServices function for
|
||||||
|
UEFI compatible firmware. In nanoseconds.
|
||||||
|
suspend:
|
||||||
|
suspend_start_ns: Timer value recorded at the previous
|
||||||
|
OS write to SLP_TYP upon entry to S3. In
|
||||||
|
nanoseconds.
|
||||||
|
suspend_end_ns: Timer value recorded at the previous
|
||||||
|
firmware write to SLP_TYP used to trigger
|
||||||
|
hardware entry to S3. In nanoseconds.
|
||||||
|
resume:
|
||||||
|
resume_count: A count of the number of S3 resume cycles
|
||||||
|
since the last full boot sequence.
|
||||||
|
resume_avg_ns: Average timer value of all resume cycles
|
||||||
|
logged since the last full boot sequence,
|
||||||
|
including the most recent resume. In nanoseconds.
|
||||||
|
resume_prev_ns: Timer recorded at the end of the previous
|
||||||
|
platform runtime firmware S3 resume, just prior to
|
||||||
|
handoff to the OS waking vector. In nanoseconds.
|
||||||
|
|
||||||
What: /sys/firmware/acpi/bgrt/
|
What: /sys/firmware/acpi/bgrt/
|
||||||
Date: January 2012
|
Date: January 2012
|
||||||
Contact: Matthew Garrett <mjg@redhat.com>
|
Contact: Matthew Garrett <mjg@redhat.com>
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
What: /sys/firmware/sfi/tables/
|
|
||||||
Date: May 2010
|
|
||||||
Contact: Len Brown <lenb@kernel.org>
|
|
||||||
Description:
|
|
||||||
SFI defines a number of small static memory tables
|
|
||||||
so the kernel can get platform information from firmware.
|
|
||||||
|
|
||||||
The tables are defined in the latest SFI specification:
|
|
||||||
http://simplefirmware.org/documentation
|
|
||||||
|
|
||||||
While the tables are used by the kernel, user-space
|
|
||||||
can observe them this way::
|
|
||||||
|
|
||||||
# cd /sys/firmware/sfi/tables
|
|
||||||
# cat $TABLENAME > $TABLENAME.bin
|
|
||||||
@@ -377,3 +377,35 @@ Description: This gives a control to limit the bio size in f2fs.
|
|||||||
Default is zero, which will follow underlying block layer limit,
|
Default is zero, which will follow underlying block layer limit,
|
||||||
whereas, if it has a certain bytes value, f2fs won't submit a
|
whereas, if it has a certain bytes value, f2fs won't submit a
|
||||||
bio larger than that size.
|
bio larger than that size.
|
||||||
|
|
||||||
|
What: /sys/fs/f2fs/<disk>/stat/sb_status
|
||||||
|
Date: December 2020
|
||||||
|
Contact: "Chao Yu" <yuchao0@huawei.com>
|
||||||
|
Description: Show status of f2fs superblock in real time.
|
||||||
|
|
||||||
|
====== ===================== =================================
|
||||||
|
value sb status macro description
|
||||||
|
0x1 SBI_IS_DIRTY dirty flag for checkpoint
|
||||||
|
0x2 SBI_IS_CLOSE specify unmounting
|
||||||
|
0x4 SBI_NEED_FSCK need fsck.f2fs to fix
|
||||||
|
0x8 SBI_POR_DOING recovery is doing or not
|
||||||
|
0x10 SBI_NEED_SB_WRITE need to recover superblock
|
||||||
|
0x20 SBI_NEED_CP need to checkpoint
|
||||||
|
0x40 SBI_IS_SHUTDOWN shutdown by ioctl
|
||||||
|
0x80 SBI_IS_RECOVERED recovered orphan/data
|
||||||
|
0x100 SBI_CP_DISABLED CP was disabled last mount
|
||||||
|
0x200 SBI_CP_DISABLED_QUICK CP was disabled quickly
|
||||||
|
0x400 SBI_QUOTA_NEED_FLUSH need to flush quota info in CP
|
||||||
|
0x800 SBI_QUOTA_SKIP_FLUSH skip flushing quota in current CP
|
||||||
|
0x1000 SBI_QUOTA_NEED_REPAIR quota file may be corrupted
|
||||||
|
0x2000 SBI_IS_RESIZEFS resizefs is in process
|
||||||
|
====== ===================== =================================
|
||||||
|
|
||||||
|
What: /sys/fs/f2fs/<disk>/ckpt_thread_ioprio
|
||||||
|
Date: January 2021
|
||||||
|
Contact: "Daeho Jeong" <daehojeong@google.com>
|
||||||
|
Description: Give a way to change checkpoint merge daemon's io priority.
|
||||||
|
Its default value is "be,3", which means "BE" I/O class and
|
||||||
|
I/O priority "3". We can select the class between "rt" and "be",
|
||||||
|
and set the I/O priority within valid range of it. "," delimiter
|
||||||
|
is necessary in between I/O class and priority number.
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
What: /sys/devices/platform/ideapad/camera_power
|
What: /sys/bus/platform/devices/VPC2004:*/camera_power
|
||||||
Date: Dec 2010
|
Date: Dec 2010
|
||||||
KernelVersion: 2.6.37
|
KernelVersion: 2.6.37
|
||||||
Contact: "Ike Panhc <ike.pan@canonical.com>"
|
Contact: "Ike Panhc <ike.pan@canonical.com>"
|
||||||
Description:
|
Description:
|
||||||
Control the power of camera module. 1 means on, 0 means off.
|
Control the power of camera module. 1 means on, 0 means off.
|
||||||
|
|
||||||
What: /sys/devices/platform/ideapad/fan_mode
|
What: /sys/bus/platform/devices/VPC2004:*/fan_mode
|
||||||
Date: June 2012
|
Date: June 2012
|
||||||
KernelVersion: 3.6
|
KernelVersion: 3.6
|
||||||
Contact: "Maxim Mikityanskiy <maxtram95@gmail.com>"
|
Contact: "Maxim Mikityanskiy <maxtram95@gmail.com>"
|
||||||
@@ -18,7 +18,7 @@ Description:
|
|||||||
* 2 -> Dust Cleaning
|
* 2 -> Dust Cleaning
|
||||||
* 4 -> Efficient Thermal Dissipation Mode
|
* 4 -> Efficient Thermal Dissipation Mode
|
||||||
|
|
||||||
What: /sys/devices/platform/ideapad/touchpad
|
What: /sys/bus/platform/devices/VPC2004:*/touchpad
|
||||||
Date: May 2017
|
Date: May 2017
|
||||||
KernelVersion: 4.13
|
KernelVersion: 4.13
|
||||||
Contact: "Ritesh Raj Sarraf <rrs@debian.org>"
|
Contact: "Ritesh Raj Sarraf <rrs@debian.org>"
|
||||||
@@ -27,7 +27,16 @@ Description:
|
|||||||
* 1 -> Switched On
|
* 1 -> Switched On
|
||||||
* 0 -> Switched Off
|
* 0 -> Switched Off
|
||||||
|
|
||||||
What: /sys/bus/pci/devices/<bdf>/<device>/VPC2004:00/fn_lock
|
What: /sys/bus/platform/devices/VPC2004:*/conservation_mode
|
||||||
|
Date: Aug 2017
|
||||||
|
KernelVersion: 4.14
|
||||||
|
Contact: platform-driver-x86@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Controls whether the conservation mode is enabled or not.
|
||||||
|
This feature limits the maximum battery charge percentage to
|
||||||
|
around 50-60% in order to prolong the lifetime of the battery.
|
||||||
|
|
||||||
|
What: /sys/bus/platform/devices/VPC2004:*/fn_lock
|
||||||
Date: May 2018
|
Date: May 2018
|
||||||
KernelVersion: 4.18
|
KernelVersion: 4.18
|
||||||
Contact: "Oleg Keri <ezhi99@gmail.com>"
|
Contact: "Oleg Keri <ezhi99@gmail.com>"
|
||||||
@@ -41,3 +50,12 @@ Description:
|
|||||||
|
|
||||||
# echo "0" > \
|
# echo "0" > \
|
||||||
/sys/bus/pci/devices/0000:00:1f.0/PNP0C09:00/VPC2004:00/fn_lock
|
/sys/bus/pci/devices/0000:00:1f.0/PNP0C09:00/VPC2004:00/fn_lock
|
||||||
|
|
||||||
|
What: /sys/bus/platform/devices/VPC2004:*/usb_charging
|
||||||
|
Date: Feb 2021
|
||||||
|
KernelVersion: 5.12
|
||||||
|
Contact: platform-driver-x86@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Controls whether the "always on USB charging" feature is
|
||||||
|
enabled or not. This feature enables charging USB devices
|
||||||
|
even if the computer is not turned on.
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ Description:
|
|||||||
is connected. example: "/dev/ttyS0".
|
is connected. example: "/dev/ttyS0".
|
||||||
|
|
||||||
The device name flows down to architecture specific board
|
The device name flows down to architecture specific board
|
||||||
initialization file from the SFI/ATAGS bootloader
|
initialization file from the ATAGS bootloader
|
||||||
firmware. The name exposed is read from the user-space
|
firmware. The name exposed is read from the user-space
|
||||||
dameon and opens the device when install is requested.
|
dameon and opens the device when install is requested.
|
||||||
|
|
||||||
|
|||||||
28
Documentation/ABI/testing/sysfs-platform_profile
Normal file
28
Documentation/ABI/testing/sysfs-platform_profile
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
What: /sys/firmware/acpi/platform_profile_choices
|
||||||
|
Date: October 2020
|
||||||
|
Contact: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
Description: This file contains a space-separated list of profiles supported for this device.
|
||||||
|
|
||||||
|
Drivers must use the following standard profile-names:
|
||||||
|
|
||||||
|
==================== ========================================
|
||||||
|
low-power Low power consumption
|
||||||
|
cool Cooler operation
|
||||||
|
quiet Quieter operation
|
||||||
|
balanced Balance between low power consumption
|
||||||
|
and performance
|
||||||
|
balanced-performance Balance between performance and low
|
||||||
|
power consumption with a slight bias
|
||||||
|
towards performance
|
||||||
|
performance High performance operation
|
||||||
|
==================== ========================================
|
||||||
|
|
||||||
|
Userspace may expect drivers to offer more than one of these
|
||||||
|
standard profile names.
|
||||||
|
|
||||||
|
What: /sys/firmware/acpi/platform_profile
|
||||||
|
Date: October 2020
|
||||||
|
Contact: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
Description: Reading this file gives the current selected profile for this
|
||||||
|
device. Writing this file with one of the strings from
|
||||||
|
platform_profile_choices changes the profile to the new value.
|
||||||
@@ -75,7 +75,7 @@ quiet_cmd_sphinx = SPHINX $@ --> file://$(abspath $(BUILDDIR)/$3/$4)
|
|||||||
cmd_sphinx = $(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/userspace-api/media $2 && \
|
cmd_sphinx = $(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/userspace-api/media $2 && \
|
||||||
PYTHONDONTWRITEBYTECODE=1 \
|
PYTHONDONTWRITEBYTECODE=1 \
|
||||||
BUILDDIR=$(abspath $(BUILDDIR)) SPHINX_CONF=$(abspath $(srctree)/$(src)/$5/$(SPHINX_CONF)) \
|
BUILDDIR=$(abspath $(BUILDDIR)) SPHINX_CONF=$(abspath $(srctree)/$(src)/$5/$(SPHINX_CONF)) \
|
||||||
$(PYTHON) $(srctree)/scripts/jobserver-exec \
|
$(PYTHON3) $(srctree)/scripts/jobserver-exec \
|
||||||
$(SHELL) $(srctree)/Documentation/sphinx/parallel-wrapper.sh \
|
$(SHELL) $(srctree)/Documentation/sphinx/parallel-wrapper.sh \
|
||||||
$(SPHINXBUILD) \
|
$(SPHINXBUILD) \
|
||||||
-b $2 \
|
-b $2 \
|
||||||
|
|||||||
38
Documentation/PCI/endpoint/function/binding/pci-ntb.rst
Normal file
38
Documentation/PCI/endpoint/function/binding/pci-ntb.rst
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
.. SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
|
==========================
|
||||||
|
PCI NTB Endpoint Function
|
||||||
|
==========================
|
||||||
|
|
||||||
|
1) Create a subdirectory to pci_epf_ntb directory in configfs.
|
||||||
|
|
||||||
|
Standard EPF Configurable Fields:
|
||||||
|
|
||||||
|
================ ===========================================================
|
||||||
|
vendorid should be 0x104c
|
||||||
|
deviceid should be 0xb00d for TI's J721E SoC
|
||||||
|
revid don't care
|
||||||
|
progif_code don't care
|
||||||
|
subclass_code should be 0x00
|
||||||
|
baseclass_code should be 0x5
|
||||||
|
cache_line_size don't care
|
||||||
|
subsys_vendor_id don't care
|
||||||
|
subsys_id don't care
|
||||||
|
interrupt_pin don't care
|
||||||
|
msi_interrupts don't care
|
||||||
|
msix_interrupts don't care
|
||||||
|
================ ===========================================================
|
||||||
|
|
||||||
|
2) Create a subdirectory to directory created in 1
|
||||||
|
|
||||||
|
NTB EPF specific configurable fields:
|
||||||
|
|
||||||
|
================ ===========================================================
|
||||||
|
db_count Number of doorbells; default = 4
|
||||||
|
mw1 size of memory window1
|
||||||
|
mw2 size of memory window2
|
||||||
|
mw3 size of memory window3
|
||||||
|
mw4 size of memory window4
|
||||||
|
num_mws Number of memory windows; max = 4
|
||||||
|
spad_count Number of scratchpad registers; default = 64
|
||||||
|
================ ===========================================================
|
||||||
@@ -11,5 +11,8 @@ PCI Endpoint Framework
|
|||||||
pci-endpoint-cfs
|
pci-endpoint-cfs
|
||||||
pci-test-function
|
pci-test-function
|
||||||
pci-test-howto
|
pci-test-howto
|
||||||
|
pci-ntb-function
|
||||||
|
pci-ntb-howto
|
||||||
|
|
||||||
function/binding/pci-test
|
function/binding/pci-test
|
||||||
|
function/binding/pci-ntb
|
||||||
|
|||||||
@@ -68,6 +68,16 @@ created)
|
|||||||
... subsys_vendor_id
|
... subsys_vendor_id
|
||||||
... subsys_id
|
... subsys_id
|
||||||
... interrupt_pin
|
... interrupt_pin
|
||||||
|
... primary/
|
||||||
|
... <Symlink EPC Device1>/
|
||||||
|
... secondary/
|
||||||
|
... <Symlink EPC Device2>/
|
||||||
|
|
||||||
|
If an EPF device has to be associated with 2 EPCs (like in the case of
|
||||||
|
Non-transparent bridge), symlink of endpoint controller connected to primary
|
||||||
|
interface should be added in 'primary' directory and symlink of endpoint
|
||||||
|
controller connected to secondary interface should be added in 'secondary'
|
||||||
|
directory.
|
||||||
|
|
||||||
EPC Device
|
EPC Device
|
||||||
==========
|
==========
|
||||||
|
|||||||
348
Documentation/PCI/endpoint/pci-ntb-function.rst
Normal file
348
Documentation/PCI/endpoint/pci-ntb-function.rst
Normal file
@@ -0,0 +1,348 @@
|
|||||||
|
.. SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
|
=================
|
||||||
|
PCI NTB Function
|
||||||
|
=================
|
||||||
|
|
||||||
|
:Author: Kishon Vijay Abraham I <kishon@ti.com>
|
||||||
|
|
||||||
|
PCI Non-Transparent Bridges (NTB) allow two host systems to communicate
|
||||||
|
with each other by exposing each host as a device to the other host.
|
||||||
|
NTBs typically support the ability to generate interrupts on the remote
|
||||||
|
machine, expose memory ranges as BARs, and perform DMA. They also support
|
||||||
|
scratchpads, which are areas of memory within the NTB that are accessible
|
||||||
|
from both machines.
|
||||||
|
|
||||||
|
PCI NTB Function allows two different systems (or hosts) to communicate
|
||||||
|
with each other by configuring the endpoint instances in such a way that
|
||||||
|
transactions from one system are routed to the other system.
|
||||||
|
|
||||||
|
In the below diagram, PCI NTB function configures the SoC with multiple
|
||||||
|
PCI Endpoint (EP) instances in such a way that transactions from one EP
|
||||||
|
controller are routed to the other EP controller. Once PCI NTB function
|
||||||
|
configures the SoC with multiple EP instances, HOST1 and HOST2 can
|
||||||
|
communicate with each other using SoC as a bridge.
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
+-------------+ +-------------+
|
||||||
|
| | | |
|
||||||
|
| HOST1 | | HOST2 |
|
||||||
|
| | | |
|
||||||
|
+------^------+ +------^------+
|
||||||
|
| |
|
||||||
|
| |
|
||||||
|
+---------|-------------------------------------------------|---------+
|
||||||
|
| +------v------+ +------v------+ |
|
||||||
|
| | | | | |
|
||||||
|
| | EP | | EP | |
|
||||||
|
| | CONTROLLER1 | | CONTROLLER2 | |
|
||||||
|
| | <-----------------------------------> | |
|
||||||
|
| | | | | |
|
||||||
|
| | | | | |
|
||||||
|
| | | SoC With Multiple EP Instances | | |
|
||||||
|
| | | (Configured using NTB Function) | | |
|
||||||
|
| +-------------+ +-------------+ |
|
||||||
|
+---------------------------------------------------------------------+
|
||||||
|
|
||||||
|
Constructs used for Implementing NTB
|
||||||
|
====================================
|
||||||
|
|
||||||
|
1) Config Region
|
||||||
|
2) Self Scratchpad Registers
|
||||||
|
3) Peer Scratchpad Registers
|
||||||
|
4) Doorbell (DB) Registers
|
||||||
|
5) Memory Window (MW)
|
||||||
|
|
||||||
|
|
||||||
|
Config Region:
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Config Region is a construct that is specific to NTB implemented using NTB
|
||||||
|
Endpoint Function Driver. The host and endpoint side NTB function driver will
|
||||||
|
exchange information with each other using this region. Config Region has
|
||||||
|
Control/Status Registers for configuring the Endpoint Controller. Host can
|
||||||
|
write into this region for configuring the outbound Address Translation Unit
|
||||||
|
(ATU) and to indicate the link status. Endpoint can indicate the status of
|
||||||
|
commands issued by host in this region. Endpoint can also indicate the
|
||||||
|
scratchpad offset and number of memory windows to the host using this region.
|
||||||
|
|
||||||
|
The format of Config Region is given below. All the fields here are 32 bits.
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
+------------------------+
|
||||||
|
| COMMAND |
|
||||||
|
+------------------------+
|
||||||
|
| ARGUMENT |
|
||||||
|
+------------------------+
|
||||||
|
| STATUS |
|
||||||
|
+------------------------+
|
||||||
|
| TOPOLOGY |
|
||||||
|
+------------------------+
|
||||||
|
| ADDRESS (LOWER 32) |
|
||||||
|
+------------------------+
|
||||||
|
| ADDRESS (UPPER 32) |
|
||||||
|
+------------------------+
|
||||||
|
| SIZE |
|
||||||
|
+------------------------+
|
||||||
|
| NO OF MEMORY WINDOW |
|
||||||
|
+------------------------+
|
||||||
|
| MEMORY WINDOW1 OFFSET |
|
||||||
|
+------------------------+
|
||||||
|
| SPAD OFFSET |
|
||||||
|
+------------------------+
|
||||||
|
| SPAD COUNT |
|
||||||
|
+------------------------+
|
||||||
|
| DB ENTRY SIZE |
|
||||||
|
+------------------------+
|
||||||
|
| DB DATA |
|
||||||
|
+------------------------+
|
||||||
|
| : |
|
||||||
|
+------------------------+
|
||||||
|
| : |
|
||||||
|
+------------------------+
|
||||||
|
| DB DATA |
|
||||||
|
+------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
COMMAND:
|
||||||
|
|
||||||
|
NTB function supports three commands:
|
||||||
|
|
||||||
|
CMD_CONFIGURE_DOORBELL (0x1): Command to configure doorbell. Before
|
||||||
|
invoking this command, the host should allocate and initialize
|
||||||
|
MSI/MSI-X vectors (i.e., initialize the MSI/MSI-X Capability in the
|
||||||
|
Endpoint). The endpoint on receiving this command will configure
|
||||||
|
the outbound ATU such that transactions to Doorbell BAR will be routed
|
||||||
|
to the MSI/MSI-X address programmed by the host. The ARGUMENT
|
||||||
|
register should be populated with number of DBs to configure (in the
|
||||||
|
lower 16 bits) and if MSI or MSI-X should be configured (BIT 16).
|
||||||
|
|
||||||
|
CMD_CONFIGURE_MW (0x2): Command to configure memory window (MW). The
|
||||||
|
host invokes this command after allocating a buffer that can be
|
||||||
|
accessed by remote host. The allocated address should be programmed
|
||||||
|
in the ADDRESS register (64 bit), the size should be programmed in
|
||||||
|
the SIZE register and the memory window index should be programmed
|
||||||
|
in the ARGUMENT register. The endpoint on receiving this command
|
||||||
|
will configure the outbound ATU such that transactions to MW BAR
|
||||||
|
are routed to the address provided by the host.
|
||||||
|
|
||||||
|
CMD_LINK_UP (0x3): Command to indicate an NTB application is
|
||||||
|
bound to the EP device on the host side. Once the endpoint
|
||||||
|
receives this command from both the hosts, the endpoint will
|
||||||
|
raise a LINK_UP event to both the hosts to indicate the host
|
||||||
|
NTB applications can start communicating with each other.
|
||||||
|
|
||||||
|
ARGUMENT:
|
||||||
|
|
||||||
|
The value of this register is based on the commands issued in
|
||||||
|
command register. See COMMAND section for more information.
|
||||||
|
|
||||||
|
TOPOLOGY:
|
||||||
|
|
||||||
|
Set to NTB_TOPO_B2B_USD for Primary interface
|
||||||
|
Set to NTB_TOPO_B2B_DSD for Secondary interface
|
||||||
|
|
||||||
|
ADDRESS/SIZE:
|
||||||
|
|
||||||
|
Address and Size to be used while configuring the memory window.
|
||||||
|
See "CMD_CONFIGURE_MW" for more info.
|
||||||
|
|
||||||
|
MEMORY WINDOW1 OFFSET:
|
||||||
|
|
||||||
|
Memory Window 1 and Doorbell registers are packed together in the
|
||||||
|
same BAR. The initial portion of the region will have doorbell
|
||||||
|
registers and the latter portion of the region is for memory window 1.
|
||||||
|
This register will specify the offset of the memory window 1.
|
||||||
|
|
||||||
|
NO OF MEMORY WINDOW:
|
||||||
|
|
||||||
|
Specifies the number of memory windows supported by the NTB device.
|
||||||
|
|
||||||
|
SPAD OFFSET:
|
||||||
|
|
||||||
|
Self scratchpad region and config region are packed together in the
|
||||||
|
same BAR. The initial portion of the region will have config region
|
||||||
|
and the latter portion of the region is for self scratchpad. This
|
||||||
|
register will specify the offset of the self scratchpad registers.
|
||||||
|
|
||||||
|
SPAD COUNT:
|
||||||
|
|
||||||
|
Specifies the number of scratchpad registers supported by the NTB
|
||||||
|
device.
|
||||||
|
|
||||||
|
DB ENTRY SIZE:
|
||||||
|
|
||||||
|
Used to determine the offset within the DB BAR that should be written
|
||||||
|
in order to raise doorbell. EPF NTB can use either MSI or MSI-X to
|
||||||
|
ring doorbell (MSI-X support will be added later). MSI uses same
|
||||||
|
address for all the interrupts and MSI-X can provide different
|
||||||
|
addresses for different interrupts. The MSI/MSI-X address is provided
|
||||||
|
by the host and the address it gives is based on the MSI/MSI-X
|
||||||
|
implementation supported by the host. For instance, ARM platform
|
||||||
|
using GIC ITS will have the same MSI-X address for all the interrupts.
|
||||||
|
In order to support all the combinations and use the same mechanism
|
||||||
|
for both MSI and MSI-X, EPF NTB allocates a separate region in the
|
||||||
|
Outbound Address Space for each of the interrupts. This region will
|
||||||
|
be mapped to the MSI/MSI-X address provided by the host. If a host
|
||||||
|
provides the same address for all the interrupts, all the regions
|
||||||
|
will be translated to the same address. If a host provides different
|
||||||
|
addresses, the regions will be translated to different addresses. This
|
||||||
|
will ensure there is no difference while raising the doorbell.
|
||||||
|
|
||||||
|
DB DATA:
|
||||||
|
|
||||||
|
EPF NTB supports 32 interrupts, so there are 32 DB DATA registers.
|
||||||
|
This holds the MSI/MSI-X data that has to be written to MSI address
|
||||||
|
for raising doorbell interrupt. This will be populated by EPF NTB
|
||||||
|
while invoking CMD_CONFIGURE_DOORBELL.
|
||||||
|
|
||||||
|
Scratchpad Registers:
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Each host has its own register space allocated in the memory of NTB endpoint
|
||||||
|
controller. They are both readable and writable from both sides of the bridge.
|
||||||
|
They are used by applications built over NTB and can be used to pass control
|
||||||
|
and status information between both sides of a device.
|
||||||
|
|
||||||
|
Scratchpad registers has 2 parts
|
||||||
|
1) Self Scratchpad: Host's own register space
|
||||||
|
2) Peer Scratchpad: Remote host's register space.
|
||||||
|
|
||||||
|
Doorbell Registers:
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Doorbell Registers are used by the hosts to interrupt each other.
|
||||||
|
|
||||||
|
Memory Window:
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Actual transfer of data between the two hosts will happen using the
|
||||||
|
memory window.
|
||||||
|
|
||||||
|
Modeling Constructs:
|
||||||
|
====================
|
||||||
|
|
||||||
|
There are 5 or more distinct regions (config, self scratchpad, peer
|
||||||
|
scratchpad, doorbell, one or more memory windows) to be modeled to achieve
|
||||||
|
NTB functionality. At least one memory window is required while more than
|
||||||
|
one is permitted. All these regions should be mapped to BARs for hosts to
|
||||||
|
access these regions.
|
||||||
|
|
||||||
|
If one 32-bit BAR is allocated for each of these regions, the scheme would
|
||||||
|
look like this:
|
||||||
|
|
||||||
|
====== ===============
|
||||||
|
BAR NO CONSTRUCTS USED
|
||||||
|
====== ===============
|
||||||
|
BAR0 Config Region
|
||||||
|
BAR1 Self Scratchpad
|
||||||
|
BAR2 Peer Scratchpad
|
||||||
|
BAR3 Doorbell
|
||||||
|
BAR4 Memory Window 1
|
||||||
|
BAR5 Memory Window 2
|
||||||
|
====== ===============
|
||||||
|
|
||||||
|
However if we allocate a separate BAR for each of the regions, there would not
|
||||||
|
be enough BARs for all the regions in a platform that supports only 64-bit
|
||||||
|
BARs.
|
||||||
|
|
||||||
|
In order to be supported by most of the platforms, the regions should be
|
||||||
|
packed and mapped to BARs in a way that provides NTB functionality and
|
||||||
|
also makes sure the host doesn't access any region that it is not supposed
|
||||||
|
to.
|
||||||
|
|
||||||
|
The following scheme is used in EPF NTB Function:
|
||||||
|
|
||||||
|
====== ===============================
|
||||||
|
BAR NO CONSTRUCTS USED
|
||||||
|
====== ===============================
|
||||||
|
BAR0 Config Region + Self Scratchpad
|
||||||
|
BAR1 Peer Scratchpad
|
||||||
|
BAR2 Doorbell + Memory Window 1
|
||||||
|
BAR3 Memory Window 2
|
||||||
|
BAR4 Memory Window 3
|
||||||
|
BAR5 Memory Window 4
|
||||||
|
====== ===============================
|
||||||
|
|
||||||
|
With this scheme, for the basic NTB functionality 3 BARs should be sufficient.
|
||||||
|
|
||||||
|
Modeling Config/Scratchpad Region:
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
+-----------------+------->+------------------+ +-----------------+
|
||||||
|
| BAR0 | | CONFIG REGION | | BAR0 |
|
||||||
|
+-----------------+----+ +------------------+<-------+-----------------+
|
||||||
|
| BAR1 | | |SCRATCHPAD REGION | | BAR1 |
|
||||||
|
+-----------------+ +-->+------------------+<-------+-----------------+
|
||||||
|
| BAR2 | Local Memory | BAR2 |
|
||||||
|
+-----------------+ +-----------------+
|
||||||
|
| BAR3 | | BAR3 |
|
||||||
|
+-----------------+ +-----------------+
|
||||||
|
| BAR4 | | BAR4 |
|
||||||
|
+-----------------+ +-----------------+
|
||||||
|
| BAR5 | | BAR5 |
|
||||||
|
+-----------------+ +-----------------+
|
||||||
|
EP CONTROLLER 1 EP CONTROLLER 2
|
||||||
|
|
||||||
|
Above diagram shows Config region + Scratchpad region for HOST1 (connected to
|
||||||
|
EP controller 1) allocated in local memory. The HOST1 can access the config
|
||||||
|
region and scratchpad region (self scratchpad) using BAR0 of EP controller 1.
|
||||||
|
The peer host (HOST2 connected to EP controller 2) can also access this
|
||||||
|
scratchpad region (peer scratchpad) using BAR1 of EP controller 2. This
|
||||||
|
diagram shows the case where Config region and Scratchpad regions are allocated
|
||||||
|
for HOST1, however the same is applicable for HOST2.
|
||||||
|
|
||||||
|
Modeling Doorbell/Memory Window 1:
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
+-----------------+ +----->+----------------+-----------+-----------------+
|
||||||
|
| BAR0 | | | Doorbell 1 +-----------> MSI-X ADDRESS 1 |
|
||||||
|
+-----------------+ | +----------------+ +-----------------+
|
||||||
|
| BAR1 | | | Doorbell 2 +---------+ | |
|
||||||
|
+-----------------+----+ +----------------+ | | |
|
||||||
|
| BAR2 | | Doorbell 3 +-------+ | +-----------------+
|
||||||
|
+-----------------+----+ +----------------+ | +-> MSI-X ADDRESS 2 |
|
||||||
|
| BAR3 | | | Doorbell 4 +-----+ | +-----------------+
|
||||||
|
+-----------------+ | |----------------+ | | | |
|
||||||
|
| BAR4 | | | | | | +-----------------+
|
||||||
|
+-----------------+ | | MW1 +---+ | +-->+ MSI-X ADDRESS 3||
|
||||||
|
| BAR5 | | | | | | +-----------------+
|
||||||
|
+-----------------+ +----->-----------------+ | | | |
|
||||||
|
EP CONTROLLER 1 | | | | +-----------------+
|
||||||
|
| | | +---->+ MSI-X ADDRESS 4 |
|
||||||
|
+----------------+ | +-----------------+
|
||||||
|
EP CONTROLLER 2 | | |
|
||||||
|
(OB SPACE) | | |
|
||||||
|
+-------> MW1 |
|
||||||
|
| |
|
||||||
|
| |
|
||||||
|
+-----------------+
|
||||||
|
| |
|
||||||
|
| |
|
||||||
|
| |
|
||||||
|
| |
|
||||||
|
| |
|
||||||
|
+-----------------+
|
||||||
|
PCI Address Space
|
||||||
|
(Managed by HOST2)
|
||||||
|
|
||||||
|
Above diagram shows how the doorbell and memory window 1 is mapped so that
|
||||||
|
HOST1 can raise doorbell interrupt on HOST2 and also how HOST1 can access
|
||||||
|
buffers exposed by HOST2 using memory window1 (MW1). Here doorbell and
|
||||||
|
memory window 1 regions are allocated in EP controller 2 outbound (OB) address
|
||||||
|
space. Allocating and configuring BARs for doorbell and memory window1
|
||||||
|
is done during the initialization phase of NTB endpoint function driver.
|
||||||
|
Mapping from EP controller 2 OB space to PCI address space is done when HOST2
|
||||||
|
sends CMD_CONFIGURE_MW/CMD_CONFIGURE_DOORBELL.
|
||||||
|
|
||||||
|
Modeling Optional Memory Windows:
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
This is modeled the same was as MW1 but each of the additional memory windows
|
||||||
|
is mapped to separate BARs.
|
||||||
161
Documentation/PCI/endpoint/pci-ntb-howto.rst
Normal file
161
Documentation/PCI/endpoint/pci-ntb-howto.rst
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
.. SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
|
===================================================================
|
||||||
|
PCI Non-Transparent Bridge (NTB) Endpoint Function (EPF) User Guide
|
||||||
|
===================================================================
|
||||||
|
|
||||||
|
:Author: Kishon Vijay Abraham I <kishon@ti.com>
|
||||||
|
|
||||||
|
This document is a guide to help users use pci-epf-ntb function driver
|
||||||
|
and ntb_hw_epf host driver for NTB functionality. The list of steps to
|
||||||
|
be followed in the host side and EP side is given below. For the hardware
|
||||||
|
configuration and internals of NTB using configurable endpoints see
|
||||||
|
Documentation/PCI/endpoint/pci-ntb-function.rst
|
||||||
|
|
||||||
|
Endpoint Device
|
||||||
|
===============
|
||||||
|
|
||||||
|
Endpoint Controller Devices
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
For implementing NTB functionality at least two endpoint controller devices
|
||||||
|
are required.
|
||||||
|
|
||||||
|
To find the list of endpoint controller devices in the system::
|
||||||
|
|
||||||
|
# ls /sys/class/pci_epc/
|
||||||
|
2900000.pcie-ep 2910000.pcie-ep
|
||||||
|
|
||||||
|
If PCI_ENDPOINT_CONFIGFS is enabled::
|
||||||
|
|
||||||
|
# ls /sys/kernel/config/pci_ep/controllers
|
||||||
|
2900000.pcie-ep 2910000.pcie-ep
|
||||||
|
|
||||||
|
|
||||||
|
Endpoint Function Drivers
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
To find the list of endpoint function drivers in the system::
|
||||||
|
|
||||||
|
# ls /sys/bus/pci-epf/drivers
|
||||||
|
pci_epf_ntb pci_epf_ntb
|
||||||
|
|
||||||
|
If PCI_ENDPOINT_CONFIGFS is enabled::
|
||||||
|
|
||||||
|
# ls /sys/kernel/config/pci_ep/functions
|
||||||
|
pci_epf_ntb pci_epf_ntb
|
||||||
|
|
||||||
|
|
||||||
|
Creating pci-epf-ntb Device
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
PCI endpoint function device can be created using the configfs. To create
|
||||||
|
pci-epf-ntb device, the following commands can be used::
|
||||||
|
|
||||||
|
# mount -t configfs none /sys/kernel/config
|
||||||
|
# cd /sys/kernel/config/pci_ep/
|
||||||
|
# mkdir functions/pci_epf_ntb/func1
|
||||||
|
|
||||||
|
The "mkdir func1" above creates the pci-epf-ntb function device that will
|
||||||
|
be probed by pci_epf_ntb driver.
|
||||||
|
|
||||||
|
The PCI endpoint framework populates the directory with the following
|
||||||
|
configurable fields::
|
||||||
|
|
||||||
|
# ls functions/pci_epf_ntb/func1
|
||||||
|
baseclass_code deviceid msi_interrupts pci-epf-ntb.0
|
||||||
|
progif_code secondary subsys_id vendorid
|
||||||
|
cache_line_size interrupt_pin msix_interrupts primary
|
||||||
|
revid subclass_code subsys_vendor_id
|
||||||
|
|
||||||
|
The PCI endpoint function driver populates these entries with default values
|
||||||
|
when the device is bound to the driver. The pci-epf-ntb driver populates
|
||||||
|
vendorid with 0xffff and interrupt_pin with 0x0001::
|
||||||
|
|
||||||
|
# cat functions/pci_epf_ntb/func1/vendorid
|
||||||
|
0xffff
|
||||||
|
# cat functions/pci_epf_ntb/func1/interrupt_pin
|
||||||
|
0x0001
|
||||||
|
|
||||||
|
|
||||||
|
Configuring pci-epf-ntb Device
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
The user can configure the pci-epf-ntb device using its configfs entry. In order
|
||||||
|
to change the vendorid and the deviceid, the following
|
||||||
|
commands can be used::
|
||||||
|
|
||||||
|
# echo 0x104c > functions/pci_epf_ntb/func1/vendorid
|
||||||
|
# echo 0xb00d > functions/pci_epf_ntb/func1/deviceid
|
||||||
|
|
||||||
|
In order to configure NTB specific attributes, a new sub-directory to func1
|
||||||
|
should be created::
|
||||||
|
|
||||||
|
# mkdir functions/pci_epf_ntb/func1/pci_epf_ntb.0/
|
||||||
|
|
||||||
|
The NTB function driver will populate this directory with various attributes
|
||||||
|
that can be configured by the user::
|
||||||
|
|
||||||
|
# ls functions/pci_epf_ntb/func1/pci_epf_ntb.0/
|
||||||
|
db_count mw1 mw2 mw3 mw4 num_mws
|
||||||
|
spad_count
|
||||||
|
|
||||||
|
A sample configuration for NTB function is given below::
|
||||||
|
|
||||||
|
# echo 4 > functions/pci_epf_ntb/func1/pci_epf_ntb.0/db_count
|
||||||
|
# echo 128 > functions/pci_epf_ntb/func1/pci_epf_ntb.0/spad_count
|
||||||
|
# echo 2 > functions/pci_epf_ntb/func1/pci_epf_ntb.0/num_mws
|
||||||
|
# echo 0x100000 > functions/pci_epf_ntb/func1/pci_epf_ntb.0/mw1
|
||||||
|
# echo 0x100000 > functions/pci_epf_ntb/func1/pci_epf_ntb.0/mw2
|
||||||
|
|
||||||
|
Binding pci-epf-ntb Device to EP Controller
|
||||||
|
--------------------------------------------
|
||||||
|
|
||||||
|
NTB function device should be attached to two PCI endpoint controllers
|
||||||
|
connected to the two hosts. Use the 'primary' and 'secondary' entries
|
||||||
|
inside NTB function device to attach one PCI endpoint controller to
|
||||||
|
primary interface and the other PCI endpoint controller to the secondary
|
||||||
|
interface::
|
||||||
|
|
||||||
|
# ln -s controllers/2900000.pcie-ep/ functions/pci-epf-ntb/func1/primary
|
||||||
|
# ln -s controllers/2910000.pcie-ep/ functions/pci-epf-ntb/func1/secondary
|
||||||
|
|
||||||
|
Once the above step is completed, both the PCI endpoint controllers are ready to
|
||||||
|
establish a link with the host.
|
||||||
|
|
||||||
|
|
||||||
|
Start the Link
|
||||||
|
--------------
|
||||||
|
|
||||||
|
In order for the endpoint device to establish a link with the host, the _start_
|
||||||
|
field should be populated with '1'. For NTB, both the PCI endpoint controllers
|
||||||
|
should establish link with the host::
|
||||||
|
|
||||||
|
# echo 1 > controllers/2900000.pcie-ep/start
|
||||||
|
# echo 1 > controllers/2910000.pcie-ep/start
|
||||||
|
|
||||||
|
|
||||||
|
RootComplex Device
|
||||||
|
==================
|
||||||
|
|
||||||
|
lspci Output
|
||||||
|
------------
|
||||||
|
|
||||||
|
Note that the devices listed here correspond to the values populated in
|
||||||
|
"Creating pci-epf-ntb Device" section above::
|
||||||
|
|
||||||
|
# lspci
|
||||||
|
0000:00:00.0 PCI bridge: Texas Instruments Device b00d
|
||||||
|
0000:01:00.0 RAM memory: Texas Instruments Device b00d
|
||||||
|
|
||||||
|
|
||||||
|
Using ntb_hw_epf Device
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
The host side software follows the standard NTB software architecture in Linux.
|
||||||
|
All the existing client side NTB utilities like NTB Transport Client and NTB
|
||||||
|
Netdev, NTB Ping Pong Test Client and NTB Tool Test Client can be used with NTB
|
||||||
|
function device.
|
||||||
|
|
||||||
|
For more information on NTB see
|
||||||
|
:doc:`Non-Transparent Bridge <../../driver-api/ntb>`
|
||||||
@@ -38,7 +38,7 @@ sections.
|
|||||||
RCU-preempt Expedited Grace Periods
|
RCU-preempt Expedited Grace Periods
|
||||||
===================================
|
===================================
|
||||||
|
|
||||||
``CONFIG_PREEMPT=y`` kernels implement RCU-preempt.
|
``CONFIG_PREEMPTION=y`` kernels implement RCU-preempt.
|
||||||
The overall flow of the handling of a given CPU by an RCU-preempt
|
The overall flow of the handling of a given CPU by an RCU-preempt
|
||||||
expedited grace period is shown in the following diagram:
|
expedited grace period is shown in the following diagram:
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@ things.
|
|||||||
RCU-sched Expedited Grace Periods
|
RCU-sched Expedited Grace Periods
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
|
||||||
``CONFIG_PREEMPT=n`` kernels implement RCU-sched. The overall flow of
|
``CONFIG_PREEMPTION=n`` kernels implement RCU-sched. The overall flow of
|
||||||
the handling of a given CPU by an RCU-sched expedited grace period is
|
the handling of a given CPU by an RCU-sched expedited grace period is
|
||||||
shown in the following diagram:
|
shown in the following diagram:
|
||||||
|
|
||||||
|
|||||||
@@ -473,7 +473,7 @@ read-side critical sections that follow the idle period (the oval near
|
|||||||
the bottom of the diagram above).
|
the bottom of the diagram above).
|
||||||
|
|
||||||
Plumbing this into the full grace-period execution is described
|
Plumbing this into the full grace-period execution is described
|
||||||
`below <#Forcing%20Quiescent%20States>`__.
|
`below <Forcing Quiescent States_>`__.
|
||||||
|
|
||||||
CPU-Hotplug Interface
|
CPU-Hotplug Interface
|
||||||
^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
@@ -494,7 +494,7 @@ mask to detect CPUs having gone offline since the beginning of this
|
|||||||
grace period.
|
grace period.
|
||||||
|
|
||||||
Plumbing this into the full grace-period execution is described
|
Plumbing this into the full grace-period execution is described
|
||||||
`below <#Forcing%20Quiescent%20States>`__.
|
`below <Forcing Quiescent States_>`__.
|
||||||
|
|
||||||
Forcing Quiescent States
|
Forcing Quiescent States
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
@@ -532,7 +532,7 @@ from other CPUs.
|
|||||||
| RCU. But this diagram is complex enough as it is, so simplicity |
|
| RCU. But this diagram is complex enough as it is, so simplicity |
|
||||||
| overrode accuracy. You can think of it as poetic license, or you can |
|
| overrode accuracy. You can think of it as poetic license, or you can |
|
||||||
| think of it as misdirection that is resolved in the |
|
| think of it as misdirection that is resolved in the |
|
||||||
| `stitched-together diagram <#Putting%20It%20All%20Together>`__. |
|
| `stitched-together diagram <Putting It All Together_>`__. |
|
||||||
+-----------------------------------------------------------------------+
|
+-----------------------------------------------------------------------+
|
||||||
|
|
||||||
Grace-Period Cleanup
|
Grace-Period Cleanup
|
||||||
@@ -596,7 +596,7 @@ maintain ordering. For example, if the callback function wakes up a task
|
|||||||
that runs on some other CPU, proper ordering must in place in both the
|
that runs on some other CPU, proper ordering must in place in both the
|
||||||
callback function and the task being awakened. To see why this is
|
callback function and the task being awakened. To see why this is
|
||||||
important, consider the top half of the `grace-period
|
important, consider the top half of the `grace-period
|
||||||
cleanup <#Grace-Period%20Cleanup>`__ diagram. The callback might be
|
cleanup`_ diagram. The callback might be
|
||||||
running on a CPU corresponding to the leftmost leaf ``rcu_node``
|
running on a CPU corresponding to the leftmost leaf ``rcu_node``
|
||||||
structure, and awaken a task that is to run on a CPU corresponding to
|
structure, and awaken a task that is to run on a CPU corresponding to
|
||||||
the rightmost leaf ``rcu_node`` structure, and the grace-period kernel
|
the rightmost leaf ``rcu_node`` structure, and the grace-period kernel
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -8,8 +8,7 @@ Although RCU is usually used to protect read-mostly data structures,
|
|||||||
it is possible to use RCU to provide dynamic non-maskable interrupt
|
it is possible to use RCU to provide dynamic non-maskable interrupt
|
||||||
handlers, as well as dynamic irq handlers. This document describes
|
handlers, as well as dynamic irq handlers. This document describes
|
||||||
how to do this, drawing loosely from Zwane Mwaikambo's NMI-timer
|
how to do this, drawing loosely from Zwane Mwaikambo's NMI-timer
|
||||||
work in "arch/x86/oprofile/nmi_timer_int.c" and in
|
work in "arch/x86/kernel/traps.c".
|
||||||
"arch/x86/kernel/traps.c".
|
|
||||||
|
|
||||||
The relevant pieces of code are listed below, each followed by a
|
The relevant pieces of code are listed below, each followed by a
|
||||||
brief explanation::
|
brief explanation::
|
||||||
|
|||||||
@@ -683,7 +683,7 @@ Orran Krieger and Rusty Russell and Dipankar Sarma and Maneesh Soni"
|
|||||||
,month="October"
|
,month="October"
|
||||||
,year="2001"
|
,year="2001"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2001/10/13/105}
|
\url{https://lore.kernel.org/r/Pine.LNX.4.33.0110131015410.8707-100000@penguin.transmeta.com}
|
||||||
[Viewed August 21, 2004]"
|
[Viewed August 21, 2004]"
|
||||||
,annotation={
|
,annotation={
|
||||||
}
|
}
|
||||||
@@ -826,7 +826,7 @@ Symposium on Distributed Computing}
|
|||||||
,month="October"
|
,month="October"
|
||||||
,year="2002"
|
,year="2002"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{https://lkml.org/lkml/2002/10/24/262}
|
\url{https://lore.kernel.org/r/3DB86B05.447E7410@us.ibm.com}
|
||||||
[Viewed February 15, 2014]"
|
[Viewed February 15, 2014]"
|
||||||
,annotation={
|
,annotation={
|
||||||
Mingming Cao's patch to introduce RCU to SysV IPC.
|
Mingming Cao's patch to introduce RCU to SysV IPC.
|
||||||
@@ -839,7 +839,7 @@ Symposium on Distributed Computing}
|
|||||||
,month="March"
|
,month="March"
|
||||||
,year="2003"
|
,year="2003"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2003/3/9/205}
|
\url{https://lore.kernel.org/r/Pine.LNX.4.44.0303091831560.2129-100000@home.transmeta.com}
|
||||||
[Viewed March 13, 2006]"
|
[Viewed March 13, 2006]"
|
||||||
,annotation={
|
,annotation={
|
||||||
Linus suggests replacing brlock with RCU and/or seqlocks:
|
Linus suggests replacing brlock with RCU and/or seqlocks:
|
||||||
@@ -1036,15 +1036,15 @@ Add per-cpu batch counter"
|
|||||||
,annotation={
|
,annotation={
|
||||||
RCU runs reasonably on a 512-CPU SGI using Manfred Spraul's patches,
|
RCU runs reasonably on a 512-CPU SGI using Manfred Spraul's patches,
|
||||||
which may be found at:
|
which may be found at:
|
||||||
https://lkml.org/lkml/2004/5/20/49 (split vars into cachelines)
|
https://lore.kernel.org/r/40AC9823.6020709@colorfullife.com (split vars into cachelines)
|
||||||
https://lkml.org/lkml/2004/5/22/114 (cpu_quiet() patch)
|
https://lore.kernel.org/r/Pine.LNX.4.44.0405222141260.11106-100000@dbl.q-ag.de (cpu_quiet() patch)
|
||||||
https://lkml.org/lkml/2004/5/25/24 (0/5)
|
https://lore.kernel.org/r/200405250535.i4P5ZJo8017583@dbl.q-ag.de (0/5)
|
||||||
https://lkml.org/lkml/2004/5/25/23 (1/5)
|
https://lore.kernel.org/r/200405250535.i4P5ZKAQ017591@dbl.q-ag.de (1/5)
|
||||||
https://lkml.org/lkml/2004/5/25/265 (works for Jack)
|
https://lore.kernel.org/r/20040525203215.GB5127@sgi.com (works for Jack)
|
||||||
https://lkml.org/lkml/2004/5/25/20 (2/5)
|
https://lore.kernel.org/r/200405250535.i4P5ZLiR017599@dbl.q-ag.de (2/5)
|
||||||
https://lkml.org/lkml/2004/5/25/22 (3/5)
|
https://lore.kernel.org/r/200405250535.i4P5ZMFt017607@dbl.q-ag.de (3/5)
|
||||||
https://lkml.org/lkml/2004/5/25/19 (4/5)
|
https://lore.kernel.org/r/200405250535.i4P5ZN6g017615@dbl.q-ag.de (4/5)
|
||||||
https://lkml.org/lkml/2004/5/25/21 (5/5)
|
https://lore.kernel.org/r/200405250535.i4P5ZO7I017623@dbl.q-ag.de (5/5)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1106,7 +1106,7 @@ Oregon Health and Sciences University"
|
|||||||
,month="August"
|
,month="August"
|
||||||
,year="2004"
|
,year="2004"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2004/8/6/237}
|
\url{https://lore.kernel.org/r/20040807192424.GF3936@in.ibm.com}
|
||||||
[Viewed June 8, 2010]"
|
[Viewed June 8, 2010]"
|
||||||
,annotation={
|
,annotation={
|
||||||
Introduce rcu_dereference().
|
Introduce rcu_dereference().
|
||||||
@@ -1119,7 +1119,7 @@ Oregon Health and Sciences University"
|
|||||||
,month="August"
|
,month="August"
|
||||||
,year="2004"
|
,year="2004"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2004/8/30/87}
|
\url{https://lore.kernel.org/r/1093873222.984.12.camel@new.localdomain}
|
||||||
[Viewed February 17, 2005]"
|
[Viewed February 17, 2005]"
|
||||||
,annotation={
|
,annotation={
|
||||||
Uses active code in rcu_read_lock() and rcu_read_unlock() to
|
Uses active code in rcu_read_lock() and rcu_read_unlock() to
|
||||||
@@ -1186,7 +1186,7 @@ Oregon Health and Sciences University"
|
|||||||
,month="October"
|
,month="October"
|
||||||
,year="2004"
|
,year="2004"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2004/10/23/241}
|
\url{https://lore.kernel.org/r/20041023202723.GA1930@us.ibm.com}
|
||||||
[Viewed June 8, 2010]"
|
[Viewed June 8, 2010]"
|
||||||
,annotation={
|
,annotation={
|
||||||
Introduce rcu_assign_pointer().
|
Introduce rcu_assign_pointer().
|
||||||
@@ -1203,7 +1203,7 @@ Oregon Health and Sciences University"
|
|||||||
,annotation={
|
,annotation={
|
||||||
James Morris posts Kaigai Kohei's patch to LKML.
|
James Morris posts Kaigai Kohei's patch to LKML.
|
||||||
[Viewed December 10, 2004]
|
[Viewed December 10, 2004]
|
||||||
Kaigai's patch is at https://lkml.org/lkml/2004/9/27/52
|
Kaigai's patch is at https://lore.kernel.org/r/200409271057.i8RAvcA1007873@mailsv.bs1.fc.nec.co.jp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1241,7 +1241,7 @@ Oregon Health and Sciences University"
|
|||||||
,year="2005"
|
,year="2005"
|
||||||
,day="17"
|
,day="17"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2005/3/17/199}
|
\url{https://lore.kernel.org/r/20050318002026.GA2693@us.ibm.com}
|
||||||
[Viewed September 5, 2005]"
|
[Viewed September 5, 2005]"
|
||||||
,annotation={
|
,annotation={
|
||||||
First posting showing how RCU can be safely adapted for
|
First posting showing how RCU can be safely adapted for
|
||||||
@@ -1256,7 +1256,7 @@ Oregon Health and Sciences University"
|
|||||||
,year="2005"
|
,year="2005"
|
||||||
,day="18"
|
,day="18"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2005/3/18/122}
|
\url{https://lore.kernel.org/r/Pine.OSF.4.05.10503181336310.2466-100000@da410.phys.au.dk}
|
||||||
[Viewed March 30, 2006]"
|
[Viewed March 30, 2006]"
|
||||||
,annotation={
|
,annotation={
|
||||||
Esben Neilsen suggests read-side suppression of grace-period
|
Esben Neilsen suggests read-side suppression of grace-period
|
||||||
@@ -1302,7 +1302,7 @@ Data Structures"
|
|||||||
,month="May"
|
,month="May"
|
||||||
,year="2005"
|
,year="2005"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2005/5/9/185}
|
\url{https://lore.kernel.org/r/20050510012444.GA3011@us.ibm.com}
|
||||||
[Viewed May 13, 2005]"
|
[Viewed May 13, 2005]"
|
||||||
,annotation={
|
,annotation={
|
||||||
First publication of working lock-based deferred free patches
|
First publication of working lock-based deferred free patches
|
||||||
@@ -1385,7 +1385,7 @@ Data Structures"
|
|||||||
,day="1"
|
,day="1"
|
||||||
,year="2005"
|
,year="2005"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2005/8/1/155}
|
\url{https://lore.kernel.org/r/20050801171137.GA1754@us.ibm.com}
|
||||||
[Viewed March 14, 2006]"
|
[Viewed March 14, 2006]"
|
||||||
,annotation={
|
,annotation={
|
||||||
First operating counter-based realtime RCU patch posted to LKML.
|
First operating counter-based realtime RCU patch posted to LKML.
|
||||||
@@ -1399,7 +1399,7 @@ Data Structures"
|
|||||||
,day="8"
|
,day="8"
|
||||||
,year="2005"
|
,year="2005"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2005/8/8/108}
|
\url{https://lore.kernel.org/r/20050808144216.GA1307@us.ibm.com}
|
||||||
[Viewed March 14, 2006]"
|
[Viewed March 14, 2006]"
|
||||||
,annotation={
|
,annotation={
|
||||||
First operating counter-based realtime RCU patch posted to LKML,
|
First operating counter-based realtime RCU patch posted to LKML,
|
||||||
@@ -1415,7 +1415,7 @@ Data Structures"
|
|||||||
,day="1"
|
,day="1"
|
||||||
,year="2005"
|
,year="2005"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2005/10/1/70}
|
\url{https://lore.kernel.org/r/20051001182056.GA1613@us.ibm.com}
|
||||||
[Viewed March 14, 2006]"
|
[Viewed March 14, 2006]"
|
||||||
,annotation={
|
,annotation={
|
||||||
First rcutorture patch.
|
First rcutorture patch.
|
||||||
@@ -1429,7 +1429,7 @@ Data Structures"
|
|||||||
,day="6"
|
,day="6"
|
||||||
,year="2006"
|
,year="2006"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{https://lkml.org/lkml/2006/1/7/22}
|
\url{https://lore.kernel.org/r/20060106.231054.43576567.davem@davemloft.net}
|
||||||
[Viewed February 29, 2012]"
|
[Viewed February 29, 2012]"
|
||||||
,annotation={
|
,annotation={
|
||||||
David Miller's view on hashed arrays of locks: used to really
|
David Miller's view on hashed arrays of locks: used to really
|
||||||
@@ -1464,7 +1464,7 @@ Distributed Processing Symposium"
|
|||||||
,day="20"
|
,day="20"
|
||||||
,year="2006"
|
,year="2006"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2006/6/20/238}
|
\url{https://lore.kernel.org/r/20060408134707.22479.33814.sendpatchset@linux.site}
|
||||||
[Viewed March 25, 2008]"
|
[Viewed March 25, 2008]"
|
||||||
,annotation={
|
,annotation={
|
||||||
RCU-protected radix tree.
|
RCU-protected radix tree.
|
||||||
@@ -1554,7 +1554,7 @@ Revised:
|
|||||||
,day="28"
|
,day="28"
|
||||||
,year="2006"
|
,year="2006"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2006/9/28/160}
|
\url{https://lore.kernel.org/r/20060928142616.GA20185@infradead.org}
|
||||||
[Viewed March 27, 2008]"
|
[Viewed March 27, 2008]"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1593,7 +1593,7 @@ Revised:
|
|||||||
,year="2006"
|
,year="2006"
|
||||||
,day=26
|
,day=26
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2006/10/26/73}
|
\url{https://lore.kernel.org/r/20061026105731.GE11803@in.ibm.com}
|
||||||
[Viewed January 26, 2009]"
|
[Viewed January 26, 2009]"
|
||||||
,annotation={
|
,annotation={
|
||||||
RCU-based reader-writer lock that allows readers to proceed with
|
RCU-based reader-writer lock that allows readers to proceed with
|
||||||
@@ -1612,12 +1612,12 @@ Revised:
|
|||||||
,year="2006"
|
,year="2006"
|
||||||
,day=17
|
,day=17
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2006/11/17/56}
|
\url{https://lore.kernel.org/r/20061117092925.GT7164@kernel.dk}
|
||||||
[Viewed May 28, 2007]"
|
[Viewed May 28, 2007]"
|
||||||
,annotation={
|
,annotation={
|
||||||
SRCU's grace periods are too slow for Jens, even after a
|
SRCU's grace periods are too slow for Jens, even after a
|
||||||
factor-of-three speedup.
|
factor-of-three speedup.
|
||||||
Sped-up version of SRCU at http://lkml.org/lkml/2006/11/17/359.
|
Sped-up version of SRCU at https://lore.kernel.org/r/20061118002845.GF2632@us.ibm.com.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1629,7 +1629,7 @@ Revised:
|
|||||||
,year="2006"
|
,year="2006"
|
||||||
,day=19
|
,day=19
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2006/11/19/69}
|
\url{https://lore.kernel.org/r/20061119190027.GA3676@oleg}
|
||||||
[Viewed May 28, 2007]"
|
[Viewed May 28, 2007]"
|
||||||
,annotation={
|
,annotation={
|
||||||
First cut of QRCU. Expanded/corrected versions followed.
|
First cut of QRCU. Expanded/corrected versions followed.
|
||||||
@@ -1644,7 +1644,7 @@ Revised:
|
|||||||
,year="2006"
|
,year="2006"
|
||||||
,day=30
|
,day=30
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2006/11/29/330}
|
\url{https://lore.kernel.org/r/20061130015714.GC1350@oleg}
|
||||||
[Viewed November 26, 2008]"
|
[Viewed November 26, 2008]"
|
||||||
,annotation={
|
,annotation={
|
||||||
Expanded/corrected version of QRCU.
|
Expanded/corrected version of QRCU.
|
||||||
@@ -1709,7 +1709,7 @@ Revised:
|
|||||||
,year="2007"
|
,year="2007"
|
||||||
,day=3
|
,day=3
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2007/1/3/112}
|
\url{https://lore.kernel.org/r/20070103152738.GA16063@localdomain}
|
||||||
[Viewed May 28, 2007]"
|
[Viewed May 28, 2007]"
|
||||||
,annotation={
|
,annotation={
|
||||||
Patch for list_splice_rcu().
|
Patch for list_splice_rcu().
|
||||||
@@ -1737,7 +1737,7 @@ Revised:
|
|||||||
,year="2007"
|
,year="2007"
|
||||||
,day=28
|
,day=28
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2007/1/28/34}
|
\url{https://lore.kernel.org/r/20070128120509.719287000@programming.kicks-ass.net}
|
||||||
[Viewed March 27, 2008]"
|
[Viewed March 27, 2008]"
|
||||||
,annotation={
|
,annotation={
|
||||||
RCU-like implementation for frequent updaters and rare readers(!).
|
RCU-like implementation for frequent updaters and rare readers(!).
|
||||||
@@ -1767,7 +1767,7 @@ Revised:
|
|||||||
,year="2007"
|
,year="2007"
|
||||||
,day=24
|
,day=24
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2007/2/25/18}
|
\url{https://lore.kernel.org/r/20070225062349.GA17468@linux.vnet.ibm.com}
|
||||||
[Viewed March 27, 2008]"
|
[Viewed March 27, 2008]"
|
||||||
,annotation={
|
,annotation={
|
||||||
Patch for QRCU supplying lock-free fast path.
|
Patch for QRCU supplying lock-free fast path.
|
||||||
@@ -1846,7 +1846,7 @@ Revised:
|
|||||||
,annotation={
|
,annotation={
|
||||||
LWN article describing Promela and spin, and also using Oleg
|
LWN article describing Promela and spin, and also using Oleg
|
||||||
Nesterov's QRCU as an example (with Paul McKenney's fastpath).
|
Nesterov's QRCU as an example (with Paul McKenney's fastpath).
|
||||||
Merged patch at: http://lkml.org/lkml/2007/2/25/18
|
Merged patch at: https://lore.kernel.org/r/20070225062349.GA17468@linux.vnet.ibm.com
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1885,7 +1885,7 @@ Revised:
|
|||||||
,day="10"
|
,day="10"
|
||||||
,year="2007"
|
,year="2007"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2007/9/10/213}
|
\url{https://lore.kernel.org/r/20070910183004.GA3299@linux.vnet.ibm.com}
|
||||||
[Viewed October 25, 2007]"
|
[Viewed October 25, 2007]"
|
||||||
,annotation={
|
,annotation={
|
||||||
Final patch for preemptable RCU to -rt. (Later patches were
|
Final patch for preemptable RCU to -rt. (Later patches were
|
||||||
@@ -1933,7 +1933,7 @@ Revised:
|
|||||||
,day="20"
|
,day="20"
|
||||||
,year="2007"
|
,year="2007"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2007/12/20/244}
|
\url{https://lore.kernel.org/r/20071220142540.GB22523@Krystal}
|
||||||
[Viewed March 27, 2008]"
|
[Viewed March 27, 2008]"
|
||||||
,annotation={
|
,annotation={
|
||||||
Request for call_rcu_sched() and rcu_barrier_sched().
|
Request for call_rcu_sched() and rcu_barrier_sched().
|
||||||
@@ -2013,7 +2013,7 @@ Revised:
|
|||||||
,day="29"
|
,day="29"
|
||||||
,year="2008"
|
,year="2008"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2008/1/29/208}
|
\url{https://lore.kernel.org/r/Pine.LNX.4.58.0801291113350.20371@gandalf.stny.rr.com}
|
||||||
[Viewed March 27, 2008]"
|
[Viewed March 27, 2008]"
|
||||||
,annotation={
|
,annotation={
|
||||||
Patch that prevents preemptible RCU from unnecessarily waking
|
Patch that prevents preemptible RCU from unnecessarily waking
|
||||||
@@ -2028,7 +2028,7 @@ Revised:
|
|||||||
,day="1"
|
,day="1"
|
||||||
,year="2008"
|
,year="2008"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2008/2/2/255}
|
\url{https://lore.kernel.org/r/20080202214124.GA28612@linux.vnet.ibm.com}
|
||||||
[Viewed October 18, 2008]"
|
[Viewed October 18, 2008]"
|
||||||
,annotation={
|
,annotation={
|
||||||
Explanation of compilers violating dependency ordering.
|
Explanation of compilers violating dependency ordering.
|
||||||
@@ -2088,7 +2088,7 @@ lot of {Linux} into your technology!!!"
|
|||||||
,day="3"
|
,day="3"
|
||||||
,year="2008"
|
,year="2008"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2008/6/2/539}
|
\url{https://lore.kernel.org/r/4844BE83.5010401@cn.fujitsu.com}
|
||||||
[Viewed December 10, 2008]"
|
[Viewed December 10, 2008]"
|
||||||
,annotation={
|
,annotation={
|
||||||
Updated RCU classic algorithm. Introduced multi-tailed list
|
Updated RCU classic algorithm. Introduced multi-tailed list
|
||||||
@@ -2122,7 +2122,7 @@ lot of {Linux} into your technology!!!"
|
|||||||
,day="21"
|
,day="21"
|
||||||
,year="2008"
|
,year="2008"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2008/8/21/336}
|
\url{https://lore.kernel.org/r/48AD8969.7060900@colorfullife.com}
|
||||||
[Viewed December 8, 2008]"
|
[Viewed December 8, 2008]"
|
||||||
,annotation={
|
,annotation={
|
||||||
State-based RCU. One key thing that this patch does is to
|
State-based RCU. One key thing that this patch does is to
|
||||||
@@ -2137,7 +2137,7 @@ lot of {Linux} into your technology!!!"
|
|||||||
,day="6"
|
,day="6"
|
||||||
,year="2008"
|
,year="2008"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2008/9/6/86}
|
\url{https://lore.kernel.org/r/48C2B1D2.5070801@colorfullife.com}
|
||||||
[Viewed December 8, 2008]"
|
[Viewed December 8, 2008]"
|
||||||
,annotation={
|
,annotation={
|
||||||
Manfred notes a fix required to my attempt to separate irq
|
Manfred notes a fix required to my attempt to separate irq
|
||||||
@@ -2183,7 +2183,7 @@ lot of {Linux} into your technology!!!"
|
|||||||
,day="14"
|
,day="14"
|
||||||
,year="2009"
|
,year="2009"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2009/1/14/449}
|
\url{https://lore.kernel.org/r/20090114202044.GJ6734@linux.vnet.ibm.com}
|
||||||
[Viewed January 15, 2009]"
|
[Viewed January 15, 2009]"
|
||||||
,annotation={
|
,annotation={
|
||||||
Small-footprint implementation of RCU for uniprocessor
|
Small-footprint implementation of RCU for uniprocessor
|
||||||
@@ -2218,7 +2218,7 @@ lot of {Linux} into your technology!!!"
|
|||||||
git://lttng.org/userspace-rcu.git
|
git://lttng.org/userspace-rcu.git
|
||||||
http://lttng.org/cgi-bin/gitweb.cgi?p=userspace-rcu.git
|
http://lttng.org/cgi-bin/gitweb.cgi?p=userspace-rcu.git
|
||||||
http://lttng.org/urcu
|
http://lttng.org/urcu
|
||||||
http://lkml.org/lkml/2009/2/5/572
|
https://lore.kernel.org/r/20090206030543.GB8560@Krystal
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2258,7 +2258,7 @@ lot of {Linux} into your technology!!!"
|
|||||||
,day="25"
|
,day="25"
|
||||||
,year="2009"
|
,year="2009"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2009/6/25/306}
|
\url{https://lore.kernel.org/r/20090625160706.GA9467@linux.vnet.ibm.com}
|
||||||
[Viewed August 16, 2009]"
|
[Viewed August 16, 2009]"
|
||||||
,annotation={
|
,annotation={
|
||||||
First posting of expedited RCU to be accepted into -tip.
|
First posting of expedited RCU to be accepted into -tip.
|
||||||
@@ -2272,7 +2272,7 @@ lot of {Linux} into your technology!!!"
|
|||||||
,day="23"
|
,day="23"
|
||||||
,year="2009"
|
,year="2009"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2009/7/23/294}
|
\url{https://lore.kernel.org/r/20090724001429.GA17374@linux.vnet.ibm.com}
|
||||||
[Viewed August 15, 2009]"
|
[Viewed August 15, 2009]"
|
||||||
,annotation={
|
,annotation={
|
||||||
First posting of simple and fast preemptable RCU.
|
First posting of simple and fast preemptable RCU.
|
||||||
@@ -2350,7 +2350,7 @@ lot of {Linux} into your technology!!!"
|
|||||||
,month="December"
|
,month="December"
|
||||||
,year="2009"
|
,year="2009"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{http://lkml.org/lkml/2009/10/18/129}
|
\url{https://lore.kernel.org/r/20091018232918.GA7385@Krystal}
|
||||||
[Viewed December 29, 2009]"
|
[Viewed December 29, 2009]"
|
||||||
,annotation={
|
,annotation={
|
||||||
Mathieu proposed defer_rcu() with fixed-size per-thread pool
|
Mathieu proposed defer_rcu() with fixed-size per-thread pool
|
||||||
@@ -2518,7 +2518,7 @@ lot of {Linux} into your technology!!!"
|
|||||||
,month="January"
|
,month="January"
|
||||||
,year="2011"
|
,year="2011"
|
||||||
,note="Available:
|
,note="Available:
|
||||||
\url{https://lkml.org/lkml/2011/1/18/322}
|
\url{https://lore.kernel.org/r/AANLkTimajU0x1v6y3rH2+jr-bZ=tNLs1S_agXdGGAa3S@mail.gmail.com}
|
||||||
[Viewed March 4, 2011]"
|
[Viewed March 4, 2011]"
|
||||||
,annotation={
|
,annotation={
|
||||||
"The RCU-based name lookup is at the other end of the spectrum - the
|
"The RCU-based name lookup is at the other end of the spectrum - the
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ over a rather long period of time, but improvements are always welcome!
|
|||||||
is less readable and prevents lockdep from detecting locking issues.
|
is less readable and prevents lockdep from detecting locking issues.
|
||||||
|
|
||||||
Letting RCU-protected pointers "leak" out of an RCU read-side
|
Letting RCU-protected pointers "leak" out of an RCU read-side
|
||||||
critical section is every bid as bad as letting them leak out
|
critical section is every bit as bad as letting them leak out
|
||||||
from under a lock. Unless, of course, you have arranged some
|
from under a lock. Unless, of course, you have arranged some
|
||||||
other means of protection, such as a lock or a reference count
|
other means of protection, such as a lock or a reference count
|
||||||
-before- letting them out of the RCU read-side critical section.
|
-before- letting them out of the RCU read-side critical section.
|
||||||
@@ -129,9 +129,7 @@ over a rather long period of time, but improvements are always welcome!
|
|||||||
accesses. The rcu_dereference() primitive ensures that
|
accesses. The rcu_dereference() primitive ensures that
|
||||||
the CPU picks up the pointer before it picks up the data
|
the CPU picks up the pointer before it picks up the data
|
||||||
that the pointer points to. This really is necessary
|
that the pointer points to. This really is necessary
|
||||||
on Alpha CPUs. If you don't believe me, see:
|
on Alpha CPUs.
|
||||||
|
|
||||||
http://www.openvms.compaq.com/wizard/wiz_2637.html
|
|
||||||
|
|
||||||
The rcu_dereference() primitive is also an excellent
|
The rcu_dereference() primitive is also an excellent
|
||||||
documentation aid, letting the person reading the
|
documentation aid, letting the person reading the
|
||||||
@@ -214,9 +212,9 @@ over a rather long period of time, but improvements are always welcome!
|
|||||||
the rest of the system.
|
the rest of the system.
|
||||||
|
|
||||||
7. As of v4.20, a given kernel implements only one RCU flavor,
|
7. As of v4.20, a given kernel implements only one RCU flavor,
|
||||||
which is RCU-sched for PREEMPT=n and RCU-preempt for PREEMPT=y.
|
which is RCU-sched for PREEMPTION=n and RCU-preempt for PREEMPTION=y.
|
||||||
If the updater uses call_rcu() or synchronize_rcu(),
|
If the updater uses call_rcu() or synchronize_rcu(),
|
||||||
then the corresponding readers my use rcu_read_lock() and
|
then the corresponding readers may use rcu_read_lock() and
|
||||||
rcu_read_unlock(), rcu_read_lock_bh() and rcu_read_unlock_bh(),
|
rcu_read_unlock(), rcu_read_lock_bh() and rcu_read_unlock_bh(),
|
||||||
or any pair of primitives that disables and re-enables preemption,
|
or any pair of primitives that disables and re-enables preemption,
|
||||||
for example, rcu_read_lock_sched() and rcu_read_unlock_sched().
|
for example, rcu_read_lock_sched() and rcu_read_unlock_sched().
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ RCU (read-copy update) is a synchronization mechanism that can be thought
|
|||||||
of as a replacement for read-writer locking (among other things), but with
|
of as a replacement for read-writer locking (among other things), but with
|
||||||
very low-overhead readers that are immune to deadlock, priority inversion,
|
very low-overhead readers that are immune to deadlock, priority inversion,
|
||||||
and unbounded latency. RCU read-side critical sections are delimited
|
and unbounded latency. RCU read-side critical sections are delimited
|
||||||
by rcu_read_lock() and rcu_read_unlock(), which, in non-CONFIG_PREEMPT
|
by rcu_read_lock() and rcu_read_unlock(), which, in non-CONFIG_PREEMPTION
|
||||||
kernels, generate no code whatsoever.
|
kernels, generate no code whatsoever.
|
||||||
|
|
||||||
This means that RCU writers are unaware of the presence of concurrent
|
This means that RCU writers are unaware of the presence of concurrent
|
||||||
@@ -329,10 +329,10 @@ Answer: This cannot happen. The reason is that on_each_cpu() has its last
|
|||||||
to smp_call_function() and further to smp_call_function_on_cpu(),
|
to smp_call_function() and further to smp_call_function_on_cpu(),
|
||||||
causing this latter to spin until the cross-CPU invocation of
|
causing this latter to spin until the cross-CPU invocation of
|
||||||
rcu_barrier_func() has completed. This by itself would prevent
|
rcu_barrier_func() has completed. This by itself would prevent
|
||||||
a grace period from completing on non-CONFIG_PREEMPT kernels,
|
a grace period from completing on non-CONFIG_PREEMPTION kernels,
|
||||||
since each CPU must undergo a context switch (or other quiescent
|
since each CPU must undergo a context switch (or other quiescent
|
||||||
state) before the grace period can complete. However, this is
|
state) before the grace period can complete. However, this is
|
||||||
of no use in CONFIG_PREEMPT kernels.
|
of no use in CONFIG_PREEMPTION kernels.
|
||||||
|
|
||||||
Therefore, on_each_cpu() disables preemption across its call
|
Therefore, on_each_cpu() disables preemption across its call
|
||||||
to smp_call_function() and also across the local call to
|
to smp_call_function() and also across the local call to
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ warnings:
|
|||||||
|
|
||||||
- A CPU looping with bottom halves disabled.
|
- A CPU looping with bottom halves disabled.
|
||||||
|
|
||||||
- For !CONFIG_PREEMPT kernels, a CPU looping anywhere in the kernel
|
- For !CONFIG_PREEMPTION kernels, a CPU looping anywhere in the kernel
|
||||||
without invoking schedule(). If the looping in the kernel is
|
without invoking schedule(). If the looping in the kernel is
|
||||||
really expected and desirable behavior, you might need to add
|
really expected and desirable behavior, you might need to add
|
||||||
some calls to cond_resched().
|
some calls to cond_resched().
|
||||||
@@ -44,7 +44,7 @@ warnings:
|
|||||||
result in the ``rcu_.*kthread starved for`` console-log message,
|
result in the ``rcu_.*kthread starved for`` console-log message,
|
||||||
which will include additional debugging information.
|
which will include additional debugging information.
|
||||||
|
|
||||||
- A CPU-bound real-time task in a CONFIG_PREEMPT kernel, which might
|
- A CPU-bound real-time task in a CONFIG_PREEMPTION kernel, which might
|
||||||
happen to preempt a low-priority task in the middle of an RCU
|
happen to preempt a low-priority task in the middle of an RCU
|
||||||
read-side critical section. This is especially damaging if
|
read-side critical section. This is especially damaging if
|
||||||
that low-priority task is not permitted to run on any other CPU,
|
that low-priority task is not permitted to run on any other CPU,
|
||||||
@@ -92,7 +92,9 @@ warnings:
|
|||||||
buggy timer hardware through bugs in the interrupt or exception
|
buggy timer hardware through bugs in the interrupt or exception
|
||||||
path (whether hardware, firmware, or software) through bugs
|
path (whether hardware, firmware, or software) through bugs
|
||||||
in Linux's timer subsystem through bugs in the scheduler, and,
|
in Linux's timer subsystem through bugs in the scheduler, and,
|
||||||
yes, even including bugs in RCU itself.
|
yes, even including bugs in RCU itself. It can also result in
|
||||||
|
the ``rcu_.*timer wakeup didn't happen for`` console-log message,
|
||||||
|
which will include additional debugging information.
|
||||||
|
|
||||||
- A bug in the RCU implementation.
|
- A bug in the RCU implementation.
|
||||||
|
|
||||||
@@ -292,6 +294,25 @@ kthread is waiting for a short timeout, the "state" precedes value of the
|
|||||||
task_struct ->state field, and the "cpu" indicates that the grace-period
|
task_struct ->state field, and the "cpu" indicates that the grace-period
|
||||||
kthread last ran on CPU 5.
|
kthread last ran on CPU 5.
|
||||||
|
|
||||||
|
If the relevant grace-period kthread does not wake from FQS wait in a
|
||||||
|
reasonable time, then the following additional line is printed::
|
||||||
|
|
||||||
|
kthread timer wakeup didn't happen for 23804 jiffies! g7076 f0x0 RCU_GP_WAIT_FQS(5) ->state=0x402
|
||||||
|
|
||||||
|
The "23804" indicates that kthread's timer expired more than 23 thousand
|
||||||
|
jiffies ago. The rest of the line has meaning similar to the kthread
|
||||||
|
starvation case.
|
||||||
|
|
||||||
|
Additionally, the following line is printed::
|
||||||
|
|
||||||
|
Possible timer handling issue on cpu=4 timer-softirq=11142
|
||||||
|
|
||||||
|
Here "cpu" indicates that the grace-period kthread last ran on CPU 4,
|
||||||
|
where it queued the fqs timer. The number following the "timer-softirq"
|
||||||
|
is the current ``TIMER_SOFTIRQ`` count on cpu 4. If this value does not
|
||||||
|
change on successive RCU CPU stall warnings, there is further reason to
|
||||||
|
suspect a timer problem.
|
||||||
|
|
||||||
|
|
||||||
Multiple Warnings From One Stall
|
Multiple Warnings From One Stall
|
||||||
================================
|
================================
|
||||||
|
|||||||
@@ -683,7 +683,7 @@ Quick Quiz #1:
|
|||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
This section presents a "toy" RCU implementation that is based on
|
This section presents a "toy" RCU implementation that is based on
|
||||||
"classic RCU". It is also short on performance (but only for updates) and
|
"classic RCU". It is also short on performance (but only for updates) and
|
||||||
on features such as hotplug CPU and the ability to run in CONFIG_PREEMPT
|
on features such as hotplug CPU and the ability to run in CONFIG_PREEMPTION
|
||||||
kernels. The definitions of rcu_dereference() and rcu_assign_pointer()
|
kernels. The definitions of rcu_dereference() and rcu_assign_pointer()
|
||||||
are the same as those shown in the preceding section, so they are omitted.
|
are the same as those shown in the preceding section, so they are omitted.
|
||||||
::
|
::
|
||||||
@@ -739,7 +739,7 @@ Quick Quiz #2:
|
|||||||
Quick Quiz #3:
|
Quick Quiz #3:
|
||||||
If it is illegal to block in an RCU read-side
|
If it is illegal to block in an RCU read-side
|
||||||
critical section, what the heck do you do in
|
critical section, what the heck do you do in
|
||||||
PREEMPT_RT, where normal spinlocks can block???
|
CONFIG_PREEMPT_RT, where normal spinlocks can block???
|
||||||
|
|
||||||
:ref:`Answers to Quick Quiz <8_whatisRCU>`
|
:ref:`Answers to Quick Quiz <8_whatisRCU>`
|
||||||
|
|
||||||
@@ -1093,7 +1093,7 @@ Quick Quiz #2:
|
|||||||
overhead is **negative**.
|
overhead is **negative**.
|
||||||
|
|
||||||
Answer:
|
Answer:
|
||||||
Imagine a single-CPU system with a non-CONFIG_PREEMPT
|
Imagine a single-CPU system with a non-CONFIG_PREEMPTION
|
||||||
kernel where a routing table is used by process-context
|
kernel where a routing table is used by process-context
|
||||||
code, but can be updated by irq-context code (for example,
|
code, but can be updated by irq-context code (for example,
|
||||||
by an "ICMP REDIRECT" packet). The usual way of handling
|
by an "ICMP REDIRECT" packet). The usual way of handling
|
||||||
@@ -1120,10 +1120,10 @@ Answer:
|
|||||||
Quick Quiz #3:
|
Quick Quiz #3:
|
||||||
If it is illegal to block in an RCU read-side
|
If it is illegal to block in an RCU read-side
|
||||||
critical section, what the heck do you do in
|
critical section, what the heck do you do in
|
||||||
PREEMPT_RT, where normal spinlocks can block???
|
CONFIG_PREEMPT_RT, where normal spinlocks can block???
|
||||||
|
|
||||||
Answer:
|
Answer:
|
||||||
Just as PREEMPT_RT permits preemption of spinlock
|
Just as CONFIG_PREEMPT_RT permits preemption of spinlock
|
||||||
critical sections, it permits preemption of RCU
|
critical sections, it permits preemption of RCU
|
||||||
read-side critical sections. It also permits
|
read-side critical sections. It also permits
|
||||||
spinlocks blocking while in RCU read-side critical
|
spinlocks blocking while in RCU read-side critical
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ Control Groupstats
|
|||||||
==================
|
==================
|
||||||
|
|
||||||
Control Groupstats is inspired by the discussion at
|
Control Groupstats is inspired by the discussion at
|
||||||
http://lkml.org/lkml/2007/4/11/187 and implements per cgroup statistics as
|
https://lore.kernel.org/r/461CF883.2030308@sw.ru and implements per cgroup statistics as
|
||||||
suggested by Andrew Morton in http://lkml.org/lkml/2007/4/11/263.
|
suggested by Andrew Morton in https://lore.kernel.org/r/20070411114927.1277d7c9.akpm@linux-foundation.org.
|
||||||
|
|
||||||
Per cgroup statistics infrastructure re-uses code from the taskstats
|
Per cgroup statistics infrastructure re-uses code from the taskstats
|
||||||
interface. A new set of cgroup operations are registered with commands
|
interface. A new set of cgroup operations are registered with commands
|
||||||
|
|||||||
@@ -226,9 +226,10 @@ Configuring the kernel
|
|||||||
all module options to built in (=y) options. You can
|
all module options to built in (=y) options. You can
|
||||||
also preserve modules by LMC_KEEP.
|
also preserve modules by LMC_KEEP.
|
||||||
|
|
||||||
"make kvmconfig" Enable additional options for kvm guest kernel support.
|
"make kvm_guest.config" Enable additional options for kvm guest kernel
|
||||||
|
support.
|
||||||
|
|
||||||
"make xenconfig" Enable additional options for xen dom0 guest kernel
|
"make xen.config" Enable additional options for xen dom0 guest kernel
|
||||||
support.
|
support.
|
||||||
|
|
||||||
"make tinyconfig" Configure the tiniest possible kernel.
|
"make tinyconfig" Configure the tiniest possible kernel.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ cfag12864b LCD Driver Documentation
|
|||||||
===================================
|
===================================
|
||||||
|
|
||||||
:License: GPLv2
|
:License: GPLv2
|
||||||
:Author & Maintainer: Miguel Ojeda Sandonis
|
:Author & Maintainer: Miguel Ojeda <ojeda@kernel.org>
|
||||||
:Date: 2006-10-27
|
:Date: 2006-10-27
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ ks0108 LCD Controller Driver Documentation
|
|||||||
==========================================
|
==========================================
|
||||||
|
|
||||||
:License: GPLv2
|
:License: GPLv2
|
||||||
:Author & Maintainer: Miguel Ojeda Sandonis
|
:Author & Maintainer: Miguel Ojeda <ojeda@kernel.org>
|
||||||
:Date: 2006-10-27
|
:Date: 2006-10-27
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ Here is what the fields mean:
|
|||||||
|
|
||||||
- ``name``
|
- ``name``
|
||||||
is an identifier string. A new /proc file will be created with this
|
is an identifier string. A new /proc file will be created with this
|
||||||
``name below /proc/sys/fs/binfmt_misc``; cannot contain slashes ``/`` for
|
name below ``/proc/sys/fs/binfmt_misc``; cannot contain slashes ``/`` for
|
||||||
obvious reasons.
|
obvious reasons.
|
||||||
- ``type``
|
- ``type``
|
||||||
is the type of recognition. Give ``M`` for magic and ``E`` for extension.
|
is the type of recognition. Give ``M`` for magic and ``E`` for extension.
|
||||||
@@ -83,7 +83,7 @@ Here is what the fields mean:
|
|||||||
``F`` - fix binary
|
``F`` - fix binary
|
||||||
The usual behaviour of binfmt_misc is to spawn the
|
The usual behaviour of binfmt_misc is to spawn the
|
||||||
binary lazily when the misc format file is invoked. However,
|
binary lazily when the misc format file is invoked. However,
|
||||||
this doesn``t work very well in the face of mount namespaces and
|
this doesn't work very well in the face of mount namespaces and
|
||||||
changeroots, so the ``F`` mode opens the binary as soon as the
|
changeroots, so the ``F`` mode opens the binary as soon as the
|
||||||
emulation is installed and uses the opened image to spawn the
|
emulation is installed and uses the opened image to spawn the
|
||||||
emulator, meaning it is always available once installed,
|
emulator, meaning it is always available once installed,
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ get the boot configuration data.
|
|||||||
Because of this "piggyback" method, there is no need to change or
|
Because of this "piggyback" method, there is no need to change or
|
||||||
update the boot loader and the kernel image itself as long as the boot
|
update the boot loader and the kernel image itself as long as the boot
|
||||||
loader passes the correct initrd file size. If by any chance, the boot
|
loader passes the correct initrd file size. If by any chance, the boot
|
||||||
loader passes a longer size, the kernel feils to find the bootconfig data.
|
loader passes a longer size, the kernel fails to find the bootconfig data.
|
||||||
|
|
||||||
To do this operation, Linux kernel provides "bootconfig" command under
|
To do this operation, Linux kernel provides "bootconfig" command under
|
||||||
tools/bootconfig, which allows admin to apply or delete the config file
|
tools/bootconfig, which allows admin to apply or delete the config file
|
||||||
|
|||||||
@@ -963,21 +963,21 @@ References
|
|||||||
2. Singh, Balbir. Memory Controller (RSS Control),
|
2. Singh, Balbir. Memory Controller (RSS Control),
|
||||||
http://lwn.net/Articles/222762/
|
http://lwn.net/Articles/222762/
|
||||||
3. Emelianov, Pavel. Resource controllers based on process cgroups
|
3. Emelianov, Pavel. Resource controllers based on process cgroups
|
||||||
http://lkml.org/lkml/2007/3/6/198
|
https://lore.kernel.org/r/45ED7DEC.7010403@sw.ru
|
||||||
4. Emelianov, Pavel. RSS controller based on process cgroups (v2)
|
4. Emelianov, Pavel. RSS controller based on process cgroups (v2)
|
||||||
http://lkml.org/lkml/2007/4/9/78
|
https://lore.kernel.org/r/461A3010.90403@sw.ru
|
||||||
5. Emelianov, Pavel. RSS controller based on process cgroups (v3)
|
5. Emelianov, Pavel. RSS controller based on process cgroups (v3)
|
||||||
http://lkml.org/lkml/2007/5/30/244
|
https://lore.kernel.org/r/465D9739.8070209@openvz.org
|
||||||
6. Menage, Paul. Control Groups v10, http://lwn.net/Articles/236032/
|
6. Menage, Paul. Control Groups v10, http://lwn.net/Articles/236032/
|
||||||
7. Vaidyanathan, Srinivasan, Control Groups: Pagecache accounting and control
|
7. Vaidyanathan, Srinivasan, Control Groups: Pagecache accounting and control
|
||||||
subsystem (v3), http://lwn.net/Articles/235534/
|
subsystem (v3), http://lwn.net/Articles/235534/
|
||||||
8. Singh, Balbir. RSS controller v2 test results (lmbench),
|
8. Singh, Balbir. RSS controller v2 test results (lmbench),
|
||||||
http://lkml.org/lkml/2007/5/17/232
|
https://lore.kernel.org/r/464C95D4.7070806@linux.vnet.ibm.com
|
||||||
9. Singh, Balbir. RSS controller v2 AIM9 results
|
9. Singh, Balbir. RSS controller v2 AIM9 results
|
||||||
http://lkml.org/lkml/2007/5/18/1
|
https://lore.kernel.org/r/464D267A.50107@linux.vnet.ibm.com
|
||||||
10. Singh, Balbir. Memory controller v6 test results,
|
10. Singh, Balbir. Memory controller v6 test results,
|
||||||
http://lkml.org/lkml/2007/8/19/36
|
https://lore.kernel.org/r/20070819094658.654.84837.sendpatchset@balbir-laptop
|
||||||
11. Singh, Balbir. Memory controller introduction (v6),
|
11. Singh, Balbir. Memory controller introduction (v6),
|
||||||
http://lkml.org/lkml/2007/8/17/69
|
https://lore.kernel.org/r/20070817084228.26003.12568.sendpatchset@balbir-laptop
|
||||||
12. Corbet, Jonathan, Controlling memory use in cgroups,
|
12. Corbet, Jonathan, Controlling memory use in cgroups,
|
||||||
http://lwn.net/Articles/243795/
|
http://lwn.net/Articles/243795/
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
.. _cgroup-v2:
|
||||||
|
|
||||||
================
|
================
|
||||||
Control Group v2
|
Control Group v2
|
||||||
================
|
================
|
||||||
@@ -172,7 +174,6 @@ disabling controllers in v1 and make them always available in v2.
|
|||||||
cgroup v2 currently supports the following mount options.
|
cgroup v2 currently supports the following mount options.
|
||||||
|
|
||||||
nsdelegate
|
nsdelegate
|
||||||
|
|
||||||
Consider cgroup namespaces as delegation boundaries. This
|
Consider cgroup namespaces as delegation boundaries. This
|
||||||
option is system wide and can only be set on mount or modified
|
option is system wide and can only be set on mount or modified
|
||||||
through remount from the init namespace. The mount option is
|
through remount from the init namespace. The mount option is
|
||||||
@@ -180,7 +181,6 @@ cgroup v2 currently supports the following mount options.
|
|||||||
Delegation section for details.
|
Delegation section for details.
|
||||||
|
|
||||||
memory_localevents
|
memory_localevents
|
||||||
|
|
||||||
Only populate memory.events with data for the current cgroup,
|
Only populate memory.events with data for the current cgroup,
|
||||||
and not any subtrees. This is legacy behaviour, the default
|
and not any subtrees. This is legacy behaviour, the default
|
||||||
behaviour without this option is to include subtree counts.
|
behaviour without this option is to include subtree counts.
|
||||||
@@ -189,7 +189,6 @@ cgroup v2 currently supports the following mount options.
|
|||||||
option is ignored on non-init namespace mounts.
|
option is ignored on non-init namespace mounts.
|
||||||
|
|
||||||
memory_recursiveprot
|
memory_recursiveprot
|
||||||
|
|
||||||
Recursively apply memory.min and memory.low protection to
|
Recursively apply memory.min and memory.low protection to
|
||||||
entire subtrees, without requiring explicit downward
|
entire subtrees, without requiring explicit downward
|
||||||
propagation into leaf cgroups. This allows protecting entire
|
propagation into leaf cgroups. This allows protecting entire
|
||||||
@@ -786,7 +785,6 @@ Core Interface Files
|
|||||||
All cgroup core files are prefixed with "cgroup."
|
All cgroup core files are prefixed with "cgroup."
|
||||||
|
|
||||||
cgroup.type
|
cgroup.type
|
||||||
|
|
||||||
A read-write single value file which exists on non-root
|
A read-write single value file which exists on non-root
|
||||||
cgroups.
|
cgroups.
|
||||||
|
|
||||||
@@ -954,6 +952,8 @@ All cgroup core files are prefixed with "cgroup."
|
|||||||
Controllers
|
Controllers
|
||||||
===========
|
===========
|
||||||
|
|
||||||
|
.. _cgroup-v2-cpu:
|
||||||
|
|
||||||
CPU
|
CPU
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -1029,7 +1029,7 @@ All time durations are in microseconds.
|
|||||||
one number is written, $MAX is updated.
|
one number is written, $MAX is updated.
|
||||||
|
|
||||||
cpu.pressure
|
cpu.pressure
|
||||||
A read-only nested-key file which exists on non-root cgroups.
|
A read-write nested-keyed file.
|
||||||
|
|
||||||
Shows pressure stall information for CPU. See
|
Shows pressure stall information for CPU. See
|
||||||
:ref:`Documentation/accounting/psi.rst <psi>` for details.
|
:ref:`Documentation/accounting/psi.rst <psi>` for details.
|
||||||
@@ -1260,8 +1260,8 @@ PAGE_SIZE multiple when read back.
|
|||||||
fixed position; use the keys to look up specific values!
|
fixed position; use the keys to look up specific values!
|
||||||
|
|
||||||
If the entry has no per-node counter (or not show in the
|
If the entry has no per-node counter (or not show in the
|
||||||
mempry.numa_stat). We use 'npn'(non-per-node) as the tag
|
memory.numa_stat). We use 'npn' (non-per-node) as the tag
|
||||||
to indicate that it will not show in the mempry.numa_stat.
|
to indicate that it will not show in the memory.numa_stat.
|
||||||
|
|
||||||
anon
|
anon
|
||||||
Amount of memory used in anonymous mappings such as
|
Amount of memory used in anonymous mappings such as
|
||||||
@@ -1299,6 +1299,10 @@ PAGE_SIZE multiple when read back.
|
|||||||
Amount of cached filesystem data that was modified and
|
Amount of cached filesystem data that was modified and
|
||||||
is currently being written back to disk
|
is currently being written back to disk
|
||||||
|
|
||||||
|
swapcached
|
||||||
|
Amount of swap cached in memory. The swapcache is accounted
|
||||||
|
against both memory and swap usage.
|
||||||
|
|
||||||
anon_thp
|
anon_thp
|
||||||
Amount of memory used in anonymous mappings backed by
|
Amount of memory used in anonymous mappings backed by
|
||||||
transparent hugepages
|
transparent hugepages
|
||||||
@@ -1475,7 +1479,7 @@ PAGE_SIZE multiple when read back.
|
|||||||
reduces the impact on the workload and memory management.
|
reduces the impact on the workload and memory management.
|
||||||
|
|
||||||
memory.pressure
|
memory.pressure
|
||||||
A read-only nested-key file which exists on non-root cgroups.
|
A read-only nested-keyed file.
|
||||||
|
|
||||||
Shows pressure stall information for memory. See
|
Shows pressure stall information for memory. See
|
||||||
:ref:`Documentation/accounting/psi.rst <psi>` for details.
|
:ref:`Documentation/accounting/psi.rst <psi>` for details.
|
||||||
@@ -1558,7 +1562,7 @@ IO Interface Files
|
|||||||
8:0 rbytes=90430464 wbytes=299008000 rios=8950 wios=1252 dbytes=50331648 dios=3021
|
8:0 rbytes=90430464 wbytes=299008000 rios=8950 wios=1252 dbytes=50331648 dios=3021
|
||||||
|
|
||||||
io.cost.qos
|
io.cost.qos
|
||||||
A read-write nested-keyed file with exists only on the root
|
A read-write nested-keyed file which exists only on the root
|
||||||
cgroup.
|
cgroup.
|
||||||
|
|
||||||
This file configures the Quality of Service of the IO cost
|
This file configures the Quality of Service of the IO cost
|
||||||
@@ -1613,7 +1617,7 @@ IO Interface Files
|
|||||||
automatic mode can be restored by setting "ctrl" to "auto".
|
automatic mode can be restored by setting "ctrl" to "auto".
|
||||||
|
|
||||||
io.cost.model
|
io.cost.model
|
||||||
A read-write nested-keyed file with exists only on the root
|
A read-write nested-keyed file which exists only on the root
|
||||||
cgroup.
|
cgroup.
|
||||||
|
|
||||||
This file configures the cost model of the IO cost model based
|
This file configures the cost model of the IO cost model based
|
||||||
@@ -1714,7 +1718,7 @@ IO Interface Files
|
|||||||
8:16 rbps=2097152 wbps=max riops=max wiops=max
|
8:16 rbps=2097152 wbps=max riops=max wiops=max
|
||||||
|
|
||||||
io.pressure
|
io.pressure
|
||||||
A read-only nested-key file which exists on non-root cgroups.
|
A read-only nested-keyed file.
|
||||||
|
|
||||||
Shows pressure stall information for IO. See
|
Shows pressure stall information for IO. See
|
||||||
:ref:`Documentation/accounting/psi.rst <psi>` for details.
|
:ref:`Documentation/accounting/psi.rst <psi>` for details.
|
||||||
@@ -2002,8 +2006,10 @@ Cpuset Interface Files
|
|||||||
|
|
||||||
It accepts only the following input values when written to.
|
It accepts only the following input values when written to.
|
||||||
|
|
||||||
"root" - a partition root
|
======== ================================
|
||||||
"member" - a non-root member of a partition
|
"root" a partition root
|
||||||
|
"member" a non-root member of a partition
|
||||||
|
======== ================================
|
||||||
|
|
||||||
When set to be a partition root, the current cgroup is the
|
When set to be a partition root, the current cgroup is the
|
||||||
root of a new partition or scheduling domain that comprises
|
root of a new partition or scheduling domain that comprises
|
||||||
@@ -2044,9 +2050,11 @@ Cpuset Interface Files
|
|||||||
root to change. On read, the "cpuset.sched.partition" file
|
root to change. On read, the "cpuset.sched.partition" file
|
||||||
can show the following values.
|
can show the following values.
|
||||||
|
|
||||||
|
============== ==============================
|
||||||
"member" Non-root member of a partition
|
"member" Non-root member of a partition
|
||||||
"root" Partition root
|
"root" Partition root
|
||||||
"root invalid" Invalid partition root
|
"root invalid" Invalid partition root
|
||||||
|
============== ==============================
|
||||||
|
|
||||||
It is a partition root if the first 2 partition root conditions
|
It is a partition root if the first 2 partition root conditions
|
||||||
above are true and at least one CPU from "cpuset.cpus" is
|
above are true and at least one CPU from "cpuset.cpus" is
|
||||||
@@ -2090,7 +2098,7 @@ If the program returns 0, the attempt fails with -EPERM, otherwise
|
|||||||
it succeeds.
|
it succeeds.
|
||||||
|
|
||||||
An example of BPF_CGROUP_DEVICE program may be found in the kernel
|
An example of BPF_CGROUP_DEVICE program may be found in the kernel
|
||||||
source tree in the tools/testing/selftests/bpf/dev_cgroup.c file.
|
source tree in the tools/testing/selftests/bpf/progs/dev_cgroup.c file.
|
||||||
|
|
||||||
|
|
||||||
RDMA
|
RDMA
|
||||||
@@ -2219,7 +2227,7 @@ Without cgroup namespace, the "/proc/$PID/cgroup" file shows the
|
|||||||
complete path of the cgroup of a process. In a container setup where
|
complete path of the cgroup of a process. In a container setup where
|
||||||
a set of cgroups and namespaces are intended to isolate processes the
|
a set of cgroups and namespaces are intended to isolate processes the
|
||||||
"/proc/$PID/cgroup" file may leak potential system level information
|
"/proc/$PID/cgroup" file may leak potential system level information
|
||||||
to the isolated processes. For Example::
|
to the isolated processes. For example::
|
||||||
|
|
||||||
# cat /proc/self/cgroup
|
# cat /proc/self/cgroup
|
||||||
0::/batchjobs/container_id1
|
0::/batchjobs/container_id1
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ Authors
|
|||||||
Original Author
|
Original Author
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
Steve French (sfrench@samba.org)
|
Steve French (smfrench@gmail.com, sfrench@samba.org)
|
||||||
|
|
||||||
The author wishes to express his appreciation and thanks to:
|
The author wishes to express his appreciation and thanks to:
|
||||||
Andrew Tridgell (Samba team) for his early suggestions about smb/cifs VFS
|
Andrew Tridgell (Samba team) for his early suggestions about SMB/CIFS VFS
|
||||||
improvements. Thanks to IBM for allowing me time and test resources to pursue
|
improvements. Thanks to IBM for allowing me time and test resources to pursue
|
||||||
this project, to Jim McDonough from IBM (and the Samba Team) for his help, to
|
this project, to Jim McDonough from IBM (and the Samba Team) for his help, to
|
||||||
the IBM Linux JFS team for explaining many esoteric Linux filesystem features.
|
the IBM Linux JFS team for explaining many esoteric Linux filesystem features.
|
||||||
@@ -51,7 +51,7 @@ Patch Contributors
|
|||||||
- Ronnie Sahlberg (for SMB3 xattr work, bug fixes, and lots of great work on compounding)
|
- Ronnie Sahlberg (for SMB3 xattr work, bug fixes, and lots of great work on compounding)
|
||||||
- Shirish Pargaonkar (for many ACL patches over the years)
|
- Shirish Pargaonkar (for many ACL patches over the years)
|
||||||
- Sachin Prabhu (many bug fixes, including for reconnect, copy offload and security)
|
- Sachin Prabhu (many bug fixes, including for reconnect, copy offload and security)
|
||||||
- Paulo Alcantara
|
- Paulo Alcantara (for some excellent work in DFS, and in booting from SMB3)
|
||||||
- Long Li (some great work on RDMA, SMB Direct)
|
- Long Li (some great work on RDMA, SMB Direct)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ Changes
|
|||||||
=======
|
=======
|
||||||
|
|
||||||
See https://wiki.samba.org/index.php/LinuxCIFSKernel for summary
|
See https://wiki.samba.org/index.php/LinuxCIFSKernel for summary
|
||||||
information (that may be easier to read than parsing the output of
|
information about fixes/improvements to CIFS/SMB2/SMB3 support (changes
|
||||||
"git log fs/cifs") about fixes/improvements to CIFS/SMB2/SMB3 support (changes
|
|
||||||
to cifs.ko module) by kernel version (and cifs internal module version).
|
to cifs.ko module) by kernel version (and cifs internal module version).
|
||||||
|
This may be easier to read than parsing the output of "git log fs/cifs"
|
||||||
|
by release.
|
||||||
|
|||||||
@@ -7,19 +7,19 @@ Introduction
|
|||||||
protocol which was the successor to the Server Message Block
|
protocol which was the successor to the Server Message Block
|
||||||
(SMB) protocol, the native file sharing mechanism for most early
|
(SMB) protocol, the native file sharing mechanism for most early
|
||||||
PC operating systems. New and improved versions of CIFS are now
|
PC operating systems. New and improved versions of CIFS are now
|
||||||
called SMB2 and SMB3. Use of SMB3 (and later, including SMB3.1.1)
|
called SMB2 and SMB3. Use of SMB3 (and later, including SMB3.1.1
|
||||||
is strongly preferred over using older dialects like CIFS due to
|
the most current dialect) is strongly preferred over using older
|
||||||
security reasons. All modern dialects, including the most recent,
|
dialects like CIFS due to security reasons. All modern dialects,
|
||||||
SMB3.1.1 are supported by the CIFS VFS module. The SMB3 protocol
|
including the most recent, SMB3.1.1, are supported by the CIFS VFS
|
||||||
is implemented and supported by all major file servers
|
module. The SMB3 protocol is implemented and supported by all major
|
||||||
such as all modern versions of Windows (including Windows 2016
|
file servers such as Windows (including Windows 2019 Server), as
|
||||||
Server), as well as by Samba (which provides excellent
|
well as by Samba (which provides excellent CIFS/SMB2/SMB3 server
|
||||||
CIFS/SMB2/SMB3 server support and tools for Linux and many other
|
support and tools for Linux and many other operating systems).
|
||||||
operating systems). Apple systems also support SMB3 well, as
|
Apple systems also support SMB3 well, as do most Network Attached
|
||||||
do most Network Attached Storage vendors, so this network
|
Storage vendors, so this network filesystem client can mount to a
|
||||||
filesystem client can mount to a wide variety of systems.
|
wide variety of systems. It also supports mounting to the cloud
|
||||||
It also supports mounting to the cloud (for example
|
(for example Microsoft Azure), including the necessary security
|
||||||
Microsoft Azure), including the necessary security features.
|
features.
|
||||||
|
|
||||||
The intent of this module is to provide the most advanced network
|
The intent of this module is to provide the most advanced network
|
||||||
file system function for SMB3 compliant servers, including advanced
|
file system function for SMB3 compliant servers, including advanced
|
||||||
@@ -27,8 +27,8 @@ Introduction
|
|||||||
POSIX compliance, secure per-user session establishment, encryption,
|
POSIX compliance, secure per-user session establishment, encryption,
|
||||||
high performance safe distributed caching (leases/oplocks), optional packet
|
high performance safe distributed caching (leases/oplocks), optional packet
|
||||||
signing, large files, Unicode support and other internationalization
|
signing, large files, Unicode support and other internationalization
|
||||||
improvements. Since both Samba server and this filesystem client support
|
improvements. Since both Samba server and this filesystem client support the
|
||||||
the CIFS Unix extensions (and in the future SMB3 POSIX extensions),
|
CIFS Unix extensions, and the Linux client also suppors SMB3 POSIX extensions,
|
||||||
the combination can provide a reasonable alternative to other network and
|
the combination can provide a reasonable alternative to other network and
|
||||||
cluster file systems for fileserving in some Linux to Linux environments,
|
cluster file systems for fileserving in some Linux to Linux environments,
|
||||||
not just in Linux to Windows (or Linux to Mac) environments.
|
not just in Linux to Windows (or Linux to Mac) environments.
|
||||||
|
|||||||
@@ -13,24 +13,26 @@ is a partial list of the known problems and missing features:
|
|||||||
|
|
||||||
a) SMB3 (and SMB3.1.1) missing optional features:
|
a) SMB3 (and SMB3.1.1) missing optional features:
|
||||||
|
|
||||||
- multichannel (started), integration with RDMA
|
- multichannel (partially integrated), integration of multichannel with RDMA
|
||||||
- directory leases (improved metadata caching), started (root dir only)
|
- directory leases (improved metadata caching). Currently only implemented for root dir
|
||||||
- T10 copy offload ie "ODX" (copy chunk, and "Duplicate Extents" ioctl
|
- T10 copy offload ie "ODX" (copy chunk, and "Duplicate Extents" ioctl
|
||||||
currently the only two server side copy mechanisms supported)
|
currently the only two server side copy mechanisms supported)
|
||||||
|
|
||||||
b) improved sparse file support (fiemap and SEEK_HOLE are implemented
|
b) improved sparse file support (fiemap and SEEK_HOLE are implemented
|
||||||
but additional features would be supportable by the protocol).
|
but additional features would be supportable by the protocol such
|
||||||
|
as FALLOC_FL_COLLAPSE_RANGE and FALLOC_FL_INSERT_RANGE)
|
||||||
|
|
||||||
c) Directory entry caching relies on a 1 second timer, rather than
|
c) Directory entry caching relies on a 1 second timer, rather than
|
||||||
using Directory Leases, currently only the root file handle is cached longer
|
using Directory Leases, currently only the root file handle is cached longer
|
||||||
|
by leveraging Directory Leases
|
||||||
|
|
||||||
d) quota support (needs minor kernel change since quota calls
|
d) quota support (needs minor kernel change since quota calls otherwise
|
||||||
to make it to network filesystems or deviceless filesystems)
|
won't make it to network filesystems or deviceless filesystems).
|
||||||
|
|
||||||
e) Additional use cases can be optimized to use "compounding" (e.g.
|
e) Additional use cases can be optimized to use "compounding" (e.g.
|
||||||
open/query/close and open/setinfo/close) to reduce the number of
|
open/query/close and open/setinfo/close) to reduce the number of
|
||||||
roundtrips to the server and improve performance. Various cases
|
roundtrips to the server and improve performance. Various cases
|
||||||
(stat, statfs, create, unlink, mkdir) already have been improved by
|
(stat, statfs, create, unlink, mkdir, xattrs) already have been improved by
|
||||||
using compounding but more can be done. In addition we could
|
using compounding but more can be done. In addition we could
|
||||||
significantly reduce redundant opens by using deferred close (with
|
significantly reduce redundant opens by using deferred close (with
|
||||||
handle caching leases) and better using reference counters on file
|
handle caching leases) and better using reference counters on file
|
||||||
@@ -60,7 +62,9 @@ k) Add tools to take advantage of more smb3 specific ioctls and features
|
|||||||
metadata attributes easier from tools (e.g. extending what was done
|
metadata attributes easier from tools (e.g. extending what was done
|
||||||
in smb-info tool).
|
in smb-info tool).
|
||||||
|
|
||||||
l) encrypted file support
|
l) encrypted file support (currently the attribute showing the file is
|
||||||
|
encrypted on the server is reported, but changing the attribute is not
|
||||||
|
supported).
|
||||||
|
|
||||||
m) improved stats gathering tools (perhaps integration with nfsometer?)
|
m) improved stats gathering tools (perhaps integration with nfsometer?)
|
||||||
to extend and make easier to use what is currently in /proc/fs/cifs/Stats
|
to extend and make easier to use what is currently in /proc/fs/cifs/Stats
|
||||||
@@ -69,14 +73,13 @@ n) Add support for claims based ACLs ("DAC")
|
|||||||
|
|
||||||
o) mount helper GUI (to simplify the various configuration options on mount)
|
o) mount helper GUI (to simplify the various configuration options on mount)
|
||||||
|
|
||||||
p) Add support for witness protocol (perhaps ioctl to cifs.ko from user space
|
p) Expand support for witness protocol to allow for notification of share
|
||||||
tool listening on witness protocol RPC) to allow for notification of share
|
move, and server network adapter changes. Currently only notifications by
|
||||||
move, server failover, and server adapter changes. And also improve other
|
the witness protocol for server move is supported by the Linux client.
|
||||||
failover scenarios, e.g. when client knows multiple DFS entries point to
|
|
||||||
different servers, and the server we are connected to has gone down.
|
|
||||||
|
|
||||||
q) Allow mount.cifs to be more verbose in reporting errors with dialect
|
q) Allow mount.cifs to be more verbose in reporting errors with dialect
|
||||||
or unsupported feature errors.
|
or unsupported feature errors. This would now be easier due to the
|
||||||
|
implementation of the new mount API.
|
||||||
|
|
||||||
r) updating cifs documentation, and user guide.
|
r) updating cifs documentation, and user guide.
|
||||||
|
|
||||||
@@ -87,11 +90,10 @@ t) split cifs and smb3 support into separate modules so legacy (and less
|
|||||||
secure) CIFS dialect can be disabled in environments that don't need it
|
secure) CIFS dialect can be disabled in environments that don't need it
|
||||||
and simplify the code.
|
and simplify the code.
|
||||||
|
|
||||||
v) POSIX Extensions for SMB3.1.1 (started, create and mkdir support added
|
v) Additional testing of POSIX Extensions for SMB3.1.1
|
||||||
so far).
|
|
||||||
|
|
||||||
w) Add support for additional strong encryption types, and additional spnego
|
w) Add support for additional strong encryption types, and additional spnego
|
||||||
authentication mechanisms (see MS-SMB2)
|
authentication mechanisms (see MS-SMB2). GCM-256 is now partially implemented.
|
||||||
|
|
||||||
x) Finish support for SMB3.1.1 compression
|
x) Finish support for SMB3.1.1 compression
|
||||||
|
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ and encrypted shares and stronger signing and authentication algorithms.
|
|||||||
There are additional mount options that may be helpful for SMB3 to get
|
There are additional mount options that may be helpful for SMB3 to get
|
||||||
improved POSIX behavior (NB: can use vers=3.0 to force only SMB3, never 2.1):
|
improved POSIX behavior (NB: can use vers=3.0 to force only SMB3, never 2.1):
|
||||||
|
|
||||||
``mfsymlinks`` and ``cifsacl`` and ``idsfromsid``
|
``mfsymlinks`` and either ``cifsacl`` or ``modefromsid`` (usually with ``idsfromsid``)
|
||||||
|
|
||||||
Allowing User Mounts
|
Allowing User Mounts
|
||||||
====================
|
====================
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ will lead to quite erratic information inside ``/proc/stat``::
|
|||||||
References
|
References
|
||||||
----------
|
----------
|
||||||
|
|
||||||
- http://lkml.org/lkml/2007/2/12/6
|
- https://lore.kernel.org/r/loom.20070212T063225-663@post.gmane.org
|
||||||
- Documentation/filesystems/proc.rst (1.8)
|
- Documentation/filesystems/proc.rst (1.8)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ Parameters::
|
|||||||
the value passed in <key_size>.
|
the value passed in <key_size>.
|
||||||
|
|
||||||
<key_type>
|
<key_type>
|
||||||
Either 'logon', 'user' or 'encrypted' kernel key type.
|
Either 'logon', 'user', 'encrypted' or 'trusted' kernel key type.
|
||||||
|
|
||||||
<key_description>
|
<key_description>
|
||||||
The kernel keyring key description crypt target should look for
|
The kernel keyring key description crypt target should look for
|
||||||
|
|||||||
@@ -143,8 +143,8 @@ recalculate
|
|||||||
journal_crypt:algorithm(:key) (the key is optional)
|
journal_crypt:algorithm(:key) (the key is optional)
|
||||||
Encrypt the journal using given algorithm to make sure that the
|
Encrypt the journal using given algorithm to make sure that the
|
||||||
attacker can't read the journal. You can use a block cipher here
|
attacker can't read the journal. You can use a block cipher here
|
||||||
(such as "cbc(aes)") or a stream cipher (for example "chacha20",
|
(such as "cbc(aes)") or a stream cipher (for example "chacha20"
|
||||||
"salsa20" or "ctr(aes)").
|
or "ctr(aes)").
|
||||||
|
|
||||||
The journal contains history of last writes to the block device,
|
The journal contains history of last writes to the block device,
|
||||||
an attacker reading the journal could see the last sector numbers
|
an attacker reading the journal could see the last sector numbers
|
||||||
@@ -177,14 +177,31 @@ bitmap_flush_interval:number
|
|||||||
The bitmap flush interval in milliseconds. The metadata buffers
|
The bitmap flush interval in milliseconds. The metadata buffers
|
||||||
are synchronized when this interval expires.
|
are synchronized when this interval expires.
|
||||||
|
|
||||||
|
allow_discards
|
||||||
|
Allow block discard requests (a.k.a. TRIM) for the integrity device.
|
||||||
|
Discards are only allowed to devices using internal hash.
|
||||||
|
|
||||||
fix_padding
|
fix_padding
|
||||||
Use a smaller padding of the tag area that is more
|
Use a smaller padding of the tag area that is more
|
||||||
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
|
fix_hmac
|
||||||
Allow block discard requests (a.k.a. TRIM) for the integrity device.
|
Improve security of internal_hash and journal_mac:
|
||||||
Discards are only allowed to devices using internal hash.
|
|
||||||
|
- the section number is mixed to the mac, so that an attacker can't
|
||||||
|
copy sectors from one journal section to another journal section
|
||||||
|
- the superblock is protected by journal_mac
|
||||||
|
- a 16-byte salt stored in the superblock is mixed to the mac, so
|
||||||
|
that the attacker can't detect that two disks have the same hmac
|
||||||
|
key and also to disallow the attacker to move sectors from one
|
||||||
|
disk to another
|
||||||
|
|
||||||
|
legacy_recalculate
|
||||||
|
Allow recalculating of volumes with HMAC keys. This is disabled by
|
||||||
|
default for security reasons - an attacker could modify the volume,
|
||||||
|
set recalc_sector to zero, and the kernel would not detect the
|
||||||
|
modification.
|
||||||
|
|
||||||
The journal mode (D/J), buffer_sectors, journal_watermark, commit_time and
|
The journal mode (D/J), buffer_sectors, journal_watermark, commit_time and
|
||||||
allow_discards can be changed when reloading the target (load an inactive
|
allow_discards can be changed when reloading the target (load an inactive
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
The kernel's command-line parameters
|
The kernel's command-line parameters
|
||||||
====================================
|
====================================
|
||||||
|
|
||||||
The following is a consolidated list of the kernel parameters as
|
The following is a consolidated list of the kernel parameters as implemented
|
||||||
implemented by the __setup(), core_param() and module_param() macros
|
by the __setup(), early_param(), core_param() and module_param() macros
|
||||||
and sorted into English Dictionary order (defined as ignoring all
|
and sorted into English Dictionary order (defined as ignoring all
|
||||||
punctuation and sorting digits before letters in a case insensitive
|
punctuation and sorting digits before letters in a case insensitive
|
||||||
manner), and with descriptions where known.
|
manner), and with descriptions where known.
|
||||||
@@ -60,7 +60,7 @@ Note that for the special case of a range one can split the range into equal
|
|||||||
sized groups and for each group use some amount from the beginning of that
|
sized groups and for each group use some amount from the beginning of that
|
||||||
group:
|
group:
|
||||||
|
|
||||||
<cpu number>-cpu number>:<used size>/<group size>
|
<cpu number>-<cpu number>:<used size>/<group size>
|
||||||
|
|
||||||
For example one can add to the command line following parameter:
|
For example one can add to the command line following parameter:
|
||||||
|
|
||||||
|
|||||||
@@ -373,6 +373,12 @@
|
|||||||
arcrimi= [HW,NET] ARCnet - "RIM I" (entirely mem-mapped) cards
|
arcrimi= [HW,NET] ARCnet - "RIM I" (entirely mem-mapped) cards
|
||||||
Format: <io>,<irq>,<nodeID>
|
Format: <io>,<irq>,<nodeID>
|
||||||
|
|
||||||
|
arm64.nobti [ARM64] Unconditionally disable Branch Target
|
||||||
|
Identification support
|
||||||
|
|
||||||
|
arm64.nopauth [ARM64] Unconditionally disable Pointer Authentication
|
||||||
|
support
|
||||||
|
|
||||||
ataflop= [HW,M68k]
|
ataflop= [HW,M68k]
|
||||||
|
|
||||||
atarimouse= [HW,MOUSE] Atari Mouse
|
atarimouse= [HW,MOUSE] Atari Mouse
|
||||||
@@ -600,7 +606,7 @@
|
|||||||
kernel/dma/contiguous.c
|
kernel/dma/contiguous.c
|
||||||
|
|
||||||
cma_pernuma=nn[MG]
|
cma_pernuma=nn[MG]
|
||||||
[ARM64,KNL]
|
[ARM64,KNL,CMA]
|
||||||
Sets the size of kernel per-numa memory area for
|
Sets the size of kernel per-numa memory area for
|
||||||
contiguous memory allocations. A value of 0 disables
|
contiguous memory allocations. A value of 0 disables
|
||||||
per-numa CMA altogether. And If this option is not
|
per-numa CMA altogether. And If this option is not
|
||||||
@@ -802,13 +808,14 @@
|
|||||||
insecure, please do not use on production kernels.
|
insecure, please do not use on production kernels.
|
||||||
|
|
||||||
debug_locks_verbose=
|
debug_locks_verbose=
|
||||||
[KNL] verbose self-tests
|
[KNL] verbose locking self-tests
|
||||||
Format=<0|1>
|
Format: <int>
|
||||||
Print debugging info while doing the locking API
|
Print debugging info while doing the locking API
|
||||||
self-tests.
|
self-tests.
|
||||||
We default to 0 (no extra messages), setting it to
|
Bitmask for the various LOCKTYPE_ tests. Defaults to 0
|
||||||
1 will print _a lot_ more information - normally
|
(no extra messages), setting it to -1 (all bits set)
|
||||||
only useful to kernel developers.
|
will print _a_lot_ more information - normally only
|
||||||
|
useful to lockdep developers.
|
||||||
|
|
||||||
debug_objects [KNL] Enable object debugging
|
debug_objects [KNL] Enable object debugging
|
||||||
|
|
||||||
@@ -944,12 +951,6 @@
|
|||||||
causing system reset or hang due to sending
|
causing system reset or hang due to sending
|
||||||
INIT from AP to BSP.
|
INIT from AP to BSP.
|
||||||
|
|
||||||
perf_v4_pmi= [X86,INTEL]
|
|
||||||
Format: <bool>
|
|
||||||
Disable Intel PMU counter freezing feature.
|
|
||||||
The feature only exists starting from
|
|
||||||
Arch Perfmon v4 (Skylake and newer).
|
|
||||||
|
|
||||||
disable_ddw [PPC/PSERIES]
|
disable_ddw [PPC/PSERIES]
|
||||||
Disable Dynamic DMA Window support. Use this
|
Disable Dynamic DMA Window support. Use this
|
||||||
to workaround buggy firmware.
|
to workaround buggy firmware.
|
||||||
@@ -1385,7 +1386,7 @@
|
|||||||
|
|
||||||
ftrace_filter=[function-list]
|
ftrace_filter=[function-list]
|
||||||
[FTRACE] Limit the functions traced by the function
|
[FTRACE] Limit the functions traced by the function
|
||||||
tracer at boot up. function-list is a comma separated
|
tracer at boot up. function-list is a comma-separated
|
||||||
list of functions. This list can be changed at run
|
list of functions. This list can be changed at run
|
||||||
time by the set_ftrace_filter file in the debugfs
|
time by the set_ftrace_filter file in the debugfs
|
||||||
tracing directory.
|
tracing directory.
|
||||||
@@ -1399,13 +1400,13 @@
|
|||||||
ftrace_graph_filter=[function-list]
|
ftrace_graph_filter=[function-list]
|
||||||
[FTRACE] Limit the top level callers functions traced
|
[FTRACE] Limit the top level callers functions traced
|
||||||
by the function graph tracer at boot up.
|
by the function graph tracer at boot up.
|
||||||
function-list is a comma separated list of functions
|
function-list is a comma-separated list of functions
|
||||||
that can be changed at run time by the
|
that can be changed at run time by the
|
||||||
set_graph_function file in the debugfs tracing directory.
|
set_graph_function file in the debugfs tracing directory.
|
||||||
|
|
||||||
ftrace_graph_notrace=[function-list]
|
ftrace_graph_notrace=[function-list]
|
||||||
[FTRACE] Do not trace from the functions specified in
|
[FTRACE] Do not trace from the functions specified in
|
||||||
function-list. This list is a comma separated list of
|
function-list. This list is a comma-separated list of
|
||||||
functions that can be changed at run time by the
|
functions that can be changed at run time by the
|
||||||
set_graph_notrace file in the debugfs tracing directory.
|
set_graph_notrace file in the debugfs tracing directory.
|
||||||
|
|
||||||
@@ -1433,6 +1434,11 @@
|
|||||||
to enforce probe and suspend/resume ordering.
|
to enforce probe and suspend/resume ordering.
|
||||||
rpm -- Like "on", but also use to order runtime PM.
|
rpm -- Like "on", but also use to order runtime PM.
|
||||||
|
|
||||||
|
fw_devlink.strict=<bool>
|
||||||
|
[KNL] Treat all inferred dependencies as mandatory
|
||||||
|
dependencies. This only applies for fw_devlink=on|rpm.
|
||||||
|
Format: <bool>
|
||||||
|
|
||||||
gamecon.map[2|3]=
|
gamecon.map[2|3]=
|
||||||
[HW,JOY] Multisystem joystick and NES/SNES/PSX pad
|
[HW,JOY] Multisystem joystick and NES/SNES/PSX pad
|
||||||
support via parallel port (up to 5 devices per port)
|
support via parallel port (up to 5 devices per port)
|
||||||
@@ -1524,12 +1530,12 @@
|
|||||||
hpet_mmap= [X86, HPET_MMAP] Allow userspace to mmap HPET
|
hpet_mmap= [X86, HPET_MMAP] Allow userspace to mmap HPET
|
||||||
registers. Default set by CONFIG_HPET_MMAP_DEFAULT.
|
registers. Default set by CONFIG_HPET_MMAP_DEFAULT.
|
||||||
|
|
||||||
hugetlb_cma= [HW] The size of a cma area used for allocation
|
hugetlb_cma= [HW,CMA] The size of a CMA area used for allocation
|
||||||
of gigantic hugepages.
|
of gigantic hugepages.
|
||||||
Format: nn[KMGTPE]
|
Format: nn[KMGTPE]
|
||||||
|
|
||||||
Reserve a cma area of given size and allocate gigantic
|
Reserve a CMA area of given size and allocate gigantic
|
||||||
hugepages using the cma allocator. If enabled, the
|
hugepages using the CMA allocator. If enabled, the
|
||||||
boot-time allocation of gigantic hugepages is skipped.
|
boot-time allocation of gigantic hugepages is skipped.
|
||||||
|
|
||||||
hugepages= [HW] Number of HugeTLB pages to allocate at boot.
|
hugepages= [HW] Number of HugeTLB pages to allocate at boot.
|
||||||
@@ -1673,6 +1679,12 @@
|
|||||||
In such case C2/C3 won't be used again.
|
In such case C2/C3 won't be used again.
|
||||||
idle=nomwait: Disable mwait for CPU C-states
|
idle=nomwait: Disable mwait for CPU C-states
|
||||||
|
|
||||||
|
idxd.sva= [HW]
|
||||||
|
Format: <bool>
|
||||||
|
Allow force disabling of Shared Virtual Memory (SVA)
|
||||||
|
support for the idxd driver. By default it is set to
|
||||||
|
true (1).
|
||||||
|
|
||||||
ieee754= [MIPS] Select IEEE Std 754 conformance mode
|
ieee754= [MIPS] Select IEEE Std 754 conformance mode
|
||||||
Format: { strict | legacy | 2008 | relaxed }
|
Format: { strict | legacy | 2008 | relaxed }
|
||||||
Default: strict
|
Default: strict
|
||||||
@@ -1746,7 +1758,7 @@
|
|||||||
ima_policy= [IMA]
|
ima_policy= [IMA]
|
||||||
The builtin policies to load during IMA setup.
|
The builtin policies to load during IMA setup.
|
||||||
Format: "tcb | appraise_tcb | secure_boot |
|
Format: "tcb | appraise_tcb | secure_boot |
|
||||||
fail_securely"
|
fail_securely | critical_data"
|
||||||
|
|
||||||
The "tcb" policy measures all programs exec'd, files
|
The "tcb" policy measures all programs exec'd, files
|
||||||
mmap'd for exec, and all files opened with the read
|
mmap'd for exec, and all files opened with the read
|
||||||
@@ -1765,6 +1777,9 @@
|
|||||||
filesystems with the SB_I_UNVERIFIABLE_SIGNATURE
|
filesystems with the SB_I_UNVERIFIABLE_SIGNATURE
|
||||||
flag.
|
flag.
|
||||||
|
|
||||||
|
The "critical_data" policy measures kernel integrity
|
||||||
|
critical data.
|
||||||
|
|
||||||
ima_tcb [IMA] Deprecated. Use ima_policy= instead.
|
ima_tcb [IMA] Deprecated. Use ima_policy= instead.
|
||||||
Load a policy which meets the needs of the Trusted
|
Load a policy which meets the needs of the Trusted
|
||||||
Computing Base. This means IMA will measure all
|
Computing Base. This means IMA will measure all
|
||||||
@@ -2257,6 +2272,9 @@
|
|||||||
kvm-arm.mode=
|
kvm-arm.mode=
|
||||||
[KVM,ARM] Select one of KVM/arm64's modes of operation.
|
[KVM,ARM] Select one of KVM/arm64's modes of operation.
|
||||||
|
|
||||||
|
nvhe: Standard nVHE-based mode, without support for
|
||||||
|
protected guests.
|
||||||
|
|
||||||
protected: nVHE-based mode with support for guests whose
|
protected: nVHE-based mode with support for guests whose
|
||||||
state is kept private from the host.
|
state is kept private from the host.
|
||||||
Not valid if the kernel is running in EL2.
|
Not valid if the kernel is running in EL2.
|
||||||
@@ -2421,7 +2439,7 @@
|
|||||||
when set.
|
when set.
|
||||||
Format: <int>
|
Format: <int>
|
||||||
|
|
||||||
libata.force= [LIBATA] Force configurations. The format is comma
|
libata.force= [LIBATA] Force configurations. The format is comma-
|
||||||
separated list of "[ID:]VAL" where ID is
|
separated list of "[ID:]VAL" where ID is
|
||||||
PORT[.DEVICE]. PORT and DEVICE are decimal numbers
|
PORT[.DEVICE]. PORT and DEVICE are decimal numbers
|
||||||
matching port, link or device. Basically, it matches
|
matching port, link or device. Basically, it matches
|
||||||
@@ -3266,9 +3284,14 @@
|
|||||||
parameter, xsave area per process might occupy more
|
parameter, xsave area per process might occupy more
|
||||||
memory on xsaves enabled systems.
|
memory on xsaves enabled systems.
|
||||||
|
|
||||||
nohlt [BUGS=ARM,SH] Tells the kernel that the sleep(SH) or
|
nohlt [ARM,ARM64,MICROBLAZE,SH] Forces the kernel to busy wait
|
||||||
wfi(ARM) instruction doesn't work correctly and not to
|
in do_idle() and not use the arch_cpu_idle()
|
||||||
use it. This is also useful when using JTAG debugger.
|
implementation; requires CONFIG_GENERIC_IDLE_POLL_SETUP
|
||||||
|
to be effective. This is useful on platforms where the
|
||||||
|
sleep(SH) or wfi(ARM,ARM64) instructions do not work
|
||||||
|
correctly or when doing power measurements to evalute
|
||||||
|
the impact of the sleep instructions. This is also
|
||||||
|
useful when using JTAG debugger.
|
||||||
|
|
||||||
no_file_caps Tells the kernel not to honor file capabilities. The
|
no_file_caps Tells the kernel not to honor file capabilities. The
|
||||||
only way then for a file to be executed with privilege
|
only way then for a file to be executed with privilege
|
||||||
@@ -3281,6 +3304,21 @@
|
|||||||
in certain environments such as networked servers or
|
in certain environments such as networked servers or
|
||||||
real-time systems.
|
real-time systems.
|
||||||
|
|
||||||
|
no_hash_pointers
|
||||||
|
Force pointers printed to the console or buffers to be
|
||||||
|
unhashed. By default, when a pointer is printed via %p
|
||||||
|
format string, that pointer is "hashed", i.e. obscured
|
||||||
|
by hashing the pointer value. This is a security feature
|
||||||
|
that hides actual kernel addresses from unprivileged
|
||||||
|
users, but it also makes debugging the kernel more
|
||||||
|
difficult since unequal pointers can no longer be
|
||||||
|
compared. However, if this command-line option is
|
||||||
|
specified, then all normal pointers will have their true
|
||||||
|
value printed. Pointers printed via %pK may still be
|
||||||
|
hashed. This option should only be specified when
|
||||||
|
debugging the kernel. Please do not use on production
|
||||||
|
kernels.
|
||||||
|
|
||||||
nohibernate [HIBERNATION] Disable hibernation and resume.
|
nohibernate [HIBERNATION] Disable hibernation and resume.
|
||||||
|
|
||||||
nohz= [KNL] Boottime enable/disable dynamic ticks
|
nohz= [KNL] Boottime enable/disable dynamic ticks
|
||||||
@@ -3458,20 +3496,6 @@
|
|||||||
For example, to override I2C bus2:
|
For example, to override I2C bus2:
|
||||||
omap_mux=i2c2_scl.i2c2_scl=0x100,i2c2_sda.i2c2_sda=0x100
|
omap_mux=i2c2_scl.i2c2_scl=0x100,i2c2_sda.i2c2_sda=0x100
|
||||||
|
|
||||||
oprofile.timer= [HW]
|
|
||||||
Use timer interrupt instead of performance counters
|
|
||||||
|
|
||||||
oprofile.cpu_type= Force an oprofile cpu type
|
|
||||||
This might be useful if you have an older oprofile
|
|
||||||
userland or if you want common events.
|
|
||||||
Format: { arch_perfmon }
|
|
||||||
arch_perfmon: [X86] Force use of architectural
|
|
||||||
perfmon on Intel CPUs instead of the
|
|
||||||
CPU specific event set.
|
|
||||||
timer: [X86] Force use of architectural NMI
|
|
||||||
timer mode (see also oprofile.timer
|
|
||||||
for generic hr timer mode)
|
|
||||||
|
|
||||||
oops=panic Always panic on oopses. Default is to just kill the
|
oops=panic Always panic on oopses. Default is to just kill the
|
||||||
process, but there is a small probability of
|
process, but there is a small probability of
|
||||||
deadlocking the machine.
|
deadlocking the machine.
|
||||||
@@ -3916,6 +3940,13 @@
|
|||||||
Format: {"off"}
|
Format: {"off"}
|
||||||
Disable Hardware Transactional Memory
|
Disable Hardware Transactional Memory
|
||||||
|
|
||||||
|
preempt= [KNL]
|
||||||
|
Select preemption mode if you have CONFIG_PREEMPT_DYNAMIC
|
||||||
|
none - Limited to cond_resched() calls
|
||||||
|
voluntary - Limited to cond_resched() and might_sleep() calls
|
||||||
|
full - Any section that isn't explicitly preempt disabled
|
||||||
|
can be preempted anytime.
|
||||||
|
|
||||||
print-fatal-signals=
|
print-fatal-signals=
|
||||||
[KNL] debug: print fatal signals
|
[KNL] debug: print fatal signals
|
||||||
|
|
||||||
@@ -4092,6 +4123,10 @@
|
|||||||
value, meaning that RCU_SOFTIRQ is used by default.
|
value, meaning that RCU_SOFTIRQ is used by default.
|
||||||
Specify rcutree.use_softirq=0 to use rcuc kthreads.
|
Specify rcutree.use_softirq=0 to use rcuc kthreads.
|
||||||
|
|
||||||
|
But note that CONFIG_PREEMPT_RT=y kernels disable
|
||||||
|
this kernel boot parameter, forcibly setting it
|
||||||
|
to zero.
|
||||||
|
|
||||||
rcutree.rcu_fanout_exact= [KNL]
|
rcutree.rcu_fanout_exact= [KNL]
|
||||||
Disable autobalancing of the rcu_node combining
|
Disable autobalancing of the rcu_node combining
|
||||||
tree. This is used by rcutorture, and might
|
tree. This is used by rcutorture, and might
|
||||||
@@ -4179,12 +4214,6 @@
|
|||||||
Set wakeup interval for idle CPUs that have
|
Set wakeup interval for idle CPUs that have
|
||||||
RCU callbacks (RCU_FAST_NO_HZ=y).
|
RCU callbacks (RCU_FAST_NO_HZ=y).
|
||||||
|
|
||||||
rcutree.rcu_idle_lazy_gp_delay= [KNL]
|
|
||||||
Set wakeup interval for idle CPUs that have
|
|
||||||
only "lazy" RCU callbacks (RCU_FAST_NO_HZ=y).
|
|
||||||
Lazy RCU callbacks are those which RCU can
|
|
||||||
prove do nothing more than free memory.
|
|
||||||
|
|
||||||
rcutree.rcu_kick_kthreads= [KNL]
|
rcutree.rcu_kick_kthreads= [KNL]
|
||||||
Cause the grace-period kthread to get an extra
|
Cause the grace-period kthread to get an extra
|
||||||
wake_up() if it sleeps three times longer than
|
wake_up() if it sleeps three times longer than
|
||||||
@@ -4338,6 +4367,14 @@
|
|||||||
stress RCU, they don't participate in the actual
|
stress RCU, they don't participate in the actual
|
||||||
test, hence the "fake".
|
test, hence the "fake".
|
||||||
|
|
||||||
|
rcutorture.nocbs_nthreads= [KNL]
|
||||||
|
Set number of RCU callback-offload togglers.
|
||||||
|
Zero (the default) disables toggling.
|
||||||
|
|
||||||
|
rcutorture.nocbs_toggle= [KNL]
|
||||||
|
Set the delay in milliseconds between successive
|
||||||
|
callback-offload toggling attempts.
|
||||||
|
|
||||||
rcutorture.nreaders= [KNL]
|
rcutorture.nreaders= [KNL]
|
||||||
Set number of RCU readers. The value -1 selects
|
Set number of RCU readers. The value -1 selects
|
||||||
N-1, where N is the number of CPUs. A value
|
N-1, where N is the number of CPUs. A value
|
||||||
@@ -4470,6 +4507,13 @@
|
|||||||
only normal grace-period primitives. No effect
|
only normal grace-period primitives. No effect
|
||||||
on CONFIG_TINY_RCU kernels.
|
on CONFIG_TINY_RCU kernels.
|
||||||
|
|
||||||
|
But note that CONFIG_PREEMPT_RT=y kernels enables
|
||||||
|
this kernel boot parameter, forcibly setting
|
||||||
|
it to the value one, that is, converting any
|
||||||
|
post-boot attempt at an expedited RCU grace
|
||||||
|
period to instead use normal non-expedited
|
||||||
|
grace-period processing.
|
||||||
|
|
||||||
rcupdate.rcu_task_ipi_delay= [KNL]
|
rcupdate.rcu_task_ipi_delay= [KNL]
|
||||||
Set time in jiffies during which RCU tasks will
|
Set time in jiffies during which RCU tasks will
|
||||||
avoid sending IPIs, starting with the beginning
|
avoid sending IPIs, starting with the beginning
|
||||||
@@ -4557,6 +4601,12 @@
|
|||||||
refscale.verbose= [KNL]
|
refscale.verbose= [KNL]
|
||||||
Enable additional printk() statements.
|
Enable additional printk() statements.
|
||||||
|
|
||||||
|
refscale.verbose_batched= [KNL]
|
||||||
|
Batch the additional printk() statements. If zero
|
||||||
|
(the default) or negative, print everything. Otherwise,
|
||||||
|
print every Nth verbose statement, where N is the value
|
||||||
|
specified.
|
||||||
|
|
||||||
relax_domain_level=
|
relax_domain_level=
|
||||||
[KNL, SMP] Set scheduler's default relax_domain_level.
|
[KNL, SMP] Set scheduler's default relax_domain_level.
|
||||||
See Documentation/admin-guide/cgroup-v1/cpusets.rst.
|
See Documentation/admin-guide/cgroup-v1/cpusets.rst.
|
||||||
@@ -4854,14 +4904,6 @@
|
|||||||
last alloc / free. For more information see
|
last alloc / free. For more information see
|
||||||
Documentation/vm/slub.rst.
|
Documentation/vm/slub.rst.
|
||||||
|
|
||||||
slub_memcg_sysfs= [MM, SLUB]
|
|
||||||
Determines whether to enable sysfs directories for
|
|
||||||
memory cgroup sub-caches. 1 to enable, 0 to disable.
|
|
||||||
The default is determined by CONFIG_SLUB_MEMCG_SYSFS_ON.
|
|
||||||
Enabling this can lead to a very high number of debug
|
|
||||||
directories and files being created under
|
|
||||||
/sys/kernel/slub.
|
|
||||||
|
|
||||||
slub_max_order= [MM, SLUB]
|
slub_max_order= [MM, SLUB]
|
||||||
Determines the maximum allowed order for slabs.
|
Determines the maximum allowed order for slabs.
|
||||||
A high setting may cause OOMs due to memory
|
A high setting may cause OOMs due to memory
|
||||||
@@ -5140,12 +5182,18 @@
|
|||||||
growing up) the main stack are reserved for no other
|
growing up) the main stack are reserved for no other
|
||||||
mapping. Default value is 256 pages.
|
mapping. Default value is 256 pages.
|
||||||
|
|
||||||
|
stack_depot_disable= [KNL]
|
||||||
|
Setting this to true through kernel command line will
|
||||||
|
disable the stack depot thereby saving the static memory
|
||||||
|
consumed by the stack hash table. By default this is set
|
||||||
|
to false.
|
||||||
|
|
||||||
stacktrace [FTRACE]
|
stacktrace [FTRACE]
|
||||||
Enabled the stack tracer on boot up.
|
Enabled the stack tracer on boot up.
|
||||||
|
|
||||||
stacktrace_filter=[function-list]
|
stacktrace_filter=[function-list]
|
||||||
[FTRACE] Limit the functions that the stack tracer
|
[FTRACE] Limit the functions that the stack tracer
|
||||||
will trace at boot up. function-list is a comma separated
|
will trace at boot up. function-list is a comma-separated
|
||||||
list of functions. This list can be changed at run
|
list of functions. This list can be changed at run
|
||||||
time by the stack_trace_filter file in the debugfs
|
time by the stack_trace_filter file in the debugfs
|
||||||
tracing directory. Note, this enables stack tracing
|
tracing directory. Note, this enables stack tracing
|
||||||
@@ -5331,6 +5379,14 @@
|
|||||||
are running concurrently, especially on systems
|
are running concurrently, especially on systems
|
||||||
with rotating-rust storage.
|
with rotating-rust storage.
|
||||||
|
|
||||||
|
torture.verbose_sleep_frequency= [KNL]
|
||||||
|
Specifies how many verbose printk()s should be
|
||||||
|
emitted between each sleep. The default of zero
|
||||||
|
disables verbose-printk() sleeping.
|
||||||
|
|
||||||
|
torture.verbose_sleep_duration= [KNL]
|
||||||
|
Duration of each verbose-printk() sleep in jiffies.
|
||||||
|
|
||||||
tp720= [HW,PS2]
|
tp720= [HW,PS2]
|
||||||
|
|
||||||
tpm_suspend_pcr=[HW,TPM]
|
tpm_suspend_pcr=[HW,TPM]
|
||||||
@@ -5348,7 +5404,7 @@
|
|||||||
trace_event=[event-list]
|
trace_event=[event-list]
|
||||||
[FTRACE] Set and start specified trace events in order
|
[FTRACE] Set and start specified trace events in order
|
||||||
to facilitate early boot debugging. The event-list is a
|
to facilitate early boot debugging. The event-list is a
|
||||||
comma separated list of trace events to enable. See
|
comma-separated list of trace events to enable. See
|
||||||
also Documentation/trace/events.rst
|
also Documentation/trace/events.rst
|
||||||
|
|
||||||
trace_options=[option-list]
|
trace_options=[option-list]
|
||||||
@@ -5932,12 +5988,6 @@
|
|||||||
default x2apic cluster mode on platforms
|
default x2apic cluster mode on platforms
|
||||||
supporting x2apic.
|
supporting x2apic.
|
||||||
|
|
||||||
x86_intel_mid_timer= [X86-32,APBT]
|
|
||||||
Choose timer option for x86 Intel MID platform.
|
|
||||||
Two valid options are apbt timer only and lapic timer
|
|
||||||
plus one apbt timer for broadcast timer.
|
|
||||||
x86_intel_mid_timer=apbt_only | lapic_and_apbt
|
|
||||||
|
|
||||||
xen_512gb_limit [KNL,X86-64,XEN]
|
xen_512gb_limit [KNL,X86-64,XEN]
|
||||||
Restricts the kernel running paravirtualized under Xen
|
Restricts the kernel running paravirtualized under Xen
|
||||||
to use only up to 512 GB of RAM. The reason to do so is
|
to use only up to 512 GB of RAM. The reason to do so is
|
||||||
@@ -5972,6 +6022,10 @@
|
|||||||
This option is obsoleted by the "nopv" option, which
|
This option is obsoleted by the "nopv" option, which
|
||||||
has equivalent effect for XEN platform.
|
has equivalent effect for XEN platform.
|
||||||
|
|
||||||
|
xen_no_vector_callback
|
||||||
|
[KNL,X86,XEN] Disable the vector callback for Xen
|
||||||
|
event channel interrupts.
|
||||||
|
|
||||||
xen_scrub_pages= [XEN]
|
xen_scrub_pages= [XEN]
|
||||||
Boolean option to control scrubbing pages before giving them back
|
Boolean option to control scrubbing pages before giving them back
|
||||||
to Xen, for use by other domains. Can be also changed at runtime
|
to Xen, for use by other domains. Can be also changed at runtime
|
||||||
|
|||||||
@@ -273,7 +273,7 @@ To reduce its OS jitter, do any of the following:
|
|||||||
However, there is an RFC patch from Christoph Lameter
|
However, there is an RFC patch from Christoph Lameter
|
||||||
(based on an earlier one from Gilad Ben-Yossef) that
|
(based on an earlier one from Gilad Ben-Yossef) that
|
||||||
reduces or even eliminates vmstat overhead for some
|
reduces or even eliminates vmstat overhead for some
|
||||||
workloads at https://lkml.org/lkml/2013/9/4/379.
|
workloads at https://lore.kernel.org/r/00000140e9dfd6bd-40db3d4f-c1be-434f-8132-7820f81bb586-000000@email.amazonses.com.
|
||||||
e. If running on high-end powerpc servers, build with
|
e. If running on high-end powerpc servers, build with
|
||||||
CONFIG_PPC_RTAS_DAEMON=n. This prevents the RTAS
|
CONFIG_PPC_RTAS_DAEMON=n. This prevents the RTAS
|
||||||
daemon from running on each CPU every second or so.
|
daemon from running on each CPU every second or so.
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ detailed description):
|
|||||||
- UWB enable and disable
|
- UWB enable and disable
|
||||||
- LCD Shadow (PrivacyGuard) enable and disable
|
- LCD Shadow (PrivacyGuard) enable and disable
|
||||||
- Lap mode sensor
|
- Lap mode sensor
|
||||||
|
- Setting keyboard language
|
||||||
|
|
||||||
A compatibility table by model and feature is maintained on the web
|
A compatibility table by model and feature is maintained on the web
|
||||||
site, http://ibm-acpi.sf.net/. I appreciate any success or failure
|
site, http://ibm-acpi.sf.net/. I appreciate any success or failure
|
||||||
@@ -1466,6 +1467,30 @@ Sysfs notes
|
|||||||
rfkill controller switch "tpacpi_uwb_sw": refer to
|
rfkill controller switch "tpacpi_uwb_sw": refer to
|
||||||
Documentation/driver-api/rfkill.rst for details.
|
Documentation/driver-api/rfkill.rst for details.
|
||||||
|
|
||||||
|
|
||||||
|
Setting keyboard language
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
sysfs: keyboard_lang
|
||||||
|
|
||||||
|
This feature is used to set keyboard language to ECFW using ASL interface.
|
||||||
|
Fewer thinkpads models like T580 , T590 , T15 Gen 1 etc.. has "=", "(',
|
||||||
|
")" numeric keys, which are not displaying correctly, when keyboard language
|
||||||
|
is other than "english". This is because the default keyboard language in ECFW
|
||||||
|
is set as "english". Hence using this sysfs, user can set the correct keyboard
|
||||||
|
language to ECFW and then these key's will work correctly.
|
||||||
|
|
||||||
|
Example of command to set keyboard language is mentioned below::
|
||||||
|
|
||||||
|
echo jp > /sys/devices/platform/thinkpad_acpi/keyboard_lang
|
||||||
|
|
||||||
|
Text corresponding to keyboard layout to be set in sysfs are: be(Belgian),
|
||||||
|
cz(Czech), da(Danish), de(German), en(English), es(Spain), et(Estonian),
|
||||||
|
fr(French), fr-ch(French(Switzerland)), hu(Hungarian), it(Italy), jp (Japan),
|
||||||
|
nl(Dutch), nn(Norway), pl(Polish), pt(portugese), sl(Slovenian), sv(Sweden),
|
||||||
|
tr(Turkey)
|
||||||
|
|
||||||
|
|
||||||
Adaptive keyboard
|
Adaptive keyboard
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,22 @@ This file documents the driver for the Rockchip ISP1 that is part of RK3288
|
|||||||
and RK3399 SoCs. The driver is located under drivers/staging/media/rkisp1
|
and RK3399 SoCs. The driver is located under drivers/staging/media/rkisp1
|
||||||
and uses the Media-Controller API.
|
and uses the Media-Controller API.
|
||||||
|
|
||||||
|
Revisions
|
||||||
|
=========
|
||||||
|
|
||||||
|
There exist multiple smaller revisions to this ISP that got introduced in
|
||||||
|
later SoCs. Revisions can be found in the enum :c:type:`rkisp1_cif_isp_version`
|
||||||
|
in the UAPI and the revision of the ISP inside the running SoC can be read
|
||||||
|
in the field hw_revision of struct media_device_info as returned by
|
||||||
|
ioctl MEDIA_IOC_DEVICE_INFO.
|
||||||
|
|
||||||
|
Versions in use are:
|
||||||
|
|
||||||
|
- RKISP1_V10: used at least in rk3288 and rk3399
|
||||||
|
- RKISP1_V11: declared in the original vendor code, but not used
|
||||||
|
- RKISP1_V12: used at least in rk3326 and px30
|
||||||
|
- RKISP1_V13: used at least in rk1808
|
||||||
|
|
||||||
Topology
|
Topology
|
||||||
========
|
========
|
||||||
.. _rkisp1_topology_graph:
|
.. _rkisp1_topology_graph:
|
||||||
|
|||||||
@@ -184,7 +184,7 @@ pages either asynchronously or synchronously, depending on the state
|
|||||||
of the system. When the system is not loaded, most of the memory is free
|
of the system. When the system is not loaded, most of the memory is free
|
||||||
and allocation requests will be satisfied immediately from the free
|
and allocation requests will be satisfied immediately from the free
|
||||||
pages supply. As the load increases, the amount of the free pages goes
|
pages supply. As the load increases, the amount of the free pages goes
|
||||||
down and when it reaches a certain threshold (high watermark), an
|
down and when it reaches a certain threshold (low watermark), an
|
||||||
allocation request will awaken the ``kswapd`` daemon. It will
|
allocation request will awaken the ``kswapd`` daemon. It will
|
||||||
asynchronously scan memory pages and either just free them if the data
|
asynchronously scan memory pages and either just free them if the data
|
||||||
they contain is available elsewhere, or evict to the backing storage
|
they contain is available elsewhere, or evict to the backing storage
|
||||||
|
|||||||
@@ -160,16 +160,16 @@ Under each memory block, you can see 5 files:
|
|||||||
|
|
||||||
"online_movable", "online", "offline" command
|
"online_movable", "online", "offline" command
|
||||||
which will be performed on all sections in the block.
|
which will be performed on all sections in the block.
|
||||||
``phys_device`` read-only: designed to show the name of physical memory
|
``phys_device`` read-only: legacy interface only ever used on s390x to
|
||||||
device. This is not well implemented now.
|
expose the covered storage increment.
|
||||||
``removable`` read-only: contains an integer value indicating
|
``removable`` read-only: legacy interface that indicated whether a memory
|
||||||
whether the memory block is removable or not
|
block was likely to be offlineable or not. Newer kernel
|
||||||
removable. A value of 1 indicates that the memory
|
versions return "1" if and only if the kernel supports
|
||||||
block is removable and a value of 0 indicates that
|
memory offlining.
|
||||||
it is not removable. A memory block is removable only if
|
``valid_zones`` read-only: designed to show by which zone memory provided by
|
||||||
every section in the block is removable.
|
a memory block is managed, and to show by which zone memory
|
||||||
``valid_zones`` read-only: designed to show which zones this memory block
|
provided by an offline memory block could be managed when
|
||||||
can be onlined to.
|
onlining.
|
||||||
|
|
||||||
The first column shows it`s default zone.
|
The first column shows it`s default zone.
|
||||||
|
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ monitoring and observability operations, thus, bypass *scope* permissions
|
|||||||
checks in the kernel. CAP_PERFMON implements the principle of least
|
checks in the kernel. CAP_PERFMON implements the principle of least
|
||||||
privilege [13]_ (POSIX 1003.1e: 2.2.2.39) for performance monitoring and
|
privilege [13]_ (POSIX 1003.1e: 2.2.2.39) for performance monitoring and
|
||||||
observability operations in the kernel and provides a secure approach to
|
observability operations in the kernel and provides a secure approach to
|
||||||
perfomance monitoring and observability in the system.
|
performance monitoring and observability in the system.
|
||||||
|
|
||||||
For backward compatibility reasons the access to perf_events monitoring and
|
For backward compatibility reasons the access to perf_events monitoring and
|
||||||
observability operations is also open for CAP_SYS_ADMIN privileged
|
observability operations is also open for CAP_SYS_ADMIN privileged
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ PMU events
|
|||||||
----------
|
----------
|
||||||
|
|
||||||
The PMU driver registers a single PMU device for the whole interconnect,
|
The PMU driver registers a single PMU device for the whole interconnect,
|
||||||
see /sys/bus/event_source/devices/arm_cmn. Multi-chip systems may link
|
see /sys/bus/event_source/devices/arm_cmn_0. Multi-chip systems may link
|
||||||
more than one CMN together via external CCIX links - in this situation,
|
more than one CMN together via external CCIX links - in this situation,
|
||||||
each mesh counts its own events entirely independently, and additional
|
each mesh counts its own events entirely independently, and additional
|
||||||
PMU devices will be named arm_cmn_{1..n}.
|
PMU devices will be named arm_cmn_{1..n}.
|
||||||
|
|||||||
@@ -1033,7 +1033,9 @@ speakup + keypad 3, you would hear:
|
|||||||
The speakup key is depressed, so the name of the key state is speakup.
|
The speakup key is depressed, so the name of the key state is speakup.
|
||||||
This part of the message comes from the states collection.
|
This part of the message comes from the states collection.
|
||||||
|
|
||||||
14.2. Loading Your Own Messages
|
14.2. Changing language
|
||||||
|
|
||||||
|
14.2.1. Loading Your Own Messages
|
||||||
|
|
||||||
The files under the i18n subdirectory all follow the same format.
|
The files under the i18n subdirectory all follow the same format.
|
||||||
They consist of lines, with one message per line.
|
They consist of lines, with one message per line.
|
||||||
@@ -1066,8 +1068,50 @@ echo '1 azul' > /speakup/i18n/colors
|
|||||||
The next time that Speakup says message 1 from the colors group, it will
|
The next time that Speakup says message 1 from the colors group, it will
|
||||||
say "azul", rather than "blue."
|
say "azul", rather than "blue."
|
||||||
|
|
||||||
|
14.2.2. Choose a language
|
||||||
|
|
||||||
In the future, translations into various languages will be made available,
|
In the future, translations into various languages will be made available,
|
||||||
and most users will just load the files necessary for their language.
|
and most users will just load the files necessary for their language. So far,
|
||||||
|
only French language is available beyond native Canadian English language.
|
||||||
|
|
||||||
|
French is only available after you are logged in.
|
||||||
|
|
||||||
|
Canadian English is the default language. To toggle another language,
|
||||||
|
download the source of Speakup and untar it in your home directory. The
|
||||||
|
following command should let you do this:
|
||||||
|
|
||||||
|
tar xvjf speakup-<version>.tar.bz2
|
||||||
|
|
||||||
|
where <version> is the version number of the application.
|
||||||
|
|
||||||
|
Next, change to the newly created directory, then into the tools/ directory, and
|
||||||
|
run the script speakup_setlocale. You are asked the language that you want to
|
||||||
|
use. Type the number associated to your language (e.g. fr for French) then press
|
||||||
|
Enter. Needed files are copied in the i18n directory.
|
||||||
|
|
||||||
|
Note: the speakupconf must be installed on your system so that settings are saved.
|
||||||
|
Otherwise, you will have an error: your language will be loaded but you will
|
||||||
|
have to run the script again every time Speakup restarts.
|
||||||
|
See section 16.1. for information about speakupconf.
|
||||||
|
|
||||||
|
You will have to repeat these steps for any change of locale, i.e. if you wish
|
||||||
|
change the speakup's language or charset (iso-8859-15 ou UTF-8).
|
||||||
|
|
||||||
|
If you wish store the settings, note that at your next login, you will need to
|
||||||
|
do:
|
||||||
|
|
||||||
|
speakup load
|
||||||
|
|
||||||
|
Alternatively, you can add the above line to your file
|
||||||
|
~/.bashrc or ~/.bash_profile.
|
||||||
|
|
||||||
|
If your system administrator ran himself the script, all the users will be able
|
||||||
|
to change from English to the language choosed by root and do directly
|
||||||
|
speakupconf load (or add this to the ~/.bashrc or
|
||||||
|
~/.bash_profile file). If there are several languages to handle, the
|
||||||
|
administrator (or every user) will have to run the first steps until speakupconf
|
||||||
|
save, choosing the appropriate language, in every user's home directory. Every
|
||||||
|
user will then be able to do speakupconf load, Speakup will load his own settings.
|
||||||
|
|
||||||
14.3. No Support for Non-Western-European Languages
|
14.3. No Support for Non-Western-European Languages
|
||||||
|
|
||||||
|
|||||||
@@ -70,8 +70,8 @@ trampoline code on the vDSO, that trampoline is never intercepted.
|
|||||||
[selector] is a pointer to a char-sized region in the process memory
|
[selector] is a pointer to a char-sized region in the process memory
|
||||||
region, that provides a quick way to enable disable syscall redirection
|
region, that provides a quick way to enable disable syscall redirection
|
||||||
thread-wide, without the need to invoke the kernel directly. selector
|
thread-wide, without the need to invoke the kernel directly. selector
|
||||||
can be set to PR_SYS_DISPATCH_ON or PR_SYS_DISPATCH_OFF. Any other
|
can be set to SYSCALL_DISPATCH_FILTER_ALLOW or SYSCALL_DISPATCH_FILTER_BLOCK.
|
||||||
value should terminate the program with a SIGSYS.
|
Any other value should terminate the program with a SIGSYS.
|
||||||
|
|
||||||
Security Notes
|
Security Notes
|
||||||
--------------
|
--------------
|
||||||
|
|||||||
@@ -380,5 +380,5 @@ This configuration option sets the maximum number of "watches" that are
|
|||||||
allowed for each user.
|
allowed for each user.
|
||||||
Each "watch" costs roughly 90 bytes on a 32bit kernel, and roughly 160 bytes
|
Each "watch" costs roughly 90 bytes on a 32bit kernel, and roughly 160 bytes
|
||||||
on a 64bit one.
|
on a 64bit one.
|
||||||
The current default value for max_user_watches is the 1/32 of the available
|
The current default value for max_user_watches is the 1/25 (4%) of the
|
||||||
low memory, divided for the "watch" cost in bytes.
|
available low memory, divided for the "watch" cost in bytes.
|
||||||
|
|||||||
@@ -983,11 +983,11 @@ that benefit from having their data cached, zone_reclaim_mode should be
|
|||||||
left disabled as the caching effect is likely to be more important than
|
left disabled as the caching effect is likely to be more important than
|
||||||
data locality.
|
data locality.
|
||||||
|
|
||||||
zone_reclaim may be enabled if it's known that the workload is partitioned
|
Consider enabling one or more zone_reclaim mode bits if it's known that the
|
||||||
such that each partition fits within a NUMA node and that accessing remote
|
workload is partitioned such that each partition fits within a NUMA node
|
||||||
memory would cause a measurable performance reduction. The page allocator
|
and that accessing remote memory would cause a measurable performance
|
||||||
will then reclaim easily reusable pages (those page cache pages that are
|
reduction. The page allocator will take additional actions before
|
||||||
currently not used) before allocating off node pages.
|
allocating off node pages.
|
||||||
|
|
||||||
Allowing zone reclaim to write out pages stops processes that are
|
Allowing zone reclaim to write out pages stops processes that are
|
||||||
writing large amounts of data from dirtying pages on other nodes. Zone
|
writing large amounts of data from dirtying pages on other nodes. Zone
|
||||||
|
|||||||
@@ -47,6 +47,9 @@ be DMA masters and thus read contents of the host memory without CPU and OS
|
|||||||
knowing about it. There are ways to prevent this by setting up an IOMMU but
|
knowing about it. There are ways to prevent this by setting up an IOMMU but
|
||||||
it is not always available for various reasons.
|
it is not always available for various reasons.
|
||||||
|
|
||||||
|
Some USB4 systems have a BIOS setting to disable PCIe tunneling. This is
|
||||||
|
treated as another security level (nopcie).
|
||||||
|
|
||||||
The security levels are as follows:
|
The security levels are as follows:
|
||||||
|
|
||||||
none
|
none
|
||||||
@@ -77,6 +80,10 @@ The security levels are as follows:
|
|||||||
Display Port in a dock. All PCIe links downstream of the dock are
|
Display Port in a dock. All PCIe links downstream of the dock are
|
||||||
removed.
|
removed.
|
||||||
|
|
||||||
|
nopcie
|
||||||
|
PCIe tunneling is disabled/forbidden from the BIOS. Available in some
|
||||||
|
USB4 systems.
|
||||||
|
|
||||||
The current security level can be read from
|
The current security level can be read from
|
||||||
``/sys/bus/thunderbolt/devices/domainX/security`` where ``domainX`` is
|
``/sys/bus/thunderbolt/devices/domainX/security`` where ``domainX`` is
|
||||||
the Thunderbolt domain the host controller manages. There is typically
|
the Thunderbolt domain the host controller manages. There is typically
|
||||||
@@ -153,6 +160,22 @@ If the user still wants to connect the device they can either approve
|
|||||||
the device without a key or write a new key and write 1 to the
|
the device without a key or write a new key and write 1 to the
|
||||||
``authorized`` file to get the new key stored on the device NVM.
|
``authorized`` file to get the new key stored on the device NVM.
|
||||||
|
|
||||||
|
De-authorizing devices
|
||||||
|
----------------------
|
||||||
|
It is possible to de-authorize devices by writing ``0`` to their
|
||||||
|
``authorized`` attribute. This requires support from the connection
|
||||||
|
manager implementation and can be checked by reading domain
|
||||||
|
``deauthorization`` attribute. If it reads ``1`` then the feature is
|
||||||
|
supported.
|
||||||
|
|
||||||
|
When a device is de-authorized the PCIe tunnel from the parent device
|
||||||
|
PCIe downstream (or root) port to the device PCIe upstream port is torn
|
||||||
|
down. This is essentially the same thing as PCIe hot-remove and the PCIe
|
||||||
|
toplogy in question will not be accessible anymore until the device is
|
||||||
|
authorized again. If there is storage such as NVMe or similar involved,
|
||||||
|
there is a risk for data loss if the filesystem on that storage is not
|
||||||
|
properly shut down. You have been warned!
|
||||||
|
|
||||||
DMA protection utilizing IOMMU
|
DMA protection utilizing IOMMU
|
||||||
------------------------------
|
------------------------------
|
||||||
Recent systems from 2018 and forward with Thunderbolt ports may natively
|
Recent systems from 2018 and forward with Thunderbolt ports may natively
|
||||||
|
|||||||
@@ -284,6 +284,9 @@ The following sysctls are available for the XFS filesystem:
|
|||||||
removes unused preallocation from clean inodes and releases
|
removes unused preallocation from clean inodes and releases
|
||||||
the unused space back to the free pool.
|
the unused space back to the free pool.
|
||||||
|
|
||||||
|
fs.xfs.speculative_cow_prealloc_lifetime
|
||||||
|
This is an alias for speculative_prealloc_lifetime.
|
||||||
|
|
||||||
fs.xfs.error_level (Min: 0 Default: 3 Max: 11)
|
fs.xfs.error_level (Min: 0 Default: 3 Max: 11)
|
||||||
A volume knob for error reporting when internal errors occur.
|
A volume knob for error reporting when internal errors occur.
|
||||||
This will generate detailed messages & backtraces for filesystem
|
This will generate detailed messages & backtraces for filesystem
|
||||||
@@ -356,12 +359,13 @@ The following sysctls are available for the XFS filesystem:
|
|||||||
Deprecated Sysctls
|
Deprecated Sysctls
|
||||||
==================
|
==================
|
||||||
|
|
||||||
=========================== ================
|
=========================================== ================
|
||||||
Name Removal Schedule
|
Name Removal Schedule
|
||||||
=========================== ================
|
=========================================== ================
|
||||||
fs.xfs.irix_sgid_inherit September 2025
|
fs.xfs.irix_sgid_inherit September 2025
|
||||||
fs.xfs.irix_symlink_mode September 2025
|
fs.xfs.irix_symlink_mode September 2025
|
||||||
=========================== ================
|
fs.xfs.speculative_cow_prealloc_lifetime September 2025
|
||||||
|
=========================================== ================
|
||||||
|
|
||||||
|
|
||||||
Removed Sysctls
|
Removed Sysctls
|
||||||
@@ -495,3 +499,45 @@ the class and error context. For example, the default values for
|
|||||||
"metadata/ENODEV" are "0" rather than "-1" so that this error handler defaults
|
"metadata/ENODEV" are "0" rather than "-1" so that this error handler defaults
|
||||||
to "fail immediately" behaviour. This is done because ENODEV is a fatal,
|
to "fail immediately" behaviour. This is done because ENODEV is a fatal,
|
||||||
unrecoverable error no matter how many times the metadata IO is retried.
|
unrecoverable error no matter how many times the metadata IO is retried.
|
||||||
|
|
||||||
|
Workqueue Concurrency
|
||||||
|
=====================
|
||||||
|
|
||||||
|
XFS uses kernel workqueues to parallelize metadata update processes. This
|
||||||
|
enables it to take advantage of storage hardware that can service many IO
|
||||||
|
operations simultaneously. This interface exposes internal implementation
|
||||||
|
details of XFS, and as such is explicitly not part of any userspace API/ABI
|
||||||
|
guarantee the kernel may give userspace. These are undocumented features of
|
||||||
|
the generic workqueue implementation XFS uses for concurrency, and they are
|
||||||
|
provided here purely for diagnostic and tuning purposes and may change at any
|
||||||
|
time in the future.
|
||||||
|
|
||||||
|
The control knobs for a filesystem's workqueues are organized by task at hand
|
||||||
|
and the short name of the data device. They all can be found in:
|
||||||
|
|
||||||
|
/sys/bus/workqueue/devices/${task}!${device}
|
||||||
|
|
||||||
|
================ ===========
|
||||||
|
Task Description
|
||||||
|
================ ===========
|
||||||
|
xfs_iwalk-$pid Inode scans of the entire filesystem. Currently limited to
|
||||||
|
mount time quotacheck.
|
||||||
|
xfs-blockgc Background garbage collection of disk space that have been
|
||||||
|
speculatively allocated beyond EOF or for staging copy on
|
||||||
|
write operations.
|
||||||
|
================ ===========
|
||||||
|
|
||||||
|
For example, the knobs for the quotacheck workqueue for /dev/nvme0n1 would be
|
||||||
|
found in /sys/bus/workqueue/devices/xfs_iwalk-1111!nvme0n1/.
|
||||||
|
|
||||||
|
The interesting knobs for XFS workqueues are as follows:
|
||||||
|
|
||||||
|
============ ===========
|
||||||
|
Knob Description
|
||||||
|
============ ===========
|
||||||
|
max_active Maximum number of background threads that can be started to
|
||||||
|
run the work.
|
||||||
|
cpumask CPUs upon which the threads are allowed to run.
|
||||||
|
nice Relative priority of scheduling the threads. These are the
|
||||||
|
same nice levels that can be applied to userspace processes.
|
||||||
|
============ ===========
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ it. The recommended placement is in the first 16KiB of RAM.
|
|||||||
|
|
||||||
The boot loader must load a device tree image (dtb) into system ram
|
The boot loader must load a device tree image (dtb) into system ram
|
||||||
at a 64bit aligned address and initialize it with the boot data. The
|
at a 64bit aligned address and initialize it with the boot data. The
|
||||||
dtb format is documented in Documentation/devicetree/booting-without-of.rst.
|
dtb format is documented at https://www.devicetree.org/specifications/.
|
||||||
The kernel will look for the dtb magic value of 0xd00dfeed at the dtb
|
The kernel will look for the dtb magic value of 0xd00dfeed at the dtb
|
||||||
physical address to determine if a dtb has been passed instead of a
|
physical address to determine if a dtb has been passed instead of a
|
||||||
tagged list.
|
tagged list.
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ SoC-specific documents
|
|||||||
|
|
||||||
ixp4xx
|
ixp4xx
|
||||||
|
|
||||||
marvel
|
marvell
|
||||||
microchip
|
microchip
|
||||||
|
|
||||||
netwinder
|
netwinder
|
||||||
|
|||||||
@@ -1,488 +0,0 @@
|
|||||||
================
|
|
||||||
ARM Marvell SoCs
|
|
||||||
================
|
|
||||||
|
|
||||||
This document lists all the ARM Marvell SoCs that are currently
|
|
||||||
supported in mainline by the Linux kernel. As the Marvell families of
|
|
||||||
SoCs are large and complex, it is hard to understand where the support
|
|
||||||
for a particular SoC is available in the Linux kernel. This document
|
|
||||||
tries to help in understanding where those SoCs are supported, and to
|
|
||||||
match them with their corresponding public datasheet, when available.
|
|
||||||
|
|
||||||
Orion family
|
|
||||||
------------
|
|
||||||
|
|
||||||
Flavors:
|
|
||||||
- 88F5082
|
|
||||||
- 88F5181
|
|
||||||
- 88F5181L
|
|
||||||
- 88F5182
|
|
||||||
|
|
||||||
- Datasheet: http://www.embeddedarm.com/documentation/third-party/MV88F5182-datasheet.pdf
|
|
||||||
- Programmer's User Guide: http://www.embeddedarm.com/documentation/third-party/MV88F5182-opensource-manual.pdf
|
|
||||||
- User Manual: http://www.embeddedarm.com/documentation/third-party/MV88F5182-usermanual.pdf
|
|
||||||
- 88F5281
|
|
||||||
|
|
||||||
- Datasheet: http://www.ocmodshop.com/images/reviews/networking/qnap_ts409u/marvel_88f5281_data_sheet.pdf
|
|
||||||
- 88F6183
|
|
||||||
Core:
|
|
||||||
Feroceon 88fr331 (88f51xx) or 88fr531-vd (88f52xx) ARMv5 compatible
|
|
||||||
Linux kernel mach directory:
|
|
||||||
arch/arm/mach-orion5x
|
|
||||||
Linux kernel plat directory:
|
|
||||||
arch/arm/plat-orion
|
|
||||||
|
|
||||||
Kirkwood family
|
|
||||||
---------------
|
|
||||||
|
|
||||||
Flavors:
|
|
||||||
- 88F6282 a.k.a Armada 300
|
|
||||||
|
|
||||||
- Product Brief : http://www.marvell.com/embedded-processors/armada-300/assets/armada_310.pdf
|
|
||||||
- 88F6283 a.k.a Armada 310
|
|
||||||
|
|
||||||
- Product Brief : http://www.marvell.com/embedded-processors/armada-300/assets/armada_310.pdf
|
|
||||||
- 88F6190
|
|
||||||
|
|
||||||
- Product Brief : http://www.marvell.com/embedded-processors/kirkwood/assets/88F6190-003_WEB.pdf
|
|
||||||
- Hardware Spec : http://www.marvell.com/embedded-processors/kirkwood/assets/HW_88F619x_OpenSource.pdf
|
|
||||||
- Functional Spec: http://www.marvell.com/embedded-processors/kirkwood/assets/FS_88F6180_9x_6281_OpenSource.pdf
|
|
||||||
- 88F6192
|
|
||||||
|
|
||||||
- Product Brief : http://www.marvell.com/embedded-processors/kirkwood/assets/88F6192-003_ver1.pdf
|
|
||||||
- Hardware Spec : http://www.marvell.com/embedded-processors/kirkwood/assets/HW_88F619x_OpenSource.pdf
|
|
||||||
- Functional Spec: http://www.marvell.com/embedded-processors/kirkwood/assets/FS_88F6180_9x_6281_OpenSource.pdf
|
|
||||||
- 88F6182
|
|
||||||
- 88F6180
|
|
||||||
|
|
||||||
- Product Brief : http://www.marvell.com/embedded-processors/kirkwood/assets/88F6180-003_ver1.pdf
|
|
||||||
- Hardware Spec : http://www.marvell.com/embedded-processors/kirkwood/assets/HW_88F6180_OpenSource.pdf
|
|
||||||
- Functional Spec: http://www.marvell.com/embedded-processors/kirkwood/assets/FS_88F6180_9x_6281_OpenSource.pdf
|
|
||||||
- 88F6281
|
|
||||||
|
|
||||||
- Product Brief : http://www.marvell.com/embedded-processors/kirkwood/assets/88F6281-004_ver1.pdf
|
|
||||||
- Hardware Spec : http://www.marvell.com/embedded-processors/kirkwood/assets/HW_88F6281_OpenSource.pdf
|
|
||||||
- Functional Spec: http://www.marvell.com/embedded-processors/kirkwood/assets/FS_88F6180_9x_6281_OpenSource.pdf
|
|
||||||
Homepage:
|
|
||||||
http://www.marvell.com/embedded-processors/kirkwood/
|
|
||||||
Core:
|
|
||||||
Feroceon 88fr131 ARMv5 compatible
|
|
||||||
Linux kernel mach directory:
|
|
||||||
arch/arm/mach-mvebu
|
|
||||||
Linux kernel plat directory:
|
|
||||||
none
|
|
||||||
|
|
||||||
Discovery family
|
|
||||||
----------------
|
|
||||||
|
|
||||||
Flavors:
|
|
||||||
- MV78100
|
|
||||||
|
|
||||||
- Product Brief : http://www.marvell.com/embedded-processors/discovery-innovation/assets/MV78100-003_WEB.pdf
|
|
||||||
- Hardware Spec : http://www.marvell.com/embedded-processors/discovery-innovation/assets/HW_MV78100_OpenSource.pdf
|
|
||||||
- Functional Spec: http://www.marvell.com/embedded-processors/discovery-innovation/assets/FS_MV76100_78100_78200_OpenSource.pdf
|
|
||||||
- MV78200
|
|
||||||
|
|
||||||
- Product Brief : http://www.marvell.com/embedded-processors/discovery-innovation/assets/MV78200-002_WEB.pdf
|
|
||||||
- Hardware Spec : http://www.marvell.com/embedded-processors/discovery-innovation/assets/HW_MV78200_OpenSource.pdf
|
|
||||||
- Functional Spec: http://www.marvell.com/embedded-processors/discovery-innovation/assets/FS_MV76100_78100_78200_OpenSource.pdf
|
|
||||||
- MV76100
|
|
||||||
|
|
||||||
Not supported by the Linux kernel.
|
|
||||||
|
|
||||||
Core:
|
|
||||||
Feroceon 88fr571-vd ARMv5 compatible
|
|
||||||
|
|
||||||
Linux kernel mach directory:
|
|
||||||
arch/arm/mach-mv78xx0
|
|
||||||
Linux kernel plat directory:
|
|
||||||
arch/arm/plat-orion
|
|
||||||
|
|
||||||
EBU Armada family
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
Armada 370 Flavors:
|
|
||||||
- 88F6710
|
|
||||||
- 88F6707
|
|
||||||
- 88F6W11
|
|
||||||
|
|
||||||
- Product Brief: http://www.marvell.com/embedded-processors/armada-300/assets/Marvell_ARMADA_370_SoC.pdf
|
|
||||||
- Hardware Spec: http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA370-datasheet.pdf
|
|
||||||
- Functional Spec: http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA370-FunctionalSpec-datasheet.pdf
|
|
||||||
|
|
||||||
Core:
|
|
||||||
Sheeva ARMv7 compatible PJ4B
|
|
||||||
|
|
||||||
Armada 375 Flavors:
|
|
||||||
- 88F6720
|
|
||||||
|
|
||||||
- Product Brief: http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA_375_SoC-01_product_brief.pdf
|
|
||||||
|
|
||||||
Core:
|
|
||||||
ARM Cortex-A9
|
|
||||||
|
|
||||||
Armada 38x Flavors:
|
|
||||||
- 88F6810 Armada 380
|
|
||||||
- 88F6820 Armada 385
|
|
||||||
- 88F6828 Armada 388
|
|
||||||
|
|
||||||
- Product infos: http://www.marvell.com/embedded-processors/armada-38x/
|
|
||||||
- Functional Spec: https://marvellcorp.wufoo.com/forms/marvell-armada-38x-functional-specifications/
|
|
||||||
|
|
||||||
Core:
|
|
||||||
ARM Cortex-A9
|
|
||||||
|
|
||||||
Armada 39x Flavors:
|
|
||||||
- 88F6920 Armada 390
|
|
||||||
- 88F6928 Armada 398
|
|
||||||
|
|
||||||
- Product infos: http://www.marvell.com/embedded-processors/armada-39x/
|
|
||||||
|
|
||||||
Core:
|
|
||||||
ARM Cortex-A9
|
|
||||||
|
|
||||||
Armada XP Flavors:
|
|
||||||
- MV78230
|
|
||||||
- MV78260
|
|
||||||
- MV78460
|
|
||||||
|
|
||||||
NOTE:
|
|
||||||
not to be confused with the non-SMP 78xx0 SoCs
|
|
||||||
|
|
||||||
Product Brief:
|
|
||||||
http://www.marvell.com/embedded-processors/armada-xp/assets/Marvell-ArmadaXP-SoC-product%20brief.pdf
|
|
||||||
|
|
||||||
Functional Spec:
|
|
||||||
http://www.marvell.com/embedded-processors/armada-xp/assets/ARMADA-XP-Functional-SpecDatasheet.pdf
|
|
||||||
|
|
||||||
- Hardware Specs:
|
|
||||||
|
|
||||||
- http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78230_OS.PDF
|
|
||||||
- http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78260_OS.PDF
|
|
||||||
- http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78460_OS.PDF
|
|
||||||
|
|
||||||
Core:
|
|
||||||
Sheeva ARMv7 compatible Dual-core or Quad-core PJ4B-MP
|
|
||||||
|
|
||||||
Linux kernel mach directory:
|
|
||||||
arch/arm/mach-mvebu
|
|
||||||
Linux kernel plat directory:
|
|
||||||
none
|
|
||||||
|
|
||||||
EBU Armada family ARMv8
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
Armada 3710/3720 Flavors:
|
|
||||||
- 88F3710
|
|
||||||
- 88F3720
|
|
||||||
|
|
||||||
Core:
|
|
||||||
ARM Cortex A53 (ARMv8)
|
|
||||||
|
|
||||||
Homepage:
|
|
||||||
http://www.marvell.com/embedded-processors/armada-3700/
|
|
||||||
|
|
||||||
Product Brief:
|
|
||||||
http://www.marvell.com/embedded-processors/assets/PB-88F3700-FNL.pdf
|
|
||||||
|
|
||||||
Device tree files:
|
|
||||||
arch/arm64/boot/dts/marvell/armada-37*
|
|
||||||
|
|
||||||
Armada 7K Flavors:
|
|
||||||
- 88F7020 (AP806 Dual + one CP110)
|
|
||||||
- 88F7040 (AP806 Quad + one CP110)
|
|
||||||
|
|
||||||
Core: ARM Cortex A72
|
|
||||||
|
|
||||||
Homepage:
|
|
||||||
http://www.marvell.com/embedded-processors/armada-70xx/
|
|
||||||
|
|
||||||
Product Brief:
|
|
||||||
- http://www.marvell.com/embedded-processors/assets/Armada7020PB-Jan2016.pdf
|
|
||||||
- http://www.marvell.com/embedded-processors/assets/Armada7040PB-Jan2016.pdf
|
|
||||||
|
|
||||||
Device tree files:
|
|
||||||
arch/arm64/boot/dts/marvell/armada-70*
|
|
||||||
|
|
||||||
Armada 8K Flavors:
|
|
||||||
- 88F8020 (AP806 Dual + two CP110)
|
|
||||||
- 88F8040 (AP806 Quad + two CP110)
|
|
||||||
Core:
|
|
||||||
ARM Cortex A72
|
|
||||||
|
|
||||||
Homepage:
|
|
||||||
http://www.marvell.com/embedded-processors/armada-80xx/
|
|
||||||
|
|
||||||
Product Brief:
|
|
||||||
- http://www.marvell.com/embedded-processors/assets/Armada8020PB-Jan2016.pdf
|
|
||||||
- http://www.marvell.com/embedded-processors/assets/Armada8040PB-Jan2016.pdf
|
|
||||||
|
|
||||||
Device tree files:
|
|
||||||
arch/arm64/boot/dts/marvell/armada-80*
|
|
||||||
|
|
||||||
Avanta family
|
|
||||||
-------------
|
|
||||||
|
|
||||||
Flavors:
|
|
||||||
- 88F6510
|
|
||||||
- 88F6530P
|
|
||||||
- 88F6550
|
|
||||||
- 88F6560
|
|
||||||
|
|
||||||
Homepage:
|
|
||||||
http://www.marvell.com/broadband/
|
|
||||||
|
|
||||||
Product Brief:
|
|
||||||
http://www.marvell.com/broadband/assets/Marvell_Avanta_88F6510_305_060-001_product_brief.pdf
|
|
||||||
|
|
||||||
No public datasheet available.
|
|
||||||
|
|
||||||
Core:
|
|
||||||
ARMv5 compatible
|
|
||||||
|
|
||||||
Linux kernel mach directory:
|
|
||||||
no code in mainline yet, planned for the future
|
|
||||||
Linux kernel plat directory:
|
|
||||||
no code in mainline yet, planned for the future
|
|
||||||
|
|
||||||
Storage family
|
|
||||||
--------------
|
|
||||||
|
|
||||||
Armada SP:
|
|
||||||
- 88RC1580
|
|
||||||
|
|
||||||
Product infos:
|
|
||||||
http://www.marvell.com/storage/armada-sp/
|
|
||||||
|
|
||||||
Core:
|
|
||||||
Sheeva ARMv7 comatible Quad-core PJ4C
|
|
||||||
|
|
||||||
(not supported in upstream Linux kernel)
|
|
||||||
|
|
||||||
Dove family (application processor)
|
|
||||||
-----------------------------------
|
|
||||||
|
|
||||||
Flavors:
|
|
||||||
- 88AP510 a.k.a Armada 510
|
|
||||||
|
|
||||||
Product Brief:
|
|
||||||
http://www.marvell.com/application-processors/armada-500/assets/Marvell_Armada510_SoC.pdf
|
|
||||||
|
|
||||||
Hardware Spec:
|
|
||||||
http://www.marvell.com/application-processors/armada-500/assets/Armada-510-Hardware-Spec.pdf
|
|
||||||
|
|
||||||
Functional Spec:
|
|
||||||
http://www.marvell.com/application-processors/armada-500/assets/Armada-510-Functional-Spec.pdf
|
|
||||||
|
|
||||||
Homepage:
|
|
||||||
http://www.marvell.com/application-processors/armada-500/
|
|
||||||
|
|
||||||
Core:
|
|
||||||
ARMv7 compatible
|
|
||||||
|
|
||||||
Directory:
|
|
||||||
- arch/arm/mach-mvebu (DT enabled platforms)
|
|
||||||
- arch/arm/mach-dove (non-DT enabled platforms)
|
|
||||||
|
|
||||||
PXA 2xx/3xx/93x/95x family
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
Flavors:
|
|
||||||
- PXA21x, PXA25x, PXA26x
|
|
||||||
- Application processor only
|
|
||||||
- Core: ARMv5 XScale1 core
|
|
||||||
- PXA270, PXA271, PXA272
|
|
||||||
- Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_pb.pdf
|
|
||||||
- Design guide : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_design_guide.pdf
|
|
||||||
- Developers manual : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_dev_man.pdf
|
|
||||||
- Specification : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_emts.pdf
|
|
||||||
- Specification update : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_spec_update.pdf
|
|
||||||
- Application processor only
|
|
||||||
- Core: ARMv5 XScale2 core
|
|
||||||
- PXA300, PXA310, PXA320
|
|
||||||
- PXA 300 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/PXA300_PB_R4.pdf
|
|
||||||
- PXA 310 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/PXA310_PB_R4.pdf
|
|
||||||
- PXA 320 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/PXA320_PB_R4.pdf
|
|
||||||
- Design guide : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_Design_Guide.pdf
|
|
||||||
- Developers manual : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_Developers_Manual.zip
|
|
||||||
- Specifications : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_EMTS.pdf
|
|
||||||
- Specification Update : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_Spec_Update.zip
|
|
||||||
- Reference Manual : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_TavorP_BootROM_Ref_Manual.pdf
|
|
||||||
- Application processor only
|
|
||||||
- Core: ARMv5 XScale3 core
|
|
||||||
- PXA930, PXA935
|
|
||||||
- Application processor with Communication processor
|
|
||||||
- Core: ARMv5 XScale3 core
|
|
||||||
- PXA955
|
|
||||||
- Application processor with Communication processor
|
|
||||||
- Core: ARMv7 compatible Sheeva PJ4 core
|
|
||||||
|
|
||||||
Comments:
|
|
||||||
|
|
||||||
* This line of SoCs originates from the XScale family developed by
|
|
||||||
Intel and acquired by Marvell in ~2006. The PXA21x, PXA25x,
|
|
||||||
PXA26x, PXA27x, PXA3xx and PXA93x were developed by Intel, while
|
|
||||||
the later PXA95x were developed by Marvell.
|
|
||||||
|
|
||||||
* Due to their XScale origin, these SoCs have virtually nothing in
|
|
||||||
common with the other (Kirkwood, Dove, etc.) families of Marvell
|
|
||||||
SoCs, except with the MMP/MMP2 family of SoCs.
|
|
||||||
|
|
||||||
Linux kernel mach directory:
|
|
||||||
arch/arm/mach-pxa
|
|
||||||
Linux kernel plat directory:
|
|
||||||
arch/arm/plat-pxa
|
|
||||||
|
|
||||||
MMP/MMP2/MMP3 family (communication processor)
|
|
||||||
----------------------------------------------
|
|
||||||
|
|
||||||
Flavors:
|
|
||||||
- PXA168, a.k.a Armada 168
|
|
||||||
- Homepage : http://www.marvell.com/application-processors/armada-100/armada-168.jsp
|
|
||||||
- Product brief : http://www.marvell.com/application-processors/armada-100/assets/pxa_168_pb.pdf
|
|
||||||
- Hardware manual : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_datasheet.pdf
|
|
||||||
- Software manual : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_software_manual.pdf
|
|
||||||
- Specification update : http://www.marvell.com/application-processors/armada-100/assets/ARMADA16x_Spec_update.pdf
|
|
||||||
- Boot ROM manual : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_ref_manual.pdf
|
|
||||||
- App node package : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_app_note_package.pdf
|
|
||||||
- Application processor only
|
|
||||||
- Core: ARMv5 compatible Marvell PJ1 88sv331 (Mohawk)
|
|
||||||
- PXA910/PXA920
|
|
||||||
- Homepage : http://www.marvell.com/communication-processors/pxa910/
|
|
||||||
- Product Brief : http://www.marvell.com/communication-processors/pxa910/assets/Marvell_PXA910_Platform-001_PB_final.pdf
|
|
||||||
- Application processor with Communication processor
|
|
||||||
- Core: ARMv5 compatible Marvell PJ1 88sv331 (Mohawk)
|
|
||||||
- PXA688, a.k.a. MMP2, a.k.a Armada 610
|
|
||||||
- Product Brief : http://www.marvell.com/application-processors/armada-600/assets/armada610_pb.pdf
|
|
||||||
- Application processor only
|
|
||||||
- Core: ARMv7 compatible Sheeva PJ4 88sv581x core
|
|
||||||
- PXA2128, a.k.a. MMP3 (OLPC XO4, Linux support not upstream)
|
|
||||||
- Product Brief : http://www.marvell.com/application-processors/armada/pxa2128/assets/Marvell-ARMADA-PXA2128-SoC-PB.pdf
|
|
||||||
- Application processor only
|
|
||||||
- Core: Dual-core ARMv7 compatible Sheeva PJ4C core
|
|
||||||
- PXA960/PXA968/PXA978 (Linux support not upstream)
|
|
||||||
- Application processor with Communication Processor
|
|
||||||
- Core: ARMv7 compatible Sheeva PJ4 core
|
|
||||||
- PXA986/PXA988 (Linux support not upstream)
|
|
||||||
- Application processor with Communication Processor
|
|
||||||
- Core: Dual-core ARMv7 compatible Sheeva PJ4B-MP core
|
|
||||||
- PXA1088/PXA1920 (Linux support not upstream)
|
|
||||||
- Application processor with Communication Processor
|
|
||||||
- Core: quad-core ARMv7 Cortex-A7
|
|
||||||
- PXA1908/PXA1928/PXA1936
|
|
||||||
- Application processor with Communication Processor
|
|
||||||
- Core: multi-core ARMv8 Cortex-A53
|
|
||||||
|
|
||||||
Comments:
|
|
||||||
|
|
||||||
* This line of SoCs originates from the XScale family developed by
|
|
||||||
Intel and acquired by Marvell in ~2006. All the processors of
|
|
||||||
this MMP/MMP2 family were developed by Marvell.
|
|
||||||
|
|
||||||
* Due to their XScale origin, these SoCs have virtually nothing in
|
|
||||||
common with the other (Kirkwood, Dove, etc.) families of Marvell
|
|
||||||
SoCs, except with the PXA family of SoCs listed above.
|
|
||||||
|
|
||||||
Linux kernel mach directory:
|
|
||||||
arch/arm/mach-mmp
|
|
||||||
Linux kernel plat directory:
|
|
||||||
arch/arm/plat-pxa
|
|
||||||
|
|
||||||
Berlin family (Multimedia Solutions)
|
|
||||||
-------------------------------------
|
|
||||||
|
|
||||||
- Flavors:
|
|
||||||
- 88DE3010, Armada 1000 (no Linux support)
|
|
||||||
- Core: Marvell PJ1 (ARMv5TE), Dual-core
|
|
||||||
- Product Brief: http://www.marvell.com.cn/digital-entertainment/assets/armada_1000_pb.pdf
|
|
||||||
- 88DE3005, Armada 1500 Mini
|
|
||||||
- Design name: BG2CD
|
|
||||||
- Core: ARM Cortex-A9, PL310 L2CC
|
|
||||||
- 88DE3006, Armada 1500 Mini Plus
|
|
||||||
- Design name: BG2CDP
|
|
||||||
- Core: Dual Core ARM Cortex-A7
|
|
||||||
- 88DE3100, Armada 1500
|
|
||||||
- Design name: BG2
|
|
||||||
- Core: Marvell PJ4B-MP (ARMv7), Tauros3 L2CC
|
|
||||||
- 88DE3114, Armada 1500 Pro
|
|
||||||
- Design name: BG2Q
|
|
||||||
- Core: Quad Core ARM Cortex-A9, PL310 L2CC
|
|
||||||
- 88DE3214, Armada 1500 Pro 4K
|
|
||||||
- Design name: BG3
|
|
||||||
- Core: ARM Cortex-A15, CA15 integrated L2CC
|
|
||||||
- 88DE3218, ARMADA 1500 Ultra
|
|
||||||
- Core: ARM Cortex-A53
|
|
||||||
|
|
||||||
Homepage: https://www.synaptics.com/products/multimedia-solutions
|
|
||||||
Directory: arch/arm/mach-berlin
|
|
||||||
|
|
||||||
Comments:
|
|
||||||
|
|
||||||
* This line of SoCs is based on Marvell Sheeva or ARM Cortex CPUs
|
|
||||||
with Synopsys DesignWare (IRQ, GPIO, Timers, ...) and PXA IP (SDHCI, USB, ETH, ...).
|
|
||||||
|
|
||||||
* The Berlin family was acquired by Synaptics from Marvell in 2017.
|
|
||||||
|
|
||||||
CPU Cores
|
|
||||||
---------
|
|
||||||
|
|
||||||
The XScale cores were designed by Intel, and shipped by Marvell in the older
|
|
||||||
PXA processors. Feroceon is a Marvell designed core that developed in-house,
|
|
||||||
and that evolved into Sheeva. The XScale and Feroceon cores were phased out
|
|
||||||
over time and replaced with Sheeva cores in later products, which subsequently
|
|
||||||
got replaced with licensed ARM Cortex-A cores.
|
|
||||||
|
|
||||||
XScale 1
|
|
||||||
CPUID 0x69052xxx
|
|
||||||
ARMv5, iWMMXt
|
|
||||||
XScale 2
|
|
||||||
CPUID 0x69054xxx
|
|
||||||
ARMv5, iWMMXt
|
|
||||||
XScale 3
|
|
||||||
CPUID 0x69056xxx or 0x69056xxx
|
|
||||||
ARMv5, iWMMXt
|
|
||||||
Feroceon-1850 88fr331 "Mohawk"
|
|
||||||
CPUID 0x5615331x or 0x41xx926x
|
|
||||||
ARMv5TE, single issue
|
|
||||||
Feroceon-2850 88fr531-vd "Jolteon"
|
|
||||||
CPUID 0x5605531x or 0x41xx926x
|
|
||||||
ARMv5TE, VFP, dual-issue
|
|
||||||
Feroceon 88fr571-vd "Jolteon"
|
|
||||||
CPUID 0x5615571x
|
|
||||||
ARMv5TE, VFP, dual-issue
|
|
||||||
Feroceon 88fr131 "Mohawk-D"
|
|
||||||
CPUID 0x5625131x
|
|
||||||
ARMv5TE, single-issue in-order
|
|
||||||
Sheeva PJ1 88sv331 "Mohawk"
|
|
||||||
CPUID 0x561584xx
|
|
||||||
ARMv5, single-issue iWMMXt v2
|
|
||||||
Sheeva PJ4 88sv581x "Flareon"
|
|
||||||
CPUID 0x560f581x
|
|
||||||
ARMv7, idivt, optional iWMMXt v2
|
|
||||||
Sheeva PJ4B 88sv581x
|
|
||||||
CPUID 0x561f581x
|
|
||||||
ARMv7, idivt, optional iWMMXt v2
|
|
||||||
Sheeva PJ4B-MP / PJ4C
|
|
||||||
CPUID 0x562f584x
|
|
||||||
ARMv7, idivt/idiva, LPAE, optional iWMMXt v2 and/or NEON
|
|
||||||
|
|
||||||
Long-term plans
|
|
||||||
---------------
|
|
||||||
|
|
||||||
* Unify the mach-dove/, mach-mv78xx0/, mach-orion5x/ into the
|
|
||||||
mach-mvebu/ to support all SoCs from the Marvell EBU (Engineering
|
|
||||||
Business Unit) in a single mach-<foo> directory. The plat-orion/
|
|
||||||
would therefore disappear.
|
|
||||||
|
|
||||||
* Unify the mach-mmp/ and mach-pxa/ into the same mach-pxa
|
|
||||||
directory. The plat-pxa/ would therefore disappear.
|
|
||||||
|
|
||||||
Credits
|
|
||||||
-------
|
|
||||||
|
|
||||||
- Maen Suleiman <maen@marvell.com>
|
|
||||||
- Lior Amsalem <alior@marvell.com>
|
|
||||||
- Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|
||||||
- Andrew Lunn <andrew@lunn.ch>
|
|
||||||
- Nicolas Pitre <nico@fluxnic.net>
|
|
||||||
- Eric Miao <eric.y.miao@gmail.com>
|
|
||||||
491
Documentation/arm/marvell.rst
Normal file
491
Documentation/arm/marvell.rst
Normal file
@@ -0,0 +1,491 @@
|
|||||||
|
================
|
||||||
|
ARM Marvell SoCs
|
||||||
|
================
|
||||||
|
|
||||||
|
This document lists all the ARM Marvell SoCs that are currently
|
||||||
|
supported in mainline by the Linux kernel. As the Marvell families of
|
||||||
|
SoCs are large and complex, it is hard to understand where the support
|
||||||
|
for a particular SoC is available in the Linux kernel. This document
|
||||||
|
tries to help in understanding where those SoCs are supported, and to
|
||||||
|
match them with their corresponding public datasheet, when available.
|
||||||
|
|
||||||
|
Orion family
|
||||||
|
------------
|
||||||
|
|
||||||
|
Flavors:
|
||||||
|
- 88F5082
|
||||||
|
- 88F5181
|
||||||
|
- 88F5181L
|
||||||
|
- 88F5182
|
||||||
|
|
||||||
|
- Datasheet: http://www.embeddedarm.com/documentation/third-party/MV88F5182-datasheet.pdf
|
||||||
|
- Programmer's User Guide: http://www.embeddedarm.com/documentation/third-party/MV88F5182-opensource-manual.pdf
|
||||||
|
- User Manual: http://www.embeddedarm.com/documentation/third-party/MV88F5182-usermanual.pdf
|
||||||
|
- 88F5281
|
||||||
|
|
||||||
|
- Datasheet: http://www.ocmodshop.com/images/reviews/networking/qnap_ts409u/marvel_88f5281_data_sheet.pdf
|
||||||
|
- 88F6183
|
||||||
|
Core:
|
||||||
|
Feroceon 88fr331 (88f51xx) or 88fr531-vd (88f52xx) ARMv5 compatible
|
||||||
|
Linux kernel mach directory:
|
||||||
|
arch/arm/mach-orion5x
|
||||||
|
Linux kernel plat directory:
|
||||||
|
arch/arm/plat-orion
|
||||||
|
|
||||||
|
Kirkwood family
|
||||||
|
---------------
|
||||||
|
|
||||||
|
Flavors:
|
||||||
|
- 88F6282 a.k.a Armada 300
|
||||||
|
|
||||||
|
- Product Brief : http://www.marvell.com/embedded-processors/armada-300/assets/armada_310.pdf
|
||||||
|
- 88F6283 a.k.a Armada 310
|
||||||
|
|
||||||
|
- Product Brief : http://www.marvell.com/embedded-processors/armada-300/assets/armada_310.pdf
|
||||||
|
- 88F6190
|
||||||
|
|
||||||
|
- Product Brief : http://www.marvell.com/embedded-processors/kirkwood/assets/88F6190-003_WEB.pdf
|
||||||
|
- Hardware Spec : http://www.marvell.com/embedded-processors/kirkwood/assets/HW_88F619x_OpenSource.pdf
|
||||||
|
- Functional Spec: http://www.marvell.com/embedded-processors/kirkwood/assets/FS_88F6180_9x_6281_OpenSource.pdf
|
||||||
|
- 88F6192
|
||||||
|
|
||||||
|
- Product Brief : http://www.marvell.com/embedded-processors/kirkwood/assets/88F6192-003_ver1.pdf
|
||||||
|
- Hardware Spec : http://www.marvell.com/embedded-processors/kirkwood/assets/HW_88F619x_OpenSource.pdf
|
||||||
|
- Functional Spec: http://www.marvell.com/embedded-processors/kirkwood/assets/FS_88F6180_9x_6281_OpenSource.pdf
|
||||||
|
- 88F6182
|
||||||
|
- 88F6180
|
||||||
|
|
||||||
|
- Product Brief : http://www.marvell.com/embedded-processors/kirkwood/assets/88F6180-003_ver1.pdf
|
||||||
|
- Hardware Spec : http://www.marvell.com/embedded-processors/kirkwood/assets/HW_88F6180_OpenSource.pdf
|
||||||
|
- Functional Spec: http://www.marvell.com/embedded-processors/kirkwood/assets/FS_88F6180_9x_6281_OpenSource.pdf
|
||||||
|
- 88F6281
|
||||||
|
|
||||||
|
- Product Brief : http://www.marvell.com/embedded-processors/kirkwood/assets/88F6281-004_ver1.pdf
|
||||||
|
- Hardware Spec : http://www.marvell.com/embedded-processors/kirkwood/assets/HW_88F6281_OpenSource.pdf
|
||||||
|
- Functional Spec: http://www.marvell.com/embedded-processors/kirkwood/assets/FS_88F6180_9x_6281_OpenSource.pdf
|
||||||
|
Homepage:
|
||||||
|
http://www.marvell.com/embedded-processors/kirkwood/
|
||||||
|
Core:
|
||||||
|
Feroceon 88fr131 ARMv5 compatible
|
||||||
|
Linux kernel mach directory:
|
||||||
|
arch/arm/mach-mvebu
|
||||||
|
Linux kernel plat directory:
|
||||||
|
none
|
||||||
|
|
||||||
|
Discovery family
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Flavors:
|
||||||
|
- MV78100
|
||||||
|
|
||||||
|
- Product Brief : http://www.marvell.com/embedded-processors/discovery-innovation/assets/MV78100-003_WEB.pdf
|
||||||
|
- Hardware Spec : http://www.marvell.com/embedded-processors/discovery-innovation/assets/HW_MV78100_OpenSource.pdf
|
||||||
|
- Functional Spec: http://www.marvell.com/embedded-processors/discovery-innovation/assets/FS_MV76100_78100_78200_OpenSource.pdf
|
||||||
|
- MV78200
|
||||||
|
|
||||||
|
- Product Brief : http://www.marvell.com/embedded-processors/discovery-innovation/assets/MV78200-002_WEB.pdf
|
||||||
|
- Hardware Spec : http://www.marvell.com/embedded-processors/discovery-innovation/assets/HW_MV78200_OpenSource.pdf
|
||||||
|
- Functional Spec: http://www.marvell.com/embedded-processors/discovery-innovation/assets/FS_MV76100_78100_78200_OpenSource.pdf
|
||||||
|
- MV76100
|
||||||
|
|
||||||
|
Not supported by the Linux kernel.
|
||||||
|
|
||||||
|
Core:
|
||||||
|
Feroceon 88fr571-vd ARMv5 compatible
|
||||||
|
|
||||||
|
Linux kernel mach directory:
|
||||||
|
arch/arm/mach-mv78xx0
|
||||||
|
Linux kernel plat directory:
|
||||||
|
arch/arm/plat-orion
|
||||||
|
|
||||||
|
EBU Armada family
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Armada 370 Flavors:
|
||||||
|
- 88F6710
|
||||||
|
- 88F6707
|
||||||
|
- 88F6W11
|
||||||
|
|
||||||
|
- Product Brief: http://www.marvell.com/embedded-processors/armada-300/assets/Marvell_ARMADA_370_SoC.pdf
|
||||||
|
- Hardware Spec: http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA370-datasheet.pdf
|
||||||
|
- Functional Spec: http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA370-FunctionalSpec-datasheet.pdf
|
||||||
|
|
||||||
|
Core:
|
||||||
|
Sheeva ARMv7 compatible PJ4B
|
||||||
|
|
||||||
|
Armada 375 Flavors:
|
||||||
|
- 88F6720
|
||||||
|
|
||||||
|
- Product Brief: http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA_375_SoC-01_product_brief.pdf
|
||||||
|
|
||||||
|
Core:
|
||||||
|
ARM Cortex-A9
|
||||||
|
|
||||||
|
Armada 38x Flavors:
|
||||||
|
- 88F6810 Armada 380
|
||||||
|
- 88F6820 Armada 385
|
||||||
|
- 88F6828 Armada 388
|
||||||
|
|
||||||
|
- Product infos: http://www.marvell.com/embedded-processors/armada-38x/
|
||||||
|
- Functional Spec: http://www.marvell.com/content/dam/marvell/en/public-collateral/embedded-processors/marvell-embedded-processors-armada-38x-functional-specifications-2015-11.pdf
|
||||||
|
|
||||||
|
Core:
|
||||||
|
ARM Cortex-A9
|
||||||
|
|
||||||
|
Armada 39x Flavors:
|
||||||
|
- 88F6920 Armada 390
|
||||||
|
- 88F6928 Armada 398
|
||||||
|
|
||||||
|
- Product infos: http://www.marvell.com/embedded-processors/armada-39x/
|
||||||
|
|
||||||
|
Core:
|
||||||
|
ARM Cortex-A9
|
||||||
|
|
||||||
|
Armada XP Flavors:
|
||||||
|
- MV78230
|
||||||
|
- MV78260
|
||||||
|
- MV78460
|
||||||
|
|
||||||
|
NOTE:
|
||||||
|
not to be confused with the non-SMP 78xx0 SoCs
|
||||||
|
|
||||||
|
Product Brief:
|
||||||
|
http://www.marvell.com/embedded-processors/armada-xp/assets/Marvell-ArmadaXP-SoC-product%20brief.pdf
|
||||||
|
|
||||||
|
Functional Spec:
|
||||||
|
http://www.marvell.com/embedded-processors/armada-xp/assets/ARMADA-XP-Functional-SpecDatasheet.pdf
|
||||||
|
|
||||||
|
- Hardware Specs:
|
||||||
|
|
||||||
|
- http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78230_OS.PDF
|
||||||
|
- http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78260_OS.PDF
|
||||||
|
- http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78460_OS.PDF
|
||||||
|
|
||||||
|
Core:
|
||||||
|
Sheeva ARMv7 compatible Dual-core or Quad-core PJ4B-MP
|
||||||
|
|
||||||
|
Linux kernel mach directory:
|
||||||
|
arch/arm/mach-mvebu
|
||||||
|
Linux kernel plat directory:
|
||||||
|
none
|
||||||
|
|
||||||
|
EBU Armada family ARMv8
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
Armada 3710/3720 Flavors:
|
||||||
|
- 88F3710
|
||||||
|
- 88F3720
|
||||||
|
|
||||||
|
Core:
|
||||||
|
ARM Cortex A53 (ARMv8)
|
||||||
|
|
||||||
|
Homepage:
|
||||||
|
http://www.marvell.com/embedded-processors/armada-3700/
|
||||||
|
|
||||||
|
Product Brief:
|
||||||
|
http://www.marvell.com/content/dam/marvell/en/public-collateral/embedded-processors/marvell-embedded-processors-armada-37xx-product-brief-2016-01.pdf
|
||||||
|
|
||||||
|
Hardware Spec:
|
||||||
|
http://www.marvell.com/content/dam/marvell/en/public-collateral/embedded-processors/marvell-embedded-processors-armada-37xx-hardware-specifications-2019-09.pdf
|
||||||
|
|
||||||
|
Device tree files:
|
||||||
|
arch/arm64/boot/dts/marvell/armada-37*
|
||||||
|
|
||||||
|
Armada 7K Flavors:
|
||||||
|
- 88F7020 (AP806 Dual + one CP110)
|
||||||
|
- 88F7040 (AP806 Quad + one CP110)
|
||||||
|
|
||||||
|
Core: ARM Cortex A72
|
||||||
|
|
||||||
|
Homepage:
|
||||||
|
http://www.marvell.com/embedded-processors/armada-70xx/
|
||||||
|
|
||||||
|
Product Brief:
|
||||||
|
- http://www.marvell.com/embedded-processors/assets/Armada7020PB-Jan2016.pdf
|
||||||
|
- http://www.marvell.com/embedded-processors/assets/Armada7040PB-Jan2016.pdf
|
||||||
|
|
||||||
|
Device tree files:
|
||||||
|
arch/arm64/boot/dts/marvell/armada-70*
|
||||||
|
|
||||||
|
Armada 8K Flavors:
|
||||||
|
- 88F8020 (AP806 Dual + two CP110)
|
||||||
|
- 88F8040 (AP806 Quad + two CP110)
|
||||||
|
Core:
|
||||||
|
ARM Cortex A72
|
||||||
|
|
||||||
|
Homepage:
|
||||||
|
http://www.marvell.com/embedded-processors/armada-80xx/
|
||||||
|
|
||||||
|
Product Brief:
|
||||||
|
- http://www.marvell.com/embedded-processors/assets/Armada8020PB-Jan2016.pdf
|
||||||
|
- http://www.marvell.com/embedded-processors/assets/Armada8040PB-Jan2016.pdf
|
||||||
|
|
||||||
|
Device tree files:
|
||||||
|
arch/arm64/boot/dts/marvell/armada-80*
|
||||||
|
|
||||||
|
Avanta family
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Flavors:
|
||||||
|
- 88F6510
|
||||||
|
- 88F6530P
|
||||||
|
- 88F6550
|
||||||
|
- 88F6560
|
||||||
|
|
||||||
|
Homepage:
|
||||||
|
http://www.marvell.com/broadband/
|
||||||
|
|
||||||
|
Product Brief:
|
||||||
|
http://www.marvell.com/broadband/assets/Marvell_Avanta_88F6510_305_060-001_product_brief.pdf
|
||||||
|
|
||||||
|
No public datasheet available.
|
||||||
|
|
||||||
|
Core:
|
||||||
|
ARMv5 compatible
|
||||||
|
|
||||||
|
Linux kernel mach directory:
|
||||||
|
no code in mainline yet, planned for the future
|
||||||
|
Linux kernel plat directory:
|
||||||
|
no code in mainline yet, planned for the future
|
||||||
|
|
||||||
|
Storage family
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Armada SP:
|
||||||
|
- 88RC1580
|
||||||
|
|
||||||
|
Product infos:
|
||||||
|
http://www.marvell.com/storage/armada-sp/
|
||||||
|
|
||||||
|
Core:
|
||||||
|
Sheeva ARMv7 comatible Quad-core PJ4C
|
||||||
|
|
||||||
|
(not supported in upstream Linux kernel)
|
||||||
|
|
||||||
|
Dove family (application processor)
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
Flavors:
|
||||||
|
- 88AP510 a.k.a Armada 510
|
||||||
|
|
||||||
|
Product Brief:
|
||||||
|
http://www.marvell.com/application-processors/armada-500/assets/Marvell_Armada510_SoC.pdf
|
||||||
|
|
||||||
|
Hardware Spec:
|
||||||
|
http://www.marvell.com/application-processors/armada-500/assets/Armada-510-Hardware-Spec.pdf
|
||||||
|
|
||||||
|
Functional Spec:
|
||||||
|
http://www.marvell.com/application-processors/armada-500/assets/Armada-510-Functional-Spec.pdf
|
||||||
|
|
||||||
|
Homepage:
|
||||||
|
http://www.marvell.com/application-processors/armada-500/
|
||||||
|
|
||||||
|
Core:
|
||||||
|
ARMv7 compatible
|
||||||
|
|
||||||
|
Directory:
|
||||||
|
- arch/arm/mach-mvebu (DT enabled platforms)
|
||||||
|
- arch/arm/mach-dove (non-DT enabled platforms)
|
||||||
|
|
||||||
|
PXA 2xx/3xx/93x/95x family
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
Flavors:
|
||||||
|
- PXA21x, PXA25x, PXA26x
|
||||||
|
- Application processor only
|
||||||
|
- Core: ARMv5 XScale1 core
|
||||||
|
- PXA270, PXA271, PXA272
|
||||||
|
- Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_pb.pdf
|
||||||
|
- Design guide : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_design_guide.pdf
|
||||||
|
- Developers manual : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_dev_man.pdf
|
||||||
|
- Specification : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_emts.pdf
|
||||||
|
- Specification update : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_spec_update.pdf
|
||||||
|
- Application processor only
|
||||||
|
- Core: ARMv5 XScale2 core
|
||||||
|
- PXA300, PXA310, PXA320
|
||||||
|
- PXA 300 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/PXA300_PB_R4.pdf
|
||||||
|
- PXA 310 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/PXA310_PB_R4.pdf
|
||||||
|
- PXA 320 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/PXA320_PB_R4.pdf
|
||||||
|
- Design guide : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_Design_Guide.pdf
|
||||||
|
- Developers manual : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_Developers_Manual.zip
|
||||||
|
- Specifications : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_EMTS.pdf
|
||||||
|
- Specification Update : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_Spec_Update.zip
|
||||||
|
- Reference Manual : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_TavorP_BootROM_Ref_Manual.pdf
|
||||||
|
- Application processor only
|
||||||
|
- Core: ARMv5 XScale3 core
|
||||||
|
- PXA930, PXA935
|
||||||
|
- Application processor with Communication processor
|
||||||
|
- Core: ARMv5 XScale3 core
|
||||||
|
- PXA955
|
||||||
|
- Application processor with Communication processor
|
||||||
|
- Core: ARMv7 compatible Sheeva PJ4 core
|
||||||
|
|
||||||
|
Comments:
|
||||||
|
|
||||||
|
* This line of SoCs originates from the XScale family developed by
|
||||||
|
Intel and acquired by Marvell in ~2006. The PXA21x, PXA25x,
|
||||||
|
PXA26x, PXA27x, PXA3xx and PXA93x were developed by Intel, while
|
||||||
|
the later PXA95x were developed by Marvell.
|
||||||
|
|
||||||
|
* Due to their XScale origin, these SoCs have virtually nothing in
|
||||||
|
common with the other (Kirkwood, Dove, etc.) families of Marvell
|
||||||
|
SoCs, except with the MMP/MMP2 family of SoCs.
|
||||||
|
|
||||||
|
Linux kernel mach directory:
|
||||||
|
arch/arm/mach-pxa
|
||||||
|
Linux kernel plat directory:
|
||||||
|
arch/arm/plat-pxa
|
||||||
|
|
||||||
|
MMP/MMP2/MMP3 family (communication processor)
|
||||||
|
----------------------------------------------
|
||||||
|
|
||||||
|
Flavors:
|
||||||
|
- PXA168, a.k.a Armada 168
|
||||||
|
- Homepage : http://www.marvell.com/application-processors/armada-100/armada-168.jsp
|
||||||
|
- Product brief : http://www.marvell.com/application-processors/armada-100/assets/pxa_168_pb.pdf
|
||||||
|
- Hardware manual : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_datasheet.pdf
|
||||||
|
- Software manual : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_software_manual.pdf
|
||||||
|
- Specification update : http://www.marvell.com/application-processors/armada-100/assets/ARMADA16x_Spec_update.pdf
|
||||||
|
- Boot ROM manual : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_ref_manual.pdf
|
||||||
|
- App node package : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_app_note_package.pdf
|
||||||
|
- Application processor only
|
||||||
|
- Core: ARMv5 compatible Marvell PJ1 88sv331 (Mohawk)
|
||||||
|
- PXA910/PXA920
|
||||||
|
- Homepage : http://www.marvell.com/communication-processors/pxa910/
|
||||||
|
- Product Brief : http://www.marvell.com/communication-processors/pxa910/assets/Marvell_PXA910_Platform-001_PB_final.pdf
|
||||||
|
- Application processor with Communication processor
|
||||||
|
- Core: ARMv5 compatible Marvell PJ1 88sv331 (Mohawk)
|
||||||
|
- PXA688, a.k.a. MMP2, a.k.a Armada 610
|
||||||
|
- Product Brief : http://www.marvell.com/application-processors/armada-600/assets/armada610_pb.pdf
|
||||||
|
- Application processor only
|
||||||
|
- Core: ARMv7 compatible Sheeva PJ4 88sv581x core
|
||||||
|
- PXA2128, a.k.a. MMP3 (OLPC XO4, Linux support not upstream)
|
||||||
|
- Product Brief : http://www.marvell.com/application-processors/armada/pxa2128/assets/Marvell-ARMADA-PXA2128-SoC-PB.pdf
|
||||||
|
- Application processor only
|
||||||
|
- Core: Dual-core ARMv7 compatible Sheeva PJ4C core
|
||||||
|
- PXA960/PXA968/PXA978 (Linux support not upstream)
|
||||||
|
- Application processor with Communication Processor
|
||||||
|
- Core: ARMv7 compatible Sheeva PJ4 core
|
||||||
|
- PXA986/PXA988 (Linux support not upstream)
|
||||||
|
- Application processor with Communication Processor
|
||||||
|
- Core: Dual-core ARMv7 compatible Sheeva PJ4B-MP core
|
||||||
|
- PXA1088/PXA1920 (Linux support not upstream)
|
||||||
|
- Application processor with Communication Processor
|
||||||
|
- Core: quad-core ARMv7 Cortex-A7
|
||||||
|
- PXA1908/PXA1928/PXA1936
|
||||||
|
- Application processor with Communication Processor
|
||||||
|
- Core: multi-core ARMv8 Cortex-A53
|
||||||
|
|
||||||
|
Comments:
|
||||||
|
|
||||||
|
* This line of SoCs originates from the XScale family developed by
|
||||||
|
Intel and acquired by Marvell in ~2006. All the processors of
|
||||||
|
this MMP/MMP2 family were developed by Marvell.
|
||||||
|
|
||||||
|
* Due to their XScale origin, these SoCs have virtually nothing in
|
||||||
|
common with the other (Kirkwood, Dove, etc.) families of Marvell
|
||||||
|
SoCs, except with the PXA family of SoCs listed above.
|
||||||
|
|
||||||
|
Linux kernel mach directory:
|
||||||
|
arch/arm/mach-mmp
|
||||||
|
Linux kernel plat directory:
|
||||||
|
arch/arm/plat-pxa
|
||||||
|
|
||||||
|
Berlin family (Multimedia Solutions)
|
||||||
|
-------------------------------------
|
||||||
|
|
||||||
|
- Flavors:
|
||||||
|
- 88DE3010, Armada 1000 (no Linux support)
|
||||||
|
- Core: Marvell PJ1 (ARMv5TE), Dual-core
|
||||||
|
- Product Brief: http://www.marvell.com.cn/digital-entertainment/assets/armada_1000_pb.pdf
|
||||||
|
- 88DE3005, Armada 1500 Mini
|
||||||
|
- Design name: BG2CD
|
||||||
|
- Core: ARM Cortex-A9, PL310 L2CC
|
||||||
|
- 88DE3006, Armada 1500 Mini Plus
|
||||||
|
- Design name: BG2CDP
|
||||||
|
- Core: Dual Core ARM Cortex-A7
|
||||||
|
- 88DE3100, Armada 1500
|
||||||
|
- Design name: BG2
|
||||||
|
- Core: Marvell PJ4B-MP (ARMv7), Tauros3 L2CC
|
||||||
|
- 88DE3114, Armada 1500 Pro
|
||||||
|
- Design name: BG2Q
|
||||||
|
- Core: Quad Core ARM Cortex-A9, PL310 L2CC
|
||||||
|
- 88DE3214, Armada 1500 Pro 4K
|
||||||
|
- Design name: BG3
|
||||||
|
- Core: ARM Cortex-A15, CA15 integrated L2CC
|
||||||
|
- 88DE3218, ARMADA 1500 Ultra
|
||||||
|
- Core: ARM Cortex-A53
|
||||||
|
|
||||||
|
Homepage: https://www.synaptics.com/products/multimedia-solutions
|
||||||
|
Directory: arch/arm/mach-berlin
|
||||||
|
|
||||||
|
Comments:
|
||||||
|
|
||||||
|
* This line of SoCs is based on Marvell Sheeva or ARM Cortex CPUs
|
||||||
|
with Synopsys DesignWare (IRQ, GPIO, Timers, ...) and PXA IP (SDHCI, USB, ETH, ...).
|
||||||
|
|
||||||
|
* The Berlin family was acquired by Synaptics from Marvell in 2017.
|
||||||
|
|
||||||
|
CPU Cores
|
||||||
|
---------
|
||||||
|
|
||||||
|
The XScale cores were designed by Intel, and shipped by Marvell in the older
|
||||||
|
PXA processors. Feroceon is a Marvell designed core that developed in-house,
|
||||||
|
and that evolved into Sheeva. The XScale and Feroceon cores were phased out
|
||||||
|
over time and replaced with Sheeva cores in later products, which subsequently
|
||||||
|
got replaced with licensed ARM Cortex-A cores.
|
||||||
|
|
||||||
|
XScale 1
|
||||||
|
CPUID 0x69052xxx
|
||||||
|
ARMv5, iWMMXt
|
||||||
|
XScale 2
|
||||||
|
CPUID 0x69054xxx
|
||||||
|
ARMv5, iWMMXt
|
||||||
|
XScale 3
|
||||||
|
CPUID 0x69056xxx or 0x69056xxx
|
||||||
|
ARMv5, iWMMXt
|
||||||
|
Feroceon-1850 88fr331 "Mohawk"
|
||||||
|
CPUID 0x5615331x or 0x41xx926x
|
||||||
|
ARMv5TE, single issue
|
||||||
|
Feroceon-2850 88fr531-vd "Jolteon"
|
||||||
|
CPUID 0x5605531x or 0x41xx926x
|
||||||
|
ARMv5TE, VFP, dual-issue
|
||||||
|
Feroceon 88fr571-vd "Jolteon"
|
||||||
|
CPUID 0x5615571x
|
||||||
|
ARMv5TE, VFP, dual-issue
|
||||||
|
Feroceon 88fr131 "Mohawk-D"
|
||||||
|
CPUID 0x5625131x
|
||||||
|
ARMv5TE, single-issue in-order
|
||||||
|
Sheeva PJ1 88sv331 "Mohawk"
|
||||||
|
CPUID 0x561584xx
|
||||||
|
ARMv5, single-issue iWMMXt v2
|
||||||
|
Sheeva PJ4 88sv581x "Flareon"
|
||||||
|
CPUID 0x560f581x
|
||||||
|
ARMv7, idivt, optional iWMMXt v2
|
||||||
|
Sheeva PJ4B 88sv581x
|
||||||
|
CPUID 0x561f581x
|
||||||
|
ARMv7, idivt, optional iWMMXt v2
|
||||||
|
Sheeva PJ4B-MP / PJ4C
|
||||||
|
CPUID 0x562f584x
|
||||||
|
ARMv7, idivt/idiva, LPAE, optional iWMMXt v2 and/or NEON
|
||||||
|
|
||||||
|
Long-term plans
|
||||||
|
---------------
|
||||||
|
|
||||||
|
* Unify the mach-dove/, mach-mv78xx0/, mach-orion5x/ into the
|
||||||
|
mach-mvebu/ to support all SoCs from the Marvell EBU (Engineering
|
||||||
|
Business Unit) in a single mach-<foo> directory. The plat-orion/
|
||||||
|
would therefore disappear.
|
||||||
|
|
||||||
|
* Unify the mach-mmp/ and mach-pxa/ into the same mach-pxa
|
||||||
|
directory. The plat-pxa/ would therefore disappear.
|
||||||
|
|
||||||
|
Credits
|
||||||
|
-------
|
||||||
|
|
||||||
|
- Maen Suleiman <maen@marvell.com>
|
||||||
|
- Lior Amsalem <alior@marvell.com>
|
||||||
|
- Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||||
|
- Andrew Lunn <andrew@lunn.ch>
|
||||||
|
- Nicolas Pitre <nico@fluxnic.net>
|
||||||
|
- Eric Miao <eric.y.miao@gmail.com>
|
||||||
@@ -100,6 +100,11 @@ Instruction Macros
|
|||||||
~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~
|
||||||
This section covers ``SYM_FUNC_*`` and ``SYM_CODE_*`` enumerated above.
|
This section covers ``SYM_FUNC_*`` and ``SYM_CODE_*`` enumerated above.
|
||||||
|
|
||||||
|
``objtool`` requires that all code must be contained in an ELF symbol. Symbol
|
||||||
|
names that have a ``.L`` prefix do not emit symbol table entries. ``.L``
|
||||||
|
prefixed symbols can be used within a code region, but should be avoided for
|
||||||
|
denoting a range of code via ``SYM_*_START/END`` annotations.
|
||||||
|
|
||||||
* ``SYM_FUNC_START`` and ``SYM_FUNC_START_LOCAL`` are supposed to be **the
|
* ``SYM_FUNC_START`` and ``SYM_FUNC_START_LOCAL`` are supposed to be **the
|
||||||
most frequent markings**. They are used for functions with standard calling
|
most frequent markings**. They are used for functions with standard calling
|
||||||
conventions -- global and local. Like in C, they both align the functions to
|
conventions -- global and local. Like in C, they both align the functions to
|
||||||
|
|||||||
@@ -430,13 +430,13 @@ fifo_expire_async
|
|||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
This parameter is used to set the timeout of asynchronous requests. Default
|
This parameter is used to set the timeout of asynchronous requests. Default
|
||||||
value of this is 248ms.
|
value of this is 250ms.
|
||||||
|
|
||||||
fifo_expire_sync
|
fifo_expire_sync
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
This parameter is used to set the timeout of synchronous requests. Default
|
This parameter is used to set the timeout of synchronous requests. Default
|
||||||
value of this is 124ms. In case to favor synchronous requests over asynchronous
|
value of this is 125ms. In case to favor synchronous requests over asynchronous
|
||||||
one, this value should be decreased relative to fifo_expire_async.
|
one, this value should be decreased relative to fifo_expire_async.
|
||||||
|
|
||||||
low_latency
|
low_latency
|
||||||
|
|||||||
@@ -40,6 +40,8 @@ normal code doesn't have to deal with bi_bvec_done.
|
|||||||
There is a lower level advance function - bvec_iter_advance() - which takes
|
There is a lower level advance function - bvec_iter_advance() - which takes
|
||||||
a pointer to a biovec, not a bio; this is used by the bio integrity code.
|
a pointer to a biovec, not a bio; this is used by the bio integrity code.
|
||||||
|
|
||||||
|
As of 5.12 bvec segments with zero bv_len are not supported.
|
||||||
|
|
||||||
What's all this get us?
|
What's all this get us?
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
|
|||||||
@@ -182,8 +182,9 @@ API presented to device drivers
|
|||||||
|
|
||||||
A :c:type:``struct blk_keyslot_manager`` should be set up by device drivers in
|
A :c:type:``struct blk_keyslot_manager`` should be set up by device drivers in
|
||||||
the ``request_queue`` of the device. The device driver needs to call
|
the ``request_queue`` of the device. The device driver needs to call
|
||||||
``blk_ksm_init`` on the ``blk_keyslot_manager``, which specifying the number of
|
``blk_ksm_init`` (or its resource-managed variant ``devm_blk_ksm_init``) on the
|
||||||
keyslots supported by the hardware.
|
``blk_keyslot_manager``, while specifying the number of keyslots supported by
|
||||||
|
the hardware.
|
||||||
|
|
||||||
The device driver also needs to tell the KSM how to actually manipulate the
|
The device driver also needs to tell the KSM how to actually manipulate the
|
||||||
IE hardware in the device to do things like programming the crypto key into
|
IE hardware in the device to do things like programming the crypto key into
|
||||||
@@ -202,10 +203,9 @@ needs each and every of its keyslots to be reprogrammed with the key it
|
|||||||
"should have" at the point in time when the function is called. This is useful
|
"should have" at the point in time when the function is called. This is useful
|
||||||
e.g. if a device loses all its keys on runtime power down/up.
|
e.g. if a device loses all its keys on runtime power down/up.
|
||||||
|
|
||||||
``blk_ksm_destroy`` should be called to free up all resources used by a keyslot
|
If the driver used ``blk_ksm_init`` instead of ``devm_blk_ksm_init``, then
|
||||||
manager upon ``blk_ksm_init``, once the ``blk_keyslot_manager`` is no longer
|
``blk_ksm_destroy`` should be called to free up all resources used by a
|
||||||
needed.
|
``blk_keyslot_manager`` once it is no longer needed.
|
||||||
|
|
||||||
|
|
||||||
Layered Devices
|
Layered Devices
|
||||||
===============
|
===============
|
||||||
|
|||||||
@@ -261,6 +261,12 @@ For block drivers that support REQ_OP_WRITE_ZEROES, the maximum number of
|
|||||||
bytes that can be zeroed at once. The value 0 means that REQ_OP_WRITE_ZEROES
|
bytes that can be zeroed at once. The value 0 means that REQ_OP_WRITE_ZEROES
|
||||||
is not supported.
|
is not supported.
|
||||||
|
|
||||||
|
zone_append_max_bytes (RO)
|
||||||
|
--------------------------
|
||||||
|
This is the maximum number of bytes that can be written to a sequential
|
||||||
|
zone of a zoned block device using a zone append write operation
|
||||||
|
(REQ_OP_ZONE_APPEND). This value is always 0 for regular block devices.
|
||||||
|
|
||||||
zoned (RO)
|
zoned (RO)
|
||||||
----------
|
----------
|
||||||
This indicates if the device is a zoned block device and the zone model of the
|
This indicates if the device is a zoned block device and the zone model of the
|
||||||
@@ -273,4 +279,11 @@ devices are described in the ZBC (Zoned Block Commands) and ZAC
|
|||||||
do not support zone commands, they will be treated as regular block devices
|
do not support zone commands, they will be treated as regular block devices
|
||||||
and zoned will report "none".
|
and zoned will report "none".
|
||||||
|
|
||||||
|
zone_write_granularity (RO)
|
||||||
|
---------------------------
|
||||||
|
This indicates the alignment constraint, in bytes, for write operations in
|
||||||
|
sequential zones of zoned block devices (devices with a zoned attributed
|
||||||
|
that reports "host-managed" or "host-aware"). This value is always 0 for
|
||||||
|
regular block devices.
|
||||||
|
|
||||||
Jens Axboe <jens.axboe@oracle.com>, February 2009
|
Jens Axboe <jens.axboe@oracle.com>, February 2009
|
||||||
|
|||||||
@@ -208,6 +208,12 @@ data structures and compile with kernel internal headers. Both of these
|
|||||||
kernel internals are subject to change and can break with newer kernels
|
kernel internals are subject to change and can break with newer kernels
|
||||||
such that the program needs to be adapted accordingly.
|
such that the program needs to be adapted accordingly.
|
||||||
|
|
||||||
|
Q: Are tracepoints part of the stable ABI?
|
||||||
|
------------------------------------------
|
||||||
|
A: NO. Tracepoints are tied to internal implementation details hence they are
|
||||||
|
subject to change and can break with newer kernels. BPF programs need to change
|
||||||
|
accordingly when this happens.
|
||||||
|
|
||||||
Q: How much stack space a BPF program uses?
|
Q: How much stack space a BPF program uses?
|
||||||
-------------------------------------------
|
-------------------------------------------
|
||||||
A: Currently all program types are limited to 512 bytes of stack
|
A: Currently all program types are limited to 512 bytes of stack
|
||||||
|
|||||||
@@ -501,16 +501,19 @@ All LLVM releases can be found at: http://releases.llvm.org/
|
|||||||
|
|
||||||
Q: Got it, so how do I build LLVM manually anyway?
|
Q: Got it, so how do I build LLVM manually anyway?
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
A: You need cmake and gcc-c++ as build requisites for LLVM. Once you have
|
A: We recommend that developers who want the fastest incremental builds
|
||||||
that set up, proceed with building the latest LLVM and clang version
|
use the Ninja build system, you can find it in your system's package
|
||||||
|
manager, usually the package is ninja or ninja-build.
|
||||||
|
|
||||||
|
You need ninja, cmake and gcc-c++ as build requisites for LLVM. Once you
|
||||||
|
have that set up, proceed with building the latest LLVM and clang version
|
||||||
from the git repositories::
|
from the git repositories::
|
||||||
|
|
||||||
$ git clone https://github.com/llvm/llvm-project.git
|
$ git clone https://github.com/llvm/llvm-project.git
|
||||||
$ mkdir -p llvm-project/llvm/build/install
|
$ mkdir -p llvm-project/llvm/build
|
||||||
$ cd llvm-project/llvm/build
|
$ cd llvm-project/llvm/build
|
||||||
$ cmake .. -G "Ninja" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \
|
$ cmake .. -G "Ninja" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \
|
||||||
-DLLVM_ENABLE_PROJECTS="clang" \
|
-DLLVM_ENABLE_PROJECTS="clang" \
|
||||||
-DBUILD_SHARED_LIBS=OFF \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
-DLLVM_BUILD_RUNTIME=OFF
|
-DLLVM_BUILD_RUNTIME=OFF
|
||||||
$ ninja
|
$ ninja
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ from load_config import loadConfig
|
|||||||
# -- General configuration ------------------------------------------------
|
# -- General configuration ------------------------------------------------
|
||||||
|
|
||||||
# If your documentation needs a minimal Sphinx version, state it here.
|
# If your documentation needs a minimal Sphinx version, state it here.
|
||||||
needs_sphinx = '1.3'
|
needs_sphinx = '1.7'
|
||||||
|
|
||||||
# Add any Sphinx extension module names here, as strings. They can be
|
# Add any Sphinx extension module names here, as strings. They can be
|
||||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||||
@@ -49,8 +49,7 @@ extensions = ['kerneldoc', 'rstFlatTable', 'kernel_include',
|
|||||||
if major >= 3:
|
if major >= 3:
|
||||||
sys.stderr.write('''WARNING: The kernel documentation build process
|
sys.stderr.write('''WARNING: The kernel documentation build process
|
||||||
support for Sphinx v3.0 and above is brand new. Be prepared for
|
support for Sphinx v3.0 and above is brand new. Be prepared for
|
||||||
possible issues in the generated output.
|
possible issues in the generated output.\n''')
|
||||||
''')
|
|
||||||
if (major > 3) or (minor > 0 or patch >= 2):
|
if (major > 3) or (minor > 0 or patch >= 2):
|
||||||
# Sphinx c function parser is more pedantic with regards to type
|
# Sphinx c function parser is more pedantic with regards to type
|
||||||
# checking. Due to that, having macros at c:function cause problems.
|
# checking. Due to that, having macros at c:function cause problems.
|
||||||
@@ -112,19 +111,12 @@ if major >= 3:
|
|||||||
|
|
||||||
else:
|
else:
|
||||||
extensions.append('cdomain')
|
extensions.append('cdomain')
|
||||||
if major == 1 and minor < 7:
|
|
||||||
sys.stderr.write('WARNING: Sphinx 1.7 or greater will be required as of '
|
|
||||||
'the 5.12 release\n')
|
|
||||||
|
|
||||||
# Ensure that autosectionlabel will produce unique names
|
# Ensure that autosectionlabel will produce unique names
|
||||||
autosectionlabel_prefix_document = True
|
autosectionlabel_prefix_document = True
|
||||||
autosectionlabel_maxdepth = 2
|
autosectionlabel_maxdepth = 2
|
||||||
|
|
||||||
# The name of the math extension changed on Sphinx 1.4
|
|
||||||
if (major == 1 and minor > 3) or (major > 1):
|
|
||||||
extensions.append("sphinx.ext.imgmath")
|
extensions.append("sphinx.ext.imgmath")
|
||||||
else:
|
|
||||||
extensions.append("sphinx.ext.pngmath")
|
|
||||||
|
|
||||||
# Add any paths that contain templates here, relative to this directory.
|
# Add any paths that contain templates here, relative to this directory.
|
||||||
templates_path = ['_templates']
|
templates_path = ['_templates']
|
||||||
@@ -375,71 +367,9 @@ if cjk_cmd.find("Noto Sans CJK SC") >= 0:
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
# Fix reference escape troubles with Sphinx 1.4.x
|
# Fix reference escape troubles with Sphinx 1.4.x
|
||||||
if major == 1 and minor > 3:
|
if major == 1:
|
||||||
latex_elements['preamble'] += '\\renewcommand*{\\DUrole}[2]{ #2 }\n'
|
latex_elements['preamble'] += '\\renewcommand*{\\DUrole}[2]{ #2 }\n'
|
||||||
|
|
||||||
if major == 1 and minor <= 4:
|
|
||||||
latex_elements['preamble'] += '\\usepackage[margin=0.5in, top=1in, bottom=1in]{geometry}'
|
|
||||||
elif major == 1 and (minor > 5 or (minor == 5 and patch >= 3)):
|
|
||||||
latex_elements['sphinxsetup'] = 'hmargin=0.5in, vmargin=1in'
|
|
||||||
latex_elements['preamble'] += '\\fvset{fontsize=auto}\n'
|
|
||||||
|
|
||||||
# Customize notice background colors on Sphinx < 1.6:
|
|
||||||
if major == 1 and minor < 6:
|
|
||||||
latex_elements['preamble'] += '''
|
|
||||||
\\usepackage{ifthen}
|
|
||||||
|
|
||||||
% Put notes in color and let them be inside a table
|
|
||||||
\\definecolor{NoteColor}{RGB}{204,255,255}
|
|
||||||
\\definecolor{WarningColor}{RGB}{255,204,204}
|
|
||||||
\\definecolor{AttentionColor}{RGB}{255,255,204}
|
|
||||||
\\definecolor{ImportantColor}{RGB}{192,255,204}
|
|
||||||
\\definecolor{OtherColor}{RGB}{204,204,204}
|
|
||||||
\\newlength{\\mynoticelength}
|
|
||||||
\\makeatletter\\newenvironment{coloredbox}[1]{%
|
|
||||||
\\setlength{\\fboxrule}{1pt}
|
|
||||||
\\setlength{\\fboxsep}{7pt}
|
|
||||||
\\setlength{\\mynoticelength}{\\linewidth}
|
|
||||||
\\addtolength{\\mynoticelength}{-2\\fboxsep}
|
|
||||||
\\addtolength{\\mynoticelength}{-2\\fboxrule}
|
|
||||||
\\begin{lrbox}{\\@tempboxa}\\begin{minipage}{\\mynoticelength}}{\\end{minipage}\\end{lrbox}%
|
|
||||||
\\ifthenelse%
|
|
||||||
{\\equal{\\py@noticetype}{note}}%
|
|
||||||
{\\colorbox{NoteColor}{\\usebox{\\@tempboxa}}}%
|
|
||||||
{%
|
|
||||||
\\ifthenelse%
|
|
||||||
{\\equal{\\py@noticetype}{warning}}%
|
|
||||||
{\\colorbox{WarningColor}{\\usebox{\\@tempboxa}}}%
|
|
||||||
{%
|
|
||||||
\\ifthenelse%
|
|
||||||
{\\equal{\\py@noticetype}{attention}}%
|
|
||||||
{\\colorbox{AttentionColor}{\\usebox{\\@tempboxa}}}%
|
|
||||||
{%
|
|
||||||
\\ifthenelse%
|
|
||||||
{\\equal{\\py@noticetype}{important}}%
|
|
||||||
{\\colorbox{ImportantColor}{\\usebox{\\@tempboxa}}}%
|
|
||||||
{\\colorbox{OtherColor}{\\usebox{\\@tempboxa}}}%
|
|
||||||
}%
|
|
||||||
}%
|
|
||||||
}%
|
|
||||||
}\\makeatother
|
|
||||||
|
|
||||||
\\makeatletter
|
|
||||||
\\renewenvironment{notice}[2]{%
|
|
||||||
\\def\\py@noticetype{#1}
|
|
||||||
\\begin{coloredbox}{#1}
|
|
||||||
\\bf\\it
|
|
||||||
\\par\\strong{#2}
|
|
||||||
\\csname py@noticestart@#1\\endcsname
|
|
||||||
}
|
|
||||||
{
|
|
||||||
\\csname py@noticeend@\\py@noticetype\\endcsname
|
|
||||||
\\end{coloredbox}
|
|
||||||
}
|
|
||||||
\\makeatother
|
|
||||||
|
|
||||||
'''
|
|
||||||
|
|
||||||
# With Sphinx 1.6, it is possible to change the Bg color directly
|
# With Sphinx 1.6, it is possible to change the Bg color directly
|
||||||
# by using:
|
# by using:
|
||||||
# \definecolor{sphinxnoteBgColor}{RGB}{204,255,255}
|
# \definecolor{sphinxnoteBgColor}{RGB}{204,255,255}
|
||||||
|
|||||||
@@ -526,46 +526,6 @@ for the kernel vs the device.
|
|||||||
If you don't understand how cache line coherency works between a processor and
|
If you don't understand how cache line coherency works between a processor and
|
||||||
an I/O device, you should not be using this part of the API.
|
an I/O device, you should not be using this part of the API.
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
void *
|
|
||||||
dma_alloc_noncoherent(struct device *dev, size_t size,
|
|
||||||
dma_addr_t *dma_handle, enum dma_data_direction dir,
|
|
||||||
gfp_t gfp)
|
|
||||||
|
|
||||||
This routine allocates a region of <size> bytes of consistent memory. It
|
|
||||||
returns a pointer to the allocated region (in the processor's virtual address
|
|
||||||
space) or NULL if the allocation failed. The returned memory may or may not
|
|
||||||
be in the kernel direct mapping. Drivers must not call virt_to_page on
|
|
||||||
the returned memory region.
|
|
||||||
|
|
||||||
It also returns a <dma_handle> which may be cast to an unsigned integer the
|
|
||||||
same width as the bus and given to the device as the DMA address base of
|
|
||||||
the region.
|
|
||||||
|
|
||||||
The dir parameter specified if data is read and/or written by the device,
|
|
||||||
see dma_map_single() for details.
|
|
||||||
|
|
||||||
The gfp parameter allows the caller to specify the ``GFP_`` flags (see
|
|
||||||
kmalloc()) for the allocation, but rejects flags used to specify a memory
|
|
||||||
zone such as GFP_DMA or GFP_HIGHMEM.
|
|
||||||
|
|
||||||
Before giving the memory to the device, dma_sync_single_for_device() needs
|
|
||||||
to be called, and before reading memory written by the device,
|
|
||||||
dma_sync_single_for_cpu(), just like for streaming DMA mappings that are
|
|
||||||
reused.
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
void
|
|
||||||
dma_free_noncoherent(struct device *dev, size_t size, void *cpu_addr,
|
|
||||||
dma_addr_t dma_handle, enum dma_data_direction dir)
|
|
||||||
|
|
||||||
Free a region of memory previously allocated using dma_alloc_noncoherent().
|
|
||||||
dev, size and dma_handle and dir must all be the same as those passed into
|
|
||||||
dma_alloc_noncoherent(). cpu_addr must be the virtual address returned by
|
|
||||||
dma_alloc_noncoherent().
|
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
struct page *
|
struct page *
|
||||||
@@ -600,9 +560,29 @@ reused.
|
|||||||
dma_addr_t dma_handle, enum dma_data_direction dir)
|
dma_addr_t dma_handle, enum dma_data_direction dir)
|
||||||
|
|
||||||
Free a region of memory previously allocated using dma_alloc_pages().
|
Free a region of memory previously allocated using dma_alloc_pages().
|
||||||
dev, size and dma_handle and dir must all be the same as those passed into
|
dev, size, dma_handle and dir must all be the same as those passed into
|
||||||
dma_alloc_noncoherent(). page must be the pointer returned by
|
dma_alloc_pages(). page must be the pointer returned by dma_alloc_pages().
|
||||||
dma_alloc_pages().
|
|
||||||
|
::
|
||||||
|
|
||||||
|
void *
|
||||||
|
dma_alloc_noncoherent(struct device *dev, size_t size,
|
||||||
|
dma_addr_t *dma_handle, enum dma_data_direction dir,
|
||||||
|
gfp_t gfp)
|
||||||
|
|
||||||
|
This routine is a convenient wrapper around dma_alloc_pages that returns the
|
||||||
|
kernel virtual address for the allocated memory instead of the page structure.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
void
|
||||||
|
dma_free_noncoherent(struct device *dev, size_t size, void *cpu_addr,
|
||||||
|
dma_addr_t dma_handle, enum dma_data_direction dir)
|
||||||
|
|
||||||
|
Free a region of memory previously allocated using dma_alloc_noncoherent().
|
||||||
|
dev, size, dma_handle and dir must all be the same as those passed into
|
||||||
|
dma_alloc_noncoherent(). cpu_addr must be the virtual address returned by
|
||||||
|
dma_alloc_noncoherent().
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,6 @@ How Linux keeps everything from happening at the same time. See
|
|||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
atomic_ops
|
|
||||||
refcount-vs-atomic
|
refcount-vs-atomic
|
||||||
irq/index
|
irq/index
|
||||||
local_ops
|
local_ops
|
||||||
|
|||||||
@@ -19,11 +19,8 @@ User Space Memory Access
|
|||||||
Memory Allocation Controls
|
Memory Allocation Controls
|
||||||
==========================
|
==========================
|
||||||
|
|
||||||
Functions which need to allocate memory often use GFP flags to express
|
.. kernel-doc:: include/linux/gfp.h
|
||||||
how that memory should be allocated. The GFP acronym stands for "get
|
:internal:
|
||||||
free pages", the underlying memory allocation function. Not every GFP
|
|
||||||
flag is allowed to every function which may allocate memory. Most
|
|
||||||
users will want to use a plain ``GFP_KERNEL``.
|
|
||||||
|
|
||||||
.. kernel-doc:: include/linux/gfp.h
|
.. kernel-doc:: include/linux/gfp.h
|
||||||
:doc: Page mobility and placement hints
|
:doc: Page mobility and placement hints
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user