mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-25 05:34:00 +08:00
SPI NOR core changes:
- Add support for TB selection using SR bit 6, - Add support for few flashes. -----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEHUIqys8OyG1eHf7fS1VPR6WNFOkFAl4l5iYACgkQS1VPR6WN FOksswf/Tq2UoKBdPuseIUFuzra98K78ItVAAGPnMM2rMnG9bi0SLsKDdYIt/E2s MHfcZdk9FA+DqCyfXk7FJDSFjvT5L92xg+lJSQul7GL/OOUWUlYJVuPpxCUFzJmW w/u9qFdbsughBFqMKgCPA11+wDPBbBfOjI/PzfKpjuFr4d4rOevX9bnojAa/8pR2 FDJ/kfjDByxa60uAZbAMh0tV8wHgVtnLUNDwrh+49BLHN4a0vIq3PP/YiQLvo2VY IE1x6Va696onBkcXNtWOYFiS183Dc0mIVRYwAPDvpF6MWcWbZXQ2XrnRb4B8snMY mLBWqGpQ4b88Nd1npTWxIUIUJPXgqQ== =3kW5 -----END PGP SIGNATURE----- Merge tag 'spi-nor/for-5.6' into mtd/next SPI NOR core changes: - Add support for TB selection using SR bit 6, - Add support for few flashes.
This commit is contained in:
commit
701ddf0bbf
4
.mailmap
4
.mailmap
@ -152,6 +152,7 @@ Linus Lüssing <linus.luessing@c0d3.blue> <linus.luessing@web.de>
|
|||||||
Linus Lüssing <linus.luessing@c0d3.blue> <linus.luessing@ascom.ch>
|
Linus Lüssing <linus.luessing@c0d3.blue> <linus.luessing@ascom.ch>
|
||||||
Li Yang <leoyang.li@nxp.com> <leo@zh-kernel.org>
|
Li Yang <leoyang.li@nxp.com> <leo@zh-kernel.org>
|
||||||
Li Yang <leoyang.li@nxp.com> <leoli@freescale.com>
|
Li Yang <leoyang.li@nxp.com> <leoli@freescale.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>
|
||||||
Marc Zyngier <maz@kernel.org> <marc.zyngier@arm.com>
|
Marc Zyngier <maz@kernel.org> <marc.zyngier@arm.com>
|
||||||
Marcin Nowakowski <marcin.nowakowski@mips.com> <marcin.nowakowski@imgtec.com>
|
Marcin Nowakowski <marcin.nowakowski@mips.com> <marcin.nowakowski@imgtec.com>
|
||||||
@ -265,6 +266,7 @@ Vinod Koul <vkoul@kernel.org> <vkoul@infradead.org>
|
|||||||
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 <vireshk@kernel.org> <viresh.kumar2@arm.com>
|
Viresh Kumar <vireshk@kernel.org> <viresh.kumar2@arm.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@virtuozzo.com>
|
Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@virtuozzo.com>
|
||||||
Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@parallels.com>
|
Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@parallels.com>
|
||||||
@ -276,3 +278,5 @@ Gustavo Padovan <gustavo@las.ic.unicamp.br>
|
|||||||
Gustavo Padovan <padovan@profusion.mobi>
|
Gustavo Padovan <padovan@profusion.mobi>
|
||||||
Changbin Du <changbin.du@intel.com> <changbin.du@intel.com>
|
Changbin Du <changbin.du@intel.com> <changbin.du@intel.com>
|
||||||
Changbin Du <changbin.du@intel.com> <changbin.du@gmail.com>
|
Changbin Du <changbin.du@intel.com> <changbin.du@gmail.com>
|
||||||
|
Steve Wise <larrystevenwise@gmail.com> <swise@chelsio.com>
|
||||||
|
Steve Wise <larrystevenwise@gmail.com> <swise@opengridcomputing.com>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
What: /sys/bus/platform/devices/MLNXBF04:00/driver/lifecycle_state
|
What: /sys/bus/platform/devices/MLNXBF04:00/lifecycle_state
|
||||||
Date: Oct 2019
|
Date: Oct 2019
|
||||||
KernelVersion: 5.5
|
KernelVersion: 5.5
|
||||||
Contact: "Liming Sun <lsun@mellanox.com>"
|
Contact: "Liming Sun <lsun@mellanox.com>"
|
||||||
@ -10,7 +10,7 @@ Description:
|
|||||||
GA Non-Secured - Non-Secure chip and not able to change state
|
GA Non-Secured - Non-Secure chip and not able to change state
|
||||||
RMA - Return Merchandise Authorization
|
RMA - Return Merchandise Authorization
|
||||||
|
|
||||||
What: /sys/bus/platform/devices/MLNXBF04:00/driver/post_reset_wdog
|
What: /sys/bus/platform/devices/MLNXBF04:00/post_reset_wdog
|
||||||
Date: Oct 2019
|
Date: Oct 2019
|
||||||
KernelVersion: 5.5
|
KernelVersion: 5.5
|
||||||
Contact: "Liming Sun <lsun@mellanox.com>"
|
Contact: "Liming Sun <lsun@mellanox.com>"
|
||||||
@ -19,7 +19,7 @@ Description:
|
|||||||
to reboot the chip and recover it to the old state if the new
|
to reboot the chip and recover it to the old state if the new
|
||||||
boot partition fails.
|
boot partition fails.
|
||||||
|
|
||||||
What: /sys/bus/platform/devices/MLNXBF04:00/driver/reset_action
|
What: /sys/bus/platform/devices/MLNXBF04:00/reset_action
|
||||||
Date: Oct 2019
|
Date: Oct 2019
|
||||||
KernelVersion: 5.5
|
KernelVersion: 5.5
|
||||||
Contact: "Liming Sun <lsun@mellanox.com>"
|
Contact: "Liming Sun <lsun@mellanox.com>"
|
||||||
@ -30,7 +30,7 @@ Description:
|
|||||||
emmc - boot from the onchip eMMC
|
emmc - boot from the onchip eMMC
|
||||||
emmc_legacy - boot from the onchip eMMC in legacy (slow) mode
|
emmc_legacy - boot from the onchip eMMC in legacy (slow) mode
|
||||||
|
|
||||||
What: /sys/bus/platform/devices/MLNXBF04:00/driver/second_reset_action
|
What: /sys/bus/platform/devices/MLNXBF04:00/second_reset_action
|
||||||
Date: Oct 2019
|
Date: Oct 2019
|
||||||
KernelVersion: 5.5
|
KernelVersion: 5.5
|
||||||
Contact: "Liming Sun <lsun@mellanox.com>"
|
Contact: "Liming Sun <lsun@mellanox.com>"
|
||||||
@ -44,7 +44,7 @@ Description:
|
|||||||
swap_emmc - swap the primary / secondary boot partition
|
swap_emmc - swap the primary / secondary boot partition
|
||||||
none - cancel the action
|
none - cancel the action
|
||||||
|
|
||||||
What: /sys/bus/platform/devices/MLNXBF04:00/driver/secure_boot_fuse_state
|
What: /sys/bus/platform/devices/MLNXBF04:00/secure_boot_fuse_state
|
||||||
Date: Oct 2019
|
Date: Oct 2019
|
||||||
KernelVersion: 5.5
|
KernelVersion: 5.5
|
||||||
Contact: "Liming Sun <lsun@mellanox.com>"
|
Contact: "Liming Sun <lsun@mellanox.com>"
|
||||||
|
@ -144,7 +144,7 @@ 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", "ctr(aes)" or "ecb(arc4)").
|
"salsa20" 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 nubmers
|
an attacker reading the journal could see the last sector nubmers
|
||||||
|
@ -8,6 +8,7 @@ Device Mapper
|
|||||||
cache-policies
|
cache-policies
|
||||||
cache
|
cache
|
||||||
delay
|
delay
|
||||||
|
dm-clone
|
||||||
dm-crypt
|
dm-crypt
|
||||||
dm-dust
|
dm-dust
|
||||||
dm-flakey
|
dm-flakey
|
||||||
|
@ -181,14 +181,17 @@ When mounting an ext4 filesystem, the following option are accepted:
|
|||||||
system after its metadata has been committed to the journal.
|
system after its metadata has been committed to the journal.
|
||||||
|
|
||||||
commit=nrsec (*)
|
commit=nrsec (*)
|
||||||
Ext4 can be told to sync all its data and metadata every 'nrsec'
|
This setting limits the maximum age of the running transaction to
|
||||||
seconds. The default value is 5 seconds. This means that if you lose
|
'nrsec' seconds. The default value is 5 seconds. This means that if
|
||||||
your power, you will lose as much as the latest 5 seconds of work (your
|
you lose your power, you will lose as much as the latest 5 seconds of
|
||||||
filesystem will not be damaged though, thanks to the journaling). This
|
metadata changes (your filesystem will not be damaged though, thanks
|
||||||
default value (or any low value) will hurt performance, but it's good
|
to the journaling). This default value (or any low value) will hurt
|
||||||
for data-safety. Setting it to 0 will have the same effect as leaving
|
performance, but it's good for data-safety. Setting it to 0 will have
|
||||||
it at the default (5 seconds). Setting it to very large values will
|
the same effect as leaving it at the default (5 seconds). Setting it
|
||||||
improve performance.
|
to very large values will improve performance. Note that due to
|
||||||
|
delayed allocation even older data can be lost on power failure since
|
||||||
|
writeback of those data begins only after time set in
|
||||||
|
/proc/sys/vm/dirty_expire_centisecs.
|
||||||
|
|
||||||
barrier=<0|1(*)>, barrier(*), nobarrier
|
barrier=<0|1(*)>, barrier(*), nobarrier
|
||||||
This enables/disables the use of write barriers in the jbd code.
|
This enables/disables the use of write barriers in the jbd code.
|
||||||
|
@ -253,7 +253,7 @@ The following sysctls are available for the XFS filesystem:
|
|||||||
pool.
|
pool.
|
||||||
|
|
||||||
fs.xfs.speculative_prealloc_lifetime
|
fs.xfs.speculative_prealloc_lifetime
|
||||||
(Units: seconds Min: 1 Default: 300 Max: 86400)
|
(Units: seconds Min: 1 Default: 300 Max: 86400)
|
||||||
The interval at which the background scanning for inodes
|
The interval at which the background scanning for inodes
|
||||||
with unused speculative preallocation runs. The scan
|
with unused speculative preallocation runs. The scan
|
||||||
removes unused preallocation from clean inodes and releases
|
removes unused preallocation from clean inodes and releases
|
||||||
|
@ -203,12 +203,12 @@ Test Module
|
|||||||
Kselftest tests the kernel from userspace. Sometimes things need
|
Kselftest tests the kernel from userspace. Sometimes things need
|
||||||
testing from within the kernel, one method of doing this is to create a
|
testing from within the kernel, one method of doing this is to create a
|
||||||
test module. We can tie the module into the kselftest framework by
|
test module. We can tie the module into the kselftest framework by
|
||||||
using a shell script test runner. ``kselftest_module.sh`` is designed
|
using a shell script test runner. ``kselftest/module.sh`` is designed
|
||||||
to facilitate this process. There is also a header file provided to
|
to facilitate this process. There is also a header file provided to
|
||||||
assist writing kernel modules that are for use with kselftest:
|
assist writing kernel modules that are for use with kselftest:
|
||||||
|
|
||||||
- ``tools/testing/kselftest/kselftest_module.h``
|
- ``tools/testing/kselftest/kselftest_module.h``
|
||||||
- ``tools/testing/kselftest/kselftest_module.sh``
|
- ``tools/testing/kselftest/kselftest/module.sh``
|
||||||
|
|
||||||
How to use
|
How to use
|
||||||
----------
|
----------
|
||||||
@ -247,7 +247,7 @@ A bare bones test module might look like this:
|
|||||||
|
|
||||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||||
|
|
||||||
#include "../tools/testing/selftests/kselftest_module.h"
|
#include "../tools/testing/selftests/kselftest/module.h"
|
||||||
|
|
||||||
KSTM_MODULE_GLOBALS();
|
KSTM_MODULE_GLOBALS();
|
||||||
|
|
||||||
@ -276,7 +276,7 @@ Example test script
|
|||||||
|
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# SPDX-License-Identifier: GPL-2.0+
|
# SPDX-License-Identifier: GPL-2.0+
|
||||||
$(dirname $0)/../kselftest_module.sh "foo" test_foo
|
$(dirname $0)/../kselftest/module.sh "foo" test_foo
|
||||||
|
|
||||||
|
|
||||||
Test Harness
|
Test Harness
|
||||||
|
@ -9,6 +9,7 @@ KUnit - Unit Testing for the Linux Kernel
|
|||||||
|
|
||||||
start
|
start
|
||||||
usage
|
usage
|
||||||
|
kunit-tool
|
||||||
api/index
|
api/index
|
||||||
faq
|
faq
|
||||||
|
|
||||||
|
57
Documentation/dev-tools/kunit/kunit-tool.rst
Normal file
57
Documentation/dev-tools/kunit/kunit-tool.rst
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
.. SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
|
=================
|
||||||
|
kunit_tool How-To
|
||||||
|
=================
|
||||||
|
|
||||||
|
What is kunit_tool?
|
||||||
|
===================
|
||||||
|
|
||||||
|
kunit_tool is a script (``tools/testing/kunit/kunit.py``) that aids in building
|
||||||
|
the Linux kernel as UML (`User Mode Linux
|
||||||
|
<http://user-mode-linux.sourceforge.net/>`_), running KUnit tests, parsing
|
||||||
|
the test results and displaying them in a user friendly manner.
|
||||||
|
|
||||||
|
What is a kunitconfig?
|
||||||
|
======================
|
||||||
|
|
||||||
|
It's just a defconfig that kunit_tool looks for in the base directory.
|
||||||
|
kunit_tool uses it to generate a .config as you might expect. In addition, it
|
||||||
|
verifies that the generated .config contains the CONFIG options in the
|
||||||
|
kunitconfig; the reason it does this is so that it is easy to be sure that a
|
||||||
|
CONFIG that enables a test actually ends up in the .config.
|
||||||
|
|
||||||
|
How do I use kunit_tool?
|
||||||
|
========================
|
||||||
|
|
||||||
|
If a kunitconfig is present at the root directory, all you have to do is:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
./tools/testing/kunit/kunit.py run
|
||||||
|
|
||||||
|
However, you most likely want to use it with the following options:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
./tools/testing/kunit/kunit.py run --timeout=30 --jobs=`nproc --all`
|
||||||
|
|
||||||
|
- ``--timeout`` sets a maximum amount of time to allow tests to run.
|
||||||
|
- ``--jobs`` sets the number of threads to use to build the kernel.
|
||||||
|
|
||||||
|
If you just want to use the defconfig that ships with the kernel, you can
|
||||||
|
append the ``--defconfig`` flag as well:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
./tools/testing/kunit/kunit.py run --timeout=30 --jobs=`nproc --all` --defconfig
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
This command is particularly helpful for getting started because it
|
||||||
|
just works. No kunitconfig needs to be present.
|
||||||
|
|
||||||
|
For a list of all the flags supported by kunit_tool, you can run:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
./tools/testing/kunit/kunit.py run --help
|
@ -19,11 +19,14 @@ The wrapper can be run with:
|
|||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
./tools/testing/kunit/kunit.py run
|
./tools/testing/kunit/kunit.py run --defconfig
|
||||||
|
|
||||||
|
For more information on this wrapper (also called kunit_tool) checkout the
|
||||||
|
:doc:`kunit-tool` page.
|
||||||
|
|
||||||
Creating a kunitconfig
|
Creating a kunitconfig
|
||||||
======================
|
======================
|
||||||
The Python script is a thin wrapper around Kbuild as such, it needs to be
|
The Python script is a thin wrapper around Kbuild. As such, it needs to be
|
||||||
configured with a ``kunitconfig`` file. This file essentially contains the
|
configured with a ``kunitconfig`` file. This file essentially contains the
|
||||||
regular Kernel config, with the specific test targets as well.
|
regular Kernel config, with the specific test targets as well.
|
||||||
|
|
||||||
@ -59,8 +62,8 @@ If everything worked correctly, you should see the following:
|
|||||||
followed by a list of tests that are run. All of them should be passing.
|
followed by a list of tests that are run. All of them should be passing.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
Because it is building a lot of sources for the first time, the ``Building
|
Because it is building a lot of sources for the first time, the
|
||||||
kunit kernel`` step may take a while.
|
``Building KUnit kernel`` step may take a while.
|
||||||
|
|
||||||
Writing your first test
|
Writing your first test
|
||||||
=======================
|
=======================
|
||||||
@ -159,7 +162,7 @@ Now you can run the test:
|
|||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
./tools/testing/kunit/kunit.py
|
./tools/testing/kunit/kunit.py run
|
||||||
|
|
||||||
You should see the following failure:
|
You should see the following failure:
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ Organization of this document
|
|||||||
=============================
|
=============================
|
||||||
|
|
||||||
This document is organized into two main sections: Testing and Isolating
|
This document is organized into two main sections: Testing and Isolating
|
||||||
Behavior. The first covers what a unit test is and how to use KUnit to write
|
Behavior. The first covers what unit tests are and how to use KUnit to write
|
||||||
them. The second covers how to use KUnit to isolate code and make it possible
|
them. The second covers how to use KUnit to isolate code and make it possible
|
||||||
to unit test code that was otherwise un-unit-testable.
|
to unit test code that was otherwise un-unit-testable.
|
||||||
|
|
||||||
@ -174,13 +174,13 @@ Test Suites
|
|||||||
~~~~~~~~~~~
|
~~~~~~~~~~~
|
||||||
|
|
||||||
Now obviously one unit test isn't very helpful; the power comes from having
|
Now obviously one unit test isn't very helpful; the power comes from having
|
||||||
many test cases covering all of your behaviors. Consequently it is common to
|
many test cases covering all of a unit's behaviors. Consequently it is common
|
||||||
have many *similar* tests; in order to reduce duplication in these closely
|
to have many *similar* tests; in order to reduce duplication in these closely
|
||||||
related tests most unit testing frameworks provide the concept of a *test
|
related tests most unit testing frameworks - including KUnit - provide the
|
||||||
suite*, in KUnit we call it a *test suite*; all it is is just a collection of
|
concept of a *test suite*. A *test suite* is just a collection of test cases
|
||||||
test cases for a unit of code with a set up function that gets invoked before
|
for a unit of code with a set up function that gets invoked before every test
|
||||||
every test cases and then a tear down function that gets invoked after every
|
case and then a tear down function that gets invoked after every test case
|
||||||
test case completes.
|
completes.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
@ -211,7 +211,7 @@ KUnit test framework.
|
|||||||
.. note::
|
.. note::
|
||||||
A test case will only be run if it is associated with a test suite.
|
A test case will only be run if it is associated with a test suite.
|
||||||
|
|
||||||
For a more information on these types of things see the :doc:`api/test`.
|
For more information on these types of things see the :doc:`api/test`.
|
||||||
|
|
||||||
Isolating Behavior
|
Isolating Behavior
|
||||||
==================
|
==================
|
||||||
@ -338,7 +338,7 @@ We can easily test this code by *faking out* the underlying EEPROM:
|
|||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
ssize_t fake_eeprom_write(struct eeprom *this, size_t offset, const char *buffer, size_t count)
|
ssize_t fake_eeprom_write(struct eeprom *parent, size_t offset, const char *buffer, size_t count)
|
||||||
{
|
{
|
||||||
struct fake_eeprom *this = container_of(parent, struct fake_eeprom, parent);
|
struct fake_eeprom *this = container_of(parent, struct fake_eeprom, parent);
|
||||||
|
|
||||||
@ -454,7 +454,7 @@ KUnit on non-UML architectures
|
|||||||
By default KUnit uses UML as a way to provide dependencies for code under test.
|
By default KUnit uses UML as a way to provide dependencies for code under test.
|
||||||
Under most circumstances KUnit's usage of UML should be treated as an
|
Under most circumstances KUnit's usage of UML should be treated as an
|
||||||
implementation detail of how KUnit works under the hood. Nevertheless, there
|
implementation detail of how KUnit works under the hood. Nevertheless, there
|
||||||
are instances where being able to run architecture specific code, or test
|
are instances where being able to run architecture specific code or test
|
||||||
against real hardware is desirable. For these reasons KUnit supports running on
|
against real hardware is desirable. For these reasons KUnit supports running on
|
||||||
other architectures.
|
other architectures.
|
||||||
|
|
||||||
@ -557,7 +557,7 @@ run your tests on your hardware setup just by compiling for your architecture.
|
|||||||
.. important::
|
.. important::
|
||||||
Always prefer tests that run on UML to tests that only run under a particular
|
Always prefer tests that run on UML to tests that only run under a particular
|
||||||
architecture, and always prefer tests that run under QEMU or another easy
|
architecture, and always prefer tests that run under QEMU or another easy
|
||||||
(and monitarily free) to obtain software environment to a specific piece of
|
(and monetarily free) to obtain software environment to a specific piece of
|
||||||
hardware.
|
hardware.
|
||||||
|
|
||||||
Nevertheless, there are still valid reasons to write an architecture or hardware
|
Nevertheless, there are still valid reasons to write an architecture or hardware
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner platforms device tree bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
$nodename:
|
$nodename:
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A64 Display Engine Bus Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
$nodename:
|
$nodename:
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A23 RSB Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
"#address-cells":
|
"#address-cells":
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner Clock Control Unit Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
"#clock-cells":
|
"#clock-cells":
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A10 Security System Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A31 MIPI-DSI Controller Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
"#address-cells": true
|
"#address-cells": true
|
||||||
|
@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
|||||||
title: Ronbo RB070D30 DSI Display Panel
|
title: Ronbo RB070D30 DSI Display Panel
|
||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A10 DMA Controller Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: "dma-controller.yaml#"
|
- $ref: "dma-controller.yaml#"
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A64 DMA Controller Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: "dma-controller.yaml#"
|
- $ref: "dma-controller.yaml#"
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A31 DMA Controller Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: "dma-controller.yaml#"
|
- $ref: "dma-controller.yaml#"
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A31 P2WI (Push/Pull 2 Wires Interface) Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: /schemas/i2c/i2c-controller.yaml#
|
- $ref: /schemas/i2c/i2c-controller.yaml#
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
%YAML 1.2
|
%YAML 1.2
|
||||||
---
|
---
|
||||||
$id: http://devicetree.org/schemas/iio/adc/adi,ad7292.yaml#
|
$id: http://devicetree.org/schemas/iio/adc/adi,ad7292.yaml#
|
||||||
@ -53,7 +53,8 @@ patternProperties:
|
|||||||
description: |
|
description: |
|
||||||
The channel number. It can have up to 8 channels numbered from 0 to 7.
|
The channel number. It can have up to 8 channels numbered from 0 to 7.
|
||||||
items:
|
items:
|
||||||
maximum: 7
|
- minimum: 0
|
||||||
|
maximum: 7
|
||||||
|
|
||||||
diff-channels:
|
diff-channels:
|
||||||
description: see Documentation/devicetree/bindings/iio/adc/adc.txt
|
description: see Documentation/devicetree/bindings/iio/adc/adc.txt
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A33 Thermal Sensor Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
"#io-channel-cells":
|
"#io-channel-cells":
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A10 LRADC Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A10 Interrupt Controller Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: /schemas/interrupt-controller.yaml#
|
- $ref: /schemas/interrupt-controller.yaml#
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A20 Non-Maskable Interrupt Controller Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: /schemas/interrupt-controller.yaml#
|
- $ref: /schemas/interrupt-controller.yaml#
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A10 CMOS Sensor Interface (CSI) Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
description: |-
|
description: |-
|
||||||
The Allwinner A10 and later has a CMOS Sensor Interface to retrieve
|
The Allwinner A10 and later has a CMOS Sensor Interface to retrieve
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A10 Infrared Controller Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: "rc.yaml#"
|
- $ref: "rc.yaml#"
|
||||||
|
@ -60,7 +60,8 @@ patternProperties:
|
|||||||
maximum: 1066000000
|
maximum: 1066000000
|
||||||
|
|
||||||
nvidia,emem-configuration:
|
nvidia,emem-configuration:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
allOf:
|
||||||
|
- $ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
description: |
|
description: |
|
||||||
Values to be written to the EMEM register block. See section
|
Values to be written to the EMEM register block. See section
|
||||||
"15.6.1 MC Registers" in the TRM.
|
"15.6.1 MC Registers" in the TRM.
|
||||||
|
@ -56,7 +56,8 @@ patternProperties:
|
|||||||
maximum: 900000000
|
maximum: 900000000
|
||||||
|
|
||||||
nvidia,emc-auto-cal-interval:
|
nvidia,emc-auto-cal-interval:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
allOf:
|
||||||
|
- $ref: /schemas/types.yaml#/definitions/uint32
|
||||||
description:
|
description:
|
||||||
Pad calibration interval in microseconds.
|
Pad calibration interval in microseconds.
|
||||||
minimum: 0
|
minimum: 0
|
||||||
@ -78,7 +79,8 @@ patternProperties:
|
|||||||
Mode Register 0.
|
Mode Register 0.
|
||||||
|
|
||||||
nvidia,emc-zcal-cnt-long:
|
nvidia,emc-zcal-cnt-long:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
allOf:
|
||||||
|
- $ref: /schemas/types.yaml#/definitions/uint32
|
||||||
description:
|
description:
|
||||||
Number of EMC clocks to wait before issuing any commands after
|
Number of EMC clocks to wait before issuing any commands after
|
||||||
sending ZCAL_MRW_CMD.
|
sending ZCAL_MRW_CMD.
|
||||||
@ -96,7 +98,8 @@ patternProperties:
|
|||||||
FBIO "read" FIFO periodic resetting enabled.
|
FBIO "read" FIFO periodic resetting enabled.
|
||||||
|
|
||||||
nvidia,emc-configuration:
|
nvidia,emc-configuration:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
allOf:
|
||||||
|
- $ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
description:
|
description:
|
||||||
EMC timing characterization data. These are the registers
|
EMC timing characterization data. These are the registers
|
||||||
(see section "18.13.2 EMC Registers" in the TRM) whose values
|
(see section "18.13.2 EMC Registers" in the TRM) whose values
|
||||||
|
@ -77,7 +77,8 @@ patternProperties:
|
|||||||
maximum: 900000000
|
maximum: 900000000
|
||||||
|
|
||||||
nvidia,emem-configuration:
|
nvidia,emem-configuration:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
allOf:
|
||||||
|
- $ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
description: |
|
description: |
|
||||||
Values to be written to the EMEM register block. See section
|
Values to be written to the EMEM register block. See section
|
||||||
"18.13.1 MC Registers" in the TRM.
|
"18.13.1 MC Registers" in the TRM.
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A10 Resistive Touchscreen Controller Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
"#thermal-sensor-cells":
|
"#thermal-sensor-cells":
|
||||||
|
@ -11,7 +11,7 @@ allOf:
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
"#address-cells": true
|
"#address-cells": true
|
||||||
|
@ -11,7 +11,7 @@ allOf:
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
"#address-cells": true
|
"#address-cells": true
|
||||||
|
@ -11,7 +11,7 @@ allOf:
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A10 MDIO Controller Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: "mdio.yaml#"
|
- $ref: "mdio.yaml#"
|
||||||
|
@ -11,7 +11,7 @@ allOf:
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A83t EMAC Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A10 CAN Controller Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
@ -10,7 +10,6 @@ Required properties:
|
|||||||
- #size-cells: 0
|
- #size-cells: 0
|
||||||
- spi-max-frequency: Maximum frequency of the SPI bus the chip can
|
- spi-max-frequency: Maximum frequency of the SPI bus the chip can
|
||||||
operate at should be less than or equal to 18 MHz.
|
operate at should be less than or equal to 18 MHz.
|
||||||
- device-wake-gpios: Wake up GPIO to wake up the TCAN device.
|
|
||||||
- interrupt-parent: the phandle to the interrupt controller which provides
|
- interrupt-parent: the phandle to the interrupt controller which provides
|
||||||
the interrupt.
|
the interrupt.
|
||||||
- interrupts: interrupt specification for data-ready.
|
- interrupts: interrupt specification for data-ready.
|
||||||
@ -23,6 +22,7 @@ Optional properties:
|
|||||||
reset.
|
reset.
|
||||||
- device-state-gpios: Input GPIO that indicates if the device is in
|
- device-state-gpios: Input GPIO that indicates if the device is in
|
||||||
a sleep state or if the device is active.
|
a sleep state or if the device is active.
|
||||||
|
- device-wake-gpios: Wake up GPIO to wake up the TCAN device.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
tcan4x5x: tcan4x5x@0 {
|
tcan4x5x: tcan4x5x@0 {
|
||||||
@ -36,5 +36,5 @@ tcan4x5x: tcan4x5x@0 {
|
|||||||
interrupts = <14 GPIO_ACTIVE_LOW>;
|
interrupts = <14 GPIO_ACTIVE_LOW>;
|
||||||
device-state-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
|
device-state-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
|
||||||
device-wake-gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
|
device-wake-gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
|
||||||
reset-gpios = <&gpio1 27 GPIO_ACTIVE_LOW>;
|
reset-gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
|
@ -347,6 +347,7 @@ allOf:
|
|||||||
- st,spear600-gmac
|
- st,spear600-gmac
|
||||||
|
|
||||||
then:
|
then:
|
||||||
|
properties:
|
||||||
snps,tso:
|
snps,tso:
|
||||||
$ref: /schemas/types.yaml#definitions/flag
|
$ref: /schemas/types.yaml#definitions/flag
|
||||||
description:
|
description:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
%YAML 1.2
|
%YAML 1.2
|
||||||
---
|
---
|
||||||
$id: http://devicetree.org/schemas/net/ti,cpsw-switch.yaml#
|
$id: http://devicetree.org/schemas/net/ti,cpsw-switch.yaml#
|
||||||
@ -44,7 +44,6 @@ properties:
|
|||||||
description: CPSW functional clock
|
description: CPSW functional clock
|
||||||
|
|
||||||
clock-names:
|
clock-names:
|
||||||
maxItems: 1
|
|
||||||
items:
|
items:
|
||||||
- const: fck
|
- const: fck
|
||||||
|
|
||||||
@ -70,7 +69,6 @@ properties:
|
|||||||
Phandle to the system control device node which provides access to
|
Phandle to the system control device node which provides access to
|
||||||
efuse IO range with MAC addresses
|
efuse IO range with MAC addresses
|
||||||
|
|
||||||
|
|
||||||
ethernet-ports:
|
ethernet-ports:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
@ -82,8 +80,6 @@ properties:
|
|||||||
patternProperties:
|
patternProperties:
|
||||||
"^port@[0-9]+$":
|
"^port@[0-9]+$":
|
||||||
type: object
|
type: object
|
||||||
minItems: 1
|
|
||||||
maxItems: 2
|
|
||||||
description: CPSW external ports
|
description: CPSW external ports
|
||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
@ -91,23 +87,20 @@ properties:
|
|||||||
|
|
||||||
properties:
|
properties:
|
||||||
reg:
|
reg:
|
||||||
maxItems: 1
|
items:
|
||||||
enum: [1, 2]
|
- enum: [1, 2]
|
||||||
description: CPSW port number
|
description: CPSW port number
|
||||||
|
|
||||||
phys:
|
phys:
|
||||||
$ref: /schemas/types.yaml#definitions/phandle-array
|
|
||||||
maxItems: 1
|
maxItems: 1
|
||||||
description: phandle on phy-gmii-sel PHY
|
description: phandle on phy-gmii-sel PHY
|
||||||
|
|
||||||
label:
|
label:
|
||||||
$ref: /schemas/types.yaml#/definitions/string-array
|
|
||||||
maxItems: 1
|
|
||||||
description: label associated with this port
|
description: label associated with this port
|
||||||
|
|
||||||
ti,dual-emac-pvid:
|
ti,dual-emac-pvid:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
allOf:
|
||||||
maxItems: 1
|
- $ref: /schemas/types.yaml#/definitions/uint32
|
||||||
minimum: 1
|
minimum: 1
|
||||||
maximum: 1024
|
maximum: 1024
|
||||||
description:
|
description:
|
||||||
@ -136,7 +129,6 @@ properties:
|
|||||||
description: CPTS reference clock
|
description: CPTS reference clock
|
||||||
|
|
||||||
clock-names:
|
clock-names:
|
||||||
maxItems: 1
|
|
||||||
items:
|
items:
|
||||||
- const: cpts
|
- const: cpts
|
||||||
|
|
||||||
@ -201,7 +193,7 @@ examples:
|
|||||||
phys = <&phy_gmii_sel 1>;
|
phys = <&phy_gmii_sel 1>;
|
||||||
phy-handle = <ðphy0_sw>;
|
phy-handle = <ðphy0_sw>;
|
||||||
phy-mode = "rgmii";
|
phy-mode = "rgmii";
|
||||||
ti,dual_emac_pvid = <1>;
|
ti,dual-emac-pvid = <1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
cpsw_port2: port@2 {
|
cpsw_port2: port@2 {
|
||||||
@ -211,7 +203,7 @@ examples:
|
|||||||
phys = <&phy_gmii_sel 2>;
|
phys = <&phy_gmii_sel 2>;
|
||||||
phy-handle = <ðphy1_sw>;
|
phy-handle = <ðphy1_sw>;
|
||||||
phy-mode = "rgmii";
|
phy-mode = "rgmii";
|
||||||
ti,dual_emac_pvid = <2>;
|
ti,dual-emac-pvid = <2>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A10 Security ID Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: "nvmem.yaml#"
|
- $ref: "nvmem.yaml#"
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A31 MIPI D-PHY Controller Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
"#phy-cells":
|
"#phy-cells":
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A10 Pin Controller Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
"#gpio-cells":
|
"#gpio-cells":
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A10 PWM Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
"#pwm-cells":
|
"#pwm-cells":
|
||||||
|
@ -50,6 +50,8 @@ properties:
|
|||||||
description: Should contain the WWDG1 watchdog reset interrupt
|
description: Should contain the WWDG1 watchdog reset interrupt
|
||||||
maxItems: 1
|
maxItems: 1
|
||||||
|
|
||||||
|
wakeup-source: true
|
||||||
|
|
||||||
mboxes:
|
mboxes:
|
||||||
description:
|
description:
|
||||||
This property is required only if the rpmsg/virtio functionality is used.
|
This property is required only if the rpmsg/virtio functionality is used.
|
||||||
|
@ -22,6 +22,6 @@ Example:
|
|||||||
};
|
};
|
||||||
|
|
||||||
ðernet_switch {
|
ðernet_switch {
|
||||||
resets = <&reset>;
|
resets = <&reset 26>;
|
||||||
reset-names = "switch";
|
reset-names = "switch";
|
||||||
};
|
};
|
||||||
|
@ -11,7 +11,7 @@ allOf:
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A31 RTC Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
"#clock-cells":
|
"#clock-cells":
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A10 PS2 Host Controller Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
description:
|
description:
|
||||||
A20 PS2 is dual role controller (PS2 host and PS2 device). These
|
A20 PS2 is dual role controller (PS2 host and PS2 device). These
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A10 Codec Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
"#sound-dai-cells":
|
"#sound-dai-cells":
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A10 I2S Controller Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
"#sound-dai-cells":
|
"#sound-dai-cells":
|
||||||
|
@ -10,7 +10,7 @@ maintainers:
|
|||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Liam Girdwood <lgirdwood@gmail.com>
|
- Liam Girdwood <lgirdwood@gmail.com>
|
||||||
- Mark Brown <broonie@kernel.org>
|
- Mark Brown <broonie@kernel.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
"#sound-dai-cells":
|
"#sound-dai-cells":
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A64 Analog Codec Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A23 Analog Codec Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A33 Codec Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
"#sound-dai-cells":
|
"#sound-dai-cells":
|
||||||
|
@ -11,7 +11,7 @@ allOf:
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
"#address-cells": true
|
"#address-cells": true
|
||||||
|
@ -11,7 +11,7 @@ allOf:
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
"#address-cells": true
|
"#address-cells": true
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A10 Timer Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A13 High-Speed Timer Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
@ -8,7 +8,7 @@ title: Allwinner A10 mUSB OTG Controller Device Tree Bindings
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
@ -11,7 +11,7 @@ allOf:
|
|||||||
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- Chen-Yu Tsai <wens@csie.org>
|
- Chen-Yu Tsai <wens@csie.org>
|
||||||
- Maxime Ripard <maxime.ripard@bootlin.com>
|
- Maxime Ripard <mripard@kernel.org>
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
|
@ -24,11 +24,11 @@ Here is the main features of EROFS:
|
|||||||
- Metadata & data could be mixed by design;
|
- Metadata & data could be mixed by design;
|
||||||
|
|
||||||
- 2 inode versions for different requirements:
|
- 2 inode versions for different requirements:
|
||||||
v1 v2
|
compact (v1) extended (v2)
|
||||||
Inode metadata size: 32 bytes 64 bytes
|
Inode metadata size: 32 bytes 64 bytes
|
||||||
Max file size: 4 GB 16 EB (also limited by max. vol size)
|
Max file size: 4 GB 16 EB (also limited by max. vol size)
|
||||||
Max uids/gids: 65536 4294967296
|
Max uids/gids: 65536 4294967296
|
||||||
File creation time: no yes (64 + 32-bit timestamp)
|
File change time: no yes (64 + 32-bit timestamp)
|
||||||
Max hardlinks: 65536 4294967296
|
Max hardlinks: 65536 4294967296
|
||||||
Metadata reserved: 4 bytes 14 bytes
|
Metadata reserved: 4 bytes 14 bytes
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ Here is the main features of EROFS:
|
|||||||
- Support POSIX.1e ACLs by using xattrs;
|
- Support POSIX.1e ACLs by using xattrs;
|
||||||
|
|
||||||
- Support transparent file compression as an option:
|
- Support transparent file compression as an option:
|
||||||
LZ4 algorithm with 4 KB fixed-output compression for high performance;
|
LZ4 algorithm with 4 KB fixed-sized output compression for high performance.
|
||||||
|
|
||||||
The following git tree provides the file system user-space tools under
|
The following git tree provides the file system user-space tools under
|
||||||
development (ex, formatting tool mkfs.erofs):
|
development (ex, formatting tool mkfs.erofs):
|
||||||
@ -85,7 +85,7 @@ All data areas should be aligned with the block size, but metadata areas
|
|||||||
may not. All metadatas can be now observed in two different spaces (views):
|
may not. All metadatas can be now observed in two different spaces (views):
|
||||||
1. Inode metadata space
|
1. Inode metadata space
|
||||||
Each valid inode should be aligned with an inode slot, which is a fixed
|
Each valid inode should be aligned with an inode slot, which is a fixed
|
||||||
value (32 bytes) and designed to be kept in line with v1 inode size.
|
value (32 bytes) and designed to be kept in line with compact inode size.
|
||||||
|
|
||||||
Each inode can be directly found with the following formula:
|
Each inode can be directly found with the following formula:
|
||||||
inode offset = meta_blkaddr * block_size + 32 * nid
|
inode offset = meta_blkaddr * block_size + 32 * nid
|
||||||
@ -117,10 +117,10 @@ may not. All metadatas can be now observed in two different spaces (views):
|
|||||||
|-> aligned with 4B
|
|-> aligned with 4B
|
||||||
|
|
||||||
Inode could be 32 or 64 bytes, which can be distinguished from a common
|
Inode could be 32 or 64 bytes, which can be distinguished from a common
|
||||||
field which all inode versions have -- i_advise:
|
field which all inode versions have -- i_format:
|
||||||
|
|
||||||
__________________ __________________
|
__________________ __________________
|
||||||
| i_advise | | i_advise |
|
| i_format | | i_format |
|
||||||
|__________________| |__________________|
|
|__________________| |__________________|
|
||||||
| ... | | ... |
|
| ... | | ... |
|
||||||
| | | |
|
| | | |
|
||||||
@ -129,12 +129,13 @@ may not. All metadatas can be now observed in two different spaces (views):
|
|||||||
|__________________| 64 bytes
|
|__________________| 64 bytes
|
||||||
|
|
||||||
Xattrs, extents, data inline are followed by the corresponding inode with
|
Xattrs, extents, data inline are followed by the corresponding inode with
|
||||||
proper alignes, and they could be optional for different data mappings,
|
proper alignment, and they could be optional for different data mappings.
|
||||||
_currently_ there are totally 3 valid data mappings supported:
|
_currently_ total 4 valid data mappings are supported:
|
||||||
|
|
||||||
1) flat file data without data inline (no extent);
|
0 flat file data without data inline (no extent);
|
||||||
2) fixed-output size data compression (must have extents);
|
1 fixed-sized output data compression (with non-compacted indexes);
|
||||||
3) flat file data with tail-end data inline (no extent);
|
2 flat file data with tail packing data inline (no extent);
|
||||||
|
3 fixed-sized output data compression (with compacted indexes, v5.3+).
|
||||||
|
|
||||||
The size of the optional xattrs is indicated by i_xattr_count in inode
|
The size of the optional xattrs is indicated by i_xattr_count in inode
|
||||||
header. Large xattrs or xattrs shared by many different files can be
|
header. Large xattrs or xattrs shared by many different files can be
|
||||||
@ -182,8 +183,8 @@ introduce another on-disk field at all.
|
|||||||
|
|
||||||
Compression
|
Compression
|
||||||
-----------
|
-----------
|
||||||
Currently, EROFS supports 4KB fixed-output clustersize transparent file
|
Currently, EROFS supports 4KB fixed-sized output transparent file compression,
|
||||||
compression, as illustrated below:
|
as illustrated below:
|
||||||
|
|
||||||
|---- Variant-Length Extent ----|-------- VLE --------|----- VLE -----
|
|---- Variant-Length Extent ----|-------- VLE --------|----- VLE -----
|
||||||
clusterofs clusterofs clusterofs
|
clusterofs clusterofs clusterofs
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
.. SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
Written by: Neil Brown
|
Written by: Neil Brown
|
||||||
Please see MAINTAINERS file for where to send questions.
|
Please see MAINTAINERS file for where to send questions.
|
||||||
|
|
||||||
@ -181,7 +183,7 @@ Kernel config options:
|
|||||||
worried about backward compatibility with kernels that have the redirect_dir
|
worried about backward compatibility with kernels that have the redirect_dir
|
||||||
feature and follow redirects even if turned off.
|
feature and follow redirects even if turned off.
|
||||||
|
|
||||||
Module options (can also be changed through /sys/module/overlay/parameters/*):
|
Module options (can also be changed through /sys/module/overlay/parameters/):
|
||||||
|
|
||||||
- "redirect_dir=BOOL":
|
- "redirect_dir=BOOL":
|
||||||
See OVERLAY_FS_REDIRECT_DIR kernel config option above.
|
See OVERLAY_FS_REDIRECT_DIR kernel config option above.
|
||||||
@ -263,7 +265,7 @@ top, lower2 the middle and lower3 the bottom layer.
|
|||||||
|
|
||||||
|
|
||||||
Metadata only copy up
|
Metadata only copy up
|
||||||
--------------------
|
---------------------
|
||||||
|
|
||||||
When metadata only copy up feature is enabled, overlayfs will only copy
|
When metadata only copy up feature is enabled, overlayfs will only copy
|
||||||
up metadata (as opposed to whole file), when a metadata specific operation
|
up metadata (as opposed to whole file), when a metadata specific operation
|
||||||
@ -286,10 +288,10 @@ pointed by REDIRECT. This should not be possible on local system as setting
|
|||||||
"trusted." xattrs will require CAP_SYS_ADMIN. But it should be possible
|
"trusted." xattrs will require CAP_SYS_ADMIN. But it should be possible
|
||||||
for untrusted layers like from a pen drive.
|
for untrusted layers like from a pen drive.
|
||||||
|
|
||||||
Note: redirect_dir={off|nofollow|follow(*)} conflicts with metacopy=on, and
|
Note: redirect_dir={off|nofollow|follow[*]} conflicts with metacopy=on, and
|
||||||
results in an error.
|
results in an error.
|
||||||
|
|
||||||
(*) redirect_dir=follow only conflicts with metacopy=on if upperdir=... is
|
[*] redirect_dir=follow only conflicts with metacopy=on if upperdir=... is
|
||||||
given.
|
given.
|
||||||
|
|
||||||
Sharing and copying layers
|
Sharing and copying layers
|
@ -196,14 +196,11 @@ applicable everywhere (see syntax).
|
|||||||
or equal to the first symbol and smaller than or equal to the second
|
or equal to the first symbol and smaller than or equal to the second
|
||||||
symbol.
|
symbol.
|
||||||
|
|
||||||
- help text: "help" or "---help---"
|
- help text: "help"
|
||||||
|
|
||||||
This defines a help text. The end of the help text is determined by
|
This defines a help text. The end of the help text is determined by
|
||||||
the indentation level, this means it ends at the first line which has
|
the indentation level, this means it ends at the first line which has
|
||||||
a smaller indentation than the first line of the help text.
|
a smaller indentation than the first line of the help text.
|
||||||
"---help---" and "help" do not differ in behaviour, "---help---" is
|
|
||||||
used to help visually separate configuration logic from help within
|
|
||||||
the file as an aid to developers.
|
|
||||||
|
|
||||||
- misc options: "option" <symbol>[=<value>]
|
- misc options: "option" <symbol>[=<value>]
|
||||||
|
|
||||||
|
@ -297,9 +297,19 @@ more details, with real examples.
|
|||||||
If CONFIG_EXT2_FS is set to either 'y' (built-in) or 'm' (modular)
|
If CONFIG_EXT2_FS is set to either 'y' (built-in) or 'm' (modular)
|
||||||
the corresponding obj- variable will be set, and kbuild will descend
|
the corresponding obj- variable will be set, and kbuild will descend
|
||||||
down in the ext2 directory.
|
down in the ext2 directory.
|
||||||
Kbuild only uses this information to decide that it needs to visit
|
|
||||||
the directory, it is the Makefile in the subdirectory that
|
Kbuild uses this information not only to decide that it needs to visit
|
||||||
specifies what is modular and what is built-in.
|
the directory, but also to decide whether or not to link objects from
|
||||||
|
the directory into vmlinux.
|
||||||
|
|
||||||
|
When Kbuild descends into the directory with 'y', all built-in objects
|
||||||
|
from that directory are combined into the built-in.a, which will be
|
||||||
|
eventually linked into vmlinux.
|
||||||
|
|
||||||
|
When Kbuild descends into the directory with 'm', in contrast, nothing
|
||||||
|
from that directory will be linked into vmlinux. If the Makefile in
|
||||||
|
that directory specifies obj-y, those objects will be left orphan.
|
||||||
|
It is very likely a bug of the Makefile or of dependencies in Kconfig.
|
||||||
|
|
||||||
It is good practice to use a `CONFIG_` variable when assigning directory
|
It is good practice to use a `CONFIG_` variable when assigning directory
|
||||||
names. This allows kbuild to totally skip the directory if the
|
names. This allows kbuild to totally skip the directory if the
|
||||||
|
@ -339,7 +339,7 @@ To claim an address following code example can be used:
|
|||||||
.pgn = J1939_PGN_ADDRESS_CLAIMED,
|
.pgn = J1939_PGN_ADDRESS_CLAIMED,
|
||||||
.pgn_mask = J1939_PGN_PDU1_MAX,
|
.pgn_mask = J1939_PGN_PDU1_MAX,
|
||||||
}, {
|
}, {
|
||||||
.pgn = J1939_PGN_ADDRESS_REQUEST,
|
.pgn = J1939_PGN_REQUEST,
|
||||||
.pgn_mask = J1939_PGN_PDU1_MAX,
|
.pgn_mask = J1939_PGN_PDU1_MAX,
|
||||||
}, {
|
}, {
|
||||||
.pgn = J1939_PGN_ADDRESS_COMMANDED,
|
.pgn = J1939_PGN_ADDRESS_COMMANDED,
|
||||||
|
@ -988,7 +988,7 @@ Similarly, if you need to calculate the size of some structure member, use
|
|||||||
|
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
|
|
||||||
#define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
|
#define sizeof_field(t, f) (sizeof(((t*)0)->f))
|
||||||
|
|
||||||
There are also min() and max() macros that do strict type checking if you
|
There are also min() and max() macros that do strict type checking if you
|
||||||
need them. Feel free to peruse that header file to see what else is already
|
need them. Feel free to peruse that header file to see what else is already
|
||||||
|
@ -29,7 +29,7 @@ smartpqi specific entries in /sys
|
|||||||
smartpqi host attributes:
|
smartpqi host attributes:
|
||||||
-------------------------
|
-------------------------
|
||||||
/sys/class/scsi_host/host*/rescan
|
/sys/class/scsi_host/host*/rescan
|
||||||
/sys/class/scsi_host/host*/version
|
/sys/class/scsi_host/host*/driver_version
|
||||||
|
|
||||||
The host rescan attribute is a write only attribute. Writing to this
|
The host rescan attribute is a write only attribute. Writing to this
|
||||||
attribute will trigger the driver to scan for new, changed, or removed
|
attribute will trigger the driver to scan for new, changed, or removed
|
||||||
|
@ -1005,7 +1005,7 @@ struttura, usate
|
|||||||
|
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
|
|
||||||
#define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
|
#define sizeof_field(t, f) (sizeof(((t*)0)->f))
|
||||||
|
|
||||||
Ci sono anche le macro min() e max() che, se vi serve, effettuano un controllo
|
Ci sono anche le macro min() e max() che, se vi serve, effettuano un controllo
|
||||||
rigido sui tipi. Sentitevi liberi di leggere attentamente questo file
|
rigido sui tipi. Sentitevi liberi di leggere attentamente questo file
|
||||||
|
@ -826,7 +826,7 @@ inline gcc 也可以自动使其内联。而且其他用户可能会要求移除
|
|||||||
|
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
|
|
||||||
#define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
|
#define sizeof_field(t, f) (sizeof(((t*)0)->f))
|
||||||
|
|
||||||
还有可以做严格的类型检查的 min() 和 max() 宏,如果你需要可以使用它们。你可以
|
还有可以做严格的类型检查的 min() 和 max() 宏,如果你需要可以使用它们。你可以
|
||||||
自己看看那个头文件里还定义了什么你可以拿来用的东西,如果有定义的话,你就不应
|
自己看看那个头文件里还定义了什么你可以拿来用的东西,如果有定义的话,你就不应
|
||||||
|
36
MAINTAINERS
36
MAINTAINERS
@ -2272,6 +2272,7 @@ F: drivers/*/*s3c64xx*
|
|||||||
F: drivers/*/*s5pv210*
|
F: drivers/*/*s5pv210*
|
||||||
F: drivers/memory/samsung/
|
F: drivers/memory/samsung/
|
||||||
F: drivers/soc/samsung/
|
F: drivers/soc/samsung/
|
||||||
|
F: drivers/tty/serial/samsung*
|
||||||
F: include/linux/soc/samsung/
|
F: include/linux/soc/samsung/
|
||||||
F: Documentation/arm/samsung/
|
F: Documentation/arm/samsung/
|
||||||
F: Documentation/devicetree/bindings/arm/samsung/
|
F: Documentation/devicetree/bindings/arm/samsung/
|
||||||
@ -4970,6 +4971,7 @@ F: include/linux/dma-buf*
|
|||||||
F: include/linux/reservation.h
|
F: include/linux/reservation.h
|
||||||
F: include/linux/*fence.h
|
F: include/linux/*fence.h
|
||||||
F: Documentation/driver-api/dma-buf.rst
|
F: Documentation/driver-api/dma-buf.rst
|
||||||
|
K: dma_(buf|fence|resv)
|
||||||
T: git git://anongit.freedesktop.org/drm/drm-misc
|
T: git git://anongit.freedesktop.org/drm/drm-misc
|
||||||
|
|
||||||
DMA GENERIC OFFLOAD ENGINE SUBSYSTEM
|
DMA GENERIC OFFLOAD ENGINE SUBSYSTEM
|
||||||
@ -4999,7 +5001,7 @@ F: include/linux/dma-mapping.h
|
|||||||
F: include/linux/dma-noncoherent.h
|
F: include/linux/dma-noncoherent.h
|
||||||
|
|
||||||
DMC FREQUENCY DRIVER FOR SAMSUNG EXYNOS5422
|
DMC FREQUENCY DRIVER FOR SAMSUNG EXYNOS5422
|
||||||
M: Lukasz Luba <l.luba@partner.samsung.com>
|
M: Lukasz Luba <lukasz.luba@arm.com>
|
||||||
L: linux-pm@vger.kernel.org
|
L: linux-pm@vger.kernel.org
|
||||||
L: linux-samsung-soc@vger.kernel.org
|
L: linux-samsung-soc@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
@ -6025,6 +6027,7 @@ M: Yash Shah <yash.shah@sifive.com>
|
|||||||
L: linux-edac@vger.kernel.org
|
L: linux-edac@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
F: drivers/edac/sifive_edac.c
|
F: drivers/edac/sifive_edac.c
|
||||||
|
F: drivers/soc/sifive_l2_cache.c
|
||||||
|
|
||||||
EDAC-SKYLAKE
|
EDAC-SKYLAKE
|
||||||
M: Tony Luck <tony.luck@intel.com>
|
M: Tony Luck <tony.luck@intel.com>
|
||||||
@ -9038,7 +9041,6 @@ F: include/linux/umh.h
|
|||||||
|
|
||||||
KERNEL VIRTUAL MACHINE (KVM)
|
KERNEL VIRTUAL MACHINE (KVM)
|
||||||
M: Paolo Bonzini <pbonzini@redhat.com>
|
M: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
M: Radim Krčmář <rkrcmar@redhat.com>
|
|
||||||
L: kvm@vger.kernel.org
|
L: kvm@vger.kernel.org
|
||||||
W: http://www.linux-kvm.org
|
W: http://www.linux-kvm.org
|
||||||
T: git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
|
T: git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
|
||||||
@ -9073,9 +9075,9 @@ F: virt/kvm/arm/
|
|||||||
F: include/kvm/arm_*
|
F: include/kvm/arm_*
|
||||||
|
|
||||||
KERNEL VIRTUAL MACHINE FOR MIPS (KVM/mips)
|
KERNEL VIRTUAL MACHINE FOR MIPS (KVM/mips)
|
||||||
M: James Hogan <jhogan@kernel.org>
|
|
||||||
L: linux-mips@vger.kernel.org
|
L: linux-mips@vger.kernel.org
|
||||||
S: Supported
|
L: kvm@vger.kernel.org
|
||||||
|
S: Orphan
|
||||||
F: arch/mips/include/uapi/asm/kvm*
|
F: arch/mips/include/uapi/asm/kvm*
|
||||||
F: arch/mips/include/asm/kvm*
|
F: arch/mips/include/asm/kvm*
|
||||||
F: arch/mips/kvm/
|
F: arch/mips/kvm/
|
||||||
@ -9110,7 +9112,6 @@ F: tools/testing/selftests/kvm/*/s390x/
|
|||||||
|
|
||||||
KERNEL VIRTUAL MACHINE FOR X86 (KVM/x86)
|
KERNEL VIRTUAL MACHINE FOR X86 (KVM/x86)
|
||||||
M: Paolo Bonzini <pbonzini@redhat.com>
|
M: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
M: Radim Krčmář <rkrcmar@redhat.com>
|
|
||||||
R: Sean Christopherson <sean.j.christopherson@intel.com>
|
R: Sean Christopherson <sean.j.christopherson@intel.com>
|
||||||
R: Vitaly Kuznetsov <vkuznets@redhat.com>
|
R: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||||
R: Wanpeng Li <wanpengli@tencent.com>
|
R: Wanpeng Li <wanpengli@tencent.com>
|
||||||
@ -10108,6 +10109,7 @@ S: Maintained
|
|||||||
F: drivers/media/radio/radio-maxiradio*
|
F: drivers/media/radio/radio-maxiradio*
|
||||||
|
|
||||||
MCAN MMIO DEVICE DRIVER
|
MCAN MMIO DEVICE DRIVER
|
||||||
|
M: Dan Murphy <dmurphy@ti.com>
|
||||||
M: Sriram Dash <sriram.dash@samsung.com>
|
M: Sriram Dash <sriram.dash@samsung.com>
|
||||||
L: linux-can@vger.kernel.org
|
L: linux-can@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
@ -12393,7 +12395,7 @@ L: linux-unionfs@vger.kernel.org
|
|||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs.git
|
||||||
S: Supported
|
S: Supported
|
||||||
F: fs/overlayfs/
|
F: fs/overlayfs/
|
||||||
F: Documentation/filesystems/overlayfs.txt
|
F: Documentation/filesystems/overlayfs.rst
|
||||||
|
|
||||||
P54 WIRELESS DRIVER
|
P54 WIRELESS DRIVER
|
||||||
M: Christian Lamparter <chunkeey@googlemail.com>
|
M: Christian Lamparter <chunkeey@googlemail.com>
|
||||||
@ -13708,6 +13710,15 @@ L: linux-arm-msm@vger.kernel.org
|
|||||||
S: Maintained
|
S: Maintained
|
||||||
F: drivers/iommu/qcom_iommu.c
|
F: drivers/iommu/qcom_iommu.c
|
||||||
|
|
||||||
|
QUALCOMM RMNET DRIVER
|
||||||
|
M: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
|
||||||
|
M: Sean Tranchetti <stranche@codeaurora.org>
|
||||||
|
L: netdev@vger.kernel.org
|
||||||
|
S: Maintained
|
||||||
|
F: drivers/net/ethernet/qualcomm/rmnet/
|
||||||
|
F: Documentation/networking/device_drivers/qualcomm/rmnet.txt
|
||||||
|
F: include/linux/if_rmnet.h
|
||||||
|
|
||||||
QUALCOMM TSENS THERMAL DRIVER
|
QUALCOMM TSENS THERMAL DRIVER
|
||||||
M: Amit Kucheria <amit.kucheria@linaro.org>
|
M: Amit Kucheria <amit.kucheria@linaro.org>
|
||||||
L: linux-pm@vger.kernel.org
|
L: linux-pm@vger.kernel.org
|
||||||
@ -16314,12 +16325,10 @@ F: drivers/media/radio/radio-raremono.c
|
|||||||
|
|
||||||
THERMAL
|
THERMAL
|
||||||
M: Zhang Rui <rui.zhang@intel.com>
|
M: Zhang Rui <rui.zhang@intel.com>
|
||||||
M: Eduardo Valentin <edubezval@gmail.com>
|
M: Daniel Lezcano <daniel.lezcano@linaro.org>
|
||||||
R: Daniel Lezcano <daniel.lezcano@linaro.org>
|
|
||||||
R: Amit Kucheria <amit.kucheria@verdurent.com>
|
R: Amit Kucheria <amit.kucheria@verdurent.com>
|
||||||
L: linux-pm@vger.kernel.org
|
L: linux-pm@vger.kernel.org
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux.git
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal.git
|
|
||||||
Q: https://patchwork.kernel.org/project/linux-pm/list/
|
Q: https://patchwork.kernel.org/project/linux-pm/list/
|
||||||
S: Supported
|
S: Supported
|
||||||
F: drivers/thermal/
|
F: drivers/thermal/
|
||||||
@ -16533,6 +16542,13 @@ L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
|||||||
S: Odd Fixes
|
S: Odd Fixes
|
||||||
F: sound/soc/codecs/tas571x*
|
F: sound/soc/codecs/tas571x*
|
||||||
|
|
||||||
|
TI TCAN4X5X DEVICE DRIVER
|
||||||
|
M: Dan Murphy <dmurphy@ti.com>
|
||||||
|
L: linux-can@vger.kernel.org
|
||||||
|
S: Maintained
|
||||||
|
F: Documentation/devicetree/bindings/net/can/tcan4x5x.txt
|
||||||
|
F: drivers/net/can/m_can/tcan4x5x.c
|
||||||
|
|
||||||
TI TRF7970A NFC DRIVER
|
TI TRF7970A NFC DRIVER
|
||||||
M: Mark Greer <mgreer@animalcreek.com>
|
M: Mark Greer <mgreer@animalcreek.com>
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
|
5
Makefile
5
Makefile
@ -2,7 +2,7 @@
|
|||||||
VERSION = 5
|
VERSION = 5
|
||||||
PATCHLEVEL = 5
|
PATCHLEVEL = 5
|
||||||
SUBLEVEL = 0
|
SUBLEVEL = 0
|
||||||
EXTRAVERSION = -rc1
|
EXTRAVERSION = -rc3
|
||||||
NAME = Kleptomaniac Octopus
|
NAME = Kleptomaniac Octopus
|
||||||
|
|
||||||
# *DOCUMENTATION*
|
# *DOCUMENTATION*
|
||||||
@ -414,6 +414,7 @@ STRIP = $(CROSS_COMPILE)strip
|
|||||||
OBJCOPY = $(CROSS_COMPILE)objcopy
|
OBJCOPY = $(CROSS_COMPILE)objcopy
|
||||||
OBJDUMP = $(CROSS_COMPILE)objdump
|
OBJDUMP = $(CROSS_COMPILE)objdump
|
||||||
OBJSIZE = $(CROSS_COMPILE)size
|
OBJSIZE = $(CROSS_COMPILE)size
|
||||||
|
READELF = $(CROSS_COMPILE)readelf
|
||||||
PAHOLE = pahole
|
PAHOLE = pahole
|
||||||
LEX = flex
|
LEX = flex
|
||||||
YACC = bison
|
YACC = bison
|
||||||
@ -472,7 +473,7 @@ GCC_PLUGINS_CFLAGS :=
|
|||||||
CLANG_FLAGS :=
|
CLANG_FLAGS :=
|
||||||
|
|
||||||
export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE AS LD CC
|
export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE AS LD CC
|
||||||
export CPP AR NM STRIP OBJCOPY OBJDUMP OBJSIZE PAHOLE LEX YACC AWK INSTALLKERNEL
|
export CPP AR NM STRIP OBJCOPY OBJDUMP OBJSIZE READELF PAHOLE LEX YACC AWK INSTALLKERNEL
|
||||||
export PERL PYTHON PYTHON2 PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX
|
export PERL PYTHON PYTHON2 PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX
|
||||||
export KBUILD_HOSTCXXFLAGS KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS LDFLAGS_MODULE
|
export KBUILD_HOSTCXXFLAGS KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS LDFLAGS_MODULE
|
||||||
|
|
||||||
|
@ -42,10 +42,10 @@ do { \
|
|||||||
|
|
||||||
#define EXTRA_INFO(f) { \
|
#define EXTRA_INFO(f) { \
|
||||||
BUILD_BUG_ON_ZERO(offsetof(struct unwind_frame_info, f) \
|
BUILD_BUG_ON_ZERO(offsetof(struct unwind_frame_info, f) \
|
||||||
% FIELD_SIZEOF(struct unwind_frame_info, f)) \
|
% sizeof_field(struct unwind_frame_info, f)) \
|
||||||
+ offsetof(struct unwind_frame_info, f) \
|
+ offsetof(struct unwind_frame_info, f) \
|
||||||
/ FIELD_SIZEOF(struct unwind_frame_info, f), \
|
/ sizeof_field(struct unwind_frame_info, f), \
|
||||||
FIELD_SIZEOF(struct unwind_frame_info, f) \
|
sizeof_field(struct unwind_frame_info, f) \
|
||||||
}
|
}
|
||||||
#define PTREGS_INFO(f) EXTRA_INFO(regs.f)
|
#define PTREGS_INFO(f) EXTRA_INFO(regs.f)
|
||||||
|
|
||||||
|
@ -108,7 +108,7 @@
|
|||||||
|
|
||||||
&cpsw_emac0 {
|
&cpsw_emac0 {
|
||||||
phy-handle = <ðphy0>;
|
phy-handle = <ðphy0>;
|
||||||
phy-mode = "rgmii-txid";
|
phy-mode = "rgmii-id";
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
|
@ -86,7 +86,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
lcd0: display {
|
lcd0: display {
|
||||||
compatible = "osddisplays,osd057T0559-34ts", "panel-dpi";
|
compatible = "osddisplays,osd070t1718-19ts", "panel-dpi";
|
||||||
label = "lcd";
|
label = "lcd";
|
||||||
|
|
||||||
backlight = <&lcd_bl>;
|
backlight = <&lcd_bl>;
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
lcd0: display {
|
lcd0: display {
|
||||||
compatible = "osddisplays,osd057T0559-34ts", "panel-dpi";
|
compatible = "osddisplays,osd070t1718-19ts", "panel-dpi";
|
||||||
label = "lcd";
|
label = "lcd";
|
||||||
|
|
||||||
backlight = <&lcd_bl>;
|
backlight = <&lcd_bl>;
|
||||||
|
@ -174,8 +174,8 @@
|
|||||||
mdio: mdio@18002000 {
|
mdio: mdio@18002000 {
|
||||||
compatible = "brcm,iproc-mdio";
|
compatible = "brcm,iproc-mdio";
|
||||||
reg = <0x18002000 0x8>;
|
reg = <0x18002000 0x8>;
|
||||||
#size-cells = <1>;
|
#size-cells = <0>;
|
||||||
#address-cells = <0>;
|
#address-cells = <1>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
|
|
||||||
gphy0: ethernet-phy@0 {
|
gphy0: ethernet-phy@0 {
|
||||||
|
@ -43,7 +43,7 @@
|
|||||||
<0x7c000000 0x0 0xfc000000 0x02000000>,
|
<0x7c000000 0x0 0xfc000000 0x02000000>,
|
||||||
<0x40000000 0x0 0xff800000 0x00800000>;
|
<0x40000000 0x0 0xff800000 0x00800000>;
|
||||||
/* Emulate a contiguous 30-bit address range for DMA */
|
/* Emulate a contiguous 30-bit address range for DMA */
|
||||||
dma-ranges = <0xc0000000 0x0 0x00000000 0x3c000000>;
|
dma-ranges = <0xc0000000 0x0 0x00000000 0x40000000>;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This node is the provider for the enable-method for
|
* This node is the provider for the enable-method for
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
|
|
||||||
trips {
|
trips {
|
||||||
cpu-crit {
|
cpu-crit {
|
||||||
temperature = <80000>;
|
temperature = <90000>;
|
||||||
hysteresis = <0>;
|
hysteresis = <0>;
|
||||||
type = "critical";
|
type = "critical";
|
||||||
};
|
};
|
||||||
|
@ -353,8 +353,8 @@
|
|||||||
mdio: mdio@18003000 {
|
mdio: mdio@18003000 {
|
||||||
compatible = "brcm,iproc-mdio";
|
compatible = "brcm,iproc-mdio";
|
||||||
reg = <0x18003000 0x8>;
|
reg = <0x18003000 0x8>;
|
||||||
#size-cells = <1>;
|
#size-cells = <0>;
|
||||||
#address-cells = <0>;
|
#address-cells = <1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
mdio-bus-mux@18003000 {
|
mdio-bus-mux@18003000 {
|
||||||
|
@ -265,11 +265,6 @@
|
|||||||
regulator-name = "LDORTC1";
|
regulator-name = "LDORTC1";
|
||||||
regulator-boot-on;
|
regulator-boot-on;
|
||||||
};
|
};
|
||||||
|
|
||||||
ldortc2_reg: LDORTC2 {
|
|
||||||
regulator-name = "LDORTC2";
|
|
||||||
regulator-boot-on;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -30,14 +30,26 @@
|
|||||||
enable-active-high;
|
enable-active-high;
|
||||||
};
|
};
|
||||||
|
|
||||||
reg_sensors: regulator-sensors {
|
reg_peri_3v3: regulator-peri-3v3 {
|
||||||
compatible = "regulator-fixed";
|
compatible = "regulator-fixed";
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&pinctrl_sensors_reg>;
|
pinctrl-0 = <&pinctrl_peri_3v3>;
|
||||||
regulator-name = "sensors-supply";
|
regulator-name = "VPERI_3V3";
|
||||||
regulator-min-microvolt = <3300000>;
|
regulator-min-microvolt = <3300000>;
|
||||||
regulator-max-microvolt = <3300000>;
|
regulator-max-microvolt = <3300000>;
|
||||||
gpio = <&gpio5 2 GPIO_ACTIVE_LOW>;
|
gpio = <&gpio5 2 GPIO_ACTIVE_LOW>;
|
||||||
|
/*
|
||||||
|
* If you want to want to make this dynamic please
|
||||||
|
* check schematics and test all affected peripherals:
|
||||||
|
*
|
||||||
|
* - sensors
|
||||||
|
* - ethernet phy
|
||||||
|
* - can
|
||||||
|
* - bluetooth
|
||||||
|
* - wm8960 audio codec
|
||||||
|
* - ov5640 camera
|
||||||
|
*/
|
||||||
|
regulator-always-on;
|
||||||
};
|
};
|
||||||
|
|
||||||
reg_can_3v3: regulator-can-3v3 {
|
reg_can_3v3: regulator-can-3v3 {
|
||||||
@ -140,6 +152,7 @@
|
|||||||
pinctrl-0 = <&pinctrl_enet1>;
|
pinctrl-0 = <&pinctrl_enet1>;
|
||||||
phy-mode = "rmii";
|
phy-mode = "rmii";
|
||||||
phy-handle = <ðphy0>;
|
phy-handle = <ðphy0>;
|
||||||
|
phy-supply = <®_peri_3v3>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -148,6 +161,7 @@
|
|||||||
pinctrl-0 = <&pinctrl_enet2>;
|
pinctrl-0 = <&pinctrl_enet2>;
|
||||||
phy-mode = "rmii";
|
phy-mode = "rmii";
|
||||||
phy-handle = <ðphy1>;
|
phy-handle = <ðphy1>;
|
||||||
|
phy-supply = <®_peri_3v3>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
mdio {
|
mdio {
|
||||||
@ -193,8 +207,8 @@
|
|||||||
magnetometer@e {
|
magnetometer@e {
|
||||||
compatible = "fsl,mag3110";
|
compatible = "fsl,mag3110";
|
||||||
reg = <0x0e>;
|
reg = <0x0e>;
|
||||||
vdd-supply = <®_sensors>;
|
vdd-supply = <®_peri_3v3>;
|
||||||
vddio-supply = <®_sensors>;
|
vddio-supply = <®_peri_3v3>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -227,7 +241,7 @@
|
|||||||
flash0: n25q256a@0 {
|
flash0: n25q256a@0 {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
compatible = "micron,n25q256a";
|
compatible = "micron,n25q256a", "jedec,spi-nor";
|
||||||
spi-max-frequency = <29000000>;
|
spi-max-frequency = <29000000>;
|
||||||
spi-rx-bus-width = <4>;
|
spi-rx-bus-width = <4>;
|
||||||
spi-tx-bus-width = <4>;
|
spi-tx-bus-width = <4>;
|
||||||
@ -462,7 +476,7 @@
|
|||||||
>;
|
>;
|
||||||
};
|
};
|
||||||
|
|
||||||
pinctrl_sensors_reg: sensorsreggrp {
|
pinctrl_peri_3v3: peri3v3grp {
|
||||||
fsl,pins = <
|
fsl,pins = <
|
||||||
MX6UL_PAD_SNVS_TAMPER2__GPIO5_IO02 0x1b0b0
|
MX6UL_PAD_SNVS_TAMPER2__GPIO5_IO02 0x1b0b0
|
||||||
>;
|
>;
|
||||||
|
@ -350,6 +350,7 @@ CONFIG_PRINTK_TIME=y
|
|||||||
CONFIG_DYNAMIC_DEBUG=y
|
CONFIG_DYNAMIC_DEBUG=y
|
||||||
CONFIG_DEBUG_INFO=y
|
CONFIG_DEBUG_INFO=y
|
||||||
CONFIG_MAGIC_SYSRQ=y
|
CONFIG_MAGIC_SYSRQ=y
|
||||||
|
CONFIG_DEBUG_FS=y
|
||||||
CONFIG_DEBUG_KERNEL=y
|
CONFIG_DEBUG_KERNEL=y
|
||||||
CONFIG_SOFTLOCKUP_DETECTOR=y
|
CONFIG_SOFTLOCKUP_DETECTOR=y
|
||||||
# CONFIG_DETECT_HUNG_TASK is not set
|
# CONFIG_DETECT_HUNG_TASK is not set
|
||||||
|
@ -462,6 +462,7 @@ CONFIG_FONT_8x8=y
|
|||||||
CONFIG_FONT_8x16=y
|
CONFIG_FONT_8x16=y
|
||||||
CONFIG_PRINTK_TIME=y
|
CONFIG_PRINTK_TIME=y
|
||||||
CONFIG_MAGIC_SYSRQ=y
|
CONFIG_MAGIC_SYSRQ=y
|
||||||
|
CONFIG_DEBUG_FS=y
|
||||||
# CONFIG_SCHED_DEBUG is not set
|
# CONFIG_SCHED_DEBUG is not set
|
||||||
CONFIG_PROVE_LOCKING=y
|
CONFIG_PROVE_LOCKING=y
|
||||||
# CONFIG_DEBUG_BUGVERBOSE is not set
|
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||||
|
@ -92,6 +92,7 @@ CONFIG_IP_PNP_BOOTP=y
|
|||||||
CONFIG_IP_PNP_RARP=y
|
CONFIG_IP_PNP_RARP=y
|
||||||
CONFIG_NETFILTER=y
|
CONFIG_NETFILTER=y
|
||||||
CONFIG_PHONET=m
|
CONFIG_PHONET=m
|
||||||
|
CONFIG_NET_SWITCHDEV=y
|
||||||
CONFIG_CAN=m
|
CONFIG_CAN=m
|
||||||
CONFIG_CAN_C_CAN=m
|
CONFIG_CAN_C_CAN=m
|
||||||
CONFIG_CAN_C_CAN_PLATFORM=m
|
CONFIG_CAN_C_CAN_PLATFORM=m
|
||||||
@ -181,6 +182,7 @@ CONFIG_SMSC911X=y
|
|||||||
# CONFIG_NET_VENDOR_STMICRO is not set
|
# CONFIG_NET_VENDOR_STMICRO is not set
|
||||||
CONFIG_TI_DAVINCI_EMAC=y
|
CONFIG_TI_DAVINCI_EMAC=y
|
||||||
CONFIG_TI_CPSW=y
|
CONFIG_TI_CPSW=y
|
||||||
|
CONFIG_TI_CPSW_SWITCHDEV=y
|
||||||
CONFIG_TI_CPTS=y
|
CONFIG_TI_CPTS=y
|
||||||
# CONFIG_NET_VENDOR_VIA is not set
|
# CONFIG_NET_VENDOR_VIA is not set
|
||||||
# CONFIG_NET_VENDOR_WIZNET is not set
|
# CONFIG_NET_VENDOR_WIZNET is not set
|
||||||
@ -554,6 +556,6 @@ CONFIG_DEBUG_INFO=y
|
|||||||
CONFIG_DEBUG_INFO_SPLIT=y
|
CONFIG_DEBUG_INFO_SPLIT=y
|
||||||
CONFIG_DEBUG_INFO_DWARF4=y
|
CONFIG_DEBUG_INFO_DWARF4=y
|
||||||
CONFIG_MAGIC_SYSRQ=y
|
CONFIG_MAGIC_SYSRQ=y
|
||||||
|
CONFIG_DEBUG_FS=y
|
||||||
CONFIG_SCHEDSTATS=y
|
CONFIG_SCHEDSTATS=y
|
||||||
# CONFIG_DEBUG_BUGVERBOSE is not set
|
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||||
CONFIG_TI_CPSW_SWITCHDEV=y
|
|
||||||
|
@ -212,4 +212,5 @@ CONFIG_DMA_CMA=y
|
|||||||
CONFIG_CMA_SIZE_MBYTES=64
|
CONFIG_CMA_SIZE_MBYTES=64
|
||||||
CONFIG_PRINTK_TIME=y
|
CONFIG_PRINTK_TIME=y
|
||||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||||
|
CONFIG_DEBUG_FS=y
|
||||||
CONFIG_DEBUG_KERNEL=y
|
CONFIG_DEBUG_KERNEL=y
|
||||||
|
@ -38,6 +38,13 @@ void curve25519_arch(u8 out[CURVE25519_KEY_SIZE],
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(curve25519_arch);
|
EXPORT_SYMBOL(curve25519_arch);
|
||||||
|
|
||||||
|
void curve25519_base_arch(u8 pub[CURVE25519_KEY_SIZE],
|
||||||
|
const u8 secret[CURVE25519_KEY_SIZE])
|
||||||
|
{
|
||||||
|
return curve25519_arch(pub, secret, curve25519_base_point);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(curve25519_base_arch);
|
||||||
|
|
||||||
static int curve25519_set_secret(struct crypto_kpp *tfm, const void *buf,
|
static int curve25519_set_secret(struct crypto_kpp *tfm, const void *buf,
|
||||||
unsigned int len)
|
unsigned int len)
|
||||||
{
|
{
|
||||||
|
@ -13,6 +13,7 @@ static const char * const bcm2711_compat[] = {
|
|||||||
#ifdef CONFIG_ARCH_MULTI_V7
|
#ifdef CONFIG_ARCH_MULTI_V7
|
||||||
"brcm,bcm2711",
|
"brcm,bcm2711",
|
||||||
#endif
|
#endif
|
||||||
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
DT_MACHINE_START(BCM2711, "BCM2711")
|
DT_MACHINE_START(BCM2711, "BCM2711")
|
||||||
|
@ -84,7 +84,7 @@ struct device * __init imx_soc_device_init(void)
|
|||||||
const char *ocotp_compat = NULL;
|
const char *ocotp_compat = NULL;
|
||||||
struct soc_device *soc_dev;
|
struct soc_device *soc_dev;
|
||||||
struct device_node *root;
|
struct device_node *root;
|
||||||
struct regmap *ocotp;
|
struct regmap *ocotp = NULL;
|
||||||
const char *soc_id;
|
const char *soc_id;
|
||||||
u64 soc_uid = 0;
|
u64 soc_uid = 0;
|
||||||
u32 val;
|
u32 val;
|
||||||
@ -148,11 +148,11 @@ struct device * __init imx_soc_device_init(void)
|
|||||||
soc_id = "i.MX6UL";
|
soc_id = "i.MX6UL";
|
||||||
break;
|
break;
|
||||||
case MXC_CPU_IMX6ULL:
|
case MXC_CPU_IMX6ULL:
|
||||||
ocotp_compat = "fsl,imx6ul-ocotp";
|
ocotp_compat = "fsl,imx6ull-ocotp";
|
||||||
soc_id = "i.MX6ULL";
|
soc_id = "i.MX6ULL";
|
||||||
break;
|
break;
|
||||||
case MXC_CPU_IMX6ULZ:
|
case MXC_CPU_IMX6ULZ:
|
||||||
ocotp_compat = "fsl,imx6ul-ocotp";
|
ocotp_compat = "fsl,imx6ull-ocotp";
|
||||||
soc_id = "i.MX6ULZ";
|
soc_id = "i.MX6ULZ";
|
||||||
break;
|
break;
|
||||||
case MXC_CPU_IMX6SLL:
|
case MXC_CPU_IMX6SLL:
|
||||||
@ -175,7 +175,9 @@ struct device * __init imx_soc_device_init(void)
|
|||||||
ocotp = syscon_regmap_lookup_by_compatible(ocotp_compat);
|
ocotp = syscon_regmap_lookup_by_compatible(ocotp_compat);
|
||||||
if (IS_ERR(ocotp))
|
if (IS_ERR(ocotp))
|
||||||
pr_err("%s: failed to find %s regmap!\n", __func__, ocotp_compat);
|
pr_err("%s: failed to find %s regmap!\n", __func__, ocotp_compat);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!IS_ERR_OR_NULL(ocotp)) {
|
||||||
regmap_read(ocotp, OCOTP_UID_H, &val);
|
regmap_read(ocotp, OCOTP_UID_H, &val);
|
||||||
soc_uid = val;
|
soc_uid = val;
|
||||||
regmap_read(ocotp, OCOTP_UID_L, &val);
|
regmap_read(ocotp, OCOTP_UID_L, &val);
|
||||||
|
@ -17,9 +17,9 @@ extern void pxa168_clear_keypad_wakeup(void);
|
|||||||
#include <linux/platform_data/keypad-pxa27x.h>
|
#include <linux/platform_data/keypad-pxa27x.h>
|
||||||
#include <linux/pxa168_eth.h>
|
#include <linux/pxa168_eth.h>
|
||||||
#include <linux/platform_data/mv_usb.h>
|
#include <linux/platform_data/mv_usb.h>
|
||||||
|
#include <linux/soc/mmp/cputype.h>
|
||||||
|
|
||||||
#include "devices.h"
|
#include "devices.h"
|
||||||
#include "cputype.h"
|
|
||||||
|
|
||||||
extern struct pxa_device_desc pxa168_device_uart1;
|
extern struct pxa_device_desc pxa168_device_uart1;
|
||||||
extern struct pxa_device_desc pxa168_device_uart2;
|
extern struct pxa_device_desc pxa168_device_uart2;
|
||||||
|
@ -551,8 +551,9 @@ static struct clk *ve_spc_clk_register(struct device *cpu_dev)
|
|||||||
|
|
||||||
static int __init ve_spc_clk_init(void)
|
static int __init ve_spc_clk_init(void)
|
||||||
{
|
{
|
||||||
int cpu;
|
int cpu, cluster;
|
||||||
struct clk *clk;
|
struct clk *clk;
|
||||||
|
bool init_opp_table[MAX_CLUSTERS] = { false };
|
||||||
|
|
||||||
if (!info)
|
if (!info)
|
||||||
return 0; /* Continue only if SPC is initialised */
|
return 0; /* Continue only if SPC is initialised */
|
||||||
@ -578,8 +579,17 @@ static int __init ve_spc_clk_init(void)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cluster = topology_physical_package_id(cpu_dev->id);
|
||||||
|
if (init_opp_table[cluster])
|
||||||
|
continue;
|
||||||
|
|
||||||
if (ve_init_opp_table(cpu_dev))
|
if (ve_init_opp_table(cpu_dev))
|
||||||
pr_warn("failed to initialise cpu%d opp table\n", cpu);
|
pr_warn("failed to initialise cpu%d opp table\n", cpu);
|
||||||
|
else if (dev_pm_opp_set_sharing_cpus(cpu_dev,
|
||||||
|
topology_core_cpumask(cpu_dev->id)))
|
||||||
|
pr_warn("failed to mark OPPs shared for cpu%d\n", cpu);
|
||||||
|
else
|
||||||
|
init_opp_table[cluster] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
platform_device_register_simple("vexpress-spc-cpufreq", -1, NULL, 0);
|
platform_device_register_simple("vexpress-spc-cpufreq", -1, NULL, 0);
|
||||||
|
@ -88,7 +88,7 @@
|
|||||||
|
|
||||||
reboot {
|
reboot {
|
||||||
compatible ="syscon-reboot";
|
compatible ="syscon-reboot";
|
||||||
regmap = <&dcfg>;
|
regmap = <&rst>;
|
||||||
offset = <0xb0>;
|
offset = <0xb0>;
|
||||||
mask = <0x02>;
|
mask = <0x02>;
|
||||||
};
|
};
|
||||||
@ -178,6 +178,12 @@
|
|||||||
big-endian;
|
big-endian;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
rst: syscon@1e60000 {
|
||||||
|
compatible = "syscon";
|
||||||
|
reg = <0x0 0x1e60000 0x0 0x10000>;
|
||||||
|
little-endian;
|
||||||
|
};
|
||||||
|
|
||||||
scfg: syscon@1fc0000 {
|
scfg: syscon@1fc0000 {
|
||||||
compatible = "fsl,ls1028a-scfg", "syscon";
|
compatible = "fsl,ls1028a-scfg", "syscon";
|
||||||
reg = <0x0 0x1fc0000 0x0 0x10000>;
|
reg = <0x0 0x1fc0000 0x0 0x10000>;
|
||||||
@ -584,7 +590,7 @@
|
|||||||
0x00010004 0x0000003d
|
0x00010004 0x0000003d
|
||||||
0x00010005 0x00000045
|
0x00010005 0x00000045
|
||||||
0x00010006 0x0000004d
|
0x00010006 0x0000004d
|
||||||
0x00010007 0x00000045
|
0x00010007 0x00000055
|
||||||
0x00010008 0x0000005e
|
0x00010008 0x0000005e
|
||||||
0x00010009 0x00000066
|
0x00010009 0x00000066
|
||||||
0x0001000a 0x0000006e
|
0x0001000a 0x0000006e
|
||||||
|
@ -547,6 +547,7 @@ static const struct midr_range spectre_v2_safe_list[] = {
|
|||||||
MIDR_ALL_VERSIONS(MIDR_CORTEX_A53),
|
MIDR_ALL_VERSIONS(MIDR_CORTEX_A53),
|
||||||
MIDR_ALL_VERSIONS(MIDR_CORTEX_A55),
|
MIDR_ALL_VERSIONS(MIDR_CORTEX_A55),
|
||||||
MIDR_ALL_VERSIONS(MIDR_BRAHMA_B53),
|
MIDR_ALL_VERSIONS(MIDR_BRAHMA_B53),
|
||||||
|
MIDR_ALL_VERSIONS(MIDR_HISI_TSV110),
|
||||||
{ /* sentinel */ }
|
{ /* sentinel */ }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2098,9 +2098,9 @@ static void unhandled_cp_access(struct kvm_vcpu *vcpu,
|
|||||||
WARN_ON(1);
|
WARN_ON(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
kvm_err("Unsupported guest CP%d access at: %08lx [%08lx]\n",
|
print_sys_reg_msg(params,
|
||||||
cp, *vcpu_pc(vcpu), *vcpu_cpsr(vcpu));
|
"Unsupported guest CP%d access at: %08lx [%08lx]\n",
|
||||||
print_sys_reg_instr(params);
|
cp, *vcpu_pc(vcpu), *vcpu_cpsr(vcpu));
|
||||||
kvm_inject_undefined(vcpu);
|
kvm_inject_undefined(vcpu);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2233,6 +2233,12 @@ int kvm_handle_cp14_32(struct kvm_vcpu *vcpu, struct kvm_run *run)
|
|||||||
NULL, 0);
|
NULL, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool is_imp_def_sys_reg(struct sys_reg_params *params)
|
||||||
|
{
|
||||||
|
// See ARM DDI 0487E.a, section D12.3.2
|
||||||
|
return params->Op0 == 3 && (params->CRn & 0b1011) == 0b1011;
|
||||||
|
}
|
||||||
|
|
||||||
static int emulate_sys_reg(struct kvm_vcpu *vcpu,
|
static int emulate_sys_reg(struct kvm_vcpu *vcpu,
|
||||||
struct sys_reg_params *params)
|
struct sys_reg_params *params)
|
||||||
{
|
{
|
||||||
@ -2248,10 +2254,12 @@ static int emulate_sys_reg(struct kvm_vcpu *vcpu,
|
|||||||
|
|
||||||
if (likely(r)) {
|
if (likely(r)) {
|
||||||
perform_access(vcpu, params, r);
|
perform_access(vcpu, params, r);
|
||||||
|
} else if (is_imp_def_sys_reg(params)) {
|
||||||
|
kvm_inject_undefined(vcpu);
|
||||||
} else {
|
} else {
|
||||||
kvm_err("Unsupported guest sys_reg access at: %lx [%08lx]\n",
|
print_sys_reg_msg(params,
|
||||||
*vcpu_pc(vcpu), *vcpu_cpsr(vcpu));
|
"Unsupported guest sys_reg access at: %lx [%08lx]\n",
|
||||||
print_sys_reg_instr(params);
|
*vcpu_pc(vcpu), *vcpu_cpsr(vcpu));
|
||||||
kvm_inject_undefined(vcpu);
|
kvm_inject_undefined(vcpu);
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
@ -2360,8 +2368,11 @@ static const struct sys_reg_desc *index_to_sys_reg_desc(struct kvm_vcpu *vcpu,
|
|||||||
if ((id & KVM_REG_ARM_COPROC_MASK) != KVM_REG_ARM64_SYSREG)
|
if ((id & KVM_REG_ARM_COPROC_MASK) != KVM_REG_ARM64_SYSREG)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
if (!index_to_params(id, ¶ms))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
table = get_target_table(vcpu->arch.target, true, &num);
|
table = get_target_table(vcpu->arch.target, true, &num);
|
||||||
r = find_reg_by_id(id, ¶ms, table, num);
|
r = find_reg(¶ms, table, num);
|
||||||
if (!r)
|
if (!r)
|
||||||
r = find_reg(¶ms, sys_reg_descs, ARRAY_SIZE(sys_reg_descs));
|
r = find_reg(¶ms, sys_reg_descs, ARRAY_SIZE(sys_reg_descs));
|
||||||
|
|
||||||
|
@ -62,11 +62,24 @@ struct sys_reg_desc {
|
|||||||
#define REG_HIDDEN_USER (1 << 0) /* hidden from userspace ioctls */
|
#define REG_HIDDEN_USER (1 << 0) /* hidden from userspace ioctls */
|
||||||
#define REG_HIDDEN_GUEST (1 << 1) /* hidden from guest */
|
#define REG_HIDDEN_GUEST (1 << 1) /* hidden from guest */
|
||||||
|
|
||||||
|
static __printf(2, 3)
|
||||||
|
inline void print_sys_reg_msg(const struct sys_reg_params *p,
|
||||||
|
char *fmt, ...)
|
||||||
|
{
|
||||||
|
va_list va;
|
||||||
|
|
||||||
|
va_start(va, fmt);
|
||||||
|
/* Look, we even formatted it for you to paste into the table! */
|
||||||
|
kvm_pr_unimpl("%pV { Op0(%2u), Op1(%2u), CRn(%2u), CRm(%2u), Op2(%2u), func_%s },\n",
|
||||||
|
&(struct va_format){ fmt, &va },
|
||||||
|
p->Op0, p->Op1, p->CRn, p->CRm, p->Op2, p->is_write ? "write" : "read");
|
||||||
|
va_end(va);
|
||||||
|
}
|
||||||
|
|
||||||
static inline void print_sys_reg_instr(const struct sys_reg_params *p)
|
static inline void print_sys_reg_instr(const struct sys_reg_params *p)
|
||||||
{
|
{
|
||||||
/* Look, we even formatted it for you to paste into the table! */
|
/* GCC warns on an empty format string */
|
||||||
kvm_pr_unimpl(" { Op0(%2u), Op1(%2u), CRn(%2u), CRm(%2u), Op2(%2u), func_%s },\n",
|
print_sys_reg_msg(p, "%s", "");
|
||||||
p->Op0, p->Op1, p->CRn, p->CRm, p->Op2, p->is_write ? "write" : "read");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool ignore_write(struct kvm_vcpu *vcpu,
|
static inline bool ignore_write(struct kvm_vcpu *vcpu,
|
||||||
|
@ -44,13 +44,6 @@ static struct cvmx_bootmem_desc *cvmx_bootmem_desc;
|
|||||||
|
|
||||||
/* See header file for descriptions of functions */
|
/* See header file for descriptions of functions */
|
||||||
|
|
||||||
/**
|
|
||||||
* This macro returns the size of a member of a structure.
|
|
||||||
* Logically it is the same as "sizeof(s::field)" in C++, but
|
|
||||||
* C lacks the "::" operator.
|
|
||||||
*/
|
|
||||||
#define SIZEOF_FIELD(s, field) sizeof(((s *)NULL)->field)
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This macro returns a member of the
|
* This macro returns a member of the
|
||||||
* cvmx_bootmem_named_block_desc_t structure. These members can't
|
* cvmx_bootmem_named_block_desc_t structure. These members can't
|
||||||
@ -65,7 +58,7 @@ static struct cvmx_bootmem_desc *cvmx_bootmem_desc;
|
|||||||
#define CVMX_BOOTMEM_NAMED_GET_FIELD(addr, field) \
|
#define CVMX_BOOTMEM_NAMED_GET_FIELD(addr, field) \
|
||||||
__cvmx_bootmem_desc_get(addr, \
|
__cvmx_bootmem_desc_get(addr, \
|
||||||
offsetof(struct cvmx_bootmem_named_block_desc, field), \
|
offsetof(struct cvmx_bootmem_named_block_desc, field), \
|
||||||
SIZEOF_FIELD(struct cvmx_bootmem_named_block_desc, field))
|
sizeof_field(struct cvmx_bootmem_named_block_desc, field))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This function is the implementation of the get macros defined
|
* This function is the implementation of the get macros defined
|
||||||
|
@ -604,6 +604,7 @@ static void emit_const_to_reg(struct jit_ctx *ctx, int dst, u64 value)
|
|||||||
static int emit_bpf_tail_call(struct jit_ctx *ctx, int this_idx)
|
static int emit_bpf_tail_call(struct jit_ctx *ctx, int this_idx)
|
||||||
{
|
{
|
||||||
int off, b_off;
|
int off, b_off;
|
||||||
|
int tcc_reg;
|
||||||
|
|
||||||
ctx->flags |= EBPF_SEEN_TC;
|
ctx->flags |= EBPF_SEEN_TC;
|
||||||
/*
|
/*
|
||||||
@ -616,14 +617,14 @@ static int emit_bpf_tail_call(struct jit_ctx *ctx, int this_idx)
|
|||||||
b_off = b_imm(this_idx + 1, ctx);
|
b_off = b_imm(this_idx + 1, ctx);
|
||||||
emit_instr(ctx, bne, MIPS_R_AT, MIPS_R_ZERO, b_off);
|
emit_instr(ctx, bne, MIPS_R_AT, MIPS_R_ZERO, b_off);
|
||||||
/*
|
/*
|
||||||
* if (--TCC < 0)
|
* if (TCC-- < 0)
|
||||||
* goto out;
|
* goto out;
|
||||||
*/
|
*/
|
||||||
/* Delay slot */
|
/* Delay slot */
|
||||||
emit_instr(ctx, daddiu, MIPS_R_T5,
|
tcc_reg = (ctx->flags & EBPF_TCC_IN_V1) ? MIPS_R_V1 : MIPS_R_S4;
|
||||||
(ctx->flags & EBPF_TCC_IN_V1) ? MIPS_R_V1 : MIPS_R_S4, -1);
|
emit_instr(ctx, daddiu, MIPS_R_T5, tcc_reg, -1);
|
||||||
b_off = b_imm(this_idx + 1, ctx);
|
b_off = b_imm(this_idx + 1, ctx);
|
||||||
emit_instr(ctx, bltz, MIPS_R_T5, b_off);
|
emit_instr(ctx, bltz, tcc_reg, b_off);
|
||||||
/*
|
/*
|
||||||
* prog = array->ptrs[index];
|
* prog = array->ptrs[index];
|
||||||
* if (prog == NULL)
|
* if (prog == NULL)
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user