Skip to content

Commit fe6532b

Browse files
committed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next into net-accept-more
* git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1557 commits) net: qede: use extack in qede_parse_actions() net: qede: propagate extack through qede_flow_spec_validate() net: qede: use faked extack in qede_flow_spec_to_rule() net: qede: use extack in qede_parse_flow_attr() net: qede: add extack in qede_add_tc_flower_fltr() net: qede: use extack in qede_flow_parse_udp_v4() net: qede: use extack in qede_flow_parse_udp_v6() net: qede: use extack in qede_flow_parse_tcp_v4() net: qede: use extack in qede_flow_parse_tcp_v6() net: qede: use extack in qede_flow_parse_v4_common() net: qede: use extack in qede_flow_parse_v6_common() net: qede: use extack in qede_set_v4_tuple_to_profile() net: qede: use extack in qede_set_v6_tuple_to_profile() net: qede: use extack in qede_flow_parse_ports() net: usb: smsc95xx: stop lying about skb->truesize net: dsa: microchip: Fix spellig mistake "configur" -> "configure" af_unix: Add dead flag to struct scm_fp_list. net: ethernet: adi: adin1110: Replace linux/gpio.h by proper one octeontx2-pf: Reuse Transmit queue/Send queue index of HTB class gve: Use ethtool_sprintf/puts() to fill stats strings ...
2 parents ad1978d + cddd2dc commit fe6532b

File tree

1,760 files changed

+78377
-33251
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,760 files changed

+78377
-33251
lines changed

Documentation/bpf/standardization/instruction-set.rst

Lines changed: 62 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@
55
BPF Instruction Set Architecture (ISA)
66
======================================
77

8-
This document specifies the BPF instruction set architecture (ISA).
8+
eBPF (which is no longer an acronym for anything), also commonly
9+
referred to as BPF, is a technology with origins in the Linux kernel
10+
that can run untrusted programs in a privileged context such as an
11+
operating system kernel. This document specifies the BPF instruction
12+
set architecture (ISA).
913

1014
Documentation conventions
1115
=========================
@@ -43,7 +47,7 @@ a type's signedness (`S`) and bit width (`N`), respectively.
4347
===== =========
4448

4549
For example, `u32` is a type whose valid values are all the 32-bit unsigned
46-
numbers and `s16` is a types whose valid values are all the 16-bit signed
50+
numbers and `s16` is a type whose valid values are all the 16-bit signed
4751
numbers.
4852

4953
Functions
@@ -108,7 +112,7 @@ conformance group means it must support all instructions in that conformance
108112
group.
109113

110114
The use of named conformance groups enables interoperability between a runtime
111-
that executes instructions, and tools as such compilers that generate
115+
that executes instructions, and tools such as compilers that generate
112116
instructions for the runtime. Thus, capability discovery in terms of
113117
conformance groups might be done manually by users or automatically by tools.
114118

@@ -181,10 +185,13 @@ A basic instruction is encoded as follows::
181185
(`64-bit immediate instructions`_ reuse this field for other purposes)
182186

183187
**dst_reg**
184-
destination register number (0-10)
188+
destination register number (0-10), unless otherwise specified
189+
(future instructions might reuse this field for other purposes)
185190

186191
**offset**
187-
signed integer offset used with pointer arithmetic
192+
signed integer offset used with pointer arithmetic, except where
193+
otherwise specified (some arithmetic instructions reuse this field
194+
for other purposes)
188195

189196
**imm**
190197
signed integer immediate value
@@ -228,10 +235,12 @@ This is depicted in the following figure::
228235
operation to perform, encoded as explained above
229236

230237
**regs**
231-
The source and destination register numbers, encoded as explained above
238+
The source and destination register numbers (unless otherwise
239+
specified), encoded as explained above
232240

233241
**offset**
234-
signed integer offset used with pointer arithmetic
242+
signed integer offset used with pointer arithmetic, unless
243+
otherwise specified
235244

236245
**imm**
237246
signed integer immediate value
@@ -342,8 +351,8 @@ where '(u32)' indicates that the upper 32 bits are zeroed.
342351

343352
dst = dst ^ imm
344353

345-
Note that most instructions have instruction offset of 0. Only three instructions
346-
(``SDIV``, ``SMOD``, ``MOVSX``) have a non-zero offset.
354+
Note that most arithmetic instructions have 'offset' set to 0. Only three instructions
355+
(``SDIV``, ``SMOD``, ``MOVSX``) have a non-zero 'offset'.
347356

348357
Division, multiplication, and modulo operations for ``ALU`` are part
349358
of the "divmul32" conformance group, and division, multiplication, and
@@ -365,15 +374,15 @@ Note that there are varying definitions of the signed modulo operation
365374
when the dividend or divisor are negative, where implementations often
366375
vary by language such that Python, Ruby, etc. differ from C, Go, Java,
367376
etc. This specification requires that signed modulo use truncated division
368-
(where -13 % 3 == -1) as implemented in C, Go, etc.:
377+
(where -13 % 3 == -1) as implemented in C, Go, etc.::
369378

370379
a % n = a - n * trunc(a / n)
371380

372381
The ``MOVSX`` instruction does a move operation with sign extension.
373-
``{MOVSX, X, ALU}`` :term:`sign extends<Sign Extend>` 8-bit and 16-bit operands into 32
374-
bit operands, and zeroes the remaining upper 32 bits.
382+
``{MOVSX, X, ALU}`` :term:`sign extends<Sign Extend>` 8-bit and 16-bit operands into
383+
32-bit operands, and zeroes the remaining upper 32 bits.
375384
``{MOVSX, X, ALU64}`` :term:`sign extends<Sign Extend>` 8-bit, 16-bit, and 32-bit
376-
operands into 64 bit operands. Unlike other arithmetic instructions,
385+
operands into 64-bit operands. Unlike other arithmetic instructions,
377386
``MOVSX`` is only defined for register source operands (``X``).
378387

379388
The ``NEG`` instruction is only defined when the source bit is clear
@@ -411,19 +420,19 @@ conformance group.
411420

412421
Examples:
413422

414-
``{END, TO_LE, ALU}`` with imm = 16/32/64 means::
423+
``{END, TO_LE, ALU}`` with 'imm' = 16/32/64 means::
415424

416425
dst = htole16(dst)
417426
dst = htole32(dst)
418427
dst = htole64(dst)
419428

420-
``{END, TO_BE, ALU}`` with imm = 16/32/64 means::
429+
``{END, TO_BE, ALU}`` with 'imm' = 16/32/64 means::
421430

422431
dst = htobe16(dst)
423432
dst = htobe32(dst)
424433
dst = htobe64(dst)
425434

426-
``{END, TO_LE, ALU64}`` with imm = 16/32/64 means::
435+
``{END, TO_LE, ALU64}`` with 'imm' = 16/32/64 means::
427436

428437
dst = bswap16(dst)
429438
dst = bswap32(dst)
@@ -438,27 +447,33 @@ otherwise identical operations, and indicates the base64 conformance
438447
group unless otherwise specified.
439448
The 'code' field encodes the operation as below:
440449

441-
======== ===== ======= =============================== ===================================================
442-
code value src_reg description notes
443-
======== ===== ======= =============================== ===================================================
444-
JA 0x0 0x0 PC += offset {JA, K, JMP} only
445-
JA 0x0 0x0 PC += imm {JA, K, JMP32} only
450+
======== ===== ======= ================================= ===================================================
451+
code value src_reg description notes
452+
======== ===== ======= ================================= ===================================================
453+
JA 0x0 0x0 PC += offset {JA, K, JMP} only
454+
JA 0x0 0x0 PC += imm {JA, K, JMP32} only
446455
JEQ 0x1 any PC += offset if dst == src
447-
JGT 0x2 any PC += offset if dst > src unsigned
448-
JGE 0x3 any PC += offset if dst >= src unsigned
456+
JGT 0x2 any PC += offset if dst > src unsigned
457+
JGE 0x3 any PC += offset if dst >= src unsigned
449458
JSET 0x4 any PC += offset if dst & src
450459
JNE 0x5 any PC += offset if dst != src
451-
JSGT 0x6 any PC += offset if dst > src signed
452-
JSGE 0x7 any PC += offset if dst >= src signed
453-
CALL 0x8 0x0 call helper function by address {CALL, K, JMP} only, see `Helper functions`_
454-
CALL 0x8 0x1 call PC += imm {CALL, K, JMP} only, see `Program-local functions`_
455-
CALL 0x8 0x2 call helper function by BTF ID {CALL, K, JMP} only, see `Helper functions`_
456-
EXIT 0x9 0x0 return {CALL, K, JMP} only
457-
JLT 0xa any PC += offset if dst < src unsigned
458-
JLE 0xb any PC += offset if dst <= src unsigned
459-
JSLT 0xc any PC += offset if dst < src signed
460-
JSLE 0xd any PC += offset if dst <= src signed
461-
======== ===== ======= =============================== ===================================================
460+
JSGT 0x6 any PC += offset if dst > src signed
461+
JSGE 0x7 any PC += offset if dst >= src signed
462+
CALL 0x8 0x0 call helper function by static ID {CALL, K, JMP} only, see `Helper functions`_
463+
CALL 0x8 0x1 call PC += imm {CALL, K, JMP} only, see `Program-local functions`_
464+
CALL 0x8 0x2 call helper function by BTF ID {CALL, K, JMP} only, see `Helper functions`_
465+
EXIT 0x9 0x0 return {CALL, K, JMP} only
466+
JLT 0xa any PC += offset if dst < src unsigned
467+
JLE 0xb any PC += offset if dst <= src unsigned
468+
JSLT 0xc any PC += offset if dst < src signed
469+
JSLE 0xd any PC += offset if dst <= src signed
470+
======== ===== ======= ================================= ===================================================
471+
472+
where 'PC' denotes the program counter, and the offset to increment by
473+
is in units of 64-bit instructions relative to the instruction following
474+
the jump instruction. Thus 'PC += 1' skips execution of the next
475+
instruction if it's a basic instruction or results in undefined behavior
476+
if the next instruction is a 128-bit wide instruction.
462477

463478
The BPF program needs to store the return value into register R0 before doing an
464479
``EXIT``.
@@ -475,7 +490,7 @@ where 's>=' indicates a signed '>=' comparison.
475490

476491
gotol +imm
477492

478-
where 'imm' means the branch offset comes from insn 'imm' field.
493+
where 'imm' means the branch offset comes from the 'imm' field.
479494

480495
Note that there are two flavors of ``JA`` instructions. The
481496
``JMP`` class permits a 16-bit jump offset specified by the 'offset'
@@ -493,26 +508,26 @@ Helper functions
493508
Helper functions are a concept whereby BPF programs can call into a
494509
set of function calls exposed by the underlying platform.
495510

496-
Historically, each helper function was identified by an address
497-
encoded in the imm field. The available helper functions may differ
498-
for each program type, but address values are unique across all program types.
511+
Historically, each helper function was identified by a static ID
512+
encoded in the 'imm' field. The available helper functions may differ
513+
for each program type, but static IDs are unique across all program types.
499514

500515
Platforms that support the BPF Type Format (BTF) support identifying
501-
a helper function by a BTF ID encoded in the imm field, where the BTF ID
516+
a helper function by a BTF ID encoded in the 'imm' field, where the BTF ID
502517
identifies the helper name and type.
503518

504519
Program-local functions
505520
~~~~~~~~~~~~~~~~~~~~~~~
506521
Program-local functions are functions exposed by the same BPF program as the
507522
caller, and are referenced by offset from the call instruction, similar to
508-
``JA``. The offset is encoded in the imm field of the call instruction.
509-
A ``EXIT`` within the program-local function will return to the caller.
523+
``JA``. The offset is encoded in the 'imm' field of the call instruction.
524+
An ``EXIT`` within the program-local function will return to the caller.
510525

511526
Load and store instructions
512527
===========================
513528

514529
For load and store instructions (``LD``, ``LDX``, ``ST``, and ``STX``), the
515-
8-bit 'opcode' field is divided as::
530+
8-bit 'opcode' field is divided as follows::
516531

517532
+-+-+-+-+-+-+-+-+
518533
|mode |sz |class|
@@ -580,7 +595,7 @@ instructions that transfer data between a register and memory.
580595

581596
dst = *(signed size *) (src + offset)
582597

583-
Where size is one of: ``B``, ``H``, or ``W``, and
598+
Where '<size>' is one of: ``B``, ``H``, or ``W``, and
584599
'signed size' is one of: s8, s16, or s32.
585600

586601
Atomic operations
@@ -662,11 +677,11 @@ src_reg pseudocode imm type dst type
662677
======= ========================================= =========== ==============
663678
0x0 dst = (next_imm << 32) | imm integer integer
664679
0x1 dst = map_by_fd(imm) map fd map
665-
0x2 dst = map_val(map_by_fd(imm)) + next_imm map fd data pointer
666-
0x3 dst = var_addr(imm) variable id data pointer
667-
0x4 dst = code_addr(imm) integer code pointer
680+
0x2 dst = map_val(map_by_fd(imm)) + next_imm map fd data address
681+
0x3 dst = var_addr(imm) variable id data address
682+
0x4 dst = code_addr(imm) integer code address
668683
0x5 dst = map_by_idx(imm) map index map
669-
0x6 dst = map_val(map_by_idx(imm)) + next_imm map index data pointer
684+
0x6 dst = map_val(map_by_idx(imm)) + next_imm map index data address
670685
======= ========================================= =========== ==============
671686

672687
where

Documentation/conf.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ def have_command(cmd):
7575
"__rcu",
7676
"__user",
7777
"__force",
78+
"__counted_by_le",
79+
"__counted_by_be",
7880

7981
# include/linux/compiler_attributes.h:
8082
"__alias",
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/net/airoha,en8811h.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Airoha EN8811H PHY
8+
9+
maintainers:
10+
- Eric Woudstra <ericwouds@gmail.com>
11+
12+
description:
13+
The Airoha EN8811H PHY has the ability to reverse polarity
14+
on the lines to and/or from the MAC. It is reversed by
15+
the booleans in the devicetree node of the phy.
16+
17+
allOf:
18+
- $ref: ethernet-phy.yaml#
19+
20+
properties:
21+
compatible:
22+
enum:
23+
- ethernet-phy-id03a2.a411
24+
25+
reg:
26+
maxItems: 1
27+
28+
airoha,pnswap-rx:
29+
type: boolean
30+
description:
31+
Reverse rx polarity of the SERDES. This is the receiving
32+
side of the lines from the MAC towards the EN881H.
33+
34+
airoha,pnswap-tx:
35+
type: boolean
36+
description:
37+
Reverse tx polarity of SERDES. This is the transmitting
38+
side of the lines from EN8811H towards the MAC.
39+
40+
required:
41+
- reg
42+
43+
unevaluatedProperties: false
44+
45+
examples:
46+
- |
47+
mdio {
48+
#address-cells = <1>;
49+
#size-cells = <0>;
50+
51+
ethernet-phy@1 {
52+
compatible = "ethernet-phy-id03a2.a411";
53+
reg = <1>;
54+
airoha,pnswap-rx;
55+
};
56+
};

Documentation/devicetree/bindings/net/nxp,dwmac-imx.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ properties:
6666
Should be phandle/offset pair. The phandle to the syscon node which
6767
encompases the GPR register, and the offset of the GPR register.
6868

69+
nvmem-cells: true
70+
71+
nvmem-cell-names: true
72+
6973
snps,rmii_refclk_ext:
7074
$ref: /schemas/types.yaml#/definitions/flag
7175
description:

0 commit comments

Comments
 (0)